在 Rmd 到 Md 中追加带有 knit_hooks 的文本
Append text with knit_hooks in Rmd to Md
我的目标是在 Rmd 到 md 的转换过程中在 md 文件的最后添加一些动态文本。所以我正在使用 knitr 钩子,如下所示。
---
title: "A title"
excerpt: "Excerpt"
output:
md_document:
pandoc_args: ["--wrap=none"]
variant: gfm+footnotes
preserve_yaml: TRUE
knit: (function(inputFile, encoding) {
knitr::knit(inputFile);
txt <- "hello";
prev_doc_hook <- knitr::knit_hooks$get("document");
knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
})
date: "2021/03/07"
---
问题 - 根据上面的代码,输出的 md 文件格式正确,但未附加 txt 变量。
但是如果在knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
之后使用knitr::knit(inputFile);
,会追加文本(hello),但是输出的md文件中的code chunks没有code fences(格式不好) .
在此的帮助下。
正确的做法是在knitr::knit_hooks$set
之后使用knitr::knit(inputFile);
。 code-fences的代码格式,在调用knit_hooks
前添加render_markdown();
.
所以正确的代码是-
---
title: "A title"
excerpt: "Excerpt"
output:
md_document:
pandoc_args: ["--wrap=none"]
variant: gfm+footnotes
preserve_yaml: TRUE
knit: (function(inputFile, encoding) {
txt <- "hello";
render_markdown(); # This is the modified line
prev_doc_hook <- knitr::knit_hooks$get("document");
knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
knitr::knit(inputFile)
})
date: "2021/03/07"
---
我的目标是在 Rmd 到 md 的转换过程中在 md 文件的最后添加一些动态文本。所以我正在使用 knitr 钩子,如下所示。
---
title: "A title"
excerpt: "Excerpt"
output:
md_document:
pandoc_args: ["--wrap=none"]
variant: gfm+footnotes
preserve_yaml: TRUE
knit: (function(inputFile, encoding) {
knitr::knit(inputFile);
txt <- "hello";
prev_doc_hook <- knitr::knit_hooks$get("document");
knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
})
date: "2021/03/07"
---
问题 - 根据上面的代码,输出的 md 文件格式正确,但未附加 txt 变量。
但是如果在knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
之后使用knitr::knit(inputFile);
,会追加文本(hello),但是输出的md文件中的code chunks没有code fences(格式不好) .
在此
正确的做法是在knitr::knit_hooks$set
之后使用knitr::knit(inputFile);
。 code-fences的代码格式,在调用knit_hooks
前添加render_markdown();
.
所以正确的代码是-
---
title: "A title"
excerpt: "Excerpt"
output:
md_document:
pandoc_args: ["--wrap=none"]
variant: gfm+footnotes
preserve_yaml: TRUE
knit: (function(inputFile, encoding) {
txt <- "hello";
render_markdown(); # This is the modified line
prev_doc_hook <- knitr::knit_hooks$get("document");
knitr::knit_hooks$set(document = function(x) {prev_doc_hook(append(x, txt))});
knitr::knit(inputFile)
})
date: "2021/03/07"
---