@richhtmleditor/export 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,32 @@
1
+ import type { EditorPlugin } from "@richhtmleditor/core";
2
+ export type ExportFormat = "markdown" | "text" | "pdf";
3
+ export type ExportPluginOptions = {
4
+ /**
5
+ * Called with the exported content string.
6
+ * If omitted: markdown → downloaded as .md, text → downloaded as .txt, pdf → window.print().
7
+ */
8
+ onExport?: (format: ExportFormat, content: string) => void;
9
+ /** Filename (without extension) used when auto-downloading. Default: 'document' */
10
+ filename?: string;
11
+ /** Document title shown in the print/PDF view. Default: 'Document' */
12
+ pdfTitle?: string;
13
+ };
14
+ /** Convert HTML string to Markdown. No external dependencies. */
15
+ export declare function htmlToMarkdown(html: string): string;
16
+ /** Convert HTML string to plain text (strips all tags). */
17
+ export declare function htmlToText(html: string): string;
18
+ /**
19
+ * Export plugin — adds Markdown, plain text, and PDF export buttons.
20
+ *
21
+ * ```ts
22
+ * import { createExportPlugin } from "@richhtmleditor/export";
23
+ * createEditor({
24
+ * plugins: [createExportPlugin({
25
+ * filename: "my-document",
26
+ * onExport: (format, content) => console.log(format, content)
27
+ * })]
28
+ * });
29
+ * ```
30
+ */
31
+ export declare function createExportPlugin(options?: ExportPluginOptions): EditorPlugin;
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,YAAY,EAAyB,MAAM,sBAAsB,CAAC;AAEhG,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA0FF,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAqDlF"}
package/dist/index.js ADDED
@@ -0,0 +1,200 @@
1
+ // ── HTML → Markdown converter (zero dependencies) ────────────────────────────
2
+ function nodeToMarkdown(node, indent = "") {
3
+ if (node.nodeType === Node.TEXT_NODE) {
4
+ return node.textContent ?? "";
5
+ }
6
+ if (node.nodeType !== Node.ELEMENT_NODE)
7
+ return "";
8
+ const el = node;
9
+ const tag = el.tagName.toLowerCase();
10
+ const children = Array.from(el.childNodes).map((c) => nodeToMarkdown(c, indent)).join("");
11
+ switch (tag) {
12
+ case "h1": return `\n# ${children.trim()}\n`;
13
+ case "h2": return `\n## ${children.trim()}\n`;
14
+ case "h3": return `\n### ${children.trim()}\n`;
15
+ case "h4": return `\n#### ${children.trim()}\n`;
16
+ case "h5": return `\n##### ${children.trim()}\n`;
17
+ case "h6": return `\n###### ${children.trim()}\n`;
18
+ case "p":
19
+ case "div": return `\n${children}\n`;
20
+ case "br": return "\n";
21
+ case "strong":
22
+ case "b": return `**${children}**`;
23
+ case "em":
24
+ case "i": return `*${children}*`;
25
+ case "u": return `__${children}__`;
26
+ case "s":
27
+ case "strike":
28
+ case "del": return `~~${children}~~`;
29
+ case "code": return el.closest("pre") ? children : `\`${children}\``;
30
+ case "pre": {
31
+ const code = el.querySelector("code");
32
+ const text = (code ?? el).textContent ?? "";
33
+ return `\n\`\`\`\n${text}\n\`\`\`\n`;
34
+ }
35
+ case "blockquote": return children.split("\n").map((l) => `> ${l}`).join("\n") + "\n";
36
+ case "a": {
37
+ const href = el.getAttribute("href") ?? "#";
38
+ return `[${children}](${href})`;
39
+ }
40
+ case "img": {
41
+ const src = el.getAttribute("src") ?? "";
42
+ const alt = el.getAttribute("alt") ?? "";
43
+ return `![${alt}](${src})`;
44
+ }
45
+ case "figure": {
46
+ const img = el.querySelector("img");
47
+ const caption = el.querySelector("figcaption")?.textContent?.trim() ?? "";
48
+ if (img) {
49
+ const src = img.getAttribute("src") ?? "";
50
+ const alt = img.getAttribute("alt") ?? caption;
51
+ return `\n![${alt}](${src})\n${caption ? `*${caption}*\n` : ""}`;
52
+ }
53
+ return `\n${children}\n`;
54
+ }
55
+ case "ul": {
56
+ const items = Array.from(el.querySelectorAll(":scope > li"));
57
+ return "\n" + items.map((li) => `${indent}- ${Array.from(li.childNodes).map((c) => nodeToMarkdown(c, indent + " ")).join("").trim()}`).join("\n") + "\n";
58
+ }
59
+ case "ol": {
60
+ const items = Array.from(el.querySelectorAll(":scope > li"));
61
+ return "\n" + items.map((li, i) => `${indent}${i + 1}. ${Array.from(li.childNodes).map((c) => nodeToMarkdown(c, indent + " ")).join("").trim()}`).join("\n") + "\n";
62
+ }
63
+ case "li": return children;
64
+ case "hr": return "\n---\n";
65
+ case "table": {
66
+ const rows = Array.from(el.querySelectorAll("tr"));
67
+ if (!rows.length)
68
+ return "";
69
+ const mdRows = rows.map((row) => "| " + Array.from(row.querySelectorAll("td,th")).map((cell) => cell.textContent?.trim() ?? "").join(" | ") + " |");
70
+ const header = mdRows[0];
71
+ const sep = "| " + Array.from(rows[0].querySelectorAll("td,th")).map(() => "---").join(" | ") + " |";
72
+ return "\n" + [header, sep, ...mdRows.slice(1)].join("\n") + "\n";
73
+ }
74
+ case "sup": return `^${children}`;
75
+ case "sub": return `~${children}~`;
76
+ case "span":
77
+ case "section":
78
+ case "article":
79
+ case "header":
80
+ case "footer":
81
+ case "main":
82
+ case "nav": return children;
83
+ default: return children;
84
+ }
85
+ }
86
+ /** Convert HTML string to Markdown. No external dependencies. */
87
+ export function htmlToMarkdown(html) {
88
+ const template = document.createElement("template");
89
+ template.innerHTML = html;
90
+ const md = nodeToMarkdown(template.content);
91
+ return md.replace(/\n{3,}/g, "\n\n").trim() + "\n";
92
+ }
93
+ /** Convert HTML string to plain text (strips all tags). */
94
+ export function htmlToText(html) {
95
+ const template = document.createElement("template");
96
+ template.innerHTML = html;
97
+ return (template.content.textContent ?? "").replace(/\n{3,}/g, "\n\n").trim();
98
+ }
99
+ function downloadBlob(content, filename, mimeType) {
100
+ const blob = new Blob([content], { type: mimeType });
101
+ const url = URL.createObjectURL(blob);
102
+ const a = document.createElement("a");
103
+ a.href = url;
104
+ a.download = filename;
105
+ a.click();
106
+ URL.revokeObjectURL(url);
107
+ }
108
+ function printHtml(html, title) {
109
+ const win = window.open("", "_blank", "width=800,height=600");
110
+ if (!win) {
111
+ window.alert("Please allow popups to use PDF export.");
112
+ return;
113
+ }
114
+ win.document.write(`<!DOCTYPE html><html><head><title>${title}</title><style>
115
+ body{font-family:Georgia,serif;max-width:800px;margin:40px auto;padding:0 20px;line-height:1.6;}
116
+ img{max-width:100%;}
117
+ pre{background:#f1f5f9;padding:12px;border-radius:6px;overflow:auto;}
118
+ table{border-collapse:collapse;width:100%;}
119
+ td,th{border:1px solid #ccc;padding:6px 10px;}
120
+ @media print{body{margin:0;}}
121
+ </style></head><body>${html}</body></html>`);
122
+ win.document.close();
123
+ win.focus();
124
+ setTimeout(() => { win.print(); win.close(); }, 400);
125
+ }
126
+ /**
127
+ * Export plugin — adds Markdown, plain text, and PDF export buttons.
128
+ *
129
+ * ```ts
130
+ * import { createExportPlugin } from "@richhtmleditor/export";
131
+ * createEditor({
132
+ * plugins: [createExportPlugin({
133
+ * filename: "my-document",
134
+ * onExport: (format, content) => console.log(format, content)
135
+ * })]
136
+ * });
137
+ * ```
138
+ */
139
+ export function createExportPlugin(options = {}) {
140
+ const filename = options.filename ?? "document";
141
+ const pdfTitle = options.pdfTitle ?? "Document";
142
+ const tools = [
143
+ {
144
+ id: "exportMarkdown",
145
+ type: "button",
146
+ label: "↓ Markdown",
147
+ icon: "export-md",
148
+ display: "icon",
149
+ tooltip: "Export as Markdown (.md)",
150
+ group: "overflow",
151
+ onClick: (editor) => {
152
+ const md = htmlToMarkdown(editor.getHTML());
153
+ if (options.onExport) {
154
+ options.onExport("markdown", md);
155
+ return;
156
+ }
157
+ downloadBlob(md, `${filename}.md`, "text/markdown;charset=utf-8");
158
+ }
159
+ },
160
+ {
161
+ id: "exportText",
162
+ type: "button",
163
+ label: "↓ Text",
164
+ icon: "export-txt",
165
+ display: "icon",
166
+ tooltip: "Export as plain text (.txt)",
167
+ group: "overflow",
168
+ onClick: (editor) => {
169
+ const txt = htmlToText(editor.getHTML());
170
+ if (options.onExport) {
171
+ options.onExport("text", txt);
172
+ return;
173
+ }
174
+ downloadBlob(txt, `${filename}.txt`, "text/plain;charset=utf-8");
175
+ }
176
+ },
177
+ {
178
+ id: "exportPdf",
179
+ type: "button",
180
+ label: "↓ PDF",
181
+ icon: "export-pdf",
182
+ display: "icon",
183
+ tooltip: "Print / save as PDF",
184
+ group: "overflow",
185
+ onClick: (editor) => {
186
+ const html = editor.getHTML();
187
+ if (options.onExport) {
188
+ options.onExport("pdf", html);
189
+ return;
190
+ }
191
+ printHtml(html, pdfTitle);
192
+ }
193
+ }
194
+ ];
195
+ return {
196
+ id: "richhtmleditor-export",
197
+ tools
198
+ };
199
+ }
200
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@richhtmleditor/export",
3
+ "version": "1.1.0",
4
+ "description": "Markdown, plain-text, and PDF export plugin for Rich HTML Editor.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": ["dist", "README.md"],
16
+ "scripts": {
17
+ "build": "tsc -p tsconfig.json",
18
+ "prepack": "node ../../scripts/assert-pack-ready.mjs"
19
+ },
20
+ "dependencies": {
21
+ "@richhtmleditor/core": "^1.1.0"
22
+ },
23
+ "keywords": ["richhtmleditor", "export", "markdown", "pdf", "download"],
24
+ "license": "MIT",
25
+ "publishConfig": { "access": "public" },
26
+ "engines": { "node": ">=18" }
27
+ }