@diplodoc/transform 4.31.4-beta1 → 4.32.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/print.css.map +2 -2
- package/dist/css/yfm.css +6 -6
- 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/js/yfm.js +2 -2
- package/lib/frontmatter/common.d.ts +21 -0
- package/lib/frontmatter/common.js +24 -0
- package/lib/frontmatter/common.js.map +1 -0
- package/lib/frontmatter/emplace.d.ts +4 -0
- package/lib/frontmatter/emplace.js +21 -0
- package/lib/frontmatter/emplace.js.map +1 -0
- package/lib/frontmatter/extract.d.ts +8 -0
- package/lib/frontmatter/extract.js +65 -0
- package/lib/frontmatter/extract.js.map +1 -0
- package/lib/frontmatter/index.d.ts +4 -0
- package/lib/frontmatter/index.js +23 -0
- package/lib/frontmatter/index.js.map +1 -0
- package/lib/frontmatter/transformValues.d.ts +2 -0
- package/lib/frontmatter/transformValues.js +20 -0
- package/lib/frontmatter/transformValues.js.map +1 -0
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/liquid/index.d.ts +9 -2
- package/lib/liquid/index.js +34 -4
- package/lib/liquid/index.js.map +1 -1
- package/lib/md.js +0 -1
- package/lib/md.js.map +1 -1
- package/lib/utilsFS.js.map +1 -1
- package/package.json +2 -2
- package/src/scss/_note.scss +7 -4
- package/src/transform/frontmatter/common.ts +27 -0
- package/src/transform/frontmatter/emplace.ts +24 -0
- package/src/transform/frontmatter/extract.ts +94 -0
- package/src/transform/frontmatter/index.ts +4 -0
- package/src/transform/frontmatter/transformValues.ts +26 -0
- package/src/transform/index.ts +4 -2
- package/src/transform/liquid/index.ts +73 -4
- package/src/transform/md.ts +0 -1
- package/src/transform/utilsFS.ts +2 -2
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.countLineAmount = exports.unescapeLiquidSubstitutionSyntax = exports.escapeLiquidSubstitutionSyntax = exports.frontMatterFence = void 0;
|
|
4
|
+
exports.frontMatterFence = '---';
|
|
5
|
+
/**
|
|
6
|
+
* Temporary workaround to enable parsing YAML metadata from potentially
|
|
7
|
+
* Liquid-aware source files
|
|
8
|
+
* @param content Input string which could contain Liquid-style substitution syntax (which clashes with YAML
|
|
9
|
+
* object syntax)
|
|
10
|
+
* @returns String with `{}` escaped, ready to be parsed with `js-yaml`
|
|
11
|
+
*/
|
|
12
|
+
const escapeLiquidSubstitutionSyntax = (content) => content.replace(/{{/g, '(({{').replace(/}}/g, '}}))');
|
|
13
|
+
exports.escapeLiquidSubstitutionSyntax = escapeLiquidSubstitutionSyntax;
|
|
14
|
+
/**
|
|
15
|
+
* Inverse of a workaround defined above.
|
|
16
|
+
* @see `escapeLiquidSubstitutionSyntax`
|
|
17
|
+
* @param escapedContent Input string with `{}` escaped with backslashes
|
|
18
|
+
* @returns Unescaped string
|
|
19
|
+
*/
|
|
20
|
+
const unescapeLiquidSubstitutionSyntax = (escapedContent) => escapedContent.replace(/\(\({{/g, '{{').replace(/}}\)\)/g, '}}');
|
|
21
|
+
exports.unescapeLiquidSubstitutionSyntax = unescapeLiquidSubstitutionSyntax;
|
|
22
|
+
const countLineAmount = (str) => str.split(/\r?\n/).length;
|
|
23
|
+
exports.countLineAmount = countLineAmount;
|
|
24
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/transform/frontmatter/common.ts"],"names":[],"mappings":";;;AAKa,QAAA,gBAAgB,GAAG,KAAK,CAAC;AAEtC;;;;;;GAMG;AACI,MAAM,8BAA8B,GAAG,CAAC,OAAe,EAAU,EAAE,CACtE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAD7C,QAAA,8BAA8B,kCACe;AAE1D;;;;;GAKG;AACI,MAAM,gCAAgC,GAAG,CAAC,cAAsB,EAAU,EAAE,CAC/E,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AADxD,QAAA,gCAAgC,oCACwB;AAE9D,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAA7D,QAAA,eAAe,mBAA8C"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { FrontMatter } from './common';
|
|
2
|
+
export declare const serializeFrontMatter: (frontMatter: FrontMatter) => string;
|
|
3
|
+
export declare const emplaceSerializedFrontMatter: (frontMatterStrippedContent: string, frontMatter: string) => string;
|
|
4
|
+
export declare const emplaceFrontMatter: (frontMatterStrippedContent: string, frontMatter: FrontMatter) => string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.emplaceFrontMatter = exports.emplaceSerializedFrontMatter = exports.serializeFrontMatter = void 0;
|
|
4
|
+
const js_yaml_1 = require("js-yaml");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
const serializeFrontMatter = (frontMatter) => {
|
|
7
|
+
const dumped = (0, js_yaml_1.dump)(frontMatter, { lineWidth: -1 }).trim();
|
|
8
|
+
// This empty object check is a bit naive
|
|
9
|
+
// The other option would be to check if all own fields are `undefined`,
|
|
10
|
+
// since we exploit passing in `undefined` to remove a field quite a bit
|
|
11
|
+
if (dumped === '{}') {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
return `${common_1.frontMatterFence}\n${dumped}\n${common_1.frontMatterFence}\n`;
|
|
15
|
+
};
|
|
16
|
+
exports.serializeFrontMatter = serializeFrontMatter;
|
|
17
|
+
const emplaceSerializedFrontMatter = (frontMatterStrippedContent, frontMatter) => `${frontMatter}${frontMatterStrippedContent}`;
|
|
18
|
+
exports.emplaceSerializedFrontMatter = emplaceSerializedFrontMatter;
|
|
19
|
+
const emplaceFrontMatter = (frontMatterStrippedContent, frontMatter) => (0, exports.emplaceSerializedFrontMatter)(frontMatterStrippedContent, (0, exports.serializeFrontMatter)(frontMatter));
|
|
20
|
+
exports.emplaceFrontMatter = emplaceFrontMatter;
|
|
21
|
+
//# sourceMappingURL=emplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emplace.js","sourceRoot":"","sources":["../../src/transform/frontmatter/emplace.ts"],"names":[],"mappings":";;;AAAA,qCAA6B;AAE7B,qCAAuD;AAEhD,MAAM,oBAAoB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,WAAW,EAAE,EAAC,SAAS,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEzD,yCAAyC;IACzC,wEAAwE;IACxE,wEAAwE;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE;QACjB,OAAO,EAAE,CAAC;KACb;IAED,OAAO,GAAG,yBAAgB,KAAK,MAAM,KAAK,yBAAgB,IAAI,CAAC;AACnE,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B;AAEK,MAAM,4BAA4B,GAAG,CACxC,0BAAkC,EAClC,WAAmB,EACrB,EAAE,CAAC,GAAG,WAAW,GAAG,0BAA0B,EAAE,CAAC;AAHtC,QAAA,4BAA4B,gCAGU;AAE5C,MAAM,kBAAkB,GAAG,CAAC,0BAAkC,EAAE,WAAwB,EAAE,EAAE,CAC/F,IAAA,oCAA4B,EAAC,0BAA0B,EAAE,IAAA,4BAAoB,EAAC,WAAW,CAAC,CAAC,CAAC;AADnF,QAAA,kBAAkB,sBACiE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FrontMatter } from './common';
|
|
2
|
+
declare type ParseExistingMetadataReturn = {
|
|
3
|
+
frontMatter: FrontMatter;
|
|
4
|
+
frontMatterStrippedContent: string;
|
|
5
|
+
frontMatterLineCount: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const separateAndExtractFrontMatter: (fileContent: string, filePath?: string) => ParseExistingMetadataReturn;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.separateAndExtractFrontMatter = void 0;
|
|
4
|
+
const js_yaml_1 = require("js-yaml");
|
|
5
|
+
const log_1 = require("../log");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
const transformValues_1 = require("./transformValues");
|
|
8
|
+
const matchMetadata = (fileContent) => {
|
|
9
|
+
if (!fileContent.startsWith(common_1.frontMatterFence)) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
// Search by format:
|
|
13
|
+
// ---
|
|
14
|
+
// metaName1: metaValue1
|
|
15
|
+
// metaName2: meta value2
|
|
16
|
+
// incorrectMetadata
|
|
17
|
+
// ---
|
|
18
|
+
const regexpMetadata = '(?<=-{3}\\r?\\n)((.*\\r?\\n)*?)(?=-{3}\\r?\\n)';
|
|
19
|
+
// Search by format:
|
|
20
|
+
// ---
|
|
21
|
+
// main content 123
|
|
22
|
+
const regexpFileContent = '-{3}\\r?\\n((.*[\r?\n]*)*)';
|
|
23
|
+
const regexpParseFileContent = new RegExp(`${regexpMetadata}${regexpFileContent}`, 'gm');
|
|
24
|
+
return regexpParseFileContent.exec(fileContent);
|
|
25
|
+
};
|
|
26
|
+
const duplicateKeysCompatibleLoad = (yaml, filePath) => {
|
|
27
|
+
try {
|
|
28
|
+
return (0, js_yaml_1.load)(yaml);
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (e instanceof js_yaml_1.YAMLException) {
|
|
32
|
+
const duplicateKeysDeprecationWarning = `
|
|
33
|
+
In ${filePath !== null && filePath !== void 0 ? filePath : '(unknown)'}: Encountered a YAML parsing exception when processing file metadata: ${e.reason}.
|
|
34
|
+
It's highly possible the input file contains duplicate mapping keys.
|
|
35
|
+
Will retry processing with necessary compatibility flags.
|
|
36
|
+
Please note that this behaviour is DEPRECATED and WILL be removed in a future version
|
|
37
|
+
without further notice, so the build WILL fail when supplied with YAML-incompatible meta.
|
|
38
|
+
`
|
|
39
|
+
.replace(/^\s+/gm, '')
|
|
40
|
+
.replace(/\n/g, ' ')
|
|
41
|
+
.trim();
|
|
42
|
+
log_1.log.warn(duplicateKeysDeprecationWarning);
|
|
43
|
+
return (0, js_yaml_1.load)(yaml, { json: true });
|
|
44
|
+
}
|
|
45
|
+
throw e;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const separateAndExtractFrontMatter = (fileContent, filePath) => {
|
|
49
|
+
const matches = matchMetadata(fileContent);
|
|
50
|
+
if (matches && matches.length > 0) {
|
|
51
|
+
const [, metadata, , metadataStrippedContent] = matches;
|
|
52
|
+
return {
|
|
53
|
+
frontMatter: (0, transformValues_1.transformFrontMatterValues)(duplicateKeysCompatibleLoad((0, common_1.escapeLiquidSubstitutionSyntax)(metadata), filePath), (v) => (typeof v === 'string' ? (0, common_1.unescapeLiquidSubstitutionSyntax)(v) : v)),
|
|
54
|
+
frontMatterStrippedContent: metadataStrippedContent,
|
|
55
|
+
frontMatterLineCount: (0, common_1.countLineAmount)(metadata),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
frontMatter: {},
|
|
60
|
+
frontMatterStrippedContent: fileContent,
|
|
61
|
+
frontMatterLineCount: 0,
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.separateAndExtractFrontMatter = separateAndExtractFrontMatter;
|
|
65
|
+
//# sourceMappingURL=extract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/transform/frontmatter/extract.ts"],"names":[],"mappings":";;;AAAA,qCAA4C;AAE5C,gCAA2B;AAE3B,qCAMkB;AAClB,uDAA6D;AAQ7D,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC1C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,yBAAgB,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACf;IAED,oBAAoB;IACpB,MAAM;IACN,wBAAwB;IACxB,yBAAyB;IACzB,oBAAoB;IACpB,MAAM;IACN,MAAM,cAAc,GAAG,gDAAgD,CAAC;IACxE,oBAAoB;IACpB,MAAM;IACN,mBAAmB;IACnB,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;IAEvD,MAAM,sBAAsB,GAAG,IAAI,MAAM,CAAC,GAAG,cAAc,GAAG,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;IAEzF,OAAO,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,IAAY,EAAE,QAA4B,EAAE,EAAE;IAC/E,IAAI;QACA,OAAO,IAAA,cAAI,EAAC,IAAI,CAAC,CAAC;KACrB;IAAC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,YAAY,uBAAa,EAAE;YAC5B,MAAM,+BAA+B,GAAG;qBAC/B,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,WAAW,yEAAyE,CAAC,CAAC,MAAM;;;;;aAKhH;iBACI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;iBACrB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;iBACnB,IAAI,EAAE,CAAC;YAEZ,SAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAE1C,OAAO,IAAA,cAAI,EAAC,IAAI,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;SACnC;QAED,MAAM,CAAC,CAAC;KACX;AACL,CAAC,CAAC;AAEK,MAAM,6BAA6B,GAAG,CACzC,WAAmB,EACnB,QAAiB,EACU,EAAE;IAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAE3C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,MAAM,CAAC,EAAE,QAAQ,EAAE,AAAD,EAAG,uBAAuB,CAAC,GAAG,OAAO,CAAC;QAExD,OAAO;YACH,WAAW,EAAE,IAAA,4CAA0B,EACnC,2BAA2B,CACvB,IAAA,uCAA8B,EAAC,QAAQ,CAAC,EACxC,QAAQ,CACI,EAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,yCAAgC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3E;YACD,0BAA0B,EAAE,uBAAuB;YACnD,oBAAoB,EAAE,IAAA,wBAAe,EAAC,QAAQ,CAAC;SAClD,CAAC;KACL;IAED,OAAO;QACH,WAAW,EAAE,EAAE;QACf,0BAA0B,EAAE,WAAW;QACvC,oBAAoB,EAAE,CAAC;KAC1B,CAAC;AACN,CAAC,CAAC;AA3BW,QAAA,6BAA6B,iCA2BxC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.countLineAmount = void 0;
|
|
18
|
+
__exportStar(require("./extract"), exports);
|
|
19
|
+
__exportStar(require("./emplace"), exports);
|
|
20
|
+
__exportStar(require("./transformValues"), exports);
|
|
21
|
+
var common_1 = require("./common");
|
|
22
|
+
Object.defineProperty(exports, "countLineAmount", { enumerable: true, get: function () { return common_1.countLineAmount; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transform/frontmatter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,oDAAkC;AAClC,mCAAyC;AAAjC,yGAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformFrontMatterValues = void 0;
|
|
4
|
+
const transformFrontMatterValues = (frontMatter, valueMapper) => {
|
|
5
|
+
const transformInner = (something) => {
|
|
6
|
+
if (Array.isArray(something)) {
|
|
7
|
+
return something.map((el) => transformInner(el));
|
|
8
|
+
}
|
|
9
|
+
if (typeof something === 'object' && something !== null) {
|
|
10
|
+
return Object.fromEntries(Object.entries(something).map(([k, v]) => [k, transformInner(v)]));
|
|
11
|
+
}
|
|
12
|
+
if (typeof something === 'function') {
|
|
13
|
+
return something;
|
|
14
|
+
}
|
|
15
|
+
return valueMapper(something);
|
|
16
|
+
};
|
|
17
|
+
return transformInner(frontMatter);
|
|
18
|
+
};
|
|
19
|
+
exports.transformFrontMatterValues = transformFrontMatterValues;
|
|
20
|
+
//# sourceMappingURL=transformValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformValues.js","sourceRoot":"","sources":["../../src/transform/frontmatter/transformValues.ts"],"names":[],"mappings":";;;AAEO,MAAM,0BAA0B,GAAG,CACtC,WAAwB,EACxB,WAAoC,EACzB,EAAE;IACb,MAAM,cAAc,GAAG,CAAC,SAAkB,EAAW,EAAE;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC1B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;SACpD;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE;YACrD,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;SACL;QAED,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;YACjC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,cAAc,CAAC,WAAW,CAAgB,CAAC;AACtD,CAAC,CAAC;AAvBW,QAAA,0BAA0B,8BAuBrC"}
|
package/lib/index.js
CHANGED
|
@@ -8,7 +8,9 @@ const liquid_1 = __importDefault(require("./liquid"));
|
|
|
8
8
|
const md_1 = __importDefault(require("./md"));
|
|
9
9
|
function applyLiquid(input, options) {
|
|
10
10
|
const { vars = {}, path, conditionsInCode = false, disableLiquid = false, isLiquided = false, } = options;
|
|
11
|
-
return disableLiquid || isLiquided
|
|
11
|
+
return disableLiquid || isLiquided
|
|
12
|
+
? input
|
|
13
|
+
: (0, liquid_1.default)(input, vars, path, { conditionsInCode });
|
|
12
14
|
}
|
|
13
15
|
function handleError(error, path) {
|
|
14
16
|
log_1.log.error(`Error occurred${path ? ` in ${(0, chalk_1.bold)(path)}` : ''}`);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/transform/index.ts"],"names":[],"mappings":";;;;AAEA,iCAA2B;AAE3B,+BAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/transform/index.ts"],"names":[],"mappings":";;;;AAEA,iCAA2B;AAE3B,+BAA0B;AAC1B,sDAAqC;AACrC,8CAAkC;AAElC,SAAS,WAAW,CAAC,KAAa,EAAE,OAAoB;IACpD,MAAM,EACF,IAAI,GAAG,EAAE,EACT,IAAI,EACJ,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,KAAK,EACrB,UAAU,GAAG,KAAK,GACrB,GAAG,OAAO,CAAC;IAEZ,OAAO,aAAa,IAAI,UAAU;QAC9B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAA,gBAAa,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAC,gBAAgB,EAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,IAAa;IAC9C,SAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC,CAAC,OAAO,IAAA,YAAI,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE9D,MAAM,KAAK,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,GAAY;IAC1C,OAAO;QACH,MAAM,kCAAM,GAAG,KAAE,IAAI,GAAC;QACtB,IAAI,EAAE,SAAG,CAAC,GAAG,EAAE;KAClB,CAAC;AACN,CAAC;AAED,6CAA6C;AAC7C,SAAS,SAAS,CAAC,WAAmB,EAAE,UAAuB,EAAE;IAC7D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,GAAG,IAAA,YAAc,EAAC,OAAO,CAAC,CAAC;IAEtD,IAAI;QACA,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACZ,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC;AACL,CAAC;AAED,iBAAS,SAAS,CAAC"}
|
package/lib/liquid/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { Dictionary } from 'lodash';
|
|
2
2
|
import { ArgvSettings } from './services/argv';
|
|
3
|
-
declare function
|
|
3
|
+
declare function liquidSnippet<B extends boolean = false, C = B extends false ? string : {
|
|
4
4
|
output: string;
|
|
5
5
|
sourceMap: Dictionary<string>;
|
|
6
6
|
}>(originInput: string, vars: Record<string, unknown>, path?: string, settings?: ArgvSettings & {
|
|
7
7
|
withSourceMap?: B;
|
|
8
8
|
}): C;
|
|
9
|
-
|
|
9
|
+
declare function liquidDocument<B extends boolean = false, C = B extends false ? string : {
|
|
10
|
+
output: string;
|
|
11
|
+
sourceMap: Dictionary<string>;
|
|
12
|
+
}>(originInput: string, vars: Record<string, unknown>, path?: string, settings?: ArgvSettings & {
|
|
13
|
+
withSourceMap?: B;
|
|
14
|
+
}): C;
|
|
15
|
+
export { liquidDocument, liquidSnippet };
|
|
16
|
+
export default liquidDocument;
|
package/lib/liquid/index.js
CHANGED
|
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.liquidSnippet = exports.liquidDocument = void 0;
|
|
7
|
+
const frontmatter_1 = require("../frontmatter");
|
|
6
8
|
const substitutions_1 = __importDefault(require("./substitutions"));
|
|
7
9
|
const sourceMap_1 = require("./sourceMap");
|
|
8
10
|
const cycles_1 = __importDefault(require("./cycles"));
|
|
@@ -40,7 +42,7 @@ function saveCode(str, vars, codes, path, substitutions) {
|
|
|
40
42
|
function repairCode(str, codes) {
|
|
41
43
|
return replace(fence, fence, (code) => codes[Number(code)], str);
|
|
42
44
|
}
|
|
43
|
-
function
|
|
45
|
+
function liquidSnippet(originInput, vars, path, settings) {
|
|
44
46
|
const { cycles = true, conditions = true, substitutions = true, conditionsInCode = false, useLegacyConditions = false, keepNotVar = false, withSourceMap, } = settings || {};
|
|
45
47
|
argv_1.default.init({
|
|
46
48
|
cycles,
|
|
@@ -85,7 +87,35 @@ function liquid(originInput, vars, path, settings) {
|
|
|
85
87
|
}
|
|
86
88
|
return output;
|
|
87
89
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
90
|
+
exports.liquidSnippet = liquidSnippet;
|
|
91
|
+
function transformSourceMap(sourceMap, { emplacedResultOffset, emplacedSourceOffset }) {
|
|
92
|
+
return Object.fromEntries(Object.entries(sourceMap).map(([lineInResult, lineInSource]) => [
|
|
93
|
+
(Number(lineInResult) + emplacedResultOffset).toString(),
|
|
94
|
+
(Number(lineInSource) + emplacedSourceOffset).toString(),
|
|
95
|
+
]));
|
|
96
|
+
}
|
|
97
|
+
function liquidDocument(originInput, vars, path, settings) {
|
|
98
|
+
const { frontMatter, frontMatterStrippedContent, frontMatterLineCount } = (0, frontmatter_1.separateAndExtractFrontMatter)(originInput, path);
|
|
99
|
+
const transformedFrontMatter = (0, frontmatter_1.transformFrontMatterValues)(frontMatter, (v) => typeof v === 'string'
|
|
100
|
+
? liquidSnippet(v, vars, path, Object.assign(Object.assign({}, settings), { withSourceMap: false }))
|
|
101
|
+
: v);
|
|
102
|
+
const transformedAndSerialized = (0, frontmatter_1.serializeFrontMatter)(transformedFrontMatter);
|
|
103
|
+
// -1 comes from the fact that the last line in serialized FM is the same as the first line in stripped content
|
|
104
|
+
const resultFrontMatterOffset = Math.max(0, (0, frontmatter_1.countLineAmount)(transformedAndSerialized) - 1);
|
|
105
|
+
const sourceFrontMatterOffset = Math.max(0, frontMatterLineCount - 1);
|
|
106
|
+
const liquidProcessedContent = liquidSnippet(frontMatterStrippedContent, vars, path, settings);
|
|
107
|
+
// typeof check for better inference; the catch is that return of liquidSnippet can be an
|
|
108
|
+
// object even with source maps off, see `substitutions.test.ts`
|
|
109
|
+
return ((settings === null || settings === void 0 ? void 0 : settings.withSourceMap) && typeof liquidProcessedContent === 'object'
|
|
110
|
+
? {
|
|
111
|
+
output: (0, frontmatter_1.emplaceSerializedFrontMatter)(liquidProcessedContent.output, transformedAndSerialized),
|
|
112
|
+
sourceMap: transformSourceMap(liquidProcessedContent.sourceMap, {
|
|
113
|
+
emplacedResultOffset: resultFrontMatterOffset,
|
|
114
|
+
emplacedSourceOffset: sourceFrontMatterOffset,
|
|
115
|
+
}),
|
|
116
|
+
}
|
|
117
|
+
: (0, frontmatter_1.emplaceSerializedFrontMatter)(liquidProcessedContent, transformedAndSerialized));
|
|
118
|
+
}
|
|
119
|
+
exports.liquidDocument = liquidDocument;
|
|
120
|
+
exports.default = liquidDocument;
|
|
91
121
|
//# sourceMappingURL=index.js.map
|
package/lib/liquid/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transform/liquid/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transform/liquid/index.ts"],"names":[],"mappings":";;;;;;AAEA,gDAMwB;AAExB,oEAAiD;AACjD,2CAA6C;AAC7C,sDAAmC;AACnC,8DAA2C;AAC3C,2DAA0D;AAE1D,MAAM,KAAK,GAAG,KAAK,CAAC;AAEpB,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CACZ,IAAY,EACZ,KAAa,EACb,KAAiC,EACjC,MAAc,EAChB,EAAE;IACA,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEvD,OAAO,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAExD,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACzE,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;QAC9B,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;KACtD;IAED,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,SAAS,QAAQ,CACb,GAAW,EACX,IAA6B,EAC7B,KAAe,EACf,IAAa,EACb,aAAuB;IAEvB,OAAO,OAAO,CACV,KAAK,EACL,KAAK,EACL,CAAC,IAAI,EAAE,EAAE;QACL,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,IAAA,uBAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAE3C,4EAA4E;QAC5E,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,OAAO,GAAG,KAAK,GAAG,UAAU,EAAE,CAAC;IACnC,CAAC,EACD,GAAG,CACN,CAAC;AACN,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,KAAe;IAC5C,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAIlB,WAAmB,EACnB,IAA6B,EAC7B,IAAa,EACb,QAA6C;IAE7C,MAAM,EACF,MAAM,GAAG,IAAI,EACb,UAAU,GAAG,IAAI,EACjB,aAAa,GAAG,IAAI,EACpB,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,UAAU,GAAG,KAAK,EAClB,aAAa,GAChB,GAAG,QAAQ,IAAI,EAAE,CAAC;IAEnB,cAAW,CAAC,IAAI,CAAC;QACb,MAAM;QACN,UAAU;QACV,aAAa;QACb,gBAAgB;QAChB,mBAAmB;QACnB,UAAU;QACV,aAAa;KAChB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,GAAG,gBAAgB;QACzB,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAE9D,IAAI,SAAS,GAA2B,EAAE,CAAC;IAE3C,IAAI,aAAa,EAAE;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAA2B,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAClE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YAE3B,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;IAED,IAAI,MAAM,EAAE;QACR,MAAM,GAAG,IAAA,gBAAW,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAC,SAAS,EAAC,CAAC,CAAC;KACzD;IAED,IAAI,UAAU,EAAE;QACZ,MAAM,MAAM,GAAG,UAAU,KAAK,QAAQ,CAAC;QACvC,MAAM,GAAG,IAAA,oBAAe,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,EAAC,CAAC,CAAC;KAC1F;IAED,IAAI,aAAa,EAAE;QACf,MAAM,GAAG,IAAA,uBAAkB,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACnD;IAED,IAAI,CAAC,gBAAgB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACjD,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACtC;IAED,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjB,IAAI,aAAa,EAAE;QACf,OAAO;YACH,MAAM;YACN,SAAS,EAAE,IAAA,4BAAgB,EAAC,SAAS,CAAC;SACzB,CAAC;KACrB;IAED,OAAO,MAAsB,CAAC;AAClC,CAAC;AAgEuB,sCAAa;AAzDrC,SAAS,kBAAkB,CACvB,SAA6B,EAC7B,EAAC,oBAAoB,EAAE,oBAAoB,EAA4B;IAEvE,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC;QAC5D,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE;QACxD,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE;KAC3D,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,cAAc,CAInB,WAAmB,EACnB,IAA6B,EAC7B,IAAa,EACb,QAA6C;IAE7C,MAAM,EAAC,WAAW,EAAE,0BAA0B,EAAE,oBAAoB,EAAC,GACjE,IAAA,2CAA6B,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAErD,MAAM,sBAAsB,GAAG,IAAA,wCAA0B,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CACzE,OAAO,CAAC,KAAK,QAAQ;QACjB,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,kCAAM,QAAQ,KAAE,aAAa,EAAE,KAAK,IAAE;QACnE,CAAC,CAAC,CAAC,CACV,CAAC;IACF,MAAM,wBAAwB,GAAG,IAAA,kCAAoB,EAAC,sBAAsB,CAAC,CAAC;IAE9E,+GAA+G;IAC/G,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAA,6BAAe,EAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3F,MAAM,uBAAuB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IAEtE,MAAM,sBAAsB,GAAG,aAAa,CAAC,0BAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE/F,yFAAyF;IACzF,gEAAgE;IAChE,OAAO,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,KAAI,OAAO,sBAAsB,KAAK,QAAQ;QACzE,CAAC,CAAC;YACI,MAAM,EAAE,IAAA,0CAA4B,EAChC,sBAAsB,CAAC,MAAM,EAC7B,wBAAwB,CAC3B;YACD,SAAS,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,SAAS,EAAE;gBAC5D,oBAAoB,EAAE,uBAAuB;gBAC7C,oBAAoB,EAAE,uBAAuB;aAChD,CAAC;SACL;QACH,CAAC,CAAC,IAAA,0CAA4B,EACxB,sBAAgC,EAChC,wBAAwB,CAC3B,CAAiB,CAAC;AAC7B,CAAC;AAGO,wCAAc;AACtB,kBAAe,cAAc,CAAC"}
|
package/lib/md.js
CHANGED
|
@@ -69,7 +69,6 @@ function getPluginOptions(options) {
|
|
|
69
69
|
function initPlugins(md, options, pluginOptions) {
|
|
70
70
|
const { linkify = false, linkifyTlds, leftDelimiter = '{', rightDelimiter = '}', plugins = plugins_1.default, } = options;
|
|
71
71
|
// Need for ids of headers
|
|
72
|
-
// @ts-ignore
|
|
73
72
|
md.use(markdown_it_attrs_1.default, { leftDelimiter, rightDelimiter });
|
|
74
73
|
plugins.forEach((plugin) => md.use(plugin, pluginOptions));
|
|
75
74
|
if (linkify && linkifyTlds) {
|
package/lib/md.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"md.js","sourceRoot":"","sources":["../src/transform/md.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,8DAA4C;AAC5C,0EAAsC;AAEtC,wDAAuC;AACvC,oEAAmD;AACnD,+BAA0B;AAC1B,4DAAwC;AACxC,oDAAmC;AACnC,0DAAqC;AACrC,0DAAsC;AAEtC,SAAS,cAAc,CAAC,OAAoB;IACxC,MAAM,EACF,SAAS,GAAG,KAAK,EACjB,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,IAAI,EACb,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,EAAE,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAA,mBAAa,EAAC,cAAc,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,IAAI,qBAAiB,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAC,CAAe,CAAC;IAE9F,IAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE;QACtB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5B;IAED,MAAM,GAAG,GAAG;QACR,qCAAqC;QACrC,IAAI,IAAI;YACJ,OAAO,EAAE,CAAC,IAAI,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,KAAK;YACV,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM;YACN,OAAO,EAAE,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,IAAI,MAAM,CAAC,KAAK;YACZ,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;KACD,CAAC;IAEb,iFAAiF;IACjF,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEhD,kEAAkE;IAClE,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAExC,kCAAkC;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAE1D,+BAA+B;IAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAE/C,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAC,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAoB;IAC1C,MAAM,EACF,IAAI,GAAG,EAAE,EACT,IAAI,EACJ,YAAY,EACZ,gBAAgB,GAAG,KAAK,EACxB,aAAa,GAAG,KAAK,KAErB,OAAO,EADJ,aAAa,UAChB,OAAO,EAPL,qEAOL,CAAU,CAAC;IAEZ,OAAO,gCACA,aAAa,KAChB,gBAAgB;QAChB,IAAI;QACJ,IAAI;QACJ,YAAY;QACZ,aAAa;QACb,GAAG,EAAH,SAAG,GACkB,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,EAAc,EAAE,OAAoB,EAAE,aAAmC;IAC1F,MAAM,EACF,OAAO,GAAG,KAAK,EACf,WAAW,EACX,aAAa,GAAG,GAAG,EACnB,cAAc,GAAG,GAAG,EACpB,OAAO,GAAG,iBAAc,GAC3B,GAAG,OAAO,CAAC;IAEZ,0BAA0B;IAC1B,
|
|
1
|
+
{"version":3,"file":"md.js","sourceRoot":"","sources":["../src/transform/md.ts"],"names":[],"mappings":"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"}
|
package/lib/utilsFS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilsFS.js","sourceRoot":"","sources":["../src/transform/utilsFS.ts"],"names":[],"mappings":";;;;;;AAEA,2BAA0C;AAC1C,uEAA+C;AAC/C,+BAAyD;AAEzD,
|
|
1
|
+
{"version":3,"file":"utilsFS.js","sourceRoot":"","sources":["../src/transform/utilsFS.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.
|
|
3
|
+
"version": "4.32.2",
|
|
4
4
|
"description": "A simple transformer of text in YFM (Yandex Flavored Markdown) to HTML",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"markdown",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"prepare": "husky"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@diplodoc/cut-extension": "^0.
|
|
44
|
+
"@diplodoc/cut-extension": "^0.3.0",
|
|
45
45
|
"@diplodoc/tabs-extension": "^3.4.0",
|
|
46
46
|
"chalk": "^4.1.2",
|
|
47
47
|
"cheerio": "^1.0.0",
|
package/src/scss/_note.scss
CHANGED
|
@@ -29,11 +29,14 @@
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
|
|
33
|
+
// @todo replace with variables
|
|
34
|
+
|
|
32
35
|
$colors: (
|
|
33
|
-
yfm-accent-info: #
|
|
34
|
-
yfm-accent-tip: #
|
|
35
|
-
yfm-accent-
|
|
36
|
-
yfm-accent-
|
|
36
|
+
yfm-accent-info: #027bf3,
|
|
37
|
+
yfm-accent-tip: #56bd67,
|
|
38
|
+
yfm-accent-warning: #f19518,
|
|
39
|
+
yfm-accent-alert: #ff4645,
|
|
37
40
|
);
|
|
38
41
|
|
|
39
42
|
@each $type, $color in $colors {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type FrontMatter = {
|
|
2
|
+
[key: string]: unknown;
|
|
3
|
+
metadata?: Record<string, unknown>[];
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export const frontMatterFence = '---';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Temporary workaround to enable parsing YAML metadata from potentially
|
|
10
|
+
* Liquid-aware source files
|
|
11
|
+
* @param content Input string which could contain Liquid-style substitution syntax (which clashes with YAML
|
|
12
|
+
* object syntax)
|
|
13
|
+
* @returns String with `{}` escaped, ready to be parsed with `js-yaml`
|
|
14
|
+
*/
|
|
15
|
+
export const escapeLiquidSubstitutionSyntax = (content: string): string =>
|
|
16
|
+
content.replace(/{{/g, '(({{').replace(/}}/g, '}}))');
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Inverse of a workaround defined above.
|
|
20
|
+
* @see `escapeLiquidSubstitutionSyntax`
|
|
21
|
+
* @param escapedContent Input string with `{}` escaped with backslashes
|
|
22
|
+
* @returns Unescaped string
|
|
23
|
+
*/
|
|
24
|
+
export const unescapeLiquidSubstitutionSyntax = (escapedContent: string): string =>
|
|
25
|
+
escapedContent.replace(/\(\({{/g, '{{').replace(/}}\)\)/g, '}}');
|
|
26
|
+
|
|
27
|
+
export const countLineAmount = (str: string) => str.split(/\r?\n/).length;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {dump} from 'js-yaml';
|
|
2
|
+
|
|
3
|
+
import {FrontMatter, frontMatterFence} from './common';
|
|
4
|
+
|
|
5
|
+
export const serializeFrontMatter = (frontMatter: FrontMatter) => {
|
|
6
|
+
const dumped = dump(frontMatter, {lineWidth: -1}).trim();
|
|
7
|
+
|
|
8
|
+
// This empty object check is a bit naive
|
|
9
|
+
// The other option would be to check if all own fields are `undefined`,
|
|
10
|
+
// since we exploit passing in `undefined` to remove a field quite a bit
|
|
11
|
+
if (dumped === '{}') {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return `${frontMatterFence}\n${dumped}\n${frontMatterFence}\n`;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const emplaceSerializedFrontMatter = (
|
|
19
|
+
frontMatterStrippedContent: string,
|
|
20
|
+
frontMatter: string,
|
|
21
|
+
) => `${frontMatter}${frontMatterStrippedContent}`;
|
|
22
|
+
|
|
23
|
+
export const emplaceFrontMatter = (frontMatterStrippedContent: string, frontMatter: FrontMatter) =>
|
|
24
|
+
emplaceSerializedFrontMatter(frontMatterStrippedContent, serializeFrontMatter(frontMatter));
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {YAMLException, load} from 'js-yaml';
|
|
2
|
+
|
|
3
|
+
import {log} from '../log';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
FrontMatter,
|
|
7
|
+
countLineAmount,
|
|
8
|
+
escapeLiquidSubstitutionSyntax,
|
|
9
|
+
frontMatterFence,
|
|
10
|
+
unescapeLiquidSubstitutionSyntax,
|
|
11
|
+
} from './common';
|
|
12
|
+
import {transformFrontMatterValues} from './transformValues';
|
|
13
|
+
|
|
14
|
+
type ParseExistingMetadataReturn = {
|
|
15
|
+
frontMatter: FrontMatter;
|
|
16
|
+
frontMatterStrippedContent: string;
|
|
17
|
+
frontMatterLineCount: number;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const matchMetadata = (fileContent: string) => {
|
|
21
|
+
if (!fileContent.startsWith(frontMatterFence)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Search by format:
|
|
26
|
+
// ---
|
|
27
|
+
// metaName1: metaValue1
|
|
28
|
+
// metaName2: meta value2
|
|
29
|
+
// incorrectMetadata
|
|
30
|
+
// ---
|
|
31
|
+
const regexpMetadata = '(?<=-{3}\\r?\\n)((.*\\r?\\n)*?)(?=-{3}\\r?\\n)';
|
|
32
|
+
// Search by format:
|
|
33
|
+
// ---
|
|
34
|
+
// main content 123
|
|
35
|
+
const regexpFileContent = '-{3}\\r?\\n((.*[\r?\n]*)*)';
|
|
36
|
+
|
|
37
|
+
const regexpParseFileContent = new RegExp(`${regexpMetadata}${regexpFileContent}`, 'gm');
|
|
38
|
+
|
|
39
|
+
return regexpParseFileContent.exec(fileContent);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const duplicateKeysCompatibleLoad = (yaml: string, filePath: string | undefined) => {
|
|
43
|
+
try {
|
|
44
|
+
return load(yaml);
|
|
45
|
+
} catch (e) {
|
|
46
|
+
if (e instanceof YAMLException) {
|
|
47
|
+
const duplicateKeysDeprecationWarning = `
|
|
48
|
+
In ${filePath ?? '(unknown)'}: Encountered a YAML parsing exception when processing file metadata: ${e.reason}.
|
|
49
|
+
It's highly possible the input file contains duplicate mapping keys.
|
|
50
|
+
Will retry processing with necessary compatibility flags.
|
|
51
|
+
Please note that this behaviour is DEPRECATED and WILL be removed in a future version
|
|
52
|
+
without further notice, so the build WILL fail when supplied with YAML-incompatible meta.
|
|
53
|
+
`
|
|
54
|
+
.replace(/^\s+/gm, '')
|
|
55
|
+
.replace(/\n/g, ' ')
|
|
56
|
+
.trim();
|
|
57
|
+
|
|
58
|
+
log.warn(duplicateKeysDeprecationWarning);
|
|
59
|
+
|
|
60
|
+
return load(yaml, {json: true});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const separateAndExtractFrontMatter = (
|
|
68
|
+
fileContent: string,
|
|
69
|
+
filePath?: string,
|
|
70
|
+
): ParseExistingMetadataReturn => {
|
|
71
|
+
const matches = matchMetadata(fileContent);
|
|
72
|
+
|
|
73
|
+
if (matches && matches.length > 0) {
|
|
74
|
+
const [, metadata, , metadataStrippedContent] = matches;
|
|
75
|
+
|
|
76
|
+
return {
|
|
77
|
+
frontMatter: transformFrontMatterValues(
|
|
78
|
+
duplicateKeysCompatibleLoad(
|
|
79
|
+
escapeLiquidSubstitutionSyntax(metadata),
|
|
80
|
+
filePath,
|
|
81
|
+
) as FrontMatter,
|
|
82
|
+
(v) => (typeof v === 'string' ? unescapeLiquidSubstitutionSyntax(v) : v),
|
|
83
|
+
),
|
|
84
|
+
frontMatterStrippedContent: metadataStrippedContent,
|
|
85
|
+
frontMatterLineCount: countLineAmount(metadata),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
frontMatter: {},
|
|
91
|
+
frontMatterStrippedContent: fileContent,
|
|
92
|
+
frontMatterLineCount: 0,
|
|
93
|
+
};
|
|
94
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {FrontMatter} from './common';
|
|
2
|
+
|
|
3
|
+
export const transformFrontMatterValues = (
|
|
4
|
+
frontMatter: FrontMatter,
|
|
5
|
+
valueMapper: (v: unknown) => unknown,
|
|
6
|
+
): FrontMatter => {
|
|
7
|
+
const transformInner = (something: unknown): unknown => {
|
|
8
|
+
if (Array.isArray(something)) {
|
|
9
|
+
return something.map((el) => transformInner(el));
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (typeof something === 'object' && something !== null) {
|
|
13
|
+
return Object.fromEntries(
|
|
14
|
+
Object.entries(something).map(([k, v]) => [k, transformInner(v)]),
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (typeof something === 'function') {
|
|
19
|
+
return something;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return valueMapper(something);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
return transformInner(frontMatter) as FrontMatter;
|
|
26
|
+
};
|
package/src/transform/index.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type {EnvType, OptionsType, OutputType} from './typings';
|
|
|
3
3
|
import {bold} from 'chalk';
|
|
4
4
|
|
|
5
5
|
import {log} from './log';
|
|
6
|
-
import
|
|
6
|
+
import liquidSnippet from './liquid';
|
|
7
7
|
import initMarkdownit from './md';
|
|
8
8
|
|
|
9
9
|
function applyLiquid(input: string, options: OptionsType) {
|
|
@@ -15,7 +15,9 @@ function applyLiquid(input: string, options: OptionsType) {
|
|
|
15
15
|
isLiquided = false,
|
|
16
16
|
} = options;
|
|
17
17
|
|
|
18
|
-
return disableLiquid || isLiquided
|
|
18
|
+
return disableLiquid || isLiquided
|
|
19
|
+
? input
|
|
20
|
+
: liquidSnippet(input, vars, path, {conditionsInCode});
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
function handleError(error: unknown, path?: string): never {
|