@diplodoc/transform 4.68.0 → 4.68.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/dist/css/_yfm-only.css.map +1 -1
- package/dist/css/_yfm-only.min.css.map +1 -1
- package/dist/css/base.css +1 -1
- package/dist/css/base.css.map +3 -3
- package/dist/css/base.min.css +1 -1
- package/dist/css/base.min.css.map +3 -3
- package/dist/css/print.css.map +1 -1
- package/dist/css/yfm.css +1 -1
- package/dist/css/yfm.css.map +3 -3
- package/dist/css/yfm.min.css +1 -1
- package/dist/css/yfm.min.css.map +3 -3
- package/dist/scss/_highlight.scss +4 -1
- package/lib/plugins/checkbox/checkbox.js +19 -8
- package/lib/plugins/checkbox/checkbox.js.map +1 -1
- package/package.json +1 -1
- package/src/scss/_highlight.scss +4 -1
- package/src/transform/plugins/checkbox/checkbox.ts +28 -10
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
display: block;
|
|
4
4
|
overflow-x: auto;
|
|
5
5
|
padding: 16px;
|
|
6
|
-
background: var(
|
|
6
|
+
background: var(
|
|
7
|
+
--yfm-color-code-background,
|
|
8
|
+
var(--yfm-color-hljs-background, var(--yfm-color-hljs-background-private))
|
|
9
|
+
);
|
|
7
10
|
}
|
|
8
11
|
|
|
9
12
|
.hljs,
|
|
@@ -67,7 +67,11 @@ const checkboxReplace = function (_md, opts) {
|
|
|
67
67
|
/**
|
|
68
68
|
* content of label tag
|
|
69
69
|
*/
|
|
70
|
-
|
|
70
|
+
token = new state.Token('inline', '', 0);
|
|
71
|
+
token.content = checkbox.content;
|
|
72
|
+
token.children = checkbox.tokens;
|
|
73
|
+
token.map = [checkbox.startLine, checkbox.endLine];
|
|
74
|
+
nodes.push(token);
|
|
71
75
|
/**
|
|
72
76
|
* closing tags
|
|
73
77
|
*/
|
|
@@ -96,6 +100,7 @@ const checkboxReplace = function (_md, opts) {
|
|
|
96
100
|
const first = checkbox.tokens[0];
|
|
97
101
|
// remove checkbox markup [X]␣ at start of text content
|
|
98
102
|
first.content = first.content.slice(4);
|
|
103
|
+
checkbox.content = checkbox.content.trim().slice(4);
|
|
99
104
|
checkboxTokens.push(...createTokens(state, checkbox));
|
|
100
105
|
}
|
|
101
106
|
// replace paragraph tokens with checkbox tokens
|
|
@@ -108,16 +113,20 @@ const checkboxReplace = function (_md, opts) {
|
|
|
108
113
|
};
|
|
109
114
|
exports.checkboxReplace = checkboxReplace;
|
|
110
115
|
function parseInlineContent(inlineToken, startLine) {
|
|
111
|
-
const
|
|
112
|
-
const lines = splitInlineTokensByBreaks(children);
|
|
116
|
+
const lines = splitInlineTokensByBreaks(inlineToken);
|
|
113
117
|
return parseCheckboxesByLines(lines, startLine);
|
|
114
118
|
}
|
|
115
|
-
function splitInlineTokensByBreaks(
|
|
119
|
+
function splitInlineTokensByBreaks(inlineToken) {
|
|
120
|
+
const tokens = inlineToken.children || [];
|
|
121
|
+
const contentLines = inlineToken.content.split('\n');
|
|
116
122
|
const lines = [];
|
|
117
123
|
let lineIdx = 0;
|
|
118
124
|
for (const token of tokens) {
|
|
119
|
-
lines[lineIdx] || (lines[lineIdx] =
|
|
120
|
-
|
|
125
|
+
lines[lineIdx] || (lines[lineIdx] = {
|
|
126
|
+
tokens: [],
|
|
127
|
+
content: contentLines[lineIdx],
|
|
128
|
+
});
|
|
129
|
+
lines[lineIdx].tokens.push(token);
|
|
121
130
|
if (isBreakToken(token)) {
|
|
122
131
|
lineIdx += 1;
|
|
123
132
|
}
|
|
@@ -130,7 +139,7 @@ function parseCheckboxesByLines(lines, startLine) {
|
|
|
130
139
|
let checkboxIdx = -1;
|
|
131
140
|
for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
|
|
132
141
|
const line = lines[lineIdx];
|
|
133
|
-
const first = line === null || line === void 0 ? void 0 : line[0];
|
|
142
|
+
const first = line === null || line === void 0 ? void 0 : line.tokens[0];
|
|
134
143
|
if (!first) {
|
|
135
144
|
continue;
|
|
136
145
|
}
|
|
@@ -144,12 +153,14 @@ function parseCheckboxesByLines(lines, startLine) {
|
|
|
144
153
|
checkboxIdx += 1;
|
|
145
154
|
checkboxes[checkboxIdx] || (checkboxes[checkboxIdx] = {
|
|
146
155
|
tokens: [],
|
|
156
|
+
content: '',
|
|
147
157
|
checked: isChecked(match[1]),
|
|
148
158
|
startLine: startLine + lineIdx,
|
|
149
159
|
endLine: startLine + lineIdx + 1,
|
|
150
160
|
});
|
|
151
161
|
}
|
|
152
|
-
checkboxes[checkboxIdx].tokens.push(...line);
|
|
162
|
+
checkboxes[checkboxIdx].tokens.push(...line.tokens);
|
|
163
|
+
checkboxes[checkboxIdx].content += line.content + '\n';
|
|
153
164
|
checkboxes[checkboxIdx].endLine = startLine + lineIdx + 1;
|
|
154
165
|
}
|
|
155
166
|
return checkboxes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/transform/plugins/checkbox/checkbox.ts"],"names":[],"mappings":";;;AAKA,6CAA6C;AAChC,QAAA,OAAO,GAAG,0BAA0B,CAAC;AACrC,QAAA,iBAAiB,GAAG;IAC7B,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,aAAa,EAAE,gBAAgB;IAC/B,aAAa,EAAE,gBAAgB;IAC/B,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;CACpC,CAAC;
|
|
1
|
+
{"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../../src/transform/plugins/checkbox/checkbox.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/scss/_highlight.scss
CHANGED
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
display: block;
|
|
4
4
|
overflow-x: auto;
|
|
5
5
|
padding: 16px;
|
|
6
|
-
background: var(
|
|
6
|
+
background: var(
|
|
7
|
+
--yfm-color-code-background,
|
|
8
|
+
var(--yfm-color-hljs-background, var(--yfm-color-hljs-background-private))
|
|
9
|
+
);
|
|
7
10
|
}
|
|
8
11
|
|
|
9
12
|
.hljs,
|
|
@@ -17,11 +17,17 @@ export const CheckboxTokenType = {
|
|
|
17
17
|
|
|
18
18
|
type ParsedCheckbox = {
|
|
19
19
|
tokens: Token[];
|
|
20
|
+
content: string;
|
|
20
21
|
startLine: number;
|
|
21
22
|
endLine: number;
|
|
22
23
|
checked: boolean;
|
|
23
24
|
};
|
|
24
25
|
|
|
26
|
+
type ContentLine = {
|
|
27
|
+
tokens: Token[];
|
|
28
|
+
content: string;
|
|
29
|
+
};
|
|
30
|
+
|
|
25
31
|
function matchOpenToken(tokens: Token[], i: number) {
|
|
26
32
|
if (tokens[i].type !== 'paragraph_open' || tokens[i + 1].type !== 'inline') {
|
|
27
33
|
return false;
|
|
@@ -90,7 +96,11 @@ export const checkboxReplace = function (_md: MarkdownIt, opts?: CheckboxOptions
|
|
|
90
96
|
/**
|
|
91
97
|
* content of label tag
|
|
92
98
|
*/
|
|
93
|
-
|
|
99
|
+
token = new state.Token('inline', '', 0);
|
|
100
|
+
token.content = checkbox.content;
|
|
101
|
+
token.children = checkbox.tokens;
|
|
102
|
+
token.map = [checkbox.startLine, checkbox.endLine];
|
|
103
|
+
nodes.push(token);
|
|
94
104
|
|
|
95
105
|
/**
|
|
96
106
|
* closing tags
|
|
@@ -123,6 +133,7 @@ export const checkboxReplace = function (_md: MarkdownIt, opts?: CheckboxOptions
|
|
|
123
133
|
const first = checkbox.tokens[0];
|
|
124
134
|
// remove checkbox markup [X]␣ at start of text content
|
|
125
135
|
first.content = first.content.slice(4);
|
|
136
|
+
checkbox.content = checkbox.content.trim().slice(4);
|
|
126
137
|
checkboxTokens.push(...createTokens(state, checkbox));
|
|
127
138
|
}
|
|
128
139
|
|
|
@@ -136,17 +147,22 @@ export const checkboxReplace = function (_md: MarkdownIt, opts?: CheckboxOptions
|
|
|
136
147
|
};
|
|
137
148
|
|
|
138
149
|
function parseInlineContent(inlineToken: Token, startLine: number): ParsedCheckbox[] {
|
|
139
|
-
const
|
|
140
|
-
const lines = splitInlineTokensByBreaks(children);
|
|
150
|
+
const lines = splitInlineTokensByBreaks(inlineToken);
|
|
141
151
|
return parseCheckboxesByLines(lines, startLine);
|
|
142
152
|
}
|
|
143
153
|
|
|
144
|
-
function splitInlineTokensByBreaks(
|
|
145
|
-
const
|
|
154
|
+
function splitInlineTokensByBreaks(inlineToken: Token): ContentLine[] {
|
|
155
|
+
const tokens = inlineToken.children || [];
|
|
156
|
+
const contentLines = inlineToken.content.split('\n');
|
|
157
|
+
|
|
158
|
+
const lines: ContentLine[] = [];
|
|
146
159
|
let lineIdx = 0;
|
|
147
160
|
for (const token of tokens) {
|
|
148
|
-
lines[lineIdx] ||=
|
|
149
|
-
|
|
161
|
+
lines[lineIdx] ||= {
|
|
162
|
+
tokens: [],
|
|
163
|
+
content: contentLines[lineIdx],
|
|
164
|
+
};
|
|
165
|
+
lines[lineIdx].tokens.push(token);
|
|
150
166
|
|
|
151
167
|
if (isBreakToken(token)) {
|
|
152
168
|
lineIdx += 1;
|
|
@@ -156,13 +172,13 @@ function splitInlineTokensByBreaks(tokens: Token[]): Token[][] {
|
|
|
156
172
|
return lines;
|
|
157
173
|
}
|
|
158
174
|
|
|
159
|
-
function parseCheckboxesByLines(lines:
|
|
175
|
+
function parseCheckboxesByLines(lines: ContentLine[], startLine: number): ParsedCheckbox[] {
|
|
160
176
|
const checkboxes: ParsedCheckbox[] = [];
|
|
161
177
|
|
|
162
178
|
let checkboxIdx = -1;
|
|
163
179
|
for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
|
|
164
180
|
const line = lines[lineIdx];
|
|
165
|
-
const first = line?.[0];
|
|
181
|
+
const first = line?.tokens[0];
|
|
166
182
|
if (!first) {
|
|
167
183
|
continue;
|
|
168
184
|
}
|
|
@@ -178,13 +194,15 @@ function parseCheckboxesByLines(lines: Token[][], startLine: number): ParsedChec
|
|
|
178
194
|
checkboxIdx += 1;
|
|
179
195
|
checkboxes[checkboxIdx] ||= {
|
|
180
196
|
tokens: [],
|
|
197
|
+
content: '',
|
|
181
198
|
checked: isChecked(match[1]),
|
|
182
199
|
startLine: startLine + lineIdx,
|
|
183
200
|
endLine: startLine + lineIdx + 1,
|
|
184
201
|
};
|
|
185
202
|
}
|
|
186
203
|
|
|
187
|
-
checkboxes[checkboxIdx].tokens.push(...line);
|
|
204
|
+
checkboxes[checkboxIdx].tokens.push(...line.tokens);
|
|
205
|
+
checkboxes[checkboxIdx].content += line.content + '\n';
|
|
188
206
|
checkboxes[checkboxIdx].endLine = startLine + lineIdx + 1;
|
|
189
207
|
}
|
|
190
208
|
|