YAML当前日期在rmarkdown

 gaoyong0713 发布于 2023-01-17 02:31

我想知道是否有一个技巧可以将当前日期放在.rmd要处理的文档的YAML前端knitrrmarkdown包中.我以前在我的维基页面顶部有以下行,

   _baptiste, `r format(Sys.time(), "%d %B, %Y")`_

它将在html输出中转换为20145月3日的baptiste.现在,我想利用由提供的高级pandoc包装器rmarkdown,但在YAML头中使用r代码似乎不起作用:

---
title: "Sample Document"
output:
  html_document:
    toc: true
    theme: united
date: `r format(Sys.time(), "%d %B, %Y")`
author: baptiste
---

Error in yaml::yaml.load(front_matter) : 
  Scanner error: while scanning for the next token at line 6, column 7
 found character that cannot start any token at line 6, column 7
Calls:  ... output_format_from_yaml_front_matter -> 
       parse_yaml_front_matter ->  -> .Call

任何解决方法?

4 个回答
  • 这有点棘手,但你只需要date通过引用内联R表达式使字段在YAML中有效,例如

    date: "`r format(Sys.time(), '%d %B, %Y')`"
    

    然后解析错误将消失,日期将在降价输出中生成,因此Pandoc可以使用来自的值Sys.time().

    2023-01-17 02:58 回答
  • 刚刚关注@Yihui.奇怪的是,我发现:

    '`r format(Sys.Date(), "%B %d, %Y")`'
    

    效果比:

    "`r format(Sys.Date(), '%B %d, %Y')`"
    

    对于后者,RStudio选择'在HTML和PDF输出之间切换时更改外部引号,从而破坏代码.

    2023-01-17 02:59 回答
  • 一种解决方法是使用该brew包并将您的YAML前端内容编写为brew模板.

    ---
    title: "Sample Document"
    output:
      html_document:
        toc: true
        theme: united
    date: <%= format(Sys.time(), "%d %B, %Y") %>
    author: baptiste
    ---
    

    您现在可以使用一个brew_n_render函数来预处理doc brew,然后运行rmarkdown.

    brew_n_render <- function(input, ...){
      output_file <- gsub("\\.[R|r]md$", ".html", input)
      brew::brew(input, 'temp.Rmd');  on.exit(unlink('temp.Rmd'))
      rmarkdown::render('temp.Rmd', output_file = output_file)
    }
    

    为了使用KnitHTMLRStudio中的按钮,您可以编写一个自动brew用作预处理器的自定义输出格式.使用brew预处理可确保knitr在预处理阶段保持文档中的代码块不受影响.理想情况下,rmarkdown程序包应在其API中公开元数据,并允许用户通过自定义函数运行它.

    2023-01-17 03:05 回答
  • 或者只引用双引号,反之亦然,这很有效.

    ---
    title: "Sample Document"
    output:
      html_document:
        toc: true
        theme: united
    date: '`r format(Sys.time(), "%d %B, %Y")`'
    author: baptiste
    ---
    

    2023-01-17 09:58 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有