【问题标题】:Insert tags in header via .Rmd通过 .Rmd 在标题中插入标签
【发布时间】:2013-11-02 23:41:46
【问题描述】:

我正在使用 Rstudio 创建 Rmd 报告,并且我希望能够在 Rmd 被编织到 html 时将元标记插入到 <head>

knitr options 的文档中,我想我可以设置标题选项以在<head> 标记之间插入文本,如下所示:

```{r}
opts_knit$set(header = "<meta name=\"description\" content=\"this is a description\">")
```

但是,似乎没有插入任何内容。我做错了什么还是不可能?

【问题讨论】:

  • 该选项仅适用于 R HTML (.Rhtml) 和 LaTeX (.Rnw);对于 Markdown,请查看 ?markdown::markdownToHTML() 中的 header 参数;另外,对于RStudio来说,Markdown渲染的自定义还不是很方便,虽然可以
  • 感谢@Yihui。从 ?markdown::markdownToHTML 来看,header 参数默认为 getOption("markdown.HTML.header"),所以我最初认为我可以将 options(markdown.HTML.header = "&lt;meta name=\"description\" content=\"this is a description\"&gt;") 放在一个块中。但是,尽管getOption("markdown.HTML.header") 返回了预期的结果,但这仍然不起作用。我假设markdownToHTML() 在调用时没有使用默认的header 参数,因此这是不可能的,因为您无法影响从.Rmd 中调用该函数的方式?
  • RStudio 不使用 R 中的 markdown 包。它有自己的基于相同库 (sundown) 的渲染器。我知道会有混乱,当我说“自定义”时,我的意思是 this
  • 我现在明白了。再次感谢@Yihui。
  • 嗨@Yihui,我遇到了类似的问题,我无法访问那个 RStudio 支持页面。你能发布一个快速的答案,或者提供一个更容易访问的网站的链接吗?

标签: r knitr rstudio


【解决方案1】:

您在 yaml 标头中使用一行读取外部 .html 文件,其中您的标头 sn-p 为 per this link

这是对上面链接的轻微修改,包括您的代码,并包括在 .Rmd 文件中创建外部 .html 标头文本的选项,这不是必需的:

---
title: "Test"
output:
  html_document:
    includes:
       in_header: header.html
---

```{r setup, include=FALSE, echo=FALSE}
# Create header.html
CON <- file("header.html")
writeLines('<meta name="description" content="this is a description" />', CON)
close(CON)
```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 2011-12-13
    • 2015-10-15
    • 2020-07-13
    相关资源
    最近更新 更多