{"version":3,"file":"content/to-markdown.mjs","sources":["webpack://@agent-infra/browser-context/./src/content/to-markdown.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport Turndown, { TagName } from 'turndown';\nimport { gfm } from 'turndown-plugin-gfm';\n\nexport const DEFAULT_TAGS_TO_REMOVE: TagName[] = [\n  'script',\n  'style',\n  'link',\n  'head',\n  'iframe',\n  'video',\n  'audio',\n  'canvas',\n  'object',\n  'embed',\n  'noscript',\n  'aside',\n  'dialog',\n];\n\nexport interface ToMarkdownOptions extends Turndown.Options {\n  gfmExtension?: boolean;\n  removeTags?: TagName[];\n}\n\n/**\n * Convert HTML content to Markdown format\n * @param html HTML string\n * @param options Conversion options\n * @returns Markdown string\n */\nexport function toMarkdown(\n  html: string,\n  options: ToMarkdownOptions = {},\n): string {\n  if (!html) return '';\n\n  try {\n    const {\n      codeBlockStyle = 'fenced',\n      headingStyle = 'atx',\n      emDelimiter = '*',\n      strongDelimiter = '**',\n      gfmExtension = true,\n      removeTags = DEFAULT_TAGS_TO_REMOVE,\n    } = options;\n\n    const turndown = new Turndown({\n      codeBlockStyle,\n      headingStyle,\n      emDelimiter,\n      strongDelimiter,\n    });\n\n    // issue: https://github.com/mixmark-io/turndown/issues/210#issuecomment-353666857\n    turndown.remove(removeTags);\n\n    if (gfmExtension) {\n      turndown.use(gfm);\n    }\n\n    return turndown.turndown(html);\n  } catch (error) {\n    console.error('HTML to Markdown conversion failed:', error);\n    return html;\n  }\n}\n"],"names":["DEFAULT_TAGS_TO_REMOVE","toMarkdown","html","options","codeBlockStyle","headingStyle","emDelimiter","strongDelimiter","gfmExtension","removeTags","turndown","Turndown","gfm","error","console"],"mappings":";;;;;;AAOO,MAAMA,yBAAoC;IAC/C;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAaM,SAASC,WACdC,IAAY,EACZC,UAA6B,CAAC,CAAC;IAE/B,IAAI,CAACD,MAAM,OAAO;IAElB,IAAI;QACF,MAAM,EACJE,iBAAiB,QAAQ,EACzBC,eAAe,KAAK,EACpBC,cAAc,GAAG,EACjBC,kBAAkB,IAAI,EACtBC,eAAe,IAAI,EACnBC,aAAaT,sBAAsB,EACpC,GAAGG;QAEJ,MAAMO,WAAW,IAAIC,WAAS;YAC5BP;YACAC;YACAC;YACAC;QACF;QAGAG,SAAS,MAAM,CAACD;QAEhB,IAAID,cACFE,SAAS,GAAG,CAACE;QAGf,OAAOF,SAAS,QAAQ,CAACR;IAC3B,EAAE,OAAOW,OAAO;QACdC,QAAQ,KAAK,CAAC,uCAAuCD;QACrD,OAAOX;IACT;AACF"}