@diplodoc/transform 4.49.0 → 4.50.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.
package/lib/md.js CHANGED
@@ -22,6 +22,7 @@ const highlight_1 = __importDefault(require("./highlight"));
22
22
  const title_1 = __importDefault(require("./title"));
23
23
  const headings_1 = __importDefault(require("./headings"));
24
24
  const sanitize_1 = __importDefault(require("./sanitize"));
25
+ const ol_attr_conversion_1 = require("./plugins/ol-attr-conversion");
25
26
  function initMarkdownIt(options) {
26
27
  const { allowHTML = false, linkify = false, breaks = true, highlightLangs = {}, disableRules = [], } = options;
27
28
  const highlight = (0, highlight_1.default)(highlightLangs);
@@ -70,6 +71,7 @@ function initPlugins(md, options, pluginOptions) {
70
71
  const { linkify = false, linkifyTlds, leftDelimiter = '{', rightDelimiter = '}', plugins = plugins_1.default, } = options;
71
72
  // Need for ids of headers
72
73
  md.use(markdown_it_attrs_1.default, { leftDelimiter, rightDelimiter });
74
+ md.use(ol_attr_conversion_1.olAttrConversion);
73
75
  plugins.forEach((plugin) => md.use(plugin, pluginOptions));
74
76
  if (linkify && linkifyTlds) {
75
77
  md.linkify.tlds(linkifyTlds, true);
package/lib/md.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"md.js","sourceRoot":"","sources":["../src/transform/md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"md.js","sourceRoot":"","sources":["../src/transform/md.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { MarkdownItPluginCb } from '../typings';
2
+ export declare const olAttrConversion: MarkdownItPluginCb;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.olAttrConversion = void 0;
4
+ const cssWhitelist = {
5
+ '--hier-list-start': true,
6
+ };
7
+ const olAttrConversion = (md) => {
8
+ md.core.ruler.after('block', 'olAttrs', (state) => {
9
+ var _a;
10
+ state.tokens.forEach((token) => {
11
+ const maybeStart = token.attrGet('start');
12
+ if (token.type === 'ordered_list_open' && maybeStart) {
13
+ token.attrSet('style', `--hier-list-start: ${Number(maybeStart) - 1};`);
14
+ }
15
+ });
16
+ (_a = state.env).additionalOptionsCssWhiteList || (_a.additionalOptionsCssWhiteList = {});
17
+ Object.assign(state.env.additionalOptionsCssWhiteList, cssWhitelist);
18
+ });
19
+ };
20
+ exports.olAttrConversion = olAttrConversion;
21
+ //# sourceMappingURL=ol-attr-conversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ol-attr-conversion.js","sourceRoot":"","sources":["../../src/transform/plugins/ol-attr-conversion.ts"],"names":[],"mappings":";;;AAEA,MAAM,YAAY,GAAG;IACjB,mBAAmB,EAAE,IAAI;CAC5B,CAAC;AAEK,MAAM,gBAAgB,GAAuB,CAAC,EAAE,EAAE,EAAE;IACvD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;;QAC9C,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE1C,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,UAAU,EAAE;gBAClD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,sBAAsB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3E;QACL,CAAC,CAAC,CAAC;QAEH,MAAA,KAAK,CAAC,GAAG,EAAC,6BAA6B,QAA7B,6BAA6B,GAAK,EAAE,EAAC;QAE/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diplodoc/transform",
3
- "version": "4.49.0",
3
+ "version": "4.50.0",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -2,6 +2,7 @@
2
2
 
3
3
  @import 'private';
4
4
  @import 'brand';
5
+ @import 'lists';
5
6
 
6
7
  @mixin removeMarginForEdgeChildren {
7
8
  & > *:first-child {
@@ -303,24 +304,6 @@
303
304
  margin-bottom: 0;
304
305
  }
305
306
 
306
- ol > li {
307
- &::marker {
308
- content: counter(list-item) '. ';
309
- }
310
-
311
- & > ol > li::marker {
312
- content: counters(list-item, '.') '. ';
313
- }
314
- }
315
-
316
- &.yfm_no-list-reset ol,
317
- ol.yfm_no-list-reset {
318
- // No direct ancestor (>) combinator to preserve legacy behavior
319
- & > li::marker {
320
- content: unset;
321
- }
322
- }
323
-
324
307
  li {
325
308
  word-wrap: break-word;
326
309
  }
@@ -0,0 +1,71 @@
1
+ @use 'sass:list';
2
+ @use 'sass:string';
3
+
4
+ @function get-counter-ident($depth) {
5
+ $ident: hier-list-item;
6
+
7
+ @for $i from 0 to $depth {
8
+ $ident: sub-#{$ident};
9
+ }
10
+
11
+ @return $ident;
12
+ }
13
+
14
+ @function get-selector($depth) {
15
+ $selector: ol;
16
+
17
+ @for $i from 0 to $depth {
18
+ $selector: '#{$selector} > li > ol';
19
+ }
20
+
21
+ @return $selector;
22
+ }
23
+
24
+ @function get-marker-content($idents) {
25
+ $length: list.length($idents);
26
+ $content: '';
27
+
28
+ @for $i from 1 through $length {
29
+ @if $i > 1 {
30
+ $content: '#{$content} "."';
31
+ }
32
+
33
+ $content: '#{$content} counter(#{list.nth($idents, $i)})';
34
+ }
35
+
36
+ @return #{$content} '. ';
37
+ }
38
+
39
+ @mixin hier-list($max-depth) {
40
+ $ident-path: ();
41
+
42
+ @for $i from 0 through $max-depth {
43
+ $ident: get-counter-ident($i);
44
+ $ident-path: list.append($ident-path, $ident);
45
+
46
+ & #{get-selector($i)} {
47
+ --hier-list-start: 0;
48
+ counter-reset: #{$ident} var(--hier-list-start);
49
+
50
+ & > li {
51
+ counter-increment: $ident;
52
+
53
+ &::marker {
54
+ content: get-marker-content($ident-path);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ .yfm {
62
+ @include hier-list(5);
63
+
64
+ &.yfm_no-list-reset ol,
65
+ ol.yfm_no-list-reset {
66
+ // No direct ancestor (>) combinator to preserve legacy behavior
67
+ & > li::marker {
68
+ content: unset;
69
+ }
70
+ }
71
+ }
@@ -11,6 +11,7 @@ import makeHighlight from './highlight';
11
11
  import extractTitle from './title';
12
12
  import getHeadings from './headings';
13
13
  import sanitizeHtml from './sanitize';
14
+ import {olAttrConversion} from './plugins/ol-attr-conversion';
14
15
 
15
16
  function initMarkdownIt(options: OptionsType) {
16
17
  const {
@@ -98,6 +99,7 @@ function initPlugins(md: MarkdownIt, options: OptionsType, pluginOptions: Markdo
98
99
 
99
100
  // Need for ids of headers
100
101
  md.use(attrs, {leftDelimiter, rightDelimiter});
102
+ md.use(olAttrConversion);
101
103
 
102
104
  plugins.forEach((plugin) => md.use(plugin, pluginOptions));
103
105
 
@@ -0,0 +1,21 @@
1
+ import {MarkdownItPluginCb} from '../typings';
2
+
3
+ const cssWhitelist = {
4
+ '--hier-list-start': true,
5
+ };
6
+
7
+ export const olAttrConversion: MarkdownItPluginCb = (md) => {
8
+ md.core.ruler.after('block', 'olAttrs', (state) => {
9
+ state.tokens.forEach((token) => {
10
+ const maybeStart = token.attrGet('start');
11
+
12
+ if (token.type === 'ordered_list_open' && maybeStart) {
13
+ token.attrSet('style', `--hier-list-start: ${Number(maybeStart) - 1};`);
14
+ }
15
+ });
16
+
17
+ state.env.additionalOptionsCssWhiteList ||= {};
18
+
19
+ Object.assign(state.env.additionalOptionsCssWhiteList, cssWhitelist);
20
+ });
21
+ };