@fiduswriter/document 0.1.0-alpha.3 → 0.1.0-alpha.5

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 (582) hide show
  1. package/README.md +22 -1
  2. package/dist/bibliography/common.d.ts +10 -0
  3. package/dist/bibliography/common.d.ts.map +1 -0
  4. package/dist/bibliography/common.js +86 -0
  5. package/dist/bibliography/common.js.map +1 -0
  6. package/dist/bibliography/csl_bib.d.ts +3 -0
  7. package/dist/bibliography/csl_bib.d.ts.map +1 -0
  8. package/dist/bibliography/csl_bib.js +131 -0
  9. package/dist/bibliography/csl_bib.js.map +1 -0
  10. package/dist/citations/citeproc_sys.d.ts +12 -0
  11. package/dist/citations/citeproc_sys.d.ts.map +1 -0
  12. package/dist/citations/citeproc_sys.js +48 -0
  13. package/dist/citations/citeproc_sys.js.map +1 -0
  14. package/dist/citations/format.d.ts +40 -0
  15. package/dist/citations/format.d.ts.map +1 -0
  16. package/dist/citations/format.js +186 -0
  17. package/dist/citations/format.js.map +1 -0
  18. package/dist/editor/e2ee/encryptor.d.ts +123 -0
  19. package/dist/editor/e2ee/encryptor.d.ts.map +1 -0
  20. package/dist/editor/e2ee/encryptor.js +201 -0
  21. package/dist/editor/e2ee/encryptor.js.map +1 -0
  22. package/dist/exporter/docx/citations.d.ts +31 -0
  23. package/dist/exporter/docx/citations.d.ts.map +1 -0
  24. package/dist/exporter/docx/citations.js +171 -0
  25. package/dist/exporter/docx/citations.js.map +1 -0
  26. package/dist/exporter/docx/comments.d.ts +22 -0
  27. package/dist/exporter/docx/comments.d.ts.map +1 -0
  28. package/dist/exporter/docx/comments.js +170 -0
  29. package/dist/exporter/docx/comments.js.map +1 -0
  30. package/dist/exporter/docx/footnotes.d.ts +47 -0
  31. package/dist/exporter/docx/footnotes.d.ts.map +1 -0
  32. package/dist/exporter/docx/footnotes.js +216 -0
  33. package/dist/exporter/docx/footnotes.js.map +1 -0
  34. package/dist/exporter/docx/images.d.ts +25 -0
  35. package/dist/exporter/docx/images.d.ts.map +1 -0
  36. package/dist/exporter/docx/images.js +101 -0
  37. package/dist/exporter/docx/images.js.map +1 -0
  38. package/dist/exporter/docx/index.d.ts +16 -0
  39. package/dist/exporter/docx/index.d.ts.map +1 -0
  40. package/dist/exporter/docx/index.js +115 -0
  41. package/dist/exporter/docx/index.js.map +1 -0
  42. package/dist/exporter/docx/lists.d.ts +38 -0
  43. package/dist/exporter/docx/lists.d.ts.map +1 -0
  44. package/dist/exporter/docx/lists.js +276 -0
  45. package/dist/exporter/docx/lists.js.map +1 -0
  46. package/dist/exporter/docx/math.d.ts +13 -0
  47. package/dist/exporter/docx/math.d.ts.map +1 -0
  48. package/dist/exporter/docx/math.js +59 -0
  49. package/dist/exporter/docx/math.js.map +1 -0
  50. package/dist/exporter/docx/metadata.d.ts +17 -0
  51. package/dist/exporter/docx/metadata.d.ts.map +1 -0
  52. package/dist/exporter/docx/metadata.js +272 -0
  53. package/dist/exporter/docx/metadata.js.map +1 -0
  54. package/dist/exporter/docx/rels.d.ts +27 -0
  55. package/dist/exporter/docx/rels.d.ts.map +1 -0
  56. package/dist/exporter/docx/rels.js +183 -0
  57. package/dist/exporter/docx/rels.js.map +1 -0
  58. package/dist/exporter/docx/render.d.ts +22 -0
  59. package/dist/exporter/docx/render.d.ts.map +1 -0
  60. package/dist/exporter/docx/render.js +780 -0
  61. package/dist/exporter/docx/render.js.map +1 -0
  62. package/dist/exporter/docx/richtext.d.ts +25 -0
  63. package/dist/exporter/docx/richtext.d.ts.map +1 -0
  64. package/dist/exporter/docx/richtext.js +1070 -0
  65. package/dist/exporter/docx/richtext.js.map +1 -0
  66. package/dist/exporter/docx/tables.d.ts +16 -0
  67. package/dist/exporter/docx/tables.d.ts.map +1 -0
  68. package/dist/exporter/docx/tables.js +115 -0
  69. package/dist/exporter/docx/tables.js.map +1 -0
  70. package/dist/exporter/docx/tools.d.ts +4 -0
  71. package/dist/exporter/docx/tools.d.ts.map +1 -0
  72. package/dist/exporter/docx/tools.js +48 -0
  73. package/dist/exporter/docx/tools.js.map +1 -0
  74. package/dist/exporter/epub/index.d.ts +19 -0
  75. package/dist/exporter/epub/index.d.ts.map +1 -0
  76. package/dist/exporter/epub/index.js +109 -0
  77. package/dist/exporter/epub/index.js.map +1 -0
  78. package/dist/exporter/epub/templates.d.ts +63 -0
  79. package/dist/exporter/epub/templates.d.ts.map +1 -0
  80. package/dist/exporter/epub/templates.js +95 -0
  81. package/dist/exporter/epub/templates.js.map +1 -0
  82. package/dist/exporter/epub/tools.d.ts +13 -0
  83. package/dist/exporter/epub/tools.d.ts.map +1 -0
  84. package/{src → dist}/exporter/epub/tools.js +32 -46
  85. package/dist/exporter/epub/tools.js.map +1 -0
  86. package/dist/exporter/html/citations.d.ts +29 -0
  87. package/dist/exporter/html/citations.d.ts.map +1 -0
  88. package/dist/exporter/html/citations.js +110 -0
  89. package/dist/exporter/html/citations.js.map +1 -0
  90. package/dist/exporter/html/convert.d.ts +50 -0
  91. package/dist/exporter/html/convert.d.ts.map +1 -0
  92. package/dist/exporter/html/convert.js +750 -0
  93. package/dist/exporter/html/convert.js.map +1 -0
  94. package/dist/exporter/html/index.d.ts +64 -0
  95. package/dist/exporter/html/index.d.ts.map +1 -0
  96. package/dist/exporter/html/index.js +154 -0
  97. package/dist/exporter/html/index.js.map +1 -0
  98. package/dist/exporter/html/templates.d.ts +24 -0
  99. package/dist/exporter/html/templates.d.ts.map +1 -0
  100. package/dist/exporter/html/templates.js +21 -0
  101. package/dist/exporter/html/templates.js.map +1 -0
  102. package/dist/exporter/html/tools.d.ts +2 -0
  103. package/dist/exporter/html/tools.d.ts.map +1 -0
  104. package/dist/exporter/html/tools.js +49 -0
  105. package/dist/exporter/html/tools.js.map +1 -0
  106. package/dist/exporter/jats/bibliography.d.ts +3 -0
  107. package/dist/exporter/jats/bibliography.d.ts.map +1 -0
  108. package/dist/exporter/jats/bibliography.js +158 -0
  109. package/dist/exporter/jats/bibliography.js.map +1 -0
  110. package/dist/exporter/jats/citations.d.ts +16 -0
  111. package/dist/exporter/jats/citations.d.ts.map +1 -0
  112. package/dist/exporter/jats/citations.js +105 -0
  113. package/dist/exporter/jats/citations.js.map +1 -0
  114. package/dist/exporter/jats/convert.d.ts +41 -0
  115. package/dist/exporter/jats/convert.d.ts.map +1 -0
  116. package/dist/exporter/jats/convert.js +816 -0
  117. package/dist/exporter/jats/convert.js.map +1 -0
  118. package/dist/exporter/jats/index.d.ts +25 -0
  119. package/dist/exporter/jats/index.d.ts.map +1 -0
  120. package/dist/exporter/jats/index.js +82 -0
  121. package/dist/exporter/jats/index.js.map +1 -0
  122. package/dist/exporter/jats/templates.d.ts +18 -0
  123. package/dist/exporter/jats/templates.d.ts.map +1 -0
  124. package/dist/exporter/jats/templates.js +25 -0
  125. package/dist/exporter/jats/templates.js.map +1 -0
  126. package/dist/exporter/jats/text.d.ts +4 -0
  127. package/dist/exporter/jats/text.d.ts.map +1 -0
  128. package/dist/exporter/jats/text.js +72 -0
  129. package/dist/exporter/jats/text.js.map +1 -0
  130. package/dist/exporter/latex/convert.d.ts +24 -0
  131. package/dist/exporter/latex/convert.d.ts.map +1 -0
  132. package/dist/exporter/latex/convert.js +881 -0
  133. package/dist/exporter/latex/convert.js.map +1 -0
  134. package/dist/exporter/latex/escape_latex.d.ts +2 -0
  135. package/dist/exporter/latex/escape_latex.d.ts.map +1 -0
  136. package/dist/exporter/latex/escape_latex.js +20 -0
  137. package/dist/exporter/latex/escape_latex.js.map +1 -0
  138. package/dist/exporter/latex/index.d.ts +24 -0
  139. package/dist/exporter/latex/index.d.ts.map +1 -0
  140. package/dist/exporter/latex/index.js +67 -0
  141. package/dist/exporter/latex/index.js.map +1 -0
  142. package/dist/exporter/latex/readme.d.ts +2 -0
  143. package/dist/exporter/latex/readme.d.ts.map +1 -0
  144. package/dist/exporter/latex/readme.js +23 -0
  145. package/dist/exporter/latex/readme.js.map +1 -0
  146. package/dist/exporter/native/copy.d.ts +30 -0
  147. package/dist/exporter/native/copy.d.ts.map +1 -0
  148. package/dist/exporter/native/copy.js +151 -0
  149. package/dist/exporter/native/copy.js.map +1 -0
  150. package/dist/exporter/native/file.d.ts +12 -0
  151. package/dist/exporter/native/file.d.ts.map +1 -0
  152. package/dist/exporter/native/file.js +38 -0
  153. package/dist/exporter/native/file.js.map +1 -0
  154. package/dist/exporter/native/index.d.ts +5 -0
  155. package/dist/exporter/native/index.d.ts.map +1 -0
  156. package/dist/exporter/native/index.js +5 -0
  157. package/dist/exporter/native/index.js.map +1 -0
  158. package/dist/exporter/native/revision.d.ts +18 -0
  159. package/dist/exporter/native/revision.d.ts.map +1 -0
  160. package/dist/exporter/native/revision.js +39 -0
  161. package/dist/exporter/native/revision.js.map +1 -0
  162. package/dist/exporter/native/shrink.d.ts +36 -0
  163. package/dist/exporter/native/shrink.d.ts.map +1 -0
  164. package/dist/exporter/native/shrink.js +124 -0
  165. package/dist/exporter/native/shrink.js.map +1 -0
  166. package/dist/exporter/native/zip.d.ts +25 -0
  167. package/dist/exporter/native/zip.d.ts.map +1 -0
  168. package/dist/exporter/native/zip.js +56 -0
  169. package/dist/exporter/native/zip.js.map +1 -0
  170. package/dist/exporter/odt/citations.d.ts +21 -0
  171. package/dist/exporter/odt/citations.d.ts.map +1 -0
  172. package/dist/exporter/odt/citations.js +104 -0
  173. package/dist/exporter/odt/citations.js.map +1 -0
  174. package/dist/exporter/odt/footnotes.d.ts +31 -0
  175. package/dist/exporter/odt/footnotes.d.ts.map +1 -0
  176. package/dist/exporter/odt/footnotes.js +129 -0
  177. package/dist/exporter/odt/footnotes.js.map +1 -0
  178. package/dist/exporter/odt/images.d.ts +25 -0
  179. package/dist/exporter/odt/images.d.ts.map +1 -0
  180. package/dist/exporter/odt/images.js +106 -0
  181. package/dist/exporter/odt/images.js.map +1 -0
  182. package/dist/exporter/odt/index.d.ts +17 -0
  183. package/dist/exporter/odt/index.d.ts.map +1 -0
  184. package/dist/exporter/odt/index.js +108 -0
  185. package/dist/exporter/odt/index.js.map +1 -0
  186. package/dist/exporter/odt/math.d.ts +15 -0
  187. package/dist/exporter/odt/math.d.ts.map +1 -0
  188. package/dist/exporter/odt/math.js +71 -0
  189. package/dist/exporter/odt/math.js.map +1 -0
  190. package/dist/exporter/odt/metadata.d.ts +18 -0
  191. package/dist/exporter/odt/metadata.d.ts.map +1 -0
  192. package/dist/exporter/odt/metadata.js +224 -0
  193. package/dist/exporter/odt/metadata.js.map +1 -0
  194. package/dist/exporter/odt/render.d.ts +26 -0
  195. package/dist/exporter/odt/render.d.ts.map +1 -0
  196. package/dist/exporter/odt/render.js +651 -0
  197. package/dist/exporter/odt/render.js.map +1 -0
  198. package/dist/exporter/odt/richtext.d.ts +22 -0
  199. package/dist/exporter/odt/richtext.d.ts.map +1 -0
  200. package/dist/exporter/odt/richtext.js +743 -0
  201. package/dist/exporter/odt/richtext.js.map +1 -0
  202. package/dist/exporter/odt/styles.d.ts +41 -0
  203. package/dist/exporter/odt/styles.d.ts.map +1 -0
  204. package/dist/exporter/odt/styles.js +370 -0
  205. package/dist/exporter/odt/styles.js.map +1 -0
  206. package/dist/exporter/odt/track.d.ts +18 -0
  207. package/dist/exporter/odt/track.d.ts.map +1 -0
  208. package/dist/exporter/odt/track.js +66 -0
  209. package/dist/exporter/odt/track.js.map +1 -0
  210. package/dist/exporter/pandoc/citations.d.ts +23 -0
  211. package/dist/exporter/pandoc/citations.d.ts.map +1 -0
  212. package/dist/exporter/pandoc/citations.js +99 -0
  213. package/dist/exporter/pandoc/citations.js.map +1 -0
  214. package/dist/exporter/pandoc/convert.d.ts +19 -0
  215. package/dist/exporter/pandoc/convert.d.ts.map +1 -0
  216. package/dist/exporter/pandoc/convert.js +886 -0
  217. package/dist/exporter/pandoc/convert.js.map +1 -0
  218. package/dist/exporter/pandoc/index.d.ts +25 -0
  219. package/dist/exporter/pandoc/index.d.ts.map +1 -0
  220. package/dist/exporter/pandoc/index.js +79 -0
  221. package/dist/exporter/pandoc/index.js.map +1 -0
  222. package/dist/exporter/pandoc/readme.d.ts +2 -0
  223. package/dist/exporter/pandoc/readme.d.ts.map +1 -0
  224. package/dist/exporter/pandoc/readme.js +8 -0
  225. package/dist/exporter/pandoc/readme.js.map +1 -0
  226. package/dist/exporter/pandoc/tools.d.ts +22 -0
  227. package/dist/exporter/pandoc/tools.d.ts.map +1 -0
  228. package/dist/exporter/pandoc/tools.js +52 -0
  229. package/dist/exporter/pandoc/tools.js.map +1 -0
  230. package/dist/exporter/print/index.d.ts +20 -0
  231. package/dist/exporter/print/index.d.ts.map +1 -0
  232. package/dist/exporter/print/index.js +142 -0
  233. package/dist/exporter/print/index.js.map +1 -0
  234. package/dist/exporter/tools/doc_content.d.ts +6 -0
  235. package/dist/exporter/tools/doc_content.d.ts.map +1 -0
  236. package/dist/exporter/tools/doc_content.js +130 -0
  237. package/dist/exporter/tools/doc_content.js.map +1 -0
  238. package/dist/exporter/tools/file.d.ts +2 -0
  239. package/dist/exporter/tools/file.d.ts.map +1 -0
  240. package/dist/exporter/tools/file.js +10 -0
  241. package/dist/exporter/tools/file.js.map +1 -0
  242. package/dist/exporter/tools/json.d.ts +7 -0
  243. package/dist/exporter/tools/json.d.ts.map +1 -0
  244. package/dist/exporter/tools/json.js +82 -0
  245. package/dist/exporter/tools/json.js.map +1 -0
  246. package/dist/exporter/tools/svg.d.ts +8 -0
  247. package/dist/exporter/tools/svg.d.ts.map +1 -0
  248. package/dist/exporter/tools/svg.js +26 -0
  249. package/dist/exporter/tools/svg.js.map +1 -0
  250. package/dist/exporter/tools/xml.d.ts +42 -0
  251. package/dist/exporter/tools/xml.d.ts.map +1 -0
  252. package/dist/exporter/tools/xml.js +467 -0
  253. package/dist/exporter/tools/xml.js.map +1 -0
  254. package/dist/exporter/tools/xml_zip.d.ts +21 -0
  255. package/dist/exporter/tools/xml_zip.d.ts.map +1 -0
  256. package/dist/exporter/tools/xml_zip.js +92 -0
  257. package/dist/exporter/tools/xml_zip.js.map +1 -0
  258. package/dist/exporter/tools/zip.d.ts +35 -0
  259. package/dist/exporter/tools/zip.d.ts.map +1 -0
  260. package/dist/exporter/tools/zip.js +78 -0
  261. package/dist/exporter/tools/zip.js.map +1 -0
  262. package/dist/exporter/tools/zotero_csl.d.ts +23 -0
  263. package/dist/exporter/tools/zotero_csl.d.ts.map +1 -0
  264. package/dist/exporter/tools/zotero_csl.js +78 -0
  265. package/dist/exporter/tools/zotero_csl.js.map +1 -0
  266. package/dist/importer/citations.d.ts +28 -0
  267. package/dist/importer/citations.d.ts.map +1 -0
  268. package/dist/importer/citations.js +68 -0
  269. package/dist/importer/citations.js.map +1 -0
  270. package/dist/importer/docx/citations.d.ts +43 -0
  271. package/dist/importer/docx/citations.d.ts.map +1 -0
  272. package/dist/importer/docx/citations.js +81 -0
  273. package/dist/importer/docx/citations.js.map +1 -0
  274. package/dist/importer/docx/convert.d.ts +150 -0
  275. package/dist/importer/docx/convert.d.ts.map +1 -0
  276. package/dist/importer/docx/convert.js +1243 -0
  277. package/dist/importer/docx/convert.js.map +1 -0
  278. package/dist/importer/docx/helpers.d.ts +2 -0
  279. package/dist/importer/docx/helpers.d.ts.map +1 -0
  280. package/dist/importer/docx/helpers.js +10 -0
  281. package/dist/importer/docx/helpers.js.map +1 -0
  282. package/dist/importer/docx/index.d.ts +27 -0
  283. package/dist/importer/docx/index.d.ts.map +1 -0
  284. package/dist/importer/docx/index.js +77 -0
  285. package/dist/importer/docx/index.js.map +1 -0
  286. package/dist/importer/docx/omml2mathml.d.ts +6 -0
  287. package/dist/importer/docx/omml2mathml.d.ts.map +1 -0
  288. package/dist/importer/docx/omml2mathml.js +1146 -0
  289. package/dist/importer/docx/omml2mathml.js.map +1 -0
  290. package/dist/importer/docx/parse.d.ts +96 -0
  291. package/dist/importer/docx/parse.d.ts.map +1 -0
  292. package/dist/importer/docx/parse.js +681 -0
  293. package/dist/importer/docx/parse.js.map +1 -0
  294. package/dist/importer/native/extract_template.d.ts +6 -0
  295. package/dist/importer/native/extract_template.d.ts.map +1 -0
  296. package/dist/importer/native/extract_template.js +80 -0
  297. package/dist/importer/native/extract_template.js.map +1 -0
  298. package/dist/importer/native/file.d.ts +37 -0
  299. package/dist/importer/native/file.d.ts.map +1 -0
  300. package/dist/importer/native/file.js +162 -0
  301. package/dist/importer/native/file.js.map +1 -0
  302. package/dist/importer/native/get_images.d.ts +21 -0
  303. package/dist/importer/native/get_images.d.ts.map +1 -0
  304. package/dist/importer/native/get_images.js +58 -0
  305. package/dist/importer/native/get_images.js.map +1 -0
  306. package/dist/importer/native/importer.d.ts +41 -0
  307. package/dist/importer/native/importer.d.ts.map +1 -0
  308. package/dist/importer/native/importer.js +170 -0
  309. package/dist/importer/native/importer.js.map +1 -0
  310. package/dist/importer/native/index.d.ts +7 -0
  311. package/dist/importer/native/index.d.ts.map +1 -0
  312. package/dist/importer/native/index.js +7 -0
  313. package/dist/importer/native/index.js.map +1 -0
  314. package/dist/importer/native/update.d.ts +7 -0
  315. package/dist/importer/native/update.d.ts.map +1 -0
  316. package/dist/importer/native/update.js +27 -0
  317. package/dist/importer/native/update.js.map +1 -0
  318. package/dist/importer/native/update_template.d.ts +12 -0
  319. package/dist/importer/native/update_template.d.ts.map +1 -0
  320. package/dist/importer/native/update_template.js +19 -0
  321. package/dist/importer/native/update_template.js.map +1 -0
  322. package/dist/importer/odt/citations.d.ts +27 -0
  323. package/dist/importer/odt/citations.d.ts.map +1 -0
  324. package/dist/importer/odt/citations.js +57 -0
  325. package/dist/importer/odt/citations.js.map +1 -0
  326. package/dist/importer/odt/convert.d.ts +146 -0
  327. package/dist/importer/odt/convert.d.ts.map +1 -0
  328. package/dist/importer/odt/convert.js +1530 -0
  329. package/dist/importer/odt/convert.js.map +1 -0
  330. package/dist/importer/odt/index.d.ts +30 -0
  331. package/dist/importer/odt/index.d.ts.map +1 -0
  332. package/dist/importer/odt/index.js +124 -0
  333. package/dist/importer/odt/index.js.map +1 -0
  334. package/dist/importer/pandoc/convert.d.ts +32 -0
  335. package/dist/importer/pandoc/convert.d.ts.map +1 -0
  336. package/dist/importer/pandoc/convert.js +790 -0
  337. package/dist/importer/pandoc/convert.js.map +1 -0
  338. package/dist/importer/pandoc/helpers.d.ts +5 -0
  339. package/dist/importer/pandoc/helpers.d.ts.map +1 -0
  340. package/dist/importer/pandoc/helpers.js +73 -0
  341. package/dist/importer/pandoc/helpers.js.map +1 -0
  342. package/dist/importer/pandoc/index.d.ts +31 -0
  343. package/dist/importer/pandoc/index.d.ts.map +1 -0
  344. package/dist/importer/pandoc/index.js +114 -0
  345. package/dist/importer/pandoc/index.js.map +1 -0
  346. package/dist/importer/registry.d.ts +21 -0
  347. package/dist/importer/registry.d.ts.map +1 -0
  348. package/dist/importer/registry.js +41 -0
  349. package/dist/importer/registry.js.map +1 -0
  350. package/dist/importer/zip_analyzer.d.ts +31 -0
  351. package/dist/importer/zip_analyzer.d.ts.map +1 -0
  352. package/dist/importer/zip_analyzer.js +89 -0
  353. package/dist/importer/zip_analyzer.js.map +1 -0
  354. package/dist/index.d.ts +2 -0
  355. package/dist/index.d.ts.map +1 -0
  356. package/dist/index.js +2 -0
  357. package/dist/index.js.map +1 -0
  358. package/dist/mathlive/opf_includes.d.ts +2 -0
  359. package/dist/mathlive/opf_includes.d.ts.map +1 -0
  360. package/dist/mathlive/opf_includes.js +25 -0
  361. package/dist/mathlive/opf_includes.js.map +1 -0
  362. package/dist/schema/common/annotate.d.ts +47 -0
  363. package/dist/schema/common/annotate.d.ts.map +1 -0
  364. package/dist/schema/common/annotate.js +75 -0
  365. package/dist/schema/common/annotate.js.map +1 -0
  366. package/dist/schema/common/base.d.ts +91 -0
  367. package/dist/schema/common/base.d.ts.map +1 -0
  368. package/dist/schema/common/base.js +109 -0
  369. package/dist/schema/common/base.js.map +1 -0
  370. package/dist/schema/common/citation.d.ts +30 -0
  371. package/dist/schema/common/citation.d.ts.map +1 -0
  372. package/dist/schema/common/citation.js +61 -0
  373. package/dist/schema/common/citation.js.map +1 -0
  374. package/dist/schema/common/equation.d.ts +17 -0
  375. package/dist/schema/common/equation.d.ts.map +1 -0
  376. package/dist/schema/common/equation.js +32 -0
  377. package/dist/schema/common/equation.js.map +1 -0
  378. package/dist/schema/common/figure.d.ts +87 -0
  379. package/dist/schema/common/figure.d.ts.map +1 -0
  380. package/dist/schema/common/figure.js +178 -0
  381. package/dist/schema/common/figure.js.map +1 -0
  382. package/dist/schema/common/heading.d.ts +9 -0
  383. package/dist/schema/common/heading.d.ts.map +1 -0
  384. package/dist/schema/common/heading.js +41 -0
  385. package/dist/schema/common/heading.js.map +1 -0
  386. package/dist/schema/common/index.d.ts +11 -0
  387. package/dist/schema/common/index.d.ts.map +1 -0
  388. package/dist/schema/common/index.js +11 -0
  389. package/dist/schema/common/index.js.map +1 -0
  390. package/dist/schema/common/list.d.ts +63 -0
  391. package/dist/schema/common/list.d.ts.map +1 -0
  392. package/dist/schema/common/list.js +92 -0
  393. package/dist/schema/common/list.js.map +1 -0
  394. package/dist/schema/common/reference.d.ts +70 -0
  395. package/dist/schema/common/reference.d.ts.map +1 -0
  396. package/dist/schema/common/reference.js +97 -0
  397. package/dist/schema/common/reference.js.map +1 -0
  398. package/dist/schema/common/table.d.ts +76 -0
  399. package/dist/schema/common/table.d.ts.map +1 -0
  400. package/dist/schema/common/table.js +86 -0
  401. package/dist/schema/common/table.js.map +1 -0
  402. package/dist/schema/common/track.d.ts +117 -0
  403. package/dist/schema/common/track.d.ts.map +1 -0
  404. package/{src → dist}/schema/common/track.js +44 -49
  405. package/dist/schema/common/track.js.map +1 -0
  406. package/dist/schema/const.d.ts +3 -0
  407. package/dist/schema/const.d.ts.map +1 -0
  408. package/{src → dist}/schema/const.js +3 -3
  409. package/dist/schema/const.js.map +1 -0
  410. package/dist/schema/convert.d.ts +3 -0
  411. package/dist/schema/convert.d.ts.map +1 -0
  412. package/dist/schema/convert.js +1215 -0
  413. package/dist/schema/convert.js.map +1 -0
  414. package/dist/schema/document/content.d.ts +110 -0
  415. package/dist/schema/document/content.d.ts.map +1 -0
  416. package/dist/schema/document/content.js +177 -0
  417. package/dist/schema/document/content.js.map +1 -0
  418. package/dist/schema/document/index.d.ts +795 -0
  419. package/dist/schema/document/index.d.ts.map +1 -0
  420. package/dist/schema/document/index.js +68 -0
  421. package/dist/schema/document/index.js.map +1 -0
  422. package/dist/schema/document/structure.d.ts +164 -0
  423. package/dist/schema/document/structure.d.ts.map +1 -0
  424. package/dist/schema/document/structure.js +445 -0
  425. package/dist/schema/document/structure.js.map +1 -0
  426. package/dist/schema/export.d.ts +7 -0
  427. package/dist/schema/export.d.ts.map +1 -0
  428. package/dist/schema/export.js +17 -0
  429. package/dist/schema/export.js.map +1 -0
  430. package/dist/schema/footnotes.d.ts +454 -0
  431. package/dist/schema/footnotes.d.ts.map +1 -0
  432. package/dist/schema/footnotes.js +90 -0
  433. package/dist/schema/footnotes.js.map +1 -0
  434. package/dist/schema/footnotes_convert.d.ts +5 -0
  435. package/dist/schema/footnotes_convert.d.ts.map +1 -0
  436. package/dist/schema/footnotes_convert.js +30 -0
  437. package/dist/schema/footnotes_convert.js.map +1 -0
  438. package/dist/schema/i18n.d.ts +55 -0
  439. package/dist/schema/i18n.d.ts.map +1 -0
  440. package/{src → dist}/schema/i18n.js +14 -23
  441. package/dist/schema/i18n.js.map +1 -0
  442. package/dist/schema/index.d.ts +6 -0
  443. package/dist/schema/index.d.ts.map +1 -0
  444. package/dist/schema/index.js +6 -0
  445. package/dist/schema/index.js.map +1 -0
  446. package/dist/schema/mini_json.d.ts +4 -0
  447. package/dist/schema/mini_json.d.ts.map +1 -0
  448. package/{src → dist}/schema/mini_json.js +19 -28
  449. package/dist/schema/mini_json.js.map +1 -0
  450. package/dist/schema/text.d.ts +3 -0
  451. package/dist/schema/text.d.ts.map +1 -0
  452. package/dist/schema/text.js +23 -0
  453. package/dist/schema/text.js.map +1 -0
  454. package/dist/types.d.ts +281 -0
  455. package/dist/types.d.ts.map +1 -0
  456. package/dist/types.js +9 -0
  457. package/dist/types.js.map +1 -0
  458. package/package.json +51 -16
  459. package/scripts/export-schema.js +1 -1
  460. package/src/bibliography/{common.js → common.ts} +15 -12
  461. package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
  462. package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
  463. package/src/citations/{format.js → format.ts} +80 -24
  464. package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
  465. package/src/exporter/docx/{citations.js → citations.ts} +51 -23
  466. package/src/exporter/docx/{comments.js → comments.ts} +69 -26
  467. package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
  468. package/src/exporter/docx/images.ts +128 -0
  469. package/src/exporter/docx/{index.js → index.ts} +48 -25
  470. package/src/exporter/docx/{lists.js → lists.ts} +89 -46
  471. package/src/exporter/docx/{math.js → math.ts} +29 -9
  472. package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
  473. package/src/exporter/docx/{rels.js → rels.ts} +71 -50
  474. package/src/exporter/docx/{render.js → render.ts} +124 -87
  475. package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
  476. package/src/exporter/docx/{tables.js → tables.ts} +33 -23
  477. package/src/exporter/docx/{tools.js → tools.ts} +4 -3
  478. package/src/exporter/epub/{index.js → index.ts} +44 -15
  479. package/src/exporter/epub/{templates.js → templates.ts} +71 -7
  480. package/src/exporter/epub/tools.ts +102 -0
  481. package/src/exporter/html/{citations.js → citations.ts} +79 -31
  482. package/src/exporter/html/{convert.js → convert.ts} +118 -71
  483. package/src/exporter/html/{index.js → index.ts} +63 -29
  484. package/src/exporter/html/{templates.js → templates.ts} +22 -2
  485. package/src/exporter/html/{tools.js → tools.ts} +9 -6
  486. package/src/exporter/jats/bibliography.ts +199 -0
  487. package/src/exporter/jats/{citations.js → citations.ts} +56 -20
  488. package/src/exporter/jats/{convert.js → convert.ts} +72 -53
  489. package/src/exporter/jats/index.ts +132 -0
  490. package/src/exporter/jats/{templates.js → templates.ts} +19 -3
  491. package/src/exporter/jats/{text.js → text.ts} +8 -6
  492. package/src/exporter/latex/{convert.js → convert.ts} +160 -125
  493. package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
  494. package/src/exporter/latex/{index.js → index.ts} +27 -12
  495. package/src/exporter/latex/{readme.js → readme.ts} +2 -2
  496. package/src/exporter/native/copy.ts +231 -0
  497. package/src/exporter/native/file.ts +65 -0
  498. package/src/exporter/native/index.ts +4 -0
  499. package/src/exporter/native/revision.ts +76 -0
  500. package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
  501. package/src/exporter/native/zip.ts +85 -0
  502. package/src/exporter/odt/{citations.js → citations.ts} +35 -15
  503. package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
  504. package/src/exporter/odt/images.ts +135 -0
  505. package/src/exporter/odt/{index.js → index.ts} +49 -27
  506. package/src/exporter/odt/{math.js → math.ts} +38 -9
  507. package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
  508. package/src/exporter/odt/{render.js → render.ts} +89 -60
  509. package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
  510. package/src/exporter/odt/{styles.js → styles.ts} +98 -66
  511. package/src/exporter/odt/{track.js → track.ts} +22 -6
  512. package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
  513. package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
  514. package/src/exporter/pandoc/{index.js → index.ts} +36 -13
  515. package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
  516. package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
  517. package/src/exporter/print/{index.js → index.ts} +38 -19
  518. package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
  519. package/src/exporter/tools/{file.js → file.ts} +1 -1
  520. package/src/exporter/tools/{json.js → json.ts} +30 -19
  521. package/src/exporter/tools/{svg.js → svg.ts} +9 -3
  522. package/src/exporter/tools/{xml.js → xml.ts} +187 -138
  523. package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
  524. package/src/exporter/tools/{zip.js → zip.ts} +35 -11
  525. package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
  526. package/src/global.d.ts +13 -0
  527. package/src/importer/citations.ts +116 -0
  528. package/src/importer/docx/{citations.js → citations.ts} +22 -37
  529. package/src/importer/docx/{convert.js → convert.ts} +176 -141
  530. package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
  531. package/src/importer/docx/index.ts +124 -0
  532. package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
  533. package/src/importer/docx/{parse.js → parse.ts} +103 -81
  534. package/src/importer/native/extract_template.ts +83 -0
  535. package/src/importer/native/file.ts +282 -0
  536. package/src/importer/native/get_images.ts +82 -0
  537. package/src/importer/native/importer.ts +244 -0
  538. package/src/importer/native/index.ts +6 -0
  539. package/src/importer/native/{update.js → update.ts} +13 -5
  540. package/src/importer/native/update_template.ts +32 -0
  541. package/src/importer/odt/{citations.js → citations.ts} +17 -29
  542. package/src/importer/odt/{convert.js → convert.ts} +261 -237
  543. package/src/importer/odt/index.ts +202 -0
  544. package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
  545. package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
  546. package/src/importer/pandoc/index.ts +171 -0
  547. package/src/importer/registry.ts +69 -0
  548. package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
  549. package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
  550. package/src/modules.d.ts +40 -0
  551. package/src/schema/common/{annotate.js → annotate.ts} +10 -8
  552. package/src/schema/common/{base.js → base.ts} +12 -10
  553. package/src/schema/common/{citation.js → citation.ts} +17 -8
  554. package/src/schema/common/{equation.js → equation.ts} +6 -4
  555. package/src/schema/common/{figure.js → figure.ts} +43 -23
  556. package/src/schema/common/{heading.js → heading.ts} +7 -5
  557. package/src/schema/common/{list.js → list.ts} +15 -13
  558. package/src/schema/common/{reference.js → reference.ts} +14 -12
  559. package/src/schema/common/{table.js → table.ts} +16 -14
  560. package/src/schema/common/track.ts +201 -0
  561. package/src/schema/const.ts +58 -0
  562. package/src/schema/{convert.js → convert.ts} +6 -2
  563. package/src/schema/document/{content.js → content.ts} +22 -20
  564. package/src/schema/document/{structure.js → structure.ts} +15 -9
  565. package/src/schema/{export.js → export.ts} +4 -2
  566. package/src/schema/{footnotes.js → footnotes.ts} +11 -8
  567. package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
  568. package/src/schema/i18n.ts +601 -0
  569. package/src/schema/mini_json.ts +60 -0
  570. package/src/schema/{text.js → text.ts} +6 -2
  571. package/src/types.ts +314 -0
  572. package/jest.config.js +0 -24
  573. package/src/exporter/docx/images.js +0 -101
  574. package/src/exporter/jats/bibliography.js +0 -183
  575. package/src/exporter/jats/index.js +0 -92
  576. package/src/exporter/odt/images.js +0 -115
  577. package/src/importer/citations.js +0 -129
  578. package/src/importer/native/get_images.js +0 -76
  579. /package/src/{index.js → index.ts} +0 -0
  580. /package/src/schema/common/{index.js → index.ts} +0 -0
  581. /package/src/schema/document/{index.js → index.ts} +0 -0
  582. /package/src/schema/{index.js → index.ts} +0 -0
@@ -1,21 +1,57 @@
1
1
  import {convertLatexToMathMl} from "mathlive"
2
2
  import pretty from "pretty"
3
3
 
4
- import {escapeText} from "fwtoolkit"
5
- import {CATS} from "../../schema/i18n.js"
4
+ import {escapeText, staticUrl} from "fwtoolkit"
5
+ import {getCat} from "../../schema/i18n.js"
6
+ import type {BibDB, CSL, DocSettings, FidusNode} from "../../types.js"
7
+ import {descendantNodes} from "../tools/doc_content.js"
6
8
  import {HTMLExporterCitations} from "./citations.js"
7
9
  import {displayNumber} from "./tools.js"
8
10
 
9
11
  export class HTMLExporterConvert {
12
+ docTitle: string
13
+ docSettings: DocSettings
14
+ docContent: FidusNode
15
+ htmlExportTemplate: any
16
+ imageDB: any
17
+ bibDB: BibDB
18
+ csl: CSL
19
+ styleSheets: any[]
20
+ xhtml: boolean
21
+ epub: boolean
22
+ relativeUrls: boolean
23
+ footnoteNumbering: string
24
+ affiliationNumbering: string
25
+
26
+ endSlash: string
27
+ imageIds: string[]
28
+ categoryCounter: Record<string, number>
29
+ affiliations: Record<string, number>
30
+ parCounter: number
31
+ headingCounter: number
32
+ currentSectionLevel: number
33
+ listCounter: number
34
+ orderedListLengths: number[]
35
+ footnotes: string[]
36
+ fnCounter: number
37
+ affCounter: number
38
+ metaData: any
39
+ features: {math: boolean; bibliography: boolean}
40
+ citations: any
41
+ citInfos: any[]
42
+ citationCount: number
43
+ extraStyleSheets: any[]
44
+ idPrefix: string
45
+
10
46
  constructor(
11
- docTitle,
12
- docSettings,
13
- docContent,
14
- htmlExportTemplate,
15
- imageDB,
16
- bibDB,
17
- csl,
18
- styleSheets,
47
+ docTitle: string,
48
+ docSettings: DocSettings,
49
+ docContent: FidusNode,
50
+ htmlExportTemplate: any,
51
+ imageDB: any,
52
+ bibDB: BibDB,
53
+ csl: CSL,
54
+ styleSheets: any[],
19
55
  {
20
56
  xhtml = false,
21
57
  epub = false,
@@ -26,7 +62,7 @@ export class HTMLExporterConvert {
26
62
  footnoteOffset = 0,
27
63
  affiliationOffset = 0,
28
64
  figureOffset = {}
29
- } = {}
65
+ }: any = {}
30
66
  ) {
31
67
  this.docTitle = docTitle
32
68
  this.docSettings = docSettings
@@ -81,12 +117,12 @@ export class HTMLExporterConvert {
81
117
  this.categoryCounter = Object.assign({}, figureOffset)
82
118
  }
83
119
 
84
- init() {
120
+ init(): Promise<any> {
85
121
  this.analyze(this.docContent)
86
122
  return this.process()
87
123
  }
88
124
 
89
- async processCitInfos() {
125
+ async processCitInfos(): Promise<void> {
90
126
  const citationProcessor = new HTMLExporterCitations(
91
127
  this.docSettings,
92
128
  this.bibDB,
@@ -96,7 +132,7 @@ export class HTMLExporterConvert {
96
132
  this.citations = citations
97
133
  }
98
134
 
99
- async process() {
135
+ async process(): Promise<any> {
100
136
  if (this.citInfos.length) {
101
137
  await this.processCitInfos()
102
138
  }
@@ -124,7 +160,7 @@ export class HTMLExporterConvert {
124
160
  body,
125
161
  back,
126
162
  settings: this.docSettings,
127
- lang: this.docSettings.language.split("-")[0],
163
+ lang: this.docSettings.language!.split("-")[0],
128
164
  xhtml: this.xhtml,
129
165
  epub: this.epub
130
166
  })
@@ -137,14 +173,14 @@ export class HTMLExporterConvert {
137
173
  }
138
174
 
139
175
  // Find information for meta tags in header
140
- analyze(node) {
176
+ analyze(node: any): void {
141
177
  switch (node.type) {
142
178
  case "citation":
143
179
  this.citInfos.push(JSON.parse(JSON.stringify(node.attrs)))
144
180
  break
145
181
  case "contributors_part":
146
182
  if (node.attrs.metadata === "authors" && node.content) {
147
- node.content.forEach(author => {
183
+ node.content.forEach((author: any) => {
148
184
  this.metaData.authors.push(author)
149
185
  })
150
186
  }
@@ -163,7 +199,7 @@ export class HTMLExporterConvert {
163
199
  level,
164
200
  id: node.attrs.id,
165
201
  title: (node.content || [])
166
- .map(subNode => this.walkJson(subNode))
202
+ .map((subNode: any) => this.walkJson(subNode))
167
203
  .join("")
168
204
  })
169
205
  break
@@ -173,7 +209,7 @@ export class HTMLExporterConvert {
173
209
  this.features.math = true
174
210
  break
175
211
  case "footnote":
176
- node.attrs.footnote.forEach(child => this.analyze(child))
212
+ node.attrs.footnote.forEach((child: any) => this.analyze(child))
177
213
  break
178
214
  case "richtext_part":
179
215
  if (
@@ -186,7 +222,7 @@ export class HTMLExporterConvert {
186
222
  break
187
223
  case "tags_part":
188
224
  if (node.attrs.metadata === "keywords" && node.content) {
189
- node.content.forEach(tag => {
225
+ node.content.forEach((tag: any) => {
190
226
  this.metaData.keywords.push(tag.attrs.tag)
191
227
  })
192
228
  }
@@ -209,17 +245,17 @@ export class HTMLExporterConvert {
209
245
  break
210
246
  }
211
247
  if (node.content) {
212
- node.content.forEach(child => this.analyze(child))
248
+ node.content.forEach((child: any) => this.analyze(child))
213
249
  }
214
250
  }
215
251
 
216
- assembleHead() {
252
+ assembleHead(): string {
217
253
  let head = `<title>${escapeText(this.metaData.title)}</title>`
218
254
  if (this.metaData.authors.length) {
219
255
  const authorString = this.metaData.authors
220
- .map(author => {
256
+ .map((author: any) => {
221
257
  if (author.firstname || author.lastname) {
222
- const nameParts = []
258
+ const nameParts: string[] = []
223
259
  if (author.firstname) {
224
260
  nameParts.push(author.firstname)
225
261
  }
@@ -247,7 +283,7 @@ export class HTMLExporterConvert {
247
283
 
248
284
  head += this.metaData.copyright.licenses
249
285
  .map(
250
- license =>
286
+ (license: any) =>
251
287
  `<link rel="license" href="${escapeText(license.url)}"${this.endSlash}>` // TODO: Add this.metaData.copyright.license.start info if present
252
288
  )
253
289
  .join("")
@@ -265,7 +301,7 @@ export class HTMLExporterConvert {
265
301
  }
266
302
  head += this.styleSheets
267
303
  .concat(this.extraStyleSheets)
268
- .map(sheet => {
304
+ .map((sheet: any) => {
269
305
  if (!sheet.filename && !sheet.contents) {
270
306
  console.warn(
271
307
  "No filename or contents for stylesheet.",
@@ -282,19 +318,19 @@ export class HTMLExporterConvert {
282
318
  }
283
319
 
284
320
  // Only allow for text output
285
- textWalkJson(node) {
321
+ textWalkJson(node: any): string {
286
322
  let content = ""
287
323
  if (node.type === "text") {
288
324
  content += escapeText(node.text).normalize("NFC")
289
325
  } else if (node.content) {
290
- node.content.forEach(child => {
326
+ node.content.forEach((child: any) => {
291
327
  content += this.textWalkJson(child)
292
328
  })
293
329
  }
294
330
  return content
295
331
  }
296
332
 
297
- walkJson(node, options = {}) {
333
+ walkJson(node: any, options: any = {}): string {
298
334
  let start = "",
299
335
  content = "",
300
336
  end = ""
@@ -317,13 +353,13 @@ export class HTMLExporterConvert {
317
353
  start += `<div class="doc-part doc-contributors doc-${node.attrs.id} ${node.attrs.metadata || "other"}" id="${this.idPrefix}${node.attrs.id}"${node.attrs.language ? ` lang="${node.attrs.language}"` : ""}>`
318
354
  end = "</div>" + end
319
355
  let counter = 0
320
- const contributorOutputs = []
321
- node.content.forEach(childNode => {
356
+ const contributorOutputs: string[] = []
357
+ node.content.forEach((childNode: any) => {
322
358
  const contributor = childNode.attrs
323
359
  let output = ""
324
360
  if (contributor.firstname || contributor.lastname) {
325
361
  output += `<span id="${this.idPrefix}${node.attrs.id}-${counter++}" class="person">`
326
- const nameParts = []
362
+ const nameParts: string[] = []
327
363
  if (contributor.firstname) {
328
364
  nameParts.push(
329
365
  `<span class="firstname">${escapeText(contributor.firstname)}</span>`
@@ -392,7 +428,7 @@ export class HTMLExporterConvert {
392
428
  start += `<div class="doc-part table-of-contents"><h1>${escapeText(node.attrs.title)}</h1>`
393
429
  content += this.metaData.toc
394
430
  .map(
395
- item =>
431
+ (item: any) =>
396
432
  `<h${item.level}><a href="#${item.id}">${item.title}</a></h${item.level}>`
397
433
  )
398
434
  .join("")
@@ -423,7 +459,7 @@ export class HTMLExporterConvert {
423
459
  break
424
460
  }
425
461
  case "code_block": {
426
- const attrs = []
462
+ const attrs: string[] = []
427
463
  if (node.attrs.language) {
428
464
  attrs.push(
429
465
  `data-language="${escapeText(node.attrs.language)}"`
@@ -442,29 +478,27 @@ export class HTMLExporterConvert {
442
478
 
443
479
  // If there's a category, wrap in figure for proper numbering
444
480
  if (node.attrs.category && node.attrs.id) {
445
- const language = this.doc.attrs.language || "en-US"
446
- const {CATS} = require("../../schema/i18n")
447
- const categoryLabel =
448
- CATS[node.attrs.category]?.[language] ||
449
- node.attrs.category
481
+ const language = this.docSettings.language || "en-US"
482
+ const categoryLabel = getCat(node.attrs.category, language)
450
483
 
451
484
  // Count code blocks to get the number
452
- const categories = {}
453
- this.doc.descendants(n => {
485
+ const categories: Record<string, number> = {}
486
+ for (const n of descendantNodes(this.docContent)) {
454
487
  if (
455
488
  n.type === "code_block" &&
456
- n.attrs.category &&
489
+ n.attrs?.category &&
457
490
  n.attrs.id
458
491
  ) {
459
- if (!categories[n.attrs.category]) {
460
- categories[n.attrs.category] = 0
492
+ const category = n.attrs.category as string
493
+ if (!categories[category]) {
494
+ categories[category] = 0
461
495
  }
462
- categories[n.attrs.category]++
496
+ categories[category]++
463
497
  if (n.attrs.id === node.attrs.id) {
464
- return false
498
+ break
465
499
  }
466
500
  }
467
- })
501
+ }
468
502
  const number = categories[node.attrs.category] || 1
469
503
  const label = node.attrs.title
470
504
  ? `${categoryLabel} ${number}: ${escapeText(node.attrs.title)}`
@@ -528,19 +562,32 @@ export class HTMLExporterConvert {
528
562
  end = "</aside>" + end
529
563
  break
530
564
  case "text": {
531
- let strong, em, underline, hyperlink, anchor, sup, sub, code
565
+ let strong: any,
566
+ em: any,
567
+ underline: any,
568
+ hyperlink: any,
569
+ anchor: any,
570
+ sup: any,
571
+ sub: any,
572
+ code: any
532
573
  // Check for hyperlink, bold/strong, italic/em and underline
533
574
  if (node.marks) {
534
- strong = node.marks.find(mark => mark.type === "strong")
535
- em = node.marks.find(mark => mark.type === "em")
575
+ strong = node.marks.find(
576
+ (mark: any) => mark.type === "strong"
577
+ )
578
+ em = node.marks.find((mark: any) => mark.type === "em")
536
579
  underline = node.marks.find(
537
- mark => mark.type === "underline"
580
+ (mark: any) => mark.type === "underline"
581
+ )
582
+ hyperlink = node.marks.find(
583
+ (mark: any) => mark.type === "link"
584
+ )
585
+ anchor = node.marks.find(
586
+ (mark: any) => mark.type === "anchor"
538
587
  )
539
- hyperlink = node.marks.find(mark => mark.type === "link")
540
- anchor = node.marks.find(mark => mark.type === "anchor")
541
- sup = node.marks.find(mark => mark.type === "sup")
542
- sub = node.marks.find(mark => mark.type === "sub")
543
- code = node.marks.find(mark => mark.type === "code")
588
+ sup = node.marks.find((mark: any) => mark.type === "sup")
589
+ sub = node.marks.find((mark: any) => mark.type === "sub")
590
+ code = node.marks.find((mark: any) => mark.type === "code")
544
591
  }
545
592
  if (em) {
546
593
  start += "<em>"
@@ -609,9 +656,9 @@ export class HTMLExporterConvert {
609
656
  break
610
657
  }
611
658
  case "figure": {
612
- let imageUrl, copyright
659
+ let imageUrl: string | undefined, copyright: any
613
660
  const image =
614
- node.content.find(node => node.type === "image")?.attrs
661
+ node.content.find((node: any) => node.type === "image")?.attrs
615
662
  .image || false
616
663
  if (image !== false) {
617
664
  this.imageIds.push(image)
@@ -619,11 +666,11 @@ export class HTMLExporterConvert {
619
666
  filePathName = imageDBEntry.image
620
667
  copyright = imageDBEntry.copyright
621
668
  imageUrl = this.relativeUrls
622
- ? `images/${filePathName.split("/").pop()}`
623
- : filePathName
669
+ ? `images/${filePathName!.toString().split("/").pop()!}`
670
+ : (filePathName as string)
624
671
  }
625
672
  const caption = node.attrs.caption
626
- ? node.content.find(node => node.type === "figure_caption")
673
+ ? node.content.find((node: any) => node.type === "figure_caption")
627
674
  ?.content || []
628
675
  : []
629
676
  if (
@@ -644,7 +691,7 @@ export class HTMLExporterConvert {
644
691
  end = "</figure>" + end
645
692
 
646
693
  const equation = node.content.find(
647
- node => node.type === "figure_equation"
694
+ (node: any) => node.type === "figure_equation"
648
695
  )?.attrs.equation
649
696
 
650
697
  if (image && copyright?.holder) {
@@ -657,7 +704,7 @@ export class HTMLExporterConvert {
657
704
  figureFooter += `<span class="copyright-holder">${escapeText(copyright.holder)}</span> `
658
705
  figureFooter += copyright.licenses
659
706
  .map(
660
- license =>
707
+ (license: any) =>
661
708
  `<span class="license"><a rel="license"${license.start ? ` data-start="${license.start}"` : ""}>${escapeText(license.url)}</a></span>`
662
709
  )
663
710
  .join("")
@@ -673,11 +720,11 @@ export class HTMLExporterConvert {
673
720
  this.categoryCounter[category] = 0
674
721
  }
675
722
  const catCount = ++this.categoryCounter[category]
676
- const catLabel = `${CATS[category][this.docSettings.language]} ${catCount}`
723
+ const catLabel = `${getCat(category, this.docSettings.language || "en-US")} ${catCount}`
677
724
  figcaption += `<label>${escapeText(catLabel)}</label>`
678
725
  }
679
726
  if (caption.length) {
680
- figcaption += `<p>${caption.map(node => this.walkJson(node)).join("")}</p>`
727
+ figcaption += `<p>${caption.map((node: any) => this.walkJson(node)).join("")}</p>`
681
728
  }
682
729
  figcaption += "</figcaption>"
683
730
  if (category === "table") {
@@ -726,14 +773,14 @@ export class HTMLExporterConvert {
726
773
  this.categoryCounter[category] = 0
727
774
  }
728
775
  const catCount = ++this.categoryCounter[category]
729
- const catLabel = `${CATS[category][this.docSettings.language]} ${catCount}`
776
+ const catLabel = `${getCat(category, this.docSettings.language || "en-US")} ${catCount}`
730
777
  start += `<label>${escapeText(catLabel)}</label>`
731
778
  }
732
779
  const caption = node.attrs.caption
733
780
  ? node.content[0].content || []
734
781
  : []
735
782
  if (caption.length) {
736
- start += `<caption><p>${caption.map(node => this.walkJson(node)).join("")}</p></caption>`
783
+ start += `<caption><p>${caption.map((node: any) => this.walkJson(node)).join("")}</p></caption>`
737
784
  }
738
785
  start += "<tbody>"
739
786
  end = "</tbody>" + end
@@ -770,7 +817,7 @@ export class HTMLExporterConvert {
770
817
  }
771
818
 
772
819
  if (!content.length && node.content) {
773
- node.content.forEach(child => {
820
+ node.content.forEach((child: any) => {
774
821
  content += this.walkJson(child, options)
775
822
  })
776
823
  }
@@ -778,11 +825,11 @@ export class HTMLExporterConvert {
778
825
  return start + content + end
779
826
  }
780
827
 
781
- assembleBody() {
828
+ assembleBody(): string {
782
829
  return `<div id="${this.idPrefix}body">${this.walkJson(this.docContent)}</div>`
783
830
  }
784
831
 
785
- assembleBack() {
832
+ assembleBack(): string {
786
833
  let back = ""
787
834
  if (
788
835
  this.footnotes.length ||
@@ -796,7 +843,7 @@ export class HTMLExporterConvert {
796
843
  )
797
844
  .map(
798
845
  ([name, id]) =>
799
- `<aside class="affiliation" id="aff-${id}"${this.epub ? 'epub:type="footnote"' : ""}><label>${displayNumber(id, this.affiliationNumbering)}</label> <div>${escapeText(name)}</div></aside>`
846
+ `<aside class="affiliation" id="aff-${id}"${this.epub ? 'epub:type="footnote"' : ""}><label>${displayNumber(id as number, this.affiliationNumbering)}</label> <div>${escapeText(name)}</div></aside>`
800
847
  )
801
848
  .join("")}</section>`
802
849
  }
@@ -1,27 +1,57 @@
1
1
  import download from "downloadjs"
2
2
  import pretty from "pretty"
3
3
 
4
- import {shortFileTitle} from "fwtoolkit"
4
+ import {shortFileTitle, staticUrl} from "fwtoolkit"
5
+ import type {BibDB, CSL, ExportDoc, FidusNode, ImageDB} from "../../types.js"
5
6
  import {removeHidden} from "../tools/doc_content.js"
6
7
  import {createSlug} from "../tools/file.js"
7
- import {ZipFileCreator} from "../tools/zip.js"
8
-
8
+ import {ZipFileCreator, type ZipTextFile} from "../tools/zip.js"
9
9
  import {HTMLExporterConvert} from "./convert.js"
10
10
  import {htmlExportTemplate} from "./templates.js"
11
+
11
12
  /*
12
13
  Exporter to HTML
13
14
  */
14
15
 
15
16
  export class HTMLExporter {
17
+ doc: ExportDoc
18
+ bibDB: BibDB
19
+ imageDB: ImageDB
20
+ csl: CSL
21
+ updated: any
22
+ documentStyles: Array<{
23
+ slug: string
24
+ contents: string
25
+ documentstylefile_set: Array<[string, string]>
26
+ }>
27
+ converterOptions: Record<string, unknown>
28
+
29
+ docTitle: string
30
+ docContent: any
31
+ zipFileName: string | false
32
+ textFiles: Array<{filename: string; contents?: string; url?: string}>
33
+ httpFiles: Array<{filename: string; url: string}>
34
+ includeZips: Array<{directory: string; url: string}>
35
+ metaData: any
36
+ htmlExportTemplate: typeof htmlExportTemplate
37
+ contentFileName: string
38
+ fileEnding: string
39
+ mimeType: string
40
+ styleSheets: Array<{url?: string; filename?: string; contents?: string}>
41
+
16
42
  constructor(
17
- doc,
18
- bibDB,
19
- imageDB,
20
- csl,
21
- updated,
22
- documentStyles,
23
- converterOptions = {},
24
- template = htmlExportTemplate
43
+ doc: ExportDoc,
44
+ bibDB: BibDB,
45
+ imageDB: ImageDB,
46
+ csl: CSL,
47
+ updated: any,
48
+ documentStyles: Array<{
49
+ slug: string
50
+ contents: string
51
+ documentstylefile_set: Array<[string, string]>
52
+ }>,
53
+ converterOptions: Record<string, unknown> = {},
54
+ template: typeof htmlExportTemplate = htmlExportTemplate
25
55
  ) {
26
56
  this.doc = doc
27
57
  this.bibDB = bibDB
@@ -31,7 +61,7 @@ export class HTMLExporter {
31
61
  this.documentStyles = documentStyles
32
62
  this.converterOptions = converterOptions
33
63
 
34
- this.docTitle = shortFileTitle(this.doc.title, this.doc.path)
64
+ this.docTitle = shortFileTitle(this.doc.title, this.doc.path || "")
35
65
 
36
66
  this.docContent = false
37
67
  this.zipFileName = false
@@ -53,15 +83,15 @@ export class HTMLExporter {
53
83
  this.styleSheets = [{url: staticUrl("css/document.css")}]
54
84
  }
55
85
 
56
- async init() {
86
+ async init(): Promise<void> {
57
87
  await this.process()
58
88
  return await this.createZip()
59
89
  }
60
90
 
61
- async process() {
91
+ async process(): Promise<void> {
62
92
  // Process the document and prepare files
63
93
  this.zipFileName = `${createSlug(this.docTitle)}.${this.fileEnding}`
64
- this.docContent = removeHidden(this.doc.content)
94
+ this.docContent = removeHidden(this.doc.content) as FidusNode
65
95
 
66
96
  const docStyle = this.getDocStyle(this.doc)
67
97
 
@@ -95,11 +125,13 @@ export class HTMLExporter {
95
125
  this.addDoc(html)
96
126
  this.addImages(imageIds)
97
127
  await Promise.all(
98
- extraStyleSheets.map(async sheet => await this.loadStyle(sheet))
128
+ extraStyleSheets.map(async (sheet: any) => await this.loadStyle(sheet))
99
129
  )
100
130
  }
101
131
 
102
- getProcessedFiles() {
132
+ converter: any
133
+
134
+ getProcessedFiles(): any {
103
135
  // Return the processed files and metadata. Used when using the
104
136
  // exporter in a different context than creating a zip file.
105
137
  return {
@@ -111,24 +143,24 @@ export class HTMLExporter {
111
143
  }
112
144
  }
113
145
 
114
- addDoc(html) {
146
+ addDoc(html: string): void {
115
147
  this.textFiles.push({
116
148
  filename: this.contentFileName,
117
149
  contents: pretty(html, {ocd: true})
118
150
  })
119
151
  }
120
152
 
121
- addImages(imageIds) {
153
+ addImages(imageIds: string[]): void {
122
154
  imageIds.forEach(id => {
123
155
  const image = this.imageDB.db[id]
124
156
  this.httpFiles.push({
125
- filename: `images/${image.image.split("/").pop()}`,
126
- url: image.image
157
+ filename: `images/${image.image!.toString().split("/").pop()!}`,
158
+ url: image.image as string
127
159
  })
128
160
  })
129
161
  }
130
162
 
131
- getDocStyle(doc) {
163
+ getDocStyle(doc: ExportDoc): {contents: string; filename: string} | false {
132
164
  const docStyle = this.documentStyles.find(
133
165
  docStyle => docStyle.slug === doc.settings.documentstyle
134
166
  )
@@ -155,7 +187,9 @@ export class HTMLExporter {
155
187
  return {contents, filename: `css/${docStyle.slug}.css`}
156
188
  }
157
189
 
158
- async loadStyle(sheet) {
190
+ async loadStyle(
191
+ sheet: {url?: string; filename?: string; contents?: string}
192
+ ): Promise<any> {
159
193
  if (sheet.url) {
160
194
  // Use simple fetch without X-Requested-With header and credentials
161
195
  // to avoid CORS preflight redirect issues with CDNs
@@ -165,18 +199,18 @@ export class HTMLExporter {
165
199
  }
166
200
  const text = await response.text()
167
201
  sheet.contents = text
168
- sheet.filename = `css/${sheet.url.split("/").pop().split("?")[0]}`
202
+ sheet.filename = `css/${sheet.url.split("/").pop()!.split("?")[0]}`
169
203
  delete sheet.url
170
204
  }
171
205
  if (sheet.filename) {
172
- this.textFiles.push(sheet)
206
+ this.textFiles.push(sheet as {filename: string; contents?: string})
173
207
  }
174
208
  return Promise.resolve(sheet)
175
209
  }
176
210
 
177
- async createZip() {
211
+ async createZip(): Promise<void> {
178
212
  const zipper = new ZipFileCreator(
179
- this.textFiles,
213
+ this.textFiles as ZipTextFile[],
180
214
  this.httpFiles,
181
215
  this.includeZips,
182
216
  this.mimeType,
@@ -186,7 +220,7 @@ export class HTMLExporter {
186
220
  return this.download(blob)
187
221
  }
188
222
 
189
- download(blob) {
190
- return download(blob, this.zipFileName, this.mimeType)
223
+ download(blob: Blob): void {
224
+ return download(blob, this.zipFileName as string, this.mimeType)
191
225
  }
192
226
  }
@@ -1,5 +1,25 @@
1
1
  import {escapeText} from "fwtoolkit"
2
2
 
3
+ import type {DocSettings} from "../../types.js"
4
+
5
+ export interface HtmlExportSettings extends DocSettings {
6
+ copyright?: {
7
+ holder?: string
8
+ year?: number
9
+ licenses?: Array<{url: string; title: string; start?: number}>
10
+ }
11
+ }
12
+
13
+ export interface HtmlExportTemplateOptions {
14
+ head: string
15
+ body: string
16
+ back: string
17
+ settings: HtmlExportSettings
18
+ lang: string
19
+ xhtml?: boolean
20
+ epub?: boolean
21
+ }
22
+
3
23
  /** A template for HTML export of a document. */
4
24
  export const htmlExportTemplate = ({
5
25
  head,
@@ -9,7 +29,7 @@ export const htmlExportTemplate = ({
9
29
  lang,
10
30
  xhtml,
11
31
  epub
12
- }) =>
32
+ }: HtmlExportTemplateOptions): string =>
13
33
  `${xhtml ? '<?xml version="1.0" encoding="UTF-8"?>' : "<!DOCTYPE html>"}
14
34
  <html ${xhtml ? `xmlns="http://www.w3.org/1999/xhtml" ${epub ? 'xmlns:epub="http://www.idpf.org/2007/ops"' : ""}` : ""} lang="${lang}"${xhtml ? ` xml:lang="${lang}"` : ""}>
15
35
  <head>
@@ -26,7 +46,7 @@ export const htmlExportTemplate = ({
26
46
  : ""
27
47
  }
28
48
  ${
29
- settings.copyright && settings.copyright.licenses.length
49
+ settings.copyright && settings.copyright.licenses?.length
30
50
  ? `<div>${settings.copyright.licenses.map(license => `<a rel="license" href="${escapeText(license.url)}">${escapeText(license.title)}${license.start ? ` (${license.start})` : ""}</a>`).join("</div><div>")}</div>`
31
51
  : ""
32
52
  }