@diplodoc/transform 4.17.2 → 4.19.0

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 (42) hide show
  1. package/dist/css/print.css +12 -0
  2. package/dist/css/print.css.map +3 -3
  3. package/dist/css/yfm.css +83 -2
  4. package/dist/css/yfm.css.map +3 -3
  5. package/dist/css/yfm.min.css +1 -1
  6. package/dist/css/yfm.min.css.map +3 -3
  7. package/dist/js/yfm.js +99 -73
  8. package/dist/js/yfm.js.map +3 -3
  9. package/dist/js/yfm.min.js +1 -1
  10. package/dist/js/yfm.min.js.map +3 -3
  11. package/lib/liquid/conditions.js +1 -1
  12. package/lib/liquid/conditions.js.map +1 -1
  13. package/lib/liquid/index.js +3 -1
  14. package/lib/liquid/index.js.map +1 -1
  15. package/lib/liquid/lexical.d.ts +2 -0
  16. package/lib/liquid/lexical.js +4 -1
  17. package/lib/liquid/lexical.js.map +1 -1
  18. package/lib/liquid/substitutions.d.ts +1 -1
  19. package/lib/liquid/substitutions.js +29 -9
  20. package/lib/liquid/substitutions.js.map +1 -1
  21. package/lib/plugins/checkbox/checkbox.d.ts +14 -2
  22. package/lib/plugins/checkbox/checkbox.js +22 -10
  23. package/lib/plugins/checkbox/checkbox.js.map +1 -1
  24. package/lib/plugins/checkbox/index.d.ts +2 -2
  25. package/lib/plugins/checkbox/index.js.map +1 -1
  26. package/lib/plugins/table/index.js +160 -4
  27. package/lib/plugins/table/index.js.map +1 -1
  28. package/package.json +2 -2
  29. package/src/scss/_anchor.scss +2 -2
  30. package/src/scss/_table.scss +32 -0
  31. package/src/scss/print/cut.scss +1 -0
  32. package/src/scss/print/tabs.scss +6 -0
  33. package/src/scss/print/term.scss +10 -0
  34. package/src/scss/print.scss +2 -1
  35. package/src/scss/yfm.scss +1 -0
  36. package/src/transform/liquid/conditions.ts +1 -1
  37. package/src/transform/liquid/index.ts +4 -1
  38. package/src/transform/liquid/lexical.ts +2 -0
  39. package/src/transform/liquid/substitutions.ts +43 -9
  40. package/src/transform/plugins/checkbox/checkbox.ts +26 -11
  41. package/src/transform/plugins/checkbox/index.ts +2 -2
  42. package/src/transform/plugins/table/index.ts +178 -6
@@ -60,7 +60,7 @@ class StateIterator {
60
60
  }
61
61
  }
62
62
  }
63
- function getTableRows(state, startPosition, endPosition, startLine) {
63
+ function getTableRowPositions(state, startPosition, endPosition, startLine) {
64
64
  let endOfTable = null;
65
65
  let tableLevel = 0;
66
66
  let currentRow = [];
@@ -157,6 +157,143 @@ function getTableRows(state, startPosition, endPosition, startLine) {
157
157
  }
158
158
  return { rows, endOfTable };
159
159
  }
160
+ /**
161
+ * Removes the specified attribute from attributes in the content of a token.
162
+ *
163
+ * @param {Token} contentToken - The target token.
164
+ * @param {string} attr - The attribute to be removed from the token content.
165
+ *
166
+ * @return {void}
167
+ */
168
+ function removeAttrFromTokenContent(contentToken, attr) {
169
+ // Replace the attribute in the token content with an empty string.
170
+ const blockRegex = /\s*\{[^}]*}/;
171
+ const allAttrs = contentToken.content.match(blockRegex);
172
+ if (!allAttrs) {
173
+ return;
174
+ }
175
+ let replacedContent = allAttrs[0].replace(`.${attr}`, '');
176
+ if (replacedContent.trim() === '{}') {
177
+ replacedContent = '';
178
+ }
179
+ contentToken.content = contentToken.content.replace(allAttrs[0], replacedContent);
180
+ }
181
+ /**
182
+ * Extracts the class attribute from the given content token and applies it to the tdOpenToken.
183
+ * Preserves other attributes.
184
+ *
185
+ * @param {Token} contentToken - Search the content of this token for the class.
186
+ * @param {Token} tdOpenToken - Parent td_open token. Extracted class is applied to this token.
187
+ * @returns {void}
188
+ */
189
+ function extractAndApplyClassFromToken(contentToken, tdOpenToken) {
190
+ // Regex to find class attribute in any position within brackets
191
+ const classAttrRegex = /(?<=\{[^}]*)\.([-_a-zA-Z0-9]+)/g;
192
+ const classAttrMatch = classAttrRegex.exec(contentToken.content);
193
+ if (classAttrMatch) {
194
+ const classAttr = classAttrMatch[1];
195
+ tdOpenToken.attrSet('class', classAttr);
196
+ removeAttrFromTokenContent(contentToken, classAttr);
197
+ }
198
+ }
199
+ const COLSPAN_SYMBOL = '>';
200
+ const ROWSPAN_SYMBOL = '^';
201
+ /**
202
+ * Traverses through the content map, applying row/colspan attributes and marking the special cells for deletion.
203
+ * Upon encountering a symbol denoting a row span or a column span, proceed backwards in row or column
204
+ * until text cell is found. Upon finding the text cell, store the colspan or rowspan value.
205
+ * During the backward traversal, if the same symbol is encountered, increment the value of rowspan/colspan.
206
+ * Colspan symbol is ignored for the first column. Rowspan symbol is ignored for the first row
207
+ *
208
+ * @param contentMap string[][]
209
+ * @param tokenMap Token[][]
210
+ * @return {void}
211
+ */
212
+ const applySpans = (contentMap, tokenMap) => {
213
+ for (let i = 0; i < contentMap.length; i++) {
214
+ for (let j = 0; j < contentMap[0].length; j++) {
215
+ if (contentMap[i][j] === COLSPAN_SYMBOL) {
216
+ // skip the first column
217
+ if (j === 0) {
218
+ continue;
219
+ }
220
+ tokenMap[i][j].meta = { markForDeletion: true };
221
+ let colspanFactor = 2;
222
+ // traverse columns backwards
223
+ for (let col = j - 1; col >= 0; col--) {
224
+ if (contentMap[i][col] === COLSPAN_SYMBOL) {
225
+ colspanFactor++;
226
+ tokenMap[i][col].meta = { markForDeletion: true };
227
+ }
228
+ else if (contentMap[i][col] === ROWSPAN_SYMBOL) {
229
+ // Do nothing, this should be applied on the row that's being extended
230
+ break;
231
+ }
232
+ else {
233
+ tokenMap[i][col].attrSet('colspan', colspanFactor.toString());
234
+ break;
235
+ }
236
+ }
237
+ }
238
+ if (contentMap[i][j] === ROWSPAN_SYMBOL) {
239
+ // skip the first row
240
+ if (i === 0) {
241
+ continue;
242
+ }
243
+ tokenMap[i][j].meta = { markForDeletion: true };
244
+ let rowSpanFactor = 2;
245
+ // traverse rows upward
246
+ for (let row = i - 1; row >= 0; row--) {
247
+ if (contentMap[row][j] === ROWSPAN_SYMBOL) {
248
+ rowSpanFactor++;
249
+ tokenMap[row][j].meta = { markForDeletion: true };
250
+ }
251
+ else if (contentMap[row][j] === COLSPAN_SYMBOL) {
252
+ break;
253
+ }
254
+ else {
255
+ tokenMap[row][j].attrSet('rowspan', rowSpanFactor.toString());
256
+ break;
257
+ }
258
+ }
259
+ }
260
+ }
261
+ }
262
+ };
263
+ /**
264
+ * Removes td_open and matching td_close tokens and the content within them
265
+ *
266
+ * @param {number} tableStart - The index of the start of the table in the state tokens array.
267
+ * @param {Token[]} tokens - The array of tokens from state.
268
+ * @returns {void}
269
+ */
270
+ const clearTokens = (tableStart, tokens) => {
271
+ var _a;
272
+ // use splices array to avoid modifying the tokens array during iteration
273
+ const splices = [];
274
+ for (let i = tableStart; i < tokens.length; i++) {
275
+ if ((_a = tokens[i].meta) === null || _a === void 0 ? void 0 : _a.markForDeletion) {
276
+ // Use unshift instead of push so that the splices indexes are in reverse order.
277
+ // Reverse order guarantees that we don't mess up the indexes while removing the items.
278
+ splices.unshift([i]);
279
+ const level = tokens[i].level;
280
+ // find matching td_close with the same level
281
+ for (let j = i + 1; j < tokens.length; j++) {
282
+ if (tokens[j].type === 'yfm_td_close' && tokens[j].level === level) {
283
+ splices[0].push(j);
284
+ break;
285
+ }
286
+ }
287
+ }
288
+ }
289
+ splices.forEach(([start, end]) => {
290
+ // check that we have both start and end defined
291
+ // it's possible we didn't find td_close index
292
+ if (start && end) {
293
+ tokens.splice(start, end - start + 1);
294
+ }
295
+ });
296
+ };
160
297
  const yfmTable = (md) => {
161
298
  md.block.ruler.before('code', pluginName, (state, startLine, endLine, silent) => {
162
299
  let token;
@@ -172,7 +309,7 @@ const yfmTable = (md) => {
172
309
  if (silent) {
173
310
  return true;
174
311
  }
175
- const { rows, endOfTable } = getTableRows(state, startPosition, endPosition, startLine);
312
+ const { rows, endOfTable } = getTableRowPositions(state, startPosition, endPosition, startLine);
176
313
  if (!endOfTable) {
177
314
  token = state.push('__yfm_lint', '', 0);
178
315
  token.hidden = true;
@@ -183,19 +320,29 @@ const yfmTable = (md) => {
183
320
  const oldParentLineMax = state.lineMax;
184
321
  state.lineMax = endOfTable;
185
322
  state.line = startLine;
323
+ const tableStart = state.tokens.length;
186
324
  token = state.push('yfm_table_open', 'table', 1);
187
325
  token.map = [startLine, endOfTable];
188
326
  token = state.push('yfm_tbody_open', 'tbody', 1);
189
327
  token.map = [startLine + 1, endOfTable - 1];
190
328
  const maxRowLength = Math.max(...rows.map(([, , cols]) => cols.length));
329
+ // cellsMaps is a 2-D map of all td_open tokens in the table.
330
+ // cellsMap is used to access the table cells by [row][column] coordinates
331
+ const cellsMap = [];
332
+ // contentMap is a 2-D map of the text content within cells in the table.
333
+ // To apply spans, traverse the contentMap and modify the cells from cellsMap
334
+ const contentMap = [];
191
335
  for (let i = 0; i < rows.length; i++) {
192
336
  const [rowLineStarts, rowLineEnds, cols] = rows[i];
337
+ cellsMap.push([]);
338
+ contentMap.push([]);
193
339
  const rowLength = cols.length;
194
340
  token = state.push('yfm_tr_open', 'tr', 1);
195
341
  token.map = [rowLineStarts, rowLineEnds];
196
342
  for (let j = 0; j < cols.length; j++) {
197
343
  const [begin, end] = cols[j];
198
344
  token = state.push('yfm_td_open', 'td', 1);
345
+ cellsMap[i].push(token);
199
346
  token.map = [begin.line, end.line];
200
347
  const oldTshift = state.tShift[begin.line];
201
348
  const oldEMark = state.eMarks[end.line];
@@ -206,12 +353,19 @@ const yfmTable = (md) => {
206
353
  state.eMarks[end.line] = end.pos;
207
354
  state.lineMax = end.line + 1;
208
355
  state.md.block.tokenize(state, begin.line, end.line + 1);
356
+ const contentToken = state.tokens[state.tokens.length - 2];
357
+ // In case of ">" within a cell without whitespace it gets consumed as a blockquote.
358
+ // To handle that, check markup as well
359
+ const content = contentToken.content.trim() || contentToken.markup.trim();
360
+ contentMap[i].push(content);
361
+ token = state.push('yfm_td_close', 'td', -1);
362
+ state.tokens[state.tokens.length - 1].map = [end.line, end.line + 1];
209
363
  state.lineMax = oldLineMax;
210
364
  state.tShift[begin.line] = oldTshift;
211
365
  state.bMarks[begin.line] = oldBMark;
212
366
  state.eMarks[end.line] = oldEMark;
213
- token = state.push('yfm_td_close', 'td', -1);
214
- state.tokens[state.tokens.length - 1].map = [end.line, end.line + 1];
367
+ const rowTokens = cellsMap[cellsMap.length - 1];
368
+ extractAndApplyClassFromToken(contentToken, rowTokens[rowTokens.length - 1]);
215
369
  }
216
370
  if (rowLength < maxRowLength) {
217
371
  const emptyCellsCount = maxRowLength - rowLength;
@@ -222,6 +376,8 @@ const yfmTable = (md) => {
222
376
  }
223
377
  token = state.push('yfm_tr_close', 'tr', -1);
224
378
  }
379
+ applySpans(contentMap, cellsMap);
380
+ clearTokens(tableStart, state.tokens);
225
381
  token = state.push('yfm_tbody_close', 'tbody', -1);
226
382
  token = state.push('yfm_table_close', 'table', -1);
227
383
  state.tokens[state.tokens.length - 1].map = [endOfTable, endOfTable + 1];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/table/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.17.2",
3
+ "version": "4.19.0",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -40,7 +40,7 @@
40
40
  "typecheck": "tsc -p tsconfig.json --noEmit"
41
41
  },
42
42
  "dependencies": {
43
- "@diplodoc/tabs-extension": "^2.1.0",
43
+ "@diplodoc/tabs-extension": "^2.2.0",
44
44
  "chalk": "^4.1.2",
45
45
  "cheerio": "^1.0.0-rc.12",
46
46
  "css": "^3.0.0",
@@ -13,11 +13,11 @@
13
13
 
14
14
  .yfm-anchor::before {
15
15
  content: '#';
16
- visibility: hidden;
16
+ opacity: 0;
17
17
  }
18
18
 
19
19
  &:hover .yfm-anchor::before {
20
- visibility: visible;
20
+ opacity: 1;
21
21
  }
22
22
  }
23
23
 
@@ -0,0 +1,32 @@
1
+ .yfm table td {
2
+ &.cell-align-top-left,
3
+ &.cell-align-bottom-left {
4
+ text-align: start;
5
+ }
6
+
7
+ &.cell-align-top-center,
8
+ &.cell-align-center {
9
+ text-align: center;
10
+ }
11
+
12
+ &.cell-align-top-right,
13
+ &.cell-align-bottom-right {
14
+ text-align: end;
15
+ }
16
+
17
+ &.cell-align-top-left,
18
+ &.cell-align-top-center,
19
+ &.cell-align-top-right {
20
+ vertical-align: top;
21
+ }
22
+
23
+ &.cell-align-center {
24
+ vertical-align: middle;
25
+ }
26
+
27
+ &.cell-align-bottom-left,
28
+ &.cell-align-bottom-right {
29
+ vertical-align: bottom;
30
+ }
31
+ }
32
+
@@ -11,6 +11,7 @@
11
11
 
12
12
  &-content {
13
13
  height: auto;
14
+ display: block;
14
15
  padding: 5px 0 15px 30px;
15
16
  }
16
17
  }
@@ -5,6 +5,12 @@
5
5
  display: none;
6
6
  }
7
7
 
8
+ &-panel {
9
+ visibility: visible;
10
+ height: auto;
11
+ display: block;
12
+ }
13
+
8
14
  &-panel:before {
9
15
  content: attr(data-title);
10
16
  margin-bottom: -1px;
@@ -0,0 +1,10 @@
1
+ @media print {
2
+ .yfm {
3
+ .yfm-term {
4
+ &_title {
5
+ color: currentColor;
6
+ border-bottom: none;
7
+ }
8
+ }
9
+ }
10
+ }
@@ -3,4 +3,5 @@
3
3
  @import 'print/cut';
4
4
  @import 'print/note';
5
5
  @import 'print/table';
6
- @import 'print/tabs';
6
+ @import 'print/tabs';
7
+ @import 'print/term';
package/src/scss/yfm.scss CHANGED
@@ -6,5 +6,6 @@
6
6
  @import 'cut';
7
7
  @import 'file';
8
8
  @import 'term';
9
+ @import 'table';
9
10
 
10
11
  @import '@diplodoc/tabs-extension/runtime';
@@ -205,7 +205,7 @@ function inlineConditions(
205
205
 
206
206
  return {
207
207
  result: start + result + end,
208
- lastIndex: start.length + result.length,
208
+ lastIndex: start.length + result.length - tailLinebreak(ifTag.rawEnd).length,
209
209
  ifCon,
210
210
  };
211
211
  }
@@ -124,7 +124,10 @@ function liquid<
124
124
  output = applySubstitutions(output, vars, path);
125
125
  }
126
126
 
127
- output = conditionsInCode ? output : repairCode(output, codes);
127
+ if (!conditionsInCode && typeof output === 'string') {
128
+ output = repairCode(output, codes);
129
+ }
130
+
128
131
  codes.length = 0;
129
132
 
130
133
  if (withSourceMap) {
@@ -6,6 +6,7 @@ const quoted = new RegExp(`${singleQuoted.source}|${doubleQuoted.source}`);
6
6
  export const quoteBalanced = new RegExp(`(?:${quoted.source}|[^'"])*`);
7
7
 
8
8
  export const vars = /((not_var)?({{2}([. \w-|(),]+)}{2}))/gm;
9
+ export const singleVariable = /^{{2}([. \w-|(),]+)}{2}$/;
9
10
 
10
11
  // basic types
11
12
  const number = /-?\d+\.?\d*|\.?\d+/;
@@ -66,6 +67,7 @@ export const getParsedMethod = (exp: String) => {
66
67
 
67
68
  export const isLiteral = (str: string) => literalLine.test(str);
68
69
  export const isVariable = (str: string) => variableLine.test(str);
70
+ export const isSingleVariable = (str: string) => singleVariable.test(str);
69
71
 
70
72
  export function parseLiteral(str: string) {
71
73
  let res = str.match(numberLine);
@@ -4,11 +4,35 @@ import ArgvService from './services/argv';
4
4
  import getObject from '../getObject';
5
5
  import {evalExp} from './evaluation';
6
6
  import {log} from '../log';
7
- import {isVariable, vars as varsRe} from './lexical';
7
+ import {
8
+ isSingleVariable,
9
+ isVariable,
10
+ singleVariable as singleVariableRe,
11
+ vars as varsRe,
12
+ } from './lexical';
8
13
 
9
14
  const substitutions = (str: string, builtVars: Record<string, unknown>, path?: string) => {
10
15
  const {keepNotVar} = ArgvService.getConfig();
11
16
 
17
+ if (isSingleVariable(str)) {
18
+ const match = str.match(singleVariableRe);
19
+
20
+ if (!match) {
21
+ return str;
22
+ }
23
+
24
+ const trimVarPath = match[1].trim();
25
+ const value = substituteVariable(trimVarPath, builtVars);
26
+
27
+ if (value === undefined) {
28
+ logNotFoundVariable(trimVarPath, path);
29
+
30
+ return str;
31
+ }
32
+
33
+ return value;
34
+ }
35
+
12
36
  return str.replace(varsRe, (match, _groupNotVar, flag, groupVar, groupVarValue) => {
13
37
  if (flag) {
14
38
  return keepNotVar ? _groupNotVar : groupVar;
@@ -20,21 +44,31 @@ const substitutions = (str: string, builtVars: Record<string, unknown>, path?: s
20
44
  return groupVar;
21
45
  }
22
46
 
23
- let value;
24
- if (isVariable(trimVarPath)) {
25
- value = getObject(trimVarPath, builtVars);
26
- } else {
27
- value = evalExp(trimVarPath, builtVars);
28
- }
47
+ const value = substituteVariable(trimVarPath, builtVars);
29
48
 
30
49
  if (value === undefined) {
31
- value = match;
50
+ logNotFoundVariable(trimVarPath, path);
32
51
 
33
- log.warn(`Variable ${bold(trimVarPath)} not found${path ? ` in ${bold(path)}` : ''}`);
52
+ return match;
34
53
  }
35
54
 
36
55
  return value;
37
56
  });
38
57
  };
39
58
 
59
+ function logNotFoundVariable(varPath: string, path?: string) {
60
+ log.warn(`Variable ${bold(varPath)} not found${path ? ` in ${bold(path)}` : ''}`);
61
+ }
62
+
63
+ function substituteVariable(varPath: string, builtVars: Record<string, unknown>) {
64
+ let value;
65
+ if (isVariable(varPath)) {
66
+ value = getObject(varPath, builtVars);
67
+ } else {
68
+ value = evalExp(varPath, builtVars);
69
+ }
70
+
71
+ return value;
72
+ }
73
+
40
74
  export = substitutions;
@@ -1,9 +1,19 @@
1
1
  import type MarkdownIt from 'markdown-it';
2
+ import type Core from 'markdown-it/lib/parser_core';
2
3
  import type StateCore from 'markdown-it/lib/rules_core/state_core';
3
4
  import type Token from 'markdown-it/lib/token';
4
5
 
5
6
  // eslint-disable-next-line no-useless-escape
6
- const pattern = /^\[(X|\s|\_|\-)\]\s(.*)/i;
7
+ export const pattern = /^\[(X|\s|\_|\-)\]\s(.*)/i;
8
+ export const CheckboxTokenType = {
9
+ Checkbox: 'checkbox',
10
+ CheckboxOpen: 'checkbox_open',
11
+ CheckboxClose: 'checkbox_close',
12
+ CheckboxInput: 'checkbox_input',
13
+ CheckboxLabel: 'checkbox_label',
14
+ CheckboxLabelOpen: 'checkbox_label_open',
15
+ CheckboxLabelClose: 'checkbox_label_close',
16
+ } as const;
7
17
 
8
18
  function matchOpenToken(tokens: Token[], i: number) {
9
19
  return (
@@ -16,13 +26,16 @@ function matchOpenToken(tokens: Token[], i: number) {
16
26
  export type CheckboxOptions = {
17
27
  idPrefix?: string;
18
28
  divClass?: string;
29
+ /** @default true */
30
+ disabled?: boolean;
19
31
  };
20
32
 
21
- export const checkboxReplace = function (_md: MarkdownIt, opts: CheckboxOptions) {
33
+ export const checkboxReplace = function (_md: MarkdownIt, opts?: CheckboxOptions): Core.RuleCore {
22
34
  let lastId = 0;
23
- const defaults = {
35
+ const defaults: Required<CheckboxOptions> = {
24
36
  divClass: 'checkbox',
25
37
  idPrefix: 'checkbox',
38
+ disabled: true,
26
39
  };
27
40
  const options = Object.assign(defaults, opts);
28
41
 
@@ -33,7 +46,7 @@ export const checkboxReplace = function (_md: MarkdownIt, opts: CheckboxOptions)
33
46
  /**
34
47
  * <div class="checkbox">
35
48
  */
36
- token = new state.Token('checkbox_open', 'div', 1);
49
+ token = new state.Token(CheckboxTokenType.CheckboxOpen, 'div', 1);
37
50
  token.block = true;
38
51
  token.map = state.tokens[i].map;
39
52
  token.attrs = [['class', options.divClass]];
@@ -44,23 +57,25 @@ export const checkboxReplace = function (_md: MarkdownIt, opts: CheckboxOptions)
44
57
  */
45
58
  const id = options.idPrefix + lastId;
46
59
  lastId += 1;
47
- token = new state.Token('checkbox_input', 'input', 0);
60
+ token = new state.Token(CheckboxTokenType.CheckboxInput, 'input', 0);
48
61
  token.block = true;
49
62
  token.map = state.tokens[i].map;
50
63
  token.attrs = [
51
64
  ['type', 'checkbox'],
52
65
  ['id', id],
53
- ['disabled', ''],
54
66
  ];
67
+ if (options.disabled) {
68
+ token.attrSet('disabled', '');
69
+ }
55
70
  if (checked === true) {
56
- token.attrs.push(['checked', 'true']);
71
+ token.attrSet('checked', 'true');
57
72
  }
58
73
  nodes.push(token);
59
74
 
60
75
  /**
61
76
  * <label for="checkbox{n}">
62
77
  */
63
- token = new state.Token('checkbox_label_open', 'label', 1);
78
+ token = new state.Token(CheckboxTokenType.CheckboxLabelOpen, 'label', 1);
64
79
  token.attrs = [['for', id]];
65
80
  nodes.push(token);
66
81
 
@@ -73,11 +88,11 @@ export const checkboxReplace = function (_md: MarkdownIt, opts: CheckboxOptions)
73
88
  /**
74
89
  * closing tags
75
90
  */
76
- token = new state.Token('checkbox_label_close', 'label', -1);
91
+ token = new state.Token(CheckboxTokenType.CheckboxLabelClose, 'label', -1);
77
92
  token.block = true;
78
93
  token.map = state.tokens[i].map;
79
94
  nodes.push(token);
80
- token = new state.Token('checkbox_close', 'div', -1);
95
+ token = new state.Token(CheckboxTokenType.CheckboxClose, 'div', -1);
81
96
  token.block = true;
82
97
  token.map = state.tokens[i].map;
83
98
  nodes.push(token);
@@ -93,7 +108,7 @@ export const checkboxReplace = function (_md: MarkdownIt, opts: CheckboxOptions)
93
108
  }
94
109
  return createTokens(state, checked, label, i);
95
110
  };
96
- return function (state: StateCore) {
111
+ return function (state) {
97
112
  const blockTokens = state.tokens;
98
113
  for (let i = 0; i < blockTokens.length; i++) {
99
114
  const match = matchOpenToken(blockTokens, i);
@@ -1,4 +1,4 @@
1
- import MarkdownIt from 'markdown-it';
1
+ import type {PluginWithOptions} from 'markdown-it';
2
2
  import {CheckboxOptions, checkboxReplace} from './checkbox';
3
3
 
4
4
  /**
@@ -6,7 +6,7 @@ import {CheckboxOptions, checkboxReplace} from './checkbox';
6
6
  * Forked from https://github.com/mcecot/markdown-it-checkbox
7
7
  */
8
8
 
9
- const checkbox = (md: MarkdownIt, options: CheckboxOptions) => {
9
+ const checkbox: PluginWithOptions<CheckboxOptions> = (md, options) => {
10
10
  md.core.ruler.push('checkbox', checkboxReplace(md, options));
11
11
 
12
12
  return md;