jekyll-docs 3.4.3 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jekyll-docs.rb +1 -1
- data/site/404.html +5 -11
- data/site/community/index.html +9 -15
- data/site/css/screen.css +1 -1468
- data/site/docs/assets/index.html +20 -16
- data/site/docs/collections/index.html +115 -109
- data/site/docs/conduct/index.html +19 -15
- data/site/docs/configuration/index.html +39 -23
- data/site/docs/continuous-integration/buddyworks/index.html +728 -0
- data/site/docs/continuous-integration/circleci/index.html +19 -15
- data/site/docs/continuous-integration/index.html +20 -15
- data/site/docs/continuous-integration/travis-ci/index.html +21 -18
- data/site/docs/contributing/index.html +20 -16
- data/site/docs/datafiles/index.html +23 -15
- data/site/docs/deployment-methods/index.html +24 -20
- data/site/docs/drafts/index.html +19 -15
- data/site/docs/extras/index.html +31 -16
- data/site/docs/frontmatter/index.html +28 -15
- data/site/docs/github-pages/index.html +21 -17
- data/site/docs/history/index.html +521 -315
- data/site/docs/home/index.html +16 -15
- data/site/docs/includes/index.html +21 -17
- data/site/docs/installation/index.html +41 -31
- data/site/docs/maintaining/affinity-team-captain/index.html +19 -15
- data/site/docs/maintaining/avoiding-burnout/index.html +19 -15
- data/site/docs/maintaining/becoming-a-maintainer/index.html +19 -15
- data/site/docs/maintaining/index.html +19 -15
- data/site/docs/maintaining/merging-a-pull-request/index.html +19 -15
- data/site/docs/maintaining/reviewing-a-pull-request/index.html +19 -15
- data/site/docs/maintaining/special-labels/index.html +23 -15
- data/site/docs/maintaining/triaging-an-issue/index.html +20 -16
- data/site/docs/migrations/index.html +19 -15
- data/site/docs/pages/index.html +19 -15
- data/site/docs/pagination/index.html +19 -15
- data/site/docs/permalinks/index.html +19 -15
- data/site/docs/plugins/index.html +36 -23
- data/site/docs/posts/index.html +23 -19
- data/site/docs/quickstart/index.html +18 -17
- data/site/docs/resources/index.html +19 -15
- data/site/docs/sites/index.html +22 -15
- data/site/docs/static-files/index.html +52 -15
- data/site/docs/structure/index.html +19 -15
- data/site/docs/templates/index.html +29 -25
- data/site/docs/themes/index.html +65 -39
- data/site/docs/troubleshooting/index.html +41 -19
- data/site/docs/upgrading/0-to-2/index.html +19 -15
- data/site/docs/upgrading/2-to-3/index.html +20 -16
- data/site/docs/upgrading/index.html +22 -15
- data/site/docs/usage/index.html +20 -16
- data/site/docs/variables/index.html +19 -15
- data/site/docs/windows/index.html +135 -136
- data/site/feed.xml +228 -180
- data/site/help/index.html +11 -13
- data/site/img/jekylllayoutconcept.png +0 -0
- data/site/index.html +7 -14
- data/site/latest_version.txt +1 -1
- data/site/news/2013/05/05/jekyll-1-0-0-released/index.html +33 -19
- data/site/news/2013/05/08/jekyll-1-0-1-released/index.html +33 -19
- data/site/news/2013/05/12/jekyll-1-0-2-released/index.html +33 -19
- data/site/news/2013/06/07/jekyll-1-0-3-released/index.html +33 -19
- data/site/news/2013/07/14/jekyll-1-1-0-released/index.html +33 -19
- data/site/news/2013/07/24/jekyll-1-1-1-released/index.html +33 -19
- data/site/news/2013/07/25/jekyll-1-0-4-released/index.html +33 -19
- data/site/news/2013/07/25/jekyll-1-1-2-released/index.html +33 -19
- data/site/news/2013/09/06/jekyll-1-2-0-released/index.html +33 -19
- data/site/news/2013/09/14/jekyll-1-2-1-released/index.html +33 -19
- data/site/news/2013/10/28/jekyll-1-3-0-rc1-released/index.html +33 -19
- data/site/news/2013/11/04/jekyll-1-3-0-released/index.html +33 -19
- data/site/news/2013/11/26/jekyll-1-3-1-released/index.html +33 -19
- data/site/news/2013/12/07/jekyll-1-4-0-released/index.html +33 -19
- data/site/news/2013/12/09/jekyll-1-4-1-released/index.html +33 -19
- data/site/news/2013/12/16/jekyll-1-4-2-released/index.html +33 -19
- data/site/news/2014/01/13/jekyll-1-4-3-released/index.html +33 -19
- data/site/news/2014/03/24/jekyll-1-5-0-released/index.html +33 -19
- data/site/news/2014/03/27/jekyll-1-5-1-released/index.html +33 -19
- data/site/news/2014/05/06/jekyll-turns-2-0-0/index.html +33 -19
- data/site/news/2014/05/08/jekyll-2-0-3-released/index.html +33 -19
- data/site/news/2014/06/04/jekyll-stickers-1-dollar-stickermule/index.html +35 -21
- data/site/news/2014/06/28/jekyll-turns-21-i-mean-2-1-0/index.html +33 -19
- data/site/news/2014/07/01/jekyll-2-1-1-released/index.html +33 -19
- data/site/news/2014/07/29/jekyll-2-2-0-released/index.html +33 -19
- data/site/news/2014/08/10/jekyll-2-3-0-released/index.html +33 -19
- data/site/news/2014/09/09/jekyll-2-4-0-released/index.html +33 -19
- data/site/news/2014/11/05/jekylls-midlife-crisis-jekyll-turns-2-5-0/index.html +33 -19
- data/site/news/2014/11/09/jekyll-2-5-1-released/index.html +33 -19
- data/site/news/2014/11/12/jekyll-2-5-2-released/index.html +33 -19
- data/site/news/2014/12/17/alfredxing-welcome-to-jekyll-core/index.html +33 -19
- data/site/news/2014/12/22/jekyll-2-5-3-released/index.html +33 -19
- data/site/news/2015/01/20/jekyll-meet-and-greet/index.html +33 -19
- data/site/news/2015/01/24/jekyll-3-0-0-beta1-released/index.html +33 -19
- data/site/news/2015/02/26/introducing-jekyll-talk/index.html +33 -19
- data/site/news/2015/10/26/jekyll-3-0-released/index.html +33 -19
- data/site/news/2015/11/17/jekyll-3-0-1-released/index.html +33 -19
- data/site/news/2016/01/20/jekyll-3-0-2-released/index.html +33 -19
- data/site/news/2016/01/24/jekyll-3-1-0-released/index.html +33 -19
- data/site/news/2016/01/28/jekyll-3-1-1-released/index.html +33 -19
- data/site/news/2016/02/08/jekyll-3-0-3-released/index.html +33 -19
- data/site/news/2016/02/19/jekyll-3-1-2-released/index.html +33 -19
- data/site/news/2016/03/10/making-it-easier-to-contribute-to-jekyll/index.html +33 -19
- data/site/news/2016/04/19/jekyll-3-0-4-released/index.html +33 -19
- data/site/news/2016/04/19/jekyll-3-1-3-released/index.html +33 -19
- data/site/news/2016/04/26/jekyll-3-0-5-released/index.html +33 -19
- data/site/news/2016/05/18/jekyll-3-1-4-released/index.html +33 -19
- data/site/news/2016/05/18/jekyll-3-1-5-released/index.html +33 -19
- data/site/news/2016/05/19/jekyll-3-1-6-released/index.html +33 -19
- data/site/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/index.html +33 -19
- data/site/news/2016/07/26/jekyll-3-2-0-released/index.html +35 -21
- data/site/news/2016/08/02/jekyll-3-2-1-released/index.html +34 -20
- data/site/news/2016/08/24/jekyll-admin-initial-release/index.html +33 -19
- data/site/news/2016/10/06/jekyll-3-3-is-here/index.html +35 -21
- data/site/news/2016/11/14/jekyll-3-3-1-released/index.html +34 -20
- data/site/news/2017/01/18/jekyll-3-4-0-released/index.html +36 -22
- data/site/news/2017/03/02/jekyll-3-4-1-released/index.html +651 -0
- data/site/news/2017/03/09/jekyll-3-4-2-released/index.html +592 -0
- data/site/news/2017/03/21/jekyll-3-4-3-released/index.html +588 -0
- data/site/news/2017/06/15/jekyll-3-5-0-released/index.html +581 -0
- data/site/news/2017/07/17/jekyll-3-5-1-released/index.html +561 -0
- data/site/news/index.html +405 -22
- data/site/news/releases/index.html +405 -22
- data/site/philosophy.html +46 -0
- data/site/sitemap.xml +95 -48
- data/site/tutorials/convert-site-to-jekyll/index.html +851 -0
- data/site/tutorials/custom-404-page/index.html +366 -0
- data/site/tutorials/home/index.html +323 -0
- data/site/tutorials/index.html +10 -0
- data/site/tutorials/navigation/index.html +908 -0
- data/site/tutorials/orderofinterpretation/index.html +459 -0
- metadata +20 -7
- data/site/feed.xslt.xml +0 -4
|
@@ -0,0 +1,651 @@
|
|
|
1
|
+
<!DOCTYPE HTML>
|
|
2
|
+
<html lang="en-US">
|
|
3
|
+
<head>
|
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
7
|
+
<meta name="generator" content="Jekyll v3.5.1">
|
|
8
|
+
<link type="application/atom+xml" rel="alternate" href="https://jekyllrb.com/feed.xml" title="Jekyll • Simple, blog-aware, static sites">
|
|
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
|
+
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic,900">
|
|
11
|
+
<link rel="stylesheet" href="/css/screen.css">
|
|
12
|
+
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
13
|
+
<!-- Begin Jekyll SEO tag v2.2.3 -->
|
|
14
|
+
<title>Jekyll 3.4.1, or “Unintended Consequences” | Jekyll • Simple, blog-aware, static sites</title>
|
|
15
|
+
<meta property="og:title" content="Jekyll 3.4.1, or “Unintended Consequences”">
|
|
16
|
+
<meta name="author" content="parkr">
|
|
17
|
+
<meta property="og:locale" content="en_US">
|
|
18
|
+
<meta name="description" content="Conformity is a confounding thing.">
|
|
19
|
+
<meta property="og:description" content="Conformity is a confounding thing.">
|
|
20
|
+
<link rel="canonical" href="https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/">
|
|
21
|
+
<meta property="og:url" content="https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/">
|
|
22
|
+
<meta property="og:site_name" content="Jekyll • Simple, blog-aware, static sites">
|
|
23
|
+
<meta property="og:type" content="article">
|
|
24
|
+
<meta property="article:published_time" content="2017-03-02T11:20:26-08:00">
|
|
25
|
+
<meta name="twitter:card" content="summary">
|
|
26
|
+
<meta name="twitter:site" content="@jekyllrb">
|
|
27
|
+
<meta name="twitter:creator" content="@parkr">
|
|
28
|
+
<meta name="google-site-verification" content="onQcXpAvtHBrUI5LlroHNE_FP0b2qvFyPq7VZw36iEY">
|
|
29
|
+
<script type="application/ld+json">
|
|
30
|
+
{"@context":"http://schema.org","@type":"BlogPosting","headline":"Jekyll 3.4.1, or “Unintended Consequences”","author":{"@type":"Person","name":"parkr"},"datePublished":"2017-03-02T11:20:26-08:00","dateModified":"2017-03-02T11:20:26-08:00","description":"Conformity is a confounding thing.","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://jekyllrb.com/img/logo-2x.png"},"name":"parkr"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/"},"url":"https://jekyllrb.com/news/2017/03/02/jekyll-3-4-1-released/"}</script>
|
|
31
|
+
<!-- End Jekyll SEO tag -->
|
|
32
|
+
|
|
33
|
+
<!--[if lt IE 9]>
|
|
34
|
+
<script src="/js/html5shiv.min.js"></script>
|
|
35
|
+
<script src="/js/respond.min.js"></script>
|
|
36
|
+
<![endif]-->
|
|
37
|
+
</head>
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
<body class="wrap">
|
|
41
|
+
<header>
|
|
42
|
+
<nav class="mobile-nav show-on-mobiles">
|
|
43
|
+
<ul>
|
|
44
|
+
<li class="">
|
|
45
|
+
<a href="/">Home</a>
|
|
46
|
+
</li>
|
|
47
|
+
<li class="">
|
|
48
|
+
<a href="/docs/home/">Docs</a>
|
|
49
|
+
</li>
|
|
50
|
+
<li class="current">
|
|
51
|
+
<a href="/news/">News</a>
|
|
52
|
+
</li>
|
|
53
|
+
<li class="">
|
|
54
|
+
<a href="/community/">Community</a>
|
|
55
|
+
</li>
|
|
56
|
+
<li class="">
|
|
57
|
+
<a href="/help/">Help</a>
|
|
58
|
+
</li>
|
|
59
|
+
<li>
|
|
60
|
+
<a href="https://github.com/jekyll/jekyll">GitHub</a>
|
|
61
|
+
</li>
|
|
62
|
+
</ul>
|
|
63
|
+
|
|
64
|
+
</nav>
|
|
65
|
+
<div class="grid">
|
|
66
|
+
<div class="unit one-third center-on-mobiles">
|
|
67
|
+
<h1>
|
|
68
|
+
<a href="/">
|
|
69
|
+
<span class="sr-only">Jekyll</span>
|
|
70
|
+
<img src="/img/logo-2x.png" width="249" height="115" alt="Jekyll Logo">
|
|
71
|
+
</a>
|
|
72
|
+
</h1>
|
|
73
|
+
</div>
|
|
74
|
+
<nav class="main-nav unit two-thirds hide-on-mobiles">
|
|
75
|
+
<ul>
|
|
76
|
+
<li class="">
|
|
77
|
+
<a href="/">Home</a>
|
|
78
|
+
</li>
|
|
79
|
+
<li class="">
|
|
80
|
+
<a href="/docs/home/">Docs</a>
|
|
81
|
+
</li>
|
|
82
|
+
<li class="current">
|
|
83
|
+
<a href="/news/">News</a>
|
|
84
|
+
</li>
|
|
85
|
+
<li class="">
|
|
86
|
+
<a href="/community/">Community</a>
|
|
87
|
+
</li>
|
|
88
|
+
<li class="">
|
|
89
|
+
<a href="/help/">Help</a>
|
|
90
|
+
</li>
|
|
91
|
+
<li>
|
|
92
|
+
<a href="https://github.com/jekyll/jekyll">GitHub</a>
|
|
93
|
+
</li>
|
|
94
|
+
</ul>
|
|
95
|
+
|
|
96
|
+
</nav>
|
|
97
|
+
</div>
|
|
98
|
+
</header>
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
<section class="news">
|
|
102
|
+
<div class="grid">
|
|
103
|
+
|
|
104
|
+
<div class="docs-nav-mobile unit whole show-on-mobiles">
|
|
105
|
+
<select onchange="if (this.value) window.location.href=this.value">
|
|
106
|
+
<option value="">Navigate the blog…</option>
|
|
107
|
+
<option value="/news/">Home</option>
|
|
108
|
+
<optgroup label="v1.x">
|
|
109
|
+
|
|
110
|
+
<option value="/news/2017/07/17/jekyll-3-5-1-released/">Jekyll 3.5.1 Released</option>
|
|
111
|
+
|
|
112
|
+
<option value="/news/2017/06/15/jekyll-3-5-0-released/">Jekyll turns 3.5, oh my!</option>
|
|
113
|
+
|
|
114
|
+
<option value="/news/2017/03/21/jekyll-3-4-3-released/">Jekyll 3.4.3 Released</option>
|
|
115
|
+
|
|
116
|
+
<option value="/news/2017/03/09/jekyll-3-4-2-released/">Jekyll 3.4.2 Released</option>
|
|
117
|
+
|
|
118
|
+
<option value="/news/2017/03/02/jekyll-3-4-1-released/">Jekyll 3.4.1, or "Unintended Consequences"</option>
|
|
119
|
+
|
|
120
|
+
<option value="/news/2017/01/18/jekyll-3-4-0-released/">Jekyll turns 3.4.0</option>
|
|
121
|
+
|
|
122
|
+
<option value="/news/2016/11/14/jekyll-3-3-1-released/">Jekyll 3.3.1 Released</option>
|
|
123
|
+
|
|
124
|
+
<option value="/news/2016/10/06/jekyll-3-3-is-here/">Jekyll 3.3 is here with better theme support, new URL filters, and tons more</option>
|
|
125
|
+
|
|
126
|
+
<option value="/news/2016/08/24/jekyll-admin-initial-release/">Jekyll Admin Initial Release</option>
|
|
127
|
+
|
|
128
|
+
<option value="/news/2016/08/02/jekyll-3-2-1-released/">Jekyll 3.2.1 Released with Fix for Windows</option>
|
|
129
|
+
|
|
130
|
+
<option value="/news/2016/07/26/jekyll-3-2-0-released/">Jekyll turns 3.2</option>
|
|
131
|
+
|
|
132
|
+
<option value="/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/">Jekyll's Google Summer of Code Project: The CMS You Always Wanted</option>
|
|
133
|
+
|
|
134
|
+
<option value="/news/2016/05/19/jekyll-3-1-6-released/">Jekyll 3.1.6 Released</option>
|
|
135
|
+
|
|
136
|
+
<option value="/news/2016/05/18/jekyll-3-1-5-released/">Jekyll 3.1.5 Released</option>
|
|
137
|
+
|
|
138
|
+
<option value="/news/2016/05/18/jekyll-3-1-4-released/">Jekyll 3.1.4 "Stability Sam" Released</option>
|
|
139
|
+
|
|
140
|
+
<option value="/news/2016/04/26/jekyll-3-0-5-released/">Jekyll 3.0.5 Released</option>
|
|
141
|
+
|
|
142
|
+
<option value="/news/2016/04/19/jekyll-3-1-3-released/">Jekyll 3.1.3 Released</option>
|
|
143
|
+
|
|
144
|
+
<option value="/news/2016/04/19/jekyll-3-0-4-released/">Jekyll 3.0.4 Released</option>
|
|
145
|
+
|
|
146
|
+
<option value="/news/2016/03/10/making-it-easier-to-contribute-to-jekyll/">Making it easier to contribute to Jekyll</option>
|
|
147
|
+
|
|
148
|
+
<option value="/news/2016/02/19/jekyll-3-1-2-released/">Jekyll 3.1.2 Released!</option>
|
|
149
|
+
|
|
150
|
+
<option value="/news/2016/02/08/jekyll-3-0-3-released/">Jekyll 3.0.3 Released</option>
|
|
151
|
+
|
|
152
|
+
<option value="/news/2016/01/28/jekyll-3-1-1-released/">Jekyll 3.1.1 Released</option>
|
|
153
|
+
|
|
154
|
+
<option value="/news/2016/01/24/jekyll-3-1-0-released/">Jekyll 3.1.0 Released</option>
|
|
155
|
+
|
|
156
|
+
<option value="/news/2016/01/20/jekyll-3-0-2-released/">Jekyll 3.0.2 Released</option>
|
|
157
|
+
|
|
158
|
+
<option value="/news/2015/11/17/jekyll-3-0-1-released/">Jekyll 3.0.1 Released</option>
|
|
159
|
+
|
|
160
|
+
<option value="/news/2015/10/26/jekyll-3-0-released/">Jekyll 3.0 Released</option>
|
|
161
|
+
|
|
162
|
+
<option value="/news/2015/02/26/introducing-jekyll-talk/">Join the Discussion at Jekyll Talk</option>
|
|
163
|
+
|
|
164
|
+
<option value="/news/2015/01/24/jekyll-3-0-0-beta1-released/">Jekyll 3.0.0.beta1 Released</option>
|
|
165
|
+
|
|
166
|
+
<option value="/news/2015/01/20/jekyll-meet-and-greet/">Jekyll Meet & Greet at GitHub HQ</option>
|
|
167
|
+
|
|
168
|
+
<option value="/news/2014/12/22/jekyll-2-5-3-released/">Jekyll Release for the Holidays! v2.5.3 Out</option>
|
|
169
|
+
|
|
170
|
+
<option value="/news/2014/12/17/alfredxing-welcome-to-jekyll-core/">Alfred Xing has joined the Jekyll core team</option>
|
|
171
|
+
|
|
172
|
+
<option value="/news/2014/11/12/jekyll-2-5-2-released/">Jekyll 2.5.2 Released</option>
|
|
173
|
+
|
|
174
|
+
<option value="/news/2014/11/09/jekyll-2-5-1-released/">Jekyll 2.5.1 Released</option>
|
|
175
|
+
|
|
176
|
+
<option value="/news/2014/11/05/jekylls-midlife-crisis-jekyll-turns-2-5-0/">Jekyll's Mid-Life Crisis (Or, Jekyll turns 2.5.0)</option>
|
|
177
|
+
|
|
178
|
+
<option value="/news/2014/09/09/jekyll-2-4-0-released/">A Wild Jekyll 2.4.0 Appeared!</option>
|
|
179
|
+
|
|
180
|
+
<option value="/news/2014/08/10/jekyll-2-3-0-released/">Jekyll 2.3.0 Released</option>
|
|
181
|
+
|
|
182
|
+
<option value="/news/2014/07/29/jekyll-2-2-0-released/">Jekyll 2.2.0 Released</option>
|
|
183
|
+
|
|
184
|
+
<option value="/news/2014/07/01/jekyll-2-1-1-released/">Jekyll 2.1.1 Released</option>
|
|
185
|
+
|
|
186
|
+
<option value="/news/2014/06/28/jekyll-turns-21-i-mean-2-1-0/">Jekyll Turns 21! Err... I mean 2.1.0.</option>
|
|
187
|
+
|
|
188
|
+
<option value="/news/2014/06/04/jekyll-stickers-1-dollar-stickermule/">Pick Up your $1 Jekyll Sticker</option>
|
|
189
|
+
|
|
190
|
+
<option value="/news/2014/05/08/jekyll-2-0-3-released/">Jekyll 2.0.3 Released</option>
|
|
191
|
+
|
|
192
|
+
<option value="/news/2014/05/06/jekyll-turns-2-0-0/">Jekyll turns 2.0.0</option>
|
|
193
|
+
|
|
194
|
+
<option value="/news/2014/03/27/jekyll-1-5-1-released/">Jekyll 1.5.1 Released</option>
|
|
195
|
+
|
|
196
|
+
<option value="/news/2014/03/24/jekyll-1-5-0-released/">Jekyll 1.5.0 Released</option>
|
|
197
|
+
|
|
198
|
+
<option value="/news/2014/01/13/jekyll-1-4-3-released/">Jekyll 1.4.3 Released</option>
|
|
199
|
+
|
|
200
|
+
<option value="/news/2013/12/16/jekyll-1-4-2-released/">Jekyll 1.4.2 Released</option>
|
|
201
|
+
|
|
202
|
+
<option value="/news/2013/12/09/jekyll-1-4-1-released/">Jekyll 1.4.1 Released</option>
|
|
203
|
+
|
|
204
|
+
<option value="/news/2013/12/07/jekyll-1-4-0-released/">Jekyll 1.4.0 Released</option>
|
|
205
|
+
|
|
206
|
+
<option value="/news/2013/11/26/jekyll-1-3-1-released/">Jekyll 1.3.1 Released</option>
|
|
207
|
+
|
|
208
|
+
<option value="/news/2013/11/04/jekyll-1-3-0-released/">Jekyll 1.3.0 Released</option>
|
|
209
|
+
|
|
210
|
+
<option value="/news/2013/10/28/jekyll-1-3-0-rc1-released/">Jekyll 1.3.0.rc1 Released</option>
|
|
211
|
+
|
|
212
|
+
<option value="/news/2013/09/14/jekyll-1-2-1-released/">Jekyll 1.2.1 Released</option>
|
|
213
|
+
|
|
214
|
+
<option value="/news/2013/09/06/jekyll-1-2-0-released/">Jekyll 1.2.0 Released</option>
|
|
215
|
+
|
|
216
|
+
<option value="/news/2013/07/25/jekyll-1-1-2-released/">Jekyll 1.1.2 Released</option>
|
|
217
|
+
|
|
218
|
+
<option value="/news/2013/07/25/jekyll-1-0-4-released/">Jekyll 1.0.4 Released</option>
|
|
219
|
+
|
|
220
|
+
<option value="/news/2013/07/24/jekyll-1-1-1-released/">Jekyll 1.1.1 Released</option>
|
|
221
|
+
|
|
222
|
+
<option value="/news/2013/07/14/jekyll-1-1-0-released/">Jekyll 1.1.0 Released</option>
|
|
223
|
+
|
|
224
|
+
<option value="/news/2013/06/07/jekyll-1-0-3-released/">Jekyll 1.0.3 Released</option>
|
|
225
|
+
|
|
226
|
+
<option value="/news/2013/05/12/jekyll-1-0-2-released/">Jekyll 1.0.2 Released</option>
|
|
227
|
+
|
|
228
|
+
<option value="/news/2013/05/08/jekyll-1-0-1-released/">Jekyll 1.0.1 Released</option>
|
|
229
|
+
|
|
230
|
+
<option value="/news/2013/05/05/jekyll-1-0-0-released/">Jekyll 1.0.0 Released</option>
|
|
231
|
+
|
|
232
|
+
</optgroup>
|
|
233
|
+
</select>
|
|
234
|
+
</div>
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
<div class="unit four-fifths">
|
|
238
|
+
<article>
|
|
239
|
+
<h2>
|
|
240
|
+
Jekyll 3.4.1, or "Unintended Consequences"
|
|
241
|
+
<a href="/news/2017/03/02/jekyll-3-4-1-released/" class="permalink" title="Permalink">∞</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
|
+
02 Mar 2017
|
|
251
|
+
</span>
|
|
252
|
+
<a href="https://github.com/parkr" class="post-author">
|
|
253
|
+
<img class="avatar avatar-small" src="https://avatars3.githubusercontent.com/parkr?v=3&s=24" alt="parkr" srcset="https://avatars3.githubusercontent.com/parkr?v=3&s=24 1x, https://avatars3.githubusercontent.com/parkr?v=3&s=48 2x, https://avatars3.githubusercontent.com/parkr?v=3&s=72 3x, https://avatars3.githubusercontent.com/parkr?v=3&s=96 4x" width="24" height="24" data-proofer-ignore="true">
|
|
254
|
+
parkr
|
|
255
|
+
</a>
|
|
256
|
+
</div>
|
|
257
|
+
<div class="post-content">
|
|
258
|
+
<p>Conformity is a confounding thing.</p>
|
|
259
|
+
|
|
260
|
+
<p>We write tests to ensure that a piece of functionality that works today
|
|
261
|
+
will work tomorrow, as further modifications are made to the codebase. This
|
|
262
|
+
is a principle of modern software development: every change must have a
|
|
263
|
+
test to guard against regressions to the functionality implemented by that
|
|
264
|
+
change.</p>
|
|
265
|
+
|
|
266
|
+
<p>And yet, occasionally, our very best efforts to test functionality will be
|
|
267
|
+
thwarted. This is because of how our code produces unintended
|
|
268
|
+
functionality, which naturally goes untested.</p>
|
|
269
|
+
|
|
270
|
+
<p>In our documentation, we tell users to name their posts with the following
|
|
271
|
+
format:</p>
|
|
272
|
+
|
|
273
|
+
<div class="language-text highlighter-rouge">
|
|
274
|
+
<pre class="highlight"><code>YYYY-MM-DD-title.extension
|
|
275
|
+
</code></pre>
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
<p>That format specifies exactly four numbers for the year, e.g. 2017, two
|
|
279
|
+
letters for the month, e.g. 03, and two letters for the day, e.g. 02. To
|
|
280
|
+
match this, we had the following regular expression:</p>
|
|
281
|
+
|
|
282
|
+
<div class="language-ruby highlighter-rouge">
|
|
283
|
+
<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>
|
|
284
|
+
</code></pre>
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<p>You might already see the punchline. While our documentation specifies the
|
|
288
|
+
exact number of numbers that is required for each section of the date, our
|
|
289
|
+
regular expression does not enforce this precision. What happens if a user
|
|
290
|
+
doesn’t conform to our documentation?</p>
|
|
291
|
+
|
|
292
|
+
<p>We recently <a href="https://github.com/jekyll/jekyll/issues/5603">received a bug report</a>
|
|
293
|
+
that detailed how the following file was considered a post:</p>
|
|
294
|
+
|
|
295
|
+
<div class="language-text highlighter-rouge">
|
|
296
|
+
<pre class="highlight"><code>84093135-42842323-42000001-b890-136270f7e5f1.md
|
|
297
|
+
</code></pre>
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
<p>Of course! It matches the above regular expression, but doesn’t satisfy
|
|
301
|
+
other requirements about those numbers being a valid date (unless you’re
|
|
302
|
+
living in a world that has 43 million months, and 42 million (and one)
|
|
303
|
+
days). So, we <a href="https://github.com/jekyll/jekyll/pull/5609">modified the regular expression to match our
|
|
304
|
+
documentation</a>:</p>
|
|
305
|
+
|
|
306
|
+
<div class="language-ruby highlighter-rouge">
|
|
307
|
+
<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>
|
|
308
|
+
</code></pre>
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
<p>Our tests all passed and we were properly excluding this crazy date with 43
|
|
312
|
+
million months and days. This change shipped in Jekyll v3.4.0 and all was
|
|
313
|
+
well.</p>
|
|
314
|
+
|
|
315
|
+
<p>Well, not so much.</p>
|
|
316
|
+
|
|
317
|
+
<p>A very common way to specify the month of February is <code class="highlighter-rouge">2</code>. This is true for
|
|
318
|
+
all single-digit months and days of the month. Notice anything about our
|
|
319
|
+
first regular expression versus our second? The second regular expression
|
|
320
|
+
imposes a <strong>minimum</strong>, as well as maximum, number of digits. This change
|
|
321
|
+
made Jekyll ignore dates with single-digit days and months.</p>
|
|
322
|
+
|
|
323
|
+
<p>The first eight years of Jekyll’s existence had allowed single-digit days
|
|
324
|
+
and months due to an imprecise regular expression. For some people, their
|
|
325
|
+
entire blog was missing, and there were no errors that told them why.</p>
|
|
326
|
+
|
|
327
|
+
<p>After receiving a few bug reports, it became clear what had happened.
|
|
328
|
+
Unintended functionality of the last eight years had been broken. Thus,
|
|
329
|
+
v3.4.0 was broken for a non-negligible number of sites. With a test site
|
|
330
|
+
in-hand from <a href="https://github.com/andrewbanchich" class="user-mention">@andrewbanchich</a>, I tracked it down to this regular expression
|
|
331
|
+
and <a href="https://github.com/jekyll/jekyll/pull/5920">reintroduced</a> a proper
|
|
332
|
+
minimum number of digits for each segment:</p>
|
|
333
|
+
|
|
334
|
+
<div class="language-ruby highlighter-rouge">
|
|
335
|
+
<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>
|
|
336
|
+
</code></pre>
|
|
337
|
+
</div>
|
|
338
|
+
|
|
339
|
+
<p>And, I wrote a test.</p>
|
|
340
|
+
|
|
341
|
+
<p>This change was quickly backported to v3.4.0 and here we are: releasing
|
|
342
|
+
v3.4.1. It will fix the problem for all users who were using single-digit
|
|
343
|
+
months and days.</p>
|
|
344
|
+
|
|
345
|
+
<p>With this, I encourage all of you to look at your code for <em>unintended</em>
|
|
346
|
+
functionality and make a judgement call: if it’s allowed, <em>should it be</em>?
|
|
347
|
+
If it should be allowed, make it <em>intended</em> functionality and test it! I
|
|
348
|
+
know I’ll be looking at my code with much greater scrutiny going forward,
|
|
349
|
+
looking for unintended consequences.</p>
|
|
350
|
+
|
|
351
|
+
<p>Many thanks to our Jekyll affinity team captains who helped out, including
|
|
352
|
+
<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
|
|
353
|
+
change with an eye for consistency and precision. This was certainly a team
|
|
354
|
+
effort.</p>
|
|
355
|
+
|
|
356
|
+
<p>We hope Jekyll v3.4.1 brings your variable-digit dates back to their
|
|
357
|
+
previous glory. We certainly won’t let that unintended functionality be
|
|
358
|
+
unintended any longer.</p>
|
|
359
|
+
|
|
360
|
+
<p>As always, Happy Jekylling!</p>
|
|
361
|
+
|
|
362
|
+
</div>
|
|
363
|
+
</article>
|
|
364
|
+
|
|
365
|
+
</div>
|
|
366
|
+
|
|
367
|
+
<div class="unit one-fifth hide-on-mobiles">
|
|
368
|
+
<aside>
|
|
369
|
+
<ul>
|
|
370
|
+
<li class="">
|
|
371
|
+
<a href="/news/">All News</a>
|
|
372
|
+
</li>
|
|
373
|
+
<li class="">
|
|
374
|
+
<a href="/news/releases/">Jekyll Releases</a>
|
|
375
|
+
</li>
|
|
376
|
+
</ul>
|
|
377
|
+
<h4>Recent Releases</h4>
|
|
378
|
+
<ul>
|
|
379
|
+
|
|
380
|
+
<li class="">
|
|
381
|
+
<a href="/news/2017/07/17/jekyll-3-5-1-released/">Version 3.5.1</a>
|
|
382
|
+
</li>
|
|
383
|
+
|
|
384
|
+
<li class="">
|
|
385
|
+
<a href="/news/2017/06/15/jekyll-3-5-0-released/">Version 3.5.0</a>
|
|
386
|
+
</li>
|
|
387
|
+
|
|
388
|
+
<li class="">
|
|
389
|
+
<a href="/news/2017/03/21/jekyll-3-4-3-released/">Version 3.4.3</a>
|
|
390
|
+
</li>
|
|
391
|
+
|
|
392
|
+
<li class="">
|
|
393
|
+
<a href="/news/2017/03/09/jekyll-3-4-2-released/">Version 3.4.2</a>
|
|
394
|
+
</li>
|
|
395
|
+
|
|
396
|
+
<li class="current">
|
|
397
|
+
<a href="/news/2017/03/02/jekyll-3-4-1-released/">Version 3.4.1</a>
|
|
398
|
+
</li>
|
|
399
|
+
|
|
400
|
+
<li>
|
|
401
|
+
<a href="/docs/history/">History »</a>
|
|
402
|
+
</li>
|
|
403
|
+
</ul>
|
|
404
|
+
<h4>Other News</h4>
|
|
405
|
+
<ul>
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
<li class="">
|
|
425
|
+
<a href="/news/2016/08/24/jekyll-admin-initial-release/">Jekyll Admin Initial Release</a>
|
|
426
|
+
</li>
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
<li class="">
|
|
435
|
+
<a href="/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/">Jekyll's Google Summer of Code Project: The CMS You Always Wanted</a>
|
|
436
|
+
</li>
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
<li class="">
|
|
453
|
+
<a href="/news/2016/03/10/making-it-easier-to-contribute-to-jekyll/">Making it easier to contribute to Jekyll</a>
|
|
454
|
+
</li>
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
<li class="">
|
|
473
|
+
<a href="/news/2015/02/26/introducing-jekyll-talk/">Join the Discussion at Jekyll Talk</a>
|
|
474
|
+
</li>
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
<li class="">
|
|
481
|
+
<a href="/news/2015/01/20/jekyll-meet-and-greet/">Jekyll Meet & Greet at GitHub HQ</a>
|
|
482
|
+
</li>
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
<li class="">
|
|
489
|
+
<a href="/news/2014/12/17/alfredxing-welcome-to-jekyll-core/">Alfred Xing has joined the Jekyll core team</a>
|
|
490
|
+
</li>
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
<li class="">
|
|
511
|
+
<a href="/news/2014/06/04/jekyll-stickers-1-dollar-stickermule/">Pick Up your $1 Jekyll Sticker</a>
|
|
512
|
+
</li>
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
</ul>
|
|
558
|
+
</aside>
|
|
559
|
+
</div>
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
<div class="clear"></div>
|
|
563
|
+
|
|
564
|
+
</div>
|
|
565
|
+
</section>
|
|
566
|
+
|
|
567
|
+
|
|
568
|
+
<footer>
|
|
569
|
+
<div class="grid">
|
|
570
|
+
<div class="unit one-third center-on-mobiles">
|
|
571
|
+
<p>The contents of this website are <br>© 2017 under the terms of the <a href="https://github.com/jekyll/jekyll/blob/master/LICENSE">MIT License</a>.</p>
|
|
572
|
+
</div>
|
|
573
|
+
<div class="unit two-thirds align-right center-on-mobiles">
|
|
574
|
+
<p>
|
|
575
|
+
Proudly hosted by
|
|
576
|
+
<a href="https://github.com">
|
|
577
|
+
<img src="/img/footer-logo.png" width="100" height="30" alt="GitHub • Social coding">
|
|
578
|
+
</a>
|
|
579
|
+
</p>
|
|
580
|
+
</div>
|
|
581
|
+
</div>
|
|
582
|
+
</footer>
|
|
583
|
+
|
|
584
|
+
<script>
|
|
585
|
+
var anchorForId = function (id) {
|
|
586
|
+
var anchor = document.createElement("a");
|
|
587
|
+
anchor.className = "header-link";
|
|
588
|
+
anchor.href = "#" + id;
|
|
589
|
+
anchor.innerHTML = "<span class=\"sr-only\">Permalink</span><i class=\"fa fa-link\"></i>";
|
|
590
|
+
anchor.title = "Permalink";
|
|
591
|
+
return anchor;
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
var linkifyAnchors = function (level, containingElement) {
|
|
595
|
+
var headers = containingElement.getElementsByTagName("h" + level);
|
|
596
|
+
for (var h = 0; h < headers.length; h++) {
|
|
597
|
+
var header = headers[h];
|
|
598
|
+
|
|
599
|
+
if (typeof header.id !== "undefined" && header.id !== "") {
|
|
600
|
+
header.appendChild(anchorForId(header.id));
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
document.onreadystatechange = function () {
|
|
606
|
+
if (this.readyState === "complete") {
|
|
607
|
+
var contentBlock = document.getElementsByClassName("docs")[0] || document.getElementsByClassName("news")[0];
|
|
608
|
+
if (!contentBlock) {
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
for (var level = 1; level <= 6; level++) {
|
|
612
|
+
linkifyAnchors(level, contentBlock);
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
};
|
|
616
|
+
</script>
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
<!-- Gauges (http://get.gaug.es/) -->
|
|
620
|
+
<script>
|
|
621
|
+
var _gauges = _gauges || [];
|
|
622
|
+
(function() {
|
|
623
|
+
var t = document.createElement('script');
|
|
624
|
+
t.type = 'text/javascript';
|
|
625
|
+
t.async = true;
|
|
626
|
+
t.id = 'gauges-tracker';
|
|
627
|
+
t.setAttribute('data-site-id', '503c5af6613f5d0f19000027');
|
|
628
|
+
t.src = '//secure.gaug.es/track.js';
|
|
629
|
+
var s = document.getElementsByTagName('script')[0];
|
|
630
|
+
s.parentNode.insertBefore(t, s);
|
|
631
|
+
})();
|
|
632
|
+
</script>
|
|
633
|
+
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
<!-- Google Analytics (https://www.google.com/analytics) -->
|
|
637
|
+
<script>
|
|
638
|
+
!function(j,e,k,y,l,L){j.GoogleAnalyticsObject=y,j[y]||(j[y]=function(){
|
|
639
|
+
(j[y].q=j[y].q||[]).push(arguments)}),j[y].l=+new Date,l=e.createElement(k),
|
|
640
|
+
L=e.getElementsByTagName(k)[0],l.src='//www.google-analytics.com/analytics.js',
|
|
641
|
+
L.parentNode.insertBefore(l,L)}(window,document,'script','ga');
|
|
642
|
+
|
|
643
|
+
ga('create', 'UA-50755011-1', 'jekyllrb.com');
|
|
644
|
+
ga('send', 'pageview');
|
|
645
|
+
|
|
646
|
+
</script>
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
</body>
|
|
651
|
+
</html>
|