@baiyibai-antora/extensions 1.19.0 → 1.19.2
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/CHANGELOG.adoc +12 -0
- package/dist/extensions/cite-it/csl.d.ts.map +1 -1
- package/dist/extensions/cite-it/csl.js +53 -15
- package/dist/extensions/cite-it/csl.js.map +1 -1
- package/dist/lib/asciidoc-indexterms.d.ts.map +1 -1
- package/dist/lib/asciidoc-indexterms.js +63 -4
- package/dist/lib/asciidoc-indexterms.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.adoc
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
|
|
4
4
|
All notable changes to this project will be documented in this file.
|
|
5
5
|
|
|
6
|
+
== [1.19.2] - 2026-09-02
|
|
7
|
+
|
|
8
|
+
=== Fixed
|
|
9
|
+
|
|
10
|
+
* autoterm: `scanIndexterms` silently dropped an indexterm (`((Term))`) found directly in a list item's own principal text whenever another indexterm elsewhere in the document had already been captured, described as the capturing converter's traversal stopping after its first successful capture. Confirmed by tracing every node the converter actually visits: not a traversal problem at all, every `inline_indexterm` node is visited, in document order, later siblings included. The real, narrower cause: `getSource()` only exists on Asciidoctor.js's `Block` class (paragraph, example, listing, and so on); `List` and `ListItem` are siblings of `Block`, not subclasses of it, and expose no equivalent of their own, so `node.getParent()?.getSource?.()` silently resolved to `undefined` for any indexterm whose enclosing block was a list item specifically, independent of how many earlier terms had already been found elsewhere. `sourceForParent` now falls back to `getSourceLocation()` (needs `sourcemap: true` on the scanning `processor.load()` call, confirmed directly: without it every node's location is `undefined` too) plus a line-based read from the same sanitized source text already being scanned, bounded by the next sibling item's own start line, or by the first blank line for the last item in a list, which has no next sibling to bound it. Confirmed against a real document (an indexterm in a first paragraph and a second, unrelated indexterm later inside a list item): only the first term was ever recorded before this fix, both after it. Six new regression tests, confirmed to fail without the fix and pass with it, covering the reported case, the last-item boundary, ordered lists, several items in the same list, apostrophe raw-text preservation inside a list item, and that comment/verbatim exclusion near a list still holds
|
|
11
|
+
|
|
12
|
+
== [1.19.1] - 2026-09-01
|
|
13
|
+
|
|
14
|
+
=== Fixed
|
|
15
|
+
|
|
16
|
+
* cite-it: citeproc-js expands a real trademark (™) or service mark (℠) character found in ANY `.bib` field (title, publisher, container-title, confirmed directly, not title-only) into `<sup>TM</sup>`/`<sup>SM</sup>` in its own output, in both bundled styles, unconditionally, losing the real character entirely: `htmlEntryToAsciiDoc`'s own generic `<sup>` handling then faithfully preserved citeproc's literal "TM"/"SM" text instead of the real character it replaced. A document's own real ™ silently became different, differently-searchable text in the rendered bibliography, independent of the `superscript_symbols` setting, reported directly against a real title. `htmlEntryToAsciiDoc` now recognizes citeproc's own `<sup>TM</sup>`/`<sup>SM</sup>` shape specifically and restores the real character, still wrapped in AsciiDoc superscript markup, unconditionally, a data-fidelity fix independent of `superscript_symbols`. `superscriptTrademarkSymbols` (the opt-in pass covering ®/©, which citeproc never touches) no longer matches ™/℠ at all, avoiding a double-wrap of the now-already-restored character when `superscript_symbols` is enabled.
|
|
17
|
+
|
|
6
18
|
== [1.19.0] - 2026-08-31
|
|
7
19
|
|
|
8
20
|
=== Added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csl.d.ts","sourceRoot":"","sources":["../../../src/extensions/cite-it/csl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC;AAOvD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAQnE;AAqFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"csl.d.ts","sourceRoot":"","sources":["../../../src/extensions/cite-it/csl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC;AAOvD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,CAQnE;AAqFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiC7D;AA6HD,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC/B,IAAI,EAAE,MAAM,EAAE,EACd,eAAe,UAAQ,EACvB,kBAAkB,UAAQ,EAC1B,UAAU,SAAK,GACd,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA2CrB"}
|
|
@@ -200,26 +200,61 @@ function htmlEntryToAsciiDoc(entryHtml) {
|
|
|
200
200
|
const withAsciidocMarkup = inner
|
|
201
201
|
.replace(/<i>([\s\S]*?)<\/i>/g, '_$1_')
|
|
202
202
|
.replace(/<b>([\s\S]*?)<\/b>/g, '*$1*')
|
|
203
|
+
// citeproc's own <sup>TM</sup>/<sup>SM</sup> is its own internal
|
|
204
|
+
// expansion of a real trademark (™) or service mark (℠) character
|
|
205
|
+
// found in the source data, in ANY field (title, publisher,
|
|
206
|
+
// container-title, confirmed directly, not title-only), never
|
|
207
|
+
// literal ASCII text a .bib entry actually wrote. Left to the
|
|
208
|
+
// generic <sup> rule below, which only knows to preserve whatever
|
|
209
|
+
// text citeproc put inside the tag, the real character is
|
|
210
|
+
// permanently lost, replaced by the plain letters "TM"/"SM": a real
|
|
211
|
+
// reported regression, a document's own real ™ silently became
|
|
212
|
+
// different, differently-searchable text in the rendered output.
|
|
213
|
+
// Restored here to the real character it always was, wrapped in
|
|
214
|
+
// AsciiDoc superscript markup the same way citeproc's own <sup>
|
|
215
|
+
// wrapping intended, unconditionally: this is a data-fidelity fix,
|
|
216
|
+
// not gated by superscript_symbols, the same "renders exactly as
|
|
217
|
+
// written" standard escapeAsciidocReplacements already holds
|
|
218
|
+
// .bib-derived text to below. superscriptTrademarkSymbols's own
|
|
219
|
+
// later, opt-in pass no longer touches ™/℠ at all (see its own
|
|
220
|
+
// docblock): this replacement already runs unconditionally, and
|
|
221
|
+
// running both would double-wrap.
|
|
222
|
+
.replace(/<sup>TM<\/sup>/g, '^™^')
|
|
223
|
+
.replace(/<sup>SM<\/sup>/g, '^℠^')
|
|
203
224
|
.replace(/<sup>([\s\S]*?)<\/sup>/g, '^$1^')
|
|
204
225
|
.replace(/<[^>]+>/g, '');
|
|
205
226
|
const plain = decodeEntities(withAsciidocMarkup).replace(/\s+/g, ' ').trim();
|
|
206
227
|
return (0, asciidoc_replacements_1.escapeAsciidocReplacements)(plain);
|
|
207
228
|
}
|
|
208
229
|
/**
|
|
209
|
-
* Wraps each
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
*
|
|
230
|
+
* Wraps each registered (®) and copyright (©) symbol found in `text` in
|
|
231
|
+
* AsciiDoc superscript markup, so it renders raised rather than sitting
|
|
232
|
+
* on the baseline. The symbol itself is data inside a `.bib` field
|
|
233
|
+
* (almost always a title, e.g. a product name), never something the CSL
|
|
234
|
+
* style has special handling for; this runs as a post-process over the
|
|
235
|
+
* already-formatted AsciiDoc text, the same shape blanketPubstate's own
|
|
236
|
+
* append already uses, rather than touching the style file. Verified
|
|
237
|
+
* directly against a real Asciidoctor conversion: the constrained
|
|
238
|
+
* single-caret form (`^®^`) renders correctly immediately adjacent to a
|
|
239
|
+
* preceding word character ("Widget^®^"), no space or unconstrained
|
|
240
|
+
* double-caret form needed.
|
|
241
|
+
*
|
|
242
|
+
* Deliberately does NOT match ™/℠ (unlike an earlier version of this
|
|
243
|
+
* function): those are already unconditionally restored to real
|
|
244
|
+
* characters, already wrapped in superscript markup, by
|
|
245
|
+
* `htmlEntryToAsciiDoc` itself, before this function ever runs (see its
|
|
246
|
+
* own docblock). A ™/℠ branch here would re-match the same character
|
|
247
|
+
* sitting inside that already-inserted `^...^` wrapper and double-wrap
|
|
248
|
+
* it (`^^™^^`), confirmed as the mechanism behind a real reported
|
|
249
|
+
* regression once `htmlEntryToAsciiDoc`'s own restoration stopped being
|
|
250
|
+
* silently defeated by citeproc's `<sup>TM</sup>`/`<sup>SM</sup>`
|
|
251
|
+
* character loss. ®/© never receive that citeproc-side treatment at all
|
|
252
|
+
* (confirmed directly, real characters pass through citeproc untouched
|
|
253
|
+
* in every field), so this function staying gated behind
|
|
254
|
+
* `superscript_symbols` remains correct for them specifically.
|
|
220
255
|
*/
|
|
221
256
|
function superscriptTrademarkSymbols(text) {
|
|
222
|
-
return text.replace(/([
|
|
257
|
+
return text.replace(/([®©])/gu, '^$1^');
|
|
223
258
|
}
|
|
224
259
|
/**
|
|
225
260
|
* Format bibliography-entry text for a set of CSL-JSON items, keyed by
|
|
@@ -236,9 +271,12 @@ function superscriptTrademarkSymbols(text) {
|
|
|
236
271
|
* render it.
|
|
237
272
|
*
|
|
238
273
|
* `superscriptSymbols`: cite-it's `superscript_symbols` config option
|
|
239
|
-
* (index.ts), threaded through so
|
|
240
|
-
* title, typically)
|
|
241
|
-
* inline text.
|
|
274
|
+
* (index.ts), threaded through so ® and © inside the formatted text (a
|
|
275
|
+
* title, typically) render as AsciiDoc superscript rather than plain
|
|
276
|
+
* inline text. ™ and ℠ are unaffected by this flag: `htmlEntryToAsciiDoc`
|
|
277
|
+
* already renders those as AsciiDoc superscript unconditionally, restoring
|
|
278
|
+
* the real character citeproc's own `<sup>TM</sup>`/`<sup>SM</sup>`
|
|
279
|
+
* output would otherwise silently replace with plain "TM"/"SM" text.
|
|
242
280
|
*/
|
|
243
281
|
/** "in preparation" -> "In preparation", matching the style's own
|
|
244
282
|
* `text-case="capitalize-first"` treatment of the same CSL `status`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csl.js","sourceRoot":"","sources":["../../../src/extensions/cite-it/csl.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,8CAQC;AAmHD,
|
|
1
|
+
{"version":3,"file":"csl.js","sourceRoot":"","sources":["../../../src/extensions/cite-it/csl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-indexterms.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAaH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAgED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBpD;
|
|
1
|
+
{"version":3,"file":"asciidoc-indexterms.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AAaH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAgED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBpD;AAkID,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAuE9D"}
|
|
@@ -174,14 +174,69 @@ function sanitizeForScan(text) {
|
|
|
174
174
|
})
|
|
175
175
|
.join('\n');
|
|
176
176
|
}
|
|
177
|
-
|
|
177
|
+
/**
|
|
178
|
+
* getSource() only exists on Asciidoctor.js's Block class (paragraph,
|
|
179
|
+
* example, listing, and so on); List and ListItem are siblings of Block,
|
|
180
|
+
* not subclasses of it, and expose no equivalent of their own. An
|
|
181
|
+
* indexterm directly in a list item's own principal text (not inside a
|
|
182
|
+
* `+`-continuation block attached to the item, which is itself a real
|
|
183
|
+
* Block and already reaches getSource() correctly through the normal
|
|
184
|
+
* path) has a parent with no getSource at all, so `parent?.getSource?.()`
|
|
185
|
+
* silently resolved to undefined and the term was dropped, not because
|
|
186
|
+
* traversal stopped (confirmed directly: the real engine visits every
|
|
187
|
+
* inline_indexterm node fine, later siblings included) but because this
|
|
188
|
+
* one node type's raw text was never reachable at all.
|
|
189
|
+
*
|
|
190
|
+
* Falls back to getSourceLocation() (needs `sourcemap: true` on the
|
|
191
|
+
* scanning processor.load() call below; without it every node's location
|
|
192
|
+
* is undefined too, confirmed directly), reading the line(s) directly
|
|
193
|
+
* from the same sanitized source text already being scanned. For a list
|
|
194
|
+
* item specifically, the end boundary is the next sibling item's own
|
|
195
|
+
* start line, found via getList()/getItems(); the last item in a list
|
|
196
|
+
* has no next sibling to bound it, so its own principal text is assumed
|
|
197
|
+
* to end at the first blank line or the end of the buffer, the same
|
|
198
|
+
* termination AsciiDoc itself uses for a plain (non-continuation) list
|
|
199
|
+
* item. Not a general block-boundary parser: scoped to this one
|
|
200
|
+
* confirmed gap, not a replacement for getSource() anywhere it already
|
|
201
|
+
* works.
|
|
202
|
+
*/
|
|
203
|
+
function sourceForParent(parent, sourceLines) {
|
|
204
|
+
if (!parent)
|
|
205
|
+
return undefined;
|
|
206
|
+
const direct = parent.getSource?.();
|
|
207
|
+
if (direct)
|
|
208
|
+
return direct;
|
|
209
|
+
const loc = parent.getSourceLocation?.();
|
|
210
|
+
const startLine = loc?.getLineNumber();
|
|
211
|
+
if (!startLine)
|
|
212
|
+
return undefined;
|
|
213
|
+
const startIdx = startLine - 1;
|
|
214
|
+
let endIdx = startIdx + 1;
|
|
215
|
+
if (parent.getContext?.() === 'list_item') {
|
|
216
|
+
const list = parent.getList?.();
|
|
217
|
+
const items = list?.getItems?.();
|
|
218
|
+
const ownIndex = items?.findIndex((item) => item === parent);
|
|
219
|
+
const nextItem = ownIndex !== undefined && ownIndex >= 0 ? items?.[ownIndex + 1] : undefined;
|
|
220
|
+
const nextLine = nextItem?.getSourceLocation?.()?.getLineNumber();
|
|
221
|
+
if (nextLine) {
|
|
222
|
+
endIdx = nextLine - 1;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
while (endIdx < sourceLines.length && sourceLines[endIdx].trim() !== '')
|
|
226
|
+
endIdx++;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return sourceLines.slice(startIdx, endIdx).join('\n');
|
|
230
|
+
}
|
|
231
|
+
function CapturingConverter(liveBlocks, sourceLines) {
|
|
178
232
|
this.liveBlocks = liveBlocks;
|
|
233
|
+
this.sourceLines = sourceLines;
|
|
179
234
|
}
|
|
180
235
|
CapturingConverter.prototype.convert = function (node, transform) {
|
|
181
236
|
const t = transform || node.getNodeName();
|
|
182
237
|
if (t === 'inline_indexterm') {
|
|
183
238
|
const parent = node.getParent?.();
|
|
184
|
-
const source = parent
|
|
239
|
+
const source = sourceForParent(parent, this.sourceLines);
|
|
185
240
|
if (source)
|
|
186
241
|
this.liveBlocks.add(source);
|
|
187
242
|
}
|
|
@@ -189,10 +244,14 @@ CapturingConverter.prototype.convert = function (node, transform) {
|
|
|
189
244
|
};
|
|
190
245
|
/** Collects the raw source of every block that contains a live indexterm. */
|
|
191
246
|
function collectLiveBlockText(sourceText) {
|
|
247
|
+
const sanitized = sanitizeForScan(sourceText);
|
|
192
248
|
const liveBlocks = new Set();
|
|
193
|
-
const instance = new CapturingConverter(liveBlocks);
|
|
249
|
+
const instance = new CapturingConverter(liveBlocks, sanitized.split('\n'));
|
|
194
250
|
processor.ConverterFactory.register(instance, [SCAN_BACKEND]);
|
|
195
|
-
|
|
251
|
+
// sourcemap: true is required for getSourceLocation() to return
|
|
252
|
+
// anything at all (confirmed directly: every location is undefined
|
|
253
|
+
// without it), needed by sourceForParent's fallback above.
|
|
254
|
+
const doc = processor.load(sanitized, { safe: 'safe', backend: SCAN_BACKEND, sourcemap: true });
|
|
196
255
|
doc.convert();
|
|
197
256
|
return [...liveBlocks].join('\n');
|
|
198
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-indexterms.js","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;;;;;AAkFH,0CAgBC;
|
|
1
|
+
{"version":3,"file":"asciidoc-indexterms.js","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"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"}
|