如何在Jekyll中监听多个源目录?关于source参数的疑问
理解Jekyll的
source参数与多目录需求 你确实误解了source参数的作用——它并不是用来指定多个单独的源文件目录,而是定义Jekyll项目的根源目录。默认情况下,这个值就是你的项目根文件夹,Jekyll会自动从这个根目录开始,扫描识别所有它内置支持的特殊目录(比如_posts、_pages、_includes等)以及根目录下的独立文件(比如about.md)。
为什么source不支持多目录?
Jekyll的设计中,source是整个项目源文件的"入口根",所有的模板、内容、配置相关的文件都应该放在这个根目录(或其子目录)下。它的作用是告诉Jekyll:"从这个文件夹开始找所有需要构建的内容",而不是让你枚举具体要包含的子目录。
你的多目录需求怎么满足?
其实你根本不需要修改source来处理_posts、_pages这类目录——这些都是Jekyll默认自动识别的特殊目录:
_posts:存放博客文章,Jekyll会自动按日期生成文章页面_pages:存放独立页面(比如关于页、联系页),只要文件里有正确的YAML头信息,就会被构建- 根目录下的
about.md:直接放在source根目录下,Jekyll会自动将其生成为/about.html(可根据permalink配置调整路径)
如果你还有一些自定义的非标准目录需要被Jekyll纳入构建和监控范围,可以使用include配置项,在_config.yml里添加:
include: - my-custom-dir - another-dir
这样Jekyll就会把这些目录里的文件也加入构建流程,同时watch功能也会监控这些目录的变化,触发自动重新构建。
关于watch功能的补充
watch默认会监控source根目录下的所有文件和目录(除了exclude配置里排除的内容)。只要你的内容文件在source目录结构内,或者被include包含,任何修改都会触发Jekyll重新构建,不需要额外配置source来指定监控范围。
内容的提问来源于stack exchange,提问作者Keith Bennett
相关产品推荐
相关产品推荐

