defuddle 0.8.0 → 0.10.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 +56 -49
- package/dist/constants.js +37 -15
- package/dist/constants.js.map +1 -1
- package/dist/defuddle.d.ts +34 -0
- package/dist/defuddle.js +371 -29
- package/dist/defuddle.js.map +1 -1
- package/dist/elements/code.js +28 -4
- package/dist/elements/code.js.map +1 -1
- package/dist/elements/footnotes.js +315 -17
- package/dist/elements/footnotes.js.map +1 -1
- package/dist/elements/images.js +6 -6
- package/dist/elements/images.js.map +1 -1
- package/dist/elements/math.base.js +11 -5
- package/dist/elements/math.base.js.map +1 -1
- package/dist/elements/math.core.js +9 -16
- package/dist/elements/math.core.js.map +1 -1
- package/dist/elements/math.js +0 -2
- package/dist/elements/math.js.map +1 -1
- package/dist/extractor-registry.d.ts +2 -0
- package/dist/extractor-registry.js +16 -4
- package/dist/extractor-registry.js.map +1 -1
- package/dist/extractors/_base.d.ts +2 -0
- package/dist/extractors/_base.js +6 -0
- package/dist/extractors/_base.js.map +1 -1
- package/dist/extractors/_conversation.js +2 -1
- package/dist/extractors/_conversation.js.map +1 -1
- package/dist/extractors/chatgpt.js +4 -3
- package/dist/extractors/chatgpt.js.map +1 -1
- package/dist/extractors/claude.js +3 -2
- package/dist/extractors/claude.js.map +1 -1
- package/dist/extractors/gemini.js +5 -4
- package/dist/extractors/gemini.js.map +1 -1
- package/dist/extractors/github.js +7 -6
- package/dist/extractors/github.js.map +1 -1
- package/dist/extractors/grok.js +2 -1
- package/dist/extractors/grok.js.map +1 -1
- package/dist/extractors/hackernews.js +5 -3
- package/dist/extractors/hackernews.js.map +1 -1
- package/dist/extractors/reddit.d.ts +7 -0
- package/dist/extractors/reddit.js +108 -4
- package/dist/extractors/reddit.js.map +1 -1
- package/dist/extractors/twitter.js +5 -3
- package/dist/extractors/twitter.js.map +1 -1
- package/dist/extractors/x-article.js +2 -1
- package/dist/extractors/x-article.js.map +1 -1
- package/dist/extractors/x-oembed.d.ts +21 -0
- package/dist/extractors/x-oembed.js +357 -0
- package/dist/extractors/x-oembed.js.map +1 -0
- package/dist/index.full.d.ts +3 -0
- package/dist/index.full.js +1 -1
- package/dist/index.js +1 -1
- package/dist/markdown.d.ts +2 -4
- package/dist/markdown.js +76 -20
- package/dist/markdown.js.map +1 -1
- package/dist/metadata.d.ts +1 -0
- package/dist/metadata.js +46 -21
- package/dist/metadata.js.map +1 -1
- package/dist/node.js +1 -1
- package/dist/node.js.map +1 -1
- package/dist/scoring.js +94 -22
- package/dist/scoring.js.map +1 -1
- package/dist/standardize.js +206 -38
- package/dist/standardize.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/utils/dom.d.ts +23 -0
- package/dist/utils/dom.js +62 -0
- package/dist/utils/dom.js.map +1 -0
- package/package.json +9 -9
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.standardizeFootnotes = standardizeFootnotes;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
|
+
const dom_1 = require("../utils/dom");
|
|
5
6
|
class FootnoteHandler {
|
|
6
7
|
constructor(doc) {
|
|
8
|
+
this.genericContainer = null;
|
|
7
9
|
this.doc = doc;
|
|
8
10
|
}
|
|
9
11
|
createFootnoteItem(footnoteNumber, content, refs) {
|
|
@@ -14,7 +16,7 @@ class FootnoteHandler {
|
|
|
14
16
|
// Handle content
|
|
15
17
|
if (typeof content === 'string') {
|
|
16
18
|
const paragraph = doc.createElement('p');
|
|
17
|
-
paragraph.
|
|
19
|
+
paragraph.appendChild((0, dom_1.parseHTML)(doc, content));
|
|
18
20
|
newItem.appendChild(paragraph);
|
|
19
21
|
}
|
|
20
22
|
else {
|
|
@@ -23,14 +25,16 @@ class FootnoteHandler {
|
|
|
23
25
|
if (paragraphs.length === 0) {
|
|
24
26
|
// If no paragraphs, wrap content in a paragraph
|
|
25
27
|
const paragraph = doc.createElement('p');
|
|
26
|
-
|
|
28
|
+
(0, dom_1.transferContent)(content, paragraph);
|
|
29
|
+
this.removeBackrefs(paragraph);
|
|
27
30
|
newItem.appendChild(paragraph);
|
|
28
31
|
}
|
|
29
32
|
else {
|
|
30
33
|
// Copy existing paragraphs
|
|
31
34
|
paragraphs.forEach((p) => {
|
|
32
35
|
const newP = doc.createElement('p');
|
|
33
|
-
|
|
36
|
+
(0, dom_1.transferContent)(p, newP);
|
|
37
|
+
this.removeBackrefs(newP);
|
|
34
38
|
newItem.appendChild(newP);
|
|
35
39
|
});
|
|
36
40
|
}
|
|
@@ -42,9 +46,9 @@ class FootnoteHandler {
|
|
|
42
46
|
backlink.href = `#${refId}`;
|
|
43
47
|
backlink.title = 'return to article';
|
|
44
48
|
backlink.className = 'footnote-backref';
|
|
45
|
-
backlink.
|
|
49
|
+
backlink.textContent = '↩';
|
|
46
50
|
if (index < refs.length - 1) {
|
|
47
|
-
backlink.
|
|
51
|
+
backlink.textContent += ' ';
|
|
48
52
|
}
|
|
49
53
|
lastParagraph.appendChild(backlink);
|
|
50
54
|
});
|
|
@@ -57,6 +61,38 @@ class FootnoteHandler {
|
|
|
57
61
|
// Collect all footnotes and their IDs from footnote lists
|
|
58
62
|
const footnoteLists = element.querySelectorAll(constants_1.FOOTNOTE_LIST_SELECTORS);
|
|
59
63
|
footnoteLists.forEach((list) => {
|
|
64
|
+
// Wikidot uses div.footnotes-footer containing div.footnote-footer children
|
|
65
|
+
if (list.matches('div.footnotes-footer')) {
|
|
66
|
+
const footnoteDivs = list.querySelectorAll('div.footnote-footer');
|
|
67
|
+
footnoteDivs.forEach((div) => {
|
|
68
|
+
const divId = div.id || '';
|
|
69
|
+
const match = divId.match(/^footnote-(\d+)$/);
|
|
70
|
+
if (match) {
|
|
71
|
+
const id = match[1];
|
|
72
|
+
if (!processedIds.has(id)) {
|
|
73
|
+
// Clone the div to avoid modifying the original DOM
|
|
74
|
+
const clone = div.cloneNode(true);
|
|
75
|
+
// Remove the back-link anchor
|
|
76
|
+
const backLink = clone.querySelector('a');
|
|
77
|
+
if (backLink)
|
|
78
|
+
backLink.remove();
|
|
79
|
+
// Get remaining text and strip leading ". "
|
|
80
|
+
let text = (0, dom_1.serializeHTML)(clone);
|
|
81
|
+
text = text.replace(/^\s*\.\s*/, '');
|
|
82
|
+
const contentDiv = element.ownerDocument.createElement('div');
|
|
83
|
+
contentDiv.appendChild((0, dom_1.parseHTML)(element.ownerDocument, text.trim()));
|
|
84
|
+
footnotes[footnoteCount] = {
|
|
85
|
+
content: contentDiv,
|
|
86
|
+
originalId: id,
|
|
87
|
+
refs: []
|
|
88
|
+
};
|
|
89
|
+
processedIds.add(id);
|
|
90
|
+
footnoteCount++;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
60
96
|
// Substack has individual footnote divs with no parent
|
|
61
97
|
if (list.matches('div.footnote[data-component-name="FootnoteToDOM"]')) {
|
|
62
98
|
const anchor = list.querySelector('a.footnote-number');
|
|
@@ -122,8 +158,116 @@ class FootnoteHandler {
|
|
|
122
158
|
}
|
|
123
159
|
});
|
|
124
160
|
});
|
|
161
|
+
// Generic fallback: if no footnotes found via selectors, try ID-based detection
|
|
162
|
+
if (footnoteCount === 1) {
|
|
163
|
+
// Step 1: Find all in-text anchors linking to fragment IDs with short numeric text
|
|
164
|
+
const candidateRefs = new Map(); // fragment -> [anchor elements]
|
|
165
|
+
const allAnchors = element.querySelectorAll('a[href*="#"]');
|
|
166
|
+
allAnchors.forEach((a) => {
|
|
167
|
+
const href = a.getAttribute('href') || '';
|
|
168
|
+
const fragment = href.split('#').pop()?.toLowerCase();
|
|
169
|
+
if (!fragment)
|
|
170
|
+
return;
|
|
171
|
+
const text = a.textContent?.trim() || '';
|
|
172
|
+
if (!/^\[?\(?\d{1,4}\)?\]?$/.test(text))
|
|
173
|
+
return;
|
|
174
|
+
// Must be inside a sup or span to look like a footnote ref
|
|
175
|
+
const parent = a.parentElement;
|
|
176
|
+
if (!parent)
|
|
177
|
+
return;
|
|
178
|
+
const parentTag = parent.tagName.toLowerCase();
|
|
179
|
+
if (parentTag !== 'sup' && parentTag !== 'span' && a.tagName.toLowerCase() !== 'a')
|
|
180
|
+
return;
|
|
181
|
+
if (!candidateRefs.has(fragment)) {
|
|
182
|
+
candidateRefs.set(fragment, []);
|
|
183
|
+
}
|
|
184
|
+
candidateRefs.get(fragment).push(a);
|
|
185
|
+
});
|
|
186
|
+
if (candidateRefs.size >= 2) {
|
|
187
|
+
// Step 2: Find a container where multiple children have IDs matching our fragments
|
|
188
|
+
const fragmentSet = new Set(candidateRefs.keys());
|
|
189
|
+
const containers = element.querySelectorAll('div, section, aside, footer');
|
|
190
|
+
let bestContainer = null;
|
|
191
|
+
let bestMatchCount = 0;
|
|
192
|
+
containers.forEach((container) => {
|
|
193
|
+
// Skip containers that are the main content element itself
|
|
194
|
+
if (container === element)
|
|
195
|
+
return;
|
|
196
|
+
const children = container.querySelectorAll('p[id], li[id], div[id]');
|
|
197
|
+
let matchCount = 0;
|
|
198
|
+
children.forEach((child) => {
|
|
199
|
+
if (fragmentSet.has(child.id.toLowerCase())) {
|
|
200
|
+
matchCount++;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
if (matchCount >= 2 && matchCount >= bestMatchCount) {
|
|
204
|
+
bestMatchCount = matchCount;
|
|
205
|
+
bestContainer = container;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
if (bestContainer) {
|
|
209
|
+
// Step 3: Extract footnotes from the container
|
|
210
|
+
const idElements = bestContainer.querySelectorAll('p[id], li[id], div[id]');
|
|
211
|
+
const orderedElements = [];
|
|
212
|
+
idElements.forEach((el) => {
|
|
213
|
+
if (fragmentSet.has(el.id.toLowerCase())) {
|
|
214
|
+
orderedElements.push(el);
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
// Step 4: Handle multi-paragraph footnotes (group consecutive non-ID elements)
|
|
218
|
+
orderedElements.forEach((el) => {
|
|
219
|
+
const id = el.id.toLowerCase();
|
|
220
|
+
if (processedIds.has(id))
|
|
221
|
+
return;
|
|
222
|
+
const contentDiv = element.ownerDocument.createElement('div');
|
|
223
|
+
// Clone the element content
|
|
224
|
+
const clone = el.cloneNode(true);
|
|
225
|
+
// Strip leading footnote number (e.g. "1. " or "1 ")
|
|
226
|
+
const firstText = clone.childNodes[0];
|
|
227
|
+
if (firstText && firstText.nodeType === 3) {
|
|
228
|
+
firstText.textContent = firstText.textContent.replace(/^\d+\.\s*/, '');
|
|
229
|
+
}
|
|
230
|
+
contentDiv.appendChild(clone);
|
|
231
|
+
// Check for consecutive siblings without IDs (multi-paragraph footnotes)
|
|
232
|
+
let sibling = el.nextElementSibling;
|
|
233
|
+
while (sibling && !sibling.id) {
|
|
234
|
+
const sibClone = sibling.cloneNode(true);
|
|
235
|
+
contentDiv.appendChild(sibClone);
|
|
236
|
+
sibling = sibling.nextElementSibling;
|
|
237
|
+
}
|
|
238
|
+
footnotes[footnoteCount] = {
|
|
239
|
+
content: contentDiv,
|
|
240
|
+
originalId: id,
|
|
241
|
+
refs: []
|
|
242
|
+
};
|
|
243
|
+
processedIds.add(id);
|
|
244
|
+
footnoteCount++;
|
|
245
|
+
});
|
|
246
|
+
// Step 5: Store container for later removal
|
|
247
|
+
this.genericContainer = bestContainer;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
125
251
|
return footnotes;
|
|
126
252
|
}
|
|
253
|
+
removeBackrefs(el) {
|
|
254
|
+
el.querySelectorAll('a').forEach((a) => {
|
|
255
|
+
if (a.textContent?.trim() === '↩' || a.classList?.contains('footnote-backref')) {
|
|
256
|
+
a.remove();
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
// Clean up trailing text nodes that are only whitespace/punctuation
|
|
260
|
+
// (remnants from around removed backref links, e.g. " ." or " , .")
|
|
261
|
+
while (el.lastChild && el.lastChild.nodeType === 3) {
|
|
262
|
+
const text = el.lastChild.textContent;
|
|
263
|
+
if (/^[\s,.;]*$/.test(text)) {
|
|
264
|
+
el.lastChild.remove();
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
127
271
|
findOuterFootnoteContainer(el) {
|
|
128
272
|
let current = el;
|
|
129
273
|
let parent = el.parentElement;
|
|
@@ -146,20 +290,65 @@ class FootnoteHandler {
|
|
|
146
290
|
sup.appendChild(link);
|
|
147
291
|
return sup;
|
|
148
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Handle CSS sidenote footnotes where content is embedded inline in the text.
|
|
295
|
+
* Pattern: <span class="footnote-container">
|
|
296
|
+
* <label class="footnote-number"></label>
|
|
297
|
+
* <input class="margin-toggle">
|
|
298
|
+
* <span class="footnote">Content...</span>
|
|
299
|
+
* </span>
|
|
300
|
+
*/
|
|
301
|
+
collectInlineSidenotes(element) {
|
|
302
|
+
const footnotes = {};
|
|
303
|
+
const containers = element.querySelectorAll('span.footnote-container, span.sidenote-container');
|
|
304
|
+
if (containers.length === 0)
|
|
305
|
+
return footnotes;
|
|
306
|
+
let footnoteCount = 1;
|
|
307
|
+
containers.forEach((container) => {
|
|
308
|
+
const content = container.querySelector('span.footnote, span.sidenote');
|
|
309
|
+
if (!content)
|
|
310
|
+
return;
|
|
311
|
+
// Clone content so we can manipulate it without affecting the DOM
|
|
312
|
+
const contentClone = content.cloneNode(true);
|
|
313
|
+
footnotes[footnoteCount] = {
|
|
314
|
+
content: contentClone,
|
|
315
|
+
originalId: String(footnoteCount),
|
|
316
|
+
refs: [`fnref:${footnoteCount}`]
|
|
317
|
+
};
|
|
318
|
+
// Replace the container with a standard footnote reference
|
|
319
|
+
const ref = this.createFootnoteReference(String(footnoteCount), `fnref:${footnoteCount}`);
|
|
320
|
+
container.replaceWith(ref);
|
|
321
|
+
footnoteCount++;
|
|
322
|
+
});
|
|
323
|
+
return footnotes;
|
|
324
|
+
}
|
|
149
325
|
standardizeFootnotes(element) {
|
|
326
|
+
// Handle CSS sidenote footnotes first
|
|
327
|
+
const sidenotes = this.collectInlineSidenotes(element);
|
|
150
328
|
const footnotes = this.collectFootnotes(element);
|
|
151
329
|
// Standardize inline footnotes using the collected IDs
|
|
152
330
|
const footnoteInlineReferences = element.querySelectorAll(constants_1.FOOTNOTE_INLINE_REFERENCES);
|
|
153
331
|
// Group references by their parent sup element
|
|
154
332
|
const supGroups = new Map();
|
|
155
333
|
footnoteInlineReferences.forEach((el) => {
|
|
156
|
-
if (!el || !el.
|
|
334
|
+
if (!el || !el.parentNode)
|
|
157
335
|
return;
|
|
158
336
|
let footnoteId = '';
|
|
159
337
|
let footnoteContent = '';
|
|
160
338
|
// Extract footnote ID based on element type
|
|
161
|
-
//
|
|
162
|
-
if (el.matches('
|
|
339
|
+
// Wikidot: <sup class="footnoteref"><a id="footnoteref-N" href="javascript:;">N</a></sup>
|
|
340
|
+
if (el.matches('sup.footnoteref')) {
|
|
341
|
+
const link = el.querySelector('a[id^="footnoteref-"]');
|
|
342
|
+
if (link) {
|
|
343
|
+
const linkId = link.id || '';
|
|
344
|
+
const match = linkId.match(/^footnoteref-(\d+)$/);
|
|
345
|
+
if (match) {
|
|
346
|
+
footnoteId = match[1];
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// Nature.com
|
|
350
|
+
}
|
|
351
|
+
else if (el.matches('a[id^="ref-link"]')) {
|
|
163
352
|
footnoteId = el.textContent?.trim() || '';
|
|
164
353
|
// Science.org
|
|
165
354
|
}
|
|
@@ -181,17 +370,43 @@ class FootnoteHandler {
|
|
|
181
370
|
if (id) {
|
|
182
371
|
footnoteId = id.toLowerCase();
|
|
183
372
|
}
|
|
184
|
-
// Arxiv
|
|
373
|
+
// Arxiv — handle multi-citation groups (e.g. [35, 2, 5])
|
|
185
374
|
}
|
|
186
375
|
else if (el.matches('cite.ltx_cite')) {
|
|
187
|
-
const
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
|
|
376
|
+
const links = Array.from(el.querySelectorAll('a'));
|
|
377
|
+
if (links.length > 0) {
|
|
378
|
+
// Process all links in the citation group
|
|
379
|
+
const refs = [];
|
|
380
|
+
links.forEach((link) => {
|
|
381
|
+
const href = link.getAttribute('href');
|
|
382
|
+
if (!href)
|
|
383
|
+
return;
|
|
191
384
|
const match = href.split('/').pop()?.match(/bib\.bib(\d+)/);
|
|
192
|
-
if (match)
|
|
193
|
-
|
|
194
|
-
|
|
385
|
+
if (!match)
|
|
386
|
+
return;
|
|
387
|
+
const citationId = match[1].toLowerCase();
|
|
388
|
+
const entry = Object.entries(footnotes).find(([_, data]) => data.originalId === citationId);
|
|
389
|
+
if (!entry)
|
|
390
|
+
return;
|
|
391
|
+
const [fnNum, fnData] = entry;
|
|
392
|
+
const refId = fnData.refs.length > 0
|
|
393
|
+
? `fnref:${fnNum}-${fnData.refs.length + 1}`
|
|
394
|
+
: `fnref:${fnNum}`;
|
|
395
|
+
fnData.refs.push(refId);
|
|
396
|
+
refs.push(this.createFootnoteReference(fnNum, refId));
|
|
397
|
+
});
|
|
398
|
+
if (refs.length > 0) {
|
|
399
|
+
const container = this.findOuterFootnoteContainer(el);
|
|
400
|
+
const fragment = el.ownerDocument.createDocumentFragment();
|
|
401
|
+
refs.forEach((ref, i) => {
|
|
402
|
+
if (i > 0) {
|
|
403
|
+
fragment.appendChild(el.ownerDocument.createTextNode(' '));
|
|
404
|
+
}
|
|
405
|
+
fragment.appendChild(ref);
|
|
406
|
+
});
|
|
407
|
+
container.replaceWith(fragment);
|
|
408
|
+
// Skip the default single-footnote handling below
|
|
409
|
+
return;
|
|
195
410
|
}
|
|
196
411
|
}
|
|
197
412
|
}
|
|
@@ -266,6 +481,83 @@ class FootnoteHandler {
|
|
|
266
481
|
}
|
|
267
482
|
}
|
|
268
483
|
});
|
|
484
|
+
// Fallback: match remaining unmatched footnotes
|
|
485
|
+
const unmatchedFootnotes = Object.entries(footnotes).filter(([_, data]) => data.refs.length === 0);
|
|
486
|
+
if (unmatchedFootnotes.length > 0) {
|
|
487
|
+
// Build lookup maps
|
|
488
|
+
const footnoteIdMap = new Map();
|
|
489
|
+
const footnoteNumMap = new Map();
|
|
490
|
+
unmatchedFootnotes.forEach(([num, data]) => {
|
|
491
|
+
footnoteIdMap.set(data.originalId, [num, data]);
|
|
492
|
+
footnoteNumMap.set(num, [num, data]);
|
|
493
|
+
});
|
|
494
|
+
// Pass 1: Match by fragment link (e.g. <a href="#mn37note01">1</a>)
|
|
495
|
+
const allLinks = element.querySelectorAll('a[href*="#"]');
|
|
496
|
+
allLinks.forEach((link) => {
|
|
497
|
+
if (!link.parentNode)
|
|
498
|
+
return;
|
|
499
|
+
// Skip if already inside a standardized footnote ref
|
|
500
|
+
const closestFnref = link.closest('[id^="fnref:"]');
|
|
501
|
+
if (closestFnref)
|
|
502
|
+
return;
|
|
503
|
+
// Skip if inside the footnotes section itself
|
|
504
|
+
const closestFootnotes = link.closest('#footnotes');
|
|
505
|
+
if (closestFootnotes)
|
|
506
|
+
return;
|
|
507
|
+
// Skip if inside the generic container (footnote definitions)
|
|
508
|
+
if (this.genericContainer && this.genericContainer.contains(link))
|
|
509
|
+
return;
|
|
510
|
+
const href = link.getAttribute('href') || '';
|
|
511
|
+
const fragment = href.split('#').pop()?.toLowerCase();
|
|
512
|
+
if (!fragment)
|
|
513
|
+
return;
|
|
514
|
+
const entry = footnoteIdMap.get(fragment);
|
|
515
|
+
if (!entry)
|
|
516
|
+
return;
|
|
517
|
+
// Validate it looks like a footnote marker
|
|
518
|
+
const text = link.textContent?.trim() || '';
|
|
519
|
+
if (!/^[\[\(]?\d{1,4}[\]\)]?$/.test(text))
|
|
520
|
+
return;
|
|
521
|
+
const [footnoteNumber, footnoteData] = entry;
|
|
522
|
+
const refId = footnoteData.refs.length > 0
|
|
523
|
+
? `fnref:${footnoteNumber}-${footnoteData.refs.length + 1}`
|
|
524
|
+
: `fnref:${footnoteNumber}`;
|
|
525
|
+
footnoteData.refs.push(refId);
|
|
526
|
+
const container = this.findOuterFootnoteContainer(link);
|
|
527
|
+
container.replaceWith(this.createFootnoteReference(footnoteNumber, refId));
|
|
528
|
+
});
|
|
529
|
+
// Pass 2: Match sup/span elements with numeric text (e.g. <sup class="footnote-ref">1</sup>)
|
|
530
|
+
const stillUnmatched = Object.entries(footnotes).filter(([_, data]) => data.refs.length === 0);
|
|
531
|
+
if (stillUnmatched.length > 0) {
|
|
532
|
+
const supElements = element.querySelectorAll('sup, span.footnote-ref');
|
|
533
|
+
supElements.forEach((el) => {
|
|
534
|
+
if (!el.parentNode)
|
|
535
|
+
return;
|
|
536
|
+
// Skip if already standardized
|
|
537
|
+
if (el.id?.startsWith('fnref:'))
|
|
538
|
+
return;
|
|
539
|
+
// Skip if inside the footnotes section
|
|
540
|
+
if (el.closest('#footnotes'))
|
|
541
|
+
return;
|
|
542
|
+
const text = el.textContent?.trim() || '';
|
|
543
|
+
const match = text.match(/^[\[\(]?(\d{1,4})[\]\)]?$/);
|
|
544
|
+
if (!match)
|
|
545
|
+
return;
|
|
546
|
+
const num = match[1];
|
|
547
|
+
// Match against footnote number or originalId
|
|
548
|
+
const entry = footnoteNumMap.get(num) || footnoteIdMap.get(num);
|
|
549
|
+
if (!entry)
|
|
550
|
+
return;
|
|
551
|
+
const [footnoteNumber, footnoteData] = entry;
|
|
552
|
+
if (footnoteData.refs.length > 0)
|
|
553
|
+
return; // Already matched
|
|
554
|
+
const refId = `fnref:${footnoteNumber}`;
|
|
555
|
+
footnoteData.refs.push(refId);
|
|
556
|
+
const container = this.findOuterFootnoteContainer(el);
|
|
557
|
+
container.replaceWith(this.createFootnoteReference(footnoteNumber, refId));
|
|
558
|
+
});
|
|
559
|
+
}
|
|
560
|
+
}
|
|
269
561
|
// Handle grouped references
|
|
270
562
|
supGroups.forEach((references, container) => {
|
|
271
563
|
if (references.length > 0) {
|
|
@@ -288,14 +580,20 @@ class FootnoteHandler {
|
|
|
288
580
|
const newList = this.doc.createElement('div');
|
|
289
581
|
newList.id = 'footnotes';
|
|
290
582
|
const orderedList = this.doc.createElement('ol');
|
|
583
|
+
// Merge sidenotes and regular footnotes
|
|
584
|
+
const allFootnotes = { ...sidenotes, ...footnotes };
|
|
291
585
|
// Create footnote items in order
|
|
292
|
-
Object.entries(
|
|
586
|
+
Object.entries(allFootnotes).forEach(([number, data]) => {
|
|
293
587
|
const newItem = this.createFootnoteItem(parseInt(number), data.content, data.refs);
|
|
294
588
|
orderedList.appendChild(newItem);
|
|
295
589
|
});
|
|
296
590
|
// Remove original footnote lists
|
|
297
591
|
const footnoteLists = element.querySelectorAll(constants_1.FOOTNOTE_LIST_SELECTORS);
|
|
298
592
|
footnoteLists.forEach((list) => list.remove());
|
|
593
|
+
// Remove generically-detected footnote container
|
|
594
|
+
if (this.genericContainer && this.genericContainer.parentNode) {
|
|
595
|
+
this.genericContainer.remove();
|
|
596
|
+
}
|
|
299
597
|
// If we have any footnotes, add the new list to the document
|
|
300
598
|
if (orderedList.children.length > 0) {
|
|
301
599
|
newList.appendChild(orderedList);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footnotes.js","sourceRoot":"","sources":["../../src/elements/footnotes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"footnotes.js","sourceRoot":"","sources":["../../src/elements/footnotes.ts"],"names":[],"mappings":"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"}
|
package/dist/elements/images.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.imageRules = void 0;
|
|
7
7
|
const utils_1 = require("../utils");
|
|
8
|
+
const dom_1 = require("../utils/dom");
|
|
8
9
|
// Pre-compile regular expressions
|
|
9
10
|
const b64DataUrlRegex = /^data:image\/([^;]+);base64,/;
|
|
10
11
|
const srcsetPattern = /\.(jpg|jpeg|png|webp)\s+\d/;
|
|
@@ -31,8 +32,7 @@ exports.imageRules = [
|
|
|
31
32
|
if (srcset) {
|
|
32
33
|
const newImg = doc.createElement('img');
|
|
33
34
|
applySrcsetToImage(srcset, newImg);
|
|
34
|
-
el.
|
|
35
|
-
el.appendChild(newImg);
|
|
35
|
+
el.replaceChildren(newImg);
|
|
36
36
|
return el;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -120,7 +120,7 @@ exports.imageRules = [
|
|
|
120
120
|
// Try to get cleaner text from specific inner element if possible
|
|
121
121
|
const richTextP = figcaptionEl.querySelector('.rich-text p');
|
|
122
122
|
if (richTextP) {
|
|
123
|
-
|
|
123
|
+
(0, dom_1.transferContent)(richTextP, figcaption);
|
|
124
124
|
}
|
|
125
125
|
else {
|
|
126
126
|
figcaption.textContent = captionText;
|
|
@@ -279,7 +279,7 @@ function createFigureWithCaption(imageElement, captionElement, doc) {
|
|
|
279
279
|
// Add caption
|
|
280
280
|
const figcaption = doc.createElement('figcaption');
|
|
281
281
|
const uniqueCaptionContent = extractUniqueCaptionContent(captionElement);
|
|
282
|
-
figcaption.
|
|
282
|
+
figcaption.appendChild((0, dom_1.parseHTML)(doc, uniqueCaptionContent));
|
|
283
283
|
figure.appendChild(figcaption);
|
|
284
284
|
return figure;
|
|
285
285
|
}
|
|
@@ -604,8 +604,8 @@ function extractUniqueCaptionContent(caption) {
|
|
|
604
604
|
if (textNodes.length > 0) {
|
|
605
605
|
return textNodes.join(' ');
|
|
606
606
|
}
|
|
607
|
-
// Otherwise, just use the
|
|
608
|
-
const html = caption
|
|
607
|
+
// Otherwise, just use the inner HTML but try to clean it up
|
|
608
|
+
const html = (0, dom_1.serializeHTML)(caption);
|
|
609
609
|
return html;
|
|
610
610
|
}
|
|
611
611
|
/**
|