@baiyibai-antora/extensions 1.24.0 → 1.25.1
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 +20 -0
- package/dist/extensions/autoterm/index.d.ts +3 -9
- package/dist/extensions/autoterm/index.d.ts.map +1 -1
- package/dist/extensions/autoterm/index.js +19 -24
- package/dist/extensions/autoterm/index.js.map +1 -1
- package/dist/extensions/cite-it/assembly-numbering.d.ts.map +1 -1
- package/dist/extensions/cite-it/assembly-numbering.js +10 -13
- package/dist/extensions/cite-it/assembly-numbering.js.map +1 -1
- package/dist/extensions/cite-it/index.d.ts.map +1 -1
- package/dist/extensions/cite-it/index.js +11 -20
- package/dist/extensions/cite-it/index.js.map +1 -1
- package/dist/extensions/cite-it/macro.js +1 -1
- package/dist/extensions/cite-it/macro.js.map +1 -1
- package/dist/extensions/trademark-it/index.d.ts +42 -30
- package/dist/extensions/trademark-it/index.d.ts.map +1 -1
- package/dist/extensions/trademark-it/index.js +125 -115
- package/dist/extensions/trademark-it/index.js.map +1 -1
- package/dist/lib/asciidoc-conditionals.d.ts +63 -44
- package/dist/lib/asciidoc-conditionals.d.ts.map +1 -1
- package/dist/lib/asciidoc-conditionals.js +0 -0
- package/dist/lib/asciidoc-conditionals.js.map +1 -1
- package/dist/lib/asciidoc-indexterms.d.ts +10 -7
- package/dist/lib/asciidoc-indexterms.d.ts.map +1 -1
- package/dist/lib/asciidoc-indexterms.js +25 -10
- package/dist/lib/asciidoc-indexterms.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,59 +1,78 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Suppresses unsatisfied `ifdef::`/`ifndef::` conditional blocks in raw
|
|
3
|
-
* AsciiDoc source
|
|
4
|
-
* a hand-rolled directive parser. See
|
|
5
|
-
* agent-memory/autoterm-trademark-it-api-rewrite-scope.md (Phase 2) for why
|
|
6
|
-
* real nesting, multi-line vs. inline forms, and `+`/`,` combinator
|
|
7
|
-
* semantics are exactly the class of edge case a regex-based evaluator gets
|
|
8
|
-
* wrong under pressure, and Asciidoctor already implements all of it
|
|
9
|
-
* correctly.
|
|
3
|
+
* AsciiDoc source by letting Asciidoctor itself read the document, rather
|
|
4
|
+
* than a hand-rolled directive or block parser. See
|
|
5
|
+
* agent-memory/autoterm-trademark-it-api-rewrite-scope.md (Phase 2) for why.
|
|
10
6
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* `evaluateDocument` runs a full `Asciidoctor.load()` parse. Asciidoctor's
|
|
8
|
+
* parser applies every attribute entry where it sits, with its own rules for
|
|
9
|
+
* the document header, block boundaries, and verbatim blocks, and its
|
|
10
|
+
* preprocessing reader evaluates each conditional directive lazily against
|
|
11
|
+
* the attribute state at that line. Include directives go to an
|
|
12
|
+
* IncludeProcessor registered through the public extension API, so an
|
|
13
|
+
* include inside a suppressed block is never resolved, an included file is
|
|
14
|
+
* read with the attribute state at its include line, and entries inside it
|
|
15
|
+
* apply to everything after it. A block comment is skipped by the parser
|
|
16
|
+
* itself, so directives inside one are never evaluated.
|
|
17
|
+
*
|
|
18
|
+
* Which source lines survive is observed, not inferred: before every source
|
|
19
|
+
* line the document text carries a probe `include::` line, which the same
|
|
20
|
+
* IncludeProcessor answers with no content. A probe reaches the processor
|
|
21
|
+
* only when the reader processes that position, so a line survives exactly
|
|
22
|
+
* when its probe fires. An empty include leaves no line behind, so the
|
|
23
|
+
* probes do not change how the document parses.
|
|
24
|
+
*
|
|
25
|
+
* Directive lines are recognized with Asciidoctor's own
|
|
26
|
+
* `ConditionalDirectiveRx`. Two rewrites happen before the parse:
|
|
13
27
|
*
|
|
14
|
-
* - `include::` lines: the reader's own filesystem-based include
|
|
15
|
-
* resolution runs unconditionally otherwise, and it knows nothing of
|
|
16
|
-
* Antora's content catalog. `collectIncludeText` resolves includes
|
|
17
|
-
* afterward, against the real catalog. Hidden here, restored after.
|
|
18
28
|
* - `ifeval::` blocks: intentionally not evaluated, matching this
|
|
19
|
-
*
|
|
29
|
+
* module's documented contract (an expression evaluator is out of
|
|
20
30
|
* scope). The opening line and its matching `endif::` are blanked so the
|
|
21
31
|
* body passes through as ordinary content; nested `ifdef::`/`ifndef::`
|
|
22
|
-
* inside an `ifeval::` block still evaluates normally
|
|
23
|
-
* `ifeval::` markers themselves are hidden.
|
|
32
|
+
* inside an `ifeval::` block still evaluates normally.
|
|
24
33
|
* - `scan_ignore_conditionals`-forced attributes: force-suppression only
|
|
25
|
-
* ever applies to `ifdef::`, never `ifndef
|
|
26
|
-
* attributes hash cannot make one attribute simultaneously "defined" for
|
|
27
|
-
* `ifndef::` and "undefined" for `ifdef::`, so a forced `ifdef::`
|
|
34
|
+
* ever applies to `ifdef::`, never `ifndef::`, so a forced `ifdef::`
|
|
28
35
|
* expression is rewritten to reference a synthetic attribute name that
|
|
29
|
-
* is never defined
|
|
30
|
-
* value; the matching `ifndef::` (same real attribute name, if present)
|
|
31
|
-
* is left untouched.
|
|
36
|
+
* is never defined; the matching `ifndef::` is left untouched.
|
|
32
37
|
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* first shipped: it does not strip `////` block comments. Verified
|
|
36
|
-
* empirically that Asciidoctor's raw preprocessor reader — `parse: false`,
|
|
37
|
-
* what this function uses — does not recognize a `////` block comment as a
|
|
38
|
-
* unit at all; comment-BLOCK recognition turned out to be a parser-level
|
|
39
|
-
* concern, only correctly handled during a full parse (autoterm's indexterm
|
|
40
|
-
* scanner, which does a full `.convert()`, is unaffected by this). A
|
|
41
|
-
* directive-like line sitting inside an unstripped block comment is still
|
|
42
|
-
* evaluated for real by this function, which can suppress or reveal content
|
|
43
|
-
* that is supposed to be entirely inert. Callers that need comment-stripping
|
|
44
|
-
* too must do it themselves, before calling this function — trademark-it's
|
|
45
|
-
* `stripNonContent` is the reference for how.
|
|
38
|
+
* The single-line form `ifdef::name[content]` is expanded to the block form
|
|
39
|
+
* with `content` on its own line, so that line carries its own probe.
|
|
46
40
|
*/
|
|
47
|
-
|
|
41
|
+
/** An included file's text and caller-defined context, from an IncludeResolver. */
|
|
42
|
+
export interface ResolvedInclude<C> {
|
|
43
|
+
text: string;
|
|
44
|
+
context: C;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolves an include:: target met while reading the file with context
|
|
48
|
+
* `including`. `attrlist` carries the directive's tag, tags, and lines
|
|
49
|
+
* attributes in `name=value` form. Returns undefined to leave the include
|
|
50
|
+
* unresolved.
|
|
51
|
+
*/
|
|
52
|
+
export type IncludeResolver<C> = (target: string, attrlist: string, including: C) => ResolvedInclude<C> | undefined;
|
|
53
|
+
/** A file read by evaluateDocument: its context and its surviving text. */
|
|
54
|
+
export interface EvaluatedFile<C> {
|
|
55
|
+
context: C;
|
|
56
|
+
text: string;
|
|
57
|
+
}
|
|
48
58
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
59
|
+
* Read `text` as Asciidoctor reads it and return, for the file itself and
|
|
60
|
+
* every file it includes, the text that survives conditional evaluation.
|
|
61
|
+
* Every other line is blanked, so each file keeps its line count. A
|
|
62
|
+
* surviving include:: line stays in its file's text.
|
|
52
63
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
64
|
+
* `attributes` seeds the document the way Antora seeds it with a
|
|
65
|
+
* component-version's compiled attributes: a value ending in `@` is soft
|
|
66
|
+
* set, so an attribute entry in the document overrides it; any other value
|
|
67
|
+
* is locked. Included files follow the root file in the order the reader
|
|
68
|
+
* first reaches them, each ahead of the files it includes itself.
|
|
69
|
+
*/
|
|
70
|
+
export declare function evaluateDocument<C>(text: string, rootContext: C, attributes: Record<string, unknown>, forceIgnore?: string[], resolveInclude?: IncludeResolver<C>): EvaluatedFile<C>[];
|
|
71
|
+
/**
|
|
72
|
+
* Suppress unsatisfied conditional blocks in `text` without resolving
|
|
73
|
+
* includes. Each attribute a directive references is soft set when
|
|
74
|
+
* `isDefined` answers true for it, so attribute entries in `text` override
|
|
75
|
+
* it from their position on.
|
|
57
76
|
*/
|
|
58
|
-
export declare function
|
|
77
|
+
export declare function suppressUnsetConditionals(text: string, isDefined: (attr: string) => boolean, forceIgnore?: string[]): string;
|
|
59
78
|
//# sourceMappingURL=asciidoc-conditionals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-conditionals.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-conditionals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"asciidoc-conditionals.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-conditionals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAuEH,mFAAmF;AACnF,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAEpH,2EAA2E;AAC3E,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,WAAW,GAAE,MAAM,EAAO,EAC1B,cAAc,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAClC,aAAa,CAAC,CAAC,CAAC,EAAE,CA6DpB;AAiBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACpC,WAAW,GAAE,MAAM,EAAO,GACzB,MAAM,CAMR"}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-conditionals.js","sourceRoot":"","sources":["../../src/lib/asciidoc-conditionals.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"asciidoc-conditionals.js","sourceRoot":"","sources":["../../src/lib/asciidoc-conditionals.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,13 +67,16 @@
|
|
|
67
67
|
* doctype ("level 0 sections can only be used when doctype is book").
|
|
68
68
|
* `doctype: 'book'` was tried and rejected: book doctype requires each
|
|
69
69
|
* level-0 part to contain at least one section, which ordinary flat
|
|
70
|
-
* page content doesn't have either. Fixed instead by
|
|
71
|
-
* `=`-level-0 title line outside the header prologue before
|
|
72
|
-
* (see `sanitizeForScan` for the positional rule and why
|
|
73
|
-
* first" was not enough)
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
70
|
+
* page content doesn't have either. Fixed instead by demoting every
|
|
71
|
+
* `=`-level-0 title line outside the header prologue to `==` before
|
|
72
|
+
* scanning (see `sanitizeForScan` for the positional rule and why
|
|
73
|
+
* "after the first" was not enough), which turns a structurally-
|
|
74
|
+
* invalid multi-document concatenation into one valid document the
|
|
75
|
+
* real engine parses cleanly. Blanking the line instead, the earlier
|
|
76
|
+
* fix, assumed title text never carries indexterm markup; a partial
|
|
77
|
+
* written at level 0 and included with `leveloffset` (a widget
|
|
78
|
+
* heading such as `[discrete]` then `= Widget Frame Counter
|
|
79
|
+
* (((Widget Frame Counter (WFC))) Unit 1`) does, and lost the term. Exported as
|
|
77
80
|
* `sanitizeForScan` and reused by cite-it's own scans, which hit this
|
|
78
81
|
* same class of hazard from more than one direction; see that
|
|
79
82
|
* function's own docblock for the fullest, current account of every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-indexterms.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"asciidoc-indexterms.d.ts","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAaH,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAmED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBpD;AA4ID,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAuE9D"}
|
|
@@ -68,13 +68,16 @@
|
|
|
68
68
|
* doctype ("level 0 sections can only be used when doctype is book").
|
|
69
69
|
* `doctype: 'book'` was tried and rejected: book doctype requires each
|
|
70
70
|
* level-0 part to contain at least one section, which ordinary flat
|
|
71
|
-
* page content doesn't have either. Fixed instead by
|
|
72
|
-
* `=`-level-0 title line outside the header prologue before
|
|
73
|
-
* (see `sanitizeForScan` for the positional rule and why
|
|
74
|
-
* first" was not enough)
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
71
|
+
* page content doesn't have either. Fixed instead by demoting every
|
|
72
|
+
* `=`-level-0 title line outside the header prologue to `==` before
|
|
73
|
+
* scanning (see `sanitizeForScan` for the positional rule and why
|
|
74
|
+
* "after the first" was not enough), which turns a structurally-
|
|
75
|
+
* invalid multi-document concatenation into one valid document the
|
|
76
|
+
* real engine parses cleanly. Blanking the line instead, the earlier
|
|
77
|
+
* fix, assumed title text never carries indexterm markup; a partial
|
|
78
|
+
* written at level 0 and included with `leveloffset` (a widget
|
|
79
|
+
* heading such as `[discrete]` then `= Widget Frame Counter
|
|
80
|
+
* (((Widget Frame Counter (WFC))) Unit 1`) does, and lost the term. Exported as
|
|
78
81
|
* `sanitizeForScan` and reused by cite-it's own scans, which hit this
|
|
79
82
|
* same class of hazard from more than one direction; see that
|
|
80
83
|
* function's own docblock for the fullest, current account of every
|
|
@@ -129,7 +132,7 @@ const MD_HEADING_RE = /^#{1,6}\s+\S/;
|
|
|
129
132
|
* including page wraps in a `[source,...]`/`----` delimited block never
|
|
130
133
|
* reaches a real reader as bare text at all, since Asciidoctor treats
|
|
131
134
|
* delimited-block content as literal, never heading-parsed. But
|
|
132
|
-
*
|
|
135
|
+
* stripWithIncludes resolves the include TARGET's raw content directly,
|
|
133
136
|
* with no awareness of the delimited-block wrapper the including page
|
|
134
137
|
* puts around it, so a Python or shell `#` comment line lands in the scan
|
|
135
138
|
* buffer as bare top-level text. Confirmed live: reproduces with nothing
|
|
@@ -150,7 +153,10 @@ const MD_HEADING_RE = /^#{1,6}\s+\S/;
|
|
|
150
153
|
* fails with the same "level 0 sections" error a second title did. Twelve
|
|
151
154
|
* such wrapper pages produced twelve error lines per build. So the rule
|
|
152
155
|
* is positional, not ordinal: a title still inside the header prologue is
|
|
153
|
-
* kept, every other one is blanked
|
|
156
|
+
* kept, every other one is demoted to `==`. Demoted, not blanked: a
|
|
157
|
+
* level-0 title after content is usually a partial's own heading, written
|
|
158
|
+
* at level 0 for an `include::[leveloffset=...]` the scan never applies,
|
|
159
|
+
* and its text can carry indexterm markup that must still be scanned.
|
|
154
160
|
*/
|
|
155
161
|
const HEADER_PROLOGUE_LINE_RE = /^(\s*|:!?[\w-]+!?:.*|\/\/.*)$/;
|
|
156
162
|
function sanitizeForScan(text) {
|
|
@@ -164,7 +170,7 @@ function sanitizeForScan(text) {
|
|
|
164
170
|
return '';
|
|
165
171
|
if (TITLE_RE.test(line)) {
|
|
166
172
|
if (!inHeaderPrologue)
|
|
167
|
-
return
|
|
173
|
+
return `=${line}`;
|
|
168
174
|
inHeaderPrologue = false;
|
|
169
175
|
return line;
|
|
170
176
|
}
|
|
@@ -239,6 +245,15 @@ CapturingConverter.prototype.convert = function (node, transform) {
|
|
|
239
245
|
const source = sourceForParent(parent, this.sourceLines);
|
|
240
246
|
if (source)
|
|
241
247
|
this.liveBlocks.add(source);
|
|
248
|
+
// An indexterm in a title has no raw text in source: a discrete
|
|
249
|
+
// heading (floating_title) has an empty getSource() and no source
|
|
250
|
+
// location, and a block title (`.Title`) is not part of its block's
|
|
251
|
+
// getSource(). The raw title survives as the Opal `title` instance
|
|
252
|
+
// variable; record it unless the source already contains it (a
|
|
253
|
+
// section's own heading line does).
|
|
254
|
+
const rawTitle = parent?.title;
|
|
255
|
+
if (typeof rawTitle === 'string' && !(source && source.includes(rawTitle)))
|
|
256
|
+
this.liveBlocks.add(rawTitle);
|
|
242
257
|
}
|
|
243
258
|
return html5Converter.convert(node, transform);
|
|
244
259
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asciidoc-indexterms.js","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"asciidoc-indexterms.js","sourceRoot":"","sources":["../../src/lib/asciidoc-indexterms.ts"],"names":[],"mappings":"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"}
|