jats-xml
v1.0.15
Published
Types and utilities for working with JATS in Typescript
Downloads
6,744
Readme
jats-xml
Types and utilities for working with JATS XML documents in Node and Typescript.
What is JATS?
JATS is a NISO standard for Journal Article Tags Schema, which is a way to define the XML structure of a scientific article semantically. This includes the front
-matter (authors, funding, title, abstract, etc.), the body
of the article (sections, figures, equations, tables, etc.), and back
-matter (references, footnotes, etc.). The JATS can also contain sub-articles
.
The standard documents are hosted by the NIH https://jats.nlm.nih.gov/. There are three flavours, this library currently uses in most cases the most prescriptive tag set (for article authoring). Another helpful resource is https://jats4r.org/, which provides other examples and recommendations for JATS.
Note that most publishers do not provide the XML as a first class output - they should, it is an important part of open-science to have the content programmatically accessible and interoperable. It is only FAIR 😉.
Working in Typescript
All tags are accessible as types/enums. There is also documentation from each node-type
import { Tags } from 'jats-xml';
Tags.journalId;
Reading JATS in Node
import 'fs' from 'fs';
import { Inventory, toDate } from 'jats-xml';
import { toText } from 'myst-common';
import { select, selectAll } from 'unist-util-select';
const data = fs.readFileSync('article.jats').toString();
const jats = new JATS(data);
// Easy access to properties
jats.doi
jats.body // A tree of the body (or front/back)
toDate(jats.publicationDate) // as a Javascript Date object
select('[id=fig1]', jats.body) // select a figure by an ID
selectAll('fig', jats.body) // Or selectAll figures
Write JATS in Node
TODO!
As of v1.0.0 this package is ESM only.