Minimal Mistakes 主题中!--more--摘要分隔符More Tag的配置与渲染机制详解【免费下载链接】minimal-mistakes:triangular_ruler: Jekyll theme for building a personal site, blog, project documentation, or portfolio.项目地址: https://gitcode.com/gh_mirrors/mi/minimal-mistakes导读!--more--是 Jekyll 生态中最常用的摘要分隔符用于在文章正文中显式标记的位置。本文以 Minimal Mistakes 主题仓库中的示例文档 docs/_posts/2012-03-15-layout-more-tag.md 为骨架结合主题源码archive-single.html、single.html与根目录 配置文件完整讲解 More Tag 的 Front Matter 写法、全局配置、摘要生成规则、归档页/详情页/SEO 的差异化渲染链路帮助你精确控制列表页展示内容与单页正文的关系。一、示例文档全景一篇演示 More Tag 的示例文章仓库中的示例文档docs/_posts/2012-03-15-layout-more-tag.md全貌如下--- title: Layout: More Tag excerpt_separator: !--more-- categories: - Layout - Uncategorized tags: - content - read more - layout --- This content is before the excerpt separator tag. Additional content before the more tag. !--more-- And this content is after the more tag.这份文档同时存在于 test/_posts/2012-03-15-layout-more-tag.md测试站点中用于验证主题在两种站点的渲染行为。整篇文章的核心技术点有三个Front Matter 中显式声明excerpt_separator: !--more--告诉 Jekyll 以!--more--作为本篇文章的摘要切分点正文中埋入!--more--标记标记之前的文字是摘要之后是正文的其余部分配合主题渲染链路归档列表页只展示标记前的摘要详情页展示完整内容。二、More Tag 的工作原理excerpt_separator 的两种声明方式Jekyll 生成文章摘要excerpt依赖excerpt_separator配置声明方式有两种2.1 站点级全局配置在仓库根目录的 _config.yml 中# Conversion excerpt_separator: \n\n默认值\n\n表示连续两个换行即默认情况下 Jekyll 会把文章第一段作为摘要。注意\n\n在 YAML 中是一个真实换行符序列等价于空行分段此时无需在正文中写任何标记。2.2 文章级局部覆盖推荐也是示例文档采用的方式如果只希望某些文章使用自定义分隔符可以在该文章的 Front Matter 中声明excerpt_separator: !--more--页面级配置会覆盖站点级配置。示例文档采用的就是这种方式它把摘要切分点从第一段改为显式的!--more--标记。2.3 两者结合的效果站点级配置决定默认行为未声明excerpt_separator的文章按空行取第一段为摘要文章级配置提供细粒度控制需要更长或自定义摘要的文章通过 Front Matter 覆盖。三、分隔符标记的语义!--more--前后内容的去向!--more--本身是一个 HTML 注释在浏览器中不会显示。Jekyll 在生成摘要时会取!--more--之前的所有内容作为post.excerpt正文则保留全部内容。以示例文档为例位置内容渲染结果!--more--之前This content is before the excerpt separator tag. Additional content before the more tag.作为摘要显示在归档/列表页!--more--之后And this content is after the more tag.仅在文章详情页正文中出现这种标记前是摘要、标记后是正文的行为允许作者精确控制列表页的引导文字避免把整篇文章灌入摘要。四、源码级验证摘要如何被主题消费More Tag 生成的post.excerpt在 Minimal Mistakes 主题中被多个模板消费形成完整的渲染链路。4.1 归档列表页archive-single.html归档页首页文章流、分类/标签归档、archive布局通过 _includes/archive-single.html 渲染单篇文章条目{% if post.excerpt %}p classarchive__item-excerpt p-summary itempropdescription{{ post.excerpt | markdownify | strip_html | truncate: 160 }}/p{% endif %}这里的过滤器链值得拆解markdownify把摘要中的 Markdown 渲染为 HTMLstrip_html剥掉 HTML 标签只留纯文本truncate: 160截断到 160 个字符。也就是说即使作者在!--more--前写了较长摘要列表页也会统一截断到 160 字符以内保证条目高度一致。如果post.excerpt为空例如文章没有正文则该段落整体不渲染。同时该条目的标题区h2 classarchive__item-title no_toc p-name渲染完整标题第 21-27 行 还处理了post.link外链场景外部链接文章会在标题旁追加永久链接图标。也就是说列表页 完整标题 截断到 160 字符的纯文本摘要。4.2 文章详情页single.html详情页布局 _layouts/single.html 对摘要的消费方式是元数据注入而非正文替换{% if page.excerpt %}meta itempropdescription content{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}{% endif %}这里把摘要写入meta itempropdescription供 schema.org 结构化数据使用第 25-29 行同时注入itempropheadline、datePublished、dateModified等元数据。正文部分在 第 52 行 通过{{ content }}输出完整内容——!--more--标记不会出现在详情页它只影响摘要的切分不影响正文渲染。splash.html布局对摘要的处理与single.html完全一致_layouts/splash.html。4.3 头部横幅与 SEO页面英雄区 _includes/page__hero.html当page.header.show_overlay_excerpt ! false且存在page.excerpt时摘要会以page__lead段落显示在头部横幅之下作为引导语SEO 模块 _includes/seo.htmlseo_description的取值优先级为page.description→page.excerpt→site.description。因此为文章声明excerpt_separator并写好!--more--前的引导文字会直接影响站点描述与搜索引擎描述。从源码结构看More Tag 的完整数据流为Front Matter 声明分隔符 → Jekyll 生成excerpt→ 归档页截断展示、详情页注入 meta 描述、英雄区作引导语、SEO 模块作站点描述。五、与自动摘要的对比More Tag 与自动生成的区别仓库中另有两篇对照示例文档便于理解差异docs/_posts/2012-03-14-layout-code-excerpt-generated.md未声明excerpt_separator标题说明这是生成的摘要Generated。正文首段包含内联代码span stylecolor: red;red/span列表页应展示该段自动生成的摘要。这篇用于验证自动摘要取第一段的行为与格式化正确性docs/_posts/2012-03-14-layout-excerpt-generated.md同样声明excerpt_separator: !--more--并使用!--more--标记但 Front Matter 未提供excerpt字段摘要完全由正文自动切分生成。两篇文档的正文都写有 Be sure to test the formatting of the auto-generated excerpt——说明主题作者将其作为摘要格式回归测试用例无论自动摘要还是显式 More Tag 摘要都要确保在列表页截断、去标签后不产生排版问题。区别总结对比项自动摘要默认More Tag 显式摘要分隔符站点级excerpt_separator: \n\n文章级excerpt_separator: !--more--摘要内容第一段!--more--之前的所有内容控制粒度段落级较粗可自由编排多段引导文字适用场景快速上手、摘要无特殊要求需要定制引导文案六、实操在 Minimal Mistakes 主题中启用 More Tag 的分步指南步骤 1确认或覆盖全局默认配置在站点根目录的_config.yml中默认excerpt_separator: \n\n_config.yml。如果希望全站统一使用!--more--将其改为excerpt_separator: !--more--注意 YAML 引号!--more--需要加双引号包裹避免被 YAML 解析器误解。步骤 2在文章 Front Matter 中声明分隔符可选仅对单篇文章启用时在_posts/目录下文章的 YAML 头中声明--- title: 我的文章 excerpt_separator: !--more-- ---步骤 3在正文中埋入标记在期望成为摘要的文字之后插入独立一行的!--more--这里是列表页会展示的摘要内容可以是多段文字。 !--more-- 这里是详情页才可见的正文其余部分。步骤 4验证效果本地运行bundle exec jekyll serve后检查首页/归档页条目摘要显示!--more--前的文字且被截断到 160 字符见 _includes/archive-single.html详情页正文完整显示摘要被注入meta itempropdescription见 _layouts/single.html。注意事项列表页强制截断即使!--more--前写了超过 160 字符的内容归档条目也只会显示前 160 字符markdownify处理摘要中的 Markdown 会被渲染后再剥除标签请确保摘要段落格式简单避免因嵌套标签导致截断位置突兀这正是两篇示例文档要求测试格式化的原因详情页无残留!--more--是 HTML 注释在详情页正文中不会显示站点级默认值的坑全局默认\n\n意味着不写任何标记时也会自动生成摘要取第一段。如果需要完全禁用摘要可结合各模板中{% if post.excerpt %}的条件判断通过控制excerpt是否为空来实现。七、总结More Tag!--more--在 Minimal Mistakes 主题中的定位是用显式标记精确控制文章摘要的边界。它的完整链路贯穿 Front Matter 声明excerpt_separator、全局默认配置_config.yml、归档条目渲染archive-single.html的truncate: 160、详情页元数据single.html的itempropdescription以及 SEO 描述优先级seo.html。通过示例文档 docs/_posts/2012-03-15-layout-more-tag.md 与配套测试站点 test/_posts/2012-03-15-layout-more-tag.md可以快速验证并掌握这一机制让博客列表页与详情页的内容呈现完全可控。【免费下载链接】minimal-mistakes:triangular_ruler: Jekyll theme for building a personal site, blog, project documentation, or portfolio.项目地址: https://gitcode.com/gh_mirrors/mi/minimal-mistakes创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
2026最新理工大学排名数据爬取实战,从零搭建避坑指南 2026最新理工大学排名数据爬取实战,从零搭建避坑指南 刚学完Python语法,看着满屏的 for 循环和 if 判断觉得挺懂,真让你去搭个项目抓个数据,立马卡壳:数据在哪?怎么存?结构怎么理?这就是典型的“会写代码不会做工程”。2026年… · 2026/9/23 6:20:47
BrowserSkill:AI Agent浏览器操作技能实战解析 最近不少朋友在群里聊 Agent 这类应用时,都会提到一个词:BrowserSkill。一开始我以为又是什么新的前端框架,后来仔细看了下,才发现这玩意的定位挺有意思——它不是给人类用的浏览器插件,而是给 AI Agent 用的“浏览器操… · 2026/9/23 7:16:01
FS40落地扇维修全攻略:不转、慢转、异响一次解决 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 7:16:01
Python+Vue全栈开发家居电商平台实践 1. 项目概述这个项目是一个典型的全栈Web开发实践,采用Python作为后端语言,Vue.js作为前端框架,构建一个功能完善的网上家居购物平台。作为一名有多年电商系统开发经验的工程师,我认为这种技术组合在当前Web开发领域非常具有代表性… · 2026/9/23 7:16:01
文泰2002安装教程:Win10/Win11兼容设置与刻字机驱动配置全攻略 文泰2002刻绘软件安装到现在还有人在用,这件事本身就说明了一个道理:在广告标识和刻字贴膜这个行当里,很多东西不是越新越好,而是越顺手越好。文泰2002虽然界面老、年代久远,但它对刻字机的兼容性、路径计算的稳定性以… · 2026/9/23 7:15:55
基于Gradio的YOLOv8目标检测服务搭建与部署指南 简介:这份资源是一套基于Gradio搭建的YOLOv8目标检测服务实战项目,面向具备一定Python基础、希望快速落地算法服务的学习者与开发者,可用于课程设计、毕业项目或工程原型验证。压缩包共10个文件,约14.09MB,包含4个py源… · 2026/9/23 7:15:55
EMC四大测试本质解析:CE/RE/CS/RS物理边界与整改逻辑 1. 这张图不是“示意图”,而是EMC工程师的现场作战地图你手头那张标着CE/RE/CS/RS的EMC测试图,大概率是某家检测机构发来的报价单附件,或是培训PPT里一页带箭头的流程图——它告诉你“有这四个项目”,但没说清“为什么必须分开测”… · 2026/9/23 7:15:55
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29