webforai 1.1.6 → 1.2.0

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 (37) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +74 -74
  3. package/dist/cjs/extract-hast/readability.js +150 -0
  4. package/dist/cjs/extract-hast/strongly.js +0 -22
  5. package/dist/cjs/extract-hast/utils.js +55 -0
  6. package/dist/cjs/html-to-mdast.js +10 -6
  7. package/dist/cjs/mdast-handlers/custom-a-handler.js +4 -4
  8. package/dist/cjs/mdast-handlers/custom-div-handler.js +35 -31
  9. package/dist/cjs/mdast-handlers/custom-img-handler.js +33 -0
  10. package/dist/cjs/mdast-handlers/custom-table-handler.js +37 -0
  11. package/dist/cjs/utils/detect-code-lang.js +73 -0
  12. package/dist/extract-hast/readability.js +127 -0
  13. package/dist/extract-hast/strongly.js +0 -22
  14. package/dist/extract-hast/utils.js +29 -0
  15. package/dist/html-to-mdast.js +10 -6
  16. package/dist/mdast-handlers/custom-a-handler.js +4 -4
  17. package/dist/mdast-handlers/custom-div-handler.js +35 -31
  18. package/dist/mdast-handlers/custom-img-handler.js +10 -0
  19. package/dist/mdast-handlers/custom-table-handler.js +14 -0
  20. package/dist/types/extract-hast/readability.d.ts +11 -0
  21. package/dist/types/extract-hast/readability.js.map +1 -0
  22. package/dist/types/extract-hast/strongly.js.map +1 -1
  23. package/dist/types/extract-hast/utils.d.ts +5 -0
  24. package/dist/types/extract-hast/utils.js.map +1 -0
  25. package/dist/types/html-to-mdast.d.ts +2 -1
  26. package/dist/types/html-to-mdast.js.map +1 -1
  27. package/dist/types/loaders/cf-puppeteer.d.ts +2 -1
  28. package/dist/types/mdast-handlers/custom-a-handler.js.map +1 -1
  29. package/dist/types/mdast-handlers/custom-div-handler.js.map +1 -1
  30. package/dist/types/mdast-handlers/custom-img-handler.d.ts +4 -0
  31. package/dist/types/mdast-handlers/custom-img-handler.js.map +1 -0
  32. package/dist/types/mdast-handlers/custom-table-handler.d.ts +4 -0
  33. package/dist/types/mdast-handlers/custom-table-handler.js.map +1 -0
  34. package/dist/types/utils/detect-code-lang.d.ts +1 -0
  35. package/dist/types/utils/detect-code-lang.js.map +1 -0
  36. package/dist/utils/detect-code-lang.js +50 -0
  37. package/package.json +8 -5
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var detect_code_lang_exports = {};
20
+ __export(detect_code_lang_exports, {
21
+ detectLanguage: () => detectLanguage
22
+ });
23
+ module.exports = __toCommonJS(detect_code_lang_exports);
24
+ const languages = [
25
+ ["bash", [/#!(\/usr)?\/bin\/bash/g, 500], [/\b(if|elif|then|fi|echo)\b|\$/g, 10]],
26
+ ["html", [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^\s+<!DOCTYPE\s+html/g, 500]],
27
+ ["http", [/^(GET|HEAD|POST|PUT|DELETE|PATCH|HTTP)\b/g, 500]],
28
+ [
29
+ "ts",
30
+ [/(import .* from|export \*|export const|const .* = await)/g, 400],
31
+ [
32
+ /\b(console|await|async|function|undefined|export|import|this|class|for|let|const|map|join|require|implements|interface|namespace)\b/g,
33
+ 10
34
+ ]
35
+ ],
36
+ [
37
+ "tsx",
38
+ [/(import .* from|export \*|export const)/g, 400],
39
+ [/\b(react|next|FC)\b/g, 200],
40
+ [
41
+ /\b(console|await|async|function|export|undefined|import|this|class|for|let|const|map|join|require|implements|interface)\b/g,
42
+ 10
43
+ ]
44
+ ],
45
+ ["py", [/\b(def|print|class|and|or|lambda)\b/g, 10]],
46
+ ["sql", [/\b(SELECT|INSERT|FROM)\b/g, 50]],
47
+ ["pl", [/#!(\/usr)?\/bin\/perl/g, 500], [/\b(use|print)\b|\$/g, 10]],
48
+ ["lua", [/#!(\/usr)?\/bin\/lua/g, 500]],
49
+ ["make", [/\b(ifneq|endif|if|elif|then|fi|echo|.PHONY|^[a-z]+ ?:$)\b|\$/gm, 10]],
50
+ ["uri", [/https?:|mailto:|tel:|ftp:/g, 30]],
51
+ ["css", [/^(@import|@page|@media|(\.|#)[a-z]+)/gm, 20]],
52
+ ["diff", [/^[+><-]/gm, 10], [/^@@ ?[-+,0-9 ]+ ?@@/gm, 25]],
53
+ ["md", [/^(>|\t\*|\t\d+.)/gm, 10], [/\[.*\](.*)/g, 10]],
54
+ ["docker", [/^(FROM|ENTRYPOINT|RUN)/gm, 500]],
55
+ ["xml", [/<\/?[a-z-]+[^\n>]*>/g, 10], [/^<\?xml/g, 500]],
56
+ ["c", [/#include\b|\bprintf\s+\(/g, 100]],
57
+ ["rs", [/^\s+(use|fn|mut|match)\b/gm, 100]],
58
+ ["go", [/\b(func|fmt|package)\b/g, 100]],
59
+ ["java", [/^import\s+java/gm, 500]],
60
+ ["asm", [/^(section|global main|extern|\t(call|mov|ret))/gm, 100]],
61
+ ["css", [/^(@import|@page|@media|(\.|#)[a-z]+)/gm, 20]],
62
+ ["json", [/\b(true|false|null|\{})\b|\"[^"]+\":/g, 10]],
63
+ ["yaml", [/^(\s+)?[a-z][a-z0-9]*:/gim, 10]]
64
+ ];
65
+ const detectLanguage = (code) => {
66
+ return languages.map(
67
+ ([lang, ...features]) => [lang, features.reduce((acc, [match, score]) => acc + [...code.matchAll(match)].length * score, 0)]
68
+ ).filter(([_, score]) => score > 20).sort((a, b) => b[1] - a[1])[0]?.[0] || "plain";
69
+ };
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ detectLanguage
73
+ });
@@ -0,0 +1,127 @@
1
+ // src/extract-hast/readability.ts
2
+ import { select, selectAll } from "hast-util-select";
3
+ import { toString } from "hast-util-to-string";
4
+ import { filter } from "unist-util-filter";
5
+ import { parents } from "unist-util-parents";
6
+ import { classnames, hasAncestors, isStrInclude, matchString } from "./utils.js";
7
+ var UNLIKELY_ROLES = ["menu", "menubar", "complementary", "navigation", "alert", "alertdialog", "dialog"];
8
+ var REGEXPS = {
9
+ hidden: /hidden|invisible|fallback-image/i,
10
+ byline: /byline|author|dateline|writtenby|p-author/i,
11
+ unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote|speechify-ignore/i,
12
+ okMaybeItsACandidate: /and|article|body|column|content|main|shadow|code/i
13
+ };
14
+ var BODY_SELECTORS = ["article", "#article", ".article_body", ".article-body", "#content", ".entry", "main"];
15
+ var PARAGRAPH_TAGS = ["p", "div", "section", "article", "main", "ul", "ol", "li"];
16
+ var BASE_MINIMAL_LENGTH = {
17
+ ja: 200,
18
+ en: 500
19
+ };
20
+ var tryGetLang = (node) => {
21
+ if (node.type !== "element")
22
+ return;
23
+ const element = node;
24
+ if (element.tagName !== "html")
25
+ return;
26
+ const langAttr = element.properties.lang || element.properties["xml:lang"];
27
+ if (langAttr)
28
+ return langAttr;
29
+ };
30
+ var metadataFilter = (node) => !["comment", "doctype"].includes(node.type);
31
+ var universalElementFilter = (node) => {
32
+ if (node.type !== "element")
33
+ return true;
34
+ const element = node;
35
+ if (["script", "aside"].includes(element.tagName))
36
+ return false;
37
+ if (["hidden", "aria-hidden"].some((key) => element.properties[key]))
38
+ return false;
39
+ if (classnames(element).some((classname) => REGEXPS.hidden.test(classname)))
40
+ return false;
41
+ if (element.tagName === "dialog")
42
+ return false;
43
+ if (element.properties.role === "dialog" && element.properties["aria-modal"])
44
+ return false;
45
+ if (element.properties.rel === "author" && isStrInclude(element.properties.itemprop, "author"))
46
+ return false;
47
+ if (REGEXPS.byline.test(matchString(element)))
48
+ return false;
49
+ if (element.properties.role && UNLIKELY_ROLES.includes(element.properties.role))
50
+ return false;
51
+ return true;
52
+ };
53
+ var unlikelyElementFilter = (node) => {
54
+ if (node.type !== "element")
55
+ return true;
56
+ const element = node;
57
+ const match = matchString(element);
58
+ if (["body", "article", "main", "section", "a"].includes(element.tagName))
59
+ return true;
60
+ if (hasAncestors(element, ["table", "code"], 3))
61
+ return true;
62
+ if (REGEXPS.unlikelyCandidates.test(match) && !REGEXPS.okMaybeItsACandidate.test(match))
63
+ return false;
64
+ return true;
65
+ };
66
+ var removeEmptyFilter = (node) => {
67
+ if (node.type !== "element")
68
+ return true;
69
+ const element = node;
70
+ if (!PARAGRAPH_TAGS.includes(element.tagName))
71
+ return true;
72
+ const text = toString(element);
73
+ if (text.length < 10)
74
+ return false;
75
+ return true;
76
+ };
77
+ var readabilityExtractHast = (hast) => {
78
+ const lang = String(select("html", hast)?.properties.lang || tryGetLang(hast) || "en");
79
+ const body = select("body", hast) ?? hast;
80
+ const proxiedHast = parents(body);
81
+ let baseFilterd = filter(proxiedHast, (node) => {
82
+ if (!metadataFilter(node))
83
+ return false;
84
+ if (!universalElementFilter(node))
85
+ return false;
86
+ return true;
87
+ });
88
+ if (!baseFilterd)
89
+ return { type: "root", children: [] };
90
+ const baseText = toString(baseFilterd);
91
+ let minimalLength = lang in BASE_MINIMAL_LENGTH ? BASE_MINIMAL_LENGTH[lang] : 500;
92
+ if (baseText.length > minimalLength) {
93
+ const filterd = filter(baseFilterd, (node) => {
94
+ if (!unlikelyElementFilter(node))
95
+ return false;
96
+ return true;
97
+ });
98
+ if (filterd)
99
+ baseFilterd = filterd;
100
+ } else
101
+ minimalLength = Math.max(0, baseText.length - 200);
102
+ let bodyTree = baseFilterd;
103
+ for (const selector of BODY_SELECTORS) {
104
+ const body2 = { type: "root", children: selectAll(selector, baseFilterd) };
105
+ const bodyText = toString(body2);
106
+ if (bodyText.length < 25)
107
+ continue;
108
+ const links = selectAll("a", body2);
109
+ const linkText = links.map((link) => toString(link)).join("");
110
+ const linkDensity = linkText.length / bodyText.length;
111
+ if (linkDensity > 0.4)
112
+ continue;
113
+ if (bodyText.length > minimalLength) {
114
+ bodyTree = body2;
115
+ break;
116
+ }
117
+ }
118
+ const finalTree = filter(bodyTree, (node) => {
119
+ if (!removeEmptyFilter(node))
120
+ return false;
121
+ return true;
122
+ });
123
+ return finalTree;
124
+ };
125
+ export {
126
+ readabilityExtractHast
127
+ };
@@ -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":"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"}
@@ -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
+ };