jekyll 2.1.0 → 2.1.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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8630d257c463ffcf3ee92aad938ebd5975ff8c81
4
- data.tar.gz: 9a07f6df12e2bf48b25f987c43d33834a03f49fc
3
+ metadata.gz: 5510f33edfed966c633c208d23735d3e38c48ff9
4
+ data.tar.gz: 52f440324622ff8b6ec21b9f3be4e1389ce1f5c4
5
5
  SHA512:
6
- metadata.gz: 6ea2a31ab0006db1f258c101679ab98c9c401eb7738d18dec74f72c745f231e8fede3dc46a7e4582870b0210d75b407a669203416980fe3316e3ceec9bf0c470
7
- data.tar.gz: d081db50caabc6c047916587691e5bac090967327f6508943c754d918f4ae0b9327e53a6b716147c5654e592f9c42bde75065808b5c8009e6b2749335b55976b
6
+ metadata.gz: 7e9ae32caf9787927f2cfec615b614d523c40948c7b7795a1387bc57b073459483babe3cf52ac1a525813d1c2cf9f0a3f0ee30e20919c91a38316338dda1dccf
7
+ data.tar.gz: fa070a7a332ad16d5671da91a1e9f739b7911b32baa87e6f882fd1920a4db39de70847d7bf679386a9f5ac027094cbce4e6b58c061a379ba7634d814a5a50dec
data/History.markdown CHANGED
@@ -10,6 +10,21 @@
10
10
 
11
11
  ### Site Enhancements
12
12
 
13
+ ## 2.1.1 / 2014-07-01
14
+
15
+ ### Bug Fixes
16
+
17
+ * Patch read vulnerabilities for data & confirm none for layouts (#2563)
18
+ * Update Maruku dependency to allow use of the latest version (#2576)
19
+ * Remove conditional assignment from document URL to prevent stale urls (#2575)
20
+
21
+ ### Site Enhancements
22
+
23
+ * Add vertical margin to `highlight` to separate code blocks (#2558)
24
+ * Add `html_pages` to Variables docs (#2567)
25
+ * Fixed broken link to Permalinks page (#2572)
26
+ * Update link to Windows installation guide (#2578)
27
+
13
28
  ## 2.1.0 / 2014-06-28
14
29
 
15
30
  ### Minor Enhancements
@@ -45,7 +45,7 @@ Feature: Markdown
45
45
  When I run jekyll build
46
46
  Then the _site directory should exist
47
47
  And I should see "My awesome code" in "_site/index.html"
48
- And I should see "<pre><code>\nMy awesome code\n</code></pre>" in "_site/index.html"
48
+ And I should see "<pre><code>My awesome code</code></pre>" in "_site/index.html"
49
49
 
50
50
  Scenario: Maruku fenced codeblocks
51
51
  Given I have a configuration file with "markdown" set to "maruku"
@@ -64,4 +64,4 @@ Feature: Markdown
64
64
  When I run jekyll build
65
65
  Then the _site directory should exist
66
66
  And I should see "My awesome string" in "_site/index.html"
67
- And I should see "<pre class="ruby"><code class="ruby">\nputs &quot;My awesome string&quot;\n</code></pre>" in "_site/index.html"
67
+ And I should see "<pre class="ruby"><code class="ruby">puts &quot;My awesome string&quot;</code></pre>" in "_site/index.html"
@@ -273,3 +273,11 @@ Feature: Site configuration
273
273
  And I should see "Whatever" in "_site/index.html"
274
274
  And the "_site/test.txt" file should exist
275
275
  And I should see "this is a test" in "_site/test.txt"
276
+
277
+ Scenario: arbitrary file reads via layouts
278
+ Given I have an "index.html" page with layout "page" that contains "FOO"
279
+ And I have a "_config.yml" file that contains "layouts: '../../../../../../../../../../../../../../usr/include'"
280
+ When I run jekyll build
281
+ Then the _site directory should exist
282
+ And I should see "FOO" in "_site/index.html"
283
+ And I should not see " " in "_site/index.html"
data/jekyll.gemspec CHANGED
@@ -50,7 +50,7 @@ Gem::Specification.new do |s|
50
50
  s.add_development_dependency('rr', "~> 1.1")
51
51
  s.add_development_dependency('cucumber', "1.3.11")
52
52
  s.add_development_dependency('RedCloth', "~> 4.2")
53
- s.add_development_dependency('maruku', "0.7.0")
53
+ s.add_development_dependency('maruku', "~> 0.7.0")
54
54
  s.add_development_dependency('rdiscount', "~> 1.6")
55
55
  s.add_development_dependency('launchy', "~> 2.3")
56
56
  s.add_development_dependency('simplecov', "~> 0.7")
@@ -43,7 +43,7 @@ module Jekyll
43
43
  # Returns nothing.
44
44
  def read_yaml(base, name, opts = {})
45
45
  begin
46
- self.content = File.read(File.join(base, name),
46
+ self.content = File.read(Jekyll.sanitized_path(base, name),
47
47
  merged_file_read_opts(opts))
48
48
  if content =~ /\A(---\s*\n.*?\n?)^((---|\.\.\.)\s*$\n?)/m
49
49
  self.content = $POSTMATCH
@@ -127,7 +127,7 @@ module Jekyll
127
127
  #
128
128
  # Returns the computed URL for the document.
129
129
  def url
130
- @url ||= URL.new({
130
+ @url = URL.new({
131
131
  template: url_template,
132
132
  placeholders: url_placeholders,
133
133
  permalink: permalink
data/lib/jekyll/site.rb CHANGED
@@ -195,7 +195,7 @@ module Jekyll
195
195
  #
196
196
  # Returns nothing
197
197
  def read_data(dir)
198
- base = File.join(source, dir)
198
+ base = Jekyll.sanitized_path(source, dir)
199
199
  read_data_to(base, self.data)
200
200
  end
201
201
 
@@ -214,7 +214,7 @@ module Jekyll
214
214
  end
215
215
 
216
216
  entries.each do |entry|
217
- path = File.join(dir, entry)
217
+ path = Jekyll.sanitized_path(dir, entry)
218
218
  next if File.symlink?(path) && safe
219
219
 
220
220
  key = sanitize_filename(File.basename(entry, '.*'))
@@ -1,3 +1,3 @@
1
1
  module Jekyll
2
- VERSION = '2.1.0'
2
+ VERSION = '2.1.1'
3
3
  end
@@ -699,6 +699,7 @@ pre, code {
699
699
  }
700
700
 
701
701
  .highlight {
702
+ margin: 1em 0;
702
703
  padding: 10px 0;
703
704
  width: 100%;
704
705
  overflow: auto;
@@ -25,3 +25,7 @@ things to look forward to:
25
25
  Let's go party!
26
26
 
27
27
  *Check out the [full changelog](/docs/history/) for more.*
28
+
29
+ Many thanks to these 37 contributors for the 2.1.0 release:
30
+
31
+ Alberto Grespan, Alessandro Lorenzi, Alex Medearis, Alfred Xing, Anatol Broder, Ben, Ben Balter, Bud Parr, Chezou, Denilson Figueiredo de Sá, Denilson Sá, Ivan Tse, Jens Nazarenus, Jesse Shawl, Jordon Bedwell, Josh Davis, János Rusiczki, Marc Ransome, Mathieu Bruyen, Matt Rogers, Parker Moore, Pat Hawks, Paul Henry, Peter Rhoades, Philipp Rudloff, Quinn Shanahan, Renaud Martinet, Rob Murray, Rodrigo Dumont, Simon Sarris, Terry, Terry Schmidt, Tomer Cohen, XhmikosR, Yihang Ho, jaybe@jekyll, and mikecole.
@@ -0,0 +1,30 @@
1
+ ---
2
+ layout: news_item
3
+ title: 'Jekyll 2.1.1 Released'
4
+ date: 2014-07-01 20:16:43 -0400
5
+ author: parkr
6
+ version: 2.1.1
7
+ categories: [release]
8
+ ---
9
+
10
+ This is a minor release for Jekyll 2.1.0. It fixes a couple bugs and
11
+ introduces fixes for a couple security-related issues.
12
+
13
+ It covers two security vulnerabilities:
14
+
15
+ 1. One in the reading of data
16
+ 2. One in the `layouts` setting
17
+
18
+ They were identified in Jekyll 1.5.1 and has been confirmed as patched
19
+ in this version and the version used by GitHub Pages. If you are in the
20
+ business of building Jekyll sites, please ensure you upgrade to 2.1.1 as
21
+ soon as possible.
22
+
23
+ For more, check out [`jekyll/jekyll#2563`](https://github.com/jekyll/jekyll/pull/2563).
24
+
25
+ Additionally, the dependency on Maruku has been loosened and a bug was
26
+ fixed with document URLs.
27
+
28
+ As always, check out the [full changelog](/docs/history/) for more info!
29
+
30
+ Happy Jekylling!
@@ -56,7 +56,7 @@ For example, if you have `_my_collection/some_subdir/some_doc.md`,
56
56
  it will be rendered using Liquid and the Markdown converter of your
57
57
  choice and written out to `<dest>/my_collection/some_subdir/some_doc.html`.
58
58
 
59
- As for posts with [Permalinks](../Permalinks/), document URL can be customized by setting a `permalink` metadata to the collection:
59
+ As for posts with [Permalinks](../permalinks/), document URL can be customized by setting a `permalink` metadata to the collection:
60
60
 
61
61
  {% highlight yaml %}
62
62
  collections:
@@ -94,7 +94,8 @@ The organizations can then be accessed via `site.data.orgs`, followed by the fil
94
94
  {% highlight html %}
95
95
  {% raw %}
96
96
  <ul>
97
- {% for org in site.data.orgs %}
97
+ {% for org_hash in site.data.orgs %}
98
+ {% assign org = org_hash[1] %}
98
99
  <li>
99
100
  <a href="https://github.com/{{ org.username }}">
100
101
  {{ org.name }}
@@ -122,6 +122,30 @@ following is a reference of the available data.
122
122
 
123
123
  </p></td>
124
124
  </tr>
125
+ <tr>
126
+ <td><p><code>site.html_pages</code></p></td>
127
+ <td><p>
128
+
129
+ A list of all HTML Pages.
130
+
131
+ </p></td>
132
+ </tr>
133
+ <tr>
134
+ <td><p><code>site.collections</code></p></td>
135
+ <td><p>
136
+
137
+ A list of all the collections.
138
+
139
+ </p></td>
140
+ </tr>
141
+ <tr>
142
+ <td><p><code>site.data</code></p></td>
143
+ <td><p>
144
+
145
+ A list containing the data loaded from the YAML files located in the <code>_data</code> directory.
146
+
147
+ </p></td>
148
+ </tr>
125
149
  <tr>
126
150
  <td><p><code>site.documents</code></p></td>
127
151
  <td><p>
data/site/docs/windows.md CHANGED
@@ -29,7 +29,7 @@ the site generation process. It can be done with the following command:
29
29
  $ chcp 65001
30
30
  {% endhighlight %}
31
31
 
32
- [windows-installation]: https://github.com/juthilo/run-jekyll-on-windows
32
+ [windows-installation]: http://jekyll-windows.juthilo.com/
33
33
 
34
34
  ## Auto-regeneration
35
35
 
@@ -0,0 +1,5 @@
1
+ ---
2
+ title: Override permalink
3
+ layout: slide
4
+ permalink: /slide/3/
5
+ ---
@@ -165,6 +165,28 @@ class TestDocument < Test::Unit::TestCase
165
165
  end
166
166
  end
167
167
 
168
+ context "a document in a collection with a custom permalink" do
169
+ setup do
170
+ @site = Site.new(Jekyll.configuration({
171
+ "collections" => ["slides"],
172
+ "source" => source_dir,
173
+ "destination" => dest_dir
174
+ }))
175
+ @site.process
176
+ @document = @site.collections["slides"].docs[2]
177
+ @dest_file = dest_dir("slide/3/index.html")
178
+ end
179
+
180
+ should "know its permalink" do
181
+ assert_equal "/slide/3/", @document.permalink
182
+ end
183
+
184
+ should "produce the right URL" do
185
+ assert_equal "/slide/3/", @document.url
186
+ end
187
+ end
188
+
189
+
168
190
  context " a document part of a rendered collection" do
169
191
  end
170
192
 
data/test/test_tags.rb CHANGED
@@ -75,13 +75,13 @@ CONTENT
75
75
 
76
76
  tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table cssclass=hl', ["test", "{% endhighlight %}", "\n"])
77
77
  assert_equal({ :cssclass => 'hl', :linenos => 'table' }, tag.instance_variable_get(:@options))
78
-
78
+
79
79
  tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table cssclass=hl hl_linenos=3', ["test", "{% endhighlight %}", "\n"])
80
80
  assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => '3' }, tag.instance_variable_get(:@options))
81
-
81
+
82
82
  tag = Jekyll::Tags::HighlightBlock.new('highlight', 'ruby linenos=table cssclass=hl hl_linenos="3 5 6"', ["test", "{% endhighlight %}", "\n"])
83
83
  assert_equal({ :cssclass => 'hl', :linenos => 'table', :hl_linenos => ['3', '5', '6'] }, tag.instance_variable_get(:@options))
84
-
84
+
85
85
  tag = Jekyll::Tags::HighlightBlock.new('highlight', 'Ruby ', ["test", "{% endhighlight %}", "\n"])
86
86
  assert_equal "ruby", tag.instance_variable_get(:@lang), "lexers should be case insensitive"
87
87
  end
@@ -420,9 +420,8 @@ CONTENT
420
420
  )
421
421
  end
422
422
 
423
- # todo: if #112 is merged into maruku, update to remove the newlines inside code block
424
423
  should "render fenced code blocks" do
425
- assert_match %r{<pre class=\"ruby\"><code class=\"ruby\">\nputs &quot;Hello world&quot;\n</code></pre>}, @result.strip
424
+ assert_match %r{<pre class=\"ruby\"><code class=\"ruby\">puts &quot;Hello world&quot;</code></pre>}, @result.strip
426
425
  end
427
426
  end
428
427
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-29 00:00:00.000000000 Z
11
+ date: 2014-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: liquid
@@ -308,14 +308,14 @@ dependencies:
308
308
  name: maruku
309
309
  requirement: !ruby/object:Gem::Requirement
310
310
  requirements:
311
- - - '='
311
+ - - "~>"
312
312
  - !ruby/object:Gem::Version
313
313
  version: 0.7.0
314
314
  type: :development
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
- - - '='
318
+ - - "~>"
319
319
  - !ruby/object:Gem::Version
320
320
  version: 0.7.0
321
321
  - !ruby/object:Gem::Dependency
@@ -602,6 +602,7 @@ files:
602
602
  - site/_posts/2014-05-08-jekyll-2-0-3-released.markdown
603
603
  - site/_posts/2014-06-04-jekyll-stickers-1-dollar-stickermule.markdown
604
604
  - site/_posts/2014-06-28-jekyll-turns-21-i-mean-2-1-0.markdown
605
+ - site/_posts/2014-07-01-jekyll-2-1-1-released.markdown
605
606
  - site/css/screen.css
606
607
  - site/docs/assets.md
607
608
  - site/docs/collections.md
@@ -727,6 +728,7 @@ files:
727
728
  - test/source/_sass/_grid.scss
728
729
  - test/source/_slides/example-slide-1.html
729
730
  - test/source/_slides/example-slide-2.html
731
+ - test/source/_slides/example-slide-3.html
730
732
  - test/source/_with.dots/all.dots/2.4.0.md
731
733
  - test/source/_with.dots/file.with.dots.md
732
734
  - test/source/about.html
@@ -897,6 +899,7 @@ test_files:
897
899
  - test/source/_sass/_grid.scss
898
900
  - test/source/_slides/example-slide-1.html
899
901
  - test/source/_slides/example-slide-2.html
902
+ - test/source/_slides/example-slide-3.html
900
903
  - test/source/_with.dots/all.dots/2.4.0.md
901
904
  - test/source/_with.dots/file.with.dots.md
902
905
  - test/source/about.html