如何在.rmd文件YAML中正确设置日期适配Jekyll+Github Pages站点
问题根源
你遇到的问题由两个核心原因导致:
- Jekyll 对内置的
dateYAML字段有严格的日期格式校验,你直接写入的R内联代码r format(Sys.time(), '%d %B, %Y')属于未执行的字符串,不符合合法日期格式,会被Jekyll直接忽略;而author字段默认是字符串/数组类型,没有格式校验,因此就算传入未执行的R代码串也能正常渲染。 - GitHub Pages默认的Jekyll构建流程没有R运行环境,不会自动执行Rmd文件中的R代码,你写的内联R代码只有在本地提前knit渲染成实际日期字符串后,才能被Jekyll正常识别。
你尝试的静态日期格式不生效,大概率是站点配置的日期解析规则和你写入的格式不匹配。
需要修改的配置文件
你需要修改站点根目录下的_config.yml,调整以下配置:
- 新增日期格式匹配规则,和你R代码输出的日期格式保持一致:
date_format: "%d %B, %Y" - 确认
future配置没有被设为false,避免你写入的日期被识别为未来时间被过滤:future: true
补充操作建议
不要直接把R内联代码写在YAML的date字段中,提交到GitHub前先在本地执行rmarkdown::render()或blogdown::build_site(),把Rmd文件knit为标准md文件,此时R代码会被替换为实际的日期字符串,再推送到GitHub即可正常渲染。
如果不想每次本地编译,可以把内置date字段替换为自定义字段(比如custom_date),同时修改页面模板中所有调用page.date的位置为page.custom_date,自定义字段不会触发Jekyll的日期格式校验,可直接传入动态生成的内容。
内容的提问来源于stack exchange,提问作者Kirds
相关产品推荐
相关产品推荐

