jekyll 2.0.3 → 2.1.0

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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/CONTRIBUTING.markdown +2 -2
  4. data/History.markdown +86 -0
  5. data/README.markdown +5 -30
  6. data/Rakefile +4 -9
  7. data/docs/jp/CONTRIBUTING.jp.markdown +2 -2
  8. data/docs/jp/README.jp.markdown +1 -2
  9. data/features/collections.feature +40 -3
  10. data/features/data.feature +41 -1
  11. data/features/frontmatter_defaults.feature +57 -0
  12. data/features/post_data.feature +12 -0
  13. data/features/rendering.feature +34 -0
  14. data/features/step_definitions/jekyll_steps.rb +5 -1
  15. data/features/support/env.rb +0 -3
  16. data/jekyll.gemspec +6 -5
  17. data/lib/jekyll.rb +18 -1
  18. data/lib/jekyll/cleaner.rb +22 -2
  19. data/lib/jekyll/collection.rb +9 -2
  20. data/lib/jekyll/command.rb +20 -10
  21. data/lib/jekyll/commands/build.rb +10 -47
  22. data/lib/jekyll/commands/serve.rb +1 -0
  23. data/lib/jekyll/configuration.rb +13 -1
  24. data/lib/jekyll/converters/markdown/redcarpet_parser.rb +9 -2
  25. data/lib/jekyll/convertible.rb +31 -2
  26. data/lib/jekyll/deprecator.rb +1 -1
  27. data/lib/jekyll/document.rb +21 -3
  28. data/lib/jekyll/excerpt.rb +1 -1
  29. data/lib/jekyll/filters.rb +16 -12
  30. data/lib/jekyll/frontmatter_defaults.rb +3 -3
  31. data/lib/jekyll/log_adapter.rb +102 -0
  32. data/lib/jekyll/post.rb +5 -5
  33. data/lib/jekyll/renderer.rb +9 -5
  34. data/lib/jekyll/site.rb +38 -18
  35. data/lib/jekyll/static_file.rb +1 -0
  36. data/lib/jekyll/stevenson.rb +54 -98
  37. data/lib/jekyll/tags/highlight.rb +13 -5
  38. data/lib/jekyll/url.rb +2 -2
  39. data/lib/jekyll/utils.rb +15 -7
  40. data/lib/jekyll/version.rb +1 -1
  41. data/lib/site_template/_config.yml +2 -0
  42. data/lib/site_template/_includes/footer.html +8 -8
  43. data/lib/site_template/_includes/header.html +1 -1
  44. data/lib/site_template/css/main.css +7 -2
  45. data/lib/site_template/feed.xml +10 -1
  46. data/site/_config.yml +1 -0
  47. data/site/_data/docs.yml +1 -0
  48. data/site/_includes/anchor_links.html +28 -23
  49. data/site/_includes/css/font-awesome.css +3 -3
  50. data/site/_includes/css/style.css +4 -0
  51. data/site/_includes/news_contents.html +11 -1
  52. data/site/_includes/top.html +0 -1
  53. data/site/_layouts/default.html +1 -0
  54. data/site/_posts/2013-07-25-jekyll-1-0-4-released.markdown +1 -1
  55. data/site/_posts/2013-07-25-jekyll-1-1-2-released.markdown +1 -1
  56. data/site/_posts/2014-06-04-jekyll-stickers-1-dollar-stickermule.markdown +19 -0
  57. data/site/_posts/2014-06-28-jekyll-turns-21-i-mean-2-1-0.markdown +27 -0
  58. data/site/docs/collections.md +59 -1
  59. data/site/docs/configuration.md +91 -21
  60. data/site/docs/continuous-integration.md +177 -0
  61. data/site/docs/contributing.md +2 -2
  62. data/site/docs/datafiles.md +47 -3
  63. data/site/docs/deployment-methods.md +3 -3
  64. data/site/docs/extras.md +3 -5
  65. data/site/docs/history.md +86 -0
  66. data/site/docs/installation.md +3 -1
  67. data/site/docs/pagination.md +2 -1
  68. data/site/docs/permalinks.md +4 -4
  69. data/site/docs/plugins.md +6 -0
  70. data/site/docs/quickstart.md +0 -6
  71. data/site/docs/resources.md +1 -1
  72. data/site/docs/templates.md +1 -1
  73. data/site/docs/troubleshooting.md +1 -1
  74. data/site/docs/windows.md +2 -2
  75. data/site/fonts/FontAwesome.otf +0 -0
  76. data/site/fonts/fontawesome-webfont.eot +0 -0
  77. data/site/fonts/fontawesome-webfont.svg +469 -379
  78. data/site/fonts/fontawesome-webfont.ttf +0 -0
  79. data/site/fonts/fontawesome-webfont.woff +0 -0
  80. data/site/img/jekyll-sticker.jpg +0 -0
  81. data/test/helper.rb +0 -3
  82. data/test/source/_data/categories/dairy.yaml +6 -0
  83. data/test/source/_data/members.json +12 -0
  84. data/test/source/_methods/site/initialize.md +1 -2
  85. data/test/source/_posts/2009-01-27-no-category.textile +6 -0
  86. data/test/source/_slides/example-slide-1.html +4 -0
  87. data/test/source/_slides/example-slide-2.html +7 -0
  88. data/test/source/_with.dots/all.dots/2.4.0.md +5 -0
  89. data/test/source/_with.dots/file.with.dots.md +0 -0
  90. data/test/source/environment.html +5 -0
  91. data/test/test_cleaner.rb +77 -0
  92. data/test/test_collections.rb +52 -3
  93. data/test/test_command.rb +25 -28
  94. data/test/test_configuration.rb +10 -1
  95. data/test/test_document.rb +123 -0
  96. data/test/test_excerpt.rb +11 -0
  97. data/test/test_filters.rb +28 -2
  98. data/test/test_generated_site.rb +1 -1
  99. data/test/test_log_adapter.rb +59 -0
  100. data/test/test_post.rb +77 -0
  101. data/test/test_site.rb +51 -0
  102. data/test/test_tags.rb +11 -114
  103. data/test/test_utils.rb +2 -2
  104. metadata +76 -39
  105. data/lib/jekyll/generators/pagination.rb +0 -217
  106. data/lib/jekyll/tags/gist.rb +0 -47
  107. data/test/test_pager.rb +0 -118
@@ -278,40 +278,111 @@ before your site is served.
278
278
 
279
279
  ## Frontmatter defaults
280
280
 
281
- You can set default values for your [YAML frontmatter](../frontmatter/) variables
282
- in your configuration. This way, you can for example set default layouts or define
283
- defaults for your custom variables. Of course, any variable actually specified in
284
- the front matter overrides the defaults.
281
+ Using [YAML front-matter](../frontmatter/) is one way that you can specify configuration in the pages and posts for your site. Setting things like a default layout, or customizing the title, or specifying a more precise date/time for the post can all be added to your page or post front-matter.
285
282
 
286
- All defaults go under the `defaults` key, which holds a list of scope-values combinations ("default sets").
287
- The `scope` key defines for which files the defaults apply, limiting them by their source file `path` and
288
- optionally by their `type` (`page`, `post` or `draft`). The `values` key holds the actual list of defaults.
283
+ Often times, you will find that you are repeating a lot of configuration options. Setting the same layout in each file, adding the same category - or categories - to a post, etc. You can even add custom variables like author names, which might be the same for the majority of posts on your blog.
284
+
285
+ Instead of repeating this configuration each time you create a new post or page, Jekyll provides a way to set these defaults in the site configuration. To do this, you can specify site-wide defaults using the `defaults` key in the `_config.yml` file in your projects root directory.
286
+
287
+ The `defaults` key holds an array of scope/values pairs that define what defaults should be set for a particular file path, and optionally, a file type in that path.
288
+
289
+ Let's say that you want to add a default layout to all pages and posts in your site. You would add this to your `_config.yml` file:
289
290
 
290
- For example:
291
291
  {% highlight yaml %}
292
292
  defaults:
293
293
  -
294
294
  scope:
295
- path: "" # empty string for all files
295
+ path: "" # an empty string here means all files in the project
296
296
  values:
297
- layout: "my-site"
297
+ layout: "default"
298
+ {% endhighlight %}
299
+
300
+ Here, we are scoping the `values` to any file that exists in the scopes path. Since the path is set as an empty string, it will apply to **all files** in your project. You probably don't want to set a layout on every file in your project - like css files, for example - so you can also specify a `type` value under the `scope` key.
301
+
302
+ {% highlight yaml %}
303
+ defaults:
304
+ -
305
+ scope:
306
+ path: "" # an empty string here means all files in the project
307
+ type: "post"
308
+ values:
309
+ layout: "default"
310
+ {% endhighlight %}
311
+
312
+ Now, this will only set the layout for files where the type is `post`.
313
+ The different types that are available to you are `page`, `post`, `draft` or any collection in your site. While `type` is optional, you must specify a value for `path` when creating a `scope/values` pair.
314
+
315
+ As mentioned earlier, you can set multiple scope/values pairs for `defaults`.
316
+
317
+ {% highlight yaml %}
318
+ defaults:
298
319
  -
299
320
  scope:
300
- path: "about/blog"
321
+ path: ""
301
322
  type: "post"
302
323
  values:
303
- layout: "meta-blog" # overrides previous default layout
304
- author: "Dr. Hyde"
324
+ layout: "my-site"
325
+ -
326
+ scope:
327
+ path: "projects"
328
+ type: "page"
329
+ values:
330
+ layout: "project" # overrides previous default layout
331
+ author: "Mr. Hyde"
332
+ category: "project"
333
+ {% endhighlight %}
334
+
335
+ With these defaults, all posts would use the `my-site` layout. Any html files that exist in the `projects/` folder will use the `project` layout, if it exists. Those files will also have the `page.author` [liquid variable](../variables/) set to `Mr. Hyde` as well as have the category for the page set to `project`.
336
+
337
+ {% highlight yaml %}
338
+ collections:
339
+ - my_collection:
340
+ output: true
341
+
342
+ defaults:
343
+ -
344
+ scope:
345
+ path: ""
346
+ type: "my_collection" # a collection in your site
347
+ values:
348
+ layout: "default"
305
349
  {% endhighlight %}
306
350
 
307
- With these defaults, all pages and posts would default to the `my-site` layout except for the posts under `about/blog`,
308
- who would default to the `meta-blog` layout and also have the `page.author` [liquid variable](../variables/) set to `Dr. Hyde` by default.
351
+ In this example the `layout` is set to `default` inside the [collection](../collections) with the name `my_collection`.
309
352
 
310
353
  ### Precedence
311
- You can have multiple sets of frontmatter defaults that specify defaults for the same setting. In this case, for each page or post,
312
- the default set with the more specific scope takes precedence. This way, you can specify defaults for a path like `/site/blog` that would
313
- override any defaults for `/site`. Also, if the paths are equal, a scope with a specified type is more specific. If two sets are equally
314
- specific, the bottom-most takes precedence.
354
+
355
+ Jekyll will apply all of the configuration settings you specify in the `defaults` section of your `_config.yml` file. However, you can choose to override settings from other scope/values pair by specifying a more specific path for the scope.
356
+
357
+ You can see that in the last example above. First, we set the default layout to `my-site`. Then, using a more specific path, we set the default layout for files in the `projects/` path to `project`. This can be done with any value that you would set in the page or post front-matter.
358
+
359
+ Finally, if you set defaults in the site configuration by adding a `defaults` section to your `_config.yml` file, you can override those settings in a post or page file. All you need to do is specify the settings in the post or page front-matter. For example:
360
+
361
+ {% highlight yaml %}
362
+ # In _config.yml
363
+ ...
364
+ defaults:
365
+ -
366
+ scope:
367
+ path: "projects"
368
+ type: "page"
369
+ values:
370
+ layout: "project"
371
+ author: "Mr. Hyde"
372
+ category: "project"
373
+ ...
374
+ {% endhighlight %}
375
+
376
+ {% highlight yaml %}
377
+ # In projects/foo_project.md
378
+ ---
379
+ author: "John Smith"
380
+ layout: "foobar"
381
+ ---
382
+ The post text goes here...
383
+ {% endhighlight %}
384
+
385
+ The `projects/foo_project.md` would have the `layout` set to `foobar` instead of `project` and the `author` set to `John Smith` instead of `Mr. Hyde` when the site is built.
315
386
 
316
387
  ## Default Configuration
317
388
 
@@ -341,7 +412,7 @@ timezone: nil
341
412
  encoding: nil
342
413
 
343
414
  future: true
344
- show_drafts: nil
415
+ show_drafts: false
345
416
  limit_posts: 0
346
417
  highlighter: pygments
347
418
 
@@ -363,7 +434,6 @@ server: false # deprecated
363
434
  host: 0.0.0.0
364
435
  port: 4000
365
436
  baseurl: ""
366
- url: http://localhost:4000
367
437
  lsi: false
368
438
 
369
439
  maruku:
@@ -0,0 +1,177 @@
1
+ ---
2
+ layout: docs
3
+ title: Continuous Integration
4
+ prev_section: deployment-methods
5
+ next_section: troubleshooting
6
+ permalink: /docs/continuous-integration/
7
+ ---
8
+
9
+ You can easily test your website build against one or more versions of Ruby.
10
+ The following guide will show you how to set up a free build environment on
11
+ [Travis][0], with [GitHub][1] integration for pull requests. Paid
12
+ alternatives exist for private repositories.
13
+
14
+ [0]: https://travis-ci.org/
15
+ [1]: https://github.com/
16
+
17
+ ## 1. Enabling Travis and GitHub
18
+
19
+ Enabling Travis builds for your GitHub repository is pretty simple:
20
+
21
+ 1. Go to your profile on travis-ci.org: https://travis-ci.org/profile/username
22
+ 2. Find the repository for which you're interested in enabling builds.
23
+ 3. Click the slider on the right so it says "ON" and is a dark grey.
24
+ 4. Optionally configure the build by clicking on the wrench icon. Further
25
+ configuration happens in you `.travis.yml` file. More details on that
26
+ below.
27
+
28
+ ## 2. The Test Script
29
+
30
+ The simplest test script simply runs `jekyll build` and ensures that Jekyll
31
+ doesn't fail to build the site. It doesn't check the resulting site, but it
32
+ does ensure things are built properly.
33
+
34
+ When testing Jekyll output, there is no better tool than [html-proofer][2].
35
+ This tool checks your resulting site to ensure all links and images exist.
36
+ Utilize it either with the convenient `htmlproof` command-line executable,
37
+ or write a Ruby script which utilizes the gem.
38
+
39
+ ### The HTML Proofer Executable
40
+
41
+ {% highlight bash %}
42
+ #!/usr/bin/env bash
43
+ set -e # halt script on error
44
+
45
+ bundle exec jekyll build
46
+ bundle exec htmlproof ./_site
47
+ {% endhighlight %}
48
+
49
+ Some options can be specified via command-line switches. Check out the
50
+ `html-proofer` README for more information about these switches, or run
51
+ `htmlproof --help` locally.
52
+
53
+ ### The HTML Proofer Library
54
+
55
+ You can also invoke `html-proofer` in Ruby scripts (e.g. in a Rakefile):
56
+
57
+ {% highlight ruby %}
58
+ #!/usr/bin/env ruby
59
+
60
+ require 'html/proofer'
61
+ HTML::Proofer.new("./_site").run
62
+ {% endhighlight %}
63
+
64
+ Options are given as a second argument to `.new`, and are encoded in a
65
+ symbol-keyed Ruby Hash. More information about the configuration options,
66
+ check out `html-proofer`'s README file.
67
+
68
+ [2]: https://github.com/gjtorikian/html-proofer
69
+
70
+ ## 3. Configuring Your Travis Builds
71
+
72
+ This file is used to configure your Travis builds. Because Jekyll is built
73
+ with Ruby and requires RubyGems to install, we use the Ruby language build
74
+ environment. Below is a sample `.travis.yml` file, and what follows that is
75
+ an explanation of each line.
76
+
77
+ {% highlight yaml %}
78
+ language: ruby
79
+ rvm:
80
+ - 2.1
81
+ script: ./script/cibuild
82
+
83
+ # branch whitelist
84
+ branches:
85
+ only:
86
+ - gh-pages # test the gh-pages branch
87
+ - /pages-(.*)/ # test every branch which starts with "pages-"
88
+
89
+ env:
90
+ global:
91
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
92
+ {% endhighlight %}
93
+
94
+ Ok, now for an explanation of each line:
95
+
96
+ {% highlight yaml %}
97
+ language: ruby
98
+ {% endhighlight %}
99
+
100
+ This line tells Travis to use a Ruby build container. It gives your script
101
+ access to Bundler, RubyGems, and and Ruby runtime.
102
+
103
+ {% highlight yaml %}
104
+ rvm:
105
+ - 2.1
106
+ {% endhighlight %}
107
+
108
+ RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This
109
+ directive tells Travis the Ruby version to use when running your test
110
+ script.
111
+
112
+ {% highlight yaml %}
113
+ script: ./script/cibuild
114
+ {% endhighlight %}
115
+
116
+ Travis allows you to run any arbitrary shell script to test your site. One
117
+ convention is to put all scripts for your project in the `script`
118
+ directory, and to call your test script `cibuild`. This line is completely
119
+ customizable. If your script won't change much, you can write your test
120
+ incantation here directly:
121
+
122
+ {% highlight yaml %}
123
+ script: jekyll build && htmlproof ./_site
124
+ {% endhighlight %}
125
+
126
+ The `script` directive can be absolutely any valid shell command.
127
+
128
+ {% highlight yaml %}
129
+ # branch whitelist
130
+ branches:
131
+ only:
132
+ - gh-pages # test the gh-pages branch
133
+ - /pages-(.*)/ # test every branch which starts with "pages-"
134
+ {% endhighlight %}
135
+
136
+ You want to ensure the Travis builds for your site are being run only on
137
+ the branch or branches which contain your site. One means of ensuring this
138
+ isolation is including a branch whitelist in your Travis configuration
139
+ file. By specifying the `gh-pages` branch, you will ensure the associated
140
+ test script (discussed above) is only executed on site branches. If you use
141
+ a pull request flow for proposing changes, you may wish to enforce a
142
+ convention for your builds such that all branches containing edits are
143
+ prefixed, exemplified above with the `/pages-(.*)/` regular expression.
144
+
145
+ The `branches` directive is completely optional.
146
+
147
+ {% highlight yaml %}
148
+ env:
149
+ global:
150
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
151
+ {% endhighlight %}
152
+
153
+ Using `html-proofer`? You'll want this environment variable. Nokogiri, used
154
+ to parse HTML files in your compiled site, comes bundled with libraries
155
+ which it must compile each time it is installed. Luckily, you can
156
+ dramatically increase the install time of Nokogiri by setting the
157
+ environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`.
158
+
159
+ ## 4. Gotchas
160
+
161
+ ### Exclude `vendor`
162
+
163
+ Travis bundles all gems in the `vendor` directory on its build servers,
164
+ which Jekyll will mistakenly read and explode on. To avoid this, exclude
165
+ `vendor` in your `_config.yml`:
166
+
167
+ {% highlight yaml %}
168
+ exclude: [vendor]
169
+ {% endhighlight %}
170
+
171
+ ### Questions?
172
+
173
+ This entire guide is open-source. Go ahead and [edit it][3] if you have a
174
+ fix or [ask for help][4] if you run into trouble and need some help.
175
+
176
+ [3]: https://github.com/jekyll/jekyll/edit/master/site/docs/continuous-integration.md
177
+ [4]: https://github.com/jekyll/jekyll-help#how-do-i-ask-a-question
@@ -11,8 +11,8 @@ following in mind:
11
11
 
12
12
  * If you're creating a small fix or patch to an existing feature, just a simple
13
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).
14
+ [Shoulda](https://github.com/thoughtbot/shoulda/tree/master) and
15
+ [RR](https://github.com/btakita/rr/tree/master).
16
16
  * If it's a brand new feature, make sure to create a new
17
17
  [Cucumber](https://github.com/cucumber/cucumber/) feature and reuse steps
18
18
  where appropriate. Also, whipping up some documentation in your fork's `site`
@@ -8,9 +8,9 @@ permalink: /docs/datafiles/
8
8
 
9
9
  In addition to the [built-in variables](../variables/) available from Jekyll,
10
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).
11
+ templating system](https://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/) and [JSON](http://www.json.org/) files located in the
14
14
  `_data` directory.
15
15
 
16
16
  This powerful feature allows you to avoid repetition in your templates and to
@@ -22,7 +22,7 @@ Plugins/themes can also leverage Data Files to set configuration variables.
22
22
 
23
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
- your site. These files must be YAML files (using either the `.yml` or `.yaml`
25
+ your site. These files must be YAML files (using either the `.yml`, `.yaml` or `.json`
26
26
  extension) and they will be accessible via `site.data`.
27
27
 
28
28
  ## Example: List of members
@@ -61,3 +61,47 @@ You can now render the list of members in a template:
61
61
  </ul>
62
62
  {% endraw %}
63
63
  {% endhighlight %}
64
+
65
+ ## Example: Organizations
66
+
67
+ Data files can also be placed in sub-folders of the `_data` folder. Each folder level will be added to a variable's namespace. The example bellow shows how GitHub organizations could be defined separately in a file under the `orgs` folder:
68
+
69
+ In `_data/orgs/jekyll.yml`:
70
+
71
+ {% highlight yaml %}
72
+ username: jekyll
73
+ name: Jekyll
74
+ members:
75
+ - name: Tom Preston-Werner
76
+ github: mojombo
77
+
78
+ - name: Parker Moore
79
+ github: parkr
80
+ {% endhighlight %}
81
+
82
+ In `_data/orgs/doeorg.yml`:
83
+
84
+ {% highlight yaml %}
85
+ username: doeorg
86
+ name: Doe Org
87
+ members:
88
+ - name: John Doe
89
+ github: jdoe
90
+ {% endhighlight %}
91
+
92
+ The organizations can then be accessed via `site.data.orgs`, followed by the file name:
93
+
94
+ {% highlight html %}
95
+ {% raw %}
96
+ <ul>
97
+ {% for org in site.data.orgs %}
98
+ <li>
99
+ <a href="https://github.com/{{ org.username }}">
100
+ {{ org.name }}
101
+ </a>
102
+ ({{ org.members | size }} members)
103
+ </li>
104
+ {% endfor %}
105
+ </ul>
106
+ {% endraw %}
107
+ {% endhighlight %}
@@ -80,19 +80,19 @@ Another way to deploy your Jekyll site is to use [Rake](https://github.com/jimwe
80
80
 
81
81
  ### rsync
82
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
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](https://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
84
  this script from within Textmate.
85
85
 
86
86
 
87
87
  ## Rack-Jekyll
88
88
 
89
- [Rack-Jekyll](http://github.com/adaoraul/rack-jekyll/) is an easy way to deploy your site on any Rack server such as Amazon EC2, Slicehost, Heroku, and so forth. It also can run with [shotgun](http://github.com/rtomakyo/shotgun/), [rackup](http://github.com/rack/rack), [mongrel](http://github.com/mongrel/mongrel), [unicorn](http://github.com/defunkt/unicorn/), and [others](https://github.com/adaoraul/rack-jekyll#readme).
89
+ [Rack-Jekyll](https://github.com/adaoraul/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](https://github.com/rtomakyo/shotgun/), [rackup](https://github.com/rack/rack), [mongrel](https://github.com/mongrel/mongrel), [unicorn](https://github.com/defunkt/unicorn/), and [others](https://github.com/adaoraul/rack-jekyll#readme).
90
90
 
91
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
92
 
93
93
  ## Jekyll-Admin for Rails
94
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.
95
+ If you want to maintain Jekyll inside your existing Rails app, [Jekyll-Admin](https://github.com/zkarpinski/Jekyll-Admin) contains drop in code to make this possible. See Jekyll-Admin’s [README](https://github.com/zkarpinski/Jekyll-Admin/blob/master/README) for more details.
96
96
 
97
97
  ## Amazon S3
98
98
 
@@ -12,9 +12,7 @@ may want to install, depending on how you plan to use Jekyll.
12
12
  ## LaTeX Support
13
13
 
14
14
  Maruku comes with optional support for LaTeX to PNG rendering via blahtex
15
- (Version 0.6) which must be in your `$PATH` along with `dvips`. If you need
16
- Maruku to not assume a fixed location for `dvips`, check out [Remi’s Maruku
17
- fork](http://github.com/remi/maruku).
15
+ (Version 0.6) which must be in your `$PATH` along with `dvips`.
18
16
 
19
17
  ## Alternative Markdown Processors
20
18
 
@@ -23,8 +21,8 @@ of the other three pre-defined markdown parsers or define your own.
23
21
 
24
22
  ### RDiscount
25
23
 
26
- If you prefer to use [RDiscount](http://github.com/rtomayko/rdiscount) instead
27
- of [Maruku](http://github.com/bhollis/maruku) for Markdown, just make sure you have
24
+ If you prefer to use [RDiscount](https://github.com/rtomayko/rdiscount) instead
25
+ of [Maruku](https://github.com/bhollis/maruku) for Markdown, just make sure you have
28
26
  it installed:
29
27
 
30
28
  {% highlight bash %}