@aicayzer/inkkit 0.0.11 → 0.0.12
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/dist/linked-syntax.js +21 -9
- package/package.json +1 -1
package/dist/linked-syntax.js
CHANGED
|
@@ -33,7 +33,7 @@ export function parseLinkedSyntax(raw, inTable = false) {
|
|
|
33
33
|
}
|
|
34
34
|
else {
|
|
35
35
|
if ('[]'.includes(character) ||
|
|
36
|
-
character.charCodeAt(0) < 32 ||
|
|
36
|
+
(character.charCodeAt(0) < 32 && character !== '\t') ||
|
|
37
37
|
character === '\u007f')
|
|
38
38
|
return undefined;
|
|
39
39
|
parts[section] += character;
|
|
@@ -45,18 +45,28 @@ export function parseLinkedSyntax(raw, inTable = false) {
|
|
|
45
45
|
parts.target.trimStart().startsWith('^') ||
|
|
46
46
|
parts.fragment.trimStart().startsWith('^'))
|
|
47
47
|
return undefined;
|
|
48
|
+
const size = /^[ \t]*(\d{1,5})(?:x(\d{1,5}))?[ \t]*$/.exec(parts.alias);
|
|
48
49
|
if (embed &&
|
|
49
50
|
(!parts.target.trim() ||
|
|
50
|
-
(hasAlias &&
|
|
51
|
+
(hasAlias &&
|
|
52
|
+
(!size ||
|
|
53
|
+
Number(size[1]) < 1 ||
|
|
54
|
+
(size[2] != null && Number(size[2]) < 1)))))
|
|
51
55
|
return undefined;
|
|
56
|
+
const target = embed ? parts.target.trim() : parts.target;
|
|
57
|
+
const fragment = hasFragment
|
|
58
|
+
? embed
|
|
59
|
+
? parts.fragment.trim()
|
|
60
|
+
: parts.fragment
|
|
61
|
+
: null;
|
|
52
62
|
return {
|
|
53
63
|
raw,
|
|
54
|
-
target
|
|
55
|
-
fragment
|
|
64
|
+
target,
|
|
65
|
+
fragment,
|
|
56
66
|
label: !embed && hasAlias
|
|
57
67
|
? parts.alias
|
|
58
|
-
:
|
|
59
|
-
width: embed && hasAlias ? Number(
|
|
68
|
+
: target + (fragment != null ? `#${fragment}` : ''),
|
|
69
|
+
width: embed && hasAlias ? Number(size[1]) : null,
|
|
60
70
|
embed,
|
|
61
71
|
inTable,
|
|
62
72
|
};
|
|
@@ -67,7 +77,7 @@ function linkedTokenizer(embed) {
|
|
|
67
77
|
let index = 0, raw = '';
|
|
68
78
|
return opening;
|
|
69
79
|
function consume(code) {
|
|
70
|
-
raw += String.fromCodePoint(code);
|
|
80
|
+
raw += code === -2 ? '\t' : code === -1 ? ' ' : String.fromCodePoint(code);
|
|
71
81
|
effects.consume(code);
|
|
72
82
|
}
|
|
73
83
|
function opening(code) {
|
|
@@ -80,7 +90,9 @@ function linkedTokenizer(embed) {
|
|
|
80
90
|
return index === prefix.length ? body : opening;
|
|
81
91
|
}
|
|
82
92
|
function body(code) {
|
|
83
|
-
if (code === null ||
|
|
93
|
+
if (code === null ||
|
|
94
|
+
(code < 32 && code !== -2 && code !== -1 && code !== 9) ||
|
|
95
|
+
code === 91)
|
|
84
96
|
return nok(code);
|
|
85
97
|
consume(code);
|
|
86
98
|
if (code === 92)
|
|
@@ -161,7 +173,7 @@ export function namedFileMarkdown(node, inTable = false) {
|
|
|
161
173
|
if (authoredInTable)
|
|
162
174
|
raw = fromTable(raw);
|
|
163
175
|
if (original != null)
|
|
164
|
-
raw = raw.replace(
|
|
176
|
+
raw = raw.replace(/\|[ \t]*\d{1,5}(?:x\d{1,5})?[ \t]*\]\]$/, ']]');
|
|
165
177
|
if (width != null)
|
|
166
178
|
raw = `${raw.slice(0, -2)}|${width}]]`;
|
|
167
179
|
return inTable ? toTable(raw) : raw;
|