@diplodoc/transform 4.13.1 → 4.14.1

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 (36) hide show
  1. package/dist/css/print.css.map +1 -1
  2. package/dist/css/yfm.css.map +1 -1
  3. package/dist/css/yfm.min.css.map +1 -1
  4. package/lib/headings.d.ts +1 -1
  5. package/lib/headings.js +8 -6
  6. package/lib/headings.js.map +1 -1
  7. package/lib/md.js +3 -1
  8. package/lib/md.js.map +1 -1
  9. package/lib/plugins/anchors/index.d.ts +1 -0
  10. package/lib/plugins/anchors/index.js +7 -5
  11. package/lib/plugins/anchors/index.js.map +1 -1
  12. package/lib/plugins/block-anchor/block-anchor.js +16 -8
  13. package/lib/plugins/block-anchor/block-anchor.js.map +1 -1
  14. package/lib/plugins/links/collect.js +1 -2
  15. package/lib/plugins/links/collect.js.map +1 -1
  16. package/lib/plugins/links/index.js +4 -10
  17. package/lib/plugins/links/index.js.map +1 -1
  18. package/lib/plugins/typings.d.ts +1 -0
  19. package/lib/typings.d.ts +3 -1
  20. package/lib/utils.d.ts +8 -0
  21. package/lib/utils.js +22 -1
  22. package/lib/utils.js.map +1 -1
  23. package/package.json +2 -3
  24. package/src/transform/headings.ts +9 -6
  25. package/src/transform/md.ts +4 -1
  26. package/src/transform/plugins/anchors/index.ts +18 -9
  27. package/src/transform/plugins/block-anchor/block-anchor.ts +19 -8
  28. package/src/transform/plugins/links/collect.ts +1 -2
  29. package/src/transform/plugins/links/index.ts +12 -14
  30. package/src/transform/plugins/typings.ts +1 -0
  31. package/src/transform/typings.ts +3 -1
  32. package/src/transform/utils.ts +35 -0
  33. package/lib/plugins/links/constants.d.ts +0 -1
  34. package/lib/plugins/links/constants.js +0 -5
  35. package/lib/plugins/links/constants.js.map +0 -1
  36. package/src/transform/plugins/links/constants.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/anchors/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/anchors/index.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderTokens = exports.replaceTokens = exports.TOKEN_NAME = void 0;
4
4
  const pattern = /^{%[^\S\r\n]*anchor[^\S\r\n]+([\w-]+)[^\S\r\n]*%}/;
5
5
  exports.TOKEN_NAME = 'anchor';
6
- function matchOpenToken(tokens, i) {
7
- var _a, _b, _c;
6
+ function isParagraph(tokens, i) {
8
7
  return (tokens[i].type === 'paragraph_open' &&
9
8
  tokens[i + 1].type === 'inline' &&
10
- tokens[i + 2].type === 'paragraph_close' &&
11
- ((_a = tokens[i + 1].children) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
12
- ((_b = tokens[i + 1].children) === null || _b === void 0 ? void 0 : _b[0].type) === 'text' &&
13
- pattern.exec((_c = tokens[i + 1].children) === null || _c === void 0 ? void 0 : _c[0].content));
9
+ tokens[i + 2].type === 'paragraph_close');
10
+ }
11
+ function hasSingleChildWithText(tokens, i) {
12
+ var _a, _b;
13
+ return ((_a = tokens[i + 1].children) === null || _a === void 0 ? void 0 : _a.length) === 1 && ((_b = tokens[i + 1].children) === null || _b === void 0 ? void 0 : _b[0].type) === 'text';
14
+ }
15
+ function matchOpenToken(tokens, i) {
16
+ var _a;
17
+ return (isParagraph(tokens, i) &&
18
+ hasSingleChildWithText(tokens, i) &&
19
+ pattern.exec((_a = tokens[i + 1].children) === null || _a === void 0 ? void 0 : _a[0].content));
14
20
  }
15
21
  function createAnchorToken(state, anchorId, position) {
16
22
  const token = new state.Token(exports.TOKEN_NAME, '', 0);
@@ -21,7 +27,7 @@ function createAnchorToken(state, anchorId, position) {
21
27
  }
22
28
  function replaceTokens(state) {
23
29
  const blockTokens = state.tokens;
24
- // i hate the idea of splicing the array while we're iterating over it
30
+ // I hate the idea of splicing the array while we're iterating over it
25
31
  // so first lets find all the places where we will need to splice it and then actually do the splicing
26
32
  const splicePointsMap = new Map();
27
33
  for (let i = 0; i < blockTokens.length; i++) {
@@ -31,7 +37,9 @@ function replaceTokens(state) {
31
37
  }
32
38
  splicePointsMap.set(i, match[1]);
33
39
  }
34
- splicePointsMap.forEach((anchorId, position) => {
40
+ Array.from(splicePointsMap)
41
+ .sort(([keyA], [keyB]) => keyB - keyA)
42
+ .forEach(([position, anchorId]) => {
35
43
  blockTokens.splice(position, 3, createAnchorToken(state, anchorId, position));
36
44
  });
37
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"block-anchor.js","sourceRoot":"","sources":["../../../src/transform/plugins/block-anchor/block-anchor.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,mDAAmD,CAAC;AACvD,QAAA,UAAU,GAAG,QAAQ,CAAC;AAEnC,SAAS,cAAc,CAAC,MAAe,EAAE,CAAS;;IAC9C,OAAO,CACH,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB;QACnC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB;QACxC,CAAA,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAE,MAAM,MAAK,CAAC;QACpC,CAAA,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAG,CAAC,EAAE,IAAI,MAAK,MAAM;QAC3C,OAAO,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAG,CAAC,EAAE,OAAiB,CAAC,CAC9D,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB,EAAE,QAAgB,EAAE,QAAgB;IAC3E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;IACvC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAgB;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,sEAAsE;IACtE,sGAAsG;IACtG,MAAM,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,KAAK,EAAE;YACR,SAAS;SACZ;QAED,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IACD,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC3C,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACP,CAAC;AAjBD,sCAiBC;AAED,SAAgB,YAAY,CAAC,MAAe,EAAE,GAAW;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,OAAO,UAAU,EAAE,4BAA4B,CAAC;AACpD,CAAC;AAJD,oCAIC"}
1
+ {"version":3,"file":"block-anchor.js","sourceRoot":"","sources":["../../../src/transform/plugins/block-anchor/block-anchor.ts"],"names":[],"mappings":";;;AAGA,MAAM,OAAO,GAAG,mDAAmD,CAAC;AACvD,QAAA,UAAU,GAAG,QAAQ,CAAC;AAEnC,SAAS,WAAW,CAAC,MAAe,EAAE,CAAS;IAC3C,OAAO,CACH,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB;QACnC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC/B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAC3C,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAe,EAAE,CAAS;;IACtD,OAAO,CAAA,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAE,MAAM,MAAK,CAAC,IAAI,CAAA,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAG,CAAC,EAAE,IAAI,MAAK,MAAM,CAAC;AAC/F,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,CAAS;;IAC9C,OAAO,CACH,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACtB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,0CAAG,CAAC,EAAE,OAAiB,CAAC,CAC9D,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB,EAAE,QAAgB,EAAE,QAAgB;IAC3E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC;IACvC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;IACzB,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAgB;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,sEAAsE;IACtE,sGAAsG;IACtG,MAAM,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,KAAK,EAAE;YACR,SAAS;SACZ;QAED,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IACD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;SACrC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE;QAC9B,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACX,CAAC;AAnBD,sCAmBC;AAED,SAAgB,YAAY,CAAC,MAAe,EAAE,GAAW;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC;IACzB,OAAO,UAAU,EAAE,4BAA4B,CAAC;AACpD,CAAC;AAJD,oCAIC"}
@@ -8,7 +8,6 @@ const url_1 = __importDefault(require("url"));
8
8
  const utils_1 = require("../../utils");
9
9
  const utilsFS_1 = require("../../utilsFS");
10
10
  const index_1 = __importDefault(require("./index"));
11
- const constants_1 = require("./constants");
12
11
  const replaceLinkHref = (input, href, newHref) => {
13
12
  /* Try not replace include syntax */
14
13
  return input.replace(`](${href})`, `](${newHref})`);
@@ -47,7 +46,7 @@ const collect = (input, options) => {
47
46
  }
48
47
  const { pathname, hash } = url_1.default.parse(href);
49
48
  if (pathname) {
50
- const isPageFile = constants_1.PAGE_LINK_REGEXP.test(pathname);
49
+ const isPageFile = utils_1.PAGE_LINK_REGEXP.test(pathname);
51
50
  if (isPageFile) {
52
51
  const newHref = (0, utilsFS_1.getSinglePageAnchorId)({
53
52
  root,
@@ -1 +1 @@
1
- {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/collect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/collect.ts"],"names":[],"mappings":"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"}
@@ -29,13 +29,7 @@ const url_1 = __importDefault(require("url"));
29
29
  const chalk_1 = require("chalk");
30
30
  const utils_1 = require("../../utils");
31
31
  const utilsFS_1 = require("../../utilsFS");
32
- const constants_1 = require("./constants");
33
32
  const path_1 = __importStar(require("path"));
34
- function defaultTransformLink(href) {
35
- var _a;
36
- const parsed = url_1.default.parse(href);
37
- return url_1.default.format(Object.assign(Object.assign({}, parsed), { pathname: (_a = parsed.pathname) === null || _a === void 0 ? void 0 : _a.replace(constants_1.PAGE_LINK_REGEXP, '.html') }));
38
- }
39
33
  function getTitleFromTokens(tokens) {
40
34
  let title = '';
41
35
  let i = 0;
@@ -93,7 +87,7 @@ function processLink(state, tokens, idx, opts) {
93
87
  if (pathname) {
94
88
  file = (0, path_1.resolve)(path_1.default.parse(currentPath).dir, pathname);
95
89
  fileExists = (0, utilsFS_1.isFileExists)(file);
96
- isPageFile = constants_1.PAGE_LINK_REGEXP.test(pathname);
90
+ isPageFile = utils_1.PAGE_LINK_REGEXP.test(pathname);
97
91
  if (isPageFile && !fileExists) {
98
92
  let needShowError = true;
99
93
  if (needSkipLinkFn) {
@@ -136,12 +130,12 @@ function processLink(state, tokens, idx, opts) {
136
130
  });
137
131
  }
138
132
  let newPathname = '';
139
- if (!(0, path_1.isAbsolute)(href) && currentPath !== startPath) {
140
- newPathname = (0, path_1.relative)((0, path_1.parse)(startPath).dir, file);
133
+ if (!(0, path_1.isAbsolute)(href)) {
134
+ newPathname = (0, utils_1.getPublicPath)(opts, file);
141
135
  href = url_1.default.format(Object.assign(Object.assign({}, url_1.default.parse(href)), { pathname: newPathname }));
142
136
  }
143
137
  if (pathname || newPathname) {
144
- const transformer = transformLink || defaultTransformLink;
138
+ const transformer = transformLink || utils_1.defaultTransformLink;
145
139
  linkToken.attrSet('href', transformer(href));
146
140
  }
147
141
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface MarkdownItPluginOpts {
5
5
  log: Logger;
6
6
  lang: 'ru' | 'en' | 'es' | 'fr' | 'cs' | 'ar' | 'he';
7
7
  root: string;
8
+ rootPublicPath: string;
8
9
  isLintRun: boolean;
9
10
  }
10
11
  export declare type MarkdownItPluginCb<T extends {} = {}> = {
package/lib/typings.d.ts CHANGED
@@ -38,8 +38,10 @@ export interface OptionsType {
38
38
  needFlatListHeadings?: boolean;
39
39
  plugins?: MarkdownItPluginCb<any>[];
40
40
  highlightLangs?: HighlightLangMap;
41
- root?: string;
42
41
  extractChangelogs?: boolean;
42
+ root?: string;
43
+ rootPublicPath?: string;
44
+ transformLink?: (href: string) => string;
43
45
  [x: string]: unknown;
44
46
  }
45
47
  export interface OutputType {
package/lib/utils.d.ts CHANGED
@@ -11,3 +11,11 @@ export declare function transformLinkToOriginalArticle(opts: {
11
11
  currentPath: string;
12
12
  }): string;
13
13
  export declare function getHrefTokenAttr(token: Token): string;
14
+ export declare const PAGE_LINK_REGEXP: RegExp;
15
+ export declare function defaultTransformLink(href: string): string;
16
+ export declare function getPublicPath({ path, root, rootPublicPath, transformLink, }: {
17
+ path?: string;
18
+ root?: string;
19
+ rootPublicPath?: string;
20
+ transformLink?: (href: string) => string;
21
+ }, input?: string | null): string;
package/lib/utils.js CHANGED
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getHrefTokenAttr = exports.transformLinkToOriginalArticle = exports.isExternalHref = exports.headingInfo = exports.findBlockTokens = exports.isLocalUrl = void 0;
6
+ exports.getPublicPath = exports.defaultTransformLink = exports.PAGE_LINK_REGEXP = exports.getHrefTokenAttr = exports.transformLinkToOriginalArticle = exports.isExternalHref = exports.headingInfo = exports.findBlockTokens = exports.isLocalUrl = void 0;
7
+ const url_1 = __importDefault(require("url"));
8
+ const path_1 = require("path");
4
9
  function isLocalUrl(url) {
5
10
  return !/^(?:[a-z]+:)?\/\//i.test(url);
6
11
  }
@@ -76,4 +81,20 @@ function getHrefTokenAttr(token) {
76
81
  return href;
77
82
  }
78
83
  exports.getHrefTokenAttr = getHrefTokenAttr;
84
+ exports.PAGE_LINK_REGEXP = /\.(md|ya?ml)$/i;
85
+ function defaultTransformLink(href) {
86
+ var _a;
87
+ const parsed = url_1.default.parse(href);
88
+ href = url_1.default.format(Object.assign(Object.assign({}, parsed), { pathname: (_a = parsed.pathname) === null || _a === void 0 ? void 0 : _a.replace(exports.PAGE_LINK_REGEXP, '.html') }));
89
+ return href;
90
+ }
91
+ exports.defaultTransformLink = defaultTransformLink;
92
+ function getPublicPath({ path, root, rootPublicPath, transformLink, }, input) {
93
+ const currentPath = input || path || '';
94
+ const filePath = (0, path_1.relative)((0, path_1.resolve)(root || '', rootPublicPath || ''), currentPath);
95
+ const transformer = transformLink || defaultTransformLink;
96
+ const href = transformer(filePath);
97
+ return href;
98
+ }
99
+ exports.getPublicPath = getPublicPath;
79
100
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/transform/utils.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,GAAW;IAClC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAFD,gCAEC;AAED,SAAgB,eAAe,CAAC,MAAe,EAAE,EAAU;IACvD,IAAI,WAAW,GAAY,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EACL,UAAU,EACV,KAAK,EACL,GAAG,CAAC;IACR,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,UAAU,EAAE;YACzC,IAAI,UAAU,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE;gBAC1E,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACZ,MAAM;aACT;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE;gBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,EAAE;oBAC/D,GAAG,GAAG,CAAC,CAAC;oBACR,MAAM;iBACT;qBAAM,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAChC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;iBACvB;aACJ;SACJ;QAED,IACI,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;YAClE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE;YAC1B,OAAO,KAAK,KAAK,WAAW,EAC9B;YACE,UAAU,GAAG,KAAK,CAAC;YACnB,KAAK,GAAG,CAAC,CAAC;SACb;QAED,CAAC,EAAE,CAAC;KACP;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACtD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KAC1C;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAxCD,0CAwCC;AAED,SAAgB,WAAW,CAAC,MAAe,EAAE,GAAW;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAEpC,IAAI,KAAK,GAAG,EAAE,EACV,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,WAAW,CAAC,QAAQ,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE;QAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YACvB,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;SAC1B;QAED,CAAC,EAAE,CAAC;KACP;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,KAAK,KAAL,KAAK,GAAK,WAAW,CAAC,OAAO,EAAC;IAE9B,OAAO;QACH,KAAK;QACL,KAAK;KACR,CAAC;AACN,CAAC;AAvBD,kCAuBC;AAED,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAFD,wCAEC;AAED,SAAgB,8BAA8B,CAAC,IAAyC;IACpF,MAAM,EAAC,IAAI,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;IAEjC,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAC5E,CAAC;AAJD,wEAIC;AAED,SAAgB,gBAAgB,CAAC,KAAY;IACzC,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI;QACA,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;KAC1B;IAAC,OAAO,CAAC,EAAE,GAAE;IAEd,OAAO,IAAI,CAAC;AAChB,CAAC;AAPD,4CAOC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/transform/utils.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.13.1",
3
+ "version": "4.14.1",
4
4
  "description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
5
5
  "keywords": [
6
6
  "markdown",
@@ -54,7 +54,7 @@
54
54
  "markdown-it-deflist": "2.1.0",
55
55
  "markdown-it-meta": "0.0.1",
56
56
  "markdown-it-sup": "1.0.0",
57
- "markdownlint": "^0.25.1",
57
+ "markdownlint": "^0.32.1",
58
58
  "markdownlint-rule-helpers": "0.17.2",
59
59
  "sanitize-html": "^2.11.0",
60
60
  "slugify": "1.6.5",
@@ -72,7 +72,6 @@
72
72
  "@types/lodash": "4.14.183",
73
73
  "@types/markdown-it": "12.2.3",
74
74
  "@types/markdown-it-attrs": "4.1.0",
75
- "@types/markdownlint": "0.18.0",
76
75
  "@types/node": "17.0.10",
77
76
  "@types/sanitize-html": "^2.9.3",
78
77
  "autoprefixer": "^10.4.15",
@@ -17,11 +17,13 @@ function getHref(token: Token) {
17
17
  return '#' + (token.attrGet('id') || '');
18
18
  }
19
19
 
20
- export = function getHeadings(tokens: Token[], needFlatListHeadings?: boolean) {
21
- return needFlatListHeadings ? getFlatListHeadings(tokens) : getFilteredHeadings(tokens);
20
+ export = function getHeadings(tokens: Token[], needFlatListHeadings?: boolean, href = '') {
21
+ return needFlatListHeadings
22
+ ? getFlatListHeadings(tokens, href)
23
+ : getFilteredHeadings(tokens, href);
22
24
  };
23
25
 
24
- function getFilteredHeadings(tokens: Token[]) {
26
+ function getFilteredHeadings(tokens: Token[], href: string) {
25
27
  const headings: Heading[] = [];
26
28
  let parents = [headings];
27
29
  let prevLevel;
@@ -33,7 +35,7 @@ function getFilteredHeadings(tokens: Token[]) {
33
35
  if (isHeading && level >= 2) {
34
36
  const entry = {
35
37
  title: getTitle(tokens[i + 1]),
36
- href: getHref(tokens[i]),
38
+ href: href + getHref(tokens[i]),
37
39
  level,
38
40
  };
39
41
  let closestParent = parents[parents.length - 1];
@@ -66,7 +68,8 @@ function getFilteredHeadings(tokens: Token[]) {
66
68
 
67
69
  return headings;
68
70
  }
69
- function getFlatListHeadings(tokens: Token[]) {
71
+
72
+ function getFlatListHeadings(tokens: Token[], href: string) {
70
73
  const headings: Heading[] = [];
71
74
 
72
75
  for (let i = 0; i < tokens.length; i++) {
@@ -79,7 +82,7 @@ function getFlatListHeadings(tokens: Token[]) {
79
82
 
80
83
  headings.push({
81
84
  title: getTitle(tokens[i + 1]),
82
- href: getHref(tokens[i]),
85
+ href: href + getHref(tokens[i]),
83
86
  level,
84
87
  });
85
88
  }
@@ -9,6 +9,7 @@ import attrs from 'markdown-it-attrs';
9
9
  import extractTitle from './title';
10
10
  import getHeadings from './headings';
11
11
  import sanitizeHtml from './sanitize';
12
+ import {getPublicPath} from './utils';
12
13
 
13
14
  function initMarkdownit(options: OptionsType) {
14
15
  const {allowHTML = false, linkify = false, breaks = true, highlightLangs = {}} = options;
@@ -85,6 +86,8 @@ function initParser(md: MarkdownIt, options: OptionsType, env: EnvType) {
85
86
  return (input: string) => {
86
87
  const {extractTitle: extractTitleOption, needTitle, needFlatListHeadings = false} = options;
87
88
 
89
+ const href = getPublicPath(options);
90
+
88
91
  let tokens = md.parse(input, env);
89
92
 
90
93
  if (extractTitleOption) {
@@ -104,7 +107,7 @@ function initParser(md: MarkdownIt, options: OptionsType, env: EnvType) {
104
107
  env.title = extractTitle(tokens).title;
105
108
  }
106
109
 
107
- env.headings = getHeadings(tokens, needFlatListHeadings);
110
+ env.headings = getHeadings(tokens, needFlatListHeadings, href);
108
111
 
109
112
  return tokens;
110
113
  };
@@ -1,7 +1,7 @@
1
1
  import {bold} from 'chalk';
2
2
  import GithubSlugger from 'github-slugger';
3
3
 
4
- import {headingInfo} from '../../utils';
4
+ import {getPublicPath, headingInfo} from '../../utils';
5
5
  import {CUSTOM_ID_EXCEPTION, CUSTOM_ID_REGEXP} from './constants';
6
6
  import StateCore from 'markdown-it/lib/rules_core/state_core';
7
7
  import Token from 'markdown-it/lib/token';
@@ -10,14 +10,20 @@ import {MarkdownItPluginCb} from '../typings';
10
10
 
11
11
  const slugify: (str: string, opts: {}) => string = require('slugify');
12
12
 
13
- function createLinkTokens(state: StateCore, id: string, title: string, setId = false) {
13
+ function createLinkTokens(
14
+ state: StateCore,
15
+ id: string,
16
+ title: string,
17
+ setId = false,
18
+ href: string,
19
+ ) {
14
20
  const open = new state.Token('link_open', 'a', 1);
15
21
  const close = new state.Token('link_close', 'a', -1);
16
22
 
17
23
  if (setId) {
18
24
  open.attrSet('id', id);
19
25
  }
20
- open.attrSet('href', '#' + id);
26
+ open.attrSet('href', href + '#' + id);
21
27
  open.attrSet('class', 'yfm-anchor');
22
28
  open.attrSet('aria-hidden', 'true');
23
29
 
@@ -58,6 +64,7 @@ const removeCustomId = (content: string) => {
58
64
 
59
65
  return content;
60
66
  };
67
+
61
68
  const removeCustomIds = (token: Token) => {
62
69
  token.content = removeCustomId(token.content);
63
70
  token.children?.forEach((child) => {
@@ -68,18 +75,20 @@ const removeCustomIds = (token: Token) => {
68
75
  interface Options {
69
76
  extractTitle?: boolean;
70
77
  supportGithubAnchors?: boolean;
78
+ transformLink: (v: string) => string;
71
79
  }
72
80
 
73
- const index: MarkdownItPluginCb<Options> = (
74
- md,
75
- {extractTitle, path, log, supportGithubAnchors},
76
- ) => {
81
+ const index: MarkdownItPluginCb<Options> = (md, options) => {
82
+ const {extractTitle, path, log, supportGithubAnchors} = options;
83
+
77
84
  const plugin = (state: StateCore) => {
78
85
  /* Do not use the plugin if it is included in the file */
79
86
  if (state.env.includes && state.env.includes.length) {
80
87
  return;
81
88
  }
82
89
 
90
+ const href = getPublicPath(options, state.env.path);
91
+
83
92
  const ids: Record<string, number> = {};
84
93
  const tokens = state.tokens;
85
94
  let i = 0;
@@ -132,12 +141,12 @@ const index: MarkdownItPluginCb<Options> = (
132
141
  const anchorTitle = removeCustomId(title).replace(/`/g, '');
133
142
  allAnchorIds.forEach((customId) => {
134
143
  const setId = id !== customId;
135
- const linkTokens = createLinkTokens(state, customId, anchorTitle, setId);
144
+ const linkTokens = createLinkTokens(state, customId, anchorTitle, setId, href);
136
145
 
137
146
  inlineToken.children?.unshift(...linkTokens);
138
147
 
139
148
  if (supportGithubAnchors) {
140
- const ghLinkTokens = createLinkTokens(state, ghId, anchorTitle, true);
149
+ const ghLinkTokens = createLinkTokens(state, ghId, anchorTitle, true, href);
141
150
  inlineToken.children?.unshift(...ghLinkTokens);
142
151
  }
143
152
  });
@@ -4,13 +4,22 @@ import Token from 'markdown-it/lib/token';
4
4
  const pattern = /^{%[^\S\r\n]*anchor[^\S\r\n]+([\w-]+)[^\S\r\n]*%}/;
5
5
  export const TOKEN_NAME = 'anchor';
6
6
 
7
- function matchOpenToken(tokens: Token[], i: number) {
7
+ function isParagraph(tokens: Token[], i: number) {
8
8
  return (
9
9
  tokens[i].type === 'paragraph_open' &&
10
10
  tokens[i + 1].type === 'inline' &&
11
- tokens[i + 2].type === 'paragraph_close' &&
12
- tokens[i + 1].children?.length === 1 &&
13
- tokens[i + 1].children?.[0].type === 'text' &&
11
+ tokens[i + 2].type === 'paragraph_close'
12
+ );
13
+ }
14
+
15
+ function hasSingleChildWithText(tokens: Token[], i: number) {
16
+ return tokens[i + 1].children?.length === 1 && tokens[i + 1].children?.[0].type === 'text';
17
+ }
18
+
19
+ function matchOpenToken(tokens: Token[], i: number) {
20
+ return (
21
+ isParagraph(tokens, i) &&
22
+ hasSingleChildWithText(tokens, i) &&
14
23
  pattern.exec(tokens[i + 1].children?.[0].content as string)
15
24
  );
16
25
  }
@@ -25,7 +34,7 @@ function createAnchorToken(state: StateCore, anchorId: string, position: number)
25
34
 
26
35
  export function replaceTokens(state: StateCore) {
27
36
  const blockTokens = state.tokens;
28
- // i hate the idea of splicing the array while we're iterating over it
37
+ // I hate the idea of splicing the array while we're iterating over it
29
38
  // so first lets find all the places where we will need to splice it and then actually do the splicing
30
39
  const splicePointsMap: Map<number, string> = new Map();
31
40
  for (let i = 0; i < blockTokens.length; i++) {
@@ -37,9 +46,11 @@ export function replaceTokens(state: StateCore) {
37
46
 
38
47
  splicePointsMap.set(i, match[1]);
39
48
  }
40
- splicePointsMap.forEach((anchorId, position) => {
41
- blockTokens.splice(position, 3, createAnchorToken(state, anchorId, position));
42
- });
49
+ Array.from(splicePointsMap)
50
+ .sort(([keyA], [keyB]) => keyB - keyA)
51
+ .forEach(([position, anchorId]) => {
52
+ blockTokens.splice(position, 3, createAnchorToken(state, anchorId, position));
53
+ });
43
54
  }
44
55
 
45
56
  export function renderTokens(tokens: Token[], idx: number) {
@@ -1,10 +1,9 @@
1
1
  import MarkdownIt from 'markdown-it';
2
2
  import {sep} from 'path';
3
3
  import url from 'url';
4
- import {getHrefTokenAttr, isLocalUrl} from '../../utils';
4
+ import {PAGE_LINK_REGEXP, getHrefTokenAttr, isLocalUrl} from '../../utils';
5
5
  import {getSinglePageAnchorId, resolveRelativePath} from '../../utilsFS';
6
6
  import index from './index';
7
- import {PAGE_LINK_REGEXP} from './constants';
8
7
 
9
8
  const replaceLinkHref = (input: string, href: string, newHref: string) => {
10
9
  /* Try not replace include syntax */
@@ -1,23 +1,21 @@
1
1
  import url from 'url';
2
2
  import {bold} from 'chalk';
3
- import {findBlockTokens, getHrefTokenAttr, headingInfo, isLocalUrl} from '../../utils';
3
+ import {
4
+ PAGE_LINK_REGEXP,
5
+ defaultTransformLink,
6
+ findBlockTokens,
7
+ getHrefTokenAttr,
8
+ getPublicPath,
9
+ headingInfo,
10
+ isLocalUrl,
11
+ } from '../../utils';
4
12
  import {getFileTokens, isFileExists} from '../../utilsFS';
5
- import {PAGE_LINK_REGEXP} from './constants';
6
13
  import Token from 'markdown-it/lib/token';
7
14
  import {Logger} from 'src/transform/log';
8
15
  import {MarkdownItPluginCb, MarkdownItPluginOpts} from '../typings';
9
- import path, {isAbsolute, parse, relative, resolve} from 'path';
16
+ import path, {isAbsolute, resolve} from 'path';
10
17
  import {StateCore} from 'src/transform/typings';
11
18
 
12
- function defaultTransformLink(href: string) {
13
- const parsed = url.parse(href);
14
-
15
- return url.format({
16
- ...parsed,
17
- pathname: parsed.pathname?.replace(PAGE_LINK_REGEXP, '.html'),
18
- });
19
- }
20
-
21
19
  function getTitleFromTokens(tokens: Token[]) {
22
20
  let title = '';
23
21
 
@@ -164,8 +162,8 @@ function processLink(state: StateCore, tokens: Token[], idx: number, opts: ProcO
164
162
  }
165
163
 
166
164
  let newPathname = '';
167
- if (!isAbsolute(href) && currentPath !== startPath) {
168
- newPathname = relative(parse(startPath).dir, file);
165
+ if (!isAbsolute(href)) {
166
+ newPathname = getPublicPath(opts, file);
169
167
 
170
168
  href = url.format({
171
169
  ...url.parse(href),
@@ -6,6 +6,7 @@ export interface MarkdownItPluginOpts {
6
6
  log: Logger;
7
7
  lang: 'ru' | 'en' | 'es' | 'fr' | 'cs' | 'ar' | 'he';
8
8
  root: string;
9
+ rootPublicPath: string;
9
10
  isLintRun: boolean;
10
11
  }
11
12
 
@@ -43,8 +43,10 @@ export interface OptionsType {
43
43
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
44
  plugins?: MarkdownItPluginCb<any>[];
45
45
  highlightLangs?: HighlightLangMap;
46
- root?: string;
47
46
  extractChangelogs?: boolean;
47
+ root?: string;
48
+ rootPublicPath?: string;
49
+ transformLink?: (href: string) => string;
48
50
  [x: string]: unknown;
49
51
  }
50
52
 
@@ -1,3 +1,5 @@
1
+ import url from 'url';
2
+ import {relative, resolve} from 'path';
1
3
  import Token from 'markdown-it/lib/token';
2
4
 
3
5
  export function isLocalUrl(url: string) {
@@ -89,3 +91,36 @@ export function getHrefTokenAttr(token: Token) {
89
91
 
90
92
  return href;
91
93
  }
94
+
95
+ export const PAGE_LINK_REGEXP = /\.(md|ya?ml)$/i;
96
+
97
+ export function defaultTransformLink(href: string) {
98
+ const parsed = url.parse(href);
99
+ href = url.format({
100
+ ...parsed,
101
+ pathname: parsed.pathname?.replace(PAGE_LINK_REGEXP, '.html'),
102
+ });
103
+
104
+ return href;
105
+ }
106
+
107
+ export function getPublicPath(
108
+ {
109
+ path,
110
+ root,
111
+ rootPublicPath,
112
+ transformLink,
113
+ }: {
114
+ path?: string;
115
+ root?: string;
116
+ rootPublicPath?: string;
117
+ transformLink?: (href: string) => string;
118
+ },
119
+ input?: string | null,
120
+ ) {
121
+ const currentPath = input || path || '';
122
+ const filePath = relative(resolve(root || '', rootPublicPath || ''), currentPath);
123
+ const transformer = transformLink || defaultTransformLink;
124
+ const href = transformer(filePath);
125
+ return href;
126
+ }
@@ -1 +0,0 @@
1
- export declare const PAGE_LINK_REGEXP: RegExp;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PAGE_LINK_REGEXP = void 0;
4
- exports.PAGE_LINK_REGEXP = /\.(md|ya?ml)$/i;
5
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/transform/plugins/links/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- export const PAGE_LINK_REGEXP = /\.(md|ya?ml)$/i;