【问题标题】:Replace file header containing escape characters替换包含转义字符的文件头
【发布时间】:2020-09-16 08:18:05
【问题描述】:

我为带有以下标题的包创建了一个小插图:

---
title: "My package vignette"
output: rmarkdown::html_document
vignette: >
  %\VignetteIndexEntry{MyPackage}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

但是,小插图格式doesn't allow full functionalities allowed by html_document

我想自动更改 YAML 标头,以便能够以完整的 html_document 格式编织小插图(使用 toc_float: true 等选项)

我正在尝试使用ReadLines 读取.Rmd 文件并使用gsub 替换标题,但我正在努力处理转义字符/正则表达式:

content <- readLines('vignettes/MyPackage.Rmd',encoding = 'UTF-8')

vignette_header <- "output: rmarkdown::html_document
vignette: >
  %\\VignetteIndexEntry{MyPackage}
  %\\VignetteEngine{knitr::rmarkdown}
  %\\VignetteEncoding{UTF-8}"

normal_header <- 
'output:
  html_document:
    toc_float: true'  

gsub(vignette_header,normal_header,content )
Error in gsub(vignette_header, normal_header, content) : 
  regular expression 'output: rmarkdown::html_document
vignette: >
  %\VignetteIndexEntry{ALPSYSparams}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}' incorrect, because of 'Invalid contents of {}'

感谢您的建议,欢迎使用转义字符修改文件头的替代方法。

【问题讨论】:

    标签: r yaml r-markdown knitr vignette


    【解决方案1】:

    我没有修改标头,而是制作了两个具有不同标头的 Rmarkdown 文件,并使用 child chunck 选项插入相同的 Markdown 正文:

    1. 小插曲:
    ---
    title: "My package vignette"
    output: rmarkdown::html_document
    vignette: >
      %\VignetteIndexEntry{MyPackage}
      %\VignetteEngine{knitr::rmarkdown}
      %\VignetteEncoding{UTF-8}
    ---
    
    ```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
    
    ```
    
    1. 功能齐全的 Markdown:
    ---
    title: "My package fully featured Markdown"
    output: 
      html_document:
        toc: true
        toc_float: true
    ---
    
    ```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
    
    ```
    

    【讨论】:

      猜你喜欢
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      相关资源
      最近更新 更多