You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Markdown博客中显示单篇文章对应标题而非最新标题

解决Jekyll文章详情页标题显示问题

嘿,我懂你的困扰啦!你在首页用循环取最新文章的逻辑完全没问题,但到了单篇文章的详情页,这个循环就不适用了——它只会帮你取出全站最新的那一篇,而不是你当前正在浏览的这篇文章呀!

问题根源

在Jekyll里,不同页面的上下文是不一样的:

  • 首页、博客列表页属于列表页上下文,你需要遍历site.posts来获取文章列表;
  • 单篇文章的详情页属于单篇文章上下文,此时Jekyll已经把当前文章的所有数据存在page变量里了,根本不需要再循环遍历。

正确的解决方案

在你的文章详情页模板(一般是_layouts/post.html这类文件)里,直接用下面的代码显示当前文章的标题就行:

# {{ page.title }}

如果需要自定义标题样式,比如加副标题或者调整层级,也可以这样写:

<h1 class="post-title">{{ page.title }}</h1>
{% if page.subtitle %}
  <h2 class="post-subtitle">{{ page.subtitle }}</h2>
{% endif %}

额外补充:博客列表页的正确写法

顺便提一下,你的博客列表页(blog.html)应该用循环遍历所有文章,给每篇生成跳转链接,比如:

{% for post in site.posts %}
  <div class="post-item">
    <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
    <p>{{ post.excerpt | strip_html | truncatewords: 30 }}</p>
    <span class="post-date">{{ post.date | date: "%Y-%m-%d" }}</span>
  </div>
{% endfor %}

这样用户点击标题链接进入详情页后,用上面的page.title就能正确显示当前文章的标题了。

内容的提问来源于stack exchange,提问作者jenjnif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:07