@amermathsoc/texml-to-html 20.2.0 → 21.0.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 (201) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -2
  3. package/lib/elements/abstract.js +1 -1
  4. package/lib/elements/sec-meta.js +5 -3
  5. package/lib/elements/sec.js +6 -5
  6. package/lib/transformer.js +2 -3
  7. package/package.json +4 -4
  8. package/test/article--alttitle.xml +3 -3
  9. package/test/article--nometa.xml +2 -2
  10. package/test/article.xml +27 -25
  11. package/test/book--metadata.xml +6 -5
  12. package/test/book.xml +121 -65
  13. package/test/element-sec-meta.js +19 -9
  14. package/test/element-sec.js +5 -1
  15. package/test/snapshots/article--alttitle.html +2 -2
  16. package/test/snapshots/article.html +4 -2
  17. package/test/snapshots/book--metadata.html +5 -6
  18. package/test/snapshots/book.html +79 -48
  19. package/test/snapshots/texml-tests/{NLMnote.html → BITSnote.html} +3 -3
  20. package/test/snapshots/texml-tests/{NLMnote.xml → BITSnote.xml} +3 -3
  21. package/test/snapshots/texml-tests/LGR.xml +9 -9
  22. package/test/snapshots/texml-tests/OT1.xml +1 -1
  23. package/test/snapshots/texml-tests/OT1ti.xml +1 -1
  24. package/test/snapshots/texml-tests/OT1tt.xml +1 -1
  25. package/test/snapshots/texml-tests/OT2.xml +1 -1
  26. package/test/snapshots/texml-tests/OT4.xml +1 -1
  27. package/test/snapshots/texml-tests/OT6.xml +2 -2
  28. package/test/snapshots/texml-tests/T1.xml +1 -1
  29. package/test/snapshots/texml-tests/T4.xml +1 -1
  30. package/test/snapshots/texml-tests/T5.xml +1 -1
  31. package/test/snapshots/texml-tests/Ucharcat.xml +1 -1
  32. package/test/snapshots/texml-tests/accent.xml +1 -1
  33. package/test/snapshots/texml-tests/algorithmic.xml +24 -24
  34. package/test/snapshots/texml-tests/algpseudocode.xml +18 -18
  35. package/test/snapshots/texml-tests/ams_measure.xml +1 -1
  36. package/test/snapshots/texml-tests/amsart.html +7 -2
  37. package/test/snapshots/texml-tests/amsart.xml +7 -4
  38. package/test/snapshots/texml-tests/amsbook.html +22 -5
  39. package/test/snapshots/texml-tests/amsbook.xml +36 -11
  40. package/test/snapshots/texml-tests/amscyr.xml +1 -1
  41. package/test/snapshots/texml-tests/amsfonts.xml +1 -1
  42. package/test/snapshots/texml-tests/amsrefs.xml +1 -1
  43. package/test/snapshots/texml-tests/amsthm-swap.xml +1 -1
  44. package/test/snapshots/texml-tests/amsthm.xml +1 -1
  45. package/test/snapshots/texml-tests/amsviet.xml +1 -1
  46. package/test/snapshots/texml-tests/appendix-book.html +32 -27
  47. package/test/snapshots/texml-tests/appendix-book.xml +39 -31
  48. package/test/snapshots/texml-tests/appendix.xml +5 -5
  49. package/test/snapshots/texml-tests/array.xml +1 -1
  50. package/test/snapshots/texml-tests/article.xml +1 -1
  51. package/test/snapshots/texml-tests/arxiv.xml +1 -1
  52. package/test/snapshots/texml-tests/arydshln.xml +1 -1
  53. package/test/snapshots/texml-tests/aufm.xml +1 -1
  54. package/test/snapshots/texml-tests/autoref.html +54 -48
  55. package/test/snapshots/texml-tests/autoref.xml +66 -57
  56. package/test/snapshots/texml-tests/begincsname.xml +1 -1
  57. package/test/snapshots/texml-tests/boldline.xml +1 -1
  58. package/test/snapshots/texml-tests/book-app.html +20 -11
  59. package/test/snapshots/texml-tests/book-app.xml +25 -13
  60. package/test/snapshots/texml-tests/book-new.html +176 -0
  61. package/test/snapshots/texml-tests/book-new.xml +318 -0
  62. package/test/snapshots/texml-tests/book.html +14 -11
  63. package/test/snapshots/texml-tests/book.xml +19 -13
  64. package/test/snapshots/texml-tests/booktabs.xml +2 -2
  65. package/test/snapshots/texml-tests/boxes.xml +1 -1
  66. package/test/snapshots/texml-tests/caption.xml +1 -1
  67. package/test/snapshots/texml-tests/cite.html +1 -1
  68. package/test/snapshots/texml-tests/cite.xml +2 -2
  69. package/test/snapshots/texml-tests/citesort.xml +1 -1
  70. package/test/snapshots/texml-tests/cleveref.xml +2 -2
  71. package/test/snapshots/texml-tests/collection.html +60 -0
  72. package/test/snapshots/texml-tests/collection.xml +237 -0
  73. package/test/snapshots/texml-tests/colortbl.xml +1 -1
  74. package/test/snapshots/texml-tests/combinetoks.xml +1 -1
  75. package/test/snapshots/texml-tests/comments.html +41 -0
  76. package/test/snapshots/texml-tests/comments.xml +33 -0
  77. package/test/snapshots/texml-tests/constants.xml +1 -1
  78. package/test/snapshots/texml-tests/csstring.xml +1 -1
  79. package/test/snapshots/texml-tests/detokenize.xml +1 -1
  80. package/test/snapshots/texml-tests/diacritics.xml +1 -1
  81. package/test/snapshots/texml-tests/dimexpr.xml +1 -1
  82. package/test/snapshots/texml-tests/drm.html +1 -1
  83. package/test/snapshots/texml-tests/drm.xml +3 -3
  84. package/test/snapshots/texml-tests/edgecases.html +42 -0
  85. package/test/snapshots/texml-tests/edgecases.xml +20 -0
  86. package/test/snapshots/texml-tests/escapechar.html +47 -0
  87. package/test/snapshots/texml-tests/escapechar.xml +34 -0
  88. package/test/snapshots/texml-tests/escapeinside.html +44 -0
  89. package/test/snapshots/texml-tests/escapeinside.xml +28 -0
  90. package/test/snapshots/texml-tests/eurosym.html +45 -0
  91. package/test/snapshots/texml-tests/eurosym.xml +23 -0
  92. package/test/snapshots/texml-tests/euscript.xml +1 -1
  93. package/test/snapshots/texml-tests/everyeof.xml +1 -1
  94. package/test/snapshots/texml-tests/expanded.xml +1 -1
  95. package/test/snapshots/texml-tests/expl3.xml +1 -1
  96. package/test/snapshots/texml-tests/extarrows.xml +1 -1
  97. package/test/snapshots/texml-tests/footnote.html +33 -22
  98. package/test/snapshots/texml-tests/footnote.xml +72 -53
  99. package/test/snapshots/texml-tests/framedboxes.xml +1 -1
  100. package/test/snapshots/texml-tests/glueexpr.xml +1 -1
  101. package/test/snapshots/texml-tests/gobble.html +44 -0
  102. package/test/snapshots/texml-tests/gobble.xml +38 -0
  103. package/test/snapshots/texml-tests/gsm_l.html +25 -20
  104. package/test/snapshots/texml-tests/gsm_l.xml +33 -25
  105. package/test/snapshots/texml-tests/halign.xml +1 -1
  106. package/test/snapshots/texml-tests/hello.xml +1 -1
  107. package/test/snapshots/texml-tests/hhline.xml +1 -1
  108. package/test/snapshots/texml-tests/hline.xml +1 -1
  109. package/test/snapshots/texml-tests/hyperams.xml +1 -1
  110. package/test/snapshots/texml-tests/hyperref.xml +1 -1
  111. package/test/snapshots/texml-tests/i283.xml +2 -2
  112. package/test/snapshots/texml-tests/ifcondition.xml +1 -1
  113. package/test/snapshots/texml-tests/ifcsname.xml +1 -1
  114. package/test/snapshots/texml-tests/ifdefined.xml +1 -1
  115. package/test/snapshots/texml-tests/ifdim.xml +1 -1
  116. package/test/snapshots/texml-tests/ifnum.xml +1 -1
  117. package/test/snapshots/texml-tests/ifprimitive.xml +1 -1
  118. package/test/snapshots/texml-tests/immediateassigned.xml +1 -1
  119. package/test/snapshots/texml-tests/immediateassignment.xml +1 -1
  120. package/test/snapshots/texml-tests/index.xml +1 -1
  121. package/test/snapshots/texml-tests/lastbox.xml +1 -1
  122. package/test/snapshots/texml-tests/lastkern.xml +1 -1
  123. package/test/snapshots/texml-tests/lastnamedcs.xml +1 -1
  124. package/test/snapshots/texml-tests/let.xml +1 -1
  125. package/test/snapshots/texml-tests/letcharcode.xml +1 -1
  126. package/test/snapshots/texml-tests/ligatures.xml +3 -3
  127. package/test/snapshots/texml-tests/listings.html +7 -12
  128. package/test/snapshots/texml-tests/listings.xml +19 -10
  129. package/test/snapshots/texml-tests/listoffigures.html +98 -0
  130. package/test/snapshots/texml-tests/listoffigures.xml +180 -0
  131. package/test/snapshots/texml-tests/literate.html +41 -0
  132. package/test/snapshots/texml-tests/literate.xml +26 -0
  133. package/test/snapshots/texml-tests/longtable.xml +1 -1
  134. package/test/snapshots/texml-tests/makecell.xml +1 -1
  135. package/test/snapshots/texml-tests/maketitle.html +6 -2
  136. package/test/snapshots/texml-tests/maketitle.xml +4 -2
  137. package/test/snapshots/texml-tests/manfnt.xml +1 -1
  138. package/test/snapshots/texml-tests/mathscinet.xml +1 -1
  139. package/test/snapshots/texml-tests/mathscr.xml +1 -1
  140. package/test/snapshots/texml-tests/meaning.xml +1 -1
  141. package/test/snapshots/texml-tests/metadata.xml +1 -1
  142. package/test/snapshots/texml-tests/muexpr.xml +1 -1
  143. package/test/snapshots/texml-tests/multicolumn.xml +3 -3
  144. package/test/snapshots/texml-tests/multirow.xml +3 -3
  145. package/test/snapshots/texml-tests/multirowcell.xml +4 -4
  146. package/test/snapshots/texml-tests/multline.xml +1 -1
  147. package/test/snapshots/texml-tests/nameref.xml +2 -2
  148. package/test/snapshots/texml-tests/names.xml +1 -1
  149. package/test/snapshots/texml-tests/natbib.html +41 -26
  150. package/test/snapshots/texml-tests/natbib.xml +66 -44
  151. package/test/snapshots/texml-tests/noexpand.xml +1 -1
  152. package/test/snapshots/texml-tests/noindent.xml +1 -1
  153. package/test/snapshots/texml-tests/numexpr.xml +1 -1
  154. package/test/snapshots/texml-tests/oldfont.html +59 -0
  155. package/test/snapshots/texml-tests/oldfont.xml +37 -0
  156. package/test/snapshots/texml-tests/parshape.xml +1 -1
  157. package/test/snapshots/texml-tests/part.html +33 -25
  158. package/test/snapshots/texml-tests/part.xml +47 -33
  159. package/test/snapshots/texml-tests/perl.html +41 -0
  160. package/test/snapshots/texml-tests/perl.xml +32 -0
  161. package/test/snapshots/texml-tests/protected.xml +1 -1
  162. package/test/snapshots/texml-tests/quote.xml +1 -1
  163. package/test/snapshots/texml-tests/ref.xml +2 -2
  164. package/test/snapshots/texml-tests/refrange.xml +11 -11
  165. package/test/snapshots/texml-tests/scantokens.xml +1 -1
  166. package/test/snapshots/texml-tests/secmeta.html +4 -4
  167. package/test/snapshots/texml-tests/secmeta.xml +4 -4
  168. package/test/snapshots/texml-tests/section.xml +10 -10
  169. package/test/snapshots/texml-tests/showonlyrefs.xml +1 -1
  170. package/test/snapshots/texml-tests/smash.xml +1 -1
  171. package/test/snapshots/texml-tests/stepnumber-1.html +8 -0
  172. package/test/snapshots/texml-tests/stepnumber-1.xml +23 -0
  173. package/test/snapshots/texml-tests/stepnumber-2.html +6 -0
  174. package/test/snapshots/texml-tests/stepnumber-2.xml +21 -0
  175. package/test/snapshots/texml-tests/stepnumber-3.html +6 -0
  176. package/test/snapshots/texml-tests/stepnumber-3.xml +21 -0
  177. package/test/snapshots/texml-tests/strcmp.xml +1 -1
  178. package/test/snapshots/texml-tests/string-m.html +41 -0
  179. package/test/snapshots/texml-tests/string-m.xml +32 -0
  180. package/test/snapshots/texml-tests/string.xml +1 -1
  181. package/test/snapshots/texml-tests/strings.html +41 -0
  182. package/test/snapshots/texml-tests/strings.xml +31 -0
  183. package/test/snapshots/texml-tests/sub_sup.xml +1 -1
  184. package/test/snapshots/texml-tests/subcaption.xml +1 -1
  185. package/test/snapshots/texml-tests/tableofcontents.html +35 -26
  186. package/test/snapshots/texml-tests/tableofcontents.xml +60 -38
  187. package/test/snapshots/texml-tests/tabular.xml +1 -1
  188. package/test/snapshots/texml-tests/tcolorbox.xml +1 -1
  189. package/test/snapshots/texml-tests/texcl.html +18 -0
  190. package/test/snapshots/texml-tests/texcl.xml +68 -0
  191. package/test/snapshots/texml-tests/textequation.xml +1 -1
  192. package/test/snapshots/texml-tests/thm-restate.xml +1 -1
  193. package/test/snapshots/texml-tests/tracingnodes.xml +1 -1
  194. package/test/snapshots/texml-tests/unexpanded.xml +1 -1
  195. package/test/snapshots/texml-tests/unless.xml +1 -1
  196. package/test/snapshots/texml-tests/upgreek.xml +1 -1
  197. package/test/snapshots/texml-tests/url.xml +1 -1
  198. package/test/snapshots/texml-tests/verb.xml +1 -1
  199. package/test/snapshots/texml-tests/vlist.xml +1 -1
  200. package/test/snapshots/texml-tests/xcolor.xml +1 -1
  201. package/test/snapshots/texml-tests/xmllabel.xml +1 -1
package/test/book.xml CHANGED
@@ -154,7 +154,15 @@
154
154
  <p>Some notes.
155
155
  </p>
156
156
  </notes>
157
- <preface disp-level="1" id="preface">
157
+ <foreword id="foreword" specific-use="chapter">
158
+ <book-part-meta>
159
+ <title-group>
160
+ <title>Foreword</title>
161
+ </title-group>
162
+ </book-part-meta>
163
+ <named-book-part-body></named-book-part-body>
164
+ </foreword>
165
+ <preface id="preface">
158
166
  <book-part-meta>
159
167
  <title-group>
160
168
  <title>Preface</title>
@@ -190,97 +198,110 @@
190
198
  </front-matter-part>
191
199
  </front-matter>
192
200
  <book-body>
193
- <book-part>
201
+ <book-part id="chapter" specific-use="chapter">
194
202
  <body>
195
- <sec disp-level="2" id="chapter" specific-use="chapter">
196
- <def-list id="dlist1" content-type="itemize" html:style="list-style-type: disc">
197
- <def-item id="ditem1">
198
- <term>•</term> <def><p>Item 1</p></def>
199
- </def-item>
200
- </def-list>
201
- <p id="pwithx">Is <x>not</x> ignored.</p>
202
- </sec>
203
- <sec disp-level="1" id="chapter2" specific-use="chapter">
204
- <sec id="ack3" disp-level="2" specific-use="section">
203
+ <def-list id="dlist1" content-type="itemize" html:style="list-style-type: disc">
204
+ <def-item id="ditem1">
205
+ <term>•</term> <def><p>Item 1</p></def>
206
+ </def-item>
207
+ </def-list>
208
+ <p id="pwithx">Is <x>not</x> ignored.</p>
209
+ </body>
210
+ </book-part>
211
+ <book-part id="chapter2" specific-use="chapter">
212
+ <body>
213
+ <sec id="ack3" specific-use="section">
205
214
  <title>Acknowledg</title>
206
215
  </sec>
207
- <sec id="intro2" disp-level="2" specific-use="section">
216
+ <sec id="intro2" specific-use="section">
208
217
  <title>Introduction</title>
209
218
  </sec>
210
- <sec id="seclabeltitle" disp-level="2" specific-use="section">
219
+ <sec id="seclabeltitle" specific-use="section">
211
220
  <label>Label</label>
212
221
  <title>Title</title>
213
222
  </sec>
214
- <sec id="seclabel" disp-level="2" specific-use="section">
223
+ <sec id="seclabel" specific-use="section">
215
224
  <label>Label</label>
216
225
  </sec>
217
- <sec id="sectitle" disp-level="2" specific-use="section">
226
+ <sec id="sectitle" specific-use="section">
218
227
  <title>Title</title>
219
228
  </sec>
220
- </sec>
221
- <sec id="part" disp-level="1" specific-use="part">
222
- <sec disp-level="2" specific-use="chapter">
223
- <sec id="inparttitle" disp-level="3" specific-use="section">
229
+ </body>
230
+ </book-part>
231
+ <book-part id="part" specific-use="part">
232
+ <body>
233
+ <book-part specific-use="chapter">
234
+ <body>
235
+ <sec id="inparttitle" specific-use="section">
224
236
  <title>Title</title>
225
237
  </sec>
226
- <sec id="inpartlabel" disp-level="3" specific-use="section">
238
+ <sec id="inpartlabel" specific-use="section">
227
239
  <label>Label</label>
228
240
  </sec>
229
- <sec id="xcb" disp-level="3" specific-use="section" style="xcb">
241
+ <sec id="xcb" specific-use="section" style="xcb">
230
242
  <label>Exercise</label>
231
243
  </sec>
232
- </sec>
233
- </sec>
234
-
235
- <!-- NOTE sec-meta special treatment (see notes in code and tests)-->
236
- <sec disp-level="1" id="secmeta" specific-use="chapter">
237
- <title>Title</title>
238
- <sec-meta>
239
- <contrib-group>
240
- <!-- NOTE: this contrib-group example is for MCL 1, 14 only; intentionally broken via #254 -->
241
- <role>
242
- comment
243
- </role>
244
- </contrib-group>
245
- <abstract>
246
- <title>Abstract</title>
247
- </abstract>
248
- </sec-meta>
249
- </sec>
250
244
 
245
+ <!-- NOTE sec-meta special treatment (see notes in code and tests)-->
246
+ <sec id="secmeta" specific-use="section">
247
+ <title>Title</title>
248
+ <sec-meta>
249
+ <contrib-group>
250
+ <!-- NOTE: this contrib-group example is for MCL 1, 14 only; intentionally broken via #254 -->
251
+ <role>
252
+ comment
253
+ </role>
254
+ </contrib-group>
255
+ <abstract>
256
+ <title>Abstract</title>
257
+ </abstract>
258
+ </sec-meta>
259
+ </sec>
260
+ </body>
261
+ </book-part>
262
+ </body>
263
+ </book-part>
264
+ <book-part id="statementchapter" specific-use="chapter">
265
+ <body>
251
266
  <!-- statement etc -->
252
- <sec disp-level="1" id="statementchapter" specific-use="chapter">
253
267
  <statement content-type="content type" id="statement2" style="style">
254
268
  <label>Theorem 1</label>
255
269
  <p></p>
256
270
  </statement>
257
- </sec>
258
- <sec disp-level="1" id="statementpart" specific-use="part">
259
- <sec disp-level="2" id="statementpartchapter" specific-use="chapter">
260
- <sec disp-level="3" id="statementsection" specific-use="section">
271
+ </body>
272
+ </book-part>
273
+ <book-part id="statementpart" specific-use="part">
274
+ <body>
275
+ <sec id="statementpartchapter" specific-use="chapter">
276
+ <sec id="statementsection" specific-use="section">
261
277
  <statement content-type="content type" id="statement4" style="style">
262
278
  <label>Theorem 1</label>
263
279
  <p></p>
264
280
  </statement>
265
281
  </sec>
266
282
  </sec>
267
- </sec>
268
-
269
- <!-- statement etc -->
270
- <sec disp-level="1" id="reflistchapter" specific-use="chapter">
283
+ </body>
284
+ </book-part>
285
+ <book-part id="reflistchapter" specific-use="chapter">
286
+ <body>
287
+ <!-- ref-list in chapter -->
271
288
  <ref-list id="chapterreflist">
272
289
  <title>title</title>
273
290
  </ref-list>
274
- </sec>
275
-
276
- <!-- alt-title -->
277
- <sec disp-level="1" id="alttitle" specific-use="chapter">
278
- <label>Label<x>.</x></label>
279
- <title>Title</title>
280
- <alt-title>Alt title</alt-title>
281
- </sec>
291
+ </body>
292
+ </book-part>
293
+ <book-part id="alttitle" specific-use="chapter">
294
+ <body>
295
+ <book-part-meta>
296
+ <title-group>
297
+ <!-- alt-title -->
298
+ <label>Label<x>.</x></label>
299
+ <title>Title</title>
300
+ <alt-title>Alt title</alt-title>
301
+ </title-group>
302
+ </book-part-meta>
282
303
  <!-- simpletabbing -->
283
- <sec disp-level="1" id="tabbing" specific-use="chapter">
304
+ <sec id="tabbing" specific-use="chapter">
284
305
  <title>Tabbing</title>
285
306
  <simpletabbing id="simpletabbing">
286
307
  <line id="simpletabbing-line">Line</line>
@@ -288,29 +309,64 @@
288
309
  </simpletabbing>
289
310
  </sec>
290
311
  <!-- citegroup, cite-detail-->
291
- <sec disp-level="1" id="citegroup" specific-use="section">
312
+ <sec id="citegroup" specific-use="section">
292
313
  <cite-group><x>[</x><xref ref-type="bibr" rid="bibr-AEG0" specific-use="cite">AEG08<cite-detail><x>, </x>Section 5</cite-detail></xref><x>; </x><xref ref-type="bibr" rid="bibr-AEG0" specific-use="cite">AEG08</xref><x>]</x></cite-group>
293
314
  </sec>
294
-
295
315
  </body>
296
316
  </book-part>
317
+
318
+ <book-part id="bookPartMeta" specific-use="chapter">
319
+ <book-part-meta>
320
+ <title-group>
321
+ <title>Title</title>
322
+ <label>Label</label>
323
+ </title-group>
324
+ <contrib-group content-type="authors">
325
+ <contrib contrib-type="author">
326
+ <name>
327
+ <surname>Author</surname>
328
+ <given-names>A.</given-names>
329
+ </name>
330
+ <contrib-id contrib-id-type="orcid">0000</contrib-id>
331
+ <contrib-id contrib-id-type="mrauth">0000</contrib-id>
332
+ <xref ref-type="aff" rid="aff2_0l"/>
333
+ <email>author@example.com</email>
334
+ </contrib>
335
+ <aff id="aff2_0l">Author University</aff>
336
+ </contrib-group>
337
+ <abstract>
338
+ <title>Abstract<x>.</x></title>
339
+ <p>The abstract.</p>
340
+ </abstract>
341
+ <kwd-group vocab="MSC 2020" vocab-identifier="https://mathscinet.ams.org/msc/msc2020.html">
342
+ <compound-kwd content-type="primary">
343
+ <compound-kwd-part content-type="code">0000</compound-kwd-part>
344
+ <compound-kwd-part content-type="text">Text</compound-kwd-part>
345
+ </compound-kwd>
346
+ </kwd-group>
347
+ <funding-group>
348
+ <funding-statement>Funding</funding-statement>
349
+ </funding-group>
350
+ </book-part-meta>
351
+ <body></body>
352
+ </book-part>
297
353
  </book-body>
298
354
  <book-back>
299
355
  <book-app-group id="book-app-group">
300
- <book-app id="applabeltitle" disp-level="1" specific-use="chapter">
356
+ <book-app id="applabeltitle" specific-use="appendix">
301
357
  <label>Label<x>.</x></label>
302
358
  <title>Title</title>
303
359
  </book-app>
304
- <book-app id="applabel" disp-level="1" specific-use="chapter">
360
+ <book-app id="applabel" specific-use="chapter">
305
361
  <label>Label</label>
306
362
  </book-app>
307
- <book-app id="apptitle" disp-level="1" specific-use="chapter">
363
+ <book-app id="apptitle" specific-use="chapter">
308
364
  <title>Title</title>
309
365
  </book-app>
310
- <book-app id="appWithSection" disp-level="1" specific-use="chapter">
366
+ <book-app id="appWithSection" specific-use="chapter">
311
367
  <label>Label<x>.</x></label>
312
368
  <title>Title</title>
313
- <book-app id="appSection" disp-level="1" specific-use="section">
369
+ <book-app id="appSection" specific-use="section">
314
370
  <label>Label<x>.</x></label>
315
371
  <title>Title</title>
316
372
  </book-app>
@@ -17,27 +17,37 @@
17
17
  import { article, articleAlttitle, book } from './helper.js';
18
18
  import tape from 'tape';
19
19
 
20
- tape('Template: sec-meta => contrib-group, role, abstract/title', async function (t) {
21
- t.plan(10);
20
+ tape('Template: sec-meta', async function (t) {
21
+ t.plan(16);
22
22
 
23
23
  const document = book;
24
24
  const section = document.querySelector('#secmeta');
25
- const secMeta = section.querySelector('section[data-ams-doc="sec-meta"]');
25
+ const secMeta = section.querySelector('div[data-ams-doc="sec-meta"]');
26
26
  t.equal(secMeta.getAttribute('data-ams-contributors'), '{"null":[]}', 'book sec-meta');
27
- t.ok(section.querySelector('h1'), 'title becomes h1');
28
- t.equal(section.querySelector('h1').innerHTML, '<span data-ams-doc="title">Title</span>', 'title content in heading');
27
+ t.ok(section.querySelector('h2'), 'title becomes h2');
28
+ t.equal(section.querySelector('h2').innerHTML, '<span data-ams-doc="title">Title</span>', 'title content in heading');
29
29
  t.ok(section.querySelector('[role="doc-abstract"] h2'), 'abstract title becomes h2');
30
30
 
31
+ // book-part-meta
32
+ const bookPartMeta = document.querySelector('#bookPartMeta>div[data-ams-doc="sec-meta"]');
33
+ t.equal(bookPartMeta.getAttribute('data-ams-byline'), 'A. Author', 'book-part-meta: byline');
34
+ console.log()
35
+ t.equal(bookPartMeta.getAttribute('data-ams-contributors'), '{"authors":[{"name":"A. Author","bio":"","affiliations":["Author University"],"emails":["author@example.com"],"mrauth":"0000","orcid":"0000"}]}', 'book-part-meta: contrib-group');
36
+ t.ok(bookPartMeta.firstElementChild.tagName, 'h1', 'book-part-meta: title-group');
37
+ t.ok(bookPartMeta.querySelector('[role="doc-abstract"]'), 'book-part-meta: abstract');
38
+ t.ok(bookPartMeta.querySelector('ul[data-ams-doc="MSC 2020"]'), 'book-part-meta: MSCs');
39
+ t.ok(bookPartMeta.querySelector('div[data-ams-doc="funding-group"]'), 'book-part-meta: funding-group');
40
+
31
41
  const document2 = article;
32
- const secmeta = document2.querySelector('#secmeta section[data-ams-doc="sec-meta"]');
42
+ const secmeta = document2.querySelector('#secmeta div[data-ams-doc="sec-meta"]');
33
43
  t.ok(secmeta, 'article sec-meta creates section data attribute');
34
44
  t.equal(secmeta.getAttribute('data-ams-contributors'), '{"authors":[{"name":"GivenName Surname","bio":"","affiliations":[],"emails":[]}]}', 'article sec-meta');
35
45
  t.equal(secmeta.getAttribute('data-ams-byline'), 'GivenName Surname', 'article sec-meta');
36
-
46
+
37
47
  const document3 = articleAlttitle;
38
- const secmeta3 = document3.querySelector('#secmeta section[data-ams-doc="sec-meta"]');
48
+ const secmeta3 = document3.querySelector('#secmeta div[data-ams-doc="sec-meta"]');
39
49
  t.equal(secmeta3.getAttribute('data-ams-contributors'), '{"authors":[{"name":"Author 1","bio":"Author 1 Bio","affiliations":[],"emails":[]}],"contributors":[{"name":"Author 2","bio":"Author 2 Bio","affiliations":[],"emails":[],"byline":"with"}]}', 'article--alttitle sec-meta');
40
50
  t.equal(secmeta3.getAttribute('data-ams-byline'), 'Author 1, with Author 2', 'article sec-meta');
41
-
51
+
42
52
  t.ok(secmeta3.querySelector('section[data-ams-doc="notes"]'), 'sec-meta (non-contrib-group) child content');
43
53
  });
@@ -19,7 +19,7 @@ import tape from 'tape';
19
19
 
20
20
 
21
21
  tape('sec, app, front-matter-part, dedication, title, label', async function (t) {
22
- t.plan(45);
22
+ t.plan(47);
23
23
  const document = article;
24
24
 
25
25
  t.ok(document.querySelector('#ack1[role="doc-acknowledgments"][data-ams-doc-level="1"]'), 'ack to role doc-acknowledgments with data-ams-doc-level');
@@ -49,6 +49,8 @@ tape('sec, app, front-matter-part, dedication, title, label', async function (t)
49
49
 
50
50
  t.ok(document.querySelector('#refhead h2'), 'refhead heading level');
51
51
 
52
+ t.equal(document.querySelector('#untagged').getAttribute('data-ams-doc'), 'section', 'untagged section: data-ams-doc');
53
+
52
54
  const document2 = book;
53
55
  t.ok(document2.querySelector('#chapter[role="doc-chapter"]'), 'sec with specific-use chapter to role doc-chapter'); // NOTE so far, chapters only occur in books but the xslt doesn't check for it
54
56
 
@@ -79,6 +81,8 @@ tape('sec, app, front-matter-part, dedication, title, label', async function (t)
79
81
  t.equal(document2.querySelector('#applabeltitle').getAttribute('role'), 'doc-appendix', 'book-app role');
80
82
  t.notEqual(document2.querySelector('#appSection').getAttribute('role'), 'doc-appendix', 'nested book-app does not get role=doc-appendix');
81
83
 
84
+ t.equal(document2.querySelector('#foreword').getAttribute('role'), 'doc-foreword', 'foreword: role');
85
+
82
86
  const document3 = articleAlttitle;
83
87
  t.ok(document3.querySelector('section[data-ams-doc-level="1"]'), 'Article with part gets increased doc-levels');
84
88
  t.ok(document3.querySelector('section[data-ams-doc-level="2"]'), 'Article with part gets increased doc-levels');
@@ -103,13 +103,13 @@
103
103
  </section>
104
104
  </section>
105
105
  <section id="secmeta" data-ams-doc="section" data-ams-doc-level="2">
106
- <section data-ams-byline="Author 1, with Author 2" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;Author 1&quot;,&quot;bio&quot;:&quot;Author 1 Bio&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[]}],&quot;contributors&quot;:[{&quot;name&quot;:&quot;Author 2&quot;,&quot;bio&quot;:&quot;Author 2 Bio&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[],&quot;byline&quot;:&quot;with&quot;}]}" data-ams-doc="sec-meta">
106
+ <div data-ams-byline="Author 1, with Author 2" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;Author 1&quot;,&quot;bio&quot;:&quot;Author 1 Bio&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[]}],&quot;contributors&quot;:[{&quot;name&quot;:&quot;Author 2&quot;,&quot;bio&quot;:&quot;Author 2 Bio&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[],&quot;byline&quot;:&quot;with&quot;}]}" data-ams-doc="sec-meta">
107
107
 
108
108
 
109
109
  <section data-ams-content-type="article" data-ams-doc="notes">
110
110
  <p>A sec-meta note.</p>
111
111
  </section>
112
- </section>
112
+ </div>
113
113
  </section>
114
114
 
115
115
 
@@ -144,6 +144,8 @@
144
144
  <p>Funding 2.</p>
145
145
  </div></section>
146
146
 
147
+ <section id="untagged" data-ams-doc="section" data-ams-doc-level="1">
148
+ </section>
147
149
  <section id="sec" data-ams-doc="section" data-ams-doc-level="1">
148
150
  <span data-ams-style="type"></span>
149
151
  <i></i>
@@ -551,9 +553,9 @@
551
553
  <section data-ams-specific-use="section" id="secmeta" data-ams-doc-level="1" role="doc-appendix"><h2><span data-ams-doc="label">Appendix 1</span> <span data-ams-doc="title">A criterion for kitchen representations</span></h2>
552
554
 
553
555
 
554
- <section data-ams-byline="GivenName Surname" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;GivenName Surname&quot;,&quot;bio&quot;:&quot;&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[]}]}" data-ams-doc="sec-meta">
556
+ <div data-ams-byline="GivenName Surname" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;GivenName Surname&quot;,&quot;bio&quot;:&quot;&quot;,&quot;affiliations&quot;:[],&quot;emails&quot;:[]}]}" data-ams-doc="sec-meta">
555
557
 
556
- </section>
558
+ </div>
557
559
  </section>
558
560
  <section data-ams-specific-use="section" id="appack" data-ams-doc-level="1" role="doc-acknowledgments"><h2><span data-ams-doc="title">Acknowledg</span></h2>
559
561
 
@@ -14,12 +14,11 @@
14
14
  <nav id="toc" data-ams-doc-level="0" role="doc-toc"><h1><span data-ams-doc="title">Contents</span></h1><ol><li><a data-ams-ref="chapter" href="#tocid1"><span data-ams-doc="title">Chunk</span></a></li></ol></nav>
15
15
 
16
16
 
17
-
18
-
19
- <section role="doc-chapter" id="chapter2" data-ams-doc="chapter" data-ams-doc-level="0"><h1><span data-ams-doc="title">Title</span></h1>
20
-
21
- </section>
17
+ <section role="doc-chapter" id="chapter2" data-ams-doc="chapter" data-ams-doc-level="0">
18
+ <div data-ams-doc="sec-meta">
19
+ <h1><span data-ams-doc="title">Title</span></h1>
20
+ </div>
22
21
 
23
-
22
+ </section>
24
23
 
25
24
  </body></html>
@@ -8,42 +8,49 @@
8
8
  <p>Some notes.
9
9
  </p>
10
10
  </section>
11
- <section id="preface" data-ams-doc-level="0" role="doc-preface">
11
+ <section role="doc-foreword" id="foreword" data-ams-doc="chapter" data-ams-doc-level="0">
12
+ <div data-ams-doc="sec-meta">
13
+ <h1><span data-ams-doc="title">Foreword</span></h1>
14
+ </div>
12
15
 
16
+ </section>
17
+ <section id="preface" data-ams-doc-level="0" role="doc-preface">
18
+ <div data-ams-doc="sec-meta">
13
19
  <h1><span data-ams-doc="title">Preface</span></h1>
14
-
20
+ </div>
15
21
 
16
22
  <p></p>
17
23
 
18
24
  </section>
19
25
  <section id="fmlabeltitle" data-ams-doc="null" data-ams-doc-level="0">
20
-
26
+ <div data-ams-doc="sec-meta">
21
27
  <h1><span data-ams-doc="label">Label</span> <span data-ams-doc="title">Title</span></h1>
22
-
28
+ </div>
23
29
  </section>
24
30
  <section id="fmlabel" data-ams-doc="null" data-ams-doc-level="0">
25
-
31
+ <div data-ams-doc="sec-meta">
26
32
  <header><h1><span data-ams-doc="label">Label</span></h1><p data-ams-doc="subtitle">Subtitle</p></header>
27
-
33
+ </div>
28
34
  </section>
29
35
  <section id="fmtitle" data-ams-doc="null" data-ams-doc-level="0">
30
-
36
+ <div data-ams-doc="sec-meta">
31
37
  <header><h1><span data-ams-doc="title">Title</span></h1><p data-ams-doc="subtitle">Subtitle</p></header>
32
-
38
+ </div>
33
39
  </section>
34
40
 
35
41
 
36
-
37
-
38
- <section role="doc-chapter" id="chapter" data-ams-doc="chapter" data-ams-doc-level="0">
39
- <dl data-ams-content-type="itemize" id="dlist1">
40
- <div>
41
- <dt id="ditem1">•</dt> <dd><p>Item 1</p></dd>
42
- </div>
43
- </dl>
44
- <p id="pwithx">Is <ams-x>not</ams-x> ignored.</p>
45
- </section>
46
- <section role="doc-acknowledgments" id="chapter2" data-ams-doc="chapter" data-ams-doc-level="0">
42
+ <section role="doc-chapter" id="chapter" data-ams-doc="chapter" data-ams-doc-level="0">
43
+
44
+ <dl data-ams-content-type="itemize" id="dlist1">
45
+ <div>
46
+ <dt id="ditem1">•</dt> <dd><p>Item 1</p></dd>
47
+ </div>
48
+ </dl>
49
+ <p id="pwithx">Is <ams-x>not</ams-x> ignored.</p>
50
+
51
+ </section>
52
+ <section role="doc-acknowledgments" id="chapter2" data-ams-doc="chapter" data-ams-doc-level="0">
53
+
47
54
  <section role="doc-acknowledgments" id="ack3" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="title">Acknowledg</span></h2>
48
55
 
49
56
  </section>
@@ -60,9 +67,12 @@
60
67
  <section id="sectitle" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="title">Title</span></h2>
61
68
 
62
69
  </section>
63
- </section>
64
- <section role="doc-part" id="part" data-ams-doc="part" data-ams-doc-level="0">
65
- <section role="doc-chapter" id="null" data-ams-doc="chapter" data-ams-doc-level="0">
70
+
71
+ </section>
72
+ <section role="doc-part" id="part" data-ams-doc="part" data-ams-doc-level="0">
73
+
74
+ <section role="doc-chapter" id="null" data-ams-doc="chapter" data-ams-doc-level="0">
75
+
66
76
  <section id="inparttitle" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="title">Title</span></h2>
67
77
 
68
78
  </section>
@@ -72,28 +82,32 @@
72
82
  <section data-ams-style="xcb" id="xcb" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="label">Exercise</span></h2>
73
83
 
74
84
  </section>
75
- </section>
76
- </section>
77
85
 
78
-
79
- <section role="doc-chapter" id="secmeta" data-ams-doc="chapter" data-ams-doc-level="0"><h1><span data-ams-doc="title">Title</span></h1>
80
-
81
- <section data-ams-byline="" data-ams-contributors="{&quot;null&quot;:[]}" data-ams-doc="sec-meta">
82
86
 
83
- <section role="doc-abstract" data-ams-doc-level="1"><h2><span data-ams-doc="title">Abstract</span></h2>
87
+ <section id="secmeta" data-ams-doc="section" data-ams-doc-level="1"><h2><span data-ams-doc="title">Title</span></h2>
84
88
 
89
+ <div data-ams-byline="" data-ams-contributors="{&quot;null&quot;:[]}" data-ams-doc="sec-meta">
90
+
91
+ <section role="doc-abstract" data-ams-doc-level="1"><h2><span data-ams-doc="title">Abstract</span></h2>
92
+
93
+ </section>
94
+ </div>
85
95
  </section>
86
- </section>
96
+
87
97
  </section>
88
-
98
+
99
+ </section>
100
+ <section role="doc-chapter" id="statementchapter" data-ams-doc="chapter" data-ams-doc-level="0">
101
+
89
102
 
90
- <section role="doc-chapter" id="statementchapter" data-ams-doc="chapter" data-ams-doc-level="0">
91
103
  <figure data-ams-style="style" data-ams-content-type="content type" id="statement2" data-ams-doc="statement"><figcaption><span data-ams-doc="label">Theorem 1</span></figcaption>
92
104
 
93
105
  <p></p>
94
106
  </figure>
95
- </section>
96
- <section role="doc-part" id="statementpart" data-ams-doc="part" data-ams-doc-level="0">
107
+
108
+ </section>
109
+ <section role="doc-part" id="statementpart" data-ams-doc="part" data-ams-doc-level="0">
110
+
97
111
  <section role="doc-chapter" id="statementpartchapter" data-ams-doc="chapter" data-ams-doc-level="0">
98
112
  <section id="statementsection" data-ams-doc="section" data-ams-doc-level="1">
99
113
  <figure data-ams-style="style" data-ams-content-type="content type" id="statement4" data-ams-doc="statement"><figcaption><span data-ams-doc="label">Theorem 1</span></figcaption>
@@ -102,19 +116,19 @@
102
116
  </figure>
103
117
  </section>
104
118
  </section>
105
- </section>
106
-
107
-
108
- <section role="doc-chapter" id="reflistchapter" data-ams-doc="chapter" data-ams-doc-level="0">
109
- <section role="doc-bibliography" id="chapterreflist" data-ams-doc-level="1"><h2><span data-ams-doc="title">title</span></h2><dl></dl></section>
110
- </section>
111
-
112
-
113
- <section role="doc-chapter" id="alttitle" data-ams-doc="chapter" data-ams-doc-level="0"><h1 data-ams-doc-alttitle="Label. Alt title"><span data-ams-doc="label">Label<ams-x>.</ams-x></span> <span data-ams-doc="title">Title</span></h1>
114
-
115
-
119
+
120
+ </section>
121
+ <section role="doc-chapter" id="reflistchapter" data-ams-doc="chapter" data-ams-doc-level="0">
122
+
116
123
 
117
- </section>
124
+ <section role="doc-bibliography" id="chapterreflist" data-ams-doc-level="1"><h2><span data-ams-doc="title">title</span></h2><dl></dl></section>
125
+
126
+ </section>
127
+ <section role="doc-chapter" id="alttitle" data-ams-doc="chapter" data-ams-doc-level="0">
128
+
129
+ <div data-ams-doc="sec-meta">
130
+ <h1 data-ams-doc-alttitle="Label. Alt title"><span data-ams-doc="label">Label<ams-x>.</ams-x></span> <span data-ams-doc="title">Title</span></h1>
131
+ </div>
118
132
 
119
133
  <section role="doc-chapter" id="tabbing" data-ams-doc="chapter" data-ams-doc-level="0"><h1><span data-ams-doc="title">Tabbing</span></h1>
120
134
 
@@ -127,13 +141,30 @@
127
141
  <section id="citegroup" data-ams-doc="section" data-ams-doc-level="1">
128
142
  <cite-group><ams-x>[</ams-x><cite><a role="doc-biblioref" data-ams-ref="bibr" href="#bibr-AEG0">AEG08<cite-detail><ams-x>, </ams-x>Section 5</cite-detail></a></cite><ams-x>; </ams-x><cite><a role="doc-biblioref" data-ams-ref="bibr" href="#bibr-AEG0">AEG08</a></cite><ams-x>]</ams-x></cite-group>
129
143
  </section>
144
+
145
+ </section>
130
146
 
147
+ <section role="doc-chapter" id="bookPartMeta" data-ams-doc="chapter" data-ams-doc-level="0">
148
+ <div data-ams-byline="A. Author" data-ams-contributors="{&quot;authors&quot;:[{&quot;name&quot;:&quot;A. Author&quot;,&quot;bio&quot;:&quot;&quot;,&quot;affiliations&quot;:[&quot;Author University&quot;],&quot;emails&quot;:[&quot;author@example.com&quot;],&quot;mrauth&quot;:&quot;0000&quot;,&quot;orcid&quot;:&quot;0000&quot;}]}" data-ams-doc="sec-meta">
149
+ <h1><span data-ams-doc="label">Label</span> <span data-ams-doc="title">Title</span></h1>
150
+
151
+ <section role="doc-abstract" data-ams-doc-level="1"><h2><span data-ams-doc="title">Abstract<ams-x>.</ams-x></span></h2>
152
+
153
+ <p>The abstract.</p>
154
+ </section>
155
+ <ul data-ams-doc="MSC 2020">
156
+ <li data-msc-key="0000" data-msc-role="primary">Text</li>
157
+ </ul>
158
+ <div data-ams-doc="funding-group">
159
+ <p>Funding</p>
160
+ </div>
161
+ </div>
131
162
 
132
-
163
+ </section>
133
164
 
134
165
 
135
166
  <section id="book-app-group" data-ams-doc="app-group" data-ams-doc-level="0">
136
- <section role="doc-appendix" id="applabeltitle" data-ams-doc="chapter" data-ams-doc-level="0"><h1><span data-ams-doc="label">Label<ams-x>.</ams-x></span> <span data-ams-doc="title">Title</span></h1>
167
+ <section role="doc-appendix" id="applabeltitle" data-ams-doc="appendix" data-ams-doc-level="0"><h1><span data-ams-doc="label">Label<ams-x>.</ams-x></span> <span data-ams-doc="title">Title</span></h1>
137
168
 
138
169
 
139
170
  </section>
@@ -1,10 +1,10 @@
1
- <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>AMS Publication</title></head><body><section data-ams-doc="article">
1
+ <!DOCTYPE html> <html dir="ltr" lang="en"><head><meta charset="utf-8"><meta content="width=device-width, initial-scale=1" name="viewport"><title>AMS Publication</title></head><body>
2
2
  <p>hello, world</p>
3
- <section data-ams-content-type="publishers-note" data-ams-doc="notes" id="ltxid1"><h1><span data-ams-doc="title">Note on the Kindle edition</span></h1>
3
+ <section data-ams-doc-level="0" data-ams-content-type="publishers-note" data-ams-doc="notes" id="ltxid1"><h1><span data-ams-doc="title">Note on the Kindle edition</span></h1>
4
4
 
5
5
  <p>This is a Kindle edition of a book that was originally designed for print. It contains all of the content, both textual and graphical, of the original print edition, but extensive changes to the visual format and layout have been necessary to adapt it to the Kindle environment. In some cases, this means that directions that refer to the relative location of a figure on the page (“see the figure to the right”) have been left untouched even though they are no longer strictly accurate. References to page numbers have generally been reworded and replaced by links.</p>
6
6
  <blockquote data-ams-style="text-align: left">
7
7
  <p><span data-ams-style="sc">American Mathematical Society</span> August 15, 2019</p>
8
8
  </blockquote>
9
9
  </section>
10
- </section></body></html>
10
+ </body></html>
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE article PUBLIC "-//AMS TEXML//DTD MODIFIED JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.3d2 20201130//EN" "texml-jats-1-3d2.dtd">
3
- <article xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <!DOCTYPE book PUBLIC "-//NLM//DTD BITS Book Interchange DTD v2.2 20250930//EN" "BITS-book2-2.dtd">
3
+ <book xmlns:xlink="http://www.w3.org/1999/xlink">
4
4
  <p>hello, world</p>
5
5
  <notes id="ltxid1" notes-type="publishers-note">
6
6
  <title>Note on the Kindle edition</title>
@@ -9,4 +9,4 @@
9
9
  <p><sc>American Mathematical Society</sc> August 15, 2019</p>
10
10
  </disp-quote>
11
11
  </notes>
12
- </article>
12
+ </book>