jekyll-docs 3.4.3 → 3.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll-docs.rb +1 -1
  3. data/site/404.html +5 -11
  4. data/site/community/index.html +9 -15
  5. data/site/css/screen.css +1 -1468
  6. data/site/docs/assets/index.html +20 -16
  7. data/site/docs/collections/index.html +115 -109
  8. data/site/docs/conduct/index.html +19 -15
  9. data/site/docs/configuration/index.html +39 -23
  10. data/site/docs/continuous-integration/buddyworks/index.html +728 -0
  11. data/site/docs/continuous-integration/circleci/index.html +19 -15
  12. data/site/docs/continuous-integration/index.html +20 -15
  13. data/site/docs/continuous-integration/travis-ci/index.html +21 -18
  14. data/site/docs/contributing/index.html +20 -16
  15. data/site/docs/datafiles/index.html +23 -15
  16. data/site/docs/deployment-methods/index.html +24 -20
  17. data/site/docs/drafts/index.html +19 -15
  18. data/site/docs/extras/index.html +31 -16
  19. data/site/docs/frontmatter/index.html +28 -15
  20. data/site/docs/github-pages/index.html +21 -17
  21. data/site/docs/history/index.html +521 -315
  22. data/site/docs/home/index.html +16 -15
  23. data/site/docs/includes/index.html +21 -17
  24. data/site/docs/installation/index.html +41 -31
  25. data/site/docs/maintaining/affinity-team-captain/index.html +19 -15
  26. data/site/docs/maintaining/avoiding-burnout/index.html +19 -15
  27. data/site/docs/maintaining/becoming-a-maintainer/index.html +19 -15
  28. data/site/docs/maintaining/index.html +19 -15
  29. data/site/docs/maintaining/merging-a-pull-request/index.html +19 -15
  30. data/site/docs/maintaining/reviewing-a-pull-request/index.html +19 -15
  31. data/site/docs/maintaining/special-labels/index.html +23 -15
  32. data/site/docs/maintaining/triaging-an-issue/index.html +20 -16
  33. data/site/docs/migrations/index.html +19 -15
  34. data/site/docs/pages/index.html +19 -15
  35. data/site/docs/pagination/index.html +19 -15
  36. data/site/docs/permalinks/index.html +19 -15
  37. data/site/docs/plugins/index.html +36 -23
  38. data/site/docs/posts/index.html +23 -19
  39. data/site/docs/quickstart/index.html +18 -17
  40. data/site/docs/resources/index.html +19 -15
  41. data/site/docs/sites/index.html +22 -15
  42. data/site/docs/static-files/index.html +52 -15
  43. data/site/docs/structure/index.html +19 -15
  44. data/site/docs/templates/index.html +29 -25
  45. data/site/docs/themes/index.html +65 -39
  46. data/site/docs/troubleshooting/index.html +41 -19
  47. data/site/docs/upgrading/0-to-2/index.html +19 -15
  48. data/site/docs/upgrading/2-to-3/index.html +20 -16
  49. data/site/docs/upgrading/index.html +22 -15
  50. data/site/docs/usage/index.html +20 -16
  51. data/site/docs/variables/index.html +19 -15
  52. data/site/docs/windows/index.html +135 -136
  53. data/site/feed.xml +228 -180
  54. data/site/help/index.html +11 -13
  55. data/site/img/jekylllayoutconcept.png +0 -0
  56. data/site/index.html +7 -14
  57. data/site/latest_version.txt +1 -1
  58. data/site/news/2013/05/05/jekyll-1-0-0-released/index.html +33 -19
  59. data/site/news/2013/05/08/jekyll-1-0-1-released/index.html +33 -19
  60. data/site/news/2013/05/12/jekyll-1-0-2-released/index.html +33 -19
  61. data/site/news/2013/06/07/jekyll-1-0-3-released/index.html +33 -19
  62. data/site/news/2013/07/14/jekyll-1-1-0-released/index.html +33 -19
  63. data/site/news/2013/07/24/jekyll-1-1-1-released/index.html +33 -19
  64. data/site/news/2013/07/25/jekyll-1-0-4-released/index.html +33 -19
  65. data/site/news/2013/07/25/jekyll-1-1-2-released/index.html +33 -19
  66. data/site/news/2013/09/06/jekyll-1-2-0-released/index.html +33 -19
  67. data/site/news/2013/09/14/jekyll-1-2-1-released/index.html +33 -19
  68. data/site/news/2013/10/28/jekyll-1-3-0-rc1-released/index.html +33 -19
  69. data/site/news/2013/11/04/jekyll-1-3-0-released/index.html +33 -19
  70. data/site/news/2013/11/26/jekyll-1-3-1-released/index.html +33 -19
  71. data/site/news/2013/12/07/jekyll-1-4-0-released/index.html +33 -19
  72. data/site/news/2013/12/09/jekyll-1-4-1-released/index.html +33 -19
  73. data/site/news/2013/12/16/jekyll-1-4-2-released/index.html +33 -19
  74. data/site/news/2014/01/13/jekyll-1-4-3-released/index.html +33 -19
  75. data/site/news/2014/03/24/jekyll-1-5-0-released/index.html +33 -19
  76. data/site/news/2014/03/27/jekyll-1-5-1-released/index.html +33 -19
  77. data/site/news/2014/05/06/jekyll-turns-2-0-0/index.html +33 -19
  78. data/site/news/2014/05/08/jekyll-2-0-3-released/index.html +33 -19
  79. data/site/news/2014/06/04/jekyll-stickers-1-dollar-stickermule/index.html +35 -21
  80. data/site/news/2014/06/28/jekyll-turns-21-i-mean-2-1-0/index.html +33 -19
  81. data/site/news/2014/07/01/jekyll-2-1-1-released/index.html +33 -19
  82. data/site/news/2014/07/29/jekyll-2-2-0-released/index.html +33 -19
  83. data/site/news/2014/08/10/jekyll-2-3-0-released/index.html +33 -19
  84. data/site/news/2014/09/09/jekyll-2-4-0-released/index.html +33 -19
  85. data/site/news/2014/11/05/jekylls-midlife-crisis-jekyll-turns-2-5-0/index.html +33 -19
  86. data/site/news/2014/11/09/jekyll-2-5-1-released/index.html +33 -19
  87. data/site/news/2014/11/12/jekyll-2-5-2-released/index.html +33 -19
  88. data/site/news/2014/12/17/alfredxing-welcome-to-jekyll-core/index.html +33 -19
  89. data/site/news/2014/12/22/jekyll-2-5-3-released/index.html +33 -19
  90. data/site/news/2015/01/20/jekyll-meet-and-greet/index.html +33 -19
  91. data/site/news/2015/01/24/jekyll-3-0-0-beta1-released/index.html +33 -19
  92. data/site/news/2015/02/26/introducing-jekyll-talk/index.html +33 -19
  93. data/site/news/2015/10/26/jekyll-3-0-released/index.html +33 -19
  94. data/site/news/2015/11/17/jekyll-3-0-1-released/index.html +33 -19
  95. data/site/news/2016/01/20/jekyll-3-0-2-released/index.html +33 -19
  96. data/site/news/2016/01/24/jekyll-3-1-0-released/index.html +33 -19
  97. data/site/news/2016/01/28/jekyll-3-1-1-released/index.html +33 -19
  98. data/site/news/2016/02/08/jekyll-3-0-3-released/index.html +33 -19
  99. data/site/news/2016/02/19/jekyll-3-1-2-released/index.html +33 -19
  100. data/site/news/2016/03/10/making-it-easier-to-contribute-to-jekyll/index.html +33 -19
  101. data/site/news/2016/04/19/jekyll-3-0-4-released/index.html +33 -19
  102. data/site/news/2016/04/19/jekyll-3-1-3-released/index.html +33 -19
  103. data/site/news/2016/04/26/jekyll-3-0-5-released/index.html +33 -19
  104. data/site/news/2016/05/18/jekyll-3-1-4-released/index.html +33 -19
  105. data/site/news/2016/05/18/jekyll-3-1-5-released/index.html +33 -19
  106. data/site/news/2016/05/19/jekyll-3-1-6-released/index.html +33 -19
  107. data/site/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/index.html +33 -19
  108. data/site/news/2016/07/26/jekyll-3-2-0-released/index.html +35 -21
  109. data/site/news/2016/08/02/jekyll-3-2-1-released/index.html +34 -20
  110. data/site/news/2016/08/24/jekyll-admin-initial-release/index.html +33 -19
  111. data/site/news/2016/10/06/jekyll-3-3-is-here/index.html +35 -21
  112. data/site/news/2016/11/14/jekyll-3-3-1-released/index.html +34 -20
  113. data/site/news/2017/01/18/jekyll-3-4-0-released/index.html +36 -22
  114. data/site/news/2017/03/02/jekyll-3-4-1-released/index.html +651 -0
  115. data/site/news/2017/03/09/jekyll-3-4-2-released/index.html +592 -0
  116. data/site/news/2017/03/21/jekyll-3-4-3-released/index.html +588 -0
  117. data/site/news/2017/06/15/jekyll-3-5-0-released/index.html +581 -0
  118. data/site/news/2017/07/17/jekyll-3-5-1-released/index.html +561 -0
  119. data/site/news/index.html +405 -22
  120. data/site/news/releases/index.html +405 -22
  121. data/site/philosophy.html +46 -0
  122. data/site/sitemap.xml +95 -48
  123. data/site/tutorials/convert-site-to-jekyll/index.html +851 -0
  124. data/site/tutorials/custom-404-page/index.html +366 -0
  125. data/site/tutorials/home/index.html +323 -0
  126. data/site/tutorials/index.html +10 -0
  127. data/site/tutorials/navigation/index.html +908 -0
  128. data/site/tutorials/orderofinterpretation/index.html +459 -0
  129. metadata +20 -7
  130. data/site/feed.xslt.xml +0 -4
@@ -4,15 +4,17 @@
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
5
  <meta charset="UTF-8">
6
6
  <meta name="viewport" content="width=device-width,initial-scale=1">
7
- <meta name="generator" content="Jekyll v3.4.3">
7
+ <meta name="generator" content="Jekyll v3.5.1">
8
8
  <link type="application/atom+xml" rel="alternate" href="https://jekyllrb.com/feed.xml" title="Jekyll • Simple, blog-aware, static sites">
9
9
  <link rel="alternate" type="application/atom+xml" title="Recent commits to Jekyll’s master branch" href="https://github.com/jekyll/jekyll/commits/master.atom">
10
10
  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
11
11
  <link rel="stylesheet" href="/css/screen.css">
12
12
  <link rel="icon" type="image/x-icon" href="/favicon.ico">
13
- <!-- Begin Jekyll SEO tag v2.1.0 -->
14
- <title>Releases - Jekyll • Simple, blog-aware, static sites</title>
13
+ <!-- Begin Jekyll SEO tag v2.2.3 -->
14
+ <title>Releases | Jekyll • Simple, blog-aware, static sites</title>
15
15
  <meta property="og:title" content="Releases">
16
+ <meta name="author" content="all">
17
+ <meta property="og:locale" content="en_US">
16
18
  <meta name="description" content="Transform your plain text into static websites and blogs">
17
19
  <meta property="og:description" content="Transform your plain text into static websites and blogs">
18
20
  <link rel="canonical" href="https://jekyllrb.com/news/releases/">
@@ -23,14 +25,7 @@
23
25
  <meta name="twitter:creator" content="@all">
24
26
  <meta name="google-site-verification" content="onQcXpAvtHBrUI5LlroHNE_FP0b2qvFyPq7VZw36iEY">
25
27
  <script type="application/ld+json">
26
- {"@context": "http://schema.org",
27
- "@type": "WebPage",
28
- "headline": "Releases",
29
- "description": "Transform your plain text into static websites and blogs",
30
- "publisher": {"@type": "Organization",
31
- "logo": {"@type": "ImageObject",
32
- "url": "https://jekyllrb.com/img/logo-2x.png"}},
33
- "url": "https://jekyllrb.com/news/releases/"}</script>
28
+ {"@context":"http://schema.org","@type":"WebPage","headline":"Releases","author":{"@type":"Person","name":"all"},"description":"Transform your plain text into static websites and blogs","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://jekyllrb.com/img/logo-2x.png"},"name":"all"},"url":"https://jekyllrb.com/news/releases/"}</script>
34
29
  <!-- End Jekyll SEO tag -->
35
30
 
36
31
  <!--[if lt IE 9]>
@@ -60,7 +55,7 @@
60
55
  <a href="/help/">Help</a>
61
56
  </li>
62
57
  <li>
63
- <a href="https://github.com/jekyll/jekyll"><span class="hide-on-mobiles">View on </span>GitHub</a>
58
+ <a href="https://github.com/jekyll/jekyll">GitHub</a>
64
59
  </li>
65
60
  </ul>
66
61
 
@@ -92,7 +87,7 @@
92
87
  <a href="/help/">Help</a>
93
88
  </li>
94
89
  <li>
95
- <a href="https://github.com/jekyll/jekyll"><span class="hide-on-mobiles">View on </span>GitHub</a>
90
+ <a href="https://github.com/jekyll/jekyll">GitHub</a>
96
91
  </li>
97
92
  </ul>
98
93
 
@@ -110,6 +105,16 @@
110
105
  <option value="/news/">Home</option>
111
106
  <optgroup label="v1.x">
112
107
 
108
+ <option value="/news/2017/07/17/jekyll-3-5-1-released/">Jekyll 3.5.1 Released</option>
109
+
110
+ <option value="/news/2017/06/15/jekyll-3-5-0-released/">Jekyll turns 3.5, oh my!</option>
111
+
112
+ <option value="/news/2017/03/21/jekyll-3-4-3-released/">Jekyll 3.4.3 Released</option>
113
+
114
+ <option value="/news/2017/03/09/jekyll-3-4-2-released/">Jekyll 3.4.2 Released</option>
115
+
116
+ <option value="/news/2017/03/02/jekyll-3-4-1-released/">Jekyll 3.4.1, or "Unintended Consequences"</option>
117
+
113
118
  <option value="/news/2017/01/18/jekyll-3-4-0-released/">Jekyll turns 3.4.0</option>
114
119
 
115
120
  <option value="/news/2016/11/14/jekyll-3-3-1-released/">Jekyll 3.3.1 Released</option>
@@ -229,6 +234,374 @@
229
234
 
230
235
  <div class="unit four-fifths">
231
236
 
237
+ <article>
238
+ <h2>
239
+ <a href="/news/2017/07/17/jekyll-3-5-1-released/">
240
+ Jekyll 3.5.1 Released
241
+ </a>
242
+ </h2>
243
+ <span class="post-category">
244
+ <span class="label">
245
+ release
246
+ </span>
247
+ </span>
248
+ <div class="post-meta">
249
+ <span class="post-date">
250
+ 17 Jul 2017
251
+ </span>
252
+ <a href="https://github.com/parkr" class="post-author">
253
+
254
+ <img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24" alt="parkr" srcset="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24 1x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=48 2x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=72 3x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=96 4x" width="24" height="24" data-proofer-ignore="true">
255
+ parkr
256
+ </a>
257
+ </div>
258
+ <div class="post-content">
259
+ <p>We’ve released a few bugfixes in the form of v3.5.1 today:</p>
260
+
261
+ <ul>
262
+ <li>Some plugins stopped functioning properly due to a NoMethodError for <code class="highlighter-rouge">registers</code> on NilClass. That’s been fixed.</li>
263
+ <li>A bug in <code class="highlighter-rouge">relative_url</code> when <code class="highlighter-rouge">baseurl</code> is <code class="highlighter-rouge">nil</code> caused URL’s to come out wrong. Squashed.</li>
264
+ <li>Static files’ liquid representations should now have all the keys you were expecting when serialized into JSON.</li>
265
+ </ul>
266
+
267
+ <p>We apologize for the breakages! We’re working diligently to improve how we test our plugins with Jekyll core to prevent breakages in the future.</p>
268
+
269
+ <p>More details in <a href="/docs/history/#v3-5-1">the history</a>. Many thanks to all the contributors to Jekyll v3.5.1: Adam Voss, ashmaroli, Ben Balter, Coby Chapple, Doug Beney, Fadhil, Florian Thomas, Frank Taillandier, James, jaybe, Joshua Byrd, Kevin Plattret, &amp; Robert Jäschke.</p>
270
+
271
+ <p>Happy Jekylling!</p>
272
+
273
+ </div>
274
+ </article>
275
+
276
+
277
+ <article>
278
+ <h2>
279
+ <a href="/news/2017/06/15/jekyll-3-5-0-released/">
280
+ Jekyll turns 3.5, oh my!
281
+ </a>
282
+ </h2>
283
+ <span class="post-category">
284
+ <span class="label">
285
+ release
286
+ </span>
287
+ </span>
288
+ <div class="post-meta">
289
+ <span class="post-date">
290
+ 15 Jun 2017
291
+ </span>
292
+ <a href="https://github.com/parkr" class="post-author">
293
+
294
+ <img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24" alt="parkr" srcset="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24 1x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=48 2x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=72 3x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=96 4x" width="24" height="24" data-proofer-ignore="true">
295
+ parkr
296
+ </a>
297
+ </div>
298
+ <div class="post-content">
299
+ <p>Good news! Nearly 400 commits later, Jekyll 3.5.0 has been released into
300
+ the wild. Some new shiny things you might want to test out:</p>
301
+
302
+ <ul>
303
+ <li>Jekyll now uses Liquid 4, the latest! It comes with whitespace control, new filters <code class="highlighter-rouge">concat</code> annd <code class="highlighter-rouge">compact</code>, loop performance improvements and <a href="https://github.com/Shopify/liquid/blob/master/History.md#400--2016-12-14--branch-4-0-stable">many fixes</a>
304
+ </li>
305
+ <li>Themes can specify runtime dependencies (in their gemspecs) and we’ll require those. This makes it easier for theme writers to use plugins.</li>
306
+ <li>Speaking of themes, we’ll properly handle the discrepancy between a convertible file in the local site and a static file in the theme. Overriding a file locally now doesn’t matter if it’s convertible or static.</li>
307
+ <li>Pages, posts, and other documents can now access layout variables via <code class="highlighter-rouge"><span class="p">{</span><span class="err">{</span><span class="w"> </span><span class="err">layout</span><span class="w"> </span><span class="p">}</span><span class="err">}</span></code>.</li>
308
+ <li>The <code class="highlighter-rouge">gems</code> key in the <code class="highlighter-rouge">_config.yml</code> is now <code class="highlighter-rouge">plugins</code>. This is backwards-compatible, as Jekyll will gracefully upgrade <code class="highlighter-rouge">gems</code> to <code class="highlighter-rouge">plugins</code> if you use the former.</li>
309
+ <li>Filters like <code class="highlighter-rouge">sort</code> now allow you to sort based on a subvalue, e.g. <code class="highlighter-rouge"><span class="p">{</span><span class="err">%</span><span class="w"> </span><span class="err">assign</span><span class="w"> </span><span class="err">sorted</span><span class="w"> </span><span class="err">=</span><span class="w"> </span><span class="err">site.posts</span><span class="w"> </span><span class="err">|</span><span class="w"> </span><span class="err">sort:</span><span class="w"> </span><span class="nt">"image.alt_text"</span><span class="w"> </span><span class="err">%}</span></code>.</li>
310
+ <li>You can now create tab-separated data files.</li>
311
+ <li>Using <code class="highlighter-rouge">layout: none</code> will now produce a file with no layout. Equivalent to <code class="highlighter-rouge">layout: null</code>, with the exception that <code class="highlighter-rouge">none</code> is a truthy value and won’t be overwritten by front matter defaults.</li>
312
+ <li>No more pesky errors if your URL contains a colon (sorry about those!)</li>
313
+ <li>We now automatically exclude the <code class="highlighter-rouge">Gemfile</code> from the site manifest when compiling your site. No more <code class="highlighter-rouge">_site/Gemfile</code>!</li>
314
+ <li>We fixed a bug where abbreviated post dates were ignored, e.g. <code class="highlighter-rouge">_posts/2016-4-4-april-fourth.md</code>.</li>
315
+ </ul>
316
+
317
+ <p>And <a href="/docs/history/">so much more!</a></p>
318
+
319
+ <p>There was a huge amount of effort put into this release by our maintainers,
320
+ especially <a href="https://github.com/pathawks" class="user-mention">@pathawks</a>, <a href="https://github.com/DirtyF" class="user-mention">@DirtyF</a>, and <a href="https://github.com/pup" class="user-mention">@pup</a>. Huge thanks to them for ushering
321
+ this release along and keeping the contributions flowing! Jekyll wouldn’t
322
+ work without the tireless dedication of our team captains &amp; maintainers.
323
+ Thank you, all!</p>
324
+
325
+ <p>A huge thanks as well to our contributors to this release: Adam Hollett, Aleksander Kuś, Alfred Myers, Anatoliy Yastreb, Antonio Argote, Ashton Hellwig, Ashwin Maroli, Ben Balter, BlueberryFoxtrot, Brent Yi, Chris Finazzo, Christoph Päper, Christopher League, Chun Fei Lung, Colin, David Zhang, Eric Leong, Finn Ellis, Florian Thomas, Frank Taillandier, Hendrik Schneider, Henry Kobin, Ivan Storck, Jakub Klímek, Jan Pobořil, Jeff Puckett, Jonathan Hooper, Kaligule, Kevin Funk, Krzysztof Szafranek, Liu Cheng, Lukasz Brodowski, Marc Bruins, Marcelo Canina, Martin Desrumaux, Mer, Nate, Oreonax, Parker Moore, Pat Hawks, Pedro Lamas, Phil Nash, Ricardo N Feliciano, Ricky Han, Roger Sheen, Ryan Lue, Ryan Streur, Shane Neuville, Sven Meyer, Tom Johnson, William Entriken, Yury V. Zaytsev, Zarino Zappia, dyang, jekylltools, sean delaney, zenHeart</p>
326
+
327
+ <p>Please file any bugs with detailed replication instructions if you find any
328
+ bugs. Better yet, submit a patch if you find the bug in the code and know
329
+ how to fix it! <img class="emoji" title=":heart:" alt=":heart:" src="https://assets-cdn.github.com/images/icons/emoji/unicode/2764.png" height="20" width="20" align="absmiddle"></p>
330
+
331
+ <p>Happy Jekylling! <img class="emoji" title=":tada:" alt=":tada:" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f389.png" height="20" width="20" align="absmiddle"></p>
332
+
333
+ </div>
334
+ </article>
335
+
336
+
337
+ <article>
338
+ <h2>
339
+ <a href="/news/2017/03/21/jekyll-3-4-3-released/">
340
+ Jekyll 3.4.3 Released
341
+ </a>
342
+ </h2>
343
+ <span class="post-category">
344
+ <span class="label">
345
+ release
346
+ </span>
347
+ </span>
348
+ <div class="post-meta">
349
+ <span class="post-date">
350
+ 21 Mar 2017
351
+ </span>
352
+ <a href="https://github.com/pathawks" class="post-author">
353
+
354
+ <img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/pathawks?v=3&amp;s=24" alt="pathawks" srcset="https://avatars3.githubusercontent.com/pathawks?v=3&amp;s=24 1x, https://avatars3.githubusercontent.com/pathawks?v=3&amp;s=48 2x, https://avatars3.githubusercontent.com/pathawks?v=3&amp;s=72 3x, https://avatars3.githubusercontent.com/pathawks?v=3&amp;s=96 4x" width="24" height="24" data-proofer-ignore="true">
355
+ pathawks
356
+ </a>
357
+ </div>
358
+ <div class="post-content">
359
+ <p>Another one-PR patch update as we continue our quest to destroy all bugs. A
360
+ fairly technical debriefing follows, but the TLDR is that we have updated the
361
+ <code class="highlighter-rouge">uri_escape</code> filter to more closely follow the pre-v3.4.0 behavior.</p>
362
+
363
+ <p>In <a href="/news/2017/01/18/jekyll-3-4-0-released/">v3.4.0</a>, we
364
+ moved away from using the deprecated
365
+ <a href="https://ruby-doc.org/stdlib-2.3.0/libdoc/uri/rdoc/URI/Escape.html#method-i-encode"><code class="highlighter-rouge">URI.escape</code></a>
366
+ in favor of
367
+ <a href="http://www.rubydoc.info/gems/addressable/Addressable/URI#encode-class_method"><code class="highlighter-rouge">Addressable::URI.encode</code></a>.
368
+ This is what powers our <a href="https://jekyllrb.com/docs/templates/"><code class="highlighter-rouge">uri_escape</code>
369
+ filter</a>.</p>
370
+
371
+ <p>While this transition was mostly a smooth one, the two methods are not
372
+ identical. While <code class="highlighter-rouge">URI.escape</code> was happy to escape any string,
373
+ <code class="highlighter-rouge">Addressable::URI.encode</code> first turns the string into an <code class="highlighter-rouge">Addressable::URI</code>
374
+ object, and will then escape each component of that object. In most cases, this
375
+ difference was insignificant, but there were a few cases where this caused some
376
+ unintended regressions when encoding colons.</p>
377
+
378
+ <p>While <strong>Addressable</strong> can understand that something like <code class="highlighter-rouge">"/example :page"</code> is a
379
+ relative URI, without the slash it cannot figure out how to turn
380
+ <code class="highlighter-rouge">"example :page"</code> into an <code class="highlighter-rouge">Addressable::URI</code> object. <code class="highlighter-rouge">URI.escape</code> had no such
381
+ objection. This lead to the following Liquid code working fine in Jekyll 3.3.x
382
+ but breaking in 3.4.0:</p>
383
+
384
+ <div class="language-liquid highlighter-rouge">
385
+ <pre class="highlight"><code><span class="p">{{</span><span class="w"> </span><span class="s2">"example :page"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">uri_escape</span><span class="w"> </span><span class="p">}}</span>
386
+ </code></pre>
387
+ </div>
388
+
389
+ <p>This was not an intended consequence of switching to <strong>Addressable</strong>.</p>
390
+
391
+ <p>Fortunately, the solution was not complicated. <strong>Addressable</strong> has a method
392
+ <a href="http://www.rubydoc.info/gems/addressable/Addressable/URI#normalize_component-class_method"><code class="highlighter-rouge">Addressable::URI.normalize_component</code></a>
393
+ which will simply escape the characters in a string, much like <code class="highlighter-rouge">URI.escape</code>.</p>
394
+
395
+ <p>Thanks to <a href="https://github.com/cameronmcefee" class="user-mention">@cameronmcefee</a> and <a href="https://github.com/FriesFlorian" class="user-mention">@FriesFlorian</a> for reporting
396
+ <a href="https://github.com/jekyll/jekyll/issues/5954">this issue</a>.</p>
397
+
398
+ <p>Happy Jekylling!</p>
399
+
400
+ </div>
401
+ </article>
402
+
403
+
404
+ <article>
405
+ <h2>
406
+ <a href="/news/2017/03/09/jekyll-3-4-2-released/">
407
+ Jekyll 3.4.2 Released
408
+ </a>
409
+ </h2>
410
+ <span class="post-category">
411
+ <span class="label">
412
+ release
413
+ </span>
414
+ </span>
415
+ <div class="post-meta">
416
+ <span class="post-date">
417
+ 09 Mar 2017
418
+ </span>
419
+ <a href="https://github.com/parkr" class="post-author">
420
+
421
+ <img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24" alt="parkr" srcset="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24 1x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=48 2x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=72 3x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=96 4x" width="24" height="24" data-proofer-ignore="true">
422
+ parkr
423
+ </a>
424
+ </div>
425
+ <div class="post-content">
426
+ <p>Another one-PR patch update, though without the same <a href="/news/2017/03/02/jekyll-3-4-1-released/">lessons as for the
427
+ previous release</a>.</p>
428
+
429
+ <p>This release includes a beneficial change for a number of plugins:
430
+ <strong>static files now respect front matter defaults</strong>.</p>
431
+
432
+ <p>You might be asking yourself: “why would static files, files that are
433
+ static files explicitly because they <em>don’t</em> have YAML front matter, want
434
+ to respect YAML front matter?” That’s a great question. Let me illustrate
435
+ with an example.</p>
436
+
437
+ <p>Let’s look at <code class="highlighter-rouge">jekyll-sitemap</code>. This plugin generates a list of documents,
438
+ pages, and static files, and some metadata for them in an XML file for a
439
+ Google/Yahoo/Bing/DuckDuckGo crawler to consume. If you don’t want a given
440
+ file in this list, you set <code class="highlighter-rouge">sitemap: false</code> in the YAML front matter. But
441
+ what about static files, which don’t have YAML front matter? Before this
442
+ release, they could not be excluded because they had no properties in YAML
443
+ other than <a href="https://github.com/jekyll/jekyll/blob/v3.4.1/lib/jekyll/static_file.rb#L98-L106">the ones we explicitly assigned</a>.
444
+ So if you had a PDF you didn’t want to be in your sitemap, you couldn’t use
445
+ <code class="highlighter-rouge">jekyll-sitemap</code>.</p>
446
+
447
+ <p>With this release, you can now set <a href="/docs/configuration/#front-matter-defaults">front matter
448
+ defaults</a> for static files:</p>
449
+
450
+ <div class="language-yaml highlighter-rouge">
451
+ <pre class="highlight"><code><span class="s">defaults</span><span class="pi">:</span>
452
+ <span class="pi">-</span>
453
+ <span class="s">scope</span><span class="pi">:</span>
454
+ <span class="s">path</span><span class="pi">:</span> <span class="s2">"</span><span class="s">pdfs/"</span>
455
+ <span class="s">values</span><span class="pi">:</span>
456
+ <span class="s">sitemap</span><span class="pi">:</span> <span class="s">false</span>
457
+ </code></pre>
458
+ </div>
459
+
460
+ <p>Now, for every file in the Liquid <code class="highlighter-rouge">site.static_files</code> loop which is in the
461
+ folder <code class="highlighter-rouge">pdfs/</code>, you’ll see <code class="highlighter-rouge">sitemap</code> equal to <code class="highlighter-rouge">false</code>.</p>
462
+
463
+ <p>Many thanks to <a href="https://github.com/benbalter" class="user-mention">@benbalter</a> for coming up with the solution and ensuring
464
+ sitemaps everywhere are filled with just the right content.</p>
465
+
466
+ <p>As always, if you notice any bugs, please search the issues and file one if
467
+ you can’t find another related to your issue.</p>
468
+
469
+ <p>Happy Jekylling!</p>
470
+
471
+ </div>
472
+ </article>
473
+
474
+
475
+ <article>
476
+ <h2>
477
+ <a href="/news/2017/03/02/jekyll-3-4-1-released/">
478
+ Jekyll 3.4.1, or "Unintended Consequences"
479
+ </a>
480
+ </h2>
481
+ <span class="post-category">
482
+ <span class="label">
483
+ release
484
+ </span>
485
+ </span>
486
+ <div class="post-meta">
487
+ <span class="post-date">
488
+ 02 Mar 2017
489
+ </span>
490
+ <a href="https://github.com/parkr" class="post-author">
491
+
492
+ <img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24" alt="parkr" srcset="https://avatars3.githubusercontent.com/parkr?v=3&amp;s=24 1x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=48 2x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=72 3x, https://avatars3.githubusercontent.com/parkr?v=3&amp;s=96 4x" width="24" height="24" data-proofer-ignore="true">
493
+ parkr
494
+ </a>
495
+ </div>
496
+ <div class="post-content">
497
+ <p>Conformity is a confounding thing.</p>
498
+
499
+ <p>We write tests to ensure that a piece of functionality that works today
500
+ will work tomorrow, as further modifications are made to the codebase. This
501
+ is a principle of modern software development: every change must have a
502
+ test to guard against regressions to the functionality implemented by that
503
+ change.</p>
504
+
505
+ <p>And yet, occasionally, our very best efforts to test functionality will be
506
+ thwarted. This is because of how our code produces unintended
507
+ functionality, which naturally goes untested.</p>
508
+
509
+ <p>In our documentation, we tell users to name their posts with the following
510
+ format:</p>
511
+
512
+ <div class="language-text highlighter-rouge">
513
+ <pre class="highlight"><code>YYYY-MM-DD-title.extension
514
+ </code></pre>
515
+ </div>
516
+
517
+ <p>That format specifies exactly four numbers for the year, e.g. 2017, two
518
+ letters for the month, e.g. 03, and two letters for the day, e.g. 02. To
519
+ match this, we had the following regular expression:</p>
520
+
521
+ <div class="language-ruby highlighter-rouge">
522
+ <pre class="highlight"><code><span class="sr">%r!^(?:.+/)*(</span><span class="se">\d</span><span class="sr">+-</span><span class="se">\d</span><span class="sr">+-</span><span class="se">\d</span><span class="sr">+)-(.*)(</span><span class="se">\.</span><span class="sr">[^.]+)$!</span>
523
+ </code></pre>
524
+ </div>
525
+
526
+ <p>You might already see the punchline. While our documentation specifies the
527
+ exact number of numbers that is required for each section of the date, our
528
+ regular expression does not enforce this precision. What happens if a user
529
+ doesn’t conform to our documentation?</p>
530
+
531
+ <p>We recently <a href="https://github.com/jekyll/jekyll/issues/5603">received a bug report</a>
532
+ that detailed how the following file was considered a post:</p>
533
+
534
+ <div class="language-text highlighter-rouge">
535
+ <pre class="highlight"><code>84093135-42842323-42000001-b890-136270f7e5f1.md
536
+ </code></pre>
537
+ </div>
538
+
539
+ <p>Of course! It matches the above regular expression, but doesn’t satisfy
540
+ other requirements about those numbers being a valid date (unless you’re
541
+ living in a world that has 43 million months, and 42 million (and one)
542
+ days). So, we <a href="https://github.com/jekyll/jekyll/pull/5609">modified the regular expression to match our
543
+ documentation</a>:</p>
544
+
545
+ <div class="language-ruby highlighter-rouge">
546
+ <pre class="highlight"><code><span class="sr">%r!^(?:.+/)*(</span><span class="se">\d</span><span class="sr">{4}-</span><span class="se">\d</span><span class="sr">{2}-</span><span class="se">\d</span><span class="sr">{2})-(.*)(</span><span class="se">\.</span><span class="sr">[^.]+)$!</span>
547
+ </code></pre>
548
+ </div>
549
+
550
+ <p>Our tests all passed and we were properly excluding this crazy date with 43
551
+ million months and days. This change shipped in Jekyll v3.4.0 and all was
552
+ well.</p>
553
+
554
+ <p>Well, not so much.</p>
555
+
556
+ <p>A very common way to specify the month of February is <code class="highlighter-rouge">2</code>. This is true for
557
+ all single-digit months and days of the month. Notice anything about our
558
+ first regular expression versus our second? The second regular expression
559
+ imposes a <strong>minimum</strong>, as well as maximum, number of digits. This change
560
+ made Jekyll ignore dates with single-digit days and months.</p>
561
+
562
+ <p>The first eight years of Jekyll’s existence had allowed single-digit days
563
+ and months due to an imprecise regular expression. For some people, their
564
+ entire blog was missing, and there were no errors that told them why.</p>
565
+
566
+ <p>After receiving a few bug reports, it became clear what had happened.
567
+ Unintended functionality of the last eight years had been broken. Thus,
568
+ v3.4.0 was broken for a non-negligible number of sites. With a test site
569
+ in-hand from <a href="https://github.com/andrewbanchich" class="user-mention">@andrewbanchich</a>, I tracked it down to this regular expression
570
+ and <a href="https://github.com/jekyll/jekyll/pull/5920">reintroduced</a> a proper
571
+ minimum number of digits for each segment:</p>
572
+
573
+ <div class="language-ruby highlighter-rouge">
574
+ <pre class="highlight"><code><span class="sr">%r!^(?:.+/)*(</span><span class="se">\d</span><span class="sr">{2,4}-</span><span class="se">\d</span><span class="sr">{1,2}-</span><span class="se">\d</span><span class="sr">{1,2})-(.*)(</span><span class="se">\.</span><span class="sr">[^.]+)$!</span>
575
+ </code></pre>
576
+ </div>
577
+
578
+ <p>And, I wrote a test.</p>
579
+
580
+ <p>This change was quickly backported to v3.4.0 and here we are: releasing
581
+ v3.4.1. It will fix the problem for all users who were using single-digit
582
+ months and days.</p>
583
+
584
+ <p>With this, I encourage all of you to look at your code for <em>unintended</em>
585
+ functionality and make a judgement call: if it’s allowed, <em>should it be</em>?
586
+ If it should be allowed, make it <em>intended</em> functionality and test it! I
587
+ know I’ll be looking at my code with much greater scrutiny going forward,
588
+ looking for unintended consequences.</p>
589
+
590
+ <p>Many thanks to our Jekyll affinity team captains who helped out, including
591
+ <a href="https://github.com/pathawks" class="user-mention">@pathawks</a>, <a href="https://github.com/pnn" class="user-mention">@pnn</a>, and <a href="https://github.com/DirtyF" class="user-mention">@DirtyF</a>. Thanks, too, to <a href="https://github.com/ashmaroli" class="user-mention">@ashmaroli</a> for reviewing my
592
+ change with an eye for consistency and precision. This was certainly a team
593
+ effort.</p>
594
+
595
+ <p>We hope Jekyll v3.4.1 brings your variable-digit dates back to their
596
+ previous glory. We certainly won’t let that unintended functionality be
597
+ unintended any longer.</p>
598
+
599
+ <p>As always, Happy Jekylling!</p>
600
+
601
+ </div>
602
+ </article>
603
+
604
+
232
605
  <article>
233
606
  <h2>
234
607
  <a href="/news/2017/01/18/jekyll-3-4-0-released/">
@@ -256,8 +629,8 @@ Packed full of bug fixes as usual, thanks to the tireless efforts of our
256
629
  exceptional Jekyll community. Three changes to call out:</p>
257
630
 
258
631
  <ol>
259
- <li>If you’re a big fan of <a href="/docs/filters/"><code class="highlighter-rouge">where_by_exp</code></a>, you’ll be an
260
- even bigger fan of <a href="/docs/filters/"><code class="highlighter-rouge">group_by_exp</code></a>.</li>
632
+ <li>If you’re a big fan of <a href="/docs/templates/#filters"><code class="highlighter-rouge">where_by_exp</code></a>, you’ll be an
633
+ even bigger fan of <a href="/docs/templates/#filters"><code class="highlighter-rouge">group_by_exp</code></a>.</li>
261
634
  <li>Using a custom timezone in Jekyll on Windows? Yeah, sorry that hasn’t ever worked
262
635
  properly. We made it possible to accurately <a href="https://jekyllrb.com/docs/windows/#timezone-management">set the timezone using IANA
263
636
  timezone codes</a>.</li>
@@ -395,7 +768,7 @@ you pass it:</p>
395
768
 
396
769
  <p>A result of <code class="highlighter-rouge">relative_url</code> will safely always produce a URL which is
397
770
  relative to the domain root. A similar principle applies to <code class="highlighter-rouge">absolute_url</code>.
398
- It prepends your <code class="highlighter-rouge">baseurl</code> and <code class="highlighter-rouge">url</code> values, making absolute URL’s all the
771
+ It prepends your <code class="highlighter-rouge">baseurl</code> and <code class="highlighter-rouge">url</code> values, making absolute URLs all the
399
772
  easier to make:</p>
400
773
 
401
774
  <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="p">{{</span><span class="w"> </span><span class="s2">"/docs/assets/"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="nf">absolute_url</span><span class="w"> </span><span class="p">}}</span> =&gt; https://jekyllrb.com/myproject/docs/assets</code></pre></figure>
@@ -529,7 +902,7 @@ now dogfoods this feature, using the <a href="https://github.com/jekyll/minima">
529
902
  <li>Explicit support for Ruby 2.0.x was dropped</li>
530
903
  <li>Added an <code class="highlighter-rouge">:after_init</code> Hook</li>
531
904
  <li>Added a <code class="highlighter-rouge">where_exp</code> filter to provide more powerful filtering</li>
532
- <li>Added a <code class="highlighter-rouge">link</code> liquid tag which can be used to generate URL’s for any
905
+ <li>Added a <code class="highlighter-rouge">link</code> liquid tag which can be used to generate URLs for any
533
906
  post or document based on its path relative to the site source</li>
534
907
  <li>… and lots more!</li>
535
908
  </ul>
@@ -2624,23 +2997,23 @@ examples and for compiling this list):</p>
2624
2997
  <ul>
2625
2998
 
2626
2999
  <li class="">
2627
- <a href="/news/2017/01/18/jekyll-3-4-0-released/">Version 3.4.0</a>
3000
+ <a href="/news/2017/07/17/jekyll-3-5-1-released/">Version 3.5.1</a>
2628
3001
  </li>
2629
3002
 
2630
3003
  <li class="">
2631
- <a href="/news/2016/11/14/jekyll-3-3-1-released/">Version 3.3.1</a>
3004
+ <a href="/news/2017/06/15/jekyll-3-5-0-released/">Version 3.5.0</a>
2632
3005
  </li>
2633
3006
 
2634
3007
  <li class="">
2635
- <a href="/news/2016/10/06/jekyll-3-3-is-here/">Version 3.3.0</a>
3008
+ <a href="/news/2017/03/21/jekyll-3-4-3-released/">Version 3.4.3</a>
2636
3009
  </li>
2637
3010
 
2638
3011
  <li class="">
2639
- <a href="/news/2016/08/02/jekyll-3-2-1-released/">Version 3.2.1</a>
3012
+ <a href="/news/2017/03/09/jekyll-3-4-2-released/">Version 3.4.2</a>
2640
3013
  </li>
2641
3014
 
2642
3015
  <li class="">
2643
- <a href="/news/2016/07/26/jekyll-3-2-0-released/">Version 3.2.0</a>
3016
+ <a href="/news/2017/03/02/jekyll-3-4-1-released/">Version 3.4.1</a>
2644
3017
  </li>
2645
3018
 
2646
3019
  <li>
@@ -2657,6 +3030,16 @@ examples and for compiling this list):</p>
2657
3030
 
2658
3031
 
2659
3032
 
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
2660
3043
  <li class="">
2661
3044
  <a href="/news/2016/08/24/jekyll-admin-initial-release/">Jekyll Admin Initial Release</a>
2662
3045
  </li>