@tamagui/code-to-html 2.0.0-rc.4 → 2.0.0-rc.40
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/cjs/highlightLine.cjs +104 -85
- package/dist/cjs/highlightLine.native.js +109 -90
- package/dist/cjs/highlightLine.native.js.map +1 -1
- package/dist/cjs/highlightWord.cjs +34 -30
- package/dist/cjs/highlightWord.native.js +37 -35
- package/dist/cjs/highlightWord.native.js.map +1 -1
- package/dist/cjs/index.cjs +35 -30
- package/dist/cjs/index.native.js +37 -32
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/highlightLine.mjs +77 -60
- package/dist/esm/highlightLine.mjs.map +1 -1
- package/dist/esm/highlightLine.native.js +81 -64
- package/dist/esm/highlightLine.native.js.map +1 -1
- package/dist/esm/highlightWord.mjs +7 -5
- package/dist/esm/highlightWord.mjs.map +1 -1
- package/dist/esm/highlightWord.native.js +9 -9
- package/dist/esm/highlightWord.native.js.map +1 -1
- package/dist/esm/index.js +7 -6
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +4 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +6 -3
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/highlightLine.js +0 -98
- package/dist/cjs/highlightLine.js.map +0 -6
- package/dist/cjs/highlightWord.js +0 -37
- package/dist/cjs/highlightWord.js.map +0 -6
- package/dist/cjs/index.js +0 -35
- package/dist/cjs/index.js.map +0 -6
- package/dist/esm/highlightLine.js +0 -76
- package/dist/esm/highlightLine.js.map +0 -6
- package/dist/esm/highlightWord.js +0 -15
- package/dist/esm/highlightWord.js.map +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","highlightWord_exports","__export","highlightWord","module","exports","import_hast_util_to_html","require","import_rehype_parse","__toESM","import_unified","CALLOUT","code","html","toHtml","result","replace","_","text","hast","unified","use","default","emitParseErrors","fragment"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","highlightWord_exports","__export","highlightWord","module","exports","import_hast_util_to_html","require","import_rehype_parse","__toESM","import_unified","CALLOUT","code","html","toHtml","result","replace","_","text","hast","unified","use","default","emitParseErrors","fragment"],"sources":["../../src/highlightWord.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,qBAAA;AAAAC,QAAA,CAAAD,qBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAT,YAAA,CAAAK,qBAAuB;AACvB,IAAAK,wBAAkB,GAAAC,OAAA;AAClB,IAAAC,mBAAwB,GAAAC,OAAA,CAAAF,OAAA;AAExB,IAAAG,cAAgB,GAAAH,OAAA;AAET,IAAAI,OAAS,eAAc;AAC5B,SAAMR,aAAOA,CAAAS,IAAA;EACb,IAAAC,IAAM,OAASP,wBAAK,CAAAQ,MAAA,EAAAF,IAAA;EAAA,IAClBG,MAAA,GAAAF,IAAA,CAAAG,OAAA,CAAAL,OAAA,YAAAM,CAAA,EAAAC,IAAA;IACA,OAAI,gCAASA,IAAA,SAAoC;EACnD;EACA,IAAAC,IAAM,OAAAT,cAAO,CAAAU,OAAA,IAAQC,GAClB,CAAAb,mBAAI,CAAAc,OAAA;IAEPC,eAAY,MAAU;IACxBC,QAAA","ignoreList":[]}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -2,48 +2,53 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
6
|
-
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
32
34
|
var index_exports = {};
|
|
33
35
|
__export(index_exports, {
|
|
34
36
|
codeToHTML: () => codeToHTML
|
|
35
37
|
});
|
|
36
38
|
module.exports = __toCommonJS(index_exports);
|
|
37
|
-
var import_hast_util_to_html = require("hast-util-to-html")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
var import_hast_util_to_html = require("hast-util-to-html");
|
|
40
|
+
var import_parse_numeric_range = __toESM(require("parse-numeric-range"));
|
|
41
|
+
var import_refractor = require("refractor");
|
|
42
|
+
var import_css = __toESM(require("refractor/lang/css"));
|
|
43
|
+
var import_tsx = __toESM(require("refractor/lang/tsx"));
|
|
44
|
+
var import_highlightLine = require("./highlightLine.cjs");
|
|
45
|
+
var import_highlightWord = require("./highlightWord.cjs");
|
|
44
46
|
import_refractor.refractor.register(import_tsx.default);
|
|
45
47
|
import_refractor.refractor.register(import_css.default);
|
|
46
48
|
function codeToHTML(source, language, line = "0") {
|
|
47
49
|
let result = import_refractor.refractor.highlight(source, language);
|
|
48
|
-
|
|
50
|
+
result = (0, import_highlightLine.highlightLine)(result, (0, import_parse_numeric_range.default)(line));
|
|
51
|
+
result = (0, import_highlightWord.highlightWord)(result);
|
|
52
|
+
result = (0, import_hast_util_to_html.toHtml)(result);
|
|
53
|
+
return result;
|
|
49
54
|
}
|
package/dist/cjs/index.native.js
CHANGED
|
@@ -4,50 +4,55 @@ var __create = Object.create;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
8
|
-
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
18
|
get: () => from[key],
|
|
18
19
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
22
24
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
34
36
|
var index_exports = {};
|
|
35
37
|
__export(index_exports, {
|
|
36
38
|
codeToHTML: () => codeToHTML
|
|
37
39
|
});
|
|
38
40
|
module.exports = __toCommonJS(index_exports);
|
|
39
|
-
var import_hast_util_to_html = require("hast-util-to-html")
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
var import_hast_util_to_html = require("hast-util-to-html");
|
|
42
|
+
var import_parse_numeric_range = __toESM(require("parse-numeric-range"));
|
|
43
|
+
var import_refractor = require("refractor");
|
|
44
|
+
var import_css = __toESM(require("refractor/lang/css"));
|
|
45
|
+
var import_tsx = __toESM(require("refractor/lang/tsx"));
|
|
46
|
+
var import_highlightLine = require("./highlightLine.native.js");
|
|
47
|
+
var import_highlightWord = require("./highlightWord.native.js");
|
|
46
48
|
import_refractor.refractor.register(import_tsx.default);
|
|
47
49
|
import_refractor.refractor.register(import_css.default);
|
|
48
50
|
function codeToHTML(source, language) {
|
|
49
|
-
var line = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0"
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
var line = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0";
|
|
52
|
+
var result = import_refractor.refractor.highlight(source, language);
|
|
53
|
+
result = (0, import_highlightLine.highlightLine)(result, (0, import_parse_numeric_range.default)(line));
|
|
54
|
+
result = (0, import_highlightWord.highlightWord)(result);
|
|
55
|
+
result = (0, import_hast_util_to_html.toHtml)(result);
|
|
56
|
+
return result;
|
|
52
57
|
}
|
|
53
58
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","codeToHTML","module","exports","import_hast_util_to_html","require","import_parse_numeric_range","__toESM","import_refractor","import_css","import_tsx","import_highlightLine","import_highlightWord","refractor","register","default","source","language","line","arguments","length","result","highlight","highlightLine","highlightWord","toHtml"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","codeToHTML","module","exports","import_hast_util_to_html","require","import_parse_numeric_range","__toESM","import_refractor","import_css","import_tsx","import_highlightLine","import_highlightWord","refractor","register","default","source","language","line","arguments","length","result","highlight","highlightLine","highlightWord","toHtml"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,UAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAT,YAAA,CAAAK,aAAuB;AACvB,IAAAK,wBAAA,GAAAC,OAAwB;AACxB,IAAAC,0BAA0B,GAAAC,OAAA,CAAAF,OAAA;AAC1B,IAAAG,gBAAgB,GAAAH,OAAA;AAChB,IAAAI,UAAA,GAAgBF,OAAA,CAAAF,OAAA;AAEhB,IAAAK,UAAA,GAAAH,OAAA,CAAAF,OAA8B;AAC9B,IAAAM,oBAAA,GAA8BN,OAAA;AAE9B,IAAAO,oBAAA,GAAUP,OAAA,4BAAS;AACnBG,gBAAA,CAAAK,SAAA,CAAUC,QAAA,CAASJ,UAAA,CAAAK,OAAG;AAEfP,gBAAS,CAAAK,SAAW,CAAAC,QAAgB,CAAAL,UAAyC,CAAAM,OAAK;AACvF,SAAId,UAAcA,CAAAe,MAAA,EAAAC,QAAA;EAClB,IAAAC,IAAA,GAAAC,SAAS,CAAAC,MAAA,QAAAD,SAAA,QAAc,SAAQA,SAAA;EAC/B,IAAAE,MAAA,GAASb,gBAAA,CAAAK,SAAA,CAAAS,SAAc,CAAAN,MAAM,EAAAC,QAAA;EAC7BI,MAAA,OAASV,oBAAA,CAAAY,aAAO,EAAAF,MAAM,MAAAf,0BAAA,CAAAS,OAAA,EAAAG,IAAA;EACtBG,MAAA,GAAO,IAAAT,oBAAA,CAAAY,aAAA,EAAAH,MAAA;EACTA,MAAA,OAAAjB,wBAAA,CAAAqB,MAAA,EAAAJ,MAAA","ignoreList":[]}
|
|
@@ -2,75 +2,92 @@ import { toHtml } from "hast-util-to-html";
|
|
|
2
2
|
import parse from "rehype-parse";
|
|
3
3
|
import { unified } from "unified";
|
|
4
4
|
const lineNumberify = function lineNumberify2(ast, lineNum = 1) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
let lineNumber = lineNum;
|
|
6
|
+
return ast.reduce((result, node) => {
|
|
7
|
+
if (node.type === "text") {
|
|
8
|
+
if (node.value.indexOf("\n") === -1) {
|
|
9
|
+
node.lineNumber = lineNumber;
|
|
10
|
+
result.nodes.push(node);
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
const lines = node.value.split("\n");
|
|
14
|
+
for (let i = 0; i < lines.length; i++) {
|
|
15
|
+
if (i !== 0) ++lineNumber;
|
|
16
|
+
if (i === lines.length - 1 && lines[i].length === 0) continue;
|
|
17
|
+
result.nodes.push({
|
|
13
18
|
type: "text",
|
|
14
19
|
value: i === lines.length - 1 ? lines[i] : `${lines[i]}
|
|
15
20
|
`,
|
|
16
21
|
lineNumber
|
|
17
22
|
});
|
|
18
|
-
return result.lineNumber = lineNumber, result;
|
|
19
23
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
result.lineNumber = lineNumber;
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
if (node.children) {
|
|
28
|
+
node.lineNumber = lineNumber;
|
|
29
|
+
const processed = lineNumberify2(node.children, lineNumber);
|
|
30
|
+
node.children = processed.nodes;
|
|
31
|
+
result.lineNumber = processed.lineNumber;
|
|
32
|
+
result.nodes.push(node);
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
result.nodes.push(node);
|
|
36
|
+
return result;
|
|
37
|
+
}, {
|
|
38
|
+
nodes: [],
|
|
39
|
+
lineNumber
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const wrapLines = function wrapLines2(ast, linesToHighlight) {
|
|
43
|
+
const highlightAll = linesToHighlight.length === 1 && linesToHighlight[0] === 0;
|
|
44
|
+
const allLines = Array.from(new Set(ast.map(x => x.lineNumber)));
|
|
45
|
+
let i = 0;
|
|
46
|
+
const wrapped = allLines.reduce((nodes, marker) => {
|
|
47
|
+
const line = marker;
|
|
48
|
+
const children = [];
|
|
49
|
+
for (; i < ast.length; i++) {
|
|
50
|
+
if (ast[i].lineNumber < line) {
|
|
51
|
+
nodes.push(ast[i]);
|
|
52
|
+
continue;
|
|
24
53
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
wrapLines = function (ast, linesToHighlight) {
|
|
32
|
-
const highlightAll = linesToHighlight.length === 1 && linesToHighlight[0] === 0,
|
|
33
|
-
allLines = Array.from(new Set(ast.map(x => x.lineNumber)));
|
|
34
|
-
let i = 0;
|
|
35
|
-
return allLines.reduce((nodes, marker) => {
|
|
36
|
-
const line = marker,
|
|
37
|
-
children = [];
|
|
38
|
-
for (; i < ast.length; i++) {
|
|
39
|
-
if (ast[i].lineNumber < line) {
|
|
40
|
-
nodes.push(ast[i]);
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (ast[i].lineNumber === line) {
|
|
44
|
-
children.push(ast[i]);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (ast[i].lineNumber > line) break;
|
|
54
|
+
if (ast[i].lineNumber === line) {
|
|
55
|
+
children.push(ast[i]);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (ast[i].lineNumber > line) {
|
|
59
|
+
break;
|
|
48
60
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
}
|
|
62
|
+
nodes.push({
|
|
63
|
+
type: "element",
|
|
64
|
+
tagName: "div",
|
|
65
|
+
properties: {
|
|
66
|
+
dataLine: line,
|
|
67
|
+
className: "highlight-line",
|
|
68
|
+
dataHighlighted: linesToHighlight.includes(line) || highlightAll ? "true" : "false"
|
|
69
|
+
},
|
|
70
|
+
children,
|
|
71
|
+
lineNumber: line
|
|
72
|
+
});
|
|
73
|
+
return nodes;
|
|
74
|
+
}, []);
|
|
75
|
+
return wrapped;
|
|
76
|
+
};
|
|
77
|
+
const MULTILINE_TOKEN_SPAN = /<span class="token ([^"]+)">[^<]*\n[^<]*<\/span>/g;
|
|
78
|
+
const applyMultilineFix = ast => {
|
|
79
|
+
let html = toHtml(ast);
|
|
80
|
+
html = html.replace(MULTILINE_TOKEN_SPAN, (match, token) => match.replace(/\n/g, `</span>
|
|
81
|
+
<span class="token ${token}">`));
|
|
82
|
+
const hast = unified().use(parse, {
|
|
83
|
+
emitParseErrors: true,
|
|
84
|
+
fragment: true
|
|
85
|
+
}).parse(html);
|
|
86
|
+
return hast["children"];
|
|
87
|
+
};
|
|
71
88
|
function highlightLine(ast, lines) {
|
|
72
|
-
const formattedAst = applyMultilineFix(ast)
|
|
73
|
-
|
|
89
|
+
const formattedAst = applyMultilineFix(ast);
|
|
90
|
+
const numbered = lineNumberify(formattedAst).nodes;
|
|
74
91
|
return wrapLines(numbered, lines);
|
|
75
92
|
}
|
|
76
93
|
export { highlightLine };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toHtml","parse","unified","lineNumberify","lineNumberify2","ast","lineNum","lineNumber","reduce","result","node","type","value","indexOf","nodes","push","lines","split","i","length","children","processed","wrapLines","linesToHighlight","highlightAll","allLines","Array","from","Set","map","x","marker","line","tagName","properties","dataLine","className","dataHighlighted","includes","MULTILINE_TOKEN_SPAN","applyMultilineFix","html","replace","match","token","use","emitParseErrors","fragment","highlightLine","formattedAst","numbered"],"sources":["../../src/highlightLine.ts"],"sourcesContent":[null],"mappings":"AAEA,SAASA,MAAA,QAAc;AACvB,OAAOC,KAAA,MAAW;AAClB,SAASC,OAAA,QAAe;AAExB,MAAMC,aAAA,GAAgB,SAASC,eAAcC,GAAA,EAAKC,OAAA,GAAU,GAAG;
|
|
1
|
+
{"version":3,"names":["toHtml","parse","unified","lineNumberify","lineNumberify2","ast","lineNum","lineNumber","reduce","result","node","type","value","indexOf","nodes","push","lines","split","i","length","children","processed","wrapLines","wrapLines2","linesToHighlight","highlightAll","allLines","Array","from","Set","map","x","wrapped","marker","line","tagName","properties","dataLine","className","dataHighlighted","includes","MULTILINE_TOKEN_SPAN","applyMultilineFix","html","replace","match","token","hast","use","emitParseErrors","fragment","highlightLine","formattedAst","numbered"],"sources":["../../src/highlightLine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -2,80 +2,97 @@ import { toHtml } from "hast-util-to-html";
|
|
|
2
2
|
import parse from "rehype-parse";
|
|
3
3
|
import { unified } from "unified";
|
|
4
4
|
var lineNumberify = function lineNumberify2(ast) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
var lineNum = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
|
|
6
|
+
var lineNumber = lineNum;
|
|
7
|
+
return ast.reduce(function (result, node) {
|
|
8
|
+
if (node.type === "text") {
|
|
9
|
+
if (node.value.indexOf("\n") === -1) {
|
|
10
|
+
node.lineNumber = lineNumber;
|
|
11
|
+
result.nodes.push(node);
|
|
12
|
+
return result;
|
|
13
|
+
}
|
|
14
|
+
var lines = node.value.split("\n");
|
|
15
|
+
for (var i = 0; i < lines.length; i++) {
|
|
16
|
+
if (i !== 0) ++lineNumber;
|
|
17
|
+
if (i === lines.length - 1 && lines[i].length === 0) continue;
|
|
18
|
+
result.nodes.push({
|
|
13
19
|
type: "text",
|
|
14
20
|
value: i === lines.length - 1 ? lines[i] : `${lines[i]}
|
|
15
21
|
`,
|
|
16
22
|
lineNumber
|
|
17
23
|
});
|
|
18
|
-
return result.lineNumber = lineNumber, result;
|
|
19
24
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
result.lineNumber = lineNumber;
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
if (node.children) {
|
|
29
|
+
node.lineNumber = lineNumber;
|
|
30
|
+
var processed = lineNumberify2(node.children, lineNumber);
|
|
31
|
+
node.children = processed.nodes;
|
|
32
|
+
result.lineNumber = processed.lineNumber;
|
|
33
|
+
result.nodes.push(node);
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
result.nodes.push(node);
|
|
37
|
+
return result;
|
|
38
|
+
}, {
|
|
39
|
+
nodes: [],
|
|
40
|
+
lineNumber
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
var wrapLines = function wrapLines2(ast, linesToHighlight) {
|
|
44
|
+
var highlightAll = linesToHighlight.length === 1 && linesToHighlight[0] === 0;
|
|
45
|
+
var allLines = Array.from(new Set(ast.map(function (x) {
|
|
46
|
+
return x.lineNumber;
|
|
47
|
+
})));
|
|
48
|
+
var i = 0;
|
|
49
|
+
var wrapped = allLines.reduce(function (nodes, marker) {
|
|
50
|
+
var line = marker;
|
|
51
|
+
var children = [];
|
|
52
|
+
for (; i < ast.length; i++) {
|
|
53
|
+
if (ast[i].lineNumber < line) {
|
|
54
|
+
nodes.push(ast[i]);
|
|
55
|
+
continue;
|
|
24
56
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
57
|
+
if (ast[i].lineNumber === line) {
|
|
58
|
+
children.push(ast[i]);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (ast[i].lineNumber > line) {
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
nodes.push({
|
|
66
|
+
type: "element",
|
|
67
|
+
tagName: "div",
|
|
68
|
+
properties: {
|
|
69
|
+
dataLine: line,
|
|
70
|
+
className: "highlight-line",
|
|
71
|
+
dataHighlighted: linesToHighlight.includes(line) || highlightAll ? "true" : "false"
|
|
72
|
+
},
|
|
73
|
+
children,
|
|
74
|
+
lineNumber: line
|
|
29
75
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (ast[i].lineNumber < line) {
|
|
40
|
-
nodes.push(ast[i]);
|
|
41
|
-
continue;
|
|
42
|
-
}
|
|
43
|
-
if (ast[i].lineNumber === line) {
|
|
44
|
-
children.push(ast[i]);
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (ast[i].lineNumber > line) break;
|
|
48
|
-
}
|
|
49
|
-
return nodes.push({
|
|
50
|
-
type: "element",
|
|
51
|
-
tagName: "div",
|
|
52
|
-
properties: {
|
|
53
|
-
dataLine: line,
|
|
54
|
-
className: "highlight-line",
|
|
55
|
-
dataHighlighted: linesToHighlight.includes(line) || highlightAll ? "true" : "false"
|
|
56
|
-
},
|
|
57
|
-
children,
|
|
58
|
-
lineNumber: line
|
|
59
|
-
}), nodes;
|
|
60
|
-
}, []);
|
|
61
|
-
return wrapped;
|
|
62
|
-
},
|
|
63
|
-
MULTILINE_TOKEN_SPAN = /<span class="token ([^"]+)">[^<]*\n[^<]*<\/span>/g,
|
|
64
|
-
applyMultilineFix = function (ast) {
|
|
65
|
-
var html = toHtml(ast);
|
|
66
|
-
html = html.replace(MULTILINE_TOKEN_SPAN, function (match, token) {
|
|
67
|
-
return match.replace(/\n/g, `</span>
|
|
76
|
+
return nodes;
|
|
77
|
+
}, []);
|
|
78
|
+
return wrapped;
|
|
79
|
+
};
|
|
80
|
+
var MULTILINE_TOKEN_SPAN = /<span class="token ([^"]+)">[^<]*\n[^<]*<\/span>/g;
|
|
81
|
+
var applyMultilineFix = function (ast) {
|
|
82
|
+
var html = toHtml(ast);
|
|
83
|
+
html = html.replace(MULTILINE_TOKEN_SPAN, function (match, token) {
|
|
84
|
+
return match.replace(/\n/g, `</span>
|
|
68
85
|
<span class="token ${token}">`);
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
86
|
+
});
|
|
87
|
+
var hast = unified().use(parse, {
|
|
88
|
+
emitParseErrors: true,
|
|
89
|
+
fragment: true
|
|
90
|
+
}).parse(html);
|
|
91
|
+
return hast["children"];
|
|
92
|
+
};
|
|
76
93
|
function highlightLine(ast, lines) {
|
|
77
|
-
var formattedAst = applyMultilineFix(ast)
|
|
78
|
-
|
|
94
|
+
var formattedAst = applyMultilineFix(ast);
|
|
95
|
+
var numbered = lineNumberify(formattedAst).nodes;
|
|
79
96
|
return wrapLines(numbered, lines);
|
|
80
97
|
}
|
|
81
98
|
export { highlightLine };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toHtml","parse","unified","lineNumberify","lineNumberify2","ast","lineNum","arguments","length","lineNumber","reduce","result","node","type","value","indexOf","nodes","push","lines","split","i","children","processed","wrapLines","linesToHighlight","highlightAll","allLines","Array","from","Set","map","x","wrapped","marker","line","tagName","properties","dataLine","className","dataHighlighted","includes","MULTILINE_TOKEN_SPAN","applyMultilineFix","html","replace","match","token","hast","use","emitParseErrors","fragment"
|
|
1
|
+
{"version":3,"names":["toHtml","parse","unified","lineNumberify","lineNumberify2","ast","lineNum","arguments","length","lineNumber","reduce","result","node","type","value","indexOf","nodes","push","lines","split","i","children","processed","wrapLines","wrapLines2","linesToHighlight","highlightAll","allLines","Array","from","Set","map","x","wrapped","marker","line","tagName","properties","dataLine","className","dataHighlighted","includes","MULTILINE_TOKEN_SPAN","applyMultilineFix","html","replace","match","token","hast","use","emitParseErrors","fragment"],"sources":["../../src/highlightLine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,13 @@ import parse from "rehype-parse";
|
|
|
3
3
|
import { unified } from "unified";
|
|
4
4
|
const CALLOUT = /__(.*?)__/g;
|
|
5
5
|
function highlightWord(code) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
const html = toHtml(code);
|
|
7
|
+
const result = html.replace(CALLOUT, (_, text) => `<span class="highlight-word">${text}</span>`);
|
|
8
|
+
const hast = unified().use(parse, {
|
|
9
|
+
emitParseErrors: true,
|
|
10
|
+
fragment: true
|
|
11
|
+
}).parse(result);
|
|
12
|
+
return hast["children"];
|
|
11
13
|
}
|
|
12
14
|
export { highlightWord };
|
|
13
15
|
//# sourceMappingURL=highlightWord.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toHtml","parse","unified","CALLOUT","highlightWord","code","result","replace","_","text","use","emitParseErrors","fragment"
|
|
1
|
+
{"version":3,"names":["toHtml","parse","unified","CALLOUT","highlightWord","code","html","result","replace","_","text","hast","use","emitParseErrors","fragment"],"sources":["../../src/highlightWord.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,MAAA,QAAc;AACvB,OAAOC,KAAA,MAAW;AAClB,SAASC,OAAA,QAAe;AAExB,MAAMC,OAAA,GAAU;AAET,SAASC,cAAcC,IAAA,EAAM;EAClC,MAAMC,IAAA,GAAON,MAAA,CAAOK,IAAI;EACxB,MAAME,MAAA,GAASD,IAAA,CAAKE,OAAA,CAClBL,OAAA,EACA,CAACM,CAAA,EAAGC,IAAA,KAAS,gCAAgCA,IAAI,SACnD;EACA,MAAMC,IAAA,GAAOT,OAAA,CAAQ,EAClBU,GAAA,CAAIX,KAAA,EAAO;IAAEY,eAAA,EAAiB;IAAMC,QAAA,EAAU;EAAK,CAAC,EACpDb,KAAA,CAAMM,MAAM;EACf,OAAOI,IAAA,CAAK,UAAU;AACxB","ignoreList":[]}
|
|
@@ -3,15 +3,15 @@ import parse from "rehype-parse";
|
|
|
3
3
|
import { unified } from "unified";
|
|
4
4
|
var CALLOUT = /__(.*?)__/g;
|
|
5
5
|
function highlightWord(code) {
|
|
6
|
-
var html = toHtml(code)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return hast
|
|
6
|
+
var html = toHtml(code);
|
|
7
|
+
var result = html.replace(CALLOUT, function (_, text) {
|
|
8
|
+
return `<span class="highlight-word">${text}</span>`;
|
|
9
|
+
});
|
|
10
|
+
var hast = unified().use(parse, {
|
|
11
|
+
emitParseErrors: true,
|
|
12
|
+
fragment: true
|
|
13
|
+
}).parse(result);
|
|
14
|
+
return hast["children"];
|
|
15
15
|
}
|
|
16
16
|
export { highlightWord };
|
|
17
17
|
//# sourceMappingURL=highlightWord.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["toHtml","parse","unified","CALLOUT","highlightWord","code","html","result","replace","_","text","hast","use","emitParseErrors","fragment"],"sources":["../../src/highlightWord.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,MAAA,QAAc;AACvB,OAAOC,KAAA,MAAW;AAClB,SAASC,OAAA,QAAe;AAExB,IAAAC,OAAM,eAAU;AAET,SAASC,cAAcC,IAAA,EAAM;
|
|
1
|
+
{"version":3,"names":["toHtml","parse","unified","CALLOUT","highlightWord","code","html","result","replace","_","text","hast","use","emitParseErrors","fragment"],"sources":["../../src/highlightWord.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,MAAA,QAAc;AACvB,OAAOC,KAAA,MAAW;AAClB,SAASC,OAAA,QAAe;AAExB,IAAAC,OAAM,eAAU;AAET,SAASC,cAAcC,IAAA,EAAM;EAClC,IAAAC,IAAM,GAAAN,MAAO,CAAAK,IAAO;EACpB,IAAAE,MAAM,GAAAD,IAAS,CAAAE,OAAK,CAAAL,OAAA,YAAAM,CAAA,EAAAC,IAAA;IAClB,uCAAAA,IAAA;EAAA,EACA;EACF,IAAAC,IAAA,GAAAT,OAAA,GAAAU,GAAA,CAAAX,KAAA;IACAY,eAAa,MACV;IAEHC,QAAO,EAAK;EACd,GAAAb,KAAA,CAAAM,MAAA","ignoreList":[]}
|