]*class=["\'][^"\']*milkdown[^"\']*["\'][^>]*>.*?
]*>]*>(.*?)
',
"milkdown-div",
),
(
r'
]*class=["\'][^"\']*monaco-editor[^"\']*["\'][^>]*>.*?
]*class=["\'][^"\']*view-lines[^"\']*[^>]*>(.*?)
(?=.*?
.*?
]*class=["\'][^"\']*cm-content[^"\']*["\'][^>]*>((?:
]*class=["\'][^"\']*cm-line[^"\']*["\'][^>]*>.*?
\s*)+)
]*class=["\'][^"\']*CodeMirror[^"\']*["\'][^>]*>.*?
]*class=["\'][^"\']*CodeMirror-code[^"\']*["\'][^>]*>(.*?)
',
"codemirror-legacy",
),
(r'
]*class=["\'][^"\']*language-(\w+)[^"\']*["\'][^>]*>\s*]*>(.*?)\s*
', "prism"),
(
r'
]*>\s*]*class=["\'][^"\']*language-(\w+)[^"\']*["\'][^>]*>(.*?)\s*
',
"prism-alt",
),
(
r'
]*>]*class=["\'][^"\']*hljs(?:\s+language-(\w+))?[^"\']*["\'][^>]*>(.*?)
',
"hljs",
),
(r'
]*class=["\'][^"\']*hljs[^"\']*["\'][^>]*>]*>(.*?)
', "hljs-pre"),
(
r'
]*class=["\'][^"\']*shiki[^"\']*["\'][^>]*(?:.*?style=["\'][^"\']*background-color[^"\']*["\'])?[^>]*>\s*]*>(.*?)\s*
',
"shiki",
),
(r'
]*class=["\'][^"\']*astro-code[^"\']*["\'][^>]*>(.*?)
', "astro-shiki"),
(r'
]*class=["\'][^"\']*astro-code[^"\']*["\'][^>]*>.*?
]*>(.*?)
', "astro-wrapper"),
(r'
]*class=["\'][^"\']*language-(\w+)[^"\']*["\'][^>]*>.*?
]*>(.*?)
', "vitepress"),
(r'
]*class=["\'][^"\']*vp-code[^"\']*["\'][^>]*>.*?
]*>(.*?)
', "vitepress-vp"),
(r"
]*data-nextra-code[^>]*>.*?
]*>(.*?)
", "nextra"),
(r'
]*class=["\'][^"\']*nx-[^"\']*["\'][^>]*>]*>(.*?)
', "nextra-nx"),
(r'
]*>]*class=["\'][^"\']*language-(\w+)[^"\']*["\'][^>]*>(.*?)
', "standard-lang"),
(r"
]*>.*?]*>(.*?).*?
", "standard"),
(r'
]*class=["\'][^"\']*code-block[^"\']*["\'][^>]*>.*?
]*>(.*?)
', "generic-div"),
(r'
]*class=["\'][^"\']*codeblock[^"\']*["\'][^>]*>(.*?)
', "generic-codeblock"),
(r'
]*class=["\'][^"\']*highlight[^"\']*["\'][^>]*>.*?
]*>(.*?)
', "highlight"),
]
# --- Full Text Extractor Logic ---
def get_text_extraction_patterns():
return {
"backtick": r"```(\w*)[^\n]*\n(.*?)```",
"language_label": r"(?:^|\n)((?:typescript|javascript|python|java|c\+\+|rust|go|ruby|php|swift|kotlin|scala|r|matlab|julia|dart|elixir|erlang|haskell|clojure|lua|perl|shell|bash|sql|html|css|xml|json|yaml|toml|ini|dockerfile|makefile|cmake|gradle|maven|npm|yarn|pip|cargo|gem|pod|composer|nuget|apt|yum|brew|choco|snap|flatpak|appimage|msi|exe|dmg|pkg|deb|rpm|tar|zip|7z|rar|gz|bz2|xz|zst|lz4|lzo|lzma|lzip|lzop|compress|uncompress|gzip|gunzip|bzip2|bunzip2|xz|unxz|zstd|unzstd|lz4|unlz4|lzo|unlzo|lzma|unlzma|lzip|lunzip|lzop|unlzop)\s*(?:code|example|snippet)?)[:\s]*\n((?:(?:^[ \t]+.*\n?)+)|(?:.*\n)+?)(?=\n(?:[A-Z][a-z]+\s*:|^\s*$|\n#|\n\*|\n-|\n\d+\.))",
}