@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.
- package/LICENSE +661 -0
- package/README.md +24 -0
- package/dist/exporter/bits/index.d.ts +42 -0
- package/dist/exporter/bits/index.d.ts.map +1 -0
- package/dist/exporter/bits/index.js +98 -0
- package/dist/exporter/bits/index.js.map +1 -0
- package/dist/exporter/bits/templates.d.ts +7 -0
- package/dist/exporter/bits/templates.d.ts.map +1 -0
- package/dist/exporter/bits/templates.js +78 -0
- package/dist/exporter/bits/templates.js.map +1 -0
- package/dist/exporter/docx/index.d.ts +27 -0
- package/dist/exporter/docx/index.d.ts.map +1 -0
- package/dist/exporter/docx/index.js +129 -0
- package/dist/exporter/docx/index.js.map +1 -0
- package/dist/exporter/docx/render.d.ts +14 -0
- package/dist/exporter/docx/render.d.ts.map +1 -0
- package/dist/exporter/docx/render.js +116 -0
- package/dist/exporter/docx/render.js.map +1 -0
- package/dist/exporter/epub/index.d.ts +65 -0
- package/dist/exporter/epub/index.d.ts.map +1 -0
- package/dist/exporter/epub/index.js +268 -0
- package/dist/exporter/epub/index.js.map +1 -0
- package/dist/exporter/epub/templates.d.ts +65 -0
- package/dist/exporter/epub/templates.d.ts.map +1 -0
- package/dist/exporter/epub/templates.js +223 -0
- package/dist/exporter/epub/templates.js.map +1 -0
- package/dist/exporter/epub/tools.d.ts +5 -0
- package/dist/exporter/epub/tools.d.ts.map +1 -0
- package/dist/exporter/epub/tools.js +59 -0
- package/dist/exporter/epub/tools.js.map +1 -0
- package/dist/exporter/html/index.d.ts +67 -0
- package/dist/exporter/html/index.d.ts.map +1 -0
- package/dist/exporter/html/index.js +300 -0
- package/dist/exporter/html/index.js.map +1 -0
- package/dist/exporter/html/templates.d.ts +40 -0
- package/dist/exporter/html/templates.d.ts.map +1 -0
- package/dist/exporter/html/templates.js +226 -0
- package/dist/exporter/html/templates.js.map +1 -0
- package/dist/exporter/html/tools.d.ts +2 -0
- package/dist/exporter/html/tools.d.ts.map +1 -0
- package/dist/exporter/html/tools.js +23 -0
- package/dist/exporter/html/tools.js.map +1 -0
- package/dist/exporter/latex/index.d.ts +32 -0
- package/dist/exporter/latex/index.d.ts.map +1 -0
- package/dist/exporter/latex/index.js +102 -0
- package/dist/exporter/latex/index.js.map +1 -0
- package/dist/exporter/latex/templates.d.ts +4 -0
- package/dist/exporter/latex/templates.d.ts.map +1 -0
- package/dist/exporter/latex/templates.js +26 -0
- package/dist/exporter/latex/templates.js.map +1 -0
- package/dist/exporter/native/index.d.ts +20 -0
- package/dist/exporter/native/index.d.ts.map +1 -0
- package/dist/exporter/native/index.js +109 -0
- package/dist/exporter/native/index.js.map +1 -0
- package/dist/exporter/odt/index.d.ts +27 -0
- package/dist/exporter/odt/index.d.ts.map +1 -0
- package/dist/exporter/odt/index.js +123 -0
- package/dist/exporter/odt/index.js.map +1 -0
- package/dist/exporter/odt/render.d.ts +15 -0
- package/dist/exporter/odt/render.d.ts.map +1 -0
- package/dist/exporter/odt/render.js +119 -0
- package/dist/exporter/odt/render.js.map +1 -0
- package/dist/exporter/print/index.d.ts +24 -0
- package/dist/exporter/print/index.d.ts.map +1 -0
- package/dist/exporter/print/index.js +60 -0
- package/dist/exporter/print/index.js.map +1 -0
- package/dist/exporter/print/templates.d.ts +2 -0
- package/dist/exporter/print/templates.d.ts.map +1 -0
- package/dist/exporter/print/templates.js +5 -0
- package/dist/exporter/print/templates.js.map +1 -0
- package/dist/exporter/tools.d.ts +29 -0
- package/dist/exporter/tools.d.ts.map +1 -0
- package/dist/exporter/tools.js +151 -0
- package/dist/exporter/tools.js.map +1 -0
- package/dist/i18n.d.ts +7 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +918 -0
- package/dist/i18n.js.map +1 -0
- package/dist/importer/native/index.d.ts +34 -0
- package/dist/importer/native/index.d.ts.map +1 -0
- package/dist/importer/native/index.js +152 -0
- package/dist/importer/native/index.js.map +1 -0
- package/dist/importer/native/reader.d.ts +26 -0
- package/dist/importer/native/reader.d.ts.map +1 -0
- package/dist/importer/native/reader.js +105 -0
- package/dist/importer/native/reader.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/index.d.ts +4 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +4 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/types.d.ts +151 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +101 -0
- package/src/exporter/bits/index.ts +163 -0
- package/src/exporter/bits/templates.ts +107 -0
- package/src/exporter/docx/index.ts +239 -0
- package/src/exporter/docx/render.ts +142 -0
- package/src/exporter/epub/index.ts +426 -0
- package/src/exporter/epub/templates.ts +401 -0
- package/src/exporter/epub/tools.ts +68 -0
- package/src/exporter/html/index.ts +443 -0
- package/src/exporter/html/templates.ts +363 -0
- package/src/exporter/html/tools.ts +26 -0
- package/src/exporter/latex/index.ts +161 -0
- package/src/exporter/latex/templates.ts +35 -0
- package/src/exporter/native/index.ts +187 -0
- package/src/exporter/odt/index.ts +211 -0
- package/src/exporter/odt/render.ts +146 -0
- package/src/exporter/print/index.ts +92 -0
- package/src/exporter/print/templates.ts +8 -0
- package/src/exporter/tools.ts +233 -0
- package/src/global.d.ts +2 -0
- package/src/i18n.ts +936 -0
- package/src/importer/native/index.ts +233 -0
- package/src/importer/native/reader.ts +165 -0
- package/src/index.ts +19 -0
- package/src/modules.d.ts +11 -0
- package/src/schema/index.ts +4 -0
- package/src/types.ts +188 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ODT book exporter.
|
|
3
|
+
*/
|
|
4
|
+
import { fixTables, removeHidden } from "@fiduswriter/document/exporter/tools/doc_content";
|
|
5
|
+
import { createSlug } from "@fiduswriter/document/exporter/tools/file";
|
|
6
|
+
import { XmlZip } from "@fiduswriter/document/exporter/tools/xml_zip";
|
|
7
|
+
import { addAlert } from "fwtoolkit";
|
|
8
|
+
import { ODTExporterCitations } from "@fiduswriter/document/exporter/odt/citations";
|
|
9
|
+
import { ODTExporterImages } from "@fiduswriter/document/exporter/odt/images";
|
|
10
|
+
import { ODTExporterFootnotes } from "@fiduswriter/document/exporter/odt/footnotes";
|
|
11
|
+
import { ODTExporterMath } from "@fiduswriter/document/exporter/odt/math";
|
|
12
|
+
import { ODTExporterMetadata } from "@fiduswriter/document/exporter/odt/metadata";
|
|
13
|
+
import { ODTExporterRichtext } from "@fiduswriter/document/exporter/odt/richtext";
|
|
14
|
+
import { ODTExporterStyles } from "@fiduswriter/document/exporter/odt/styles";
|
|
15
|
+
import { ODTExporterTracks } from "@fiduswriter/document/exporter/odt/track";
|
|
16
|
+
import { getMissingChapterData } from "../tools.js";
|
|
17
|
+
import { ODTBookExporterRender } from "./render.js";
|
|
18
|
+
export class ODTBookExporter {
|
|
19
|
+
schema;
|
|
20
|
+
csl;
|
|
21
|
+
book;
|
|
22
|
+
user;
|
|
23
|
+
docList;
|
|
24
|
+
templateUrl;
|
|
25
|
+
updated;
|
|
26
|
+
textFiles;
|
|
27
|
+
httpFiles;
|
|
28
|
+
mimeType;
|
|
29
|
+
constructor(schema, csl, book, user, docList, updated) {
|
|
30
|
+
this.schema = schema;
|
|
31
|
+
this.csl = csl;
|
|
32
|
+
this.book = book;
|
|
33
|
+
this.user = user;
|
|
34
|
+
this.docList = docList;
|
|
35
|
+
this.templateUrl = book.odt_template || "";
|
|
36
|
+
this.updated = updated;
|
|
37
|
+
this.textFiles = [];
|
|
38
|
+
this.httpFiles = [];
|
|
39
|
+
this.mimeType = "application/vnd.oasis.opendocument.text";
|
|
40
|
+
}
|
|
41
|
+
init() {
|
|
42
|
+
if (this.book.chapters.length === 0) {
|
|
43
|
+
addAlert("error", gettext("Book cannot be exported due to lack of chapters."));
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return getMissingChapterData(this.book, this.docList, this.schema, { rawContent: true }).then(() => this.export());
|
|
47
|
+
}
|
|
48
|
+
export() {
|
|
49
|
+
this.book.chapters.sort((a, b) => (a.number > b.number ? 1 : -1));
|
|
50
|
+
const xml = new XmlZip(this.templateUrl, this.mimeType);
|
|
51
|
+
const styles = new ODTExporterStyles(xml);
|
|
52
|
+
const math = new ODTExporterMath(xml);
|
|
53
|
+
const tracks = new ODTExporterTracks(xml);
|
|
54
|
+
const render = new ODTBookExporterRender(xml, styles);
|
|
55
|
+
const metadata = new ODTExporterMetadata(xml, styles, this.getBaseMetadata());
|
|
56
|
+
return xml
|
|
57
|
+
.init()
|
|
58
|
+
.then(() => styles.init())
|
|
59
|
+
.then(() => tracks.init())
|
|
60
|
+
.then(() => render.init())
|
|
61
|
+
.then(() => metadata.init())
|
|
62
|
+
.then(() => math.init())
|
|
63
|
+
.then(() => this.exportChapters(xml, render, styles, math, tracks))
|
|
64
|
+
.then(() => xml.prepareBlob())
|
|
65
|
+
.then(blob => this.download(blob));
|
|
66
|
+
}
|
|
67
|
+
exportChapters(xml, render, styles, math, tracks) {
|
|
68
|
+
return this.book.chapters
|
|
69
|
+
.map((chapter, chapterIndex) => {
|
|
70
|
+
return () => {
|
|
71
|
+
const doc = this.docList.find(d => d.id === chapter.text);
|
|
72
|
+
if (!doc) {
|
|
73
|
+
return Promise.resolve();
|
|
74
|
+
}
|
|
75
|
+
const docContent = fixTables(removeHidden(doc.rawContent));
|
|
76
|
+
const citations = new ODTExporterCitations(docContent, doc.settings, styles, { db: doc.bibliography || {} }, this.csl);
|
|
77
|
+
const footnotes = new ODTExporterFootnotes(docContent, doc.settings, xml, citations, styles, { db: doc.bibliography || {} }, { db: doc.images || {} }, this.csl);
|
|
78
|
+
const images = new ODTExporterImages(docContent, xml, {
|
|
79
|
+
db: doc.images || {}
|
|
80
|
+
});
|
|
81
|
+
const richtext = new ODTExporterRichtext(doc.comments || {}, doc.settings, styles, tracks, footnotes, citations, math, images);
|
|
82
|
+
return citations
|
|
83
|
+
.init()
|
|
84
|
+
.then(() => images.init())
|
|
85
|
+
.then(() => footnotes.init())
|
|
86
|
+
.then(() => {
|
|
87
|
+
const pmBib = footnotes.pmBib || citations.pmBib;
|
|
88
|
+
render.render(docContent, pmBib, doc.settings, richtext, citations, chapterIndex);
|
|
89
|
+
return Promise.resolve();
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
})
|
|
93
|
+
.reduce((promiseChain, currentChapter) => promiseChain.then(() => currentChapter()), Promise.resolve())
|
|
94
|
+
.then(() => render.renderAmbles(Object.assign({
|
|
95
|
+
title: this.book.title,
|
|
96
|
+
language: this.book.settings.language
|
|
97
|
+
}, this.book.metadata)))
|
|
98
|
+
.then(() => render.assemble());
|
|
99
|
+
}
|
|
100
|
+
getBaseMetadata() {
|
|
101
|
+
const authors = this.book.metadata.author?.length
|
|
102
|
+
? [{ institution: this.book.metadata.author }]
|
|
103
|
+
: [];
|
|
104
|
+
const keywords = this.book.metadata.keywords?.length
|
|
105
|
+
? this.book.metadata.keywords
|
|
106
|
+
.split(",")
|
|
107
|
+
.map(keyword => keyword.trim())
|
|
108
|
+
: [];
|
|
109
|
+
return {
|
|
110
|
+
authors,
|
|
111
|
+
keywords,
|
|
112
|
+
title: this.book.title,
|
|
113
|
+
language: this.book.settings.language
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
download(blob) {
|
|
117
|
+
return blob;
|
|
118
|
+
}
|
|
119
|
+
get defaultFilename() {
|
|
120
|
+
return `${createSlug(this.book.title)}.odt`;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exporter/odt/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ODTExporterRender } from "@fiduswriter/document/exporter/odt/render";
|
|
2
|
+
export declare class ODTBookExporterRender extends ODTExporterRender {
|
|
3
|
+
styles: any;
|
|
4
|
+
preamble: any;
|
|
5
|
+
bodyTemplate: any;
|
|
6
|
+
postamble: any;
|
|
7
|
+
bodyParts: any[];
|
|
8
|
+
fileXml: any;
|
|
9
|
+
constructor(xml: any, styles: any);
|
|
10
|
+
init(): Promise<void>;
|
|
11
|
+
render(...args: any[]): void;
|
|
12
|
+
renderAmbles({ title, subtitle, version, publisher, copyright, author, keywords, language, description, isbn, publication_date, series_title, series_position }: Record<string, unknown>): void;
|
|
13
|
+
assemble(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/exporter/odt/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,2CAA2C,CAAA;AAE3E,qBAAa,qBAAsB,SAAQ,iBAAiB;IACxD,MAAM,EAAE,GAAG,CAAA;IACX,QAAQ,EAAE,GAAG,CAAA;IACb,YAAY,EAAE,GAAG,CAAA;IACjB,SAAS,EAAE,GAAG,CAAA;IACd,SAAS,EAAE,GAAG,EAAE,CAAA;IAChB,OAAO,EAAE,GAAG,CAAA;gBAEA,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IAajC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCrB,MAAM,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAgB5B,YAAY,CAAC,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,gBAAgB,EAChB,YAAY,EACZ,eAAe,EAClB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAoCjC,QAAQ,IAAI,IAAI;CAmBnB"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ODTExporterRender } from "@fiduswriter/document/exporter/odt/render";
|
|
2
|
+
export class ODTBookExporterRender extends ODTExporterRender {
|
|
3
|
+
styles;
|
|
4
|
+
preamble;
|
|
5
|
+
bodyTemplate;
|
|
6
|
+
postamble;
|
|
7
|
+
bodyParts;
|
|
8
|
+
fileXml;
|
|
9
|
+
constructor(xml, styles) {
|
|
10
|
+
super(xml);
|
|
11
|
+
this.styles = styles;
|
|
12
|
+
this.preamble = null;
|
|
13
|
+
this.bodyTemplate = null;
|
|
14
|
+
this.postamble = null;
|
|
15
|
+
this.bodyParts = [];
|
|
16
|
+
this.fileXml = null;
|
|
17
|
+
}
|
|
18
|
+
init() {
|
|
19
|
+
return this.xml.getXml(this.filePath).then((xml) => {
|
|
20
|
+
this.fileXml = xml;
|
|
21
|
+
const text = xml.query("office:text");
|
|
22
|
+
this.preamble = text.cloneNode(false);
|
|
23
|
+
this.bodyTemplate = text.cloneNode(false);
|
|
24
|
+
this.postamble = text.cloneNode(false);
|
|
25
|
+
let currentSection;
|
|
26
|
+
const textChildren = Array.from(text.children);
|
|
27
|
+
textChildren.forEach((node) => {
|
|
28
|
+
if (["text:p", "text:h"].includes(node.tagName)) {
|
|
29
|
+
const bookmark = node.query("text:bookmark");
|
|
30
|
+
if (bookmark) {
|
|
31
|
+
const sectionName = String(bookmark.getAttribute("text:name")).toLowerCase();
|
|
32
|
+
if (sectionName === "preamble") {
|
|
33
|
+
currentSection = this.preamble;
|
|
34
|
+
}
|
|
35
|
+
else if (sectionName === "postamble") {
|
|
36
|
+
currentSection = this.postamble;
|
|
37
|
+
}
|
|
38
|
+
else if (sectionName === "body") {
|
|
39
|
+
currentSection = this.bodyTemplate;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
currentSection = currentSection || this.bodyTemplate;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
currentSection = currentSection || this.bodyTemplate;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (currentSection) {
|
|
50
|
+
currentSection.appendChild(node);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return Promise.resolve();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
render(...args) {
|
|
57
|
+
const [docContent, pmBib, settings, richtext, citations, chapterIndex] = args;
|
|
58
|
+
this.text = this.bodyTemplate.cloneNode(true);
|
|
59
|
+
const bodyBookmark = this.text.query("text:bookmark", {
|
|
60
|
+
"text:name": "body"
|
|
61
|
+
});
|
|
62
|
+
if (bodyBookmark) {
|
|
63
|
+
bodyBookmark.setAttribute("text:name", `chapter ${chapterIndex + 1}`);
|
|
64
|
+
}
|
|
65
|
+
super.render(docContent, pmBib, settings, richtext, citations);
|
|
66
|
+
this.bodyParts.push(this.text);
|
|
67
|
+
}
|
|
68
|
+
renderAmbles({ title, subtitle, version, publisher, copyright, author, keywords, language, description, isbn, publication_date, series_title, series_position }) {
|
|
69
|
+
const tags = [
|
|
70
|
+
{ title: "book.title", content: title },
|
|
71
|
+
{ title: "book.subtitle", content: subtitle },
|
|
72
|
+
{ title: "book.version", content: version },
|
|
73
|
+
{ title: "book.publisher", content: publisher },
|
|
74
|
+
{ title: "book.copyright", content: copyright },
|
|
75
|
+
{ title: "book.author", content: author },
|
|
76
|
+
{ title: "book.keywords", content: keywords },
|
|
77
|
+
{ title: "book.language", content: language },
|
|
78
|
+
{ title: "book.description", content: description },
|
|
79
|
+
{ title: "book.isbn", content: isbn },
|
|
80
|
+
{ title: "book.publication_date", content: publication_date },
|
|
81
|
+
{ title: "book.series_title", content: series_title },
|
|
82
|
+
{ title: "book.series_position", content: series_position }
|
|
83
|
+
];
|
|
84
|
+
const usedTags = [];
|
|
85
|
+
const ambles = [this.preamble, this.postamble];
|
|
86
|
+
ambles.forEach(amble => {
|
|
87
|
+
const blocks = amble.queryAll(["text:p", "text:h"]);
|
|
88
|
+
blocks.forEach((block) => {
|
|
89
|
+
if (block.parentElement.nodeName === "text:deletion") {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const text = block.textContent;
|
|
93
|
+
tags.forEach(tag => {
|
|
94
|
+
const tagString = tag.title;
|
|
95
|
+
if (text.includes(`{${tagString}}`)) {
|
|
96
|
+
usedTags.push(Object.assign({ block }, tag));
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
usedTags.forEach(tag => this.inlineRender(tag));
|
|
102
|
+
}
|
|
103
|
+
assemble() {
|
|
104
|
+
this.styles.addPageBreakStyle();
|
|
105
|
+
const text = this.fileXml.query("office:text");
|
|
106
|
+
Array.from(this.preamble.children).forEach((node) => text.appendChild(node));
|
|
107
|
+
this.bodyParts.forEach((bodyPart, index) => {
|
|
108
|
+
const children = bodyPart.children.slice();
|
|
109
|
+
children.forEach((node) => {
|
|
110
|
+
text.appendChild(node);
|
|
111
|
+
});
|
|
112
|
+
if (index < this.bodyParts.length - 1) {
|
|
113
|
+
text.appendXML('<text:p text:style-name="PageBreak"/>');
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
Array.from(this.postamble.children).forEach((node) => text.appendChild(node));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/exporter/odt/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Print book exporter.
|
|
3
|
+
*
|
|
4
|
+
* Uses @vivliostyle/print to render the book in the browser.
|
|
5
|
+
*/
|
|
6
|
+
import type { Schema } from "prosemirror-model";
|
|
7
|
+
import type { CSL, User } from "@fiduswriter/document";
|
|
8
|
+
import type { Book, BookStyles, DocumentListEntry } from "../../types.js";
|
|
9
|
+
import { HTMLBookExporter } from "../html/index.js";
|
|
10
|
+
export declare class PrintBookExporter extends HTMLBookExporter {
|
|
11
|
+
constructor(schema: Schema, csl: CSL, documentStyles: BookStyles, book: Book, user: User, docList: DocumentListEntry[]);
|
|
12
|
+
addBookStyle(): boolean;
|
|
13
|
+
createZip(): Promise<void>;
|
|
14
|
+
loadStyle(sheet: {
|
|
15
|
+
url?: string;
|
|
16
|
+
filename?: string;
|
|
17
|
+
contents?: string;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
url?: string;
|
|
20
|
+
filename?: string;
|
|
21
|
+
contents?: string;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exporter/print/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AAC7C,OAAO,KAAK,EAAC,GAAG,EAAE,IAAI,EAAC,MAAM,uBAAuB,CAAA;AAGpD,OAAO,KAAK,EAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAA;AAGjD,qBAAa,iBAAkB,SAAQ,gBAAgB;gBAE/C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,UAAU,EAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,iBAAiB,EAAE;IAQhC,YAAY,IAAI,OAAO;IAoBjB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B1B,SAAS,CAAC,KAAK,EAAE;QACnB,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CAOpE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Print book exporter.
|
|
3
|
+
*
|
|
4
|
+
* Uses @vivliostyle/print to render the book in the browser.
|
|
5
|
+
*/
|
|
6
|
+
import { printHTML } from "@vivliostyle/print";
|
|
7
|
+
import { HTMLBookExporter } from "../html/index.js";
|
|
8
|
+
import { chapterTemplate } from "./templates.js";
|
|
9
|
+
export class PrintBookExporter extends HTMLBookExporter {
|
|
10
|
+
constructor(schema, csl, documentStyles, book, user, docList) {
|
|
11
|
+
super(schema, csl, documentStyles, book, user, docList, 0, false, {
|
|
12
|
+
relativeUrls: false
|
|
13
|
+
});
|
|
14
|
+
this.chapterTemplate = chapterTemplate;
|
|
15
|
+
}
|
|
16
|
+
addBookStyle() {
|
|
17
|
+
const bookStyle = this.bookStyles.find(style => style.slug === this.book.settings.book_style);
|
|
18
|
+
if (!bookStyle) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
let contents = bookStyle.contents;
|
|
22
|
+
bookStyle.bookstylefile_set.forEach(([url, filename]) => (contents = contents.replace(new RegExp(filename, "g"), url)));
|
|
23
|
+
this.styleSheets.push({ contents });
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
async createZip() {
|
|
27
|
+
const htmlDoc = this.textFiles.find(file => file.filename === "index.html")?.contents;
|
|
28
|
+
if (!htmlDoc) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const config = { title: this.book.title };
|
|
32
|
+
if (navigator.userAgent.includes("Gecko/")) {
|
|
33
|
+
config.printCallback = (iframeWin) => {
|
|
34
|
+
const oldBody = document.body;
|
|
35
|
+
document.body.parentElement.dataset.vivliostylePaginated =
|
|
36
|
+
"true";
|
|
37
|
+
document.body = iframeWin.document.body;
|
|
38
|
+
iframeWin.document
|
|
39
|
+
.querySelectorAll("style")
|
|
40
|
+
.forEach(el => document.body.appendChild(el));
|
|
41
|
+
const backgroundStyle = document.createElement("style");
|
|
42
|
+
backgroundStyle.innerHTML = "body {background-color: white;}";
|
|
43
|
+
document.body.appendChild(backgroundStyle);
|
|
44
|
+
window.print();
|
|
45
|
+
document.body = oldBody;
|
|
46
|
+
delete document.body.parentElement.dataset
|
|
47
|
+
.vivliostylePaginated;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
printHTML(htmlDoc, config);
|
|
51
|
+
}
|
|
52
|
+
async loadStyle(sheet) {
|
|
53
|
+
if (sheet.url) {
|
|
54
|
+
sheet.filename = sheet.url;
|
|
55
|
+
delete sheet.url;
|
|
56
|
+
}
|
|
57
|
+
return sheet;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exporter/print/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/exporter/print/templates.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,oBAG7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAEV,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/exporter/print/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AAEpC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC5B,IAAI,EACJ,QAAQ,EACc,EAAE,EAAE,CAAC;MACzB,IAAI,IAAK,IAAe,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,UAAU,CAAC,IAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;MAC5F,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared tools for book exporters.
|
|
3
|
+
*
|
|
4
|
+
* `getMissingChapterData` is fully dependency-injected: it no longer imports
|
|
5
|
+
* browser/server-specific helpers from the Fidus Writer core. Callers supply
|
|
6
|
+
* a `ChapterLoader` to fetch missing chapter data and an `E2EEStrategy` to
|
|
7
|
+
* decrypt end-to-end encrypted chapters.
|
|
8
|
+
*/
|
|
9
|
+
import type { Schema } from "prosemirror-model";
|
|
10
|
+
import type { ChapterLoader, DocumentListEntry, E2EEStrategy, Book } from "../types.js";
|
|
11
|
+
/** Default no-op chapter loader. */
|
|
12
|
+
export declare const noopChapterLoader: ChapterLoader;
|
|
13
|
+
/** Default no-op E2EE strategy. */
|
|
14
|
+
export declare const noopE2EEStrategy: E2EEStrategy;
|
|
15
|
+
/**
|
|
16
|
+
* Ensure all chapter data required for export is present.
|
|
17
|
+
*
|
|
18
|
+
* @param book - The book being exported.
|
|
19
|
+
* @param documentList - Document entries for the book's chapters.
|
|
20
|
+
* @param schema - ProseMirror schema used when parsing decrypted content.
|
|
21
|
+
* @param options - Optional loader and E2EE strategy.
|
|
22
|
+
* @returns Promise that resolves when data is ready.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getMissingChapterData(book: Book, documentList: DocumentListEntry[], schema: Schema, options?: {
|
|
25
|
+
rawContent?: boolean;
|
|
26
|
+
loader?: ChapterLoader;
|
|
27
|
+
e2ee?: E2EEStrategy;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/exporter/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAA;AAK7C,OAAO,KAAK,EACR,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,IAAI,EACP,MAAM,aAAa,CAAA;AAEpB,oCAAoC;AACpC,eAAO,MAAM,iBAAiB,EAAE,aAI/B,CAAA;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,EAAE,YAY9B,CAAA;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACvC,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,iBAAiB,EAAE,EACjC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACL,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,IAAI,CAAC,EAAE,YAAY,CAAA;CACjB,GACP,OAAO,CAAC,IAAI,CAAC,CAuBf"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared tools for book exporters.
|
|
3
|
+
*
|
|
4
|
+
* `getMissingChapterData` is fully dependency-injected: it no longer imports
|
|
5
|
+
* browser/server-specific helpers from the Fidus Writer core. Callers supply
|
|
6
|
+
* a `ChapterLoader` to fetch missing chapter data and an `E2EEStrategy` to
|
|
7
|
+
* decrypt end-to-end encrypted chapters.
|
|
8
|
+
*/
|
|
9
|
+
import { getSettings } from "@fiduswriter/document/schema/convert";
|
|
10
|
+
import { acceptAllNoInsertions } from "@fiduswriter/document/transform";
|
|
11
|
+
import { addAlert } from "fwtoolkit";
|
|
12
|
+
/** Default no-op chapter loader. */
|
|
13
|
+
export const noopChapterLoader = {
|
|
14
|
+
loadChapters: async () => {
|
|
15
|
+
// noop
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
/** Default no-op E2EE strategy. */
|
|
19
|
+
export const noopE2EEStrategy = {
|
|
20
|
+
ensurePassphraseUnlocked: async () => false,
|
|
21
|
+
getDocumentPassword: async () => null,
|
|
22
|
+
resolvePasswordToKey: async () => {
|
|
23
|
+
throw new Error("No E2EE strategy provided");
|
|
24
|
+
},
|
|
25
|
+
decryptObject: async () => {
|
|
26
|
+
throw new Error("No E2EE strategy provided");
|
|
27
|
+
},
|
|
28
|
+
decryptImageToUrl: async () => {
|
|
29
|
+
throw new Error("No E2EE strategy provided");
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Ensure all chapter data required for export is present.
|
|
34
|
+
*
|
|
35
|
+
* @param book - The book being exported.
|
|
36
|
+
* @param documentList - Document entries for the book's chapters.
|
|
37
|
+
* @param schema - ProseMirror schema used when parsing decrypted content.
|
|
38
|
+
* @param options - Optional loader and E2EE strategy.
|
|
39
|
+
* @returns Promise that resolves when data is ready.
|
|
40
|
+
*/
|
|
41
|
+
export async function getMissingChapterData(book, documentList, schema, options = {}) {
|
|
42
|
+
const { rawContent = false, loader = noopChapterLoader, e2ee = noopE2EEStrategy } = options;
|
|
43
|
+
const bookDocuments = book.chapters.map(chapter => documentList.find(doc => doc.id === chapter.text));
|
|
44
|
+
if (bookDocuments.some(doc => doc === undefined)) {
|
|
45
|
+
addAlert("error", gettext("Cannot produce book as you lack access rights to its chapters."));
|
|
46
|
+
throw new Error("Cannot produce book as you lack access rights to its chapters.");
|
|
47
|
+
}
|
|
48
|
+
const docIds = book.chapters.map(chapter => chapter.text);
|
|
49
|
+
await loader.loadChapters(docIds, documentList, schema, rawContent);
|
|
50
|
+
await decryptE2EEChapters(book, documentList, schema, rawContent, e2ee);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Decrypt all E2EE chapters in the book whose content is still an encrypted
|
|
54
|
+
* string.
|
|
55
|
+
*/
|
|
56
|
+
async function decryptE2EEChapters(book, documentList, schema, rawContent, e2ee) {
|
|
57
|
+
const e2eeChapters = book.chapters.filter(chapter => {
|
|
58
|
+
const doc = documentList.find(doc => doc.id === chapter.text);
|
|
59
|
+
return doc && doc.e2ee && typeof doc.content === "string";
|
|
60
|
+
});
|
|
61
|
+
if (!e2eeChapters.length) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const unlocked = await e2ee.ensurePassphraseUnlocked();
|
|
65
|
+
if (!unlocked) {
|
|
66
|
+
addAlert("error", gettext("A personal passphrase is required to work with books that contain encrypted chapters. Please set up or unlock your personal passphrase in your profile settings."));
|
|
67
|
+
throw new Error("Passphrase required for encrypted chapters");
|
|
68
|
+
}
|
|
69
|
+
await Promise.all(e2eeChapters.map(async (chapter) => {
|
|
70
|
+
const doc = documentList.find(d => d.id === chapter.text);
|
|
71
|
+
if (!doc) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const chapterLabel = doc.title
|
|
75
|
+
? `"${doc.title}"`
|
|
76
|
+
: gettext("Untitled");
|
|
77
|
+
const password = await e2ee.getDocumentPassword(Number(doc.id));
|
|
78
|
+
if (!password) {
|
|
79
|
+
addAlert("error", `${gettext("No encryption key found for chapter:")} ${chapterLabel}. ${gettext("The key may not have been shared with you.")}`);
|
|
80
|
+
throw new Error(`No encryption key for document ${String(doc.id)}`);
|
|
81
|
+
}
|
|
82
|
+
if (!doc.e2ee_salt) {
|
|
83
|
+
// No salt means the document has no encrypted snapshot yet.
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const salt = base64ToUint8Array(doc.e2ee_salt);
|
|
87
|
+
const iterations = doc.e2ee_iterations || 600000;
|
|
88
|
+
const key = await e2ee.resolvePasswordToKey(password, salt, iterations);
|
|
89
|
+
try {
|
|
90
|
+
const decryptedContent = (await e2ee.decryptObject(doc.content, key));
|
|
91
|
+
// Update the plaintext title.
|
|
92
|
+
const titleNode = decryptedContent.content?.[0];
|
|
93
|
+
const titleContent = titleNode?.content || [];
|
|
94
|
+
let title = "";
|
|
95
|
+
titleContent.forEach(child => {
|
|
96
|
+
const marks = child.marks || [];
|
|
97
|
+
if (!marks.some(m => m.type === "deletion")) {
|
|
98
|
+
title += child.text || "";
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
if (title) {
|
|
102
|
+
doc.title = title.substring(0, 255);
|
|
103
|
+
if (typeof sessionStorage !== "undefined") {
|
|
104
|
+
sessionStorage.setItem(`e2ee_title_${String(doc.id)}`, doc.title);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Parse ProseMirror content.
|
|
108
|
+
if (rawContent) {
|
|
109
|
+
doc.rawContent = JSON.parse(JSON.stringify(schema.nodeFromJSON(decryptedContent).toJSON()));
|
|
110
|
+
}
|
|
111
|
+
doc.content = acceptAllNoInsertions(schema.nodeFromJSON(decryptedContent)).toJSON();
|
|
112
|
+
doc.settings = getSettings(doc.content);
|
|
113
|
+
// Decrypt encrypted images.
|
|
114
|
+
const encryptedImageEntries = Object.entries(doc.images || {}).filter(([, entry]) => entry.file_type === "application/octet-stream" &&
|
|
115
|
+
typeof entry.image === "string");
|
|
116
|
+
if (!encryptedImageEntries.length) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
await Promise.all(encryptedImageEntries.map(async ([id, entry]) => {
|
|
120
|
+
try {
|
|
121
|
+
const blobUrl = await e2ee.decryptImageToUrl(entry.image, key);
|
|
122
|
+
doc.images[id] = {
|
|
123
|
+
...entry,
|
|
124
|
+
image: blobUrl,
|
|
125
|
+
file_type: "image/png"
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
delete doc.images[id];
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
catch (err) {
|
|
134
|
+
if (err instanceof Error &&
|
|
135
|
+
err.message.startsWith("No encryption key")) {
|
|
136
|
+
throw err;
|
|
137
|
+
}
|
|
138
|
+
addAlert("error", `${gettext("Could not decrypt chapter:")} ${chapterLabel}. ${gettext("The document may have been re-encrypted with a different password.")}`);
|
|
139
|
+
throw err;
|
|
140
|
+
}
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
function base64ToUint8Array(base64) {
|
|
144
|
+
const binary = atob(base64);
|
|
145
|
+
const bytes = new Uint8Array(binary.length);
|
|
146
|
+
for (let i = 0; i < binary.length; i++) {
|
|
147
|
+
bytes[i] = binary.charCodeAt(i);
|
|
148
|
+
}
|
|
149
|
+
return bytes;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/exporter/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/i18n.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA25BH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
|