tigefa 1.0.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.markdown +91 -0
  3. data/Gemfile +2 -0
  4. data/History.markdown +871 -0
  5. data/LICENSE +15 -14
  6. data/README.markdown +59 -0
  7. data/Rakefile +298 -0
  8. data/bin/tigefa +158 -0
  9. data/cucumber.yml +3 -0
  10. data/features/create_sites.feature +141 -0
  11. data/features/data.feature +65 -0
  12. data/features/drafts.feature +25 -0
  13. data/features/embed_filters.feature +60 -0
  14. data/features/include_tag.feature +57 -0
  15. data/features/markdown.feature +67 -0
  16. data/features/pagination.feature +82 -0
  17. data/features/permalinks.feature +85 -0
  18. data/features/post_data.feature +214 -0
  19. data/features/post_excerpts.feature +50 -0
  20. data/features/site_configuration.feature +235 -0
  21. data/features/site_data.feature +107 -0
  22. data/features/step_definitions/tigefa_steps.rb +189 -0
  23. data/features/support/env.rb +75 -0
  24. data/lib/site_template/.gitignore +1 -0
  25. data/lib/site_template/_config.yml +3 -0
  26. data/lib/site_template/_layouts/default.html +44 -0
  27. data/lib/site_template/_layouts/post.html +9 -0
  28. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +24 -0
  29. data/lib/site_template/css/main.css +160 -0
  30. data/lib/site_template/css/syntax.css +60 -0
  31. data/lib/site_template/index.html +13 -0
  32. data/lib/tigefa/cleaner.rb +73 -0
  33. data/lib/tigefa/command.rb +27 -0
  34. data/lib/tigefa/commands/build.rb +70 -0
  35. data/lib/tigefa/commands/doctor.rb +67 -0
  36. data/lib/tigefa/commands/new.rb +67 -0
  37. data/lib/tigefa/commands/serve.rb +65 -0
  38. data/lib/tigefa/configuration.rb +238 -0
  39. data/lib/tigefa/converter.rb +48 -0
  40. data/lib/tigefa/converters/identity.rb +21 -0
  41. data/lib/tigefa/converters/markdown/kramdown_parser.rb +29 -0
  42. data/lib/tigefa/converters/markdown/maruku_parser.rb +56 -0
  43. data/lib/tigefa/converters/markdown/rdiscount_parser.rb +37 -0
  44. data/lib/tigefa/converters/markdown/redcarpet_parser.rb +70 -0
  45. data/lib/tigefa/converters/markdown.rb +43 -0
  46. data/lib/tigefa/converters/textile.rb +50 -0
  47. data/lib/tigefa/convertible.rb +174 -0
  48. data/lib/tigefa/core_ext.rb +90 -0
  49. data/lib/tigefa/deprecator.rb +36 -0
  50. data/lib/tigefa/draft.rb +35 -0
  51. data/lib/tigefa/entry_filter.rb +35 -0
  52. data/lib/tigefa/errors.rb +4 -0
  53. data/lib/tigefa/excerpt.rb +113 -0
  54. data/lib/tigefa/filters.rb +174 -0
  55. data/lib/tigefa/generator.rb +4 -0
  56. data/lib/tigefa/generators/pagination.rb +217 -0
  57. data/lib/tigefa/layout.rb +45 -0
  58. data/lib/tigefa/mime.types +85 -0
  59. data/lib/tigefa/page.rb +160 -0
  60. data/lib/tigefa/plugin.rb +75 -0
  61. data/lib/tigefa/post.rb +312 -0
  62. data/lib/tigefa/related_posts.rb +59 -0
  63. data/lib/tigefa/site.rb +427 -0
  64. data/lib/tigefa/static_file.rb +70 -0
  65. data/lib/tigefa/stevenson.rb +89 -0
  66. data/lib/tigefa/tags/gist.rb +48 -0
  67. data/lib/tigefa/tags/highlight.rb +85 -0
  68. data/lib/tigefa/tags/include.rb +134 -0
  69. data/lib/tigefa/tags/post_url.rb +63 -0
  70. data/lib/tigefa/url.rb +69 -0
  71. data/lib/tigefa.rb +98 -4
  72. data/script/bootstrap +2 -0
  73. data/site/.gitignore +4 -0
  74. data/site/CNAME +1 -0
  75. data/site/README +1 -0
  76. data/site/_config.yml +6 -0
  77. data/site/_includes/analytics.html +32 -0
  78. data/site/_includes/docs_contents.html +16 -0
  79. data/site/_includes/docs_contents_mobile.html +23 -0
  80. data/site/_includes/docs_option.html +11 -0
  81. data/site/_includes/docs_ul.html +20 -0
  82. data/site/_includes/footer.html +15 -0
  83. data/site/_includes/header.html +18 -0
  84. data/site/_includes/news_contents.html +23 -0
  85. data/site/_includes/news_contents_mobile.html +11 -0
  86. data/site/_includes/news_item.html +24 -0
  87. data/site/_includes/primary-nav-items.html +14 -0
  88. data/site/_includes/section_nav.html +22 -0
  89. data/site/_includes/top.html +17 -0
  90. data/site/_layouts/default.html +12 -0
  91. data/site/_layouts/docs.html +23 -0
  92. data/site/_layouts/news.html +19 -0
  93. data/site/_layouts/news_item.html +27 -0
  94. data/site/_posts/2013-05-06-jekyll-1-0-0-released.markdown +23 -0
  95. data/site/_posts/2013-05-08-jekyll-1-0-1-released.markdown +27 -0
  96. data/site/_posts/2013-05-12-jekyll-1-0-2-released.markdown +28 -0
  97. data/site/_posts/2013-06-07-jekyll-1-0-3-released.markdown +25 -0
  98. data/site/_posts/2013-07-14-jekyll-1-1-0-released.markdown +27 -0
  99. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +31 -0
  100. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +20 -0
  101. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +20 -0
  102. data/site/_posts/2013-09-06-jekyll-1-2-0-released.markdown +23 -0
  103. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +19 -0
  104. data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +19 -0
  105. data/site/_posts/2013-11-04-jekyll-1-3-0-released.markdown +43 -0
  106. data/site/_posts/2013-11-26-jekyll-1-3-1-released.markdown +21 -0
  107. data/site/_posts/2013-12-07-jekyll-1-4-0-released.markdown +30 -0
  108. data/site/_posts/2013-12-16-jekyll-1-4-2-released.markdown +18 -0
  109. data/site/_posts/2014-01-13-jekyll-1-4-3-released.markdown +27 -0
  110. data/site/css/gridism.css +110 -0
  111. data/site/css/normalize.css +1 -0
  112. data/site/css/pygments.css +70 -0
  113. data/site/css/style.css +946 -0
  114. data/site/docs/configuration.md +375 -0
  115. data/site/docs/contributing.md +128 -0
  116. data/site/docs/datafiles.md +63 -0
  117. data/site/docs/deployment-methods.md +109 -0
  118. data/site/docs/drafts.md +21 -0
  119. data/site/docs/extras.md +56 -0
  120. data/site/docs/frontmatter.md +180 -0
  121. data/site/docs/github-pages.md +91 -0
  122. data/site/docs/heroku.md +9 -0
  123. data/site/docs/history.md +866 -0
  124. data/site/docs/index.md +52 -0
  125. data/site/docs/installation.md +76 -0
  126. data/site/docs/migrations.md +11 -0
  127. data/site/docs/pages.md +86 -0
  128. data/site/docs/pagination.md +211 -0
  129. data/site/docs/permalinks.md +180 -0
  130. data/site/docs/plugins.md +534 -0
  131. data/site/docs/posts.md +181 -0
  132. data/site/docs/quickstart.md +32 -0
  133. data/site/docs/resources.md +46 -0
  134. data/site/docs/sites.md +29 -0
  135. data/site/docs/structure.md +190 -0
  136. data/site/docs/templates.md +339 -0
  137. data/site/docs/troubleshooting.md +150 -0
  138. data/site/docs/upgrading.md +146 -0
  139. data/site/docs/usage.md +63 -0
  140. data/site/docs/variables.md +322 -0
  141. data/site/favicon.png +0 -0
  142. data/site/feed.xml +36 -0
  143. data/site/freenode.txt +1 -0
  144. data/site/img/article-footer.png +0 -0
  145. data/site/img/footer-arrow.png +0 -0
  146. data/site/img/footer-logo.png +0 -0
  147. data/site/img/logo-2x.png +0 -0
  148. data/site/img/octojekyll.png +0 -0
  149. data/site/img/tube.png +0 -0
  150. data/site/img/tube1x.png +0 -0
  151. data/site/index.html +90 -0
  152. data/site/js/modernizr-2.5.3.min.js +4 -0
  153. data/site/news/index.html +10 -0
  154. data/site/news/releases/index.html +10 -0
  155. data/test/fixtures/broken_front_matter1.erb +5 -0
  156. data/test/fixtures/broken_front_matter2.erb +4 -0
  157. data/test/fixtures/broken_front_matter3.erb +7 -0
  158. data/test/fixtures/exploit_front_matter.erb +4 -0
  159. data/test/fixtures/front_matter.erb +4 -0
  160. data/test/helper.rb +65 -0
  161. data/test/source/+/foo.md +7 -0
  162. data/test/source/.htaccess +8 -0
  163. data/test/source/_config.dev.toml +2 -0
  164. data/test/source/_data/languages.yml +2 -0
  165. data/test/source/_data/members.yaml +7 -0
  166. data/test/source/_data/products.yml +1 -0
  167. data/test/source/_includes/params.html +7 -0
  168. data/test/source/_includes/sig.markdown +3 -0
  169. data/test/source/_includes/tmp +1 -0
  170. data/test/source/_layouts/default.html +27 -0
  171. data/test/source/_layouts/post/simple.html +1 -0
  172. data/test/source/_layouts/simple.html +1 -0
  173. data/test/source/_plugins/dummy.rb +8 -0
  174. data/test/source/_posts/2008-02-02-not-published.textile +8 -0
  175. data/test/source/_posts/2008-02-02-published.textile +8 -0
  176. data/test/source/_posts/2008-10-18-foo-bar.textile +8 -0
  177. data/test/source/_posts/2008-11-21-complex.textile +8 -0
  178. data/test/source/_posts/2008-12-03-permalinked-post.textile +9 -0
  179. data/test/source/_posts/2008-12-13-include.markdown +8 -0
  180. data/test/source/_posts/2009-01-27-array-categories.textile +10 -0
  181. data/test/source/_posts/2009-01-27-categories.textile +7 -0
  182. data/test/source/_posts/2009-01-27-category.textile +7 -0
  183. data/test/source/_posts/2009-01-27-empty-categories.textile +7 -0
  184. data/test/source/_posts/2009-01-27-empty-category.textile +7 -0
  185. data/test/source/_posts/2009-03-12-hash-#1.markdown +6 -0
  186. data/test/source/_posts/2009-05-18-empty-tag.textile +6 -0
  187. data/test/source/_posts/2009-05-18-empty-tags.textile +6 -0
  188. data/test/source/_posts/2009-05-18-tag.textile +6 -0
  189. data/test/source/_posts/2009-05-18-tags.textile +9 -0
  190. data/test/source/_posts/2009-06-22-empty-yaml.textile +3 -0
  191. data/test/source/_posts/2009-06-22-no-yaml.textile +1 -0
  192. data/test/source/_posts/2010-01-08-triple-dash.markdown +5 -0
  193. data/test/source/_posts/2010-01-09-date-override.textile +7 -0
  194. data/test/source/_posts/2010-01-09-time-override.textile +7 -0
  195. data/test/source/_posts/2010-01-09-timezone-override.textile +7 -0
  196. data/test/source/_posts/2010-01-16-override-data.textile +4 -0
  197. data/test/source/_posts/2011-04-12-md-extension.md +7 -0
  198. data/test/source/_posts/2011-04-12-text-extension.text +0 -0
  199. data/test/source/_posts/2013-01-02-post-excerpt.markdown +14 -0
  200. data/test/source/_posts/2013-01-12-nil-layout.textile +6 -0
  201. data/test/source/_posts/2013-01-12-no-layout.textile +5 -0
  202. data/test/source/_posts/2013-03-19-not-a-post.markdown/.gitkeep +0 -0
  203. data/test/source/_posts/2013-04-11-custom-excerpt.markdown +10 -0
  204. data/test/source/_posts/2013-05-10-number-category.textile +7 -0
  205. data/test/source/_posts/2013-07-22-post-excerpt-with-layout.markdown +23 -0
  206. data/test/source/_posts/2013-08-01-mkdn-extension.mkdn +0 -0
  207. data/test/source/_posts/2014-01-06-permalink-traversal.md +5 -0
  208. data/test/source/_posts/es/2008-11-21-nested.textile +8 -0
  209. data/test/source/about.html +6 -0
  210. data/test/source/category/_posts/2008-9-23-categories.textile +6 -0
  211. data/test/source/contacts/bar.html +5 -0
  212. data/test/source/contacts/index.html +5 -0
  213. data/test/source/contacts.html +5 -0
  214. data/test/source/css/screen.css +76 -0
  215. data/test/source/deal.with.dots.html +7 -0
  216. data/test/source/exploit.md +5 -0
  217. data/test/source/foo/_posts/bar/2008-12-12-topical-post.textile +8 -0
  218. data/test/source/index.html +22 -0
  219. data/test/source/products.yml +4 -0
  220. data/test/source/sitemap.xml +32 -0
  221. data/test/source/symlink-test/_data +1 -0
  222. data/test/source/symlink-test/symlinked-dir +1 -0
  223. data/test/source/symlink-test/symlinked-file +1 -0
  224. data/test/source/win/_posts/2009-05-24-yaml-linebreak.markdown +7 -0
  225. data/test/source/z_category/_posts/2008-9-23-categories.textile +6 -0
  226. data/test/suite.rb +11 -0
  227. data/test/test_command.rb +39 -0
  228. data/test/test_configuration.rb +181 -0
  229. data/test/test_convertible.rb +51 -0
  230. data/test/test_core_ext.rb +88 -0
  231. data/test/test_entry_filter.rb +74 -0
  232. data/test/test_excerpt.rb +78 -0
  233. data/test/test_filters.rb +113 -0
  234. data/test/test_generated_site.rb +83 -0
  235. data/test/test_kramdown.rb +62 -0
  236. data/test/test_new_command.rb +104 -0
  237. data/test/test_page.rb +212 -0
  238. data/test/test_pager.rb +116 -0
  239. data/test/test_post.rb +592 -0
  240. data/test/test_rdiscount.rb +22 -0
  241. data/test/test_redcarpet.rb +61 -0
  242. data/test/test_redcloth.rb +86 -0
  243. data/test/test_related_posts.rb +47 -0
  244. data/test/test_site.rb +333 -0
  245. data/test/test_tags.rb +490 -0
  246. data/test/test_url.rb +28 -0
  247. data/tigefa.gemspec +306 -0
  248. metadata +575 -45
  249. data/README.md +0 -4
@@ -0,0 +1,375 @@
1
+ ---
2
+ layout: docs
3
+ title: Configuration
4
+ prev_section: structure
5
+ next_section: frontmatter
6
+ permalink: /docs/configuration/
7
+ ---
8
+
9
+ Jekyll allows you to concoct your sites in any way you can dream up, and it’s
10
+ thanks to the powerful and flexible configuration options that this is possible.
11
+ These options can either be specified in a `_config.yml` file placed in your
12
+ site’s root directory, or can be specified as flags for the `jekyll` executable
13
+ in the terminal.
14
+
15
+ ## Configuration Settings
16
+
17
+ ### Global Configuration
18
+
19
+ The table below lists the available settings for Jekyll, and the various <code
20
+ class="option">options</code> (specified in the configuration file) and <code
21
+ class="flag">flags</code> (specified on the command-line) that control them.
22
+
23
+ <div class="mobile-side-scroller">
24
+ <table>
25
+ <thead>
26
+ <tr>
27
+ <th>Setting</th>
28
+ <th>
29
+ <span class="option">Options</span> and <span class="flag">Flags</span>
30
+ </th>
31
+ </tr>
32
+ </thead>
33
+ <tbody>
34
+ <tr class='setting'>
35
+ <td>
36
+ <p class='name'><strong>Site Source</strong></p>
37
+ <p class='description'>Change the directory where Jekyll will read files</p>
38
+ </td>
39
+ <td class="align-center">
40
+ <p><code class="option">source: DIR</code></p>
41
+ <p><code class="flag">-s, --source DIR</code></p>
42
+ </td>
43
+ </tr>
44
+ <tr class='setting'>
45
+ <td>
46
+ <p class='name'><strong>Site Destination</strong></p>
47
+ <p class='description'>Change the directory where Jekyll will write files</p>
48
+ </td>
49
+ <td class="align-center">
50
+ <p><code class="option">destination: DIR</code></p>
51
+ <p><code class="flag">-d, --destination DIR</code></p>
52
+ </td>
53
+ </tr>
54
+ <tr class='setting'>
55
+ <td>
56
+ <p class='name'><strong>Safe</strong></p>
57
+ <p class='description'>Disable <a href="../plugins/">custom plugins</a>.</p>
58
+ </td>
59
+ <td class="align-center">
60
+ <p><code class="option">safe: BOOL</code></p>
61
+ <p><code class="flag">--safe</code></p>
62
+ </td>
63
+ </tr>
64
+ <tr class='setting'>
65
+ <td>
66
+ <p class='name'><strong>Exclude</strong></p>
67
+ <p class="description">Exclude directories and/or files from the conversion</p>
68
+ </td>
69
+ <td class='align-center'>
70
+ <p><code class="option">exclude: [DIR, FILE, ...]</code></p>
71
+ </td>
72
+ </tr>
73
+ <tr class='setting'>
74
+ <td>
75
+ <p class='name'><strong>Include</strong></p>
76
+ <p class="description">
77
+ Force inclusion of directories and/or files in the conversion.
78
+ <code>.htaccess</code> is a good example since dotfiles are excluded
79
+ by default.
80
+ </p>
81
+ </td>
82
+ <td class='align-center'>
83
+ <p><code class="option">include: [DIR, FILE, ...]</code></p>
84
+ </td>
85
+ </tr>
86
+ <tr class='setting'>
87
+ <td>
88
+ <p class='name'><strong>Time Zone</strong></p>
89
+ <p class="description">
90
+ Set the time zone for site generation. This sets the <code>TZ</code>
91
+ environment variable, which Ruby uses to handle time and date
92
+ creation and manipulation. Any entry from the
93
+ <a href="http://en.wikipedia.org/wiki/Tz_database">IANA Time Zone
94
+ Database</a> is valid, e.g. <code>America/New_York</code>. The default
95
+ is the local time zone, as set by your operating system.
96
+ </p>
97
+ </td>
98
+ <td class='align-center'>
99
+ <p><code class="option">timezone: TIMEZONE</code></p>
100
+ </td>
101
+ </tr>
102
+ <tr class='setting'>
103
+ <td>
104
+ <p class='name'><strong>Encoding</strong></p>
105
+ <p class="description">
106
+ Set the encoding of files by name. Only available for Ruby
107
+ 1.9 or later).
108
+ The default value is nil, which use Ruby default,
109
+ <code>ASCII-8BIT</code>.
110
+ Available encoding for the ruby in use, can be shown by
111
+ command <code>ruby -e 'puts Encoding::list.join("\n")'</code>
112
+ </p>
113
+ </td>
114
+ <td class='align-center'>
115
+ <p><code class="option">encoding: ENCODING</code></p>
116
+ </td>
117
+ </tr>
118
+ </tbody>
119
+ </table>
120
+ </div>
121
+
122
+ ### Build Command Options
123
+
124
+ <div class="mobile-side-scroller">
125
+ <table>
126
+ <thead>
127
+ <tr>
128
+ <th>Setting</th>
129
+ <th><span class="option">Options</span> and <span class="flag">Flags</span></th>
130
+ </tr>
131
+ </thead>
132
+ <tbody>
133
+ <tr class='setting'>
134
+ <td>
135
+ <p class='name'><strong>Regeneration</strong></p>
136
+ <p class='description'>Enable auto-regeneration of the site when files are modified.</p>
137
+ </td>
138
+ <td class="align-center">
139
+ <p><code class="flag">-w, --watch</code></p>
140
+ </td>
141
+ </tr>
142
+ <tr class='setting'>
143
+ <td>
144
+ <p class='name'><strong>Configuration</strong></p>
145
+ <p class="description">Specify config files instead of using <code>_config.yml</code> automatically. Settings in later files override settings in earlier files.</p>
146
+ </td>
147
+ <td class='align-center'>
148
+ <p><code class="flag">--config FILE1[,FILE2,...]</code></p>
149
+ </td>
150
+ </tr>
151
+ <tr class='setting'>
152
+ <td>
153
+ <p class='name'><strong>Drafts</strong></p>
154
+ <p class="description">Process and render draft posts.</p>
155
+ </td>
156
+ <td class='align-center'>
157
+ <p><code class="flag">--drafts</code></p>
158
+ </td>
159
+ </tr>
160
+ <tr class='setting'>
161
+ <td>
162
+ <p class='name'><strong>Future</strong></p>
163
+ <p class="description">Publish posts with a future date.</p>
164
+ </td>
165
+ <td class='align-center'>
166
+ <p><code class="option">future: BOOL</code></p>
167
+ <p><code class="flag">--future</code></p>
168
+ </td>
169
+ </tr>
170
+ <tr class='setting'>
171
+ <td>
172
+ <p class='name'><strong>LSI</strong></p>
173
+ <p class="description">Produce an index for related posts.</p>
174
+ </td>
175
+ <td class='align-center'>
176
+ <p><code class="option">lsi: BOOL</code></p>
177
+ <p><code class="flag">--lsi</code></p>
178
+ </td>
179
+ </tr>
180
+ <tr class='setting'>
181
+ <td>
182
+ <p class='name'><strong>Limit Posts</strong></p>
183
+ <p class="description">Limit the number of posts to parse and publish.</p>
184
+ </td>
185
+ <td class='align-center'>
186
+ <p><code class="option">limit_posts: NUM</code></p>
187
+ <p><code class="flag">--limit_posts NUM</code></p>
188
+ </td>
189
+ </tr>
190
+ </tbody>
191
+ </table>
192
+ </div>
193
+
194
+ ### Serve Command Options
195
+
196
+ In addition to the options below, the `serve` sub-command can accept any of the options
197
+ for the `build` sub-command, which are then applied to the site build which occurs right
198
+ before your site is served.
199
+
200
+ <div class="mobile-side-scroller">
201
+ <table>
202
+ <thead>
203
+ <tr>
204
+ <th>Setting</th>
205
+ <th><span class="option">Options</span> and <span class="flag">Flags</span></th>
206
+ </tr>
207
+ </thead>
208
+ <tbody>
209
+ <tr class='setting'>
210
+ <td>
211
+ <p class='name'><strong>Local Server Port</strong></p>
212
+ <p class='description'>Listen on the given port.</p>
213
+ </td>
214
+ <td class="align-center">
215
+ <p><code class="option">port: PORT</code></p>
216
+ <p><code class="flag">--port PORT</code></p>
217
+ </td>
218
+ </tr>
219
+ <tr class='setting'>
220
+ <td>
221
+ <p class='name'><strong>Local Server Hostname</strong></p>
222
+ <p class='description'>Listen at the given hostname.</p>
223
+ </td>
224
+ <td class="align-center">
225
+ <p><code class="option">host: HOSTNAME</code></p>
226
+ <p><code class="flag">--host HOSTNAME</code></p>
227
+ </td>
228
+ </tr>
229
+ <tr class='setting'>
230
+ <td>
231
+ <p class='name'><strong>Base URL</strong></p>
232
+ <p class='description'>Serve the website from the given base URL</p>
233
+ </td>
234
+ <td class="align-center">
235
+ <p><code class="option">baseurl: URL</code></p>
236
+ <p><code class="flag">--baseurl URL</code></p>
237
+ </td>
238
+ </tr>
239
+ <tr class='setting'>
240
+ <td>
241
+ <p class='name'><strong>Detach</strong></p>
242
+ <p class='description'>Detach the server from the terminal</p>
243
+ </td>
244
+ <td class="align-center">
245
+ <p><code class="option">detach: BOOL</code></p>
246
+ <p><code class="flag">-B, --detach</code></p>
247
+ </td>
248
+ </tr>
249
+ </tbody>
250
+ </table>
251
+ </div>
252
+
253
+ <div class="note warning">
254
+ <h5>Do not use tabs in configuration files</h5>
255
+ <p>
256
+ This will either lead to parsing errors, or Jekyll will revert to the
257
+ default settings. Use spaces instead.
258
+ </p>
259
+ </div>
260
+
261
+ ## Default Configuration
262
+
263
+ Jekyll runs with the following configuration options by default. Unless
264
+ alternative settings for these options are explicitly specified in the
265
+ configuration file or on the command-line, Jekyll will run using these options.
266
+
267
+ <div class="note warning">
268
+ <h5>There are two unsupported kramdown options</h5>
269
+ <p>
270
+ Please note that both <code>remove_block_html_tags</code> and
271
+ <code>remove_span_html_tags</code> are currently unsupported in Jekyll due to the
272
+ fact that they are not included within the kramdown HTML converter.
273
+ </p>
274
+ </div>
275
+
276
+ {% highlight yaml %}
277
+ source: .
278
+ destination: ./_site
279
+ plugins: ./_plugins
280
+ layouts: ./_layouts
281
+ include: ['.htaccess']
282
+ exclude: []
283
+ keep_files: ['.git','.svn']
284
+ gems: []
285
+ timezone: nil
286
+ encoding: nil
287
+
288
+ future: true
289
+ show_drafts: nil
290
+ limit_posts: 0
291
+ pygments: true
292
+
293
+ relative_permalinks: true
294
+
295
+ permalink: date
296
+ paginate_path: 'page:num'
297
+
298
+ markdown: maruku
299
+ markdown_ext: markdown,mkd,mkdn,md
300
+ textile_ext: textile
301
+
302
+ excerpt_separator: "\n\n"
303
+
304
+ safe: false
305
+ watch: false # deprecated
306
+ server: false # deprecated
307
+ host: 0.0.0.0
308
+ port: 4000
309
+ baseurl: /
310
+ url: http://localhost:4000
311
+ lsi: false
312
+
313
+ maruku:
314
+ use_tex: false
315
+ use_divs: false
316
+ png_engine: blahtex
317
+ png_dir: images/latex
318
+ png_url: /images/latex
319
+ fenced_code_blocks: true
320
+
321
+ rdiscount:
322
+ extensions: []
323
+
324
+ redcarpet:
325
+ extensions: []
326
+
327
+ kramdown:
328
+ auto_ids: true
329
+ footnote_nr: 1
330
+ entity_output: as_char
331
+ toc_levels: 1..6
332
+ smart_quotes: lsquo,rsquo,ldquo,rdquo
333
+ use_coderay: false
334
+
335
+ coderay:
336
+ coderay_wrap: div
337
+ coderay_line_numbers: inline
338
+ coderay_line_numbers_start: 1
339
+ coderay_tab_width: 4
340
+ coderay_bold_every: 10
341
+ coderay_css: style
342
+
343
+ redcloth:
344
+ hard_breaks: true
345
+ {% endhighlight %}
346
+
347
+
348
+ ## Markdown Options
349
+
350
+ The various Markdown renderers supported by Jekyll sometimes have extra options available.
351
+
352
+ ### Redcarpet
353
+
354
+ Redcarpet can be configured by providing an `extensions` sub-setting, whose value should be an array of strings. Each string should be the name of one of the `Redcarpet::Markdown` class's extensions; if present in the array, it will set the corresponding extension to `true`.
355
+
356
+ Jekyll handles two special Redcarpet extensions:
357
+
358
+ - `no_fenced_code_blocks` --- By default, Jekyll sets the `fenced_code_blocks` extension (for delimiting code blocks with triple tildes or triple backticks) to `true`, probably because GitHub's eager adoption of them is starting to make them inescapable. Redcarpet's normal `fenced_code_blocks` extension is inert when used with Jekyll; instead, you can use this inverted version of the extension for disabling fenced code.
359
+
360
+ Note that you can also specify a language for highlighting after the first delimiter:
361
+
362
+ ```ruby
363
+ # ...ruby code
364
+ ```
365
+
366
+ With both fenced code blocks and pygments enabled, this will statically highlight the code; without pygments, it will add a `class="LANGUAGE"` attribute to the `<code>` element, which can be used as a hint by various JavaScript code highlighting libraries.
367
+ - `smart` --- This pseudo-extension turns on SmartyPants, which converts straight quotes to curly quotes and runs of hyphens to em (`---`) and en (`--`) dashes.
368
+
369
+ All other extensions retain their usual names from Redcarpet, and no renderer options aside from `smart` can be specified in Jekyll. [A list of available extensions can be found in the Redcarpet README file.][redcarpet_extensions] Make sure you're looking at the README for the right version of Redcarpet: Jekyll currently uses v2.2.x, and extensions like `footnotes` and `highlight` weren't added until after version 3.0.0. The most commonly used extensions are:
370
+
371
+ - `tables`
372
+ - `no_intra_emphasis`
373
+ - `autolink`
374
+
375
+ [redcarpet_extensions]: https://github.com/vmg/redcarpet/blob/v2.2.2/README.markdown#and-its-like-really-simple-to-use
@@ -0,0 +1,128 @@
1
+ ---
2
+ layout: docs
3
+ title: Contributing
4
+ prev_section: upgrading
5
+ next_section: history
6
+ permalink: /docs/contributing/
7
+ ---
8
+
9
+ So you've got an awesome idea to throw into Jekyll. Great! Please keep the
10
+ following in mind:
11
+
12
+ * If you're creating a small fix or patch to an existing feature, just a simple
13
+ test will do. Please stay in the confines of the current test suite and use
14
+ [Shoulda](http://github.com/thoughtbot/shoulda/tree/master) and
15
+ [RR](http://github.com/btakita/rr/tree/master).
16
+ * If it's a brand new feature, make sure to create a new
17
+ [Cucumber](https://github.com/cucumber/cucumber/) feature and reuse steps
18
+ where appropriate. Also, whipping up some documentation in your fork's `site`
19
+ would be appreciated, and once merged it will be transferred over to the main
20
+ `site`, jekyllrb.com.
21
+ * If your contribution changes any Jekyll behavior, make sure to update the
22
+ documentation. It lives in `site/docs`. If the docs are missing information,
23
+ please feel free to add it in. Great docs make a great project!
24
+ * Please follow the [GitHub Ruby Styleguide](https://github.com/styleguide/ruby)
25
+ when modifying Ruby code.
26
+ * Please do your best to submit **small pull requests**. The easier the proposed
27
+ change is to review, the more likely it will be merged.
28
+ * When submitting a pull request, please make judicious use of the pull request
29
+ body. A description of what changes were made, the motivations behind the
30
+ changes and [any tasks completed or left to complete](http://git.io/gfm-tasks)
31
+ will also speed up review time.
32
+
33
+ <div class="note warning">
34
+ <h5>Contributions will not be accepted without tests</h5>
35
+ <p>
36
+ If you’re creating a small fix or patch to an existing feature, just
37
+ a simple test will do.
38
+ </p>
39
+ </div>
40
+
41
+ Test Dependencies
42
+ -----------------
43
+
44
+ To run the test suite and build the gem you'll need to install Jekyll's
45
+ dependencies. Jekyll uses Bundler, so a quick run of the `bundle` command and
46
+ you're all set!
47
+
48
+ {% highlight bash %}
49
+ $ bundle
50
+ {% endhighlight %}
51
+
52
+ Before you start, run the tests and make sure that they pass (to confirm your
53
+ environment is configured properly):
54
+
55
+ {% highlight bash %}
56
+ $ bundle exec rake test
57
+ $ bundle exec rake features
58
+ {% endhighlight %}
59
+
60
+ Workflow
61
+ --------
62
+
63
+ Here's the most direct way to get your work merged into the project:
64
+
65
+ * Fork the project.
66
+ * Clone down your fork:
67
+
68
+ {% highlight bash %}
69
+ git clone git://github.com/<username>/jekyll.git
70
+ {% endhighlight %}
71
+
72
+ * Create a topic branch to contain your change:
73
+
74
+ {% highlight bash %}
75
+ git checkout -b my_awesome_feature
76
+ {% endhighlight %}
77
+
78
+
79
+ * Hack away, add tests. Not necessarily in that order.
80
+ * Make sure everything still passes by running `rake`.
81
+ * If necessary, rebase your commits into logical chunks, without errors.
82
+ * Push the branch up:
83
+
84
+ {% highlight bash %}
85
+ git push origin my_awesome_feature
86
+ {% endhighlight %}
87
+
88
+ * Create a pull request against mojombo/jekyll:master and describe what your
89
+ change does and the why you think it should be merged.
90
+
91
+ Updating Documentation
92
+ ----------------------
93
+
94
+ We want the Jekyll documentation to be the best it can be. We've
95
+ open-sourced our docs and we welcome any pull requests if you find it
96
+ lacking.
97
+
98
+ You can find the documentation for jekyllrb.com in the
99
+ [site]({{ site.repository }}/tree/master/site) directory of
100
+ Jekyll's repo on GitHub.com.
101
+
102
+ All documentation pull requests should be directed at `master`. Pull
103
+ requests directed at another branch will not be accepted.
104
+
105
+ The [Jekyll wiki]({{ site.repository }}/wiki) on GitHub
106
+ can be freely updated without a pull request as all
107
+ GitHub users have access.
108
+
109
+ Gotchas
110
+ -------
111
+
112
+ * If you want to bump the gem version, please put that in a separate commit.
113
+ This way, the maintainers can control when the gem gets released.
114
+ * Try to keep your patch(es) based from the latest commit on mojombo/jekyll.
115
+ The easier it is to apply your work, the less work the maintainers have to do,
116
+ which is always a good thing.
117
+ * Please don't tag your GitHub issue with \[fix\], \[feature\], etc. The maintainers
118
+ actively read the issues and will label it once they come across it.
119
+
120
+ <div class="note">
121
+ <h5>Let us know what could be better!</h5>
122
+ <p>
123
+ Both using and hacking on Jekyll should be fun, simple, and easy, so if for
124
+ some reason you find it’s a pain, please <a
125
+ href="{{ site.repository }}/issues/new">create an issue</a> on
126
+ GitHub describing your experience so we can make it better.
127
+ </p>
128
+ </div>
@@ -0,0 +1,63 @@
1
+ ---
2
+ layout: docs
3
+ title: Data Files
4
+ prev_section: variables
5
+ next_section: migrations
6
+ permalink: /docs/datafiles/
7
+ ---
8
+
9
+ In addition to the [built-in variables](../variables/) available from Jekyll,
10
+ you can specify your own custom data that can be accessed via the [Liquid
11
+ templating system](http://wiki.github.com/shopify/liquid/liquid-for-designers).
12
+
13
+ Jekyll supports loading data from [YAML](http://yaml.org/) files located in the
14
+ `_data` directory.
15
+
16
+ This powerful features allows you to avoid repetition in your templates and to
17
+ set site specific options without changing `_config.yml`.
18
+
19
+ Plugins/themes can also leverage Data Files to set configuration variables.
20
+
21
+ ## The Data Folder
22
+
23
+ As explained on the [directory structure](../structure/) page, the `_data`
24
+ folder is where you can store additional data for Jekyll to use when generating
25
+ your site. These files must be YAML files (using either the `.yml` or `.yaml`
26
+ extension) and they will be accessible via `site.data`.
27
+
28
+ ## Example: List of members
29
+
30
+ Here is a basic example of using Data Files to avoid copy-pasting large chunks of
31
+ code in your Jekyll templates:
32
+
33
+ In `_data/members.yml`:
34
+
35
+ {% highlight yaml %}
36
+ - name: Tom Preston-Werner
37
+ github: mojombo
38
+
39
+ - name: Parker Moore
40
+ github: parkr
41
+
42
+ - name: Liu Fengyun
43
+ github: liufengyun
44
+ {% endhighlight %}
45
+
46
+ This data can be accessed via `site.data.members` (notice that the filename
47
+ determines the variable name).
48
+
49
+ You can now render the list of members in a template:
50
+
51
+ {% highlight html %}
52
+ {% raw %}
53
+ <ul>
54
+ {% for member in site.data.members %}
55
+ <li>
56
+ <a href="https://github.com/{{ member.github }}">
57
+ {{ member.name }}
58
+ </a>
59
+ </li>
60
+ {% endfor %}
61
+ </ul>
62
+ {% endraw %}
63
+ {% endhighlight %}
@@ -0,0 +1,109 @@
1
+ ---
2
+ layout: docs
3
+ title: Deployment methods
4
+ prev_section: github-pages
5
+ next_section: troubleshooting
6
+ permalink: /docs/deployment-methods/
7
+ ---
8
+
9
+ 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.
10
+
11
+ ## Web hosting providers (FTP)
12
+
13
+ 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.
14
+
15
+ ### FTP using Glynn
16
+
17
+ There is a project called [Glynn](https://github.com/dmathieu/glynn), which lets you easily generate your Jekyll powered website’s static files and
18
+ send them to your host through FTP.
19
+
20
+ ## Self-managed web server
21
+
22
+ 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.
23
+
24
+ ## Automated methods
25
+
26
+ 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.
27
+
28
+ ### Git post-update hook
29
+
30
+ 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
31
+ deployment process by setting up a post-update hook in your Git
32
+ repository, [like
33
+ this](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/03/26/deploying-a-jekyll-generated-site/).
34
+
35
+ ### Git post-receive hook
36
+
37
+ 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:
38
+
39
+ {% highlight bash %}
40
+ laptop$ ssh deployer@example.com
41
+ server$ mkdir myrepo.git
42
+ server$ cd myrepo.git
43
+ server$ git --bare init
44
+ server$ cp hooks/post-receive.sample hooks/post-receive
45
+ server$ mkdir /var/www/myrepo
46
+ {% endhighlight %}
47
+
48
+ Next, add the following lines to hooks/post-receive and be sure Jekyll is
49
+ installed on the server:
50
+
51
+ {% highlight bash %}
52
+ GIT_REPO=$HOME/myrepo.git
53
+ TMP_GIT_CLONE=$HOME/tmp/myrepo
54
+ PUBLIC_WWW=/var/www/myrepo
55
+
56
+ git clone $GIT_REPO $TMP_GIT_CLONE
57
+ jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
58
+ rm -Rf $TMP_GIT_CLONE
59
+ exit
60
+ {% endhighlight %}
61
+
62
+ Finally, run the following command on any users laptop that needs to be able to
63
+ deploy using this hook:
64
+
65
+ {% highlight bash %}
66
+ laptops$ git remote add deploy deployer@example.com:~/myrepo.git
67
+ {% endhighlight %}
68
+
69
+ Deploying is now as easy as telling nginx or Apache to look at
70
+ `/var/www/myrepo` and running the following:
71
+
72
+ {% highlight bash %}
73
+ laptops$ git push deploy master
74
+ {% endhighlight %}
75
+
76
+ ### Rake
77
+
78
+ Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimweirich/rake), [HighLine](https://github.com/JEG2/highline), and
79
+ [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/cdfbc4ec5321ff8d18c3ce936e9c749dbbc4f190/Rakefile).
80
+
81
+ ### rsync
82
+
83
+ 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
84
+ this script from within Textmate.
85
+
86
+
87
+ ## Rack-Jekyll
88
+
89
+ [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).
90
+
91
+ 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.
92
+
93
+ ## Jekyll-Admin for Rails
94
+
95
+ 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.
96
+
97
+ ## Amazon S3
98
+
99
+ If you want to host your site in Amazon S3, you can do so with
100
+ [s3_website](https://github.com/laurilehmijoki/s3_website) application. It will
101
+ push your site to Amazon S3 where it can be served like any web server,
102
+ dynamically scaling to almost unlimited traffic. This approach has the
103
+ benefit of being about the cheapest hosting option available for
104
+ low-volume blogs as you only pay for what you use.
105
+
106
+ <div class="note">
107
+ <h5>ProTip™: Use GitHub Pages for zero-hassle Jekyll hosting</h5>
108
+ <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>
109
+ </div>