TL;DR 解决方案:要让目录显示在 Even 主题中,您的帖子必须呈现为 .markdown 格式而不是 .html 格式。为了实现这一点,您只需在创建帖子时使用 .Rmarkdown 文件扩展名而不是 .Rmd。现在,当您使用blogdown::serve_site() 时,您的帖子将使用输出格式 .markdown 而不是 .html。您的帖子现在将呈现精美的目录。
给 Latex 数学模式用户的注意事项:在您的 .Rmarkdown 文档中输入时,您现在必须转义您的 $ 和 \。例如,$\le 0.2$
必须输入为\$\\le 0.2\$。
我希望这个过于复杂的问题和解决方案对某人有所帮助!
我想出了一个解决方法。
首先,我不确定如何在这种情况下提供可重现的示例,但我可以说,如果您打开一个 RStudio 项目,运行 blogdown::new_site(theme = "olOwOlo/hugo-theme-even"),使用 Addin 下拉菜单添加一个新帖子,添加一些标题在您的帖子中,制作toc:true,使用插件菜单中的服务站点。您会看到您的帖子在各个方面都运行良好 - 只是缺少目录。
解决方法:
我不知道为什么,但是如果我以 .md 格式保留帖子的副本并删除 .html 文档,目录似乎会显示。默认行为似乎使用 .html 文档(如果存在);否则,它将使用 .md 文档。
要保留 .md 格式的帖子副本,请在 .Rmd 文档的 YAML 中使用以下代码:
output:
blogdown::html_page:
keep_md: yes
服务该站点,删除 .html 文档(但保留 .md 文档),然后目录就出现在它的所有荣耀中(您可能必须实际编织文件才能获得 .md)。
我不知道为什么会这样...我在其他地方看到过(尽管我似乎无法再次找到该帖子)某些 hugo 主题不能很好地与 .html 文件配合使用,并且更喜欢 .md文件,Even theme 似乎就是这种情况。
总之:我现在的解决方法是处理我的帖子,当我完成后,使用上面的选项编织文档,删除 .html 文件,然后继续。
警告: blogdown 在使用服务站点时似乎会自动重新呈现所有旧帖子。根据this stack answer,Serve Site 应该只呈现发生变化的文档。无论如何,旧帖子肯定会被重新渲染,即使是在处理不相关的帖子时也是如此。我不确定这种行为是否归因于 blogdown 本身或 RStudio 项目。
我尝试转到工具 -> 项目选项 -> 构建工具,然后取消选中“构建时预览站点”框,但行为仍然存在。这意味着每次更改任何其他文件时,我都必须不断删除所有旧帖子的这些新 .html 文件。目前我只有一个帖子,所以没什么大不了的......但是。
如果有人知道此警告的解决方案,我将不胜感激。如果我找到了,我会编辑这个问题并添加它。
编辑:如果不存在 .html 文档,blogdown 似乎会重新呈现旧帖子。否则,它不会重新渲染它。
编辑 2:啊哈!根据question 的回答,只需将博文的文件扩展名从 .Rmd 更改为 .Rmarkdown 即可生成 .markdown 文档,而不是 .html 文档。