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

为何Jekyll中的Sass文件需以两行三重短横线开头?

嘿,这个问题问得特别实在——很多人刚开始用Jekyll处理Sass/SCSS或者Coffee文件时,都会对开头那两行--- ---摸不着头脑,我来给你掰扯清楚:

为什么Jekyll要求预编译文件开头加--- ---?

这两行其实是Jekyll的空YAML Front Matter,核心作用是告诉Jekyll:“我不是普通的静态文件,你得用预编译工具处理我”,具体原因有这几个:

  • 触发预编译流程:如果没有这两行,Jekyll会直接把你的Sass/SCSS文件原封不动复制到输出目录,根本不会帮你编译成浏览器能识别的CSS。只有加上空的Front Matter,Jekyll才会调用内置的Sass编译器,把你的预编译文件转换成最终的静态资源。
  • 支持嵌入Liquid变量:哪怕你现在没用到,加上这两行后,你可以在Sass代码里直接用Jekyll的Liquid变量,比如写$accent-color: {{ site.settings.accent }};,这在做可配置的主题时特别方便。
  • 统一文件处理逻辑:Jekyll对所有动态内容(页面、帖子、资源)都遵循“有Front Matter就处理,没有就直接复制”的规则,这两行是让资源文件融入这套逻辑的标识。
关于格式规范和迁移的顾虑

你的担心完全合理,但其实这个问题根本算不上坑,解决起来特别简单:

  • 语法兼容性:空的--- ---不会破坏Sass/SCSS的语法规范——Jekyll在处理完文件后,会把这两行Front Matter完全移除,不会出现在最终编译后的CSS里。而且Sass本身也会把这两行当作非代码内容忽略,所以你的核心样式代码完全是标准的Sass语法。
  • 迁移成本极低:如果以后要迁出Jekyll,只需要批量移除所有预编译文件开头的--- ---就行。不管是用VS Code这类编辑器的批量替换功能,还是写个几行的小脚本,几分钟就能搞定。甚至有些其他静态站点生成器也支持类似的Front Matter,说不定换工具都不用改。

其实你看到的那些示例,都是Jekyll生态里的常规操作,很多成熟的主题都是这么写的,不用担心会有隐藏的格式问题或者迁移障碍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:12:45