monad 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.markdown +91 -0
  3. data/Gemfile +1 -1
  4. data/History.markdown +772 -0
  5. data/{README.md → README.markdown} +5 -2
  6. data/Rakefile +163 -1
  7. data/bin/monad +86 -30
  8. data/features/create_sites.feature +54 -25
  9. data/features/data.feature +65 -0
  10. data/features/data_sources.feature +10 -10
  11. data/features/drafts.feature +5 -5
  12. data/features/embed_filters.feature +10 -10
  13. data/features/include_tag.feature +48 -0
  14. data/features/markdown.feature +5 -5
  15. data/features/pagination.feature +38 -10
  16. data/features/permalinks.feature +31 -11
  17. data/features/post_data.feature +41 -41
  18. data/features/post_excerpts.feature +50 -0
  19. data/features/site_configuration.feature +47 -26
  20. data/features/site_data.feature +30 -24
  21. data/features/step_definitions/{monad_steps.rb → jekyll_steps.rb} +66 -52
  22. data/features/support/env.rb +27 -8
  23. data/lib/jekyll.rb +99 -0
  24. data/lib/jekyll/cleaner.rb +73 -0
  25. data/lib/{monad → jekyll}/command.rb +6 -6
  26. data/lib/{monad → jekyll}/commands/build.rb +9 -9
  27. data/lib/jekyll/commands/doctor.rb +67 -0
  28. data/lib/jekyll/commands/new.rb +67 -0
  29. data/lib/jekyll/commands/serve.rb +65 -0
  30. data/lib/{monad → jekyll}/configuration.rb +60 -18
  31. data/lib/{monad → jekyll}/converter.rb +1 -1
  32. data/lib/{monad → jekyll}/converters/identity.rb +1 -1
  33. data/lib/{monad → jekyll}/converters/markdown.rb +2 -2
  34. data/lib/jekyll/converters/markdown/kramdown_parser.rb +29 -0
  35. data/lib/{monad → jekyll}/converters/markdown/maruku_parser.rb +12 -8
  36. data/lib/{monad → jekyll}/converters/markdown/rdiscount_parser.rb +4 -2
  37. data/lib/{monad → jekyll}/converters/markdown/redcarpet_parser.rb +1 -1
  38. data/lib/{monad → jekyll}/converters/textile.rb +1 -1
  39. data/lib/{monad → jekyll}/convertible.rb +39 -17
  40. data/lib/{monad → jekyll}/core_ext.rb +22 -4
  41. data/lib/jekyll/deprecator.rb +36 -0
  42. data/lib/{monad → jekyll}/draft.rb +1 -1
  43. data/lib/{monad → jekyll}/drivers/json_driver.rb +1 -1
  44. data/lib/{monad → jekyll}/drivers/yaml_driver.rb +1 -1
  45. data/lib/{monad → jekyll}/errors.rb +1 -1
  46. data/lib/jekyll/excerpt.rb +113 -0
  47. data/lib/{monad → jekyll}/filters.rb +16 -6
  48. data/lib/{monad → jekyll}/generator.rb +1 -1
  49. data/lib/jekyll/generators/pagination.rb +214 -0
  50. data/lib/{monad → jekyll}/layout.rb +4 -1
  51. data/lib/{monad → jekyll}/mime.types +0 -0
  52. data/lib/{monad → jekyll}/page.rb +36 -39
  53. data/lib/{monad → jekyll}/plugin.rb +1 -1
  54. data/lib/{monad → jekyll}/post.rb +58 -123
  55. data/lib/jekyll/related_posts.rb +59 -0
  56. data/lib/{monad → jekyll}/site.rb +120 -123
  57. data/lib/{monad → jekyll}/static_file.rb +1 -1
  58. data/lib/jekyll/stevenson.rb +89 -0
  59. data/lib/jekyll/tags/gist.rb +48 -0
  60. data/lib/{monad → jekyll}/tags/highlight.rb +3 -3
  61. data/lib/jekyll/tags/include.rb +135 -0
  62. data/lib/{monad → jekyll}/tags/post_url.rb +8 -6
  63. data/lib/jekyll/url.rb +67 -0
  64. data/lib/monad.rb +36 -27
  65. data/lib/site_template/_config.yml +2 -1
  66. data/lib/site_template/_layouts/default.html +21 -23
  67. data/lib/site_template/_layouts/post.html +1 -1
  68. data/lib/site_template/_posts/{0000-00-00-welcome-to-monad.markdown.erb → 0000-00-00-welcome-to-jekyll.markdown.erb} +6 -6
  69. data/lib/site_template/css/main.css +22 -27
  70. data/lib/site_template/index.html +2 -2
  71. data/monad.gemspec +153 -52
  72. data/site/.gitignore +4 -0
  73. data/site/CNAME +1 -0
  74. data/site/README +1 -0
  75. data/site/_config.yml +6 -0
  76. data/site/_includes/analytics.html +32 -0
  77. data/site/_includes/docs_contents.html +16 -0
  78. data/site/_includes/docs_contents_mobile.html +23 -0
  79. data/site/_includes/docs_option.html +11 -0
  80. data/site/_includes/docs_ul.html +20 -0
  81. data/site/_includes/footer.html +15 -0
  82. data/site/_includes/header.html +18 -0
  83. data/site/_includes/news_contents.html +23 -0
  84. data/site/_includes/news_contents_mobile.html +11 -0
  85. data/site/_includes/news_item.html +24 -0
  86. data/site/_includes/primary-nav-items.html +14 -0
  87. data/site/_includes/section_nav.html +22 -0
  88. data/site/_includes/top.html +17 -0
  89. data/site/_layouts/default.html +12 -0
  90. data/site/_layouts/docs.html +23 -0
  91. data/site/_layouts/news.html +19 -0
  92. data/site/_layouts/news_item.html +27 -0
  93. data/site/_posts/2013-05-06-jekyll-1-0-0-released.markdown +23 -0
  94. data/site/_posts/2013-05-08-jekyll-1-0-1-released.markdown +27 -0
  95. data/site/_posts/2013-05-12-jekyll-1-0-2-released.markdown +28 -0
  96. data/site/_posts/2013-06-07-jekyll-1-0-3-released.markdown +25 -0
  97. data/site/_posts/2013-07-14-jekyll-1-1-0-released.markdown +27 -0
  98. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +31 -0
  99. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +20 -0
  100. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +20 -0
  101. data/site/_posts/2013-09-06-jekyll-1-2-0-released.markdown +23 -0
  102. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +19 -0
  103. data/site/css/gridism.css +110 -0
  104. data/site/css/normalize.css +1 -0
  105. data/site/css/pygments.css +70 -0
  106. data/site/css/style.css +946 -0
  107. data/site/docs/configuration.md +373 -0
  108. data/site/docs/contributing.md +128 -0
  109. data/site/docs/datafiles.md +63 -0
  110. data/site/docs/deployment-methods.md +109 -0
  111. data/site/docs/drafts.md +20 -0
  112. data/site/docs/extras.md +56 -0
  113. data/site/docs/frontmatter.md +180 -0
  114. data/site/docs/github-pages.md +91 -0
  115. data/site/docs/heroku.md +9 -0
  116. data/site/docs/history.md +722 -0
  117. data/site/docs/index.md +52 -0
  118. data/site/docs/installation.md +76 -0
  119. data/site/docs/migrations.md +257 -0
  120. data/site/docs/pages.md +86 -0
  121. data/site/docs/pagination.md +211 -0
  122. data/site/docs/permalinks.md +180 -0
  123. data/site/docs/plugins.md +508 -0
  124. data/site/docs/posts.md +181 -0
  125. data/site/docs/quickstart.md +32 -0
  126. data/site/docs/resources.md +46 -0
  127. data/site/docs/sites.md +29 -0
  128. data/site/docs/structure.md +190 -0
  129. data/site/docs/templates.md +319 -0
  130. data/site/docs/troubleshooting.md +150 -0
  131. data/site/docs/upgrading.md +146 -0
  132. data/site/docs/usage.md +63 -0
  133. data/site/docs/variables.md +322 -0
  134. data/site/favicon.png +0 -0
  135. data/site/feed.xml +36 -0
  136. data/site/freenode.txt +1 -0
  137. data/site/img/article-footer.png +0 -0
  138. data/site/img/footer-arrow.png +0 -0
  139. data/site/img/footer-logo.png +0 -0
  140. data/site/img/logo-2x.png +0 -0
  141. data/site/img/octojekyll.png +0 -0
  142. data/site/img/tube.png +0 -0
  143. data/site/img/tube1x.png +0 -0
  144. data/site/index.html +90 -0
  145. data/site/js/modernizr-2.5.3.min.js +4 -0
  146. data/site/news/index.html +10 -0
  147. data/site/news/releases/index.html +10 -0
  148. data/test/helper.rb +6 -3
  149. data/test/source/+/foo.md +7 -0
  150. data/test/source/_data/languages.yml +2 -0
  151. data/test/source/_data/members.yaml +7 -0
  152. data/test/source/_data/products.yml +4 -0
  153. data/test/source/_includes/params.html +7 -0
  154. data/test/source/_layouts/default.html +1 -1
  155. data/test/source/_layouts/post/simple.html +1 -0
  156. data/test/source/_plugins/dummy.rb +1 -1
  157. data/test/source/_posts/2013-01-02-post-excerpt.markdown +1 -1
  158. data/test/source/_posts/2013-07-22-post-excerpt-with-layout.markdown +23 -0
  159. data/test/source/_posts/2013-08-01-mkdn-extension.mkdn +0 -0
  160. data/test/source/deal.with.dots.html +1 -1
  161. data/test/source/products.yml +4 -0
  162. data/test/test_configuration.rb +46 -11
  163. data/test/test_convertible.rb +2 -2
  164. data/test/test_excerpt.rb +78 -0
  165. data/test/test_filters.rb +4 -4
  166. data/test/test_generated_site.rb +13 -13
  167. data/test/test_json_driver.rb +9 -9
  168. data/test/test_kramdown.rb +32 -5
  169. data/test/test_new_command.rb +8 -8
  170. data/test/test_page.rb +12 -3
  171. data/test/test_pager.rb +34 -33
  172. data/test/test_post.rb +34 -26
  173. data/test/test_redcloth.rb +3 -3
  174. data/test/test_related_posts.rb +47 -0
  175. data/test/test_site.rb +102 -44
  176. data/test/test_tags.rb +168 -23
  177. data/test/test_url.rb +28 -0
  178. data/test/test_yaml_driver.rb +6 -6
  179. metadata +215 -137
  180. data/lib/monad/commands/doctor.rb +0 -29
  181. data/lib/monad/commands/new.rb +0 -50
  182. data/lib/monad/commands/serve.rb +0 -33
  183. data/lib/monad/converters/markdown/kramdown_parser.rb +0 -44
  184. data/lib/monad/deprecator.rb +0 -32
  185. data/lib/monad/generators/pagination.rb +0 -143
  186. data/lib/monad/logger.rb +0 -54
  187. data/lib/monad/tags/gist.rb +0 -30
  188. data/lib/monad/tags/include.rb +0 -37
@@ -0,0 +1,319 @@
1
+ ---
2
+ layout: docs
3
+ title: Templates
4
+ prev_section: migrations
5
+ next_section: permalinks
6
+ permalink: /docs/templates/
7
+ ---
8
+
9
+ Jekyll uses the [Liquid](http://wiki.shopify.com/Liquid) templating language to
10
+ process templates. All of the standard Liquid [tags](http://wiki.shopify.com/Logic) and
11
+ [filters](http://wiki.shopify.com/Filters) are
12
+ supported. Jekyll even adds a few handy filters and tags of its own to make
13
+ common tasks easier.
14
+
15
+ ## Filters
16
+
17
+ <div class="mobile-side-scroller">
18
+ <table>
19
+ <thead>
20
+ <tr>
21
+ <th>Description</th>
22
+ <th><span class="filter">Filter</span> and <span class="output">Output</span></th>
23
+ </tr>
24
+ </thead>
25
+ <tbody>
26
+ <tr>
27
+ <td>
28
+ <p class='name'><strong>Date to XML Schema</strong></p>
29
+ <p>Convert a Date into XML Schema (ISO 8601) format.</p>
30
+ </td>
31
+ <td class='align-center'>
32
+ <p>
33
+ <code class='filter'>{% raw %}{{ site.time | date_to_xmlschema }}{% endraw %}</code>
34
+ </p>
35
+ <p>
36
+ <code class='output'>2008-11-17T13:07:54-08:00</code>
37
+ </p>
38
+ </td>
39
+ </tr>
40
+ <tr>
41
+ <td>
42
+ <p class='name'><strong>Date to RFC-822 Format</strong></p>
43
+ <p>Convert a Date into the RFC-822 format used for RSS feeds.</p>
44
+ </td>
45
+ <td class='align-center'>
46
+ <p>
47
+ <code class='filter'>{% raw %}{{ site.time | date_to_rfc822 }}{% endraw %}</code>
48
+ </p>
49
+ <p>
50
+ <code class='output'>Mon, 17 Nov 2008 13:07:54 -0800</code>
51
+ </p>
52
+ </td>
53
+ </tr>
54
+ <tr>
55
+ <td>
56
+ <p class='name'><strong>Date to String</strong></p>
57
+ <p>Convert a date to short format.</p>
58
+ </td>
59
+ <td class='align-center'>
60
+ <p>
61
+ <code class='filter'>{% raw %}{{ site.time | date_to_string }}{% endraw %}</code>
62
+ </p>
63
+ <p>
64
+ <code class='output'>17 Nov 2008</code>
65
+ </p>
66
+ </td>
67
+ </tr>
68
+ <tr>
69
+ <td>
70
+ <p class='name'><strong>Date to Long String</strong></p>
71
+ <p>Format a date to long format.</p>
72
+ </td>
73
+ <td class='align-center'>
74
+ <p>
75
+ <code class='filter'>{% raw %}{{ site.time | date_to_long_string }}{% endraw %}</code>
76
+ </p>
77
+ <p>
78
+ <code class='output'>17 November 2008</code>
79
+ </p>
80
+ </td>
81
+ </tr>
82
+ <tr>
83
+ <td>
84
+ <p class='name'><strong>XML Escape</strong></p>
85
+ <p>Escape some text for use in XML.</p>
86
+ </td>
87
+ <td class='align-center'>
88
+ <p>
89
+ <code class='filter'>{% raw %}{{ page.content | xml_escape }}{% endraw %}</code>
90
+ </p>
91
+ </td>
92
+ </tr>
93
+ <tr>
94
+ <td>
95
+ <p class='name'><strong>CGI Escape</strong></p>
96
+ <p>
97
+ CGI escape a string for use in a URL. Replaces any special characters
98
+ with appropriate %XX replacements.
99
+ </p>
100
+ </td>
101
+ <td class='align-center'>
102
+ <p>
103
+ <code class='filter'>{% raw %}{{ “foo,bar;baz?” | cgi_escape }}{% endraw %}</code>
104
+ </p>
105
+ <p>
106
+ <code class='output'>foo%2Cbar%3Bbaz%3F</code>
107
+ </p>
108
+ </td>
109
+ </tr>
110
+ <tr>
111
+ <td>
112
+ <p class='name'><strong>URI Escape</strong></p>
113
+ <p>
114
+ URI escape a string.
115
+ </p>
116
+ </td>
117
+ <td class='align-center'>
118
+ <p>
119
+ <code class='filter'>{% raw %}{{ “'foo, bar \\baz?'” | uri_escape }}{% endraw %}</code>
120
+ </p>
121
+ <p>
122
+ <code class='output'>foo,%20bar%20%5Cbaz?</code>
123
+ </p>
124
+ </td>
125
+ </tr>
126
+ <tr>
127
+ <td>
128
+ <p class='name'><strong>Number of Words</strong></p>
129
+ <p>Count the number of words in some text.</p>
130
+ </td>
131
+ <td class='align-center'>
132
+ <p>
133
+ <code class='filter'>{% raw %}{{ page.content | number_of_words }}{% endraw %}</code>
134
+ </p>
135
+ <p>
136
+ <code class='output'>1337</code>
137
+ </p>
138
+ </td>
139
+ </tr>
140
+ <tr>
141
+ <td>
142
+ <p class='name'><strong>Array to Sentence</strong></p>
143
+ <p>Convert an array into a sentence. Useful for listing tags.</p>
144
+ </td>
145
+ <td class='align-center'>
146
+ <p>
147
+ <code class='filter'>{% raw %}{{ page.tags | array_to_sentence_string }}{% endraw %}</code>
148
+ </p>
149
+ <p>
150
+ <code class='output'>foo, bar, and baz</code>
151
+ </p>
152
+ </td>
153
+ </tr>
154
+ <tr>
155
+ <td>
156
+ <p class='name'><strong>Textilize</strong></p>
157
+ <p>Convert a Textile-formatted string into HTML, formatted via RedCloth</p>
158
+ </td>
159
+ <td class='align-center'>
160
+ <p>
161
+ <code class='filter'>{% raw %}{{ page.excerpt | textilize }}{% endraw %}</code>
162
+ </p>
163
+ </td>
164
+ </tr>
165
+ <tr>
166
+ <td>
167
+ <p class='name'><strong>Markdownify</strong></p>
168
+ <p>Convert a Markdown-formatted string into HTML.</p>
169
+ </td>
170
+ <td class='align-center'>
171
+ <p>
172
+ <code class='filter'>{% raw %}{{ page.excerpt | markdownify }}{% endraw %}</code>
173
+ </p>
174
+ </td>
175
+ </tr>
176
+ </tbody>
177
+ </table>
178
+ </div>
179
+
180
+ ## Tags
181
+
182
+ ### Includes
183
+
184
+ If you have small page fragments that you wish to include in multiple places on
185
+ your site, you can use the `include` tag.
186
+
187
+ {% highlight ruby %}
188
+ {% raw %}{% include footer.html %}{% endraw %}
189
+ {% endhighlight %}
190
+
191
+ Jekyll expects all include files to be placed in an `_includes` directory at the
192
+ root of your source directory. This will embed the contents of
193
+ `<source>/_includes/footer.html` into the calling file.
194
+
195
+ <div class="note">
196
+ <h5>ProTip™: Use variables as file name</h5>
197
+ <p>
198
+
199
+ The name of the file you wish to embed can be literal (as in the example above),
200
+ or you can use a variable, using liquid-like variable syntax as in
201
+ <code>{% raw %}{% include {{my_variable}} %}{% endraw %}</code>.
202
+
203
+ Note that unlike usual liquid variable syntax, you cannot have spaces inside the curly braces.
204
+
205
+ </p>
206
+ </div>
207
+
208
+ You can also pass parameters to an include:
209
+
210
+ {% highlight ruby %}
211
+ {% raw %}{% include footer.html param="value" %}{% endraw %}
212
+ {% endhighlight %}
213
+
214
+ These parameters are available via Liquid in the include:
215
+
216
+ {% highlight ruby %}
217
+ {% raw %}{{ include.param }}{% endraw %}
218
+ {% endhighlight %}
219
+
220
+ ### Code snippet highlighting
221
+
222
+ Jekyll has built in support for syntax highlighting of [over 100
223
+ languages](http://pygments.org/languages/) thanks to
224
+ [Pygments](http://pygments.org/). To use Pygments, you must have Python installed on your
225
+ system and set `pygments` to `true` in your site's configuration file.
226
+
227
+ To render a code block with syntax highlighting, surround your code as follows:
228
+
229
+ {% highlight text %}
230
+ {% raw %}
231
+ {% highlight ruby %}
232
+ def foo
233
+ puts 'foo'
234
+ end
235
+ {% endhighlight %}
236
+ {% endraw %}
237
+ {% endhighlight %}
238
+
239
+ The argument to the `highlight` tag (`ruby` in the example above) is the
240
+ language identifier. To find the appropriate identifier to use for the language
241
+ you want to highlight, look for the “short name” on the [Lexers
242
+ page](http://pygments.org/docs/lexers/).
243
+
244
+ #### Line numbers
245
+
246
+ There is a second argument to `highlight` called `linenos` that is optional.
247
+ Including the `linenos` argument will force the highlighted code to include line
248
+ numbers. For instance, the following code block would include line numbers next
249
+ to each line:
250
+
251
+ {% highlight text %}
252
+ {% raw %}
253
+ {% highlight ruby linenos %}
254
+ def foo
255
+ puts 'foo'
256
+ end
257
+ {% endhighlight %}
258
+ {% endraw %}
259
+ {% endhighlight %}
260
+
261
+ #### Stylesheets for syntax highlighting
262
+
263
+ In order for the highlighting to show up, you’ll need to include a highlighting
264
+ stylesheet. For an example stylesheet you can look at
265
+ [syntax.css](http://github.com/mojombo/tpw/tree/master/css/syntax.css). These
266
+ are the same styles as used by GitHub and you are free to use them for your own
267
+ site. If you use `linenos`, you might want to include an additional CSS class
268
+ definition for the `.lineno` class in `syntax.css` to distinguish the line
269
+ numbers from the highlighted code.
270
+
271
+ ### Post URL
272
+
273
+ If you would like to include a link to a post on your site, the `post_url` tag
274
+ will generate the correct permalink URL for the post you specify.
275
+
276
+ {% highlight text %}
277
+ {% raw %}
278
+ {% post_url 2010-07-21-name-of-post %}
279
+ {% endraw %}
280
+ {% endhighlight %}
281
+
282
+ There is no need to include the file extension when using the `post_url` tag.
283
+
284
+ You can also use this tag to create a link to a post in Markdown as follows:
285
+
286
+ {% highlight text %}
287
+ {% raw %}
288
+ [Name of Link]({% post_url 2010-07-21-name-of-post %})
289
+ {% endraw %}
290
+ {% endhighlight %}
291
+
292
+ ### Gist
293
+
294
+ Use the `gist` tag to easily embed a GitHub Gist onto your site:
295
+
296
+ {% highlight text %}
297
+ {% raw %}
298
+ {% gist 5555251 %}
299
+ {% endraw %}
300
+ {% endhighlight %}
301
+
302
+ You may also optionally specify the filename in the gist to display:
303
+
304
+ {% highlight text %}
305
+ {% raw %}
306
+ {% gist 5555251 result.md %}
307
+ {% endraw %}
308
+ {% endhighlight %}
309
+
310
+ The `gist` tag also works with private gists, which require the gist owner's
311
+ github username:
312
+
313
+ {% highlight text %}
314
+ {% raw %}
315
+ {% gist parkr/931c1c8d465a04042403 %}
316
+ {% endraw %}
317
+ {% endhighlight %}
318
+
319
+ The private gist syntax also supports filenames.
@@ -0,0 +1,150 @@
1
+ ---
2
+ layout: docs
3
+ title: Troubleshooting
4
+ prev_section: deployment-methods
5
+ next_section: sites
6
+ permalink: /docs/troubleshooting/
7
+ ---
8
+
9
+ If you ever run into problems installing or using Jekyll, here's a few tips
10
+ that might be of help. If the problem you’re experiencing isn’t covered below,
11
+ please [report an issue]({{ site.repository }}/issues/new) so the
12
+ Jekyll community can make everyone’s experience better.
13
+
14
+ ## Installation Problems
15
+
16
+ If you encounter errors during gem installation, you may need to install
17
+ the header files for compiling extension modules for ruby 1.9.1. This
18
+ can be done on Ubuntu or Debian by running:
19
+
20
+ {% highlight bash %}
21
+ sudo apt-get install ruby1.9.1-dev
22
+ {% endhighlight %}
23
+
24
+ On Red Hat, CentOS, and Fedora systems you can do this by running:
25
+
26
+ {% highlight bash %}
27
+ sudo yum install ruby-devel
28
+ {% endhighlight %}
29
+
30
+ On [NearlyFreeSpeech](http://nearlyfreespeech.net/) you need to run the
31
+ command with the following environment variable:
32
+
33
+ {% highlight bash %}
34
+ RB_USER_INSTALL=true gem install jekyll
35
+ {% endhighlight %}
36
+
37
+ On OSX, you may need to update RubyGems:
38
+
39
+ {% highlight bash %}
40
+ sudo gem update --system
41
+ {% endhighlight %}
42
+
43
+ If you still have issues, you may need to [use XCode to install Command Line
44
+ Tools](http://www.zlu.me/blog/2012/02/21/install-native-ruby-gem-in-mountain-lion-preview/)
45
+ that will allow you to install native gems using the following command:
46
+
47
+ {% highlight bash %}
48
+ sudo gem install jekyll
49
+ {% endhighlight %}
50
+
51
+ To install RubyGems on Gentoo:
52
+
53
+ {% highlight bash %}
54
+ sudo emerge -av dev-ruby/rubygems
55
+ {% endhighlight %}
56
+
57
+ On Windows, you may need to install [RubyInstaller
58
+ DevKit](http://wiki.github.com/oneclick/rubyinstaller/development-kit).
59
+
60
+ ## Problems running Jekyll
61
+
62
+ On Debian or Ubuntu, you may need to add `/var/lib/gems/1.8/bin/` to your path
63
+ in order to have the `jekyll` executable be available in your Terminal.
64
+
65
+ ## Base-URL Problems
66
+
67
+ If you are using base-url option like:
68
+
69
+ {% highlight bash %}
70
+ jekyll serve --baseurl '/blog'
71
+ {% endhighlight %}
72
+
73
+ … then make sure that you access the site at:
74
+
75
+ {% highlight bash %}
76
+ http://localhost:4000/blog/index.html
77
+ {% endhighlight %}
78
+
79
+ It won’t work to just access:
80
+
81
+ {% highlight bash %}
82
+ http://localhost:4000/blog
83
+ {% endhighlight %}
84
+
85
+ ## Configuration problems
86
+
87
+ The order of precedence for conflicting [configuration settings](../configuration/)
88
+ is as follows:
89
+
90
+ 1. Command-line flags
91
+ 2. Configuration file settings
92
+ 3. Defaults
93
+
94
+ That is: defaults are overridden by options specified in `_config.yml`,
95
+ and flags specified at the command-line will override all other settings
96
+ specified elsewhere.
97
+
98
+ ## Markup Problems
99
+
100
+ The various markup engines that Jekyll uses may have some issues. This
101
+ page will document them to help others who may run into the same
102
+ problems.
103
+
104
+ ### Maruku
105
+
106
+ If your link has characters that need to be escaped, you need to use
107
+ this syntax:
108
+
109
+ {% highlight text %}
110
+ ![Alt text](http://yuml.me/diagram/class/[Project]->[Task])
111
+ {% endhighlight %}
112
+
113
+ If you have an empty tag, i.e. `<script src="js.js"></script>`, Maruku
114
+ transforms this into `<script src="js.js" />`. This causes problems in
115
+ Firefox and possibly other browsers and is [discouraged in
116
+ XHTML.](http://www.w3.org/TR/xhtml1/#C_3) An easy fix is to put a space
117
+ between the opening and closing tags.
118
+
119
+ ### RedCloth
120
+
121
+ Versions 4.1.1 and higher do not obey the notextile tag. [This is a known
122
+ bug](http://aaronqian.com/articles/2009/04/07/redcloth-ate-my-notextile.html)
123
+ and will hopefully be fixed for 4.2. You can still use 4.1.9, but the
124
+ test suite requires that 4.1.0 be installed. If you use a version of
125
+ RedCloth that does not have the notextile tag, you may notice that
126
+ syntax highlighted blocks from Pygments are not formatted correctly,
127
+ among other things. If you’re seeing this just install 4.1.0.
128
+
129
+ ### Liquid
130
+
131
+ The latest version, version 2.0, seems to break the use of `{{ "{{" }}` in
132
+ templates. Unlike previous versions, using `{{ "{{" }}` in 2.0 triggers the
133
+ following error:
134
+
135
+ {% highlight bash %}
136
+ '{{ "{{" }}' was not properly terminated with regexp: /\}\}/ (Liquid::SyntaxError)
137
+ {% endhighlight %}
138
+
139
+ ### Excerpts
140
+
141
+ Since v1.0.0, Jekyll has had automatically-generated post excerpts. Since
142
+ v1.1.0, Jekyll also passes these excerpts through Liquid, which can cause
143
+ strange errors where references don't exist or a tag hasn't been closed. If you
144
+ run into these errors, try setting `excerpt_separator: ""` in your
145
+ `_config.yml`, or set it to some nonsense string.
146
+
147
+ <div class="note">
148
+ <h5>Please report issues you encounter!</h5>
149
+ <p>If you come across a bug, please <a href="{{ site.repository }}/issues/new">create an issue</a> on GitHub describing the problem and any work-arounds you find so we can document it here for others.</p>
150
+ </div>