249 lines
5.1 KiB
Markdown
249 lines
5.1 KiB
Markdown
---
|
||
title: Jekyll
|
||
layout: default
|
||
jekyll_escape: true
|
||
---
|
||
|
||
{% raw %}
|
||
### Installation
|
||
|
||
$ gem install jekyll
|
||
|
||
### Directories
|
||
|
||
./
|
||
├── _config.yml
|
||
│
|
||
├── _data/
|
||
│ └── ...
|
||
│
|
||
├── _drafts/
|
||
│ └── ...
|
||
│
|
||
├── _posts/
|
||
│ └── 2014-01-01-hello.md
|
||
│
|
||
├── _layouts/
|
||
│ ├── default.html
|
||
│ └── post.html
|
||
│
|
||
├── _includes/ - partials
|
||
│ ├── header.html
|
||
│ └── footer.html
|
||
│
|
||
└── _site/
|
||
└── ...
|
||
|
||
## [Front-matter](http://jekyllrb.com/docs/frontmatter/)
|
||
|
||
---
|
||
layout: post
|
||
title: Hello
|
||
---
|
||
|
||
### Other frontmatter stuff
|
||
|
||
permalink: '/hello'
|
||
published: false
|
||
category: apple
|
||
categories: ['html', 'css']
|
||
tags: ['html', 'css']
|
||
|
||
Configuration
|
||
-------------
|
||
|
||
source: .
|
||
destination: _site
|
||
exclude: [dir, file, ...]
|
||
include: ['.htaccess']
|
||
|
||
### Reference
|
||
|
||
* [Configuration](http://jekyllrb.com/docs/configuration/)
|
||
|
||
## [Variables](http://jekyllrb.com/docs/variables/)
|
||
|
||
{{ site }} - from config.yml
|
||
{{ page }} - from frontmatter, and page-specific info
|
||
{{ content }} - html content (use in layouts)
|
||
{{ paginator }} - ...
|
||
|
||
### Site
|
||
|
||
{{ site.time }} - current time
|
||
{{ site.pages }} - list of pages
|
||
{{ site.posts }} - list of posts
|
||
{{ site.related_posts }} - list
|
||
{{ site.categories.CATEGORY }} - list
|
||
{{ site.tags.TAG }} - list
|
||
|
||
{{ site.static_files }}
|
||
|
||
### Page
|
||
|
||
{{ page.content }} - un-rendered content
|
||
{{ page.title }}
|
||
{{ page.excerpt }} - un-rendered excerpt
|
||
{{ page.url }}
|
||
{{ page.date }}
|
||
{{ page.id }} - unique id for RSS feeds
|
||
{{ page.categories }}
|
||
{{ page.tags }}
|
||
{{ page.path }}
|
||
{{ post.excerpt | remove: '<p>' | remove: '</p>' }}
|
||
{{ post.excerpt | strip_html }}
|
||
|
||
<!-- blog pagination: -->
|
||
{{ page.next }}
|
||
{{ page.previous }}
|
||
|
||
### [Paginator](http://jekyllrb.com/docs/pagination/)
|
||
|
||
{{ paginator.page }} - page number
|
||
{{ paginator.total_posts }}
|
||
{{ paginator.total_pages }}
|
||
{{ paginator.per_page }}
|
||
|
||
{% for post in paginator.posts %} ... {% endfor %}
|
||
|
||
{% if paginator.previous_page %}
|
||
<a href="{{ paginator.previous_page_path }}">Previous</a>
|
||
{% else %}
|
||
{% endif %}
|
||
|
||
{{ paginator.next_page }} - page number
|
||
{{ paginator.next_page_path }}
|
||
...
|
||
|
||
{% if paginator.total_pages > 1 %}
|
||
{% endif %}
|
||
|
||
Add this to `_config.yml`:
|
||
|
||
paginate: 5
|
||
paginate_path: "blog/:num"
|
||
|
||
### Code
|
||
|
||
{% highlight ruby linenos %}
|
||
def show
|
||
...
|
||
end
|
||
{% endhighlight %}
|
||
|
||
Markup
|
||
------
|
||
|
||
### Loops
|
||
|
||
{% for post in site.posts %}
|
||
<a href="{{ post.url }}">
|
||
<h2>{{ post.title }} — {{ post.date | date_to_string }}</h2>
|
||
</a>
|
||
{{ post.content }}
|
||
{% endfor %}
|
||
|
||
### Dates
|
||
|
||
{{ page.date | date: "%b %d, %Y" }}
|
||
|
||
### If
|
||
|
||
{% if page.image.feature %}
|
||
{% else %}
|
||
{% endif %}
|
||
|
||
### Includes (partials)
|
||
|
||
{% include header.html %}
|
||
|
||
Blogging
|
||
--------
|
||
|
||
_posts/YEAR-MONTH-DAY-title.md
|
||
|
||
### Image paths
|
||
|
||

|
||
|
||
### [Drafts](http://jekyllrb.com/docs/drafts/)
|
||
|
||
vi _drafts/a-draft-post.md
|
||
jekyll build --drafts
|
||
|
||
### [Permalinks](http://jekyllrb.com/docs/permalinks/)
|
||
|
||
# _config.yml
|
||
permalink: date # /:categories/:year/:month/:day/:title.html
|
||
permalink: pretty # /:categories/:year/:month/:day/:title/
|
||
permalink: none # /:categories/:title.html
|
||
permalink: "/:title"
|
||
|
||
## [Data](http://jekyllrb.com/docs/datafiles/)
|
||
|
||
_data/members.yml
|
||
|
||
{% for member in site.data.members %}
|
||
|
||
Helpers and Filters
|
||
-------------------
|
||
|
||
{{ site.time | date_to_xmlschema }} #=> 2008-11-07T13:07:54-08:00
|
||
{{ site.time | date_to_rfc822 }} #=> Mon, 07 Nov 2008 13:07:54 -0800
|
||
{{ site.time | date_to_string }} #=> 07 Nov 2008
|
||
{{ site.time | date_to_long_string }} #=> 07 November 2008
|
||
|
||
| where:"year","2014"
|
||
| group_by:"genre"
|
||
| sort
|
||
|
||
| xml_escape
|
||
| cgi_escape
|
||
| uri_escape
|
||
|
||
| array_to_sentence_string
|
||
| number_of_words
|
||
|
||
| textilize
|
||
| markdownify
|
||
| jsonify
|
||
|
||
| camelize
|
||
| capitalize
|
||
| pluralize
|
||
|
||
| date: "%Y %m %d"
|
||
| default: "xxx"
|
||
|
||
| replace: "super", "mega"
|
||
| replace_first: "super", "mega"
|
||
|
||
Comments
|
||
--------
|
||
|
||
{% comment %}
|
||
{% endcomment %}
|
||
|
||
Integration
|
||
-----------
|
||
|
||
### Bundler
|
||
|
||
# _plugins/bundler.rb
|
||
require "bunder/setup"
|
||
Bundler.require :default
|
||
|
||
### Compass
|
||
|
||
* [Compass](https://gist.github.com/parkr/2874934)
|
||
* [Asset pipeline](https://github.com/matthodan/jekyll-asset-pipeline)
|
||
|
||
### References
|
||
|
||
* http://jekyllrb.com/docs/home/
|
||
* http://jekyllrb.com/docs/templates/
|
||
* http://docs.shopify.com/themes/liquid-basics/output
|
||
* http://docs.shopify.com/themes/liquid-basics/logic
|
||
* https://github.com/Shopify/liquid/wiki/Liquid-for-Designers
|
||
{% endraw %}
|