@fiduswriter/document 0.1.0-alpha.4 → 0.1.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bibliography/common.d.ts +9 -91
- package/dist/bibliography/common.d.ts.map +1 -1
- package/dist/bibliography/common.js +3 -2
- package/dist/bibliography/common.js.map +1 -1
- package/dist/bibliography/csl_bib.d.ts +1 -1
- package/dist/bibliography/csl_bib.d.ts.map +1 -1
- package/dist/bibliography/csl_bib.js +7 -7
- package/dist/bibliography/csl_bib.js.map +1 -1
- package/dist/citations/citeproc_sys.d.ts +9 -10
- package/dist/citations/citeproc_sys.d.ts.map +1 -1
- package/dist/citations/citeproc_sys.js +6 -1
- package/dist/citations/citeproc_sys.js.map +1 -1
- package/dist/citations/format.d.ts +33 -16
- package/dist/citations/format.d.ts.map +1 -1
- package/dist/citations/format.js +29 -4
- package/dist/citations/format.js.map +1 -1
- package/dist/editor/e2ee/encryptor.d.ts +35 -35
- package/dist/editor/e2ee/encryptor.d.ts.map +1 -1
- package/dist/editor/e2ee/encryptor.js +31 -31
- package/dist/editor/e2ee/encryptor.js.map +1 -1
- package/dist/exporter/docx/citations.d.ts +27 -17
- package/dist/exporter/docx/citations.d.ts.map +1 -1
- package/dist/exporter/docx/citations.js +24 -7
- package/dist/exporter/docx/citations.js.map +1 -1
- package/dist/exporter/docx/comments.d.ts +15 -11
- package/dist/exporter/docx/comments.d.ts.map +1 -1
- package/dist/exporter/docx/comments.js +47 -14
- package/dist/exporter/docx/comments.js.map +1 -1
- package/dist/exporter/docx/footnotes.d.ts +36 -31
- package/dist/exporter/docx/footnotes.d.ts.map +1 -1
- package/dist/exporter/docx/footnotes.js +46 -12
- package/dist/exporter/docx/footnotes.js.map +1 -1
- package/dist/exporter/docx/images.d.ts +23 -12
- package/dist/exporter/docx/images.d.ts.map +1 -1
- package/dist/exporter/docx/images.js +35 -20
- package/dist/exporter/docx/images.js.map +1 -1
- package/dist/exporter/docx/index.d.ts +11 -17
- package/dist/exporter/docx/index.d.ts.map +1 -1
- package/dist/exporter/docx/index.js +15 -7
- package/dist/exporter/docx/index.js.map +1 -1
- package/dist/exporter/docx/lists.d.ts +27 -22
- package/dist/exporter/docx/lists.d.ts.map +1 -1
- package/dist/exporter/docx/lists.js +77 -30
- package/dist/exporter/docx/lists.js.map +1 -1
- package/dist/exporter/docx/math.d.ts +9 -9
- package/dist/exporter/docx/math.d.ts.map +1 -1
- package/dist/exporter/docx/math.js +22 -5
- package/dist/exporter/docx/math.js.map +1 -1
- package/dist/exporter/docx/metadata.d.ts +12 -9
- package/dist/exporter/docx/metadata.d.ts.map +1 -1
- package/dist/exporter/docx/metadata.js +59 -26
- package/dist/exporter/docx/metadata.js.map +1 -1
- package/dist/exporter/docx/rels.d.ts +14 -12
- package/dist/exporter/docx/rels.d.ts.map +1 -1
- package/dist/exporter/docx/rels.js +37 -22
- package/dist/exporter/docx/rels.js.map +1 -1
- package/dist/exporter/docx/render.d.ts +17 -15
- package/dist/exporter/docx/render.d.ts.map +1 -1
- package/dist/exporter/docx/render.js +37 -31
- package/dist/exporter/docx/render.js.map +1 -1
- package/dist/exporter/docx/richtext.d.ts +8 -8
- package/dist/exporter/docx/richtext.d.ts.map +1 -1
- package/dist/exporter/docx/richtext.js +61 -43
- package/dist/exporter/docx/richtext.js.map +1 -1
- package/dist/exporter/docx/tables.d.ts +11 -9
- package/dist/exporter/docx/tables.d.ts.map +1 -1
- package/dist/exporter/docx/tables.js +16 -10
- package/dist/exporter/docx/tables.js.map +1 -1
- package/dist/exporter/docx/tools.d.ts +3 -2
- package/dist/exporter/docx/tools.d.ts.map +1 -1
- package/dist/exporter/docx/tools.js +3 -3
- package/dist/exporter/docx/tools.js.map +1 -1
- package/dist/exporter/epub/index.d.ts +11 -3
- package/dist/exporter/epub/index.d.ts.map +1 -1
- package/dist/exporter/epub/index.js +10 -3
- package/dist/exporter/epub/index.js.map +1 -1
- package/dist/exporter/epub/templates.d.ts +62 -31
- package/dist/exporter/epub/templates.d.ts.map +1 -1
- package/dist/exporter/epub/templates.js +1 -1
- package/dist/exporter/epub/templates.js.map +1 -1
- package/dist/exporter/epub/tools.d.ts +12 -4
- package/dist/exporter/epub/tools.d.ts.map +1 -1
- package/dist/exporter/epub/tools.js +14 -13
- package/dist/exporter/epub/tools.js.map +1 -1
- package/dist/exporter/html/citations.d.ts +17 -15
- package/dist/exporter/html/citations.d.ts.map +1 -1
- package/dist/exporter/html/citations.js +37 -18
- package/dist/exporter/html/citations.js.map +1 -1
- package/dist/exporter/html/convert.d.ts +20 -70
- package/dist/exporter/html/convert.d.ts.map +1 -1
- package/dist/exporter/html/convert.js +74 -42
- package/dist/exporter/html/convert.js.map +1 -1
- package/dist/exporter/html/index.d.ts +55 -52
- package/dist/exporter/html/index.d.ts.map +1 -1
- package/dist/exporter/html/index.js +23 -3
- package/dist/exporter/html/index.js.map +1 -1
- package/dist/exporter/html/templates.d.ts +23 -9
- package/dist/exporter/html/templates.d.ts.map +1 -1
- package/dist/exporter/html/templates.js +1 -1
- package/dist/exporter/html/templates.js.map +1 -1
- package/dist/exporter/html/tools.d.ts +1 -1
- package/dist/exporter/html/tools.d.ts.map +1 -1
- package/dist/exporter/html/tools.js +2 -2
- package/dist/exporter/html/tools.js.map +1 -1
- package/dist/exporter/jats/bibliography.d.ts +2 -1
- package/dist/exporter/jats/bibliography.d.ts.map +1 -1
- package/dist/exporter/jats/bibliography.js +57 -52
- package/dist/exporter/jats/bibliography.js.map +1 -1
- package/dist/exporter/jats/citations.d.ts +13 -11
- package/dist/exporter/jats/citations.d.ts.map +1 -1
- package/dist/exporter/jats/citations.js +28 -6
- package/dist/exporter/jats/citations.js.map +1 -1
- package/dist/exporter/jats/convert.d.ts +24 -28
- package/dist/exporter/jats/convert.d.ts.map +1 -1
- package/dist/exporter/jats/convert.js +53 -36
- package/dist/exporter/jats/convert.js.map +1 -1
- package/dist/exporter/jats/index.d.ts +21 -15
- package/dist/exporter/jats/index.d.ts.map +1 -1
- package/dist/exporter/jats/index.js +21 -5
- package/dist/exporter/jats/index.js.map +1 -1
- package/dist/exporter/jats/templates.d.ts +17 -15
- package/dist/exporter/jats/templates.d.ts.map +1 -1
- package/dist/exporter/jats/templates.js.map +1 -1
- package/dist/exporter/jats/text.d.ts +3 -2
- package/dist/exporter/jats/text.d.ts.map +1 -1
- package/dist/exporter/jats/text.js +4 -4
- package/dist/exporter/jats/text.js.map +1 -1
- package/dist/exporter/latex/convert.d.ts +12 -15
- package/dist/exporter/latex/convert.d.ts.map +1 -1
- package/dist/exporter/latex/convert.js +70 -54
- package/dist/exporter/latex/convert.js.map +1 -1
- package/dist/exporter/latex/escape_latex.d.ts +1 -1
- package/dist/exporter/latex/escape_latex.d.ts.map +1 -1
- package/dist/exporter/latex/escape_latex.js +1 -1
- package/dist/exporter/latex/escape_latex.js.map +1 -1
- package/dist/exporter/latex/index.d.ts +20 -19
- package/dist/exporter/latex/index.d.ts.map +1 -1
- package/dist/exporter/latex/index.js +15 -5
- package/dist/exporter/latex/index.js.map +1 -1
- package/dist/exporter/latex/readme.d.ts +1 -1
- package/dist/exporter/latex/readme.d.ts.map +1 -1
- package/dist/exporter/latex/readme.js +2 -2
- package/dist/exporter/latex/readme.js.map +1 -1
- package/dist/exporter/native/copy.d.ts +30 -0
- package/dist/exporter/native/copy.d.ts.map +1 -0
- package/dist/exporter/native/copy.js +151 -0
- package/dist/exporter/native/copy.js.map +1 -0
- package/dist/exporter/native/file.d.ts +12 -0
- package/dist/exporter/native/file.d.ts.map +1 -0
- package/dist/exporter/native/file.js +38 -0
- package/dist/exporter/native/file.js.map +1 -0
- package/dist/exporter/native/index.d.ts +5 -0
- package/dist/exporter/native/index.d.ts.map +1 -0
- package/dist/exporter/native/index.js +5 -0
- package/dist/exporter/native/index.js.map +1 -0
- package/dist/exporter/native/revision.d.ts +18 -0
- package/dist/exporter/native/revision.d.ts.map +1 -0
- package/dist/exporter/native/revision.js +39 -0
- package/dist/exporter/native/revision.js.map +1 -0
- package/dist/exporter/native/shrink.d.ts +29 -14
- package/dist/exporter/native/shrink.d.ts.map +1 -1
- package/dist/exporter/native/shrink.js +27 -18
- package/dist/exporter/native/shrink.js.map +1 -1
- package/dist/exporter/native/zip.d.ts +25 -0
- package/dist/exporter/native/zip.d.ts.map +1 -0
- package/dist/exporter/native/zip.js +56 -0
- package/dist/exporter/native/zip.js.map +1 -0
- package/dist/exporter/odt/citations.d.ts +18 -15
- package/dist/exporter/odt/citations.d.ts.map +1 -1
- package/dist/exporter/odt/citations.js +21 -4
- package/dist/exporter/odt/citations.js.map +1 -1
- package/dist/exporter/odt/footnotes.d.ts +25 -19
- package/dist/exporter/odt/footnotes.d.ts.map +1 -1
- package/dist/exporter/odt/footnotes.js +23 -6
- package/dist/exporter/odt/footnotes.js.map +1 -1
- package/dist/exporter/odt/images.d.ts +23 -11
- package/dist/exporter/odt/images.d.ts.map +1 -1
- package/dist/exporter/odt/images.js +34 -26
- package/dist/exporter/odt/images.js.map +1 -1
- package/dist/exporter/odt/index.d.ts +12 -18
- package/dist/exporter/odt/index.d.ts.map +1 -1
- package/dist/exporter/odt/index.js +16 -7
- package/dist/exporter/odt/index.js.map +1 -1
- package/dist/exporter/odt/math.d.ts +10 -8
- package/dist/exporter/odt/math.d.ts.map +1 -1
- package/dist/exporter/odt/math.js +27 -4
- package/dist/exporter/odt/math.js.map +1 -1
- package/dist/exporter/odt/metadata.d.ts +13 -9
- package/dist/exporter/odt/metadata.d.ts.map +1 -1
- package/dist/exporter/odt/metadata.js +36 -15
- package/dist/exporter/odt/metadata.js.map +1 -1
- package/dist/exporter/odt/render.d.ts +17 -15
- package/dist/exporter/odt/render.d.ts.map +1 -1
- package/dist/exporter/odt/render.js +25 -18
- package/dist/exporter/odt/render.js.map +1 -1
- package/dist/exporter/odt/richtext.d.ts +9 -9
- package/dist/exporter/odt/richtext.d.ts.map +1 -1
- package/dist/exporter/odt/richtext.js +55 -40
- package/dist/exporter/odt/richtext.js.map +1 -1
- package/dist/exporter/odt/styles.d.ts +29 -21
- package/dist/exporter/odt/styles.d.ts.map +1 -1
- package/dist/exporter/odt/styles.js +44 -22
- package/dist/exporter/odt/styles.js.map +1 -1
- package/dist/exporter/odt/track.d.ts +14 -7
- package/dist/exporter/odt/track.d.ts.map +1 -1
- package/dist/exporter/odt/track.js +7 -0
- package/dist/exporter/odt/track.js.map +1 -1
- package/dist/exporter/pandoc/citations.d.ts +20 -14
- package/dist/exporter/pandoc/citations.d.ts.map +1 -1
- package/dist/exporter/pandoc/citations.js +18 -4
- package/dist/exporter/pandoc/citations.js.map +1 -1
- package/dist/exporter/pandoc/convert.d.ts +10 -29
- package/dist/exporter/pandoc/convert.d.ts.map +1 -1
- package/dist/exporter/pandoc/convert.js +45 -40
- package/dist/exporter/pandoc/convert.js.map +1 -1
- package/dist/exporter/pandoc/index.d.ts +20 -33
- package/dist/exporter/pandoc/index.d.ts.map +1 -1
- package/dist/exporter/pandoc/index.js +20 -8
- package/dist/exporter/pandoc/index.js.map +1 -1
- package/dist/exporter/pandoc/readme.d.ts +1 -1
- package/dist/exporter/pandoc/readme.d.ts.map +1 -1
- package/dist/exporter/pandoc/readme.js +0 -1
- package/dist/exporter/pandoc/readme.js.map +1 -1
- package/dist/exporter/pandoc/tools.d.ts +21 -5
- package/dist/exporter/pandoc/tools.d.ts.map +1 -1
- package/dist/exporter/pandoc/tools.js +2 -2
- package/dist/exporter/pandoc/tools.js.map +1 -1
- package/dist/exporter/print/index.d.ts +18 -7
- package/dist/exporter/print/index.d.ts.map +1 -1
- package/dist/exporter/print/index.js +12 -10
- package/dist/exporter/print/index.js.map +1 -1
- package/dist/exporter/tools/doc_content.d.ts +5 -6
- package/dist/exporter/tools/doc_content.d.ts.map +1 -1
- package/dist/exporter/tools/doc_content.js +17 -16
- package/dist/exporter/tools/doc_content.js.map +1 -1
- package/dist/exporter/tools/svg.d.ts +7 -1
- package/dist/exporter/tools/svg.d.ts.map +1 -1
- package/dist/exporter/tools/svg.js.map +1 -1
- package/dist/exporter/tools/xml.d.ts +39 -38
- package/dist/exporter/tools/xml.d.ts.map +1 -1
- package/dist/exporter/tools/xml.js +82 -55
- package/dist/exporter/tools/xml.js.map +1 -1
- package/dist/exporter/tools/xml_zip.d.ts +15 -14
- package/dist/exporter/tools/xml_zip.d.ts.map +1 -1
- package/dist/exporter/tools/xml_zip.js +8 -2
- package/dist/exporter/tools/xml_zip.js.map +1 -1
- package/dist/exporter/tools/zip.d.ts +28 -14
- package/dist/exporter/tools/zip.d.ts.map +1 -1
- package/dist/exporter/tools/zip.js +13 -6
- package/dist/exporter/tools/zip.js.map +1 -1
- package/dist/exporter/tools/zotero_csl.d.ts +19 -6
- package/dist/exporter/tools/zotero_csl.d.ts.map +1 -1
- package/dist/exporter/tools/zotero_csl.js +9 -9
- package/dist/exporter/tools/zotero_csl.js.map +1 -1
- package/dist/importer/citations.d.ts +25 -22
- package/dist/importer/citations.d.ts.map +1 -1
- package/dist/importer/citations.js +1 -49
- package/dist/importer/citations.js.map +1 -1
- package/dist/importer/docx/citations.d.ts +8 -30
- package/dist/importer/docx/citations.d.ts.map +1 -1
- package/dist/importer/docx/citations.js +1 -26
- package/dist/importer/docx/citations.js.map +1 -1
- package/dist/importer/docx/convert.d.ts +38 -116
- package/dist/importer/docx/convert.d.ts.map +1 -1
- package/dist/importer/docx/convert.js +99 -82
- package/dist/importer/docx/convert.js.map +1 -1
- package/dist/importer/docx/helpers.d.ts +1 -1
- package/dist/importer/docx/helpers.d.ts.map +1 -1
- package/dist/importer/docx/helpers.js +1 -1
- package/dist/importer/docx/helpers.js.map +1 -1
- package/dist/importer/docx/index.d.ts +27 -0
- package/dist/importer/docx/index.d.ts.map +1 -0
- package/dist/importer/docx/index.js +77 -0
- package/dist/importer/docx/index.js.map +1 -0
- package/dist/importer/docx/omml2mathml.d.ts +2 -3
- package/dist/importer/docx/omml2mathml.d.ts.map +1 -1
- package/dist/importer/docx/omml2mathml.js +23 -116
- package/dist/importer/docx/omml2mathml.js.map +1 -1
- package/dist/importer/docx/parse.d.ts +22 -131
- package/dist/importer/docx/parse.d.ts.map +1 -1
- package/dist/importer/docx/parse.js +73 -55
- package/dist/importer/docx/parse.js.map +1 -1
- package/dist/importer/native/extract_template.d.ts +6 -0
- package/dist/importer/native/extract_template.d.ts.map +1 -0
- package/dist/importer/native/extract_template.js +80 -0
- package/dist/importer/native/extract_template.js.map +1 -0
- package/dist/importer/native/file.d.ts +37 -0
- package/dist/importer/native/file.d.ts.map +1 -0
- package/dist/importer/native/file.js +162 -0
- package/dist/importer/native/file.js.map +1 -0
- package/dist/importer/native/get_images.d.ts +18 -8
- package/dist/importer/native/get_images.d.ts.map +1 -1
- package/dist/importer/native/get_images.js +39 -45
- package/dist/importer/native/get_images.js.map +1 -1
- package/dist/importer/native/importer.d.ts +41 -0
- package/dist/importer/native/importer.d.ts.map +1 -0
- package/dist/importer/native/importer.js +170 -0
- package/dist/importer/native/importer.js.map +1 -0
- package/dist/importer/native/index.d.ts +7 -0
- package/dist/importer/native/index.d.ts.map +1 -0
- package/dist/importer/native/index.js +7 -0
- package/dist/importer/native/index.js.map +1 -0
- package/dist/importer/native/update.d.ts +5 -4
- package/dist/importer/native/update.d.ts.map +1 -1
- package/dist/importer/native/update.js +4 -3
- package/dist/importer/native/update.js.map +1 -1
- package/dist/importer/native/update_template.d.ts +12 -0
- package/dist/importer/native/update_template.d.ts.map +1 -0
- package/dist/importer/native/update_template.js +19 -0
- package/dist/importer/native/update_template.js.map +1 -0
- package/dist/importer/odt/citations.d.ts +7 -27
- package/dist/importer/odt/citations.d.ts.map +1 -1
- package/dist/importer/odt/citations.js +0 -22
- package/dist/importer/odt/citations.js.map +1 -1
- package/dist/importer/odt/convert.d.ts +53 -237
- package/dist/importer/odt/convert.d.ts.map +1 -1
- package/dist/importer/odt/convert.js +162 -138
- package/dist/importer/odt/convert.js.map +1 -1
- package/dist/importer/odt/index.d.ts +30 -0
- package/dist/importer/odt/index.d.ts.map +1 -0
- package/dist/importer/odt/index.js +124 -0
- package/dist/importer/odt/index.js.map +1 -0
- package/dist/importer/pandoc/convert.d.ts +25 -77
- package/dist/importer/pandoc/convert.d.ts.map +1 -1
- package/dist/importer/pandoc/convert.js +65 -52
- package/dist/importer/pandoc/convert.js.map +1 -1
- package/dist/importer/pandoc/helpers.d.ts +4 -3
- package/dist/importer/pandoc/helpers.d.ts.map +1 -1
- package/dist/importer/pandoc/helpers.js +24 -26
- package/dist/importer/pandoc/helpers.js.map +1 -1
- package/dist/importer/pandoc/index.d.ts +31 -0
- package/dist/importer/pandoc/index.d.ts.map +1 -0
- package/dist/importer/pandoc/index.js +114 -0
- package/dist/importer/pandoc/index.js.map +1 -0
- package/dist/importer/registry.d.ts +21 -0
- package/dist/importer/registry.d.ts.map +1 -0
- package/dist/importer/registry.js +41 -0
- package/dist/importer/registry.js.map +1 -0
- package/dist/importer/zip_analyzer.d.ts +27 -21
- package/dist/importer/zip_analyzer.d.ts.map +1 -1
- package/dist/importer/zip_analyzer.js +10 -5
- package/dist/importer/zip_analyzer.js.map +1 -1
- package/dist/mathlive/opf_includes.d.ts +1 -1
- package/dist/mathlive/opf_includes.d.ts.map +1 -1
- package/dist/mathlive/opf_includes.js.map +1 -1
- package/dist/schema/common/annotate.d.ts +37 -49
- package/dist/schema/common/annotate.d.ts.map +1 -1
- package/dist/schema/common/annotate.js +2 -2
- package/dist/schema/common/annotate.js.map +1 -1
- package/dist/schema/common/base.d.ts +63 -81
- package/dist/schema/common/base.d.ts.map +1 -1
- package/dist/schema/common/base.js.map +1 -1
- package/dist/schema/common/citation.d.ts +23 -22
- package/dist/schema/common/citation.d.ts.map +1 -1
- package/dist/schema/common/citation.js +4 -5
- package/dist/schema/common/citation.js.map +1 -1
- package/dist/schema/common/equation.d.ts +13 -14
- package/dist/schema/common/equation.d.ts.map +1 -1
- package/dist/schema/common/equation.js +1 -1
- package/dist/schema/common/equation.js.map +1 -1
- package/dist/schema/common/figure.d.ts +72 -93
- package/dist/schema/common/figure.d.ts.map +1 -1
- package/dist/schema/common/figure.js +11 -9
- package/dist/schema/common/figure.js.map +1 -1
- package/dist/schema/common/heading.d.ts +8 -32
- package/dist/schema/common/heading.d.ts.map +1 -1
- package/dist/schema/common/heading.js +2 -2
- package/dist/schema/common/heading.js.map +1 -1
- package/dist/schema/common/index.d.ts +2 -2
- package/dist/schema/common/index.d.ts.map +1 -1
- package/dist/schema/common/index.js.map +1 -1
- package/dist/schema/common/list.d.ts +52 -72
- package/dist/schema/common/list.d.ts.map +1 -1
- package/dist/schema/common/list.js +3 -3
- package/dist/schema/common/list.js.map +1 -1
- package/dist/schema/common/reference.d.ts +51 -59
- package/dist/schema/common/reference.d.ts.map +1 -1
- package/dist/schema/common/reference.js +5 -5
- package/dist/schema/common/reference.js.map +1 -1
- package/dist/schema/common/table.d.ts +59 -75
- package/dist/schema/common/table.d.ts.map +1 -1
- package/dist/schema/common/table.js +3 -2
- package/dist/schema/common/table.js.map +1 -1
- package/dist/schema/common/track.d.ts +83 -97
- package/dist/schema/common/track.d.ts.map +1 -1
- package/dist/schema/common/track.js +18 -17
- package/dist/schema/common/track.js.map +1 -1
- package/dist/schema/convert.d.ts +2 -2
- package/dist/schema/convert.d.ts.map +1 -1
- package/dist/schema/convert.js +2 -2
- package/dist/schema/convert.js.map +1 -1
- package/dist/schema/document/content.d.ts +95 -122
- package/dist/schema/document/content.d.ts.map +1 -1
- package/dist/schema/document/content.js +9 -9
- package/dist/schema/document/content.js.map +1 -1
- package/dist/schema/document/index.d.ts +173 -257
- package/dist/schema/document/index.d.ts.map +1 -1
- package/dist/schema/document/index.js.map +1 -1
- package/dist/schema/document/structure.d.ts +149 -258
- package/dist/schema/document/structure.d.ts.map +1 -1
- package/dist/schema/document/structure.js +2 -2
- package/dist/schema/document/structure.js.map +1 -1
- package/dist/schema/export.d.ts +4 -877
- package/dist/schema/export.d.ts.map +1 -1
- package/dist/schema/export.js +1 -0
- package/dist/schema/export.js.map +1 -1
- package/dist/schema/footnotes.d.ts +110 -155
- package/dist/schema/footnotes.d.ts.map +1 -1
- package/dist/schema/footnotes.js +4 -2
- package/dist/schema/footnotes.js.map +1 -1
- package/dist/schema/footnotes_convert.d.ts +3 -3
- package/dist/schema/footnotes_convert.d.ts.map +1 -1
- package/dist/schema/footnotes_convert.js +10 -6
- package/dist/schema/footnotes_convert.js.map +1 -1
- package/dist/schema/i18n.d.ts +3 -534
- package/dist/schema/i18n.d.ts.map +1 -1
- package/dist/schema/i18n.js +1 -0
- package/dist/schema/i18n.js.map +1 -1
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/mini_json.d.ts +3 -4
- package/dist/schema/mini_json.d.ts.map +1 -1
- package/dist/schema/mini_json.js +2 -0
- package/dist/schema/mini_json.js.map +1 -1
- package/dist/schema/text.d.ts +2 -1
- package/dist/schema/text.d.ts.map +1 -1
- package/dist/schema/text.js +1 -1
- package/dist/schema/text.js.map +1 -1
- package/dist/types.d.ts +167 -8
- package/dist/types.d.ts.map +1 -1
- package/package.json +24 -1
- package/src/bibliography/{common.js → common.ts} +15 -12
- package/src/bibliography/{csl_bib.js → csl_bib.ts} +16 -15
- package/src/citations/{citeproc_sys.js → citeproc_sys.ts} +26 -6
- package/src/citations/{format.js → format.ts} +80 -24
- package/src/editor/e2ee/{encryptor.js → encryptor.ts} +76 -44
- package/src/exporter/docx/{citations.js → citations.ts} +51 -23
- package/src/exporter/docx/{comments.js → comments.ts} +69 -26
- package/src/exporter/docx/{footnotes.js → footnotes.ts} +81 -42
- package/src/exporter/docx/images.ts +128 -0
- package/src/exporter/docx/{index.js → index.ts} +48 -25
- package/src/exporter/docx/{lists.js → lists.ts} +89 -46
- package/src/exporter/docx/{math.js → math.ts} +29 -9
- package/src/exporter/docx/{metadata.js → metadata.ts} +78 -42
- package/src/exporter/docx/{rels.js → rels.ts} +71 -50
- package/src/exporter/docx/{render.js → render.ts} +124 -87
- package/src/exporter/docx/{richtext.js → richtext.ts} +107 -84
- package/src/exporter/docx/{tables.js → tables.ts} +33 -23
- package/src/exporter/docx/{tools.js → tools.ts} +4 -3
- package/src/exporter/epub/{index.js → index.ts} +44 -15
- package/src/exporter/epub/{templates.js → templates.ts} +71 -7
- package/src/exporter/epub/{tools.js → tools.ts} +31 -25
- package/src/exporter/html/{citations.js → citations.ts} +79 -31
- package/src/exporter/html/{convert.js → convert.ts} +118 -71
- package/src/exporter/html/{index.js → index.ts} +63 -29
- package/src/exporter/html/{templates.js → templates.ts} +22 -2
- package/src/exporter/html/{tools.js → tools.ts} +9 -6
- package/src/exporter/jats/bibliography.ts +199 -0
- package/src/exporter/jats/{citations.js → citations.ts} +56 -20
- package/src/exporter/jats/{convert.js → convert.ts} +72 -53
- package/src/exporter/jats/index.ts +132 -0
- package/src/exporter/jats/{templates.js → templates.ts} +19 -3
- package/src/exporter/jats/{text.js → text.ts} +8 -6
- package/src/exporter/latex/{convert.js → convert.ts} +160 -125
- package/src/exporter/latex/{escape_latex.js → escape_latex.ts} +1 -1
- package/src/exporter/latex/{index.js → index.ts} +27 -12
- package/src/exporter/latex/{readme.js → readme.ts} +2 -2
- package/src/exporter/native/copy.ts +231 -0
- package/src/exporter/native/file.ts +65 -0
- package/src/exporter/native/index.ts +4 -0
- package/src/exporter/native/revision.ts +76 -0
- package/src/exporter/native/{shrink.js → shrink.ts} +64 -29
- package/src/exporter/native/zip.ts +85 -0
- package/src/exporter/odt/{citations.js → citations.ts} +35 -15
- package/src/exporter/odt/{footnotes.js → footnotes.ts} +53 -30
- package/src/exporter/odt/images.ts +135 -0
- package/src/exporter/odt/{index.js → index.ts} +49 -27
- package/src/exporter/odt/{math.js → math.ts} +38 -9
- package/src/exporter/odt/{metadata.js → metadata.ts} +54 -29
- package/src/exporter/odt/{render.js → render.ts} +89 -60
- package/src/exporter/odt/{richtext.js → richtext.ts} +102 -72
- package/src/exporter/odt/{styles.js → styles.ts} +98 -66
- package/src/exporter/odt/{track.js → track.ts} +22 -6
- package/src/exporter/pandoc/{citations.js → citations.ts} +31 -15
- package/src/exporter/pandoc/{convert.js → convert.ts} +98 -79
- package/src/exporter/pandoc/{index.js → index.ts} +36 -13
- package/src/exporter/pandoc/{readme.js → readme.ts} +0 -1
- package/src/exporter/pandoc/{tools.js → tools.ts} +28 -5
- package/src/exporter/print/{index.js → index.ts} +38 -19
- package/src/exporter/tools/{doc_content.js → doc_content.ts} +34 -24
- package/src/exporter/tools/{svg.js → svg.ts} +9 -3
- package/src/exporter/tools/{xml.js → xml.ts} +187 -138
- package/src/exporter/tools/{xml_zip.js → xml_zip.ts} +19 -11
- package/src/exporter/tools/{zip.js → zip.ts} +35 -11
- package/src/exporter/tools/{zotero_csl.js → zotero_csl.ts} +35 -18
- package/src/global.d.ts +2 -0
- package/src/importer/citations.ts +116 -0
- package/src/importer/docx/{citations.js → citations.ts} +22 -37
- package/src/importer/docx/{convert.js → convert.ts} +176 -141
- package/src/importer/docx/{helpers.js → helpers.ts} +1 -1
- package/src/importer/docx/index.ts +124 -0
- package/src/importer/docx/{omml2mathml.js → omml2mathml.ts} +154 -176
- package/src/importer/docx/{parse.js → parse.ts} +103 -81
- package/src/importer/native/extract_template.ts +83 -0
- package/src/importer/native/file.ts +282 -0
- package/src/importer/native/get_images.ts +82 -0
- package/src/importer/native/importer.ts +244 -0
- package/src/importer/native/index.ts +6 -0
- package/src/importer/native/{update.js → update.ts} +13 -5
- package/src/importer/native/update_template.ts +32 -0
- package/src/importer/odt/{citations.js → citations.ts} +17 -29
- package/src/importer/odt/{convert.js → convert.ts} +261 -237
- package/src/importer/odt/index.ts +202 -0
- package/src/importer/pandoc/{convert.js → convert.ts} +116 -94
- package/src/importer/pandoc/{helpers.js → helpers.ts} +24 -12
- package/src/importer/pandoc/index.ts +171 -0
- package/src/importer/registry.ts +69 -0
- package/src/importer/{zip_analyzer.js → zip_analyzer.ts} +44 -18
- package/src/mathlive/{opf_includes.js → opf_includes.ts} +1 -1
- package/src/modules.d.ts +40 -0
- package/src/schema/common/{annotate.js → annotate.ts} +10 -8
- package/src/schema/common/{base.js → base.ts} +12 -10
- package/src/schema/common/{citation.js → citation.ts} +17 -8
- package/src/schema/common/{equation.js → equation.ts} +6 -4
- package/src/schema/common/{figure.js → figure.ts} +43 -23
- package/src/schema/common/{heading.js → heading.ts} +7 -5
- package/src/schema/common/{list.js → list.ts} +15 -13
- package/src/schema/common/{reference.js → reference.ts} +14 -12
- package/src/schema/common/{table.js → table.ts} +16 -14
- package/src/schema/common/{track.js → track.ts} +42 -31
- package/src/schema/{convert.js → convert.ts} +6 -2
- package/src/schema/document/{content.js → content.ts} +22 -20
- package/src/schema/document/{structure.js → structure.ts} +15 -9
- package/src/schema/{export.js → export.ts} +4 -2
- package/src/schema/{footnotes.js → footnotes.ts} +11 -8
- package/src/schema/{footnotes_convert.js → footnotes_convert.ts} +11 -8
- package/src/schema/{i18n.js → i18n.ts} +7 -1
- package/src/schema/{mini_json.js → mini_json.ts} +11 -12
- package/src/schema/{text.js → text.ts} +6 -2
- package/src/types.ts +185 -7
- package/src/exporter/docx/images.js +0 -101
- package/src/exporter/jats/bibliography.js +0 -183
- package/src/exporter/jats/index.js +0 -92
- package/src/exporter/odt/images.js +0 -115
- package/src/importer/citations.js +0 -129
- package/src/importer/native/get_images.js +0 -76
- /package/src/schema/common/{index.js → index.ts} +0 -0
- /package/src/schema/document/{index.js → index.ts} +0 -0
- /package/src/schema/{index.js → index.ts} +0 -0
|
@@ -1,25 +1,40 @@
|
|
|
1
1
|
import {parseCSL} from "biblatex-csl-converter"
|
|
2
2
|
|
|
3
3
|
import {applyAnnotation, applyMarkToNodes, mergeTextNodes} from "./helpers.js"
|
|
4
|
+
import {gettext} from "fwtoolkit"
|
|
5
|
+
import type {BibDBEntry, FidusDoc, FidusNode, ImageDBEntry} from "../../types.js"
|
|
4
6
|
|
|
5
7
|
export class PandocConvert {
|
|
6
|
-
|
|
8
|
+
doc: any
|
|
9
|
+
importId: string
|
|
10
|
+
template: {content: FidusDoc}
|
|
11
|
+
bibliography: Record<string, BibDBEntry>
|
|
12
|
+
images: Record<number, ImageDBEntry>
|
|
13
|
+
language: string
|
|
14
|
+
SMALL_IMAGE_THRESHOLD: number
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
doc: any,
|
|
18
|
+
importId: string,
|
|
19
|
+
template: {content: FidusDoc},
|
|
20
|
+
bibliography: Record<string, BibDBEntry>
|
|
21
|
+
) {
|
|
7
22
|
this.doc = doc
|
|
8
23
|
this.importId = importId
|
|
9
24
|
this.template = template
|
|
10
25
|
this.bibliography = bibliography
|
|
11
26
|
|
|
12
|
-
this.images =
|
|
27
|
+
this.images = {}
|
|
13
28
|
|
|
14
29
|
this.language = this.doc.meta?.lang?.c?.[0]?.c || "en-US"
|
|
15
30
|
|
|
16
31
|
this.SMALL_IMAGE_THRESHOLD = 1.0 // Smaller images will be discarded (in inches)
|
|
17
32
|
}
|
|
18
33
|
|
|
19
|
-
init() {
|
|
34
|
+
init(): {content: FidusDoc; settings: Record<string, any>} {
|
|
20
35
|
try {
|
|
21
36
|
this.validatePandocFormat()
|
|
22
|
-
} catch (error) {
|
|
37
|
+
} catch (error: any) {
|
|
23
38
|
console.error("Pandoc format validation failed:", error)
|
|
24
39
|
throw new Error("Invalid Pandoc document format: " + error.message)
|
|
25
40
|
}
|
|
@@ -34,13 +49,13 @@ export class PandocConvert {
|
|
|
34
49
|
}
|
|
35
50
|
}
|
|
36
51
|
|
|
37
|
-
validatePandocFormat() {
|
|
52
|
+
validatePandocFormat(): boolean {
|
|
38
53
|
// Check API version (Pandoc uses [major, minor, patch] or [major, minor, patch, tweak])
|
|
39
54
|
if (
|
|
40
55
|
!Array.isArray(this.doc["pandoc-api-version"]) ||
|
|
41
56
|
this.doc["pandoc-api-version"].length < 3 ||
|
|
42
57
|
!this.doc["pandoc-api-version"].every(
|
|
43
|
-
num => typeof num === "number"
|
|
58
|
+
(num: unknown) => typeof num === "number"
|
|
44
59
|
)
|
|
45
60
|
) {
|
|
46
61
|
throw new Error("Invalid or missing Pandoc API version")
|
|
@@ -59,7 +74,7 @@ export class PandocConvert {
|
|
|
59
74
|
// Basic validation of block structure
|
|
60
75
|
if (
|
|
61
76
|
!this.doc.blocks.every(
|
|
62
|
-
block =>
|
|
77
|
+
(block: any) =>
|
|
63
78
|
block &&
|
|
64
79
|
typeof block === "object" &&
|
|
65
80
|
typeof block.t === "string" &&
|
|
@@ -72,11 +87,11 @@ export class PandocConvert {
|
|
|
72
87
|
return true
|
|
73
88
|
}
|
|
74
89
|
|
|
75
|
-
convert() {
|
|
90
|
+
convert(): FidusDoc {
|
|
76
91
|
const templateParts = this.template.content.content.slice()
|
|
77
92
|
templateParts.shift()
|
|
78
93
|
// Create the outer document structure
|
|
79
|
-
const document = {
|
|
94
|
+
const document: FidusDoc = {
|
|
80
95
|
type: "doc",
|
|
81
96
|
attrs: {
|
|
82
97
|
import_id: this.importId
|
|
@@ -94,13 +109,13 @@ export class PandocConvert {
|
|
|
94
109
|
// Add subtitle if present
|
|
95
110
|
if (this.doc.meta?.subtitle?.c) {
|
|
96
111
|
const templatePart = templateParts.find(
|
|
97
|
-
part => part.attrs.metadata === "subtitle"
|
|
112
|
+
(part: any) => part.attrs.metadata === "subtitle"
|
|
98
113
|
)
|
|
99
114
|
document.content.push({
|
|
100
115
|
type: "heading_part",
|
|
101
116
|
attrs: {
|
|
102
|
-
title: templatePart
|
|
103
|
-
id: templatePart
|
|
117
|
+
title: templatePart?.attrs?.title || "Subtitle",
|
|
118
|
+
id: templatePart?.attrs?.id || "subtitle",
|
|
104
119
|
metadata: "subtitle"
|
|
105
120
|
},
|
|
106
121
|
content: [
|
|
@@ -118,16 +133,16 @@ export class PandocConvert {
|
|
|
118
133
|
// Add authors if present
|
|
119
134
|
if (this.doc.meta?.author?.c) {
|
|
120
135
|
const templatePart = templateParts.find(
|
|
121
|
-
part => part.attrs.metadata === "authors"
|
|
136
|
+
(part: any) => part.attrs.metadata === "authors"
|
|
122
137
|
)
|
|
123
138
|
document.content.push({
|
|
124
139
|
type: "contributors_part",
|
|
125
140
|
attrs: {
|
|
126
|
-
title: templatePart
|
|
127
|
-
id: templatePart
|
|
141
|
+
title: templatePart?.attrs?.title || "Authors",
|
|
142
|
+
id: templatePart?.attrs?.id || "authors",
|
|
128
143
|
metadata: "authors"
|
|
129
144
|
},
|
|
130
|
-
content: this.doc.meta.author.c.map(author => ({
|
|
145
|
+
content: this.doc.meta.author.c.map((author: any) => ({
|
|
131
146
|
type: "contributor",
|
|
132
147
|
attrs: this.convertContributor(author)
|
|
133
148
|
}))
|
|
@@ -137,15 +152,13 @@ export class PandocConvert {
|
|
|
137
152
|
// Add abstract if present
|
|
138
153
|
if (this.doc.meta?.abstract?.c) {
|
|
139
154
|
const templatePart = templateParts.find(
|
|
140
|
-
part => part.attrs.metadata === "abstract"
|
|
155
|
+
(part: any) => part.attrs.metadata === "abstract"
|
|
141
156
|
)
|
|
142
157
|
document.content.push({
|
|
143
158
|
type: "richtext_part",
|
|
144
159
|
attrs: {
|
|
145
|
-
title: templatePart
|
|
146
|
-
|
|
147
|
-
: gettext("Abstract"),
|
|
148
|
-
id: templatePart ? templatePart.attrs.id : "abstract",
|
|
160
|
+
title: templatePart?.attrs?.title || gettext("Abstract"),
|
|
161
|
+
id: templatePart?.attrs?.id || "abstract",
|
|
149
162
|
metadata: "abstract"
|
|
150
163
|
},
|
|
151
164
|
content: this.convertBlocks(this.doc.meta.abstract.c)
|
|
@@ -153,14 +166,14 @@ export class PandocConvert {
|
|
|
153
166
|
}
|
|
154
167
|
|
|
155
168
|
const templatePart = templateParts.find(
|
|
156
|
-
part => !part.attrs.metadata && part.type === "richtext_part"
|
|
169
|
+
(part: any) => !part.attrs.metadata && part.type === "richtext_part"
|
|
157
170
|
)
|
|
158
171
|
// Add main body content
|
|
159
172
|
document.content.push({
|
|
160
173
|
type: "richtext_part",
|
|
161
174
|
attrs: {
|
|
162
|
-
title: templatePart
|
|
163
|
-
id: templatePart
|
|
175
|
+
title: templatePart?.attrs?.title || "Body",
|
|
176
|
+
id: templatePart?.attrs?.id || "body",
|
|
164
177
|
marks: ["strong", "em", "link"]
|
|
165
178
|
},
|
|
166
179
|
content: this.convertBlocks(this.doc.blocks)
|
|
@@ -169,8 +182,8 @@ export class PandocConvert {
|
|
|
169
182
|
return document
|
|
170
183
|
}
|
|
171
184
|
|
|
172
|
-
convertContributor(author) {
|
|
173
|
-
const attrs = {
|
|
185
|
+
convertContributor(author: any): Record<string, string> {
|
|
186
|
+
const attrs: Record<string, string> = {
|
|
174
187
|
firstname: "",
|
|
175
188
|
lastname: "",
|
|
176
189
|
email: "",
|
|
@@ -180,8 +193,8 @@ export class PandocConvert {
|
|
|
180
193
|
// Extract name components
|
|
181
194
|
if (author.c) {
|
|
182
195
|
const textParts = author.c
|
|
183
|
-
.filter(part => part.t === "Str")
|
|
184
|
-
.map(part => part.c)
|
|
196
|
+
.filter((part: any) => part.t === "Str")
|
|
197
|
+
.map((part: any) => part.c)
|
|
185
198
|
|
|
186
199
|
if (textParts.length > 1) {
|
|
187
200
|
attrs.lastname = textParts.pop()
|
|
@@ -191,10 +204,10 @@ export class PandocConvert {
|
|
|
191
204
|
}
|
|
192
205
|
|
|
193
206
|
// Extract email from notes if present
|
|
194
|
-
const note = author.c.find(part => part.t === "Note")
|
|
207
|
+
const note = author.c.find((part: any) => part.t === "Note")
|
|
195
208
|
if (note) {
|
|
196
209
|
attrs.email = this.convertInlines(note.c[0].c)
|
|
197
|
-
.map(node => node.text)
|
|
210
|
+
.map((node: any) => node.text)
|
|
198
211
|
.join("")
|
|
199
212
|
}
|
|
200
213
|
}
|
|
@@ -202,17 +215,17 @@ export class PandocConvert {
|
|
|
202
215
|
return attrs
|
|
203
216
|
}
|
|
204
217
|
|
|
205
|
-
convertBlocks(blocks) {
|
|
218
|
+
convertBlocks(blocks: any[]): FidusNode[] {
|
|
206
219
|
if (!blocks) {
|
|
207
220
|
return []
|
|
208
221
|
}
|
|
209
222
|
return blocks
|
|
210
|
-
.map(block => this.convertBlock(block))
|
|
223
|
+
.map((block: any) => this.convertBlock(block))
|
|
211
224
|
.flat()
|
|
212
|
-
.filter(block => block)
|
|
225
|
+
.filter((block: FidusNode | null): block is FidusNode => Boolean(block))
|
|
213
226
|
}
|
|
214
227
|
|
|
215
|
-
convertBlock(block) {
|
|
228
|
+
convertBlock(block: any): FidusNode[] {
|
|
216
229
|
switch (block.t) {
|
|
217
230
|
case "CodeBlock": {
|
|
218
231
|
const [attrs, code] = block.c
|
|
@@ -227,14 +240,14 @@ export class PandocConvert {
|
|
|
227
240
|
let category = ""
|
|
228
241
|
|
|
229
242
|
const captionPair = keyValuePairs.find(
|
|
230
|
-
pair => pair[0] === "caption"
|
|
243
|
+
(pair: any[]) => pair[0] === "caption"
|
|
231
244
|
)
|
|
232
245
|
if (captionPair) {
|
|
233
246
|
title = captionPair[1]
|
|
234
247
|
}
|
|
235
248
|
|
|
236
249
|
const categoryPair = keyValuePairs.find(
|
|
237
|
-
pair => pair[0] === "category"
|
|
250
|
+
(pair: any[]) => pair[0] === "category"
|
|
238
251
|
)
|
|
239
252
|
if (categoryPair) {
|
|
240
253
|
category = categoryPair[1]
|
|
@@ -261,7 +274,7 @@ export class PandocConvert {
|
|
|
261
274
|
case "Div":
|
|
262
275
|
// Handle special figure containers
|
|
263
276
|
if (block.attr?.classes?.includes("figure")) {
|
|
264
|
-
return this.convertFigure(block)
|
|
277
|
+
return [this.convertFigure(block)]
|
|
265
278
|
}
|
|
266
279
|
// Ignore otherwise. Could be bibliography
|
|
267
280
|
// or other non-content block
|
|
@@ -269,8 +282,8 @@ export class PandocConvert {
|
|
|
269
282
|
case "Para":
|
|
270
283
|
case "Plain": {
|
|
271
284
|
// Process each inline, splitting into paragraphs and figures
|
|
272
|
-
const blocks = []
|
|
273
|
-
let currentInlines = []
|
|
285
|
+
const blocks: FidusNode[] = []
|
|
286
|
+
let currentInlines: any[] = []
|
|
274
287
|
for (const inline of block.c) {
|
|
275
288
|
if (inline.t === "Image") {
|
|
276
289
|
// Convert accumulated inlines to a paragraph
|
|
@@ -283,7 +296,13 @@ export class PandocConvert {
|
|
|
283
296
|
}
|
|
284
297
|
// Convert image to figure and add as block
|
|
285
298
|
const figure = this.convertInline(inline)
|
|
286
|
-
|
|
299
|
+
if (figure) {
|
|
300
|
+
if (Array.isArray(figure)) {
|
|
301
|
+
blocks.push(...figure)
|
|
302
|
+
} else {
|
|
303
|
+
blocks.push(figure)
|
|
304
|
+
}
|
|
305
|
+
}
|
|
287
306
|
} else {
|
|
288
307
|
currentInlines.push(inline)
|
|
289
308
|
}
|
|
@@ -318,14 +337,14 @@ export class PandocConvert {
|
|
|
318
337
|
return [
|
|
319
338
|
{
|
|
320
339
|
type: "bullet_list",
|
|
321
|
-
content: block.c.map(item => ({
|
|
340
|
+
content: block.c.map((item: any) => ({
|
|
322
341
|
type: "list_item",
|
|
323
342
|
content: this.convertBlocks(item)
|
|
324
343
|
}))
|
|
325
344
|
}
|
|
326
345
|
]
|
|
327
346
|
case "DefinitionList": {
|
|
328
|
-
return block.c.flatMap(item => [
|
|
347
|
+
return block.c.flatMap((item: any) => [
|
|
329
348
|
{
|
|
330
349
|
type: "paragraph",
|
|
331
350
|
content: applyMarkToNodes(
|
|
@@ -335,7 +354,7 @@ export class PandocConvert {
|
|
|
335
354
|
},
|
|
336
355
|
{
|
|
337
356
|
type: "bullet_list",
|
|
338
|
-
content: item.definitions.map(def => ({
|
|
357
|
+
content: item.definitions.map((def: any) => ({
|
|
339
358
|
type: "list_item",
|
|
340
359
|
content: this.convertBlocks(def)
|
|
341
360
|
}))
|
|
@@ -349,7 +368,7 @@ export class PandocConvert {
|
|
|
349
368
|
attrs: {
|
|
350
369
|
order: block.c[0][0]
|
|
351
370
|
},
|
|
352
|
-
content: block.c[1].map(item => ({
|
|
371
|
+
content: block.c[1].map((item: any) => ({
|
|
353
372
|
type: "list_item",
|
|
354
373
|
content: this.convertBlocks(item)
|
|
355
374
|
}))
|
|
@@ -365,18 +384,18 @@ export class PandocConvert {
|
|
|
365
384
|
}
|
|
366
385
|
}
|
|
367
386
|
|
|
368
|
-
convertInlines(inlines) {
|
|
387
|
+
convertInlines(inlines: any[]): FidusNode[] {
|
|
369
388
|
if (!inlines) {
|
|
370
389
|
return []
|
|
371
390
|
}
|
|
372
391
|
// Convert each inline element, flatten, and merge adjacent text nodes with same marks
|
|
373
392
|
const convertedNodes = inlines
|
|
374
|
-
.map(inline => this.convertInline(inline))
|
|
375
|
-
.filter(inline => inline)
|
|
393
|
+
.map((inline: any) => this.convertInline(inline))
|
|
394
|
+
.filter((inline: FidusNode | FidusNode[] | null): inline is FidusNode | FidusNode[] => Boolean(inline))
|
|
376
395
|
.flat()
|
|
377
396
|
|
|
378
397
|
// Remove hard breaks at start and end
|
|
379
|
-
const filteredNodes = convertedNodes.filter((node, index, array) => {
|
|
398
|
+
const filteredNodes = convertedNodes.filter((node: any, index: any, array: any) => {
|
|
380
399
|
if (node.type === "hard_break") {
|
|
381
400
|
// Remove if first or last node
|
|
382
401
|
if (index === 0 || index === array.length - 1) {
|
|
@@ -389,7 +408,7 @@ export class PandocConvert {
|
|
|
389
408
|
return mergeTextNodes(filteredNodes)
|
|
390
409
|
}
|
|
391
410
|
|
|
392
|
-
convertInline(inline) {
|
|
411
|
+
convertInline(inline: any): FidusNode | FidusNode[] | null {
|
|
393
412
|
if (!inline) {
|
|
394
413
|
return null
|
|
395
414
|
}
|
|
@@ -401,7 +420,7 @@ export class PandocConvert {
|
|
|
401
420
|
const imagePath = inline.c[2][0]
|
|
402
421
|
|
|
403
422
|
const widthInfo = inline.c[0][2].find(
|
|
404
|
-
attr => attr[0] === "width"
|
|
423
|
+
(attr: any[]) => attr[0] === "width"
|
|
405
424
|
)
|
|
406
425
|
|
|
407
426
|
if (widthInfo) {
|
|
@@ -603,29 +622,32 @@ export class PandocConvert {
|
|
|
603
622
|
)
|
|
604
623
|
|
|
605
624
|
// Create citation references
|
|
606
|
-
const citations = cslData.citationItems.map(
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
(
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
625
|
+
const citations = cslData.citationItems.map(
|
|
626
|
+
(item: any) => {
|
|
627
|
+
const id = String(item.itemData.id)
|
|
628
|
+
|
|
629
|
+
// find in bibliography
|
|
630
|
+
let [bibKey] =
|
|
631
|
+
Object.entries(this.bibliography).find(
|
|
632
|
+
([, entry]: [string, any]) =>
|
|
633
|
+
entry.entry_key === id
|
|
634
|
+
) || []
|
|
635
|
+
if (!bibKey) {
|
|
636
|
+
// Not yet present in bibliography. We'll parse the CSL data and add it.
|
|
637
|
+
const parseData = parseCSL({
|
|
638
|
+
[id]: item.itemData
|
|
639
|
+
})
|
|
640
|
+
const bibEntry = parseData["1"]
|
|
641
|
+
bibKey = `${Object.keys(this.bibliography).length + 1}`
|
|
642
|
+
this.bibliography[bibKey] = bibEntry as any
|
|
643
|
+
}
|
|
644
|
+
return {
|
|
645
|
+
id: bibKey,
|
|
646
|
+
prefix: item.prefix || "",
|
|
647
|
+
locator: item.locator || ""
|
|
648
|
+
}
|
|
627
649
|
}
|
|
628
|
-
|
|
650
|
+
)
|
|
629
651
|
|
|
630
652
|
return {
|
|
631
653
|
type: "citation",
|
|
@@ -647,8 +669,8 @@ export class PandocConvert {
|
|
|
647
669
|
}
|
|
648
670
|
}
|
|
649
671
|
|
|
650
|
-
extractImageWidth(attrs) {
|
|
651
|
-
const widthAttr = attrs.find(attr => attr[0] === "width")
|
|
672
|
+
extractImageWidth(attrs: any[]): number {
|
|
673
|
+
const widthAttr = attrs.find((attr: any[]) => attr[0] === "width")
|
|
652
674
|
if (widthAttr) {
|
|
653
675
|
// Convert inch measurement to percentage (assuming max width is 8.5 inches)
|
|
654
676
|
const widthInInches = parseFloat(widthAttr[1])
|
|
@@ -657,8 +679,8 @@ export class PandocConvert {
|
|
|
657
679
|
return 100 // default width
|
|
658
680
|
}
|
|
659
681
|
|
|
660
|
-
convertTable(table) {
|
|
661
|
-
const attrs = {
|
|
682
|
+
convertTable(table: any): FidusNode {
|
|
683
|
+
const attrs: Record<string, any> = {
|
|
662
684
|
width: 100,
|
|
663
685
|
aligned: "center",
|
|
664
686
|
layout: "fixed"
|
|
@@ -697,7 +719,7 @@ export class PandocConvert {
|
|
|
697
719
|
|
|
698
720
|
// Extract table attributes
|
|
699
721
|
const tableAttrs = table.c[0][2]
|
|
700
|
-
tableAttrs.forEach(attr => {
|
|
722
|
+
tableAttrs.forEach((attr: any[]) => {
|
|
701
723
|
if (attr[0] === "width") {
|
|
702
724
|
attrs.width = parseInt(attr[1])
|
|
703
725
|
} else if (attr[0] === "aligned") {
|
|
@@ -710,7 +732,7 @@ export class PandocConvert {
|
|
|
710
732
|
const rows = table.c[3][1]
|
|
711
733
|
.concat(
|
|
712
734
|
table.c[4]
|
|
713
|
-
.map(tableBody => tableBody[2].concat(tableBody[3]))
|
|
735
|
+
.map((tableBody: any) => tableBody[2].concat(tableBody[3]))
|
|
714
736
|
.flat()
|
|
715
737
|
)
|
|
716
738
|
.concat(table.c[5][1])
|
|
@@ -726,9 +748,9 @@ export class PandocConvert {
|
|
|
726
748
|
},
|
|
727
749
|
{
|
|
728
750
|
type: "table_body",
|
|
729
|
-
content: rows.map(row => ({
|
|
751
|
+
content: rows.map((row: any) => ({
|
|
730
752
|
type: "table_row",
|
|
731
|
-
content: row[1].map(cell => {
|
|
753
|
+
content: row[1].map((cell: any) => {
|
|
732
754
|
const cellContent = this.convertBlocks(cell[4])
|
|
733
755
|
if (cellContent.length === 0) {
|
|
734
756
|
cellContent.push({type: "paragraph"})
|
|
@@ -748,8 +770,8 @@ export class PandocConvert {
|
|
|
748
770
|
}
|
|
749
771
|
}
|
|
750
772
|
|
|
751
|
-
getImageFileType(filename) {
|
|
752
|
-
const ext = filename.split(".").pop().toLowerCase()
|
|
773
|
+
getImageFileType(filename: string): string {
|
|
774
|
+
const ext = (filename.split(".").pop() || "").toLowerCase()
|
|
753
775
|
switch (ext) {
|
|
754
776
|
case "avif":
|
|
755
777
|
case "avifs":
|
|
@@ -770,9 +792,9 @@ export class PandocConvert {
|
|
|
770
792
|
}
|
|
771
793
|
}
|
|
772
794
|
|
|
773
|
-
convertFigure(figure) {
|
|
774
|
-
const caption = figure.c[1][1]
|
|
775
|
-
const attrs = {
|
|
795
|
+
convertFigure(figure: any): FidusNode {
|
|
796
|
+
const caption = figure.c[1]?.[1] || []
|
|
797
|
+
const attrs: Record<string, any> = {
|
|
776
798
|
aligned: "center",
|
|
777
799
|
width: 100,
|
|
778
800
|
figureCategory: "none",
|
|
@@ -781,7 +803,7 @@ export class PandocConvert {
|
|
|
781
803
|
|
|
782
804
|
// Extract figure attributes
|
|
783
805
|
const figureAttrs = figure.c[0][2]
|
|
784
|
-
figureAttrs.forEach(attr => {
|
|
806
|
+
figureAttrs.forEach((attr: any[]) => {
|
|
785
807
|
if (attr[0] === "width") {
|
|
786
808
|
attrs.width = parseInt(attr[1])
|
|
787
809
|
} else if (attr[0] === "aligned") {
|
|
@@ -824,16 +846,16 @@ export class PandocConvert {
|
|
|
824
846
|
{
|
|
825
847
|
type: "figure_caption",
|
|
826
848
|
content: this.convertBlocks(caption)
|
|
827
|
-
.map(block => block.content || [])
|
|
849
|
+
.map((block: FidusNode) => block.content || [])
|
|
828
850
|
.flat()
|
|
829
851
|
}
|
|
830
852
|
]
|
|
831
853
|
}
|
|
832
854
|
}
|
|
833
855
|
|
|
834
|
-
convertCitation(cite) {
|
|
856
|
+
convertCitation(cite: any): FidusNode | null {
|
|
835
857
|
const references = cite.c[0]
|
|
836
|
-
.map(ref => {
|
|
858
|
+
.map((ref: any) => {
|
|
837
859
|
// Handle empty bibliography case
|
|
838
860
|
if (
|
|
839
861
|
!this.bibliography ||
|
|
@@ -843,7 +865,7 @@ export class PandocConvert {
|
|
|
843
865
|
}
|
|
844
866
|
|
|
845
867
|
const foundEntry = Object.entries(this.bibliography).find(
|
|
846
|
-
([
|
|
868
|
+
([, definition]: [string, any]) =>
|
|
847
869
|
definition.entry_key === ref.citationId
|
|
848
870
|
)
|
|
849
871
|
|
|
@@ -851,21 +873,21 @@ export class PandocConvert {
|
|
|
851
873
|
return
|
|
852
874
|
}
|
|
853
875
|
|
|
854
|
-
const [bibId
|
|
876
|
+
const [bibId] = foundEntry
|
|
855
877
|
if (!bibId) {
|
|
856
878
|
return
|
|
857
879
|
}
|
|
858
880
|
return {
|
|
859
881
|
id: bibId,
|
|
860
882
|
prefix: ref.citationPrefix
|
|
861
|
-
.map(prefix => prefix.c)
|
|
883
|
+
.map((prefix: any) => prefix.c)
|
|
862
884
|
.join(" "),
|
|
863
885
|
locator: ref.citationSuffix
|
|
864
|
-
.map(suffix => suffix.c)
|
|
886
|
+
.map((suffix: any) => suffix.c)
|
|
865
887
|
.join(" ")
|
|
866
888
|
}
|
|
867
889
|
})
|
|
868
|
-
.filter(ref => ref)
|
|
890
|
+
.filter((ref: any) => ref)
|
|
869
891
|
|
|
870
892
|
if (!references.length) {
|
|
871
893
|
return null
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type {FidusMark, FidusNode} from "../../types.js"
|
|
2
|
+
|
|
3
|
+
export const applyMarkToNodes = (
|
|
4
|
+
nodes: FidusNode[],
|
|
5
|
+
markType: string,
|
|
6
|
+
attrs: Record<string, unknown> | null = null
|
|
7
|
+
): FidusNode[] =>
|
|
8
|
+
nodes.map(node => {
|
|
3
9
|
if (node.type === "text") {
|
|
4
|
-
const mark = attrs
|
|
10
|
+
const mark: FidusMark = attrs
|
|
11
|
+
? {type: markType, attrs}
|
|
12
|
+
: {type: markType}
|
|
5
13
|
return {
|
|
6
14
|
...node,
|
|
7
15
|
marks: [...(node.marks || []), mark]
|
|
@@ -9,13 +17,15 @@ export const applyMarkToNodes = (nodes, markType, attrs = null) => {
|
|
|
9
17
|
}
|
|
10
18
|
return node
|
|
11
19
|
})
|
|
12
|
-
}
|
|
13
20
|
|
|
14
|
-
export const mergeTextNodes = nodes => {
|
|
15
|
-
const mergedNodes = []
|
|
16
|
-
let currentNode = null
|
|
21
|
+
export const mergeTextNodes = (nodes: FidusNode[]): FidusNode[] => {
|
|
22
|
+
const mergedNodes: FidusNode[] = []
|
|
23
|
+
let currentNode: FidusNode | null = null
|
|
17
24
|
|
|
18
|
-
const areSameMarks = (
|
|
25
|
+
const areSameMarks = (
|
|
26
|
+
marks1: FidusMark[] = [],
|
|
27
|
+
marks2: FidusMark[] = []
|
|
28
|
+
): boolean => {
|
|
19
29
|
if (marks1.length !== marks2.length) {
|
|
20
30
|
return false
|
|
21
31
|
}
|
|
@@ -46,7 +56,7 @@ export const mergeTextNodes = nodes => {
|
|
|
46
56
|
areSameMarks(currentNode.marks, node.marks)
|
|
47
57
|
) {
|
|
48
58
|
// Merge with previous node
|
|
49
|
-
currentNode.text
|
|
59
|
+
currentNode.text = (currentNode.text || "") + (node.text || "")
|
|
50
60
|
} else {
|
|
51
61
|
// Start new node
|
|
52
62
|
if (currentNode) {
|
|
@@ -70,8 +80,11 @@ export const mergeTextNodes = nodes => {
|
|
|
70
80
|
return mergedNodes
|
|
71
81
|
}
|
|
72
82
|
|
|
73
|
-
export const applyAnnotation = (
|
|
74
|
-
|
|
83
|
+
export const applyAnnotation = (
|
|
84
|
+
nodes: FidusNode[],
|
|
85
|
+
type: string
|
|
86
|
+
): FidusNode[] =>
|
|
87
|
+
nodes.map(node => ({
|
|
75
88
|
...node,
|
|
76
89
|
marks: [
|
|
77
90
|
...(node.marks || []),
|
|
@@ -81,4 +94,3 @@ export const applyAnnotation = (nodes, type) => {
|
|
|
81
94
|
}
|
|
82
95
|
]
|
|
83
96
|
}))
|
|
84
|
-
}
|