Skip to content

continuous-foundation/cffjs

Repository files navigation

cffjs

cffjs on npm MIT License CI

Types and utilities for working with CITATION.cff files in TypeScript.

The Citation File Format provides citation metadata for software and datasets in YAML.

Install

npm install cffjs

Usage

import { readCFF, writeCFF, validateCFF } from 'cffjs';

const cff = readCFF('./CITATION.cff');

validateCFF(cff);

writeCFF(cff, './output');

API

Reading & Writing

  • readCFF(file) - Read CFF data from a CITATION.cff file (or directory containing one). Returns the parsed object without validation.
  • writeCFF(cff, directory) - Write CFF data as CITATION.cff into the given directory, creating it if needed.

Validating

  • validateCFF(input) - Validate an in-memory CFF object against the CFF 1.2.0 JSON schema. Throws on failure.
  • validateCFFFile(file) - Read a CFF file and validate it. Throws on failure.

MyST Conversion

Convert MyST frontmatter into CFF data:

  • mystFrontmatterToCFF(frontmatter, abstract?) - Convert MyST PageFrontmatter into a complete CFF document.
  • mystFrontmatterToCFFReference(frontmatter, abstract?) - Convert MyST PageFrontmatter into a CFF Reference entry.

Types

The package exports TypeScript types for CFF, ReferenceCFF, PersonCFF, EntityCFF, and IdentifierCFF, along with the ReferenceType and ReferenceStatus enums.

Scope

  • Reading, writing, and validating CITATION.cff files
  • Conversion from MyST frontmatter to CFF
  • CFF version 1.2.0 only

Potential goals

  • Conversion to MyST frontmatter
  • Support for other CFF versions
  • Conversion to/from other formats (e.g. BibTeX)
  • CLI

Made with love by Continuous Science Foundation

About

Typescript utility library for CITATION.cff files

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors