【问题标题】:Avoid rendering of specific .md files from blogdown::serve_site()避免从 blogdown::serve_site() 渲染特定的 .md 文件
【发布时间】:2020-03-08 07:11:02
【问题描述】:

我有一个文件位于

content/post/data_for_posts/my_file.md

我有它,因为它很容易做到htmltools::includeMarkdown("data_for_posts/my_file.md") 并在不同的帖子中回收这个文件。

我的问题是,当我 serve_site() 这会创建一个 public/post/data_for_posts/index.html,这意味着它会发布到我的网站(作为 0001 年 1 月 1 日)。我想我可以将日期更改为 10000 年,但我更愿意按照here 的建议处理.Rmd 和其他文件的方式来处理它

我尝试修改我的config.toml,但未能解决问题。

ignoreFiles = ["\\.Rmd$", "\\.Rmarkdown$", "_files$", "_cache$", "content/post/data_for_posts/my_file.md"]

【问题讨论】:

    标签: r r-markdown hugo blogdown


    【解决方案1】:

    以下是我用来执行此操作的几种技术:

    1. 重命名data_for_posts/my_file.md,使其使用hugo无法解释为已知标记语言的文件扩展名,例如将.md更改为.markd或mdn。[*]
    2. 重命名data_for_posts/my_file.md,使其包含一个您永远不会在实际内容文件中使用的字符串,例如data_for_posts-UNPUBLISHED/my_file.md。然后将该字符串(UNPUBLISHED 或其他)添加到您的配置 ignoreFiles 列表中。[**]

    [*] 在content/ 目录中,具有以下文件扩展名之一的文件将被hugo 解释为包含已知标记语言:.ad、.adoc、.asciidoc、.htm、.html、. markdown、.md、.mdown、.mmark、.pdc、.pandoc、.org 或 .rst(这是我写的 something 的摘录)。

    [**] ignoreFiles 中列出的字符串似乎区分大小写,所以我喜欢在我忽略的文件名中使用全大写字符(因为我从不在真实内容文件名中使用大写字符) .另请注意,无需指定路径,我的经验是路径分隔符(/ 或 \)会导致问题。

    【讨论】:

    • UNPUBLISHED hack 似乎正在工作,这很令人困惑,为什么其他方式不起作用,但我会暂时坚持这一点(已经过去了这里的努力回报递减)
    • 我花了很多时间试图让像你的content/post/data_for_posts/my_file.md这样的字符串被识别为Go Template正则表达式,包括使用//、///和\/来尝试转义在 Go 正则表达式中似乎具有特殊含义的路径分隔符。也许我们应该将这个问题交叉发布到 go 或 go-templates 或围棋专家闲逛的某个地方。 regex 的人也可能知道...
    • 另一个想法:我认为不应指定路径的content 部分,因为ignoreFiles 仅适用于content 中的文件,所以我敢打赌它是内置的,如果你指定它 Hugo将寻找content/content
    • 还有一个想法:我在 Windows 上,所以我真正试图忽略的是像 post\data_for_posts\my_file.md 这样的字符串(使用反斜杠 (\) 作为路径分隔符)。在路径分隔符为斜杠 (/) 的系统上,这可能更容易。
    • @n m 好主意,我在 Ubuntu 上,所以它可能与 (\ vs /) 无关
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多