@manuscripts/transform 1.5.1-LEAN-2852-9 → 1.5.2-LEAN-3034
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/jats/importer/parse-jats-article.js +2 -11
- package/dist/cjs/jats/jats-exporter.js +38 -10
- package/dist/cjs/lib/citationProvider.js +50 -0
- package/dist/cjs/lib/defaultLocale.js +3 -0
- package/dist/cjs/schema/index.js +0 -3
- package/dist/cjs/schema/nodes/manuscript.js +1 -1
- package/dist/cjs/transformer/builders.js +3 -8
- package/dist/cjs/transformer/decode.js +1 -20
- package/dist/cjs/transformer/encode.js +0 -6
- package/dist/cjs/transformer/html.js +5 -6
- package/dist/cjs/transformer/labels.js +8 -4
- package/dist/cjs/transformer/node-title.js +4 -6
- package/dist/cjs/transformer/node-types.js +0 -1
- package/dist/cjs/transformer/project-bundle.js +1 -22
- package/dist/es/jats/importer/parse-jats-article.js +2 -11
- package/dist/es/jats/jats-exporter.js +40 -12
- package/dist/es/lib/citationProvider.js +43 -0
- package/dist/es/lib/defaultLocale.js +1 -0
- package/dist/es/schema/index.js +0 -3
- package/dist/es/schema/nodes/manuscript.js +1 -1
- package/dist/es/transformer/builders.js +2 -6
- package/dist/es/transformer/decode.js +1 -20
- package/dist/es/transformer/encode.js +0 -6
- package/dist/es/transformer/html.js +6 -7
- package/dist/es/transformer/labels.js +8 -4
- package/dist/es/transformer/node-title.js +5 -7
- package/dist/es/transformer/node-types.js +0 -1
- package/dist/es/transformer/project-bundle.js +0 -20
- package/dist/types/jats/jats-exporter.d.ts +8 -1
- package/dist/types/{schema/nodes/title.d.ts → lib/citationProvider.d.ts} +14 -11
- package/dist/types/lib/defaultLocale.d.ts +2 -0
- package/dist/types/schema/index.d.ts +0 -1
- package/dist/types/schema/types.d.ts +1 -1
- package/dist/types/transformer/builders.d.ts +2 -3
- package/dist/types/transformer/decode.d.ts +0 -1
- package/dist/types/transformer/project-bundle.d.ts +1 -2
- package/package.json +4 -3
- package/dist/cjs/schema/nodes/title.js +0 -29
- package/dist/es/schema/nodes/title.js +0 -26
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.getElementsOrder = exports.parseJATSArticle = exports.parseJATSBody = exports.parseJATSReferences = exports.parseJATSFront = void 0;
|
|
19
|
-
const json_schema_1 = require("@manuscripts/json-schema");
|
|
20
19
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
21
20
|
const errors_1 = require("../../errors");
|
|
22
21
|
const html_1 = require("../../lib/html");
|
|
@@ -52,16 +51,9 @@ const parseJATSFront = async (front) => {
|
|
|
52
51
|
const title = (_a = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > article-title')) === null || _a === void 0 ? void 0 : _a.innerHTML;
|
|
53
52
|
const subtitle = (_b = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > subtitle')) === null || _b === void 0 ? void 0 : _b.innerHTML;
|
|
54
53
|
const runningTitle = (_c = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > alt-title[alt-title-type="right-running"]')) === null || _c === void 0 ? void 0 : _c.innerHTML;
|
|
55
|
-
const manuscriptMeta = Object.assign({
|
|
56
|
-
const titles = {
|
|
57
|
-
objectType: json_schema_1.ObjectTypes.Titles,
|
|
58
|
-
_id: (0, id_1.generateID)(json_schema_1.ObjectTypes.Titles),
|
|
59
|
-
title: title ? inlineContentsFromJATSTitle(title) : undefined,
|
|
60
|
-
subtitle: subtitle ? inlineContentsFromJATSTitle(subtitle) : undefined,
|
|
61
|
-
runningTitle: runningTitle
|
|
54
|
+
const manuscriptMeta = Object.assign({ title: title ? inlineContentsFromJATSTitle(title) : undefined, subtitle: subtitle ? inlineContentsFromJATSTitle(subtitle) : undefined, runningTitle: runningTitle
|
|
62
55
|
? inlineContentsFromJATSTitle(runningTitle)
|
|
63
|
-
: undefined,
|
|
64
|
-
};
|
|
56
|
+
: undefined }, jats_front_parser_1.jatsFrontParser.parseCounts(articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('counts')));
|
|
65
57
|
const { affiliations, affiliationIDs } = jats_front_parser_1.jatsFrontParser.parseAffiliationNodes([
|
|
66
58
|
...front.querySelectorAll('article-meta > contrib-group > aff'),
|
|
67
59
|
]);
|
|
@@ -81,7 +73,6 @@ const parseJATSFront = async (front) => {
|
|
|
81
73
|
const manuscript = Object.assign(Object.assign(Object.assign({}, (0, builders_1.buildManuscript)()), manuscriptMeta), history);
|
|
82
74
|
return {
|
|
83
75
|
models: generateModelIDs([
|
|
84
|
-
titles,
|
|
85
76
|
manuscript,
|
|
86
77
|
...footnotes,
|
|
87
78
|
...correspondingList,
|
|
@@ -23,6 +23,7 @@ const json_schema_1 = require("@manuscripts/json-schema");
|
|
|
23
23
|
const debug_1 = __importDefault(require("debug"));
|
|
24
24
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
25
25
|
const w3c_xmlserializer_1 = __importDefault(require("w3c-xmlserializer"));
|
|
26
|
+
const citationProvider_1 = require("../lib/citationProvider");
|
|
26
27
|
const html_1 = require("../lib/html");
|
|
27
28
|
const styled_content_1 = require("../lib/styled-content");
|
|
28
29
|
const utils_1 = require("../lib/utils");
|
|
@@ -118,9 +119,16 @@ const sortContributors = (a, b) => Number(a.priority) - Number(b.priority);
|
|
|
118
119
|
class JATSExporter {
|
|
119
120
|
constructor() {
|
|
120
121
|
this.serializeToJATS = async (fragment, modelMap, manuscriptID, options = {}) => {
|
|
121
|
-
const { version = '1.2', doi, id, frontMatterOnly = false, links, idGenerator, mediaPathGenerator, } = options;
|
|
122
|
+
const { version = '1.2', doi, id, frontMatterOnly = false, links, idGenerator, mediaPathGenerator, citationStyle, locale, } = options;
|
|
122
123
|
this.modelMap = modelMap;
|
|
123
124
|
this.models = Array.from(this.modelMap.values());
|
|
125
|
+
if (citationStyle) {
|
|
126
|
+
this.citeProcEngine = citationProvider_1.CitationProvider.getEngine({
|
|
127
|
+
bibliographyItemsMap: this.getBibliographyItemsMap(),
|
|
128
|
+
citationStyle: citationStyle,
|
|
129
|
+
locale: locale,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
124
132
|
this.createSerializer();
|
|
125
133
|
const versionIds = (0, jats_versions_1.selectVersionIds)(version);
|
|
126
134
|
this.document = document.implementation.createDocument(null, 'article', document.implementation.createDocumentType('article', versionIds.publicId, versionIds.systemId));
|
|
@@ -238,7 +246,6 @@ class JATSExporter {
|
|
|
238
246
|
this.buildFront = (doi, id, links) => {
|
|
239
247
|
var _a, _b, _c, _d;
|
|
240
248
|
const manuscript = (0, project_bundle_1.findManuscript)(this.modelMap);
|
|
241
|
-
const titles = (0, project_bundle_1.findTitles)(this.modelMap);
|
|
242
249
|
const front = this.document.createElement('front');
|
|
243
250
|
const journalMeta = this.document.createElement('journal-meta');
|
|
244
251
|
front.appendChild(journalMeta);
|
|
@@ -316,20 +323,20 @@ class JATSExporter {
|
|
|
316
323
|
articleMeta.appendChild(link);
|
|
317
324
|
}
|
|
318
325
|
}
|
|
319
|
-
if (
|
|
326
|
+
if (manuscript.title) {
|
|
320
327
|
const element = this.document.createElement('article-title');
|
|
321
|
-
this.setTitleContent(element,
|
|
328
|
+
this.setTitleContent(element, manuscript.title);
|
|
322
329
|
titleGroup.appendChild(element);
|
|
323
330
|
}
|
|
324
|
-
if (
|
|
331
|
+
if (manuscript.subtitle) {
|
|
325
332
|
const element = this.document.createElement('subtitle');
|
|
326
|
-
this.setTitleContent(element,
|
|
333
|
+
this.setTitleContent(element, manuscript.subtitle);
|
|
327
334
|
titleGroup.appendChild(element);
|
|
328
335
|
}
|
|
329
|
-
if (
|
|
336
|
+
if (manuscript.runningTitle) {
|
|
330
337
|
const element = this.document.createElement('alt-title');
|
|
331
338
|
element.setAttribute('alt-title-type', 'right-running');
|
|
332
|
-
this.setTitleContent(element,
|
|
339
|
+
this.setTitleContent(element, manuscript.runningTitle);
|
|
333
340
|
titleGroup.appendChild(element);
|
|
334
341
|
}
|
|
335
342
|
const supplements = [...this.modelMap.values()].filter((model) => model.objectType === json_schema_1.ObjectTypes.Supplement);
|
|
@@ -599,7 +606,6 @@ class JATSExporter {
|
|
|
599
606
|
this.createSerializer = () => {
|
|
600
607
|
const getModel = (id) => id ? this.modelMap.get(id) : undefined;
|
|
601
608
|
const nodes = {
|
|
602
|
-
title: () => '',
|
|
603
609
|
affiliations_section: () => '',
|
|
604
610
|
contributors_section: () => '',
|
|
605
611
|
table_element_footer: () => ['table-wrap-foot', 0],
|
|
@@ -645,7 +651,10 @@ class JATSExporter {
|
|
|
645
651
|
const xref = this.document.createElement('xref');
|
|
646
652
|
xref.setAttribute('ref-type', 'bibr');
|
|
647
653
|
xref.setAttribute('rid', rids.map((item) => normalizeID(item.bibliographyItem)).join(' '));
|
|
648
|
-
if (
|
|
654
|
+
if (this.citeProcEngine) {
|
|
655
|
+
xref.textContent = this.generateCitationContent(node);
|
|
656
|
+
}
|
|
657
|
+
else if (node.attrs.contents) {
|
|
649
658
|
const text = (0, html_1.textFromHTML)(node.attrs.contents);
|
|
650
659
|
if (text !== null && text.length) {
|
|
651
660
|
xref.textContent = text;
|
|
@@ -1575,6 +1584,25 @@ class JATSExporter {
|
|
|
1575
1584
|
return name;
|
|
1576
1585
|
};
|
|
1577
1586
|
}
|
|
1587
|
+
getBibliographyItemsMap() {
|
|
1588
|
+
const map = new Map();
|
|
1589
|
+
this.modelMap.forEach((model) => {
|
|
1590
|
+
if (model.objectType === json_schema_1.ObjectTypes.BibliographyItem) {
|
|
1591
|
+
map.set(model._id, model);
|
|
1592
|
+
}
|
|
1593
|
+
});
|
|
1594
|
+
return map;
|
|
1595
|
+
}
|
|
1596
|
+
generateCitationContent(node) {
|
|
1597
|
+
var _a;
|
|
1598
|
+
const citationItems = (_a = node.attrs.embeddedCitationItems) === null || _a === void 0 ? void 0 : _a.map(({ bibliographyItem }) => ({
|
|
1599
|
+
id: bibliographyItem,
|
|
1600
|
+
}));
|
|
1601
|
+
return this.citeProcEngine.previewCitationCluster({
|
|
1602
|
+
citationID: node.attrs.rid,
|
|
1603
|
+
citationItems: citationItems,
|
|
1604
|
+
}, [], [], 'text');
|
|
1605
|
+
}
|
|
1578
1606
|
buildKeywords(articleMeta) {
|
|
1579
1607
|
const keywords = [...this.modelMap.values()].filter((model) => model.objectType === json_schema_1.ObjectTypes.Keyword);
|
|
1580
1608
|
const keywordGroups = new Map();
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*!
|
|
3
|
+
* © 2023 Atypon Systems LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.CitationProvider = void 0;
|
|
22
|
+
const citeproc_1 = __importDefault(require("citeproc"));
|
|
23
|
+
const defaultLocale_1 = __importDefault(require("./defaultLocale"));
|
|
24
|
+
class CitationProvider {
|
|
25
|
+
constructor() {
|
|
26
|
+
}
|
|
27
|
+
static getEngine(props) {
|
|
28
|
+
if (!CitationProvider.engine) {
|
|
29
|
+
CitationProvider.engine = CitationProvider.createCiteProcEngine(props);
|
|
30
|
+
}
|
|
31
|
+
return CitationProvider.engine;
|
|
32
|
+
}
|
|
33
|
+
static createCiteProcEngine(props) {
|
|
34
|
+
const { bibliographyItemsMap, citationStyle, locale } = props;
|
|
35
|
+
return new citeproc_1.default.Engine({
|
|
36
|
+
retrieveItem: (id) => this.retrieveBibliographyItem(id, bibliographyItemsMap),
|
|
37
|
+
retrieveLocale: () => locale || defaultLocale_1.default,
|
|
38
|
+
}, citationStyle, 'en-US', false);
|
|
39
|
+
}
|
|
40
|
+
static retrieveBibliographyItem(id, map) {
|
|
41
|
+
const item = map.get(id);
|
|
42
|
+
return Object.assign(Object.assign({}, item), { id, type: (item === null || item === void 0 ? void 0 : item.type) || 'article-journal' });
|
|
43
|
+
}
|
|
44
|
+
static recreateEngine(props) {
|
|
45
|
+
CitationProvider.engine = CitationProvider.createCiteProcEngine(props);
|
|
46
|
+
return CitationProvider.engine;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.CitationProvider = CitationProvider;
|
|
50
|
+
CitationProvider.engine = null;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = '<?xml version="1.0" encoding="utf-8"?><locale xmlns="http://purl.org/net/xbiblio/csl" version="1.0" xml:lang="en-US"><info><translator><name>Andrew Dunning</name></translator><translator><name>Sebastian Karcher</name></translator><translator><name>Rintze M. Zelle</name></translator><translator><name>Denis Meier</name></translator><translator><name>Brenton M. Wiernik</name></translator><rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights><updated>2015-10-10T23:31:02+00:00</updated></info><style-options punctuation-in-quote="true"/><date form="text"><date-part name="month" suffix=" "/><date-part name="day" suffix=", "/><date-part name="year"/></date><date form="numeric"><date-part name="month" form="numeric-leading-zeros" suffix="/"/><date-part name="day" form="numeric-leading-zeros" suffix="/"/><date-part name="year"/></date><terms><term name="advance-online-publication">advance online publication</term><term name="album">album</term><term name="audio-recording">audio recording</term><term name="film">film</term><term name="henceforth">henceforth</term><term name="loc-cit">loc. cit.</term><!-- like ibid., the abbreviated form is the regular form --><term name="no-place">no place</term><term name="no-place" form="short">n.p.</term><term name="no-publisher">no publisher</term><!-- sine nomine --><term name="no-publisher" form="short">n.p.</term><term name="on">on</term><term name="op-cit">op. cit.</term><!-- like ibid., the abbreviated form is the regular form --><term name="original-work-published">original work published</term><term name="personal-communication">personal communication</term><term name="podcast">podcast</term><term name="podcast-episode">podcast episode</term><term name="preprint">preprint</term><term name="radio-broadcast">radio broadcast</term><term name="radio-series">radio series</term><term name="radio-series-episode">radio series episode</term><term name="special-issue">special issue</term><term name="special-section">special section</term><term name="television-broadcast">television broadcast</term><term name="television-series">television series</term><term name="television-series-episode">television series episode</term><term name="video">video</term><term name="working-paper">working paper</term><term name="accessed">accessed</term><term name="and">and</term><term name="and others">and others</term><term name="anonymous">anonymous</term><term name="anonymous" form="short">anon.</term><term name="at">at</term><term name="available at">available at</term><term name="by">by</term><term name="circa">circa</term><term name="circa" form="short">c.</term><term name="cited">cited</term><term name="edition"><single>edition</single><multiple>editions</multiple></term><term name="edition" form="short">ed.</term><term name="et-al">et al.</term><term name="forthcoming">forthcoming</term><term name="from">from</term><term name="ibid">ibid.</term><term name="in">in</term><term name="in press">in press</term><term name="internet">internet</term><term name="letter">letter</term><term name="no date">no date</term><term name="no date" form="short">n.d.</term><term name="online">online</term><term name="presented at">presented at the</term><term name="reference"><single>reference</single><multiple>references</multiple></term><term name="reference" form="short"><single>ref.</single><multiple>refs.</multiple></term><term name="retrieved">retrieved</term><term name="scale">scale</term><term name="version">version</term><!-- LONG ITEM TYPE FORMS --><term name="article">preprint</term><term name="article-journal">journal article</term><term name="article-magazine">magazine article</term><term name="article-newspaper">newspaper article</term><term name="bill">bill</term><!-- book is in the list of locator terms --><term name="broadcast">broadcast</term><!-- chapter is in the list of locator terms --><term name="classic">classic</term><term name="collection">collection</term><term name="dataset">dataset</term><term name="document">document</term><term name="entry">entry</term><term name="entry-dictionary">dictionary entry</term><term name="entry-encyclopedia">encyclopedia entry</term><term name="event">event</term><!-- figure is in the list of locator terms --><term name="graphic">graphic</term><term name="hearing">hearing</term><term name="interview">interview</term><term name="legal_case">legal case</term><term name="legislation">legislation</term><term name="manuscript">manuscript</term><term name="map">map</term><term name="motion_picture">video recording</term><term name="musical_score">musical score</term><term name="pamphlet">pamphlet</term><term name="paper-conference">conference paper</term><term name="patent">patent</term><term name="performance">performance</term><term name="periodical">periodical</term><term name="personal_communication">personal communication</term><term name="post">post</term><term name="post-weblog">blog post</term><term name="regulation">regulation</term><term name="report">report</term><term name="review">review</term><term name="review-book">book review</term><term name="software">software</term><term name="song">audio recording</term><term name="speech">presentation</term><term name="standard">standard</term><term name="thesis">thesis</term><term name="treaty">treaty</term><term name="webpage">webpage</term><!-- SHORT ITEM TYPE FORMS --><term name="article-journal" form="short">journal art.</term><term name="article-magazine" form="short">mag. art.</term><term name="article-newspaper" form="short">newspaper art.</term><!-- book is in the list of locator terms --><!-- chapter is in the list of locator terms --><term name="document" form="short">doc.</term><!-- figure is in the list of locator terms --><term name="graphic" form="short">graph.</term><term name="interview" form="short">interv.</term><term name="manuscript" form="short">MS</term><term name="motion_picture" form="short">video rec.</term><term name="report" form="short">rep.</term><term name="review" form="short">rev.</term><term name="review-book" form="short">bk. rev.</term><term name="song" form="short">audio rec.</term><!-- HISTORICAL ERA TERMS --><term name="ad">AD</term><term name="bc">BC</term><term name="bce">BCE</term><term name="ce">CE</term><!-- PUNCTUATION --><term name="open-quote">“</term><term name="close-quote">”</term><term name="open-inner-quote">‘</term><term name="close-inner-quote">’</term><term name="page-range-delimiter">–</term><term name="colon">:</term><term name="comma">,</term><term name="semicolon">;</term><!-- ORDINALS --><term name="ordinal">th</term><term name="ordinal-01">st</term><term name="ordinal-02">nd</term><term name="ordinal-03">rd</term><term name="ordinal-11">th</term><term name="ordinal-12">th</term><term name="ordinal-13">th</term><!-- LONG ORDINALS --><term name="long-ordinal-01">first</term><term name="long-ordinal-02">second</term><term name="long-ordinal-03">third</term><term name="long-ordinal-04">fourth</term><term name="long-ordinal-05">fifth</term><term name="long-ordinal-06">sixth</term><term name="long-ordinal-07">seventh</term><term name="long-ordinal-08">eighth</term><term name="long-ordinal-09">ninth</term><term name="long-ordinal-10">tenth</term><!-- LONG LOCATOR FORMS --><term name="act"><single>act</single><multiple>acts</multiple></term><term name="appendix"><single>appendix</single><multiple>appendices</multiple></term><term name="article-locator"><single>article</single><multiple>articles</multiple></term><term name="canon"><single>canon</single><multiple>canons</multiple></term><term name="elocation"><single>location</single><multiple>locations</multiple></term><term name="equation"><single>equation</single><multiple>equations</multiple></term><term name="rule"><single>rule</single><multiple>rules</multiple></term><term name="scene"><single>scene</single><multiple>scenes</multiple></term><term name="table"><single>table</single><multiple>tables</multiple></term><term name="timestamp"><!-- generally blank --><single></single><multiple></multiple></term><term name="title-locator"><single>title</single><multiple>titles</multiple></term><term name="book"><single>book</single><multiple>books</multiple></term><term name="chapter"><single>chapter</single><multiple>chapters</multiple></term><term name="column"><single>column</single><multiple>columns</multiple></term><term name="figure"><single>figure</single><multiple>figures</multiple></term><term name="folio"><single>folio</single><multiple>folios</multiple></term><term name="issue"><single>number</single><multiple>numbers</multiple></term><term name="line"><single>line</single><multiple>lines</multiple></term><term name="note"><single>note</single><multiple>notes</multiple></term><term name="opus"><single>opus</single><multiple>opera</multiple></term><term name="page"><single>page</single><multiple>pages</multiple></term><term name="number-of-pages"><single>page</single><multiple>pages</multiple></term><term name="paragraph"><single>paragraph</single><multiple>paragraphs</multiple></term><term name="part"><single>part</single><multiple>parts</multiple></term><term name="section"><single>section</single><multiple>sections</multiple></term><term name="sub-verbo"><single>sub verbo</single><multiple>sub verbis</multiple></term><term name="verse"><single>verse</single><multiple>verses</multiple></term><term name="volume"><single>volume</single><multiple>volumes</multiple></term><!-- SHORT LOCATOR FORMS --><term name="appendix" form="short"><single>app.</single><multiple>apps.</multiple></term><term name="article-locator" form="short"><single>art.</single><multiple>arts.</multiple></term><term name="elocation" form="short"><single>loc.</single><multiple>locs.</multiple></term><term name="equation" form="short"><single>eq.</single><multiple>eqs.</multiple></term><term name="rule" form="short"><single>r.</single><multiple>rr.</multiple></term><term name="scene" form="short"><single>sc.</single><multiple>scs.</multiple></term><term name="table" form="short"><single>tbl.</single><multiple>tbls.</multiple></term><term name="timestamp" form="short"><!-- generally blank --><single></single><multiple></multiple></term><term name="title-locator" form="short"><single>tit.</single><multiple>tits.</multiple></term><term name="book" form="short"><single>bk.</single><multiple>bks.</multiple></term><term name="chapter" form="short"><single>chap.</single><multiple>chaps.</multiple></term><term name="column" form="short"><single>col.</single><multiple>cols.</multiple></term><term name="figure" form="short"><single>fig.</single><multiple>figs.</multiple></term><term name="folio" form="short"><single>fol.</single><multiple>fols.</multiple></term><term name="issue" form="short"><single>no.</single><multiple>nos.</multiple></term><term name="line" form="short"><single>l.</single><multiple>ll.</multiple></term><term name="note" form="short"><single>n.</single><multiple>nn.</multiple></term><term name="opus" form="short"><single>op.</single><multiple>opp.</multiple></term><term name="page" form="short"><single>p.</single><multiple>pp.</multiple></term><term name="number-of-pages" form="short"><single>p.</single><multiple>pp.</multiple></term><term name="paragraph" form="short"><single>para.</single><multiple>paras.</multiple></term><term name="part" form="short"><single>pt.</single><multiple>pts.</multiple></term><term name="section" form="short"><single>sec.</single><multiple>secs.</multiple></term><term name="sub-verbo" form="short"><single>s.v.</single><multiple>s.vv.</multiple></term><term name="verse" form="short"><single>v.</single><multiple>vv.</multiple></term><term name="volume" form="short"><single>vol.</single><multiple>vols.</multiple></term><!-- SYMBOL LOCATOR FORMS --><term name="paragraph" form="symbol"><single>¶</single><multiple>¶¶</multiple></term><term name="section" form="symbol"><single>§</single><multiple>§§</multiple></term><!-- LONG ROLE FORMS --><term name="chair"><single>chair</single><multiple>chairs</multiple></term><term name="compiler"><single>compiler</single><multiple>compilers</multiple></term><term name="contributor"><single>contributor</single><multiple>contributors</multiple></term><term name="curator"><single>curator</single><multiple>curators</multiple></term><term name="executive-producer"><single>executive producer</single><multiple>executive producers</multiple></term><term name="guest"><single>guest</single><multiple>guests</multiple></term><term name="host"><single>host</single><multiple>hosts</multiple></term><term name="narrator"><single>narrator</single><multiple>narrators</multiple></term><term name="organizer"><single>organizer</single><multiple>organizers</multiple></term><term name="performer"><single>performer</single><multiple>performers</multiple></term><term name="producer"><single>producer</single><multiple>producers</multiple></term><term name="script-writer"><single>writer</single><multiple>writers</multiple></term><term name="series-creator"><single>series creator</single><multiple>series creators</multiple></term><term name="director"><single>director</single><multiple>directors</multiple></term><term name="editor"><single>editor</single><multiple>editors</multiple></term><term name="editorial-director"><single>editor</single><multiple>editors</multiple></term><term name="illustrator"><single>illustrator</single><multiple>illustrators</multiple></term><term name="translator"><single>translator</single><multiple>translators</multiple></term><term name="editortranslator"><single>editor & translator</single><multiple>editors & translators</multiple></term><!-- SHORT ROLE FORMS --><term name="compiler" form="short"><single>comp.</single><multiple>comps.</multiple></term><term name="contributor" form="short"><single>contrib.</single><multiple>contribs.</multiple></term><term name="curator" form="short"><single>cur.</single><multiple>curs.</multiple></term><term name="executive-producer" form="short"><single>exec. prod.</single><multiple>exec. prods.</multiple></term><term name="narrator" form="short"><single>narr.</single><multiple>narrs.</multiple></term><term name="organizer" form="short"><single>org.</single><multiple>orgs.</multiple></term><term name="performer" form="short"><single>perf.</single><multiple>perfs.</multiple></term><term name="producer" form="short"><single>prod.</single><multiple>prods.</multiple></term><term name="script-writer" form="short"><single>writ.</single><multiple>writs.</multiple></term><term name="series-creator" form="short"><single>cre.</single><multiple>cres.</multiple></term><term name="director" form="short"><single>dir.</single><multiple>dirs.</multiple></term><term name="editor" form="short"><single>ed.</single><multiple>eds.</multiple></term><term name="editorial-director" form="short"><single>ed.</single><multiple>eds.</multiple></term><term name="illustrator" form="short"><single>ill.</single><multiple>ills.</multiple></term><term name="translator" form="short"><single>tran.</single><multiple>trans.</multiple></term><term name="editortranslator" form="short"><single>ed. & tran.</single><multiple>eds. & trans.</multiple></term><!-- VERB ROLE FORMS --><term name="chair" form="verb">chaired by</term><term name="compiler" form="verb">compiled by</term><term name="contributor" form="verb">with</term><term name="curator" form="verb">curated by</term><term name="executive-producer" form="verb">executive produced by</term><term name="guest" form="verb">with guest</term><term name="host" form="verb">hosted by</term><term name="narrator" form="verb">narrated by</term><term name="organizer" form="verb">organized by</term><term name="performer" form="verb">performed by</term><term name="producer" form="verb">produced by</term><term name="script-writer" form="verb">written by</term><term name="series-creator" form="verb">created by</term><term name="container-author" form="verb">by</term><term name="director" form="verb">directed by</term><term name="editor" form="verb">edited by</term><term name="editorial-director" form="verb">edited by</term><term name="illustrator" form="verb">illustrated by</term><term name="interviewer" form="verb">interview by</term><term name="recipient" form="verb">to</term><term name="reviewed-author" form="verb">by</term><term name="translator" form="verb">translated by</term><term name="editortranslator" form="verb">edited & translated by</term><!-- SHORT VERB ROLE FORMS --><term name="compiler" form="verb-short">comp. by</term><term name="contributor" form="verb-short">w.</term><term name="curator" form="verb-short">cur. by</term><term name="executive-producer" form="verb-short">exec. prod. by</term><term name="guest" form="verb-short">w. guest</term><term name="host" form="verb-short">hosted by</term><term name="narrator" form="verb-short">narr. by</term><term name="organizer" form="verb-short">org. by</term><term name="performer" form="verb-short">perf. by</term><term name="producer" form="verb-short">prod. by</term><term name="script-writer" form="verb-short">writ. by</term><term name="series-creator" form="verb-short">cre. by</term><term name="director" form="verb-short">dir. by</term><term name="editor" form="verb-short">ed. by</term><term name="editorial-director" form="verb-short">ed. by</term><term name="illustrator" form="verb-short">illus. by</term><term name="translator" form="verb-short">trans. by</term><term name="editortranslator" form="verb-short">ed. & trans. by</term><!-- LONG MONTH FORMS --><term name="month-01">January</term><term name="month-02">February</term><term name="month-03">March</term><term name="month-04">April</term><term name="month-05">May</term><term name="month-06">June</term><term name="month-07">July</term><term name="month-08">August</term><term name="month-09">September</term><term name="month-10">October</term><term name="month-11">November</term><term name="month-12">December</term><!-- SHORT MONTH FORMS --><term name="month-01" form="short">Jan.</term><term name="month-02" form="short">Feb.</term><term name="month-03" form="short">Mar.</term><term name="month-04" form="short">Apr.</term><term name="month-05" form="short">May</term><term name="month-06" form="short">Jun.</term><term name="month-07" form="short">Jul.</term><term name="month-08" form="short">Aug.</term><term name="month-09" form="short">Sep.</term><term name="month-10" form="short">Oct.</term><term name="month-11" form="short">Nov.</term><term name="month-12" form="short">Dec.</term><!-- SEASONS --><term name="season-01">Spring</term><term name="season-02">Summer</term><term name="season-03">Autumn</term><term name="season-04">Winter</term></terms></locale>';
|
package/dist/cjs/schema/index.js
CHANGED
|
@@ -85,7 +85,6 @@ const table_element_1 = require("./nodes/table_element");
|
|
|
85
85
|
const table_element_footer_1 = require("./nodes/table_element_footer");
|
|
86
86
|
const table_row_1 = require("./nodes/table_row");
|
|
87
87
|
const text_1 = require("./nodes/text");
|
|
88
|
-
const title_1 = require("./nodes/title");
|
|
89
88
|
const toc_element_1 = require("./nodes/toc_element");
|
|
90
89
|
const toc_section_1 = require("./nodes/toc_section");
|
|
91
90
|
__exportStar(require("./groups"), exports);
|
|
@@ -141,7 +140,6 @@ __exportStar(require("./nodes/affiliation"), exports);
|
|
|
141
140
|
__exportStar(require("./nodes/meta_section"), exports);
|
|
142
141
|
__exportStar(require("./nodes/contributor"), exports);
|
|
143
142
|
__exportStar(require("./nodes/table_element_footer"), exports);
|
|
144
|
-
__exportStar(require("./nodes/title"), exports);
|
|
145
143
|
__exportStar(require("./nodes/affiliations_section"), exports);
|
|
146
144
|
__exportStar(require("./nodes/contributors_section"), exports);
|
|
147
145
|
exports.schema = new prosemirror_model_1.Schema({
|
|
@@ -218,7 +216,6 @@ exports.schema = new prosemirror_model_1.Schema({
|
|
|
218
216
|
meta_section: meta_section_1.metaSection,
|
|
219
217
|
contributor: contributor_1.contributor,
|
|
220
218
|
table_element_footer: table_element_footer_1.tableElementFooter,
|
|
221
|
-
title: title_1.title,
|
|
222
219
|
affiliations_section: affiliations_section_1.affiliationsSection,
|
|
223
220
|
contributors_section: contributors_section_1.contributorsSection,
|
|
224
221
|
},
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.manuscript = void 0;
|
|
19
19
|
exports.manuscript = {
|
|
20
|
-
content: '
|
|
20
|
+
content: '(section | sections)+ meta_section',
|
|
21
21
|
attrs: {
|
|
22
22
|
id: { default: '' },
|
|
23
23
|
},
|
|
@@ -18,7 +18,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
18
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.
|
|
21
|
+
exports.buildElementsOrder = exports.auxiliaryObjectTypes = exports.buildStatusLabel = exports.buildJournal = exports.buildAttribution = exports.buildInlineStyle = exports.buildContributorRole = exports.buildContribution = exports.buildHighlightMarker = exports.buildHighlight = exports.buildColor = exports.buildParagraph = exports.buildSection = exports.buildCorresp = exports.buildFootnotesOrder = exports.buildFootnote = exports.buildInlineMathFragment = exports.buildValidation = exports.buildNote = exports.buildComment = exports.buildUserProfileAffiliation = exports.buildSupplementaryMaterial = exports.buildAffiliation = exports.buildFigure = exports.buildLibraryCollection = exports.buildManuscriptKeyword = exports.buildKeywordGroup = exports.buildKeyword = exports.buildCitation = exports.buildEmbeddedCitationItem = exports.buildAuxiliaryObjectReference = exports.buildBibliographicDate = exports.buildBibliographicName = exports.buildBibliographyItem = exports.buildContributor = exports.buildManuscript = exports.buildProject = exports.DEFAULT_PAGE_LAYOUT = exports.DEFAULT_BUNDLE = void 0;
|
|
22
22
|
const json_schema_1 = require("@manuscripts/json-schema");
|
|
23
23
|
const w3c_xmlserializer_1 = __importDefault(require("w3c-xmlserializer"));
|
|
24
24
|
const schema_1 = require("../schema");
|
|
@@ -35,9 +35,10 @@ const buildProject = (owner) => ({
|
|
|
35
35
|
title: '',
|
|
36
36
|
});
|
|
37
37
|
exports.buildProject = buildProject;
|
|
38
|
-
const buildManuscript = () => ({
|
|
38
|
+
const buildManuscript = (title = '') => ({
|
|
39
39
|
_id: (0, id_1.generateID)(json_schema_1.ObjectTypes.Manuscript),
|
|
40
40
|
objectType: json_schema_1.ObjectTypes.Manuscript,
|
|
41
|
+
title,
|
|
41
42
|
});
|
|
42
43
|
exports.buildManuscript = buildManuscript;
|
|
43
44
|
const buildContributor = (bibliographicName, role = 'author', priority = 0, userID, invitationID) => ({
|
|
@@ -290,9 +291,3 @@ const buildElementsOrder = (elementType) => ({
|
|
|
290
291
|
elements: [],
|
|
291
292
|
});
|
|
292
293
|
exports.buildElementsOrder = buildElementsOrder;
|
|
293
|
-
const buildTitles = (title) => ({
|
|
294
|
-
_id: (0, id_1.generateID)(json_schema_1.ObjectTypes.Titles),
|
|
295
|
-
objectType: json_schema_1.ObjectTypes.Titles,
|
|
296
|
-
title: title || '',
|
|
297
|
-
});
|
|
298
|
-
exports.buildTitles = buildTitles;
|
|
@@ -35,7 +35,6 @@ const debug_1 = __importDefault(require("debug"));
|
|
|
35
35
|
const prosemirror_model_1 = require("prosemirror-model");
|
|
36
36
|
const errors_1 = require("../errors");
|
|
37
37
|
const schema_1 = require("../schema");
|
|
38
|
-
const builders_1 = require("./builders");
|
|
39
38
|
const highlight_markers_1 = require("./highlight-markers");
|
|
40
39
|
const id_1 = require("./id");
|
|
41
40
|
const object_types_1 = require("./object-types");
|
|
@@ -116,11 +115,6 @@ class Decoder {
|
|
|
116
115
|
rootSectionNodes.unshift(node);
|
|
117
116
|
}
|
|
118
117
|
}
|
|
119
|
-
createTitleNode() {
|
|
120
|
-
const titles = (0, exports.getModelsByType)(this.modelMap, json_schema_1.ObjectTypes.Titles)[0] ||
|
|
121
|
-
(0, builders_1.buildTitles)();
|
|
122
|
-
return this.decode(titles);
|
|
123
|
-
}
|
|
124
118
|
createRootSectionNodes() {
|
|
125
119
|
let rootSections = getSections(this.modelMap).filter((section) => !section.path || section.path.length <= 1);
|
|
126
120
|
rootSections = this.addGeneratedLabels(rootSections);
|
|
@@ -153,14 +147,6 @@ class Decoder {
|
|
|
153
147
|
constructor(modelMap, allowMissingElements = false) {
|
|
154
148
|
this.comments = new Map();
|
|
155
149
|
this.creators = {
|
|
156
|
-
[json_schema_1.ObjectTypes.Titles]: (data) => {
|
|
157
|
-
const model = data;
|
|
158
|
-
return this.parseContents(model.title, 'div', undefined, {
|
|
159
|
-
topNode: schema_1.schema.nodes.title.create({
|
|
160
|
-
id: model._id,
|
|
161
|
-
}),
|
|
162
|
-
});
|
|
163
|
-
},
|
|
164
150
|
[json_schema_1.ObjectTypes.BibliographyElement]: (data) => {
|
|
165
151
|
var _a;
|
|
166
152
|
const model = data;
|
|
@@ -645,14 +631,9 @@ class Decoder {
|
|
|
645
631
|
};
|
|
646
632
|
this.getModel = (id) => this.modelMap.get(id);
|
|
647
633
|
this.createArticleNode = (manuscriptID) => {
|
|
648
|
-
const titlesNode = this.createTitleNode();
|
|
649
634
|
const rootSectionNodes = this.createRootSectionNodes();
|
|
650
635
|
const metaSectionNode = this.createMetaSectionNode();
|
|
651
|
-
const contents = [
|
|
652
|
-
titlesNode,
|
|
653
|
-
...rootSectionNodes,
|
|
654
|
-
metaSectionNode,
|
|
655
|
-
];
|
|
636
|
+
const contents = [...rootSectionNodes, metaSectionNode];
|
|
656
637
|
return schema_1.schema.nodes.manuscript.create({
|
|
657
638
|
id: manuscriptID || this.getManuscriptID(),
|
|
658
639
|
}, contents);
|
|
@@ -263,12 +263,6 @@ function figureElementEncoder(node) {
|
|
|
263
263
|
};
|
|
264
264
|
}
|
|
265
265
|
const encoders = {
|
|
266
|
-
title: (node) => ({
|
|
267
|
-
title: node.attrs.title,
|
|
268
|
-
subtitle: node.attrs.subtitle,
|
|
269
|
-
runningTitle: node.attrs.runningTitle,
|
|
270
|
-
_id: node.attrs._id,
|
|
271
|
-
}),
|
|
272
266
|
bibliography_element: (node) => ({
|
|
273
267
|
elementType: 'div',
|
|
274
268
|
contents: '',
|
|
@@ -152,7 +152,6 @@ class HTMLTransformer {
|
|
|
152
152
|
this.buildFront = () => {
|
|
153
153
|
const manuscript = (0, project_bundle_1.findManuscript)(this.modelMap);
|
|
154
154
|
const journal = (0, project_bundle_1.findJournal)(this.modelMap);
|
|
155
|
-
const titles = (0, project_bundle_1.findTitles)(this.modelMap);
|
|
156
155
|
if (!manuscript) {
|
|
157
156
|
throw new Error('Manuscript not found in project modelMap');
|
|
158
157
|
}
|
|
@@ -171,14 +170,14 @@ class HTMLTransformer {
|
|
|
171
170
|
}
|
|
172
171
|
const articleMeta = this.document.createElement('div');
|
|
173
172
|
front.appendChild(articleMeta);
|
|
174
|
-
const
|
|
175
|
-
if (
|
|
176
|
-
|
|
173
|
+
const articleTitle = this.document.createElement('h1');
|
|
174
|
+
if (manuscript.title) {
|
|
175
|
+
articleTitle.innerHTML = manuscript.title;
|
|
177
176
|
}
|
|
178
177
|
if (journal === null || journal === void 0 ? void 0 : journal.title) {
|
|
179
|
-
|
|
178
|
+
articleTitle.setAttribute('data-journal', journal.title);
|
|
180
179
|
}
|
|
181
|
-
articleMeta.appendChild(
|
|
180
|
+
articleMeta.appendChild(articleTitle);
|
|
182
181
|
if (manuscript.DOI) {
|
|
183
182
|
const articleID = this.document.createElement('article-id');
|
|
184
183
|
articleID.setAttribute('pub-id-type', 'doi');
|
|
@@ -56,10 +56,14 @@ const buildTargets = (fragment, manuscript) => {
|
|
|
56
56
|
const targets = new Map();
|
|
57
57
|
const figures = [];
|
|
58
58
|
fragment.forEach((node) => {
|
|
59
|
-
if (node.
|
|
60
|
-
node.forEach((
|
|
61
|
-
if (
|
|
62
|
-
|
|
59
|
+
if (node.attrs.category === 'MPSectionCategory:abstracts') {
|
|
60
|
+
node.forEach((child) => {
|
|
61
|
+
if (child.type === node.type.schema.nodes.graphical_abstract_section) {
|
|
62
|
+
child.forEach((item) => {
|
|
63
|
+
if (item.type === node.type.schema.nodes.figure_element) {
|
|
64
|
+
figures.push(item.attrs.id);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
63
67
|
}
|
|
64
68
|
});
|
|
65
69
|
}
|
|
@@ -32,7 +32,7 @@ const textSnippet = (node, max = 100) => {
|
|
|
32
32
|
text += ' ';
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
|
-
return text.
|
|
35
|
+
return text.substr(0, max);
|
|
36
36
|
};
|
|
37
37
|
const snippetOfNodeType = (node, nodeType) => {
|
|
38
38
|
for (const child of (0, utils_1.iterateChildren)(node, true)) {
|
|
@@ -43,10 +43,8 @@ const snippetOfNodeType = (node, nodeType) => {
|
|
|
43
43
|
return null;
|
|
44
44
|
};
|
|
45
45
|
const nodeTitle = (node) => {
|
|
46
|
-
const nodes =
|
|
46
|
+
const nodes = node.type.schema.nodes;
|
|
47
47
|
switch (node.type) {
|
|
48
|
-
case nodes.manuscript:
|
|
49
|
-
return snippetOfNodeType(node, nodes.title);
|
|
50
48
|
case nodes.section:
|
|
51
49
|
case nodes.bibliography_section:
|
|
52
50
|
case nodes.footnotes_section:
|
|
@@ -74,9 +72,9 @@ const nodeTitle = (node) => {
|
|
|
74
72
|
};
|
|
75
73
|
exports.nodeTitle = nodeTitle;
|
|
76
74
|
const nodeTitlePlaceholder = (nodeType) => {
|
|
77
|
-
const nodes =
|
|
75
|
+
const nodes = nodeType.schema.nodes;
|
|
78
76
|
switch (nodeType) {
|
|
79
|
-
case nodes.
|
|
77
|
+
case nodes.title:
|
|
80
78
|
return 'Untitled Manuscript';
|
|
81
79
|
case nodes.section:
|
|
82
80
|
return 'Untitled Section';
|
|
@@ -57,7 +57,6 @@ exports.nodeTypesMap = new Map([
|
|
|
57
57
|
[schema_1.schema.nodes.affiliation, json_schema_1.ObjectTypes.Affiliation],
|
|
58
58
|
[schema_1.schema.nodes.contributor, json_schema_1.ObjectTypes.Contributor],
|
|
59
59
|
[schema_1.schema.nodes.table_element_footer, json_schema_1.ObjectTypes.TableElementFooter],
|
|
60
|
-
[schema_1.schema.nodes.title, json_schema_1.ObjectTypes.Titles],
|
|
61
60
|
[schema_1.schema.nodes.contributors_section, json_schema_1.ObjectTypes.Section],
|
|
62
61
|
[schema_1.schema.nodes.affiliations_section, json_schema_1.ObjectTypes.Section],
|
|
63
62
|
]);
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.
|
|
18
|
+
exports.findManuscriptById = exports.findManuscriptModelByType = exports.findJournal = exports.findManuscript = exports.parseProjectBundle = void 0;
|
|
19
19
|
const json_schema_1 = require("@manuscripts/json-schema");
|
|
20
20
|
const decode_1 = require("./decode");
|
|
21
21
|
const object_types_1 = require("./object-types");
|
|
@@ -71,24 +71,3 @@ const findManuscriptById = (modelMap, manuscriptID) => {
|
|
|
71
71
|
throw new Error(`There is no manuscript found for the following _id (${manuscriptID})`);
|
|
72
72
|
};
|
|
73
73
|
exports.findManuscriptById = findManuscriptById;
|
|
74
|
-
const isTitle = (0, object_types_1.hasObjectType)(json_schema_1.ObjectTypes.Titles);
|
|
75
|
-
const findTitles = (modelMap) => {
|
|
76
|
-
for (const model of modelMap.values()) {
|
|
77
|
-
if (isTitle(model)) {
|
|
78
|
-
return model;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
const defaultTitle = {
|
|
82
|
-
_id: 'MPTitles:8EB79C14-9F61-483A-902F-A0B8EF5973C1',
|
|
83
|
-
createdAt: 1538472121.690101,
|
|
84
|
-
updatedAt: 1538472121.690101,
|
|
85
|
-
objectType: 'MPTitles',
|
|
86
|
-
title: 'main title',
|
|
87
|
-
subtitle: 'subtitle',
|
|
88
|
-
runningTitle: 'running title',
|
|
89
|
-
manuscriptID: 'MPManuscript:E3830344-E77B-42BA-BD77-3E95489712A0',
|
|
90
|
-
containerID: 'MPProject:1',
|
|
91
|
-
};
|
|
92
|
-
return defaultTitle;
|
|
93
|
-
};
|
|
94
|
-
exports.findTitles = findTitles;
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { ObjectTypes, } from '@manuscripts/json-schema';
|
|
17
16
|
import { DOMParser } from 'prosemirror-model';
|
|
18
17
|
import { InvalidInput } from '../../errors';
|
|
19
18
|
import { nodeFromHTML } from '../../lib/html';
|
|
@@ -49,16 +48,9 @@ export const parseJATSFront = async (front) => {
|
|
|
49
48
|
const title = (_a = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > article-title')) === null || _a === void 0 ? void 0 : _a.innerHTML;
|
|
50
49
|
const subtitle = (_b = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > subtitle')) === null || _b === void 0 ? void 0 : _b.innerHTML;
|
|
51
50
|
const runningTitle = (_c = articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('title-group > alt-title[alt-title-type="right-running"]')) === null || _c === void 0 ? void 0 : _c.innerHTML;
|
|
52
|
-
const manuscriptMeta = Object.assign({
|
|
53
|
-
const titles = {
|
|
54
|
-
objectType: ObjectTypes.Titles,
|
|
55
|
-
_id: generateID(ObjectTypes.Titles),
|
|
56
|
-
title: title ? inlineContentsFromJATSTitle(title) : undefined,
|
|
57
|
-
subtitle: subtitle ? inlineContentsFromJATSTitle(subtitle) : undefined,
|
|
58
|
-
runningTitle: runningTitle
|
|
51
|
+
const manuscriptMeta = Object.assign({ title: title ? inlineContentsFromJATSTitle(title) : undefined, subtitle: subtitle ? inlineContentsFromJATSTitle(subtitle) : undefined, runningTitle: runningTitle
|
|
59
52
|
? inlineContentsFromJATSTitle(runningTitle)
|
|
60
|
-
: undefined,
|
|
61
|
-
};
|
|
53
|
+
: undefined }, jatsFrontParser.parseCounts(articleMeta === null || articleMeta === void 0 ? void 0 : articleMeta.querySelector('counts')));
|
|
62
54
|
const { affiliations, affiliationIDs } = jatsFrontParser.parseAffiliationNodes([
|
|
63
55
|
...front.querySelectorAll('article-meta > contrib-group > aff'),
|
|
64
56
|
]);
|
|
@@ -78,7 +70,6 @@ export const parseJATSFront = async (front) => {
|
|
|
78
70
|
const manuscript = Object.assign(Object.assign(Object.assign({}, buildManuscript()), manuscriptMeta), history);
|
|
79
71
|
return {
|
|
80
72
|
models: generateModelIDs([
|
|
81
|
-
titles,
|
|
82
73
|
manuscript,
|
|
83
74
|
...footnotes,
|
|
84
75
|
...correspondingList,
|