原文来自: Theme API

 本文结构:
  1.  主题的文件结构
  2.  模板
  3.  资源引入
  4.  Jekyll-Bootstrap 组件
  5.  自定义主题
  6.  创建并发布主题

由于依赖Jekyll 和 Liquid,支持主题的模块化需要一些特殊的注意事项。这并非是完美的解决方案,在其发展过程中,我们期望得到您的反馈与支持,在此深表感谢。
建议: 查看、学习当前发布的主题。
http://github.com/jekyllbootstrap/

主题的文件结构

版本0.1.0的主题API非常简单。
下面是已安装主题的文件结构。

|— _includes
  |— themes
    |— THEME-NAME
      |— default.html
      |— post.html
      |— page.html
      |— settings.yml
|— assets
  |— themes
    |— THEME-NAME
      |— css
        |— style.css
      |— images
        |— smileyface.png

所有的主题都有自己的命名空间,以避免和其他主题的文件冲突。如下所示,一个主题需要两个在不同目录下的文件。

  1. ./_includes/themes/THEME-NAME
    一旦您使用该主题,则定义在此文件下的模板可以被正常使用。
    $ rake theme:switch name="THEME-NAME".

  2. ./assets/themes/THEME-NAME
    主题的静态资源放在该目录下。模板文件通过使用Liquid 变量ASSET_PATH来访问这些资源。

模板

主题由以下三个模板文件组成:
|— default.html
|— post.html
|— page.html

default.html 是主模板。post.html 和 page.html 是为它们各自的内容类型而定义的子模板,渲染生成页面时需要载入主模板中。

YAML信息 和 settings.yml

模板因为要作为载入文件被加载,所以不可以包含任何YAML信息。

如果要在模板中包含YAML信息,需要借助 settings.yml 文件。在 settings.yml 文件中定义简单、有效的 YAML 信息,它将被作为 default.html 的YAML信息被自动加载。

资源引入

在模板文件中使用的所有资源应该在以该主题命名的静态资源文件夹下。

确保使用下面的URL格式来加载您所需的资源。

1
<link rel="stylesheet" href="/assets/themes/jekyll-theme/css/style.css" type="text/css" media="screen" charset="utf-8">

注意在URL中加入ASSET_PATH的书写格式。

Jekyll-Bootstrap 组件

如果需要,在您的主题中可以使用Jekyll-Bootstrap 组件。

JB/analytics

1
2
3
4
5
6
7
8
<body>
  <div id="sidebar"> ... </div>
  <div id="main">
    ...
  </div>
  {% include JB/analytics  % }
</body>
...

JB/analytics 组件应该加在default.html模板中(在标签 </body>之前)。

JB/comments

1
2
3
4
5
6
7
8
...
  <div id="post">
    {{ content }}
  </div>
  <div class="comments">
    {% include JB/comments %}
  </div>  
...

JB/comments 组件应该加在 post.html模板中(在标签 </body>之前)。如果您无法使用此组件,应该是在_config.yml文件中您禁用了评论功能。

更多组件
您可以在您的模板中加入更多的组件,请参考Jekyll Bootstrap API Documentation

自定义主题

第一次发布的主题API,有意让其非常简单。 大多数设计者需要更多地控制框架,以下是您需要做的一些事情:
   *精细设计每一个页面。
   *任意模板/子模板的创建和嵌套。
   *根据JB组件自定义所有的HTML。
   *自定义语法高亮。
   *JavaScript API的标准化。
   *正确的 page/post 的列表排序。

我们希望能解决这所有的问题,但最初的版本必须简单、稳定。我不是设计者,而是过度工程师。我们将问题留在这个社区里,希望大家一起来发展主题系统。

反馈信息请联系我 Email 或者 GitHub Issue

创建并发布主题

如果您的主题很优秀,而且遵循主题目录的标准,您可以将您的主题打包。

$ rake theme:package name="THEME-NAME"

这将会创建如下一个文件夹

./_theme_packages/THEME-NAME

这个文件夹中包含了您的所有文件,附加一个packager.yml文件,此文件详细描述了主题包的信息。

manifest.yml

该manifest.yml文件是必需的。它必须包含name:THEME-NAME。除此之外,还可以包含一些主题包的描述和作者的信息。

1
2
3
4
5
6
7
8
9
---
name : "the-program"
website :  "http://layouts-the.me.s3-website-us-east-1.amazonaws.com/themes/the-program/"
description :  "A minimumlist theme for Jekyll + Jekyll-Bootstrap."
author:
  name : "Yuya Saito"
  email : "cssradar@gmail.com"
  website : "http://css.studiomohawk.com/"
 

README.md

您可能需要一个 readme 文件,其中包含了对主题、鸣谢、以及其他需要传达的信息。

盈利

如果您想让您的主题正是加入 theme explorer,请将您的主题打包发布至GitHub,然后通知我。我会在短期内制定出一个更好的系统。谢谢!