jekyll 0.12.1 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of jekyll might be problematic. Click here for more details.
- data/CONTRIBUTING.md +67 -0
- data/Gemfile +1 -1
- data/History.txt +50 -6
- data/README.textile +10 -6
- data/Rakefile +74 -36
- data/bin/jekyll +78 -276
- data/cucumber.yml +3 -1
- data/features/create_sites.feature +1 -1
- data/features/drafts.feature +25 -0
- data/features/site_configuration.feature +1 -1
- data/features/step_definitions/jekyll_steps.rb +13 -3
- data/features/support/env.rb +3 -1
- data/jekyll.gemspec +73 -17
- data/lib/jekyll.rb +31 -21
- data/lib/jekyll/command.rb +12 -0
- data/lib/jekyll/commands/build.rb +81 -0
- data/lib/jekyll/commands/serve.rb +28 -0
- data/lib/jekyll/converter.rb +1 -3
- data/lib/jekyll/converters/identity.rb +13 -14
- data/lib/jekyll/converters/markdown.rb +128 -128
- data/lib/jekyll/converters/textile.rb +37 -37
- data/lib/jekyll/convertible.rb +6 -4
- data/lib/jekyll/core_ext.rb +9 -1
- data/lib/jekyll/draft.rb +35 -0
- data/lib/jekyll/errors.rb +1 -3
- data/lib/jekyll/filters.rb +13 -4
- data/lib/jekyll/generator.rb +1 -4
- data/lib/jekyll/generators/pagination.rb +46 -46
- data/lib/jekyll/layout.rb +0 -2
- data/lib/jekyll/mime.types +1588 -0
- data/lib/jekyll/page.rb +24 -8
- data/lib/jekyll/plugin.rb +0 -2
- data/lib/jekyll/post.rb +66 -40
- data/lib/jekyll/site.rb +96 -20
- data/lib/jekyll/static_file.rb +0 -2
- data/lib/jekyll/tags/gist.rb +19 -0
- data/lib/jekyll/tags/highlight.rb +63 -62
- data/lib/jekyll/tags/include.rb +25 -25
- data/lib/jekyll/tags/post_url.rb +30 -25
- data/script/bootstrap +2 -0
- data/site/.gitignore +4 -0
- data/site/CNAME +1 -0
- data/site/README +1 -0
- data/site/_config.yml +5 -0
- data/site/_includes/analytics.html +32 -0
- data/site/_includes/docs_contents.html +82 -0
- data/site/_includes/footer.html +15 -0
- data/site/_includes/header.html +26 -0
- data/site/_includes/section_nav.html +22 -0
- data/site/_includes/top.html +14 -0
- data/site/_layouts/default.html +12 -0
- data/site/_layouts/docs.html +21 -0
- data/site/_posts/2012-07-01-configuration.md +277 -0
- data/site/_posts/2012-07-01-contributing.md +66 -0
- data/site/_posts/2012-07-01-deployment-methods.md +108 -0
- data/site/_posts/2012-07-01-extras.md +103 -0
- data/site/_posts/2012-07-01-frontmatter.md +120 -0
- data/site/_posts/2012-07-01-github-pages.md +34 -0
- data/site/_posts/2012-07-01-heroku.md +8 -0
- data/site/_posts/2012-07-01-home.md +47 -0
- data/site/_posts/2012-07-01-installation.md +43 -0
- data/site/_posts/2012-07-01-migrations.md +180 -0
- data/site/_posts/2012-07-01-pages.md +62 -0
- data/site/_posts/2012-07-01-pagination.md +116 -0
- data/site/_posts/2012-07-01-permalinks.md +163 -0
- data/site/_posts/2012-07-01-plugins.md +384 -0
- data/site/_posts/2012-07-01-posts.md +106 -0
- data/site/_posts/2012-07-01-resources.md +49 -0
- data/site/_posts/2012-07-01-sites.md +28 -0
- data/site/_posts/2012-07-01-structure.md +95 -0
- data/site/_posts/2012-07-01-templates.md +217 -0
- data/site/_posts/2012-07-01-troubleshooting.md +108 -0
- data/site/_posts/2012-07-01-usage.md +38 -0
- data/site/_posts/2012-07-01-variables.md +166 -0
- data/site/css/grid.css +62 -0
- data/site/css/normalize.css +504 -0
- data/site/css/pygments.css +70 -0
- data/site/css/style.css +697 -0
- data/site/docs/index.html +11 -0
- data/site/favicon.png +0 -0
- data/site/img/article-footer.png +0 -0
- data/site/img/footer-arrow.png +0 -0
- data/site/img/footer-logo.png +0 -0
- data/site/img/logo-2x.png +0 -0
- data/site/img/octojekyll.png +0 -0
- data/site/img/tube.png +0 -0
- data/site/img/tube1x.png +0 -0
- data/site/index.html +77 -0
- data/site/js/modernizr-2.5.3.min.js +4 -0
- data/test/fixtures/broken_front_matter2.erb +4 -0
- data/test/fixtures/broken_front_matter3.erb +7 -0
- data/test/fixtures/exploit_front_matter.erb +4 -0
- data/test/helper.rb +16 -0
- data/test/source/_posts/2013-01-12-nil-layout.textile +6 -0
- data/test/source/_posts/2013-01-12-no-layout.textile +5 -0
- data/test/source/contacts/bar.html +5 -0
- data/test/source/contacts/index.html +5 -0
- data/test/test_configuration.rb +7 -8
- data/test/test_convertible.rb +29 -0
- data/test/test_core_ext.rb +22 -0
- data/test/test_generated_site.rb +1 -1
- data/test/test_kramdown.rb +3 -3
- data/test/test_page.rb +88 -2
- data/test/test_post.rb +42 -6
- data/test/test_rdiscount.rb +1 -1
- data/test/test_redcarpet.rb +1 -1
- data/test/test_redcloth.rb +6 -6
- data/test/test_site.rb +73 -8
- data/test/test_tags.rb +36 -13
- metadata +150 -19
- data/lib/jekyll/migrators/csv.rb +0 -26
- data/lib/jekyll/migrators/drupal.rb +0 -103
- data/lib/jekyll/migrators/enki.rb +0 -49
- data/lib/jekyll/migrators/joomla.rb +0 -53
- data/lib/jekyll/migrators/marley.rb +0 -52
- data/lib/jekyll/migrators/mephisto.rb +0 -84
- data/lib/jekyll/migrators/mt.rb +0 -86
- data/lib/jekyll/migrators/posterous.rb +0 -67
- data/lib/jekyll/migrators/rss.rb +0 -47
- data/lib/jekyll/migrators/textpattern.rb +0 -58
- data/lib/jekyll/migrators/tumblr.rb +0 -195
- data/lib/jekyll/migrators/typo.rb +0 -51
- data/lib/jekyll/migrators/wordpress.rb +0 -294
- data/lib/jekyll/migrators/wordpressdotcom.rb +0 -70
@@ -0,0 +1,108 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Deployment methods
|
4
|
+
prev_section: github-pages
|
5
|
+
next_section: contributing
|
6
|
+
---
|
7
|
+
|
8
|
+
Sites built using Jekyll can be deployed in a large number of ways due to the static nature of the generated output. A few of the most common deployment techniques are described below.
|
9
|
+
|
10
|
+
## Web hosting providers (FTP)
|
11
|
+
|
12
|
+
Just about any traditional web hosting provider will let you upload files to their servers over FTP. To upload a Jekyll site to a web host using FTP, simply run the `jekyll` command and copy the generated `_site` folder to the root folder of your hosting account. This is most likely to be the `httpdocs` or `public_html` folder on most hosting providers.
|
13
|
+
|
14
|
+
### FTP using Glynn
|
15
|
+
|
16
|
+
There is a project called [Glynn](https://github.com/dmathieu/glynn), which lets you easily generate your Jekyll powered website’s static files and
|
17
|
+
send them to your host through FTP.
|
18
|
+
|
19
|
+
## Self-managed web server
|
20
|
+
|
21
|
+
If you have direct access yourself to the deployment web server yourself, the process is essentially the same, except you might have other methods available to you (such as `scp`, or even direct filesystem access) for transferring the files. Just remember to make sure the contents of the generated `_site` folder get placed in the appropriate web root directory for your web server.
|
22
|
+
|
23
|
+
## Automated methods
|
24
|
+
|
25
|
+
There are also a number of ways to easily automate the deployment of a Jekyll site. If you’ve got another method that isn’t listed below, we’d love it if you [contributed](../contributing) so that everyone else can benefit too.
|
26
|
+
|
27
|
+
### Git post-update hook
|
28
|
+
|
29
|
+
If you store your jekyll site in [Git](http://git-scm.com/) (you are using version control, right?), it’s pretty easy to automate the
|
30
|
+
deployment process by setting up a post-update hook in your Git
|
31
|
+
repository, [like
|
32
|
+
this](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/03/26/deploying-a-jekyll-generated-site/).
|
33
|
+
|
34
|
+
### Git post-receive hook
|
35
|
+
|
36
|
+
To have a remote server handle the deploy for you every time you push changes using Git, you can create a user account which has all the public keys that are authorized to deploy in its `authorized_keys` file. With that in place, setting up the post-receive hook is done as follows:
|
37
|
+
|
38
|
+
{% highlight bash %}
|
39
|
+
laptop$ ssh deployer@myserver.com
|
40
|
+
server$ mkdir myrepo.git
|
41
|
+
server$ cd myrepo.git
|
42
|
+
server$ git --bare init
|
43
|
+
server$ cp hooks/post-receive.sample hooks/post-receive
|
44
|
+
server$ mkdir /var/www/myrepo
|
45
|
+
{% endhighlight %}
|
46
|
+
|
47
|
+
Next, add the following lines to hooks/post-receive and be sure Jekyll is
|
48
|
+
installed on the server:
|
49
|
+
|
50
|
+
{% highlight bash %}
|
51
|
+
GIT_REPO=$HOME/myrepo.git
|
52
|
+
TMP_GIT_CLONE=$HOME/tmp/myrepo
|
53
|
+
PUBLIC_WWW=/var/www/myrepo
|
54
|
+
|
55
|
+
git clone $GIT_REPO $TMP_GIT_CLONE
|
56
|
+
jekyll build $TMP_GIT_CLONE $PUBLIC_WWW
|
57
|
+
rm -Rf $TMP_GIT_CLONE
|
58
|
+
exit
|
59
|
+
{% endhighlight %}
|
60
|
+
|
61
|
+
Finally, run the following command on any users laptop that needs to be able to
|
62
|
+
deploy using this hook:
|
63
|
+
|
64
|
+
{% highlight bash %}
|
65
|
+
laptops$ git remote add deploy deployer@myserver.com:~/myrepo.git
|
66
|
+
{% endhighlight %}
|
67
|
+
|
68
|
+
Deploying is now as easy as telling nginx or Apache to look at
|
69
|
+
`/var/www/myrepo` and running the following:
|
70
|
+
|
71
|
+
{% highlight bash %}
|
72
|
+
laptops$ git push deploy master
|
73
|
+
{% endhighlight %}
|
74
|
+
|
75
|
+
### Rake
|
76
|
+
|
77
|
+
Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimweirich/rake), [HighLine](https://github.com/JEG2/highline), and
|
78
|
+
[Net::SSH](http://net-ssh.rubyforge.org/). A more complex example of deploying Jekyll with Rake that deals with multiple branches can be found in [Git Ready](https://github.com/gitready/gitready/blob/en/Rakefile).
|
79
|
+
|
80
|
+
### rsync
|
81
|
+
|
82
|
+
Once you’ve generated the `_site` directory, you can easily rsync it using a `tasks/deploy` shell script similar to [this deploy script here](http://github.com/henrik/henrik.nyh.se/blob/master/tasks/deploy). You’d obviously need to change the values to reflect your site’s details. There is even [a matching TextMate command](http://gist.github.com/214959) that will help you run
|
83
|
+
this script from within Textmate.
|
84
|
+
|
85
|
+
|
86
|
+
## Rack-Jekyll
|
87
|
+
|
88
|
+
[Rack-Jekyll](http://github.com/bry4n/rack-jekyll/) is an easy way to deploy your site on any Rack server such as Amazon EC2, Slicehost, Heroku, and so forth. It also can run with [shotgun](http://github.com/rtomakyo/shotgun/), [rackup](http://github.com/rack/rack), [mongrel](http://github.com/mongrel/mongrel), [unicorn](http://github.com/defunkt/unicorn/), and [others](https://github.com/adaoraul/rack-jekyll#readme).
|
89
|
+
|
90
|
+
Read [this post](http://blog.crowdint.com/2010/08/02/instant-blog-using-jekyll-and-heroku.html) on how to deploy to Heroku using Rack-Jekyll.
|
91
|
+
|
92
|
+
## Jekyll-Admin for Rails
|
93
|
+
|
94
|
+
If you want to maintain Jekyll inside your existing Rails app, [Jekyll-Admin](http://github.com/zkarpinski/Jekyll-Admin) contains drop in code to make this possible. See Jekyll-Admin’s [README](http://github.com/zkarpinski/Jekyll-Admin/blob/master/README) for more details.
|
95
|
+
|
96
|
+
## Amazon S3
|
97
|
+
|
98
|
+
If you want to host your site in Amazon S3, you can do so with
|
99
|
+
[jekyll-s3](https://github.com/laurilehmijoki/jekyll-s3) application. It will
|
100
|
+
push your site to Amazon S3 where it can be served like any web server,
|
101
|
+
dynamically scaling to almost unlimited traffic. This approach has the
|
102
|
+
benefit of being about the cheapest hosting option available for
|
103
|
+
low-volume blogs as you only pay for what you use.
|
104
|
+
|
105
|
+
<div class="note">
|
106
|
+
<h5>ProTip™: Use GitHub Pages for zero-hassle Jekyll hosting</h5>
|
107
|
+
<p>GitHub Pages are powered by Jekyll behind the scenes, so if you’re looking for a zero-hassle, zero-cost solution, GitHub Pages are a great way to <a href="../github-pages">host your Jekyll-powered website for free</a>.</p>
|
108
|
+
</div>
|
@@ -0,0 +1,103 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Extras
|
4
|
+
prev_section: plugins
|
5
|
+
next_section: github-pages
|
6
|
+
---
|
7
|
+
|
8
|
+
There are a number of (optional) extra features that Jekyll supports that you may want to install, depending on how you plan to use Jekyll.
|
9
|
+
|
10
|
+
## Pygments
|
11
|
+
|
12
|
+
If you want syntax highlighting via the `{{ "{% highlight " }}%}` tag in your
|
13
|
+
posts, you’ll need to install [Pygments](http://pygments.org/).
|
14
|
+
|
15
|
+
### Installing Pygments on OSX
|
16
|
+
|
17
|
+
Mac OS X (Leopard onwards) come preinstalled with Python, so on just about any OS X machine you can install Pygments simply by running:
|
18
|
+
|
19
|
+
{% highlight bash %}
|
20
|
+
sudo easy_install Pygments
|
21
|
+
{% endhighlight %}
|
22
|
+
|
23
|
+
#### Installing Pygments using Homebrew
|
24
|
+
|
25
|
+
Alternatively, you can install Pygments with [Homebrew](http://mxcl.github.com/homebrew/), an excellent package manager for OS X:
|
26
|
+
{% highlight bash %}
|
27
|
+
brew install python
|
28
|
+
# export PATH="/usr/local/share/python:${PATH}"
|
29
|
+
easy_install pip
|
30
|
+
pip install --upgrade distribute
|
31
|
+
pip install pygments
|
32
|
+
{% endhighlight %}
|
33
|
+
|
34
|
+
**ProTip™**: Homebrew doesn’t symlink the executables for you. For the Homebrew default Cellar location and Python 2.7, be sure to add `/usr/local/share/python` to your `PATH`. For more information, check out [the Homebrew wiki](https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python).
|
35
|
+
|
36
|
+
#### Installing Pygments using MacPorts
|
37
|
+
|
38
|
+
If you use MacPorts, you can install Pygments by running:
|
39
|
+
|
40
|
+
{% highlight bash %}
|
41
|
+
sudo port install python25 py25-pygments
|
42
|
+
{% endhighlight %}
|
43
|
+
|
44
|
+
Seriously though, you should check out [Homebrew](http://mxcl.github.com/homebrew/)—it’s awesome.
|
45
|
+
|
46
|
+
|
47
|
+
### Installing Pygments on Arch Linux
|
48
|
+
|
49
|
+
You can install Pygments using the pacman package manager as follows:
|
50
|
+
|
51
|
+
{% highlight bash %}
|
52
|
+
sudo pacman -S python-pygments
|
53
|
+
{% endhighlight %}
|
54
|
+
|
55
|
+
Or to use python2 for Pygments:
|
56
|
+
{% highlight bash %}
|
57
|
+
sudo pacman -S python2-pygments
|
58
|
+
{% endhighlight %}
|
59
|
+
|
60
|
+
### Installing Pygments on Ubuntu and Debian
|
61
|
+
|
62
|
+
{% highlight bash %}
|
63
|
+
sudo apt-get install python-pygments
|
64
|
+
{% endhighlight %}
|
65
|
+
|
66
|
+
### Installing Pygments on RedHat, Fedora, and CentOS
|
67
|
+
|
68
|
+
{% highlight bash %}
|
69
|
+
sudo yum install python-pygments
|
70
|
+
{% endhighlight %}
|
71
|
+
|
72
|
+
### Installing Pygments on Gentoo
|
73
|
+
|
74
|
+
{% highlight bash %}
|
75
|
+
sudo emerge -av dev-python/pygments
|
76
|
+
{% endhighlight %}
|
77
|
+
|
78
|
+
## LaTeX Support
|
79
|
+
|
80
|
+
Maruku comes with optional support for LaTeX to PNG rendering via
|
81
|
+
blahtex (Version 0.6) which must be in your `$PATH` along with `dvips`. If you need Maruku to not assume a fixed location for `dvips`, check out [Remi’s Maruku fork](http://github.com/remi/maruku).
|
82
|
+
|
83
|
+
## RDiscount
|
84
|
+
|
85
|
+
If you prefer to use [RDiscount](http://github.com/rtomayko/rdiscount) instead of [Maruku](http://maruku.rubyforge.org/) for markdown, just make sure you have it installed:
|
86
|
+
|
87
|
+
{% highlight bash %}
|
88
|
+
sudo gem install rdiscount
|
89
|
+
{% endhighlight %}
|
90
|
+
|
91
|
+
And then run Jekyll with the following option:
|
92
|
+
|
93
|
+
{% highlight bash %}
|
94
|
+
jekyll build --markdown rdiscount
|
95
|
+
{% endhighlight %}
|
96
|
+
|
97
|
+
Or, specify RDiscount as the markdown engine in your `_config.yml` file to have Jekyll run with that option by default (so you don’t have to specify the flag every time).
|
98
|
+
|
99
|
+
{% highlight bash %}
|
100
|
+
# In _config.yml
|
101
|
+
markdown: rdiscount
|
102
|
+
{% endhighlight %}
|
103
|
+
|
@@ -0,0 +1,120 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Front-matter
|
4
|
+
prev_section: configuration
|
5
|
+
next_section: posts
|
6
|
+
---
|
7
|
+
|
8
|
+
The front-matter is where Jekyll starts to get really cool. Any files that contain a [YAML](http://yaml.org/) front matter block will be processed by Jekyll as special files. The front matter must be the first thing in the file and must take the form of sets of variables and values set between triple-dashed lines. Here is a basic example:
|
9
|
+
|
10
|
+
{% highlight yaml %}
|
11
|
+
---
|
12
|
+
layout: post
|
13
|
+
title: Blogging Like a Hacker
|
14
|
+
---
|
15
|
+
{% endhighlight %}
|
16
|
+
|
17
|
+
Between these triple-dashed lines, you can set predefined variables (see below for a reference) or even create custom ones of your own. These variables will then be available to you to access using Liquid tags both further down in the file and also in any layouts or includes that the page or post in question relies on.
|
18
|
+
|
19
|
+
<div class="note warning">
|
20
|
+
<h5>UTF-8 Character Encoding Warning</h5>
|
21
|
+
<p>If you use UTF-8 encoding, make sure that no <code>BOM</code> header characters exist in your files or very, very bad things will happen to Jekyll. This is especially relevant if you’re running Jekyll on Windows.</p>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
## Predefined Global Variables
|
25
|
+
|
26
|
+
There are a number of predefined global variables that you can set in the front-matter of a page or post.
|
27
|
+
|
28
|
+
<table>
|
29
|
+
<thead>
|
30
|
+
<tr>
|
31
|
+
<th>Variable</th>
|
32
|
+
<th>Description</th>
|
33
|
+
</tr>
|
34
|
+
</thead>
|
35
|
+
<tbody>
|
36
|
+
<tr>
|
37
|
+
<td>
|
38
|
+
<p><code>layout</code></p>
|
39
|
+
</td>
|
40
|
+
<td>
|
41
|
+
<p>If set, this specifies the layout file to use. Use the layout file name without file extension. Layout files must be placed in the <code>_layouts</code> directory.</p>
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td>
|
46
|
+
<p><code>permalink</code></p>
|
47
|
+
</td>
|
48
|
+
<td>
|
49
|
+
<p>If you need your processed URLs to be something other than the default <code>/year/month/day/title.html</code> then you can set this variable and it will be used as the final URL.</p>
|
50
|
+
</td>
|
51
|
+
</tr>
|
52
|
+
<tr>
|
53
|
+
<td>
|
54
|
+
<p><code>published</code></p>
|
55
|
+
</td>
|
56
|
+
<td>
|
57
|
+
<p>Set to false if you don’t want a post to show up when the site is generated.</p>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr>
|
61
|
+
<td>
|
62
|
+
<p style="margin-bottom: 5px;"><code>category</code></p>
|
63
|
+
<p><code>categories</code></p>
|
64
|
+
</td>
|
65
|
+
<td>
|
66
|
+
<p>Instead of placing posts inside of folders, you can specify one or more categories that the post belongs to. When the site is generated the post will act as though it had been set with these categories normally. Categories (plural key) can be specified as a <a href="http://en.wikipedia.org/wiki/YAML#Lists">YAML list</a> or a space-separated string.</p>
|
67
|
+
</td>
|
68
|
+
</tr>
|
69
|
+
<tr>
|
70
|
+
<td>
|
71
|
+
<p><code>tags</code></p>
|
72
|
+
</td>
|
73
|
+
<td>
|
74
|
+
<p>Similar to categories, one or multiple tags can be added to a post. Also like categories, tags can be specified as a YAML list or a space-separated string.</p>
|
75
|
+
</td>
|
76
|
+
</tr>
|
77
|
+
</tbody>
|
78
|
+
</table>
|
79
|
+
|
80
|
+
|
81
|
+
## Custom Variables
|
82
|
+
|
83
|
+
Any variables in the front matter that are not predefined are mixed into
|
84
|
+
the data that is sent to the Liquid templating engine during the
|
85
|
+
conversion. For instance, if you set a title, you can use that in your
|
86
|
+
layout to set the page title:
|
87
|
+
|
88
|
+
{% highlight html %}
|
89
|
+
<!DOCTYPE HTML>
|
90
|
+
<html>
|
91
|
+
<head>
|
92
|
+
<title>{{ "{{ page.title " }}}}</title>
|
93
|
+
</head>
|
94
|
+
<body>
|
95
|
+
...
|
96
|
+
{% endhighlight %}
|
97
|
+
|
98
|
+
## Predefined Variables for Posts
|
99
|
+
|
100
|
+
These are available out-of-the-box to be used in the front-matter for a
|
101
|
+
post.
|
102
|
+
|
103
|
+
<table>
|
104
|
+
<thead>
|
105
|
+
<tr>
|
106
|
+
<th>Variable</th>
|
107
|
+
<th>Description</th>
|
108
|
+
</tr>
|
109
|
+
</thead>
|
110
|
+
<tbody>
|
111
|
+
<tr>
|
112
|
+
<td>
|
113
|
+
<p><code>date</code></p>
|
114
|
+
</td>
|
115
|
+
<td>
|
116
|
+
<p>A date here overrides the date from the name of the post. This can be used to ensure correct sorting of posts.</p>
|
117
|
+
</td>
|
118
|
+
</tr>
|
119
|
+
</tbody>
|
120
|
+
</table>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: GitHub Pages
|
4
|
+
prev_section: extras
|
5
|
+
next_section: deployment-methods
|
6
|
+
---
|
7
|
+
|
8
|
+
[GitHub Pages](https://pages.github.com) are public web pages for users, organizations, and repositories, that are freely hosted on [GitHub](https://github.com/). GitHub Pages are powered by Jekyll behind the scenes, so in addition to supporting regular HTML content, they’re also a great way to host your Jekyll-powered website for free.
|
9
|
+
|
10
|
+
## Deploying Jekyll to GitHub Pages
|
11
|
+
|
12
|
+
GitHub Pages work by looking at certain branches of repositories on GitHub. There are two basic types of Pages available, user/organization Pages and project Pages. The way to deploy these two types of pages are nearly identical, except for a few minor details.
|
13
|
+
|
14
|
+
### User and Organization Pages
|
15
|
+
|
16
|
+
User and organization Pages live in a special GitHub repository dedicated to only the Pages files. This repository must be named after the account name. For example, [@mojombo’s user page repository](https://github.com/mojombo/mojombo.github.com) has the name `mojombo.github.com`.
|
17
|
+
|
18
|
+
Content from the `master` branch of your repository will be used to build and publish the GitHub Pages site, so make sure your Jekyll site is stored there.
|
19
|
+
|
20
|
+
<div class="note info">
|
21
|
+
<h5>Custom domains do not affect repository names</h5>
|
22
|
+
<p>GitHub Pages are initially configured to live under the `username.github.com` subdomain, which is why repositories must be named this way <strong>even if a custom domain is being used</strong>.</p>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
### Project Pages
|
26
|
+
|
27
|
+
Unlike user and organization Pages, Project Pages are kept in the same repository as the project they are for, except that the website content is stored in a specially named `gh-pages` branch. The content of this branch will be used to rendered using Jekyll, and the output will become available under a subpath of your user pages subdomain, such as `username.github.com/project` (unless a custom domain is specified—see below).
|
28
|
+
|
29
|
+
The Jekyll project repository itself is a perfect example of this branch structure—the [master branch](https://github.com/mojombo/jekyll) contains the actual software project for Jekyll, however the Jekyll website (that you’re looking at right now) is contained in the [gh-pages branch](https://github.com/mojombo/jekyll/tree/gh-pages) of the same repository.
|
30
|
+
|
31
|
+
<div class="note">
|
32
|
+
<h5>GitHub Pages Documentation, Help, and Support</h5>
|
33
|
+
<p>For more information about what you can do with GitHub Pages, as well as for troubleshooting guides, you should check out <a href="https://help.github.com/categories/20/articles">GitHub’s Pages Help section</a>. If all else fails, you should contact <a href="https://github.com/contact">GitHub Support</a>.</p>
|
34
|
+
</div>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Welcome
|
4
|
+
next_section: installation
|
5
|
+
---
|
6
|
+
|
7
|
+
This site aims to be a comprehensive guide to Jekyll. We’ll cover everything from getting your site up and running, creating and managing your content, customizing the way your site works and looks, deploying to various environments, as well as some advice on participating in the future development of Jekyll itself.
|
8
|
+
|
9
|
+
## So what is Jekyll, exactly?
|
10
|
+
|
11
|
+
Jekyll is a simple, blog-aware, static site generator. It takes a template directory containing raw text files in various formats, runs it through [Markdown](http://daringfireball.net/projects/markdown/) (or [Textile](http://textile.sitemonks.com/)) and [Liquid](http://liquidmarkup.org/) converters, and spits out a complete, ready-to-publish static website suitable for serving with your favorite web server. Jekyll also happens to be the engine behind [GitHub Pages](http://pages.github.com), which means you can use Jekyll to host your project’s page, blog, or website from GitHub’s servers **for free**.
|
12
|
+
|
13
|
+
## Quick-start guide
|
14
|
+
|
15
|
+
For the impatient, here's how to get Jekyll up and running.
|
16
|
+
|
17
|
+
{% highlight bash %}
|
18
|
+
~ $ gem install jekyll
|
19
|
+
~ $ mkdir -p my/new/site
|
20
|
+
~ $ cd my/new/site
|
21
|
+
~ $ vim index.html
|
22
|
+
~/my/new/site $ jekyll serve
|
23
|
+
# => Now browse to http://localhost:4000
|
24
|
+
{% endhighlight %}
|
25
|
+
|
26
|
+
That's nothing though. The real magic happens when you start creating posts, using the front-matter to conrol templates and layouts, and taking advantage of all the awesome configuration options Jekyll makes available.
|
27
|
+
|
28
|
+
## ProTips™, Notes, and Warnings
|
29
|
+
|
30
|
+
Throughout this guide there are a number of small-but-handy pieces of information that can make using Jekyll easier, more interesting, and less hazardous. Here’s what to look out for.
|
31
|
+
|
32
|
+
<div class="note">
|
33
|
+
<h5>ProTips™ help you get more from Jekyll</h5>
|
34
|
+
<p>These are tips and tricks that will help you be a Jekyll wizard!</p>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<div class="note info">
|
38
|
+
<h5>Notes are handy pieces of information</h5>
|
39
|
+
<p>These are for the extra tidbits sometimes necessary to understand Jekyll.</p>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="note warning">
|
43
|
+
<h5>Warnings help you not blow things up</h5>
|
44
|
+
<p>Be aware of these messages if you wish to avoid certain death.</p>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
If you come across anything along the way that we haven’t covered, or if you know of a tip yourself you think others would find handy, please [file an issue](https://github.com/mojombo/jekyll/issues/new) and we’ll see about including it in this guide.
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Installation
|
4
|
+
prev_section: home
|
5
|
+
next_section: usage
|
6
|
+
---
|
7
|
+
|
8
|
+
Getting Jekyll installed and ready-to-go should only take a few minutes. If it ever becomes a pain in the ass, you should [file an issue](https://github.com/mojombo/jekyll/issues/new) (or submit a pull request) about what might be a better way to do things.
|
9
|
+
|
10
|
+
### Requirements
|
11
|
+
|
12
|
+
Installing Jekyll is easy and straight-forward, but there’s a few requirements you’ll need to make sure your system has before you start.
|
13
|
+
|
14
|
+
- [Ruby](http://www.ruby-lang.org/en/downloads/)
|
15
|
+
- [RubyGems](http://rubygems.org/pages/download)
|
16
|
+
- Linux, Unix, or Mac OS X
|
17
|
+
|
18
|
+
<div class="note info">
|
19
|
+
<h5>Running Jekyll on Windows</h5>
|
20
|
+
<p>It is possible to get <a href="http://www.madhur.co.in/blog/2011/09/01/runningjekyllwindows.html">Jekyll running on Windows</a> however the official documentation does not support installation on Windows platforms.</p>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
## Install with RubyGems
|
24
|
+
|
25
|
+
The best way to install Jekyll is via
|
26
|
+
[RubyGems](http://docs.rubygems.org/read/chapter/3). At the terminal prompt, simply run the following command to install Jekyll:
|
27
|
+
|
28
|
+
{% highlight bash %}
|
29
|
+
gem install jekyll
|
30
|
+
{% endhighlight %}
|
31
|
+
|
32
|
+
All Jekyll’s gem dependancies are automatically installed by the above command, so you won’t have to worry about them at all. If you have problems installing Jekyll, check out the [troubleshooting](../troubleshooting) page or [report an issue](https://github.com/mojombo/jekyll/issues/new) so the Jekyll community can improve the experience for everyone.
|
33
|
+
|
34
|
+
## Optional Extras
|
35
|
+
|
36
|
+
There are a number of (optional) extra features that Jekyll supports that you may want to install, depending on how you plan to use Jekyll. These extras include syntax highlighting of code snippets using [Pygments](http://pygments.org/), LaTeX support, and the use of alternative content rendering engines. Check out [the extras page](../extras) for more information.
|
37
|
+
|
38
|
+
<div class="note">
|
39
|
+
<h5>ProTip™: Enable Syntax Highlighting</h5>
|
40
|
+
<p>If you’re the kind of person who is using Jekyll, then chances are you’ll definitely want to enable syntax highlighting using Pygments. You should really <a href="../extras">check out how to do that</a> before you go any further.</p>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
Now that you’ve got everything installed, let’s get to work!
|