• R语言软件
  • 用 blogdown 创建帖子,为什么日期带单引号?

环境

  • RStudio 版本:2023.12.1 Build 402
  • R 版本:4.4.0
  • blogdown 版本:1.19

操作步骤

  1. 下载网站源代码 git clone https://github.com/CyrusYip/cyrusyip-blog.git --recursive; cd cyrusyip-blog; git reset --hard a9fb312
  2. 用 RStudio 点 File -> Open Project,打开 cyrusyip-blog/cyrusyip-blog.Rproj
  3. Addins -> BLOGDOWN -> New Post,直接点 Done

文件里的 date 数值带单引号。

---
date: '2024-05-10'
---

用 Hugo 0.125.6 创建的帖子的 date 就不带引号。

npx hugo-extended@0.125.6 new content content/en/demo.md
---
title: "Demo"
date: 2024-05-10T00:05:02+08:00
draft: true
---

问题

为什么 blogdown 创建的帖子日期带单引号?这个行为能调节吗?删掉单引号再 Update Metadata,单引号又回来了。

    CyrusYip 这是因为我把日期转化为字符串了:

    https://github.com/rstudio/blogdown/blob/c6e73fb365341ae7675c96fecefefb82dff3997f/R/hugo.R#L680
    https://github.com/rstudio/blogdown/blob/c6e73fb365341ae7675c96fecefefb82dff3997f/R/utils.R#L1013-L1019

    因为 yaml 包默认不支持日期类型

    > yaml::as.yaml(list(date = Sys.Date()))
    [1] "date: 1.9853e+04\n"

    只能通过自定义转化函数去掉引号:

    yaml::as.yaml(list(date = Sys.Date()), handlers = list(
        Date = function(x) structure(format(x, "%Y-%m-%d"), class = 'verbatim')
    ))

    blogdown 没有添加这种特殊处理。你可以研究一下了加上。