jekyll 1.5.1 → 2.0.0.alpha.1

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.

Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.markdown +6 -6
  3. data/History.markdown +99 -23
  4. data/README.markdown +7 -3
  5. data/Rakefile +5 -5
  6. data/bin/jekyll +101 -116
  7. data/features/embed_filters.feature +13 -0
  8. data/features/include_tag.feature +11 -0
  9. data/features/markdown.feature +3 -3
  10. data/features/site_configuration.feature +34 -3
  11. data/features/step_definitions/jekyll_steps.rb +47 -34
  12. data/features/support/env.rb +25 -28
  13. data/jekyll.gemspec +38 -18
  14. data/lib/jekyll.rb +7 -15
  15. data/lib/jekyll/commands/build.rb +2 -0
  16. data/lib/jekyll/commands/serve.rb +11 -1
  17. data/lib/jekyll/configuration.rb +22 -6
  18. data/lib/jekyll/converter.rb +16 -16
  19. data/lib/jekyll/converters/markdown.rb +30 -15
  20. data/lib/jekyll/converters/markdown/maruku_parser.rb +4 -5
  21. data/lib/jekyll/converters/markdown/redcarpet_parser.rb +34 -3
  22. data/lib/jekyll/converters/sass.rb +58 -0
  23. data/lib/jekyll/converters/textile.rb +2 -2
  24. data/lib/jekyll/convertible.rb +25 -6
  25. data/lib/jekyll/core_ext.rb +0 -35
  26. data/lib/jekyll/deprecator.rb +2 -2
  27. data/lib/jekyll/entry_filter.rb +61 -25
  28. data/lib/jekyll/excerpt.rb +8 -6
  29. data/lib/jekyll/filters.rb +46 -2
  30. data/lib/jekyll/layout_reader.rb +40 -0
  31. data/lib/jekyll/mime.types +19 -9
  32. data/lib/jekyll/page.rb +6 -4
  33. data/lib/jekyll/post.rb +11 -18
  34. data/lib/jekyll/site.rb +34 -32
  35. data/lib/jekyll/tags/highlight.rb +26 -4
  36. data/lib/jekyll/tags/include.rb +29 -17
  37. data/lib/jekyll/tags/post_url.rb +10 -1
  38. data/lib/jekyll/url.rb +0 -2
  39. data/lib/site_template/_config.yml +1 -1
  40. data/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb +1 -1
  41. data/lib/site_template/css/main.css +8 -1
  42. data/script/bootstrap +2 -0
  43. data/script/branding +11 -0
  44. data/script/cibuild +5 -0
  45. data/script/rebund +140 -0
  46. data/site/_config.yml +2 -2
  47. data/site/_data/docs.yml +44 -0
  48. data/site/{css → _includes/css}/gridism.css +0 -0
  49. data/site/_includes/css/normalize.css +1 -0
  50. data/site/{css → _includes/css}/pygments.css +2 -0
  51. data/site/{css → _includes/css}/style.css +10 -0
  52. data/site/_includes/docs_contents.html +4 -12
  53. data/site/_includes/docs_contents_mobile.html +4 -17
  54. data/site/_includes/docs_option.html +1 -1
  55. data/site/_includes/docs_ul.html +2 -2
  56. data/site/_includes/footer.html +1 -1
  57. data/site/_includes/top.html +1 -4
  58. data/site/_layouts/news_item.html +2 -2
  59. data/site/_posts/2013-07-24-jekyll-1-1-1-released.markdown +4 -4
  60. data/site/_posts/2013-09-14-jekyll-1-2-1-released.markdown +1 -1
  61. data/site/_posts/2013-10-28-jekyll-1-3-0-rc1-released.markdown +1 -1
  62. data/site/_posts/2013-12-09-jekyll-1-4-1-released.markdown +20 -0
  63. data/site/_posts/2014-01-13-jekyll-1-4-3-released.markdown +1 -2
  64. data/site/css/screen.css +27 -0
  65. data/site/docs/assets.md +46 -0
  66. data/site/docs/configuration.md +18 -4
  67. data/site/docs/contributing.md +2 -2
  68. data/site/docs/datafiles.md +6 -6
  69. data/site/docs/deployment-methods.md +5 -0
  70. data/site/docs/extras.md +38 -2
  71. data/site/docs/frontmatter.md +2 -1
  72. data/site/docs/history.md +0 -22
  73. data/site/docs/installation.md +7 -7
  74. data/site/docs/migrations.md +1 -1
  75. data/site/docs/plugins.md +11 -2
  76. data/site/docs/posts.md +25 -4
  77. data/site/docs/sites.md +1 -1
  78. data/site/docs/structure.md +1 -1
  79. data/site/docs/templates.md +13 -8
  80. data/site/docs/troubleshooting.md +8 -5
  81. data/site/docs/usage.md +11 -0
  82. data/site/docs/variables.md +18 -0
  83. data/site/docs/windows.md +44 -0
  84. data/test/helper.rb +5 -8
  85. data/test/source/_includes/include.html +1 -0
  86. data/test/source/_includes/sig.markdown +2 -2
  87. data/test/source/_posts/2013-12-17-include-variable-filters.markdown +21 -0
  88. data/test/source/_posts/2013-12-20-properties.text +11 -0
  89. data/test/source/_sass/_grid.scss +1 -0
  90. data/test/source/css/main.scss +4 -0
  91. data/test/source/js/coffeescript.coffee +10 -0
  92. data/test/source/properties.html +8 -0
  93. data/test/source/unpublished.html +7 -0
  94. data/test/test_coffeescript.rb +49 -0
  95. data/test/test_configuration.rb +29 -18
  96. data/test/test_convertible.rb +7 -9
  97. data/test/test_core_ext.rb +0 -22
  98. data/test/test_entry_filter.rb +36 -2
  99. data/test/test_excerpt.rb +43 -1
  100. data/test/test_filters.rb +44 -5
  101. data/test/test_generated_site.rb +5 -1
  102. data/test/test_layout_reader.rb +17 -0
  103. data/test/test_page.rb +28 -10
  104. data/test/test_post.rb +32 -15
  105. data/test/test_redcarpet.rb +19 -3
  106. data/test/test_sass.rb +122 -0
  107. data/test/test_site.rb +56 -7
  108. data/test/test_tags.rb +102 -51
  109. metadata +154 -80
  110. data/site/_posts/2014-03-24-jekyll-1-5-0-released.markdown +0 -19
  111. data/site/_posts/2014-03-27-jekyll-1-5-1-released.markdown +0 -26
  112. data/site/css/normalize.css +0 -1
  113. data/test/source/_posts/2014-01-06-permalink-traversal.md +0 -5
  114. data/test/source/exploit.md +0 -5
  115. data/test/test_path_sanitization.rb +0 -18
@@ -0,0 +1,27 @@
1
+ ---
2
+ ---
3
+
4
+ {% capture screen %}
5
+ /* *\
6
+ * $normalize.css *
7
+ \* */
8
+ {% include css/normalize.css %}
9
+ /* *\
10
+ * $gridism.css *
11
+ \* */
12
+ {% include css/gridism.css %}
13
+ /* *\
14
+ * $style.css *
15
+ \* */
16
+ {% include css/style.css %}
17
+ /* *\
18
+ * $pygments.css *
19
+ \* */
20
+ {% include css/pygments.css %}
21
+ {% endcapture %}
22
+
23
+ {% if site.GH_ENV %}
24
+ {{ screen | strip_newlines | remove: ' ' }}
25
+ {% else %}
26
+ {{ screen }}
27
+ {% endif %}
@@ -0,0 +1,46 @@
1
+ ---
2
+ layout: docs
3
+ title: Assets
4
+ prev_section: datafiles
5
+ next_section: migrations
6
+ permalink: /docs/assets/
7
+ ---
8
+
9
+ Jekyll provides built-in support for Sass and CoffeeScript. In order to use
10
+ them, create a file with the proper extension name (one of `.sass`, `.scss`,
11
+ or `.coffee`) and start the file with two lines of triple dashes, like this:
12
+
13
+ {% highlight sass %}
14
+ ---
15
+ ---
16
+
17
+ // start content
18
+ .my-definition
19
+ font-size: 1.2em
20
+ {% endhighlight %}
21
+
22
+ ## Sass/SCSS
23
+
24
+ Jekyll allows you to customize your Sass conversion in certain ways.
25
+
26
+ If you are using Sass `@import` statements, you'll need to ensure that your
27
+ `sass_dir` is set to the base directory that contains your Sass files. You
28
+ can do that thusly:
29
+
30
+ {% highlight yaml %}
31
+ sass:
32
+ sass_dir: _sass
33
+ {% endhighlight %}
34
+
35
+ The Sass converter will default to `_sass`.
36
+
37
+ You may also specify the output style with the `style` option in your
38
+ `_config.yml` file:
39
+
40
+ {% highlight yaml %}
41
+ sass:
42
+ style: :compressed
43
+ {% endhighlight %}
44
+
45
+ These are passed to Sass, so any output style options Sass supports are valid
46
+ here, too.
@@ -64,7 +64,11 @@ class="flag">flags</code> (specified on the command-line) that control them.
64
64
  <tr class='setting'>
65
65
  <td>
66
66
  <p class='name'><strong>Exclude</strong></p>
67
- <p class="description">Exclude directories and/or files from the conversion</p>
67
+ <p class="description">
68
+ Exclude directories and/or files from the
69
+ conversion. These exclusions are relative to the site's
70
+ source directory and cannot be outside the source directory.
71
+ </p>
68
72
  </td>
69
73
  <td class='align-center'>
70
74
  <p><code class="option">exclude: [DIR, FILE, ...]</code></p>
@@ -288,14 +292,15 @@ encoding: nil
288
292
  future: true
289
293
  show_drafts: nil
290
294
  limit_posts: 0
291
- pygments: true
295
+ highlighter: pygments
292
296
 
293
297
  relative_permalinks: true
294
298
 
295
299
  permalink: date
296
300
  paginate_path: 'page:num'
301
+ paginate: nil
297
302
 
298
- markdown: maruku
303
+ markdown: kramdown
299
304
  markdown_ext: markdown,mkd,mkdn,md
300
305
  textile_ext: textile
301
306
 
@@ -363,7 +368,7 @@ Jekyll handles two special Redcarpet extensions:
363
368
  # ...ruby code
364
369
  ```
365
370
 
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.
371
+ With both fenced code blocks and highlighter enabled, this will statically highlight the code; without any syntax highlighter, 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
372
  - `smart` --- This pseudo-extension turns on SmartyPants, which converts straight quotes to curly quotes and runs of hyphens to em (`---`) and en (`--`) dashes.
368
373
 
369
374
  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:
@@ -373,3 +378,12 @@ All other extensions retain their usual names from Redcarpet, and no renderer op
373
378
  - `autolink`
374
379
 
375
380
  [redcarpet_extensions]: https://github.com/vmg/redcarpet/blob/v2.2.2/README.markdown#and-its-like-really-simple-to-use
381
+
382
+ ### Kramdown
383
+
384
+ In addition to the defaults mentioned above, you can also turn on recognition of Github Flavored Markdown by passing an `input` option with a value of "GFM".
385
+
386
+ For example, in your `_config.yml`:
387
+
388
+ kramdown:
389
+ input: GFM
@@ -85,7 +85,7 @@ git checkout -b my_awesome_feature
85
85
  git push origin my_awesome_feature
86
86
  {% endhighlight %}
87
87
 
88
- * Create a pull request against mojombo/jekyll:master and describe what your
88
+ * Create a pull request against jekyll/jekyll:master and describe what your
89
89
  change does and the why you think it should be merged.
90
90
 
91
91
  Updating Documentation
@@ -111,7 +111,7 @@ Gotchas
111
111
 
112
112
  * If you want to bump the gem version, please put that in a separate commit.
113
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.
114
+ * Try to keep your patch(es) based from the latest commit on jekyll/jekyll.
115
115
  The easier it is to apply your work, the less work the maintainers have to do,
116
116
  which is always a good thing.
117
117
  * Please don't tag your GitHub issue with \[fix\], \[feature\], etc. The maintainers
@@ -2,25 +2,25 @@
2
2
  layout: docs
3
3
  title: Data Files
4
4
  prev_section: variables
5
- next_section: migrations
5
+ next_section: assets
6
6
  permalink: /docs/datafiles/
7
7
  ---
8
8
 
9
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
10
+ you can specify your own custom data that can be accessed via the [Liquid
11
11
  templating system](http://wiki.github.com/shopify/liquid/liquid-for-designers).
12
12
 
13
- Jekyll supports loading data from [YAML](http://yaml.org/) files located in the
13
+ Jekyll supports loading data from [YAML](http://yaml.org/) files located in the
14
14
  `_data` directory.
15
15
 
16
- This powerful features allows you to avoid repetition in your templates and to
17
- set site specific options without changing `_config.yml`.
16
+ This powerful feature allows you to avoid repetition in your templates and to
17
+ set site specific options without changing `_config.yml`.
18
18
 
19
19
  Plugins/themes can also leverage Data Files to set configuration variables.
20
20
 
21
21
  ## The Data Folder
22
22
 
23
- As explained on the [directory structure](../structure/) page, the `_data`
23
+ As explained on the [directory structure](../structure/) page, the `_data`
24
24
  folder is where you can store additional data for Jekyll to use when generating
25
25
  your site. These files must be YAML files (using either the `.yml` or `.yaml`
26
26
  extension) and they will be accessible via `site.data`.
@@ -103,6 +103,11 @@ dynamically scaling to almost unlimited traffic. This approach has the
103
103
  benefit of being about the cheapest hosting option available for
104
104
  low-volume blogs as you only pay for what you use.
105
105
 
106
+ ## OpenShift
107
+
108
+ If you'd like to deploy your site to an OpenShift gear, there's [a cartridge
109
+ for that](https://github.com/openshift-cartridges/openshift-jekyll-cartridge).
110
+
106
111
  <div class="note">
107
112
  <h5>ProTip™: Use GitHub Pages for zero-hassle Jekyll hosting</h5>
108
113
  <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>
@@ -16,7 +16,12 @@ Maruku comes with optional support for LaTeX to PNG rendering via blahtex
16
16
  Maruku to not assume a fixed location for `dvips`, check out [Remi’s Maruku
17
17
  fork](http://github.com/remi/maruku).
18
18
 
19
- ## RDiscount
19
+ ## Alternative Markdown Processors
20
+
21
+ While Jekyll defaults to using Maruku for Markdown conversion, you may use one
22
+ of the other three pre-defined markdown parsers or define your own.
23
+
24
+ ### RDiscount
20
25
 
21
26
  If you prefer to use [RDiscount](http://github.com/rtomayko/rdiscount) instead
22
27
  of [Maruku](http://github.com/bhollis/maruku) for Markdown, just make sure you have
@@ -34,7 +39,7 @@ have Jekyll run with that option.
34
39
  markdown: rdiscount
35
40
  {% endhighlight %}
36
41
 
37
- ## Kramdown
42
+ ### Kramdown
38
43
 
39
44
  You can also use [Kramdown](http://kramdown.rubyforge.org/) instead of Maruku
40
45
  for Markdown. Make sure that Kramdown is installed:
@@ -54,3 +59,34 @@ Kramdown has various options for customizing the HTML output. The
54
59
  [Configuration](/docs/configuration/) page lists the default options used by
55
60
  Jekyll. A complete list of options is also available on the [Kramdown
56
61
  website](http://kramdown.rubyforge.org/options.html).
62
+
63
+ ### User-Defined
64
+
65
+ So, you're totally at odds with our four built-in markdown parsers, eh? No
66
+ sweat. You can define one as a plugin:
67
+
68
+ {% highlight ruby %}
69
+ require 'jekyll'
70
+ require 'some_renderer'
71
+
72
+ class Jekyll::Converters::Markdown::MyCustomParser
73
+ def initialize(config)
74
+ @site_config = config
75
+ end
76
+
77
+ def convert(content)
78
+ # (this _must_ return the resulting String after the rendering)
79
+ SomeRenderer.new(@site_config).to_html(content)
80
+ end
81
+ end
82
+ {% endhighlight %}
83
+
84
+ Once you've got that setup, ask Jekyll to use your custom markdown parser in
85
+ your `_config.yml` file:
86
+
87
+ {% highlight yaml %}
88
+ markdown: MyCustomParser
89
+ {% endhighlight %}
90
+
91
+ (Note that this **is case-sensitive**, and is only the piece after
92
+ `Jekyll::Converters::Markdown`.) And there you are!
@@ -30,7 +30,8 @@ relies on.
30
30
  <p>
31
31
  If you use UTF-8 encoding, make sure that no <code>BOM</code> header
32
32
  characters exist in your files or very, very bad things will happen to
33
- Jekyll. This is especially relevant if you’re running Jekyll on Windows.
33
+ Jekyll. This is especially relevant if you’re running
34
+ <a href="../windows/">Jekyll on Windows</a>.
34
35
  </p>
35
36
  </div>
36
37
 
@@ -5,28 +5,6 @@ permalink: "/docs/history/"
5
5
  prev_section: contributing
6
6
  ---
7
7
 
8
- ## 1.5.0 / 2014-03-24
9
-
10
- ### Minor Enhancements
11
-
12
- - Loosen `safe_yaml` dependency to `~> 1.0` ([#2167]({{ site.repository }}/issues/2167))
13
- - Bump `safe_yaml` dependency to `~> 1.0.0` ([#1942]({{ site.repository }}/issues/1942))
14
-
15
- ### Bug Fixes
16
-
17
- - Fix issue where filesystem traversal restriction broke Windows ([#2167]({{ site.repository }}/issues/2167))
18
- - Lock `maruku` at `0.7.0` ([#2167]({{ site.repository }}/issues/2167))
19
-
20
- ### Development Fixes
21
-
22
- - Lock `cucmber` at `1.3.11` ([#2167]({{ site.repository }}/issues/2167))
23
-
24
- ## 1.4.3 / 2014-01-13
25
-
26
- ### Bug Fixes
27
-
28
- - Patch show-stopping security vulnerabilities ([#1944]({{ site.repository }}/issues/1944))
29
-
30
8
  ## 1.4.2 / 2013-12-16
31
9
 
32
10
  ### Bug Fixes
@@ -23,10 +23,9 @@ you’ll need to make sure your system has before you start.
23
23
  <div class="note info">
24
24
  <h5>Running Jekyll on Windows</h5>
25
25
  <p>
26
- It is possible to get
27
- <a href="http://www.madhur.co.in/blog/2011/09/01/runningjekyllwindows.html">
28
- Jekyll running on Windows</a>, but the official documentation does not
29
- support installation on Windows platforms.
26
+ While Windows is not officially supported, it is possible to get it running
27
+ on Windows. Special instructions can be found on our
28
+ <a href="../windows/#installation">Windows-specific docs page</a>.
30
29
  </p>
31
30
  </div>
32
31
 
@@ -67,9 +66,10 @@ Check out [the extras page](../extras/) for more information.
67
66
  <h5>ProTip™: Enable Syntax Highlighting</h5>
68
67
  <p>
69
68
  If you’re the kind of person who is using Jekyll, then chances are you’ll
70
- want to enable syntax highlighting using Pygments. You should really
71
- <a href="../templates/#code_snippet_highlighting">check out how to do
72
- that</a> before you go any further.
69
+ want to enable syntax highlighting using <a href="http://pygments.org/">Pygments</a>
70
+ or <a href="https://github.com/jayferd/rouge">Rouge</a>. You should really
71
+ <a href="../templates/#code_snippet_highlighting">check out how to
72
+ do that</a> before you go any farther.
73
73
  </p>
74
74
  </div>
75
75
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  layout: docs
3
3
  title: Blog migrations
4
- prev_section: datafiles
4
+ prev_section: assets
5
5
  next_section: templates
6
6
  permalink: /docs/migrations/
7
7
  ---
@@ -339,9 +339,9 @@ Liquid::Template.register_filter(Jekyll::AssetFilter)
339
339
  <h5>ProTip™: Access the site object using Liquid</h5>
340
340
  <p>
341
341
  Jekyll lets you access the <code>site</code> object through the
342
- <code>context.registers</code> feature of Liquid. For example, you can
342
+ <code>context.registers</code> feature of Liquid at <code>context.registers[:site]</code>. For example, you can
343
343
  access the global configuration file <code>_config.yml</code> using
344
- <code>context.registers.config</code>.
344
+ <code>context.registers[:site].config</code>.
345
345
  </p>
346
346
  </div>
347
347
 
@@ -422,6 +422,7 @@ You can find a few useful plugins at the following locations:
422
422
  - [Monthly archive generator by Shigeya Suzuki](https://github.com/shigeya/jekyll-monthly-archive-plugin): Generator and template which renders monthly archive like MovableType style, based on the work by Ilkka Laukkanen and others above.
423
423
  - [Category archive generator by Shigeya Suzuki](https://github.com/shigeya/jekyll-category-archive-plugin): Generator and template which renders category archive like MovableType style, based on Monthly archive generator.
424
424
  - [Emoji for Jekyll](https://github.com/yihangho/emoji-for-jekyll): Seamlessly enable emoji for all posts and pages.
425
+ - [Compass integration for Jekyll](https://github.com/mscharley/jekyll-compass): Easily integrate Compass and Sass with your Jekyll website.
425
426
 
426
427
  #### Converters
427
428
 
@@ -456,6 +457,7 @@ You can find a few useful plugins at the following locations:
456
457
  - [pluralize](https://github.com/bdesham/pluralize): Easily combine a number and a word into a gramatically-correct amount like “1 minute” or “2 minute**s**”.
457
458
  - [reading_time](https://github.com/bdesham/reading_time): Count words and estimate reading time for a piece of text, ignoring HTML elements that are unlikely to contain running text.
458
459
  - [Table of Content Generator](https://github.com/dafi/jekyll-toc-generator): Generate the HTML code containing a table of content (TOC), the TOC can be customized in many way, for example you can decide which pages can be without TOC.
460
+ - [jekyll-humanize](https://github.com/23maverick23/jekyll-humanize): This is a port of the Django app humanize which adds a "human touch" to data. Each method represents a Fluid type filter that can be used in your Jekyll site templates. Given that Jekyll produces static sites, some of the original methods do not make logical sense to port (e.g. naturaltime).
459
461
 
460
462
  #### Tags
461
463
 
@@ -495,6 +497,7 @@ You can find a few useful plugins at the following locations:
495
497
  - [Jekyll Date Chart](https://github.com/GSI/jekyll_date_chart) by [GSI](https://github.com/GSI): Block that renders date line charts based on textile-formatted tables.
496
498
  - [Jekyll Image Encode](https://github.com/GSI/jekyll_image_encode) by [GSI](https://github.com/GSI): Tag that renders base64 codes of images fetched from the web.
497
499
  - [Jekyll Quick Man](https://github.com/GSI/jekyll_quick_man) by [GSI](https://github.com/GSI): Tag that renders pretty links to man page sources on the internet.
500
+ - [jekyll-font-awesome](https://gist.github.com/23maverick23/8532525): Quickly and easily add Font Awesome icons to your posts.
498
501
 
499
502
  #### Collections
500
503
 
@@ -524,6 +527,12 @@ You can find a few useful plugins at the following locations:
524
527
  - [grunt-jekyll](https://github.com/dannygarcia/grunt-jekyll): A straightforward [Grunt](http://gruntjs.com/) plugin for Jekyll.
525
528
  - [jekyll-postfiles](https://github.com/indirect/jekyll-postfiles): Add `_postfiles` directory and {% raw %}`{{ postfile }}`{% endraw %} tag so the files a post refers to will always be right there inside your repo.
526
529
 
530
+ #### Editors
531
+
532
+ - [sublime-jekyll](https://github.com/23maverick23/sublime-jekyll): A Sublime Text package for Jekyll static sites. This package should help creating Jekyll sites and posts easier by providing access to key template tags and filters, as well as common completions and a current date/datetime command (for dating posts). You can install this package manually via GitHub, or via [Package Control](https://sublime.wbond.net/packages/Jekyll).
533
+ - [vim-jekyll](https://github.com/parkr/vim-jekyll): A vim plugin to generate
534
+ new posts and run `jekyll build` all without leaving vim.
535
+
527
536
  <div class="note info">
528
537
  <h5>Jekyll Plugins Wanted</h5>
529
538
  <p>
@@ -43,7 +43,7 @@ file. For example, the following are examples of valid post filenames:
43
43
 
44
44
  ### Content Formats
45
45
 
46
- All blog post files must begin with [YAML front- matter](../frontmatter/). After
46
+ All blog post files must begin with [YAML front-matter](../frontmatter/). After
47
47
  that, it's simply a matter of deciding which format you prefer. Jekyll supports
48
48
  two popular content markup formats:
49
49
  [Markdown](http://daringfireball.net/projects/markdown/) and
@@ -52,6 +52,18 @@ of marking up different types of content within a post, so you should
52
52
  familiarize yourself with these formats and decide which one best suits your
53
53
  needs.
54
54
 
55
+ <div class="note info">
56
+ <h5>Be aware of character sets</h5>
57
+ <p>
58
+ Content processors can modify certain characters to make them look nicer.
59
+ For example, the <code>smart</code> extension in Redcarpet converts standard,
60
+ ASCII quotation characters to curly, Unicode ones. In order for the browser
61
+ to display those characters properly, define the charset meta value by
62
+ including <code>&lt;meta charset=&quot;utf-8&quot;&gt;</code> in the
63
+ <code>&lt;head&gt;</code> of your layout.
64
+ </p>
65
+ </div>
66
+
55
67
  ## Including images and resources
56
68
 
57
69
  Chances are, at some point, you'll want to include images, downloads, or other
@@ -126,21 +138,30 @@ posts:
126
138
  {% raw %}{% for post in site.posts %}{% endraw %}
127
139
  <li>
128
140
  <a href="{% raw %}{{ post.url }}{% endraw %}">{% raw %}{{ post.title }}{% endraw %}</a>
129
- <p>{% raw %}{{ post.excerpt }}{% endraw %}</p>
141
+ {% raw %}{{ post.excerpt }}{% endraw %}
130
142
  </li>
131
143
  {% raw %}{% endfor %}{% endraw %}
132
144
  </ul>
133
145
  {% endhighlight %}
134
146
 
147
+ Because Jekyll grabs the first paragraph you will not need to wrap the excerpt in `p` tags,
148
+ which is already done for you. These tags can be removed with the following if you'd prefer:
149
+
150
+ {% highlight html %}
151
+ {% raw %}{{ post.excerpt | remove: '<p>' | remove: '</p>' }}{% endraw %}
152
+ {% endhighlight %}
153
+
135
154
  If you don't like the automatically-generated post excerpt, it can be overridden by adding
136
155
  `excerpt` to your post's YAML front-matter. Completely disable it by setting
137
156
  your `excerpt_separator` to `""`.
138
157
 
158
+ Also, as with any output generated by Liquid tags, you can pass the `| strip_html` flag to remove any html tags in the output. This is particularly helpful if you wish to output a post excerpt as a `meta="description"` tag within the post `head`, or anywhere else having html tags along with the content is not desirable.
159
+
139
160
  ## Highlighting code snippets
140
161
 
141
162
  Jekyll also has built-in support for syntax highlighting of code snippets using
142
- Pygments, and including a code snippet in any post is easy. Just use the
143
- dedicated Liquid tag as follows:
163
+ either Pygments or Rouge, and including a code snippet in any post is easy. Just
164
+ use the dedicated Liquid tag as follows:
144
165
 
145
166
  {% highlight text %}
146
167
  {% raw %}{% highlight ruby %}{% endraw %}
@@ -11,7 +11,7 @@ with. Below are some Jekyll-powered blogs which were hand-picked for
11
11
  learning purposes.
12
12
 
13
13
  - [Tom Preston-Werner](http://tom.preston-werner.com/)
14
- ([source](http://github.com/mojombo/mojombo.github.com))
14
+ ([source](https://github.com/mojombo/mojombo.github.io))
15
15
  - [Nick Quaranto](http://quaran.to/)
16
16
  ([source](https://github.com/qrush/qrush.github.com))
17
17
  - [Roger Chapman](http://rogchap.com/)
@@ -113,7 +113,7 @@ An overview of what each of these does:
113
113
  <td>
114
114
  <p>
115
115
 
116
- Your dynamic content, so to speak. The format of these files is
116
+ Your dynamic content, so to speak. The naming convention of these files is
117
117
  important, and must follow the format:
118
118
  <code>YEAR-MONTH-DAY-title.MARKUP</code>.
119
119
  The <a href="../permalinks/">permalinks</a> can be customized for each