@geekity/plugin-wordpress 0.1.1 → 0.3.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.
- package/README.md +232 -9
- package/dist/bundle/index.js +24475 -2130
- package/dist/bundle/plugin.json +2 -2
- package/dist/comments-import.d.ts +3 -0
- package/dist/comments-import.d.ts.map +1 -0
- package/dist/comments-import.js +246 -0
- package/dist/comments-import.js.map +1 -0
- package/dist/content-command.d.ts +3 -0
- package/dist/content-command.d.ts.map +1 -0
- package/dist/content-command.js +100 -0
- package/dist/content-command.js.map +1 -0
- package/dist/content-import.d.ts +55 -0
- package/dist/content-import.d.ts.map +1 -0
- package/dist/content-import.js +299 -0
- package/dist/content-import.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/media-import.d.ts +3 -0
- package/dist/media-import.d.ts.map +1 -0
- package/dist/media-import.js +89 -0
- package/dist/media-import.js.map +1 -0
- package/dist/media-redirect.d.ts +4 -0
- package/dist/media-redirect.d.ts.map +1 -0
- package/dist/media-redirect.js +28 -0
- package/dist/media-redirect.js.map +1 -0
- package/dist/media.d.ts +14 -0
- package/dist/media.d.ts.map +1 -0
- package/dist/media.js +102 -0
- package/dist/media.js.map +1 -0
- package/dist/posts-import.d.ts +34 -0
- package/dist/posts-import.d.ts.map +1 -0
- package/dist/posts-import.js +304 -0
- package/dist/posts-import.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wordpress-html.d.ts +7 -0
- package/dist/wordpress-html.d.ts.map +1 -0
- package/dist/wordpress-html.js +360 -0
- package/dist/wordpress-html.js.map +1 -0
- package/dist/wxr.d.ts +80 -0
- package/dist/wxr.d.ts.map +1 -0
- package/dist/wxr.js +212 -0
- package/dist/wxr.js.map +1 -0
- package/package.json +8 -4
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
import TurndownService from 'turndown';
|
|
2
|
+
export function convertBody(content) {
|
|
3
|
+
let html = content.replace(/\r\n?/g, '\n');
|
|
4
|
+
let inReplyTo;
|
|
5
|
+
html = html.replace(/<!--\s+wp:activitypub\/reply\s+(\{[\s\S]*?\})\s+\/-->/g, (_block, attributes) => {
|
|
6
|
+
inReplyTo ??= stringAttribute(attributes, 'url');
|
|
7
|
+
return '';
|
|
8
|
+
});
|
|
9
|
+
html = html.replace(/<!--\s+wp:embed\s+(\{[\s\S]*?\})\s+-->[\s\S]*?<!--\s+\/wp:embed\s+-->/g, (block, attributes) => {
|
|
10
|
+
const url = stringAttribute(attributes, 'url');
|
|
11
|
+
return url !== undefined && videoPageUrl(url) !== undefined
|
|
12
|
+
? `<iframe src="${escapeAttribute(url)}"></iframe>`
|
|
13
|
+
: block;
|
|
14
|
+
});
|
|
15
|
+
const blocks = /<!--\s+\/?wp:/.test(html);
|
|
16
|
+
html = html.replace(/<!--\s+\/?wp:[\s\S]*?-->/g, '');
|
|
17
|
+
html = html.replace(/<!--more(?:\s[^>]*)?-->/g, `\n\n<p>${MORE}</p>\n\n`);
|
|
18
|
+
if (!blocks)
|
|
19
|
+
html = wpautop(html);
|
|
20
|
+
const markdown = tidy(turndown.turndown(html));
|
|
21
|
+
return { markdown, ...(inReplyTo === undefined ? {} : { inReplyTo }) };
|
|
22
|
+
}
|
|
23
|
+
function tidy(markdown) {
|
|
24
|
+
const lines = [];
|
|
25
|
+
let fence;
|
|
26
|
+
for (const line of markdown.split('\n')) {
|
|
27
|
+
const marker = /^(`{3,}|~{3,})/.exec(line)?.[1];
|
|
28
|
+
if (fence !== undefined) {
|
|
29
|
+
if (marker !== undefined && marker.startsWith(fence))
|
|
30
|
+
fence = undefined;
|
|
31
|
+
lines.push(line);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (marker !== undefined)
|
|
35
|
+
fence = marker;
|
|
36
|
+
if (line.trim() === '' && (lines.at(-1) ?? '') === '')
|
|
37
|
+
continue;
|
|
38
|
+
lines.push(line === MORE ? '<!--more-->' : line.trim() === '' ? '' : line);
|
|
39
|
+
}
|
|
40
|
+
return lines.join('\n').trim();
|
|
41
|
+
}
|
|
42
|
+
const MORE = '';
|
|
43
|
+
function stringAttribute(json, name) {
|
|
44
|
+
try {
|
|
45
|
+
const value = JSON.parse(json)[name];
|
|
46
|
+
return typeof value === 'string' && value !== '' ? value : undefined;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function escapeAttribute(text) {
|
|
53
|
+
return text.replaceAll('&', '&').replaceAll('"', '"').replaceAll('<', '<');
|
|
54
|
+
}
|
|
55
|
+
const YOUTUBE_PAGES = ['youtube.com', 'www.youtube.com', 'm.youtube.com', 'youtu.be'];
|
|
56
|
+
const VIMEO_PAGES = ['vimeo.com', 'www.vimeo.com'];
|
|
57
|
+
function videoPageUrl(source) {
|
|
58
|
+
const href = source.startsWith('//') ? `https:${source}` : source;
|
|
59
|
+
if (!URL.canParse(href))
|
|
60
|
+
return undefined;
|
|
61
|
+
const url = new URL(href);
|
|
62
|
+
if (url.protocol !== 'https:' && url.protocol !== 'http:')
|
|
63
|
+
return undefined;
|
|
64
|
+
if (url.hostname.endsWith('youtube.com') || url.hostname.endsWith('youtube-nocookie.com')) {
|
|
65
|
+
const embedded = /^\/embed\/([\w-]{11})\/?$/.exec(url.pathname)?.[1];
|
|
66
|
+
if (embedded !== undefined) {
|
|
67
|
+
const start = url.searchParams.get('start') ?? url.searchParams.get('t');
|
|
68
|
+
return `https://www.youtube.com/watch?v=${embedded}${start === null ? '' : `&t=${start}`}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (url.hostname === 'player.vimeo.com') {
|
|
72
|
+
const id = /^\/video\/(\d+)\/?$/.exec(url.pathname)?.[1];
|
|
73
|
+
if (id === undefined)
|
|
74
|
+
return undefined;
|
|
75
|
+
const hash = url.searchParams.get('h');
|
|
76
|
+
return `https://vimeo.com/${id}${hash !== null && /^[\da-f]+$/.test(hash) ? `/${hash}` : ''}`;
|
|
77
|
+
}
|
|
78
|
+
return YOUTUBE_PAGES.includes(url.hostname) || VIMEO_PAGES.includes(url.hostname)
|
|
79
|
+
? url.href
|
|
80
|
+
: undefined;
|
|
81
|
+
}
|
|
82
|
+
const ALL_BLOCKS = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
|
|
83
|
+
/**
|
|
84
|
+
* WordPress's `wpautop`, which turns a classic post's blank lines into
|
|
85
|
+
* paragraphs and its single line breaks into `<br />` when the post is shown.
|
|
86
|
+
* A block post carries its own `<p>` and is shown without it.
|
|
87
|
+
*/
|
|
88
|
+
function wpautop(input) {
|
|
89
|
+
if (input.trim() === '')
|
|
90
|
+
return '';
|
|
91
|
+
const pres = [];
|
|
92
|
+
let text = `${input}\n`.replace(/<pre[\s\S]*?<\/pre>/g, (pre) => {
|
|
93
|
+
pres.push(pre);
|
|
94
|
+
return `<pre wp-pre-tag-${String(pres.length - 1)}></pre>`;
|
|
95
|
+
});
|
|
96
|
+
text = text
|
|
97
|
+
.replace(/<br\s*\/?>\s*<br\s*\/?>/g, '\n\n')
|
|
98
|
+
.replace(new RegExp(`(<${ALL_BLOCKS}[\\s/>])`, 'g'), '\n\n$1')
|
|
99
|
+
.replace(new RegExp(`(</${ALL_BLOCKS}>)`, 'g'), '$1\n\n')
|
|
100
|
+
.replace(/(<hr\s*?\/?>)/g, '$1\n\n')
|
|
101
|
+
.replace(/<[^>]*>/g, (tag) => tag.replaceAll('\n', ' <!-- wpnl --> '))
|
|
102
|
+
.replace(/\s*(<figcaption[^>]*>)/g, '$1')
|
|
103
|
+
.replace(/<\/figcaption>\s*/g, '</figcaption>')
|
|
104
|
+
.replace(/\n\n+/g, '\n\n');
|
|
105
|
+
text = text
|
|
106
|
+
.split(/\n\s*\n/)
|
|
107
|
+
.filter((paragraph) => paragraph !== '')
|
|
108
|
+
.map((paragraph) => `<p>${paragraph.replace(/^\n+|\n+$/g, '')}</p>\n`)
|
|
109
|
+
.join('');
|
|
110
|
+
text = text
|
|
111
|
+
.replace(/<p>\s*<\/p>/g, '')
|
|
112
|
+
.replace(/<p>([^<]+)<\/(div|address|form)>/g, '<p>$1</p></$2>')
|
|
113
|
+
.replace(new RegExp(`<p>\\s*(</?${ALL_BLOCKS}[^>]*>)\\s*</p>`, 'g'), '$1')
|
|
114
|
+
.replace(/<p>(<li.+?)<\/p>/g, '$1')
|
|
115
|
+
.replace(/<p><blockquote([^>]*)>/gi, '<blockquote$1><p>')
|
|
116
|
+
.replaceAll('</blockquote></p>', '</p></blockquote>')
|
|
117
|
+
.replace(new RegExp(`<p>\\s*(</?${ALL_BLOCKS}[^>]*>)`, 'g'), '$1')
|
|
118
|
+
.replace(new RegExp(`(</?${ALL_BLOCKS}[^>]*>)\\s*</p>`, 'g'), '$1')
|
|
119
|
+
.replace(/<(script|style|svg|math)[\s\S]*?<\/\1>/g, (element) => element.replaceAll('\n', '<WPPreserveNewline />'))
|
|
120
|
+
.replace(/<br>|<br\/>/g, '<br />')
|
|
121
|
+
.replace(/(?<!<br \/>)\s*\n/g, '<br />\n')
|
|
122
|
+
.replaceAll('<WPPreserveNewline />', '\n')
|
|
123
|
+
.replace(new RegExp(`(</?${ALL_BLOCKS}[^>]*>)\\s*<br />`, 'g'), '$1')
|
|
124
|
+
.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/g, '$1')
|
|
125
|
+
.replace(/\n<\/p>$/, '</p>')
|
|
126
|
+
.replace(/<pre wp-pre-tag-(\d+)><\/pre>/g, (_placeholder, index) => pres[Number(index)] ?? '');
|
|
127
|
+
return text.replace(/ ?<!-- wpnl --> ?/g, '\n');
|
|
128
|
+
}
|
|
129
|
+
const TABLE_PARTS = ['CAPTION', 'TBODY', 'TD', 'TFOOT', 'TH', 'THEAD', 'TR'];
|
|
130
|
+
const BLOCK_ELEMENTS = [
|
|
131
|
+
'ADDRESS',
|
|
132
|
+
'ARTICLE',
|
|
133
|
+
'ASIDE',
|
|
134
|
+
'AUDIO',
|
|
135
|
+
'BLOCKQUOTE',
|
|
136
|
+
'DETAILS',
|
|
137
|
+
'DIV',
|
|
138
|
+
'DL',
|
|
139
|
+
'EMBED',
|
|
140
|
+
'FIELDSET',
|
|
141
|
+
'FIGURE',
|
|
142
|
+
'FOOTER',
|
|
143
|
+
'FORM',
|
|
144
|
+
'H1',
|
|
145
|
+
'H2',
|
|
146
|
+
'H3',
|
|
147
|
+
'H4',
|
|
148
|
+
'H5',
|
|
149
|
+
'H6',
|
|
150
|
+
'HEADER',
|
|
151
|
+
'HR',
|
|
152
|
+
'IFRAME',
|
|
153
|
+
'LI',
|
|
154
|
+
'MAIN',
|
|
155
|
+
'NAV',
|
|
156
|
+
'OBJECT',
|
|
157
|
+
'OL',
|
|
158
|
+
'P',
|
|
159
|
+
'PRE',
|
|
160
|
+
'SCRIPT',
|
|
161
|
+
'SECTION',
|
|
162
|
+
'STYLE',
|
|
163
|
+
'SVG',
|
|
164
|
+
'TABLE',
|
|
165
|
+
'UL',
|
|
166
|
+
'VIDEO',
|
|
167
|
+
...TABLE_PARTS,
|
|
168
|
+
];
|
|
169
|
+
const NO_MARKDOWN_FORM = [
|
|
170
|
+
'AUDIO',
|
|
171
|
+
'DETAILS',
|
|
172
|
+
'DL',
|
|
173
|
+
'EMBED',
|
|
174
|
+
'FORM',
|
|
175
|
+
'IFRAME',
|
|
176
|
+
'OBJECT',
|
|
177
|
+
'SCRIPT',
|
|
178
|
+
'STYLE',
|
|
179
|
+
'SVG',
|
|
180
|
+
'VIDEO',
|
|
181
|
+
];
|
|
182
|
+
const KEPT_INLINE = ['ABBR', 'CITE', 'INS', 'KBD', 'MARK', 'Q', 'SMALL', 'SUB', 'SUP', 'U'];
|
|
183
|
+
const MICROFORMAT_CLASS = /(?:^|\s)(?:h|p|u|dt|e)-[a-z]/;
|
|
184
|
+
function hasStyleOrMicroformats(node) {
|
|
185
|
+
if (node.nodeType !== 1)
|
|
186
|
+
return false;
|
|
187
|
+
return (node.getAttribute('style') !== null || MICROFORMAT_CLASS.test(node.getAttribute('class') ?? ''));
|
|
188
|
+
}
|
|
189
|
+
function keptAsBlock(node) {
|
|
190
|
+
if (NO_MARKDOWN_FORM.includes(node.nodeName))
|
|
191
|
+
return true;
|
|
192
|
+
if (node.nodeName === 'FIGURE')
|
|
193
|
+
return contains(node, 'figcaption');
|
|
194
|
+
if (node.nodeName === 'TABLE')
|
|
195
|
+
return !fitsPipeTable(node);
|
|
196
|
+
if (TABLE_PARTS.includes(node.nodeName))
|
|
197
|
+
return false;
|
|
198
|
+
return BLOCK_ELEMENTS.includes(node.nodeName) && hasStyleOrMicroformats(node);
|
|
199
|
+
}
|
|
200
|
+
function fitsPipeTable(table) {
|
|
201
|
+
const rows = Array.from(table.querySelectorAll('tr'));
|
|
202
|
+
const first = rows[0];
|
|
203
|
+
if (first === undefined || contains(table, 'caption, table table'))
|
|
204
|
+
return false;
|
|
205
|
+
const width = first.children.length;
|
|
206
|
+
if (width === 0 || Array.from(first.children).some((cell) => cell.nodeName !== 'TH'))
|
|
207
|
+
return false;
|
|
208
|
+
if (rows.some((row) => row.children.length !== width))
|
|
209
|
+
return false;
|
|
210
|
+
return Array.from(table.querySelectorAll('th, td')).every((cell) => cell.getAttribute('colspan') === null &&
|
|
211
|
+
cell.getAttribute('rowspan') === null &&
|
|
212
|
+
!contains(cell, 'p, div, ul, ol, pre, blockquote, table, br, h1, h2, h3, h4, h5, h6'));
|
|
213
|
+
}
|
|
214
|
+
function contains(node, selectors) {
|
|
215
|
+
return (node.querySelector(selectors) ?? undefined) !== undefined;
|
|
216
|
+
}
|
|
217
|
+
function inSimpleTable(node) {
|
|
218
|
+
const table = node.closest('table') ?? undefined;
|
|
219
|
+
return table !== undefined && fitsPipeTable(table);
|
|
220
|
+
}
|
|
221
|
+
const PRE_NEWLINE = '';
|
|
222
|
+
const CONTAINERS = [
|
|
223
|
+
'BLOCKQUOTE',
|
|
224
|
+
'DETAILS',
|
|
225
|
+
'DIV',
|
|
226
|
+
'DL',
|
|
227
|
+
'FIGURE',
|
|
228
|
+
'OL',
|
|
229
|
+
'TABLE',
|
|
230
|
+
'TBODY',
|
|
231
|
+
'TFOOT',
|
|
232
|
+
'THEAD',
|
|
233
|
+
'TR',
|
|
234
|
+
'UL',
|
|
235
|
+
];
|
|
236
|
+
/**
|
|
237
|
+
* A kept element as an HTML block Markdown reads as one: each child of a
|
|
238
|
+
* container on its own line, every line unindented and none blank, so nothing
|
|
239
|
+
* in it becomes a code block or ends the block early. Newlines in a `<pre>`
|
|
240
|
+
* are written as character references so its code keeps its indentation.
|
|
241
|
+
*/
|
|
242
|
+
function htmlBlock(element) {
|
|
243
|
+
layOut(element);
|
|
244
|
+
return element.outerHTML
|
|
245
|
+
.split('\n')
|
|
246
|
+
.map((line) => line.trim())
|
|
247
|
+
.filter((line) => line !== '')
|
|
248
|
+
.join('\n')
|
|
249
|
+
.replaceAll(PRE_NEWLINE, ' ');
|
|
250
|
+
}
|
|
251
|
+
function layOut(node) {
|
|
252
|
+
if (node.nodeName === 'PRE') {
|
|
253
|
+
protectNewlines(node);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
const children = Array.from(node.childNodes);
|
|
257
|
+
const document = node.ownerDocument;
|
|
258
|
+
if (document !== null && CONTAINERS.includes(node.nodeName)) {
|
|
259
|
+
for (const child of children) {
|
|
260
|
+
if (child.nodeType === 1)
|
|
261
|
+
node.insertBefore(document.createTextNode('\n'), child);
|
|
262
|
+
}
|
|
263
|
+
node.appendChild(document.createTextNode('\n'));
|
|
264
|
+
}
|
|
265
|
+
for (const child of children)
|
|
266
|
+
layOut(child);
|
|
267
|
+
}
|
|
268
|
+
function protectNewlines(node) {
|
|
269
|
+
if (node.nodeType === 3)
|
|
270
|
+
node.nodeValue = (node.nodeValue ?? '').replaceAll('\n', PRE_NEWLINE);
|
|
271
|
+
for (const child of Array.from(node.childNodes))
|
|
272
|
+
protectNewlines(child);
|
|
273
|
+
}
|
|
274
|
+
const turndown = new TurndownService({
|
|
275
|
+
headingStyle: 'atx',
|
|
276
|
+
codeBlockStyle: 'fenced',
|
|
277
|
+
bulletListMarker: '-',
|
|
278
|
+
emDelimiter: '_',
|
|
279
|
+
});
|
|
280
|
+
const URL_IN_TEXT = /(https?:\/\/[^\s<>"]+)/;
|
|
281
|
+
// Turndown leaves `<` and `&` alone, so text that read `<script>` in
|
|
282
|
+
// HTML would come out as a script tag in Markdown, which renders raw HTML.
|
|
283
|
+
turndown.escape = (text) => text
|
|
284
|
+
.split(URL_IN_TEXT)
|
|
285
|
+
.map((part, index) => index % 2 === 1
|
|
286
|
+
? part
|
|
287
|
+
: TurndownService.prototype.escape
|
|
288
|
+
.call(turndown, part)
|
|
289
|
+
.replaceAll('<', '\\<')
|
|
290
|
+
.replace(/&(?=#?[A-Za-z0-9]+;)/g, '\\&'))
|
|
291
|
+
.join('');
|
|
292
|
+
turndown.addRule('listItem', {
|
|
293
|
+
filter: 'li',
|
|
294
|
+
replacement(content, node, options) {
|
|
295
|
+
const list = node.parentNode;
|
|
296
|
+
let marker = `${options.bulletListMarker ?? '-'} `;
|
|
297
|
+
if (list?.nodeName === 'OL') {
|
|
298
|
+
const start = Number.parseInt(list.getAttribute('start') ?? '1', 10);
|
|
299
|
+
marker = `${String(start + Array.from(list.children).indexOf(node))}. `;
|
|
300
|
+
}
|
|
301
|
+
const indented = content
|
|
302
|
+
.replace(/^\n+/, '')
|
|
303
|
+
.replace(/\n+$/, '\n')
|
|
304
|
+
.replace(/\n/g, `\n${' '.repeat(marker.length)}`);
|
|
305
|
+
return marker + indented + (node.nextSibling !== null && !indented.endsWith('\n') ? '\n' : '');
|
|
306
|
+
},
|
|
307
|
+
});
|
|
308
|
+
turndown.addRule('strikethrough', {
|
|
309
|
+
filter: ['del', 's'],
|
|
310
|
+
replacement: (content) => `~~${content}~~`,
|
|
311
|
+
});
|
|
312
|
+
turndown.addRule('preformatted', {
|
|
313
|
+
filter: (node) => node.nodeName === 'PRE' && node.firstChild?.nodeName !== 'CODE',
|
|
314
|
+
replacement: (_content, node) => `\n\n\`\`\`\n${(node.textContent ?? '').replace(/\n$/, '')}\n\`\`\`\n\n`,
|
|
315
|
+
});
|
|
316
|
+
turndown.addRule('pipeTable', {
|
|
317
|
+
filter: (node) => node.nodeName === 'TABLE' && fitsPipeTable(node),
|
|
318
|
+
replacement: (content) => `\n\n${content.trim()}\n\n`,
|
|
319
|
+
});
|
|
320
|
+
turndown.addRule('pipeTableSection', {
|
|
321
|
+
filter: (node) => ['THEAD', 'TBODY', 'TFOOT'].includes(node.nodeName) && inSimpleTable(node),
|
|
322
|
+
replacement: (content) => content,
|
|
323
|
+
});
|
|
324
|
+
turndown.addRule('pipeTableRow', {
|
|
325
|
+
filter: (node) => node.nodeName === 'TR' && inSimpleTable(node),
|
|
326
|
+
replacement(content, node) {
|
|
327
|
+
const header = node.closest('table')?.querySelector('tr') === node;
|
|
328
|
+
const separator = header ? `\n${'| --- '.repeat(node.children.length)}|` : '';
|
|
329
|
+
return `${content}|${separator}\n`;
|
|
330
|
+
},
|
|
331
|
+
});
|
|
332
|
+
turndown.addRule('pipeTableCell', {
|
|
333
|
+
filter: (node) => ['TH', 'TD'].includes(node.nodeName) && inSimpleTable(node),
|
|
334
|
+
replacement: (content) => `| ${content
|
|
335
|
+
.trim()
|
|
336
|
+
.replace(/\s*\n\s*/g, ' ')
|
|
337
|
+
.replaceAll('|', '\\|')} `,
|
|
338
|
+
});
|
|
339
|
+
turndown.addRule('keptBlock', {
|
|
340
|
+
filter: keptAsBlock,
|
|
341
|
+
replacement: (_content, node) => `\n\n${htmlBlock(node)}\n\n`,
|
|
342
|
+
});
|
|
343
|
+
turndown.addRule('keptInline', {
|
|
344
|
+
filter: (node) => KEPT_INLINE.includes(node.nodeName) ||
|
|
345
|
+
(!BLOCK_ELEMENTS.includes(node.nodeName) && hasStyleOrMicroformats(node)),
|
|
346
|
+
replacement(content, node) {
|
|
347
|
+
const close = `</${node.nodeName.toLowerCase()}>`;
|
|
348
|
+
const shell = node.cloneNode(false);
|
|
349
|
+
return shell.outerHTML.slice(0, -close.length) + content + close;
|
|
350
|
+
},
|
|
351
|
+
});
|
|
352
|
+
turndown.addRule('video', {
|
|
353
|
+
filter: (node) => node.nodeName === 'IFRAME' && videoPageUrl(node.getAttribute('src') ?? '') !== undefined,
|
|
354
|
+
replacement: (_content, node) => `\n\n${videoPageUrl(node.getAttribute('src') ?? '') ?? ''}\n\n`,
|
|
355
|
+
});
|
|
356
|
+
turndown.addRule('editorBookmark', {
|
|
357
|
+
filter: (node) => node.nodeName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark',
|
|
358
|
+
replacement: () => '',
|
|
359
|
+
});
|
|
360
|
+
//# sourceMappingURL=wordpress-html.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordpress-html.js","sourceRoot":"","sources":["../src/wordpress-html.ts"],"names":[],"mappings":"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"}
|
package/dist/wxr.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export interface WordPressExport {
|
|
2
|
+
readonly site: WordPressSite;
|
|
3
|
+
readonly authors: readonly WordPressAuthor[];
|
|
4
|
+
/** Every item, in the export's order: posts, pages, attachments and whatever else the site stored as a post. */
|
|
5
|
+
readonly items: readonly WordPressItem[];
|
|
6
|
+
}
|
|
7
|
+
export interface WordPressSite {
|
|
8
|
+
readonly title: string;
|
|
9
|
+
readonly link: string;
|
|
10
|
+
readonly language: string;
|
|
11
|
+
readonly baseSiteUrl: string;
|
|
12
|
+
readonly baseBlogUrl: string;
|
|
13
|
+
}
|
|
14
|
+
export interface WordPressAuthor {
|
|
15
|
+
readonly id: number;
|
|
16
|
+
readonly login: string;
|
|
17
|
+
readonly email: string;
|
|
18
|
+
readonly displayName: string;
|
|
19
|
+
}
|
|
20
|
+
export interface WordPressTerm {
|
|
21
|
+
/** `category`, `post_tag`, `post_format` or a custom taxonomy. */
|
|
22
|
+
readonly taxonomy: string;
|
|
23
|
+
readonly slug: string;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
}
|
|
26
|
+
/** One meta row. A key may repeat, as `_wp_old_slug` does. */
|
|
27
|
+
export interface WordPressMeta {
|
|
28
|
+
readonly key: string;
|
|
29
|
+
readonly value: string;
|
|
30
|
+
}
|
|
31
|
+
export interface WordPressItem {
|
|
32
|
+
readonly id: number;
|
|
33
|
+
readonly type: string;
|
|
34
|
+
readonly status: string;
|
|
35
|
+
readonly title: string;
|
|
36
|
+
readonly link: string;
|
|
37
|
+
readonly guid: string;
|
|
38
|
+
/** `post_name`. */
|
|
39
|
+
readonly slug: string;
|
|
40
|
+
/** The author's login. */
|
|
41
|
+
readonly creator: string;
|
|
42
|
+
readonly content: string;
|
|
43
|
+
readonly excerpt: string;
|
|
44
|
+
/** `post_date` in the site's time zone, as WordPress wrote it. */
|
|
45
|
+
readonly date: string;
|
|
46
|
+
/** `post_date_gmt` as an ISO instant, or `undefined` for a draft that has none. */
|
|
47
|
+
readonly dateGmt: string | undefined;
|
|
48
|
+
readonly modifiedGmt: string | undefined;
|
|
49
|
+
readonly parent: number;
|
|
50
|
+
readonly menuOrder: number;
|
|
51
|
+
readonly password: string;
|
|
52
|
+
readonly sticky: boolean;
|
|
53
|
+
readonly attachmentUrl: string | undefined;
|
|
54
|
+
readonly terms: readonly WordPressTerm[];
|
|
55
|
+
readonly meta: readonly WordPressMeta[];
|
|
56
|
+
readonly comments: readonly WordPressComment[];
|
|
57
|
+
}
|
|
58
|
+
export interface WordPressComment {
|
|
59
|
+
readonly id: number;
|
|
60
|
+
readonly parent: number;
|
|
61
|
+
/** `comment`, `pingback`, `like` and so on; WordPress writes an empty type for a plain comment. */
|
|
62
|
+
readonly type: string;
|
|
63
|
+
/** `1`, `0`, `spam` or `trash`. */
|
|
64
|
+
readonly approved: string;
|
|
65
|
+
readonly author: string;
|
|
66
|
+
readonly authorEmail: string;
|
|
67
|
+
readonly authorUrl: string;
|
|
68
|
+
readonly authorIp: string;
|
|
69
|
+
readonly date: string;
|
|
70
|
+
readonly dateGmt: string | undefined;
|
|
71
|
+
readonly content: string;
|
|
72
|
+
readonly userId: number;
|
|
73
|
+
readonly meta: readonly WordPressMeta[];
|
|
74
|
+
}
|
|
75
|
+
export declare class NotAWordPressExportError extends Error {
|
|
76
|
+
readonly problems: readonly string[];
|
|
77
|
+
constructor(problems: readonly string[]);
|
|
78
|
+
}
|
|
79
|
+
export declare function parseWordPressExport(xml: string): WordPressExport;
|
|
80
|
+
//# sourceMappingURL=wxr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wxr.d.ts","sourceRoot":"","sources":["../src/wxr.ts"],"names":[],"mappings":"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"}
|