@fiduswriter/books-document 0.1.1

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 (125) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +24 -0
  3. package/dist/exporter/bits/index.d.ts +42 -0
  4. package/dist/exporter/bits/index.d.ts.map +1 -0
  5. package/dist/exporter/bits/index.js +98 -0
  6. package/dist/exporter/bits/index.js.map +1 -0
  7. package/dist/exporter/bits/templates.d.ts +7 -0
  8. package/dist/exporter/bits/templates.d.ts.map +1 -0
  9. package/dist/exporter/bits/templates.js +78 -0
  10. package/dist/exporter/bits/templates.js.map +1 -0
  11. package/dist/exporter/docx/index.d.ts +27 -0
  12. package/dist/exporter/docx/index.d.ts.map +1 -0
  13. package/dist/exporter/docx/index.js +129 -0
  14. package/dist/exporter/docx/index.js.map +1 -0
  15. package/dist/exporter/docx/render.d.ts +14 -0
  16. package/dist/exporter/docx/render.d.ts.map +1 -0
  17. package/dist/exporter/docx/render.js +116 -0
  18. package/dist/exporter/docx/render.js.map +1 -0
  19. package/dist/exporter/epub/index.d.ts +65 -0
  20. package/dist/exporter/epub/index.d.ts.map +1 -0
  21. package/dist/exporter/epub/index.js +268 -0
  22. package/dist/exporter/epub/index.js.map +1 -0
  23. package/dist/exporter/epub/templates.d.ts +65 -0
  24. package/dist/exporter/epub/templates.d.ts.map +1 -0
  25. package/dist/exporter/epub/templates.js +223 -0
  26. package/dist/exporter/epub/templates.js.map +1 -0
  27. package/dist/exporter/epub/tools.d.ts +5 -0
  28. package/dist/exporter/epub/tools.d.ts.map +1 -0
  29. package/dist/exporter/epub/tools.js +59 -0
  30. package/dist/exporter/epub/tools.js.map +1 -0
  31. package/dist/exporter/html/index.d.ts +67 -0
  32. package/dist/exporter/html/index.d.ts.map +1 -0
  33. package/dist/exporter/html/index.js +300 -0
  34. package/dist/exporter/html/index.js.map +1 -0
  35. package/dist/exporter/html/templates.d.ts +40 -0
  36. package/dist/exporter/html/templates.d.ts.map +1 -0
  37. package/dist/exporter/html/templates.js +226 -0
  38. package/dist/exporter/html/templates.js.map +1 -0
  39. package/dist/exporter/html/tools.d.ts +2 -0
  40. package/dist/exporter/html/tools.d.ts.map +1 -0
  41. package/dist/exporter/html/tools.js +23 -0
  42. package/dist/exporter/html/tools.js.map +1 -0
  43. package/dist/exporter/latex/index.d.ts +32 -0
  44. package/dist/exporter/latex/index.d.ts.map +1 -0
  45. package/dist/exporter/latex/index.js +102 -0
  46. package/dist/exporter/latex/index.js.map +1 -0
  47. package/dist/exporter/latex/templates.d.ts +4 -0
  48. package/dist/exporter/latex/templates.d.ts.map +1 -0
  49. package/dist/exporter/latex/templates.js +26 -0
  50. package/dist/exporter/latex/templates.js.map +1 -0
  51. package/dist/exporter/native/index.d.ts +20 -0
  52. package/dist/exporter/native/index.d.ts.map +1 -0
  53. package/dist/exporter/native/index.js +109 -0
  54. package/dist/exporter/native/index.js.map +1 -0
  55. package/dist/exporter/odt/index.d.ts +27 -0
  56. package/dist/exporter/odt/index.d.ts.map +1 -0
  57. package/dist/exporter/odt/index.js +123 -0
  58. package/dist/exporter/odt/index.js.map +1 -0
  59. package/dist/exporter/odt/render.d.ts +15 -0
  60. package/dist/exporter/odt/render.d.ts.map +1 -0
  61. package/dist/exporter/odt/render.js +119 -0
  62. package/dist/exporter/odt/render.js.map +1 -0
  63. package/dist/exporter/print/index.d.ts +24 -0
  64. package/dist/exporter/print/index.d.ts.map +1 -0
  65. package/dist/exporter/print/index.js +60 -0
  66. package/dist/exporter/print/index.js.map +1 -0
  67. package/dist/exporter/print/templates.d.ts +2 -0
  68. package/dist/exporter/print/templates.d.ts.map +1 -0
  69. package/dist/exporter/print/templates.js +5 -0
  70. package/dist/exporter/print/templates.js.map +1 -0
  71. package/dist/exporter/tools.d.ts +29 -0
  72. package/dist/exporter/tools.d.ts.map +1 -0
  73. package/dist/exporter/tools.js +151 -0
  74. package/dist/exporter/tools.js.map +1 -0
  75. package/dist/i18n.d.ts +7 -0
  76. package/dist/i18n.d.ts.map +1 -0
  77. package/dist/i18n.js +918 -0
  78. package/dist/i18n.js.map +1 -0
  79. package/dist/importer/native/index.d.ts +34 -0
  80. package/dist/importer/native/index.d.ts.map +1 -0
  81. package/dist/importer/native/index.js +152 -0
  82. package/dist/importer/native/index.js.map +1 -0
  83. package/dist/importer/native/reader.d.ts +26 -0
  84. package/dist/importer/native/reader.d.ts.map +1 -0
  85. package/dist/importer/native/reader.js +105 -0
  86. package/dist/importer/native/reader.js.map +1 -0
  87. package/dist/index.d.ts +3 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +2 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/schema/index.d.ts +4 -0
  92. package/dist/schema/index.d.ts.map +1 -0
  93. package/dist/schema/index.js +4 -0
  94. package/dist/schema/index.js.map +1 -0
  95. package/dist/types.d.ts +151 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +5 -0
  98. package/dist/types.js.map +1 -0
  99. package/package.json +101 -0
  100. package/src/exporter/bits/index.ts +163 -0
  101. package/src/exporter/bits/templates.ts +107 -0
  102. package/src/exporter/docx/index.ts +239 -0
  103. package/src/exporter/docx/render.ts +142 -0
  104. package/src/exporter/epub/index.ts +426 -0
  105. package/src/exporter/epub/templates.ts +401 -0
  106. package/src/exporter/epub/tools.ts +68 -0
  107. package/src/exporter/html/index.ts +443 -0
  108. package/src/exporter/html/templates.ts +363 -0
  109. package/src/exporter/html/tools.ts +26 -0
  110. package/src/exporter/latex/index.ts +161 -0
  111. package/src/exporter/latex/templates.ts +35 -0
  112. package/src/exporter/native/index.ts +187 -0
  113. package/src/exporter/odt/index.ts +211 -0
  114. package/src/exporter/odt/render.ts +146 -0
  115. package/src/exporter/print/index.ts +92 -0
  116. package/src/exporter/print/templates.ts +8 -0
  117. package/src/exporter/tools.ts +233 -0
  118. package/src/global.d.ts +2 -0
  119. package/src/i18n.ts +936 -0
  120. package/src/importer/native/index.ts +233 -0
  121. package/src/importer/native/reader.ts +165 -0
  122. package/src/index.ts +19 -0
  123. package/src/modules.d.ts +11 -0
  124. package/src/schema/index.ts +4 -0
  125. package/src/types.ts +188 -0
@@ -0,0 +1,226 @@
1
+ import { escapeText, localizeDate } from "fwtoolkit";
2
+ import { bookTerm } from "../../i18n.js";
3
+ export const htmlBookChapterTemplate = ({ body, back }) => `${body}${back}`;
4
+ /** A template for HTML export of a book. */
5
+ export const htmlBookExportTemplate = ({ styleSheets, part, currentPart, contents, title, settings }) => `<!DOCTYPE html>
6
+ <html lang="${settings.language.split("-")[0]}">
7
+ <head>
8
+ <meta charset="UTF-8">
9
+ <title>${title}</title>
10
+ ${styleSheets
11
+ .map(sheet => `<link type="text/css" rel="stylesheet" href="${sheet.filename}" />`)
12
+ .join("")}
13
+ </head>
14
+ <body class="user-contents book-chapter${currentPart?.length
15
+ ? ` ${currentPart.toLowerCase().replace(/[^a-z]/g, "")}`
16
+ : ""}">
17
+ ${part?.length
18
+ ? `<h1 class="part">${escapeText(part)}</h1>`
19
+ : ""}
20
+ ${contents}
21
+ </body>
22
+ </html>`;
23
+ /** A template to create the book index item. */
24
+ const htmlBookIndexItemTemplate = ({ item, multiDoc }) => `<li>
25
+ <a href="${item.link
26
+ ? item.link
27
+ : multiDoc
28
+ ? item.docNum
29
+ ? `document-${item.docNum}.html#${item.id}`
30
+ : `document.html#${item.id}`
31
+ : `#${item.id}`}">
32
+ ${escapeText(item.title)}
33
+ </a>
34
+ ${item.subItems?.length
35
+ ? `<ol>
36
+ ${item.subItems
37
+ .map(subItem => htmlBookIndexItemTemplate({ item: subItem, multiDoc }))
38
+ .join("")}
39
+ </ol>`
40
+ : ""}
41
+ </li>`;
42
+ /** A template to create the book index. */
43
+ export const htmlBookIndexBodyTemplate = ({ book, contentItems, language, creator, multiDoc }) => `<div class="titlepage frontmatter">
44
+ <h1 class="booktitle">${escapeText(book.title)}</h1>
45
+ ${book.metadata.subtitle?.length
46
+ ? `<h2 class="booksubtitle">${escapeText(book.metadata.subtitle)}</h2>`
47
+ : ""}
48
+ ${book.metadata.author?.length
49
+ ? `<h3 class="bookauthor">${bookTerm("by", book.settings.language)} ${escapeText(book.metadata.author)}</h3>`
50
+ : ""}
51
+ ${book.metadata.version?.length
52
+ ? `<h4 class="bookversion">${escapeText(book.metadata.version)}</h4>`
53
+ : ""}
54
+ ${book.metadata.series_title?.length
55
+ ? `<p class="bookseries">${escapeText(book.metadata.series_title)}${book.metadata.series_position?.length
56
+ ? ` \u2013 ${bookTerm("Series position", book.settings.language)} ${escapeText(book.metadata.series_position)}`
57
+ : ""}</p>`
58
+ : ""}
59
+ </div>
60
+ <div class="copyrightpage frontmatter">
61
+ ${book.metadata.publisher?.length
62
+ ? `<p>${bookTerm("Published by", book.settings.language)}: ${escapeText(book.metadata.publisher)}</p>`
63
+ : ""}
64
+ ${book.metadata.isbn?.length
65
+ ? `<p>${bookTerm("ISBN", book.settings.language)}: ${escapeText(book.metadata.isbn)}</p>`
66
+ : ""}
67
+ ${book.metadata.publication_date?.length
68
+ ? `<p>${bookTerm("Publication date", book.settings.language)}: ${escapeText(book.metadata.publication_date)}</p>`
69
+ : ""}
70
+ ${book.metadata.series_title?.length
71
+ ? `<p>${bookTerm("Series", book.settings.language)}: ${escapeText(book.metadata.series_title)}${book.metadata.series_position?.length
72
+ ? ` (${bookTerm("Series position", book.settings.language)}: ${escapeText(book.metadata.series_position)})`
73
+ : ""}</p>`
74
+ : ""}
75
+ ${book.metadata.description?.length
76
+ ? `<p class="book-description">${escapeText(book.metadata.description).replace(/\n/g, "<br>")}</p>`
77
+ : ""}
78
+ <p>${bookTerm("Last updated", book.settings.language)}: ${localizeDate((book.updated || 0) * 1000, "sortable-date")}</p>
79
+ <p>${bookTerm("Created", book.settings.language)}: ${localizeDate((book.added || 0) * 1000, "sortable-date")}</p>
80
+ <p>${bookTerm("Language", book.settings.language)}: ${language}</p>
81
+ <p>${bookTerm("Created by", book.settings.language)}: ${escapeText(creator)}</p>
82
+ </div>
83
+ <div class="tocpage frontmatter">
84
+ <nav role="doc-toc"><ol>
85
+ ${contentItems
86
+ .map(item => htmlBookIndexItemTemplate({ item, multiDoc }))
87
+ .join("")}
88
+ </ol></nav>
89
+ </div>`;
90
+ /** A template to create the book index. */
91
+ export const htmlBookIndexTemplate = ({ book, contentItems, language, creator, styleSheets, multiDoc }) => `<!DOCTYPE html>
92
+ <html lang="${book.settings.language.split("-")[0]}">
93
+ <head>
94
+ <meta charset="utf-8"></meta>
95
+ ${book.metadata.description
96
+ ? `<meta name="description" content="${escapeText(book.metadata.description.replace(/\n/g, " "))}">`
97
+ : ""}
98
+ <title>${escapeText(book.title)}</title>
99
+ <link type="text/css" rel="stylesheet" href="css/book.css" />
100
+ ${styleSheets
101
+ .map(sheet => `<link type="text/css" rel="stylesheet" href="${sheet.filename}" />`)
102
+ .join("")}
103
+ </head>
104
+ <body class="user-contents book-index">
105
+ ${htmlBookIndexBodyTemplate({
106
+ book,
107
+ contentItems,
108
+ language,
109
+ creator,
110
+ multiDoc
111
+ })}
112
+ </body>
113
+ </html>`;
114
+ export const singleFileHTMLBookChapterTemplate = ({ part, contents }) => `
115
+ ${part && part.length ? `<h1 class="part">${escapeText(part)}</h1>` : ""}
116
+ ${contents}`;
117
+ export const singleFileHTMLBookTemplate = ({ css, html, title, styleSheets, settings }) => `<!DOCTYPE html>
118
+ <html lang="${settings.language.split("-")[0]}">
119
+ <head>
120
+ <meta charset="UTF-8">
121
+ <title>${title}</title>
122
+ <style>
123
+ ${css}
124
+ </style>
125
+ ${styleSheets
126
+ .map(sheet => sheet.filename
127
+ ? `<link type="text/css" rel="stylesheet" href="${sheet.filename}" />`
128
+ : sheet.contents
129
+ ? `<style>${sheet.contents}</style>`
130
+ : "")
131
+ .join("")}
132
+ </head>
133
+ <body>
134
+ <div class="user-contents" id="flow">
135
+ ${html}
136
+ </div>
137
+ </body>
138
+ </html>`;
139
+ const CSS_PAPER_SIZES = {
140
+ folio: "12in 15in",
141
+ quarto: "9.5in 12in",
142
+ octavo: "6in 9in",
143
+ a5: "A5",
144
+ a4: "A4"
145
+ };
146
+ export const singleFileHTMLBookCSSTemplate = ({ papersize }) => `a.fn {
147
+ -adapt-template: url(data:application/xml,${encodeURI('<html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://www.pyroxy.com/ns/shadow"><head><style>.footnote-content{float:footnote}</style></head><body><s:template id="footnote"><s:content/><s:include class="footnote-content"/></s:template></body></html>#footnote')});
148
+ text-decoration: none;
149
+ color: inherit;
150
+ vertical-align: baseline;
151
+ font-size: 70%;
152
+ position: relative;
153
+ top: -0.3em;
154
+
155
+ }
156
+ body {
157
+ background-color: white;
158
+ }
159
+ section[role=doc-footnote] .footnote-counter:after {
160
+ content: ". ";
161
+ }
162
+ section.fnlist {
163
+ display: none;
164
+ }
165
+ section:footnote-content {
166
+ display: block;
167
+ font-style:normal;
168
+ font-weight:normal;
169
+ text-decoration:none;
170
+ }
171
+ .table-of-contents a {
172
+ display: inline-flex;
173
+ width: 100%;
174
+ text-decoration: none;
175
+ color: currentColor;
176
+ break-inside: avoid;
177
+ align-items: baseline;
178
+ }
179
+ .table-of-contents a::before {
180
+ margin-left: 1px;
181
+ margin-right: 1px;
182
+ border-bottom: solid 1px lightgray;
183
+ content: "";
184
+ order: 1;
185
+ flex: auto;
186
+ }
187
+ .table-of-contents a::after {
188
+ text-align: right;
189
+ content: target-counter(attr(href, url), page);
190
+ align-self: flex-end;
191
+ flex: none;
192
+ order: 2;
193
+ }
194
+ @page {
195
+ size: ${CSS_PAPER_SIZES[papersize]};
196
+ @top-center {
197
+ content: env(doc-title);
198
+ }
199
+ @bottom-center {
200
+ content: counter(page);
201
+ }
202
+ }
203
+ @page :first {
204
+ @bottom-center { content: normal; }
205
+ @top-center { content: normal; }
206
+ }
207
+ figure img {
208
+ max-width: 100%;
209
+ }
210
+ .doc-title {
211
+ page-break-before: right;
212
+ counter-reset: cat-figure cat-equation cat-photo cat-table;
213
+ }
214
+ h1.part {
215
+ page-break-before: right;
216
+ }
217
+ .copyrightpage {
218
+ page-break-before: left;
219
+ }
220
+ .tocpage {
221
+ page-break-before: right;
222
+ }
223
+ .booktitle {
224
+ text-align: center;
225
+ }`;
226
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/exporter/html/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function orderLinks(contentItems: Array<Record<string, unknown>>): Array<Record<string, unknown>>;
2
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/exporter/html/tools.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CACtB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC7C,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAuBhC"}
@@ -0,0 +1,23 @@
1
+ export function orderLinks(contentItems) {
2
+ for (let i = 0; i < contentItems.length; i++) {
3
+ contentItems[i].subItems = [];
4
+ if (i > 0) {
5
+ for (let j = i - 1; j > -1; j--) {
6
+ if (contentItems[j].level < contentItems[i].level) {
7
+ ;
8
+ contentItems[j].subItems.push(contentItems[i]);
9
+ contentItems[i].delete = true;
10
+ break;
11
+ }
12
+ }
13
+ }
14
+ }
15
+ for (let i = contentItems.length; i > -1; i--) {
16
+ if (contentItems[i]?.delete) {
17
+ delete contentItems[i].delete;
18
+ contentItems.splice(i, 1);
19
+ }
20
+ }
21
+ return contentItems;
22
+ }
23
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/exporter/html/tools.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CACtB,YAA4C;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAA;QAC7B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACR,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC9B,IAAK,YAAY,CAAC,CAAC,CAAC,CAAC,KAAgB,GAAI,YAAY,CAAC,CAAC,CAAC,CAAC,KAAgB,EAAE,CAAC;oBACxE,CAAC;oBAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAA2C,CAAC,IAAI,CAC9D,YAAY,CAAC,CAAC,CAAC,CAClB,CAAA;oBACD,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAA;oBAC7B,MAAK;gBACT,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC7B,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7B,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAA;AACvB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * LaTeX book exporter.
3
+ */
4
+ import type { Schema } from "prosemirror-model";
5
+ import type { User } from "@fiduswriter/document";
6
+ import type { Book, DocumentListEntry } from "../../types.js";
7
+ interface TextFile {
8
+ filename: string;
9
+ contents: string;
10
+ }
11
+ interface HttpFile {
12
+ url: string;
13
+ filename: string;
14
+ }
15
+ export declare class LatexBookExporter {
16
+ schema: Schema;
17
+ book: Book;
18
+ user: User;
19
+ docList: DocumentListEntry[];
20
+ updated: any;
21
+ textFiles: TextFile[];
22
+ httpFiles: HttpFile[];
23
+ zipFileName: string;
24
+ constructor(schema: Schema, book: Book, user: User, docList: DocumentListEntry[], updated: any);
25
+ init(): Promise<Blob>;
26
+ export(): Promise<Blob>;
27
+ createZip(): Promise<Blob>;
28
+ download(blob: Blob): Blob;
29
+ get defaultFilename(): string;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exporter/latex/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,uBAAuB,CAAA;AAO/C,OAAO,KAAK,EAAC,IAAI,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAI3D,UAAU,QAAQ;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,QAAQ;IACd,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,qBAAa,iBAAiB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,OAAO,EAAE,GAAG,CAAA;IACZ,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;gBAGf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,GAAG;IAchB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgFvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,IAAI,eAAe,IAAI,MAAM,CAE5B;CACJ"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * LaTeX book exporter.
3
+ */
4
+ import { BibLatexExporter } from "biblatex-csl-converter";
5
+ import { LatexExporterConvert } from "@fiduswriter/document/exporter/latex/convert";
6
+ import { removeHidden } from "@fiduswriter/document/exporter/tools/doc_content";
7
+ import { createSlug } from "@fiduswriter/document/exporter/tools/file";
8
+ import { ZipFileCreator } from "@fiduswriter/document/exporter/tools/zip";
9
+ import { getMissingChapterData } from "../tools.js";
10
+ import { bookTexTemplate } from "./templates.js";
11
+ export class LatexBookExporter {
12
+ schema;
13
+ book;
14
+ user;
15
+ docList;
16
+ updated;
17
+ textFiles;
18
+ httpFiles;
19
+ zipFileName;
20
+ constructor(schema, book, user, docList, updated) {
21
+ this.schema = schema;
22
+ this.book = book;
23
+ this.book.chapters.sort((a, b) => (a.number > b.number ? 1 : -1));
24
+ this.user = user;
25
+ this.docList = docList;
26
+ this.updated = updated;
27
+ this.textFiles = [];
28
+ this.httpFiles = [];
29
+ this.zipFileName = "";
30
+ }
31
+ init() {
32
+ return getMissingChapterData(this.book, this.docList, this.schema).then(() => this.export());
33
+ }
34
+ export() {
35
+ this.zipFileName = `${createSlug(this.book.title)}.latex.zip`;
36
+ let bibIds = [];
37
+ let imageIds = [];
38
+ const features = {};
39
+ const combinedBibliography = {};
40
+ const combinedImages = {};
41
+ this.book.chapters.forEach((chapter, index) => {
42
+ const doc = this.docList.find(d => d.id === chapter.text);
43
+ if (!doc) {
44
+ return;
45
+ }
46
+ const converter = new LatexExporterConvert(this, { db: doc.images || {} }, { db: doc.bibliography || {} }, doc.settings);
47
+ const chapterContent = removeHidden(doc.content);
48
+ const convertedDoc = converter.init(chapterContent);
49
+ this.textFiles.push({
50
+ filename: `chapter-${index + 1}.tex`,
51
+ contents: convertedDoc.latex
52
+ });
53
+ bibIds = [
54
+ ...new Set(bibIds.concat(Object.keys(convertedDoc.usedBibDB)))
55
+ ];
56
+ imageIds = [...new Set(imageIds.concat(convertedDoc.imageIds))];
57
+ Object.assign(features, converter.features);
58
+ Object.keys(convertedDoc.usedBibDB).forEach(bibId => (combinedBibliography[bibId] = doc.bibliography?.[bibId]));
59
+ convertedDoc.imageIds.forEach((imageId) => (combinedImages[imageId] = doc.images?.[imageId]));
60
+ });
61
+ if (bibIds.length > 0) {
62
+ const bibExport = new BibLatexExporter(combinedBibliography, bibIds);
63
+ this.textFiles.push({
64
+ filename: "bibliography.bib",
65
+ contents: bibExport.output
66
+ });
67
+ }
68
+ imageIds.forEach(id => {
69
+ const image = combinedImages[id];
70
+ if (image?.image) {
71
+ this.httpFiles.push({
72
+ filename: image.image.split("/").pop() || id,
73
+ url: image.image
74
+ });
75
+ }
76
+ });
77
+ const bookConverter = new LatexExporterConvert(this, { db: combinedImages }, { db: combinedBibliography }, { language: this.book.settings.language, bibliography_header: {} });
78
+ bookConverter.features = features;
79
+ const preamble = bookConverter.assemblePreamble();
80
+ const epilogue = bookConverter.assembleEpilogue();
81
+ this.textFiles.push({
82
+ filename: "book.tex",
83
+ contents: bookTexTemplate({
84
+ book: this.book,
85
+ preamble,
86
+ epilogue
87
+ })
88
+ });
89
+ return this.createZip();
90
+ }
91
+ createZip() {
92
+ const zipper = new ZipFileCreator(this.textFiles, this.httpFiles, undefined, undefined, this.updated);
93
+ return zipper.init().then(blob => this.download(blob));
94
+ }
95
+ download(blob) {
96
+ return blob;
97
+ }
98
+ get defaultFilename() {
99
+ return this.zipFileName;
100
+ }
101
+ }
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exporter/latex/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BookTexTemplateParams } from "../../types.js";
2
+ /** A template to create the latex book.tex file. */
3
+ export declare const bookTexTemplate: ({ preamble, book, epilogue }: BookTexTemplateParams) => string;
4
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/exporter/latex/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,gBAAgB,CAAA;AAEzD,oDAAoD;AACpD,eAAO,MAAM,eAAe,GAAI,8BAA4B,qBAAqB,WA+BjE,CAAA"}
@@ -0,0 +1,26 @@
1
+ /** A template to create the latex book.tex file. */
2
+ export const bookTexTemplate = ({ preamble, book, epilogue }) => `\\documentclass[11pt]{book}
3
+ ${preamble}
4
+ \\usepackage{docmute}
5
+ \\title{${book.title}}
6
+ \\author{${book.metadata.author}}
7
+ ${book.metadata.publication_date?.length || book.metadata.version?.length
8
+ ? `\\date{${book.metadata.publication_date || book.metadata.version}}`
9
+ : ""}
10
+ \\begin{document}
11
+ \\maketitle
12
+ ${book.metadata.description?.length
13
+ ? `\\chapter*{Abstract}
14
+ ${book.metadata.description}
15
+ `
16
+ : ""}
17
+ \\def\\title#1{\\chapter{#1}}
18
+ \\tableofcontents
19
+ ${book.chapters
20
+ .map(chapter => `${chapter.part && chapter.part.length ? `\n\\part{${chapter.part}}` : ""}
21
+ \\input{chapter-${chapter.number}}
22
+ `)
23
+ .join("")}
24
+ ${epilogue}
25
+ \\end{document}`;
26
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/exporter/latex/templates.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAwB,EAAE,EAAE,CACjF;EACF,QAAQ;;UAEA,IAAI,CAAC,KAAK;WACT,IAAI,CAAC,QAAQ,CAAC,MAAM;EAE3B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACnE,CAAC,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG;IACtE,CAAC,CAAC,EACV;;;EAII,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC7B,CAAC,CAAC;EACR,IAAI,CAAC,QAAQ,CAAC,WAAW;CAC1B;IACO,CAAC,CAAC,EACV;;;EAGE,IAAI,CAAC,QAAQ;KACV,GAAG,CACA,OAAO,CAAC,EAAE,CACN,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;0BAC3D,OAAO,CAAC,MAAM;SAC/B,CACJ;KACA,IAAI,CAAC,EAAE,CAAC;EACX,QAAQ;gBACM,CAAA"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Native `.fidusbook` exporter.
3
+ */
4
+ import type { Schema } from "prosemirror-model";
5
+ import { FIDUSBOOK_VERSION } from "../../schema/index.js";
6
+ import type { Book, DocumentListEntry, User } from "../../types.js";
7
+ export { FIDUSBOOK_VERSION };
8
+ export declare class NativeBookExporter {
9
+ schema: Schema;
10
+ book: Book;
11
+ user: User;
12
+ documentList: DocumentListEntry[];
13
+ updated: any;
14
+ constructor(schema: Schema, book: Book, user: User, documentList: DocumentListEntry[], updated: any);
15
+ init(): Promise<Blob>;
16
+ exportContents(): Promise<Blob>;
17
+ download(blob: Blob): Blob;
18
+ get defaultFilename(): string;
19
+ }
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exporter/native/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AAM7C,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAC,MAAM,gBAAgB,CAAA;AAajE,OAAO,EAAC,iBAAiB,EAAC,CAAA;AAE1B,qBAAa,kBAAkB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,EAAE,iBAAiB,EAAE,CAAA;IACjC,OAAO,EAAE,GAAG,CAAA;gBAGR,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,iBAAiB,EAAE,EACjC,OAAO,EAAE,GAAG;IAShB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBrB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyG/B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAM1B,IAAI,eAAe,IAAI,MAAM,CAE5B;CACJ"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Native `.fidusbook` exporter.
3
+ */
4
+ import { ShrinkFidus } from "@fiduswriter/document/exporter/native/shrink";
5
+ import { createSlug } from "@fiduswriter/document/exporter/tools/file";
6
+ import { ZipFileCreator } from "@fiduswriter/document/exporter/tools/zip";
7
+ import { addAlert } from "fwtoolkit";
8
+ import { FIDUSBOOK_VERSION } from "../../schema/index.js";
9
+ import { getMissingChapterData } from "../tools.js";
10
+ export { FIDUSBOOK_VERSION };
11
+ export class NativeBookExporter {
12
+ schema;
13
+ book;
14
+ user;
15
+ documentList;
16
+ updated;
17
+ constructor(schema, book, user, documentList, updated) {
18
+ this.schema = schema;
19
+ this.book = book;
20
+ this.user = user;
21
+ this.documentList = documentList;
22
+ this.updated = updated;
23
+ }
24
+ init() {
25
+ if (this.book.chapters.length === 0) {
26
+ addAlert("error", gettext("Book cannot be exported due to lack of chapters."));
27
+ return Promise.resolve(new Blob([]));
28
+ }
29
+ addAlert("info", `${this.book.title}: ${gettext("Fidusbook export has been initiated.")}`);
30
+ return getMissingChapterData(this.book, this.documentList, this.schema)
31
+ .then(() => this.exportContents())
32
+ .catch(error => {
33
+ addAlert("error", `${this.book.title}: ${gettext("Fidusbook export failed.")}`);
34
+ throw error;
35
+ });
36
+ }
37
+ exportContents() {
38
+ const textFiles = [];
39
+ const httpFiles = [];
40
+ const sortedChapters = [...this.book.chapters].sort((a, b) => a.number - b.number);
41
+ const bookData = {
42
+ title: this.book.title,
43
+ path: this.book.path || "/",
44
+ metadata: this.book.metadata || {},
45
+ settings: this.book.settings || {},
46
+ chapters: sortedChapters.map((chapter, index) => ({
47
+ number: chapter.number,
48
+ part: chapter.part || "",
49
+ chapter_index: index
50
+ }))
51
+ };
52
+ if (this.book.cover_image_data) {
53
+ const coverImage = this.book.cover_image_data;
54
+ const imageUrl = (coverImage.image || "").split("?")[0];
55
+ const filename = imageUrl.split("/").pop() || "cover";
56
+ bookData.cover_image = {
57
+ title: coverImage.title || "",
58
+ checksum: coverImage.checksum || "",
59
+ file_type: coverImage.file_type,
60
+ image: `cover/${filename}`
61
+ };
62
+ httpFiles.push({ url: imageUrl, filename: `cover/${filename}` });
63
+ }
64
+ const processChapter = (index) => {
65
+ if (index >= sortedChapters.length) {
66
+ return Promise.resolve();
67
+ }
68
+ const chapter = sortedChapters[index];
69
+ const doc = this.documentList.find(d => d.id === chapter.text);
70
+ if (!doc) {
71
+ return processChapter(index + 1);
72
+ }
73
+ const shrinker = new ShrinkFidus(doc, { db: doc.images || {} }, { db: doc.bibliography || {} }, true);
74
+ return shrinker
75
+ .init()
76
+ .then(({ doc: shrunkDoc, shrunkImageDB, shrunkBibDB, httpIncludes }) => {
77
+ httpIncludes.forEach(include => {
78
+ include.filename = `chapters/${index}/${include.filename}`;
79
+ });
80
+ textFiles.push({
81
+ filename: `chapters/${index}/document.json`,
82
+ contents: JSON.stringify(shrunkDoc)
83
+ }, {
84
+ filename: `chapters/${index}/images.json`,
85
+ contents: JSON.stringify(shrunkImageDB)
86
+ }, {
87
+ filename: `chapters/${index}/bibliography.json`,
88
+ contents: JSON.stringify(shrunkBibDB)
89
+ });
90
+ httpFiles.push(...httpIncludes);
91
+ })
92
+ .then(() => processChapter(index + 1));
93
+ };
94
+ return processChapter(0).then(() => {
95
+ textFiles.push({ filename: "book.json", contents: JSON.stringify(bookData) }, { filename: "filetype-version", contents: FIDUSBOOK_VERSION });
96
+ const zipper = new ZipFileCreator(textFiles, httpFiles, [], "application/fidusbook+zip", this.updated);
97
+ return zipper.init().then(blob => this.download(blob));
98
+ });
99
+ }
100
+ download(blob) {
101
+ // Base implementation returns the Blob. Browser/CLI subclasses can
102
+ // override this method to trigger a real download.
103
+ return blob;
104
+ }
105
+ get defaultFilename() {
106
+ return `${createSlug(this.book.title)}.fidusbook`;
107
+ }
108
+ }
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exporter/native/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ODT book exporter.
3
+ */
4
+ import type { Schema } from "prosemirror-model";
5
+ import type { CSL, User } from "@fiduswriter/document";
6
+ import type { Book, DocumentListEntry } from "../../types.js";
7
+ import { ODTBookExporterRender } from "./render.js";
8
+ export declare class ODTBookExporter {
9
+ schema: Schema;
10
+ csl: CSL;
11
+ book: Book;
12
+ user: User;
13
+ docList: DocumentListEntry[];
14
+ templateUrl: string;
15
+ updated: any;
16
+ textFiles: Array<Record<string, unknown>>;
17
+ httpFiles: Array<Record<string, unknown>>;
18
+ mimeType: string;
19
+ constructor(schema: Schema, csl: CSL, book: Book, user: User, docList: DocumentListEntry[], updated: any);
20
+ init(): Promise<Blob> | false;
21
+ export(): Promise<Blob>;
22
+ exportChapters(xml: any, render: ODTBookExporterRender, styles: any, math: any, tracks: any): Promise<void>;
23
+ getBaseMetadata(): Record<string, unknown>;
24
+ download(blob: Blob): Blob;
25
+ get defaultFilename(): string;
26
+ }
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exporter/odt/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAA;AAkBpD,OAAO,KAAK,EAAC,IAAI,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AAE3D,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAA;AAEjD,qBAAa,eAAe;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,GAAG,CAAA;IACR,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,GAAG,CAAA;IACZ,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACzC,QAAQ,EAAE,MAAM,CAAA;gBAGZ,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,GAAG;IAehB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK;IAgB7B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBvB,cAAc,CACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,GAAG,GACZ,OAAO,CAAC,IAAI,CAAC;IA+EhB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAiB1C,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,IAAI,eAAe,IAAI,MAAM,CAE5B;CACJ"}