【问题标题】:How do I pass pandoc_options as output_options to rmarkdown::render()如何将 pandoc_options 作为 output_options 传递给 rmarkdown::render()
【发布时间】:2017-02-03 19:40:58
【问题描述】:

我有一个Rmd 文件,几乎所有时间都正确呈现为html。但是,当pandoc(在渲染过程中使用)在html 中找到4 个空格时,它无法正确渲染,此时解释为我要渲染markdown 代码sn-p 而不是html .

有人告诉我,我可以通过以下方式关闭markdown_in_html_blocks 功能:
pandoc -f markdown-markdown_in_html_blocks

我尝试过直接调用pandoc,而不是被

隐式调用

rmarkdown::render()

但无法使该语法正常工作,并且能够直接指定此选项(-markdown_in_html_blocks),因为我调用render() 是首选。这是我尝试过但没有成功的最新方法:

基本情况:有效,但HTML 输出文件格式错误/有一个代码块,而不是我想在表格中显示的数据。

render("reports/Pacing.Rmd")

尝试修复:不工作

rmdFmt <- rmarkdown_format("-markdown_in_html_blocks")
pandocOpts <- pandoc_options(to = "html", from = rmdFmt)
render("reports/Pacing.Rmd",output_format = "html_document",output_file = NULL, output_dir = NULL, output_options = pandocOpts)

错误消息:(函数中的错误(toc = FALSE,toc_depth = 3,toc_float = FALSE,number_sections = FALSE,: 参数 1 匹配多个形式参数

我尝试了其他语法来表达我想关闭 markdown_in_html_blocks 但没有运气。

【问题讨论】:

  • 您是否检查过pandocOpts 的类型是list

标签: html r knitr r-markdown pandoc


【解决方案1】:

鉴于以下文档test.Rmd...

---
title: Test
output: html_document
---

<table>
<tr>
<td>*one*</td>
<td>[a link](https://google.com)</td>
</tr>
</table>

...您可以通过

禁用markdown_in_html_blocks扩展
rmarkdown::render("test.Rmd",
                  output_options = list(md_extensions = "-markdown_in_html_blocks"))

md_extensions 是可以传递给rmarkdown::html_document 的参数之一(其他参数请参见?rmarkdown::html_document)。

【讨论】:

    【解决方案2】:

    这似乎是一个悬而未决的问题,但关闭/打开此类功能的更简单方法是直接更新 Rmd 文件中的 YAML。这应该适用于您的情况:

    output:
      html_document:
        pandoc_args: [
          "-f", "markdown-markdown_in_html_blocks"
        ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      相关资源
      最近更新 更多