替换包含转义字符的文件 header
Replace file header containing escape characters
我为一个包创建了一个小插图 header:
---
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 header 以便能够以完整的 html_document 格式编织小插图(具有 toc_float: true
等选项)
我正在尝试使用 ReadLines
读取 .Rmd
文件并使用 gsub
替换 header,但我正在努力处理转义字符/正则表达式:
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 {}'
感谢您的建议,欢迎使用转义字符修改文件的替代方法header。
作为解决方法,我没有修改 header,而是制作了两个具有不同 header 的 Rmarkdown 文件,并使用 child
chunck 选项插入相同的 Markdown body :
- 小插图:
---
title: "My package vignette"
output: rmarkdown::html_document
vignette: >
%\VignetteIndexEntry{MyPackage}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
```
- 全功能 Markdown :
---
title: "My package fully featured Markdown"
output:
html_document:
toc: true
toc_float: true
---
```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
```
我为一个包创建了一个小插图 header:
---
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 header 以便能够以完整的 html_document 格式编织小插图(具有 toc_float: true
等选项)
我正在尝试使用 ReadLines
读取 .Rmd
文件并使用 gsub
替换 header,但我正在努力处理转义字符/正则表达式:
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 {}'
感谢您的建议,欢迎使用转义字符修改文件的替代方法header。
作为解决方法,我没有修改 header,而是制作了两个具有不同 header 的 Rmarkdown 文件,并使用 child
chunck 选项插入相同的 Markdown body :
- 小插图:
---
title: "My package vignette"
output: rmarkdown::html_document
vignette: >
%\VignetteIndexEntry{MyPackage}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
```
- 全功能 Markdown :
---
title: "My package fully featured Markdown"
output:
html_document:
toc: true
toc_float: true
---
```{r child=here::here('data/MyPackageVignetteBody.Rmd')}
```