@amermathsoc/texml-to-html 19.0.1 → 20.1.0

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.
Files changed (132) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/elements/article-metadata-json.js +10 -12
  3. package/lib/elements/sec.js +4 -1
  4. package/lib/elements/strike.js +26 -0
  5. package/lib/transformer.js +10 -1
  6. package/package.json +1 -1
  7. package/test/article-alttitle-meta-snapshot.json +1 -1
  8. package/test/article-meta-snapshot.json +8 -5
  9. package/test/article-nometa-meta-snapshot.json +1 -1
  10. package/test/article.xml +3 -1
  11. package/test/element-strike.js +26 -0
  12. package/test/snapshots/article--alttitle.html +1 -1
  13. package/test/snapshots/article--nometa.html +1 -1
  14. package/test/snapshots/article.html +9 -5
  15. package/test/snapshots/texml-tests/LGR.html +1 -1
  16. package/test/snapshots/texml-tests/OT1.html +1 -1
  17. package/test/snapshots/texml-tests/OT1ti.html +1 -1
  18. package/test/snapshots/texml-tests/OT1tt.html +1 -1
  19. package/test/snapshots/texml-tests/OT2.html +1 -1
  20. package/test/snapshots/texml-tests/OT4.html +1 -1
  21. package/test/snapshots/texml-tests/OT6.html +1 -1
  22. package/test/snapshots/texml-tests/T1.html +1 -1
  23. package/test/snapshots/texml-tests/T4.html +1 -1
  24. package/test/snapshots/texml-tests/T5.html +1 -1
  25. package/test/snapshots/texml-tests/Ucharcat.html +1 -1
  26. package/test/snapshots/texml-tests/accent.html +1 -1
  27. package/test/snapshots/texml-tests/algorithm.html +1 -1
  28. package/test/snapshots/texml-tests/algorithmic.html +1 -1
  29. package/test/snapshots/texml-tests/algpseudocode.html +1 -1
  30. package/test/snapshots/texml-tests/ams_measure.html +1 -1
  31. package/test/snapshots/texml-tests/amsart.html +1 -1
  32. package/test/snapshots/texml-tests/amscyr.html +1 -1
  33. package/test/snapshots/texml-tests/amsfonts.html +1 -1
  34. package/test/snapshots/texml-tests/amsrefs.html +1 -1
  35. package/test/snapshots/texml-tests/amsthm-swap.html +1 -1
  36. package/test/snapshots/texml-tests/amsthm.html +1 -1
  37. package/test/snapshots/texml-tests/amsviet.html +1 -1
  38. package/test/snapshots/texml-tests/appendix.html +1 -1
  39. package/test/snapshots/texml-tests/array.html +1 -1
  40. package/test/snapshots/texml-tests/article.html +1 -1
  41. package/test/snapshots/texml-tests/arxiv.html +1 -1
  42. package/test/snapshots/texml-tests/arydshln.html +1 -1
  43. package/test/snapshots/texml-tests/aufm.html +1 -1
  44. package/test/snapshots/texml-tests/begincsname.html +1 -1
  45. package/test/snapshots/texml-tests/boldline.html +1 -1
  46. package/test/snapshots/texml-tests/boxes.html +1 -1
  47. package/test/snapshots/texml-tests/caption.html +1 -1
  48. package/test/snapshots/texml-tests/ccicons.html +1 -1
  49. package/test/snapshots/texml-tests/cite.html +1 -1
  50. package/test/snapshots/texml-tests/citesort.html +1 -1
  51. package/test/snapshots/texml-tests/cleveref.html +1 -1
  52. package/test/snapshots/texml-tests/colortbl.html +1 -1
  53. package/test/snapshots/texml-tests/combinetoks.html +1 -1
  54. package/test/snapshots/texml-tests/constants.html +1 -1
  55. package/test/snapshots/texml-tests/csstring.html +1 -1
  56. package/test/snapshots/texml-tests/detokenize.html +1 -1
  57. package/test/snapshots/texml-tests/diacritics.html +1 -1
  58. package/test/snapshots/texml-tests/dimexpr.html +1 -1
  59. package/test/snapshots/texml-tests/euscript.html +1 -1
  60. package/test/snapshots/texml-tests/everyeof.html +1 -1
  61. package/test/snapshots/texml-tests/expanded.html +1 -1
  62. package/test/snapshots/texml-tests/expl3.html +1 -1
  63. package/test/snapshots/texml-tests/extarrows.html +1 -1
  64. package/test/snapshots/texml-tests/framedboxes.html +1 -1
  65. package/test/snapshots/texml-tests/glueexpr.html +1 -1
  66. package/test/snapshots/texml-tests/halign.html +1 -1
  67. package/test/snapshots/texml-tests/hello.html +1 -1
  68. package/test/snapshots/texml-tests/hhline.html +1 -1
  69. package/test/snapshots/texml-tests/hline.html +1 -1
  70. package/test/snapshots/texml-tests/hyperams.html +1 -1
  71. package/test/snapshots/texml-tests/ifcondition.html +1 -1
  72. package/test/snapshots/texml-tests/ifcsname.html +1 -1
  73. package/test/snapshots/texml-tests/ifdefined.html +1 -1
  74. package/test/snapshots/texml-tests/ifdim.html +1 -1
  75. package/test/snapshots/texml-tests/ifnum.html +1 -1
  76. package/test/snapshots/texml-tests/ifprimitive.html +1 -1
  77. package/test/snapshots/texml-tests/immediateassigned.html +1 -1
  78. package/test/snapshots/texml-tests/immediateassignment.html +1 -1
  79. package/test/snapshots/texml-tests/index.html +1 -1
  80. package/test/snapshots/texml-tests/lastbox.html +1 -1
  81. package/test/snapshots/texml-tests/lastkern.html +1 -1
  82. package/test/snapshots/texml-tests/lastnamedcs.html +1 -1
  83. package/test/snapshots/texml-tests/let.html +1 -1
  84. package/test/snapshots/texml-tests/letcharcode.html +1 -1
  85. package/test/snapshots/texml-tests/ligatures.html +1 -1
  86. package/test/snapshots/texml-tests/listings.html +1 -1
  87. package/test/snapshots/texml-tests/longtable.html +1 -1
  88. package/test/snapshots/texml-tests/makecell.html +1 -1
  89. package/test/snapshots/texml-tests/maketitle.html +1 -1
  90. package/test/snapshots/texml-tests/manfnt.html +1 -1
  91. package/test/snapshots/texml-tests/mathscinet.html +1 -1
  92. package/test/snapshots/texml-tests/mathscr.html +1 -1
  93. package/test/snapshots/texml-tests/meaning.html +1 -1
  94. package/test/snapshots/texml-tests/metadata.html +1 -1
  95. package/test/snapshots/texml-tests/muexpr.html +1 -1
  96. package/test/snapshots/texml-tests/multicolumn.html +1 -1
  97. package/test/snapshots/texml-tests/multirow.html +1 -1
  98. package/test/snapshots/texml-tests/multirowcell.html +1 -1
  99. package/test/snapshots/texml-tests/multline.html +1 -1
  100. package/test/snapshots/texml-tests/nameref.html +1 -1
  101. package/test/snapshots/texml-tests/names.html +1 -1
  102. package/test/snapshots/texml-tests/noexpand.html +1 -1
  103. package/test/snapshots/texml-tests/noindent.html +1 -1
  104. package/test/snapshots/texml-tests/numexpr.html +1 -1
  105. package/test/snapshots/texml-tests/parshape.html +1 -1
  106. package/test/snapshots/texml-tests/protected.html +1 -1
  107. package/test/snapshots/texml-tests/quote.html +1 -1
  108. package/test/snapshots/texml-tests/ref.html +1 -1
  109. package/test/snapshots/texml-tests/refrange.html +1 -1
  110. package/test/snapshots/texml-tests/scantokens.html +1 -1
  111. package/test/snapshots/texml-tests/section.html +1 -1
  112. package/test/snapshots/texml-tests/showonlyrefs.html +1 -1
  113. package/test/snapshots/texml-tests/smash.html +1 -1
  114. package/test/snapshots/texml-tests/strcmp.html +1 -1
  115. package/test/snapshots/texml-tests/string.html +1 -1
  116. package/test/snapshots/texml-tests/sub_sup.html +1 -1
  117. package/test/snapshots/texml-tests/subcaption.html +1 -1
  118. package/test/snapshots/texml-tests/subfig.html +1 -1
  119. package/test/snapshots/texml-tests/subfigure.html +1 -1
  120. package/test/snapshots/texml-tests/tabular.html +1 -1
  121. package/test/snapshots/texml-tests/tcolorbox.html +1 -1
  122. package/test/snapshots/texml-tests/textequation.html +1 -1
  123. package/test/snapshots/texml-tests/thm-restate.html +1 -1
  124. package/test/snapshots/texml-tests/tracingnodes.html +1 -1
  125. package/test/snapshots/texml-tests/unexpanded.html +1 -1
  126. package/test/snapshots/texml-tests/unless.html +1 -1
  127. package/test/snapshots/texml-tests/upgreek.html +1 -1
  128. package/test/snapshots/texml-tests/url.html +1 -1
  129. package/test/snapshots/texml-tests/verb.html +1 -1
  130. package/test/snapshots/texml-tests/vlist.html +1 -1
  131. package/test/snapshots/texml-tests/xcolor.html +1 -1
  132. package/test/snapshots/texml-tests/xmllabel.html +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [20.1.0](https://github.com/AmerMathSoc/texml-to-html/compare/v20.0.0...v20.1.0) (2026-01-13)
6
+
7
+
8
+ ### Features
9
+
10
+ * support strike element ([7f804f2](https://github.com/AmerMathSoc/texml-to-html/commit/7f804f2658a94d392308834c376e3ce0e59ba3a5)), closes [#497](https://github.com/AmerMathSoc/texml-to-html/issues/497)
11
+
12
+ ## [20.0.0](https://github.com/AmerMathSoc/texml-to-html/compare/v19.0.1...v20.0.0) (2026-01-08)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * JSON metadata for related articles has changed (#493).
18
+
19
+ ### Features
20
+
21
+ * revise related-article handling ([3489681](https://github.com/AmerMathSoc/texml-to-html/commit/3489681fd3db9f8941bdfd8a4e4c66d1d0920dba)), closes [#493](https://github.com/AmerMathSoc/texml-to-html/issues/493)
22
+
5
23
  ## [19.0.1](https://github.com/AmerMathSoc/texml-to-html/compare/v19.0.0...v19.0.1) (2026-01-07)
6
24
 
7
25
 
@@ -95,13 +95,12 @@ export function generateArticleJson(articleMetaNode) {
95
95
  articleMetaJson.identifiers.amsref = articleMetaNode.querySelector('article-citation')?.textContent.trim();
96
96
 
97
97
  // related articles
98
- articleMetaNode.querySelectorAll('related-article').forEach(relatedArticle => {
99
- const pii = relatedArticle.querySelector('pub-id[pub-id-type="pii"]').textContent;
100
- const link = relatedArticle.querySelector('ext-link');
101
- articleMetaJson.relatedArticles[pii] = {
98
+ articleMetaJson.relatedArticles = articleMetaNode.querySelectorAll('related-article').map(relatedArticle => {
99
+ return {
102
100
  type: relatedArticle.getAttribute('related-article-type'),
103
- url: link.getAttribute('ext-link'),
104
- linkText: link.textContent,
101
+ html: relatedArticle.getAttribute('xml:lang') ?
102
+ `<span lang="${relatedArticle.getAttribute('xml:lang')}">${this.passthroughIntoHTMLString(relatedArticle)}</span>`
103
+ : this.passthroughIntoHTMLString(relatedArticle),
105
104
  };
106
105
  });
107
106
 
@@ -130,11 +129,11 @@ export function generateArticleJson(articleMetaNode) {
130
129
 
131
130
  // journal volume info
132
131
  articleMetaJson.volumeInfo = {
133
- volume: articleMetaNode.querySelector('volume')?.textContent,
134
- issue: articleMetaNode.querySelector('issue')?.textContent,
135
- pageFirst: articleMetaNode.querySelector('fpage')?.textContent,
136
- pageLast: articleMetaNode.querySelector('lpage')?.textContent,
137
- pageRange: articleMetaNode.querySelector('page-range')?.textContent,
132
+ volume: articleMetaNode.querySelector('article-meta > volume')?.textContent,
133
+ issue: articleMetaNode.querySelector('article-meta > issue')?.textContent,
134
+ pageFirst: articleMetaNode.querySelector('article-meta > fpage')?.textContent,
135
+ pageLast: articleMetaNode.querySelector('article-meta > lpage')?.textContent,
136
+ pageRange: articleMetaNode.querySelector('article-meta > page-range')?.textContent,
138
137
  }
139
138
 
140
139
  // categories
@@ -164,4 +163,3 @@ export function generateArticleJson(articleMetaNode) {
164
163
 
165
164
  return JSON.stringify(articleMetaJson, null, 4);
166
165
  };
167
-
@@ -82,7 +82,10 @@ export default function (htmlParentNode, xmlnode) {
82
82
  if (tagName === 'book-app-group') {
83
83
  section.setAttribute('data-ams-doc', 'app-group');
84
84
  }
85
- if (tagName === 'book-app' && !xmlnode.parentNode.closest('book-app')) section.setAttribute('role', 'doc-appendix'); // TODO: revisit after AmerMathSoc/texml#223
85
+ if (tagName === 'book-app' && !xmlnode.parentNode.closest('book-app')) {
86
+ section.setAttribute('role', 'doc-appendix'); // TODO: revisit after AmerMathSoc/texml#223
87
+ // section.setAttribute('data-ams-doc-level', '0')
88
+ }
86
89
 
87
90
  this.createHeading(section, xmlnode);
88
91
  this.passThrough(section, xmlnode);
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * Copyright (c) 2026 American Mathematical Society
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /**
18
+ * strike element
19
+ * @param {HTMLElement} htmlParentNode
20
+ * @param {Element} xmlnode
21
+ */
22
+ export default function (htmlParentNode, xmlnode) {
23
+ const node = this.createNode('s');
24
+ htmlParentNode.appendChild(node);
25
+ this.passThrough(node, xmlnode);
26
+ };
@@ -76,6 +76,7 @@ import TexMath from './elements/tex-math.js';
76
76
  import CiteGroup from './elements/cite-group.js';
77
77
  import CiteDetail from './elements/cite-detail.js';
78
78
  import TitleGroup from './elements/title-group.js';
79
+ import Strike from './elements/strike.js';
79
80
 
80
81
  import copyElement from './helpers/copyElement.js';
81
82
  import { extractContribGroups } from './helpers/extractContribGroups.js';
@@ -143,7 +144,14 @@ export class Transformer {
143
144
  'app-group',
144
145
  'book-title-group',
145
146
  'private-char',
146
- 'article-title' // NOTE: maybe map to label (like title)
147
+ 'article-title', // NOTE: maybe map to label (like title)
148
+ 'source',
149
+ 'issn',
150
+ 'volume',
151
+ 'issue',
152
+ 'year',
153
+ 'fpage',
154
+ 'lpage',
147
155
  ].forEach(mapTag.bind(null, this.passThrough));
148
156
  }
149
157
 
@@ -306,6 +314,7 @@ export class Transformer {
306
314
  'cite-detail' = CiteDetail.bind(this)
307
315
  'title-group' = TitleGroup.bind(this)
308
316
  'toc-title-group' = TitleGroup.bind(this)
317
+ strike = Strike.bind(this);
309
318
 
310
319
  // one-off reuse of imported elements
311
320
  // NOTE if RHS gets re-used more than once, use mapTag in the constructor
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amermathsoc/texml-to-html",
3
- "version": "19.0.1",
3
+ "version": "20.1.0",
4
4
  "type": "module",
5
5
  "description": "A NodeJS library for converting AMS-style JATS XML to HTML",
6
6
  "scripts": {
@@ -16,7 +16,7 @@
16
16
  "amsref": "",
17
17
  "basename": "journalIdundefined"
18
18
  },
19
- "relatedArticles": {},
19
+ "relatedArticles": [],
20
20
  "publishers": [
21
21
  {
22
22
  "name": "publisher-name",
@@ -17,13 +17,16 @@
17
17
  "amsref": "",
18
18
  "basename": "journalIdmanuscriptId"
19
19
  },
20
- "relatedArticles": {
21
- "S0894-0347-2023-01025-2": {
20
+ "relatedArticles": [
21
+ {
22
22
  "type": "erratum-forward",
23
- "url": "https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/",
24
- "linkText": "J. Amer. Math. Soc. 36 (2023), 1305-1308."
23
+ "html": "<a href=\"https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/\">J. Amer. Math. Soc. 36 (2023), 1305-1308.</a>"
24
+ },
25
+ {
26
+ "type": "original-language",
27
+ "html": "<span lang=\"ru-cyrl\"><span data-ams-doc=\"stringname\">Х. А. Хачатрян</span><ams-x>,</ams-x> <span data-ams-doc=\"stringname\">А. С. Петросян</span><ams-x>,</ams-x> Однопараметрическое семейство неограниченных положительных решений для одного класса нелинейных трехмерных интегральных уравнений с оператором типа Гаммерштейна–Немыцкого<ams-x>,</ams-x> Труды Московского математического общества <ams-x>(</ams-x>0134-8663<ams-x>)</ams-x> 84<ams-x>(</ams-x>1<ams-x>)</ams-x> <ams-x>(</ams-x>2023<ams-x>)</ams-x> 37<ams-x>–</ams-x>53<ams-x>.</ams-x> URL <a href=\"http://mi.mathnet.ru/mmo681\">http://mi.mathnet.ru/mmo681</a></span>"
25
28
  }
26
- },
29
+ ],
27
30
  "publishers": [
28
31
  {
29
32
  "name": "publisher-name",
@@ -7,7 +7,7 @@
7
7
  "uri": {},
8
8
  "basename": "noti20-1Cundefined"
9
9
  },
10
- "relatedArticles": {},
10
+ "relatedArticles": [],
11
11
  "publishers": [],
12
12
  "contributors": {
13
13
  "authors": [
package/test/article.xml CHANGED
@@ -79,8 +79,9 @@
79
79
  <self-uri xlink:href="href" content-type="pdf"/>
80
80
  <related-article related-article-type="erratum-forward">
81
81
  <pub-id pub-id-type="pii">S0894-0347-2023-01025-2</pub-id>
82
- <ext-link ext-link="https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/">J. Amer. Math. Soc. 36 (2023), 1305-1308.</ext-link>
82
+ <ext-link xlink:href="https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/">J. Amer. Math. Soc. 36 (2023), 1305-1308.</ext-link>
83
83
  </related-article>
84
+ <related-article hreflang="ru-cyrl" related-article-type="original-language" xlink:href="http://mi.mathnet.ru/mmo681" xml:lang="ru-cyrl"><string-name>Х. А. Хачатрян</string-name><x>,</x> <string-name>А. С. Петросян</string-name><x>,</x> <article-title>Однопараметрическое семейство неограниченных положительных решений для одного класса нелинейных трехмерных интегральных уравнений с оператором типа Гаммерштейна–Немыцкого</article-title><x>,</x> <source>Труды Московского математического общества</source> <x>(</x><issn>0134-8663</issn><x>)</x> <volume>84</volume><x>(</x><issue>1</issue><x>)</x> <x>(</x><year>2023</year><x>)</x> <fpage>37</fpage><x>–</x><lpage>53</lpage><x>.</x> URL <ext-link hreflang="ru-cyrl" xlink:href="http://mi.mathnet.ru/mmo681">http://mi.mathnet.ru/mmo681</ext-link></related-article>
84
85
  <article-citation/>
85
86
  <kwd-group>
86
87
  <kwd>keyword</kwd>
@@ -165,6 +166,7 @@
165
166
  <sc/>
166
167
  <monospace/>
167
168
  <underline/>
169
+ <strike/>
168
170
  <sans-serif/>
169
171
  <disp-quote specific-use="use">
170
172
  <p>Quote</p>
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * Copyright (c) 2026 American Mathematical Society
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+
18
+ import { article } from './helper.js';
19
+ import tape from 'tape';
20
+
21
+
22
+ tape('Template: strike', async function(t) {
23
+ t.plan(1);
24
+ const document = article;
25
+ t.ok(document.querySelector('s'), 'Strike element');
26
+ });
@@ -16,7 +16,7 @@
16
16
  "basename": "journalIdundefined",
17
17
  "amsref": ""
18
18
  },
19
- "relatedArticles": {},
19
+ "relatedArticles": [],
20
20
  "publishers": [
21
21
  {
22
22
  "name": "publisher-name",
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": "noti20-1Cundefined"
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {
14
14
  "authors": [
@@ -18,13 +18,16 @@
18
18
  "basename": "journalIdmanuscriptId",
19
19
  "amsref": ""
20
20
  },
21
- "relatedArticles": {
22
- "S0894-0347-2023-01025-2": {
21
+ "relatedArticles": [
22
+ {
23
23
  "type": "erratum-forward",
24
- "url": "https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/",
25
- "linkText": "J. Amer. Math. Soc. 36 (2023), 1305-1308."
24
+ "html": "<a href=\"https://www.ams.org/jams/2023-36-04/S0894-0347-2023-01025-2/\">J. Amer. Math. Soc. 36 (2023), 1305-1308.</a>"
25
+ },
26
+ {
27
+ "type": "original-language",
28
+ "html": "<span lang=\"ru-cyrl\"><span data-ams-doc=\"stringname\">Х. А. Хачатрян</span><ams-x>,</ams-x> <span data-ams-doc=\"stringname\">А. С. Петросян</span><ams-x>,</ams-x> Однопараметрическое семейство неограниченных положительных решений для одного класса нелинейных трехмерных интегральных уравнений с оператором типа Гаммерштейна–Немыцкого<ams-x>,</ams-x> Труды Московского математического общества <ams-x>(</ams-x>0134-8663<ams-x>)</ams-x> 84<ams-x>(</ams-x>1<ams-x>)</ams-x> <ams-x>(</ams-x>2023<ams-x>)</ams-x> 37<ams-x>–</ams-x>53<ams-x>.</ams-x> URL <a href=\"http://mi.mathnet.ru/mmo681\">http://mi.mathnet.ru/mmo681</a></span>"
26
29
  }
27
- },
30
+ ],
28
31
  "publishers": [
29
32
  {
30
33
  "name": "publisher-name",
@@ -150,6 +153,7 @@
150
153
  <span data-ams-style="sc"></span>
151
154
  <span data-ams-style="monospace"></span>
152
155
  <u></u>
156
+ <s></s>
153
157
  <span data-ams-style="sans-serif"></span>
154
158
  <blockquote data-ams-style="use">
155
159
  <p>Quote</p>
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {
14
14
  "authors": [
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {
14
14
  "authors": [
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {
14
14
  "authors": [
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},
@@ -8,7 +8,7 @@
8
8
  "uri": {},
9
9
  "basename": null
10
10
  },
11
- "relatedArticles": {},
11
+ "relatedArticles": [],
12
12
  "publishers": [],
13
13
  "contributors": {},
14
14
  "permissions": {},