@diplodoc/transform 4.45.2 → 4.45.4

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/js/yfm.js CHANGED
@@ -60,25 +60,25 @@
60
60
 
61
61
  // node_modules/@diplodoc/cut-extension/build/runtime/index.js
62
62
  (() => {
63
- var c = "yfm_cut", i = { CUT: ".yfm .yfm-cut", TITLE: ".yfm .yfm-cut-title", CONTENT: ".yfm .yfm-cut-content" }, n = { OPEN: "open" };
64
- var C = (g) => {
63
+ var i = "yfm_cut", I = { CUT: ".yfm .yfm-cut", TITLE: ".yfm .yfm-cut-title", CONTENT: ".yfm .yfm-cut-content" }, n = { OPEN: "open" };
64
+ var o = (g) => {
65
65
  let t = g.composedPath();
66
66
  return Array.isArray(t) && t.length > 0 ? t[0] : g.target;
67
- }, o = (g) => {
68
- let t = C(g);
67
+ }, l = (g) => {
68
+ let t = o(g);
69
69
  return !t || !t.matches;
70
70
  };
71
- var I = class {
71
+ var c = class {
72
72
  constructor(t) {
73
73
  __publicField(this, "__doc");
74
74
  __publicField(this, "_onDocClick", (t) => {
75
- if (o(t)) return;
75
+ if (l(t)) return;
76
76
  let e = this._findTitleInPath(t);
77
77
  e && this._toggleCut(e);
78
78
  });
79
79
  __publicField(this, "_matchTitle", (t) => {
80
80
  var _a;
81
- return t instanceof HTMLElement ? (_a = t == null ? void 0 : t.matches) == null ? void 0 : _a.call(t, i.TITLE) : false;
81
+ return t instanceof HTMLElement ? (_a = t == null ? void 0 : t.matches) == null ? void 0 : _a.call(t, I.TITLE) : false;
82
82
  });
83
83
  this.__doc = t, this.__doc.addEventListener("click", this._onDocClick);
84
84
  }
@@ -87,7 +87,7 @@
87
87
  }
88
88
  focusActiveCut() {
89
89
  let t = window.location.hash.slice(1), e = document.getElementById(t);
90
- e instanceof HTMLElement && e.matches(i.CUT) && (e.classList.toggle(n.OPEN), e.setAttribute("open", "true"), setTimeout(() => {
90
+ e instanceof HTMLElement && e.matches(I.CUT) && (e.classList.toggle(n.OPEN), e.setAttribute("open", "true"), setTimeout(() => {
91
91
  e.classList.add("cut-highlight"), e.scrollIntoView();
92
92
  }, 70), setTimeout(() => {
93
93
  e.classList.remove("cut-highlight");
@@ -95,7 +95,7 @@
95
95
  }
96
96
  _findTitleInPath(t) {
97
97
  var _a, _b;
98
- let e = C(t);
98
+ let e = o(t);
99
99
  return this._matchTitle(e) ? e : (_b = (_a = t.composedPath) == null ? void 0 : _a.call(t)) == null ? void 0 : _b.find(this._matchTitle);
100
100
  }
101
101
  _toggleCut(t) {
@@ -103,7 +103,7 @@
103
103
  (_a = t.parentElement) == null ? void 0 : _a.classList.toggle(n.OPEN);
104
104
  }
105
105
  };
106
- typeof window < "u" && typeof document < "u" && !window[c] && (window[c] = new I(document));
106
+ typeof window < "u" && typeof document < "u" && !window[i] && (window[i] = new c(document));
107
107
  })();
108
108
 
109
109
  // node_modules/@diplodoc/tabs-extension/build/runtime/index.js
@@ -1,8 +1,10 @@
1
+ import { Token } from 'markdown-it';
1
2
  import { MarkdownItPluginOpts } from '../typings';
2
3
  declare type Options = MarkdownItPluginOpts & {
3
4
  destPath: string;
4
5
  copyFile: (path: string, dest: string) => void;
5
6
  singlePage: boolean;
7
+ tokenStream: Token[];
6
8
  };
7
9
  declare const collect: (input: string, options: Options) => string | null;
8
10
  export = collect;
@@ -1,18 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const markdown_it_1 = __importDefault(require("markdown-it"));
6
2
  const path_1 = require("path");
7
3
  const utils_1 = require("../../utils");
8
4
  const utilsFS_1 = require("../../utilsFS");
9
- const imsize_1 = __importDefault(require("../imsize"));
10
5
  const collect = (input, options) => {
11
- const md = new markdown_it_1.default().use(imsize_1.default);
12
- const { root, path, destPath = '', copyFile, singlePage } = options;
13
- const tokens = md.parse(input, {});
6
+ const { root, path, destPath = '', copyFile, singlePage, tokenStream } = options;
14
7
  let result = input;
15
- tokens.forEach((token) => {
8
+ tokenStream.forEach((token) => {
16
9
  if (token.type !== 'inline') {
17
10
  return;
18
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/transform/plugins/images/collect.ts"],"names":[],"mappings":";;;;AAAA,8DAAqC;AACrC,+BAA8B;AAE9B,uCAAuC;AACvC,2CAAkD;AAClD,uDAA+B;AAS/B,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAE,EAAE;IAChD,MAAM,EAAE,GAAG,IAAI,qBAAU,EAAE,CAAC,GAAG,CAAC,gBAAM,CAAC,CAAC;IAExC,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC;IAClE,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEtC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5B,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC7B,OAAO;aACV;YAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE;gBAClB,OAAO;aACV;YAED,MAAM,UAAU,GAAG,IAAA,6BAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE1D,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,6BAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACxC;YAED,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE;QACZ,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,iBAAS,OAAO,CAAC"}
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/transform/plugins/images/collect.ts"],"names":[],"mappings":";AACA,+BAA8B;AAE9B,uCAAuC;AACvC,2CAAkD;AAUlD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,OAAgB,EAAE,EAAE;IAChD,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IAE/E,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QAEtC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5B,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC7B,OAAO;aACV;YAED,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAE5C,IAAI,CAAC,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE;gBAClB,OAAO;aACV;YAED,MAAM,UAAU,GAAG,IAAA,6BAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAE1D,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBAC5C,MAAM,MAAM,GAAG,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,6BAAmB,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAE9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aACxC;YAED,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,UAAU,EAAE;QACZ,OAAO,MAAM,CAAC;KACjB;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,iBAAS,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.45.2",
3
+ "version": "4.45.4",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -47,7 +47,7 @@
47
47
  "postinstall": "cd playground && npm ci --ignore-scripts || true"
48
48
  },
49
49
  "dependencies": {
50
- "@diplodoc/cut-extension": "^0.7.1",
50
+ "@diplodoc/cut-extension": "^0.7.2",
51
51
  "@diplodoc/file-extension": "^0.2.0",
52
52
  "@diplodoc/tabs-extension": "^3.5.0",
53
53
  "chalk": "^4.1.2",
@@ -22,6 +22,7 @@
22
22
  line-height: 20px;
23
23
  word-wrap: break-word;
24
24
  color: var(--yfm-color-text);
25
+ tab-size: var(--yfm-tab-size, inherit);
25
26
 
26
27
  * {
27
28
  box-sizing: border-box;
@@ -286,12 +287,6 @@
286
287
 
287
288
  dd {
288
289
  margin-left: 0;
289
-
290
- & > ol:first-child,
291
- & > ul:first-child,
292
- & > dd:first-child {
293
- padding-left: 0;
294
- }
295
290
  }
296
291
 
297
292
  ul,
@@ -307,22 +302,29 @@
307
302
  margin-bottom: 0;
308
303
  }
309
304
 
310
- &:not(.yfm_no-list-reset) {
311
- ol {
312
- list-style-type: none;
313
- counter-reset: list;
305
+ ol {
306
+ counter-reset: list;
307
+
308
+ & > li {
309
+ position: relative;
310
+ counter-increment: list;
311
+ }
312
+ }
313
+
314
+ ol > li > ol > li::marker {
315
+ content: counters(list, '.') '. ';
316
+ }
317
+
318
+ :not(ol > li) > ol > li::marker {
319
+ content: counter(list) '. ';
320
+ }
314
321
 
315
- & > li {
316
- position: relative;
317
- counter-increment: list;
322
+ ol.yfm_no-list-reset {
323
+ counter-reset: unset;
318
324
 
319
- &::before {
320
- position: absolute;
321
- right: 100%;
322
- margin-right: 4px;
323
- content: counters(list, '.') '. ';
324
- }
325
- }
325
+ // No direct ancestor (>) combinator to preserve legacy behavior
326
+ & li::marker {
327
+ content: unset;
326
328
  }
327
329
  }
328
330
 
@@ -346,6 +348,7 @@
346
348
  font-size: 0.875em;
347
349
  white-space: pre-wrap;
348
350
  color: var(--yfm-color-inline-code);
351
+ tab-size: var(--yfm-tab-size-code, inherit);
349
352
  }
350
353
 
351
354
  pre {
@@ -17,17 +17,3 @@
17
17
  }
18
18
  }
19
19
  }
20
-
21
- .yfm-cut-content {
22
- .yfm:not(.yfm_no-list-reset) & ol {
23
- counter-reset: cut-list;
24
-
25
- & > li {
26
- counter-increment: cut-list;
27
-
28
- &::before {
29
- content: counters(cut-list, '.') '. ';
30
- }
31
- }
32
- }
33
- }
@@ -1,25 +1,23 @@
1
- import MarkdownIt from 'markdown-it';
1
+ import {Token} from 'markdown-it';
2
2
  import {relative} from 'path';
3
3
 
4
4
  import {isLocalUrl} from '../../utils';
5
5
  import {resolveRelativePath} from '../../utilsFS';
6
- import imsize from '../imsize';
7
6
  import {MarkdownItPluginOpts} from '../typings';
8
7
 
9
8
  type Options = MarkdownItPluginOpts & {
10
9
  destPath: string;
11
10
  copyFile: (path: string, dest: string) => void;
12
11
  singlePage: boolean;
12
+ tokenStream: Token[];
13
13
  };
14
14
 
15
15
  const collect = (input: string, options: Options) => {
16
- const md = new MarkdownIt().use(imsize);
16
+ const {root, path, destPath = '', copyFile, singlePage, tokenStream} = options;
17
17
 
18
- const {root, path, destPath = '', copyFile, singlePage} = options;
19
- const tokens = md.parse(input, {});
20
18
  let result = input;
21
19
 
22
- tokens.forEach((token) => {
20
+ tokenStream.forEach((token) => {
23
21
  if (token.type !== 'inline') {
24
22
  return;
25
23
  }