@fiduswriter/document 0.1.0-alpha.6 → 0.1.0-alpha.9

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.
@@ -1,3 +1,30 @@
1
- import type { BibDBEntry } from "../../types.js";
2
- export declare function jatsBib(bib: BibDBEntry, id: number): string;
1
+ interface CSLName {
2
+ family?: string;
3
+ given?: string;
4
+ literal?: string;
5
+ prefix?: string;
6
+ suffix?: string;
7
+ }
8
+ interface CSLDate {
9
+ "date-parts"?: number[][];
10
+ literal?: string;
11
+ }
12
+ interface CSLItem {
13
+ type?: string;
14
+ title?: string;
15
+ "container-title"?: string;
16
+ author?: CSLName[];
17
+ editor?: CSLName[];
18
+ publisher?: string | string[];
19
+ "publisher-place"?: string | string[];
20
+ issued?: CSLDate | string;
21
+ volume?: string;
22
+ issue?: string;
23
+ page?: string;
24
+ DOI?: string;
25
+ URL?: string;
26
+ accessed?: CSLDate | string;
27
+ }
28
+ export declare function jatsBib(bib: CSLItem, id: number): string;
29
+ export {};
3
30
  //# sourceMappingURL=bibliography.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bibliography.d.ts","sourceRoot":"","sources":["../../../src/exporter/jats/bibliography.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAY,MAAM,gBAAgB,CAAA;AAoDzD,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAgJ3D"}
1
+ {"version":3,"file":"bibliography.d.ts","sourceRoot":"","sources":["../../../src/exporter/jats/bibliography.ts"],"names":[],"mappings":"AAGA,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,UAAU,OAAO;IACb,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,OAAO;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACrC,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC9B;AAuID,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAmFxD"}
@@ -1,5 +1,4 @@
1
1
  import { escapeText } from "fwtoolkit";
2
- import { convertTexts } from "./text.js";
3
2
  // This list is based on values listed at https://jats.nlm.nih.gov/archiving/tag-library/1.2/attribute/publication-type.html
4
3
  // And the advice given here: https://jats4r.org/citations/#recommendation
5
4
  const PUBLICATION_TYPES = {
@@ -40,118 +39,137 @@ const PUBLICATION_TYPES = {
40
39
  thesis: "standard",
41
40
  unpublished: "standard"
42
41
  };
42
+ function text(value) {
43
+ if (value === undefined || value === null) {
44
+ return "";
45
+ }
46
+ if (Array.isArray(value)) {
47
+ return value.map(text).join("");
48
+ }
49
+ return escapeText(String(value));
50
+ }
51
+ function renderName(name) {
52
+ if (name.literal) {
53
+ return `<collab>${text(name.literal)}</collab>`;
54
+ }
55
+ let nameStart = "<name>";
56
+ if (name.family) {
57
+ nameStart += `<surname>${text(name.family)}</surname>`;
58
+ }
59
+ if (name.given) {
60
+ nameStart += ` <given-names>${text(name.given)}</given-names>`;
61
+ }
62
+ if (name.prefix) {
63
+ nameStart += ` <prefix>${text(name.prefix)}</prefix>`;
64
+ }
65
+ if (name.suffix) {
66
+ nameStart += ` <suffix>${text(name.suffix)}</suffix>`;
67
+ }
68
+ return nameStart + "</name>";
69
+ }
70
+ function renderNameList(names, personGroupType) {
71
+ if (!names || !names.length) {
72
+ return "";
73
+ }
74
+ return `<person-group person-group-type="${personGroupType}">${names
75
+ .map(renderName)
76
+ .join(", ")}</person-group>`;
77
+ }
78
+ function parseDateParts(dateParts) {
79
+ return {
80
+ year: dateParts && dateParts[0] ? String(dateParts[0]) : "",
81
+ month: dateParts && dateParts[1] ? String(dateParts[1]) : "",
82
+ day: dateParts && dateParts[2] ? String(dateParts[2]) : ""
83
+ };
84
+ }
85
+ function renderDate(issued, dateType) {
86
+ if (!issued) {
87
+ return "";
88
+ }
89
+ let isoDate;
90
+ let year = "";
91
+ let month = "";
92
+ let day = "";
93
+ if (typeof issued === "string") {
94
+ isoDate = issued;
95
+ const parts = issued.split("-");
96
+ year = parts[0] || "";
97
+ month = parts[1] || "";
98
+ day = parts[2] || "";
99
+ }
100
+ else if (issued["date-parts"] && issued["date-parts"][0]) {
101
+ const parts = parseDateParts(issued["date-parts"][0]);
102
+ year = parts.year;
103
+ month = parts.month;
104
+ day = parts.day;
105
+ isoDate = `${year}${month ? "-" + month.padStart(2, "0") : ""}${day ? "-" + day.padStart(2, "0") : ""}`;
106
+ }
107
+ else if (issued.literal) {
108
+ isoDate = issued.literal;
109
+ year = isoDate.split("-")[0] || "";
110
+ }
111
+ else {
112
+ return "";
113
+ }
114
+ return `<date iso-8601-date="${escapeText(isoDate)}" date-type="${dateType}">${day ? `<day>${text(day)}</day>` : ""}${month ? `<month>${text(month)}</month>` : ""}<year>${text(year)}</year></date>`;
115
+ }
43
116
  export function jatsBib(bib, id) {
44
- let start = "", end = "";
45
- start += `<ref id="ref-${id}">`;
46
- end = "</ref>" + end;
47
- // Type
48
- const publicationType = PUBLICATION_TYPES[bib.bib_type || ""] ?? "standard";
117
+ let start = `<ref id="ref-${id}">`;
118
+ let end = "</ref>";
119
+ const publicationType = PUBLICATION_TYPES[bib.type || ""] ?? "standard";
49
120
  start += `<element-citation publication-type="${publicationType}">`;
50
121
  end = "</element-citation>" + end;
51
- const fields = (bib.fields || {});
52
- // authors
53
- if (fields.author && Array.isArray(fields.author) && fields.author.length) {
54
- start += `<person-group person-group-type="author">${fields.author
55
- .map((author) => {
56
- const a = author;
57
- if (a.literal) {
58
- return `<collab>${convertTexts((a.literal))}</collab>`;
59
- }
60
- let nameStart = `<name><surname>${convertTexts((a.family || ""))}</surname> <given-names>${convertTexts((a.given || ""))}</given-names>`;
61
- if (a.prefix && a.prefix.length) {
62
- nameStart += ` <prefix>${convertTexts((a.prefix))}</prefix>`;
63
- }
64
- if (a.suffix && a.suffix.length) {
65
- nameStart += ` <suffix>${convertTexts((a.suffix))}</suffix>`;
66
- }
67
- const nameEnd = "</name>";
68
- return nameStart + nameEnd;
69
- })
70
- .join(", ")}</person-group>`;
71
- }
72
- // title && container title
73
- if (fields.title) {
74
- if (fields.shortjournal ||
75
- fields.booktitle ||
76
- fields.journaltitle) {
77
- start += `<source>${convertTexts(String(fields.shortjournal || fields.booktitle || fields.journaltitle))}</source>`;
78
- start += `<article-title>${convertTexts(String(fields.title))}</article-title>`;
79
- }
80
- else {
81
- start += `<source>${convertTexts(String(fields.title))}</source>`;
122
+ start += renderNameList(bib.author, "author");
123
+ const containerTitle = bib["container-title"];
124
+ if (containerTitle) {
125
+ start += `<source>${text(containerTitle)}</source>`;
126
+ if (bib.title) {
127
+ const titleTag = bib.type === "chapter" ? "chapter-title" : "article-title";
128
+ start += `<${titleTag}>${text(bib.title)}</${titleTag}>`;
82
129
  }
83
130
  }
84
- // editors
85
- if (fields.editor && Array.isArray(fields.editor) && fields.editor.length) {
86
- start += `<person-group person-group-type="editor">${fields.editor
87
- .map((editor) => {
88
- const e = editor;
89
- if (e.literal) {
90
- return `<collab>${convertTexts((e.literal))}</collab>`;
91
- }
92
- let nameStart = `<name><surname>${convertTexts((e.family || ""))}</surname> <given-names>${convertTexts((e.given || ""))}</given-names>`;
93
- const nameEnd = "</name>";
94
- if (e.prefix && e.prefix.length) {
95
- nameStart += ` <prefix>${convertTexts((e.prefix))}</prefix>`;
96
- }
97
- if (e.suffix && e.suffix.length) {
98
- nameStart += ` <suffix>${convertTexts((e.suffix))}</suffix>`;
99
- }
100
- return nameStart + nameEnd;
101
- })
102
- .join(", ")}</person-group>`;
103
- }
104
- // publisher
105
- if (fields.publisher && Array.isArray(fields.publisher) && fields.publisher.length) {
106
- start += fields.publisher
107
- .map(publisher => `<publisher-name>${convertTexts(String(publisher))}</publisher-name>`)
108
- .join("");
109
- }
110
- // location
111
- if (fields.location && Array.isArray(fields.location) && fields.location.length) {
112
- start += fields.location
113
- .map(location => `<publisher-loc>${convertTexts(String(location))}</publisher-loc>`)
114
- .join("");
115
- }
116
- // date
117
- if (fields.date && String(fields.date).length) {
118
- const date = String(fields.date);
119
- const dateParts = date.split("-");
120
- start += `<date iso-8601-date="${date}" date-type="published">${dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""}${dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""}<year>${dateParts[0]}</year></date>`;
121
- }
122
- // volume
123
- if (fields.volume && String(fields.volume).length) {
124
- start += `<volume>${convertTexts(String(fields.volume))}</volume>`;
125
- }
126
- // issue
127
- if (fields.issue && String(fields.issue).length) {
128
- start += `<issue>${convertTexts(String(fields.issue))}</issue>`;
129
- }
130
- // pages
131
- if (fields.pages && Array.isArray(fields.pages) && fields.pages.length) {
132
- const pages = fields.pages;
133
- start += `<fpage>${convertTexts((pages[0][0]))}</fpage>`;
134
- const lastPageGroup = pages.slice(-1)[0];
135
- start += `<lpage>${convertTexts((lastPageGroup.slice(-1)[0]))}</lpage>`;
136
- if (pages.length > 1) {
137
- start += `<page-range>${pages
138
- .map(pageGroup => pageGroup.map(page => convertTexts((page))).join("-"))
139
- .join(", ")}</page-range>`;
131
+ else if (bib.title) {
132
+ start += `<source>${text(bib.title)}</source>`;
133
+ }
134
+ start += renderNameList(bib.editor, "editor");
135
+ if (bib.publisher) {
136
+ const publishers = Array.isArray(bib.publisher)
137
+ ? bib.publisher
138
+ : [bib.publisher];
139
+ publishers.forEach(publisher => (start += `<publisher-name>${text(publisher)}</publisher-name>`));
140
+ }
141
+ if (bib["publisher-place"]) {
142
+ const places = Array.isArray(bib["publisher-place"])
143
+ ? bib["publisher-place"]
144
+ : [bib["publisher-place"]];
145
+ places.forEach(place => (start += `<publisher-loc>${text(place)}</publisher-loc>`));
146
+ }
147
+ start += renderDate(bib.issued, "published");
148
+ if (bib.volume) {
149
+ start += `<volume>${text(bib.volume)}</volume>`;
150
+ }
151
+ if (bib.issue) {
152
+ start += `<issue>${text(bib.issue)}</issue>`;
153
+ }
154
+ if (bib.page) {
155
+ const pageStr = String(bib.page);
156
+ const pageParts = pageStr.split("-");
157
+ start += `<fpage>${text(pageParts[0])}</fpage>`;
158
+ if (pageParts.length > 1) {
159
+ start += `<lpage>${text(pageParts[pageParts.length - 1])}</lpage>`;
160
+ }
161
+ if (pageParts.length > 2) {
162
+ start += `<page-range>${text(pageStr)}</page-range>`;
140
163
  }
141
164
  }
142
- // doi
143
- if (fields.doi && String(fields.doi).length) {
144
- start += `<pub-id pub-id-type="doi">${escapeText(String(fields.doi))}</pub-id>`;
165
+ if (bib.DOI) {
166
+ start += `<pub-id pub-id-type="doi">${text(bib.DOI)}</pub-id>`;
145
167
  }
146
- // url
147
- if (fields.url && String(fields.url).length) {
148
- start += `<ext-link ext-link-type="web" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${escapeText(String(fields.url))}"/>`;
168
+ if (bib.URL) {
169
+ start += `<ext-link ext-link-type="web" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${escapeText(bib.URL)}"/>`;
149
170
  }
150
- // url date
151
- if (fields.urldate && String(fields.urldate).length) {
152
- const date = String(fields.urldate);
153
- const dateParts = date.split("-");
154
- start += `<date-in-citation content-type="access-date" iso-8601-date="${date}">${dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""}${dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""}<year>${dateParts[0]}</year></date-in-citation>`;
171
+ if (bib.accessed) {
172
+ start += renderDate(bib.accessed, "access-date").replace('date-type="access-date"', 'content-type="access-date"');
155
173
  }
156
174
  return start + end;
157
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bibliography.js","sourceRoot":"","sources":["../../../src/exporter/jats/bibliography.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bibliography.js","sourceRoot":"","sources":["../../../src/exporter/jats/bibliography.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAiCpC,4HAA4H;AAC5H,0EAA0E;AAC1E,MAAM,iBAAiB,GAA2B;IAC9C,OAAO,EAAE,SAAS;IAClB,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,SAAS;IAC9B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,SAAS;IAClB,kBAAkB,EAAE,UAAU;IAC9B,oBAAoB,EAAE,UAAU;IAChC,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,MAAM;IACpB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,UAAU;IACxB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,UAAU;IACvB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,MAAM;IAClB,IAAI,EAAE,WAAW;IACjB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,SAAS;IACzB,MAAM,EAAE,UAAU;IAClB,WAAW,EAAE,UAAU;CAC1B,CAAA;AAED,SAAS,IAAI,CAAC,KAAc;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,EAAE,CAAA;IACb,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAA;IACnD,CAAC;IACD,IAAI,SAAS,GAAG,QAAQ,CAAA;IACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,SAAS,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,SAAS,IAAI,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAA;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,SAAS,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IACzD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,SAAS,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;IACzD,CAAC;IACD,OAAO,SAAS,GAAG,SAAS,CAAA;AAChC,CAAC;AAED,SAAS,cAAc,CACnB,KAA4B,EAC5B,eAAuB;IAEvB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACb,CAAC;IACD,OAAO,oCAAoC,eAAe,KAAK,KAAK;SAC/D,GAAG,CAAC,UAAU,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAA;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,SAAoB;IAKxC,OAAO;QACH,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3D,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5D,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7D,CAAA;AACL,CAAC;AAED,SAAS,UAAU,CACf,MAAoC,EACpC,QAAgB;IAEhB,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAA;IACb,CAAC;IACD,IAAI,OAAe,CAAA;IACnB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,GAAG,MAAM,CAAA;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACrB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACtB,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;SAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACjB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QACnB,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;QACf,OAAO,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GACzD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EACvC,EAAE,CAAA;IACN,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QACxB,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACtC,CAAC;SAAM,CAAC;QACJ,OAAO,EAAE,CAAA;IACb,CAAC;IACD,OAAO,wBAAwB,UAAU,CAAC,OAAO,CAAC,gBAAgB,QAAQ,KACtE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EACtC,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CACxD,IAAI,CACP,gBAAgB,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAY,EAAE,EAAU;IAC5C,IAAI,KAAK,GAAG,gBAAgB,EAAE,IAAI,CAAA;IAClC,IAAI,GAAG,GAAG,QAAQ,CAAA;IAElB,MAAM,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,UAAU,CAAA;IACvE,KAAK,IAAI,uCAAuC,eAAe,IAAI,CAAA;IACnE,GAAG,GAAG,qBAAqB,GAAG,GAAG,CAAA;IAEjC,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7C,MAAM,cAAc,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC7C,IAAI,cAAc,EAAE,CAAC;QACjB,KAAK,IAAI,WAAW,IAAI,CAAC,cAAc,CAAC,WAAW,CAAA;QACnD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,QAAQ,GACV,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAA;YAC9D,KAAK,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,CAAA;QAC5D,CAAC;IACL,CAAC;SAAM,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAA;IAClD,CAAC;IAED,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7C,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YAC3C,CAAC,CAAC,GAAG,CAAC,SAAS;YACf,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACrB,UAAU,CAAC,OAAO,CACd,SAAS,CAAC,EAAE,CACR,CAAC,KAAK,IAAI,mBAAmB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CACvE,CAAA;IACL,CAAC;IAED,IAAI,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAChD,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC9B,MAAM,CAAC,OAAO,CACV,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,kBAAkB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CACtE,CAAA;IACL,CAAC;IAED,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAE5C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,KAAK,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAA;IACnD,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAA;IAChD,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpC,KAAK,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;QAC/C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAA;QACtE,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,eAAe,CAAA;QACxD,CAAC;IACL,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,KAAK,IAAI,6BAA6B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAA;IAClE,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,KAAK,IAAI,wFAAwF,UAAU,CACvG,GAAG,CAAC,GAAG,CACV,KAAK,CAAA;IACV,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACf,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,OAAO,CACpD,yBAAyB,EACzB,4BAA4B,CAC/B,CAAA;IACL,CAAC;IAED,OAAO,KAAK,GAAG,GAAG,CAAA;AACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../../src/exporter/jats/citations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAA;AAEzD,OAAO,KAAK,EAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAezD,qBAAa,qBAAqB;IAC9B,GAAG,EAAE,SAAS,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IAER,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,eAAe,GAAG,KAAK,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;gBAEvB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG;IAYlD,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CA6FnC"}
1
+ {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../../src/exporter/jats/citations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAA;AAEzD,OAAO,KAAK,EAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AAezD,qBAAa,qBAAqB;IAC9B,GAAG,EAAE,SAAS,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;IACZ,GAAG,EAAE,GAAG,CAAA;IAER,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,KAAK,EAAE,eAAe,GAAG,KAAK,CAAA;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;gBAEvB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG;IAYlD,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAqGnC"}
@@ -1,3 +1,4 @@
1
+ import { CSLExporter } from "biblatex-csl-converter";
1
2
  import { FormatCitations } from "../../citations/format.js";
2
3
  import { jatsBib } from "./bibliography.js";
3
4
  export class JATSExporterCitations {
@@ -64,9 +65,11 @@ export class JATSExporterCitations {
64
65
  if (!bibliography) {
65
66
  return Promise.resolve();
66
67
  }
68
+ const entryIds = bibliography[0].entry_ids.map(id => String(id));
69
+ const cslItems = new CSLExporter(this.bibDB.db, entryIds).parse();
67
70
  bibliography[0].entry_ids.forEach((id, index) => {
68
71
  this.jatsIdConvert[id] = index + 1;
69
- this.jatsBib += jatsBib(this.bibDB.db[id], index + 1);
72
+ this.jatsBib += jatsBib((cslItems[String(id)] || {}), index + 1);
70
73
  });
71
74
  this.citationTexts = citFm.citationTexts.map((ref, index) => {
72
75
  const content = ref
@@ -1 +1 @@
1
- {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/exporter/jats/citations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"citations.js","sourceRoot":"","sources":["../../../src/exporter/jats/citations.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ export { updateFile } from "./update.js";
3
3
  export { updateTemplateFile } from "./update_template.js";
4
4
  export { extractTemplate } from "./extract_template.js";
5
5
  export { NativeImporter } from "./importer.js";
6
- export { FidusFileImporter } from "./file.js";
6
+ export { FidusFileImporter, MIN_FW_DOCUMENT_VERSION, MAX_FW_DOCUMENT_VERSION } from "./file.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/importer/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/importer/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EACH,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,WAAW,CAAA"}
@@ -3,5 +3,5 @@ export { updateFile } from "./update.js";
3
3
  export { updateTemplateFile } from "./update_template.js";
4
4
  export { extractTemplate } from "./extract_template.js";
5
5
  export { NativeImporter } from "./importer.js";
6
- export { FidusFileImporter } from "./file.js";
6
+ export { FidusFileImporter, MIN_FW_DOCUMENT_VERSION, MAX_FW_DOCUMENT_VERSION } from "./file.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/importer/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/importer/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAA;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAC,eAAe,EAAC,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAA;AAC5C,OAAO,EACH,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EAC1B,MAAM,WAAW,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fiduswriter/document",
3
- "version": "0.1.0-alpha.6",
3
+ "version": "0.1.0-alpha.9",
4
4
  "description": "Fidus Writer document schema, importers and exporters",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,7 +1,35 @@
1
1
  import {escapeText} from "fwtoolkit"
2
2
 
3
- import type {BibDBEntry, FidusNode} from "../../types.js"
4
- import {convertTexts} from "./text.js"
3
+ // CSL-JSON item as produced by biblatex-csl-converter's CSLExporter.
4
+ interface CSLName {
5
+ family?: string
6
+ given?: string
7
+ literal?: string
8
+ prefix?: string
9
+ suffix?: string
10
+ }
11
+
12
+ interface CSLDate {
13
+ "date-parts"?: number[][]
14
+ literal?: string
15
+ }
16
+
17
+ interface CSLItem {
18
+ type?: string
19
+ title?: string
20
+ "container-title"?: string
21
+ author?: CSLName[]
22
+ editor?: CSLName[]
23
+ publisher?: string | string[]
24
+ "publisher-place"?: string | string[]
25
+ issued?: CSLDate | string
26
+ volume?: string
27
+ issue?: string
28
+ page?: string
29
+ DOI?: string
30
+ URL?: string
31
+ accessed?: CSLDate | string
32
+ }
5
33
 
6
34
  // This list is based on values listed at https://jats.nlm.nih.gov/archiving/tag-library/1.2/attribute/publication-type.html
7
35
  // And the advice given here: https://jats4r.org/citations/#recommendation
@@ -44,155 +72,178 @@ const PUBLICATION_TYPES: Record<string, string> = {
44
72
  unpublished: "standard"
45
73
  }
46
74
 
47
- interface NameLike {
48
- literal?: string
49
- family?: string
50
- given?: string
51
- prefix?: string
52
- suffix?: string
75
+ function text(value: unknown): string {
76
+ if (value === undefined || value === null) {
77
+ return ""
78
+ }
79
+ if (Array.isArray(value)) {
80
+ return value.map(text).join("")
81
+ }
82
+ return escapeText(String(value))
83
+ }
84
+
85
+ function renderName(name: CSLName): string {
86
+ if (name.literal) {
87
+ return `<collab>${text(name.literal)}</collab>`
88
+ }
89
+ let nameStart = "<name>"
90
+ if (name.family) {
91
+ nameStart += `<surname>${text(name.family)}</surname>`
92
+ }
93
+ if (name.given) {
94
+ nameStart += ` <given-names>${text(name.given)}</given-names>`
95
+ }
96
+ if (name.prefix) {
97
+ nameStart += ` <prefix>${text(name.prefix)}</prefix>`
98
+ }
99
+ if (name.suffix) {
100
+ nameStart += ` <suffix>${text(name.suffix)}</suffix>`
101
+ }
102
+ return nameStart + "</name>"
103
+ }
104
+
105
+ function renderNameList(
106
+ names: CSLName[] | undefined,
107
+ personGroupType: string
108
+ ): string {
109
+ if (!names || !names.length) {
110
+ return ""
111
+ }
112
+ return `<person-group person-group-type="${personGroupType}">${names
113
+ .map(renderName)
114
+ .join(", ")}</person-group>`
115
+ }
116
+
117
+ function parseDateParts(dateParts?: number[]): {
118
+ year: string
119
+ month: string
120
+ day: string
121
+ } {
122
+ return {
123
+ year: dateParts && dateParts[0] ? String(dateParts[0]) : "",
124
+ month: dateParts && dateParts[1] ? String(dateParts[1]) : "",
125
+ day: dateParts && dateParts[2] ? String(dateParts[2]) : ""
126
+ }
127
+ }
128
+
129
+ function renderDate(
130
+ issued: CSLDate | string | undefined,
131
+ dateType: string
132
+ ): string {
133
+ if (!issued) {
134
+ return ""
135
+ }
136
+ let isoDate: string
137
+ let year = ""
138
+ let month = ""
139
+ let day = ""
140
+ if (typeof issued === "string") {
141
+ isoDate = issued
142
+ const parts = issued.split("-")
143
+ year = parts[0] || ""
144
+ month = parts[1] || ""
145
+ day = parts[2] || ""
146
+ } else if (issued["date-parts"] && issued["date-parts"][0]) {
147
+ const parts = parseDateParts(issued["date-parts"][0])
148
+ year = parts.year
149
+ month = parts.month
150
+ day = parts.day
151
+ isoDate = `${year}${month ? "-" + month.padStart(2, "0") : ""}${
152
+ day ? "-" + day.padStart(2, "0") : ""
153
+ }`
154
+ } else if (issued.literal) {
155
+ isoDate = issued.literal
156
+ year = isoDate.split("-")[0] || ""
157
+ } else {
158
+ return ""
159
+ }
160
+ return `<date iso-8601-date="${escapeText(isoDate)}" date-type="${dateType}">${
161
+ day ? `<day>${text(day)}</day>` : ""
162
+ }${month ? `<month>${text(month)}</month>` : ""}<year>${text(
163
+ year
164
+ )}</year></date>`
53
165
  }
54
166
 
55
- export function jatsBib(bib: BibDBEntry, id: number): string {
56
- let start = "",
57
- end = ""
58
- start += `<ref id="ref-${id}">`
59
- end = "</ref>" + end
60
- // Type
61
- const publicationType = PUBLICATION_TYPES[bib.bib_type || ""] ?? "standard"
167
+ export function jatsBib(bib: CSLItem, id: number): string {
168
+ let start = `<ref id="ref-${id}">`
169
+ let end = "</ref>"
170
+
171
+ const publicationType = PUBLICATION_TYPES[bib.type || ""] ?? "standard"
62
172
  start += `<element-citation publication-type="${publicationType}">`
63
173
  end = "</element-citation>" + end
64
174
 
65
- const fields = (bib.fields || {}) as Record<string, unknown>
66
-
67
- // authors
68
- if (fields.author && Array.isArray(fields.author) && fields.author.length) {
69
- start += `<person-group person-group-type="author">${fields.author
70
- .map((author: unknown) => {
71
- const a = author as NameLike
72
- if (a.literal) {
73
- return `<collab>${convertTexts((a.literal) as unknown as FidusNode[])}</collab>`
74
- }
75
- let nameStart = `<name><surname>${convertTexts((a.family || "") as unknown as FidusNode[])}</surname> <given-names>${convertTexts((a.given || "") as unknown as FidusNode[])}</given-names>`
76
- if (a.prefix && a.prefix.length) {
77
- nameStart += ` <prefix>${convertTexts((a.prefix) as unknown as FidusNode[])}</prefix>`
78
- }
79
- if (a.suffix && a.suffix.length) {
80
- nameStart += ` <suffix>${convertTexts((a.suffix) as unknown as FidusNode[])}</suffix>`
81
- }
82
- const nameEnd = "</name>"
83
- return nameStart + nameEnd
84
- })
85
- .join(", ")}</person-group>`
86
- }
87
-
88
- // title && container title
89
- if (fields.title) {
90
- if (
91
- fields.shortjournal ||
92
- fields.booktitle ||
93
- fields.journaltitle
94
- ) {
95
- start += `<source>${convertTexts((String(fields.shortjournal || fields.booktitle || fields.journaltitle) as unknown as FidusNode[]))}</source>`
96
- start += `<article-title>${convertTexts((String(fields.title) as unknown as FidusNode[]))}</article-title>`
97
- } else {
98
- start += `<source>${convertTexts((String(fields.title) as unknown as FidusNode[]))}</source>`
175
+ start += renderNameList(bib.author, "author")
176
+
177
+ const containerTitle = bib["container-title"]
178
+ if (containerTitle) {
179
+ start += `<source>${text(containerTitle)}</source>`
180
+ if (bib.title) {
181
+ const titleTag =
182
+ bib.type === "chapter" ? "chapter-title" : "article-title"
183
+ start += `<${titleTag}>${text(bib.title)}</${titleTag}>`
99
184
  }
185
+ } else if (bib.title) {
186
+ start += `<source>${text(bib.title)}</source>`
187
+ }
188
+
189
+ start += renderNameList(bib.editor, "editor")
190
+
191
+ if (bib.publisher) {
192
+ const publishers = Array.isArray(bib.publisher)
193
+ ? bib.publisher
194
+ : [bib.publisher]
195
+ publishers.forEach(
196
+ publisher =>
197
+ (start += `<publisher-name>${text(publisher)}</publisher-name>`)
198
+ )
199
+ }
200
+
201
+ if (bib["publisher-place"]) {
202
+ const places = Array.isArray(bib["publisher-place"])
203
+ ? bib["publisher-place"]
204
+ : [bib["publisher-place"]]
205
+ places.forEach(
206
+ place => (start += `<publisher-loc>${text(place)}</publisher-loc>`)
207
+ )
100
208
  }
101
209
 
102
- // editors
103
- if (fields.editor && Array.isArray(fields.editor) && fields.editor.length) {
104
- start += `<person-group person-group-type="editor">${fields.editor
105
- .map((editor: unknown) => {
106
- const e = editor as NameLike
107
- if (e.literal) {
108
- return `<collab>${convertTexts((e.literal) as unknown as FidusNode[])}</collab>`
109
- }
110
- let nameStart = `<name><surname>${convertTexts((e.family || "") as unknown as FidusNode[])}</surname> <given-names>${convertTexts((e.given || "") as unknown as FidusNode[])}</given-names>`
111
- const nameEnd = "</name>"
112
- if (e.prefix && e.prefix.length) {
113
- nameStart += ` <prefix>${convertTexts((e.prefix) as unknown as FidusNode[])}</prefix>`
114
- }
115
- if (e.suffix && e.suffix.length) {
116
- nameStart += ` <suffix>${convertTexts((e.suffix) as unknown as FidusNode[])}</suffix>`
117
- }
118
- return nameStart + nameEnd
119
- })
120
- .join(", ")}</person-group>`
121
- }
122
-
123
- // publisher
124
- if (fields.publisher && Array.isArray(fields.publisher) && fields.publisher.length) {
125
- start += fields.publisher
126
- .map(
127
- publisher =>
128
- `<publisher-name>${convertTexts((String(publisher) as unknown as FidusNode[]))}</publisher-name>`
129
- )
130
- .join("")
131
- }
132
-
133
- // location
134
- if (fields.location && Array.isArray(fields.location) && fields.location.length) {
135
- start += fields.location
136
- .map(
137
- location =>
138
- `<publisher-loc>${convertTexts((String(location) as unknown as FidusNode[]))}</publisher-loc>`
139
- )
140
- .join("")
141
- }
142
-
143
- // date
144
- if (fields.date && String(fields.date).length) {
145
- const date = String(fields.date)
146
- const dateParts = date.split("-")
147
- start += `<date iso-8601-date="${date}" date-type="published">${
148
- dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""
149
- }${
150
- dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""
151
- }<year>${dateParts[0]}</year></date>`
152
- }
153
-
154
- // volume
155
- if (fields.volume && String(fields.volume).length) {
156
- start += `<volume>${convertTexts((String(fields.volume) as unknown as FidusNode[]))}</volume>`
157
- }
158
-
159
- // issue
160
- if (fields.issue && String(fields.issue).length) {
161
- start += `<issue>${convertTexts((String(fields.issue) as unknown as FidusNode[]))}</issue>`
162
- }
163
-
164
- // pages
165
- if (fields.pages && Array.isArray(fields.pages) && fields.pages.length) {
166
- const pages = fields.pages as Array<string[]>
167
- start += `<fpage>${convertTexts((pages[0][0]) as unknown as FidusNode[])}</fpage>`
168
- const lastPageGroup = pages.slice(-1)[0]
169
- start += `<lpage>${convertTexts((lastPageGroup.slice(-1)[0]) as unknown as FidusNode[])}</lpage>`
170
- if (pages.length > 1) {
171
- start += `<page-range>${pages
172
- .map(pageGroup => pageGroup.map(page => convertTexts((page) as unknown as FidusNode[])).join("-"))
173
- .join(", ")}</page-range>`
210
+ start += renderDate(bib.issued, "published")
211
+
212
+ if (bib.volume) {
213
+ start += `<volume>${text(bib.volume)}</volume>`
214
+ }
215
+
216
+ if (bib.issue) {
217
+ start += `<issue>${text(bib.issue)}</issue>`
218
+ }
219
+
220
+ if (bib.page) {
221
+ const pageStr = String(bib.page)
222
+ const pageParts = pageStr.split("-")
223
+ start += `<fpage>${text(pageParts[0])}</fpage>`
224
+ if (pageParts.length > 1) {
225
+ start += `<lpage>${text(pageParts[pageParts.length - 1])}</lpage>`
226
+ }
227
+ if (pageParts.length > 2) {
228
+ start += `<page-range>${text(pageStr)}</page-range>`
174
229
  }
175
230
  }
176
231
 
177
- // doi
178
- if (fields.doi && String(fields.doi).length) {
179
- start += `<pub-id pub-id-type="doi">${escapeText(String(fields.doi))}</pub-id>`
232
+ if (bib.DOI) {
233
+ start += `<pub-id pub-id-type="doi">${text(bib.DOI)}</pub-id>`
180
234
  }
181
235
 
182
- // url
183
- if (fields.url && String(fields.url).length) {
184
- start += `<ext-link ext-link-type="web" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${escapeText(String(fields.url))}"/>`
236
+ if (bib.URL) {
237
+ start += `<ext-link ext-link-type="web" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${escapeText(
238
+ bib.URL
239
+ )}"/>`
185
240
  }
186
241
 
187
- // url date
188
- if (fields.urldate && String(fields.urldate).length) {
189
- const date = String(fields.urldate)
190
- const dateParts = date.split("-")
191
- start += `<date-in-citation content-type="access-date" iso-8601-date="${date}">${
192
- dateParts.length > 2 ? `<day>${dateParts[2]}</day>` : ""
193
- }${
194
- dateParts.length > 1 ? `<month>${dateParts[1]}</month>` : ""
195
- }<year>${dateParts[0]}</year></date-in-citation>`
242
+ if (bib.accessed) {
243
+ start += renderDate(bib.accessed, "access-date").replace(
244
+ 'date-type="access-date"',
245
+ 'content-type="access-date"'
246
+ )
196
247
  }
197
248
 
198
249
  return start + end
@@ -1,3 +1,5 @@
1
+ import {CSLExporter} from "biblatex-csl-converter"
2
+
1
3
  import {FormatCitations} from "../../citations/format.js"
2
4
 
3
5
  import type {BibDB, CSL, ExportDoc} from "../../types.js"
@@ -96,9 +98,17 @@ export class JATSExporterCitations {
96
98
  if (!bibliography) {
97
99
  return Promise.resolve()
98
100
  }
101
+ const entryIds = bibliography[0].entry_ids.map(id => String(id))
102
+ const cslItems = new CSLExporter(
103
+ this.bibDB.db as Record<string, any>,
104
+ entryIds
105
+ ).parse() as Record<string, Record<string, unknown>>
99
106
  bibliography[0].entry_ids.forEach((id, index) => {
100
107
  this.jatsIdConvert[id] = index + 1
101
- this.jatsBib += jatsBib(this.bibDB.db[id], index + 1)
108
+ this.jatsBib += jatsBib(
109
+ (cslItems[String(id)] || {}) as any,
110
+ index + 1
111
+ )
102
112
  })
103
113
  this.citationTexts = citFm.citationTexts.map(
104
114
  (ref, index) => {
@@ -3,4 +3,8 @@ export {updateFile} from "./update.js"
3
3
  export {updateTemplateFile} from "./update_template.js"
4
4
  export {extractTemplate} from "./extract_template.js"
5
5
  export {NativeImporter} from "./importer.js"
6
- export {FidusFileImporter} from "./file.js"
6
+ export {
7
+ FidusFileImporter,
8
+ MIN_FW_DOCUMENT_VERSION,
9
+ MAX_FW_DOCUMENT_VERSION
10
+ } from "./file.js"