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,15 @@
|
|
1
|
+
<footer>
|
2
|
+
<div class="content">
|
3
|
+
<div class="grid4 first">
|
4
|
+
<p>By <a href="http://tom.preston-werner.com">Tom Preston-Werner</a>, <a href="http://quaran.to/">Nick Quaranto</a>, and many more <a href="https://github.com/mojombo/jekyll/graphs/contributors">awesome contributors</a>.</p>
|
5
|
+
</div>
|
6
|
+
<div class="grid8 align-right">
|
7
|
+
<p>Proudly hosted by</p>
|
8
|
+
<a href="https://github.com">
|
9
|
+
<img src="{{ site.url }}/img/footer-logo.png" alt="GitHub • Social coding">
|
10
|
+
</a>
|
11
|
+
</div>
|
12
|
+
<div class="clear"></div>
|
13
|
+
</div>
|
14
|
+
</footer>
|
15
|
+
<div class="clear"></div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<header>
|
2
|
+
<div class="content">
|
3
|
+
<div class="grid3 first">
|
4
|
+
<h1>
|
5
|
+
<a href="{{ site.url }}/">
|
6
|
+
<span>Jekyll</span>
|
7
|
+
<img src="{{ site.url }}/img/logo-2x.png" width="249px" height="115px" alt="">
|
8
|
+
</a>
|
9
|
+
</h1>
|
10
|
+
</div>
|
11
|
+
<nav class="grid6">
|
12
|
+
<ul>
|
13
|
+
<li {% if page.overview %}class="current"{% endif %}>
|
14
|
+
<a href="{{ site.url }}/">Overview</a>
|
15
|
+
</li>
|
16
|
+
<li {% unless page.overview %}class="current"{% endunless %}>
|
17
|
+
<a href="{{ site.url }}/docs">Documentation</a>
|
18
|
+
</li>
|
19
|
+
<li class="">
|
20
|
+
<a href="https://github.com/mojombo/jekyll">View on GitHub</a>
|
21
|
+
</li>
|
22
|
+
</ul>
|
23
|
+
</nav>
|
24
|
+
<div class="clear"></div>
|
25
|
+
</div>
|
26
|
+
</header>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="section-nav">
|
2
|
+
<div class="left align-right">
|
3
|
+
{% if page.prev_section != null %}
|
4
|
+
<a href="{{ site.url }}/docs/{{ page.prev_section }}" class="prev">
|
5
|
+
Back
|
6
|
+
</a>
|
7
|
+
{% else %}
|
8
|
+
<span class="prev disabled">Back</span>
|
9
|
+
{% endif %}
|
10
|
+
</div>
|
11
|
+
<div class="right align-left">
|
12
|
+
{% if page.next_section != null %}
|
13
|
+
<a href="{{ site.url }}/docs/{{ page.next_section }}" class="next">
|
14
|
+
Next
|
15
|
+
</a>
|
16
|
+
{% else %}
|
17
|
+
<span class="next disabled">Next</span>
|
18
|
+
{% endif %}
|
19
|
+
</div>
|
20
|
+
<div class="clear"></div>
|
21
|
+
</div>
|
22
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<html lang="en-US">
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8">
|
5
|
+
<title>{{ page.title }}</title>
|
6
|
+
<link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic' rel='stylesheet' type='text/css'>
|
7
|
+
<link href='http://fonts.googleapis.com/css?family=Arizonia' rel='stylesheet' type='text/css'>
|
8
|
+
<link rel="stylesheet" href="{{ site.url }}/css/normalize.css" />
|
9
|
+
<link rel="stylesheet" href="{{ site.url }}/css/grid.css" />
|
10
|
+
<link rel="stylesheet" href="{{ site.url }}/css/style.css" />
|
11
|
+
<link rel="stylesheet" href="{{ site.url }}/css/pygments.css" />
|
12
|
+
<link rel="icon" type="image/x-icon" href="{{ site.url }}/favicon.png" />
|
13
|
+
<script src="{{ site.url }}/js/modernizr-2.5.3.min.js"></script>
|
14
|
+
</head>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
4
|
+
|
5
|
+
<section class="docs">
|
6
|
+
<div class="content">
|
7
|
+
|
8
|
+
<div class="grid10 first">
|
9
|
+
<article>
|
10
|
+
<h1>{{ page.title }}</h1>
|
11
|
+
{{ content }}
|
12
|
+
{% include section_nav.html %}
|
13
|
+
</article>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
{% include docs_contents.html %}
|
17
|
+
|
18
|
+
<div class="clear"></div>
|
19
|
+
|
20
|
+
</div>
|
21
|
+
</section>
|
@@ -0,0 +1,277 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Configuration
|
4
|
+
prev_section: structure
|
5
|
+
next_section: frontmatter
|
6
|
+
---
|
7
|
+
|
8
|
+
Jekyll allows you to concoct your sites in any way you can dream up, and it’s thanks to the powerful and flexible configuration options that this is possible. These options can either be specified in a `_config.yml` file placed in your site’s root directory, or can be specified as flags for the `jekyll` executable in the terminal.
|
9
|
+
|
10
|
+
## Configuration Settings
|
11
|
+
|
12
|
+
### Global Configuration
|
13
|
+
|
14
|
+
The table below lists the available settings for Jekyll, and the various <code class="option">options</code> (specifed in the configuration file) and <code class="flag">flags</code> (specified on the command-line) that control them.
|
15
|
+
|
16
|
+
<table>
|
17
|
+
<thead>
|
18
|
+
<tr>
|
19
|
+
<th>Setting</th>
|
20
|
+
<th><span class="option">Options</span> and <span class="flag">Flags</span></th>
|
21
|
+
</tr>
|
22
|
+
</thead>
|
23
|
+
<tbody>
|
24
|
+
<tr class='setting'>
|
25
|
+
<td>
|
26
|
+
<p class='name'><strong>Site Source</strong></p>
|
27
|
+
<p class='description'>Changes the directory where Jekyll will look to transform files</p>
|
28
|
+
</td>
|
29
|
+
<td class="align-center">
|
30
|
+
<p><code class="option">source: [string]</code></p>
|
31
|
+
<p><code class="flag">--source [source]</code></p>
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<tr class='setting'>
|
35
|
+
<td>
|
36
|
+
<p class='name'><strong>Site Destination</strong></p>
|
37
|
+
<p class='description'>Changes the directory where Jekyll will write files to</p>
|
38
|
+
</td>
|
39
|
+
<td class="align-center">
|
40
|
+
<p><code class="option">destination: [string]</code></p>
|
41
|
+
<p><code class="flag">--destination</code></p>
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
<tr class='setting'>
|
45
|
+
<td>
|
46
|
+
<p class='name'><strong>Safe</strong></p>
|
47
|
+
<p class='description'>Disables <a href="../plugins">custom plugins</a>.</p>
|
48
|
+
</td>
|
49
|
+
<td class="align-center">
|
50
|
+
<p><code class="option">safe: [boolean]</code></p>
|
51
|
+
<p><code class="flag">--safe</code></p>
|
52
|
+
</td>
|
53
|
+
</tr>
|
54
|
+
<tr class='setting'>
|
55
|
+
<td>
|
56
|
+
<p class='name'><strong>Exclude</strong></p>
|
57
|
+
<p class="description">A list of directories and files to exclude from the conversion</p>
|
58
|
+
</td>
|
59
|
+
<td class='align-center'>
|
60
|
+
<p><code class="option">exclude: [dir1, file1, dir2]</code></p>
|
61
|
+
</td>
|
62
|
+
</tr>
|
63
|
+
<tr class='setting'>
|
64
|
+
<td>
|
65
|
+
<p class='name'><strong>Include</strong></p>
|
66
|
+
<p class="description">A list of directories and files to specifically include in the conversion. <code>.htaccess</code> is a good example since dotfiles are excluded by default.</p>
|
67
|
+
</td>
|
68
|
+
<td class='align-center'>
|
69
|
+
<p><code class="option">include: [dir1, file1, dir2]</code></p>
|
70
|
+
</td>
|
71
|
+
</tr>
|
72
|
+
</tbody>
|
73
|
+
</table>
|
74
|
+
|
75
|
+
### Build Command Options
|
76
|
+
|
77
|
+
<table>
|
78
|
+
<thead>
|
79
|
+
<tr>
|
80
|
+
<th>Setting</th>
|
81
|
+
<th><span class="option">Options</span> and <span class="flag">Flags</span></th>
|
82
|
+
</tr>
|
83
|
+
</thead>
|
84
|
+
<tbody>
|
85
|
+
<tr class='setting'>
|
86
|
+
<td>
|
87
|
+
<p class='name'><strong>Regeneration</strong></p>
|
88
|
+
<p class='description'>Enables auto-regeneration of the site when files are modified. Off by default.</p>
|
89
|
+
</td>
|
90
|
+
<td class="align-center">
|
91
|
+
<p><code class="flag">--watch</code></p>
|
92
|
+
</td>
|
93
|
+
</tr>
|
94
|
+
<tr class='setting'>
|
95
|
+
<td>
|
96
|
+
<p class='name'><strong>URL</strong></p>
|
97
|
+
<p class='description'>Sets <code>site.url</code>, useful for environment switching</p>
|
98
|
+
</td>
|
99
|
+
<td class="align-center">
|
100
|
+
<p><code class="option">url: [URL]</code></p>
|
101
|
+
<p><code class="flag">--url [URL]</code></p>
|
102
|
+
</td>
|
103
|
+
</tr>
|
104
|
+
<tr class='setting'>
|
105
|
+
<td>
|
106
|
+
<p class='name'><strong>Markdown</strong></p>
|
107
|
+
<p class="description">Uses RDiscount or <code>[engine]</code> instead of Maruku.</p>
|
108
|
+
</td>
|
109
|
+
<td class='align-center'>
|
110
|
+
<p><code class="option">markdown: [engine]</code></p>
|
111
|
+
<p><code class="flag">--markdown [rdiscount|kramdown|redcarpet]</code></p>
|
112
|
+
</td>
|
113
|
+
</tr>
|
114
|
+
<tr class='setting'>
|
115
|
+
<td>
|
116
|
+
<p class='name'><strong>Pygments</strong></p>
|
117
|
+
<p class="description">Enables highlight tag with Pygments.</p>
|
118
|
+
</td>
|
119
|
+
<td class='align-center'>
|
120
|
+
<p><code class="option">pygments: [boolean]</code></p>
|
121
|
+
<p><code class="flag">--pygments</code></p>
|
122
|
+
</td>
|
123
|
+
</tr>
|
124
|
+
<tr class='setting'>
|
125
|
+
<td>
|
126
|
+
<p class='name'><strong>Future</strong></p>
|
127
|
+
<p class="description">Publishes posts with a future date</p>
|
128
|
+
</td>
|
129
|
+
<td class='align-center'>
|
130
|
+
<p><code class="option">future: [boolean]</code></p>
|
131
|
+
<p><code class="flag">--future</code></p>
|
132
|
+
</td>
|
133
|
+
</tr>
|
134
|
+
<tr class='setting'>
|
135
|
+
<td>
|
136
|
+
<p class='name'><strong>LSI</strong></p>
|
137
|
+
<p class="description">Produces an index for related posts.</p>
|
138
|
+
</td>
|
139
|
+
<td class='align-center'>
|
140
|
+
<p><code class="option">lsi: [boolean]</code></p>
|
141
|
+
<p><code class="flag">--lsi</code></p>
|
142
|
+
</td>
|
143
|
+
</tr>
|
144
|
+
<tr class='setting'>
|
145
|
+
<td>
|
146
|
+
<p class='name'><strong>Permalink</strong></p>
|
147
|
+
<p class="description">Controls the URLs that posts are generated with. Please refer to the <a href="../permalinks">Permalinks</a> page for more info.</p>
|
148
|
+
</td>
|
149
|
+
<td class='align-center'>
|
150
|
+
<p><code class="option">permalink: [style]</code></p>
|
151
|
+
<p><code class="flag">--permalink [style]</code></p>
|
152
|
+
</td>
|
153
|
+
</tr>
|
154
|
+
<tr class='setting'>
|
155
|
+
<td>
|
156
|
+
<p class='name'><strong>Pagination</strong></p>
|
157
|
+
<p class="description">Splits your posts up over multiple subdirectories called "page2", "page3", ... "pageN"</p>
|
158
|
+
</td>
|
159
|
+
<td class='align-center'>
|
160
|
+
<p><code class="option">paginate: [per_page]</code></p>
|
161
|
+
<p><code class="flag">--paginate [per_page]</code></p>
|
162
|
+
</td>
|
163
|
+
</tr>
|
164
|
+
<tr class='setting'>
|
165
|
+
<td>
|
166
|
+
<p class='name'><strong>Limit Posts</strong></p>
|
167
|
+
<p class="description">Limits the number of posts to parse and publish</p>
|
168
|
+
</td>
|
169
|
+
<td class='align-center'>
|
170
|
+
<p><code class="option">limit_posts: [max_posts]</code></p>
|
171
|
+
<p><code class="flag">--limit_posts [max_posts]</code></p>
|
172
|
+
</td>
|
173
|
+
</tr>
|
174
|
+
</tbody>
|
175
|
+
</table>
|
176
|
+
|
177
|
+
### Serve Command Options
|
178
|
+
|
179
|
+
In addition to the options below, the `serve` sub-command can accept any of the options
|
180
|
+
for the `build` sub-command, which are then applied to the site build which occurs right
|
181
|
+
before your site is served.
|
182
|
+
|
183
|
+
<table>
|
184
|
+
<thead>
|
185
|
+
<tr>
|
186
|
+
<th>Setting</th>
|
187
|
+
<th><span class="option">Options</span> and <span class="flag">Flags</span></th>
|
188
|
+
</tr>
|
189
|
+
</thead>
|
190
|
+
<tbody>
|
191
|
+
<tr class='setting'>
|
192
|
+
<td>
|
193
|
+
<p class='name'><strong>Local Server Port</strong></p>
|
194
|
+
<p class='description'>Changes the port that the Jekyll server will run on</p>
|
195
|
+
</td>
|
196
|
+
<td class="align-center">
|
197
|
+
<p><code class="option">port: [integer]</code></p>
|
198
|
+
<p><code class="flag">--port [port]</code></p>
|
199
|
+
</td>
|
200
|
+
</tr>
|
201
|
+
<tr class='setting'>
|
202
|
+
<td>
|
203
|
+
<p class='name'><strong>Local Server Hostname</strong></p>
|
204
|
+
<p class='description'>Changes the hostname that the Jekyll server will run on</p>
|
205
|
+
</td>
|
206
|
+
<td class="align-center">
|
207
|
+
<p><code class="option">host: [string]</code></p>
|
208
|
+
<p><code class="flag">--host [hostname]</code></p>
|
209
|
+
</td>
|
210
|
+
</tr>
|
211
|
+
<tr class='setting'>
|
212
|
+
<td>
|
213
|
+
<p class='name'><strong>Base URL</strong></p>
|
214
|
+
<p class='description'>Serve website from a given base URL</p>
|
215
|
+
</td>
|
216
|
+
<td class="align-center">
|
217
|
+
<p><code class="option">baseurl: [BASE_URL]</code></p>
|
218
|
+
<p><code class="flag">--baseurl [url]</code></p>
|
219
|
+
</td>
|
220
|
+
</tr>
|
221
|
+
</tbody>
|
222
|
+
</table>
|
223
|
+
|
224
|
+
<div class="note warning">
|
225
|
+
<h5>Do not use tabs in configuration files</h5>
|
226
|
+
<p>This will either lead to parsing errors, or Jekyll will revert to the default settings. Use spaces instead.</p>
|
227
|
+
</div>
|
228
|
+
|
229
|
+
## Default Configuration
|
230
|
+
|
231
|
+
Jekyll runs with the following configuration options by default. Unless alternative settings for these options are explicitly specified in the configuration file or on the command-line, Jekyll will run using these options.
|
232
|
+
|
233
|
+
{% highlight yaml %}
|
234
|
+
safe: false
|
235
|
+
watch: false
|
236
|
+
server: false
|
237
|
+
host: 0.0.0.0
|
238
|
+
port: 4000
|
239
|
+
baseurl: /
|
240
|
+
url: http://localhost:4000
|
241
|
+
|
242
|
+
source: .
|
243
|
+
destination: ./_site
|
244
|
+
plugins: ./_plugins
|
245
|
+
|
246
|
+
future: true
|
247
|
+
lsi: false
|
248
|
+
pygments: false
|
249
|
+
markdown: maruku
|
250
|
+
permalink: date
|
251
|
+
|
252
|
+
maruku:
|
253
|
+
use_tex: false
|
254
|
+
use_divs: false
|
255
|
+
png_engine: blahtex
|
256
|
+
png_dir: images/latex
|
257
|
+
png_url: /images/latex
|
258
|
+
|
259
|
+
rdiscount:
|
260
|
+
extensions: []
|
261
|
+
|
262
|
+
kramdown:
|
263
|
+
auto_ids: true,
|
264
|
+
footnote_nr: 1
|
265
|
+
entity_output: as_char
|
266
|
+
toc_levels: 1..6
|
267
|
+
use_coderay: false
|
268
|
+
|
269
|
+
coderay:
|
270
|
+
coderay_wrap: div
|
271
|
+
coderay_line_numbers: inline
|
272
|
+
coderay_line_numbers_start: 1
|
273
|
+
coderay_tab_width: 4
|
274
|
+
coderay_bold_every: 10
|
275
|
+
coderay_css: style
|
276
|
+
|
277
|
+
{% endhighlight %}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Contributing
|
4
|
+
prev_section: deployment-methods
|
5
|
+
next_section: troubleshooting
|
6
|
+
---
|
7
|
+
|
8
|
+
Contributions to Jekyll are always welcome, however there’s a few things that you should keep in mind to improve your chances of having your changes merged in.
|
9
|
+
|
10
|
+
## Workflow
|
11
|
+
|
12
|
+
Here’s the most typical way to get your change merged into the project:
|
13
|
+
|
14
|
+
1. Fork the project [on GitHub](https://github.com/mojombo/jekyll) and clone it down to your local machine.
|
15
|
+
2. Create a topic branch to contain your change.
|
16
|
+
3. Hack away, add tests. Not necessarily in that order.
|
17
|
+
4. Make sure all the existing tests still pass.
|
18
|
+
5. If necessary, rebase your commits into logical chunks, without errors.
|
19
|
+
6. Push the branch up to your fork on GitHub.
|
20
|
+
7. Create an issue on GitHub with a link to your branch.
|
21
|
+
|
22
|
+
<div class="note warning">
|
23
|
+
<h5>Contributions will not be accepted without tests</h5>
|
24
|
+
<p>If you’re creating a small fix or patch to an existing feature, just
|
25
|
+
a simple test will do.</p>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
## Tests
|
29
|
+
|
30
|
+
We’re big on tests, so please be sure to include them. Please stay in the confines of the current test suite and use [Shoulda](https://github.com/thoughtbot/shoulda) and [RR](https://github.com/btakita/rr).
|
31
|
+
|
32
|
+
### Tests for brand-new features
|
33
|
+
|
34
|
+
If it’s a brand new feature, make sure to create a new [Cucumber](https://github.com/cucumber/cucumber/) feature and reuse steps where appropriate. Also, whipping up some documentation in your fork’s `gh-pages` branch would be appreciated, so the main website can be updated as soon as your new feature is merged.
|
35
|
+
|
36
|
+
### Test dependencies
|
37
|
+
|
38
|
+
To run the test suite and build the gem you’ll need to install Jekyll’s dependencies. Jekyll uses Bundler, so a quick run of the bundle command and you’re all set!
|
39
|
+
|
40
|
+
{% highlight bash %}
|
41
|
+
$ bundle
|
42
|
+
{% endhighlight %}
|
43
|
+
|
44
|
+
Before you start, run the tests and make sure that they pass (to confirm
|
45
|
+
your environment is configured properly):
|
46
|
+
|
47
|
+
{% highlight bash %}
|
48
|
+
$ rake test
|
49
|
+
$ rake features
|
50
|
+
{% endhighlight %}
|
51
|
+
|
52
|
+
## Common Gotchas
|
53
|
+
|
54
|
+
- If you want to bump the gem version, please put that in a separate
|
55
|
+
commit. This way, the maintainers can control when the gem gets released.
|
56
|
+
- Try to keep your patch(es) based from [the latest commit on
|
57
|
+
mojombo/jekyll](https://github.com/mojombo/jekyll/commits/master). The easier it is to apply your work, the less work
|
58
|
+
the maintainers have to do, which is always a good thing.
|
59
|
+
- Please don’t tag your GitHub issue with labels like “fix” or “feature”.
|
60
|
+
The maintainers actively read the issues and will label it once they come
|
61
|
+
across it.
|
62
|
+
|
63
|
+
<div class="note">
|
64
|
+
<h5>Let us know what could be better!</h5>
|
65
|
+
<p>Both using and hacking on Jekyll should be fun, simple, and easy, so if for some reason you find it’s a pain, please <a href="https://github.com/mojombo/jekyll/issues/new">create an issue</a> on GitHub describing your experience so we can make it better.</p>
|
66
|
+
</div>
|