使用blogdown无法修改文章作者的问题求助
解决blogdown多作者文章作者信息不生效的问题
首先,你的操作本身没有错误——出现这个问题的核心原因是你使用的Hugo主题模板默认优先读取全局配置(config.toml)里的作者信息,而没有调用文章Front Matter中指定的author字段。
下面是具体的解决思路和步骤:
1. 检查并修改主题模板文件
大部分Hugo主题的文章详情页模板位于layouts/_default/single.html(如果是针对Rmd的模板,可能在layouts/shortcodes或对应目录下)。你需要找到模板中显示作者的代码块:
- 如果当前代码是调用全局作者:
{{ .Site.Author.name }},这就是为什么始终显示Darth Vader的原因。 - 把它改成调用文章自身的作者参数:
{{ .Params.author }},这样就会读取你在文章头部author: Luke Skywalker的配置。
如果想做更灵活的适配(有文章作者显示文章的,没有则显示全局的),可以用条件判断:
<div class="post-author"> {{ if .Params.author }} <p>作者:{{ .Params.author }}</p> {{ else }} <p>作者:{{ .Site.Author.name }}</p> {{ end }} </div>
2. 进阶:配置多作者信息(适合需要展示作者主页等更多信息的场景)
如果你的团队需要展示作者的个人主页、头像等更多信息,可以在config.toml中预先定义所有作者的完整信息,然后在文章中引用:
第一步:在config.toml中添加多作者配置
[params.authors] [params.authors.darth] name = "Darth Vader" profile = "https://linkedin.com/in/darthvader/" [params.authors.luke] name = "Luke Skywalker" profile = "https://linkedin.com/in/lukeskywalker/"
第二步:在文章Front Matter中指定作者标识
--- title: A new hope author: luke date: '2017-10-10' ---
第三步:修改模板读取对应作者信息
在模板中这样调用,就能显示对应作者的名字和主页链接:
{{ with .Site.Params.authors }} {{ with index . $.Params.author }} <p>作者:<a href="{{ .profile }}">{{ .name }}</a></p> {{ end }} {{ end }}
这样既统一管理了作者信息,又能在单篇文章中灵活指定作者。
内容的提问来源于stack exchange,提问作者fzenoni
相关产品推荐
相关产品推荐

