@dogsbay/format-asciidoc 0.2.0-beta.101

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.
Files changed (58) hide show
  1. package/README.md +40 -0
  2. package/dist/cli.d.ts +4 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +354 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/detect.d.ts +47 -0
  7. package/dist/detect.d.ts.map +1 -0
  8. package/dist/detect.js +73 -0
  9. package/dist/detect.js.map +1 -0
  10. package/dist/index.d.ts +10 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +9 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/inline-walker.d.ts +17 -0
  15. package/dist/inline-walker.d.ts.map +1 -0
  16. package/dist/inline-walker.js +167 -0
  17. package/dist/inline-walker.js.map +1 -0
  18. package/dist/loaders/antora.d.ts +3 -0
  19. package/dist/loaders/antora.d.ts.map +1 -0
  20. package/dist/loaders/antora.js +874 -0
  21. package/dist/loaders/antora.js.map +1 -0
  22. package/dist/loaders/asciibinder.d.ts +3 -0
  23. package/dist/loaders/asciibinder.d.ts.map +1 -0
  24. package/dist/loaders/asciibinder.js +229 -0
  25. package/dist/loaders/asciibinder.js.map +1 -0
  26. package/dist/loaders/dominance.d.ts +15 -0
  27. package/dist/loaders/dominance.d.ts.map +1 -0
  28. package/dist/loaders/dominance.js +86 -0
  29. package/dist/loaders/dominance.js.map +1 -0
  30. package/dist/loaders/master-adoc.d.ts +3 -0
  31. package/dist/loaders/master-adoc.d.ts.map +1 -0
  32. package/dist/loaders/master-adoc.js +178 -0
  33. package/dist/loaders/master-adoc.js.map +1 -0
  34. package/dist/loaders/plain.d.ts +3 -0
  35. package/dist/loaders/plain.d.ts.map +1 -0
  36. package/dist/loaders/plain.js +58 -0
  37. package/dist/loaders/plain.js.map +1 -0
  38. package/dist/loaders/types.d.ts +117 -0
  39. package/dist/loaders/types.d.ts.map +1 -0
  40. package/dist/loaders/types.js +2 -0
  41. package/dist/loaders/types.js.map +1 -0
  42. package/dist/loaders/util.d.ts +15 -0
  43. package/dist/loaders/util.d.ts.map +1 -0
  44. package/dist/loaders/util.js +49 -0
  45. package/dist/loaders/util.js.map +1 -0
  46. package/dist/parse.d.ts +178 -0
  47. package/dist/parse.d.ts.map +1 -0
  48. package/dist/parse.js +150 -0
  49. package/dist/parse.js.map +1 -0
  50. package/dist/tree.d.ts +2 -0
  51. package/dist/tree.d.ts.map +1 -0
  52. package/dist/tree.js +2 -0
  53. package/dist/tree.js.map +1 -0
  54. package/dist/walker.d.ts +8 -0
  55. package/dist/walker.d.ts.map +1 -0
  56. package/dist/walker.js +210 -0
  57. package/dist/walker.js.map +1 -0
  58. package/package.json +54 -0
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Convert markdown-it inline token children into structured InlineNode[].
3
+ */
4
+ export function walkInlineTokens(tokens) {
5
+ if (!tokens || tokens.length === 0)
6
+ return [];
7
+ const result = [];
8
+ const annotations = { bold: false, italic: false, strikethrough: false };
9
+ // Stack for container elements (links)
10
+ // When inside a link, spans are pushed to the link's children instead of result
11
+ const containerStack = [];
12
+ function target() {
13
+ if (containerStack.length > 0) {
14
+ return containerStack[containerStack.length - 1].node.children;
15
+ }
16
+ return result;
17
+ }
18
+ function pushNode(node) {
19
+ target().push(node);
20
+ }
21
+ function makeText(text) {
22
+ const span = { type: "text", text };
23
+ if (annotations.bold)
24
+ span.bold = true;
25
+ if (annotations.italic)
26
+ span.italic = true;
27
+ if (annotations.strikethrough)
28
+ span.strikethrough = true;
29
+ return span;
30
+ }
31
+ for (let i = 0; i < tokens.length; i++) {
32
+ const token = tokens[i];
33
+ switch (token.type) {
34
+ // ── Annotation open/close ──
35
+ case "strong_open":
36
+ annotations.bold = true;
37
+ break;
38
+ case "strong_close":
39
+ annotations.bold = false;
40
+ break;
41
+ case "em_open":
42
+ annotations.italic = true;
43
+ break;
44
+ case "em_close":
45
+ annotations.italic = false;
46
+ break;
47
+ case "s_open":
48
+ annotations.strikethrough = true;
49
+ break;
50
+ case "s_close":
51
+ annotations.strikethrough = false;
52
+ break;
53
+ // ── Link container ──
54
+ case "link_open": {
55
+ const href = token.attrGet("href") || "";
56
+ const title = token.attrGet("title") || undefined;
57
+ const linkNode = { type: "link", href, children: [] };
58
+ if (title)
59
+ linkNode.title = title;
60
+ containerStack.push({ type: "link", node: linkNode });
61
+ break;
62
+ }
63
+ case "link_close": {
64
+ const container = containerStack.pop();
65
+ if (container) {
66
+ // Push the completed link to the parent target
67
+ target().push(container.node);
68
+ }
69
+ break;
70
+ }
71
+ // ── Text ──
72
+ case "text": {
73
+ if (token.content) {
74
+ pushNode(makeText(token.content));
75
+ }
76
+ break;
77
+ }
78
+ // ── Inline code ──
79
+ case "code_inline": {
80
+ const codeNode = { type: "code", text: token.content };
81
+ pushNode(codeNode);
82
+ break;
83
+ }
84
+ // ── Image ──
85
+ case "image": {
86
+ const src = token.attrGet("src") || "";
87
+ const alt = token.content || token.attrGet("alt") || undefined;
88
+ const title = token.attrGet("title") || undefined;
89
+ const imgNode = { type: "image", src };
90
+ if (alt)
91
+ imgNode.alt = alt;
92
+ if (title)
93
+ imgNode.title = title;
94
+ pushNode(imgNode);
95
+ break;
96
+ }
97
+ // ── Footnote reference (custom rule) ──
98
+ case "footnote_ref": {
99
+ const label = token.meta?.label || "";
100
+ const fnNode = { type: "footnote-ref", label };
101
+ pushNode(fnNode);
102
+ break;
103
+ }
104
+ // ── Line breaks ──
105
+ case "softbreak": {
106
+ // Soft break is just whitespace (newline within a paragraph)
107
+ pushNode(makeText(" "));
108
+ break;
109
+ }
110
+ case "hardbreak": {
111
+ const brNode = { type: "break" };
112
+ pushNode(brNode);
113
+ break;
114
+ }
115
+ // ── Inline math ──
116
+ case "math_inline": {
117
+ const mathNode = { type: "math", latex: token.content || token.meta?.latex || "" };
118
+ pushNode(mathNode);
119
+ break;
120
+ }
121
+ // ── Icon/emoji shortcode ──
122
+ case "icon_shortcode": {
123
+ const meta = token.meta || {};
124
+ const iconNode = {
125
+ type: "icon",
126
+ name: meta.name || meta.raw || "",
127
+ library: meta.library,
128
+ };
129
+ if (meta.variant)
130
+ iconNode.variant = meta.variant;
131
+ if (meta.size)
132
+ iconNode.size = meta.size;
133
+ if (meta.attrs)
134
+ iconNode.attrs = meta.attrs;
135
+ pushNode(iconNode);
136
+ break;
137
+ }
138
+ // ── Raw HTML inline (escape hatch) ──
139
+ case "html_inline": {
140
+ // Try to detect <kbd> patterns from keys plugin
141
+ const kbdMatch = token.content.match(/^<kbd>([^<]+)<\/kbd>(?:\+<kbd>([^<]+)<\/kbd>)*$/);
142
+ if (kbdMatch) {
143
+ const keys = token.content
144
+ .match(/<kbd>([^<]+)<\/kbd>/g)
145
+ .map((m) => m.replace(/<\/?kbd>/g, ""));
146
+ const kbdNode = { type: "kbd", keys };
147
+ pushNode(kbdNode);
148
+ }
149
+ else {
150
+ const htmlNode = { type: "html-inline", html: token.content };
151
+ pushNode(htmlNode);
152
+ }
153
+ break;
154
+ }
155
+ // ── Fallback: anything else becomes html-inline ──
156
+ default: {
157
+ if (token.content) {
158
+ const htmlNode = { type: "html-inline", html: token.content };
159
+ pushNode(htmlNode);
160
+ }
161
+ break;
162
+ }
163
+ }
164
+ }
165
+ return result;
166
+ }
167
+ //# sourceMappingURL=inline-walker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-walker.js","sourceRoot":"","sources":["../src/inline-walker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CorpusLoader } from "./types.js";
2
+ export declare const antoraLoader: CorpusLoader;
3
+ //# sourceMappingURL=antora.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antora.d.ts","sourceRoot":"","sources":["../../src/loaders/antora.ts"],"names":[],"mappings":"AAmEA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAuZpB,eAAO,MAAM,YAAY,EAAE,YA8B1B,CAAC"}