# html-to-md **Repository Path**: SuperWindcloud/html-to-md ## Basic Information - **Project Name**: html-to-md - **Description**: php库将 HTML转换为Markdown - **Primary Language**: PHP - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-02 - **Last Updated**: 2024-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README HTML To Markdown for PHP ======================== 将 HTML 转换为 Markdown 的php库,以方便您的使用。 **Requires**: PHP 7.2+ ### 为什么将 HTML 转换为 Markdown? 通常,在以下情况下,您会将 HTML 转换为 Markdown: 1. 您有一个现有的 HTML 文档,需要由有品味的人编辑。 2. 您想以 HTML 格式存储新内容,但将其编辑为 Markdown。 3. 您想将 HTML 电子邮件转换为纯文本电子邮件。 4. 你认识一个多年来一直在将 HTML 转换为 Markdown 的人,现在他会说 Elvish 了。你很想会说精灵语。 5. 你真的很喜欢 Markdown。 ### 快速开始 ```bash composer require league/html-to-markdown ``` ### 使用方法 ```php use League\HTMLToMarkdown\HtmlConverter; $converter = new HtmlConverter(); $html = "

Quick, to the Batpoles!

"; $markdown = $converter->convert($html); ``` '$markdown' 变量现在将 HTML 的 Markdown 版本作为字符串包含在内: ```php echo $markdown; // ==> ### Quick, to the Batpoles! ``` 包含的 'demo' 目录包含一个 HTML->Markdown 转换表单供您试用。 ### Conversion options 默认情况下,HTML To Markdown 保留 HTML 标记,而不保留 Markdown 等效项,如 '' 和 '
'。 要去除没有 Markdown 等效项的 HTML 标签,同时保留其中的内容,请将 'strip_tags' 设置为 true,如下所示: ```php $converter = new HtmlConverter(array('strip_tags' => true)); $html = 'Turnips!'; $markdown = $converter->convert($html); // $markdown now contains "Turnips!" ``` Or more explicitly, like this: ```php $converter = new HtmlConverter(); $converter->getConfig()->setOption('strip_tags', true); $html = 'Turnips!'; $markdown = $converter->convert($html); // $markdown now contains "Turnips!" ``` 请注意,只有标签本身会被剥离,它们所包含的内容不会被剥离。 要剥离标记及其内容,请在 'remove_nodes' 中传递一个以空格分隔的标记列表,如下所示: ```php $converter = new HtmlConverter(array('remove_nodes' => 'span div')); $html = 'Turnips!
Monkeys!
'; $markdown = $converter->convert($html); // $markdown now contains "" ``` 默认情况下,所有注释都会从内容中去除。要保留它们,请使用 'preserve_comments' 选项,如下所示: ```php $converter = new HtmlConverter(array('preserve_comments' => true)); $html = 'Turnips!'; $markdown = $converter->convert($html); // $markdown now contains "Turnips!" ``` 要仅保留特定注释,请使用 String 数组设置 'preserve_comments',如下所示: ```php $converter = new HtmlConverter(array('preserve_comments' => array('Eggs!'))); $html = 'Turnips!'; $markdown = $converter->convert($html); // $markdown now contains "Turnips!" ``` 默认情况下,占位符链接将被保留。要去除占位符链接,请使用 'strip_placeholder_links' 选项,如下所示: ```php $converter = new HtmlConverter(array('strip_placeholder_links' => true)); $html = 'Github'; $markdown = $converter->convert($html); // $markdown now contains "Github" ``` ### 样式选项 默认情况下,粗体标记使用星号语法进行转换,斜体标记使用带下划线的语法进行转换。使用 'bold_style' 和 'italic_style' 选项来更改这些。 ```php $converter = new HtmlConverter(); $converter->getConfig()->setOption('italic_style', '*'); $converter->getConfig()->setOption('bold_style', '__'); $html = 'Italic and a bold'; $markdown = $converter->convert($html); // $markdown now contains "*Italic* and a __bold__" ``` ### 换行选项 默认情况下,'br' 标签按照 [传统 Markdown] 转换为两个空格,后跟一个换行符。将 'hard_break' 设置为 'true' 以省略两个空格,如 GitHub Flavored Markdown (GFM)。 ```php $converter = new HtmlConverter(); $html = '

test
line break

'; $converter->getConfig()->setOption('hard_break', true); $markdown = $converter->convert($html); // $markdown now contains "test\nline break" $converter->getConfig()->setOption('hard_break', false); // default $markdown = $converter->convert($html); // $markdown now contains "test \nline break" ``` ### 自动链接选项 默认情况下,'a' 标签会转换为最简单的链接语法,即如果没有可用的文本或标题,则将使用 '' 语法,而不是完整的 '[url](url)' 语法。将 'use_autolinks' 设置为 'false' 以将此行为更改为始终使用完整的链接语法。 ```php $converter = new HtmlConverter(); $html = '

https://thephpleague.com

'; $converter->getConfig()->setOption('use_autolinks', true); $markdown = $converter->convert($html); // $markdown now contains "" $converter->getConfig()->setOption('use_autolinks', false); // default $markdown = $converter->convert($html); // $markdown now contains "[https://thephpleague.com](https://thephpleague.com)" ``` ### 传递自定义 Environment 对象 你可以传递当前的 'Environment' 对象来自定义,即应该使用哪些转换器。 ```php $environment = new Environment(array( // your configuration here )); $environment->addConverter(new HeaderConverter()); // optionally - add converter manually $converter = new HtmlConverter($environment); $html = '

Header

'; $markdown = $converter->convert($html); // $markdown now contains "### Header" and "" ``` ### 表格支持 默认情况下不启用对 Markdown 表的支持,因为它不是原始 Markdown 语法的一部分。要使用表,请显式添加转换器: ```php use League\HTMLToMarkdown\HtmlConverter; use League\HTMLToMarkdown\Converter\TableConverter; $converter = new HtmlConverter(); $converter->getEnvironment()->addConverter(new TableConverter()); $html = "
A
a
"; $markdown = $converter->convert($html); ``` ### 限制 - 不支持 Markdown Extra、MultiMarkdown 和其他变体 - 仅支持 Markdown。 ### Style notes - 别名(带下划线)标题是 H1 和 H2 的默认标题。如果你更喜欢 H1 和 H2 的 ATX 样式(# Header 1 和 ## Header 2),当你实例化对象时,在 options 数组中将 'header_style' 设置为 'atx': '$converter = new HtmlConverter(array('header_style'=>'atx'));' H3 优先级及更低优先级的 Headers 始终使用 atx 样式。 - 链接和图像是内联引用的。不使用脚注引用(其中 image src 和 anchor href 属性在脚注中列出)。 - 块引用不是换行的 – 它使转换后的 Markdown 更易于编辑。