设置HTML与knitr元元(Setting HTML meta elements with kni

2019-08-05 07:22发布

我使用knitr生成HTML报告,我想包括作者和生成日期meta标签。

我RHTML页面看起来是这样的。

<html>
<head>
  <meta name="author" content="<!--rinline Sys.getenv('USERNAME') -->">
  <meta name="date" content="<!--rinline as.character(Sys.time()) -->"> 
</head>
<body>
</body>
</html>

不幸的是,我以后knit("test.Rhtml")即knitr生成HTML是

  <meta name="author" content="<code class="knitr inline">RCotton</code>">
  <meta name="date" content="<code class="knitr inline">2013-01-02 14:38:16</code>"> 

这不是有效的HTML。 我真的很想产生是一样的东西

  <meta name="author" content="RCotton">
  <meta name="date" content="2013-01-02 14:38:16">

我可以生成R代码里面是没有得到一个code标签包装呢? 还是有另一种方式来指定标签属性(像这样的内容属性)?

到目前为止,我最不最坏的打算是手动修复与内容readLines / str_replace / writeLines ,但这似乎相当缺憾。

Answer 1:

另一个(无证)方法是增加I()在你的内联代码打印的字符是没有<code>标签,如

<html>
<head>
  <meta name="author" content="<!--rinline I(Sys.getenv('USERNAME')) -->">
  <meta name="date" content="<!--rinline I(as.character(Sys.time())) -->"> 
</head>
<body>
</body>
</html>


Answer 2:

不是真的不错,但似乎没有增加一个钩子的工作:

<head>
<!--begin.rcode results='asis', echo=FALSE
cat('
  <meta name="author" content="', Sys.getenv('USERNAME'), '"> 
  <meta name="date" content="', as.character(Sys.time()),'-->"> 
',sep="")
end.rcode-->

</head>


文章来源: Setting HTML meta elements with knitr