如何用R实现类似Python markdownify的HTML转纯Markdown功能?
在R中实现HTML到纯Markdown的转换
问题背景
在Python中,可通过markdownify包将HTML转换为纯Markdown格式,示例代码及输出如下:
import markdownify html = """ <h1> <strong>Geeks</strong> for<br> Geeks </h1> """ h = markdownify.markdownify(html, heading_style="ATX") print(h)
输出:
# **Geeks** for Geeks
需求是在R语言中实现相同的纯Markdown转换效果,但目前找到的方法多为转换为R Markdown格式,询问是否可行。
可行的实现方法
方法1:利用Pandoc转换(推荐)
Pandoc是通用的文档转换工具,R可通过rmarkdown包调用它生成纯Markdown,只需指定输出格式为严格版Markdown,并设置ATX标题参数:
library(rmarkdown) # 待转换的HTML内容 html_content <- " <h1> <strong>Geeks</strong> for<br> Geeks </h1> " # 转换为纯Markdown(ATX标题风格) pure_markdown <- pandoc_convert( text = html_content, from = "html", to = "markdown_strict", options = c("--atx-headers") ) # 打印结果 cat(pure_markdown)
输出结果:
# **Geeks** for Geeks
方法2:使用html2text包
html2text包专门处理HTML到文本/Markdown的转换,启用markdown = TRUE参数即可生成纯Markdown:
library(html2text) html_content <- " <h1> <strong>Geeks</strong> for<br> Geeks </h1> " pure_markdown <- html2text(html_content, markdown = TRUE) cat(pure_markdown)
输出结果与需求格式高度匹配,若需微调细节(如标题风格),可通过字符串处理进一步调整。
内容的提问来源于stack exchange,提问作者Quinten
相关产品推荐
相关产品推荐

