【问题标题】:Include YAML file in RMarkdown document在 RMarkdown 文档中包含 YAML 文件
【发布时间】:2021-08-20 05:16:35
【问题描述】:

我有一个 RMarkdown 文档,其中包含一个示例 YAML 文件,当前格式为:

```{yaml}
name: r40_tidyverse
channels:
  - conda-forge
  - nodefaults
dependencies:
  - r-base=4.0
  - r-tidyverse
```

这会以漂亮的 YAML 语法突出显示(编织)成 HTML。

针织结果

我想把它作为一个外部 YAML 文件包含在上面,而不是上面的,比如envs/r40_tidyverse.yaml。我试过使用

```{yaml child="envs/r40_tidyverse.yaml"}
```

虽然这会正确加载文件,但生成的 HTML 只是一个 <p></p> 元素,文件内容位于其中。

针织结果

这是不可取的。

如何将外部 YAML 文件加载到 RMarkdown 文档中并实现类似于直接包含 YAML 代码块时的语法高亮?

【问题讨论】:

    标签: r yaml r-markdown knitr


    【解决方案1】:

    我认为最简单的方法是使用内联 R 表达式读取外部文件,例如,

    ```yaml
    `r xfun::file_string('envs/r40_tidyverse.yaml')`
    ```
    

    请注意,您不应使用 ```{yaml}(即不要将{} 添加到yaml),因为这会将其含义更改为knitr

    • 用花括号表示代码块,knitr 语言引擎需要评估代码块(但还没有 yaml 引擎,您的第一个示例仅由机会)。
    • 没有大括号,表示普通代码块,knitr不会处理。

    【讨论】:

    • 是的,效果很好。顺便说一句,感谢所有出色的工作!
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2011-01-17
    • 2017-07-20
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    相关资源
    最近更新 更多