webforai 1.1.6 → 1.2.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/cjs/extract-hast/readability.js +150 -0
- package/dist/cjs/extract-hast/strongly.js +0 -22
- package/dist/cjs/extract-hast/utils.js +55 -0
- package/dist/cjs/html-to-mdast.js +10 -6
- package/dist/cjs/mdast-handlers/custom-a-handler.js +4 -4
- package/dist/cjs/mdast-handlers/custom-div-handler.js +35 -31
- package/dist/cjs/mdast-handlers/custom-img-handler.js +33 -0
- package/dist/cjs/mdast-handlers/custom-table-handler.js +37 -0
- package/dist/cjs/utils/detect-code-lang.js +73 -0
- package/dist/extract-hast/readability.js +127 -0
- package/dist/extract-hast/strongly.js +0 -22
- package/dist/extract-hast/utils.js +29 -0
- package/dist/html-to-mdast.js +10 -6
- package/dist/mdast-handlers/custom-a-handler.js +4 -4
- package/dist/mdast-handlers/custom-div-handler.js +35 -31
- package/dist/mdast-handlers/custom-img-handler.js +10 -0
- package/dist/mdast-handlers/custom-table-handler.js +14 -0
- package/dist/types/extract-hast/readability.d.ts +11 -0
- package/dist/types/extract-hast/readability.js.map +1 -0
- package/dist/types/extract-hast/strongly.js.map +1 -1
- package/dist/types/extract-hast/utils.d.ts +5 -0
- package/dist/types/extract-hast/utils.js.map +1 -0
- package/dist/types/html-to-mdast.d.ts +2 -1
- package/dist/types/html-to-mdast.js.map +1 -1
- package/dist/types/loaders/cf-puppeteer.d.ts +2 -1
- package/dist/types/mdast-handlers/custom-a-handler.js.map +1 -1
- package/dist/types/mdast-handlers/custom-div-handler.js.map +1 -1
- package/dist/types/mdast-handlers/custom-img-handler.d.ts +4 -0
- package/dist/types/mdast-handlers/custom-img-handler.js.map +1 -0
- package/dist/types/mdast-handlers/custom-table-handler.d.ts +4 -0
- package/dist/types/mdast-handlers/custom-table-handler.js.map +1 -0
- package/dist/types/utils/detect-code-lang.d.ts +1 -0
- package/dist/types/utils/detect-code-lang.js.map +1 -0
- package/dist/utils/detect-code-lang.js +50 -0
- package/package.json +118 -115
- package/LICENSE +0 -21
|
@@ -1,25 +1,7 @@
|
|
|
1
1
|
// src/extract-hast/strongly.ts
|
|
2
2
|
import { select } from "hast-util-select";
|
|
3
|
-
import { toText } from "hast-util-to-text";
|
|
4
3
|
import { filter } from "unist-util-filter";
|
|
5
|
-
var evaluateTextComplexity = (text) => {
|
|
6
|
-
const words = text.trim().split(/\s+/);
|
|
7
|
-
const wordCount = words.length;
|
|
8
|
-
const charCount = text.length;
|
|
9
|
-
const avgWordLength = charCount / wordCount;
|
|
10
|
-
const uniqueWords = new Set(words);
|
|
11
|
-
const uniqueWordCount = uniqueWords.size;
|
|
12
|
-
const complexityScore = avgWordLength * 0.4 + uniqueWordCount / wordCount * 100 * 0.6;
|
|
13
|
-
return {
|
|
14
|
-
wordCount,
|
|
15
|
-
charCount,
|
|
16
|
-
avgWordLength,
|
|
17
|
-
uniqueWordCount,
|
|
18
|
-
complexityScore
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
4
|
var REMOVE_REGEX = /fallback|icon|header|nav|speechify-ignore|assist|-ad-|banner|combx|comment|com-|contact|foot|footer|footnote|gdpr|masthead|media|meta|outbrain|promo|related|scroll|share|assist|shoutbox|sidebar|skyscraper|sponsor|shopping|tags|tool|widget/i;
|
|
22
|
-
var HIDDEN_REGEX = /hidden|^hid$| hid$| hid |^hid /i;
|
|
23
5
|
var stronglyExtractHast = (hast) => {
|
|
24
6
|
const selectors = ["article", "#article", "#content", "main", "div.container"];
|
|
25
7
|
let selectedElement = hast;
|
|
@@ -39,10 +21,6 @@ var stronglyExtractHast = (hast) => {
|
|
|
39
21
|
const elementName = `${element.tagName} ${element.properties.id} ${element.properties.className}`;
|
|
40
22
|
if (REMOVE_REGEX.test(elementName))
|
|
41
23
|
return false;
|
|
42
|
-
const isHidden = HIDDEN_REGEX.test(elementName);
|
|
43
|
-
const complexity = evaluateTextComplexity(toText(element));
|
|
44
|
-
if (isHidden && complexity.complexityScore < 40)
|
|
45
|
-
return false;
|
|
46
24
|
return true;
|
|
47
25
|
});
|
|
48
26
|
return removedElements;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// src/extract-hast/utils.ts
|
|
2
|
+
var matchString = (element) => `${element.tagName} ${element.properties.id} ${classnames(element).join(" ")} }`;
|
|
3
|
+
var classnames = (element) => {
|
|
4
|
+
if (Array.isArray(element.properties.className))
|
|
5
|
+
return element.properties.className;
|
|
6
|
+
return [];
|
|
7
|
+
};
|
|
8
|
+
var isStrInclude = (value, match) => {
|
|
9
|
+
if (typeof value === "string")
|
|
10
|
+
return value.includes(match);
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
var hasAncestors = (element, tagNames, depth = 3) => {
|
|
14
|
+
let parent = element.parent;
|
|
15
|
+
for (let i = 0; i < depth; i++) {
|
|
16
|
+
if (!parent || parent.type !== "element")
|
|
17
|
+
return false;
|
|
18
|
+
if (tagNames.includes(parent.tagName))
|
|
19
|
+
return true;
|
|
20
|
+
parent = parent.parent;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
classnames,
|
|
26
|
+
hasAncestors,
|
|
27
|
+
isStrInclude,
|
|
28
|
+
matchString
|
|
29
|
+
};
|
package/dist/html-to-mdast.js
CHANGED
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
import { fromHtml } from "hast-util-from-html";
|
|
3
3
|
import { toMdast } from "hast-util-to-mdast";
|
|
4
4
|
import { stronglyExtractHast } from "./extract-hast/index.js";
|
|
5
|
+
import { readabilityExtractHast } from "./extract-hast/readability.js";
|
|
5
6
|
import { customAHandler } from "./mdast-handlers/custom-a-handler.js";
|
|
6
7
|
import { customDivHandler } from "./mdast-handlers/custom-div-handler.js";
|
|
8
|
+
import { customImgHandler } from "./mdast-handlers/custom-img-handler.js";
|
|
9
|
+
import { customTableHandler } from "./mdast-handlers/custom-table-handler.js";
|
|
7
10
|
import { mathHandler } from "./mdast-handlers/math-handler.js";
|
|
8
11
|
var PRESET_EXTRACT_HAST = {
|
|
9
|
-
strongly: stronglyExtractHast
|
|
12
|
+
strongly: stronglyExtractHast,
|
|
13
|
+
readability: readabilityExtractHast
|
|
10
14
|
};
|
|
11
|
-
var DEFAULT_EXTRACT_HAST = ["
|
|
15
|
+
var DEFAULT_EXTRACT_HAST = ["readability"];
|
|
12
16
|
var htmlToMdast = (html, options) => {
|
|
13
17
|
const { extractHast = DEFAULT_EXTRACT_HAST } = options || {};
|
|
14
18
|
const _extractHast = Array.isArray(extractHast) ? extractHast : [extractHast];
|
|
@@ -24,13 +28,13 @@ var htmlToMdast = (html, options) => {
|
|
|
24
28
|
}, hast) || hast;
|
|
25
29
|
const mdast = toMdast(extractedHast, {
|
|
26
30
|
handlers: {
|
|
27
|
-
div: customDivHandler,
|
|
28
31
|
math: mathHandler,
|
|
32
|
+
div: customDivHandler,
|
|
29
33
|
a: customAHandler({ asText: options?.linkAsText }),
|
|
34
|
+
img: customImgHandler({ hideImage: options?.hideImage }),
|
|
35
|
+
table: customTableHandler({ asText: options?.tableAsText }),
|
|
30
36
|
br: () => {
|
|
31
|
-
}
|
|
32
|
-
...options?.hideImage ? { img: () => {
|
|
33
|
-
} } : {}
|
|
37
|
+
}
|
|
34
38
|
}
|
|
35
39
|
});
|
|
36
40
|
return mdast;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// src/mdast-handlers/custom-a-handler.ts
|
|
2
2
|
import { defaultHandlers } from "hast-util-to-mdast";
|
|
3
|
+
import { toString } from "hast-util-to-string";
|
|
3
4
|
var customAHandler = (options) => (state, node) => {
|
|
4
5
|
if (options?.asText) {
|
|
5
|
-
const link2 =
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return void 0;
|
|
6
|
+
const link2 = { type: "text", value: toString(node) };
|
|
7
|
+
state.patch(node, link2);
|
|
8
|
+
return link2;
|
|
9
9
|
}
|
|
10
10
|
const link = defaultHandlers.a(state, node);
|
|
11
11
|
if (link.children.length > 0)
|
|
@@ -1,40 +1,44 @@
|
|
|
1
1
|
// src/mdast-handlers/custom-div-handler.ts
|
|
2
|
+
import { select } from "hast-util-select";
|
|
2
3
|
import { defaultHandlers } from "hast-util-to-mdast";
|
|
4
|
+
import { toString } from "hast-util-to-string";
|
|
3
5
|
import { toText } from "hast-util-to-text";
|
|
4
6
|
import { trimTrailingLines } from "trim-trailing-lines";
|
|
7
|
+
import { detectLanguage } from "../utils/detect-code-lang.js";
|
|
8
|
+
var CODE_BLOCK_REGEX = /highlight-source|language-|codegroup|codeblock|code-block/i;
|
|
9
|
+
var CODE_FILENAME_SELECTORS = "[class*='fileName'],[class*='fileName'],[class*='title'],[class*='Title']";
|
|
10
|
+
var LANGUAGE_MATCH_REGEX = /language-(\w+)|highlight-source-(\w+)/;
|
|
11
|
+
var findRecursive = (array, condition, maxDepth = 3) => {
|
|
12
|
+
if (maxDepth <= 0)
|
|
13
|
+
return null;
|
|
14
|
+
for (const value of array) {
|
|
15
|
+
const result = condition(value);
|
|
16
|
+
if (Array.isArray(result))
|
|
17
|
+
return findRecursive(result, condition, maxDepth - 1);
|
|
18
|
+
if (result)
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
};
|
|
5
23
|
var customDivHandler = (state, node) => {
|
|
6
24
|
const classNames = Array.isArray(node.properties.className) ? node.properties.className : [];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
break;
|
|
25
|
-
const lang = toText(node).split("\n")[0].split(".").slice(-1)[0];
|
|
26
|
-
highlightLanguage = lang;
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (highlightLanguage !== void 0) {
|
|
31
|
-
const code = node.children.find((child) => child.type === "element" && child.tagName === "pre") || node;
|
|
32
|
-
const result = {
|
|
33
|
-
type: "code",
|
|
34
|
-
lang: highlightLanguage,
|
|
35
|
-
meta: null,
|
|
36
|
-
value: trimTrailingLines(toText(code)).trim()
|
|
37
|
-
};
|
|
25
|
+
const codeBlock = findRecursive(node.children, (child) => {
|
|
26
|
+
if (child.type !== "element")
|
|
27
|
+
return false;
|
|
28
|
+
if (child.tagName === "pre")
|
|
29
|
+
return true;
|
|
30
|
+
return child.children.filter((child2) => child2.type === "element");
|
|
31
|
+
});
|
|
32
|
+
if (codeBlock && classNames.some((className) => CODE_BLOCK_REGEX.test(className))) {
|
|
33
|
+
const codeValue = trimTrailingLines(toText(codeBlock)).trim();
|
|
34
|
+
const filenameElement = select(CODE_FILENAME_SELECTORS, node);
|
|
35
|
+
const fileLang = filenameElement ? toString(filenameElement).match(/\.(\w+)$/)?.[1] : null;
|
|
36
|
+
const classLang = classNames.map((className) => {
|
|
37
|
+
const match = className.match(LANGUAGE_MATCH_REGEX);
|
|
38
|
+
return match?.[1] || match?.[2];
|
|
39
|
+
}).find((className) => className);
|
|
40
|
+
const lang = fileLang || classLang || detectLanguage(codeValue) || null;
|
|
41
|
+
const result = { type: "code", lang, meta: null, value: codeValue };
|
|
38
42
|
state.patch(node, result);
|
|
39
43
|
return result;
|
|
40
44
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// src/mdast-handlers/custom-img-handler.ts
|
|
2
|
+
import { defaultHandlers } from "hast-util-to-mdast";
|
|
3
|
+
var customImgHandler = (options) => (state, node) => {
|
|
4
|
+
if (options?.hideImage)
|
|
5
|
+
return void 0;
|
|
6
|
+
return defaultHandlers.image(state, node);
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
customImgHandler
|
|
10
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// src/mdast-handlers/custom-table-handler.ts
|
|
2
|
+
import { defaultHandlers } from "hast-util-to-mdast";
|
|
3
|
+
import { toText } from "hast-util-to-text";
|
|
4
|
+
var customTableHandler = (options) => (state, node) => {
|
|
5
|
+
if (options?.asText) {
|
|
6
|
+
const paragraph = { type: "paragraph", children: [{ type: "text", value: toText(node) }] };
|
|
7
|
+
state.patch(node, paragraph);
|
|
8
|
+
return paragraph;
|
|
9
|
+
}
|
|
10
|
+
return defaultHandlers.table(state, node);
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
customTableHandler
|
|
14
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Nodes as Hast } from "hast";
|
|
2
|
+
type ProxiedHast = Hast & {
|
|
3
|
+
parent: ProxiedHast | null;
|
|
4
|
+
};
|
|
5
|
+
declare module "hast" {
|
|
6
|
+
interface Element {
|
|
7
|
+
parent: ProxiedHast | null;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export declare const readabilityExtractHast: (hast: Hast) => Hast;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readability.js","sourceRoot":"","sources":["../../../src/extract-hast/readability.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strongly.js","sourceRoot":"","sources":["../../../src/extract-hast/strongly.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"strongly.js","sourceRoot":"","sources":["../../../src/extract-hast/strongly.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,YAAY,GACjB,iPAAiP,CAAC;AAEnP,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAU,EAAQ,EAAE;IACvD,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAC/E,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,CAAC;YACb,eAAe,GAAG,OAAO,CAAC;YAC1B,MAAM;QACP,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzC,MAAM,OAAO,GAAG,IAAe,CAAC;QAChC,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;QAClG,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,eAAuB,CAAC;AAChC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Element } from "hast";
|
|
2
|
+
export declare const matchString: (element: Element) => string;
|
|
3
|
+
export declare const classnames: (element: Element) => string[];
|
|
4
|
+
export declare const isStrInclude: (value: unknown, match: string) => boolean;
|
|
5
|
+
export declare const hasAncestors: (element: Element, tagNames: string[], depth?: number) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/extract-hast/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAE,EAAE,CAC/C,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAElF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC,SAAqB,CAAC;IACjG,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAa,EAAE,EAAE;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,QAAkB,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE;IAC/E,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACnD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Nodes as Hast } from "hast";
|
|
2
2
|
import type { Nodes as Mdast } from "mdast";
|
|
3
|
-
type ExtractHast = ((hast: Hast) => Hast) | false | "strongly";
|
|
3
|
+
type ExtractHast = ((hast: Hast) => Hast) | false | "strongly" | "readability";
|
|
4
4
|
export type HtmlToMdastOptions = {
|
|
5
5
|
extractHast?: ExtractHast | ExtractHast[];
|
|
6
6
|
linkAsText?: boolean;
|
|
7
|
+
tableAsText?: boolean;
|
|
7
8
|
hideImage?: boolean;
|
|
8
9
|
};
|
|
9
10
|
export declare const htmlToMdast: (html: string, options?: HtmlToMdastOptions) => Mdast;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-to-mdast.js","sourceRoot":"","sources":["../../src/html-to-mdast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"html-to-mdast.js","sourceRoot":"","sources":["../../src/html-to-mdast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,sBAAsB;CACnC,CAAC;AAEF,MAAM,oBAAoB,GAAkB,CAAC,aAAa,CAAC,CAAC;AAS5D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,OAA4B,EAAS,EAAE;IAChF,MAAM,EAAE,WAAW,GAAG,oBAAoB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAE9E,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,MAAM,aAAa,GAClB,YAAY,CAAC,MAAM,CAAO,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE;QAC9C,IAAI,WAAW,KAAK,KAAK;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,IAAI,mBAAmB;YACxE,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,OAAO,WAAW,KAAK,UAAU;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;IAElB,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE;QACpC,QAAQ,EAAE;YACT,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,gBAAgB;YACrB,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YAClD,GAAG,EAAE,gBAAgB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACxD,KAAK,EAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YAC3D,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;SACZ;KACD,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import puppeteer from "@cloudflare/puppeteer";
|
|
2
|
+
export declare const loadHtml: (url: string, ctx: puppeteer.BrowserWorker) => Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-a-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-a-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-a-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-a-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAC1B,CAAC,OAA8B,EAAU,EAAE,CAC3C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACf,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAW,CAAC;QAC9D,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-div-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-div-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-div-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-div-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-img-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-img-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAElE,MAAM,CAAC,MAAM,gBAAgB,GAC5B,CAAC,OAAiC,EAAU,EAAE,CAC9C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACf,IAAI,OAAO,EAAE,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-table-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-table-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAC9B,CAAC,OAA8B,EAAU,EAAE,CAC3C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACf,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,WAAoB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAW,CAAC,EAAE,CAAC;QAC7G,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const detectLanguage: (code: string) => "html" | "json" | "yaml" | "bash" | "http" | "ts" | "tsx" | "py" | "sql" | "pl" | "lua" | "make" | "uri" | "css" | "diff" | "md" | "docker" | "xml" | "c" | "rs" | "go" | "java" | "asm";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-code-lang.js","sourceRoot":"","sources":["../../../src/utils/detect-code-lang.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// src/utils/detect-code-lang.ts
|
|
2
|
+
var languages = [
|
|
3
|
+
["bash", [/#!(\/usr)?\/bin\/bash/g, 500], [/\b(if|elif|then|fi|echo)\b|\$/g, 10]],
|
|
4
|
+
["html", [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^\s+<!DOCTYPE\s+html/g, 500]],
|
|
5
|
+
["http", [/^(GET|HEAD|POST|PUT|DELETE|PATCH|HTTP)\b/g, 500]],
|
|
6
|
+
[
|
|
7
|
+
"ts",
|
|
8
|
+
[/(import .* from|export \*|export const|const .* = await)/g, 400],
|
|
9
|
+
[
|
|
10
|
+
/\b(console|await|async|function|undefined|export|import|this|class|for|let|const|map|join|require|implements|interface|namespace)\b/g,
|
|
11
|
+
10
|
|
12
|
+
]
|
|
13
|
+
],
|
|
14
|
+
[
|
|
15
|
+
"tsx",
|
|
16
|
+
[/(import .* from|export \*|export const)/g, 400],
|
|
17
|
+
[/\b(react|next|FC)\b/g, 200],
|
|
18
|
+
[
|
|
19
|
+
/\b(console|await|async|function|export|undefined|import|this|class|for|let|const|map|join|require|implements|interface)\b/g,
|
|
20
|
+
10
|
|
21
|
+
]
|
|
22
|
+
],
|
|
23
|
+
["py", [/\b(def|print|class|and|or|lambda)\b/g, 10]],
|
|
24
|
+
["sql", [/\b(SELECT|INSERT|FROM)\b/g, 50]],
|
|
25
|
+
["pl", [/#!(\/usr)?\/bin\/perl/g, 500], [/\b(use|print)\b|\$/g, 10]],
|
|
26
|
+
["lua", [/#!(\/usr)?\/bin\/lua/g, 500]],
|
|
27
|
+
["make", [/\b(ifneq|endif|if|elif|then|fi|echo|.PHONY|^[a-z]+ ?:$)\b|\$/gm, 10]],
|
|
28
|
+
["uri", [/https?:|mailto:|tel:|ftp:/g, 30]],
|
|
29
|
+
["css", [/^(@import|@page|@media|(\.|#)[a-z]+)/gm, 20]],
|
|
30
|
+
["diff", [/^[+><-]/gm, 10], [/^@@ ?[-+,0-9 ]+ ?@@/gm, 25]],
|
|
31
|
+
["md", [/^(>|\t\*|\t\d+.)/gm, 10], [/\[.*\](.*)/g, 10]],
|
|
32
|
+
["docker", [/^(FROM|ENTRYPOINT|RUN)/gm, 500]],
|
|
33
|
+
["xml", [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^<\?xml/g, 500]],
|
|
34
|
+
["c", [/#include\b|\bprintf\s+\(/g, 100]],
|
|
35
|
+
["rs", [/^\s+(use|fn|mut|match)\b/gm, 100]],
|
|
36
|
+
["go", [/\b(func|fmt|package)\b/g, 100]],
|
|
37
|
+
["java", [/^import\s+java/gm, 500]],
|
|
38
|
+
["asm", [/^(section|global main|extern|\t(call|mov|ret))/gm, 100]],
|
|
39
|
+
["css", [/^(@import|@page|@media|(\.|#)[a-z]+)/gm, 20]],
|
|
40
|
+
["json", [/\b(true|false|null|\{})\b|\"[^"]+\":/g, 10]],
|
|
41
|
+
["yaml", [/^(\s+)?[a-z][a-z0-9]*:/gim, 10]]
|
|
42
|
+
];
|
|
43
|
+
var detectLanguage = (code) => {
|
|
44
|
+
return languages.map(
|
|
45
|
+
([lang, ...features]) => [lang, features.reduce((acc, [match, score]) => acc + [...code.matchAll(match)].length * score, 0)]
|
|
46
|
+
).filter(([_, score]) => score > 20).sort((a, b) => b[1] - a[1])[0]?.[0] || "plain";
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
detectLanguage
|
|
50
|
+
};
|