如何贡献内容

你有自己的最佳实践想要分享或者是修订现有的内容?Great! 下面是一些你可能用得上的信息。

Dependencies

要编译和查看这个Jekyll生成的站点,你需要安装Jekyll所需的依赖:

~ $ gem install jekyll

一个比较详细的Jekyll安装过程可以参考 这里

Workflow

目前这个项目放在Github上,我们协作的最直接的方式当然是用Github的fork模式:

  • Fork本项目
  • Clone你自己的fork:
git clone git://github.com/<username>/django-notes.git
  • 创建一个 topic branch 来放你的修改:
git checkout -b my_awesome_feature
  • 修改后确保一切正常:
~/django-notes $ cd site
~/django-notes/site $ jekyll serve --watch
# => 查看 http://localhost:4000
ProTips™ --watch参数

使用watch参数,jekyll项目会被自动build和部署,刷新浏览器即可查看修改后的效果。

  • 如果需要, rebase 你的 commit
  • push 这个 branch :
git push origin my_awesome_feature
  • 创建一个 pull request 并简单描述你添加的部分。
提醒我们缺失或错误的部分!

如果你只是想提建议而不是直接编写文档,或者你发现的问题不是你编写的部分,可以提交一个 issue 给我们。

项目结构

Jekyll其实主要就是个文本转换的引擎。你把用你自己熟悉的markup语言(不管是Markdown还是Textile等)或者是HTML编写的页面交给它,它通过layout文件等配置文件定义的样子生成最终的静态网页。

我们的项目的site文件夹主要的结构如下:

.
├── _config.yml
├── _includes
|   ├── footer.html
|   └── header.html
|   └── ...
├── _layouts
|   ├── default.html
|   └── docs.html
├── _site
├── css
├── img
├── js
└── index.html

它们的用途简单归纳如下:

File / Directory Description

_config.yml

保存全局配置。注意,如果你在本地调试的时候,需要把url这条配置注释掉。

_includes

可重用的页面或者部分页面。

_layouts

页面的模板。在 `_includes` 中定义的内容可以在模板中被使用, {{ content }} 可以用来规定页面内容被插入到哪里。

_site

Jekyll编译后生成的内容,一般加到 .gitignore 中。

index.html 和其他HTML, Markdown, Textile文件

任何在site根目录的.html.markdown.md或者 .textile文件都会被Jekyll转换。

其他文件和目录

任何site根目录下的其他目录或者文件如cssimagesjs目录或者favicon.png文件, 会被直接拷贝到 `_site` 目录下。

下一页