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.
Files changed (36) hide show
  1. package/dist/cjs/extract-hast/readability.js +150 -0
  2. package/dist/cjs/extract-hast/strongly.js +0 -22
  3. package/dist/cjs/extract-hast/utils.js +55 -0
  4. package/dist/cjs/html-to-mdast.js +10 -6
  5. package/dist/cjs/mdast-handlers/custom-a-handler.js +4 -4
  6. package/dist/cjs/mdast-handlers/custom-div-handler.js +35 -31
  7. package/dist/cjs/mdast-handlers/custom-img-handler.js +33 -0
  8. package/dist/cjs/mdast-handlers/custom-table-handler.js +37 -0
  9. package/dist/cjs/utils/detect-code-lang.js +73 -0
  10. package/dist/extract-hast/readability.js +127 -0
  11. package/dist/extract-hast/strongly.js +0 -22
  12. package/dist/extract-hast/utils.js +29 -0
  13. package/dist/html-to-mdast.js +10 -6
  14. package/dist/mdast-handlers/custom-a-handler.js +4 -4
  15. package/dist/mdast-handlers/custom-div-handler.js +35 -31
  16. package/dist/mdast-handlers/custom-img-handler.js +10 -0
  17. package/dist/mdast-handlers/custom-table-handler.js +14 -0
  18. package/dist/types/extract-hast/readability.d.ts +11 -0
  19. package/dist/types/extract-hast/readability.js.map +1 -0
  20. package/dist/types/extract-hast/strongly.js.map +1 -1
  21. package/dist/types/extract-hast/utils.d.ts +5 -0
  22. package/dist/types/extract-hast/utils.js.map +1 -0
  23. package/dist/types/html-to-mdast.d.ts +2 -1
  24. package/dist/types/html-to-mdast.js.map +1 -1
  25. package/dist/types/loaders/cf-puppeteer.d.ts +2 -1
  26. package/dist/types/mdast-handlers/custom-a-handler.js.map +1 -1
  27. package/dist/types/mdast-handlers/custom-div-handler.js.map +1 -1
  28. package/dist/types/mdast-handlers/custom-img-handler.d.ts +4 -0
  29. package/dist/types/mdast-handlers/custom-img-handler.js.map +1 -0
  30. package/dist/types/mdast-handlers/custom-table-handler.d.ts +4 -0
  31. package/dist/types/mdast-handlers/custom-table-handler.js.map +1 -0
  32. package/dist/types/utils/detect-code-lang.d.ts +1 -0
  33. package/dist/types/utils/detect-code-lang.js.map +1 -0
  34. package/dist/utils/detect-code-lang.js +50 -0
  35. package/package.json +118 -115
  36. 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
+ };
@@ -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 = ["strongly"];
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 = defaultHandlers.a(state, node);
6
- if (link2.children?.[0]?.type === "text")
7
- return link2.children[0];
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
- let highlightLanguage;
8
- for (const className of classNames) {
9
- if (String(className) === "highlight-text-html-basic") {
10
- highlightLanguage = "html";
11
- break;
12
- }
13
- if (String(className).includes("highlight-source-")) {
14
- highlightLanguage = String(className).slice("highlight-source-".length);
15
- break;
16
- }
17
- if (String(className).includes("language-")) {
18
- highlightLanguage = String(className).slice("language-".length);
19
- break;
20
- }
21
- if (String(className).includes("code-block_wrapper")) {
22
- const text = toText(node);
23
- if (!text.includes("."))
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;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;IAE9B,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;IAEzC,MAAM,eAAe,GAAG,aAAa,GAAG,GAAG,GAAG,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;IAExF,OAAO;QACN,SAAS;QACT,SAAS;QACT,aAAa;QACb,eAAe;QACf,eAAe;KACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GACjB,iPAAiP,CAAC;AACnP,MAAM,YAAY,GAAG,iCAAiC,CAAC;AAEvD,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,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,IAAI,QAAQ,IAAI,UAAU,CAAC,eAAe,GAAG,EAAE;YAAE,OAAO,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,eAAuB,CAAC;AAChC,CAAC,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;CAC7B,CAAC;AAEF,MAAM,oBAAoB,GAAkB,CAAC,UAAU,CAAC,CAAC;AAQzD,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;IAChD,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,GAAG,EAAE,gBAAgB;YACrB,IAAI,EAAE,WAAW;YACjB,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YAClD,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC;YACZ,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD;KACD,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACd,CAAC,CAAC"}
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
- export declare const loadHtml: (url: string, ctx: puppeteer.BrowserWorker) => Promise<any>;
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;AAElE,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,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IAClB,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
+ {"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;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7F,IAAI,iBAAqC,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,2BAA2B,EAAE,CAAC;YACvD,iBAAiB,GAAG,MAAM,CAAC;YAC3B,MAAM;QACP,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACrD,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxE,MAAM;QACP,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7C,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChE,MAAM;QACP,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,MAAM;YAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM;QACP,CAAC;IACF,CAAC;IAED,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;QAExG,MAAM,MAAM,GAAS;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;SAC7C,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"custom-div-handler.js","sourceRoot":"","sources":["../../../src/mdast-handlers/custom-div-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAe,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,gBAAgB,GAAG,4DAA4D,CAAC;AAEtF,MAAM,uBAAuB,GAAG,2EAA2E,CAAC;AAE5G,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AAErE,MAAM,aAAa,GAAG,CAAI,KAAU,EAAE,SAAsC,EAAE,QAAQ,GAAG,CAAC,EAAY,EAAE;IACvG,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjF,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,gBAAgB,GAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,UAAU,CAAC,SAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3G,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACxD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3C,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE9D,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3F,MAAM,SAAS,GAAG,UAAU;aAC1B,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAG,QAAQ,IAAI,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;QAExE,MAAM,MAAM,GAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC1E,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Handle } from "hast-util-to-mdast";
2
+ export declare const customImgHandler: (options?: {
3
+ hideImage?: boolean;
4
+ }) => Handle;
@@ -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,4 @@
1
+ import { type Handle } from "hast-util-to-mdast";
2
+ export declare const customTableHandler: (options?: {
3
+ asText?: boolean;
4
+ }) => Handle;
@@ -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
+ };