defuddle 0.7.0 → 0.9.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 +58 -13
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +139 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.js +26 -10
- package/dist/constants.js.map +1 -1
- package/dist/defuddle.d.ts +34 -0
- package/dist/defuddle.js +384 -26
- 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 +242 -3
- package/dist/elements/footnotes.js.map +1 -1
- package/dist/elements/images.js +35 -22
- package/dist/elements/images.js.map +1 -1
- package/dist/elements/math.base.js +8 -3
- package/dist/elements/math.base.js.map +1 -1
- package/dist/elements/math.core.js +1 -9
- 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/chatgpt.d.ts +1 -0
- package/dist/extractors/chatgpt.js +5 -1
- package/dist/extractors/chatgpt.js.map +1 -1
- package/dist/extractors/gemini.js +1 -1
- package/dist/extractors/gemini.js.map +1 -1
- package/dist/extractors/github.js +4 -4
- package/dist/extractors/github.js.map +1 -1
- package/dist/extractors/reddit.d.ts +7 -0
- package/dist/extractors/reddit.js +101 -2
- package/dist/extractors/reddit.js.map +1 -1
- package/dist/extractors/twitter.js +5 -7
- package/dist/extractors/twitter.js.map +1 -1
- package/dist/extractors/x-article.d.ts +1 -0
- package/dist/extractors/x-article.js +7 -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 +356 -0
- package/dist/extractors/x-oembed.js.map +1 -0
- package/dist/index.full.d.ts +1 -0
- package/dist/index.full.js +1 -1
- package/dist/index.js +1 -1
- package/dist/markdown.js +68 -16
- package/dist/markdown.js.map +1 -1
- package/dist/metadata.d.ts +3 -0
- package/dist/metadata.js +82 -20
- package/dist/metadata.js.map +1 -1
- package/dist/node.js +1 -1
- package/dist/node.js.map +1 -1
- package/dist/scoring.js +71 -6
- package/dist/scoring.js.map +1 -1
- package/dist/standardize.js +83 -18
- package/dist/standardize.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/package.json +22 -10
package/dist/elements/code.js
CHANGED
|
@@ -144,7 +144,7 @@ exports.codeBlockRules = [
|
|
|
144
144
|
return el;
|
|
145
145
|
const getCodeLanguage = (element) => {
|
|
146
146
|
// Check data-lang attribute first
|
|
147
|
-
const dataLang = element.getAttribute('data-lang') || element.getAttribute('data-language');
|
|
147
|
+
const dataLang = element.getAttribute('data-lang') || element.getAttribute('data-language') || element.getAttribute('language');
|
|
148
148
|
if (dataLang) {
|
|
149
149
|
return dataLang.toLowerCase();
|
|
150
150
|
}
|
|
@@ -223,10 +223,10 @@ exports.codeBlockRules = [
|
|
|
223
223
|
// Recursively extract text content while preserving structure
|
|
224
224
|
const extractStructuredText = (element) => {
|
|
225
225
|
if ((0, utils_1.isTextNode)(element)) {
|
|
226
|
-
// Skip whitespace-only text nodes between
|
|
227
|
-
// (e.g. rehype-pretty-code / Shiki), since
|
|
226
|
+
// Skip whitespace-only text nodes between line spans
|
|
227
|
+
// (e.g. rehype-pretty-code / Shiki), since line handling
|
|
228
228
|
// already appends a newline per line.
|
|
229
|
-
if (element.parentElement?.querySelector('[data-line]') &&
|
|
229
|
+
if (element.parentElement?.querySelector('[data-line], .line') &&
|
|
230
230
|
!(element.textContent || '').trim()) {
|
|
231
231
|
return '';
|
|
232
232
|
}
|
|
@@ -283,6 +283,30 @@ exports.codeBlockRules = [
|
|
|
283
283
|
.replace(/\u00a0/g, ' ') // Replace non-breaking spaces
|
|
284
284
|
.replace(/^\n+/, '') // Remove extra newlines at start
|
|
285
285
|
.replace(/\n+$/, ''); // Remove extra newlines at end
|
|
286
|
+
// Remove code block header/toolbar siblings (e.g. filename labels, copy buttons)
|
|
287
|
+
// before replacing, so they don't leak into content when wrappers are flattened.
|
|
288
|
+
// Only remove non-semantic divs/spans, not headings, paragraphs, etc.
|
|
289
|
+
// Check a few levels up since pre may be nested inside wrapper divs.
|
|
290
|
+
let ancestor = el;
|
|
291
|
+
for (let i = 0; i < 3 && ancestor; i++) {
|
|
292
|
+
const container = ancestor.parentElement;
|
|
293
|
+
if (!container || container.tagName === 'BODY')
|
|
294
|
+
break;
|
|
295
|
+
const siblings = Array.from(container.children);
|
|
296
|
+
for (const sib of siblings) {
|
|
297
|
+
if (sib.contains(el))
|
|
298
|
+
continue;
|
|
299
|
+
const sibTag = sib.tagName;
|
|
300
|
+
if (sibTag !== 'DIV' && sibTag !== 'SPAN')
|
|
301
|
+
continue;
|
|
302
|
+
const sibText = (sib.textContent || '').trim();
|
|
303
|
+
const sibWords = sibText.split(/\s+/).length;
|
|
304
|
+
if (sibWords <= 5 && !sib.querySelector('pre, code, img, table, h1, h2, h3, h4, h5, h6, p, blockquote, ul, ol')) {
|
|
305
|
+
sib.remove();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
ancestor = container;
|
|
309
|
+
}
|
|
286
310
|
// Create new pre element
|
|
287
311
|
const newPre = doc.createElement('pre');
|
|
288
312
|
// Create code element
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/elements/code.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAEjD,oBAAoB;AACpB,MAAM,oBAAoB,GAAG;IAC5B,kBAAkB,EAAW,sBAAsB;IACnD,cAAc,EAAe,kBAAkB;IAC/C,cAAc,EAAe,kBAAkB;IAC/C,cAAc,EAAe,kBAAkB;IAC/C,gBAAgB,EAAa,oBAAoB;IACjD,uBAAuB,EAAM,2BAA2B;IACxD,mBAAmB,EAAU,uBAAuB;IACpD,iBAAiB,EAAY,qBAAqB;IAElD,WAAW;IACX,uDAAuD;CACvD,CAAC;AAEF,qCAAqC;AACrC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM;IACN,cAAc;IACd,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,aAAa;IACb,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,GAAG;IACH,SAAS;IACT,OAAO;IACP,OAAO;IACP,cAAc;IACd,KAAK,EAAE,KAAK;IACZ,SAAS;IACT,QAAQ,EAAE,IAAI;IACd,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS,EAAE,IAAI;IACf,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,YAAY,EAAE,IAAI,EAAE,KAAK;IACzB,OAAO;IACP,MAAM,EAAE,OAAO;IACf,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM,EAAE,OAAO;IACf,YAAY;IACZ,KAAK;IACL,UAAU;IACV,UAAU,EAAE,IAAI;IAChB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM,EAAE,IAAI;IACZ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO,EAAE,IAAI;IACb,UAAU;IACV,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,WAAW;IACX,KAAK;IACL,MAAM;IACN,YAAY,EAAE,IAAI,EAAE,KAAK;IACzB,cAAc;IACd,SAAS;IACT,MAAM;IACN,aAAa,EAAE,MAAM;IACrB,KAAK;IACL,MAAM,EAAE,KAAK;IACb,KAAK;CACL,CAAC,CAAC;AAEH,0EAA0E;AAC1E,mEAAmE;AACtD,QAAA,cAAc,GAAG;IAC7B;QACC,QAAQ,EAAE;YACT,oBAAoB;YACpB,KAAK;YAEL,uCAAuC;YACvC,uBAAuB;YACvB,oBAAoB;YACpB,YAAY;YACZ,mBAAmB;YACnB,kCAAkC;YAClC,gBAAgB;YAChB,yBAAyB;SACzB,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,CAAC,EAAW,EAAE,GAAa,EAAW,EAAE;YAClD,iEAAiE;YACjE,MAAM,mBAAmB,GAAG,CAAC,EAAW,EAAW,EAAE;gBACpD,OAAO,WAAW,IAAI,EAAE,IAAI,cAAc,IAAI,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;YAC3E,CAAC,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;YAExC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAU,EAAE;gBACpD,kCAAkC;gBAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"code.js","sourceRoot":"","sources":["../../src/elements/code.ts"],"names":[],"mappings":";;;AAAA,oCAAiD;AAEjD,oBAAoB;AACpB,MAAM,oBAAoB,GAAG;IAC5B,kBAAkB,EAAW,sBAAsB;IACnD,cAAc,EAAe,kBAAkB;IAC/C,cAAc,EAAe,kBAAkB;IAC/C,cAAc,EAAe,kBAAkB;IAC/C,gBAAgB,EAAa,oBAAoB;IACjD,uBAAuB,EAAM,2BAA2B;IACxD,mBAAmB,EAAU,uBAAuB;IACpD,iBAAiB,EAAY,qBAAqB;IAElD,WAAW;IACX,uDAAuD;CACvD,CAAC;AAEF,qCAAqC;AACrC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM;IACN,cAAc;IACd,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,aAAa;IACb,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,GAAG;IACH,SAAS;IACT,OAAO;IACP,OAAO;IACP,cAAc;IACd,KAAK,EAAE,KAAK;IACZ,SAAS;IACT,QAAQ,EAAE,IAAI;IACd,MAAM;IACN,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS,EAAE,IAAI;IACf,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,YAAY,EAAE,IAAI,EAAE,KAAK;IACzB,OAAO;IACP,MAAM,EAAE,OAAO;IACf,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM,EAAE,OAAO;IACf,YAAY;IACZ,KAAK;IACL,UAAU;IACV,UAAU,EAAE,IAAI;IAChB,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM,EAAE,IAAI;IACZ,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO,EAAE,IAAI;IACb,UAAU;IACV,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,WAAW;IACX,KAAK;IACL,MAAM;IACN,YAAY,EAAE,IAAI,EAAE,KAAK;IACzB,cAAc;IACd,SAAS;IACT,MAAM;IACN,aAAa,EAAE,MAAM;IACrB,KAAK;IACL,MAAM,EAAE,KAAK;IACb,KAAK;CACL,CAAC,CAAC;AAEH,0EAA0E;AAC1E,mEAAmE;AACtD,QAAA,cAAc,GAAG;IAC7B;QACC,QAAQ,EAAE;YACT,oBAAoB;YACpB,KAAK;YAEL,uCAAuC;YACvC,uBAAuB;YACvB,oBAAoB;YACpB,YAAY;YACZ,mBAAmB;YACnB,kCAAkC;YAClC,gBAAgB;YAChB,yBAAyB;SACzB,CAAC,IAAI,CAAC,IAAI,CAAC;QACZ,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,CAAC,EAAW,EAAE,GAAa,EAAW,EAAE;YAClD,iEAAiE;YACjE,MAAM,mBAAmB,GAAG,CAAC,EAAW,EAAW,EAAE;gBACpD,OAAO,WAAW,IAAI,EAAE,IAAI,cAAc,IAAI,EAAE,IAAI,eAAe,IAAI,EAAE,CAAC;YAC3E,CAAC,CAAC;YAEF,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAAE,OAAO,EAAE,CAAC;YAExC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAU,EAAE;gBACpD,kCAAkC;gBAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAChI,IAAI,QAAQ,EAAE,CAAC;oBACd,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC/B,CAAC;gBAED,yDAAyD;gBACzD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;gBAEvD,+CAA+C;gBAC/C,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBACtD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvF,IAAI,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC9D,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;oBAChC,CAAC;gBACF,CAAC;gBAED,iBAAiB;gBACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACpC,KAAK,MAAM,OAAO,IAAI,oBAAoB,EAAE,CAAC;wBAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACrD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;4BACrE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;wBAC/B,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,mDAAmD;gBACnD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACpC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBACjD,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;oBAChC,CAAC;gBACF,CAAC;gBAED,OAAO,EAAE,CAAC;YACX,CAAC,CAAC;YAEF,6DAA6D;YAC7D,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,cAAc,GAAmB,EAAE,CAAC;YAExC,OAAO,cAAc,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;gBAE3C,0DAA0D;gBAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACzB,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACpC,CAAC;gBAED,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC;YAC/C,CAAC;YAED,oDAAoD;YACpD,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAU,EAAE;gBAC5D,mDAAmD;gBACnD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,2CAA2C,CAAC,CAAC;gBACzF,IAAI,aAAa,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;yBACvC,GAAG,CAAC,IAAI,CAAC,EAAE;wBACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;6BACzD,GAAG,CAAC,IAAI,CAAC,EAAE;4BACX,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;4BAClC,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gCACxC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAChC,CAAC;4BACD,OAAO,IAAI,CAAC;wBACb,CAAC,CAAC;6BACD,IAAI,CAAC,EAAE,CAAC,CAAC;wBACX,OAAO,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;oBAC5C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC;gBAED,uDAAuD;gBACvD,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;yBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE;wBACX,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;6BACzD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;6BACnC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACX,OAAO,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;oBAC5C,CAAC,CAAC;yBACD,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC;gBAED,OAAO,EAAE,CAAC;YACX,CAAC,CAAC;YAEF,8DAA8D;YAC9D,MAAM,qBAAqB,GAAG,CAAC,OAAa,EAAU,EAAE;gBACvD,IAAI,IAAA,kBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,qDAAqD;oBACrD,yDAAyD;oBACzD,sCAAsC;oBACtC,IAAI,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,oBAAoB,CAAC;wBAC7D,CAAC,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wBACtC,OAAO,EAAE,CAAC;oBACX,CAAC;oBACD,OAAO,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;gBAClC,CAAC;gBAED,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,IAAA,iBAAS,EAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,8BAA8B;oBAC9B,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC;oBACb,CAAC;oBAED,wCAAwC;oBACxC,kEAAkE;oBAClE,8CAA8C;oBAC9C,IAAI,OAAO,CAAC,OAAO,CAAC,oFAAoF,CAAC,EAAE,CAAC;wBAC3G,4DAA4D;wBAC5D,gCAAgC;wBAChC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,wDAAwD,CAAC,CAAC;wBACtG,IAAI,aAAa,EAAE,CAAC;4BACnB,OAAO,CAAC,aAAa,CAAC,WAAW,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;wBACjD,CAAC;wBAED,0CAA0C;wBAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,kEAAkE,CAAC,CAAC;wBAC7G,IAAI,UAAU,EAAE,CAAC;4BAChB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;iCACnD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iCAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;iCACxC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACX,OAAO,cAAc,GAAG,IAAI,CAAC;wBAC9B,CAAC;wBAED,yCAAyC;wBACzC,OAAO,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;oBACnC,CAAC;oBAED,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;wBAClC,IAAI,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBACtC,CAAC,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,CAAC;YACb,CAAC,CAAC;YAEF,wCAAwC;YACxC,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,EAAE,CAAC;gBACxE,WAAW,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;YAC3C,CAAC;YAED,gFAAgF;YAChF,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,WAAW,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,uBAAuB;YACvB,WAAW,GAAG,WAAW;iBACvB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAM,4BAA4B;iBAC3D,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAS,yBAAyB;iBACxD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAK,8BAA8B;iBAC7D,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAQ,8BAA8B;iBAC7D,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAY,iCAAiC;iBAChE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAW,+BAA+B;YAEhE,iFAAiF;YACjF,iFAAiF;YACjF,sEAAsE;YACtE,qEAAqE;YACrE,IAAI,QAAQ,GAAmB,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAmB,QAAQ,CAAC,aAAa,CAAC;gBACzD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM;oBAAE,MAAM;gBACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAc,CAAC;gBAC7D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAE,SAAS;oBAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;oBAC3B,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM;wBAAE,SAAS;oBACpD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;oBAC7C,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,sEAAsE,CAAC,EAAE,CAAC;wBACjH,GAAG,CAAC,MAAM,EAAE,CAAC;oBACd,CAAC;gBACF,CAAC;gBACD,QAAQ,GAAG,SAAS,CAAC;YACtB,CAAC;YAED,yBAAyB;YACzB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAExC,sBAAsB;YACtB,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAE/B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,MAAM,CAAC;QACf,CAAC;KACD;CACD,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.standardizeFootnotes = standardizeFootnotes;
|
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
class FootnoteHandler {
|
|
6
6
|
constructor(doc) {
|
|
7
|
+
this.genericContainer = null;
|
|
7
8
|
this.doc = doc;
|
|
8
9
|
}
|
|
9
10
|
createFootnoteItem(footnoteNumber, content, refs) {
|
|
@@ -24,6 +25,7 @@ class FootnoteHandler {
|
|
|
24
25
|
// If no paragraphs, wrap content in a paragraph
|
|
25
26
|
const paragraph = doc.createElement('p');
|
|
26
27
|
paragraph.innerHTML = content.innerHTML;
|
|
28
|
+
this.removeBackrefs(paragraph);
|
|
27
29
|
newItem.appendChild(paragraph);
|
|
28
30
|
}
|
|
29
31
|
else {
|
|
@@ -31,6 +33,7 @@ class FootnoteHandler {
|
|
|
31
33
|
paragraphs.forEach((p) => {
|
|
32
34
|
const newP = doc.createElement('p');
|
|
33
35
|
newP.innerHTML = p.innerHTML;
|
|
36
|
+
this.removeBackrefs(newP);
|
|
34
37
|
newItem.appendChild(newP);
|
|
35
38
|
});
|
|
36
39
|
}
|
|
@@ -57,6 +60,38 @@ class FootnoteHandler {
|
|
|
57
60
|
// Collect all footnotes and their IDs from footnote lists
|
|
58
61
|
const footnoteLists = element.querySelectorAll(constants_1.FOOTNOTE_LIST_SELECTORS);
|
|
59
62
|
footnoteLists.forEach((list) => {
|
|
63
|
+
// Wikidot uses div.footnotes-footer containing div.footnote-footer children
|
|
64
|
+
if (list.matches('div.footnotes-footer')) {
|
|
65
|
+
const footnoteDivs = list.querySelectorAll('div.footnote-footer');
|
|
66
|
+
footnoteDivs.forEach((div) => {
|
|
67
|
+
const divId = div.id || '';
|
|
68
|
+
const match = divId.match(/^footnote-(\d+)$/);
|
|
69
|
+
if (match) {
|
|
70
|
+
const id = match[1];
|
|
71
|
+
if (!processedIds.has(id)) {
|
|
72
|
+
// Clone the div to avoid modifying the original DOM
|
|
73
|
+
const clone = div.cloneNode(true);
|
|
74
|
+
// Remove the back-link anchor
|
|
75
|
+
const backLink = clone.querySelector('a');
|
|
76
|
+
if (backLink)
|
|
77
|
+
backLink.remove();
|
|
78
|
+
// Get remaining text and strip leading ". "
|
|
79
|
+
let text = clone.innerHTML || '';
|
|
80
|
+
text = text.replace(/^\s*\.\s*/, '');
|
|
81
|
+
const contentDiv = element.ownerDocument.createElement('div');
|
|
82
|
+
contentDiv.innerHTML = text.trim();
|
|
83
|
+
footnotes[footnoteCount] = {
|
|
84
|
+
content: contentDiv,
|
|
85
|
+
originalId: id,
|
|
86
|
+
refs: []
|
|
87
|
+
};
|
|
88
|
+
processedIds.add(id);
|
|
89
|
+
footnoteCount++;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
60
95
|
// Substack has individual footnote divs with no parent
|
|
61
96
|
if (list.matches('div.footnote[data-component-name="FootnoteToDOM"]')) {
|
|
62
97
|
const anchor = list.querySelector('a.footnote-number');
|
|
@@ -122,8 +157,116 @@ class FootnoteHandler {
|
|
|
122
157
|
}
|
|
123
158
|
});
|
|
124
159
|
});
|
|
160
|
+
// Generic fallback: if no footnotes found via selectors, try ID-based detection
|
|
161
|
+
if (footnoteCount === 1) {
|
|
162
|
+
// Step 1: Find all in-text anchors linking to fragment IDs with short numeric text
|
|
163
|
+
const candidateRefs = new Map(); // fragment -> [anchor elements]
|
|
164
|
+
const allAnchors = element.querySelectorAll('a[href*="#"]');
|
|
165
|
+
allAnchors.forEach((a) => {
|
|
166
|
+
const href = a.getAttribute('href') || '';
|
|
167
|
+
const fragment = href.split('#').pop()?.toLowerCase();
|
|
168
|
+
if (!fragment)
|
|
169
|
+
return;
|
|
170
|
+
const text = a.textContent?.trim() || '';
|
|
171
|
+
if (!/^\[?\(?\d{1,4}\)?\]?$/.test(text))
|
|
172
|
+
return;
|
|
173
|
+
// Must be inside a sup or span to look like a footnote ref
|
|
174
|
+
const parent = a.parentElement;
|
|
175
|
+
if (!parent)
|
|
176
|
+
return;
|
|
177
|
+
const parentTag = parent.tagName.toLowerCase();
|
|
178
|
+
if (parentTag !== 'sup' && parentTag !== 'span' && a.tagName.toLowerCase() !== 'a')
|
|
179
|
+
return;
|
|
180
|
+
if (!candidateRefs.has(fragment)) {
|
|
181
|
+
candidateRefs.set(fragment, []);
|
|
182
|
+
}
|
|
183
|
+
candidateRefs.get(fragment).push(a);
|
|
184
|
+
});
|
|
185
|
+
if (candidateRefs.size >= 2) {
|
|
186
|
+
// Step 2: Find a container where multiple children have IDs matching our fragments
|
|
187
|
+
const fragmentSet = new Set(candidateRefs.keys());
|
|
188
|
+
const containers = element.querySelectorAll('div, section, aside, footer');
|
|
189
|
+
let bestContainer = null;
|
|
190
|
+
let bestMatchCount = 0;
|
|
191
|
+
containers.forEach((container) => {
|
|
192
|
+
// Skip containers that are the main content element itself
|
|
193
|
+
if (container === element)
|
|
194
|
+
return;
|
|
195
|
+
const children = container.querySelectorAll('p[id], li[id], div[id]');
|
|
196
|
+
let matchCount = 0;
|
|
197
|
+
children.forEach((child) => {
|
|
198
|
+
if (fragmentSet.has(child.id.toLowerCase())) {
|
|
199
|
+
matchCount++;
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
if (matchCount >= 2 && matchCount >= bestMatchCount) {
|
|
203
|
+
bestMatchCount = matchCount;
|
|
204
|
+
bestContainer = container;
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
if (bestContainer) {
|
|
208
|
+
// Step 3: Extract footnotes from the container
|
|
209
|
+
const idElements = bestContainer.querySelectorAll('p[id], li[id], div[id]');
|
|
210
|
+
const orderedElements = [];
|
|
211
|
+
idElements.forEach((el) => {
|
|
212
|
+
if (fragmentSet.has(el.id.toLowerCase())) {
|
|
213
|
+
orderedElements.push(el);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
// Step 4: Handle multi-paragraph footnotes (group consecutive non-ID elements)
|
|
217
|
+
orderedElements.forEach((el) => {
|
|
218
|
+
const id = el.id.toLowerCase();
|
|
219
|
+
if (processedIds.has(id))
|
|
220
|
+
return;
|
|
221
|
+
const contentDiv = element.ownerDocument.createElement('div');
|
|
222
|
+
// Clone the element content
|
|
223
|
+
const clone = el.cloneNode(true);
|
|
224
|
+
// Strip leading footnote number (e.g. "1. " or "1 ")
|
|
225
|
+
const firstText = clone.childNodes[0];
|
|
226
|
+
if (firstText && firstText.nodeType === 3) {
|
|
227
|
+
firstText.textContent = firstText.textContent.replace(/^\d+\.\s*/, '');
|
|
228
|
+
}
|
|
229
|
+
contentDiv.appendChild(clone);
|
|
230
|
+
// Check for consecutive siblings without IDs (multi-paragraph footnotes)
|
|
231
|
+
let sibling = el.nextElementSibling;
|
|
232
|
+
while (sibling && !sibling.id) {
|
|
233
|
+
const sibClone = sibling.cloneNode(true);
|
|
234
|
+
contentDiv.appendChild(sibClone);
|
|
235
|
+
sibling = sibling.nextElementSibling;
|
|
236
|
+
}
|
|
237
|
+
footnotes[footnoteCount] = {
|
|
238
|
+
content: contentDiv,
|
|
239
|
+
originalId: id,
|
|
240
|
+
refs: []
|
|
241
|
+
};
|
|
242
|
+
processedIds.add(id);
|
|
243
|
+
footnoteCount++;
|
|
244
|
+
});
|
|
245
|
+
// Step 5: Store container for later removal
|
|
246
|
+
this.genericContainer = bestContainer;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
125
250
|
return footnotes;
|
|
126
251
|
}
|
|
252
|
+
removeBackrefs(el) {
|
|
253
|
+
el.querySelectorAll('a').forEach((a) => {
|
|
254
|
+
if (a.textContent?.trim() === '↩' || a.classList?.contains('footnote-backref')) {
|
|
255
|
+
a.remove();
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
// Clean up trailing text nodes that are only whitespace/punctuation
|
|
259
|
+
// (remnants from around removed backref links, e.g. " ." or " , .")
|
|
260
|
+
while (el.lastChild && el.lastChild.nodeType === 3) {
|
|
261
|
+
const text = el.lastChild.textContent;
|
|
262
|
+
if (/^[\s,.;]*$/.test(text)) {
|
|
263
|
+
el.lastChild.remove();
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
127
270
|
findOuterFootnoteContainer(el) {
|
|
128
271
|
let current = el;
|
|
129
272
|
let parent = el.parentElement;
|
|
@@ -153,13 +296,24 @@ class FootnoteHandler {
|
|
|
153
296
|
// Group references by their parent sup element
|
|
154
297
|
const supGroups = new Map();
|
|
155
298
|
footnoteInlineReferences.forEach((el) => {
|
|
156
|
-
if (!el)
|
|
299
|
+
if (!el || !el.parentNode)
|
|
157
300
|
return;
|
|
158
301
|
let footnoteId = '';
|
|
159
302
|
let footnoteContent = '';
|
|
160
303
|
// Extract footnote ID based on element type
|
|
161
|
-
//
|
|
162
|
-
if (el.matches('
|
|
304
|
+
// Wikidot: <sup class="footnoteref"><a id="footnoteref-N" href="javascript:;">N</a></sup>
|
|
305
|
+
if (el.matches('sup.footnoteref')) {
|
|
306
|
+
const link = el.querySelector('a[id^="footnoteref-"]');
|
|
307
|
+
if (link) {
|
|
308
|
+
const linkId = link.id || '';
|
|
309
|
+
const match = linkId.match(/^footnoteref-(\d+)$/);
|
|
310
|
+
if (match) {
|
|
311
|
+
footnoteId = match[1];
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
// Nature.com
|
|
315
|
+
}
|
|
316
|
+
else if (el.matches('a[id^="ref-link"]')) {
|
|
163
317
|
footnoteId = el.textContent?.trim() || '';
|
|
164
318
|
// Science.org
|
|
165
319
|
}
|
|
@@ -215,6 +369,10 @@ class FootnoteHandler {
|
|
|
215
369
|
}
|
|
216
370
|
else if (el.matches('span.footnote-reference')) {
|
|
217
371
|
footnoteId = el.getAttribute('data-footnote-id') || '';
|
|
372
|
+
// LessWrong uses id="fnrefXXX" on the span
|
|
373
|
+
if (!footnoteId && el.id?.startsWith('fnref')) {
|
|
374
|
+
footnoteId = el.id.replace('fnref', '').toLowerCase();
|
|
375
|
+
}
|
|
218
376
|
}
|
|
219
377
|
else if (el.matches('span.footnote-link')) {
|
|
220
378
|
footnoteId = el.getAttribute('data-footnote-id') || '';
|
|
@@ -262,6 +420,83 @@ class FootnoteHandler {
|
|
|
262
420
|
}
|
|
263
421
|
}
|
|
264
422
|
});
|
|
423
|
+
// Fallback: match remaining unmatched footnotes
|
|
424
|
+
const unmatchedFootnotes = Object.entries(footnotes).filter(([_, data]) => data.refs.length === 0);
|
|
425
|
+
if (unmatchedFootnotes.length > 0) {
|
|
426
|
+
// Build lookup maps
|
|
427
|
+
const footnoteIdMap = new Map();
|
|
428
|
+
const footnoteNumMap = new Map();
|
|
429
|
+
unmatchedFootnotes.forEach(([num, data]) => {
|
|
430
|
+
footnoteIdMap.set(data.originalId, [num, data]);
|
|
431
|
+
footnoteNumMap.set(num, [num, data]);
|
|
432
|
+
});
|
|
433
|
+
// Pass 1: Match by fragment link (e.g. <a href="#mn37note01">1</a>)
|
|
434
|
+
const allLinks = element.querySelectorAll('a[href*="#"]');
|
|
435
|
+
allLinks.forEach((link) => {
|
|
436
|
+
if (!link.parentNode)
|
|
437
|
+
return;
|
|
438
|
+
// Skip if already inside a standardized footnote ref
|
|
439
|
+
const closestFnref = link.closest('[id^="fnref:"]');
|
|
440
|
+
if (closestFnref)
|
|
441
|
+
return;
|
|
442
|
+
// Skip if inside the footnotes section itself
|
|
443
|
+
const closestFootnotes = link.closest('#footnotes');
|
|
444
|
+
if (closestFootnotes)
|
|
445
|
+
return;
|
|
446
|
+
// Skip if inside the generic container (footnote definitions)
|
|
447
|
+
if (this.genericContainer && this.genericContainer.contains(link))
|
|
448
|
+
return;
|
|
449
|
+
const href = link.getAttribute('href') || '';
|
|
450
|
+
const fragment = href.split('#').pop()?.toLowerCase();
|
|
451
|
+
if (!fragment)
|
|
452
|
+
return;
|
|
453
|
+
const entry = footnoteIdMap.get(fragment);
|
|
454
|
+
if (!entry)
|
|
455
|
+
return;
|
|
456
|
+
// Validate it looks like a footnote marker
|
|
457
|
+
const text = link.textContent?.trim() || '';
|
|
458
|
+
if (!/^[\[\(]?\d{1,4}[\]\)]?$/.test(text))
|
|
459
|
+
return;
|
|
460
|
+
const [footnoteNumber, footnoteData] = entry;
|
|
461
|
+
const refId = footnoteData.refs.length > 0
|
|
462
|
+
? `fnref:${footnoteNumber}-${footnoteData.refs.length + 1}`
|
|
463
|
+
: `fnref:${footnoteNumber}`;
|
|
464
|
+
footnoteData.refs.push(refId);
|
|
465
|
+
const container = this.findOuterFootnoteContainer(link);
|
|
466
|
+
container.replaceWith(this.createFootnoteReference(footnoteNumber, refId));
|
|
467
|
+
});
|
|
468
|
+
// Pass 2: Match sup/span elements with numeric text (e.g. <sup class="footnote-ref">1</sup>)
|
|
469
|
+
const stillUnmatched = Object.entries(footnotes).filter(([_, data]) => data.refs.length === 0);
|
|
470
|
+
if (stillUnmatched.length > 0) {
|
|
471
|
+
const supElements = element.querySelectorAll('sup, span.footnote-ref');
|
|
472
|
+
supElements.forEach((el) => {
|
|
473
|
+
if (!el.parentNode)
|
|
474
|
+
return;
|
|
475
|
+
// Skip if already standardized
|
|
476
|
+
if (el.id?.startsWith('fnref:'))
|
|
477
|
+
return;
|
|
478
|
+
// Skip if inside the footnotes section
|
|
479
|
+
if (el.closest('#footnotes'))
|
|
480
|
+
return;
|
|
481
|
+
const text = el.textContent?.trim() || '';
|
|
482
|
+
const match = text.match(/^[\[\(]?(\d{1,4})[\]\)]?$/);
|
|
483
|
+
if (!match)
|
|
484
|
+
return;
|
|
485
|
+
const num = match[1];
|
|
486
|
+
// Match against footnote number or originalId
|
|
487
|
+
const entry = footnoteNumMap.get(num) || footnoteIdMap.get(num);
|
|
488
|
+
if (!entry)
|
|
489
|
+
return;
|
|
490
|
+
const [footnoteNumber, footnoteData] = entry;
|
|
491
|
+
if (footnoteData.refs.length > 0)
|
|
492
|
+
return; // Already matched
|
|
493
|
+
const refId = `fnref:${footnoteNumber}`;
|
|
494
|
+
footnoteData.refs.push(refId);
|
|
495
|
+
const container = this.findOuterFootnoteContainer(el);
|
|
496
|
+
container.replaceWith(this.createFootnoteReference(footnoteNumber, refId));
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
}
|
|
265
500
|
// Handle grouped references
|
|
266
501
|
supGroups.forEach((references, container) => {
|
|
267
502
|
if (references.length > 0) {
|
|
@@ -292,6 +527,10 @@ class FootnoteHandler {
|
|
|
292
527
|
// Remove original footnote lists
|
|
293
528
|
const footnoteLists = element.querySelectorAll(constants_1.FOOTNOTE_LIST_SELECTORS);
|
|
294
529
|
footnoteLists.forEach((list) => list.remove());
|
|
530
|
+
// Remove generically-detected footnote container
|
|
531
|
+
if (this.genericContainer && this.genericContainer.parentNode) {
|
|
532
|
+
this.genericContainer.remove();
|
|
533
|
+
}
|
|
295
534
|
// If we have any footnotes, add the new list to the document
|
|
296
535
|
if (orderedList.children.length > 0) {
|
|
297
536
|
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
|
@@ -159,6 +159,11 @@ exports.imageRules = [
|
|
|
159
159
|
if (attr.name === 'src' || attr.name === 'srcset' || attr.name === 'alt') {
|
|
160
160
|
continue; // Skip these attributes
|
|
161
161
|
}
|
|
162
|
+
// Skip JSON-like values (e.g., Substack's data-attrs containing image metadata)
|
|
163
|
+
const firstChar = attr.value.charAt(0);
|
|
164
|
+
if (firstChar === '{' || firstChar === '[') {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
162
167
|
// Check if attribute contains an image URL
|
|
163
168
|
if (srcsetPattern.test(attr.value)) {
|
|
164
169
|
// This looks like a srcset value
|
|
@@ -774,34 +779,42 @@ function processSourceElement(element, doc) {
|
|
|
774
779
|
return newImg;
|
|
775
780
|
}
|
|
776
781
|
/**
|
|
777
|
-
* Extract the first URL from a srcset attribute
|
|
782
|
+
* Extract the first URL from a srcset attribute.
|
|
783
|
+
* Handles URLs that contain commas (e.g., Substack CDN URLs like
|
|
784
|
+
* https://substackcdn.com/image/fetch/$s_!YemM!,w_424,c_limit,f_webp/...)
|
|
785
|
+
* by parsing based on width/density descriptors rather than splitting on commas.
|
|
778
786
|
*/
|
|
779
787
|
function extractFirstUrlFromSrcset(srcset) {
|
|
780
|
-
|
|
781
|
-
const parts = srcset.split(','); // Split by comma only
|
|
782
|
-
if (parts.length === 0) {
|
|
788
|
+
if (!srcset || !srcset.trim())
|
|
783
789
|
return null;
|
|
784
|
-
|
|
785
|
-
//
|
|
786
|
-
|
|
787
|
-
//
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
return match[1];
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
return null;
|
|
790
|
+
const trimmed = srcset.trim();
|
|
791
|
+
// Match srcset entries by finding URL + descriptor pairs.
|
|
792
|
+
// Each entry ends with a width descriptor (e.g., "424w") or density descriptor (e.g., "2x").
|
|
793
|
+
// The URL is everything before the whitespace that precedes the descriptor.
|
|
794
|
+
// This handles URLs containing commas (which would break a simple comma-split).
|
|
795
|
+
const entryPattern = /(.+?)\s+(\d+(?:\.\d+)?[wx])/g;
|
|
796
|
+
let match;
|
|
797
|
+
let lastIndex = 0;
|
|
798
|
+
while ((match = entryPattern.exec(trimmed)) !== null) {
|
|
799
|
+
// Extract URL from this entry, trimming any leading comma+whitespace from previous entry
|
|
800
|
+
let url = match[1].trim();
|
|
801
|
+
if (lastIndex > 0) {
|
|
802
|
+
// Remove leading comma separator from previous entry
|
|
803
|
+
url = url.replace(/^,\s*/, '');
|
|
802
804
|
}
|
|
805
|
+
lastIndex = entryPattern.lastIndex;
|
|
806
|
+
if (!url)
|
|
807
|
+
continue;
|
|
808
|
+
// Skip SVG data URLs
|
|
809
|
+
if (isSvgDataUrl(url))
|
|
810
|
+
continue;
|
|
803
811
|
return url;
|
|
804
812
|
}
|
|
813
|
+
// Fallback: try extracting URL before first whitespace (for srcset with single entry and no descriptor)
|
|
814
|
+
const urlMatch = trimmed.match(urlPattern);
|
|
815
|
+
if (urlMatch && urlMatch[1] && !isSvgDataUrl(urlMatch[1])) {
|
|
816
|
+
return urlMatch[1];
|
|
817
|
+
}
|
|
805
818
|
return null;
|
|
806
819
|
}
|
|
807
820
|
/**
|