mirror of
https://github.com/jekyll/jekyll.git
synced 2026-04-28 03:01:03 -04:00
Compare commits
775 Commits
docs/redes
...
4.1-stable
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
627e3bbe53 | ||
|
|
d1c72e87b1 | ||
|
|
0a48b23695 | ||
|
|
e05f2b9d5b | ||
|
|
84ea040d0d | ||
|
|
1292dcc24a | ||
|
|
2f4c73f38c | ||
|
|
c0fde30d4b | ||
|
|
bf568cc657 | ||
|
|
5e2af1ba54 | ||
|
|
ab8c4b9b50 | ||
|
|
e761d0692c | ||
|
|
13b7291649 | ||
|
|
2e80c557e3 | ||
|
|
0b2c4c9cec | ||
|
|
aecd937864 | ||
|
|
589b122416 | ||
|
|
5649cac7e7 | ||
|
|
476ec0de9e | ||
|
|
1ec3843130 | ||
|
|
673f3d20ba | ||
|
|
098eab0304 | ||
|
|
881fdc1c01 | ||
|
|
696e8e4b99 | ||
|
|
bc3b92c151 | ||
|
|
b5e9870f45 | ||
|
|
d7bec8015f | ||
|
|
b18a6830c3 | ||
|
|
a4ef72631a | ||
|
|
497246dcf9 | ||
|
|
603fae800a | ||
|
|
5679e4aa93 | ||
|
|
58a73a53d0 | ||
|
|
7baca87e59 | ||
|
|
838575421b | ||
|
|
709e633016 | ||
|
|
3c8b6c92e7 | ||
|
|
f8286b62a2 | ||
|
|
11dd893416 | ||
|
|
8403184b14 | ||
|
|
eb2423c6c4 | ||
|
|
dc8f57d412 | ||
|
|
88e3078a20 | ||
|
|
9f31fe1c3b | ||
|
|
ce483d29a4 | ||
|
|
001df60ea0 | ||
|
|
80683dde4e | ||
|
|
e70e993721 | ||
|
|
b25d4374ee | ||
|
|
5375a2747e | ||
|
|
8c77d2ece6 | ||
|
|
0fbdefb7bb | ||
|
|
48e6cb18d7 | ||
|
|
d51cd070ed | ||
|
|
667df335da | ||
|
|
a5112f3964 | ||
|
|
88c0617588 | ||
|
|
190219414a | ||
|
|
ed11d2149e | ||
|
|
1f39f7a96e | ||
|
|
1888fc1db6 | ||
|
|
4dd1868405 | ||
|
|
42c0f5b89b | ||
|
|
e11cd56a27 | ||
|
|
68fda59b07 | ||
|
|
c0e5541468 | ||
|
|
8de0762923 | ||
|
|
f69471cb4a | ||
|
|
f451129e5a | ||
|
|
d0f5f0f199 | ||
|
|
18f04c61ad | ||
|
|
70870328bf | ||
|
|
82f1b32896 | ||
|
|
acf92593f7 | ||
|
|
59f1b9a131 | ||
|
|
47e3644cd5 | ||
|
|
c8c3891cab | ||
|
|
a36bea22e3 | ||
|
|
2bc1e04620 | ||
|
|
9916526835 | ||
|
|
3acc74c611 | ||
|
|
a489a6b3e5 | ||
|
|
9e9c713f65 | ||
|
|
6a5f52b3ef | ||
|
|
470b925cdd | ||
|
|
79be8abb8f | ||
|
|
964b80edc6 | ||
|
|
a2103c3452 | ||
|
|
00013c3303 | ||
|
|
38157eb9b3 | ||
|
|
c8ce49fdfd | ||
|
|
2ed78413ef | ||
|
|
d935b6f7f9 | ||
|
|
561531eca6 | ||
|
|
e5804f33c2 | ||
|
|
d0b79bb3bb | ||
|
|
3b32fa27d1 | ||
|
|
4536edb1b0 | ||
|
|
4e25c36d86 | ||
|
|
657d924119 | ||
|
|
47ed1762d7 | ||
|
|
9c0c518d52 | ||
|
|
b1462571cb | ||
|
|
30e7d5ea53 | ||
|
|
6db506651a | ||
|
|
67380a2738 | ||
|
|
1cf04b8857 | ||
|
|
be70c3e869 | ||
|
|
2c605bfeb3 | ||
|
|
43b9f13b1a | ||
|
|
f82458bb15 | ||
|
|
e42c35c9ac | ||
|
|
ffdab933b8 | ||
|
|
90f6d171d4 | ||
|
|
7ac4c32181 | ||
|
|
5c24527457 | ||
|
|
8c3934fd02 | ||
|
|
fa9c6d62a2 | ||
|
|
792ecfa310 | ||
|
|
3c41a1eb1d | ||
|
|
842a809cab | ||
|
|
d4ee27ed70 | ||
|
|
047da6396a | ||
|
|
9b29a86bbd | ||
|
|
a2c2957f55 | ||
|
|
8b17c0e3b3 | ||
|
|
0cd3bb8d19 | ||
|
|
2ef3281bad | ||
|
|
784a689b13 | ||
|
|
46cffe89b8 | ||
|
|
bc9774561b | ||
|
|
1412928dde | ||
|
|
9614cb67d4 | ||
|
|
f0ab09968e | ||
|
|
539e712c41 | ||
|
|
6bc27f9fdf | ||
|
|
f7bff1c5c4 | ||
|
|
09c448449e | ||
|
|
8d3c2f6a96 | ||
|
|
e972065325 | ||
|
|
7860d1bac0 | ||
|
|
237d08a76c | ||
|
|
ef6b382a48 | ||
|
|
b84ba5accc | ||
|
|
a011579fe4 | ||
|
|
a1401c6fe9 | ||
|
|
83decb42f6 | ||
|
|
1fe5bd0cf5 | ||
|
|
0683ab143e | ||
|
|
dc5e1d7056 | ||
|
|
c193677dc5 | ||
|
|
7948578cd3 | ||
|
|
e9174dfd3b | ||
|
|
ee5d0cffd6 | ||
|
|
190a35dc9a | ||
|
|
a4b1ca2c75 | ||
|
|
88360bd17d | ||
|
|
f826b8b5ea | ||
|
|
1115eebe15 | ||
|
|
325e6bb3f8 | ||
|
|
256b0875cb | ||
|
|
a1c18b6e87 | ||
|
|
3e182ef25e | ||
|
|
422470dc6e | ||
|
|
c8d673c984 | ||
|
|
27ca06326a | ||
|
|
0f4c8d2248 | ||
|
|
ab6ef0b257 | ||
|
|
ea57ef78da | ||
|
|
6ae640755f | ||
|
|
028c306c11 | ||
|
|
e6d082488c | ||
|
|
b05e6ee8ae | ||
|
|
53bb8bd7d3 | ||
|
|
7ba99f0010 | ||
|
|
70fc6b377d | ||
|
|
0378c3628c | ||
|
|
4a6f91810c | ||
|
|
a9fb26fc33 | ||
|
|
aef8f11f6c | ||
|
|
3d045d277e | ||
|
|
b1573b6292 | ||
|
|
39e2a8b5f5 | ||
|
|
4d131eb069 | ||
|
|
68066ce268 | ||
|
|
002ed48fd8 | ||
|
|
331d3f3ffe | ||
|
|
3e440a9cc1 | ||
|
|
8c3276133d | ||
|
|
1a0a4b709a | ||
|
|
707741c0f8 | ||
|
|
3fb94fbca0 | ||
|
|
558e05eb73 | ||
|
|
ba3e3002c4 | ||
|
|
9739246a89 | ||
|
|
4a1f00e940 | ||
|
|
d65a09b1d9 | ||
|
|
0cb0b8ad8c | ||
|
|
fc694fb496 | ||
|
|
6adb601232 | ||
|
|
99f91b551c | ||
|
|
b5d8a5f409 | ||
|
|
d4e2d19d7e | ||
|
|
5ee36686a9 | ||
|
|
6064ce8eba | ||
|
|
542d9ce79a | ||
|
|
d7c110d568 | ||
|
|
529f0f7030 | ||
|
|
8bb76c865f | ||
|
|
44062561f0 | ||
|
|
6097d3b068 | ||
|
|
ac49cea881 | ||
|
|
a58d71a311 | ||
|
|
68e4e901c2 | ||
|
|
35077ff0a7 | ||
|
|
2c04ddcabd | ||
|
|
5cc78db648 | ||
|
|
4eb7a408e4 | ||
|
|
7cac1f9096 | ||
|
|
b98a919351 | ||
|
|
0aa29046a7 | ||
|
|
05cbe06c26 | ||
|
|
389eb88c20 | ||
|
|
5be7faac3e | ||
|
|
5da8271e9b | ||
|
|
f3b4cad057 | ||
|
|
b8c4e2aaf7 | ||
|
|
48ee086361 | ||
|
|
fc062db1e9 | ||
|
|
ccb6ee9db5 | ||
|
|
b2639ceb59 | ||
|
|
c34d185d8d | ||
|
|
333090d36e | ||
|
|
32a5bcda3d | ||
|
|
b9af7d3564 | ||
|
|
9bc17cf40c | ||
|
|
f9a8bdba50 | ||
|
|
6cf0d7df39 | ||
|
|
e826ae6e2b | ||
|
|
5fa7fcc060 | ||
|
|
34d0dd6c7d | ||
|
|
654d381039 | ||
|
|
4c0ba3a6bd | ||
|
|
b0cca4c1b4 | ||
|
|
af65fa45e3 | ||
|
|
af0f6aad34 | ||
|
|
ba47628fca | ||
|
|
41c0cce5ea | ||
|
|
67f387dfcf | ||
|
|
f5ce5eb23f | ||
|
|
c814089708 | ||
|
|
83238b449a | ||
|
|
998470d00f | ||
|
|
fc6c2eca8b | ||
|
|
eb81dc0e96 | ||
|
|
7ad84ef3c5 | ||
|
|
96e2ea1ad0 | ||
|
|
c3dc576e3c | ||
|
|
866ff6a07d | ||
|
|
c8b6b806e2 | ||
|
|
b1e2266878 | ||
|
|
a54d5526c5 | ||
|
|
98522b03ca | ||
|
|
18479e7f5a | ||
|
|
9557e68551 | ||
|
|
957c9cee9b | ||
|
|
9867669cb6 | ||
|
|
89dc5c2857 | ||
|
|
9292b719bd | ||
|
|
442d4dfb2e | ||
|
|
c8cb0ea8e0 | ||
|
|
12b7d83664 | ||
|
|
cc0b6fa0da | ||
|
|
1d7d11be61 | ||
|
|
0bd9f0515d | ||
|
|
d6d770f6b5 | ||
|
|
6aa8aafa3a | ||
|
|
c964be7628 | ||
|
|
42bf5675e9 | ||
|
|
88a2835afe | ||
|
|
acc2636894 | ||
|
|
14299310a4 | ||
|
|
04527c5b8e | ||
|
|
e1b3d07b7e | ||
|
|
c5b3ffd3e0 | ||
|
|
6cee92229c | ||
|
|
b1ee88397b | ||
|
|
848759ca02 | ||
|
|
2fb2268b57 | ||
|
|
51a07aea53 | ||
|
|
42c48b4f34 | ||
|
|
6a57842395 | ||
|
|
744bbb0e07 | ||
|
|
b0e15a5f16 | ||
|
|
aee034f332 | ||
|
|
2e3154e288 | ||
|
|
3174d19ee5 | ||
|
|
f8b2748c09 | ||
|
|
dd7d03eccd | ||
|
|
22a974200d | ||
|
|
4d0457bab2 | ||
|
|
d9de94bfb5 | ||
|
|
3437135837 | ||
|
|
30fcdcfa04 | ||
|
|
d9c6e2062a | ||
|
|
f8d5772f29 | ||
|
|
83285056b3 | ||
|
|
ede7c0188f | ||
|
|
a92b564aaf | ||
|
|
6fbf908bcb | ||
|
|
3eab32fad7 | ||
|
|
de6548f1ba | ||
|
|
036dbe6349 | ||
|
|
6afaa369e1 | ||
|
|
f0542b97f0 | ||
|
|
275702edd5 | ||
|
|
f00a642901 | ||
|
|
388a37208e | ||
|
|
dc6df7c73a | ||
|
|
2e11e13455 | ||
|
|
98498e2e99 | ||
|
|
7e291349d3 | ||
|
|
d8de658089 | ||
|
|
dd409b7ebc | ||
|
|
9f389e0ada | ||
|
|
b54544c68b | ||
|
|
b8e673b149 | ||
|
|
b3b2ec21a6 | ||
|
|
b66dabac9d | ||
|
|
650dcc637a | ||
|
|
c55eaf7724 | ||
|
|
55fba8ff31 | ||
|
|
b9963f38b3 | ||
|
|
164b0e2794 | ||
|
|
6b851f0394 | ||
|
|
45b2c9e4ed | ||
|
|
26d80cc771 | ||
|
|
5d40711eab | ||
|
|
b02ba76c8a | ||
|
|
8b44ee73ff | ||
|
|
2a11df447d | ||
|
|
dce7d56982 | ||
|
|
9ddb4350d3 | ||
|
|
84e3b92959 | ||
|
|
abcb0e29a3 | ||
|
|
c842d55cec | ||
|
|
917f79a10e | ||
|
|
59101149e1 | ||
|
|
45f5facbed | ||
|
|
759315bfa3 | ||
|
|
26914126c7 | ||
|
|
326ab2dfb7 | ||
|
|
fd476206d7 | ||
|
|
4e37fb6420 | ||
|
|
65773e19a8 | ||
|
|
de60632309 | ||
|
|
0490d71661 | ||
|
|
272360a80b | ||
|
|
8035a3e153 | ||
|
|
2736589ba1 | ||
|
|
a0c3a6bced | ||
|
|
93794d9239 | ||
|
|
65f8831168 | ||
|
|
2c7cbddeba | ||
|
|
764201dc8e | ||
|
|
f8c66f02e1 | ||
|
|
f446aebf07 | ||
|
|
91f82907a3 | ||
|
|
8e52cdbb6b | ||
|
|
21202589de | ||
|
|
6511342e15 | ||
|
|
0e591f08da | ||
|
|
0f5e15811f | ||
|
|
9a10ff9b5a | ||
|
|
6a4f8bdbec | ||
|
|
a87ca206da | ||
|
|
07270c7cfd | ||
|
|
532c499751 | ||
|
|
b55927e8f7 | ||
|
|
4eec5a55c3 | ||
|
|
f3a03a14cd | ||
|
|
0f4b7be88d | ||
|
|
1795996458 | ||
|
|
882279c307 | ||
|
|
384a874805 | ||
|
|
5157bdc753 | ||
|
|
8d5b5fa4dc | ||
|
|
7096885e98 | ||
|
|
854e83230e | ||
|
|
ffe8d168f2 | ||
|
|
4c9cbad677 | ||
|
|
135ebe2660 | ||
|
|
77b6033f2f | ||
|
|
fea0b69d39 | ||
|
|
f7f5cbc6f8 | ||
|
|
5bc21d82f6 | ||
|
|
f42e0e7169 | ||
|
|
7c34db3991 | ||
|
|
b7e3f10a08 | ||
|
|
fcb8a1ecd3 | ||
|
|
e318d1c836 | ||
|
|
874bd2e5c7 | ||
|
|
5b195ffe74 | ||
|
|
03b500b7b7 | ||
|
|
ed8681b1e7 | ||
|
|
ebe62e8a28 | ||
|
|
6435bd6167 | ||
|
|
24f1978412 | ||
|
|
2265e82181 | ||
|
|
8abd4950a2 | ||
|
|
7dbe470dce | ||
|
|
3e8e6d22d7 | ||
|
|
c87f5fa7fa | ||
|
|
c76996cd8e | ||
|
|
4530721575 | ||
|
|
62959527dd | ||
|
|
52374cf8be | ||
|
|
27aa53cf82 | ||
|
|
7d340d933a | ||
|
|
e10a90987a | ||
|
|
25b274621b | ||
|
|
68a31c8eb2 | ||
|
|
9ccdae161b | ||
|
|
06eafadcbb | ||
|
|
e37ee47219 | ||
|
|
52ae35a589 | ||
|
|
25898f8d9d | ||
|
|
cca639dcc3 | ||
|
|
7f1b678a4e | ||
|
|
f0b7c9b783 | ||
|
|
478e3ab301 | ||
|
|
a4f24f54ad | ||
|
|
70bc82bacc | ||
|
|
1480c41213 | ||
|
|
2df56abf85 | ||
|
|
f56b7d59e6 | ||
|
|
119e0047e8 | ||
|
|
58bc689829 | ||
|
|
38bc4d2818 | ||
|
|
3002aa58f5 | ||
|
|
49e5b33fb0 | ||
|
|
13d31c4c8b | ||
|
|
e05745929f | ||
|
|
04ba0c3b10 | ||
|
|
c914e8628b | ||
|
|
86fd200a68 | ||
|
|
56c39e76d2 | ||
|
|
2f791484ab | ||
|
|
db3570e582 | ||
|
|
554e07d4a5 | ||
|
|
263d41f0f7 | ||
|
|
c2a383ba43 | ||
|
|
276e71fb80 | ||
|
|
641eb4e9e7 | ||
|
|
4a7c5177c7 | ||
|
|
390973683f | ||
|
|
c004281d86 | ||
|
|
03ce3f8a45 | ||
|
|
ac02b11fd2 | ||
|
|
c6566b2410 | ||
|
|
08b04aa337 | ||
|
|
818441c8d9 | ||
|
|
b3770fd45d | ||
|
|
98ae88f3fd | ||
|
|
617dc69879 | ||
|
|
079b7231d9 | ||
|
|
9957e21be7 | ||
|
|
ed385ba264 | ||
|
|
2d3c030fac | ||
|
|
49ffbbd4c7 | ||
|
|
db2de73a0d | ||
|
|
7548132944 | ||
|
|
7cdbbaafa7 | ||
|
|
cbfdeaefcd | ||
|
|
1658a1596e | ||
|
|
af055b917c | ||
|
|
a430c22007 | ||
|
|
20c9d0957a | ||
|
|
8c5ee73661 | ||
|
|
c47611cb6e | ||
|
|
d6a756ba27 | ||
|
|
ec347597da | ||
|
|
f99f910e29 | ||
|
|
c763460943 | ||
|
|
12c074303e | ||
|
|
965aef60e6 | ||
|
|
6a604daa5a | ||
|
|
bc54047315 | ||
|
|
551014eb05 | ||
|
|
dc265abf9f | ||
|
|
a62ed45588 | ||
|
|
4dff839dbf | ||
|
|
98c5f47401 | ||
|
|
aa87361848 | ||
|
|
72c712ef9e | ||
|
|
fd74fe3e93 | ||
|
|
85bddfda21 | ||
|
|
8673cdc4cf | ||
|
|
1b4340034b | ||
|
|
1bba76b4f5 | ||
|
|
b04e3d3de7 | ||
|
|
568e50b37a | ||
|
|
3e8c37b641 | ||
|
|
17a5f815b5 | ||
|
|
14e5d00555 | ||
|
|
1b2efb67c3 | ||
|
|
a5cac26766 | ||
|
|
ced4404a5e | ||
|
|
c8fe609f8f | ||
|
|
f4ee82650e | ||
|
|
36d3aed1f2 | ||
|
|
a882608902 | ||
|
|
8e7b2ff7da | ||
|
|
6c872cf6a1 | ||
|
|
ef588d6bc8 | ||
|
|
ec0971ab17 | ||
|
|
3cce93d9b8 | ||
|
|
1bd1ae98e9 | ||
|
|
983e5af661 | ||
|
|
6838153b83 | ||
|
|
8907f39548 | ||
|
|
d6ece561b7 | ||
|
|
c68ccedc21 | ||
|
|
d0beaab6fe | ||
|
|
3b675f5119 | ||
|
|
7440050367 | ||
|
|
4f8e1f3d3f | ||
|
|
0ff03dba6c | ||
|
|
41583c9405 | ||
|
|
31529906da | ||
|
|
b09248ce2e | ||
|
|
2591f33aa8 | ||
|
|
c985dc5899 | ||
|
|
e3b284b757 | ||
|
|
9e42fad62f | ||
|
|
2090989fb3 | ||
|
|
dea6bdbfaf | ||
|
|
9240addcf0 | ||
|
|
16c24d9125 | ||
|
|
0da5389cbb | ||
|
|
6905c80470 | ||
|
|
09b110d453 | ||
|
|
1041f7672f | ||
|
|
6dcce995a6 | ||
|
|
378147d761 | ||
|
|
f3cb41b65a | ||
|
|
9e137bae29 | ||
|
|
3e2c8fd4c8 | ||
|
|
8552471712 | ||
|
|
e522f54e53 | ||
|
|
26b7d6a94d | ||
|
|
9d0c73fce8 | ||
|
|
7eefadb135 | ||
|
|
1e970b598d | ||
|
|
cc7978f3bc | ||
|
|
5bc0ddd6d2 | ||
|
|
238f1c5eaf | ||
|
|
b71dffc305 | ||
|
|
2bdf1a53c4 | ||
|
|
757f47b21c | ||
|
|
5fa01141cc | ||
|
|
226fa22652 | ||
|
|
555722887d | ||
|
|
ec730657a7 | ||
|
|
57a29800b6 | ||
|
|
5b86a636b5 | ||
|
|
18f7a28168 | ||
|
|
7f2412c145 | ||
|
|
575f4b66de | ||
|
|
9ba6c7dd77 | ||
|
|
5942ee46ae | ||
|
|
4279bafff3 | ||
|
|
907477b9ca | ||
|
|
e451acca6a | ||
|
|
da313bf883 | ||
|
|
9b3e5f9fc0 | ||
|
|
8ccb013f85 | ||
|
|
67107f0ec5 | ||
|
|
7ddaa9ffa1 | ||
|
|
3c231a41d2 | ||
|
|
3b4151b773 | ||
|
|
d4b5760002 | ||
|
|
b4dcdd42f8 | ||
|
|
46be718ef6 | ||
|
|
36404b9a43 | ||
|
|
d807deb647 | ||
|
|
aea502745a | ||
|
|
475983537d | ||
|
|
b668eb0150 | ||
|
|
bdbf35136e | ||
|
|
7889d7d215 | ||
|
|
37f5e5f459 | ||
|
|
12e7a35ea7 | ||
|
|
5fa93015a6 | ||
|
|
3036d36a7c | ||
|
|
9c11c9a8a7 | ||
|
|
7f4b15194f | ||
|
|
633a2922d6 | ||
|
|
68e633a56e | ||
|
|
5e7dc7b4d3 | ||
|
|
9f7078d582 | ||
|
|
d8c745ca30 | ||
|
|
7ee2e26d6c | ||
|
|
13cbef4221 | ||
|
|
4e24a460ae | ||
|
|
63b3739062 | ||
|
|
25ad937597 | ||
|
|
b975608cbb | ||
|
|
2f94540f89 | ||
|
|
51d1366902 | ||
|
|
2786d67be5 | ||
|
|
0fef05e161 | ||
|
|
c36f248556 | ||
|
|
bbc2e1469e | ||
|
|
091b5bd697 | ||
|
|
fac57981d3 | ||
|
|
6df8808cbc | ||
|
|
8319501415 | ||
|
|
98dc27b0ab | ||
|
|
33a55d7f65 | ||
|
|
9f46819606 | ||
|
|
d2adfb3cbb | ||
|
|
dedfb0748f | ||
|
|
996431ba60 | ||
|
|
07bf5be7b4 | ||
|
|
f6527cd7ef | ||
|
|
9ee96562dd | ||
|
|
403f526275 | ||
|
|
8d7ef662bc | ||
|
|
cc409d33f7 | ||
|
|
925aa33ddc | ||
|
|
f1777adae9 | ||
|
|
55f0980716 | ||
|
|
06c49c7af6 | ||
|
|
9cb27144b0 | ||
|
|
65817cc6cb | ||
|
|
f6e7c46dd1 | ||
|
|
e3a51092dd | ||
|
|
623e306fd6 | ||
|
|
b8886e4287 | ||
|
|
2903276b4e | ||
|
|
9a4b74c44b | ||
|
|
20d9cbe231 | ||
|
|
349b0361c1 | ||
|
|
bbd635539d | ||
|
|
13b0832459 | ||
|
|
8597a581d7 | ||
|
|
fb22130906 | ||
|
|
1ceef6dcf7 | ||
|
|
9412171578 | ||
|
|
317ed856ff | ||
|
|
e819bc4af0 | ||
|
|
4550f02b58 | ||
|
|
52faf2c34c | ||
|
|
e1ef5f9229 | ||
|
|
1df4e94989 | ||
|
|
922e4c01fe | ||
|
|
fd302cb1f7 | ||
|
|
33680b67af | ||
|
|
2de291c297 | ||
|
|
38b64fc9e9 | ||
|
|
79b7b9ac02 | ||
|
|
1a01f95a12 | ||
|
|
0e761fd4ef | ||
|
|
aef5626b4d | ||
|
|
70fe95c439 | ||
|
|
ce0471fbec | ||
|
|
6dbaf59ac9 | ||
|
|
58076c4ff9 | ||
|
|
b02caf0731 | ||
|
|
ae0a064f3f | ||
|
|
500dd64316 | ||
|
|
d87ee5af03 | ||
|
|
ddbf730865 | ||
|
|
80104c177a | ||
|
|
5c16257947 | ||
|
|
52aa62b0ae | ||
|
|
e87f41834f | ||
|
|
1a718e9b12 | ||
|
|
fc51c32337 | ||
|
|
ea7d107b5c | ||
|
|
88d63c9303 | ||
|
|
f539f4d075 | ||
|
|
ced0d8a6ba | ||
|
|
831fba68be | ||
|
|
5d144beb00 | ||
|
|
be78b4246c | ||
|
|
9a0153f4d2 | ||
|
|
9fa6863794 | ||
|
|
84c46eb680 | ||
|
|
eaa75dfc40 | ||
|
|
d13ad84aa7 | ||
|
|
3eb9b441c5 | ||
|
|
dee01f671a | ||
|
|
f721386419 | ||
|
|
8fd432c10a | ||
|
|
878e0ba29c | ||
|
|
57a05bf948 | ||
|
|
c368fec322 | ||
|
|
8c0a250da4 | ||
|
|
f8037c6699 | ||
|
|
6f984b381c | ||
|
|
18fb5687f4 | ||
|
|
0f5697c4ea | ||
|
|
446aa88bdf | ||
|
|
9882ca238d | ||
|
|
1a7b55e6dd | ||
|
|
e41c42720a | ||
|
|
9221e3429d | ||
|
|
8741c69d42 | ||
|
|
55bd0391da | ||
|
|
7498d4144e | ||
|
|
a93dd0fa64 | ||
|
|
12f66076ba | ||
|
|
6cb97771b7 | ||
|
|
1d8b038edd | ||
|
|
775153df6a | ||
|
|
92be0c3fab | ||
|
|
03b51791c1 | ||
|
|
fe97682e3b | ||
|
|
8ac16a281c | ||
|
|
eac18f88f5 | ||
|
|
dc549a769f | ||
|
|
0f9467c61b | ||
|
|
d257398333 | ||
|
|
eda9e2e4ef | ||
|
|
5b3eb43e08 | ||
|
|
9ae8c09c1b | ||
|
|
cfa022db1d | ||
|
|
c704d36b39 | ||
|
|
2f36fd7fff | ||
|
|
970c1dde5c | ||
|
|
24fa104567 | ||
|
|
6285f59ce3 | ||
|
|
646b24d9ba | ||
|
|
a0f7d800d6 | ||
|
|
e4677b8567 | ||
|
|
78ea59f5a7 | ||
|
|
48b6e743f1 | ||
|
|
d808359186 | ||
|
|
fa914d2dd8 | ||
|
|
c8bd59b69e | ||
|
|
62448192df | ||
|
|
cd200d380f | ||
|
|
842c055ecb | ||
|
|
c732da44d5 | ||
|
|
470ef47abc | ||
|
|
6431637fd7 | ||
|
|
6c5bb7cce1 | ||
|
|
b26ad019c3 | ||
|
|
bfc733da90 | ||
|
|
41b8192b07 | ||
|
|
ba2019dca9 | ||
|
|
e397146acb | ||
|
|
d0753ecd82 | ||
|
|
7184404c74 | ||
|
|
26608929dc | ||
|
|
cb245a7e30 | ||
|
|
7c1f065a41 | ||
|
|
a642f31144 | ||
|
|
c65b08aef3 | ||
|
|
677aa49aa2 | ||
|
|
39a240a8af | ||
|
|
fdce19e966 | ||
|
|
fb0f182a5d | ||
|
|
2acff4a5bf | ||
|
|
84cb2cb06d | ||
|
|
fc60ecce2d | ||
|
|
68b8565c94 | ||
|
|
4da289e22d | ||
|
|
1cc84d8d7b | ||
|
|
7d76d5e48e | ||
|
|
9a66a1614e | ||
|
|
afd0a6ff69 | ||
|
|
e3f9c452b6 |
@@ -1,36 +1,53 @@
|
||||
engines:
|
||||
version: "2"
|
||||
checks:
|
||||
argument-count:
|
||||
enabled: true
|
||||
config:
|
||||
threshold: 5
|
||||
file-lines:
|
||||
enabled: true
|
||||
config:
|
||||
threshold: 300
|
||||
method-complexity:
|
||||
enabled: true
|
||||
config:
|
||||
threshold: 15
|
||||
method-count:
|
||||
enabled: true
|
||||
config:
|
||||
threshold: 50
|
||||
method-lines:
|
||||
enabled: true
|
||||
config:
|
||||
threshold: 30
|
||||
plugins:
|
||||
fixme:
|
||||
enabled: false
|
||||
rubocop:
|
||||
enabled: true
|
||||
channel: rubocop-0-54
|
||||
channel: rubocop-0-60
|
||||
|
||||
exclude_paths:
|
||||
- .codeclimate.yml
|
||||
- .gitignore
|
||||
- .rspec
|
||||
- .rubocop.yml
|
||||
- .travis.yml
|
||||
exclude_patterns:
|
||||
- "*.*"
|
||||
- ".*"
|
||||
|
||||
- Gemfile.lock
|
||||
- CHANGELOG.{md,markdown,txt,textile}
|
||||
- CONTRIBUTING.{md,markdown,txt,textile}
|
||||
- readme.{md,markdown,txt,textile}
|
||||
- README.{md,markdown,txt,textile}
|
||||
- Readme.{md,markdown,txt,textile}
|
||||
- ReadMe.{md,markdown,txt,textile}
|
||||
- COPYING
|
||||
- Gemfile
|
||||
- LICENSE
|
||||
- Rakefile
|
||||
|
||||
- features/**/*
|
||||
- script/**/*
|
||||
- docs/**/*
|
||||
- spec/**/*
|
||||
- test/**/*
|
||||
- vendor/**/*
|
||||
- benchmark/
|
||||
- docs/
|
||||
- exe/
|
||||
- features/
|
||||
- rake/
|
||||
- rubocop/
|
||||
- script/
|
||||
- spec/
|
||||
- test/
|
||||
- vendor/
|
||||
|
||||
- lib/blank_template/
|
||||
- lib/site_template/
|
||||
- lib/theme_template/
|
||||
- lib/jekyll/mime.types
|
||||
- lib/jekyll/commands/serve/livereload_assets/livereload.js
|
||||
|
||||
ratings:
|
||||
paths:
|
||||
- lib/**/*.rb
|
||||
|
||||
55
.devcontainer/Dockerfile
Normal file
55
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,55 @@
|
||||
#-------------------------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
|
||||
#-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
FROM ruby:2
|
||||
|
||||
# Avoid warnings by switching to noninteractive
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# This Dockerfile adds a non-root user with sudo access. Use the "remoteUser"
|
||||
# property in devcontainer.json to use it. On Linux, the container user's GID/UIDs
|
||||
# will be updated to match your local UID/GID (when using the dockerFile property).
|
||||
# See https://aka.ms/vscode-remote/containers/non-root-user for details.
|
||||
ARG USERNAME=vscode
|
||||
ARG USER_UID=1000
|
||||
ARG USER_GID=$USER_UID
|
||||
|
||||
# Configure apt and install packages
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install --no-install-recommends apt-utils dialog locales 2>&1 \
|
||||
# Verify git, process tools installed
|
||||
&& apt-get -y install git openssh-client iproute2 procps lsb-release \
|
||||
#
|
||||
# Install ruby-debug-ide and debase
|
||||
&& gem install ruby-debug-ide \
|
||||
&& gem install debase \
|
||||
#
|
||||
# Install node.js
|
||||
&& apt-get -y install curl software-properties-common \
|
||||
&& curl -sL https://deb.nodesource.com/setup_13.x | bash - \
|
||||
&& apt-get -y install nodejs \
|
||||
#
|
||||
# Create a non-root user to use if preferred - see https://aka.ms/vscode-remote/containers/non-root-user.
|
||||
&& groupadd --gid $USER_GID $USERNAME \
|
||||
&& useradd -s /bin/bash --uid $USER_UID --gid $USER_GID -m $USERNAME \
|
||||
# [Optional] Add sudo support for the non-root user
|
||||
&& apt-get install -y sudo \
|
||||
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME\
|
||||
&& chmod 0440 /etc/sudoers.d/$USERNAME \
|
||||
#
|
||||
# Clean up
|
||||
&& apt-get autoremove -y \
|
||||
&& apt-get clean -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Set the locale
|
||||
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
|
||||
dpkg-reconfigure --frontend=noninteractive locales && \
|
||||
update-locale LANG=en_US.UTF-8
|
||||
|
||||
ENV LANG en_US.UTF-8
|
||||
|
||||
# Switch back to dialog for any ad-hoc use of apt-get
|
||||
ENV DEBIAN_FRONTEND=dialog
|
||||
26
.devcontainer/devcontainer.json
Normal file
26
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,26 @@
|
||||
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.101.1/containers/ruby-2
|
||||
{
|
||||
"name": "Ruby 2",
|
||||
"dockerFile": "Dockerfile",
|
||||
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {
|
||||
"terminal.integrated.shell.linux": "/bin/bash"
|
||||
},
|
||||
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"rebornix.Ruby"
|
||||
]
|
||||
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
// "forwardPorts": [],
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
"postCreateCommand": "bundle install",
|
||||
|
||||
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
|
||||
// "remoteUser": "vscode"
|
||||
|
||||
}
|
||||
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* text=auto
|
||||
14
.github/CONTRIBUTING.markdown
vendored
14
.github/CONTRIBUTING.markdown
vendored
@@ -4,7 +4,7 @@ Hi there! Interested in contributing to Jekyll? We'd love your help. Jekyll is a
|
||||
|
||||
## Where to get help or report a problem
|
||||
|
||||
See [the support guidelines](https://jekyllrb.com/docs/support/)
|
||||
See the [support guidelines](https://jekyllrb.com/docs/support/)
|
||||
|
||||
## Ways to contribute
|
||||
|
||||
@@ -12,9 +12,9 @@ Whether you're a developer, a designer, or just a Jekyll devotee, there are lots
|
||||
|
||||
* [Install Jekyll on your computer](https://jekyllrb.com/docs/installation/) and kick the tires. Does it work? Does it do what you'd expect? If not, [open an issue](https://github.com/jekyll/jekyll/issues/new) and let us know.
|
||||
* Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a work around? Do you have a suggestion for how the feature could be better?
|
||||
* Read through [the documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
|
||||
* Browse through [the Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
|
||||
* Find [an open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.
|
||||
* Read through the [documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
|
||||
* Browse through the [Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
|
||||
* Find an [open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.
|
||||
* Help evaluate [open pull requests](https://github.com/jekyll/jekyll/pulls), by testing the changes locally and reviewing what's proposed.
|
||||
|
||||
## Submitting a pull request
|
||||
@@ -49,7 +49,7 @@ That's it! You'll be automatically subscribed to receive updates as others revie
|
||||
2. Clone the repository locally `git clone https://github.com/<you-username>/jekyll`.
|
||||
3. Create a new, descriptively named branch to contain your change ( `git checkout -b my-awesome-feature` ).
|
||||
4. Hack away, add tests. Not necessarily in that order.
|
||||
5. Make sure everything still passes by running `script/cibuild` (see [the tests section](#running-tests-locally) below)
|
||||
5. Make sure everything still passes by running `script/cibuild` (see the [tests section](#running-tests-locally) below)
|
||||
6. Push the branch up ( `git push origin my-awesome-feature` ).
|
||||
7. Create a pull request by visiting `https://github.com/<your-username>/jekyll` and following the instructions at the top of the screen.
|
||||
|
||||
@@ -89,7 +89,7 @@ If you want to add your plugin to the [list of plugins](https://jekyllrb.com/doc
|
||||
|
||||
## Code Contributions
|
||||
|
||||
Interesting in submitting a pull request? Awesome. Read on. There's a few common gotchas that we'd love to help you avoid.
|
||||
Interested in submitting a pull request? Awesome. Read on. There's a few common gotchas that we'd love to help you avoid.
|
||||
|
||||
### Tests and documentation
|
||||
|
||||
@@ -115,6 +115,8 @@ If your contribution changes any Jekyll behavior, make sure to update the docume
|
||||
Jekyll's methods. It also provides you with helpful methods to quickly create a
|
||||
site or configuration. [Feel free to check it out!](https://github.com/jekyll/jekyll/blob/master/script/console)
|
||||
|
||||
* Previously, we've used the WIP Probot app to help contributors determine whether their pull request is ready for review. Please use a [draft pull request](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests) instead. When you're ready, [mark the pull request as ready for review](https://help.github.com/en/articles/changing-the-stage-of-a-pull-request)
|
||||
|
||||
## Running tests locally
|
||||
|
||||
### Test Dependencies
|
||||
|
||||
5
.github/FUNDING.yml
vendored
Normal file
5
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
# github: jekyll
|
||||
open_collective: jekyll
|
||||
tidelift: rubygems/jekyll
|
||||
4
.github/ISSUE_TEMPLATE/bug_report.md
vendored
4
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,6 +1,10 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Is something not working as expected?
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Jekyll Community Forum
|
||||
url: https://talk.jekyllrb.com/
|
||||
about: Please ask and answer questions here.
|
||||
4
.github/ISSUE_TEMPLATE/documentation.md
vendored
4
.github/ISSUE_TEMPLATE/documentation.md
vendored
@@ -1,6 +1,10 @@
|
||||
---
|
||||
name: Documentation
|
||||
about: Found a typo or something that isn't crystal clear in our docs?
|
||||
title: 'docs: '
|
||||
labels: documentation
|
||||
assignees: DirtyF
|
||||
|
||||
---
|
||||
|
||||
<!-- Thanks for taking the time to open an issue and help us make Jekyll better! -->
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,6 +1,10 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Want us to add any features to Jekyll?
|
||||
title: 'feat: '
|
||||
labels: feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
11
.github/ISSUE_TEMPLATE/question.md
vendored
11
.github/ISSUE_TEMPLATE/question.md
vendored
@@ -1,11 +0,0 @@
|
||||
---
|
||||
name: Question
|
||||
about: Have any questions about how Jekyll works?
|
||||
---
|
||||
|
||||
<!--
|
||||
The Jekyll issue tracker IS NOT for usage questions! Please post your
|
||||
question on our dedicated forum at https://talk.jekyllrb.com.
|
||||
|
||||
Thank you!
|
||||
-->
|
||||
14
.github/PULL_REQUEST_TEMPLATE.md
vendored
14
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -20,7 +20,7 @@
|
||||
|
||||
- I've added tests (if it's a bug, feature or enhancement)
|
||||
- I've adjusted the documentation (if it's a feature or enhancement)
|
||||
- The test suite passes (run `script/cibuild` to verify this)
|
||||
- The test suite passes locally (run `script/cibuild` to verify this)
|
||||
-->
|
||||
|
||||
## Summary
|
||||
@@ -33,11 +33,13 @@
|
||||
|
||||
<!--
|
||||
Is this related to any GitHub issue(s)?
|
||||
-->
|
||||
|
||||
## Semver Changes
|
||||
You can use keywords to automatically close the related issue.
|
||||
For example, (all of) the following will close issue #4567 when your PR is merged.
|
||||
|
||||
<!--
|
||||
Which semantic version change would you recommend?
|
||||
If you don't know, feel free to omit it.
|
||||
Closes #4567
|
||||
Fixes #4567
|
||||
Resolves #4567
|
||||
|
||||
Use any one of the above as applicable.
|
||||
-->
|
||||
|
||||
15
.github/config.yml
vendored
Normal file
15
.github/config.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
updateDocsComment: >
|
||||
Thanks for opening this pull request! The maintainers of this repository would appreciate it if you would update some of our documentation based on your changes.
|
||||
|
||||
updateDocsWhiteList:
|
||||
- bug
|
||||
- fix
|
||||
- Backport
|
||||
- dev
|
||||
- Update
|
||||
- WIP
|
||||
- chore
|
||||
|
||||
updateDocsTargetFiles:
|
||||
- README
|
||||
- docs/
|
||||
53
.github/workflows/ci.yml
vendored
Normal file
53
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
name: Continuous Integration
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- /.*-stable/
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- /.*-stable/
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
name: 'SUITE: ${{ matrix.test_suite }} / OS: ${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
test_suite:
|
||||
- test
|
||||
- default-site
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 5
|
||||
- name: Ruby
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.6.x
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: vendor/bundle
|
||||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gems-
|
||||
- name: 'Update Rubygems'
|
||||
run: 'gem update --system --no-document'
|
||||
- name: 'Update Bundler'
|
||||
run: 'gem update bundler --no-document'
|
||||
- name: Set up bundle
|
||||
run: |
|
||||
bundle config path vendor/bundle
|
||||
bundle install --jobs 4 --retry 3
|
||||
- name: Run Test Suite
|
||||
run: bash script/cibuild
|
||||
env:
|
||||
CI: true
|
||||
TEST_SUITE: ${{ matrix.test_suite }}
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,8 +1,7 @@
|
||||
# Jekyll
|
||||
_site/
|
||||
.jekyll-cache
|
||||
*-cache/
|
||||
.jekyll-metadata
|
||||
.sass-cache
|
||||
|
||||
# Ruby
|
||||
.bundle/
|
||||
|
||||
71
.rubocop.yml
71
.rubocop.yml
@@ -1,6 +1,8 @@
|
||||
---
|
||||
inherit_from: .rubocop_todo.yml
|
||||
|
||||
require:
|
||||
- rubocop-performance
|
||||
- ./rubocop/jekyll
|
||||
|
||||
Jekyll/NoPutsAllowed:
|
||||
@@ -8,7 +10,7 @@ Jekyll/NoPutsAllowed:
|
||||
- rake/*.rake
|
||||
|
||||
AllCops:
|
||||
TargetRubyVersion: 2.3
|
||||
TargetRubyVersion: 2.4
|
||||
Include:
|
||||
- lib/**/*.rb
|
||||
- test/**/*.rb
|
||||
@@ -19,30 +21,51 @@ AllCops:
|
||||
- script/**/*
|
||||
- vendor/**/*
|
||||
- tmp/**/*
|
||||
Layout/AlignHash:
|
||||
|
||||
Layout/EmptyComment:
|
||||
Enabled: false
|
||||
Layout/EmptyLinesAroundAttributeAccessor:
|
||||
Enabled: true
|
||||
Layout/EndAlignment:
|
||||
Severity: error
|
||||
Layout/HashAlignment:
|
||||
EnforcedHashRocketStyle: table
|
||||
Layout/IndentationWidth:
|
||||
Severity: error
|
||||
Layout/IndentArray:
|
||||
Layout/FirstArrayElementIndentation:
|
||||
EnforcedStyle: consistent
|
||||
Layout/IndentHash:
|
||||
Layout/FirstHashElementIndentation:
|
||||
EnforcedStyle: consistent
|
||||
Layout/LineLength:
|
||||
Exclude:
|
||||
- !ruby/regexp /features\/.*.rb/
|
||||
- Rakefile
|
||||
- rake/*.rake
|
||||
- Gemfile
|
||||
Max: 100
|
||||
Severity: warning
|
||||
Layout/MultilineMethodCallIndentation:
|
||||
EnforcedStyle: indented
|
||||
Layout/MultilineOperationIndentation:
|
||||
EnforcedStyle: indented
|
||||
Layout/SpaceAroundMethodCallOperator:
|
||||
Enabled: true
|
||||
|
||||
Lint/NestedPercentLiteral:
|
||||
Exclude:
|
||||
- test/test_site.rb
|
||||
Layout/EmptyComment:
|
||||
Enabled: false
|
||||
Layout/EndAlignment:
|
||||
Severity: error
|
||||
Lint/DeprecatedOpenSSLConstant:
|
||||
Enabled: true
|
||||
Lint/RaiseException:
|
||||
Enabled: true
|
||||
Lint/StructNewOverride:
|
||||
Enabled: true
|
||||
Lint/UnreachableCode:
|
||||
Severity: error
|
||||
Lint/Void:
|
||||
Exclude:
|
||||
- lib/jekyll/site.rb
|
||||
|
||||
Metrics/AbcSize:
|
||||
Max: 21
|
||||
Metrics/BlockLength:
|
||||
@@ -63,24 +86,19 @@ Metrics/CyclomaticComplexity:
|
||||
Exclude:
|
||||
- lib/jekyll/utils.rb
|
||||
- lib/jekyll/commands/serve.rb
|
||||
Metrics/LineLength:
|
||||
Exclude:
|
||||
- !ruby/regexp /features\/.*.rb/
|
||||
- Rakefile
|
||||
- rake/*.rake
|
||||
- Gemfile
|
||||
Max: 100
|
||||
Severity: warning
|
||||
Metrics/MethodLength:
|
||||
CountComments: false
|
||||
Max: 20
|
||||
Severity: error
|
||||
Metrics/ModuleLength:
|
||||
Max: 240
|
||||
Exclude:
|
||||
- lib/jekyll/filters.rb
|
||||
Metrics/ParameterLists:
|
||||
Max: 4
|
||||
Metrics/PerceivedComplexity:
|
||||
Max: 8
|
||||
|
||||
Naming/FileName:
|
||||
Enabled: false
|
||||
Naming/HeredocDelimiterNaming:
|
||||
@@ -92,9 +110,7 @@ Naming/MemoizedInstanceVariableName:
|
||||
- lib/jekyll/drops/site_drop.rb
|
||||
- lib/jekyll/drops/unified_payload_drop.rb
|
||||
- lib/jekyll/page_without_a_file.rb
|
||||
Naming/UncommunicativeMethodParamName:
|
||||
AllowedNames:
|
||||
- _
|
||||
|
||||
Security/MarshalLoad:
|
||||
Exclude:
|
||||
- !ruby/regexp /test\/.*.rb$/
|
||||
@@ -103,6 +119,7 @@ Security/YAMLLoad:
|
||||
Exclude:
|
||||
- !ruby/regexp /features\/.*.rb/
|
||||
- !ruby/regexp /test\/.*.rb$/
|
||||
|
||||
Style/AccessModifierDeclarations:
|
||||
Enabled: false
|
||||
Style/Alias:
|
||||
@@ -112,20 +129,30 @@ Style/AndOr:
|
||||
Style/ClassAndModuleChildren:
|
||||
Exclude:
|
||||
- test/**/*.rb
|
||||
Style/FrozenStringLiteralComment:
|
||||
EnforcedStyle: always
|
||||
Style/Documentation:
|
||||
Enabled: false
|
||||
Style/DoubleNegation:
|
||||
Enabled: false
|
||||
Style/ExponentialNotation:
|
||||
Enabled: true
|
||||
Style/FormatStringToken:
|
||||
Exclude:
|
||||
- lib/jekyll/utils/ansi.rb
|
||||
- lib/jekyll/liquid_renderer/table.rb
|
||||
- lib/jekyll/profiler.rb
|
||||
Style/FrozenStringLiteralComment:
|
||||
EnforcedStyle: always
|
||||
Style/GuardClause:
|
||||
Enabled: false
|
||||
Style/HashEachMethods:
|
||||
Enabled: true
|
||||
Style/HashSyntax:
|
||||
EnforcedStyle: hash_rockets
|
||||
Severity: error
|
||||
Style/HashTransformKeys:
|
||||
Enabled: false
|
||||
Style/HashTransformValues:
|
||||
Enabled: true
|
||||
Style/MixinUsage:
|
||||
Exclude:
|
||||
- test/helper.rb
|
||||
@@ -151,6 +178,8 @@ Style/SafeNavigation:
|
||||
- lib/jekyll/document.rb
|
||||
Style/SignalException:
|
||||
EnforcedStyle: only_raise
|
||||
Style/SlicingWithRange:
|
||||
Enabled: false
|
||||
Style/StringLiterals:
|
||||
EnforcedStyle: double_quotes
|
||||
Style/StringLiteralsInInterpolation:
|
||||
|
||||
18
.rubocop_todo.yml
Normal file
18
.rubocop_todo.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config`
|
||||
# on 2020-02-18 23:36:40 +0100 using RuboCop version 0.80.0.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
# versions of RuboCop, may require this file to be generated again.
|
||||
|
||||
# Offense count: 4
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
||||
# SupportedStylesForExponentOperator: space, no_space
|
||||
Layout/SpaceAroundOperators:
|
||||
Exclude:
|
||||
- 'lib/jekyll/commands/build.rb'
|
||||
- 'lib/jekyll/site.rb'
|
||||
- 'lib/jekyll/tags/include.rb'
|
||||
- 'test/test_configuration.rb'
|
||||
44
.travis.yml
44
.travis.yml
@@ -1,14 +1,12 @@
|
||||
bundler_args: --without benchmark:site:development
|
||||
bundler_args: --without benchmark:development
|
||||
script: script/cibuild
|
||||
cache: bundler
|
||||
language: ruby
|
||||
sudo: false
|
||||
|
||||
rvm:
|
||||
- &ruby1 2.5.1
|
||||
- &ruby2 2.4.4
|
||||
- &ruby3 2.3.7
|
||||
- &jruby jruby-9.1.16.0
|
||||
- &ruby1 2.7.1
|
||||
- &ruby2 2.5.8
|
||||
- &jruby jruby-9.2.11.1
|
||||
|
||||
matrix:
|
||||
include:
|
||||
@@ -18,6 +16,12 @@ matrix:
|
||||
- rvm: *ruby1
|
||||
env: TEST_SUITE=default-site
|
||||
name: "🏠️ Default Site"
|
||||
- rvm: *ruby1
|
||||
env: TEST_SUITE=profile-docs
|
||||
name: "Profile Docs"
|
||||
- rvm: *ruby2
|
||||
env: TEST_SUITE=memprof
|
||||
name: "Profile Memory Allocation"
|
||||
exclude:
|
||||
- rvm: *jruby
|
||||
env: TEST_SUITE=cucumber
|
||||
@@ -30,10 +34,18 @@ branches:
|
||||
only:
|
||||
- master
|
||||
- themes
|
||||
- /^.*-stable/
|
||||
- /.*backport.*/
|
||||
- /.*-stable/
|
||||
|
||||
before_script:
|
||||
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
||||
- chmod +x ./cc-test-reporter
|
||||
- ./cc-test-reporter before-build
|
||||
|
||||
after_script:
|
||||
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
slack:
|
||||
secure: "\
|
||||
dNdKk6nahNURIUbO3ULhA09/vTEQjK0fNbgjVjeYPEvROHgQBP1cIP3AJy8aWs8rl5Yyow4Y\
|
||||
@@ -41,18 +53,6 @@ notifications:
|
||||
O1AanCUbJSEyJTju347xCBGzESU=\
|
||||
"
|
||||
|
||||
addons:
|
||||
code_climate:
|
||||
repo_token:
|
||||
secure: "\
|
||||
mAuvDu+nrzB8dOaLqsublDGt423mGRyZYM3vsrXh4Tf1sT+L1PxsRzU4gLmcV27HtX2Oq9\
|
||||
DA4vsRURfABU0fIhwYkQuZqEcA3d8TL36BZcGEshG6MQ2AmnYsmFiTcxqV5bmlElHEqQuT\
|
||||
5SUFXLafgZPBnL0qDwujQcHukID41sE=\
|
||||
"
|
||||
# regular test configuration
|
||||
after_success:
|
||||
- bundle exec codeclimate-test-reporter
|
||||
|
||||
before_install:
|
||||
- gem update --system
|
||||
- gem install bundler
|
||||
- gem update --system --no-document
|
||||
- gem install bundler --no-document
|
||||
|
||||
@@ -2,11 +2,17 @@
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
@@ -16,31 +22,55 @@ Examples of behavior that contributes to creating a positive environment include
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting a project maintainer. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at [olivia@jekyllrb.com](mailto:olivia@jekyllrb.com). All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][version]
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org/
|
||||
[version]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq)
|
||||
|
||||
38
Gemfile
38
Gemfile
@@ -3,31 +3,32 @@
|
||||
source "https://rubygems.org"
|
||||
gemspec :name => "jekyll"
|
||||
|
||||
gem "rake", "~> 12.0"
|
||||
gem "rake", "~> 13.0"
|
||||
|
||||
group :development do
|
||||
gem "launchy", "~> 2.3"
|
||||
gem "pry"
|
||||
|
||||
unless RUBY_ENGINE == "jruby"
|
||||
gem "pry-byebug"
|
||||
end
|
||||
gem "pry-byebug" unless RUBY_ENGINE == "jruby"
|
||||
end
|
||||
|
||||
#
|
||||
|
||||
group :test do
|
||||
gem "codeclimate-test-reporter", "~> 1.0.5"
|
||||
gem "cucumber", "~> 3.0"
|
||||
gem "httpclient"
|
||||
gem "jekyll_test_plugin"
|
||||
gem "jekyll_test_plugin_malicious"
|
||||
gem "memory_profiler"
|
||||
gem "nokogiri", "~> 1.7"
|
||||
gem "rspec"
|
||||
gem "rspec-mocks"
|
||||
gem "rubocop", "~> 0.60.0"
|
||||
gem "rubocop", "~> 0.84.0"
|
||||
gem "rubocop-performance"
|
||||
gem "test-dependency-theme", :path => File.expand_path("test/fixtures/test-dependency-theme", __dir__)
|
||||
gem "test-theme", :path => File.expand_path("test/fixtures/test-theme", __dir__)
|
||||
gem "test-theme-skinny", :path => File.expand_path("test/fixtures/test-theme-skinny", __dir__)
|
||||
gem "test-theme-symlink", :path => File.expand_path("test/fixtures/test-theme-symlink", __dir__)
|
||||
|
||||
gem "jruby-openssl" if RUBY_ENGINE == "jruby"
|
||||
end
|
||||
@@ -35,9 +36,7 @@ end
|
||||
#
|
||||
|
||||
group :test_legacy do
|
||||
if RUBY_PLATFORM =~ %r!cygwin!
|
||||
gem "test-unit"
|
||||
end
|
||||
gem "test-unit" if RUBY_PLATFORM =~ %r!cygwin!
|
||||
|
||||
gem "minitest"
|
||||
gem "minitest-profile"
|
||||
@@ -60,34 +59,35 @@ end
|
||||
#
|
||||
|
||||
group :jekyll_optional_dependencies do
|
||||
gem "coderay", "~> 1.1.0"
|
||||
gem "jekyll-coffeescript"
|
||||
gem "jekyll-docs", :path => "../docs" if Dir.exist?("../docs") && ENV["JEKYLL_VERSION"]
|
||||
gem "jekyll-feed", "~> 0.9"
|
||||
gem "jekyll-gist"
|
||||
gem "jekyll-paginate"
|
||||
gem "jekyll-redirect-from"
|
||||
gem "kramdown", "~> 1.14"
|
||||
gem "kramdown-syntax-coderay"
|
||||
gem "mime-types", "~> 3.0"
|
||||
gem "rdoc", "~> 6.0"
|
||||
gem "tomlrb", "~> 1.2"
|
||||
|
||||
platform :ruby, :mswin, :mingw, :x64_mingw do
|
||||
gem "classifier-reborn", "~> 2.2.0"
|
||||
gem "liquid-c", "~> 3.0"
|
||||
platforms :ruby, :mswin, :mingw, :x64_mingw do
|
||||
gem "classifier-reborn", "~> 2.2"
|
||||
gem "liquid-c", "~> 4.0"
|
||||
gem "yajl-ruby", "~> 1.4"
|
||||
end
|
||||
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem "tzinfo-data", :platforms => [:mingw, :mswin, :x64_mingw, :jruby]
|
||||
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
# and associated library
|
||||
platforms :jruby, :mswin, :mingw, :x64_mingw do
|
||||
gem "tzinfo", "~> 1.2"
|
||||
gem "tzinfo-data"
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
||||
group :site do
|
||||
if ENV["PROOF"]
|
||||
gem "html-proofer", "~> 3.4"
|
||||
end
|
||||
gem "html-proofer", "~> 3.4" if ENV["PROOF"]
|
||||
|
||||
gem "jekyll-avatar"
|
||||
gem "jekyll-mentions"
|
||||
|
||||
630
History.markdown
630
History.markdown
@@ -1,172 +1,484 @@
|
||||
## HEAD
|
||||
|
||||
* Textile is only supported through a converter plugin (#7003)
|
||||
* Add info how to deploy using pre-push git hook (#7179)
|
||||
* chore(release): reflect latest patched releases (#7262)
|
||||
|
||||
### Documentation
|
||||
|
||||
* Release post for v3.8.0 (#6849)
|
||||
* Add Installation Instructions for Ubuntu (#6925)
|
||||
* add liquid tag jekyll-flickr (#6946)
|
||||
* Add 4.0 development post (#6934)
|
||||
* Updated copy - fixed casing of SaaS on resources page. (#6949)
|
||||
* WIP: Do not advise users to install Jekyll outside of Bundler (#6927)
|
||||
* Don't prompt for sudo when installing with Ubuntu WSL (#6781)
|
||||
* Fix typo (#6969)
|
||||
* Add version number for group_by_exp doc (#6956)
|
||||
* Update Windows install docs (#6926)
|
||||
* Remove documentation for using Redcarpet (#6990)
|
||||
* Updated nginx configuration for custom-404-page documentation (#6994)
|
||||
* List all static files variables (#7002)
|
||||
* Document that _drafts need to be contained within the custom collection directory (#6985)
|
||||
* proposed change for passive voice. (#7005)
|
||||
* added the CAT plugin to the plugin list (#7011)
|
||||
* Updated to supported version (#7031)
|
||||
* Clarify definition of 'draft' (#7037)
|
||||
* Listed the jekyll-target-blank plugin in plugins list. (#7046)
|
||||
* Typo (#7058)
|
||||
* Add Hints for some Improved Travis Config in Doc (#7049)
|
||||
* Added plugin json-get. (#7086)
|
||||
* Update travis-ci.md to point out "this is an example Gemfile" (#7089)
|
||||
* Adding `jekyll-info` plugin (#7091)
|
||||
* GitHub enables you to use themes from other repos (#7112)
|
||||
* Updates to CODE OF CONDUCT (v1.4.0) (#7105)
|
||||
* Instructions to view theme’s files under Linux (#7095)
|
||||
* add jekyll-xml-source (#7114)
|
||||
* Add the jekyll-firstimage filter plugin (#7127)
|
||||
* Use a real theme in the example (#7125)
|
||||
* Update docs about post creation (#7138)
|
||||
* Add DEV Community's Jekyll tag to community page (#7139)
|
||||
* Initialize upgrading doc for v4.0 (#7140)
|
||||
* Add version badge for date filters with ordinal (#7162)
|
||||
* Add closing tags for <a> (#7163)
|
||||
* Add TSV to list of supported _data files. (#7168)
|
||||
* Corrected sample usage of postfiles (#7181)
|
||||
* Add missing html end tag for code example in section 'For loops' (#7199)
|
||||
* Resolve "Unable to locate package ruby2.4" error (#7196)
|
||||
* installation instructions for Fedora (#7198)
|
||||
* New docs (#7205)
|
||||
* Correct stylesheet url in tutorial step 7 (#7210)
|
||||
* Add some minor improvements to image loading in Showcase page (#7214)
|
||||
* Fix minor grammatical error (#7215)
|
||||
* Add developer.spotify.com to the Jekyll Showcase (#7217)
|
||||
* removes quotes from markdown for assets (#7223)
|
||||
* clarified front matter requirement (#7234)
|
||||
* Minor whitespace fixes (#7238)
|
||||
* explicit location of where to create blog.html (#7241)
|
||||
* Fix a small grammar error/typo in the docs (#7260)
|
||||
* environments.md: reference the build command options that allows multiple config files (#7266)
|
||||
* Update 10-deployment.md (#7268)
|
||||
* Add more issue template(s) and pull request template (#7269)
|
||||
* Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
|
||||
* Fix broken Contributors link in README.markdown (#7200)
|
||||
* Docs: Add title tag to item in RSS template (#7282)
|
||||
* Docs: more inclusive writing (#7283)
|
||||
* Document converter methods (#7289)
|
||||
* Docs: Add link tag to item in RSS template (#7291)
|
||||
* Add Isomer to showcase (#7300)
|
||||
* Added missing semicolon (#7306)
|
||||
* "This restricts you..." to "This restricts your" (#7307)
|
||||
* Add a link to Giraffe Academy's tutorial (#7325)
|
||||
* grammar correction (#7327)
|
||||
* docs: list all standard liquid filters (#7333)
|
||||
* Document Jekyll Filters with YAML data (#7335)
|
||||
* Remove redundant instruction comment (#7342)
|
||||
* docs: minimize rendering count (#7343)
|
||||
|
||||
### Minor Enhancements
|
||||
|
||||
* use jekyll-compose if installed (#6932)
|
||||
* Memoize computing excerpt's relative_path (#6951)
|
||||
* Liquefied link tag (#6269)
|
||||
* Suggest re-running command with --trace on fail (#6551)
|
||||
* Update item_property to return numbers as numbers instead of strings (#6608)
|
||||
* Use .markdown for page templates (#7126)
|
||||
* Fix custom 404 page for GitHub pages (#7132)
|
||||
* Add support for `*.xhtml` files (#6854)
|
||||
* Cache matched defaults sets for given parameters (#6888)
|
||||
* Ignore permission error of /proc/version (#7267)
|
||||
* Strip extra slashes via `Jekyll.sanitized_path` (#7182)
|
||||
* Site template: remove default config for markdown (#7285)
|
||||
* Cache: Do not dump undumpable objects (#7190)
|
||||
* Optimize rendering Liquid templates (#7136)
|
||||
* Automatically load _config.toml (#7299)
|
||||
* feat: enhance --blank scaffolding (#7310)
|
||||
* Skip processing posts that can not be read (#7302)
|
||||
* Memoize Site#post_attr_hash (#7276)
|
||||
* Load config file from within current theme-gem (#7304)
|
||||
* Memoize the return value of Site#documents (#7273)
|
||||
|
||||
### Major Enhancements
|
||||
|
||||
* Remove unused error class (#6511)
|
||||
* Drop support for Ruby 2.1 and 2.2 (#6560)
|
||||
* Add vendor folder to a newly installed site's .gitignore (#6968)
|
||||
* bump i18n (#6931)
|
||||
* We are not using Ruby 2.2 anymore (#6977)
|
||||
* Drop support for older versions of Rouge (#6978)
|
||||
* Remove support for Redcarpet (#6987)
|
||||
* Remove support for rdiscount (#6988)
|
||||
* Remove 'cache_dir' during `jekyll clean` (#7158)
|
||||
* Output Jekyll Version while debugging (#7173)
|
||||
* Drop support for pygments as syntax-highlighter (#7118)
|
||||
* Add Cache class (#7169)
|
||||
* Cache converted markdown (#7159)
|
||||
* Ignore cache directory (#7184)
|
||||
* Incorporate `relative_url` filter in `link` tag (#6727)
|
||||
|
||||
### Development Fixes
|
||||
|
||||
* Remove unnecessary Jekyll::Page constant (#6770)
|
||||
* Loggers should accept both numbers and symbols (#6967)
|
||||
* Update instructions for releasing docs Gem (#6975)
|
||||
* yajl-ruby update to v1.4.0 (#6976)
|
||||
* Load Rouge for TestKramdown (#7007)
|
||||
* Useless privates removed (#6768)
|
||||
* Allow i18n v0.9.5 and higher (#7044)
|
||||
* Update Rubocop's config (#7050)
|
||||
* Remember to release docs gem (#7066)
|
||||
* Use assert_include (#7093)
|
||||
* Update rubocop version to 0.57.x ### -docs (#7078)
|
||||
* Example of CircleCI deployment through CircleCI v2 (#7024)
|
||||
* Fix Rubocop offences in test files (#7128)
|
||||
* fix up refute_equal call (#7133)
|
||||
* Fix incorrectly passed arguments to assert_equal (#7134)
|
||||
* Lock Travis to Bundler-1.16.2 (#7144)
|
||||
* Replace regex arg to :gsub with a string arg (#7189)
|
||||
* Interpolate Jekyll::Page subclass on inspection (#7203)
|
||||
* Small benchmark refactoring (#7211)
|
||||
* Add cucumber feature to test include_relative tag (#7213)
|
||||
* Bump Rubocop to v0.59.0 (#7237)
|
||||
* update yajl-ruby (#7278)
|
||||
* Drop support for `jekyll-watch-1.4.0` and older (#7287)
|
||||
* CI(Appveyor): shallow clone with 5 last commits (#7312)
|
||||
* Bump RuboCop to v0.60.x (#7338)
|
||||
## 4.1.0 / 2020-05-27
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Add call to unused method `validate_options` in `commands/serve.rb` (#7122)
|
||||
* Security: fix `include` bypass of `EntryFilter#filter` symlink check (#7226)
|
||||
* Check if scope applies to type before given path (#7263)
|
||||
* Document two methods, simplify one of the methods (#7270)
|
||||
* Check key in collections only if it isn't "posts" (#7277)
|
||||
* Revert "Cache converter in renderer" (#7326)
|
||||
* Measure the no. of times a template gets rendered (#7316)
|
||||
* Re-implement handling Liquid blocks in excerpts (#7250)
|
||||
* Memoize `absolute_url` and `relative_url` filters (#7793)
|
||||
* Fix documentation comment for `Jekyll::Converters::Identity` (#7883)
|
||||
* Optimize `Jekyll::Filters#item_property` (#7696)
|
||||
* Allow multiple binary operators in `where_exp` filter (#8047)
|
||||
* Fix documents custom-ordering logic (#8028)
|
||||
* Use `layout.path` when rendering the Liquid layout (#8069)
|
||||
* Reduce array allocations from `StaticFile#path` (#8083)
|
||||
* Simplify `Jekyll::Renderer#validate_layout` (#8064)
|
||||
* Add static file's basename to its `url_placeholder` (#7908)
|
||||
* Clear cached Liquid template scope before render (#7967)
|
||||
* Cache `URLFilter` results of string inputs per site (#7990)
|
||||
* Use `platforms` instead of `install_if` in Gemfile (#8140)
|
||||
* Config include trailing slash (#8113)
|
||||
* Improve path normalization in liquid_renderer (#8075)
|
||||
* Switch slugify regex to support more Unicode character groups (#8167)
|
||||
* Check if entry is a directory once per enumerator (#8177)
|
||||
* Filter out exclusively excluded entries sooner (#7482)
|
||||
* Return `relative_url` if site.url is an empty string (#7988)
|
||||
* Configure kramdown toc_levels as array by default (#8015)
|
||||
* Reduce `Pathname` objects from front matter defaults (#8067)
|
||||
* Simplify `Jekyll::Hooks.trigger` logic (#8044)
|
||||
* Quicker categories for documents without superdirs (#7987)
|
||||
* Reduce `Jekyll::Renderer` instances during a build (#7570)
|
||||
* Escape regex characters in paths to match (#8138)
|
||||
* Provide invokables for common drop query keys (#8165)
|
||||
* Optimize path sanitization of default front matter (#8154)
|
||||
* Initialize static files' data hash only if needed (#8188)
|
||||
* Initialize include-files as Jekyll objects (#8158)
|
||||
|
||||
### feature
|
||||
### Minor Enhancements
|
||||
|
||||
* Disable Liquid via front matter (#6824)
|
||||
* Do not process Liquid in post excerpt when disabled in front matter (#7146)
|
||||
* serve: add support for ECC certificates (#7768)
|
||||
* Update `item_property` to recognize integers (#7878)
|
||||
* Include `_config.yml` in a new theme's gemspec (#7865)
|
||||
* Add an option to easily disable disk-cache (#7928)
|
||||
* Optimize markdown parsing with Kramdown by reusing the options and parser objects (#8013)
|
||||
* Add `PageDrop` to provide Liquid templates with data (#7992)
|
||||
* Optimize `Kramdown::JekyllDocument#to_html` calls (#8041)
|
||||
* Configure default language for syntax-highlighting (#8035)
|
||||
* Remove dev dependencies from new theme-gem gemspec (#8042)
|
||||
* Allow disabling import of theme configuration (#8131)
|
||||
* Allow excerpts to be generated for `Page` objects (#7642)
|
||||
* Profile various stages of a site's build process (#6760)
|
||||
* Add find filters to optimize where-first chains (#8171)
|
||||
* Make `number_of_words` filter respect CJK characters (#7813)
|
||||
* Allow extensionless document in a strict site (#7950)
|
||||
* Add `:slugified_categories` URL placeholder (#8094)
|
||||
|
||||
### Documentation
|
||||
|
||||
* Add dropped 'title: Staff' to the code (#7805)
|
||||
* Clarify docs for static files in collection (#7812)
|
||||
* Rephrase the CircleCI v2 section (#7815)
|
||||
* Update old GitHub wiki URL with new one (#7823)
|
||||
* Update JekyllConf page with 2019 talks (#7826)
|
||||
* link for memberships (#7825)
|
||||
* Doc: minor fix, should be greater or equal to min version (#7856)
|
||||
* Update third-party.md - Fix broken link (#7857)
|
||||
* clarify _config.yml/collections type (#7873)
|
||||
* Replace backticks with HTML tags in data file (#7879)
|
||||
* add new theme source (#7875)
|
||||
* fixed grammatical error (it's --> its) (#7887)
|
||||
* Docs: Clarify organizing pages into subfolders (#7896)
|
||||
* Disambiguate the placeholder of permalink (#7906)
|
||||
* docs: add short serve command for livereload (#7919)
|
||||
* docs: add options for watch and force polling (#7918)
|
||||
* add install instructions for ArchLinux and openSUSE (#7920)
|
||||
* Improve index page of Jekyll documentation (#7926)
|
||||
* Include path in `jekyll new` commands (Usage docs) (#7931)
|
||||
* Change `affect` to `effect` in the collections docs (#7937)
|
||||
* Changed deprecated command in themes documentation (#7941)
|
||||
* Adds some documentation for the `:clean`, `:on_obsolete` hook (#7954)
|
||||
* docs: fix broken link (#7955)
|
||||
* Corrected typo (#7975)
|
||||
* docs: remove watch option in config (#7940)
|
||||
* Correct a sentence in the documentation (#7978)
|
||||
* Fix YAML representation of `group_by` result (#7979)
|
||||
* Move `--baseurl` to build command options (#7985)
|
||||
* Correct documentation of filters (#7989)
|
||||
* Document sorting two documents by their `date` (#7870)
|
||||
* Fix English grammar error (#7994)
|
||||
* Update 03-front-matter.md (#7996)
|
||||
* Add Kentico Kontent CMS integration to resources (#8000)
|
||||
* Update 07-assets.md (#7413)
|
||||
* Fix file references in Step by Step Tutorial's Assets step (#8007)
|
||||
* docs: improve highlighting of code blocks (#8017)
|
||||
* remove leading slash from Sass file location (#8021)
|
||||
* [Docs] Fix asset link ref in step-by-step tutorial (#8026)
|
||||
* Corrected command to modify PATH (#8029)
|
||||
* Corrected command to modify PATH (#8030)
|
||||
* Docs: Render full contents of just the latest post (#8032)
|
||||
* docs: improvements for note boxes (#8037)
|
||||
* Non-deprecated `vendor/bundle` path configuration (#8048)
|
||||
* Update 09-collections.md (#8060)
|
||||
* Remove extra paragraph tags (#8063)
|
||||
* Add default front matter for tutorials collection (#8081)
|
||||
* Create CSV to table tutorial (#8090)
|
||||
* Add version badge for Custom Sorting of Documents (#8098)
|
||||
* Docs: Fix grammar in `_docs/front-matter.md` (#8097)
|
||||
* Update variables.md (#8106)
|
||||
* Add help about Gentoo/Linux (#8002)
|
||||
* Update documentation on third party site (#8122)
|
||||
* Added Clear Linux (#8132)
|
||||
* Added note about OS specific installation instructions. (#8135)
|
||||
* Fix broken URL in the Resources Page on the Documentation Site (#8136)
|
||||
* Docs: Deploy Jekyll site with GitHub Actions (#8119)
|
||||
* Clarify `bundle config` in Bundler tutorial (#8150)
|
||||
* docs: update your-first-plugin.md (#8147)
|
||||
* Fix typo in documentation on GitHub Actions (#8162)
|
||||
* Ease discovery of CLI commands (in their entirety) (#8178)
|
||||
* Remove `sudo` from Travis CI tutorial (#8187)
|
||||
* Add Gitlab Pages to 3rd party list (#8191)
|
||||
* docs: add 21yunbox for deployment (#8193)
|
||||
* Improve documentation on tags and categories (#8196)
|
||||
|
||||
### Development Fixes
|
||||
|
||||
* Ci/GitHub actions (#7822)
|
||||
* Rubocop version upgrade (#7846)
|
||||
* Split action steps to avoid using `&&` on Windows (#7885)
|
||||
* Upgrade rake to use version 13 (#7910)
|
||||
* Update dependency constraint to allow RuboCop v0.76 (#7893)
|
||||
* Use bash executable consistently (#7909)
|
||||
* Test with JRuby 9.2.9.0 (#7779)
|
||||
* Bump RuboCop to v0.79.x (#7970)
|
||||
* Remove post-install message from gemspec (#7974)
|
||||
* Attain Ruby 3.0 compatibility (#7948)
|
||||
* Test `where` filter handling numeric property values (#7821)
|
||||
* chore(deps): rubocop 0.80.0 (#8012)
|
||||
* Update unit tests for Kramdown-based converter (#8014)
|
||||
* Add Visual Studio Code Development Container (#8016)
|
||||
* chore: simplify require for `Jekyll::VERSION` (#8057)
|
||||
* Remove version-constraint relaxation for i18n gem (#8055)
|
||||
* Mirror `spec.homepage` as `metadata["homepage_uri"]` (#8056)
|
||||
* Bump Ruby versions on Travis builds (#8088)
|
||||
* chore(ci): cache dependencies (#8168)
|
||||
|
||||
### Site Enhancements
|
||||
|
||||
* Add Release Post for v3.6.3, v3.7.4 and v3.8.4 (#7259)
|
||||
* Optimize rendering of the documentation site (#8020)
|
||||
* Utilize `relative_url` filter in documentation site (#8089)
|
||||
* Render tutorial metadata in documentation site (#8092)
|
||||
* Improve syntax-highlighting in documentation site (#8079)
|
||||
* Site: Filter through just the *docs* collection (#8170)
|
||||
|
||||
## 4.0.1 / 2020-05-08
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Prevent console warning with Ruby 2.7 (#8124)
|
||||
* Clear cached Liquid template scope before render (#8141)
|
||||
* Add static file's basename to its url_placeholder (#8142)
|
||||
* Update item_property to recognize integers (#8160)
|
||||
|
||||
### Development Fixes
|
||||
|
||||
* Fix Kramdown converter based tests for v4.0.x (#8143)
|
||||
|
||||
## 3.8.7 / 2020-05-08
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Prevent console warnings with Ruby 2.7 (#8125)
|
||||
|
||||
## 4.0.0 / 2019-08-19
|
||||
|
||||
### Major Enhancements
|
||||
|
||||
* Drop ruby 2.3 (#7454)
|
||||
* Drop support for Ruby 2.1 and 2.2 (#6560)
|
||||
* Drop support for older versions of Rouge (#6978)
|
||||
* Drop support for pygments as syntax-highlighter (#7118)
|
||||
* Drop support for Redcarpet (#6987)
|
||||
* Drop support for rdiscount (#6988)
|
||||
* Drop support for `jekyll-watch-1.4.0` and older (#7287)
|
||||
* Incorporate `relative_url` filter in `link` tag (#6727)
|
||||
* Upgrade kramdown dependency to v2.x (#7492)
|
||||
* Upgrade jekyll-sass-converter to v2.x - Sassc + sourcemaps (#7778)
|
||||
* Upgrade i18n to v1.x (#6931)
|
||||
* Add `Jekyll::Cache` class to handle caching on disk (#7169)
|
||||
* Cache converted markdown (#7159)
|
||||
* Cache: Do not dump undumpable objects (#7190)
|
||||
* Cache matched defaults sets for given parameters (#6888)
|
||||
* Ignore cache directory (#7184)
|
||||
* Add `Site#in_cache_dir` helper method (#7160)
|
||||
* Remove 'cache_dir' during `jekyll clean` (#7158)
|
||||
* Cache parsed Liquid templates in memory (#7136)
|
||||
* Only read layouts from source_dir or theme_dir (#6788)
|
||||
* Allow custom sorting of collection documents (#7427)
|
||||
* Always exclude certain paths from being processed (#7188)
|
||||
* Remove Jekyll::Utils#strip_heredoc in favor of a Ruby > 2.3 built in (#7584)
|
||||
* Incorporate `relative_url` within `post_url` tag (#7589)
|
||||
* Remove patch to modify config for kramdown (#7699)
|
||||
|
||||
### Minor Enhancements
|
||||
|
||||
* Enhance `--blank` scaffolding (#7310)
|
||||
* Use `jekyll-compose` if installed (#6932)
|
||||
* Disable Liquid via front matter (#6824)
|
||||
* Configure cache_dir (#7232)
|
||||
* ISO week date drops (#5981)
|
||||
* Fix custom 404 page for GitHub pages (#7132)
|
||||
* Load config file from within current theme-gem (#7304)
|
||||
* Suggest re-running command with `--trace` on fail (#6551)
|
||||
* Support for binary operators in where_exp filter (#6998)
|
||||
* Automatically load `_config.toml` (#7299)
|
||||
* Add vendor folder to a newly installed site's .gitignore (#6968)
|
||||
* Output Jekyll Version while debugging (#7173)
|
||||
* Memoize computing excerpt's relative_path (#6951)
|
||||
* Skip processing posts that can not be read (#7302)
|
||||
* Memoize the return value of Site#documents (#7273)
|
||||
* Cache globbed paths in front matter defaults (#7345)
|
||||
* Cache computed item property (#7301)
|
||||
* Cleanup Markdown converter (#7519)
|
||||
* Do not process Liquid in post excerpt when disabled in front matter (#7146)
|
||||
* Liquefied link tag (#6269)
|
||||
* Update item_property to return numbers as numbers instead of strings (#6608)
|
||||
* Use `.markdown` extension for page templates (#7126)
|
||||
* Add support for `*.xhtml` files (#6854)
|
||||
* Allow i18n v0.9.5 and higher (#7044)
|
||||
* Ignore permission error of /proc/version (#7267)
|
||||
* Strip extra slashes via `Jekyll.sanitized_path` (#7182)
|
||||
* Site template: remove default config for markdown (#7285)
|
||||
* Add a custom inspect string for StaticFile objects (#7422)
|
||||
* Remind user to include gem in the Gemfile on error (#7476)
|
||||
* Search Front matter defaults for Page objects with relative_path (#7261)
|
||||
* Lock use of `tzinfo` gem to v1.x (#7521, #7562)
|
||||
* Utilize absolute paths of user-provided file paths (#7450)
|
||||
* Detect `nil` and empty values in objects with `where` filter (#7580)
|
||||
* Initialize mutations for Drops only if necessary (#7657)
|
||||
* Reduce Array allocations via Jekyll::Cleaner (#7659)
|
||||
* Encode and unencode urls only as required (#7654)
|
||||
* Reduce string allocations with better alternatives (#7643)
|
||||
* Reduce allocations from Jekyll::Document instances (#7625)
|
||||
* Add `type` attribute to Document instances (#7406)
|
||||
* Reduce allocations from where-filter (#7653)
|
||||
* Memoize SiteDrop#documents to reduce allocations (#7697)
|
||||
* Add PathManager class to cache interim paths (#7732)
|
||||
* Remove warnings and fixes for deprecated config (#7440)
|
||||
* Delegate --profile tabulation to `terminal-table` (#7627)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Security: fix `include` bypass of `EntryFilter#filter` symlink check (#7226)
|
||||
* Theme gems: ensure directories aren't symlinks (#7419)
|
||||
* Add call to unused method `validate_options` in `commands/serve.rb` (#7122)
|
||||
* Check if scope applies to type before given path (#7263)
|
||||
* Document two methods, simplify one of the methods (#7270)
|
||||
* Check key in collections only if it isn't "posts" (#7277)
|
||||
* Interpolate Jekyll::Page subclass on inspection (#7203)
|
||||
* Measure the no. of times a template gets rendered (#7316)
|
||||
* Reduce array traversal in Jekyll::Reader (#7157)
|
||||
* Re-implement handling Liquid blocks in excerpts (#7250)
|
||||
* Documents should be able to render their date (#7404)
|
||||
* Fix Interpreter warning from Jekyll::Renderer (#7448)
|
||||
* Loggers should accept both numbers and symbols (#6967)
|
||||
* Replace regex arg to :gsub with a string arg (#7189)
|
||||
* Dont write static files from unrendered collection (#7410)
|
||||
* Excerpt handling of custom and intermediate tags (#7382)
|
||||
* Change future post loglevel to warn to help user narrow down issues (#7527)
|
||||
* Handle files with trailing dots in their basename (#7315)
|
||||
* Fix unnecessary allocations via StaticFileReader (#7572)
|
||||
* Don't check if site URL is absolute if it is nil (#7498)
|
||||
* Avoid unnecessary duplication of pages array (#7272)
|
||||
* Memoize Site#post_attr_hash (#7276)
|
||||
* Memoize Document#excerpt_separator (#7569)
|
||||
* Optimize Document::DATE_FILENAME_MATCHER to match valid filenames (#7292)
|
||||
* Escape valid special chars in a site's path name (#7568)
|
||||
* Replace `name` in Page#inspect with relative_path (#7434)
|
||||
* Log a warning when the slug is empty (#7357)
|
||||
* Push Markdown link refs to excerpt only as required (#7577)
|
||||
* Fix broken include_relative usage in excerpt (#7633)
|
||||
* Initialize and reset glob_cache only as necessary (#7658)
|
||||
* Revert memoizing Site#docs_to_write and #documents (#7684)
|
||||
* Backport #7684 for v3.8.x: Revert memoizing Site#docs_to_write and refactor #documents (#7689)
|
||||
* Backport #7213 and #7633 for v3.8.x: Fix broken include_relative usage in excerpt (#7690)
|
||||
* Don't read symlinks in site.include in safe mode (#7711)
|
||||
* Replace `String#=~` with `String#match?` (#7723)
|
||||
* Update log output for an invalid theme directory (#7679)
|
||||
* Remove configuration of theme sass files from Core (#7290)
|
||||
* Actually conditionally include liquid-c (#7792)
|
||||
* Test number_like regex on stringified property (#7788)
|
||||
|
||||
### Development Fixes
|
||||
|
||||
* Upgrade liquid-c to v4.0 (#7375)
|
||||
* Bump RuboCop to v0.71.0 (#7687)
|
||||
* Target Ruby 2.4 syntax (#7583)
|
||||
* Fix: RuboCop offenses (#7769)
|
||||
* Use communicative method parameters (#7566)
|
||||
* Scan `assert_equal` methods and rectify any offenses with a custom RuboCop cop (#7130)
|
||||
* CI: Test with Ruby 2.6 (#7438)
|
||||
* CI: Test with Ruby 2.6 on AppVeyor (#7518)
|
||||
* CI: Update RuboCop config (#7050)
|
||||
* CI: Add a script to profile docs (#7540)
|
||||
* CI(Appveyor): shallow clone with 5 last commits (#7312)
|
||||
* CI: Test with oldest and latest Ruby only (#7412)
|
||||
* CI: Update excludes for CodeClimate Analyses (#7365)
|
||||
* CI: Lock Travis to Bundler-1.16.2 (#7144)
|
||||
* CI: Bump tested version of JRuby to 9.2.7.0 (#7612)
|
||||
* CI: Do not install docs on updating gems on Travis (#7706)
|
||||
* Update gemspec (#7425)
|
||||
* deps: relax version constraint on classifier-reborn gem (#7471)
|
||||
* deps: update yajl-ruby (#7278)
|
||||
* deps: bump yajl-ruby to v1.4.0 (#6976)
|
||||
* Create symlink only if target is accessible (#7429)
|
||||
* Switch to `:install_if` for wdm gem (#7372)
|
||||
* Add cucumber feature to test include_relative tag (#7213)
|
||||
* Small benchmark refactoring (#7211)
|
||||
* Fix incorrectly passed arguments to assert_equal (#7134)
|
||||
* fix up refute_equal call (#7133)
|
||||
* Fix RuboCop offences in test files (#7128)
|
||||
* Use assert_include (#7093)
|
||||
* Remember to release docs gem (#7066)
|
||||
* Useless privates removed (#6768)
|
||||
* Load Rouge for TestKramdown (#7007)
|
||||
* Update instructions for releasing docs Gem (#6975)
|
||||
* We are not using Ruby 2.2 anymore (#6977)
|
||||
* Remove unnecessary Jekyll::Page constant (#6770)
|
||||
* Remove unused error class (#6511)
|
||||
* Add a Cucumber feature for post_url tag (#7586)
|
||||
* Generate a "TOTAL" row for build-profile table (#7614)
|
||||
* Refactor Jekyll::Cache (#7532)
|
||||
* Store list of expected extnames in a constant (#7638)
|
||||
* Profile allocations from a build session (#7646)
|
||||
* Update small typo in contributing.md (#7671)
|
||||
* Remove override to Jekyll::Document#respond_to? (#7695)
|
||||
* Update TestTags in sync with Rouge v3.4 (#7709)
|
||||
* Use regexp to filter special entries (#7702)
|
||||
* Reduce Array objects generated from utility method (#7749)
|
||||
* Update mime.types (#7756)
|
||||
* Replace redundant Array#map with Array#each (#7761)
|
||||
* Reduce allocations by using #each_with_object (#7758)
|
||||
* Memoize fallback_data for Drop (#7728)
|
||||
* Use String#end_with? to check if entry is a backup (#7701)
|
||||
|
||||
### Documentation
|
||||
|
||||
* Refactor docs (#7205)
|
||||
* Add a link to Giraffe Academy's tutorial (#7325)
|
||||
* Do not advise users to install Jekyll outside of Bundler (#6927)
|
||||
* Remove documentation for using Redcarpet (#6990)
|
||||
* Install Docs that Work on MacOS 10.14 (#7561)
|
||||
* Add Installation Instructions for Ubuntu (#6925)
|
||||
* Don't prompt for sudo when installing with Ubuntu WSL (#6781)
|
||||
* Installation instructions for Fedora (#7198)
|
||||
* Update Windows install docs (#6926)
|
||||
* List all standard liquid filters (#7333)
|
||||
* List all static files variables (#7002)
|
||||
* Improve how to include Rouge stylesheets (#7752)
|
||||
* Mention CommonMark plugins (#7418)
|
||||
* Add TSV to list of supported _data files. (#7168)
|
||||
* How to deploy using pre-push git hook (#7179)
|
||||
* Hosting with AWS Amplify (#7510)
|
||||
* CircleCI deployment through CircleCI v2 (#7024)
|
||||
* GitHub Pages: use themes from other repos (#7112)
|
||||
* Document page.dir and page.name (#7373)
|
||||
* Document custom tag blocks (#7359)
|
||||
* Document converter methods (#7289)
|
||||
* Document `{{ page.collection }}` (#7430)
|
||||
* Document Jekyll Filters with YAML data (#7335)
|
||||
* Document where Jekyll looks for layouts in a site (#7564)
|
||||
* plugin: liquid tag jekyll-flickr (#6946)
|
||||
* plugin: jekyll-target-blank (#7046)
|
||||
* plugin: json-get. (#7086)
|
||||
* plugin: `jekyll-info` (#7091)
|
||||
* plugin: jekyll-xml-source (#7114)
|
||||
* plugin: jekyll-firstimage filter (#7127)
|
||||
* plugin: CAT (#7011)
|
||||
* Resources: Statictastic (#7593)
|
||||
* Resources: Bonsai Search (#7543)
|
||||
* Resources: Formspark (#7601)
|
||||
* Resources: Jekpack(#7598)
|
||||
* Resources: formX (#7536)
|
||||
* Resources: 99inbound's Jekyll post (#7348)
|
||||
* Resources: CloudSh (#7497)
|
||||
* Community: DEV Community's Jekyll tag (#7139)
|
||||
* Showcase: developer.spotify.com (#7217)
|
||||
* Showcase: Isomer (#7300)
|
||||
* Add version number for group_by_exp doc (#6956)
|
||||
* Updated nginx configuration for custom-404-page documentation (#6994)
|
||||
* Clarify definition of 'draft' (#7037)
|
||||
* _drafts need to be contained within the custom collection directory (#6985)
|
||||
* Updated to supported version (#7031)
|
||||
* Add Hints for some Improved Travis Config in Doc (#7049)
|
||||
* Update travis-ci.md to point out "this is an example Gemfile" (#7089)
|
||||
* Instructions to view theme’s files under Linux (#7095)
|
||||
* Use a real theme in the example (#7125)
|
||||
* Update docs about post creation (#7138)
|
||||
* Initialize upgrading doc for v4.0 (#7140)
|
||||
* Add version badge for date filters with ordinal (#7162)
|
||||
* Corrected sample usage of postfiles (#7181)
|
||||
* Resolve "Unable to locate package ruby2.4" error (#7196)
|
||||
* Correct stylesheet url in tutorial step 7 (#7210)
|
||||
* Removes quotes from markdown for assets (#7223)
|
||||
* Clarified front matter requirement (#7234)
|
||||
* Explicit location of where to create blog.html (#7241)
|
||||
* Reference the build command options that allows multiple config files (#7266)
|
||||
* Add more issue template(s) and pull request template (#7269)
|
||||
* Suggest sites use OpenSSL instead of GnuTLS for their site's CI (#7010)
|
||||
* Fix broken Contributors link in README.markdown (#7200)
|
||||
* Add title tag to item in RSS template (#7282)
|
||||
* Add link tag to item in RSS template (#7291)
|
||||
* Remove redundant instruction comment (#7342)
|
||||
* Textile is only supported through a converter plugin (#7003)
|
||||
* Add recursive navigation tutorial (#7720)
|
||||
* Remove installation instructions with Homebrew (#7381)
|
||||
* Fix dead link and misleading prose (#7383)
|
||||
* Fix content management section (#7385)
|
||||
* Apply ruby official guide documents (#7393)
|
||||
* Fix group_by_exp filter example (#7394)
|
||||
* Remove alt attribute from a tags (#7407)
|
||||
* Fix BASH code-block in ubuntu.md (#7420)
|
||||
* zlib is missing (#7428)
|
||||
* Fixed unnecessary aticles and pronouns (#7466)
|
||||
* Store SSL key and cert in site source (#7473)
|
||||
* Fix typo in tutorial for converting existing site (#7524)
|
||||
* Check if var exists before include tag (#7530)
|
||||
* Clarify docs on collections regarding the need for front matter (#7538)
|
||||
* Fix incorrect Windows path in themes.md (#7525)
|
||||
* Addresses bundle not found. (#7351)
|
||||
* Update the contribution docs for draft pull requests (#7619)
|
||||
* Data file section adds TSV (#7640)
|
||||
* Indicate where the _sass folder is by default (#7644)
|
||||
* Docs: add version tags to new placeholders (#5981) for permalinks (#7647)
|
||||
* Solve "GitHub Page build failure" in 10-deployment.md (#7648)
|
||||
* fix link to Site Source config (#7708)
|
||||
* Introduce frontmatter in step 2 (#7704)
|
||||
* Add @ashmaroli to Core Team listing (#7398)
|
||||
* Lnk to Tidelift in site's footer (#7377)
|
||||
* Link to OpenCollective backing (#7378
|
||||
* Link to sponsor listing in README (#7405)
|
||||
* Adjust team page listings (#7395)
|
||||
* Updates to CODE OF CONDUCT (v1.4.0) (#7105)
|
||||
* More inclusive writing (#7283)
|
||||
* Update Ruby version used in Travis-CI example (#7783)
|
||||
* Documentation for binary operators in where_exp (#7786)
|
||||
* Adding SmartForms as Forms service (#7794)
|
||||
|
||||
### Site Enhancements
|
||||
|
||||
* Better Performance (#7388)
|
||||
* Add some minor improvements to image loading in Showcase page (#7214)
|
||||
* Simplify assigning classname to docs' aside-links (#7609)
|
||||
* Simplify couple of includes in the docs site (#7607)
|
||||
* Avoid generating empty classnames (#7610)
|
||||
* Minimize rendering count (#7343)
|
||||
|
||||
### Release
|
||||
|
||||
* Jekyll v4.0 release (#7782)
|
||||
* Release post for v4.0.0 beta1 (#7716)
|
||||
* Release post for v4.0.0.pre.alpha1 (#7574)
|
||||
* Release post for v3.8.0 (#6849)
|
||||
* Release post for v3.6.3, v3.7.4 and v3.8.4 (#7259)
|
||||
* Post: v4.0 development (#6934)
|
||||
|
||||
## 3.8.6 / 2019-07-02
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Update log output for an invalid theme directory (#7734)
|
||||
* Memoize `SiteDrop#documents` to reduce allocations (#7722)
|
||||
* Excerpt handling of custom and intermediate tags (#7467)
|
||||
* Escape valid special chars in a site's path name (#7573)
|
||||
* Revert memoizing `Site#docs_to_write` and refactor `#documents` (#7689)
|
||||
* Fix broken `include_relative` usage in excerpt (#7690)
|
||||
* Install platform-specific gems as required (3c06609406)
|
||||
|
||||
### Security Fixes
|
||||
|
||||
* Theme gems: ensure directories aren't symlinks (#7424)
|
||||
|
||||
## 3.8.5 / 2018-11-04
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Re-implement handling Liquid blocks in excerpts (#7250)
|
||||
|
||||
## 3.8.4 / 2018-09-18
|
||||
@@ -218,10 +530,10 @@
|
||||
* Minimize array allocations in the `where` filter (#6860)
|
||||
* Bump JRuby (#6878)
|
||||
* Assert existence of <collection>.files (#6907)
|
||||
* Bump Rubocop to 0.54.x (#6915)
|
||||
* Bump RuboCop to 0.54.x (#6915)
|
||||
* Regenerate unconditionally unless its an incremental build (#6917)
|
||||
* Centralize require statements (#6910)
|
||||
* Bump to Rubocop 0.55 (#6929)
|
||||
* Bump to RuboCop 0.55 (#6929)
|
||||
* Refactor private method `HighlightBlock#parse_options` (#6822)
|
||||
|
||||
### Minor Enhancements
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2008-2018 Tom Preston-Werner and Jekyll contributors
|
||||
Copyright (c) 2008-present Tom Preston-Werner and Jekyll contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -28,7 +28,7 @@ See: https://jekyllrb.com/philosophy
|
||||
|
||||
* [Install](https://jekyllrb.com/docs/installation/) the gem
|
||||
* Read up about its [Usage](https://jekyllrb.com/docs/usage/) and [Configuration](https://jekyllrb.com/docs/configuration/)
|
||||
* Take a gander at some existing [Sites](https://wiki.github.com/jekyll/jekyll/sites)
|
||||
* Take a gander at some existing [Sites](https://github.com/jekyll/jekyll/wiki/sites)
|
||||
* [Fork](https://github.com/jekyll/jekyll/fork) and [Contribute](https://jekyllrb.com/docs/contributing/) your own modifications
|
||||
* Have questions? Check out our official forum community [Jekyll Talk](https://talk.jekyllrb.com/) or [`#jekyll` on irc.freenode.net](https://botbot.me/freenode/jekyll/)
|
||||
|
||||
@@ -59,6 +59,21 @@ these terms, please let one of our [core team members](https://jekyllrb.com/team
|
||||
|
||||
## Credits
|
||||
|
||||
### Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up in this README with a link to your website. [Become a sponsor!](https://opencollective.com/jekyll#sponsor)
|
||||
|
||||
<a href="https://opencollective.com/jekyll/sponsor/0/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/0/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/1/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/1/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/2/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/2/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/3/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/3/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/4/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/4/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/5/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/5/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/6/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/6/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/7/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/7/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/8/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/8/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/9/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/9/avatar.svg" /></a>
|
||||
|
||||
### Contributors
|
||||
|
||||
This project exists thanks to all the people who contribute.
|
||||
@@ -70,14 +85,6 @@ Thank you to all our backers! 🙏 [Become a backer](https://opencollective.com/
|
||||
|
||||
<a href="https://opencollective.com/jekyll#backers" target="_blank"><img src="https://opencollective.com/jekyll/backers.svg?width=890" /></a>
|
||||
|
||||
### Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor!](https://opencollective.com/jekyll#sponsor)
|
||||
|
||||
<a href="https://opencollective.com/jekyll/sponsor/0/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/0/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/1/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/1/avatar.svg" /></a>
|
||||
<a href="https://opencollective.com/jekyll/sponsor/2/website" target="_blank"><img src="https://opencollective.com/jekyll/sponsor/2/avatar.svg" /></a>
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](https://github.com/jekyll/jekyll/blob/master/LICENSE) file.
|
||||
|
||||
23
appveyor.yml
23
appveyor.yml
@@ -6,27 +6,26 @@ branches:
|
||||
only:
|
||||
- master
|
||||
- themes
|
||||
- /.*-stable/
|
||||
|
||||
build: off
|
||||
|
||||
environment:
|
||||
BUNDLE_WITHOUT: "benchmark:site:development"
|
||||
BUNDLE_WITHOUT: "benchmark:development"
|
||||
matrix:
|
||||
- RUBY_FOLDER_VER: "25"
|
||||
- RUBY_FOLDER_VER: "26"
|
||||
TEST_SUITE: "test"
|
||||
- RUBY_FOLDER_VER: "25"
|
||||
TEST_SUITE: "cucumber"
|
||||
- RUBY_FOLDER_VER: "25"
|
||||
- RUBY_FOLDER_VER: "26"
|
||||
TEST_SUITE: "default-site"
|
||||
- RUBY_FOLDER_VER: "25-x64"
|
||||
TEST_SUITE: "test"
|
||||
- RUBY_FOLDER_VER: "24"
|
||||
TEST_SUITE: "test"
|
||||
- RUBY_FOLDER_VER: "23"
|
||||
TEST_SUITE: "test"
|
||||
- RUBY_FOLDER_VER: "26"
|
||||
TEST_SUITE: "profile-docs"
|
||||
- RUBY_FOLDER_VER: "26"
|
||||
TEST_SUITE: "memprof"
|
||||
- RUBY_FOLDER_VER: "26"
|
||||
TEST_SUITE: "cucumber"
|
||||
|
||||
install:
|
||||
- SET PATH=C:\Ruby%RUBY_FOLDER_VER%\bin;%PATH%
|
||||
- SET PATH=C:\Ruby%RUBY_FOLDER_VER%-x64\bin;%PATH%
|
||||
- bundle install --retry 5 --jobs=%NUMBER_OF_PROCESSORS% --clean --path vendor\bundle
|
||||
|
||||
test_script:
|
||||
|
||||
49
benchmark/find-filter-vs-where-first-filters.rb
Executable file
49
benchmark/find-filter-vs-where-first-filters.rb
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'benchmark/ips'
|
||||
require_relative '../lib/jekyll'
|
||||
|
||||
puts ''
|
||||
print 'Setting up... '
|
||||
|
||||
SITE = Jekyll::Site.new(
|
||||
Jekyll.configuration({
|
||||
"source" => File.expand_path("../docs", __dir__),
|
||||
"destination" => File.expand_path("../docs/_site", __dir__),
|
||||
"disable_disk_cache" => true,
|
||||
"quiet" => true,
|
||||
})
|
||||
)
|
||||
|
||||
TEMPLATE_1 = Liquid::Template.parse(<<~HTML)
|
||||
{%- assign doc = site.documents | where: 'url', '/docs/assets/' | first -%}
|
||||
{{- doc.title -}}
|
||||
HTML
|
||||
|
||||
TEMPLATE_2 = Liquid::Template.parse(<<~HTML)
|
||||
{%- assign doc = site.documents | find: 'url', '/docs/assets/' -%}
|
||||
{{- doc.title -}}
|
||||
HTML
|
||||
|
||||
[:reset, :read, :generate].each { |phase| SITE.send(phase) }
|
||||
|
||||
puts 'done.'
|
||||
puts 'Testing... '
|
||||
puts " #{'where + first'.cyan} results in #{TEMPLATE_1.render(SITE.site_payload).inspect.green}"
|
||||
puts " #{'find'.cyan} results in #{TEMPLATE_2.render(SITE.site_payload).inspect.green}"
|
||||
|
||||
if TEMPLATE_1.render(SITE.site_payload) == TEMPLATE_2.render(SITE.site_payload)
|
||||
puts 'Success! Procceding to run benchmarks.'.green
|
||||
puts ''
|
||||
else
|
||||
puts 'Something went wrong. Aborting.'.magenta
|
||||
puts ''
|
||||
return
|
||||
end
|
||||
|
||||
Benchmark.ips do |x|
|
||||
x.report('where + first') { TEMPLATE_1.render(SITE.site_payload) }
|
||||
x.report('find') { TEMPLATE_2.render(SITE.site_payload) }
|
||||
x.compare!
|
||||
end
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
version: 3.8.5
|
||||
version: 4.1.0
|
||||
name: Jekyll • Simple, blog-aware, static sites
|
||||
description: Transform your plain text into static websites and blogs
|
||||
url: https://jekyllrb.com
|
||||
@@ -18,6 +18,7 @@ collections:
|
||||
permalink: "/news/:year/:month/:day/:title/"
|
||||
output: true
|
||||
tutorials:
|
||||
permalink: "/:collection/:path/"
|
||||
output: true
|
||||
defaults:
|
||||
- scope:
|
||||
@@ -29,8 +30,17 @@ defaults:
|
||||
path: _posts
|
||||
type: posts
|
||||
values:
|
||||
layout: post
|
||||
image: "/img/twitter-card.png"
|
||||
layout: news_item
|
||||
- scope:
|
||||
path: _tutorials
|
||||
type: tutorials
|
||||
values:
|
||||
layout: tutorials
|
||||
- scope:
|
||||
path: ''
|
||||
values:
|
||||
image: "/img/jekyll-og.png"
|
||||
future: true
|
||||
plugins:
|
||||
- jekyll-avatar
|
||||
- jekyll-feed
|
||||
@@ -39,10 +49,18 @@ plugins:
|
||||
- jekyll-seo-tag
|
||||
- jekyll-sitemap
|
||||
- jemoji
|
||||
feed:
|
||||
categories:
|
||||
- release
|
||||
kramdown:
|
||||
syntax_highlighter_opts:
|
||||
default_lang: plaintext
|
||||
sass:
|
||||
style: compressed
|
||||
strict_front_matter: true
|
||||
exclude:
|
||||
- .gitignore
|
||||
- .jekyll-cache
|
||||
- ".gitignore"
|
||||
- ".jekyll-cache"
|
||||
- CNAME
|
||||
- icomoon-selection.json
|
||||
- readme.md
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
- title: Getting Started
|
||||
items:
|
||||
docs:
|
||||
- link: /docs/
|
||||
- link: /docs/ruby-101/
|
||||
- link: /docs/installation/
|
||||
- link: /docs/community/
|
||||
- link: /docs/step-by-step/01-setup/
|
||||
- title: Build
|
||||
items:
|
||||
docs:
|
||||
- link: /docs/usage/
|
||||
- link: /docs/configuration/
|
||||
- title: Content
|
||||
items:
|
||||
docs:
|
||||
- link: /docs/pages/
|
||||
- link: /docs/posts/
|
||||
- link: /docs/front-matter/
|
||||
@@ -19,7 +19,7 @@
|
||||
- link: /docs/assets/
|
||||
- link: /docs/static-files/
|
||||
- title: Site Structure
|
||||
items:
|
||||
docs:
|
||||
- link: /docs/structure/
|
||||
- link: /docs/liquid/
|
||||
- link: /docs/variables/
|
||||
@@ -29,7 +29,7 @@
|
||||
- link: /docs/themes/
|
||||
- link: /docs/pagination/
|
||||
- title: Guides
|
||||
items:
|
||||
docs:
|
||||
- link: /docs/plugins/
|
||||
- link: /docs/migrations/
|
||||
- link: /docs/upgrading/
|
||||
|
||||
@@ -111,6 +111,40 @@
|
||||
|
||||
#
|
||||
|
||||
- name: Find
|
||||
description: >-
|
||||
Return <strong>the first object</strong> in an array for which the queried
|
||||
attribute has the given value or return <code>nil</code> if no item in
|
||||
the array satisfies the given criteria.
|
||||
version_badge: 4.1.0
|
||||
examples:
|
||||
- input: '{{ site.members | find: "graduation_year", "2014" }}'
|
||||
output:
|
||||
|
||||
#
|
||||
|
||||
- name: Find Expression
|
||||
description: >-
|
||||
Return <strong>the first object</strong> in an array for which the given
|
||||
expression evaluates to true or return <code>nil</code> if no item in
|
||||
the array satisfies the evaluated expression.
|
||||
version_badge: 4.1.0
|
||||
examples:
|
||||
- input: |-
|
||||
{{ site.members | find_exp:"item",
|
||||
"item.graduation_year == 2014" }}
|
||||
output:
|
||||
- input: |-
|
||||
{{ site.members | find_exp:"item",
|
||||
"item.graduation_year < 2014" }}
|
||||
output:
|
||||
- input: |-
|
||||
{{ site.members | find_exp:"item",
|
||||
"item.projects contains 'foo'" }}
|
||||
output:
|
||||
|
||||
#
|
||||
|
||||
- name: Group By
|
||||
description: Group an array's items by a given property.
|
||||
examples:
|
||||
@@ -127,10 +161,10 @@
|
||||
examples:
|
||||
- input: |-
|
||||
{{ site.members | group_by_exp: "item",
|
||||
"item.graduation_year | truncate 3, ''" }}
|
||||
"item.graduation_year | truncate: 3, ''" }}
|
||||
output: |-
|
||||
[{"name"=>"201...", "items"=>[...]},
|
||||
{"name"=>"200...", "items"=>[...]}]
|
||||
[{"name"=>"201", "items"=>[...]},
|
||||
{"name"=>"200", "items"=>[...]}]
|
||||
|
||||
#
|
||||
|
||||
@@ -166,10 +200,25 @@
|
||||
#
|
||||
|
||||
- name: Number of Words
|
||||
description: Count the number of words in some text.
|
||||
description: >-
|
||||
Count the number of words in some text.<br/>
|
||||
From <span class="version-badge">v4.1.0</span>, this filter takes an optional
|
||||
argument to control the handling of Chinese-Japanese-Korean (CJK) characters
|
||||
in the <code>input</code> string.<br/>
|
||||
Passing <code>'cjk'</code> as the argument will count every CJK character
|
||||
detected as one word irrespective of being separated by whitespace.<br/>
|
||||
Passing <code>'auto'</code> (auto-detect) works similar to <code>'cjk'</code>
|
||||
but is more performant if the filter is used on a variable string that may
|
||||
or may not contain CJK chars.
|
||||
examples:
|
||||
- input: '{{ page.content | number_of_words }}'
|
||||
output: 1337
|
||||
- input: '{{ "Hello world!" | number_of_words }}'
|
||||
output: 2
|
||||
- input: '{{ "你好hello世界world" | number_of_words }}'
|
||||
output: 1
|
||||
- input: '{{ "你好hello世界world" | number_of_words: "cjk" }}'
|
||||
output: 6
|
||||
- input: '{{ "你好hello世界world" | number_of_words: "auto" }}'
|
||||
output: 6
|
||||
|
||||
#
|
||||
|
||||
|
||||
@@ -51,10 +51,10 @@ site:
|
||||
<code>name</code>, <code>basename</code> and <code>extname</code>.
|
||||
- name: site.html_pages
|
||||
description: >-
|
||||
A subset of `site.pages` listing those which end in `.html`.
|
||||
A subset of <code>site.pages</code> listing those which end in <code>.html</code>.
|
||||
- name: site.html_files
|
||||
description: >-
|
||||
A subset of `site.static_files` listing those which end in `.html`.
|
||||
A subset of <code>site.static_files</code> listing those which end in <code>.html</code>.
|
||||
- name: site.collections
|
||||
description: >-
|
||||
A list of all the collections (including posts).
|
||||
@@ -120,10 +120,23 @@ page:
|
||||
<code>/work/code/_posts/2008-12-24-closures.md</code> would have this field set to
|
||||
<code>['work', 'code']</code>. These can also be specified in the
|
||||
<a href="/docs/front-matter/">front matter</a>.
|
||||
- name: page.collection
|
||||
description: >-
|
||||
The label of the collection to which this document belongs. e.g. <code>posts</code> for a post, or
|
||||
<code>puppies</code> for a document at path <code>_puppies/rover.md</code>. If not part of a
|
||||
collection, an empty string is returned.
|
||||
- name: page.tags
|
||||
description: >-
|
||||
The list of tags to which this post belongs. These can be specified in the
|
||||
<a href="/docs/front-matter/">front matter</a>.
|
||||
- name: page.dir
|
||||
description: >-
|
||||
The path between the source directory and the file of the post or page, e.g.
|
||||
<code>/pages/</code>.
|
||||
This can be overridden by <code>permalink</code> in the <a href="/docs/front-matter/">front matter</a>.
|
||||
- name: page.name
|
||||
description: >-
|
||||
The filename of the post or page, e.g. <code>about.md</code>
|
||||
- name: page.path
|
||||
description: >-
|
||||
The path to the raw post or page. Example usage: Linking back to the page or post’s source
|
||||
|
||||
@@ -165,3 +165,45 @@
|
||||
youtube_id: nq1AUB72GCQ
|
||||
topic: Overcoming challenges in using Jekyll for documentation projects
|
||||
year: 2016
|
||||
|
||||
- speaker: Pieter Roozen
|
||||
twitter_handle: Pieter_Roozen
|
||||
youtube_id: moQP0SqEPsw
|
||||
topic: Jekyll As An API Endpoint
|
||||
year: 2019
|
||||
|
||||
- speaker: Chen Hui Jing
|
||||
twitter_handle: hj_chen
|
||||
youtube_id: CERXESTZ5w4
|
||||
topic: Why I love Jekyll Data Files
|
||||
year: 2019
|
||||
|
||||
- speaker: Chris Ferdinandi
|
||||
twitter_handle: ChrisFerdinandi
|
||||
youtube_id: vR1aI_kQ4-A
|
||||
topic: The Lean Web
|
||||
year: 2019
|
||||
|
||||
- speaker: Catherine Roebuck
|
||||
twitter_handle:
|
||||
youtube_id: zTAP1m1BaDM
|
||||
topic: Jekyll For City Government
|
||||
year: 2019
|
||||
|
||||
- speaker: Joost van der Schee
|
||||
twitter_handle: jhvanderschee
|
||||
youtube_id: ztJJ1GSlYgI
|
||||
topic: "Jekyll Codex - Jekyll for front-end developers"
|
||||
year: 2019
|
||||
|
||||
- speaker: Matthew Loberg
|
||||
twitter_handle: mloberg
|
||||
youtube_id: 6eiAjAtSGqw
|
||||
topic: Leverage AWS S3 And CloudFront To Deploy Blazing Fast Jekyll Sites
|
||||
year: 2019
|
||||
|
||||
- speaker: George Phillips
|
||||
twitter_handle: gphillips_nz
|
||||
youtube_id: nEvdOwFJBVc
|
||||
topic: Structuring Jekyll Sites For Enterprise Design Systems
|
||||
year: 2019
|
||||
|
||||
3
docs/_data/ruby.yml
Normal file
3
docs/_data/ruby.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
min_version: 2.5.0
|
||||
current_version: 2.7.1
|
||||
current_version_output: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c)
|
||||
@@ -132,10 +132,6 @@
|
||||
url: https://www.tryadhawk.com/
|
||||
categories:
|
||||
- agency
|
||||
- name: City of Boston Budget
|
||||
url: https://budget.boston.gov/
|
||||
categories:
|
||||
- government
|
||||
- name: Lattice
|
||||
url: https://latticehq.com/
|
||||
categories:
|
||||
@@ -179,10 +175,6 @@
|
||||
categories:
|
||||
- agency
|
||||
- government
|
||||
- name: Mapbox
|
||||
url: https://mapbox.com/
|
||||
categories:
|
||||
- marketing-site
|
||||
- name: Development Seed
|
||||
url: https://developmentseed.org/
|
||||
categories:
|
||||
@@ -201,6 +193,14 @@
|
||||
categories:
|
||||
- software
|
||||
- marketing-site
|
||||
- name: French Government Digital Services
|
||||
url: https://beta.gouv.fr/
|
||||
categories:
|
||||
- government
|
||||
- name: Paris Call for Trust and Security in Cyberspace
|
||||
url: https://pariscall.international/
|
||||
categories:
|
||||
- government
|
||||
- name: Ruby on Rails
|
||||
url: http://rubyonrails.org/
|
||||
categories:
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
- name: Forestry.io
|
||||
image: /img/forestry.svg
|
||||
url: https://forestry.io/?utm_campaign=jekyllsponsor&utm_medium=banner&utm_source=jekyllrb.com
|
||||
- name: CloudCannon
|
||||
image: /img/cloudcannon.svg
|
||||
url: https://cloudcannon.com
|
||||
- name: Siteleaf
|
||||
image: /img/siteleaf.svg
|
||||
url: https://siteleaf.com
|
||||
14
docs/_data/tutorials.yml
Normal file
14
docs/_data/tutorials.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
- title: Tutorials
|
||||
tutorials:
|
||||
- home
|
||||
- video-walkthroughs
|
||||
- navigation
|
||||
- orderofinterpretation
|
||||
- custom-404-page
|
||||
- convert-site-to-jekyll
|
||||
- using-jekyll-with-bundler
|
||||
- csv-to-table
|
||||
|
||||
#- title: Another section
|
||||
# tutorials:
|
||||
# - sample
|
||||
@@ -1,9 +0,0 @@
|
||||
- title: Tutorials
|
||||
items:
|
||||
- link: /tutorials/
|
||||
- link: /tutorials/video-walkthroughs/
|
||||
- link: /tutorials/navigation/
|
||||
- link: /tutorials/order-of-interpretation/
|
||||
- link: /tutorials/custom-404-page/
|
||||
- link: /tutorials/convert-site-to-jekyll/
|
||||
- link: /tutorials/using-jekyll-with-bundler/
|
||||
@@ -24,11 +24,14 @@ have a file named `css/styles.scss` in your site's source folder, Jekyll
|
||||
will process it and put it in your site's destination folder under
|
||||
`css/styles.css`.
|
||||
|
||||
If you are using [Mustache](https://mustache.github.io)
|
||||
or another JavaScript templating language that conflicts with
|
||||
the [Liquid template syntax](/docs/templates/), you
|
||||
will need to place <code>{% raw %}</code> and
|
||||
<code>{% endraw %}</code> tags around your code.
|
||||
<div class="note info">
|
||||
<h5>Jekyll processes all Liquid filters and tags in asset files</h5>
|
||||
<p>If you are using <a href="https://mustache.github.io">Mustache</a>
|
||||
or another JavaScript templating language that conflicts with
|
||||
the <a href="{{ '/docs/templates/' | relative_url }}">Liquid template syntax</a>, you
|
||||
will need to place <code>{% raw %}</code> and
|
||||
<code>{% endraw %}</code> tags around your code.</p>
|
||||
</div>
|
||||
|
||||
## Sass/SCSS
|
||||
|
||||
@@ -52,12 +55,18 @@ The Sass converter will default the `sass_dir` configuration option to
|
||||
|
||||
[example-sass]: https://github.com/jekyll/jekyll-sass-converter/tree/master/docs
|
||||
|
||||
Note that the `sass_dir` becomes the load path for Sass imports,
|
||||
nothing more. This means that Jekyll does not know about these files
|
||||
directly, so any files here should not contain the front matter as
|
||||
described above nor will they be transformed as described above. This
|
||||
folder should only contain imports.
|
||||
{: .warning }
|
||||
<div class="note info">
|
||||
<h5>The <code>sass_dir</code> is only used by Sass</h5>
|
||||
<p>
|
||||
|
||||
Note that the <code>sass_dir</code> becomes the load path for Sass imports,
|
||||
nothing more. This means that Jekyll does not know about these files
|
||||
directly. Any files here should not contain the empty front matter as
|
||||
described above. If they do, they'll not be transformed as described above. This
|
||||
folder should only contain imports.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
|
||||
You may also specify the output style with the `style` option in your
|
||||
`_config.yml` file:
|
||||
@@ -70,7 +79,6 @@ sass:
|
||||
These are passed to Sass, so any output style options Sass supports are valid
|
||||
here, too.
|
||||
|
||||
|
||||
## Coffeescript
|
||||
|
||||
To enable Coffeescript in Jekyll 3.0 and up you must
|
||||
|
||||
@@ -8,11 +8,17 @@ editable: false
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
@@ -22,31 +28,55 @@ Examples of behavior that contributes to creating a positive environment include
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting a project maintainer. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at [olivia@jekyllrb.com](mailto:olivia@jekyllrb.com). All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][version]
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org/
|
||||
[version]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq)
|
||||
|
||||
@@ -16,7 +16,8 @@ collections:
|
||||
- staff_members
|
||||
```
|
||||
|
||||
You can optionally specify metadata for your collection in the configuration:
|
||||
In this case `collections` is defined as a sequence (i.e array) with no additional metadata defined for each collection.
|
||||
You can optionally specify metadata for your collection by defining `collections` as a mapping (i.e hashmap) instead of sequence, and then defining additional fields in it:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
@@ -24,12 +25,39 @@ collections:
|
||||
people: true
|
||||
```
|
||||
|
||||
{: .note .info}
|
||||
When defining a collection as a sequence, its pages will not be rendered by
|
||||
default. To enable this, <code>output: true</code> must be specified on the
|
||||
collection, which requires defining the collection as a mapping. For more
|
||||
information, see the section <a href="#output">Output</a>.
|
||||
|
||||
<div class="note">
|
||||
<h5>Gather your collections {%- include docs_version_badge.html version="3.7.0" -%}</h5>
|
||||
|
||||
<p>You can optionally specify a directory to store all your collections in the same place with <code>collections_dir: my_collections</code>.</p>
|
||||
|
||||
<p>Then Jekyll will look in <code>my_collections/_books</code> for the <code>books</code> collection, and
|
||||
in <code>my_collections/_recipes</code> for the <code>recipes</code> collection.</p>
|
||||
</div>
|
||||
|
||||
<div class="note warning">
|
||||
<h5>Be sure to move drafts and posts into custom collections directory</h5>
|
||||
|
||||
<p>If you specify a directory to store all your collections in the same place with <code>collections_dir: my_collections</code>, then you will need to move your <code>_drafts</code> and <code>_posts</code> directory to <code>my_collections/_drafts</code> and <code>my_collections/_posts</code>. Note that, the name of your collections directory cannot start with an underscore (`_`).</p>
|
||||
</div>
|
||||
|
||||
## Add content
|
||||
|
||||
Create a corresponding folder (e.g. `<source>/_staff_members`) and add
|
||||
documents. Front matter is processed if the front matter exists, and everything
|
||||
after the front matter is pushed into the document's `content` attribute. If no front
|
||||
matter is provided, Jekyll will not generate the file in your collection.
|
||||
matter is provided, Jekyll will consider it to be a [static file]({{ '/docs/static-files/' | relative_url }})
|
||||
and the contents will not undergo further processing. If front matter is provided,
|
||||
Jekyll will process the file contents into the expected output.
|
||||
|
||||
Regardless of whether front matter exists or not, Jekyll will write to the destination
|
||||
directory (e.g. `_site`) only if `output: true` has been set in the collection's
|
||||
metadata.
|
||||
|
||||
For example here's how you would add a staff member to the collection set above.
|
||||
The filename is `./_staff_members/jane.md` with the following content:
|
||||
@@ -42,6 +70,12 @@ position: Developer
|
||||
Jane has worked on Jekyll for the past *five years*.
|
||||
```
|
||||
|
||||
<em>
|
||||
Do note that in spite of being considered as a collection internally, the above
|
||||
doesn't apply to [posts](/docs/posts/). Posts with a valid filename format will be
|
||||
marked for processing even if they do not contain front matter.
|
||||
</em>
|
||||
|
||||
<div class="note info">
|
||||
<h5>Be sure to name your directories correctly</h5>
|
||||
<p>
|
||||
@@ -65,7 +99,6 @@ using the `content` variable:
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
|
||||
If you'd like Jekyll to create a rendered page for each document in your
|
||||
collection, you can set the `output` key to `true` in your collection
|
||||
metadata in `_config.yml`:
|
||||
@@ -93,19 +126,60 @@ You can link to the generated page using the `url` attribute:
|
||||
|
||||
## Permalinks
|
||||
|
||||
There are special [permalink variables for collections](/docs/permalinks/) to
|
||||
There are special [permalink variables for collections]({{ '/docs/permalinks/' | relative_url }}) to
|
||||
help you control the output url for the entire collection.
|
||||
|
||||
## Custom Collection directory
|
||||
You can optionally specify a directory to store all your collections in the same place with `collections_dir: my_collections`.
|
||||
## Custom Sorting of Documents {%- include docs_version_badge.html version="4.0" -%}
|
||||
{: #custom-sorting-of-documents}
|
||||
|
||||
Then Jekyll will look in `my_collections/_books` for the `books` collection, and
|
||||
in `my_collections/_recipes` for the `recipes` collection.
|
||||
By default, two documents in a collection are sorted by their `date` attribute when both of them have the `date` key in their front matter. However, if either or both documents do not have the `date` key in their front matter, they are sorted by their respective paths.
|
||||
|
||||
The name of your collections directory cannot start with an `_`.
|
||||
You can control this sorting via the collection's metadata.
|
||||
|
||||
You will need to move your `_drafts` and `_posts` to your `collection_dir`
|
||||
{: .warning }
|
||||
### Sort By Front Matter Key
|
||||
|
||||
Documents can be sorted based on a front matter key by setting a `sort_by` metadata to the front matter key string. For example,
|
||||
to sort a collection of tutorials based on key `lesson`, the configuration would be:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
tutorials:
|
||||
sort_by: lesson
|
||||
```
|
||||
|
||||
The documents are arranged in the increasing order of the key's value. If a document does not have the front matter key defined
|
||||
then that document is placed immediately after sorted documents. When multiple documents do not have the front matter key defined,
|
||||
those documents are sorted by their dates or paths and then placed immediately after the sorted documents.
|
||||
|
||||
### Manually Ordering Documents
|
||||
|
||||
You can also manually order the documents by setting an `order` metadata with **the filenames listed** in the desired order.
|
||||
For example, a collection of tutorials would be configured as:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
tutorials:
|
||||
order:
|
||||
- hello-world.md
|
||||
- introduction.md
|
||||
- basic-concepts.md
|
||||
- advanced-concepts.md
|
||||
```
|
||||
|
||||
Any documents with filenames that do not match the list entry simply gets placed after the rearranged documents. If a document is
|
||||
nested under subdirectories, include them in entries as well:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
tutorials:
|
||||
order:
|
||||
- hello-world.md
|
||||
- introduction.md
|
||||
- concepts/basics.md
|
||||
- concepts/advanced.md
|
||||
```
|
||||
|
||||
If both metadata keys have been defined properly, `order` list takes precedence.
|
||||
|
||||
## Liquid Attributes
|
||||
|
||||
@@ -214,7 +288,6 @@ you specified in your `_config.yml` (if present) and the following information:
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
### Documents
|
||||
|
||||
In addition to any front matter provided in the document's corresponding
|
||||
|
||||
@@ -8,15 +8,15 @@ redirect_from: "/help/index.html"
|
||||
|
||||
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
||||
|
||||
[Read the full code of conduct](/docs/conduct/)
|
||||
Read the full [code of conduct]({{ '/docs/conduct/' | relative_url }})
|
||||
|
||||
## Where to get support
|
||||
|
||||
If you're looking for support for Jekyll, there are a lot of options:
|
||||
|
||||
* Read [Jekyll Documentation](https://jekyllrb.com/docs/)
|
||||
* If you have a question about using Jekyll, start a discussion on [the Jekyll Forum](https://talk.jekyllrb.com/) or [StackOverflow](https://stackoverflow.com/questions/tagged/jekyll)
|
||||
* Chat with Jekyllers — Join [our Gitter channel](https://gitter.im/jekyll/jekyll) or [our IRC channel on Freenode](irc:irc.freenode.net/jekyll)
|
||||
* Read the [Jekyll Documentation]({{ '/docs/' | relative_url }})
|
||||
* If you have a question about using Jekyll, start a discussion on the [Jekyll Forum](https://talk.jekyllrb.com/) or [StackOverflow](https://stackoverflow.com/questions/tagged/jekyll)
|
||||
* Chat with Jekyllers — Join our [Gitter channel](https://gitter.im/jekyll/jekyll) or our [IRC channel on Freenode](irc:irc.freenode.net/jekyll)
|
||||
|
||||
There are a bunch of helpful community members on these services that should be willing to point you in the right direction.
|
||||
|
||||
@@ -24,14 +24,13 @@ There are a bunch of helpful community members on these services that should be
|
||||
|
||||
## Ways to contribute
|
||||
|
||||
* [How to Contribute](/docs/contributing/)
|
||||
* [How to file a bug](/docs/community/bug/)
|
||||
* [Guide for maintaining Jekyll](/docs/maintaining/)
|
||||
|
||||
* [How to Contribute]({{ '/docs/contributing/' | relative_url }})
|
||||
* [How to file a bug]({{ '/docs/community/bug/' | relative_url }})
|
||||
* [Guide for maintaining Jekyll]({{ '/docs/maintaining/' | relative_url }})
|
||||
|
||||
## Jekyllconf
|
||||
|
||||
[Watch videos](/jekyllconf/) from members of the Jekyll community speak about interesting use cases, tricks they’ve learned or meta Jekyll topics.
|
||||
[Watch videos]({{ '/jekyllconf/' | relative_url }}) from members of the Jekyll community speak about interesting use cases, tricks they’ve learned or meta Jekyll topics.
|
||||
|
||||
## Jekyll on Twitter
|
||||
|
||||
|
||||
@@ -6,25 +6,42 @@ redirect_from: "/conduct/index.html"
|
||||
editable: false
|
||||
---
|
||||
|
||||
As contributors and maintainers of this project, and in the interest of
|
||||
fostering an open and welcoming community, we pledge to respect all people who
|
||||
contribute through reporting issues, posting feature requests, updating
|
||||
documentation, submitting pull requests or patches, and other activities.
|
||||
## Our Pledge
|
||||
|
||||
We are committed to making participation in this project a harassment-free
|
||||
experience for everyone, regardless of level of experience, gender, gender
|
||||
identity and expression, sexual orientation, disability, personal appearance,
|
||||
body size, race, ethnicity, age, religion, or nationality.
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery
|
||||
* Personal attacks
|
||||
* Trolling or insulting/derogatory comments
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing other's private information, such as physical or electronic
|
||||
addresses, without explicit permission
|
||||
* Other unethical or unprofessional conduct
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
@@ -32,24 +49,34 @@ that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
By adopting this Code of Conduct, project maintainers commit themselves to
|
||||
fairly and consistently applying these principles to every aspect of managing
|
||||
this project. Project maintainers who do not follow or enforce the Code of
|
||||
Conduct may be permanently removed from the project team.
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community.
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by opening an issue or contacting a project maintainer. All complaints
|
||||
will be reviewed and investigated and will result in a response that is deemed
|
||||
necessary and appropriate to the circumstances. Maintainers are obligated to
|
||||
maintain confidentiality with regard to the reporter of an incident.
|
||||
reported by contacting the project team at [olivia@jekyllrb.com](mailto:olivia@jekyllrb.com). All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 1.3.0, available at
|
||||
[http://contributor-covenant.org/version/1/3/0/][version]
|
||||
## Attribution
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/3/0/
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html)
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq)
|
||||
|
||||
@@ -8,11 +8,11 @@ options can either be specified in a `_config.yml` or `_config.toml` file placed
|
||||
in your site’s root directory, or can be specified as flags for the `jekyll`
|
||||
executable in the terminal.
|
||||
|
||||
* [Configuration Options](/docs/configuration/options/)
|
||||
* [Default Configuration](/docs/configuration/default/)
|
||||
* [Front Matter Defaults](/docs/configuration/front-matter-defaults/)
|
||||
* [Environments](/docs/configuration/environments/)
|
||||
* [Markdown Options](/docs/configuration/markdown/)
|
||||
* [Liquid Options](/docs/configuration/liquid/)
|
||||
* [Webrick Options](/docs/configuration/webrick/)
|
||||
* [Incremental Regeneration](/docs/configuration/incremental-regeneration/)
|
||||
* [Configuration Options]({{ '/docs/configuration/options/' | relative_url }})
|
||||
* [Default Configuration]({{ '/docs/configuration/default/' | relative_url }})
|
||||
* [Front Matter Defaults]({{ '/docs/configuration/front-matter-defaults/' | relative_url }})
|
||||
* [Environments]({{ '/docs/configuration/environments/' | relative_url }})
|
||||
* [Markdown Options]({{ '/docs/configuration/markdown/' | relative_url }})
|
||||
* [Liquid Options]({{ '/docs/configuration/liquid/' | relative_url }})
|
||||
* [Webrick Options]({{ '/docs/configuration/webrick/' | relative_url }})
|
||||
* [Incremental Regeneration]({{ '/docs/configuration/incremental-regeneration/' | relative_url }})
|
||||
|
||||
@@ -16,6 +16,8 @@ plugins_dir : _plugins
|
||||
layouts_dir : _layouts
|
||||
data_dir : _data
|
||||
includes_dir : _includes
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
collections:
|
||||
posts:
|
||||
output : true
|
||||
@@ -77,7 +79,7 @@ redcarpet:
|
||||
kramdown:
|
||||
auto_ids : true
|
||||
entity_output : as_char
|
||||
toc_levels : 1..6
|
||||
toc_levels : [1, 2, 3, 4, 5, 6]
|
||||
smart_quotes : lsquo,rsquo,ldquo,rdquo
|
||||
input : GFM
|
||||
hard_wrap : false
|
||||
|
||||
@@ -42,8 +42,8 @@ environment but not include it in production environments.
|
||||
By specifying the option in the build command, you avoid having to change
|
||||
values in your configuration files when moving from one environment to another.
|
||||
|
||||
<div class="note info">
|
||||
<p>
|
||||
To switch part of your config settings depending on the environment, use the <a href="/docs/configuration/options/#build-command-options">build command option</a>, for example <code>--config _config.yml,_config_development.yml</code>. Settings in later files override settings in earlier files.
|
||||
</p>
|
||||
</div>
|
||||
{: .note}
|
||||
To switch part of your config settings depending on the environment, use the
|
||||
<a href="{{ '/docs/configuration/options/#build-command-options' | relative_url }}">build command option</a>,
|
||||
for example <code>--config _config.yml,_config_development.yml</code>. Settings
|
||||
in later files override settings in earlier files.
|
||||
|
||||
@@ -22,9 +22,17 @@ defaults:
|
||||
layout: "default"
|
||||
```
|
||||
|
||||
|
||||
`_config.yml` is only read when Jekyll first starts. For changes to take effect you'll need to restart Jekyll.
|
||||
{: .warning }
|
||||
<div class="note info">
|
||||
<h5>Stop and rerun `jekyll serve` command.</h5>
|
||||
<p>
|
||||
The <code>_config.yml</code> master configuration file contains global configurations
|
||||
and variable definitions that are read once at execution time. Changes made to <code>_config.yml</code>
|
||||
during automatic regeneration are not loaded until the next execution.
|
||||
</p>
|
||||
<p>
|
||||
Note <a href="{{ '/docs/datafiles' | relative_url }}">Data Files</a> are included and reloaded during automatic regeneration.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Here, we are scoping the `values` to any file that exists in the path `scope`. 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.
|
||||
|
||||
@@ -60,7 +68,9 @@ defaults:
|
||||
author: "Mr. Hyde"
|
||||
```
|
||||
|
||||
With these defaults, all pages 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](/docs/variables/) set to `Mr. Hyde`.
|
||||
With these defaults, all pages 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]({{ '/docs/variables/' | relative_url }}) set to `Mr. Hyde`.
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
@@ -77,7 +87,7 @@ defaults:
|
||||
```
|
||||
|
||||
In this example, the `layout` is set to `default` inside the
|
||||
[collection](/docs/collections/) with the name `my_collection`.
|
||||
[collection]({{ '/docs/collections/' | relative_url }}) with the name `my_collection`.
|
||||
|
||||
### Glob patterns in Front Matter defaults
|
||||
|
||||
@@ -96,12 +106,15 @@ defaults:
|
||||
layout: "specific-layout"
|
||||
```
|
||||
|
||||
|
||||
Please note that globbing a path is known to have a negative effect on
|
||||
performance and is currently not optimized, especially on Windows.
|
||||
Globbing a path will increase your build times in proportion to the size
|
||||
of the associated collection directory.
|
||||
{: .warning }
|
||||
<div class="note warning">
|
||||
<h5>Globbing and Performance</h5>
|
||||
<p>
|
||||
Please note that globbing a path is known to have a negative effect on
|
||||
performance and is currently not optimized, especially on Windows.
|
||||
Globbing a path will increase your build times in proportion to the size
|
||||
of the associated collection directory.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
### Precedence
|
||||
|
||||
|
||||
@@ -4,13 +4,15 @@ permalink: "/docs/configuration/incremental-regeneration/"
|
||||
---
|
||||
|
||||
## Incremental Regeneration
|
||||
|
||||
|
||||
While incremental regeneration will work for the most common cases, it will
|
||||
not work correctly in every scenario. Please be extremely cautious when
|
||||
using the feature, and report any problems not listed below by
|
||||
[opening an issue on GitHub](https://github.com/jekyll/jekyll/issues/new).
|
||||
{: .warning }
|
||||
<div class="note warning">
|
||||
<h5>Incremental regeneration is still an experimental feature</h5>
|
||||
<p>
|
||||
While incremental regeneration will work for the most common cases, it will
|
||||
not work correctly in every scenario. Please be extremely cautious when
|
||||
using the feature, and report any problems not listed below by
|
||||
<a href="https://github.com/jekyll/jekyll/issues/new">opening an issue on GitHub</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Incremental regeneration helps shorten build times by only generating documents
|
||||
and pages that were updated since the previous build. It does this by keeping
|
||||
|
||||
@@ -42,12 +42,29 @@ currently supported options:
|
||||
* **transliterated_header_ids** - Transliterate the header text before generating the ID
|
||||
* **typographic_symbols** - Defines a mapping from typographical symbol to output characters
|
||||
|
||||
Please note that both `remove_block_html_tags` and
|
||||
`remove_span_html_tags` are currently unsupported in Jekyll due
|
||||
to the fact that they are not included within the kramdown HTML converter.
|
||||
{: .warning }
|
||||
### Example Usage
|
||||
```yaml
|
||||
kramdown:
|
||||
html_to_native: true
|
||||
```
|
||||
|
||||
<div class="note warning">
|
||||
<h5>There are two unsupported kramdown options</h5>
|
||||
<p>
|
||||
Please note that both <code>remove_block_html_tags</code> and
|
||||
<code>remove_span_html_tags</code> are currently unsupported in Jekyll due
|
||||
to the fact that they are not included within the kramdown HTML converter.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
For more details about these options have a look at the [Kramdown configuration documentation](https://kramdown.gettalong.org/options.html).
|
||||
|
||||
### CommonMark
|
||||
|
||||
[CommonMark](https://commonmark.org/) is a rationalized version of Markdown syntax, implemented in C and thus faster than default Kramdown implemented in Ruby. It [slightly differs](https://github.com/commonmark/CommonMark#differences-from-original-markdown) from original Markdown and does not support all the syntax elements implemented in Kramdown, like [Block Inline Attribute Lists](https://kramdown.gettalong.org/syntax.html#block-ials).
|
||||
|
||||
It comes in two flavors: basic CommonMark with [jekyll-commonmark](https://github.com/jekyll/jekyll-commonmark) plugin and [GitHub Flavored Markdown supported by GitHub Pages](https://github.com/github/jekyll-commonmark-ghpages).
|
||||
|
||||
### Redcarpet
|
||||
|
||||
Redcarpet can be configured by providing an `extensions` sub-setting, whose
|
||||
@@ -67,9 +84,9 @@ extension for disabling fenced code.
|
||||
Note that you can also specify a language for highlighting after the first
|
||||
delimiter:
|
||||
|
||||
```ruby
|
||||
# ...ruby code
|
||||
```
|
||||
```ruby
|
||||
# ...ruby code
|
||||
```
|
||||
|
||||
With both fenced code blocks and highlighter enabled, this will statically
|
||||
highlight the code; without any syntax highlighter, it will add a
|
||||
|
||||
@@ -7,8 +7,6 @@ The tables below list the available settings for Jekyll, and the various <code
|
||||
class="option">options</code> (specified in the configuration file) and <code
|
||||
class="flag">flags</code> (specified on the command-line) that control them.
|
||||
|
||||
Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
|
||||
### Global Configuration
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
@@ -35,8 +33,7 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Site Destination</strong></p>
|
||||
<p class="description">Change the directory where Jekyll will write files. Files or folders in this directory that are not created by your site will be removed. Some files could be retained
|
||||
by specifying them within the <code><keep_files></code> configuration directive.</p>
|
||||
<p class="description">Change the directory where Jekyll will write files</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">destination: DIR</code></p>
|
||||
@@ -46,13 +43,53 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Safe</strong></p>
|
||||
<p class="description">Disable <a href="/docs/plugins/">custom plugins, and ignore symbolic links</a>.</p>
|
||||
<p class="description">
|
||||
Disable <a href="/docs/plugins/">custom plugins</a>, caching to disk
|
||||
and ignore symbolic links.
|
||||
</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">safe: BOOL</code></p>
|
||||
<p><code class="flag">--safe</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name">
|
||||
<strong>Disable Disk Cache</strong>
|
||||
<span class="version-badge" title="Introduced in v4.1.0">4.1.0</span>
|
||||
</p>
|
||||
<p class="description">
|
||||
Disable caching of content to disk in order to skip creating a
|
||||
<code>.jekyll-cache</code> or similar directory at the source
|
||||
to avoid interference with virtual environments and third-party
|
||||
directory watchers.
|
||||
Caching to disk is always disabled in <code>safe</code> mode.
|
||||
</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">disable_disk_cache: BOOL</code></p>
|
||||
<p><code class="flag">--disable-disk-cache</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name">
|
||||
<strong>Ignore theme configuration</strong>
|
||||
<span class="version-badge" title="Introduced in v4.1.0">4.1.0</span>
|
||||
</p>
|
||||
<p class="description">
|
||||
Jekyll 4.0 started allowing themes to bundle a <code>_config.yml</code>
|
||||
to simplify theme-onboarding for new users.
|
||||
In the unfortunate situation that importing a bundled theme configuration
|
||||
messes up the merged site-configuration, the user can configure Jekyll
|
||||
to not import the theme-config entirely.
|
||||
</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">ignore_theme_config: BOOL</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Exclude</strong></p>
|
||||
@@ -119,6 +156,8 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
The default value is <code>utf-8</code> starting in 2.0.0,
|
||||
and <code>nil</code> before 2.0.0, which will yield the Ruby
|
||||
default of <code>ASCII-8BIT</code>.
|
||||
Available encodings can be shown by the
|
||||
command <code>ruby -e 'puts Encoding::list.join("\n")'</code>.
|
||||
</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
@@ -129,18 +168,32 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<td>
|
||||
<p class='name'><strong>Defaults</strong></p>
|
||||
<p class='description'>
|
||||
Set defaults for <a href="/docs/front-matter/" title="front matter">front matter</a>
|
||||
Set defaults for <a href="{{ '/docs/front-matter/' | relative_url }}" title="front matter">front matter</a>
|
||||
variables.
|
||||
</p>
|
||||
</td>
|
||||
<td class='align-center'>
|
||||
<p>see <a href="/docs/configuration/front-matter-defaults/" title="details">below</a></p>
|
||||
<p>see <a href="{{ '/docs/configuration/front-matter-defaults/' | relative_url }}" title="details">below</a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="note warning">
|
||||
<h5>Destination folders are cleaned on site builds</h5>
|
||||
<p>
|
||||
The contents of <code><destination></code> are automatically
|
||||
cleaned, by default, when the site is built. Files or folders that are not
|
||||
created by your site will be removed. Some files could be retained
|
||||
by specifying them within the <code><keep_files></code> configuration directive.
|
||||
</p>
|
||||
<p>
|
||||
Do not use an important location for <code><destination></code>; instead, use it as
|
||||
a staging area and copy files from there to your web server.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
### Build Command Options
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
@@ -212,7 +265,8 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>LSI</strong></p>
|
||||
<p class="description">Produce an index for related posts. Requires the <a href="http://www.classifier-reborn.com/">classifier-reborn</a> plugin.</p>
|
||||
<p class="description">Produce an index for related posts. Requires the
|
||||
<a href="https://jekyll.github.io/classifier-reborn/">classifier-reborn</a> plugin.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">lsi: BOOL</code></p>
|
||||
@@ -235,6 +289,7 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<p class="description">Force watch to use polling.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">force_polling: BOOL</code></p>
|
||||
<p><code class="flag">--force_polling</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -296,11 +351,20 @@ Remember, configuration files are YAML so use spaces for indention not tabs.
|
||||
<p><code class="flag">--strict_front_matter</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Base URL</strong></p>
|
||||
<p class="description">Serve the website from the given base URL.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">baseurl: URL</code></p>
|
||||
<p><code class="flag">--baseurl URL</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
### Serve Command Options
|
||||
|
||||
In addition to the options below, the `serve` sub-command can accept any of the options
|
||||
@@ -338,18 +402,18 @@ before your site is served.
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Base URL</strong></p>
|
||||
<p class="description">Serve the website from the given base URL</p>
|
||||
<p class="name"><strong>Live Reload</strong></p>
|
||||
<p class="description">Reload a page automatically on the browser when its content is edited.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">baseurl: URL</code></p>
|
||||
<p><code class="flag">--baseurl URL</code></p>
|
||||
<p><code class="option">livereload: true</code></p>
|
||||
<p><code class="flag">-l, --livereload</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Detach</strong></p>
|
||||
<p class="description">Detach the server from the terminal</p>
|
||||
<p class="description">Detach the server from the terminal.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="option">detach: BOOL</code></p>
|
||||
@@ -358,7 +422,7 @@ before your site is served.
|
||||
</tr>
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>Skips the initial site build.</strong></p>
|
||||
<p class="name"><strong>Skips the initial site build</strong></p>
|
||||
<p class="description">Skips the initial site build which occurs before the server is started.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
@@ -368,7 +432,7 @@ before your site is served.
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>X.509 (SSL) Private Key</strong></p>
|
||||
<p class="description">SSL Private Key.</p>
|
||||
<p class="description">SSL Private Key, stored or symlinked in the site source.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="flag">--ssl-key</code></p>
|
||||
@@ -377,7 +441,7 @@ before your site is served.
|
||||
<tr class="setting">
|
||||
<td>
|
||||
<p class="name"><strong>X.509 (SSL) Certificate</strong></p>
|
||||
<p class="description">SSL Public certificate.</p>
|
||||
<p class="description">SSL Public certificate, stored or symlinked in the site source.</p>
|
||||
</td>
|
||||
<td class="align-center">
|
||||
<p><code class="flag">--ssl-cert</code></p>
|
||||
@@ -386,3 +450,11 @@ before your site is served.
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="note warning">
|
||||
<h5>Do not use tabs in configuration files</h5>
|
||||
<p>
|
||||
This will either lead to parsing errors, or Jekyll will revert to the
|
||||
default settings. Use spaces instead.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -34,7 +34,7 @@ gem 'jekyll'
|
||||
gem 'html-proofer'
|
||||
```
|
||||
|
||||
CircleCI detects when `Gemfile` is present is will automatically run `bundle install` for you in the `dependencies` phase.
|
||||
CircleCI detects when `Gemfile` is present and will automatically run `bundle install` for you in the `dependencies` phase.
|
||||
|
||||
## 3. Testing
|
||||
|
||||
@@ -61,6 +61,8 @@ test:
|
||||
|
||||
## Complete Example circle.yml File
|
||||
|
||||
### CircleCI v1
|
||||
|
||||
When you put it all together, here's an example of what that `circle.yml` file could look like in v1:
|
||||
|
||||
```yaml
|
||||
@@ -83,7 +85,11 @@ deployment:
|
||||
- rsync -va --delete ./_site username@my-website:/var/html
|
||||
```
|
||||
|
||||
for CircleCI v2, a Docker-based system which new projects will follow, set the `S3_BUCKET_NAME` environment variable (an example of the required config file is shown below).
|
||||
### CircleCI v2
|
||||
|
||||
CircleCI v2 is a Docker-based system. The example `circle.yml` below demonstrates how to
|
||||
deploy your Jekyll project to AWS. In order for this to work you would first have to set the
|
||||
`S3_BUCKET_NAME` [environment variable](https://circleci.com/docs/2.0/env-vars/).
|
||||
|
||||
```yaml
|
||||
defaults: &defaults
|
||||
@@ -105,6 +111,13 @@ jobs:
|
||||
- run:
|
||||
name: Bundle Install
|
||||
command: bundle check || bundle install
|
||||
- save_cache:
|
||||
key: rubygems-v1-{% raw %}{{ checksum "Gemfile.lock" }}{% endraw %}
|
||||
paths:
|
||||
- vendor/bundle
|
||||
- run:
|
||||
name: Jekyll build
|
||||
command: bundle exec jekyll build
|
||||
- run:
|
||||
name: HTMLProofer tests
|
||||
command: |
|
||||
@@ -113,13 +126,6 @@ jobs:
|
||||
--check-favicon \
|
||||
--check-html \
|
||||
--disable-external
|
||||
- save_cache:
|
||||
key: rubygems-v1-{% raw %}{{ checksum "Gemfile.lock" }}{% endraw %}
|
||||
paths:
|
||||
- vendor/bundle
|
||||
- run:
|
||||
name: Jekyll build
|
||||
command: bundle exec jekyll build
|
||||
- persist_to_workspace:
|
||||
root: ./
|
||||
paths:
|
||||
|
||||
213
docs/_docs/continuous-integration/github-actions.md
Normal file
213
docs/_docs/continuous-integration/github-actions.md
Normal file
@@ -0,0 +1,213 @@
|
||||
---
|
||||
title: GitHub Actions
|
||||
---
|
||||
|
||||
When building a Jekyll site with GitHub Pages, the standard flow is restricted for security reasons
|
||||
and to make it simpler to get a site setup. For more control over the build and still host the site
|
||||
with GitHub Pages you can use GitHub Actions.
|
||||
|
||||
|
||||
## Advantages of using Actions
|
||||
|
||||
### Control over gemset
|
||||
|
||||
- **Jekyll version** --- Instead of using the currently enabled version at `3.8.5`, you can use any
|
||||
version of Jekyll you want. For example `4.0.0`, or point directly to the repository.
|
||||
- **Plugins** --- You can use any Jekyll plugins irrespective of them being on the
|
||||
[supported versions][ghp-whitelist] list, even `*.rb` files placed in the `_plugins` directory
|
||||
of your site.
|
||||
- **Themes** --- While using a custom theme is possible without Actions, it is now simpler.
|
||||
|
||||
### Workflow Management
|
||||
|
||||
- **Customization** --- By creating a workflow file to run Actions, you can specify custom build
|
||||
steps, use environment variables.
|
||||
- **Logging** --- The build log is visible and can be tweaked to be verbose, so it is much easier to
|
||||
debug errors using Actions.
|
||||
|
||||
|
||||
## Workspace setup
|
||||
|
||||
The first and foremost requirement is a Jekyll project hosted at GitHub. Choose an existing Jekyll
|
||||
project or follow the [Quickstart]({{ '/docs' | relative_url }}) and push the repository to GitHub
|
||||
if it is not hosted there already.
|
||||
|
||||
We're only going to cover builds from the `master` branch in this page. Therefore, ensure that you
|
||||
are working on the `master` branch. If necessary, you may create it based on your default branch.
|
||||
When the Action builds your site, the contents of the *destination* directory will be automatically
|
||||
pushed to the `gh-pages` branch with a commit, ready to be used for serving.
|
||||
|
||||
{: .note .warning}
|
||||
The Action we're using here will create (or reset an existing) `gh-pages` branch on every successful
|
||||
deploy.<br/> So, if you have an existing `gh-pages` branch that is used to deploy your production
|
||||
build, ensure to make a backup of the contents into a different branch so that you can rollback
|
||||
easily if necessary.
|
||||
|
||||
The Jekyll site we'll be using for the rest of this page initially consists of just a `_config.yml`,
|
||||
an `index.md` page and a `Gemfile`. The contents are respectively:
|
||||
|
||||
```yaml
|
||||
# _config.yml
|
||||
|
||||
title: "Jekyll Actions Demo"
|
||||
```
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
---
|
||||
---
|
||||
|
||||
Welcome to My Home Page
|
||||
|
||||
{% assign date = '2020-04-13T10:20:00Z' %}
|
||||
|
||||
- Original date - {{ date }}
|
||||
- With timeago filter - {{ date | timeago }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
|
||||
```ruby
|
||||
# Gemfile
|
||||
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'jekyll', '~> 4.0'
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-timeago', '~> 0.13.1'
|
||||
end
|
||||
```
|
||||
|
||||
{: .note .info}
|
||||
The demo site uses Jekyll 4 and a [third-party plugin][timeago-plugin], both of which are currently
|
||||
not whitelisted for use on GitHub pages. The plugin will allow us to describe how far back a date
|
||||
was from today. e.g. If we give a date as `2016-03-23T10:20:00Z` and the current date is
|
||||
`2020-04-13T10:20:00Z`, then the output would be `4 years and 3 weeks ago`.
|
||||
|
||||
{: .note .info}
|
||||
The action we're using takes care of installing the Ruby gems and dependencies. While that keeps
|
||||
the setup simple for the user, one may encounter issues if they also check-in `Gemfile.lock` if it
|
||||
was generated with an old version of Bundler.
|
||||
|
||||
### Setting up the Action
|
||||
|
||||
GitHub Actions are registered for a repository by using a YAML file inside the directory path
|
||||
`.github/workflows` (note the dot at the start). Here we shall employ
|
||||
[Jekyll Actions][jekyll-actions] from the Marketplace for its simplicity.
|
||||
|
||||
Create a **workflow file**, say `github-pages.yml`, using either the GitHub interface or by pushing
|
||||
a YAML file to the workflow directory path manually. The base contents are:
|
||||
|
||||
{% raw %}
|
||||
```yaml
|
||||
name: Build and deploy Jekyll site to GitHub Pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
github-pages:
|
||||
runs-on: ubuntu-16.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: helaili/jekyll-action@2.0.1
|
||||
env:
|
||||
JEKYLL_PAT: ${{ secrets.JEKYLL_PAT }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The above workflow can be explained as the following:
|
||||
|
||||
- We trigger the build using **on.push** condition for `master` branch only --- this prevents
|
||||
the Action from overwriting the `gh-pages` branch on any feature branch pushes.
|
||||
- The **name** of the job matches our YAML filename: `github-pages`.
|
||||
- The **checkout** action takes care of cloning your repository.
|
||||
- We specify our selected **action** and **version number** using `helaili/jekyll-action@2.0.0`.
|
||||
This handles the build and deploy.
|
||||
- We set a reference to a secret **environment variable** for the action to use. The `JEKYLL_PAT`
|
||||
is a *Personal Access Token* and is detailed in the next section.
|
||||
|
||||
Instead of using the **on.push** condition, you could trigger your build on a **schedule** by
|
||||
using the [on.schedule] parameter. For example, here we build daily at midnight by specifying
|
||||
**cron** syntax, which can be tested at the [crontab guru] site.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
```
|
||||
|
||||
Note that this string must be quoted to prevent the asterisks from being evaluated incorrectly.
|
||||
|
||||
[on.schedule]: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onschedule
|
||||
[crontab guru]: https://crontab.guru/
|
||||
|
||||
|
||||
### Providing permissions
|
||||
|
||||
The action needs permissions to push to your `gh-pages` branch. So you need to create a GitHub
|
||||
**authentication token** on your GitHub profile, then set it as an environment variable in your
|
||||
build using _Secrets_:
|
||||
|
||||
1. On your GitHub profile, under **Developer Settings**, go to the [Personal Access Tokens][tokens]
|
||||
section.
|
||||
2. **Create** a token. Give it a name like "GitHub Actions" and ensure it has permissions to
|
||||
`public_repos` (or the entire `repo` scope for private repository) --- necessary for the action
|
||||
to commit to the `gh-pages` branch.
|
||||
3. **Copy** the token value.
|
||||
4. Go to your repository's **Settings** and then the **Secrets** tab.
|
||||
5. **Create** a token named `JEKYLL_PAT` (*important*). Give it a value using the value copied
|
||||
above.
|
||||
|
||||
### Build and deploy
|
||||
|
||||
On pushing any local changes onto `master`, the action will be triggered and the build will
|
||||
**start**.
|
||||
|
||||
To watch the progress and see any build errors, check on the build **status** using one of the
|
||||
following approaches:
|
||||
|
||||
- **View by commit**
|
||||
- Go to the repository level view in GitHub. Under the most recent commit (near the top) you’ll
|
||||
see a **status symbol** next to the commit message as a tick or _X_. Hover over it and click
|
||||
the **details** link.
|
||||
- **Actions tab**
|
||||
- Go to the repository's Actions tab. Click on the `jekyll` workflow tab.
|
||||
|
||||
If all goes well, all steps will be green and the built assets will now exist on the `gh-pages`
|
||||
branch.
|
||||
|
||||
On a successful build, GitHub Pages will **publish** the site stored on the repository `gh-pages`
|
||||
branches. Note that you do not need to setup a `gh-pages` branch or enable GitHub Pages, as the
|
||||
action will take care of this for you.
|
||||
(For private repositories, you'll have to upgrade to a paid plan).
|
||||
|
||||
To see the **live site**:
|
||||
|
||||
1. Go to the **environment** tab on your repository.
|
||||
2. Click **View Deployment** to see the deployed site URL.
|
||||
3. View your site at the **URL**. Make sure the `timeago` filter works as expected.
|
||||
4. Optionally **add** this URL to your repository's main page and to your `README.md`, to make it
|
||||
easy for people to find.
|
||||
|
||||
When you need to make further **changes** to the site, commit to `master` and push. The workflow
|
||||
will build and deploy your site again.
|
||||
|
||||
Be sure **not to edit** the `gh-pages` branch directly, as any changes will be lost on the next
|
||||
successful deploy from the Action.
|
||||
|
||||
## External links
|
||||
|
||||
- [jekyll-actions] is an action available on the GitHub Marketplace and was used in this guide.
|
||||
- [jekyll-actions-quickstart] is an unofficial repository that includes a live demo of the
|
||||
`jekyll-actions` action. That project can be used as a template for making a new site.
|
||||
|
||||
|
||||
[ghp-whitelist]: https://pages.github.com/versions/
|
||||
[timeago-plugin]: https://rubygems.org/gems/jekyll-timeago
|
||||
[tokens]: https://github.com/settings/tokens
|
||||
[jekyll-actions]: https://github.com/marketplace/actions/jekyll-actions
|
||||
[jekyll-actions-quickstart]: https://github.com/MichaelCurrin/jekyll-actions-quickstart
|
||||
@@ -34,7 +34,7 @@ Save the commands you want to run and succeed in a file: `./script/cibuild`
|
||||
|
||||
### The HTML Proofer Executable
|
||||
|
||||
```sh
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
set -e # halt script on error
|
||||
|
||||
@@ -90,7 +90,7 @@ Your `.travis.yml` file should look like this:
|
||||
```yaml
|
||||
language: ruby
|
||||
rvm:
|
||||
- 2.4.1
|
||||
- 2.6.3
|
||||
|
||||
before_script:
|
||||
- chmod +x ./script/cibuild # or do this locally and commit
|
||||
@@ -114,8 +114,6 @@ addons:
|
||||
packages:
|
||||
- libcurl4-openssl-dev
|
||||
|
||||
sudo: false # route your build to the container-based infrastructure for a faster build
|
||||
|
||||
cache: bundler # caching bundler gem packages will speed up build
|
||||
|
||||
# Optional: disable email notifications about the outcome of your builds
|
||||
@@ -134,7 +132,7 @@ access to Bundler, RubyGems, and a Ruby runtime.
|
||||
|
||||
```yaml
|
||||
rvm:
|
||||
- 2.4.1
|
||||
- 2.6.3
|
||||
```
|
||||
|
||||
RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This
|
||||
@@ -212,16 +210,6 @@ environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`.
|
||||
exclude: [vendor]
|
||||
```
|
||||
|
||||
By default you should supply the `sudo: false` command to Travis. This command
|
||||
explicitly tells Travis to run your build on Travis's [container-based
|
||||
infrastructure](https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure). Running on the container-based infrastructure can often times
|
||||
speed up your build. If you have any trouble with your build, or if your build
|
||||
does need `sudo` access, modify the line to `sudo: required`.
|
||||
|
||||
```yaml
|
||||
sudo: false
|
||||
```
|
||||
|
||||
To speed up the build, you should cache the gem packages created by `bundler`.
|
||||
Travis has a pre-defined [cache strategy for this tool][6] which should have
|
||||
all the default configs to do exactly that.
|
||||
|
||||
@@ -8,7 +8,7 @@ Hi there! Interested in contributing to Jekyll? We'd love your help. Jekyll is a
|
||||
|
||||
## Where to get help or report a problem
|
||||
|
||||
See [the support guidelines](https://jekyllrb.com/docs/support/)
|
||||
See the [support guidelines]({{ '/docs/support/' | relative_url }})
|
||||
|
||||
## Ways to contribute
|
||||
|
||||
@@ -16,9 +16,9 @@ Whether you're a developer, a designer, or just a Jekyll devotee, there are lots
|
||||
|
||||
* [Install Jekyll on your computer](https://jekyllrb.com/docs/installation/) and kick the tires. Does it work? Does it do what you'd expect? If not, [open an issue](https://github.com/jekyll/jekyll/issues/new) and let us know.
|
||||
* Comment on some of the project's [open issues](https://github.com/jekyll/jekyll/issues). Have you experienced the same problem? Know a work around? Do you have a suggestion for how the feature could be better?
|
||||
* Read through [the documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
|
||||
* Browse through [the Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
|
||||
* Find [an open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.
|
||||
* Read through the [documentation](https://jekyllrb.com/docs/home/), and click the "improve this page" button, any time you see something confusing, or have a suggestion for something that could be improved.
|
||||
* Browse through the [Jekyll discussion forum](https://talk.jekyllrb.com/), and lend a hand answering questions. There's a good chance you've already experienced what another user is experiencing.
|
||||
* Find an [open issue](https://github.com/jekyll/jekyll/issues) (especially [those labeled `help-wanted`](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted)), and submit a proposed fix. If it's your first pull request, we promise we won't bite, and are glad to answer any questions.
|
||||
* Help evaluate [open pull requests](https://github.com/jekyll/jekyll/pulls), by testing the changes locally and reviewing what's proposed.
|
||||
|
||||
## Submitting a pull request
|
||||
@@ -53,7 +53,7 @@ That's it! You'll be automatically subscribed to receive updates as others revie
|
||||
2. Clone the repository locally `git clone https://github.com/<you-username>/jekyll`.
|
||||
3. Create a new, descriptively named branch to contain your change ( `git checkout -b my-awesome-feature` ).
|
||||
4. Hack away, add tests. Not necessarily in that order.
|
||||
5. Make sure everything still passes by running `script/cibuild` (see [the tests section](#running-tests-locally) below)
|
||||
5. Make sure everything still passes by running `script/cibuild` (see the [tests section](#running-tests-locally) below)
|
||||
6. Push the branch up ( `git push origin my-awesome-feature` ).
|
||||
7. Create a pull request by visiting `https://github.com/<your-username>/jekyll` and following the instructions at the top of the screen.
|
||||
|
||||
@@ -93,7 +93,7 @@ If you want to add your plugin to the [list of plugins](https://jekyllrb.com/doc
|
||||
|
||||
## Code Contributions
|
||||
|
||||
Interesting in submitting a pull request? Awesome. Read on. There's a few common gotchas that we'd love to help you avoid.
|
||||
Interested in submitting a pull request? Awesome. Read on. There's a few common gotchas that we'd love to help you avoid.
|
||||
|
||||
### Tests and documentation
|
||||
|
||||
@@ -119,6 +119,8 @@ If your contribution changes any Jekyll behavior, make sure to update the docume
|
||||
Jekyll's methods. It also provides you with helpful methods to quickly create a
|
||||
site or configuration. [Feel free to check it out!](https://github.com/jekyll/jekyll/blob/master/script/console)
|
||||
|
||||
* Previously, we've used the WIP Probot app to help contributors determine whether their pull request is ready for review. Please use a [draft pull request](https://help.github.com/en/articles/about-pull-requests#draft-pull-requests) instead. When you're ready, [mark the pull request as ready for review](https://help.github.com/en/articles/changing-the-stage-of-a-pull-request)
|
||||
|
||||
## Running tests locally
|
||||
|
||||
### Test Dependencies
|
||||
@@ -150,6 +152,10 @@ script/cucumber features/blah.feature
|
||||
Both `script/test` and `script/cucumber` can be run without arguments to
|
||||
run its entire respective suite.
|
||||
|
||||
## Visual Studio Code Development Container
|
||||
|
||||
If you've got [Visual Studio Code](https://code.visualstudio.com/) with the [Remote Development Extension Pack](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack) installed then simply opening this repository in Visual Studio Code and following the prompts to "Re-open In A Development Container" will get you setup and ready to go with a fresh environment with all the requirements installed.
|
||||
|
||||
## A thank you
|
||||
|
||||
Thanks! Hacking on Jekyll should be fun. If you find any of this hard to figure out, let us know so we can improve our process or documentation!
|
||||
|
||||
@@ -3,13 +3,12 @@ title: Data Files
|
||||
permalink: /docs/datafiles/
|
||||
---
|
||||
|
||||
In addition to the [built-in variables](../variables/) available from Jekyll,
|
||||
In addition to the [built-in variables]({{'/docs/variables/' | relative_url }}) available from Jekyll,
|
||||
you can specify your own custom data that can be accessed via the [Liquid
|
||||
templating system](https://wiki.github.com/shopify/liquid/liquid-for-designers).
|
||||
templating system](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers).
|
||||
|
||||
Jekyll supports loading data from [YAML](http://yaml.org/), [JSON](http://www.json.org/),
|
||||
and [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) files located in the `_data` directory.
|
||||
Note that CSV files *must* contain a header row.
|
||||
Jekyll supports loading data from [YAML](http://yaml.org/), [JSON](http://www.json.org/), [CSV](https://en.wikipedia.org/wiki/Comma-separated_values), and [TSV](https://en.wikipedia.org/wiki/Tab-separated_values) files located in the `_data` directory.
|
||||
Note that CSV and TSV files *must* contain a header row.
|
||||
|
||||
This powerful feature allows you to avoid repetition in your templates and to
|
||||
set site specific options without changing `_config.yml`.
|
||||
@@ -43,7 +42,7 @@ In `_data/members.yml`:
|
||||
|
||||
Or `_data/members.csv`:
|
||||
|
||||
```text
|
||||
```
|
||||
name,github
|
||||
Eric Mill,konklone
|
||||
Parker Moore,parkr
|
||||
@@ -148,4 +147,4 @@ author: dave
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation](/tutorials/navigation).
|
||||
For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation]({{ '/tutorials/navigation/' | relative_url }}).
|
||||
|
||||
@@ -6,6 +6,6 @@ redirect_from: "/docs/deployment-methods/index.html"
|
||||
|
||||
Sites built using Jekyll can be deployed in a large number of ways due to the static nature of the generated output. Here's some of the most common ways:
|
||||
|
||||
* [Manually](/docs/deployment/manual/)
|
||||
* [Automated](/docs/deployment/automated/)
|
||||
* [Third Party](/docs/deployment/third-party/)
|
||||
* [Manually]({{ '/docs/deployment/manual/' | relative_url }})
|
||||
* [Automated]({{ '/docs/deployment/automated/' | relative_url }})
|
||||
* [Third Party]({{ '/docs/deployment/third-party/' | relative_url }})
|
||||
|
||||
@@ -11,13 +11,14 @@ CI.
|
||||
|
||||
These services run a script when there's a commit on your Git repository.
|
||||
You might want this script to build the site, run tests over the output then deploy it to the
|
||||
service of your choice.
|
||||
service of your choice.
|
||||
|
||||
We have guides for the following providers:
|
||||
|
||||
* [Travis CI](/docs/continuous-integration/travis-ci/)
|
||||
* [CircleCI](/docs/continuous-integration/circleci/)
|
||||
* [Buddy](/docs/continuous-integration/buddyworks/)
|
||||
* [GitHub Actions]({{ '/docs/continuous-integration/github-actions/' | relative_url }})
|
||||
* [Travis CI]({{ '/docs/continuous-integration/travis-ci/' | relative_url }})
|
||||
* [CircleCI]({{ '/docs/continuous-integration/circleci/' | relative_url }})
|
||||
* [Buddy]({{ '/docs/continuous-integration/buddyworks/' | relative_url }})
|
||||
|
||||
## Git post-receive hook
|
||||
|
||||
@@ -36,6 +37,12 @@ Next, add the following lines to hooks/post-receive and be sure Jekyll is
|
||||
installed on the server:
|
||||
|
||||
```bash
|
||||
#!/bin/bash -l
|
||||
|
||||
# Install Ruby Gems to ~/gems
|
||||
export GEM_HOME=$HOME/gems
|
||||
export PATH=$GEM_HOME/bin:$PATH
|
||||
|
||||
GIT_REPO=$HOME/myrepo.git
|
||||
TMP_GIT_CLONE=$HOME/tmp/myrepo
|
||||
GEMFILE=$TMP_GIT_CLONE/Gemfile
|
||||
|
||||
@@ -31,7 +31,6 @@ Most traditional web hosting provider let you upload files to their servers over
|
||||
|
||||
If you have direct access to the deployment web server, the process is essentially the same, except you might have other methods available to you (such as `scp`, or even direct filesystem access) for transferring the files. Remember to make sure the contents of the generated `_site` folder get placed in the appropriate web root directory for your web server.
|
||||
|
||||
|
||||
## Rack-Jekyll
|
||||
|
||||
[Rack-Jekyll](https://github.com/adaoraul/rack-jekyll/) allows you 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/rtomayko/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).
|
||||
|
||||
@@ -9,6 +9,12 @@ permalink: /docs/deployment/third-party/
|
||||
|
||||
Automating the deployment of a Jekyll site is simple. See their [Jekyll docs](https://www.aerobatic.com/docs/static-site-generators/#jekyll) for more details. Your built `_site` folder is deployed to their highly-available, globally distributed hosting service.
|
||||
|
||||
## AWS Amplify
|
||||
|
||||
The [AWS Amplify Console](https://console.amplify.aws) provides continuous deployment and hosting for modern web apps (single page apps and static site generators). Continuous deployment allows developers to deploy updates to their web app on every code commit to their Git repository. Hosting includes features such as globally available CDNs, 1-click custom domain setup + HTTPS, feature branch deployments, redirects, trailing slashes, and password protection.
|
||||
|
||||
Read this [step-by-step guide](https://medium.com/@jameshamann/deploy-your-jekyll-site-using-aws-amplify-with-only-a-few-clicks-8f3dd8f26112) to deploy and host your Jekyll site on AWS Amplify.
|
||||
|
||||
## CloudCannon
|
||||
|
||||
[CloudCannon](https://cloudcannon.com) has everything you need to build, host
|
||||
@@ -19,6 +25,15 @@ continuous deployment and [more](https://cloudcannon.com/features/).
|
||||
|
||||
Sites on GitHub Pages are powered by Jekyll behind the scenes, so if you’re looking for a zero-hassle, zero-cost solution, GitHub Pages are a great way to [host your Jekyll-powered website for free](/docs/github-pages/).
|
||||
|
||||
## GitLab Pages
|
||||
|
||||
[GitLab Pages](https://about.gitlab.com/stages-devops-lifecycle/pages/) offers free hosting with custom domains. [Get started with Jekyll](https://docs.gitlab.com/ee/user/project/pages/getting_started_part_four.html#practical-example) and a fully customizable pipeline.
|
||||
|
||||
## KeyCDN
|
||||
|
||||
[KeyCDN](https://www.keycdn.com) accelerates Jekyll-powered websites with a wide range of other features such as real time image processing including WebP transformation.
|
||||
The [Jekyll hosting tutorial](https://www.keycdn.com/support/jekyll-hosting) provides various options to supercharge Jekyll sites with just a few steps. It combines best flexibility and excellent performance.
|
||||
|
||||
## Kickster
|
||||
|
||||
Use [Kickster](http://kickster.nielsenramon.com/) for automated deploys to GitHub Pages when using unsupported plugins on GitHub Pages.
|
||||
@@ -27,13 +42,26 @@ Kickster provides a basic Jekyll project setup packed with web best practises an
|
||||
|
||||
Install the Kickster gem and you are good to go. More documentation can here found [here](https://github.com/nielsenramon/kickster#kickster). If you do not want to use the gem or start a new project you can just copy paste the deployment scripts for [Travis CI](https://github.com/nielsenramon/kickster/tree/master/snippets/travis) or [Circle CI](https://github.com/nielsenramon/kickster#automated-deployment-with-circle-ci).
|
||||
|
||||
|
||||
## Netlify
|
||||
|
||||
Netlify provides Global CDN, Continuous Deployment, one click HTTPS and [much more](https://www.netlify.com/features/), providing developers the most robust toolset available for modern web projects, without added complexity. Netlify supports custom plugins for Jekyll and has a free plan for open source projects.
|
||||
Netlify provides Global CDN, Continuous Deployment, one click HTTPS and [much more](https://www.netlify.com/features/), providing developers a robust toolset for modern web projects, without added complexity. Netlify supports custom plugins for Jekyll and has a free plan for open source projects.
|
||||
|
||||
Read this [Jekyll step-by-step guide](https://www.netlify.com/blog/2015/10/28/a-step-by-step-guide-jekyll-3.0-on-netlify/) to setup your Jekyll site on Netlify.
|
||||
|
||||
## Render
|
||||
|
||||
[Render](https://render.com) provides zero config continuous deployment for static sites. The service is free under 100GB monthly bandwith.
|
||||
|
||||
## Static Publisher
|
||||
|
||||
[Static Publisher](https://github.com/static-publisher/static-publisher) is another automated deployment option with a server listening for webhook posts, though it's not tied to GitHub specifically. It has a one-click deploy to Heroku, it can watch multiple projects from one server, it has an easy to user admin interface and can publish to either S3 or to a git repository (e.g. gh-pages).
|
||||
|
||||
## ZEIT
|
||||
|
||||
[ZEIT](https://zeit.co/) provides zero config continuous deployment, HTTPS Custom domains, high performance smart CDN, you get instant static deploy for free.
|
||||
|
||||
## 21YunBox
|
||||
|
||||
[21YunBox](https://www.21yunbox.com) provides blazing fast Chinese CDN, Continuous Deployment, one click HTTPS and [much more](https://www.21yunbox.com/docs/v2/), providing developers a hassle-free solution to launch their web projects in China.
|
||||
|
||||
Read this [Jekyll step-by-step guide](https://www.21yunbox.com/docs/v2/static.html#jekyll) to deploy your Jekyll site on 21YunBox.
|
||||
|
||||
@@ -4,7 +4,7 @@ permalink: /docs/front-matter/
|
||||
redirect_from: /docs/frontmatter/index.html
|
||||
---
|
||||
|
||||
Any file that contains a [YAML](http://yaml.org/) front matter block will be
|
||||
Any file that contains a [YAML](https://yaml.org/) front matter block will be
|
||||
processed by Jekyll as a special file. The front matter must be the first thing
|
||||
in the file and must take the form of valid YAML set between triple-dashed
|
||||
lines. Here is a basic example:
|
||||
@@ -18,20 +18,29 @@ title: Blogging Like a Hacker
|
||||
|
||||
Between these triple-dashed lines, you can set predefined variables (see below
|
||||
for a reference) or even create custom ones of your own. These variables will
|
||||
then be available to you to access using Liquid tags both further down in the
|
||||
then be available for you to access using Liquid tags both further down in the
|
||||
file and also in any layouts or includes that the page or post in question
|
||||
relies on.
|
||||
|
||||
If you want to use [Liquid tags and variables](/docs/variables/)
|
||||
but don’t need anything in your front matter, just leave it empty. The set
|
||||
of triple-dashed lines with nothing in between will still get Jekyll to
|
||||
process your file. (This is useful for things like CSS and RSS feeds)
|
||||
|
||||
If you use UTF-8 encoding, make sure that no `BOM` header
|
||||
characters exist in your files or very, very bad things will happen to
|
||||
Jekyll. This is especially relevant if you’re running
|
||||
<a href="">[Jekyll on Windows](/docs/installation/windows/).
|
||||
<div class="note warning">
|
||||
<h5>UTF-8 Character Encoding Warning</h5>
|
||||
<p>
|
||||
If you use UTF-8 encoding, make sure that no <code>BOM</code> header
|
||||
characters exist in your files or very, very bad things will happen to
|
||||
Jekyll. This is especially relevant if you’re running
|
||||
<a href="{{ '/docs/installation/windows/' | relative_url }}">Jekyll on Windows</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="note">
|
||||
<h5>Front Matter Variables Are Optional</h5>
|
||||
<p>
|
||||
If you want to use <a href="{{ '/docs/variables/' | relative_url }}">Liquid tags and variables</a>
|
||||
but don’t need anything in your front matter, just leave it empty! The set
|
||||
of triple-dashed lines with nothing in between will still get Jekyll to
|
||||
process your file. (This is useful for things like CSS and RSS feeds!)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Predefined Global Variables
|
||||
|
||||
@@ -63,7 +72,7 @@ front matter of a page or post.
|
||||
<li>
|
||||
Using <code>null</code> will produce a file without using a layout
|
||||
file. This is overridden if the file is a post/document and has a
|
||||
layout defined in the <a href="/docs/configuration/front-matter-defaults/">
|
||||
layout defined in the <a href="{{ '/docs/configuration/front-matter-defaults/' | relative_url }}">
|
||||
front matter defaults</a>.
|
||||
</li>
|
||||
<li>
|
||||
@@ -96,8 +105,7 @@ front matter of a page or post.
|
||||
<td>
|
||||
<p>
|
||||
Set to false if you don’t want a specific post to show up when the
|
||||
site is generated. To preview unpublished pages, run `jekyll serve`
|
||||
or `jekyll build` with the `--unpublished` switch.
|
||||
site is generated.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -105,6 +113,15 @@ front matter of a page or post.
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="note">
|
||||
<h5>Render Posts Marked As Unpublished</h5>
|
||||
<p>
|
||||
To preview unpublished pages, run `jekyll serve` or `jekyll build`
|
||||
with the `--unpublished` switch. Jekyll also has a handy <a href="{{ '/docs/posts/#drafts' | relative_url }}">drafts</a>
|
||||
feature tailored specifically for blog posts.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Custom Variables
|
||||
|
||||
You can also set your own front matter variables you can access in Liquid. For
|
||||
@@ -183,6 +200,13 @@ These are available out-of-the-box to be used in the front matter for a post.
|
||||
</table>
|
||||
</div>
|
||||
|
||||
## Defaults
|
||||
|
||||
[Front matter defaults](/docs/configuration/front-matter-defaults/) help you to reduce repetition for things like `layouts` which is often the same across multiple pages.
|
||||
<div class="note">
|
||||
<h5>Don't repeat yourself</h5>
|
||||
<p>
|
||||
If you don't want to repeat your frequently used front matter variables
|
||||
over and over, define
|
||||
<a href="{{ '/docs/configuration/front-matter-defaults/' | relative_url }}" title="Front Matter defaults">defaults</a>
|
||||
for them and only override them where necessary (or not at all). This works
|
||||
both for predefined and custom variables.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -58,12 +58,12 @@ Be sure to run `bundle update` often.
|
||||
Sometimes it's nice to preview your Jekyll site before you push your `gh-pages`
|
||||
branch to GitHub. The subdirectory-like URL structure GitHub uses for
|
||||
Project Pages complicates the proper resolution of URLs. In order to assure your
|
||||
site builds properly, use the handy [URL filters](/docs/liquid/filters/):
|
||||
site builds properly, use the handy [URL filters]({{ '/docs/liquid/filters/' | relative_url }}):
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
<!-- For styles with static names... -->
|
||||
<link href="{{ "/assets/css/style.css" | relative_url }}" rel="stylesheet">
|
||||
<link href="{{ 'assets/css/style.css' | relative_url }}" rel="stylesheet">
|
||||
<!-- For documents/pages whose URLs can change... -->
|
||||
[{{ page.title }}]("{{ page.url | relative_url }}")
|
||||
```
|
||||
@@ -121,8 +121,8 @@ to see more detailed examples.
|
||||
<div class="note warning">
|
||||
<h5>Source files must be in the root directory</h5>
|
||||
<p>
|
||||
GitHub Pages <a href="https://help.github.com/articles/troubleshooting-github-pages-build-failures#source-setting">overrides</a>
|
||||
the <a href="/docs/configuration/>“Site Source”</a>
|
||||
GitHub Pages <a href="https://help.github.com/en/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites">overrides</a>
|
||||
the <a href="{{ '/docs/configuration/options/' | relative_url }}">“Site Source”</a>
|
||||
configuration value, so if you locate your files anywhere other than the
|
||||
root directory, your site may not build correctly.
|
||||
</p>
|
||||
@@ -135,6 +135,6 @@ to see more detailed examples.
|
||||
While Windows is not officially supported, it is possible
|
||||
to install the <code>github-pages</code> gem on Windows.
|
||||
Special instructions can be found on our
|
||||
<a href="/docs/installation/windows/">Windows-specific docs page</a>.
|
||||
<a href="{{ '/docs/installation/windows/' | relative_url }}">Windows-specific docs page</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -4,6 +4,507 @@ permalink: "/docs/history/"
|
||||
note: This file is autogenerated. Edit /History.markdown instead.
|
||||
---
|
||||
|
||||
## 4.1.0 / 2020-05-27
|
||||
{: #v4-1-0}
|
||||
|
||||
### Bug Fixes
|
||||
{: #bug-fixes-v4-1-0}
|
||||
|
||||
- Memoize `absolute_url` and `relative_url` filters ([#7793]({{ site.repository }}/issues/7793))
|
||||
- Fix documentation comment for `Jekyll::Converters::Identity` ([#7883]({{ site.repository }}/issues/7883))
|
||||
- Optimize `Jekyll::Filters#item_property` ([#7696]({{ site.repository }}/issues/7696))
|
||||
- Allow multiple binary operators in `where_exp` filter ([#8047]({{ site.repository }}/issues/8047))
|
||||
- Fix documents custom-ordering logic ([#8028]({{ site.repository }}/issues/8028))
|
||||
- Use `layout.path` when rendering the Liquid layout ([#8069]({{ site.repository }}/issues/8069))
|
||||
- Reduce array allocations from `StaticFile#path` ([#8083]({{ site.repository }}/issues/8083))
|
||||
- Simplify `Jekyll::Renderer#validate_layout` ([#8064]({{ site.repository }}/issues/8064))
|
||||
- Add static file's basename to its `url_placeholder` ([#7908]({{ site.repository }}/issues/7908))
|
||||
- Clear cached Liquid template scope before render ([#7967]({{ site.repository }}/issues/7967))
|
||||
- Cache `URLFilter` results of string inputs per site ([#7990]({{ site.repository }}/issues/7990))
|
||||
- Use `platforms` instead of `install_if` in Gemfile ([#8140]({{ site.repository }}/issues/8140))
|
||||
- Config include trailing slash ([#8113]({{ site.repository }}/issues/8113))
|
||||
- Improve path normalization in liquid_renderer ([#8075]({{ site.repository }}/issues/8075))
|
||||
- Switch slugify regex to support more Unicode character groups ([#8167]({{ site.repository }}/issues/8167))
|
||||
- Check if entry is a directory once per enumerator ([#8177]({{ site.repository }}/issues/8177))
|
||||
- Filter out exclusively excluded entries sooner ([#7482]({{ site.repository }}/issues/7482))
|
||||
- Return `relative_url` if site.url is an empty string ([#7988]({{ site.repository }}/issues/7988))
|
||||
- Configure kramdown toc_levels as array by default ([#8015]({{ site.repository }}/issues/8015))
|
||||
- Reduce `Pathname` objects from front matter defaults ([#8067]({{ site.repository }}/issues/8067))
|
||||
- Simplify `Jekyll::Hooks.trigger` logic ([#8044]({{ site.repository }}/issues/8044))
|
||||
- Quicker categories for documents without superdirs ([#7987]({{ site.repository }}/issues/7987))
|
||||
- Reduce `Jekyll::Renderer` instances during a build ([#7570]({{ site.repository }}/issues/7570))
|
||||
- Escape regex characters in paths to match ([#8138]({{ site.repository }}/issues/8138))
|
||||
- Provide invokables for common drop query keys ([#8165]({{ site.repository }}/issues/8165))
|
||||
- Optimize path sanitization of default front matter ([#8154]({{ site.repository }}/issues/8154))
|
||||
- Initialize static files' data hash only if needed ([#8188]({{ site.repository }}/issues/8188))
|
||||
- Initialize include-files as Jekyll objects ([#8158]({{ site.repository }}/issues/8158))
|
||||
|
||||
### Minor Enhancements
|
||||
{: #minor-enhancements-v4-1-0}
|
||||
|
||||
- serve: add support for ECC certificates ([#7768]({{ site.repository }}/issues/7768))
|
||||
- Update `item_property` to recognize integers ([#7878]({{ site.repository }}/issues/7878))
|
||||
- Include `_config.yml` in a new theme's gemspec ([#7865]({{ site.repository }}/issues/7865))
|
||||
- Add an option to easily disable disk-cache ([#7928]({{ site.repository }}/issues/7928))
|
||||
- Optimize markdown parsing with Kramdown by reusing the options and parser objects ([#8013]({{ site.repository }}/issues/8013))
|
||||
- Add `PageDrop` to provide Liquid templates with data ([#7992]({{ site.repository }}/issues/7992))
|
||||
- Optimize `Kramdown::JekyllDocument#to_html` calls ([#8041]({{ site.repository }}/issues/8041))
|
||||
- Configure default language for syntax-highlighting ([#8035]({{ site.repository }}/issues/8035))
|
||||
- Remove dev dependencies from new theme-gem gemspec ([#8042]({{ site.repository }}/issues/8042))
|
||||
- Allow disabling import of theme configuration ([#8131]({{ site.repository }}/issues/8131))
|
||||
- Allow excerpts to be generated for `Page` objects ([#7642]({{ site.repository }}/issues/7642))
|
||||
- Profile various stages of a site's build process ([#6760]({{ site.repository }}/issues/6760))
|
||||
- Add find filters to optimize where-first chains ([#8171]({{ site.repository }}/issues/8171))
|
||||
- Make `number_of_words` filter respect CJK characters ([#7813]({{ site.repository }}/issues/7813))
|
||||
- Allow extensionless document in a strict site ([#7950]({{ site.repository }}/issues/7950))
|
||||
- Add `:slugified_categories` URL placeholder ([#8094]({{ site.repository }}/issues/8094))
|
||||
|
||||
### Documentation
|
||||
|
||||
- Add dropped 'title: Staff' to the code ([#7805]({{ site.repository }}/issues/7805))
|
||||
- Clarify docs for static files in collection ([#7812]({{ site.repository }}/issues/7812))
|
||||
- Rephrase the CircleCI v2 section ([#7815]({{ site.repository }}/issues/7815))
|
||||
- Update old GitHub wiki URL with new one ([#7823]({{ site.repository }}/issues/7823))
|
||||
- Update JekyllConf page with 2019 talks ([#7826]({{ site.repository }}/issues/7826))
|
||||
- link for memberships ([#7825]({{ site.repository }}/issues/7825))
|
||||
- Doc: minor fix, should be greater or equal to min version ([#7856]({{ site.repository }}/issues/7856))
|
||||
- Update third-party.md - Fix broken link ([#7857]({{ site.repository }}/issues/7857))
|
||||
- clarify _config.yml/collections type ([#7873]({{ site.repository }}/issues/7873))
|
||||
- Replace backticks with HTML tags in data file ([#7879]({{ site.repository }}/issues/7879))
|
||||
- add new theme source ([#7875]({{ site.repository }}/issues/7875))
|
||||
- fixed grammatical error (it's --> its) ([#7887]({{ site.repository }}/issues/7887))
|
||||
- Docs: Clarify organizing pages into subfolders ([#7896]({{ site.repository }}/issues/7896))
|
||||
- Disambiguate the placeholder of permalink ([#7906]({{ site.repository }}/issues/7906))
|
||||
- docs: add short serve command for livereload ([#7919]({{ site.repository }}/issues/7919))
|
||||
- docs: add options for watch and force polling ([#7918]({{ site.repository }}/issues/7918))
|
||||
- add install instructions for ArchLinux and openSUSE ([#7920]({{ site.repository }}/issues/7920))
|
||||
- Improve index page of Jekyll documentation ([#7926]({{ site.repository }}/issues/7926))
|
||||
- Include path in `jekyll new` commands (Usage docs) ([#7931]({{ site.repository }}/issues/7931))
|
||||
- Change `affect` to `effect` in the collections docs ([#7937]({{ site.repository }}/issues/7937))
|
||||
- Changed deprecated command in themes documentation ([#7941]({{ site.repository }}/issues/7941))
|
||||
- Adds some documentation for the `:clean`, `:on_obsolete` hook ([#7954]({{ site.repository }}/issues/7954))
|
||||
- docs: fix broken link ([#7955]({{ site.repository }}/issues/7955))
|
||||
- Corrected typo ([#7975]({{ site.repository }}/issues/7975))
|
||||
- docs: remove watch option in config ([#7940]({{ site.repository }}/issues/7940))
|
||||
- Correct a sentence in the documentation ([#7978]({{ site.repository }}/issues/7978))
|
||||
- Fix YAML representation of `group_by` result ([#7979]({{ site.repository }}/issues/7979))
|
||||
- Move `--baseurl` to build command options ([#7985]({{ site.repository }}/issues/7985))
|
||||
- Correct documentation of filters ([#7989]({{ site.repository }}/issues/7989))
|
||||
- Document sorting two documents by their `date` ([#7870]({{ site.repository }}/issues/7870))
|
||||
- Fix English grammar error ([#7994]({{ site.repository }}/issues/7994))
|
||||
- Update 03-front-matter.md ([#7996]({{ site.repository }}/issues/7996))
|
||||
- Add Kentico Kontent CMS integration to resources ([#8000]({{ site.repository }}/issues/8000))
|
||||
- Update 07-assets.md ([#7413]({{ site.repository }}/issues/7413))
|
||||
- Fix file references in Step by Step Tutorial's Assets step ([#8007]({{ site.repository }}/issues/8007))
|
||||
- docs: improve highlighting of code blocks ([#8017]({{ site.repository }}/issues/8017))
|
||||
- remove leading slash from Sass file location ([#8021]({{ site.repository }}/issues/8021))
|
||||
- [Docs] Fix asset link ref in step-by-step tutorial ([#8026]({{ site.repository }}/issues/8026))
|
||||
- Corrected command to modify PATH ([#8029]({{ site.repository }}/issues/8029))
|
||||
- Corrected command to modify PATH ([#8030]({{ site.repository }}/issues/8030))
|
||||
- Docs: Render full contents of just the latest post ([#8032]({{ site.repository }}/issues/8032))
|
||||
- docs: improvements for note boxes ([#8037]({{ site.repository }}/issues/8037))
|
||||
- Non-deprecated `vendor/bundle` path configuration ([#8048]({{ site.repository }}/issues/8048))
|
||||
- Update 09-collections.md ([#8060]({{ site.repository }}/issues/8060))
|
||||
- Remove extra paragraph tags ([#8063]({{ site.repository }}/issues/8063))
|
||||
- Add default front matter for tutorials collection ([#8081]({{ site.repository }}/issues/8081))
|
||||
- Create CSV to table tutorial ([#8090]({{ site.repository }}/issues/8090))
|
||||
- Add version badge for Custom Sorting of Documents ([#8098]({{ site.repository }}/issues/8098))
|
||||
- Docs: Fix grammar in `_docs/front-matter.md` ([#8097]({{ site.repository }}/issues/8097))
|
||||
- Update variables.md ([#8106]({{ site.repository }}/issues/8106))
|
||||
- Add help about Gentoo/Linux ([#8002]({{ site.repository }}/issues/8002))
|
||||
- Update documentation on third party site ([#8122]({{ site.repository }}/issues/8122))
|
||||
- Added Clear Linux ([#8132]({{ site.repository }}/issues/8132))
|
||||
- Added note about OS specific installation instructions. ([#8135]({{ site.repository }}/issues/8135))
|
||||
- Fix broken URL in the Resources Page on the Documentation Site ([#8136]({{ site.repository }}/issues/8136))
|
||||
- Docs: Deploy Jekyll site with GitHub Actions ([#8119]({{ site.repository }}/issues/8119))
|
||||
- Clarify `bundle config` in Bundler tutorial ([#8150]({{ site.repository }}/issues/8150))
|
||||
- docs: update your-first-plugin.md ([#8147]({{ site.repository }}/issues/8147))
|
||||
- Fix typo in documentation on GitHub Actions ([#8162]({{ site.repository }}/issues/8162))
|
||||
- Ease discovery of CLI commands (in their entirety) ([#8178]({{ site.repository }}/issues/8178))
|
||||
- Remove `sudo` from Travis CI tutorial ([#8187]({{ site.repository }}/issues/8187))
|
||||
- Add Gitlab Pages to 3rd party list ([#8191]({{ site.repository }}/issues/8191))
|
||||
- docs: add 21yunbox for deployment ([#8193]({{ site.repository }}/issues/8193))
|
||||
- Improve documentation on tags and categories ([#8196]({{ site.repository }}/issues/8196))
|
||||
|
||||
### Development Fixes
|
||||
{: #development-fixes-v4-1-0}
|
||||
|
||||
- Ci/GitHub actions ([#7822]({{ site.repository }}/issues/7822))
|
||||
- Rubocop version upgrade ([#7846]({{ site.repository }}/issues/7846))
|
||||
- Split action steps to avoid using `&&` on Windows ([#7885]({{ site.repository }}/issues/7885))
|
||||
- Upgrade rake to use version 13 ([#7910]({{ site.repository }}/issues/7910))
|
||||
- Update dependency constraint to allow RuboCop v0.76 ([#7893]({{ site.repository }}/issues/7893))
|
||||
- Use bash executable consistently ([#7909]({{ site.repository }}/issues/7909))
|
||||
- Test with JRuby 9.2.9.0 ([#7779]({{ site.repository }}/issues/7779))
|
||||
- Bump RuboCop to v0.79.x ([#7970]({{ site.repository }}/issues/7970))
|
||||
- Remove post-install message from gemspec ([#7974]({{ site.repository }}/issues/7974))
|
||||
- Attain Ruby 3.0 compatibility ([#7948]({{ site.repository }}/issues/7948))
|
||||
- Test `where` filter handling numeric property values ([#7821]({{ site.repository }}/issues/7821))
|
||||
- chore(deps): rubocop 0.80.0 ([#8012]({{ site.repository }}/issues/8012))
|
||||
- Update unit tests for Kramdown-based converter ([#8014]({{ site.repository }}/issues/8014))
|
||||
- Add Visual Studio Code Development Container ([#8016]({{ site.repository }}/issues/8016))
|
||||
- chore: simplify require for `Jekyll::VERSION` ([#8057]({{ site.repository }}/issues/8057))
|
||||
- Remove version-constraint relaxation for i18n gem ([#8055]({{ site.repository }}/issues/8055))
|
||||
- Mirror `spec.homepage` as `metadata["homepage_uri"]` ([#8056]({{ site.repository }}/issues/8056))
|
||||
- Bump Ruby versions on Travis builds ([#8088]({{ site.repository }}/issues/8088))
|
||||
- chore(ci): cache dependencies ([#8168]({{ site.repository }}/issues/8168))
|
||||
|
||||
### Site Enhancements
|
||||
{: #site-enhancements-v4-1-0}
|
||||
|
||||
- Optimize rendering of the documentation site ([#8020]({{ site.repository }}/issues/8020))
|
||||
- Utilize `relative_url` filter in documentation site ([#8089]({{ site.repository }}/issues/8089))
|
||||
- Render tutorial metadata in documentation site ([#8092]({{ site.repository }}/issues/8092))
|
||||
- Improve syntax-highlighting in documentation site ([#8079]({{ site.repository }}/issues/8079))
|
||||
- Site: Filter through just the *docs* collection ([#8170]({{ site.repository }}/issues/8170))
|
||||
|
||||
|
||||
## 4.0.1 / 2020-05-08
|
||||
{: #v4-0-1}
|
||||
|
||||
### Bug Fixes
|
||||
{: #bug-fixes-v4-0-1}
|
||||
|
||||
- Prevent console warning with Ruby 2.7 ([#8124]({{ site.repository }}/issues/8124))
|
||||
- Clear cached Liquid template scope before render ([#8141]({{ site.repository }}/issues/8141))
|
||||
- Add static file's basename to its url_placeholder ([#8142]({{ site.repository }}/issues/8142))
|
||||
- Update item_property to recognize integers ([#8160]({{ site.repository }}/issues/8160))
|
||||
|
||||
### Development Fixes
|
||||
{: #development-fixes-v4-0-1}
|
||||
|
||||
- Fix Kramdown converter based tests for v4.0.x ([#8143]({{ site.repository }}/issues/8143))
|
||||
|
||||
|
||||
## 3.8.7 / 2020-05-08
|
||||
{: #v3-8-7}
|
||||
|
||||
### Bug Fixes
|
||||
{: #bug-fixes-v3-8-7}
|
||||
|
||||
- Prevent console warnings with Ruby 2.7 ([#8125]({{ site.repository }}/issues/8125))
|
||||
|
||||
|
||||
## 4.0.0 / 2019-08-19
|
||||
{: #v4-0-0}
|
||||
|
||||
### Major Enhancements
|
||||
{: #major-enhancements-v4-0-0}
|
||||
|
||||
- Drop ruby 2.3 ([#7454]({{ site.repository }}/issues/7454))
|
||||
- Drop support for Ruby 2.1 and 2.2 ([#6560]({{ site.repository }}/issues/6560))
|
||||
- Drop support for older versions of Rouge ([#6978]({{ site.repository }}/issues/6978))
|
||||
- Drop support for pygments as syntax-highlighter ([#7118]({{ site.repository }}/issues/7118))
|
||||
- Drop support for Redcarpet ([#6987]({{ site.repository }}/issues/6987))
|
||||
- Drop support for rdiscount ([#6988]({{ site.repository }}/issues/6988))
|
||||
- Drop support for `jekyll-watch-1.4.0` and older ([#7287]({{ site.repository }}/issues/7287))
|
||||
- Incorporate `relative_url` filter in `link` tag ([#6727]({{ site.repository }}/issues/6727))
|
||||
- Upgrade kramdown dependency to v2.x ([#7492]({{ site.repository }}/issues/7492))
|
||||
- Upgrade jekyll-sass-converter to v2.x - Sassc + sourcemaps ([#7778]({{ site.repository }}/issues/7778))
|
||||
- Upgrade i18n to v1.x ([#6931]({{ site.repository }}/issues/6931))
|
||||
- Add `Jekyll::Cache` class to handle caching on disk ([#7169]({{ site.repository }}/issues/7169))
|
||||
- Cache converted markdown ([#7159]({{ site.repository }}/issues/7159))
|
||||
- Cache: Do not dump undumpable objects ([#7190]({{ site.repository }}/issues/7190))
|
||||
- Cache matched defaults sets for given parameters ([#6888]({{ site.repository }}/issues/6888))
|
||||
- Ignore cache directory ([#7184]({{ site.repository }}/issues/7184))
|
||||
- Add `Site#in_cache_dir` helper method ([#7160]({{ site.repository }}/issues/7160))
|
||||
- Remove 'cache_dir' during `jekyll clean` ([#7158]({{ site.repository }}/issues/7158))
|
||||
- Cache parsed Liquid templates in memory ([#7136]({{ site.repository }}/issues/7136))
|
||||
- Only read layouts from source_dir or theme_dir ([#6788]({{ site.repository }}/issues/6788))
|
||||
- Allow custom sorting of collection documents ([#7427]({{ site.repository }}/issues/7427))
|
||||
- Always exclude certain paths from being processed ([#7188]({{ site.repository }}/issues/7188))
|
||||
- Remove Jekyll::Utils#strip_heredoc in favor of a Ruby > 2.3 built in ([#7584]({{ site.repository }}/issues/7584))
|
||||
- Incorporate `relative_url` within `post_url` tag ([#7589]({{ site.repository }}/issues/7589))
|
||||
- Remove patch to modify config for kramdown ([#7699]({{ site.repository }}/issues/7699))
|
||||
|
||||
### Minor Enhancements
|
||||
{: #minor-enhancements-v4-0-0}
|
||||
|
||||
- Enhance `--blank` scaffolding ([#7310]({{ site.repository }}/issues/7310))
|
||||
- Use `jekyll-compose` if installed ([#6932]({{ site.repository }}/issues/6932))
|
||||
- Disable Liquid via front matter ([#6824]({{ site.repository }}/issues/6824))
|
||||
- Configure cache_dir ([#7232]({{ site.repository }}/issues/7232))
|
||||
- ISO week date drops ([#5981]({{ site.repository }}/issues/5981))
|
||||
- Fix custom 404 page for GitHub pages ([#7132]({{ site.repository }}/issues/7132))
|
||||
- Load config file from within current theme-gem ([#7304]({{ site.repository }}/issues/7304))
|
||||
- Suggest re-running command with `--trace` on fail ([#6551]({{ site.repository }}/issues/6551))
|
||||
- Support for binary operators in where_exp filter ([#6998]({{ site.repository }}/issues/6998))
|
||||
- Automatically load `_config.toml` ([#7299]({{ site.repository }}/issues/7299))
|
||||
- Add vendor folder to a newly installed site's .gitignore ([#6968]({{ site.repository }}/issues/6968))
|
||||
- Output Jekyll Version while debugging ([#7173]({{ site.repository }}/issues/7173))
|
||||
- Memoize computing excerpt's relative_path ([#6951]({{ site.repository }}/issues/6951))
|
||||
- Skip processing posts that can not be read ([#7302]({{ site.repository }}/issues/7302))
|
||||
- Memoize the return value of Site#documents ([#7273]({{ site.repository }}/issues/7273))
|
||||
- Cache globbed paths in front matter defaults ([#7345]({{ site.repository }}/issues/7345))
|
||||
- Cache computed item property ([#7301]({{ site.repository }}/issues/7301))
|
||||
- Cleanup Markdown converter ([#7519]({{ site.repository }}/issues/7519))
|
||||
- Do not process Liquid in post excerpt when disabled in front matter ([#7146]({{ site.repository }}/issues/7146))
|
||||
- Liquefied link tag ([#6269]({{ site.repository }}/issues/6269))
|
||||
- Update item_property to return numbers as numbers instead of strings ([#6608]({{ site.repository }}/issues/6608))
|
||||
- Use `.markdown` extension for page templates ([#7126]({{ site.repository }}/issues/7126))
|
||||
- Add support for `*.xhtml` files ([#6854]({{ site.repository }}/issues/6854))
|
||||
- Allow i18n v0.9.5 and higher ([#7044]({{ site.repository }}/issues/7044))
|
||||
- Ignore permission error of /proc/version ([#7267]({{ site.repository }}/issues/7267))
|
||||
- Strip extra slashes via `Jekyll.sanitized_path` ([#7182]({{ site.repository }}/issues/7182))
|
||||
- Site template: remove default config for markdown ([#7285]({{ site.repository }}/issues/7285))
|
||||
- Add a custom inspect string for StaticFile objects ([#7422]({{ site.repository }}/issues/7422))
|
||||
- Remind user to include gem in the Gemfile on error ([#7476]({{ site.repository }}/issues/7476))
|
||||
- Search Front matter defaults for Page objects with relative_path ([#7261]({{ site.repository }}/issues/7261))
|
||||
- Lock use of `tzinfo` gem to v1.x ([#7521]({{ site.repository }}/issues/7521), [#7562]({{ site.repository }}/issues/7562))
|
||||
- Utilize absolute paths of user-provided file paths ([#7450]({{ site.repository }}/issues/7450))
|
||||
- Detect `nil` and empty values in objects with `where` filter ([#7580]({{ site.repository }}/issues/7580))
|
||||
- Initialize mutations for Drops only if necessary ([#7657]({{ site.repository }}/issues/7657))
|
||||
- Reduce Array allocations via Jekyll::Cleaner ([#7659]({{ site.repository }}/issues/7659))
|
||||
- Encode and unencode urls only as required ([#7654]({{ site.repository }}/issues/7654))
|
||||
- Reduce string allocations with better alternatives ([#7643]({{ site.repository }}/issues/7643))
|
||||
- Reduce allocations from Jekyll::Document instances ([#7625]({{ site.repository }}/issues/7625))
|
||||
- Add `type` attribute to Document instances ([#7406]({{ site.repository }}/issues/7406))
|
||||
- Reduce allocations from where-filter ([#7653]({{ site.repository }}/issues/7653))
|
||||
- Memoize SiteDrop#documents to reduce allocations ([#7697]({{ site.repository }}/issues/7697))
|
||||
- Add PathManager class to cache interim paths ([#7732]({{ site.repository }}/issues/7732))
|
||||
- Remove warnings and fixes for deprecated config ([#7440]({{ site.repository }}/issues/7440))
|
||||
- Delegate --profile tabulation to `terminal-table` ([#7627]({{ site.repository }}/issues/7627))
|
||||
|
||||
### Bug Fixes
|
||||
{: #bug-fixes-v4-0-0}
|
||||
|
||||
- Security: fix `include` bypass of `EntryFilter#filter` symlink check ([#7226]({{ site.repository }}/issues/7226))
|
||||
- Theme gems: ensure directories aren't symlinks ([#7419]({{ site.repository }}/issues/7419))
|
||||
- Add call to unused method `validate_options` in `commands/serve.rb` ([#7122]({{ site.repository }}/issues/7122))
|
||||
- Check if scope applies to type before given path ([#7263]({{ site.repository }}/issues/7263))
|
||||
- Document two methods, simplify one of the methods ([#7270]({{ site.repository }}/issues/7270))
|
||||
- Check key in collections only if it isn't "posts" ([#7277]({{ site.repository }}/issues/7277))
|
||||
- Interpolate Jekyll::Page subclass on inspection ([#7203]({{ site.repository }}/issues/7203))
|
||||
- Measure the no. of times a template gets rendered ([#7316]({{ site.repository }}/issues/7316))
|
||||
- Reduce array traversal in Jekyll::Reader ([#7157]({{ site.repository }}/issues/7157))
|
||||
- Re-implement handling Liquid blocks in excerpts ([#7250]({{ site.repository }}/issues/7250))
|
||||
- Documents should be able to render their date ([#7404]({{ site.repository }}/issues/7404))
|
||||
- Fix Interpreter warning from Jekyll::Renderer ([#7448]({{ site.repository }}/issues/7448))
|
||||
- Loggers should accept both numbers and symbols ([#6967]({{ site.repository }}/issues/6967))
|
||||
- Replace regex arg to :gsub with a string arg ([#7189]({{ site.repository }}/issues/7189))
|
||||
- Dont write static files from unrendered collection ([#7410]({{ site.repository }}/issues/7410))
|
||||
- Excerpt handling of custom and intermediate tags ([#7382]({{ site.repository }}/issues/7382))
|
||||
- Change future post loglevel to warn to help user narrow down issues ([#7527]({{ site.repository }}/issues/7527))
|
||||
- Handle files with trailing dots in their basename ([#7315]({{ site.repository }}/issues/7315))
|
||||
- Fix unnecessary allocations via StaticFileReader ([#7572]({{ site.repository }}/issues/7572))
|
||||
- Don't check if site URL is absolute if it is nil ([#7498]({{ site.repository }}/issues/7498))
|
||||
- Avoid unnecessary duplication of pages array ([#7272]({{ site.repository }}/issues/7272))
|
||||
- Memoize Site#post_attr_hash ([#7276]({{ site.repository }}/issues/7276))
|
||||
- Memoize Document#excerpt_separator ([#7569]({{ site.repository }}/issues/7569))
|
||||
- Optimize Document::DATE_FILENAME_MATCHER to match valid filenames ([#7292]({{ site.repository }}/issues/7292))
|
||||
- Escape valid special chars in a site's path name ([#7568]({{ site.repository }}/issues/7568))
|
||||
- Replace `name` in Page#inspect with relative_path ([#7434]({{ site.repository }}/issues/7434))
|
||||
- Log a warning when the slug is empty ([#7357]({{ site.repository }}/issues/7357))
|
||||
- Push Markdown link refs to excerpt only as required ([#7577]({{ site.repository }}/issues/7577))
|
||||
- Fix broken include_relative usage in excerpt ([#7633]({{ site.repository }}/issues/7633))
|
||||
- Initialize and reset glob_cache only as necessary ([#7658]({{ site.repository }}/issues/7658))
|
||||
- Revert memoizing Site#docs_to_write and #documents ([#7684]({{ site.repository }}/issues/7684))
|
||||
- Backport [#7684]({{ site.repository }}/issues/7684) for v3.8.x: Revert memoizing Site#docs_to_write and refactor #documents ([#7689]({{ site.repository }}/issues/7689))
|
||||
- Backport [#7213]({{ site.repository }}/issues/7213) and [#7633]({{ site.repository }}/issues/7633) for v3.8.x: Fix broken include_relative usage in excerpt ([#7690]({{ site.repository }}/issues/7690))
|
||||
- Don't read symlinks in site.include in safe mode ([#7711]({{ site.repository }}/issues/7711))
|
||||
- Replace `String#=~` with `String#match?` ([#7723]({{ site.repository }}/issues/7723))
|
||||
- Update log output for an invalid theme directory ([#7679]({{ site.repository }}/issues/7679))
|
||||
- Remove configuration of theme sass files from Core ([#7290]({{ site.repository }}/issues/7290))
|
||||
- Actually conditionally include liquid-c ([#7792]({{ site.repository }}/issues/7792))
|
||||
- Test number_like regex on stringified property ([#7788]({{ site.repository }}/issues/7788))
|
||||
|
||||
### Development Fixes
|
||||
{: #development-fixes-v4-0-0}
|
||||
|
||||
- Upgrade liquid-c to v4.0 ([#7375]({{ site.repository }}/issues/7375))
|
||||
- Bump RuboCop to v0.71.0 ([#7687]({{ site.repository }}/issues/7687))
|
||||
- Target Ruby 2.4 syntax ([#7583]({{ site.repository }}/issues/7583))
|
||||
- Fix: RuboCop offenses ([#7769]({{ site.repository }}/issues/7769))
|
||||
- Use communicative method parameters ([#7566]({{ site.repository }}/issues/7566))
|
||||
- Scan `assert_equal` methods and rectify any offenses with a custom RuboCop cop ([#7130]({{ site.repository }}/issues/7130))
|
||||
- CI: Test with Ruby 2.6 ([#7438]({{ site.repository }}/issues/7438))
|
||||
- CI: Test with Ruby 2.6 on AppVeyor ([#7518]({{ site.repository }}/issues/7518))
|
||||
- CI: Update RuboCop config ([#7050]({{ site.repository }}/issues/7050))
|
||||
- CI: Add a script to profile docs ([#7540]({{ site.repository }}/issues/7540))
|
||||
- CI(Appveyor): shallow clone with 5 last commits ([#7312]({{ site.repository }}/issues/7312))
|
||||
- CI: Test with oldest and latest Ruby only ([#7412]({{ site.repository }}/issues/7412))
|
||||
- CI: Update excludes for CodeClimate Analyses ([#7365]({{ site.repository }}/issues/7365))
|
||||
- CI: Lock Travis to Bundler-1.16.2 ([#7144]({{ site.repository }}/issues/7144))
|
||||
- CI: Bump tested version of JRuby to 9.2.7.0 ([#7612]({{ site.repository }}/issues/7612))
|
||||
- CI: Do not install docs on updating gems on Travis ([#7706]({{ site.repository }}/issues/7706))
|
||||
- Update gemspec ([#7425]({{ site.repository }}/issues/7425))
|
||||
- deps: relax version constraint on classifier-reborn gem ([#7471]({{ site.repository }}/issues/7471))
|
||||
- deps: update yajl-ruby ([#7278]({{ site.repository }}/issues/7278))
|
||||
- deps: bump yajl-ruby to v1.4.0 ([#6976]({{ site.repository }}/issues/6976))
|
||||
- Create symlink only if target is accessible ([#7429]({{ site.repository }}/issues/7429))
|
||||
- Switch to `:install_if` for wdm gem ([#7372]({{ site.repository }}/issues/7372))
|
||||
- Add cucumber feature to test include_relative tag ([#7213]({{ site.repository }}/issues/7213))
|
||||
- Small benchmark refactoring ([#7211]({{ site.repository }}/issues/7211))
|
||||
- Fix incorrectly passed arguments to assert_equal ([#7134]({{ site.repository }}/issues/7134))
|
||||
- fix up refute_equal call ([#7133]({{ site.repository }}/issues/7133))
|
||||
- Fix RuboCop offences in test files ([#7128]({{ site.repository }}/issues/7128))
|
||||
- Use assert_include ([#7093]({{ site.repository }}/issues/7093))
|
||||
- Remember to release docs gem ([#7066]({{ site.repository }}/issues/7066))
|
||||
- Useless privates removed ([#6768]({{ site.repository }}/issues/6768))
|
||||
- Load Rouge for TestKramdown ([#7007]({{ site.repository }}/issues/7007))
|
||||
- Update instructions for releasing docs Gem ([#6975]({{ site.repository }}/issues/6975))
|
||||
- We are not using Ruby 2.2 anymore ([#6977]({{ site.repository }}/issues/6977))
|
||||
- Remove unnecessary Jekyll::Page constant ([#6770]({{ site.repository }}/issues/6770))
|
||||
- Remove unused error class ([#6511]({{ site.repository }}/issues/6511))
|
||||
- Add a Cucumber feature for post_url tag ([#7586]({{ site.repository }}/issues/7586))
|
||||
- Generate a "TOTAL" row for build-profile table ([#7614]({{ site.repository }}/issues/7614))
|
||||
- Refactor Jekyll::Cache ([#7532]({{ site.repository }}/issues/7532))
|
||||
- Store list of expected extnames in a constant ([#7638]({{ site.repository }}/issues/7638))
|
||||
- Profile allocations from a build session ([#7646]({{ site.repository }}/issues/7646))
|
||||
- Update small typo in contributing.md ([#7671]({{ site.repository }}/issues/7671))
|
||||
- Remove override to Jekyll::Document#respond_to? ([#7695]({{ site.repository }}/issues/7695))
|
||||
- Update TestTags in sync with Rouge v3.4 ([#7709]({{ site.repository }}/issues/7709))
|
||||
- Use regexp to filter special entries ([#7702]({{ site.repository }}/issues/7702))
|
||||
- Reduce Array objects generated from utility method ([#7749]({{ site.repository }}/issues/7749))
|
||||
- Update mime.types ([#7756]({{ site.repository }}/issues/7756))
|
||||
- Replace redundant Array#map with Array#each ([#7761]({{ site.repository }}/issues/7761))
|
||||
- Reduce allocations by using #each_with_object ([#7758]({{ site.repository }}/issues/7758))
|
||||
- Memoize fallback_data for Drop ([#7728]({{ site.repository }}/issues/7728))
|
||||
- Use String#end_with? to check if entry is a backup ([#7701]({{ site.repository }}/issues/7701))
|
||||
|
||||
### Documentation
|
||||
|
||||
- Refactor docs ([#7205]({{ site.repository }}/issues/7205))
|
||||
- Add a link to Giraffe Academy's tutorial ([#7325]({{ site.repository }}/issues/7325))
|
||||
- Do not advise users to install Jekyll outside of Bundler ([#6927]({{ site.repository }}/issues/6927))
|
||||
- Remove documentation for using Redcarpet ([#6990]({{ site.repository }}/issues/6990))
|
||||
- Install Docs that Work on MacOS 10.14 ([#7561]({{ site.repository }}/issues/7561))
|
||||
- Add Installation Instructions for Ubuntu ([#6925]({{ site.repository }}/issues/6925))
|
||||
- Don't prompt for sudo when installing with Ubuntu WSL ([#6781]({{ site.repository }}/issues/6781))
|
||||
- Installation instructions for Fedora ([#7198]({{ site.repository }}/issues/7198))
|
||||
- Update Windows install docs ([#6926]({{ site.repository }}/issues/6926))
|
||||
- List all standard liquid filters ([#7333]({{ site.repository }}/issues/7333))
|
||||
- List all static files variables ([#7002]({{ site.repository }}/issues/7002))
|
||||
- Improve how to include Rouge stylesheets ([#7752]({{ site.repository }}/issues/7752))
|
||||
- Mention CommonMark plugins ([#7418]({{ site.repository }}/issues/7418))
|
||||
- Add TSV to list of supported _data files. ([#7168]({{ site.repository }}/issues/7168))
|
||||
- How to deploy using pre-push git hook ([#7179]({{ site.repository }}/issues/7179))
|
||||
- Hosting with AWS Amplify ([#7510]({{ site.repository }}/issues/7510))
|
||||
- CircleCI deployment through CircleCI v2 ([#7024]({{ site.repository }}/issues/7024))
|
||||
- GitHub Pages: use themes from other repos ([#7112]({{ site.repository }}/issues/7112))
|
||||
- Document page.dir and page.name ([#7373]({{ site.repository }}/issues/7373))
|
||||
- Document custom tag blocks ([#7359]({{ site.repository }}/issues/7359))
|
||||
- Document converter methods ([#7289]({{ site.repository }}/issues/7289))
|
||||
- Document {% raw %}`{{ page.collection }}`{% endraw %} ([#7430]({{ site.repository }}/issues/7430))
|
||||
- Document Jekyll Filters with YAML data ([#7335]({{ site.repository }}/issues/7335))
|
||||
- Document where Jekyll looks for layouts in a site ([#7564]({{ site.repository }}/issues/7564))
|
||||
- plugin: liquid tag jekyll-flickr ([#6946]({{ site.repository }}/issues/6946))
|
||||
- plugin: jekyll-target-blank ([#7046]({{ site.repository }}/issues/7046))
|
||||
- plugin: json-get. ([#7086]({{ site.repository }}/issues/7086))
|
||||
- plugin: `jekyll-info` ([#7091]({{ site.repository }}/issues/7091))
|
||||
- plugin: jekyll-xml-source ([#7114]({{ site.repository }}/issues/7114))
|
||||
- plugin: jekyll-firstimage filter ([#7127]({{ site.repository }}/issues/7127))
|
||||
- plugin: CAT ([#7011]({{ site.repository }}/issues/7011))
|
||||
- Resources: Statictastic ([#7593]({{ site.repository }}/issues/7593))
|
||||
- Resources: Bonsai Search ([#7543]({{ site.repository }}/issues/7543))
|
||||
- Resources: Formspark ([#7601]({{ site.repository }}/issues/7601))
|
||||
- Resources: Jekpack([#7598]({{ site.repository }}/issues/7598))
|
||||
- Resources: formX ([#7536]({{ site.repository }}/issues/7536))
|
||||
- Resources: 99inbound's Jekyll post ([#7348]({{ site.repository }}/issues/7348))
|
||||
- Resources: CloudSh ([#7497]({{ site.repository }}/issues/7497))
|
||||
- Community: DEV Community's Jekyll tag ([#7139]({{ site.repository }}/issues/7139))
|
||||
- Showcase: developer.spotify.com ([#7217]({{ site.repository }}/issues/7217))
|
||||
- Showcase: Isomer ([#7300]({{ site.repository }}/issues/7300))
|
||||
- Add version number for group_by_exp doc ([#6956]({{ site.repository }}/issues/6956))
|
||||
- Updated nginx configuration for custom-404-page documentation ([#6994]({{ site.repository }}/issues/6994))
|
||||
- Clarify definition of 'draft' ([#7037]({{ site.repository }}/issues/7037))
|
||||
- _drafts need to be contained within the custom collection directory ([#6985]({{ site.repository }}/issues/6985))
|
||||
- Updated to supported version ([#7031]({{ site.repository }}/issues/7031))
|
||||
- Add Hints for some Improved Travis Config in Doc ([#7049]({{ site.repository }}/issues/7049))
|
||||
- Update travis-ci.md to point out "this is an example Gemfile" ([#7089]({{ site.repository }}/issues/7089))
|
||||
- Instructions to view theme’s files under Linux ([#7095]({{ site.repository }}/issues/7095))
|
||||
- Use a real theme in the example ([#7125]({{ site.repository }}/issues/7125))
|
||||
- Update docs about post creation ([#7138]({{ site.repository }}/issues/7138))
|
||||
- Initialize upgrading doc for v4.0 ([#7140]({{ site.repository }}/issues/7140))
|
||||
- Add version badge for date filters with ordinal ([#7162]({{ site.repository }}/issues/7162))
|
||||
- Corrected sample usage of postfiles ([#7181]({{ site.repository }}/issues/7181))
|
||||
- Resolve "Unable to locate package ruby2.4" error ([#7196]({{ site.repository }}/issues/7196))
|
||||
- Correct stylesheet url in tutorial step 7 ([#7210]({{ site.repository }}/issues/7210))
|
||||
- Removes quotes from markdown for assets ([#7223]({{ site.repository }}/issues/7223))
|
||||
- Clarified front matter requirement ([#7234]({{ site.repository }}/issues/7234))
|
||||
- Explicit location of where to create blog.html ([#7241]({{ site.repository }}/issues/7241))
|
||||
- Reference the build command options that allows multiple config files ([#7266]({{ site.repository }}/issues/7266))
|
||||
- Add more issue template(s) and pull request template ([#7269]({{ site.repository }}/issues/7269))
|
||||
- Suggest sites use OpenSSL instead of GnuTLS for their site's CI ([#7010]({{ site.repository }}/issues/7010))
|
||||
- Fix broken Contributors link in README.markdown ([#7200]({{ site.repository }}/issues/7200))
|
||||
- Add title tag to item in RSS template ([#7282]({{ site.repository }}/issues/7282))
|
||||
- Add link tag to item in RSS template ([#7291]({{ site.repository }}/issues/7291))
|
||||
- Remove redundant instruction comment ([#7342]({{ site.repository }}/issues/7342))
|
||||
- Textile is only supported through a converter plugin ([#7003]({{ site.repository }}/issues/7003))
|
||||
- Add recursive navigation tutorial ([#7720]({{ site.repository }}/issues/7720))
|
||||
- Remove installation instructions with Homebrew ([#7381]({{ site.repository }}/issues/7381))
|
||||
- Fix dead link and misleading prose ([#7383]({{ site.repository }}/issues/7383))
|
||||
- Fix content management section ([#7385]({{ site.repository }}/issues/7385))
|
||||
- Apply ruby official guide documents ([#7393]({{ site.repository }}/issues/7393))
|
||||
- Fix group_by_exp filter example ([#7394]({{ site.repository }}/issues/7394))
|
||||
- Remove alt attribute from a tags ([#7407]({{ site.repository }}/issues/7407))
|
||||
- Fix BASH code-block in ubuntu.md ([#7420]({{ site.repository }}/issues/7420))
|
||||
- zlib is missing ([#7428]({{ site.repository }}/issues/7428))
|
||||
- Fixed unnecessary aticles and pronouns ([#7466]({{ site.repository }}/issues/7466))
|
||||
- Store SSL key and cert in site source ([#7473]({{ site.repository }}/issues/7473))
|
||||
- Fix typo in tutorial for converting existing site ([#7524]({{ site.repository }}/issues/7524))
|
||||
- Check if var exists before include tag ([#7530]({{ site.repository }}/issues/7530))
|
||||
- Clarify docs on collections regarding the need for front matter ([#7538]({{ site.repository }}/issues/7538))
|
||||
- Fix incorrect Windows path in themes.md ([#7525]({{ site.repository }}/issues/7525))
|
||||
- Addresses bundle not found. ([#7351]({{ site.repository }}/issues/7351))
|
||||
- Update the contribution docs for draft pull requests ([#7619]({{ site.repository }}/issues/7619))
|
||||
- Data file section adds TSV ([#7640]({{ site.repository }}/issues/7640))
|
||||
- Indicate where the _sass folder is by default ([#7644]({{ site.repository }}/issues/7644))
|
||||
- Docs: add version tags to new placeholders ([#5981]({{ site.repository }}/issues/5981)) for permalinks ([#7647]({{ site.repository }}/issues/7647))
|
||||
- Solve "GitHub Page build failure" in 10-deployment.md ([#7648]({{ site.repository }}/issues/7648))
|
||||
- fix link to Site Source config ([#7708]({{ site.repository }}/issues/7708))
|
||||
- Introduce frontmatter in step 2 ([#7704]({{ site.repository }}/issues/7704))
|
||||
- Add @ashmaroli to Core Team listing ([#7398]({{ site.repository }}/issues/7398))
|
||||
- Lnk to Tidelift in site's footer ([#7377]({{ site.repository }}/issues/7377))
|
||||
- Link to OpenCollective backing ([#7378]({{ site.repository }}/issues/7378)
|
||||
- Link to sponsor listing in README ([#7405]({{ site.repository }}/issues/7405))
|
||||
- Adjust team page listings ([#7395]({{ site.repository }}/issues/7395))
|
||||
- Updates to CODE OF CONDUCT (v1.4.0) ([#7105]({{ site.repository }}/issues/7105))
|
||||
- More inclusive writing ([#7283]({{ site.repository }}/issues/7283))
|
||||
- Update Ruby version used in Travis-CI example ([#7783]({{ site.repository }}/issues/7783))
|
||||
- Documentation for binary operators in where_exp ([#7786]({{ site.repository }}/issues/7786))
|
||||
- Adding SmartForms as Forms service ([#7794]({{ site.repository }}/issues/7794))
|
||||
|
||||
### Site Enhancements
|
||||
{: #site-enhancements-v4-0-0}
|
||||
|
||||
- Better Performance ([#7388]({{ site.repository }}/issues/7388))
|
||||
- Add some minor improvements to image loading in Showcase page ([#7214]({{ site.repository }}/issues/7214))
|
||||
- Simplify assigning classname to docs' aside-links ([#7609]({{ site.repository }}/issues/7609))
|
||||
- Simplify couple of includes in the docs site ([#7607]({{ site.repository }}/issues/7607))
|
||||
- Avoid generating empty classnames ([#7610]({{ site.repository }}/issues/7610))
|
||||
- Minimize rendering count ([#7343]({{ site.repository }}/issues/7343))
|
||||
|
||||
### Release
|
||||
|
||||
- Jekyll v4.0 release ([#7782]({{ site.repository }}/issues/7782))
|
||||
- Release post for v4.0.0 beta1 ([#7716]({{ site.repository }}/issues/7716))
|
||||
- Release post for v4.0.0.pre.alpha1 ([#7574]({{ site.repository }}/issues/7574))
|
||||
- Release post for v3.8.0 ([#6849]({{ site.repository }}/issues/6849))
|
||||
- Release post for v3.6.3, v3.7.4 and v3.8.4 ([#7259]({{ site.repository }}/issues/7259))
|
||||
- Post: v4.0 development ([#6934]({{ site.repository }}/issues/6934))
|
||||
|
||||
|
||||
## 3.8.6 / 2019-07-02
|
||||
{: #v3-8-6}
|
||||
|
||||
### Bug Fixes
|
||||
{: #bug-fixes-v3-8-6}
|
||||
|
||||
- Update log output for an invalid theme directory ([#7734]({{ site.repository }}/issues/7734))
|
||||
- Memoize `SiteDrop#documents` to reduce allocations ([#7722]({{ site.repository }}/issues/7722))
|
||||
- Excerpt handling of custom and intermediate tags ([#7467]({{ site.repository }}/issues/7467))
|
||||
- Escape valid special chars in a site's path name ([#7573]({{ site.repository }}/issues/7573))
|
||||
- Revert memoizing `Site#docs_to_write` and refactor `#documents` ([#7689]({{ site.repository }}/issues/7689))
|
||||
- Fix broken `include_relative` usage in excerpt ([#7690]({{ site.repository }}/issues/7690))
|
||||
- Install platform-specific gems as required (3c06609406)
|
||||
|
||||
### Security Fixes
|
||||
{: #security-fixes-v3-8-6}
|
||||
|
||||
- Theme gems: ensure directories aren't symlinks ([#7424]({{ site.repository }}/issues/7424))
|
||||
|
||||
|
||||
## 3.8.5 / 2018-11-04
|
||||
{: #v3-8-5}
|
||||
|
||||
@@ -77,10 +578,10 @@ note: This file is autogenerated. Edit /History.markdown instead.
|
||||
- Minimize array allocations in the `where` filter ([#6860]({{ site.repository }}/issues/6860))
|
||||
- Bump JRuby ([#6878]({{ site.repository }}/issues/6878))
|
||||
- Assert existence of <collection>.files ([#6907]({{ site.repository }}/issues/6907))
|
||||
- Bump Rubocop to 0.54.x ([#6915]({{ site.repository }}/issues/6915))
|
||||
- Bump RuboCop to 0.54.x ([#6915]({{ site.repository }}/issues/6915))
|
||||
- Regenerate unconditionally unless its an incremental build ([#6917]({{ site.repository }}/issues/6917))
|
||||
- Centralize require statements ([#6910]({{ site.repository }}/issues/6910))
|
||||
- Bump to Rubocop 0.55 ([#6929]({{ site.repository }}/issues/6929))
|
||||
- Bump to RuboCop 0.55 ([#6929]({{ site.repository }}/issues/6929))
|
||||
- Refactor private method `HighlightBlock#parse_options` ([#6822]({{ site.repository }}/issues/6822))
|
||||
|
||||
### Minor Enhancements
|
||||
|
||||
@@ -13,44 +13,7 @@ The `include` tag allows you to include the content from another file stored in
|
||||
|
||||
Jekyll will look for the referenced file (in this case, `footer.html`) in the `_includes` directory at the root of your source directory and insert its contents.
|
||||
|
||||
## Parameters
|
||||
|
||||
Includes can take parameters which is especially useful for reducing repetition across your Jekyll site.
|
||||
|
||||
To use parameters you pass a list of key/values to the include:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% include note.html style="big" content="This is my sample note." %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The parameters are available in the include under the `include` variable:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
<div class="my-note {{ include.style }}">
|
||||
{{ include.content }}
|
||||
</div>
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
To safeguard situations where users don't supply a value for the parameter, you can use [Liquid's default filter](https://shopify.github.io/liquid/filters/default/).
|
||||
|
||||
If you need to modify a variable before sending it to the include, you can save it to an intermediate variable. For example this is one way to prepend a string to variable used in an include:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% capture download_note %}
|
||||
The latest version of {{ site.product_name }} is now available.
|
||||
{% endcapture %}
|
||||
{% include note.html style="big" content=download_note %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
|
||||
|
||||
## Including files relative to another file
|
||||
### Including files relative to another file
|
||||
|
||||
You can choose to include file fragments relative to the current file by using the `include_relative` tag:
|
||||
|
||||
@@ -70,7 +33,7 @@ Note that you cannot use the `../` syntax to specify an include location that re
|
||||
All the other capabilities of the `include` tag are available to the `include_relative` tag,
|
||||
such as variables.
|
||||
|
||||
## Include file by variable
|
||||
### Using variables names for the include file
|
||||
|
||||
The name of the file you want to embed can be specified as a variable instead of an actual file name. For example, suppose you defined a variable in your page's front matter like this:
|
||||
|
||||
@@ -85,8 +48,109 @@ You could then reference that variable in your include:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% include {{ page.my_variable }} %}
|
||||
{% if page.my_variable %}
|
||||
{% include {{ page.my_variable }} %}
|
||||
{% endif %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
In this example, the include would insert the file `footer_company_a.html` from the `_includes/footer_company_a.html` directory.
|
||||
|
||||
### Passing parameters to includes
|
||||
|
||||
You can also pass parameters to an include. For example, suppose you have a file called `note.html` in your `_includes` folder that contains this formatting:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
<div markdown="span" class="alert alert-info" role="alert">
|
||||
<i class="fa fa-info-circle"></i> <b>Note:</b>
|
||||
{{ include.content }}
|
||||
</div>
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The {% raw %}`{{ include.content }}`{% endraw %} is a parameter that gets populated when you call the include and specify a value for that parameter, like this:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% include note.html content="This is my sample note." %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The value of `content` (which is `This is my sample note`) will be inserted into the {% raw %}`{{ include.content }}`{% endraw %} parameter.
|
||||
|
||||
Passing parameters to includes is especially helpful when you want to hide away complex formatting from your Markdown content.
|
||||
|
||||
For example, suppose you have a special image syntax with complex formatting, and you don't want your authors to remember the complex formatting. As a result, you decide to simplify the formatting by using an include with parameters. Here's an example of the special image syntax you might want to populate with an include:
|
||||
|
||||
```html
|
||||
<figure>
|
||||
<a href="http://jekyllrb.com">
|
||||
<img src="logo.png" style="max-width: 200px;"
|
||||
alt="Jekyll logo" />
|
||||
</a>
|
||||
<figcaption>This is the Jekyll logo</figcaption>
|
||||
</figure>
|
||||
```
|
||||
|
||||
You could templatize this content in your include and make each value available as a parameter, like this:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
<figure>
|
||||
<a href="{{ include.url }}">
|
||||
<img src="{{ include.file }}" style="max-width: {{ include.max-width }};"
|
||||
alt="{{ include.alt }}"/>
|
||||
</a>
|
||||
<figcaption>{{ include.caption }}</figcaption>
|
||||
</figure>
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
This include contains 5 parameters:
|
||||
|
||||
* `url`
|
||||
* `max-width`
|
||||
* `file`
|
||||
* `alt`
|
||||
* `caption`
|
||||
|
||||
Here's an example that passes all the parameters to this include (the include file is named `image.html`):
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% include image.html url="http://jekyllrb.com"
|
||||
max-width="200px" file="logo.png" alt="Jekyll logo"
|
||||
caption="This is the Jekyll logo." %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The result is the original HTML code shown earlier.
|
||||
|
||||
To safeguard situations where users don't supply a value for the parameter, you can use [Liquid's default filter](https://shopify.github.io/liquid/filters/default/).
|
||||
|
||||
Overall, you can create includes that act as templates for a variety of uses — inserting audio or video clips, alerts, special formatting, and more. Note that you should avoid using too many includes, as this will slow down the build time of your site. For example, don't use includes every time you insert an image. (The above technique shows a use case for special images.)
|
||||
|
||||
### Passing parameter variables to includes
|
||||
|
||||
Suppose the parameter you want to pass to the include is a variable rather than a string. For example, you might be using {% raw %}`{{ site.product_name }}`{% endraw %} to refer to every instance of your product rather than the actual hard-coded name. (In this case, your `_config.yml` file would have a key called `product_name` with a value of your product's name.)
|
||||
|
||||
The string you pass to your include parameter can't contain curly braces. For example, you can't pass a parameter that contains this: {% raw %}`"The latest version of {{ site.product_name }} is now available."`{% endraw %}
|
||||
|
||||
If you want to include this variable in your parameter that you pass to an include, you need to store the entire parameter as a variable before passing it to the include. You can use `capture` tags to create the variable:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% capture download_note %}
|
||||
The latest version of {{ site.product_name }} is now available.
|
||||
{% endcapture %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Then pass this captured variable into the parameter for the include. Omit the quotation marks around the parameter content because it's no longer a string (it's a variable):
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% include note.html content=download_note %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
@@ -6,33 +6,39 @@ redirect_from:
|
||||
- /docs/quickstart/
|
||||
- /docs/extras/
|
||||
---
|
||||
Jekyll is a simple, extendable, static site generator. You give it text written
|
||||
in your favorite markup language and it churns through layouts to create a
|
||||
static website. Throughout that process you can tweak how you want the site URLs
|
||||
to look, what data gets displayed in the layout, and more.
|
||||
Jekyll is a static site generator. You give it text written in your
|
||||
favorite markup language and it uses layouts to create a static website. You can
|
||||
tweak how you want the site URLs to look, what data gets displayed on the
|
||||
site, and more.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
See [requirements]({{ '/docs/installation/#requirements' | relative_url }}).
|
||||
|
||||
## Instructions
|
||||
|
||||
1. Install a full [Ruby development environment](/docs/installation/)
|
||||
2. Install Jekyll and [bundler](/docs/ruby-101/#bundler) [gems](/docs/ruby-101/#gems)
|
||||
1. Install a full [Ruby development environment]({{ '/docs/installation/' | relative_url }}).
|
||||
2. Install Jekyll and [bundler]({{ '/docs/ruby-101/#bundler' | relative_url }}) [gems]({{ '/docs/ruby-101/#gems' | relative_url }}).
|
||||
```
|
||||
gem install jekyll bundler
|
||||
```
|
||||
3. Create a new Jekyll site at `./myblog`
|
||||
3. Create a new Jekyll site at `./myblog`.
|
||||
```
|
||||
jekyll new myblog
|
||||
```
|
||||
4. Change into your new directory
|
||||
4. Change into your new directory.
|
||||
```
|
||||
cd myblog
|
||||
```
|
||||
5. Build the site and make it available on a local server
|
||||
5. Build the site and make it available on a local server.
|
||||
```
|
||||
bundle exec jekyll serve
|
||||
```
|
||||
6. Now browse to [http://localhost:4000](http://localhost:4000){:target="_blank"}
|
||||
6. Browse to [http://localhost:4000](http://localhost:4000){:target="_blank"}
|
||||
|
||||
If you encounter any unexpected errors during the above, please refer to the
|
||||
[troubleshooting](/docs/troubleshooting/#configuration-problems) page or the
|
||||
already-mentioned [requirements](/docs/installation/#requirements) page, as
|
||||
you might be missing development headers or other prerequisites.
|
||||
If you encounter any errors during this process, see the
|
||||
[troubleshooting]({{ '/docs/troubleshooting/#configuration-problems' | relative_url }}) page. Also,
|
||||
make sure you've installed the development headers and other prerequisites as
|
||||
mentioned on the [requirements]({{ '/docs/installation/#requirements' | relative_url }}) page.
|
||||
|
||||
Note: Installation might be different depending on your operating system. See our [guides](https://jekyllrb.com/docs/installation/#guides) for OS specific instructions.
|
||||
@@ -8,7 +8,7 @@ Jekyll is a [Ruby Gem](/docs/ruby-101/#gems) that can be installed on most syste
|
||||
|
||||
## Requirements
|
||||
|
||||
* [Ruby](https://www.ruby-lang.org/en/downloads/) version 2.2.5 or above, including all development headers (ruby version can be checked by running `ruby -v`)
|
||||
* [Ruby](https://www.ruby-lang.org/en/downloads/) version **{{ site.data.ruby.min_version }}** or above, including all development headers (ruby version can be checked by running `ruby -v`)
|
||||
* [RubyGems](https://rubygems.org/pages/download) (which you can check by running `gem -v`)
|
||||
* [GCC](https://gcc.gnu.org/install/) and [Make](https://www.gnu.org/software/make/) (in case your system doesn't have them installed, which you can check by running `gcc -v`,`g++ -v` and `make -v` in your system's command line interface)
|
||||
|
||||
@@ -16,7 +16,7 @@ Jekyll is a [Ruby Gem](/docs/ruby-101/#gems) that can be installed on most syste
|
||||
|
||||
For detailed install instructions have a look at the guide for your operating system.
|
||||
|
||||
* [macOS](/docs/installation/macos/)
|
||||
* [Ubuntu Linux](/docs/installation/ubuntu/)
|
||||
* [Other Linux distros](/docs/installation/other-linux)
|
||||
* [Windows](/docs/installation/windows/)
|
||||
* [macOS]({{ '/docs/installation/macos/' | relative_url }})
|
||||
* [Ubuntu Linux]({{ '/docs/installation/ubuntu/' | relative_url }})
|
||||
* [Other Linux distros]({{ '/docs/installation/other-linux/' | relative_url }})
|
||||
* [Windows]({{ '/docs/installation/windows/' | relative_url }})
|
||||
@@ -3,67 +3,134 @@ title: Jekyll on macOS
|
||||
permalink: /docs/installation/macos/
|
||||
---
|
||||
|
||||
## Install Command Line Tools
|
||||
First, you need to install the command-line tools to be able to compile native extensions, open a terminal and run:
|
||||
|
||||
```sh
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
## Set up Ruby included with the OS
|
||||
## Install Ruby
|
||||
|
||||
Check your Ruby version meets our requirements. Jekyll requires Ruby 2.2.5 or above. If you're running an older version you'll need to [install a more recent Ruby version via Homebrew](#homebrew).
|
||||
|
||||
```sh
|
||||
ruby -v
|
||||
2.3.3
|
||||
```
|
||||
|
||||
Now install Jekyll and [Bundler](/docs/ruby-101/#bundler).
|
||||
|
||||
```sh
|
||||
gem install bundler jekyll
|
||||
```
|
||||
|
||||
### Install a newer Ruby version via Homebrew {#homebrew}
|
||||
|
||||
If you wish to install the latest version of Ruby and get faster builds, we recommend doing it via [Homebrew](https://brew.sh) a handy package manager for macOS.
|
||||
Jekyll requires **Ruby > {{ site.data.ruby.min_version }}**.
|
||||
macOS Catalina 10.15 comes with ruby 2.6.3, so you're fine.
|
||||
If you're running a previous macOS system, you'll have to install a newer version of Ruby.
|
||||
|
||||
### With Homebrew {#brew}
|
||||
To run the latest Ruby version you need to install it through [Homebrew](https://brew.sh).
|
||||
|
||||
```sh
|
||||
# Install Homebrew
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
|
||||
brew install ruby
|
||||
ruby -v
|
||||
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
|
||||
```
|
||||
|
||||
### Install multiple Ruby versions with rbenv {#rbenv}
|
||||
Add the brew ruby path to your shell config:
|
||||
|
||||
Developers often use [rbenv](https://github.com/rbenv/rbenv) to manage multiple
|
||||
Ruby versions. This can be useful if you want to run the same Ruby version used
|
||||
by your colleagues/collaborators.
|
||||
```bash
|
||||
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
|
||||
```
|
||||
|
||||
Then relaunch your terminal and check your updated Ruby setup:
|
||||
|
||||
```sh
|
||||
which ruby
|
||||
# /usr/local/opt/ruby/bin/ruby
|
||||
|
||||
ruby -v
|
||||
{{ site.data.ruby.current_version_output }}
|
||||
```
|
||||
|
||||
Yay, we are now running current stable Ruby!
|
||||
|
||||
### With rbenv {#rbenv}
|
||||
|
||||
People often use [rbenv](https://github.com/rbenv/rbenv) to manage multiple
|
||||
Ruby versions. This is very useful when you need to be able to run a given Ruby version on a project.
|
||||
|
||||
```sh
|
||||
# Install Homebrew
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
|
||||
# Install rbenv and ruby-build
|
||||
brew install rbenv
|
||||
|
||||
# Setup rbenv integration to your shell
|
||||
# Set up rbenv integration with your shell
|
||||
rbenv init
|
||||
|
||||
# Check your install
|
||||
# Check your installation
|
||||
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
|
||||
```
|
||||
|
||||
Restart your terminal for changes to take effect.
|
||||
Now we can install the Ruby version of our choice, let's go with Ruby 2.5.1 here:
|
||||
Now you can install the Ruby version of our choice, let's go with current latest stable Ruby:
|
||||
|
||||
```sh
|
||||
rbenv install 2.5.1
|
||||
rbenv global 2.5.1
|
||||
rbenv install {{ site.data.ruby.current_version }}
|
||||
rbenv global {{ site.data.ruby.current_version }}
|
||||
ruby -v
|
||||
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
|
||||
{{ site.data.ruby.current_version_output }}
|
||||
```
|
||||
|
||||
That's it! Head over [rbenv command references](https://github.com/rbenv/rbenv#command-reference) to learn how to use different versions of Ruby in your projects.
|
||||
|
||||
### Problems?
|
||||
## Install Jekyll
|
||||
|
||||
Check out the [troubleshooting](/docs/troubleshooting/) page or [ask for help on our forum](https://talk.jekyllrb.com).
|
||||
Now all that is left is installing [Bundler]({{ '/docs/ruby-101/#bundler' | relative_url }}) and Jekyll.
|
||||
|
||||
### Local Install
|
||||
|
||||
```sh
|
||||
gem install --user-install bundler jekyll
|
||||
```
|
||||
|
||||
and then get your Ruby version using
|
||||
|
||||
```sh
|
||||
ruby -v
|
||||
{{ site.data.ruby.current_version_output }}
|
||||
```
|
||||
|
||||
Then append your path file with the following, replacing the `X.X` with the first two digits of your Ruby version.
|
||||
|
||||
```bash
|
||||
echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.bash_profile
|
||||
```
|
||||
|
||||
To check that your gem paths point to your home directory run:
|
||||
|
||||
```sh
|
||||
gem env
|
||||
```
|
||||
|
||||
And check that `GEM PATHS:` points to a path in your home directory.
|
||||
|
||||
{: .note .info}
|
||||
Every time you update Ruby to a version with a different first two digits, you will need to update your path to match.
|
||||
|
||||
### Global Install
|
||||
|
||||
{: .note .warning}
|
||||
We strongly recommend against installing Ruby gems globally to avoid file permissions problems and using `sudo`.
|
||||
|
||||
#### On Mojave (10.14)
|
||||
|
||||
Because of SIP Protections in Mojave, you must run:
|
||||
|
||||
```sh
|
||||
sudo gem install bundler
|
||||
sudo gem install -n /usr/local/bin/ jekyll
|
||||
```
|
||||
|
||||
#### Before Mojave (<10.14)
|
||||
|
||||
You only have to run:
|
||||
|
||||
```sh
|
||||
sudo gem install bundler jekyll
|
||||
```
|
||||
|
||||
## Problems?
|
||||
|
||||
Check out the [troubleshooting]({{ '/docs/troubleshooting/' | relative_url }}) page or [ask for help on our forum](https://talk.jekyllrb.com).
|
||||
|
||||
@@ -6,7 +6,7 @@ Installation on other Linux distributions works similarly as on [Ubuntu](../ubun
|
||||
|
||||
On Fedora, the dependencies can be installed as follows:
|
||||
|
||||
```sh
|
||||
```sh
|
||||
sudo dnf install ruby ruby-devel @development-tools
|
||||
```
|
||||
|
||||
@@ -16,4 +16,34 @@ On Debian:
|
||||
sudo apt-get install ruby-full build-essential
|
||||
```
|
||||
|
||||
On Gentoo Linux:
|
||||
|
||||
```sh
|
||||
sudo emerge -av jekyll
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```sh
|
||||
sudo emerge --ask --verbose jekyll
|
||||
```
|
||||
|
||||
On ArchLinux:
|
||||
|
||||
```sh
|
||||
sudo pacman -S ruby base-devel
|
||||
```
|
||||
|
||||
On openSUSE:
|
||||
|
||||
```sh
|
||||
sudo zypper install -t pattern devel_ruby devel_C_C++
|
||||
```
|
||||
|
||||
On Clear Linux:
|
||||
|
||||
```sh
|
||||
sudo swupd bundle-add ruby-basic
|
||||
```
|
||||
|
||||
The rest works the same as on [Ubuntu](../ubuntu/).
|
||||
|
||||
@@ -6,7 +6,7 @@ Before we install Jekyll, we need to make sure we have all the required
|
||||
dependencies.
|
||||
|
||||
```sh
|
||||
sudo apt-get install ruby ruby-dev build-essential
|
||||
sudo apt-get install ruby-full build-essential zlib1g-dev
|
||||
```
|
||||
|
||||
It is best to avoid installing Ruby Gems as the root user. Therefore, we need to
|
||||
@@ -16,8 +16,8 @@ the gem installation path. Run them now:
|
||||
|
||||
```sh
|
||||
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
|
||||
echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc
|
||||
echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc
|
||||
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
|
||||
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
|
||||
@@ -5,80 +5,53 @@ redirect_from:
|
||||
- /docs/windows/
|
||||
---
|
||||
|
||||
While Windows is not an officially-supported platform, it can be used to run Jekyll with the proper tweaks. This page aims to collect some of the general knowledge and lessons that have been unearthed by Windows users.
|
||||
|
||||
While Windows is not an officially-supported platform, it can be used to run Jekyll with the proper tweaks. This page aims to
|
||||
collect some of the general knowledge and lessons that have been unearthed by Windows users.
|
||||
|
||||
## Installing Jekyll
|
||||
The easiest way to run Jekyll is by using the [RubyInstaller](https://rubyinstaller.org/) for Windows.
|
||||
|
||||
### Installation via RubyInstaller
|
||||
|
||||
[RubyInstaller](https://rubyinstaller.org/) is a self-contained Windows-based installer that includes the Ruby language, an execution environment, important documentation, and more.
|
||||
We only cover RubyInstaller-2.4 and newer here, older versions need to [install the Devkit](https://github.com/oneclick/rubyinstaller/wiki/Development-Kit) manually.
|
||||
The easiest way to run Jekyll is by using the [RubyInstaller](https://rubyinstaller.org/) for Windows.
|
||||
|
||||
RubyInstaller is a self-contained Windows-based installer that includes the Ruby language, an execution environment,
|
||||
important documentation, and more.
|
||||
We only cover RubyInstaller-2.4 and newer here, older versions need to
|
||||
[install the Devkit](https://github.com/oneclick/rubyinstaller/wiki/Development-Kit) manually.
|
||||
|
||||
1. Download and Install a **Ruby+Devkit** version from [RubyInstaller Downloads](https://rubyinstaller.org/downloads/).
|
||||
Use default options for installation.
|
||||
2. Open a new command prompt window from the start menu, so that changes to the `PATH` environment variable becomes effective.
|
||||
2. Run the `ridk install` step on the last stage of the installation wizard. This is needed for installing gems with native
|
||||
extensions. You can find additional information regarding this in the
|
||||
[RubyInstaller Documentation](https://github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system)
|
||||
3. Open a new command prompt window from the start menu, so that changes to the `PATH` environment variable becomes effective.
|
||||
Install Jekyll and Bundler via: `gem install jekyll bundler`
|
||||
3. Check if Jekyll installed properly: `jekyll -v`
|
||||
4. Check if Jekyll installed properly: `jekyll -v`
|
||||
|
||||
That's it, you're ready to use Jekyll!
|
||||
|
||||
### Encoding
|
||||
### Installation via Bash on Windows 10
|
||||
|
||||
If you use UTF-8 encoding, make sure that no `BOM` header characters exist in your files or very, very bad things will happen to
|
||||
Jekyll. This is especially relevant when you're running Jekyll on Windows.
|
||||
If you are using Windows 10 version 1607 or later, another option to run Jekyll is by
|
||||
[installing](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide) the Windows Subsystem for Linux.
|
||||
|
||||
Additionally, you might need to change the code page of the console window to UTF-8 in case you get a "Liquid Exception: Incompatible character encoding" error during the site generation process. It can be done with the following command:
|
||||
|
||||
```sh
|
||||
chcp 65001
|
||||
```
|
||||
|
||||
### Time-Zone Management
|
||||
|
||||
Since Windows doesn't have a native source of zoneinfo data, the Ruby Interpreter would not understand IANA Timezones and hence using them had the `TZ` environment variable default to UTC/GMT 00:00.
|
||||
Though Windows users could alternatively define their blog's timezone by setting the key to use POSIX format of defining timezones, it wasn't as user-friendly when it came to having the clock altered to changing DST-rules.
|
||||
|
||||
Jekyll now uses a rubygem to internally configure Timezone based on established [IANA Timezone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
While 'new' blogs created with Jekyll v3.4 and greater, will have the following added to their `Gemfile` by default, existing sites *will* have to update their `Gemfile` (and installed) to enable development on Windows:
|
||||
|
||||
```ruby
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
||||
```
|
||||
|
||||
### Auto Regeneration
|
||||
|
||||
Jekyll uses the `listen` gem to watch for changes when the `--watch` switch is specified during a build or serve. While `listen` has built-in support for UNIX systems, it may require an extra gem for compatibility with Windows.
|
||||
|
||||
Add the following to the `Gemfile` for your site if you have issues with auto-regeneration on Windows alone:
|
||||
|
||||
```ruby
|
||||
gem 'wdm', '~> 0.1.1' if Gem.win_platform?
|
||||
```
|
||||
|
||||
You have to use a [Ruby+Devkit](https://rubyinstaller.org/downloads/) version of the RubyInstaller.
|
||||
|
||||
|
||||
## Installation via Bash on Windows 10
|
||||
|
||||
If you are using Windows 10 version 1607 or later, another option to run Jekyll is by [installing](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide) the Windows Subsystem for Linux.
|
||||
|
||||
|
||||
*Note:* You must have [Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/about) enabled.
|
||||
{: .note .info}
|
||||
You must have [Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/about) enabled.
|
||||
|
||||
First let's make sure all our packages / repositories are up to date. Open a new Command Prompt instance, and type the following:
|
||||
|
||||
```sh
|
||||
bash
|
||||
```
|
||||
|
||||
Your Command Prompt instance should now be a Bash instance. Now we must update our repo lists and packages.
|
||||
|
||||
```sh
|
||||
sudo apt-get update -y && sudo apt-get upgrade -y
|
||||
```
|
||||
Now we can install Ruby. To do this we will use a repository from [BrightBox](https://www.brightbox.com/docs/ruby/ubuntu/), which hosts optimized versions of Ruby for Ubuntu.
|
||||
|
||||
Now we can install Ruby. To do this we will use a repository from [BrightBox](https://www.brightbox.com/docs/ruby/ubuntu/),
|
||||
which hosts optimized versions of Ruby for Ubuntu.
|
||||
|
||||
```sh
|
||||
sudo apt-add-repository ppa:brightbox/ruby-ng
|
||||
@@ -89,34 +62,91 @@ sudo apt-get install ruby2.5 ruby2.5-dev build-essential dh-autoreconf
|
||||
Next let's update our Ruby gems:
|
||||
|
||||
```sh
|
||||
sudo gem update
|
||||
gem update
|
||||
```
|
||||
|
||||
Now all that is left to do is install Jekyll.
|
||||
|
||||
```sh
|
||||
sudo gem install jekyll bundler
|
||||
gem install jekyll bundler
|
||||
```
|
||||
|
||||
(*Note: no `sudo` here.*)
|
||||
|
||||
Check if Jekyll installed properly by running:
|
||||
|
||||
```sh
|
||||
jekyll -v
|
||||
```
|
||||
|
||||
Configure the bundler/gem path so bundle doesn't prompt for sudo
|
||||
|
||||
```sh
|
||||
bundle config path vendor/bundle
|
||||
```
|
||||
|
||||
**And that's it!**
|
||||
|
||||
You can make sure time management is working properly by inspecting your `_posts` folder. You should see a markdown file with the current date in the filename.
|
||||
You can make sure time management is working properly by inspecting your `_posts` folder. You should see a markdown file
|
||||
with the current date in the filename.
|
||||
|
||||
<div class="note info">
|
||||
<h5>Non-superuser account issues</h5>
|
||||
<p>If the `jekyll new` command prints the error "Your user account isn't allowed to install to the system RubyGems", see the "Running Jekyll as Non-Superuser" instructions in <a href="/docs/troubleshooting/#no-sudo">Troubleshooting</a>.</p>
|
||||
<p>If the `jekyll new` command prints the error "Your user account isn't allowed to install to the system RubyGems", see
|
||||
the "Running Jekyll as Non-Superuser" instructions in
|
||||
<a href="{{ '/docs/troubleshooting/#no-sudo' | relative_url }}">Troubleshooting</a>.</p>
|
||||
</div>
|
||||
|
||||
**Note:** Bash on Ubuntu on Windows is still under development, so you may run into issues.
|
||||
{: .note .info}
|
||||
Bash on Ubuntu on Windows is still under development, so you may run into issues.
|
||||
|
||||
## Encoding
|
||||
|
||||
If you use UTF-8 encoding, make sure that no `BOM` header characters exist in your files or very, very bad things will happen to
|
||||
Jekyll. This is especially relevant when you're running Jekyll on Windows.
|
||||
|
||||
Additionally, you might need to change the code page of the console window to UTF-8 in case you get a
|
||||
`Liquid Exception: Incompatible character encoding` error during the site generation process. It can be done with the following
|
||||
command:
|
||||
|
||||
```sh
|
||||
chcp 65001
|
||||
```
|
||||
|
||||
## Time-Zone Management
|
||||
|
||||
Since Windows doesn't have a native source of zoneinfo data, the Ruby Interpreter would not understand IANA Timezones and hence
|
||||
using them had the `TZ` environment variable default to UTC/GMT 00:00.
|
||||
|
||||
Though Windows users could alternatively define their blog's timezone by setting the key to use POSIX format of defining
|
||||
timezones, it wasn't as user-friendly when it came to having the clock altered to changing DST-rules.
|
||||
|
||||
Jekyll now uses a rubygem to internally configure Timezone based on established
|
||||
[IANA Timezone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
While 'new' blogs created with Jekyll v3.4 and greater, will have the following added to their `Gemfile` by default, existing
|
||||
sites *will* have to update their `Gemfile` (and installed) to enable development on Windows:
|
||||
|
||||
```ruby
|
||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
||||
```
|
||||
|
||||
<div class="note warning">
|
||||
<h5>TZInfo 2.0 incompatibility</h5>
|
||||
<p>
|
||||
Version 2.0 of the TZInfo library has introduced a change in how timezone offsets are calculated.
|
||||
This will result in incorrect date and time for your posts when the site is built with Jekyll 3.x on Windows.
|
||||
</p>
|
||||
<p>
|
||||
We therefore recommend that you lock the Timezone library to version 1.2 and above by listing
|
||||
<code>gem 'tzinfo', '~> 1.2'</code> in your <code>Gemfile</code>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Auto Regeneration
|
||||
|
||||
Jekyll uses the `listen` gem to watch for changes when the `--watch` switch is specified during a build or serve.
|
||||
While `listen` has built-in support for UNIX systems, it may require an extra gem for compatibility with Windows.
|
||||
|
||||
Add the following to the `Gemfile` for your site if you have issues with auto-regeneration on Windows alone:
|
||||
|
||||
```ruby
|
||||
gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform?
|
||||
```
|
||||
|
||||
You have to use a [Ruby+Devkit](https://rubyinstaller.org/downloads/) version of the RubyInstaller and install
|
||||
the MSYS2 build tools to successfully install the `wdm` gem.
|
||||
|
||||
@@ -11,16 +11,27 @@ Layouts live in the `_layouts` directory. The convention is to have a base
|
||||
template called `default.html` and have other layouts [inherit](#inheritance)
|
||||
from this as needed.
|
||||
|
||||
<div class="note">
|
||||
<h5>Layouts Directory</h5>
|
||||
<p>
|
||||
Jekyll looks for the <code>_layouts</code> directory either at the root of
|
||||
your site's <code>source</code> or at the root of your theme.
|
||||
</p>
|
||||
<p>
|
||||
While you can configure the directory name in which your layouts can reside by
|
||||
setting the <code>layouts_dir</code> key in your config file, the directory
|
||||
itself should be located at the root of your site's <code>source</code> directory.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Usage
|
||||
|
||||
The first step is to put the template source code in `default.html`. `content`
|
||||
is a special variable, the value is the rendered content of the post or page
|
||||
being wrapped.
|
||||
|
||||
|
||||
|
||||
{% raw %}
|
||||
```
|
||||
```liquid
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@ -53,7 +64,7 @@ You can also use
|
||||
[front matter defaults](/docs/configuration/front-matter-defaults/) to save you
|
||||
from having to set this on every page.
|
||||
|
||||
```
|
||||
```markdown
|
||||
---
|
||||
title: My First Page
|
||||
layout: default
|
||||
@@ -64,7 +75,7 @@ This is the content of my page
|
||||
|
||||
The rendered output of this page is:
|
||||
|
||||
```
|
||||
```html
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
@@ -88,7 +99,6 @@ The rendered output of this page is:
|
||||
</html>
|
||||
```
|
||||
|
||||
|
||||
## Inheritance
|
||||
|
||||
Layout inheritance is useful when you want to add something to an existing
|
||||
@@ -101,7 +111,7 @@ layout in front matter. For example this layout will live at
|
||||
`_layouts/post.html`:
|
||||
|
||||
{% raw %}
|
||||
```
|
||||
```liquid
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
@@ -120,7 +130,7 @@ using in Liquid, you need to use the `layout` variable instead of `page`. For
|
||||
example:
|
||||
|
||||
{% raw %}
|
||||
```
|
||||
```liquid
|
||||
---
|
||||
city: San Francisco
|
||||
---
|
||||
|
||||
@@ -5,7 +5,7 @@ redirect_from: "/docs/templates/"
|
||||
---
|
||||
|
||||
Jekyll uses the [Liquid](https://shopify.github.io/liquid/) templating language
|
||||
to process templates.
|
||||
to process templates.
|
||||
|
||||
Generally in Liquid you output content using two curly braces e.g.
|
||||
{% raw %}`{{ variable }}`{% endraw %} and perform logic statements by
|
||||
@@ -15,5 +15,5 @@ out the [official Liquid Documentation](https://shopify.github.io/liquid/).
|
||||
|
||||
Jekyll provides a number of useful Liquid additions to help you build your site:
|
||||
|
||||
* [Filters](/docs/liquid/filters/)
|
||||
* [Tags](/docs/liquid/tags/)
|
||||
* [Filters]({{ '/docs/liquid/filters/' | relative_url }})
|
||||
* [Tags]({{ '/docs/liquid/tags/' | relative_url }})
|
||||
|
||||
@@ -104,6 +104,47 @@ The default is `default`. They are as follows (with what they filter):
|
||||
- `ascii`: spaces, non-alphanumeric, and non-ASCII characters
|
||||
- `latin`: like `default`, except Latin characters are first transliterated (e.g. `àèïòü` to `aeiou`) {%- include docs_version_badge.html version="3.7.0" -%}.
|
||||
|
||||
### Detecting `nil` values with `where` filter {%- include docs_version_badge.html version="4.0" -%}
|
||||
|
||||
You can use the `where` filter to detect documents and pages with properties that are `nil` or `""`. For example,
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
// Using `nil` to select posts that either do not have `my_prop`
|
||||
// defined or `my_prop` has been set to `nil` explicitly.
|
||||
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
// Using Liquid's special literal `empty` or `blank` to select
|
||||
// posts that have `my_prop` set to an empty value.
|
||||
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Binary operators in `where_exp` filter {%- include docs_version_badge.html version="4.0" -%}
|
||||
|
||||
You can use Liquid binary operators `or` and `and` in the expression passed to the `where_exp` filter to employ multiple
|
||||
conditionals in the operation.
|
||||
|
||||
For example, to get a list of documents on English horror flicks, one could use the following snippet:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ site.movies | where_exp: "item", "item.genre == 'horror' and item.language == 'English'" }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Or to get a list of comic-book based movies, one may use the following:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ site.movies | where_exp: "item", "item.sub_genre == 'MCU' or item.sub_genre == 'DCEU'" }}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
### Standard Liquid Filters
|
||||
|
||||
For your convenience, here is the list of all [Liquid filters]({{ page.shopify_filter_url }}) with links to examples in the official Liquid documentation.
|
||||
|
||||
@@ -5,32 +5,24 @@ permalink: "/docs/liquid/tags/"
|
||||
All of the standard Liquid
|
||||
[tags](https://shopify.github.io/liquid/tags/control-flow/) are supported.
|
||||
Jekyll has a few built in tags to help you build your site. You can also create
|
||||
your own tags using [plugins](/docs/plugins/).
|
||||
your own tags using [plugins]({{ '/docs/plugins/' | relative_url }}).
|
||||
|
||||
## Includes
|
||||
|
||||
If you have page snippets that you use repeatedly across your site, an
|
||||
[include](/docs/includes/) is the perfect way to make this more maintainable.
|
||||
[include]({{ '/docs/includes/' | relative_url }}) is the perfect way to make this more maintainable.
|
||||
|
||||
## Code snippet highlighting
|
||||
|
||||
Jekyll has built in support for syntax highlighting of over 100 languages
|
||||
thanks to [Rouge](http://rouge.jneen.net). Rouge is the default highlighter
|
||||
in Jekyll 3 and above. To use it in Jekyll 2, set `highlighter` to `rouge`
|
||||
and ensure the `rouge` gem is installed properly.
|
||||
in Jekyll 3 and above.
|
||||
|
||||
Alternatively, you can use [Pygments](http://pygments.org) to highlight your
|
||||
code snippets in Jekyll 3.x and below. To use Pygments, you must have Python
|
||||
installed on your system, have the `pygments.rb` gem installed and set
|
||||
`highlighter` to `pygments` in your site's configuration file. Pygments
|
||||
supports [over 100 languages](http://pygments.org/languages/)
|
||||
|
||||
<div class="note info">
|
||||
<p>Using Pygments has been deprecated and will not be officially supported in
|
||||
Jekyll 4, meaning that the configuration setting <code>highlighter: pygments</code>
|
||||
will automatically fall back to using <em>Rouge</em> which is written in Ruby
|
||||
and 100% compatible with stylesheets for Pygments.</p>
|
||||
</div>
|
||||
{: .note .warning}
|
||||
Using Pygments has been deprecated and is not supported in
|
||||
Jekyll 4; the configuration setting <code>highlighter: pygments</code>
|
||||
now automatically falls back to using <em>Rouge</em> which is written in Ruby
|
||||
and 100% compatible with stylesheets for Pygments.
|
||||
|
||||
To render a code block with syntax highlighting, surround your code as follows:
|
||||
|
||||
@@ -47,13 +39,15 @@ end
|
||||
The argument to the `highlight` tag (`ruby` in the example above) is the
|
||||
language identifier. To find the appropriate identifier to use for the language
|
||||
you want to highlight, look for the “short name” on the [Rouge
|
||||
wiki](https://github.com/jayferd/rouge/wiki/List-of-supported-languages-and-lexers)
|
||||
or the [Pygments' Lexers page](http://pygments.org/docs/lexers/).
|
||||
wiki](https://github.com/jayferd/rouge/wiki/List-of-supported-languages-and-lexers).
|
||||
|
||||
### Raw
|
||||
Surround a block of code in <code>{% raw %}</code> will ignore Liquid until
|
||||
<code>{% endraw %}</code>. This is useful if you're using a language that
|
||||
contains curly braces or you're documenting Liquid.
|
||||
<div class="note">
|
||||
<h5>Jekyll processes all Liquid filters in code blocks</h5>
|
||||
<p>If you are using a language that contains curly braces, you
|
||||
will likely need to place <code>{% raw %}</code> and
|
||||
<code>{% endraw %}</code> tags around your code.
|
||||
Since Jekyll {% include docs_version_badge.html version="4.0" %}, you can add <code>render_with_liquid: false</code> in your front matter to disable Liquid entirely for a particular document.</p>
|
||||
</div>
|
||||
|
||||
### Line numbers
|
||||
|
||||
@@ -76,10 +70,22 @@ end
|
||||
|
||||
In order for the highlighting to show up, you’ll need to include a highlighting
|
||||
stylesheet. For Pygments or Rouge you can use a stylesheet for Pygments, you
|
||||
can find an example gallery [here](http://help.farbox.com/pygments.html).
|
||||
can find an example gallery
|
||||
[here](https://jwarby.github.io/jekyll-pygments-themes/languages/ruby.html)
|
||||
or from [its repository](https://github.com/jwarby/jekyll-pygments-themes).
|
||||
|
||||
Copy the CSS file (`native.css` for example) into your css directory and import
|
||||
the syntax highlighter styles into your `main.css`:
|
||||
|
||||
```css
|
||||
@import "native.css";
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
{: .note}
|
||||
Since Jekyll {% include docs_version_badge.html version="4.0"%}, you don't need to prepend `link` and `post_url` tags with `site.baseurl`.
|
||||
|
||||
### Linking to pages {#link}
|
||||
|
||||
To link to a post, a page, collection item, or file, the `link` tag will generate the correct permalink URL for the path you specify. For example, if you use the `link` tag to link to `mypage.html`, even if you change your permalink style to include the file extension or omit it, the URL formed by the `link` tag will always be valid.
|
||||
@@ -88,10 +94,10 @@ You must include the file's original extension when using the `link` tag. Here a
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ site.baseurl }}{% link _collection/name-of-document.md %}
|
||||
{{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %}
|
||||
{{ site.baseurl }}{% link news/index.html %}
|
||||
{{ site.baseurl }}{% link /assets/files/doc.pdf %}
|
||||
{% link _collection/name-of-document.md %}
|
||||
{% link _posts/2016-07-26-name-of-post.md %}
|
||||
{% link news/index.html %}
|
||||
{% link /assets/files/doc.pdf %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
@@ -99,24 +105,22 @@ You can also use the `link` tag to create a link in Markdown as follows:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
[Link to a document]({{ site.baseurl }}{% link _collection/name-of-document.md %})
|
||||
[Link to a post]({{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %})
|
||||
[Link to a page]({{ site.baseurl }}{% link news/index.html %})
|
||||
[Link to a file]({{ site.baseurl }}{% link /assets/files/doc.pdf %})
|
||||
[Link to a document]({% link _collection/name-of-document.md %})
|
||||
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
|
||||
[Link to a page]({% link news/index.html %})
|
||||
[Link to a file]({% link /assets/files/doc.pdf %})
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
(Including `{% raw %}{{ site.baseurl }}{% endraw %}` is optional — it depends on whether you want to preface the page URL with the `baseurl` value.)
|
||||
|
||||
The path to the post, page, or collection is defined as the path relative to the root directory (where your config file is) to the file, not the path from your existing page to the other page.
|
||||
|
||||
For example, suppose you're creating a link in `page_a.md` (stored in `pages/folder1/folder2`) to `page_b.md` (stored in `pages/folder1`). Your path in the link would not be `../page_b.html`. Instead, it would be `/pages/folder1/page_b.md`.
|
||||
|
||||
If you're unsure of the path, add `{% raw %}{{ page.path }}{% endraw %}` to the page and it will display the path.
|
||||
If you're unsure of the path, add {% raw %}`{{ page.path }}`{% endraw %} to the page and it will display the path.
|
||||
|
||||
One major benefit of using the `link` or `post_url` tag is link validation. If the link doesn't exist, Jekyll won't build your site. This is a good thing, as it will alert you to a broken link so you can fix it (rather than allowing you to build and deploy a site with broken links).
|
||||
|
||||
Note you cannot add filters to `link` tags. For example, you cannot append a string using Liquid filters, such as `{% raw %}{% link mypage.html | append: "#section1" %}{% endraw %}`. To link to sections on a page, you will need to use regular HTML or Markdown linking techniques.
|
||||
Note you cannot add filters to `link` tags. For example, you cannot append a string using Liquid filters, such as {% raw %}`{% link mypage.html | append: "#section1" %}`{% endraw %}. To link to sections on a page, you will need to use regular HTML or Markdown linking techniques.
|
||||
|
||||
### Linking to posts
|
||||
|
||||
@@ -124,7 +128,7 @@ If you want to include a link to a post on your site, the `post_url` tag will ge
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ site.baseurl }}{% post_url 2010-07-21-name-of-post %}
|
||||
{% post_url 2010-07-21-name-of-post %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
@@ -132,7 +136,7 @@ If you organize your posts in subdirectories, you need to include subdirectory p
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ site.baseurl }}{% post_url /subdir/2010-07-21-name-of-post %}
|
||||
{% post_url /subdir/2010-07-21-name-of-post %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
@@ -142,6 +146,6 @@ You can also use this tag to create a link to a post in Markdown as follows:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
[Name of Link]({{ site.baseurl }}{% post_url 2010-07-21-name-of-post %})
|
||||
[Name of Link]({% post_url 2010-07-21-name-of-post %})
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Affinity Team Captains
|
||||
---
|
||||
|
||||
**This guide is for affinity team captains.** These special people are **team maintainers** of one of our [affinity teams][] and help triage and evaluate the issues and contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
## Affinity teams & their captains
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@ title: "Avoiding Burnout"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
## 1. Use Jekyll
|
||||
# 1. Use Jekyll
|
||||
|
||||
Maintainers of Jekyll should be using it regularly. This is partly because you won't be a good maintainer unless you can put yourself in the shoes of our users, but also because you may at some point decide to stop using Jekyll, and at that point you should also decide to stop being a maintainer and find other things to work on.
|
||||
|
||||
## 2. No Guilt About Leaving
|
||||
# 2. No Guilt About Leaving
|
||||
|
||||
All maintainers can stop working on Jekyll at any time without any guilt or explanation (like at a job). We may still ask for your help with questions after you leave but you are under no obligation to answer them. If you create a big mess and then leave you still have no obligations but we may think less of you (or, realistically, probably just revert the problematic work). Also, you should probably take a break from Jekyll at least a few times a year.
|
||||
|
||||
This also means contributors should be consumers. If a maintainer finds they are not using a project in the real-world, they should reconsider their involvement with the project.
|
||||
|
||||
## 3. Prioritise Maintainers Over Users
|
||||
# 3. Prioritise Maintainers Over Users
|
||||
|
||||
It's important to be user-focused but ultimately, as long as you follow #1 above, Jekyll's minimum number of users will be the number of maintainers. However, if Jekyll has no maintainers it will quickly become useless to all users and the project will die. As a result, no user complaint, behaviour or need takes priority over the burnout of maintainers. If users do not like the direction of the project, the easiest way to influence it is to make significant, high-quality code contributions and become a maintainer.
|
||||
|
||||
## 4. Learn To Say No
|
||||
# 4. Learn To Say No
|
||||
|
||||
Jekyll gets a lot of feature requests, non-reproducible bug reports, usage questions and PRs we won't accept. These should be closed out as soon as we realise that they aren't going to be resolved or merged. This is kinder than deciding this after a long period of review. Our issue tracker should reflect work to be done.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Becoming a Maintainer"
|
||||
---
|
||||
|
||||
**This guide is for contributors.** These special people have contributed to one or more of Jekyll's repositories, but do not yet have write access to any. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
So you want to become a maintainer of a Jekyll project? We'd love to have you! Here are some things we like to see from community members before we promote them to maintainers.
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ permalink: /docs/maintaining/
|
||||
---
|
||||
|
||||
**This guide is for Jekyll contributors and maintainers.** These special people contribute to one or more of Jekyll's repositories or help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
Hello! This is where we document various processes for maintaining Jekyll. Being a maintainer for any Jekyll project is a big responsibility, so we put together some helpful documentation for various tasks you might do as a maintainer.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Merging a Pull Request"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
## Code Review
|
||||
|
||||
@@ -20,7 +20,7 @@ We have [a helpful little bot](https://github.com/jekyllbot) which we use to mer
|
||||
|
||||
To merge a pull request, leave a comment thanking the contributor, then add the special merge request:
|
||||
|
||||
```text
|
||||
```
|
||||
Thank you very much for your contribution. Folks like you make this project and community strong. :heart:
|
||||
|
||||
@jekyllbot: merge +dev
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Releasing a new version"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
The most important thing to understand before making a release is that there's no need to feel nervous. Most things are revertable, and even if you do publish an incomplete gem version, we can always skip that one. Don't hestitate to contact the other maintainers if you feel unsure or don't know what to do next.
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Reviewing a Pull Request"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
## Respond Kindly
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Special Labels"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
We use a series of "special labels" on GitHub.com to automate handling of some parts of the pull request and issue process. @jekyllbot may automatically apply or remove certain labels based on actions taken by users or maintainers. Below are the labels and how they work:
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ title: "Triaging an Issue"
|
||||
---
|
||||
|
||||
**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone.
|
||||
{: .note .info }
|
||||
{: .note .info}
|
||||
|
||||
Before evaluating an issue, it is important to identify if it is a feature
|
||||
request or a bug. For the Jekyll project the following definitions are used
|
||||
|
||||
@@ -13,15 +13,59 @@ a `.md` extension which converts to HTML on build. For a site with
|
||||
a homepage, an about page, and a contact page, here’s what the root directory
|
||||
and associated URLs might look like:
|
||||
|
||||
```sh
|
||||
```
|
||||
.
|
||||
|-- about.md # => http://example.com/about.html
|
||||
|-- index.html # => http://example.com/
|
||||
├── about.md # => http://example.com/about.html
|
||||
├── index.html # => http://example.com/
|
||||
└── contact.html # => http://example.com/contact.html
|
||||
```
|
||||
|
||||
If you have a lot of pages, you can organize them into subfolders. The same subfolders that are used to group your pages in our project's source will exist in the `_site` folder when your site builds.
|
||||
If you have a lot of pages, you can organize them into subfolders. The same subfolders that are used to group your pages in your project's source will then exist in the `_site` folder when your site builds. However, when a page has a *different* permalink set in the front matter, the subfolder at `_site` changes accordingly.
|
||||
|
||||
```
|
||||
.
|
||||
├── about.md # => http://example.com/about.html
|
||||
├── documentation # folder containing pages
|
||||
│ └── doc1.md # => http://example.com/documentation/doc1.html
|
||||
├── design # folder containing pages
|
||||
│ └── draft.md # => http://example.com/design/draft.html
|
||||
```
|
||||
|
||||
## Changing the output URL
|
||||
|
||||
You might want to have a particular folder structure for your source files that changes for the built site. With [permalinks](/docs/permalinks) you have full control of the output URL.
|
||||
|
||||
## Liquid Representation
|
||||
|
||||
From Jekyll 4.1 onwards, there is a minor change in how instances of `Jekyll::Page` are exposed to layouts and other Liquid
|
||||
templates. `Jekyll::Page` instances now use a `Liquid::Drop` instead of a `Hash`. This change results in greater performance
|
||||
for a site with numerous *standlone pages not within a collection*.
|
||||
|
||||
### For plugin developers
|
||||
|
||||
While end-users do not need to take any extra action due to this change, plugin authors depending on the existing behavior *may*
|
||||
need to make minor changes to their plugins.
|
||||
|
||||
If a `Jekyll::Page` subclass' `to_liquid` method calls `super`, it will have to be slightly modified.
|
||||
```ruby
|
||||
class Foo::BarPage < Jekyll::Page
|
||||
def to_liquid(*)
|
||||
payload = super # This needs to be changed to `super.to_h`
|
||||
# to obtain a Hash as in v4.0.0.
|
||||
|
||||
do_something(payload) # Logic specific to `Foo::BarPage` objects
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
`Jekyll::Page` subclasses won't inherit the optimization automatically until the next major version. However, plugin authors
|
||||
can opt-in to the optimization in their subclasses by wrapping the temporary `liquid_drop` method if the subclass doesn't
|
||||
override the superclass method:
|
||||
```ruby
|
||||
class Foo::BarPage < Jekyll::Page
|
||||
def to_liquid(*)
|
||||
liquid_drop # Returns an instance of `Jekyll::Drops::PageDrop`.
|
||||
# Will be removed in Jekyll 5.0.
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
@@ -11,12 +11,16 @@ generate the appropriate files and folders you need for paginated listings.
|
||||
For Jekyll 3, include the `jekyll-paginate` plugin in your Gemfile and in
|
||||
your `_config.yml` under `plugins`. For Jekyll 2, this is standard.
|
||||
|
||||
Pagination does not work from within Markdown files from
|
||||
your Jekyll site. Pagination works when called from within the HTML
|
||||
file, named `index.html`, which optionally may reside in and
|
||||
produce pagination from within a subdirectory, via the
|
||||
`paginate_path` configuration value.
|
||||
{: .warning }
|
||||
<div class="note info">
|
||||
<h5>Pagination only works within HTML files</h5>
|
||||
<p>
|
||||
Pagination does not work from within Markdown files from
|
||||
your Jekyll site. Pagination works when called from within the HTML
|
||||
file, named <code>index.html</code>, which optionally may reside in and
|
||||
produce pagination from within a subdirectory, via the
|
||||
<code>paginate_path</code> configuration value.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Enable pagination
|
||||
|
||||
@@ -43,8 +47,24 @@ If a site has 12 posts and specifies `paginate: 5`, Jekyll will write `blog/inde
|
||||
with the first 5 posts, `blog/page2/index.html` with the next 5 posts and
|
||||
`blog/page3/index.html` with the last 2 posts into the destination directory.
|
||||
|
||||
Setting a permalink in the front matter of your blog page will cause pagination to break. Just omit the permalink.
|
||||
{: .warning }
|
||||
<div class="note warning">
|
||||
<h5>Don't set a permalink</h5>
|
||||
<p>
|
||||
Setting a permalink in the front matter of your blog page will cause
|
||||
pagination to break. Just omit the permalink.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="note info">
|
||||
<h5>Pagination for categories, tags and collections</h5>
|
||||
<p>
|
||||
The more recent <a href="https://github.com/sverrirs/jekyll-paginate-v2">
|
||||
jekyll-paginate-v2</a> plugin supports more features. See the
|
||||
<a href="https://github.com/sverrirs/jekyll-paginate-v2/tree/master/examples">
|
||||
pagination examples</a> in the repository. <strong>This plugin is not
|
||||
supported by GitHub Pages</strong>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
## Liquid Attributes Available
|
||||
|
||||
@@ -53,22 +73,20 @@ attributes:
|
||||
|
||||
{% include docs_variables_table.html scope=site.data.jekyll_variables.paginator %}
|
||||
|
||||
## Tags and Categories
|
||||
|
||||
Pagination pages through every post in the `posts`
|
||||
variable unless a post has `hidden: true` in its front matter.
|
||||
It does not currently allow paging over groups of posts linked
|
||||
by a common tag or category. It cannot include any collection of documents because it is restricted to posts.
|
||||
|
||||
[jekyll-paginate-v2](https://github.com/sverrirs/jekyll-paginate-v2) is an unofficial successor of jekyll-paginate which supports more features.
|
||||
<div class="note info">
|
||||
<h5>Pagination does not support tags or categories</h5>
|
||||
<p>Pagination pages through every post in the <code>posts</code>
|
||||
variable unless a post has <code>hidden: true</code> in its front matter.
|
||||
It does not currently allow paging over groups of posts linked
|
||||
by a common tag or category. It cannot include any collection of
|
||||
documents because it is restricted to posts.</p>
|
||||
</div>
|
||||
|
||||
## Render the paginated Posts
|
||||
|
||||
The next thing you need to do is to actually display your posts in a list using
|
||||
the `paginator` variable that will now be available to you. You’ll probably
|
||||
want to do this in one of the main pages of your site.
|
||||
|
||||
Here’s one example of a
|
||||
want to do this in one of the main pages of your site. Here’s one example of a
|
||||
simple way of rendering paginated Posts in a HTML file:
|
||||
|
||||
{% raw %}
|
||||
@@ -110,19 +128,24 @@ title: My Blog
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
<div class="note warning">
|
||||
<h5>Beware the page one edge-case</h5>
|
||||
<p>
|
||||
Jekyll does not generate a ‘page1’ folder, so the above code will not work
|
||||
when a <code>/page1</code> link is produced. See below for a way to handle
|
||||
this if it’s a problem for you.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Jekyll does not generate a `page1` folder, so the above code will not work
|
||||
when a `/page1` link is produced. See below for a way to handle
|
||||
this if it’s a problem for you:
|
||||
The following HTML snippet should handle page one, and render a list of each
|
||||
page with links to all but the current page.
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% if paginator.total_pages > 1 %}
|
||||
<div class="pagination">
|
||||
{% if paginator.previous_page %}
|
||||
<a href="{{ paginator.previous_page_path | relative_url }}">
|
||||
« Prev
|
||||
</a>
|
||||
<a href="{{ paginator.previous_page_path | relative_url }}">« Prev</a>
|
||||
{% else %}
|
||||
<span>« Prev</span>
|
||||
{% endif %}
|
||||
@@ -131,20 +154,14 @@ this if it’s a problem for you:
|
||||
{% if page == paginator.page %}
|
||||
<em>{{ page }}</em>
|
||||
{% elsif page == 1 %}
|
||||
<a href="{{ paginator.previous_page_path | relative_url }}">
|
||||
{{ page }}
|
||||
</a>
|
||||
<a href="{{ paginator.previous_page_path | relative_url }}">{{ page }}</a>
|
||||
{% else %}
|
||||
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">
|
||||
{{ page }}
|
||||
</a>
|
||||
<a href="{{ site.paginate_path | relative_url | replace: ':num', page }}">{{ page }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if paginator.next_page %}
|
||||
<a href="{{ paginator.next_page_path | relative_url }}">
|
||||
Next »
|
||||
</a>
|
||||
<a href="{{ paginator.next_page_path | relative_url }}">Next »</a>
|
||||
{% else %}
|
||||
<span>Next »</span>
|
||||
{% endif %}
|
||||
|
||||
@@ -14,9 +14,9 @@ The simplest way to set a permalink is using front matter. You set the
|
||||
|
||||
For example, you might have a page on your site located at
|
||||
`/my_pages/about-me.html` and you want the output url to be `/about/`. In
|
||||
front matter the page you would set:
|
||||
front matter of the page you would set:
|
||||
|
||||
```
|
||||
```yaml
|
||||
---
|
||||
permalink: /about/
|
||||
---
|
||||
@@ -25,7 +25,7 @@ permalink: /about/
|
||||
## Global
|
||||
|
||||
Setting a permalink in front matter for every page on your site is no fun.
|
||||
Luckily, Jekyll let's you set in globally in your `_config.yml`.
|
||||
Luckily, Jekyll lets you set the permalink structure globally in your `_config.yml`.
|
||||
|
||||
To set a global permalink, you use the `permalink` variable in `_config.yml`.
|
||||
You can use placeholders to your desired output. For example:
|
||||
@@ -34,18 +34,18 @@ You can use placeholders to your desired output. For example:
|
||||
permalink: /:categories/:year/:month/:day/:title:output_ext
|
||||
```
|
||||
|
||||
Note that pages and collections don't have time or categories, these aspects of
|
||||
the permalink style are ignored for the output.
|
||||
Note that pages and collections (excluding `posts` and `drafts`) don't have time
|
||||
and categories (for pages, the above `:title` is equivalent to `:basename`), these
|
||||
aspects of the permalink style are ignored for the output.
|
||||
|
||||
For example, a permalink style of
|
||||
`/:categories/:year/:month/:day/:title:output_ext` for posts becomes
|
||||
`/:title.html` for pages and collections.
|
||||
`/:categories/:year/:month/:day/:title:output_ext` for the `posts` collection becomes
|
||||
`/:title.html` for pages and collections (excluding `posts` and `drafts`).
|
||||
|
||||
### Placeholders
|
||||
|
||||
Here's the full list of placeholders available:
|
||||
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
<table>
|
||||
<thead>
|
||||
@@ -61,8 +61,19 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Year from the post's filename. May be overridden via the document’s
|
||||
<code>date</code> front matter
|
||||
Year from the post’s filename with four digits.
|
||||
May be overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>short_year</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Year from the post’s filename without the century. (00..99)
|
||||
May be overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -72,8 +83,8 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Month from the post's filename. May be overridden via the document’s
|
||||
<code>date</code> front matter
|
||||
Month from the post’s filename. (01..12)
|
||||
May be overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -83,19 +94,36 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Month without leading zeros from the post's filename. May be
|
||||
overridden via the document’s <code>date</code> front matter
|
||||
Month without leading zeros from the post’s filename. May be
|
||||
overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>short_month</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>Three-letter month abbreviation, e.g. “Jan”.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>long_month</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>Full month name, e.g. “January”.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>day</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Day from the post's filename. May be overridden via the document’s
|
||||
<code>date</code> front matter
|
||||
Day of the month from the post’s filename. (01..31)
|
||||
May be overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -105,8 +133,8 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Day without leading zeros from the post's filename. May be overridden
|
||||
via the document’s <code>date</code> front matter
|
||||
Day of the month without leading zeros from the post’s filename.
|
||||
May be overridden via the document’s <code>date</code> front matter.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -115,18 +143,52 @@ Here's the full list of placeholders available:
|
||||
<p><code>y_day</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>Day of the year from the post's filename, with leading zeros.</p>
|
||||
<p>Ordinal day of the year from the post’s filename, with leading zeros. (001..366)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>short_year</code></p>
|
||||
<p><code>w_year</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Year without the century from the post's filename. May be overridden
|
||||
via the document’s <code>date</code> front matter
|
||||
</p>
|
||||
<p>Week year which may differ from the month year for up to three days at the start of January and end of December</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>week</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>Week number of the current year, starting with the first week having a majority of its days in January. (01..53)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>w_day</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>Day of the week, starting with Monday. (1..7)</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>short_day</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>Three-letter weekday abbreviation, e.g. “Sun”.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>long_day</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>Weekday name, e.g. “Sunday”.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -135,7 +197,7 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Hour of the day, 24-hour clock, zero-padded from the post's
|
||||
Hour of the day, 24-hour clock, zero-padded from the post’s
|
||||
<code>date</code> front matter. (00..23)
|
||||
</p>
|
||||
</td>
|
||||
@@ -146,7 +208,7 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Minute of the hour from the post's <code>date</code> front matter. (00..59)
|
||||
Minute of the hour from the post’s <code>date</code> front matter. (00..59)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -156,7 +218,7 @@ Here's the full list of placeholders available:
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Second of the minute from the post's <code>date</code> front matter. (00..59)
|
||||
Second of the minute from the post’s <code>date</code> front matter. (00..59)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -196,13 +258,33 @@ Here's the full list of placeholders available:
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>slugified_categories</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.1" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The specified categories for this post but <em>slugified</em>. If a category is a
|
||||
composite of multiple words, Jekyll will downcase all alphabets and replace any
|
||||
non-alphanumeric character with a hyphen. (e.g. <code>"Work 2 Progress"</code>
|
||||
will be converted into <code>"work-2-progress"</code>)
|
||||
</p>
|
||||
<p>
|
||||
If a post has multiple categories, Jekyll will create a hierarchy
|
||||
(e.g. <code>/work-2-progress/category2</code>).
|
||||
Also Jekyll automatically parses out double slashes in the URLs,
|
||||
so if no categories are present, it will ignore this.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### Built-in formats
|
||||
|
||||
For posts, Jekyll also provides the following built-in styles for convenience. Note, these aren't recognized when setting the permalink in front matter.
|
||||
For posts, Jekyll also provides the following built-in styles for convenience:
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
<table>
|
||||
@@ -237,6 +319,15 @@ For posts, Jekyll also provides the following built-in styles for convenience. N
|
||||
<p><code>/:categories/:year/:y_day/:title:output_ext</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>weekdate</code></p>
|
||||
<small>{% include docs_version_badge.html version="4.0" %}</small>
|
||||
</td>
|
||||
<td>
|
||||
<p><code>/:categories/:year/W:week/:short_day/:title:output_ext</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>none</code></p>
|
||||
@@ -249,10 +340,17 @@ For posts, Jekyll also provides the following built-in styles for convenience. N
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Rather than typing `permalink: /:categories/:year/:month/:day/:title/`, you can just type `permalink: pretty`.
|
||||
|
||||
<div class="note info">
|
||||
<h5>Specifying permalinks through the front matter</h5>
|
||||
<p>Built-in permalink styles are not recognized in front matter. As a result, <code>permalink: pretty</code> will not work.</p>
|
||||
</div>
|
||||
|
||||
### Collections
|
||||
|
||||
For collections, you have the option to override the global permalink in the
|
||||
collection configuration in `_config.yml`:
|
||||
For collections (including `posts` and `drafts`), you have the option to override
|
||||
the global permalink in the collection configuration in `_config.yml`:
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
@@ -285,7 +383,10 @@ Collections have the following placeholders available:
|
||||
<p><code>:path</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>Path to the document relative to the collection's directory.</p>
|
||||
<p>
|
||||
Path to the document relative to the collection's directory,
|
||||
including base filename of the document.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -322,3 +423,54 @@ Collections have the following placeholders available:
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
### Pages
|
||||
|
||||
For pages, you have to use front matter to override the global permalink,
|
||||
and if you set a permalink via front matter defaults in `_config.yml`,
|
||||
it will be ignored.
|
||||
|
||||
Pages have the following placeholders available:
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>:path</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Path to the page relative to the site's source directory, excluding
|
||||
base filename of the page.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>:basename</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>The page's base filename</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>:output_ext</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Extension of the output file. (Included by default and usually
|
||||
unnecessary.)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -7,11 +7,11 @@ Jekyll has a plugin system with hooks that allow you to create custom generated
|
||||
content specific to your site. You can run custom code for your site without
|
||||
having to modify the Jekyll source itself.
|
||||
|
||||
* [Installation](/docs/plugins/installation/) - How to install plugins
|
||||
* [Your first plugin](/docs/plugins/your-first-plugin/) - How to write plugins
|
||||
* [Generators](/docs/plugins/generators/) - Create additional content on your site
|
||||
* [Converters](/docs/plugins/converters/) - Change a markup language into another format
|
||||
* [Commands](/docs/plugins/commands/) - Extend the `jekyll` executable with subcommands
|
||||
* [Tags](/docs/plugins/tags) - Create custom Liquid tags
|
||||
* [Filters](/docs/plugins/filters/) - Create custom Liquid filters
|
||||
* [Hooks](/docs/plugins/hooks/) - Fine-grained control to extend the build process
|
||||
* [Installation]({{ '/docs/plugins/installation/' | relative_url }}) - How to install plugins
|
||||
* [Your first plugin]({{ '/docs/plugins/your-first-plugin/' | relative_url }}) - How to write plugins
|
||||
* [Generators]({{ '/docs/plugins/generators/' | relative_url }}) - Create additional content on your site
|
||||
* [Converters]({{ '/docs/plugins/converters/' | relative_url }}) - Change a markup language into another format
|
||||
* [Commands]({{ '/docs/plugins/commands/' | relative_url }}) - Extend the `jekyll` executable with subcommands
|
||||
* [Tags]({{ '/docs/plugins/tags/' | relative_url }}) - Create custom Liquid tags
|
||||
* [Filters]({{ '/docs/plugins/filters/' | relative_url }}) - Create custom Liquid filters
|
||||
* [Hooks]({{ '/docs/plugins/hooks/' | relative_url }}) - Fine-grained control to extend the build process
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: Commands
|
||||
permalink: /docs/plugins/commands/
|
||||
---
|
||||
Jekyll can be extended with plugins which provide
|
||||
As of version {% include docs_version_badge.html version="2.5.0"%}, Jekyll can be extended with plugins which provide
|
||||
subcommands for the `jekyll` executable. This is possible by including the
|
||||
relevant plugins in a `Gemfile` group called `:jekyll_plugins`:
|
||||
|
||||
|
||||
@@ -19,9 +19,12 @@ end
|
||||
Liquid::Template.register_filter(Jekyll::AssetFilter)
|
||||
```
|
||||
|
||||
## Access the site object in Liquid
|
||||
|
||||
Jekyll lets you access the `site` object through the
|
||||
`context.registers` feature of Liquid at `context.registers[:site]`. For example, you can
|
||||
access the global configuration file `_config.yml` using
|
||||
`context.registers[:site].config`.
|
||||
<div class="note">
|
||||
<h5>ProTip™: Access the site object using Liquid</h5>
|
||||
<p>
|
||||
Jekyll lets you access the <code>site</code> object through the
|
||||
<code>@context.registers</code> feature of Liquid at <code>@context.registers[:site]</code>. For example, you can
|
||||
access the global configuration file <code>_config.yml</code> using
|
||||
<code>@context.registers[:site].config</code>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -20,11 +20,11 @@ and are available via `site.pages`. Static files become instances of
|
||||
and are available via `site.static_files`. See
|
||||
[the Variables documentation page](/docs/variables/) and
|
||||
[`Jekyll::Site`]({{ site.repository }}/blob/master/lib/jekyll/site.rb)
|
||||
for more details.
|
||||
for details.
|
||||
|
||||
For instance, a generator can inject values computed at build time for template
|
||||
variables. In the following example the template `reading.html` has two
|
||||
variables `ongoing` and `done` that we fill in the generator:
|
||||
variables. In the following example, the template `reading.html` has two
|
||||
variables `ongoing` and `done` that are filled in the generator:
|
||||
|
||||
```ruby
|
||||
module Reading
|
||||
@@ -40,26 +40,10 @@ module Reading
|
||||
end
|
||||
```
|
||||
|
||||
This is a more complex generator that generates new pages:
|
||||
The following example is a more complex generator that generates new pages. In this example, the generator will create a series of files under the `categories` directory for each category, listing the posts in each category using the `category_index.html` layout.
|
||||
|
||||
```ruby
|
||||
module Jekyll
|
||||
class CategoryPage < Page
|
||||
def initialize(site, base, dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = dir
|
||||
@name = 'index.html'
|
||||
|
||||
self.process(@name)
|
||||
self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
|
||||
self.data['category'] = category
|
||||
|
||||
category_title_prefix = site.config['category_title_prefix'] || 'Category: '
|
||||
self.data['title'] = "#{category_title_prefix}#{category}"
|
||||
end
|
||||
end
|
||||
|
||||
class CategoryPageGenerator < Generator
|
||||
safe true
|
||||
|
||||
@@ -72,14 +56,27 @@ module Jekyll
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# A Page subclass used in the `CategoryPageGenerator`
|
||||
class CategoryPage < Page
|
||||
def initialize(site, base, dir, category)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = dir
|
||||
@name = 'index.html'
|
||||
|
||||
self.process(@name)
|
||||
self.read_yaml(File.join(base, '_layouts'), 'category_index.html')
|
||||
self.data['category'] = category
|
||||
|
||||
category_title_prefix = site.config['category_title_prefix'] || 'Category: '
|
||||
self.data['title'] = "#{category_title_prefix}#{category}"
|
||||
end
|
||||
end
|
||||
end
|
||||
```
|
||||
|
||||
In this example, our generator will create a series of files under the
|
||||
`categories` directory for each category, listing the posts in each category
|
||||
using the `category_index.html` layout.
|
||||
|
||||
Generators are only required to implement one method:
|
||||
Generators need to implement only one method:
|
||||
|
||||
<div class="mobile-side-scroller">
|
||||
<table>
|
||||
@@ -101,3 +98,7 @@ Generators are only required to implement one method:
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
If your generator is contained within a single file, it can be named whatever you want but it should have an `.rb` extension. If your generator is split across multiple files, it should be packaged as a Rubygem to be published at https://rubygems.org/. In this case, the name of the gem depends on the availability of the name at that site because no two gems can have the same name.
|
||||
|
||||
By default, Jekyll looks for generators in the `_plugins` directory. However, you can change the default directory by assigning the desired name to the key `plugins_dir` in the config file.
|
||||
|
||||
@@ -20,13 +20,13 @@ end
|
||||
```
|
||||
|
||||
Jekyll provides hooks for <code>:site</code>, <code>:pages</code>,
|
||||
<code>:posts</code>, and <code>:documents</code>. In all cases, Jekyll calls
|
||||
your hooks with the container object as the first callback parameter.
|
||||
All `:pre_render` hooks and the`:site, :post_render` hook will also provide a
|
||||
payload hash as a second parameter. In the case of `:pre_render`, the payload
|
||||
gives you full control over the variables that are available while rendering.
|
||||
In the case of `:site, :post_render`, the payload contains final values after
|
||||
rendering all the site (useful for sitemaps, feeds, etc).
|
||||
<code>:posts</code>, <code>:documents</code> and <code>:clean</code>. In all
|
||||
cases, Jekyll calls your hooks with the container object as the first callback
|
||||
parameter. All `:pre_render` hooks and the`:site, :post_render` hook will also
|
||||
provide a payload hash as a second parameter. In the case of `:pre_render`, the
|
||||
payload gives you full control over the variables that are available while
|
||||
rendering. In the case of `:site, :post_render`, the payload contains final
|
||||
values after rendering all the site (useful for sitemaps, feeds, etc).
|
||||
|
||||
The complete list of available hooks is below:
|
||||
|
||||
@@ -239,6 +239,17 @@ The complete list of available hooks is below:
|
||||
<p>After writing a document to disk</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p><code>:clean</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p><code>:on_obsolete</code></p>
|
||||
</td>
|
||||
<td>
|
||||
<p>During the cleanup of a site's destination before it is built</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@ title: Plugins
|
||||
permalink: /docs/plugins/installation/
|
||||
---
|
||||
|
||||
There are three options for installing plugins:
|
||||
You have 3 options for installing plugins:
|
||||
|
||||
1. In your site source root, make a `_plugins` directory. Place your plugins
|
||||
here. Any file ending in `*.rb` inside this directory will be loaded before
|
||||
@@ -27,30 +27,44 @@ There are three options for installing plugins:
|
||||
example:
|
||||
|
||||
```ruby
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-gist"
|
||||
gem "jekyll-coffeescript"
|
||||
gem "jekyll-assets"
|
||||
gem "another-jekyll-plugin"
|
||||
end
|
||||
group :jekyll_plugins do
|
||||
gem "jekyll-gist"
|
||||
gem "jekyll-coffeescript"
|
||||
gem "jekyll-assets"
|
||||
gem "another-jekyll-plugin"
|
||||
end
|
||||
```
|
||||
|
||||
Now you need to install all plugins from your Bundler group by running single command `bundle install`.
|
||||
|
||||
## Plugins on GitHub Pages
|
||||
<div class="note info">
|
||||
<h5>Plugins on GitHub Pages</h5>
|
||||
<p>
|
||||
<a href="https://pages.github.com/">GitHub Pages</a> is powered by Jekyll.
|
||||
All Pages sites are generated using the <code>--safe</code> option
|
||||
to disable plugins (with the exception of some
|
||||
<a href="https://pages.github.com/versions">whitelisted plugins</a>) for
|
||||
security reasons. Unfortunately, this means
|
||||
your plugins won’t work if you’re deploying to GitHub Pages.<br><br>
|
||||
You can still use GitHub Pages to publish your site, but you’ll need to
|
||||
convert the site locally and push the generated static files to your GitHub
|
||||
repository instead of the Jekyll source files.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
[GitHub Pages](https://pages.github.com/) is powered by Jekyll.
|
||||
All Pages sites are generated using the `--safe` option
|
||||
to disable plugins (with the exception of some
|
||||
[whitelisted plugins](https://pages.github.com/versions)) for
|
||||
security reasons. Unfortunately, this means
|
||||
your plugins won’t work if you’re deploying to GitHub Pages.
|
||||
<div class="note">
|
||||
<h5>
|
||||
<code>_plugins</code>, <code>_config.yml</code> and <code>Gemfile</code>
|
||||
can be used simultaneously
|
||||
</h5>
|
||||
<p>
|
||||
You may use any of the aforementioned plugin options simultaneously in the
|
||||
same site if you so choose. Use of one does not restrict the use of the
|
||||
others.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
You can still use GitHub Pages to publish your site, but you’ll need to
|
||||
convert the site locally and push the generated static files to your GitHub
|
||||
repository instead of the Jekyll source files.
|
||||
|
||||
## jekyll_plugins group
|
||||
### The jekyll_plugins group
|
||||
|
||||
Jekyll gives this particular group of gems in your `Gemfile` a different
|
||||
treatment. Any gem included in this group is loaded before Jekyll starts
|
||||
@@ -59,8 +73,7 @@ processing the rest of your source directory.
|
||||
A gem included here will be activated even if its not explicitly listed under
|
||||
the `plugins:` key in your site's config file.
|
||||
|
||||
|
||||
Gems included in the `:jekyll-plugins` group are activated
|
||||
regardless of the `--safe` mode setting. Be aware of what
|
||||
{: .note .warning}
|
||||
Gems included in the <code>:jekyll-plugins</code> group are activated
|
||||
regardless of the <code>--safe</code> mode setting. Be aware of which
|
||||
gems are included under this group!
|
||||
{: .warning }
|
||||
|
||||
@@ -60,7 +60,7 @@ In the example above, we can place the following tag anywhere in one of our
|
||||
pages:
|
||||
|
||||
{% raw %}
|
||||
```ruby
|
||||
```liquid
|
||||
<p>{% render_time page rendered at: %}</p>
|
||||
```
|
||||
{% endraw %}
|
||||
@@ -70,3 +70,45 @@ And we would get something like this on the page:
|
||||
```html
|
||||
<p>page rendered at: Tue June 22 23:38:47 –0500 2010</p>
|
||||
```
|
||||
|
||||
## Tag Blocks
|
||||
|
||||
The `render_time` tag seen above can also be rewritten as a tag block by
|
||||
inheriting the `Liquid::Block` class. Look at the example below:
|
||||
|
||||
```ruby
|
||||
module Jekyll
|
||||
class RenderTimeTagBlock < Liquid::Block
|
||||
|
||||
def render(context)
|
||||
text = super
|
||||
"<p>#{text} #{Time.now}</p>"
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTagBlock)
|
||||
```
|
||||
|
||||
We can now use the tag block anywhere:
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% render_time %}
|
||||
page rendered at:
|
||||
{% endrender_time %}
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
And we would still get the same output as above on the page:
|
||||
|
||||
```html
|
||||
<p>page rendered at: Tue June 22 23:38:47 –0500 2010</p>
|
||||
```
|
||||
|
||||
{: .note .info}
|
||||
In the above example, the tag block and the tag are both registered with
|
||||
the name <code>render_time</code>, but to register a tag and a tag block using
|
||||
the same name in the same project is not recommended as this may lead to
|
||||
conflicts.
|
||||
|
||||
@@ -62,7 +62,12 @@ Obfuscates emails to protect them from spam bots.
|
||||
## Hooks
|
||||
|
||||
[Hooks](/docs/plugins/hooks/) give fine-grained control to extend the build
|
||||
process.
|
||||
process. For example:
|
||||
|
||||
* [jemoji](https://github.com/jekyll/jemoji) Display emojis :+1:
|
||||
* [jekyll-mentions](https://github.com/jekyll/jekyll-mentions) turns mentions @jekyll into links
|
||||
* [jekyll-spaceship](https://github.com/jeffreytse/jekyll-spaceship) - advanced example. Provides
|
||||
powerful supports for table, mathjax, plantuml, video, etc.
|
||||
|
||||
## Flags
|
||||
|
||||
|
||||
@@ -58,8 +58,6 @@ I hope you like it!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="note info">
|
||||
<h5>Be aware of character sets</h5>
|
||||
<p>
|
||||
@@ -102,7 +100,7 @@ Creating an index of posts on another page should be easy thanks to
|
||||
simple example of how to create a list of links to your blog posts:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```liquid
|
||||
<ul>
|
||||
{% for post in site.posts %}
|
||||
<li>
|
||||
@@ -122,34 +120,34 @@ you wish to access the currently-rendering page/posts's variables (the
|
||||
variables of the post/page that has the `for` loop in it), use the `page`
|
||||
variable instead.
|
||||
|
||||
## Categories and Tags
|
||||
## Tags and Categories
|
||||
|
||||
Jekyll has first class support for categories and tags in blog posts. The difference
|
||||
between categories and tags is a category can be part of the URL for a post
|
||||
whereas a tag cannot.
|
||||
Jekyll has first class support for *tags* and *categories* in blog posts.
|
||||
|
||||
To use these, first set your categories and tags in front matter:
|
||||
### Tags
|
||||
|
||||
```yaml
|
||||
---
|
||||
layout: post
|
||||
title: A Trip
|
||||
categories: [blog, travel]
|
||||
tags: [hot, summer]
|
||||
---
|
||||
```
|
||||
Tags for a post are defined in the post's front matter using either the key
|
||||
`tag` for a single entry or `tags` for multiple entries. <br/> Since Jekyll
|
||||
expects multiple items mapped to the key `tags`, it will automatically *split*
|
||||
a string entry if it contains whitespace. For example, while front matter
|
||||
`tag: classic hollywood` will be processed into a singular entity
|
||||
`"classic hollywood"`, front matter `tags: classic hollywood` will be processed
|
||||
into an array of entries `["classic", "hollywood"]`.
|
||||
|
||||
Jekyll makes the categories available to us at `site.categories`. Iterating over
|
||||
`site.categories` on a page gives as another array with two items, the first
|
||||
item is the name of the category and the second item is an array of posts in that
|
||||
category.
|
||||
Irrespective of the front matter key chosen, Jekyll stores the metadata mapped
|
||||
to the plural key which is exposed to Liquid templates.
|
||||
|
||||
All tags registered in the current site are exposed to Liquid templates via
|
||||
`site.tags`. Iterating over `site.tags` on a page will yield another array with
|
||||
two items, where the first item is the name of the tag and the second item being
|
||||
*an array of posts* with that tag.
|
||||
|
||||
{% raw %}
|
||||
```liquid
|
||||
{% for category in site.categories %}
|
||||
<h3>{{ category[0] }}</h3>
|
||||
{% for tag in site.tags %}
|
||||
<h3>{{ tag[0] }}</h3>
|
||||
<ul>
|
||||
{% for post in category[1] %}
|
||||
{% for post in tag[1] %}
|
||||
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
@@ -157,7 +155,37 @@ category.
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
For tags it's exactly the same except the variable is `site.tags`.
|
||||
|
||||
### Categories
|
||||
|
||||
Categories of a post work similar to the tags above:
|
||||
* They can be defined via the front matter using keys `category` or
|
||||
`categories` (that follow the same logic as for tags)
|
||||
* All categories registered in the site are exposed to Liquid templates via
|
||||
`site.categories` which can be iterated over (similar to the loop for tags
|
||||
above.)
|
||||
|
||||
*The similarity between categories and tags however, ends there.*
|
||||
|
||||
Unlike tags, categories for posts can also be defined by a post's file path.
|
||||
Any directory above `_post` will be read-in as a category. For example,
|
||||
if a post is at path `movies/horror/_posts/2019-05-21-bride-of-chucky.markdown`,
|
||||
then `movies` and `horror` are automatically registered as categories for that
|
||||
post.
|
||||
|
||||
When the post also has front matter defining categories, they just get added to
|
||||
the existing list if not present already.
|
||||
|
||||
The hallmark difference between categories and tags is that categories of a post
|
||||
may be incorporated into [the generated URL]('/docs/permalinks/#global') for the
|
||||
post, while tags cannot be.
|
||||
|
||||
Therefore, depending on whether front matter has `category: classic hollywood`,
|
||||
or `categories: classic hollywood`, the example post above would have the URL as
|
||||
either
|
||||
`movies/horror/classic%20hollywood/2019/05/21/bride-of-chucky.html` or
|
||||
`movies/horror/classic/hollywood/2019/05/21/bride-of-chucky.html` respectively.
|
||||
|
||||
|
||||
## Post excerpts
|
||||
|
||||
@@ -166,7 +194,7 @@ post. By default this is the first paragraph of content in the post, however it
|
||||
can be customized by setting a `excerpt_separator` variable in front matter or
|
||||
`_config.yml`.
|
||||
|
||||
```yaml
|
||||
```markdown
|
||||
---
|
||||
excerpt_separator: <!--more-->
|
||||
---
|
||||
@@ -199,9 +227,11 @@ Drafts are posts without a date in the filename. They're posts you're still
|
||||
working on and don't want to publish yet. To get up and running with drafts,
|
||||
create a `_drafts` folder in your site's root and create your first draft:
|
||||
|
||||
```text
|
||||
|-- _drafts/
|
||||
| |-- a-draft-post.md
|
||||
```
|
||||
.
|
||||
├── _drafts
|
||||
│ └── a-draft-post.md
|
||||
...
|
||||
```
|
||||
|
||||
To preview your site with drafts, run `jekyll serve` or `jekyll build`
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
title: Resources
|
||||
permalink: /docs/resources/
|
||||
---
|
||||
|
||||
Jekyll's growing use is producing a wide variety of tutorials, frameworks, extensions, examples, and other resources that can be very helpful. Below is a collection of links to some of the most popular Jekyll resources.
|
||||
|
||||
## Editors
|
||||
|
||||
- [jekyll-atom](https://atom.io/packages/jekyll): A collection of snippets and tools for Jekyll in Atom
|
||||
- [markdown-writer](https://atom.io/packages/markdown-writer): An Atom package for Jekyll. It can create new posts/drafts, manage tags/categories, insert link/images and add many useful key mappings.
|
||||
- [sublime-jekyll](https://github.com/23maverick23/sublime-jekyll): A Sublime Text package for Jekyll static sites. This package should help creating Jekyll sites and posts easier by providing access to key template tags and filters, as well as common completions and a current date/datetime command (for dating posts). You can install this package manually via GitHub, or via [Package Control](https://packagecontrol.io/packages/Jekyll).
|
||||
- [vim-jekyll](https://github.com/parkr/vim-jekyll): A vim plugin to generate new posts and run `jekyll build` all without leaving vim.
|
||||
- [WordPress2Jekyll](https://wordpress.org/plugins/wp2jekyll/): A WordPress plugin that allows you to use WordPress as your editor and (automatically) export content in to Jekyll. WordPress2Jekyll attempts to marry these two systems together in order to make a site that can be easily managed from all devices.
|
||||
|
||||
## Useful Guides
|
||||
|
||||
- [CloudCannon Academy](https://learn.cloudcannon.com/) is a set of resources created by [CloudCannon](https://cloudcannon.com/) to help folks get up and running with Jekyll. They cover all skill levels, and even include some great video tutorials.
|
||||
- [Jekyll Cheatsheet](https://learn.cloudcannon.com/jekyll-cheat-sheet/) is a single-page resource for Jekyll filters, variables, and the like.
|
||||
- ["Creating and Hosting a Personal Site on GitHub"](http://jmcglone.com/guides/github-pages/)
|
||||
- ['Build A Blog With Jekyll And GitHub Pages' on Smashing Magazine](https://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/)
|
||||
- Publishing to GitHub Pages? [Check out our documentation page for just that purpose](/docs/github-pages/).
|
||||
- [Blogging with Git, Emacs and Jekyll](https://metajack.im/2009/01/23/blogging-with-git-emacs-and-jekyll/)
|
||||
- [Tips for working with GitHub Pages Integration](https://gist.github.com/jedschneider/2890453)
|
||||
|
||||
## Integrations
|
||||
|
||||
- Use a SaaS service as a backend for forms (contact forms, hiring forms, etc.)
|
||||
|
||||
- [Formspree (open source)](https://formspree.io/)
|
||||
- [FormKeep](https://formkeep.com/guides/contact-form-jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=contact-form-jekyll)
|
||||
- [Simple Form](https://getsimpleform.com/)
|
||||
- [Formingo](https://www.formingo.co/guides/jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=Jekyll%20Documentation)
|
||||
- [Formester](http://www.formester.com)
|
||||
- [Talkyard](https://www.talkyard.io/blog-comments): Embedded comments for Jekyll and others (free and open source, or hosted serverless)
|
||||
- [Staticman](https://staticman.net): Add user-generated content to a Jekyll site (free and open source)
|
||||
- [Snipcart](https://snipcart.com/blog/static-site-e-commerce-part-2-integrating-snipcart-with-jekyll): Add a shopping cart to a Jekyll site
|
||||
- [Contentful](https://www.contentful.com/ecosystem/jekyll/): use Jekyll together with the API-driven Contentful CMS.
|
||||
- [Algolia](https://blog.algolia.com/instant-search-blog-documentation-jekyll-plugin/): Add a powerful instant search to your Jekyll site
|
||||
|
||||
## Other commentary
|
||||
|
||||
- [How I'm using Jekyll in 2016](https://mademistakes.com/articles/using-jekyll-2016/)
|
||||
|
||||
- [Talkyard comments instructions for Jekyll](https://jekyll-demo.talkyard.io/2018/01/09/installation-instructions.html)
|
||||
|
||||
- [Static Comments with Jekyll & Staticman](https://mademistakes.com/articles/improving-jekyll-static-comments/)
|
||||
|
||||
- [Adding Ajax pagination to Jekyll](https://eduardoboucas.com/blog/2014/11/05/adding-ajax-pagination-to-jekyll.html)
|
||||
|
||||
- ['My Jekyll Fork', by Mike West](https://mikewest.org/2009/11/my-jekyll-fork)
|
||||
|
||||
> "Jekyll is a well-architected throwback to a time before WordPress, when men were men, and HTML was static. I like the ideas it espouses, and have made a few improvements to it's core. Here, I'll point out some highlights of my fork in the hopes that they see usage beyond this site."
|
||||
|
||||
- ['About this Website', by Carter Allen](http://cartera.me/2010/08/12/about-this-website/)
|
||||
|
||||
> "Jekyll is everything that I ever wanted in a blogging engine. Really. It isn't perfect, but what's excellent about it is that if there's something wrong, I know exactly how it works and how to fix it. It runs on the your machine only, and is essentially an added"build" step between you and the browser. I coded this entire site in TextMate using standard HTML5 and CSS3, and then at the end I added just a few little variables to the markup. Presto-chango, my site is built and I am at peace with the world."
|
||||
|
||||
- A way to [extend Jekyll](https://github.com/rfelix/jekyll_ext) without forking and modifying the Jekyll gem codebase and some [portable Jekyll extensions](https://wiki.github.com/rfelix/jekyll_ext/extensions) that can be reused and shared.
|
||||
- [Using your Rails layouts in Jekyll](http://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll)
|
||||
@@ -12,25 +12,24 @@ A gem is code you can include in Ruby projects. It allows you to package up func
|
||||
|
||||
* Converting a Ruby object to JSON
|
||||
* Pagination
|
||||
* Interacting with APIs such as Github
|
||||
* Interacting with APIs such as GitHub
|
||||
* Jekyll itself is a gem as well as many Jekyll plugins including
|
||||
[jekyll-feed](https://github.com/jekyll/jekyll-feed),
|
||||
[jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag) and
|
||||
[jekyll-archives](https://github.com/jekyll/jekyll-archives).
|
||||
|
||||
|
||||
## Gemfile
|
||||
|
||||
A `Gemfile` is a list of gems required for your site. For a simple Jekyll site it might look something like this:
|
||||
|
||||
```ruby
|
||||
source 'https://rubygems.org'
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem 'jekyll'
|
||||
gem "jekyll"
|
||||
|
||||
group :jekyll_plugins do
|
||||
gem 'jekyll-feed'
|
||||
gem 'jekyll-seo-tag'
|
||||
gem "jekyll-feed"
|
||||
gem "jekyll-seo-tag"
|
||||
end
|
||||
```
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ position: 1
|
||||
---
|
||||
Welcome to Jekyll's step-by-step tutorial. The goal of this tutorial is to take
|
||||
you from having some front end web development experience to building your
|
||||
first Jekyll site from scratch — not relying on the default gem-based theme.
|
||||
first Jekyll site from scratch — not relying on the default gem-based theme.
|
||||
Let's get into it!
|
||||
|
||||
## Installation
|
||||
@@ -18,10 +18,27 @@ instructions for your operating system.
|
||||
With Ruby setup you can install Jekyll by running the following in your
|
||||
terminal:
|
||||
|
||||
```
|
||||
```sh
|
||||
gem install jekyll bundler
|
||||
```
|
||||
|
||||
To create a new `Gemfile` to list your project's dependencies run:
|
||||
|
||||
```sh
|
||||
bundle init
|
||||
```
|
||||
|
||||
Now edit the `Gemfile` and add jekyll as a dependency:
|
||||
|
||||
```ruby
|
||||
gem "jekyll"
|
||||
```
|
||||
|
||||
Finally run `bundle` to install jekyll for your project.
|
||||
|
||||
You can now prefix all jekyll commands listed in this tutorial with `bundle exec`
|
||||
to make sure you use the jekyll version defined in your `Gemfile`.
|
||||
|
||||
## Create a site
|
||||
|
||||
It's time to create a site! Create a new directory for your site, you can name
|
||||
@@ -54,7 +71,7 @@ content:
|
||||
## Build
|
||||
|
||||
Jekyll is a static site generator so we need Jekyll to build the site
|
||||
before we can view it. There's two commands you can run in the root of your site
|
||||
before we can view it. There are two commands you can run in the root of your site
|
||||
to build it:
|
||||
|
||||
* `jekyll build` - Builds the site and outputs a static site to a directory
|
||||
|
||||
@@ -7,7 +7,6 @@ Liquid is where Jekyll starts to get more interesting. Liquid is a templating
|
||||
language which has three main parts: [objects](#objects), [tags](#tags) and
|
||||
[filters](#filters).
|
||||
|
||||
|
||||
## Objects
|
||||
|
||||
Objects tell Liquid where to output content. They're denoted by double curly
|
||||
@@ -16,7 +15,7 @@ braces: {% raw %}`{{`{% endraw %} and {% raw %}`}}`{% endraw %}. For example:
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ page.title }}
|
||||
```
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Outputs a variable called `page.title` on the page.
|
||||
@@ -34,7 +33,7 @@ braces and percent signs: {% raw %}`{%`{% endraw %} and
|
||||
sidebar content
|
||||
</div>
|
||||
{% endif %}
|
||||
```
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Outputs the sidebar if `page.show_sidebar` is true. You can learn more about the
|
||||
@@ -48,7 +47,7 @@ and are separated by a `|`. For example:
|
||||
{% raw %}
|
||||
```liquid
|
||||
{{ "hi" | capitalize }}
|
||||
```
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Outputs `Hi`. You can learn more about the filters available to Jekyll
|
||||
@@ -63,12 +62,22 @@ Now it's your turn, change the Hello World! on your page to output as lowercase:
|
||||
...
|
||||
<h1>{{ "Hello World!" | downcase }}</h1>
|
||||
...
|
||||
```
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
It may not seem like it now, but much of Jekyll's power comes from combining
|
||||
Liquid with other features.
|
||||
To get our changes processed by Jekyll we need to add [front matter](../03-front-matter/) to the top of the page:
|
||||
|
||||
In order to see the changes from `downcase` Liquid filter, we will need to add front matter.
|
||||
```yaml
|
||||
---
|
||||
# front matter tells Jekyll to process Liquid
|
||||
---
|
||||
```
|
||||
|
||||
Our "Hello World!" will now be downcased on render.
|
||||
|
||||
It may not seem like it now, but much of Jekyll's power comes from combining
|
||||
Liquid with other features.
|
||||
|
||||
In order to see the changes from `downcase` Liquid filter, we will need to add front matter.
|
||||
|
||||
That's next. Let's keep going.
|
||||
|
||||
@@ -7,7 +7,7 @@ Front matter is a snippet of [YAML](http://yaml.org/) which sits between two
|
||||
triple-dashed lines at the top of a file. Front matter is used to set variables
|
||||
for the page, for example:
|
||||
|
||||
```liquid
|
||||
```yaml
|
||||
---
|
||||
my_number: 5
|
||||
---
|
||||
@@ -27,7 +27,7 @@ example to output the variable above you would use:
|
||||
Let's change the `<title>` on your site to populate using front matter:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```liquid
|
||||
---
|
||||
title: Home
|
||||
---
|
||||
@@ -44,6 +44,15 @@ title: Home
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Note that in order for Jekyll to process any liquid tags on your page,
|
||||
you _must_ include front matter on it. The most minimal snippet of front matter
|
||||
you can include is:
|
||||
|
||||
```yaml
|
||||
---
|
||||
---
|
||||
```
|
||||
|
||||
You may still be wondering why you'd output it this way as it takes
|
||||
more source code than raw HTML. In this next step, you'll see why we've
|
||||
been doing this.
|
||||
|
||||
@@ -43,14 +43,14 @@ Create your first layout at `_layouts/default.html` with the following content:
|
||||
You'll notice this is almost identical to `index.html` except there's
|
||||
no front matter and the content of the page is replaced with a `content`
|
||||
variable. `content` is a special variable which has the value of the rendered
|
||||
content of the page its called on.
|
||||
content of the page it's called on.
|
||||
|
||||
To have `index.html` use this layout, you can set a `layout` variable in front
|
||||
matter. The layout wraps around the content of the page so all you need in
|
||||
`index.html` is:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```liquid
|
||||
---
|
||||
layout: default
|
||||
title: Home
|
||||
@@ -70,8 +70,7 @@ layout.
|
||||
|
||||
Add the following to `about.md`:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```markdown
|
||||
---
|
||||
layout: default
|
||||
title: About
|
||||
@@ -80,7 +79,6 @@ title: About
|
||||
|
||||
This page tells you a little bit about me.
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
Open <a href="http://localhost:4000/about.html" target="_blank" data-proofer-ignore>http://localhost:4000/about.html</a>
|
||||
in your browser and view your new page.
|
||||
|
||||
@@ -3,7 +3,7 @@ layout: step
|
||||
title: Includes
|
||||
position: 5
|
||||
---
|
||||
The site is coming together however, there's no way to navigate between
|
||||
The site is coming together; however, there's no way to navigate between
|
||||
pages. Let's fix that.
|
||||
|
||||
Navigation should be on every page so adding it to your layout is the correct
|
||||
@@ -17,14 +17,14 @@ in an `_includes` folder. Includes are useful for having a single source for
|
||||
source code that repeats around the site or for improving the readability.
|
||||
|
||||
Navigation source code can get complex so sometimes it's nice to move it into an
|
||||
include.
|
||||
include.
|
||||
|
||||
## Include usage
|
||||
|
||||
Create a file for the navigation at `_includes/navigation.html` with the
|
||||
following content:
|
||||
|
||||
```liquid
|
||||
```
|
||||
<nav>
|
||||
<a href="/">Home</a>
|
||||
<a href="/about.html">About</a>
|
||||
|
||||
@@ -8,18 +8,18 @@ them in your site folder and they’ll copy across to the built site.
|
||||
|
||||
Jekyll sites often use this structure to keep assets organized:
|
||||
|
||||
```sh
|
||||
```
|
||||
.
|
||||
├── assets
|
||||
| ├── css
|
||||
| ├── images
|
||||
| └── js
|
||||
│ ├── css
|
||||
│ ├── images
|
||||
│ └── js
|
||||
...
|
||||
```
|
||||
|
||||
## Sass
|
||||
|
||||
The inline styles used in `_includes/navigation.html` is not a best practice,
|
||||
Inlining the styles used in `_includes/navigation.html` is not a best practice,
|
||||
let's style the current page with a class instead.
|
||||
|
||||
{% raw %}
|
||||
@@ -36,25 +36,22 @@ You could use a standard CSS file for styling, we're going to take it a step
|
||||
further by using [Sass](https://sass-lang.com/). Sass is a fantastic extension
|
||||
to CSS baked right into Jekyll.
|
||||
|
||||
First create a Sass file at `/assets/css/styles.scss` with the following
|
||||
content:
|
||||
First create a Sass file at `assets/css/styles.scss` with the following content:
|
||||
|
||||
{% raw %}
|
||||
```css
|
||||
```sass
|
||||
---
|
||||
---
|
||||
@import "main";
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The empty front matter at the top tells Jekyll it needs to process the file. The
|
||||
`@import "main"` tells Sass to look for a file called `main.scss` in the sass
|
||||
directory (`_sass/` by default).
|
||||
directory (`_sass/` by default which is directly under root folder of your website).
|
||||
|
||||
At this stage you'll just have a main css file. For larger projects, this is a
|
||||
great way to keep your CSS organized.
|
||||
|
||||
Create `_sass/main.scss` with the following content:
|
||||
Create a Sass file at `_sass/main.scss` with the following content:
|
||||
|
||||
```sass
|
||||
.current {
|
||||
@@ -83,6 +80,8 @@ Open `_layouts/default.html` and add the stylesheet to the `<head>`:
|
||||
```
|
||||
{% endraw %}
|
||||
|
||||
The `styles.css` referenced here is generated by Jekyll from the `styles.scss` you created earlier in `assets/css/`.
|
||||
|
||||
Load up <a href="http://localhost:4000" target="_blank" data-proofer-ignore>http://localhost:4000</a>
|
||||
and check the active link in the navigation is green.
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ The `post` layout doesn't exist so you'll need to create it at
|
||||
`_layouts/post.html` with the following content:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```liquid
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
@@ -65,7 +65,7 @@ Jekyll makes posts available at `site.posts`.
|
||||
Create `blog.html` in your root (`/blog.html`) with the following content:
|
||||
|
||||
{% raw %}
|
||||
```html
|
||||
```liquid
|
||||
---
|
||||
layout: default
|
||||
title: Blog
|
||||
@@ -76,7 +76,7 @@ title: Blog
|
||||
{% for post in site.posts %}
|
||||
<li>
|
||||
<h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
|
||||
<p>{{ post.excerpt }}</p>
|
||||
{{ post.excerpt }}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
@@ -139,7 +139,7 @@ golden flesh with rows of tiny, black, edible seeds. The fruit has a soft
|
||||
texture, with a sweet and unique flavor.
|
||||
```
|
||||
|
||||
Open <a href="http://localhost:4000" target="_blank" data-proofer-ignore>http://localhost:4000</a> and have
|
||||
a look through your blog posts.
|
||||
Open <a href="http://localhost:4000" target="_blank" data-proofer-ignore>http://localhost:4000</a>
|
||||
and have a look through your blog posts.
|
||||
|
||||
Next we'll focus on creating a page for each post author.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user