目录结构

一个基本的 Jekyll 网站通常看起来像这样

.
├── _config.yml
├── _data
│   └── members.yml
├── _drafts
│   ├── begin-with-the-crazy-ideas.md
│   └── on-simplicity-in-technology.md
├── _includes
│   ├── footer.html
│   └── header.html
├── _layouts
│   ├── default.html
│   └── post.html
├── _posts
│   ├── 2007-10-29-why-every-programmer-should-play-nethack.md
│   └── 2009-04-26-barcamp-boston-4-roundup.md
├── _sass
│   ├── _base.scss
│   └── _layout.scss
├── _site
├── .jekyll-cache
│   └── Jekyll
│       └── Cache
│           └── [...]
├── .jekyll-metadata
└── index.html # can also be an 'index.md' with valid front matter
使用基于 gem 的主题的 Jekyll 网站的目录结构

自版本 3.2 开始,使用 jekyll new 引导的新 Jekyll 项目使用 基于 gem 的主题 来定义网站的外观。这将产生一个更轻量级的默认目录结构:默认情况下,_layouts_includes_sass 存储在主题 gem 中。


minima 是当前的默认主题,bundle info minima 将向您展示 minima 主题的文件存储在您计算机上的位置。

每个主题的作用概述

文件/目录 说明

_config.yml

存储 配置 数据。这些选项中的许多选项都可以从命令行可执行文件中指定,但最好在此处指定它们,这样您就不必记住它们了。

_drafts

草稿是未发布的文章。这些文件的格式没有日期:title.MARKUP。了解如何 使用草稿

_includes

这些是可以通过您的布局和文章混合和匹配的部分,以方便重复使用。liquid 标签 {% include file.ext %} 可用于在 _includes/file.ext 中包含部分。

_layouts

这些是包装文章的模板。布局在 前端内容 中逐个文章进行选择,下一节中对此进行了描述。liquid 标签 {{ content }} 用于将内容注入网页。

_posts

动态内容,可以这么说。这些文件的文件名约定很重要,必须遵循以下格式:YEAR-MONTH-DAY-title.MARKUP。每个文章的 永久链接 都可以自定义,但日期和标记语言仅由文件名决定。

_data

格式良好的网站数据应放在此处。Jekyll 引擎将自动加载此目录中的所有数据文件(使用 .yml.yaml.json.csv.tsv 格式和扩展名),并且可以通过 `site.data` 访问它们。如果目录下有文件 members.yml,则可以通过 site.data.members 访问文件的内容。

_sass

这些是可导入到 main.scss 中的 sass 部分,然后将处理成一个样式表 main.css,该样式表定义了网站使用的样式。了解 如何使用资产

_site

这是 Jekyll 完成转换后放置生成网站的位置(默认情况下)。最好将其添加到 .gitignore 文件中。

.jekyll-cache

保留生成页面和标记(例如:markdown)的副本,以便更快地提供服务。在使用时创建,例如:jekyll serve。可以使用 选项和/或标志 禁用。此目录不会包含在生成网站中。最好将其添加到 .gitignore 文件中。

.jekyll-metadata

这有助于 Jekyll 跟踪自上次构建网站以来哪些文件未修改,以及哪些文件需要在下次构建时重新生成。仅在使用 增量重新生成 时创建(例如:使用 jekyll serve -I)。此文件不会包含在生成网站中。最好将其添加到 .gitignore 文件中。

index.htmlindex.md 和其他 HTML、Markdown 文件

只要文件有 页眉 部分,它就会被 Jekyll 转换。对于网站根目录或上面未列出的目录中的任何 .html.markdown.md.textile 文件,也会发生相同的情况。

其他文件/文件夹

除了上面列出的特殊情况外,每个其他目录和文件(例如 cssimages 文件夹、favicon.ico 文件等)将逐字复制到生成网站中。如果您想知道它们是如何布局的,有很多 已经使用 Jekyll 的网站

source 目录中以以下字符开头的每个文件或目录:._ #~ 将不会包含在 destination 文件夹中。此类路径必须通过 include 指令中的配置文件明确指定,以确保它们被复制过来

include:
 - _pages
 - .htaccess