Compare commits

...

469 Commits

Author SHA1 Message Date
Pat Hawks
b0c591a3f2 Add Inline Markdown converter 2016-10-27 20:30:32 -05:00
David Stosik
167af4552b Avoid modifying existing test's behavior in my PR 2016-10-24 01:03:53 +09:00
David Stosik
3cc4bef2e6 Fix Rubocop errors 2016-10-24 00:39:09 +09:00
David Stosik
4785f6f71f Provide an "inline" mode to markdownify filter 2016-10-24 00:01:09 +09:00
jekyllbot
12a86c1298 Update history to reflect merge of #5504 [ci skip] 2016-10-21 13:58:47 -07:00
jekyllbot
0ce9d726f5 Merge pull request #5504 from baiyangcao/patch-2
Merge pull request 5504
2016-10-21 13:58:47 -07:00
baiyangcao
d6844d284c Update deployment-methods.md 2016-10-21 13:30:26 +08:00
jekyllbot
4d597643ec Update history to reflect merge of #5502 [ci skip] 2016-10-20 13:12:08 -07:00
jekyllbot
343d5f7be5 Merge pull request #5502 from DirtyF/docs-jekyll-hook-outdated
Merge pull request 5502
2016-10-20 13:12:07 -07:00
Frank Taillandier
11a0b6578e Remove jekyll-hook from deployment methods 2016-10-20 21:12:16 +02:00
jekyllbot
3431c9f7b8 Update history to reflect merge of #5495 [ci skip] 2016-10-19 21:24:11 -07:00
jekyllbot
eca7f46749 Merge pull request #5495 from jekyll/pr/layouts-error
Merge pull request 5495
2016-10-19 21:24:11 -07:00
jekyllbot
821a845166 Update history to reflect merge of #5496 [ci skip] 2016-10-19 12:10:11 -07:00
jekyllbot
d979b4bf9b Merge pull request #5496 from jekyll/pr/rubocop
Merge pull request 5496
2016-10-19 12:10:11 -07:00
jekyllbot
124c63fd59 Update history to reflect merge of #5492 [ci skip] 2016-10-19 10:58:48 -07:00
jekyllbot
89bbb249af Merge pull request #5492 from tnhu/patch-2
Merge pull request 5492
2016-10-19 10:58:48 -07:00
jekyllbot
344d07cb55 Update history to reflect merge of #5497 [ci skip] 2016-10-19 10:40:43 -07:00
jekyllbot
0484986c16 Merge pull request #5497 from kingscott/master
Merge pull request 5497
2016-10-19 10:40:42 -07:00
Scott King
c7d0dda5a7 Add comment about gem outdated 2016-10-19 09:40:43 -04:00
Tan Nhu
ea72f98609 Fix typo 2016-10-19 00:53:44 -07:00
jekyllbot
0f5c34d16d Update history to reflect merge of #5494 [ci skip] 2016-10-18 18:38:14 -07:00
jekyllbot
0d8e21f779 Merge pull request #5494 from jekyll/pr/gsub
Merge pull request 5494
2016-10-18 18:38:13 -07:00
Scott King
2be5d56059 Fix some typos 2016-10-18 21:32:40 -04:00
Scott King
e6829b5949 Fix some typos 2016-10-18 21:15:50 -04:00
Scott King
8a4edc550b Add info about checking version + updating 2016-10-18 21:07:58 -04:00
Pat Hawks
cc1972848d Restrict Rubocop version 2016-10-18 19:51:54 -05:00
Pat Hawks
51d9be83a1 Do not swallow all exceptions on render 2016-10-18 19:45:03 -05:00
Pat Hawks
c4a23b4ced Collapse gsub 2016-10-18 18:53:54 -05:00
Tan Nhu
b9275920dd Update jekyll-include-absolute-plugin description 2016-10-18 09:52:57 -07:00
jekyllbot
53d20bc77e Update history to reflect merge of #5479 [ci skip] 2016-10-18 09:51:45 -07:00
jekyllbot
7aa9c3f12c Merge pull request #5479 from ashmaroli/test-script
Merge pull request 5479
2016-10-18 09:51:45 -07:00
Tan Nhu
00e3c979c9 Add jekyll-include-absolute-plugin 2016-10-18 09:51:16 -07:00
jekyllbot
0a1c837755 Update history to reflect merge of #5489 [ci skip] 2016-10-18 09:50:50 -07:00
jekyllbot
7c901baac1 Merge pull request #5489 from ashmaroli/rubocop-fix
Merge pull request 5489
2016-10-18 09:50:49 -07:00
jekyllbot
1f9c2b1380 Update history to reflect merge of #5491 [ci skip] 2016-10-18 09:49:12 -07:00
jekyllbot
146d5930a4 Merge pull request #5491 from ashmaroli/patch-1
Merge pull request 5491
2016-10-18 09:49:12 -07:00
ashmaroli
6ec86f4207 Add jekyll-data to the list of plugins 2016-10-18 16:20:41 +05:30
Ashwin Maroli
d1f67bf85a fix rubocop errors on testing with Rubocop 0.44
- have the new `Metrics/BlockLength` cop ignore test files and
    `jekyll/configuration.rb`
  - have `AllCops` ignore Jekyll Executable which is not going to be
    altered in the near future.
2016-10-17 13:24:54 +05:30
jekyllbot
c9d24b7d18 Update history to reflect merge of #5472 [ci skip] 2016-10-12 17:53:51 -07:00
jekyllbot
62ec32c883 Merge pull request #5472 from codethebeard/patch-1
Merge pull request 5472
2016-10-12 17:53:51 -07:00
jekyllbot
aa97be3ab5 Update history to reflect merge of #5471 [ci skip] 2016-10-12 15:34:51 -07:00
jekyllbot
389bbe1621 Merge pull request #5471 from chrisfinazzo/normalize-css-v5
Merge pull request 5471
2016-10-12 15:34:50 -07:00
Ashwin Maroli
0d12a02893 script/test: add missing whitespace 2016-10-12 14:35:39 +05:30
jekyllbot
d4b7b44328 Update history to reflect merge of #5475 [ci skip] 2016-10-11 08:46:53 -07:00
Michael Large
6cec4aebc6 Additional typo related to pull request #5472 2016-10-11 09:05:39 -04:00
Michael Large
f2fcd17627 Fix typo in theme_template README 2016-10-10 11:10:41 -04:00
chrisfinazzo
c569edcf0a Update normalize.css to v5.0.0 2016-10-09 11:36:04 -04:00
jekyllbot
53d472b7e2 Update history to reflect merge of #5449 [ci skip] 2016-10-06 11:45:20 -07:00
jekyllbot
f93e40209c Merge pull request #5449 from DirtyF/docs-link-tag
Merge pull request 5449
2016-10-06 11:45:19 -07:00
Parker Moore
5e93ca6353 Release 💎 3.3.0 2016-10-06 11:12:15 -07:00
jekyllbot
8bac0559d1 Update history to reflect merge of #5442 [ci skip] 2016-10-06 10:41:24 -07:00
jekyllbot
b4393e2d36 Merge pull request #5442 from jekyll/3-3-release-post
Merge pull request 5442
2016-10-06 10:41:24 -07:00
jekyllbot
dc554c2cd5 Update history to reflect merge of #5456 [ci skip] 2016-10-06 10:36:50 -07:00
jekyllbot
21cd382409 Merge pull request #5456 from jekyll/revert-server-address-sig-change
Merge pull request 5456
2016-10-06 10:36:49 -07:00
jekyllbot
b37d18234a Update history to reflect merge of #5433 [ci skip] 2016-10-06 10:22:23 -07:00
jekyllbot
6f05ebb520 Merge pull request #5433 from ayastreb/5429-data-dir-with-period-in-name
Merge pull request 5433
2016-10-06 10:22:23 -07:00
Parker Moore
ed042de6c4 Oh fine, rubocop. 2016-10-06 10:15:45 -07:00
Parker Moore
7c8c825f27 Fix. 2016-10-06 10:01:55 -07:00
Parker Moore
63e4e750ec New site: lock minima to v2.x 2016-10-06 09:58:16 -07:00
Parker Moore
6d1bc6c6ea Revert Commands::Serve#server_address signature change. 2016-10-06 09:48:37 -07:00
Parker Moore
c90d44d2be Updates to 3.3.0 release post per comments. 2016-10-06 09:36:56 -07:00
jekyllbot
7133bddfb2 Update history to reflect merge of #5452 [ci skip] 2016-10-06 09:11:32 -07:00
jekyllbot
41d0ba66ea Merge pull request #5452 from danayel/change-yaml-list-link
Merge pull request 5452
2016-10-06 09:11:31 -07:00
Daniel Chapman
8ec7421c03 Update Wikipedia YAML list link
List no longer exists on that page as an id.  Basic_components holds the lists now, and at the top conveniently ✌️

I also added a second link under the tags heading.
2016-10-06 17:49:27 +09:00
Frank Taillandier
c61752a336 Fix line length 2016-10-06 01:17:26 +02:00
Parker Moore
fcef78c4b6 Revert "templates.md: {% link %} tag only accepts collection documents"
This reverts commit ab4abb1933.
2016-10-06 01:13:18 +02:00
Parker Moore
6f2d1591fc Release 💎 3.3.0.pre.rc1 2016-10-05 11:47:43 -07:00
jekyllbot
f67dfb71fe Update history to reflect merge of #4873 [ci skip] 2016-10-05 11:40:06 -07:00
jekyllbot
3de78877c0 Merge pull request #4873 from mlocher/bug-post-url
Merge pull request 4873
2016-10-05 11:40:04 -07:00
jekyllbot
38f9e93a10 Update history to reflect merge of #5212 [ci skip] 2016-10-05 11:34:53 -07:00
jekyllbot
22a7714bba Merge pull request #5212 from eloyesp/fix-excerpt-link-finder
Merge pull request 5212
2016-10-05 11:34:52 -07:00
jekyllbot
55257d2a14 Update history to reflect merge of #5256 [ci skip] 2016-10-05 11:34:07 -07:00
jekyllbot
275f5a6209 Merge pull request #5256 from kwokfu/patch-1
Merge pull request 5256
2016-10-05 11:34:06 -07:00
jekyllbot
7ea610f8c0 Update history to reflect merge of #5431 [ci skip] 2016-10-05 09:59:02 -07:00
jekyllbot
d879840cc5 Merge pull request #5431 from Crunch09/update_url_in_dev_environment
Merge pull request 5431
2016-10-05 09:59:01 -07:00
Florian Thomas
a945a65818 refactor to use server_address 2016-10-04 20:47:36 +02:00
Anatoliy Yastreb
e27a65d9e3 Sanitize directory name as a key 2016-10-04 19:39:41 +01:00
Florian Thomas
01c33907a3 default site.url in dev environment to http://localhost:4000
take `host`, `port` and `ssl` options into account
2016-10-04 20:38:46 +02:00
Parker Moore
a138b02b10 Update links in 3.3 release post 2016-10-04 11:35:42 -07:00
Parker Moore
761ddcae24 Add Jekyll 3.3 release post 2016-10-03 17:44:47 -07:00
jekyllbot
274d350d61 Update history to reflect merge of #5441 [ci skip] 2016-10-03 15:13:02 -07:00
jekyllbot
80ae013541 Merge pull request #5441 from mhw/patch-1
Merge pull request 5441
2016-10-03 15:13:01 -07:00
Mark H. Wilkinson
a0a351aa7a Remove autoload of Draft which no longer exists. 2016-10-03 22:21:35 +01:00
Anatoliy Yastreb
cff8f2994c Fix loading data from subdir with a period in name #5429 2016-10-01 13:09:50 +01:00
jekyllbot
aa901cdaba Update history to reflect merge of #5264 [ci skip] 2016-09-29 14:13:32 -07:00
jekyllbot
ef3f9d0e7a Merge pull request #5264 from DirtyF/static-file-name
Merge pull request 5264
2016-09-29 14:13:31 -07:00
jekyllbot
d716d9b7be Update history to reflect merge of #5411 [ci skip] 2016-09-29 14:02:09 -07:00
jekyllbot
5a31aacfbe Merge pull request #5411 from zdroid/patch-1
Merge pull request 5411
2016-09-29 14:02:08 -07:00
jekyllbot
7118999958 Update history to reflect merge of #5410 [ci skip] 2016-09-29 13:27:12 -07:00
jekyllbot
553fae8f17 Merge pull request #5410 from jekyll/pr/i18n-url-filters
Merge pull request 5410
2016-09-29 13:27:11 -07:00
jekyllbot
459bc17019 Update history to reflect merge of #5427 [ci skip] 2016-09-29 13:26:24 -07:00
jekyllbot
f0574e047e Merge pull request #5427 from jekyll/don-t-utime-if-symlink
Merge pull request 5427
2016-09-29 13:26:24 -07:00
jekyllbot
b38ac5d938 Update history to reflect merge of #5430 [ci skip] 2016-09-29 13:26:03 -07:00
jekyllbot
feddd7daec Merge pull request #5430 from Strangehill/patch-1
Merge pull request 5430
2016-09-29 13:26:02 -07:00
jekyllbot
1c7aa4729e Update history to reflect merge of #5412 [ci skip] 2016-09-29 13:25:30 -07:00
jekyllbot
54927d6522 Merge pull request #5412 from zdroid/editorconfig
Merge pull request 5412
2016-09-29 13:25:29 -07:00
Antonio
91ef3a7cc9 prepend 'jekyll serve' with 'bundle exec'
Best not to send mixed messages and jekyllrb's quickstart message is "bundle exec jekyll serve"
2016-09-30 02:17:08 +08:00
jekyllbot
69172bcc4a Update history to reflect merge of #5428 [ci skip] 2016-09-29 10:04:47 -07:00
jekyllbot
3d3f310a5e Merge pull request #5428 from ashmaroli/bundle2new
Merge pull request 5428
2016-09-29 10:04:47 -07:00
Jordon Bedwell
51695b2165 Travis is entirely broken.
I'm tired of getting emails from forks I don't even control or have commit to, it's not cool... at all.
2016-09-29 11:17:17 -05:00
Ashwin Maroli
5b4269eca5 document automatic bundle install 2016-09-29 08:47:26 +05:30
Parker Moore
8e91263031 StaticFile#copy_entry: don't mark modified time if path is a symlink 2016-09-28 16:55:57 -07:00
Parker Moore
fd5f2eb399 Add failing test for File.utime of a symlink in staticfile. 2016-09-28 16:54:58 -07:00
jekyllbot
682c0fc98f Update history to reflect merge of #5157 [ci skip] 2016-09-28 16:39:45 -07:00
jekyllbot
6847b604c8 Merge pull request #5157 from stevecheckoway/fix-hooks-priority-order
Merge pull request 5157
2016-09-28 16:39:44 -07:00
jekyllbot
b6d4ba56b7 Update history to reflect merge of #5210 [ci skip] 2016-09-28 16:38:00 -07:00
jekyllbot
9c197d9555 Merge pull request #5210 from jekyll/node-must-die
Merge pull request 5210
2016-09-28 16:38:00 -07:00
jekyllbot
79b0f27bf6 Update history to reflect merge of #5408 [ci skip] 2016-09-28 16:31:09 -07:00
jekyllbot
0f70bb1320 Merge pull request #5408 from ashmaroli/bundle2new
Merge pull request 5408
2016-09-28 16:31:08 -07:00
Parker Moore
d57b04782d Fix reference to #5413 2016-09-28 16:28:12 -07:00
jekyllbot
2f5b7dc1dc Update history to reflect merge of #5413 [ci skip] 2016-09-28 16:25:27 -07:00
jekyllbot
8138e67ffb Merge pull request #5413 from tf2manu994/patch-1
Merge pull request 5413
2016-09-28 16:25:26 -07:00
jekyllbot
719c0938a5 Update history to reflect merge of #5416 [ci skip] 2016-09-28 16:09:07 -07:00
jekyllbot
93c7cdf0d0 Merge pull request #5416 from ashmaroli/win-tz
Merge pull request 5416
2016-09-28 16:09:07 -07:00
Parker Moore
06651c960a Merge pull request #5325 from ashmaroli/gemspec-template-patch
update gemspec template to include only required theme files
2016-09-27 11:30:58 -07:00
jekyllbot
a920cf040b Update history to reflect merge of #5421 [ci skip] 2016-09-27 11:06:44 -07:00
jekyllbot
6c5a371b92 Merge pull request #5421 from crispgm/fix-logo
Merge pull request 5421
2016-09-27 11:06:43 -07:00
jekyllbot
157c8e888e Update history to reflect merge of #5420 [ci skip] 2016-09-27 11:06:17 -07:00
jekyllbot
a69919ecbe Merge pull request #5420 from DirtyF/site_template
Merge pull request 5420
2016-09-27 11:06:17 -07:00
Frank Taillandier
6dbb5e2df1 add contextual help for overriding theme's default 2016-09-27 11:27:29 +02:00
Frank Taillandier
c4ccfae3af rename index.html to index.md
fix https://github.com/jekyll/minima/issues/13
2016-09-27 11:12:29 +02:00
David Zhang
481901b413 Bugfix on logo in JSON-LD 2016-09-27 15:38:25 +08:00
Frank Taillandier
8321b14b29 Move contents of the index.html page to the 'home' layout 2016-09-27 08:24:58 +02:00
Manmeet Gill
81b16b24fc Change to 2.2.5 instead of 2.2.2
We don't need 2.2.2 exactly, switching to 2.2.5 shaves a solid 30 seconds off build time, as it is preinstalled on travis
2016-09-26 16:38:00 +10:00
Ashwin Maroli
6b6ce3cf18 use UTC format in timezone 2016-09-25 23:11:51 +05:30
Manmeet Gill
6366f56c21 Fix Travis.ci documentation 2016-09-25 16:26:43 +10:00
Zlatan Vasović
5df8ef5717 Add .editorconfig 2016-09-24 23:21:33 +02:00
jekyllbot
d79ca534e4 Update history to reflect merge of #5405 [ci skip] 2016-09-24 13:38:44 -07:00
jekyllbot
5c55d95446 Merge pull request #5405 from jekyll/relative_url_and_absolute_url
Merge pull request 5405
2016-09-24 13:38:43 -07:00
Pat Hawks
2b30c06140 Use Addressable to better deal with i18n URLs 2016-09-24 15:34:00 -05:00
Zlatan Vasović
fc6f7802a2 Replace classic box-sizing reset with inheritance reset
Reference: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
2016-09-24 22:14:49 +02:00
Pat Hawks
aebf711c61 Failing tests: URL filters choke on i18n 2016-09-24 15:11:04 -05:00
Heng Kwokfu
bacb300876 Skip Windows tests in non-Windows environment. 2016-09-24 21:55:02 +08:00
Ashwin Maroli
3966a37d71 swallow bundle output in CI 2016-09-24 13:48:22 +05:30
jekyllbot
93c5f71faf Update history to reflect merge of #5403 [ci skip] 2016-09-23 17:46:41 -07:00
jekyllbot
59fa8549f9 Merge pull request #5403 from chrisfinazzo/macOS
Merge pull request 5403
2016-09-23 17:46:41 -07:00
Heng Kwokfu
db53213d16 Merge remote-tracking branch 'jekyll/master' into patch-1 2016-09-24 08:46:24 +08:00
jekyllbot
9564782054 Update history to reflect merge of #5402 [ci skip] 2016-09-23 14:30:39 -07:00
jekyllbot
aaa062b047 Merge pull request #5402 from ashmaroli/jekyll-new-assets
Merge pull request 5402
2016-09-23 14:30:39 -07:00
Parker Moore
8e027fced9 Add documentation for relative_url and absolute_url 2016-09-23 14:27:40 -07:00
jekyllbot
f277baa975 Update history to reflect merge of #5399 [ci skip] 2016-09-23 14:18:02 -07:00
jekyllbot
8197e17495 Merge pull request #5399 from jekyll/relative_url_and_absolute_url
Merge pull request 5399
2016-09-23 14:18:01 -07:00
Chris Finazzo
69937373bd macOS and one grammar fix 2016-09-23 14:47:23 -04:00
Ashwin Maroli
0dc15dba88 remove css/ from new site scaffolding
css directory and its contents to be handled by theme's `assets/`
directory.
The directory removed here wil be added to minima gem.
2016-09-23 18:00:13 +05:30
Parker Moore
fa96843555 URLFilters: Simplify ensure_leading_slash calls. 2016-09-22 20:58:26 -07:00
jekyllbot
6571ea0c1a Update history to reflect merge of #5338 [ci skip] 2016-09-22 20:50:48 -07:00
jekyllbot
992be253a6 Merge pull request #5338 from ashmaroli/config-patch
Merge pull request 5338
2016-09-22 20:50:47 -07:00
jekyllbot
081d7c016a Update history to reflect merge of #5397 [ci skip] 2016-09-22 16:56:05 -07:00
jekyllbot
2a02c798ac Merge pull request #5397 from jekyll/add-jekyll-menus
Merge pull request 5397
2016-09-22 16:56:04 -07:00
Parker Moore
eab6752f52 Consolidate ensure_leading_slash to 2 lines. 2016-09-22 14:40:20 -07:00
Parker Moore
aa86651650 Add absolute_url and relative_url filters. 2016-09-22 14:16:00 -07:00
Jordon Bedwell
ae27db62eb Add jekyll-menus to the list of plugins. 2016-09-22 09:51:37 -05:00
jekyllbot
87c745573f Update history to reflect merge of #5389 [ci skip] 2016-09-21 13:29:38 -07:00
jekyllbot
25d4291d62 Merge pull request #5389 from ashmaroli/cucumber-with-access
Merge pull request 5389
2016-09-21 13:29:38 -07:00
Ashwin Maroli
588b3a6649 remove features dirs on windows with proper access 2016-09-21 22:42:01 +05:30
Ashwin Maroli
99fc60e28c update template to include theme files 2016-09-21 06:29:34 +05:30
jekyllbot
846ab94f43 Update history to reflect merge of #5375 [ci skip] 2016-09-20 17:05:49 -07:00
jekyllbot
3a7cbadd82 Merge pull request #5375 from Nicop06/underscore_highlight
Merge pull request 5375
2016-09-20 17:05:49 -07:00
jekyllbot
f3859384c0 Update history to reflect merge of #5376 [ci skip] 2016-09-20 17:04:58 -07:00
jekyllbot
ee84a95a38 Merge pull request #5376 from jonblatho/master
Merge pull request 5376
2016-09-20 17:04:57 -07:00
Parker Moore
9ae0a7023b Move reference to #5380. 2016-09-20 17:04:26 -07:00
jekyllbot
1ac87eaae2 Update history to reflect merge of #5380 [ci skip] 2016-09-20 16:39:33 -07:00
jekyllbot
cfe61771e0 Merge pull request #5380 from ethomson/coderay_deprecation
Merge pull request 5380
2016-09-20 16:39:33 -07:00
jekyllbot
262be85c49 Update history to reflect merge of #5237 [ci skip] 2016-09-20 15:32:26 -07:00
jekyllbot
504411e476 Merge pull request #5237 from ashmaroli/bundle2new
Merge pull request 5237
2016-09-20 15:32:25 -07:00
Parker Moore
650a3c7932 Update history to reflect merge of #5369 2016-09-20 13:48:40 -07:00
jekyllbot
ad0f329d1c Merge pull request #5369 from MertcanGokgoz/patch-1
Merge pull request 5369
2016-09-20 13:44:51 -07:00
jekyllbot
152fa877f6 Update history to reflect merge of #5364 [ci skip] 2016-09-20 13:40:11 -07:00
jekyllbot
3a45bf7d26 Merge pull request #5364 from jekyll/themes-asset-folder
Merge pull request 5364
2016-09-20 13:40:11 -07:00
Parker Moore
279f1516d2 Merge branch 'master' into themes-asset-folder
* master:
  Update history to reflect merge of #5381 [ci skip]
  Update history to reflect merge of #5383 [ci skip]
  run features on windows
  Appease Rubocop
  Update history to reflect merge of #5372 [ci skip]
  Add missing period to sentence in first paragraph.
2016-09-20 13:13:01 -07:00
Parker Moore
29d8fee4ce Add test to ensure that the /assets theme reader doesn't clobber preexisting site files. 2016-09-20 13:12:34 -07:00
jekyllbot
950a37395f Update history to reflect merge of #5381 [ci skip] 2016-09-20 13:10:49 -07:00
jekyllbot
d8d42f6abc Merge pull request #5381 from pathawks/pr/rubocop
Merge pull request 5381
2016-09-20 13:10:48 -07:00
jekyllbot
92dbe313e9 Update history to reflect merge of #5383 [ci skip] 2016-09-20 09:26:40 -07:00
jekyllbot
2eedf7d79c Merge pull request #5383 from ashmaroli/ruby-cucumber
Merge pull request 5383
2016-09-20 09:26:39 -07:00
Ashwin Maroli
75d59911ae run features on windows 2016-09-20 10:28:54 +05:30
Parker Moore
b78827cecb Add documentation for assets. 2016-09-19 13:57:36 -07:00
Parker Moore
7309ecf8e1 Theme: for various path helpers, use strings. Symbols confuse people. 2016-09-19 13:47:51 -07:00
Pat Hawks
3bfdc00d14 Appease Rubocop 2016-09-19 13:15:02 -05:00
Jonathan Thornton
f2bfc832a0 Marking filename with backticks as suggested 2016-09-19 12:08:20 -05:00
Edward Thomson
054b23f69a Only complain about coderay if it is actually in the config
Don't complain about the deprecated `kramdown.coderay` key when
`highlighter == "coderay"`, since that could have been set with the
legitimate `syntax_highlighter: coderay` setting.  Instead, complain
only if the `kramdown.coderay` configuration setting is actually
present.
2016-09-19 11:38:05 -05:00
Nicolas Porcel
0b94cf3fa1 Allow underscore in highlighter language 2016-09-19 13:10:29 +02:00
Jonathan Thornton
1a11536a2c Clarify documentation in README
This change is subtle, but may prove greatly useful to Jekyll newbies
2016-09-18 17:38:28 -05:00
Parker Moore
74baeb889a ThemeAssetsReader: fix tests so everything passes. 2016-09-18 15:04:15 -04:00
jekyllbot
7a9427ccec Update history to reflect merge of #5372 [ci skip] 2016-09-18 10:54:26 -07:00
jekyllbot
5a1c5311f3 Merge pull request #5372 from kyleobrien/patch-1
Merge pull request 5372
2016-09-18 10:54:26 -07:00
Kyle O'Brien
9aea71137e Add missing period to sentence in first paragraph.
Added a period to the end of the last sentence in the first paragraph, which was missing.
2016-09-18 09:51:33 -04:00
Mertcan GÖKGÖZ
5a932c90b5 added jekyll-spotify plugin 2016-09-18 10:50:21 +03:00
Parker Moore
6d7f305e7c Add tests for assets directory support. 2016-09-16 16:04:35 -07:00
Parker Moore
cf26bf5db0 TestTheme: update tests for 'path_for' now that it's no longer prepending the underscore 2016-09-16 15:36:33 -07:00
Parker Moore
87b9cfe2b5 ThemeBuilder: add 'assets' to list of scaffold directories 2016-09-16 14:57:58 -07:00
Parker Moore
13aec48137 Add ThemeAssetsReader which reads assets from a theme
If the theme includes the 'assets' directory, it will be walked and items will be added to the site based
on the normal rules of Jekyll: if there is YAML front matter, it will be added as a (convertible) Page,
otherwise it will be added as a StaticFile.
2016-09-16 14:41:36 -07:00
Parker Moore
b8f17b9034 Exclude node_modules by default
If no 'exclude' directive is specified, exclude node_modules by default.

https://twitter.com/mxstbr/status/761856359579185153
2016-09-16 13:09:10 -07:00
jekyllbot
562ffe7a3f Update history to reflect merge of #5361 [ci skip] 2016-09-16 12:58:42 -07:00
jekyllbot
c877d6f75c Merge pull request #5361 from DirtyF/patch-1
Merge pull request 5361
2016-09-16 12:58:42 -07:00
Frank Taillandier
0233d93352 vendor is now excluded by default [ci-skip] 2016-09-16 18:25:06 +02:00
Frank Taillandier
59b61c3f9f Exclude vendor by default 2016-09-16 07:56:37 +02:00
jekyllbot
57fd5f887d Update history to reflect merge of #5199 [ci skip] 2016-09-13 07:11:51 -07:00
jekyllbot
4888b84b44 Merge pull request #5199 from jeffkole/adds-linking-to-all-files
Merge pull request 5199
2016-09-13 07:11:50 -07:00
Ashwin Maroli
345f043cc4 test bundle install and skipping it. 2016-09-13 08:52:54 +05:30
Ashwin Maroli
566b42b8b3 add bundle install to jekyll new
- automatically run `bundle install` from within the newly generated blog
   directory by default.
 - add a new switch to skip this default behaviour.
2016-09-13 08:43:13 +05:30
jekyllbot
55de780520 Update history to reflect merge of #5347 [ci skip] 2016-09-12 00:26:00 -07:00
jekyllbot
42725b1325 Merge pull request #5347 from vohedge/patch-1
Merge pull request 5347
2016-09-12 00:26:00 -07:00
vohedge
d86a293d78 Fix typo 2016-09-11 00:18:02 +09:00
jekyllbot
a2e911c1b5 Update history to reflect merge of #5326 [ci skip] 2016-09-09 13:53:28 -07:00
jekyllbot
3e0363be4a Merge pull request #5326 from ashmaroli/gitignore-gem
Merge pull request 5326
2016-09-09 13:53:28 -07:00
jekyllbot
aa2cfc81b7 Update history to reflect merge of #5337 [ci skip] 2016-09-08 11:27:36 -07:00
jekyllbot
a70abbeab5 Merge pull request #5337 from jekyll/fix-convertible-5308
Merge pull request 5337
2016-09-08 11:27:35 -07:00
Ashwin Maroli
8813173ba7 set empty url in config file by default 2016-09-08 15:47:28 +05:30
jekyllbot
6ebdcdb198 Update history to reflect merge of #5316 [ci skip] 2016-09-08 02:55:30 -07:00
jekyllbot
9fd7e2c063 Merge pull request #5316 from DirtyF/markdown--default-extension
Merge pull request 5316
2016-09-08 02:55:30 -07:00
jekyllbot
eefcbf5dde Update history to reflect merge of #5335 [ci skip] 2016-09-08 02:54:03 -07:00
jekyllbot
19f7a0b8fc Merge pull request #5335 from DirtyF/copy-theme-files
Merge pull request 5335
2016-09-08 02:54:02 -07:00
Parker Moore
c1e6f1fb94 Fix rubocop errors & add one more test for slugify 'ascii' mode (#4680) 2016-09-07 17:50:14 -07:00
Parker Moore
9164973a6c Merge branch 'jussikinnula-master'
* jussikinnula-master:
  Fix slugify test
  One final "urlsafe" replaced with "ascii"
  Change urlsafe to ascii also when actually slugifying
  Add tests for ascii slugify mode
  Rename urlsafe to ascii, and document it (on utils.rb)
  Add urlsafe to accepted slugify modes
  Add urlsafe method for slugify
2016-09-07 16:50:32 -07:00
jekyllbot
f53a3b6272 Update history to reflect merge of #5235 [ci skip] 2016-09-07 16:34:37 -07:00
jekyllbot
dddafccb36 Merge pull request #5235 from jekyll/update-windows-detection-to-check-proc-version
Merge pull request 5235
2016-09-07 16:34:37 -07:00
jekyllbot
8c979ec565 Update history to reflect merge of #5318 [ci skip] 2016-09-07 16:28:01 -07:00
jekyllbot
3d38e8510c Merge pull request #5318 from ashmaroli/docs-themes-update
Merge pull request 5318
2016-09-07 16:28:01 -07:00
Parker Moore
3840a38081 Convertible: set self.output in #render_all_layouts and #do_layout 2016-09-07 15:59:43 -07:00
jekyllbot
d632cdda68 Update history to reflect merge of #5334 [ci skip] 2016-09-07 15:04:17 -07:00
jekyllbot
57ab7c5f98 Merge pull request #5334 from Crunch09/issue-5144
Merge pull request 5334
2016-09-07 15:04:17 -07:00
Florian Thomas
f0293def80 [docs] add help for missing static_file e.g. on heroku
fixes #5144
2016-09-07 09:07:35 +02:00
Frank Taillandier
42b85bb82f explain how to copy theme's file 2016-09-07 02:00:51 +02:00
Ashwin Maroli
b47db14f86 add future gems to gitignore 2016-09-05 15:14:59 +05:30
Ashwin Maroli
a666e6faee update line about semver to be less authoritative 2016-09-04 13:04:24 +05:30
jekyllbot
f69671c46c Update history to reflect merge of #5320 [ci skip] 2016-09-03 13:36:22 -07:00
jekyllbot
08436d75b8 Merge pull request #5320 from jrmessias/master
Merge pull request 5320
2016-09-03 13:36:21 -07:00
Júnior Messias
da0776d70e Update url for OpenShift
Update url for Github repository with cartridge
2016-09-03 11:28:18 -03:00
Ashwin Maroli
57b86ee77e add a line about updating theme-gems in the docs 2016-09-03 18:09:06 +05:30
Eloy Espinaco
9b09d8a8e8 Add support for indented link references on excerpt
Excerpt link reference extraction is missing all the indented references
at the bottom of the page. Markdown specify that those can be indented up
to three spaces.
2016-09-02 17:21:10 -03:00
Frank Taillandier
63595f388d promote .md extensions 2016-09-02 11:17:23 +02:00
jekyllbot
45aac995d8 Update history to reflect merge of #5308 [ci skip] 2016-09-01 17:18:51 -07:00
jekyllbot
2f167aeea7 Merge pull request #5308 from jekyll/rubocop-convertible
Merge pull request 5308
2016-09-01 17:18:50 -07:00
Parker Moore
4af0f0262e Remove layouts named param from Renderer#initialize 2016-09-01 13:26:14 -07:00
jekyllbot
4f80dde8c4 Update history to reflect merge of #5224 [ci skip] 2016-08-31 06:31:01 -07:00
jekyllbot
5093849b58 Merge pull request #5224 from eduardoboucas/patch-1
Merge pull request 5224
2016-08-31 06:31:01 -07:00
jekyllbot
d905a0475a Update history to reflect merge of #5189 [ci skip] 2016-08-30 14:54:48 -07:00
jekyllbot
6a34966f20 Merge pull request #5189 from jekyll/skip-theme-if-not-string
Merge pull request 5189
2016-08-30 14:54:47 -07:00
Parker Moore
a78426f20d Convertible#read_yaml: disable Metrics/AbcSize check 2016-08-30 14:39:49 -07:00
Parker Moore
9ddc12bad8 Convertible: ensure layouts the argument and payload the argument are set properly in the renderer 2016-08-30 14:39:20 -07:00
Parker Moore
ac6bbc1906 Renderer#invalid_layout? should check if document is an excerpt 2016-08-30 14:14:52 -07:00
Parker Moore
8014c54ee0 Convertible#converters: sort the converters 2016-08-30 14:14:33 -07:00
Parker Moore
73e79f0049 Proxy Convertible#converters to Renderer#run 2016-08-30 14:14:22 -07:00
Parker Moore
8496e2e8b6 Proxy Convertible#render_liquid to Renderer 2016-08-30 14:14:12 -07:00
Parker Moore
d0f57b61d4 Proxy Convertible#transform to Renderer 2016-08-30 14:14:03 -07:00
Parker Moore
741102bd40 Proxy Convertible#converters to Renderer 2016-08-30 14:13:26 -07:00
Parker Moore
b781b9967d Proxy Convertible#render_all_layouts to Renderer.place_in_layouts 2016-08-30 14:04:57 -07:00
jekyllbot
17883b77c6 Update history to reflect merge of #5045 [ci skip] 2016-08-30 13:34:56 -07:00
jekyllbot
6b121d2d85 Merge pull request #5045 from ayastreb/document-rubocop-fix
Merge pull request 5045
2016-08-30 13:34:55 -07:00
Parker Moore
5b21f8fda9 Fix fmt errors. 2016-08-30 13:28:46 -07:00
Parker Moore
2b15b0b325 Site#configure_theme: don't do anything if theme config is unset; TEST 2016-08-30 12:17:24 -07:00
Parker Moore
4420c3b2af Make Site#configure_theme more understandable 2016-08-30 11:58:21 -07:00
Parker Moore
40cc44c2ea Reorganize history.markdown for HEAD. 2016-08-30 11:46:58 -07:00
jekyllbot
b5ee87b4ca Update history to reflect merge of #5295 [ci skip] 2016-08-30 11:17:43 -07:00
jekyllbot
7c8dd4a55e Merge pull request #5295 from ashmaroli/script-default-site
Merge pull request 5295
2016-08-30 11:17:42 -07:00
jekyllbot
f3d0a97604 Update history to reflect merge of #5304 [ci skip] 2016-08-30 11:02:59 -07:00
jekyllbot
095d5344cd Merge pull request #5304 from crispgm/site-exclude
Merge pull request 5304
2016-08-30 11:02:58 -07:00
Ashwin Maroli
b2ece36d27 remove variable workdir 2016-08-30 22:15:00 +05:30
David Zhang
160782ec50 Site: exclude README.md and .gitignore [ci skip] 2016-08-30 19:54:33 +08:00
Ashwin Maroli
f3093e2f6f change workdir assignment 2016-08-30 09:35:07 +05:30
Ashwin Maroli
34404af031 execute jekyll from cloned source 2016-08-30 09:29:12 +05:30
jekyllbot
20f9c26088 Update history to reflect merge of #5280 [ci skip] 2016-08-29 18:55:58 -07:00
jekyllbot
0ad9fa3ba3 Merge pull request #5280 from Anthony-Gaudino/documentation-hook-payload
Merge pull request 5280
2016-08-29 18:55:57 -07:00
jekyllbot
809ceea107 Update history to reflect merge of #5240 [ci skip] 2016-08-29 11:57:23 -07:00
jekyllbot
bd4e7465ef Merge pull request #5240 from XhmikosR/appveyor
Merge pull request 5240
2016-08-29 11:57:22 -07:00
Anthony Gaudino
fd65e6ce32 Improve sentence to reduce confusion 2016-08-28 12:48:25 -03:00
Frank Taillandier
a9da814f17 add basename and name variables for static files 2016-08-27 11:22:24 +02:00
Frank Taillandier
349569592e [docs] add examples for static files liquid metadata 2016-08-27 10:06:29 +02:00
XhmikosR
d0d41792f9 script/default-site: add ruby in exec command.
Windows doesn't recognize `exe/jekyll` as Ruby executable so this should work everywhere.
2016-08-27 08:34:20 +03:00
XhmikosR
d49bf808b6 Update AppVeyor config.
Install gems in ./vendor/bundle and cache those only.
2016-08-27 08:34:20 +03:00
jekyllbot
02602bebd7 Update history to reflect merge of #5293 [ci skip] 2016-08-26 18:56:42 -07:00
jekyllbot
4f8d8557e4 Merge pull request #5293 from crispgm/exclude-gemfile-in-config
Merge pull request 5293
2016-08-26 18:56:41 -07:00
jekyllbot
488496a3a6 Update history to reflect merge of #5281 [ci skip] 2016-08-26 17:04:51 -07:00
jekyllbot
1979426812 Merge pull request #5281 from Anthony-Gaudino/site-documentation-links
Merge pull request 5281
2016-08-26 17:04:50 -07:00
jekyllbot
35846b8406 Update history to reflect merge of #5294 [ci skip] 2016-08-26 16:54:10 -07:00
jekyllbot
0e2aa46bcb Merge pull request #5294 from svachmic/patch-1
Merge pull request 5294
2016-08-26 16:54:09 -07:00
jekyllbot
b0425d8308 Update history to reflect merge of #5262 [ci skip] 2016-08-26 16:11:38 -07:00
jekyllbot
1930e13cad Merge pull request #5262 from ashmaroli/highlighter
Merge pull request 5262
2016-08-26 16:11:37 -07:00
Michal Švácha
891a66bddb Word update
Just a little update - I guess Travis has changed its icon a bit. It's not a wrench icon, but a gear one.
2016-08-26 13:56:41 +02:00
Heng, K. (Stephen)
23d7929948 Test case for issue #5192, where Jekyll.sanitized_path strips drive name on Windows incorrectly 2016-08-26 11:43:32 +08:00
Heng, K. (Stephen)
0d8796fbe6 Test case for issue #5276, where Jekyll.sanitized_path strips base path incorrectly if file path has matching prefix 2016-08-26 11:20:03 +08:00
Ashwin Maroli
7f578b5dd8 sassy update to match 2016-08-26 06:55:18 +05:30
Ashwin Maroli
1cd880f9d0 replace liquid highlight tag with backticks 2016-08-26 06:55:18 +05:30
jekyllbot
f56f252b28 Update history to reflect merge of #5291 [ci skip] 2016-08-25 11:13:55 -07:00
jekyllbot
59b8f2da55 Merge pull request #5291 from mertkahyaoglu/jekyll-admin-post
Merge pull request 5291
2016-08-25 11:13:54 -07:00
Heng, K. (Stephen)
7892c5e1f3 Fix issue #5276, where path strips root destination dir if filename matches 2016-08-25 18:35:09 +08:00
Anatoliy Yastreb
2183d9d6b4 Implement respond_to_missing? in Document 2016-08-25 12:13:34 +02:00
Anatoliy Yastreb
158e02623a rubocop: reduce code complexity 2016-08-25 11:22:40 +02:00
David Zhang
9c33754f4f Exclude Gemfile in _config.yml template 2016-08-25 14:54:59 +08:00
mertkahyaoglu
299e89df01 up timezone 2016-08-25 09:50:03 +03:00
mertkahyaoglu
8903038571 up date 2016-08-25 02:57:24 +03:00
mertkahyaoglu
250ca228c9 add post about jekyll admin initial release 2016-08-25 01:53:00 +03:00
jekyllbot
e0580c8909 Update history to reflect merge of #5286 [ci skip] 2016-08-24 13:16:42 -07:00
jekyllbot
ff55309dd7 Merge pull request #5286 from DirtyF/issue-template
Merge pull request 5286
2016-08-24 13:16:41 -07:00
jekyllbot
13330caa19 Update history to reflect merge of #5287 [ci skip] 2016-08-24 13:15:39 -07:00
jekyllbot
e4233b055e Merge pull request #5287 from ashmaroli/docs-fix
Merge pull request 5287
2016-08-24 13:15:38 -07:00
Ashwin Maroli
a74a6be4c4 update homepage to reflect merge of #5258 2016-08-24 19:37:10 +05:30
Frank Taillandier
a5470a32f1 replace duplicate with local test [ci-skip] 2016-08-24 12:50:09 +02:00
Anthony Gaudino
df1cafd507 On the site documentation section, links to documentation items point to the "jekyllrb.com" website, this means that users testing changes might get confused because they will see the official external website instead of their local website upon clicking those links. 2016-08-23 21:48:35 -03:00
jekyllbot
7c6fde1ac2 Update history to reflect merge of #5273 [ci skip] 2016-08-23 17:19:14 -07:00
jekyllbot
bcedf2079f Merge pull request #5273 from jekyll/affinity-teams-and-their-captains
Merge pull request 5273
2016-08-23 17:19:13 -07:00
Anthony Gaudino
cf33a9c427 The hook ":site, :post_render" also provides a "payload", but the plugins documentation section of the official Jekyll site doesnt inform this. 2016-08-23 21:06:11 -03:00
jekyllbot
8aa54ad801 Update history to reflect merge of #5279 [ci skip] 2016-08-23 13:01:31 -07:00
jekyllbot
0a75156f85 Merge pull request #5279 from DirtyF/document-profile-option
Merge pull request 5279
2016-08-23 13:01:30 -07:00
Frank Taillandier
13ce18d6a6 document --profile option 2016-08-23 21:36:06 +02:00
jekyllbot
276404c3f8 Update history to reflect merge of #5272 [ci skip] 2016-08-23 09:15:36 -07:00
jekyllbot
d759cfbeb9 Merge pull request #5272 from Anthony-Gaudino/site_install_command
Merge pull request 5272
2016-08-23 09:15:36 -07:00
jekyllbot
b908c3de1d Update history to reflect merge of #5274 [ci skip] 2016-08-23 07:40:10 -07:00
jekyllbot
6b289314e1 Merge pull request #5274 from DirtyF/document-lsi
Merge pull request 5274
2016-08-23 07:40:09 -07:00
Frank Taillandier
27139f40e2 Link to latent semantic indexing on Wikipedia 2016-08-23 02:24:30 +02:00
Parker Moore
478ea05c2e docs: add affinity team captain docs 2016-08-22 15:58:32 -07:00
Parker Moore
ade752b1c3 capital_H_dangit 2016-08-22 13:38:24 -07:00
jekyllbot
4319a752b1 Update history to reflect merge of #5271 [ci skip] 2016-08-22 13:28:31 -07:00
jekyllbot
3180b1490d Merge pull request #5271 from cchorn/patch-2
Merge pull request 5271
2016-08-22 13:28:30 -07:00
Anthony Gaudino
c5e1c66b73 Many of the gems installed bu just running bundle install are not necessary to test the Jekyll site. Changed the install command to avoid installing unecessary gems. 2016-08-22 16:13:00 -03:00
Charles Horn
a24636d1dc Update troubleshooting.md
update to include an error for a jekyll build related to issues ...
https://github.com/jekyll/jekyll/issues/5267
https://github.com/jekyll/jekyll/issues/2938
2016-08-22 12:22:37 -04:00
Frank Taillandier
326332a5d5 Rename filename to name 2016-08-21 21:32:26 +02:00
Frank Taillandier
87c00b2756 Get static filename 2016-08-20 17:42:05 +02:00
jekyllbot
594a6bf193 Update history to reflect merge of #5258 [ci skip] 2016-08-19 07:16:05 -07:00
jekyllbot
db61028b58 Merge pull request #5258 from ebabel-eu/patch-1
Merge pull request 5258
2016-08-19 07:16:04 -07:00
Nadjib Amar
3dcad7284b combined jekyll and bundler install in one line 2016-08-19 05:46:02 +02:00
Nadjib Amar
830f157f51 Bundler isn't installed by default
The bundle command requires the bundler gem to have been installed before it's run.
2016-08-19 05:38:05 +02:00
Heng, K. (Stephen)
596f5d1af3 Proposed fix for #5192
Strip drive name only when necessary.
2016-08-18 12:02:00 +08:00
jekyllbot
9061f0b1f3 Update history to reflect merge of #5249 [ci skip] 2016-08-17 17:31:54 -07:00
jekyllbot
9716b57e10 Merge pull request #5249 from crispgm/fix-theme-highlight
Merge pull request 5249
2016-08-17 17:31:53 -07:00
jekyllbot
1e97ae014f Update history to reflect merge of #5244 [ci skip] 2016-08-17 17:25:17 -07:00
jekyllbot
d0ae757714 Merge pull request #5244 from mkasberg/master
Merge pull request 5244
2016-08-17 17:25:17 -07:00
jekyllbot
06b3d72aa3 Update history to reflect merge of #5254 [ci skip] 2016-08-17 13:44:24 -07:00
jekyllbot
1b36e9fe85 Merge pull request #5254 from pmarsceill/fix-logo-stretch
Merge pull request 5254
2016-08-17 13:44:23 -07:00
Patrick Marsceill
748b2f1279 Maintain aspect ratio with height: auto; 2016-08-17 13:49:32 -04:00
jekyllbot
dadf43798e Update history to reflect merge of #5239 [ci skip] 2016-08-16 11:15:42 -07:00
jekyllbot
b82b93c7c0 Merge pull request #5239 from ashmaroli/colorize-embed
Merge pull request 5239
2016-08-16 11:15:41 -07:00
Ashwin Maroli
a9f92278d3 colorize interpolated text in Jekyll.logger.info 2016-08-16 22:50:54 +05:30
Jordon Bedwell
f1f8319566 Fix #5233: Increase our ability to detect Windows.
This increases our ability to detect Windows, and to detect Windows+Bash.  It also adds a message to Windows for users who try to "--watch", also noting to to them to check out the Windows ticket so eventually somebody pings us if this issue is fixed. /cc @TAGraves
2016-08-16 03:46:03 -05:00
David Zhang
912079a796 Fix theme highlight 2016-08-16 13:57:19 +08:00
Mike Kasberg
e080c7f1ce Fix a link in deployment-methods.md
The link to the scp deploy script was broken - it appears someone
changed the link text and did not update the matching link text in the
markdown footer.

Because the script is really simple, and the script originally linked
includes some unnecessary scss commands, let's just inline the script.
2016-08-15 15:01:59 -06:00
jekyllbot
9f8876a332 Update history to reflect merge of #5221 [ci skip] 2016-08-11 18:53:33 -07:00
jekyllbot
72629091d1 Merge pull request #5221 from ashmaroli/mod-travis
Merge pull request 5221
2016-08-11 18:53:32 -07:00
jekyllbot
30399528e4 Update history to reflect merge of #5222 [ci skip] 2016-08-11 14:22:51 -07:00
jekyllbot
a49a5dcf4e Merge pull request #5222 from stkent/patch-1
Merge pull request 5222
2016-08-11 14:22:51 -07:00
jekyllbot
dca8047f77 Update history to reflect merge of #5226 [ci skip] 2016-08-10 22:21:49 -07:00
jekyllbot
5a243fb64c Merge pull request #5226 from gerardorn/patch-1
Merge pull request 5226
2016-08-10 22:21:48 -07:00
Gerardo
3e65dd36a9 fixed typo 2016-08-11 00:03:59 -05:00
Eduardo Bouças
e6f3fd347c Add link to Staticman
This PR adds a link to [Staticman](https://staticman.net), a free and open source platform to insert user-generated into a Jekyll site by converting entries to data files and pushing them to the repository where the site lives.
2016-08-10 10:08:00 +01:00
Stuart Kent
b3ce1392db Add missing comma 2016-08-10 08:02:41 +01:00
Ashwin Maroli
1c68c23f85 update rubies in travis 2016-08-10 12:02:01 +05:30
Jordon Bedwell
8e361dfe7d That should be jruby-9.1.2.0. 2016-08-09 23:55:20 -05:00
Jordon Bedwell
4d44940b9c Fix bad colon in .travis.yml 2016-08-09 23:54:21 -05:00
Jordon Bedwell
fbebdb7ce7 Cleanup .travis.yml so it can be updated more cleanly.
Use shared values in YAML so that only certain pieces of .travis.yml need to be updated in order to update Ruby versions.  Things should cascade so that if people send a pull request they can update just RVM field.
2016-08-09 23:53:59 -05:00
jekyllbot
088e931901 Update history to reflect merge of #5214 [ci skip] 2016-08-08 19:05:28 -07:00
jekyllbot
c526c9dd62 Merge pull request #5214 from DirtyF/fix-5213
Merge pull request 5214
2016-08-08 19:05:27 -07:00
Frank Taillandier
519ccdf4d9 Remove mention of page for link tag
fix #5213
2016-08-08 21:39:31 +02:00
jekyllbot
4bff65be90 Update history to reflect merge of #5167 [ci skip] 2016-08-07 12:42:19 -07:00
jekyllbot
554749ae0a Merge pull request #5167 from Crunch09/plugin_manager_tests
Merge pull request 5167
2016-08-07 12:42:18 -07:00
Parker Moore
b937757dce Site#configure_theme: warn in case the 'theme' config is not a string 2016-08-07 12:03:50 -07:00
Florian Thomas
70ba8c578a update require_gems test 2016-08-07 21:01:09 +02:00
Parker Moore
de6476812f Update history to reflect merge of #5182
[ci skip]
2016-08-07 11:55:24 -07:00
Parker Moore
7841db8acf Merge branch 'DirtyF-doc-link-tag'
* DirtyF-doc-link-tag:
  templates.md: {% link %} tag only accepts collection documents
  add more link tag usage examples
  [docs] link tag example for a post
  [docs] Document link Liquid tag
2016-08-07 11:54:40 -07:00
Parker Moore
ab4abb1933 templates.md: {% link %} tag only accepts collection documents
Remove examples of pages/static file links until it's released.
#5182 #5199
2016-08-07 11:54:32 -07:00
Florian Thomas
539154a158 replace assert false, ... with refute 2016-08-07 20:54:22 +02:00
jekyllbot
06126af5cc Update history to reflect merge of #5205 [ci skip] 2016-08-07 11:26:58 -07:00
jekyllbot
d9a4f6a59a Merge pull request #5205 from DirtyF/document-new-theme
Merge pull request 5205
2016-08-07 11:26:58 -07:00
Stephen Checkoway
6167c09569 Run hooks in priority order.
Low priority hooks are being run before higher priority hooks. This is easy to
demonstrate with the following plugin:

    1.upto(10).each do |n|
      Jekyll::Hooks.register :site, :after_reset, priority: Jekyll::Hooks::PRIORITY_MAP[:low] do
        puts "Low #{n}"
      end
      Jekyll::Hooks.register :site, :after_reset, priority: Jekyll::Hooks::PRIORITY_MAP[:normal] do
        puts "Normal #{n}"
      end
      Jekyll::Hooks.register :site, :after_reset, priority: Jekyll::Hooks::PRIORITY_MAP[:high] do
        puts "High #{n}"
      end
    end

Sorting by the negative of the priority and then by the order the hook was
added does the right thing.
2016-08-06 20:56:34 -05:00
jekyllbot
bc7aaf5274 Update history to reflect merge of #5183 [ci skip] 2016-08-06 12:30:35 -07:00
jekyllbot
d0f55d7207 Merge pull request #5183 from nhoizey/patch-1
Merge pull request 5183
2016-08-06 12:30:34 -07:00
jekyllbot
c9bf8d0726 Update history to reflect merge of #5196 [ci skip] 2016-08-06 12:27:49 -07:00
jekyllbot
61eda2ee40 Merge pull request #5196 from jekyll/site-template-jekyll-feed
Merge pull request 5196
2016-08-06 12:27:48 -07:00
Frank Taillandier
aa8d7772d5 fix hightlight tag 2016-08-05 21:25:19 +02:00
Frank Taillandier
6ab8b5ffe1 Documentation : new-theme command 2016-08-05 21:15:57 +02:00
Jeff Kolesky
e0ce4a00f8 Fixes link tag to work with static files 2016-08-04 20:03:01 -07:00
Jeff Kolesky
05445b81c7 Fixes tests to account for new info.md file 2016-08-04 19:40:14 -07:00
Frank Taillandier
50854d2f76 add more link tag usage examples 2016-08-04 10:56:39 +02:00
Jeff Kolesky
82d6657ae8 Adds ability to link to all files
Fixes request made in #4624 and bug found in #5182
2016-08-03 15:08:26 -07:00
jekyllbot
bc7eb70385 Update history to reflect merge of #5190 [ci skip] 2016-08-03 11:57:52 -07:00
jekyllbot
a63a6d8487 Merge pull request #5190 from shingo-nakanishi/master
Merge pull request 5190
2016-08-03 11:57:51 -07:00
jekyllbot
9e4f469469 Update history to reflect merge of #5194 [ci skip] 2016-08-03 11:57:21 -07:00
jekyllbot
ca77dae267 Merge pull request #5194 from nhoizey/patch-2
Merge pull request 5194
2016-08-03 11:57:20 -07:00
Ben Balter
58cd8f3f4e use jekyll-feed for default site RSS feed 2016-08-03 12:10:44 -04:00
Nicolas Hoizey
ddff013696 Fix path in the prompt 2016-08-03 14:00:53 +02:00
shingo-nakanishi
f084de7bc9 need subcommand build
simply run the `jekyll` shows

```
A subcommand is required. 
jekyll 3.2.1 -- Jekyll is a blog-aware, static site generator in Ruby
``` 

need subcommand build
2016-08-03 10:56:43 +09:00
jekyllbot
01c59004e9 Update history to reflect merge of #5180 [ci skip] 2016-08-02 17:42:13 -07:00
jekyllbot
cb99cf603a Merge pull request #5180 from XhmikosR/patch-1
Merge pull request 5180
2016-08-02 17:42:12 -07:00
jekyllbot
d3ae8403ea Update history to reflect merge of #5185 [ci skip] 2016-08-02 17:30:21 -07:00
jekyllbot
997c61470b Merge pull request #5185 from crispgm/doc-for-filters
Merge pull request 5185
2016-08-02 17:30:20 -07:00
Parker Moore
2bd592077d Site#configure_theme: do not set theme unless it's a string
Some previous ad-hoc 'themes' used this configuration option to store a hash of values.
In that case, we should simply pretend we have no theme.
2016-08-02 17:11:40 -07:00
Parker Moore
da0b456288 Release 💎 3.2.1 2016-08-02 17:06:23 -07:00
Parker Moore
eef3687486 Merge pull request #5187 from jekyll/release-3-2-1
Site updates for v3.2.1
2016-08-02 17:04:36 -07:00
Parker Moore
b5dcd4b295 New site/latest_version.txt 2016-08-02 16:17:28 -07:00
Parker Moore
57c6408b7f Do not generate the site in verbose mode. 2016-08-02 16:17:28 -07:00
Parker Moore
d504eb5ce9 Gemfile: Be looser about jekyll plugin versions. 2016-08-02 16:17:28 -07:00
Parker Moore
15dc18343c Add release post for 3.2.1 & update History & version 2016-08-02 16:17:28 -07:00
jekyllbot
d4a68eb642 Update history to reflect merge of #5188 [ci skip] 2016-08-02 16:13:07 -07:00
jekyllbot
a7bc7ff9c7 Merge pull request #5188 from jekyll/default-site-read-from-local
Merge pull request 5188
2016-08-02 16:13:06 -07:00
Parker Moore
3943de066c script/default-site: read Jekyll source from local clone
If you bump the version in the repo, then it all goes haywire.
2016-08-02 15:55:33 -07:00
DirtyF
d5e96757a5 [docs] link tag example for a post
* put link tag before post_url
* example of link to a post with link tag
2016-08-02 20:24:30 +02:00
XhmikosR
801d12b916 Gemfile: specify x64_mingw for the optional deps. 2016-08-02 20:39:27 +03:00
XhmikosR
050aacfc85 Update appveyor.yml.
* rename variables
* add `default-site` target
* remove `fast_finish` in order to match Travis CI behavior
* run cucumber tests only on the latest Ruby
2016-08-02 20:39:27 +03:00
David Zhang
3f1b12972b Fix inspect 2016-08-03 01:21:27 +08:00
David Zhang
20e1da8d0b Document for to_integer and inspect filters 2016-08-03 01:10:58 +08:00
Nicolas Hoizey
9ccd0d767a Add the Jekyll Cloudinary plugin 2016-08-02 14:41:14 +02:00
DirtyF
bf8c15f949 [docs] Document link Liquid tag 2016-08-02 09:28:36 +02:00
jekyllbot
6d2b344c0e Update history to reflect merge of #5178 [ci skip] 2016-08-01 22:06:56 -07:00
jekyllbot
88b57ce649 Merge pull request #5178 from jekyll/default-site-specify-gemfile
Merge pull request 5178
2016-08-01 22:06:55 -07:00
Parker Moore
663117403d script/default-site: specify BUNDLE_GEMFILE for new site 2016-08-01 21:56:28 -07:00
jekyllbot
c4483a3a29 Update history to reflect merge of #5168 [ci skip] 2016-08-01 17:36:40 -07:00
jekyllbot
896a502129 Merge pull request #5168 from jekyll/change-quickstart
Merge pull request 5168
2016-08-01 17:36:40 -07:00
jekyllbot
8408449551 Update history to reflect merge of #5164 [ci skip] 2016-08-01 17:34:52 -07:00
jekyllbot
6e0119d5e1 Merge pull request #5164 from jekyll/fix-windows-error
Merge pull request 5164
2016-08-01 17:34:52 -07:00
jekyllbot
b113c01198 Merge pull request #5169 from DirtyF/change-quickstart
Merge pull request 5169
2016-08-01 17:34:17 -07:00
jekyllbot
c6417e8c82 Update history to reflect merge of #5169 [ci skip] 2016-08-01 17:34:17 -07:00
jekyllbot
c6f2459b4e Update history to reflect merge of #5154 [ci skip] 2016-08-01 17:33:55 -07:00
jekyllbot
73b7bd8172 Merge pull request #5154 from jekyll/build-the-site
Merge pull request 5154
2016-08-01 17:33:54 -07:00
Parker Moore
28365aef96 Run the CI, please. 2016-08-01 17:28:52 -07:00
Parker Moore
52f5dc154c Merge branch 'master' into build-the-site
* master:
  Update history to reflect merge of #5156 [ci skip]
  Update history to reflect merge of #5177 [ci skip]
  Update history to reflect merge of #5173 [ci skip]
  Minor updates and corrections
  Future True on GitHub Pages note
  resolve theme root before sanitizing
  dont double sanitize theme folder paths
2016-08-01 17:28:19 -07:00
Parker Moore
dc8c6e0e43 Merge branch 'master' into build-the-site
* master:
  Update history to reflect merge of #5152 [ci skip]
  Missing trailing |
  Update history to reflect merge of #5158 [ci skip]
  Also include LICENSE and README
  note that themes have been released
  Update history to reflect merge of #5143 [ci skip]
  Update history to reflect merge of #5150 [ci skip]
  Revert "Readability: lib/jekyll/static_file.rb."
  include theme directories in default gemspec
  [site] enable excerpts
  Centre align text and use nav styles on helpful links.
  Puns FTW
  Add helpful links and minor alignment tweak.
  Create error template that has no main nav or footer.
  Use more generic wording.
  sitemap: false so that the error page is not indexed
  Initial 404 page
2016-08-01 17:28:05 -07:00
jekyllbot
8540487997 Update history to reflect merge of #5156 [ci skip] 2016-08-01 17:27:02 -07:00
jekyllbot
95e9774100 Merge pull request #5156 from jekyll/theme-source-fix
Merge pull request 5156
2016-08-01 17:27:02 -07:00
jekyllbot
e735e45156 Update history to reflect merge of #5177 [ci skip] 2016-08-01 17:25:44 -07:00
jekyllbot
ae72c64441 Merge pull request #5177 from gep13/patch-1
Merge pull request 5177
2016-08-01 17:25:43 -07:00
Parker Moore
4d0d528fd5 script/default-site: give debug output 2016-08-01 14:49:52 -07:00
jekyllbot
26b827a536 Update history to reflect merge of #5173 [ci skip] 2016-08-01 13:14:07 -07:00
jekyllbot
1374a6c84c Merge pull request #5173 from danayel/patch-1
Merge pull request 5173
2016-08-01 13:14:06 -07:00
Gary Ewan Park
c5bd075bc7 Minor updates and corrections
- Corrected highlighting on multi-line sections
- Replace `cinst` with `choco install` for consistency
2016-08-01 19:20:59 +01:00
Ben Balter
4dab0c7da6 Only build default site once 2016-08-01 13:10:23 -04:00
Daniel Chapman
65d1dc48f3 Future True on GitHub Pages note 2016-08-01 11:05:12 +09:00
DirtyF
207b6f19f0 update instructions to require bundler 2016-07-30 18:22:51 +02:00
Parker Moore
9d45644e6c docs/quickstart: update instructions to require bundler
With gem-based themes being bundled in the new site via the `Gemfile`, we
should ask folks to use Bundler wherever possible. This should lead to more
successful installations and getting the base site setup properly.

The only trouble this introduces is it puts a dependency on Bundler. That
said, I'm totally fine with requiring everyone use Bundler for this site.
How could we best install bundler in these instructions?

/cc @jekyll/documentation
2016-07-30 11:35:06 -04:00
Florian Thomas
d158d73ce1 add missing tests 2016-07-30 15:49:16 +02:00
Florian Thomas
2236ee4284 migrate existing tests to should syntax 2016-07-30 15:48:21 +02:00
Parker Moore
d4e18fc979 Layout: set relative_path without using Pathname
Presently, on a Windows machine, you get an ArgumentError on Windows:

     Generating...
C:/Ruby23-x64/lib/ruby/2.3.0/pathname.rb:520:in `relative_path_from':
    different prefix: "/" and "C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/minima-1.0.1" (ArgumentError)
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/jekyll-3.2.0/lib/jekyll/layout.rb:61:in `relative_path'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/jekyll-3.2.0/lib/jekyll/renderer.rb:161:in `place_in_layouts'
    from C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/jekyll-3.2.0/lib/jekyll/renderer.rb:71:in `run'

This doesn't affect filesystems which do not use drive names.
2016-07-29 12:16:06 -07:00
jekyllbot
3b2bbcb70f Update history to reflect merge of #5152 [ci skip] 2016-07-28 14:02:11 -07:00
jekyllbot
8e25b8bffb Merge pull request #5152 from jekyll/theme-dir-regex-fix
Merge pull request 5152
2016-07-28 14:02:10 -07:00
Ben Balter
909800839c Missing trailing | 2016-07-28 16:31:20 -04:00
jekyllbot
27cfa00a43 Update history to reflect merge of #5158 [ci skip] 2016-07-28 13:22:20 -07:00
jekyllbot
ff80d2f2b5 Merge pull request #5158 from jekyll/release-the-themes
Merge pull request 5158
2016-07-28 13:22:19 -07:00
Ben Balter
9220c5a634 Also include LICENSE and README 2016-07-28 15:43:45 -04:00
Ben Balter
b22fa7ce4e note that themes have been released 2016-07-28 15:39:41 -04:00
Ben Balter
8b69c6f0b5 resolve theme root before sanitizing 2016-07-28 15:12:31 -04:00
jekyllbot
94af8ca75a Update history to reflect merge of #5143 [ci skip] 2016-07-28 11:58:26 -07:00
jekyllbot
f29ebc4911 Merge pull request #5143 from adampetrie/jekyllrb-404
Merge pull request 5143
2016-07-28 11:58:26 -07:00
jekyllbot
16ff4c12bb Update history to reflect merge of #5150 [ci skip] 2016-07-28 11:57:21 -07:00
jekyllbot
e01f1ece48 Merge pull request #5150 from jekyll/add-excerpts
Merge pull request 5150
2016-07-28 11:57:20 -07:00
Ben Balter
2351ef6bbe dont double sanitize theme folder paths 2016-07-28 14:46:05 -04:00
Ben Balter
bd96ca4ab6 bundle install before running bundle exec 2016-07-28 14:15:48 -04:00
Jordon Bedwell
54281530fb Revert "Readability: lib/jekyll/static_file.rb."
This reverts commit 26f1ea2487.
2016-07-28 13:15:29 -05:00
Ben Balter
4278f856ef add default site test to travis 2016-07-28 10:50:45 -04:00
Ben Balter
ca03a41564 add test to build the default site 2016-07-28 10:43:46 -04:00
Ben Balter
1bf47ec394 include theme directories in default gemspec 2016-07-28 10:21:30 -04:00
Ben Balter
6292476482 [site] enable excerpts 2016-07-28 09:52:30 -04:00
Jordon Bedwell
26f1ea2487 Readability: lib/jekyll/static_file.rb. 2016-07-27 23:59:50 -05:00
Parker Moore
dd82c72e14 New latest version for Jekyll. 2016-07-27 18:40:28 -07:00
Adam Petrie
989fc9c3db Centre align text and use nav styles on helpful links. 2016-07-27 19:54:07 -04:00
Adam Petrie
1155371f4e Puns FTW 2016-07-27 19:53:36 -04:00
Adam Petrie
83456e7cd2 Add helpful links and minor alignment tweak. 2016-07-27 19:09:20 -04:00
Adam Petrie
142957ff49 Create error template that has no main nav or footer. 2016-07-27 19:08:37 -04:00
Adam Petrie
954c0bfe07 Use more generic wording. 2016-07-27 18:33:16 -04:00
Adam Petrie
ea185f11af sitemap: false so that the error page is not indexed 2016-07-27 18:32:49 -04:00
Adam Petrie
b65aa4748b Initial 404 page 2016-07-27 17:00:19 -04:00
Marko Locher
73223f3a5a Fix Rubocop warnings 2016-07-14 12:15:00 +02:00
Marko Locher
49e97ef9b0 Add test case for deprecated post comparison
Checks that `post_url` works for nested posts even if the path isn't specified. Also checks that a deprecation message is shown in the build log.
2016-07-14 11:53:58 +02:00
Marko Locher
0e8f204011 Fix #3926 post_url helper with sub-directories
Instead of matching the the value provided to `post_url` against
the basename, test against the relative path.

Updated the regexp to match both
  * _posts/category
  * category/_posts
2016-07-14 11:53:58 +02:00
Jussi Kinnula
4effe25cc1 Fix slugify test 2016-03-29 10:11:47 +03:00
Jussi Kinnula
4c65772c44 One final "urlsafe" replaced with "ascii" 2016-03-29 10:01:08 +03:00
Jussi Kinnula
764a2c1b39 Change urlsafe to ascii also when actually slugifying 2016-03-29 09:46:42 +03:00
Jussi Kinnula
487631e935 Add tests for ascii slugify mode 2016-03-29 09:07:30 +03:00
Jussi Kinnula
e823ac5180 Rename urlsafe to ascii, and document it (on utils.rb) 2016-03-29 09:07:12 +03:00
Jussi Kinnula
c0dec091a2 Add urlsafe to accepted slugify modes 2016-03-18 17:14:54 +02:00
Jussi Kinnula
36dc8c2169 Add urlsafe method for slugify 2016-03-18 11:13:06 +02:00
128 changed files with 2358 additions and 830 deletions

14
.editorconfig Normal file
View File

@@ -0,0 +1,14 @@
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

View File

@@ -4,18 +4,21 @@
and check.) If there is no need for certain fields like output and redirection, please delete
those headers before submitting. We know not all tickets require those steps.
Otherwise, please try to be as detailed as possible.
If you are unsure this is a bug in Jekyll, or this is a bug caused
by a plugin that isn't directly related to Jekyll, or if this is just
a generic usage question, please consider asking your question at
https://talk.jekyllrb.com where non-bug questions go.
Please make sure to mention an affinity team whose responsibilities
most closely align with your issue.
Thanks!
-->
- [ ] I believe this to be a bug, not a question about using Jekyll.
- [ ] I Updated to the latest Jekyll (or) if on Github Pages to the latest `github-pages`
- [ ] I Read the CONTRIBUTION file at https://jekyllrb.com/docs/contributing/
- [ ] I updated to the latest Jekyll (or) if on GitHub Pages to the latest `github-pages`
- [ ] I read the CONTRIBUTION file at https://jekyllrb.com/docs/contributing/
- [ ] This is a feature request.
---
@@ -38,20 +41,20 @@
- [ ] I was trying to install.
- [ ] There is a broken Plugin API.
- [ ] I had an error on Github Pages, and I have not tested locally.
- [ ] I had an error on Github Pages, and Github Support said it was a Jekyll Bug.
- [ ] I had an error on Github Pages and I did not test it locally.
- [ ] I had an error on GitHub Pages, and I have reproduced it locally.
- [ ] I had an error on GitHub Pages, and GitHub Support said it was a Jekyll Bug.
- [ ] I had an error on GitHub Pages and I did not test it locally.
- [ ] I was trying to build.
- [ ] It was another bug.
## My Reproduction Steps
<!--
If this error occured on Github Pages, please try to provide us with logs,
If this error occured on GitHub Pages, please try to provide us with logs,
and look at them yourself, to determine if this is an actual Jekyll bug. In
the event you are unsure, file a ticket, however, when you do please provide
the logs (strip them of personal information.)
If you have trouble finding your logs, please email support@github.com and
they will happily help you. If you cannot find logs, please try your best to
replicate it locally because we cannot fix a problem if we do not know
@@ -62,17 +65,18 @@
Insert the steps you took to for this problem to exist. Such as the
directories you created and, the full command you ran, and include any
plugins you have installed, this is very important.
If your steps are complicated, you can also submit a Github
If your steps are complicated, you can also submit a GitHub
repository (please no zips, they will be removed and rejected by maintainers,)
and just supply a command for us to reproduce it ourselves.
-->
## The Output I Wanted
<!--
<!--
Insert the output from the command. Alter it as little as you can.
The minimum should be personal information. Though we normally don't log
anything like that so there should be no need to alter it.
-->
/cc include any Jekyll affinity teams here (see https://teams.jekyllrb.com/ for more info)

View File

@@ -4,10 +4,9 @@ AllCops:
Include:
- lib/**/*.rb
Exclude:
- lib/jekyll/convertible.rb
- lib/jekyll/document.rb
- lib/jekyll/renderer.rb
- bin/**/*
- exe/**/*
- benchmark/**/*
- script/**/*
- vendor/**/*
@@ -18,14 +17,18 @@ Lint/UnreachableCode:
Lint/UselessAccessModifier:
Enabled: false
Metrics/AbcSize:
Max: 20
Max: 21
Metrics/BlockLength:
Exclude:
- test/**/*.rb
- lib/jekyll/configuration.rb
Metrics/ClassLength:
Exclude:
- !ruby/regexp /features\/.*.rb$/
- !ruby/regexp /test\/.*.rb$/
Max: 300
Metrics/CyclomaticComplexity:
Max: 8
Max: 9
Metrics/LineLength:
Exclude:
- !ruby/regexp /features\/.*.rb/
@@ -36,6 +39,8 @@ Metrics/MethodLength:
Max: 20
Severity: error
Metrics/ModuleLength:
Exclude:
- lib/jekyll/filters.rb
Max: 240
Metrics/ParameterLists:
Max: 4

View File

@@ -5,31 +5,31 @@ language: ruby
sudo: false
rvm:
- &ruby1 2.3.0
- &ruby2 2.2.4
- &ruby3 2.1.8
- &ruby1 2.3.1
- &ruby2 2.2.5
- &ruby3 2.1.9
- &jruby jruby-9.1.2.0
matrix:
include:
- rvm: 2.3.0
- rvm: *ruby1
env: TEST_SUITE=fmt
- rvm: jruby-9.0.5.0
env: TEST_SUITE=test
- rvm: *ruby1
env: TEST_SUITE=default-site
exclude:
- rvm: *jruby
env: TEST_SUITE=cucumber
env:
matrix:
- TEST_SUITE=test
- TEST_SUITE=cucumber
branches:
only:
- master
- themes
notifications:
email:
recipients:
- jordon@envygeeks.io
slack:
secure: "\
dNdKk6nahNURIUbO3ULhA09/vTEQjK0fNbgjVjeYPEvROHgQBP1cIP3AJy8aWs8rl5Yyow4Y\

16
Gemfile
View File

@@ -18,7 +18,7 @@ end
#
group :test do
gem "rubocop"
gem "rubocop", "~> 0.44.1"
gem "cucumber", "~> 2.1"
gem "jekyll_test_plugin"
gem "jekyll_test_plugin_malicious"
@@ -63,16 +63,16 @@ group :jekyll_optional_dependencies do
gem "toml", "~> 0.1.0"
gem "coderay", "~> 1.1.0"
gem "jekyll-docs", :path => '../docs' if Dir.exist?('../docs') && ENV['JEKYLL_VERSION']
gem "jekyll-gist", "~> 1.0"
gem "jekyll-feed", "~> 0.1.3"
gem "jekyll-coffeescript", "~> 1.0"
gem "jekyll-redirect-from", "~> 0.9.1"
gem "jekyll-paginate", "~> 1.0"
gem "jekyll-gist"
gem "jekyll-feed"
gem "jekyll-coffeescript"
gem "jekyll-redirect-from"
gem "jekyll-paginate"
gem "mime-types", "~> 3.0"
gem "kramdown", "~> 1.9"
gem "rdoc", "~> 4.2"
platform :ruby, :mswin, :mingw do
platform :ruby, :mswin, :mingw, :x64_mingw do
gem "rdiscount", "~> 2.0"
gem "pygments.rb", "~> 0.6.0"
gem "redcarpet", "~> 3.2", ">= 3.2.3"
@@ -90,7 +90,7 @@ group :site do
gem "jemoji", "0.5.1"
gem "jekyll-sitemap"
gem "jekyll-seo-tag", "~> 1.1"
gem "jekyll-seo-tag"
gem "jekyll-avatar"
gem "jekyll-mentions"
end

View File

@@ -1,3 +1,157 @@
## HEAD
### Site Enhancements
* Documentation: {% link %} tag (#5449)
* Updating install instruction link for Jekyll 3 on Windows (#5475)
* Update normalize.css to v5.0.0 (#5471)
* Add jekyll-data to the list of plugins (#5491)
* Add info about checking version + updating (#5497)
* Add jekyll-include-absolute-plugin to list of third-party plugins (#5492)
* Remove jekyll-hook from deployment methods (#5502)
* Update deployment-methods.md (#5504)
### Bug Fixes
* Fix typo in theme_template README (#5472)
* Do not swallow all exceptions on render (#5495)
### Development Fixes
* fix rubocop errors on testing with Rubocop 0.44 (#5489)
* script/test: add missing whitespace (#5479)
* Restrict Rubocop version (#5496)
### Minor Enhancements
* Collapse `gsub` (#5494)
## 3.3.0 / 2016-10-06
### Minor Enhancements
* Colorize interpolated output in logger.info (#5239)
* Site template: exclude Gemfile and Gemfile.lock in site config (#5293)
* Fix #5233: Increase our ability to detect Windows. (#5235)
* update gitignore template to ignore theme gems built by user (#5326)
* Adds ability to link to all files (#5199)
* Exclude vendor by default (#5361)
* Add ThemeAssetsReader which reads assets from a theme (#5364)
* Add bundle install to jekyll new command (#5237)
* Add absolute_url and relative_url filters. (#5399)
* Site template: remove `css/` from new site scaffolding (#5402)
* Site template: Move contents of the index.html page to the 'home' layout (#5420)
* Exclude node_modules by default (#5210)
* Run hooks in priority order. (#5157)
* Add `static_file.name` and `.basename` Liquid attributes (#5264)
* set site.url in dev environment to `http://localhost:4000` (#5431)
* Add support for indented link references on excerpt (#5212)
### Bug Fixes
* Use jekyll-feed to generate the default site's RSS feed (#5196)
* Site#configure_theme: do not set theme unless it's a string (#5189)
* Convertible: set self.output in #render_all_layouts and #do_layout (#5337)
* Only complain about `kramdown.coderay` if it is actually in the config (#5380)
* Clarify documentation in theme gem's README template (#5376)
* Allow underscore in highlighter language (#5375)
* Site template: set empty url in config file by default (#5338)
* Site template config: prepend 'jekyll serve' with 'bundle exec' (#5430)
* Don't call `File.utime` for StaticFiles if it's a symlink (#5427)
* Fix handling of non-ASCII characters in new `*_url` filters (#5410)
* Remove autoload of Draft which no longer exists. (#5441)
* Fix issue where Windows drive name is stripped from Jekyll.sanitized_path incorrectly (#5256)
* Fix bug where `post_url` tag matched incorrect post with subdirectory (#4873)
* Fix loading data from subdir with a period in name (#5433)
* Revert Commands::Serve#server_address signature change. (#5456)
### Site Enhancements
* Document `to_integer` and `inspect` filters (#5185)
* Fix path in the prompt (#5194)
* need subcommand build (#5190)
* Add the Jekyll Cloudinary plugin (#5183)
* Documentation : `new-theme` command (#5205)
* Document `link` Liquid tag (#5182)
* Remove mention of page for link tag in release post (#5214)
* fixed typo (#5226)
* Add missing comma (#5222)
* Maintain aspect ratio with `height: auto;` (#5254)
* Fix a link in deployment-methods.md (#5244)
* Documentation: improve highlight in `Creating a theme` (#5249)
* Bundler isn't installed by default (#5258)
* Update troubleshooting documentation to include fix for issue with vendored gems (#5271)
* Link `--lsi` option's description to Wikipedia docs on LSI (#5274)
* Document `--profile` option on the configuration page (#5279)
* Update homepage to sync with merge of #5258 (#5287)
* Add post about Jekyll Admin initial release (#5291)
* Replace liquid highlight tag with backticks (#5262)
* Word update (#5294)
* Site documentation section links always point to https://jekyllrb.com (#5281)
* Missing `:site, :post_render` payload documentation on site (#5280)
* Site: exclude README.md and .gitignore (#5304)
* Add link to Staticman (#5224)
* Update url for OpenShift (#5320)
* [docs] add help for missing static_file e.g. on heroku (#5334)
* Add a line about updating theme-gems in the docs (#5318)
* Explain how to copy a theme's files (#5335)
* [docs] .md as default extension in examples (#5316)
* Fix small typo in docs (#5347)
* Add missing period to sentence in first paragraph. (#5372)
* added jekyll-spotify plugin (#5369)
* Add jekyll-menus to the list of plugins. (#5397)
* macOS and one grammar fix (#5403)
* Add documentation for `relative_url` and `absolute_url` (#5405)
* Bugfix on logo in JSON-LD (#5421)
* Fix Travis.ci documentation (#5413)
* [docs] Update documentation regarding `bundle install` after `jekyll new` (#5428)
* Replace classic box-sizing reset with inheritance reset (#5411)
* Update Wikipedia YAML list link (#5452)
* Add Jekyll 3.3 release post (#5442)
### Development Fixes
* Update appveyor.yml and fix optional deps for Ruby x64 (#5180)
* Improve tests for Jekyll::PluginManager (#5167)
* Update Ruby versions in travis.yml (#5221)
* Avoid installing unecessary gems for site testing (#5272)
* Proposal: Affinity teams and their captains (#5273)
* Replace duplicate with postive local test in issue template (#5286)
* Update AppVeyor config. (#5240)
* Execute jekyll from clone instead of defined binary when running 'script/default-site' (#5295)
* rubocop: lib/jekyll/document.rb complexity fixes (#5045)
* Proxy a number of Convertible methods to Renderer (#5308)
* Run executable for Cucumber via Ruby instead of Shell (#5383)
* Appease Rubocop (#5381)
* remove features' directories on windows with proper access (#5389)
* `site_configuration.feature`: use UTC format in timezone (#5416)
* swallow bundle output from `jekyll new` while in CI (#5408)
* Add .editorconfig (#5412)
## 3.2.1 / 2016-08-02
### Bug Fixes
* Include theme directories in default gemspec (#5152)
* Fix for symlinked themes (#5156)
* Layout: set `relative_path` without using Pathname (#5164)
### Development Fixes
* Add test to build the default site (#5154)
* script/default-site: specify `BUNDLE_GEMFILE` for new site (#5178)
* script/default-site: read Jekyll source from local clone (#5188)
### Site Enhancements
* Enable site excerpts (#5150)
* Initial 404 page (#5143)
* Remove the "this feature is unreleased" warning from the theme docs (#5158)
* Future True on GitHub Pages note (#5173)
* Minor updates and corrections (#5177)
* index.html: update instructions to require bundler (#5169)
* docs/quickstart: update instructions to require bundler (#5168)
## 3.2.0 / 2016-07-26
### Minor Enhancements

View File

@@ -1,5 +1,3 @@
# https://www.appveyor.com/docs/appveyor-yml
version: "{build}"
clone_depth: 10
@@ -12,39 +10,26 @@ branches:
build: off
install:
- SET PATH=C:\Ruby%ruby_folder_version%\bin;%PATH%
- bundle install --retry 5
- SET PATH=C:\Ruby%RUBY_FOLDER_VER%\bin;%PATH%
- bundle install --retry 5 --jobs=%NUMBER_OF_PROCESSORS% --clean --path vendor\bundle
environment:
BUNDLE_WITHOUT: "benchmark:site:development"
matrix:
- ruby_folder_version: "23"
ruby_gems_folder: "2.3.0"
- RUBY_FOLDER_VER: "23"
TEST_SUITE: "test"
- ruby_folder_version: "23"
ruby_gems_folder: "2.3.0"
- RUBY_FOLDER_VER: "23"
TEST_SUITE: "cucumber"
- ruby_folder_version: "23"
ruby_gems_folder: "2.3.0"
- RUBY_FOLDER_VER: "23"
TEST_SUITE: "fmt"
- ruby_folder_version: "23-x64"
ruby_gems_folder: "2.3.0"
TEST_SUITE: "cucumber"
- ruby_folder_version: "23-x64"
ruby_gems_folder: "2.3.0"
- RUBY_FOLDER_VER: "23"
TEST_SUITE: "default-site"
- RUBY_FOLDER_VER: "23-x64"
TEST_SUITE: "test"
- ruby_folder_version: "22"
ruby_gems_folder: "2.2.0"
- RUBY_FOLDER_VER: "22"
TEST_SUITE: "test"
- ruby_folder_version: "22"
ruby_gems_folder: "2.2.0"
TEST_SUITE: "cucumber"
- ruby_folder_version: "21"
ruby_gems_folder: "2.1.0"
- RUBY_FOLDER_VER: "21"
TEST_SUITE: "test"
- ruby_folder_version: "21"
ruby_gems_folder: "2.1.0"
TEST_SUITE: "cucumber"
test_script:
- ruby --version
@@ -52,9 +37,6 @@ test_script:
- bundler --version
- bash ./script/cibuild
matrix:
fast_finish: true
cache:
- C:\Ruby%ruby_folder_version%\bin -> Gemfile,jekyll.gemspec
- C:\Ruby%ruby_folder_version%\lib\ruby\gems\%ruby_gems_folder% -> Gemfile,jekyll.gemspec
# If one of the files after the right arrow changes, cache will be skipped
- 'vendor\bundle -> appveyor.yml,Gemfile,jekyll.gemspec'

View File

@@ -0,0 +1,25 @@
# 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 its definitely not for everyone.
## Affinity teams & their captains
The Jekyll project uses [affinity teams][] to help break up the work of incoming issues and pull requests from community members. We receive a sizeable number of issues and pull requests each week; the use of affinity teams helps distribute this load across a number of specialized groups instead of pushing it all onto @jekyll/core.
## Responsibilities of Team Captains
Each affinity team has a few captains who manage the issues and pull requests for that team. When an issue or PR is opened with a `/cc` for a given affinity team, @jekyllbot automatically assigns a random affinity team captain to the issue to triage it. They have access to add labels, reassign the issue, give LGTM's, and so forth. While they do not merge PR's today, they are still asked to review PR's for parts of the codebase under their purview.
## How do I become a team captain?
Just ask! Feel free to open an issue on `jekyll/jekyll` and add `/cc @jekyll/core`. We can add you. :smile:
Alternatively, you can email or otherwise reach out to [@parkr](https://github.com/parkr) directly if you prefer the more private route.
## Ugh, I'm tired and don't have time to be a captain anymore. What now?
No sweat at all! Email [@parkr](https://github.com/parkr) and ask to be removed. Alternatively, you should be able to go to your team's page on GitHub.com (go to https://github.com/jekyll, click "Teams", click the link to your team) and change your status to either "member" or leave the team.
We realize that being a captain is no easy feat so we want to make it a great experience. As always, communicate as much as you can with us about what is working, and what isn't. Thanks for dedicating some time to Jekyll! :sparkles:
[affinity teams]: https://teams.jekyllrb.com/

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env ruby
STDOUT.sync = true
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), *%w(.. lib)))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
require "jekyll"
require "mercenary"

View File

@@ -63,6 +63,18 @@ Feature: Embed filters
And the _site directory should exist
And I should see "By <p><em>Obi-wan</em></p>" in "_site/2009/03/27/star-wars.html"
Scenario: Markdownify a given inline string
Given I have a _posts directory
And I have a _layouts directory
And I have the following post:
| title | date | layout | content |
| Star Wars | 2009-03-27 | default | These aren't the droids you're looking for. |
And I have a default layout that contains "By {{ '_Obi-wan_' | markdownify:'inline' }}"
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should see "By <em>Obi-wan</em>" in "_site/2009/03/27/star-wars.html"
Scenario: Sort by an arbitrary variable
Given I have a _layouts directory
And I have the following page:

View File

@@ -235,7 +235,7 @@ Feature: Hooks
owner.output = "1 #{owner.output.chomp}"
end
Jekyll::Hooks.register :pages, :post_render, priority: :high do |owner|
# high runs last
# high runs first
owner.output = "2 #{owner.output.chomp}"
end
Jekyll::Hooks.register :pages, :post_render do |owner|
@@ -243,13 +243,13 @@ Feature: Hooks
owner.output = "3 #{owner.output.chomp}"
end
Jekyll::Hooks.register :pages, :post_render, priority: :low do |owner|
# low runs first
# low runs last
owner.output = "4 #{owner.output.chomp}"
end
"""
And I have a "index.html" page that contains "WRAP ME"
When I run jekyll build
Then I should see "2 3 1 4 WRAP ME" in "_site/index.html"
Then I should see "4 3 1 2 WRAP ME" in "_site/index.html"
Scenario: Alter a document right after it is initialized
Given I have a _plugins directory

View File

@@ -161,8 +161,8 @@ Feature: Site configuration
And I have a post layout that contains "Post Layout: {{ content }} built at {{ page.date | date_to_xmlschema }}"
And I have an "index.html" page with layout "page" that contains "site index page"
And I have a configuration file with:
| key | value |
| timezone | America/New_York |
| key | value |
| timezone | UTC+04:00 |
And I have a _posts directory
And I have the following posts:
| title | date | layout | content |
@@ -181,8 +181,8 @@ Feature: Site configuration
And I have a post layout that contains "Post Layout: {{ content }} built at {{ page.date | date_to_xmlschema }}"
And I have an "index.html" page with layout "page" that contains "site index page"
And I have a configuration file with:
| key | value |
| timezone | Pacific/Honolulu |
| key | value |
| timezone | UTC+10:00 |
And I have a _posts directory
And I have the following posts:
| title | date | layout | content |

View File

@@ -1,4 +1,5 @@
Before do
FileUtils.rm_rf(Paths.test_dir) if Paths.test_dir.exist?
FileUtils.mkdir_p(Paths.test_dir) unless Paths.test_dir.directory?
Dir.chdir(Paths.test_dir)
end
@@ -6,7 +7,7 @@ end
#
After do
Paths.test_dir.rmtree if Paths.test_dir.exist?
FileUtils.rm_rf(Paths.test_dir) if Paths.test_dir.exist?
Paths.output_file.delete if Paths.output_file.exist?
Paths.status_file.delete if Paths.status_file.exist?
Dir.chdir(Paths.test_dir.parent)

View File

@@ -90,7 +90,7 @@ end
def run_jekyll(args)
args = args.strip.split(" ") # Shellwords?
process = run_in_shell(Paths.jekyll_bin.to_s, *args, "--trace")
process = run_in_shell("ruby", Paths.jekyll_bin.to_s, *args, "--trace")
process.exitstatus.zero?
end

View File

@@ -17,7 +17,7 @@ Feature: Writing themes
Scenario: A theme with SCSS
Given I have a configuration file with "theme" set to "test-theme"
And I have a css directory
And I have a "css/main.scss" page that contains "@import 'style';"
And I have a "css/main.scss" page that contains "@import 'test-theme-black';"
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist

View File

@@ -38,4 +38,5 @@ Gem::Specification.new do |s|
s.add_runtime_dependency('jekyll-sass-converter', '~> 1.0')
s.add_runtime_dependency('jekyll-watch', '~> 1.1')
s.add_runtime_dependency("pathutil", "~> 0.9")
s.add_runtime_dependency('addressable', '~> 2.4')
end

View File

@@ -41,7 +41,6 @@ module Jekyll
autoload :Convertible, "jekyll/convertible"
autoload :Deprecator, "jekyll/deprecator"
autoload :Document, "jekyll/document"
autoload :Draft, "jekyll/draft"
autoload :EntryFilter, "jekyll/entry_filter"
autoload :Errors, "jekyll/errors"
autoload :Excerpt, "jekyll/excerpt"
@@ -55,6 +54,7 @@ module Jekyll
autoload :PostReader, "jekyll/readers/post_reader"
autoload :PageReader, "jekyll/readers/page_reader"
autoload :StaticFileReader, "jekyll/readers/static_file_reader"
autoload :ThemeAssetsReader, "jekyll/readers/theme_assets_reader"
autoload :LogAdapter, "jekyll/log_adapter"
autoload :Page, "jekyll/page"
autoload :PluginManager, "jekyll/plugin_manager"
@@ -160,11 +160,13 @@ module Jekyll
questionable_path.insert(0, "/") if questionable_path.start_with?("~")
clean_path = File.expand_path(questionable_path, "/")
clean_path.sub!(%r!\A\w:/!, "/")
if clean_path.start_with?(base_directory.sub(%r!\A\w:/!, "/"))
return clean_path if clean_path.eql?(base_directory)
if clean_path.start_with?(base_directory.sub(%r!\z!, "/"))
clean_path
else
clean_path.sub!(%r!\A\w:/!, "/")
File.join(base_directory, clean_path)
end
end

View File

@@ -71,12 +71,23 @@ module Jekyll
#
# Returns nothing.
def watch(site, options)
External.require_with_graceful_fail "jekyll-watch"
watch_method = Jekyll::Watcher.method(:watch)
if watch_method.parameters.size == 1
watch_method.call(options)
if Utils::Platforms.windows?
Jekyll.logger.warn "", "--watch arg is unsupported on Windows. "
Jekyll.logger.warn "", "If you are on Windows Bash, please see: " \
"https://github.com/Microsoft/BashOnWindows/issues/216"
else
watch_method.call(options, site)
External.require_with_graceful_fail "jekyll-watch"
watch_method = Jekyll::Watcher.method(:watch)
if watch_method.parameters.size == 1
watch_method.call(
options
)
else
watch_method.call(
options, site
)
end
end
end
end # end of class << self

View File

@@ -11,6 +11,7 @@ module Jekyll
c.option "force", "--force", "Force creation even if PATH already exists"
c.option "blank", "--blank", "Creates scaffolding but with empty files"
c.option "skip-bundle", "--skip-bundle", "Skip 'bundle install'"
c.action do |args, options|
Jekyll::Commands::New.process(args, options)
@@ -34,7 +35,7 @@ module Jekyll
create_site new_blog_path
end
Jekyll.logger.info "New jekyll site installed in #{new_blog_path}."
after_install(new_blog_path, options)
end
def create_blank_site(path)
@@ -73,16 +74,16 @@ ruby RUBY_VERSION
gem "jekyll", "#{Jekyll::VERSION}"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima"
gem "minima", "~> 2.0"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
# group :jekyll_plugins do
# gem "jekyll-github-metadata", "~> 1.0"
# end
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
end
RUBY
end
@@ -114,6 +115,31 @@ RUBY
def scaffold_path
"_posts/0000-00-00-welcome-to-jekyll.markdown.erb"
end
# After a new blog has been created, print a success notification and
# then automatically execute bundle install from within the new blog dir
# unless the user opts to generate a blank blog or skip 'bundle install'.
def after_install(path, options = {})
Jekyll.logger.info "New jekyll site installed in #{path.cyan}."
Jekyll.logger.info "Bundle install skipped." if options["skip-bundle"]
unless options["blank"] || options["skip-bundle"]
bundle_install path
end
end
def bundle_install(path)
Jekyll::External.require_with_graceful_fail "bundler"
Jekyll.logger.info "Running bundle install in #{path.cyan}..."
Dir.chdir(path) do
if ENV["CI"]
system("bundle", "install", "--quiet")
else
system("bundle", "install")
end
end
end
end
end
end

View File

@@ -16,6 +16,7 @@ class Jekyll::Commands::NewTheme < Jekyll::Command
end
end
# rubocop:disable Metrics/AbcSize
def process(args, opts)
if !args || args.empty?
raise Jekyll::Errors::InvalidThemeName, "You must specify a theme name."
@@ -28,9 +29,10 @@ class Jekyll::Commands::NewTheme < Jekyll::Command
end
theme.create!
Jekyll.logger.info "Your new Jekyll theme, #{theme.name}," \
" is ready for you in #{theme.path}!"
Jekyll.logger.info "Your new Jekyll theme, #{theme.name.cyan}," \
" is ready for you in #{theme.path.to_s.cyan}!"
Jekyll.logger.info "For help getting started, read #{theme.path}/README.md."
end
# rubocop:enable Metrics/AbcSize
end
end

View File

@@ -33,6 +33,7 @@ module Jekyll
opts["serving"] = true
opts["watch" ] = true unless opts.key?("watch")
config = opts["config"]
opts["url"] = default_url(opts) if Jekyll.env == "development"
Build.process(opts)
opts["config"] = config
Serve.process(opts)
@@ -47,11 +48,7 @@ module Jekyll
destination = opts["destination"]
setup(destination)
server = WEBrick::HTTPServer.new(webrick_opts(opts)).tap { |o| o.unmount("") }
server.mount(opts["baseurl"], Servlet, destination, file_handler_opts)
Jekyll.logger.info "Server address:", server_address(server, opts)
launch_browser server, opts if opts["open_url"]
boot_or_detach server, opts
start_up_webrick(opts, destination)
end
# Do a base pre-setup of WEBRick so that everything is in place
@@ -101,6 +98,17 @@ module Jekyll
opts
end
#
private
def start_up_webrick(opts, destination)
server = WEBrick::HTTPServer.new(webrick_opts(opts)).tap { |o| o.unmount("") }
server.mount(opts["baseurl"], Servlet, destination, file_handler_opts)
Jekyll.logger.info "Server address:", server_address(server, opts)
launch_browser server, opts if opts["open_url"]
boot_or_detach server, opts
end
# Recreate NondisclosureName under utf-8 circumstance
private
@@ -116,17 +124,39 @@ module Jekyll
#
private
def server_address(server, opts)
def server_address(server, options = {})
format_url(
server.config[:SSLEnable],
server.config[:BindAddress],
server.config[:Port],
options["baseurl"]
)
end
private
def format_url(ssl_enabled, address, port, baseurl = nil)
format("%{prefix}://%{address}:%{port}%{baseurl}", {
:prefix => server.config[:SSLEnable] ? "https" : "http",
:baseurl => opts["baseurl"] ? "#{opts["baseurl"]}/" : "",
:address => server.config[:BindAddress],
:port => server.config[:Port]
:prefix => ssl_enabled ? "https" : "http",
:address => address,
:port => port,
:baseurl => baseurl ? "#{baseurl}/" : ""
})
end
#
private
def default_url(opts)
config = configuration_from_options(opts)
format_url(
config["ssl_cert"] && config["ssl_key"],
config["host"] == "127.0.0.1" ? "localhost" : config["host"],
config["port"]
)
end
#
private
def launch_browser(server, opts)
address = server_address(server, opts)

View File

@@ -17,7 +17,7 @@ module Jekyll
# Handling Reading
"safe" => false,
"include" => [".htaccess"],
"exclude" => [],
"exclude" => %w(node_modules vendor),
"keep_files" => [".git", ".svn"],
"encoding" => "utf-8",
"markdown_ext" => "markdown,mkdown,mkdn,mkd,md",

View File

@@ -0,0 +1,35 @@
class Kramdown::Parser::Inline < Kramdown::Parser::Kramdown
def initialize(source, options)
super
@block_parsers = [:block_html].freeze
end
end
module Jekyll
module Converters
class Markdown
class Inline < Converter
safe true
priority :low
def initialize(config)
Jekyll::External.require_with_graceful_fail "kramdown"
@config = config["kramdown"].dup || {}
@config[:input] = :Inline
end
def matches(_)
false
end
def output_ext(_)
nil
end
def convert(content)
Kramdown::Document.new(content, @config).to_html.chomp
end
end
end
end
end

View File

@@ -104,7 +104,7 @@ module Jekyll
private
def modernize_coderay_config
if highlighter == "coderay"
unless @config["coderay"].empty?
Jekyll::Deprecator.deprecation_message(
"You are using 'kramdown.coderay' in your configuration, " \
"please use 'syntax_highlighter_opts' instead."

View File

@@ -35,6 +35,7 @@ module Jekyll
# opts - optional parameter to File.read, default at site configs
#
# Returns nothing.
# rubocop:disable Metrics/AbcSize
def read_yaml(base, name, opts = {})
filename = File.join(base, name)
@@ -58,6 +59,7 @@ module Jekyll
self.data
end
# rubocop:enable Metrics/AbcSize
def validate_data!(filename)
unless self.data.is_a?(Hash)
@@ -76,18 +78,7 @@ module Jekyll
#
# Returns the transformed contents.
def transform
converters.reduce(content) do |output, converter|
begin
converter.convert output
rescue => e
Jekyll.logger.error(
"Conversion error:",
"#{converter.class} encountered an error while converting '#{path}':"
)
Jekyll.logger.error("", e.to_s)
raise e
end
end
_renderer.transform
end
# Determine the extension depending on content_type.
@@ -95,7 +86,7 @@ module Jekyll
# Returns the String extension for the output file.
# e.g. ".html" for an HTML output file.
def output_ext
Jekyll::Renderer.new(site, self).output_ext
_renderer.output_ext
end
# Determine which converter to use based on this convertible's
@@ -103,7 +94,7 @@ module Jekyll
#
# Returns the Converter instance.
def converters
@converters ||= site.converters.select { |c| c.matches(ext) }.sort
_renderer.converters
end
# Render Liquid in the content
@@ -114,17 +105,7 @@ module Jekyll
#
# Returns the converted content
def render_liquid(content, payload, info, path)
template = site.liquid_renderer.file(path).parse(content)
template.warnings.each do |e|
Jekyll.logger.warn "Liquid Warning:",
LiquidRenderer.format_error(e, path || self.path)
end
template.render!(payload, info)
# rubocop: disable RescueException
rescue Exception => e
Jekyll.logger.error "Liquid Exception:",
LiquidRenderer.format_error(e, path || self.path)
raise e
_renderer.render_liquid(content, payload, info, path)
end
# rubocop: enable RescueException
@@ -211,40 +192,10 @@ module Jekyll
#
# Returns nothing
def render_all_layouts(layouts, payload, info)
# recursively render layouts
layout = layouts[data["layout"]]
Jekyll.logger.warn(
"Build Warning:",
"Layout '#{data["layout"]}' requested in #{path} does not exist."
) if invalid_layout? layout
used = Set.new([layout])
# Reset the payload layout data to ensure it starts fresh for each page.
payload["layout"] = nil
while layout
Jekyll.logger.debug "Rendering Layout:", path
payload["content"] = output
payload["layout"] = Utils.deep_merge_hashes(layout.data, payload["layout"] || {})
self.output = render_liquid(layout.content,
payload,
info,
layout.relative_path)
# Add layout to dependency tree
site.regenerator.add_dependency(
site.in_source_dir(path),
site.in_source_dir(layout.path)
)
if (layout = layouts[layout.data["layout"]])
break if used.include?(layout)
used << layout
end
end
_renderer.layouts = layouts
self.output = _renderer.place_in_layouts(output, payload, info)
ensure
@_renderer = nil # this will allow the modifications above to disappear
end
# Add any necessary layouts to this convertible document.
@@ -254,32 +205,15 @@ module Jekyll
#
# Returns nothing.
def do_layout(payload, layouts)
Jekyll.logger.debug "Rendering:", self.relative_path
self.output = _renderer.tap do |renderer|
renderer.layouts = layouts
renderer.payload = payload
end.run
Jekyll.logger.debug "Pre-Render Hooks:", self.relative_path
Jekyll::Hooks.trigger hook_owner, :pre_render, self, payload
info = {
:filters => [Jekyll::Filters],
:registers => { :site => site, :page => payload["page"] }
}
# render and transform content (this becomes the final content of the object)
payload["highlighter_prefix"] = converters.first.highlighter_prefix
payload["highlighter_suffix"] = converters.first.highlighter_suffix
if render_with_liquid?
Jekyll.logger.debug "Rendering Liquid:", self.relative_path
self.content = render_liquid(content, payload, info, path)
end
Jekyll.logger.debug "Rendering Markup:", self.relative_path
self.content = transform
# output keeps track of what will finally be written
self.output = content
render_all_layouts(layouts, payload, info) if place_in_layout?
Jekyll.logger.debug "Post-Render Hooks:", self.relative_path
Jekyll::Hooks.trigger hook_owner, :post_render, self
ensure
@_renderer = nil # this will allow the modifications above to disappear
end
# Write the generated page file to the destination directory.
@@ -306,5 +240,10 @@ module Jekyll
data[property]
end
end
private
def _renderer
@_renderer ||= Jekyll::Renderer.new(site, self)
end
end
end

View File

@@ -51,19 +51,9 @@ module Jekyll
#
# Returns the merged data.
def merge_data!(other, source: "YAML front matter")
if other.key?("categories") && !other["categories"].nil?
if other["categories"].is_a?(String)
other["categories"] = other["categories"].split(" ").map(&:strip)
end
other["categories"] = (data["categories"] || []) | other["categories"]
end
merge_categories!(other)
Utils.deep_merge_hashes!(data, other)
if data.key?("date") && !data["date"].is_a?(Time)
data["date"] = Utils.parse_date(
data["date"].to_s,
"Document '#{relative_path}' does not have a valid date in the #{source}."
)
end
merge_date!(source)
data
end
@@ -90,8 +80,7 @@ module Jekyll
# Returns a String path which represents the relative path
# from the site source to this document
def relative_path
@relative_path ||= Pathname.new(path)
.relative_path_from(Pathname.new(site.source)).to_s
@relative_path ||= Pathutil.new(path).relative_path_from(site.source).to_s
end
# The output extension of the document.
@@ -264,20 +253,9 @@ module Jekyll
@data = SafeYAML.load_file(path)
else
begin
defaults = @site.frontmatter_defaults.all(
relative_path,
collection.label.to_sym
)
merge_data!(defaults, :source => "front matter defaults") unless defaults.empty?
self.content = File.read(path, Utils.merged_file_read_opts(site, opts))
if content =~ YAML_FRONT_MATTER_REGEXP
self.content = $POSTMATCH
data_file = SafeYAML.load(Regexp.last_match(1))
merge_data!(data_file, :source => "YAML front matter") if data_file
end
post_read
merge_defaults
read_content(opts)
read_post_data
rescue SyntaxError => e
Jekyll.logger.error "Error:", "YAML Exception reading #{path}: #{e.message}"
rescue => e
@@ -287,56 +265,6 @@ module Jekyll
end
end
def post_read
if relative_path =~ DATE_FILENAME_MATCHER
date, slug, ext = Regexp.last_match.captures
if !data["date"] || data["date"].to_i == site.time.to_i
merge_data!({ "date" => date }, :source => "filename")
end
elsif relative_path =~ DATELESS_FILENAME_MATCHER
slug, ext = Regexp.last_match.captures
end
# Try to ensure the user gets a title.
data["title"] ||= Utils.titleize_slug(slug)
# Only overwrite slug & ext if they aren't specified.
data["slug"] ||= slug
data["ext"] ||= ext
populate_categories
populate_tags
generate_excerpt
end
# Add superdirectories of the special_dir to categories.
# In the case of es/_posts, 'es' is added as a category.
# In the case of _posts/es, 'es' is NOT added as a category.
#
# Returns nothing.
def categories_from_path(special_dir)
superdirs = relative_path.sub(%r!#{special_dir}(.*)!, "")
.split(File::SEPARATOR)
.reject do |c|
c.empty? || c.eql?(special_dir) || c.eql?(basename)
end
merge_data!({ "categories" => superdirs }, :source => "file path")
end
def populate_categories
merge_data!({
"categories" => (
Array(data["categories"]) +
Utils.pluralized_array_from_hash(data, "category", "categories")
).map(&:to_s).flatten.uniq
})
end
def populate_tags
merge_data!({
"tags" => Utils.pluralized_array_from_hash(data, "tag", "tags").flatten
})
end
# Create a Liquid-understandable version of this Document.
#
# Returns a Hash representing this Document's data.
@@ -443,7 +371,116 @@ module Jekyll
end
end
private # :nodoc:
def respond_to_missing?(method, *)
data.key?(method.to_s) || super
end
private
def merge_categories!(other)
if other.key?("categories") && !other["categories"].nil?
if other["categories"].is_a?(String)
other["categories"] = other["categories"].split(%r!\s+!).map(&:strip)
end
other["categories"] = (data["categories"] || []) | other["categories"]
end
end
private
def merge_date!(source)
if data.key?("date") && !data["date"].is_a?(Time)
data["date"] = Utils.parse_date(
data["date"].to_s,
"Document '#{relative_path}' does not have a valid date in the #{source}."
)
end
end
private
def merge_defaults
defaults = @site.frontmatter_defaults.all(
relative_path,
collection.label.to_sym
)
merge_data!(defaults, :source => "front matter defaults") unless defaults.empty?
end
private
def read_content(opts)
self.content = File.read(path, Utils.merged_file_read_opts(site, opts))
if content =~ YAML_FRONT_MATTER_REGEXP
self.content = $POSTMATCH
data_file = SafeYAML.load(Regexp.last_match(1))
merge_data!(data_file, :source => "YAML front matter") if data_file
end
end
private
def read_post_data
populate_title
populate_categories
populate_tags
generate_excerpt
end
private
def populate_title
if relative_path =~ DATE_FILENAME_MATCHER
date, slug, ext = Regexp.last_match.captures
modify_date(date)
elsif relative_path =~ DATELESS_FILENAME_MATCHER
slug, ext = Regexp.last_match.captures
end
# Try to ensure the user gets a title.
data["title"] ||= Utils.titleize_slug(slug)
# Only overwrite slug & ext if they aren't specified.
data["slug"] ||= slug
data["ext"] ||= ext
end
private
def modify_date(date)
if !data["date"] || data["date"].to_i == site.time.to_i
merge_data!({ "date" => date }, :source => "filename")
end
end
# Add superdirectories of the special_dir to categories.
# In the case of es/_posts, 'es' is added as a category.
# In the case of _posts/es, 'es' is NOT added as a category.
#
# Returns nothing.
private
def categories_from_path(special_dir)
superdirs = relative_path.sub(%r!#{special_dir}(.*)!, "")
.split(File::SEPARATOR)
.reject do |c|
c.empty? || c == special_dir || c == basename
end
merge_data!({ "categories" => superdirs }, :source => "file path")
end
private
def populate_categories
merge_data!({
"categories" => (
Array(data["categories"]) + Utils.pluralized_array_from_hash(
data,
"category",
"categories"
)
).map(&:to_s).flatten.uniq
})
end
private
def populate_tags
merge_data!({
"tags" => Utils.pluralized_array_from_hash(data, "tag", "tags").flatten
})
end
private
def generate_excerpt
if generate_excerpt?
data["excerpt"] ||= Jekyll::Excerpt.new(self)

View File

@@ -118,7 +118,7 @@ module Jekyll
if tail.empty?
head
else
"" << head << "\n\n" << tail.scan(%r!^\[[^\]]+\]:.+$!).join("\n")
"" << head << "\n\n" << tail.scan(%r!^ {0,3}\[[^\]]+\]:.+$!).join("\n")
end
end
end

View File

@@ -3,16 +3,23 @@ require "json"
require "date"
require "liquid"
require_all "jekyll/filters"
module Jekyll
module Filters
include URLFilters
# Convert a Markdown string into HTML output.
#
# input - The Markdown String to convert.
#
# Returns the HTML formatted String.
def markdownify(input)
def markdownify(input, mode = nil)
site = @context.registers[:site]
converter = site.find_converter_instance(Jekyll::Converters::Markdown)
if mode.to_s == "inline"
converter = site.find_converter_instance(Jekyll::Converters::Markdown::Inline)
else
converter = site.find_converter_instance(Jekyll::Converters::Markdown)
end
converter.convert(input.to_s)
end

View File

@@ -0,0 +1,40 @@
require "addressable/uri"
module Jekyll
module Filters
module URLFilters
# Produces an absolute URL based on site.url and site.baseurl.
#
# input - the URL to make absolute.
#
# Returns the absolute URL as a String.
def absolute_url(input)
return if input.nil?
site = @context.registers[:site]
return relative_url(input).to_s if site.config["url"].nil?
Addressable::URI.parse(site.config["url"] + relative_url(input)).normalize.to_s
end
# Produces a URL relative to the domain root based on site.baseurl.
#
# input - the URL to make relative to the domain root
#
# Returns a URL relative to the domain root as a String.
def relative_url(input)
return if input.nil?
site = @context.registers[:site]
return ensure_leading_slash(input.to_s) if site.config["baseurl"].nil?
Addressable::URI.parse(
ensure_leading_slash(site.config["baseurl"]) + ensure_leading_slash(input.to_s)
).normalize.to_s
end
private
def ensure_leading_slash(input)
return input if input.nil? || input.empty? || input.start_with?("/")
"/#{input}"
end
end
end
end

View File

@@ -188,7 +188,7 @@ module Jekyll
if path.nil? || path.empty?
""
else
path.gsub(%r!\A/!, "").gsub(%r!([^/])\z!, '\1')
path.gsub(%r!\A/|(?<=[^/])\z!, "".freeze)
end
end
end

View File

@@ -54,7 +54,7 @@ module Jekyll
# Ensure the priority is a Fixnum
def self.priority_value(priority)
return priority if priority.is_a?(Fixnum)
return priority if priority.is_a?(Integer)
PRIORITY_MAP[priority] || DEFAULT_PRIORITY
end
@@ -80,7 +80,7 @@ module Jekyll
end
def self.insert_hook(owner, event, priority, &block)
@hook_priority[block] = "#{priority}.#{@hook_priority.size}".to_f
@hook_priority[block] = [-priority, @hook_priority.size]
@registry[owner][event] << block
end

View File

@@ -11,6 +11,9 @@ module Jekyll
# Gets the path to this layout.
attr_reader :path
# Gets the path to this layout relative to its base
attr_reader :relative_path
# Gets/Sets the extension of this layout.
attr_accessor :ext
@@ -37,6 +40,7 @@ module Jekyll
@base_dir = site.source
@path = site.in_source_dir(base, name)
end
@relative_path = @path.sub(@base_dir, "")
self.data = {}
@@ -52,15 +56,5 @@ module Jekyll
def process(name)
self.ext = File.extname(name)
end
# The path to the layout, relative to the site source.
#
# Returns a String path which represents the relative path
# from the site source to this layout
def relative_path
@relative_path ||= Pathname.new(path).relative_path_from(
Pathname.new(@base_dir)
).to_s
end
end
end

View File

@@ -40,7 +40,11 @@ module Jekyll
@base = base
@dir = dir
@name = name
@path = site.in_source_dir(base, dir, name)
@path = if site.in_theme_dir(base) == base # we're in a theme
site.in_theme_dir(base, dir, name)
else
site.in_source_dir(base, dir, name)
end
process(name)
read_yaml(File.join(base, dir), name)

View File

@@ -18,6 +18,7 @@ module Jekyll
sort_files!
@site.data = DataReader.new(site).read(site.config["data_dir"])
CollectionReader.new(site).read
ThemeAssetsReader.new(site).read
end
# Sorts posts, pages, and static files.

View File

@@ -37,10 +37,10 @@ module Jekyll
path = @site.in_source_dir(dir, entry)
next if @entry_filter.symlink?(path)
key = sanitize_filename(File.basename(entry, ".*"))
if File.directory?(path)
read_data_to(path, data[key] = {})
read_data_to(path, data[sanitize_filename(entry)] = {})
else
key = sanitize_filename(File.basename(entry, ".*"))
data[key] = read_data_file(path)
end
end
@@ -62,8 +62,7 @@ module Jekyll
end
def sanitize_filename(name)
name.gsub!(%r![^\w\s-]+!, "")
name.gsub!(%r!(^|\b\s)\s+($|\s?\b)!, '\\1\\2')
name.gsub!(%r![^\w\s-]+|(?<=^|\b\s)\s+(?=$|\s?\b)!, "".freeze)
name.gsub(%r!\s+!, "_")
end
end

View File

@@ -0,0 +1,47 @@
module Jekyll
class ThemeAssetsReader
attr_reader :site
def initialize(site)
@site = site
end
def read
return unless site.theme && site.theme.assets_path
Find.find(site.theme.assets_path) do |path|
next if File.directory?(path)
if File.symlink?(path)
Jekyll.logger.warn "Theme reader:", "Ignored symlinked asset: #{path}"
else
read_theme_asset(path)
end
end
end
private
def read_theme_asset(path)
base = site.theme.root
dir = File.dirname(path.sub("#{site.theme.root}/", ""))
name = File.basename(path)
if Utils.has_yaml_header?(path)
append_unless_exists site.pages,
Jekyll::Page.new(site, base, dir, name)
else
append_unless_exists site.static_files,
Jekyll::StaticFile.new(site, base, dir, name)
end
end
def append_unless_exists(haystack, new_item)
if haystack.any? { |file| file.relative_path == new_item.relative_path }
Jekyll.logger.debug "Theme:",
"Ignoring #{new_item.relative_path} in theme due to existing file " \
"with that path in site."
return
end
haystack << new_item
end
end
end

View File

@@ -2,12 +2,32 @@
module Jekyll
class Renderer
attr_reader :document, :site, :payload
attr_reader :document, :site
attr_writer :layouts, :payload
def initialize(site, document, site_payload = nil)
@site = site
@document = document
@payload = site_payload || site.site_payload
@payload = site_payload
end
# Fetches the payload used in Liquid rendering.
# It can be written with #payload=(new_payload)
# Falls back to site.site_payload if no payload is set.
#
# Returns a Jekyll::Drops::UnifiedPayloadDrop
def payload
@payload ||= site.site_payload
end
# The list of layouts registered for this Renderer.
# It can be written with #layouts=(new_layouts)
# Falls back to site.layouts if no layouts are registered.
#
# Returns a Hash of String => Jekyll::Layout identified
# as basename without the extension name.
def layouts
@layouts || site.layouts
end
# Determine which converters to use based on this document's
@@ -15,7 +35,7 @@ module Jekyll
#
# Returns an array of Converter instances.
def converters
@converters ||= site.converters.select { |c| c.matches(document.extname) }
@converters ||= site.converters.select { |c| c.matches(document.extname) }.sort
end
# Determine the extname the outputted file should have
@@ -126,7 +146,7 @@ module Jekyll
#
# Returns true if the layout is invalid, false if otherwise
def invalid_layout?(layout)
!document.data["layout"].nil? && layout.nil?
!document.data["layout"].nil? && layout.nil? && !(document.is_a? Jekyll::Excerpt)
end
# Render layouts and place given content inside.
@@ -137,7 +157,7 @@ module Jekyll
# Returns the content placed in the Liquid-rendered layouts
def place_in_layouts(content, payload, info)
output = content.dup
layout = site.layouts[document.data["layout"]]
layout = layouts[document.data["layout"]]
Jekyll.logger.warn(
"Build Warning:",
@@ -167,7 +187,7 @@ module Jekyll
site.in_source_dir(layout.path)
) if document.write?
if (layout = site.layouts[layout.data["layout"]])
if (layout = layouts[layout.data["layout"]])
break if used.include?(layout)
used << layout
end

View File

@@ -191,11 +191,7 @@ module Jekyll
render_pages(payload)
Jekyll::Hooks.trigger :site, :post_render, self, payload
# rubocop: disable HandleExceptions
rescue Errno::ENOENT
# ignore missing layout dir
end
# rubocop: enable HandleExceptions
# Remove orphaned files and empty directories in destination.
#
@@ -424,7 +420,16 @@ module Jekyll
private
def configure_theme
self.theme = nil
self.theme = Jekyll::Theme.new(config["theme"]) if config["theme"]
return if config["theme"].nil?
self.theme =
if config["theme"].is_a?(String)
Jekyll::Theme.new(config["theme"])
else
Jekyll.logger.warn "Theme:", "value of 'theme' in config should be " \
"String to use gem-based themes, but got #{config["theme"].class}"
nil
end
end
private

View File

@@ -1,6 +1,6 @@
module Jekyll
class StaticFile
attr_reader :relative_path, :extname
attr_reader :relative_path, :extname, :name
class << self
# The cache of last modification times [path] -> mtime.
@@ -97,6 +97,8 @@ module Jekyll
def to_liquid
{
"basename" => File.basename(name, extname),
"name" => name,
"extname" => extname,
"modified_time" => modified_time,
"path" => File.join("", relative_path)
@@ -146,7 +148,10 @@ module Jekyll
else
FileUtils.copy_entry(path, dest_path)
end
File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
unless File.symlink?(dest_path)
File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
end
end
end
end

View File

@@ -8,7 +8,7 @@ module Jekyll
# forms: name, name=value, or name="<quoted list>"
#
# <quoted list> is a space-separated list of numbers
SYNTAX = %r!^([a-zA-Z0-9.+#-]+)((\s+\w+(=(\w+|"([0-9]+\s)*[0-9]+"))?)*)$!
SYNTAX = %r!^([a-zA-Z0-9.+#_-]+)((\s+\w+(=(\w+|"([0-9]+\s)*[0-9]+"))?)*)$!
def initialize(tag_name, markup, tokens)
super

View File

@@ -16,8 +16,10 @@ module Jekyll
def render(context)
site = context.registers[:site]
site.docs_to_write.each do |document|
return document.url if document.relative_path == @relative_path
site.each_site_file do |item|
return item.url if item.relative_path == @relative_path
# This takes care of the case for static files that have a leading /
return item.url if item.relative_path == "/#{@relative_path}"
end
raise ArgumentError, <<eos

View File

@@ -14,7 +14,8 @@ module Jekyll
"'#{name}' does not contain valid date and/or title."
end
@name_regex = %r!^#{path}#{date}-#{slug}\.[^.]+!
@name_regex = %r!^_posts/#{path}#{date}-#{slug}\.[^.]+|
^#{path}_posts/?#{date}-#{slug}\.[^.]+!x
end
def post_date
@@ -23,7 +24,7 @@ module Jekyll
end
def ==(other)
other.basename.match(@name_regex)
other.relative_path.match(@name_regex)
end
def deprecated_equality(other)

View File

@@ -10,19 +10,27 @@ module Jekyll
end
def root
@root ||= gemspec.full_gem_path
# Must use File.realpath to resolve symlinks created by rbenv
# Otherwise, Jekyll.sanitized path with prepend the unresolved root
@root ||= File.realpath(gemspec.full_gem_path)
rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
nil
end
def includes_path
path_for :includes
path_for "_includes".freeze
end
def layouts_path
path_for :layouts
path_for "_layouts".freeze
end
def sass_path
path_for :sass
path_for "_sass".freeze
end
def assets_path
path_for "assets".freeze
end
def configure_sass
@@ -34,15 +42,12 @@ module Jekyll
private
def path_for(folder)
resolved_dir = realpath_for(folder)
return unless resolved_dir
path = Jekyll.sanitized_path(root, resolved_dir)
path if File.directory?(path)
path = realpath_for(folder)
path if path && File.directory?(path)
end
def realpath_for(folder)
File.realpath(Jekyll.sanitized_path(root, "_#{folder}"))
File.realpath(Jekyll.sanitized_path(root, folder.to_s))
rescue Errno::ENOENT, Errno::EACCES, Errno::ELOOP
nil
end

View File

@@ -1,6 +1,6 @@
class Jekyll::ThemeBuilder
SCAFFOLD_DIRECTORIES = %w(
_layouts _includes _sass
assets _layouts _includes _sass
).freeze
attr_reader :name, :path, :code_of_conduct

View File

@@ -6,10 +6,11 @@ module Jekyll
autoload :Ansi, "jekyll/utils/ansi"
# Constants for use in #slugify
SLUGIFY_MODES = %w(raw default pretty).freeze
SLUGIFY_MODES = %w(raw default pretty ascii).freeze
SLUGIFY_RAW_REGEXP = Regexp.new('\\s+').freeze
SLUGIFY_DEFAULT_REGEXP = Regexp.new("[^[:alnum:]]+").freeze
SLUGIFY_PRETTY_REGEXP = Regexp.new("[^[:alnum:]._~!$&'()+,;=@]+").freeze
SLUGIFY_ASCII_REGEXP = Regexp.new("[^[A-Za-z0-9]]+").freeze
# Takes an indented string and removes the preceding spaces on each line
@@ -160,6 +161,9 @@ module Jekyll
# When mode is "pretty", some non-alphabetic characters (._~!$&'()+,;=@)
# are not replaced with hyphen.
#
# When mode is "ascii", some everything else except ASCII characters
# a-z (lowercase), A-Z (uppercase) and 0-9 (numbers) are not replaced with hyphen.
#
# If cased is true, all uppercase letters in the result string are
# replaced with their lowercase counterparts.
#
@@ -173,6 +177,9 @@ module Jekyll
# slugify("The _config.yml file", "pretty", true)
# # => "The-_config.yml file"
#
# slugify("The _config.yml file", "ascii")
# # => "the-config.yml-file"
#
# Returns the slugified string.
def slugify(string, mode: nil, cased: false)
mode ||= "default"
@@ -193,6 +200,11 @@ module Jekyll
# "._~!$&'()+,;=@" is human readable (not URI-escaped) in URL
# and is allowed in both extN and NTFS.
SLUGIFY_PRETTY_REGEXP
when "ascii"
# For web servers not being able to handle Unicode, the safe
# method is to ditch anything else but latin letters and numeric
# digits.
SLUGIFY_ASCII_REGEXP
end
# Strip according to the mode

View File

@@ -13,18 +13,55 @@ module Jekyll
end
end
# --
# Allows you to detect "real" Windows, or what we would consider
# "real" Windows. That is, that we can pass the basic test and the
# /proc/version returns nothing to us.
# --
def really_windows?
RbConfig::CONFIG["host_os"] =~ %r!mswin|mingw|cygwin!i && \
!proc_version
end
#
def windows?
RbConfig::CONFIG["host_os"] =~ %r!mswin|mingw|cygwin!i || \
proc_version =~ %r!microsoft!i
end
#
def linux?
RbConfig::CONFIG["host_os"] =~ %r!linux! && \
proc_version !~ %r!microsoft!i
end
# Provides windows?, linux?, osx?, unix? so that we can detect
# platforms. This is mostly useful for `jekyll doctor` and for testing
# where we kick off certain tests based on the platform.
{ :windows? => %r!mswin|mingw|cygwin!, :linux? => %r!linux!, \
:osx? => %r!darwin|mac os!, :unix? => %r!solaris|bsd! }.each do |k, v|
{ :osx? => %r!darwin|mac os!, :unix? => %r!solaris|bsd! }.each do |k, v|
define_method k do
!!(
RbConfig::CONFIG["host_os"] =~ v
)
end
end
#
private
def proc_version
@cached_proc_version ||= begin
Pathutil.new(
"/proc/version"
).read
rescue Errno::ENOENT
nil
end
end
end
end
end

View File

@@ -1,3 +1,3 @@
module Jekyll
VERSION = "3.2.0".freeze
VERSION = "3.3.0".freeze
end

View File

@@ -6,7 +6,7 @@
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'jekyll serve'. If you change this file, please restart the server process.
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
@@ -20,10 +20,15 @@ description: > # this means to ignore newlines until "baseurl:"
line in _config.yml. It will appear in your document head meta (for
Google search results) and in your feed.xml site description.
baseurl: "" # the subpath of your site, e.g. /blog
url: "http://example.com" # the base hostname & protocol for your site
url: "" # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: jekyllrb
github_username: jekyll
# Build settings
markdown: kramdown
theme: minima
gems:
- jekyll-feed
exclude:
- Gemfile
- Gemfile.lock

View File

@@ -1,39 +0,0 @@
---
# Only the main Sass file needs front matter (the dashes are enough)
---
@charset "utf-8";
// Our variables
$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
$base-font-size: 16px;
$base-font-weight: 400;
$small-font-size: $base-font-size * 0.875;
$base-line-height: 1.5;
$spacing-unit: 30px;
$text-color: #111;
$background-color: #fdfdfd;
$brand-color: #2a7ae2;
$grey-color: #828282;
$grey-color-light: lighten($grey-color, 40%);
$grey-color-dark: darken($grey-color, 25%);
// Width of the content area
$content-width: 800px;
$on-palm: 600px;
$on-laptop: 800px;
// Minima also includes a mixin for defining media queries.
// Use media queries like this:
// @include media-query($on-palm) {
// .wrapper {
// padding-right: $spacing-unit / 2;
// padding-left: $spacing-unit / 2;
// }
// }
// Import partials from the `minima` theme.
@import "minima";

View File

@@ -1,30 +0,0 @@
---
layout: null
---
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ site.title | xml_escape }}</title>
<description>{{ site.description | xml_escape }}</description>
<link>{{ site.url }}{{ site.baseurl }}/</link>
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
<lastBuildDate>{{ site.time | date_to_rfc822 }}</lastBuildDate>
<generator>Jekyll v{{ jekyll.version }}</generator>
{% for post in site.posts limit:10 %}
<item>
<title>{{ post.title | xml_escape }}</title>
<description>{{ post.content | xml_escape }}</description>
<pubDate>{{ post.date | date_to_rfc822 }}</pubDate>
<link>{{ post.url | prepend: site.baseurl | prepend: site.url }}</link>
<guid isPermaLink="true">{{ post.url | prepend: site.baseurl | prepend: site.url }}</guid>
{% for tag in post.tags %}
<category>{{ tag | xml_escape }}</category>
{% endfor %}
{% for cat in post.categories %}
<category>{{ cat | xml_escape }}</category>
{% endfor %}
</item>
{% endfor %}
</channel>
</rss>

View File

@@ -1,23 +0,0 @@
---
layout: default
---
<div class="home">
<h1 class="page-heading">Posts</h1>
<ul class="post-list">
{% for post in site.posts %}
<li>
<span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
<h2>
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title | escape }}</a>
</h2>
</li>
{% endfor %}
</ul>
<p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.baseurl }}">via RSS</a></p>
</div>

View File

@@ -0,0 +1,6 @@
---
# You don't need to edit this file, it's empty on purpose.
# Edit theme's home layout instead if you wanna make some changes
# See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: home
---

View File

@@ -12,7 +12,7 @@ Add this line to your Jekyll site's Gemfile:
gem <%= theme_name.inspect %>
```
And add this line to your Jekyll site:
And add this line to your Jekyll site's `_config.yml`:
```yaml
theme: <%= theme_name %>
@@ -38,7 +38,7 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
To set up your environment to develop this theme, run `bundle install`.
You theme is setup just like a normal Jelyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When your theme is released, only the files in `_layouts`, `_includes`, and `_sass` tracked with Git will be released.

View File

@@ -1,3 +1,4 @@
*.gem
.bundle
.sass-cache
_site

View File

@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
spec.homepage = "TODO: Put your gem's website or public repo URL here."
spec.license = "MIT"
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(<%= theme_directories.join("|") %>)/}) }
spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(<%= theme_directories.join("|") %>|LICENSE|README)}i) }
spec.add_development_dependency "jekyll", "~> <%= jekyll_version_with_minor %>"
spec.add_development_dependency "bundler", "~> 1.12"

View File

@@ -37,7 +37,6 @@ namespace :site do
require "jekyll"
Jekyll::Commands::Build.process({
"profile" => true,
"verbose" => true,
"source" => File.expand_path("site"),
"destination" => File.expand_path("site/_site")
})
@@ -85,7 +84,6 @@ namespace :site do
ENV['JEKYLL_ENV'] = 'production'
require "jekyll"
Jekyll::Commands::Build.process({
"verbose" => true,
"source" => File.expand_path("site"),
"destination" => File.expand_path("gh-pages"),
"sass" => { "style" => "compressed" }

View File

@@ -9,6 +9,7 @@ then
script/fmt
script/test ci
script/cucumber
script/default-site
elif [[ -x "script/$TEST_SUITE" ]]
then
script/$TEST_SUITE

20
script/default-site Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Runs the `jekyll new` command and builds the default site as a sanity check
set -e
echo "$0: setting up tmp directory"
mkdir -p ./tmp
rm -Rf ./tmp/default-site
echo "$0: creating new default site"
bundle exec jekyll new tmp/default-site
pushd tmp/default-site
echo "$0: respecifying the jekyll install location"
ruby -e "contents = File.read('Gemfile'); File.write('Gemfile', contents.sub(/gem \"jekyll\".*\\n/, 'gem \"jekyll\", path: \"../../\"'))"
echo "$0: installing default site dependencies"
BUNDLE_GEMFILE=Gemfile bundle install
echo "$0: building the default site"
BUNDLE_GEMFILE=Gemfile bundle exec jekyll build --verbose
popd

View File

@@ -50,7 +50,7 @@ for ruby in $rubies; do
rake TESTOPTS=$testopts test
else
set -x
time $ruby -S bundle exec ruby -Itest \
time $ruby -S bundle exec ruby -I test \
"$@" $testops
fi
done

40
site/404.html Normal file
View File

@@ -0,0 +1,40 @@
---
layout: error
permalink: /404.html
sitemap: false
---
<section class="intro">
<div class="grid">
<div class="unit whole align-center">
<p class="first">Huh. It seems that page is<br/>Hyde-ing...</p>
</div>
</div>
</section>
<section class="error">
<div class="grid">
<div class="unit whole align-center">
<p>The resource you requested was not found. Here are some links to help you find your way:</p>
<nav class="main-nav">
<ul>
<li>
<a href="/">Home</a>
</li>
<li>
<a href="/docs/home/">Documentation</a>
</li>
<li>
<a href="/news/">News</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/help/">Help</a>
</li>
</ul>
</nav>
</div>
</div>
</section>

View File

@@ -10,7 +10,7 @@ For information about contributing, see the [Contributing page](http://jekyllrb.
You can preview your contributions before opening a pull request by running from within the directory:
1. `bundle install`
1. `bundle install --without test test_legacy benchmark`
2. `bundle exec rake site:preview`
It's just a jekyll site, afterall! :wink:

View File

@@ -1,7 +1,6 @@
markdown: kramdown
highlighter: rouge
permalink: /news/:year/:month/:day/:title/
excerpt_separator: ""
gauges_id: 503c5af6613f5d0f19000027
google_analytics_id: UA-50755011-1
@@ -23,7 +22,7 @@ url: https://jekyllrb.com
twitter:
username: jekyllrb
logo: img/logo-2x.png
logo: /img/logo-2x.png
gems:
- jekyll-feed
@@ -33,3 +32,7 @@ gems:
- jekyll-seo-tag
- jekyll-avatar
- jekyll-mentions
exclude:
- README.md
- .gitignore

View File

@@ -9,14 +9,14 @@ a Ruby gem. In order to use them, you must first create a file with the
proper extension name (one of `.sass`, `.scss`, or `.coffee`) and ***start the
file with two lines of triple dashes***, like this:
{% highlight sass %}
```sass
---
---
// start content
.my-definition
font-size: 1.2em
{% endhighlight %}
```
Jekyll treats these files the same as a regular page, in that the output file
will be placed in the same directory that it came from. For instance, if you
@@ -46,10 +46,10 @@ If you are using Sass `@import` statements, you'll need to ensure that your
`sass_dir` is set to the base directory that contains your Sass files. You
can do that thusly:
{% highlight yaml %}
```yaml
sass:
sass_dir: _sass
{% endhighlight %}
```
The Sass converter will default the `sass_dir` configuration option to
`_sass`.
@@ -72,10 +72,10 @@ The Sass converter will default the `sass_dir` configuration option to
You may also specify the output style with the `style` option in your
`_config.yml` file:
{% highlight yaml %}
```yaml
sass:
style: compressed
{% endhighlight %}
```
These are passed to Sass, so any output style options Sass supports are valid
here, too.
@@ -88,7 +88,7 @@ To enable Coffeescript in Jekyll 3.0 and up you must
* Install the `jekyll-coffeescript` gem
* Ensure that your `_config.yml` is up-to-date and includes the following:
{% highlight yaml %}
```yaml
gems:
- jekyll-coffeescript
{% endhighlight %}
```

View File

@@ -17,29 +17,29 @@ namespace.
Add the following to your site's `_config.yml` file, replacing `my_collection`
with the name of your collection:
{% highlight yaml %}
```yaml
collections:
- my_collection
{% endhighlight %}
```
You can optionally specify metadata for your collection in the configuration:
{% highlight yaml %}
```yaml
collections:
my_collection:
foo: bar
{% endhighlight %}
```
Default attributes can also be set for a collection:
{% highlight yaml %}
```yaml
defaults:
- scope:
path: ""
type: my_collection
values:
layout: page
{% endhighlight %}
```
### Step 2: Add your content
@@ -62,11 +62,11 @@ If you'd like Jekyll to create a public-facing, rendered version of each
document in your collection, set the `output` key to `true` in your collection
metadata in your `_config.yml`:
{% highlight yaml %}
```yaml
collections:
my_collection:
output: true
{% endhighlight %}
```
This will produce a file for each document in the collection.
For example, if you have `_my_collection/some_subdir/some_doc.md`,
@@ -76,12 +76,12 @@ choice and written out to `<dest>/my_collection/some_subdir/some_doc.html`.
As for posts with [Permalinks](../permalinks/), the document
URL can be customized by setting `permalink` metadata for the collection:
{% highlight yaml %}
```yaml
collections:
my_collection:
output: true
permalink: /awesome/:path/
{% endhighlight %}
```
For example, if you have `_my_collection/some_subdir/some_doc.md`, it will be
written out to `<dest>/awesome/some_subdir/some_doc/index.html`.
@@ -339,7 +339,7 @@ one might have front matter in an individual file structured as follows (which
must use a supported markup format, and cannot be saved with a `.yaml`
extension):
{% highlight yaml %}
```yaml
title: "Josquin: Missa De beata virgine and Missa Ave maris stella"
artist: "The Tallis Scholars"
director: "Peter Phillips"
@@ -357,11 +357,11 @@ works:
duration: "7:47"
- title: "Agnus Dei I, II & III"
duration: "6:49"
{% endhighlight %}
```
Every album in the collection could be listed on a single page with a template:
{% highlight html %}
```html
{% raw %}
{% for album in site.albums %}
<h2>{{ album.title }}</h2>
@@ -377,4 +377,4 @@ Every album in the collection could be listed on a single page with a template:
{% endfor %}
{% endfor %}
{% endraw %}
{% endhighlight %}
```

View File

@@ -284,6 +284,18 @@ class="flag">flags</code> (specified on the command-line) that control them.
<p><code class="flag">-I, --incremental</code></p>
</td>
</tr>
<tr class="setting">
<td>
<p class="name"><strong>Liquid profiler</strong></p>
<p class="description">
Generate a Liquid rendering profile to help you identify performance bottlenecks.
</p>
</td>
<td class="align-center">
<p><code class="option">profile: BOOL</code></p>
<p><code class="flag">--profile</code></p>
</td>
</tr>
</tbody>
</table>
</div>
@@ -387,13 +399,13 @@ before your site is served.
You can provide custom headers for your site by adding them to `_config.yml`
{% highlight yaml %}
```yaml
# File: _config.yml
webrick:
headers:
My-Header: My-Value
My-Other-Header: My-Other-Value
{% endhighlight %}
```
### Defaults
@@ -408,19 +420,19 @@ In the build (or serve) arguments, you can specify a Jekyll environment and valu
For example, suppose you set this conditional statement in your code:
{% highlight liquid %}
```liquid
{% raw %}
{% if jekyll.environment == "production" %}
{% include disqus.html %}
{% endif %}
{% endraw %}
{% endhighlight %}
```
When you build your Jekyll site, the content inside the `if` statement won't be run unless you also specify a `production` environment in the build command, like this:
{% highlight sh %}
```sh
JEKYLL_ENV=production jekyll build
{% endhighlight %}
```
Specifying an environment value allows you to make certain content available only within specific environments.
@@ -442,14 +454,14 @@ The `defaults` key holds an array of scope/values pairs that define what default
Let's say that you want to add a default layout to all pages and posts in your site. You would add this to your `_config.yml` file:
{% highlight yaml %}
```yaml
defaults:
-
scope:
path: "" # an empty string here means all files in the project
values:
layout: "default"
{% endhighlight %}
```
<div class="note info">
<h5>Please stop and rerun `jekyll serve` command.</h5>
@@ -465,7 +477,7 @@ defaults:
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.
{% highlight yaml %}
```yaml
defaults:
-
scope:
@@ -473,14 +485,14 @@ defaults:
type: "posts" # previously `post` in Jekyll 2.2.
values:
layout: "default"
{% endhighlight %}
```
Now, this will only set the layout for files where the type is `posts`.
The different types that are available to you are `pages`, `posts`, `drafts` or any collection in your site. While `type` is optional, you must specify a value for `path` when creating a `scope/values` pair.
As mentioned earlier, you can set multiple scope/values pairs for `defaults`.
{% highlight yaml %}
```yaml
defaults:
-
scope:
@@ -495,11 +507,11 @@ defaults:
values:
layout: "project" # overrides previous default layout
author: "Mr. Hyde"
{% endhighlight %}
```
With these defaults, all posts would use the `my-site` layout. Any html files that exist in the `projects/` folder will use the `project` layout, if it exists. Those files will also have the `page.author` [liquid variable](../variables/) set to `Mr. Hyde`.
{% highlight yaml %}
```yaml
collections:
- my_collection:
output: true
@@ -511,7 +523,7 @@ defaults:
type: "my_collection" # a collection in your site, in plural form
values:
layout: "default"
{% endhighlight %}
```
In this example, the `layout` is set to `default` inside the
[collection](../collections/) with the name `my_collection`.
@@ -524,7 +536,7 @@ You can see that in the second to last example above. First, we set the default
Finally, if you set defaults in the site configuration by adding a `defaults` section to your `_config.yml` file, you can override those settings in a post or page file. All you need to do is specify the settings in the post or page front matter. For example:
{% highlight yaml %}
```yaml
# In _config.yml
...
defaults:
@@ -537,16 +549,16 @@ defaults:
author: "Mr. Hyde"
category: "project"
...
{% endhighlight %}
```
{% highlight yaml %}
```yaml
# In projects/foo_project.md
---
author: "John Smith"
layout: "foobar"
---
The post text goes here...
{% endhighlight %}
```
The `projects/foo_project.md` would have the `layout` set to `foobar` instead
of `project` and the `author` set to `John Smith` instead of `Mr. Hyde` when
@@ -567,7 +579,7 @@ file or on the command-line.
</p>
</div>
{% highlight yaml %}
```yaml
# Where things are
source: .
destination: ./_site
@@ -582,7 +594,7 @@ collections:
# Handling Reading
safe: false
include: [".htaccess"]
exclude: []
exclude: ["node_modules", "vendor"]
keep_files: [".git", ".svn"]
encoding: "utf-8"
markdown_ext: "markdown,mkdown,mkdn,mkd,md"
@@ -639,7 +651,7 @@ kramdown:
input: GFM
hard_wrap: false
footnote_nr: 1
{% endhighlight %}
```
## Liquid Options
@@ -703,7 +715,7 @@ extensions are:
If you're interested in creating a custom markdown processor, you're in luck! Create a new class in the `Jekyll::Converters::Markdown` namespace:
{% highlight ruby %}
```ruby
class Jekyll::Converters::Markdown::MyCustomProcessor
def initialize(config)
require 'funky_markdown'
@@ -718,14 +730,14 @@ class Jekyll::Converters::Markdown::MyCustomProcessor
::FunkyMarkdown.new(content).convert
end
end
{% endhighlight %}
```
Once you've created your class and have it properly set up either as a plugin
in the `_plugins` folder or as a gem, specify it in your `_config.yml`:
{% highlight yaml %}
```yaml
markdown: MyCustomProcessor
{% endhighlight %}
```
## Incremental Regeneration
<div class="note warning">

View File

@@ -19,7 +19,7 @@ Enabling Travis builds for your GitHub repository is pretty simple:
1. Go to your profile on travis-ci.org: https://travis-ci.org/profile/username
2. Find the repository for which you're interested in enabling builds.
3. Click the slider on the right so it says "ON" and is a dark grey.
4. Optionally configure the build by clicking on the wrench icon. Further
4. Optionally configure the build by clicking on the gear icon. Further
configuration happens in your `.travis.yml` file. More details on that
below.
@@ -38,13 +38,13 @@ Save the commands you want to run and succeed in a file: `./script/cibuild`
### The HTML Proofer Executable
{% highlight shell %}
```sh
#!/usr/bin/env bash
set -e # halt script on error
bundle exec jekyll build
bundle exec htmlproofer ./_site
{% endhighlight %}
```
Some options can be specified via command-line switches. Check out the
`html-proofer` README for more information about these switches, or run
@@ -52,20 +52,20 @@ Some options can be specified via command-line switches. Check out the
For example to avoid testing external sites, use this command:
{% highlight shell %}
```sh
$ bundle exec htmlproofer ./_site --disable-external
{% endhighlight %}
```
### The HTML Proofer Library
You can also invoke `html-proofer` in Ruby scripts (e.g. in a Rakefile):
{% highlight ruby %}
```ruby
#!/usr/bin/env ruby
require 'html-proofer'
HTMLProofer.check_directory("./_site").run
{% endhighlight %}
```
Options are given as a second argument to `.new`, and are encoded in a
symbol-keyed Ruby Hash. For more information about the configuration options,
@@ -82,19 +82,19 @@ an explanation of each line.
**Note:** You will need a Gemfile as well, [Travis will automatically install](https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management) the dependencies based on the referenced gems:
{% highlight ruby %}
```ruby
source "https://rubygems.org"
gem "jekyll"
gem "html-proofer"
{% endhighlight %}
```
Your `.travis.yml` file should look like this:
{% highlight yaml %}
```yaml
language: ruby
rvm:
- 2.1
- 2.2.5
before_script:
- chmod +x ./script/cibuild # or do this locally and commit
@@ -114,39 +114,39 @@ env:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
sudo: false # route your build to the container-based infrastructure for a faster build
{% endhighlight %}
```
Ok, now for an explanation of each line:
{% highlight yaml %}
```yaml
language: ruby
{% endhighlight %}
```
This line tells Travis to use a Ruby build container. It gives your script
access to Bundler, RubyGems, and a Ruby runtime.
{% highlight yaml %}
```yaml
rvm:
- 2.1
{% endhighlight %}
- 2.2.5
```
RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This
directive tells Travis the Ruby version to use when running your test
script.
{% highlight yaml %}
```yaml
before_script:
- chmod +x ./script/cibuild
{% endhighlight %}
```
The build script file needs to have the *executable* attribute set or
Travis will fail with a permission denied error. You can also run this
locally and commit the permissions directly, thus rendering this step
irrelevant.
{% highlight yaml %}
```yaml
script: ./script/cibuild
{% endhighlight %}
```
Travis allows you to run any arbitrary shell script to test your site. One
convention is to put all scripts for your project in the `script`
@@ -154,20 +154,20 @@ directory, and to call your test script `cibuild`. This line is completely
customizable. If your script won't change much, you can write your test
incantation here directly:
{% highlight yaml %}
```yaml
install: gem install jekyll html-proofer
script: jekyll build && htmlproofer ./_site
{% endhighlight %}
```
The `script` directive can be absolutely any valid shell command.
{% highlight yaml %}
```yaml
# branch whitelist, only for GitHub Pages
branches:
only:
- gh-pages # test the gh-pages branch
- /pages-(.*)/ # test every branch which starts with "pages-"
{% endhighlight %}
```
You want to ensure the Travis builds for your site are being run only on
the branch or branches which contain your site. One means of ensuring this
@@ -181,11 +181,11 @@ prefixed, exemplified above with the `/pages-(.*)/` regular expression.
The `branches` directive is completely optional. Travis will build from every
push to any branch of your repo if leave it out.
{% highlight yaml %}
```yaml
env:
global:
- NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
{% endhighlight %}
```
Using `html-proofer`? You'll want this environment variable. Nokogiri, used
to parse HTML files in your compiled site, comes bundled with libraries
@@ -200,9 +200,9 @@ environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`.
servers, which Jekyll will mistakenly read and explode on.</p>
</div>
{% highlight yaml %}
```yaml
exclude: [vendor]
{% endhighlight %}
```
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
@@ -210,9 +210,9 @@ explicitly tells Travis to run your build on Travis's [container-based
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`.
{% highlight yaml %}
```yaml
sudo: false
{% endhighlight %}
```
### Troubleshooting

View File

@@ -32,7 +32,7 @@ of code in your Jekyll templates:
In `_data/members.yml`:
{% highlight yaml %}
```yaml
- name: Eric Mill
github: konklone
@@ -41,23 +41,23 @@ In `_data/members.yml`:
- name: Liu Fengyun
github: liufengyun
{% endhighlight %}
```
Or `_data/members.csv`:
{% highlight text %}
```text
name,github
Eric Mill,konklone
Parker Moore,parkr
Liu Fengyun,liufengyun
{% endhighlight %}
```
This data can be accessed via `site.data.members` (notice that the filename
determines the variable name).
You can now render the list of members in a template:
{% highlight html %}
```html
{% raw %}
<ul>
{% for member in site.data.members %}
@@ -69,7 +69,7 @@ You can now render the list of members in a template:
{% endfor %}
</ul>
{% endraw %}
{% endhighlight %}
```
## Example: Organizations
@@ -80,7 +80,7 @@ folder:
In `_data/orgs/jekyll.yml`:
{% highlight yaml %}
```yaml
username: jekyll
name: Jekyll
members:
@@ -89,22 +89,22 @@ members:
- name: Parker Moore
github: parkr
{% endhighlight %}
```
In `_data/orgs/doeorg.yml`:
{% highlight yaml %}
```yaml
username: doeorg
name: Doe Org
members:
- name: John Doe
github: jdoe
{% endhighlight %}
```
The organizations can then be accessed via `site.data.orgs`, followed by the
file name:
{% highlight html %}
```html
{% raw %}
<ul>
{% for org_hash in site.data.orgs %}
@@ -118,22 +118,22 @@ file name:
{% endfor %}
</ul>
{% endraw %}
{% endhighlight %}
```
## Example: Accessing a specific author
Pages and posts can also access a specific data item. The example below shows how to access a specific item:
`_data/people.yml`:
{% highlight yaml %}
```yaml
dave:
name: David Smith
twitter: DavidSilvaSmith
{% endhighlight %}
```
The author can then be specified as a page variable in a post's frontmatter:
{% highlight html %}
```html
{% raw %}
---
title: sample post
@@ -148,4 +148,4 @@ author: dave
</a>
{% endraw %}
{% endhighlight %}
```

View File

@@ -8,7 +8,7 @@ Sites built using Jekyll can be deployed in a large number of ways due to the st
## Web hosting providers (FTP)
Just about any traditional web hosting provider will let you upload files to their servers over FTP. To upload a Jekyll site to a web host using FTP, simply run the `jekyll` command and copy the generated `_site` folder to the root folder of your hosting account. This is most likely to be the `httpdocs` or `public_html` folder on most hosting providers.
Just about any traditional web hosting provider will let you upload files to their servers over FTP. To upload a Jekyll site to a web host using FTP, simply run the `jekyll build` command and copy the generated `_site` folder to the root folder of your hosting account. This is most likely to be the `httpdocs` or `public_html` folder on most hosting providers.
### FTP using Glynn
@@ -35,19 +35,19 @@ this](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/0
To have a remote server handle the deploy for you every time you push changes using Git, you can create a user account which has all the public keys that are authorized to deploy in its `authorized_keys` file. With that in place, setting up the post-receive hook is done as follows:
{% highlight shell %}
```sh
laptop$ ssh deployer@example.com
server$ mkdir myrepo.git
server$ cd myrepo.git
server$ git --bare init
server$ cp hooks/post-receive.sample hooks/post-receive
server$ mkdir /var/www/myrepo
{% endhighlight %}
```
Next, add the following lines to hooks/post-receive and be sure Jekyll is
installed on the server:
{% highlight shell %}
```sh
GIT_REPO=$HOME/myrepo.git
TMP_GIT_CLONE=$HOME/tmp/myrepo
PUBLIC_WWW=/var/www/myrepo
@@ -56,34 +56,21 @@ git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit
{% endhighlight %}
```
Finally, run the following command on any users laptop that needs to be able to
deploy using this hook:
{% highlight shell %}
```sh
laptops$ git remote add deploy deployer@example.com:~/myrepo.git
{% endhighlight %}
```
Deploying is now as easy as telling nginx or Apache to look at
`/var/www/myrepo` and running the following:
{% highlight shell %}
```sh
laptops$ git push deploy master
{% endhighlight %}
### Jekyll-hook
You can also use jekyll-hook, a server that listens for webhook posts from
GitHub, generates a website with Jekyll, and moves it somewhere to be
published. Use this to run your own GitHub Pages-style web server.
This method is useful if you need to serve your websites behind a firewall,
need extra server-level features like HTTP basic authentication or want to
host your site directly on a CDN or file host like S3.
Setup steps are fully documented
[in the `jekyll-hook` repo](https://github.com/developmentseed/jekyll-hook).
```
### Static Publisher
@@ -102,7 +89,7 @@ Once youve generated the `_site` directory, you can easily scp it using a
need to change the values to reflect your sites details. There is even [a
matching TextMate command][] that will help you run this script.
[this deploy script here]: https://github.com/henrik/henrik.nyh.se/blob/master/script/deploy
[this deploy script]: https://github.com/henrik/henrik.nyh.se/blob/master/script/deploy
[a matching TextMate command]: https://gist.github.com/henrik/214959
@@ -129,9 +116,9 @@ is to put the restriction to certificate-based authorization in
`~/.ssh/authorized_keys`. Then, launch `rrsync` and supply
it with the folder it shall have read-write access to:
{% highlight shell %}
```sh
command="$HOME/bin/rrsync <folder>",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa <cert>
{% endhighlight %}
```
`<folder>` is the path to your site. E.g., `~/public_html/you.org/blog-html/`.
@@ -139,11 +126,11 @@ command="$HOME/bin/rrsync <folder>",no-agent-forwarding,no-port-forwarding,no-pt
Add the `deploy` script to the site source folder:
{% highlight shell %}
```sh
#!/bin/sh
rsync -crvz --rsh='ssh -p2222' --delete-after --delete-excluded <folder> <user>@<site>:
{% endhighlight %}
```
Command line parameters are:
@@ -155,9 +142,9 @@ your host uses a different port than the default (e.g, HostGator)
Using this setup, you might run the following command:
{% highlight shell %}
```sh
rsync -crvz --rsh='ssh -p2222' --delete-after --delete-excluded _site/ hostuser@example.org:
{% endhighlight %}
```
Don't forget the column `:` after server name!
@@ -169,10 +156,10 @@ copy it to the output folder. This behavior can be changed in `_config.yml`.
Just add the following line:
{% highlight yaml %}
```yaml
# Do not copy these files to the output directory
exclude: ["deploy"]
{% endhighlight %}
```
Alternatively, you can use an `rsync-exclude.txt` file to control which files will be transferred to your server.
@@ -205,7 +192,7 @@ low-volume blogs as you only pay for what you use.
## OpenShift
If you'd like to deploy your site to an OpenShift gear, there's [a cartridge
for that](https://github.com/openshift-cartridges/openshift-jekyll-cartridge).
for that](https://github.com/openshift-quickstart/jekyll-openshift).
<div class="note">
<h5>ProTip™: Use GitHub Pages for zero-hassle Jekyll hosting</h5>

View File

@@ -9,10 +9,10 @@ don't want to publish yet. To get up and running with drafts, create a
`_drafts` folder in your site's root (as described in the [site structure](/docs/structure/) section) and create your
first draft:
{% highlight text %}
```text
|-- _drafts/
| |-- a-draft-post.md
{% endhighlight %}
```
To preview your site with drafts, simply run `jekyll serve` or `jekyll build`
with the `--drafts` switch. Each will be assigned the value modification time

View File

@@ -11,9 +11,9 @@ may want to install, depending on how you plan to use Jekyll.
Kramdown comes with optional support for LaTeX to PNG rendering via [MathJax](https://www.mathjax.org) within math blocks. See the Kramdown documentation on [math blocks](http://kramdown.gettalong.org/syntax.html#math-blocks) and [math support](http://kramdown.gettalong.org/converter/html.html#math-support) for more details. MathJax requires you to include JavaScript or CSS to render the LaTeX, e.g.
{% highlight html %}
```html
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script>
{% endhighlight %}
```
For more information about getting started, check out [this excellent blog post](http://gastonsanchez.com/opinion/2014/02/16/Mathjax-with-jekyll/).

View File

@@ -10,12 +10,12 @@ 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:
{% highlight yaml %}
```yaml
---
layout: post
title: Blogging Like a Hacker
---
{% endhighlight %}
```
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
@@ -108,7 +108,7 @@ data that is sent to the Liquid templating engine during the conversion. For
instance, if you set a title, you can use that in your layout to set the page
title:
{% highlight html %}
```html
<!DOCTYPE HTML>
<html>
<head>
@@ -116,7 +116,7 @@ title:
</head>
<body>
...
{% endhighlight %}
```
## Predefined Variables for Posts
@@ -156,7 +156,7 @@ These are available out-of-the-box to be used in the front matter for a post.
more categories that the post belongs to. When the site is generated
the post will act as though it had been set with these categories
normally. Categories (plural key) can be specified as a <a
href="https://en.wikipedia.org/wiki/YAML#Lists">YAML list</a> or a
href="https://en.wikipedia.org/wiki/YAML#Basic_components">YAML list</a> or a
comma-separated string.
</p>
@@ -170,7 +170,8 @@ These are available out-of-the-box to be used in the front matter for a post.
<p>
Similar to categories, one or multiple tags can be added to a post.
Also like categories, tags can be specified as a YAML list or a
Also like categories, tags can be specified as a <a
href="https://en.wikipedia.org/wiki/YAML#Basic_components">YAML list</a> or a
comma-separated string.
</p>

View File

@@ -22,14 +22,14 @@ branch to GitHub. However, 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 `site.github.url` in your URL's.
{% highlight html %}
```html
{% raw %}
<!-- Useful for styles with static names... -->
<link href="{{ site.github.url }}/path/to/css.css" rel="stylesheet">
<!-- and for documents/pages whose URL's can change... -->
<a href="{{ page.url | prepend: site.github.url }}">{{ page.title }}</a>
{% endraw %}
{% endhighlight %}
```
This way you can preview your site locally from the site root on localhost,
but when GitHub generates your pages from the gh-pages branch all the URLs
@@ -54,7 +54,7 @@ few minor details.
currently-deployed version of the gem in your project, add the
following to your <code>Gemfile</code>:
{% highlight ruby %}
```ruby
source 'https://rubygems.org'
require 'json'
@@ -62,18 +62,18 @@ require 'open-uri'
versions = JSON.parse(open('https://pages.github.com/versions.json').read)
gem 'github-pages', versions['github-pages']
{% endhighlight %}
```
This will ensure that when you run <code>bundle install</code>, you
have the correct version of the <code>github-pages</code> gem.
If that fails, simplify it:
{% highlight ruby %}
```ruby
source 'https://rubygems.org'
gem 'github-pages'
{% endhighlight %}
```
And be sure to run <code>bundle update</code> often.

View File

@@ -5,6 +5,143 @@ permalink: "/docs/history/"
note: This file is autogenerated. Edit /History.markdown instead.
---
## 3.3.0 / 2016-10-06
{: #v3-3-0}
### Minor Enhancements
{: #minor-enhancements-v3-3-0}
- Colorize interpolated output in logger.info ([#5239]({{ site.repository }}/issues/5239))
- Site template: exclude Gemfile and Gemfile.lock in site config ([#5293]({{ site.repository }}/issues/5293))
- Fix [#5233]({{ site.repository }}/issues/5233): Increase our ability to detect Windows. ([#5235]({{ site.repository }}/issues/5235))
- update gitignore template to ignore theme gems built by user ([#5326]({{ site.repository }}/issues/5326))
- Adds ability to link to all files ([#5199]({{ site.repository }}/issues/5199))
- Exclude vendor by default ([#5361]({{ site.repository }}/issues/5361))
- Add ThemeAssetsReader which reads assets from a theme ([#5364]({{ site.repository }}/issues/5364))
- Add bundle install to jekyll new command ([#5237]({{ site.repository }}/issues/5237))
- Add absolute_url and relative_url filters. ([#5399]({{ site.repository }}/issues/5399))
- Site template: remove `css/` from new site scaffolding ([#5402]({{ site.repository }}/issues/5402))
- Site template: Move contents of the index.html page to the 'home' layout ([#5420]({{ site.repository }}/issues/5420))
- Exclude node_modules by default ([#5210]({{ site.repository }}/issues/5210))
- Run hooks in priority order. ([#5157]({{ site.repository }}/issues/5157))
- Add `static_file.name` and `.basename` Liquid attributes ([#5264]({{ site.repository }}/issues/5264))
- set site.url in dev environment to `http://localhost:4000` ([#5431]({{ site.repository }}/issues/5431))
- Add support for indented link references on excerpt ([#5212]({{ site.repository }}/issues/5212))
### Bug Fixes
{: #bug-fixes-v3-3-0}
- Use jekyll-feed to generate the default site's RSS feed ([#5196]({{ site.repository }}/issues/5196))
- Site#configure_theme: do not set theme unless it's a string ([#5189]({{ site.repository }}/issues/5189))
- Convertible: set self.output in #render_all_layouts and #do_layout ([#5337]({{ site.repository }}/issues/5337))
- Only complain about `kramdown.coderay` if it is actually in the config ([#5380]({{ site.repository }}/issues/5380))
- Clarify documentation in theme gem's README template ([#5376]({{ site.repository }}/issues/5376))
- Allow underscore in highlighter language ([#5375]({{ site.repository }}/issues/5375))
- Site template: set empty url in config file by default ([#5338]({{ site.repository }}/issues/5338))
- Site template config: prepend 'jekyll serve' with 'bundle exec' ([#5430]({{ site.repository }}/issues/5430))
- Don't call `File.utime` for StaticFiles if it's a symlink ([#5427]({{ site.repository }}/issues/5427))
- Fix handling of non-ASCII characters in new `*_url` filters ([#5410]({{ site.repository }}/issues/5410))
- Remove autoload of Draft which no longer exists. ([#5441]({{ site.repository }}/issues/5441))
- Fix issue where Windows drive name is stripped from Jekyll.sanitized_path incorrectly ([#5256]({{ site.repository }}/issues/5256))
- Fix bug where `post_url` tag matched incorrect post with subdirectory ([#4873]({{ site.repository }}/issues/4873))
- Fix loading data from subdir with a period in name ([#5433]({{ site.repository }}/issues/5433))
- Revert Commands::Serve#server_address signature change. ([#5456]({{ site.repository }}/issues/5456))
### Site Enhancements
{: #site-enhancements-v3-3-0}
- Document `to_integer` and `inspect` filters ([#5185]({{ site.repository }}/issues/5185))
- Fix path in the prompt ([#5194]({{ site.repository }}/issues/5194))
- need subcommand build ([#5190]({{ site.repository }}/issues/5190))
- Add the Jekyll Cloudinary plugin ([#5183]({{ site.repository }}/issues/5183))
- Documentation : `new-theme` command ([#5205]({{ site.repository }}/issues/5205))
- Document `link` Liquid tag ([#5182]({{ site.repository }}/issues/5182))
- Remove mention of page for link tag in release post ([#5214]({{ site.repository }}/issues/5214))
- fixed typo ([#5226]({{ site.repository }}/issues/5226))
- Add missing comma ([#5222]({{ site.repository }}/issues/5222))
- Maintain aspect ratio with `height: auto;` ([#5254]({{ site.repository }}/issues/5254))
- Fix a link in deployment-methods.md ([#5244]({{ site.repository }}/issues/5244))
- Documentation: improve highlight in `Creating a theme` ([#5249]({{ site.repository }}/issues/5249))
- Bundler isn't installed by default ([#5258]({{ site.repository }}/issues/5258))
- Update troubleshooting documentation to include fix for issue with vendored gems ([#5271]({{ site.repository }}/issues/5271))
- Link `--lsi` option's description to Wikipedia docs on LSI ([#5274]({{ site.repository }}/issues/5274))
- Document `--profile` option on the configuration page ([#5279]({{ site.repository }}/issues/5279))
- Update homepage to sync with merge of [#5258]({{ site.repository }}/issues/5258) ([#5287]({{ site.repository }}/issues/5287))
- Add post about Jekyll Admin initial release ([#5291]({{ site.repository }}/issues/5291))
- Replace liquid highlight tag with backticks ([#5262]({{ site.repository }}/issues/5262))
- Word update ([#5294]({{ site.repository }}/issues/5294))
- Site documentation section links always point to https://jekyllrb.com ([#5281]({{ site.repository }}/issues/5281))
- Missing `:site, :post_render` payload documentation on site ([#5280]({{ site.repository }}/issues/5280))
- Site: exclude README.md and .gitignore ([#5304]({{ site.repository }}/issues/5304))
- Add link to Staticman ([#5224]({{ site.repository }}/issues/5224))
- Update url for OpenShift ([#5320]({{ site.repository }}/issues/5320))
- [docs] add help for missing static_file e.g. on heroku ([#5334]({{ site.repository }}/issues/5334))
- Add a line about updating theme-gems in the docs ([#5318]({{ site.repository }}/issues/5318))
- Explain how to copy a theme's files ([#5335]({{ site.repository }}/issues/5335))
- [docs] .md as default extension in examples ([#5316]({{ site.repository }}/issues/5316))
- Fix small typo in docs ([#5347]({{ site.repository }}/issues/5347))
- Add missing period to sentence in first paragraph. ([#5372]({{ site.repository }}/issues/5372))
- added jekyll-spotify plugin ([#5369]({{ site.repository }}/issues/5369))
- Add jekyll-menus to the list of plugins. ([#5397]({{ site.repository }}/issues/5397))
- macOS and one grammar fix ([#5403]({{ site.repository }}/issues/5403))
- Add documentation for `relative_url` and `absolute_url` ([#5405]({{ site.repository }}/issues/5405))
- Bugfix on logo in JSON-LD ([#5421]({{ site.repository }}/issues/5421))
- Fix Travis.ci documentation ([#5413]({{ site.repository }}/issues/5413))
- [docs] Update documentation regarding `bundle install` after `jekyll new` ([#5428]({{ site.repository }}/issues/5428))
- Replace classic box-sizing reset with inheritance reset ([#5411]({{ site.repository }}/issues/5411))
- Update Wikipedia YAML list link ([#5452]({{ site.repository }}/issues/5452))
- Add Jekyll 3.3 release post ([#5442]({{ site.repository }}/issues/5442))
### Development Fixes
{: #development-fixes-v3-3-0}
- Update appveyor.yml and fix optional deps for Ruby x64 ([#5180]({{ site.repository }}/issues/5180))
- Improve tests for Jekyll::PluginManager ([#5167]({{ site.repository }}/issues/5167))
- Update Ruby versions in travis.yml ([#5221]({{ site.repository }}/issues/5221))
- Avoid installing unecessary gems for site testing ([#5272]({{ site.repository }}/issues/5272))
- Proposal: Affinity teams and their captains ([#5273]({{ site.repository }}/issues/5273))
- Replace duplicate with postive local test in issue template ([#5286]({{ site.repository }}/issues/5286))
- Update AppVeyor config. ([#5240]({{ site.repository }}/issues/5240))
- Execute jekyll from clone instead of defined binary when running 'script/default-site' ([#5295]({{ site.repository }}/issues/5295))
- rubocop: lib/jekyll/document.rb complexity fixes ([#5045]({{ site.repository }}/issues/5045))
- Proxy a number of Convertible methods to Renderer ([#5308]({{ site.repository }}/issues/5308))
- Run executable for Cucumber via Ruby instead of Shell ([#5383]({{ site.repository }}/issues/5383))
- Appease Rubocop ([#5381]({{ site.repository }}/issues/5381))
- remove features' directories on windows with proper access ([#5389]({{ site.repository }}/issues/5389))
- `site_configuration.feature`: use UTC format in timezone ([#5416]({{ site.repository }}/issues/5416))
- swallow bundle output from `jekyll new` while in CI ([#5408]({{ site.repository }}/issues/5408))
- Add .editorconfig ([#5412]({{ site.repository }}/issues/5412))
## 3.2.1 / 2016-08-02
{: #v3-2-1}
### Bug Fixes
{: #bug-fixes-v3-2-1}
- Include theme directories in default gemspec ([#5152]({{ site.repository }}/issues/5152))
- Fix for symlinked themes ([#5156]({{ site.repository }}/issues/5156))
- Layout: set `relative_path` without using Pathname ([#5164]({{ site.repository }}/issues/5164))
### Development Fixes
{: #development-fixes-v3-2-1}
- Add test to build the default site ([#5154]({{ site.repository }}/issues/5154))
- script/default-site: specify `BUNDLE_GEMFILE` for new site ([#5178]({{ site.repository }}/issues/5178))
- script/default-site: read Jekyll source from local clone ([#5188]({{ site.repository }}/issues/5188))
### Site Enhancements
{: #site-enhancements-v3-2-1}
- Enable site excerpts ([#5150]({{ site.repository }}/issues/5150))
- Initial 404 page ([#5143]({{ site.repository }}/issues/5143))
- Remove the "this feature is unreleased" warning from the theme docs ([#5158]({{ site.repository }}/issues/5158))
- Future True on GitHub Pages note ([#5173]({{ site.repository }}/issues/5173))
- Minor updates and corrections ([#5177]({{ site.repository }}/issues/5177))
- index.html: update instructions to require bundler ([#5169]({{ site.repository }}/issues/5169))
- docs/quickstart: update instructions to require bundler ([#5168]({{ site.repository }}/issues/5168))
## 3.2.0 / 2016-07-26
{: #v3-2-0}

View File

@@ -7,7 +7,7 @@ permalink: /docs/installation/
Getting Jekyll installed and ready-to-go should only take a few minutes.
If it ever becomes a pain, please [file an issue]({{ site.repository }}/issues/new)
(or submit a pull request) describing the issue you
encountered and how we might make the process easier
encountered and how we might make the process easier.
### Requirements
@@ -17,7 +17,7 @@ requirements youll need to make sure your system has before you start.
- [Ruby](https://www.ruby-lang.org/en/downloads/) (including development
headers, v1.9.3 or above for Jekyll 2 and v2 or above for Jekyll 3)
- [RubyGems](https://rubygems.org/pages/download)
- Linux, Unix, or Mac OS X
- Linux, Unix, or macOS
- [NodeJS](https://nodejs.org/), or another JavaScript runtime (Jekyll 2 and
earlier, for CoffeeScript support).
- [Python 2.7](https://www.python.org/downloads/) (for Jekyll 2 and earlier)
@@ -37,9 +37,9 @@ The best way to install Jekyll is via
[RubyGems](http://rubygems.org/pages/download). At the terminal prompt,
simply run the following command to install Jekyll:
{% highlight shell %}
```sh
$ gem install jekyll
{% endhighlight %}
```
All of Jekylls gem dependencies are automatically installed by the above
command, so you wont have to worry about them at all. If you have problems
@@ -51,8 +51,8 @@ community can improve the experience for everyone.
<h5>Installing Xcode Command-Line Tools</h5>
<p>
If you run into issues installing Jekyll's dependencies which make use of
native extensions and are using Mac OS X, you will need to install Xcode
and the Command-Line Tools it ships with. Download in
native extensions and are using macOS, you will need to install Xcode
and the Command-Line Tools it ships with. Download them in
<code>Preferences &#8594; Downloads &#8594; Components</code>.
</p>
</div>
@@ -62,28 +62,28 @@ community can improve the experience for everyone.
In order to install a pre-release, make sure you have all the requirements
installed properly and run:
{% highlight shell %}
```sh
gem install jekyll --pre
{% endhighlight %}
```
This will install the latest pre-release. If you want a particular pre-release,
use the `-v` switch to indicate the version you'd like to install:
{% highlight shell %}
```sh
gem install jekyll -v '2.0.0.alpha.1'
{% endhighlight %}
```
If you'd like to install a development version of Jekyll, the process is a bit
more involved. This gives you the advantage of having the latest and greatest,
but may be unstable.
{% highlight shell %}
```sh
$ git clone git://github.com/jekyll/jekyll.git
$ cd jekyll
$ script/bootstrap
$ bundle exec rake build
$ ls pkg/*.gem | head -n 1 | xargs gem install -l
{% endhighlight %}
```
## Optional Extras
@@ -103,4 +103,25 @@ Check out [the extras page](../extras/) for more information.
</p>
</div>
Now that youve got everything installed, lets get to work!
## Already Have Jekyll?
Before you start developing with Jekyll, you may want to check that you're up to date with the latest version. To find your version of Jekyll, run one of these commands:
```sh
$ jekyll --version
$ gem list jekyll
```
You can also use [RubyGems](https://rubygems.org/gems/jekyll) to find the current versioning of any gem. But you can also use the `gem` command line tool:
```sh
$ gem search jekyll --remote
```
and you'll search for just the name `jekyll`, and in brackets will be latest version. Another way to check if you have the latest version is to run the command `gem outdated`. This will provide a list of all the gems on your system that need to be updated. If you aren't running the latest version, run this command:
```sh
$ gem update jekyll
```
Now that youve got everything up-to-date and installed, lets get to work!

View File

@@ -46,7 +46,7 @@ directory with a suitable name for the page you want to create. For a site with
a homepage, an about page, and a contact page, heres what the root directory
and associated URLs might look like:
{% highlight shell %}
```sh
.
|-- _config.yml
|-- _includes/
@@ -57,7 +57,7 @@ and associated URLs might look like:
|-- index.html # => http://example.com/
|-- other.md # => http://example.com/other.html
└── contact.html # => http://example.com/contact.html
{% endhighlight %}
```
### Named folders containing index HTML files
@@ -69,7 +69,7 @@ the page URL ends up being the folder name, and the web server will serve up
the respective `index.html` file. Here's an example of what this structure
might look like:
{% highlight shell %}
```sh
.
├── _config.yml
├── _includes/
@@ -83,7 +83,7 @@ might look like:
|── other/
| └── index.md # => http://example.com/other/
└── index.html # => http://example.com/
{% endhighlight %}
```
This approach may not suit everyone, but for people who like clean URLs its
simple and it works. In the end, the decision is yours!

View File

@@ -28,18 +28,18 @@ your `_config.yml` under `gems`. For Jekyll 2, this is standard.
To enable pagination for your blog, add a line to the `_config.yml` file that
specifies how many items should be displayed per page:
{% highlight yaml %}
```yaml
paginate: 5
{% endhighlight %}
```
The number should be the maximum number of Posts youd like to be displayed
per-page in the generated site.
You may also specify the destination of the pagination pages:
{% highlight yaml %}
```yaml
paginate_path: "/blog/page:num/"
{% endhighlight %}
```
This will read in `blog/index.html`, send it each pagination page in Liquid as
`paginator` and write the output to `blog/page:num/`, where `:num` is the
@@ -146,7 +146,7 @@ the `paginator` variable that will now be available to you. Youll probably
want to do this in one of the main pages of your site. Heres one example of a
simple way of rendering paginated Posts in a HTML file:
{% highlight html %}
```html
{% raw %}
---
layout: default
@@ -179,7 +179,7 @@ title: My Blog
{% endif %}
</div>
{% endraw %}
{% endhighlight %}
```
<div class="note warning">
<h5>Beware the page one edge-case</h5>
@@ -193,7 +193,7 @@ title: My Blog
The following HTML snippet should handle page one, and render a list of each
page with links to all but the current page.
{% highlight html %}
```html
{% raw %}
{% if paginator.total_pages > 1 %}
<div class="pagination">
@@ -221,4 +221,4 @@ page with links to all but the current page.
</div>
{% endif %}
{% endraw %}
{% endhighlight %}
```

View File

@@ -93,7 +93,7 @@ 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:
{% highlight ruby %}
```ruby
module Reading
class Generator < Jekyll::Generator
def generate(site)
@@ -105,11 +105,11 @@ module Reading
end
end
end
{% endhighlight %}
```
This is a more complex generator that generates new pages:
{% highlight ruby %}
```ruby
module Jekyll
class CategoryPage < Page
@@ -142,7 +142,7 @@ module Jekyll
end
end
{% endhighlight %}
```
In this example, our generator will create a series of files under the
`categories` directory for each category, listing the posts in each category
@@ -189,7 +189,7 @@ languages are implemented using this method.
Below is a converter that will take all posts ending in `.upcase` and process
them using the `UpcaseConverter`:
{% highlight ruby %}
```ruby
module Jekyll
class UpcaseConverter < Converter
safe true
@@ -208,7 +208,7 @@ module Jekyll
end
end
end
{% endhighlight %}
```
Converters should implement at a minimum 3 methods:
@@ -266,16 +266,16 @@ As of 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`:
{% highlight ruby %}
```ruby
group :jekyll_plugins do
gem "my_fancy_jekyll_plugin"
end
{% endhighlight %}
```
Each `Command` must be a subclass of the `Jekyll::Command` class and must
contain one class method: `init_with_program`. An example:
{% highlight ruby %}
```ruby
class MyNewCommand < Jekyll::Command
class << self
def init_with_program(prog)
@@ -292,7 +292,7 @@ class MyNewCommand < Jekyll::Command
end
end
end
{% endhighlight %}
```
Commands should implement this single class method:
@@ -328,7 +328,7 @@ hooking into the tagging system. Built-in examples added by Jekyll include the
`highlight` and `include` tags. Below is an example of a custom liquid tag that
will output the time the page was rendered:
{% highlight ruby %}
```ruby
module Jekyll
class RenderTimeTag < Liquid::Tag
@@ -344,7 +344,7 @@ module Jekyll
end
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
{% endhighlight %}
```
At a minimum, liquid tags must implement:
@@ -372,24 +372,24 @@ At a minimum, liquid tags must implement:
You must also register the custom tag with the Liquid template engine as
follows:
{% highlight ruby %}
```ruby
Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag)
{% endhighlight %}
```
In the example above, we can place the following tag anywhere in one of our
pages:
{% highlight ruby %}
```ruby
{% raw %}
<p>{% render_time page rendered at: %}</p>
{% endraw %}
{% endhighlight %}
```
And we would get something like this on the page:
{% highlight html %}
```html
<p>page rendered at: Tue June 22 23:38:47 0500 2010</p>
{% endhighlight %}
```
### Liquid filters
@@ -398,7 +398,7 @@ add tags above. Filters are simply modules that export their methods to liquid.
All methods will have to take at least one parameter which represents the input
of the filter. The return value will be the output of the filter.
{% highlight ruby %}
```ruby
module Jekyll
module AssetFilter
def asset_url(input)
@@ -408,7 +408,7 @@ module Jekyll
end
Liquid::Template.register_filter(Jekyll::AssetFilter)
{% endhighlight %}
```
<div class="note">
<h5>ProTip™: Access the site object using Liquid</h5>
@@ -469,7 +469,7 @@ There are two flags to be aware of when writing a plugin:
To use one of the example plugins above as an illustration, here is how youd
specify these two flags:
{% highlight ruby %}
```ruby
module Jekyll
class UpcaseConverter < Converter
safe true
@@ -477,7 +477,7 @@ module Jekyll
...
end
end
{% endhighlight %}
```
## Hooks
@@ -491,18 +491,20 @@ call whenever the hook is triggered. For example, if you want to execute some
custom functionality every time Jekyll renders a post, you could register a
hook like this:
{% highlight ruby %}
```ruby
Jekyll::Hooks.register :posts, :post_render do |post|
# code to call after Jekyll renders a post
end
{% endhighlight %}
```
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. But in the
case of <code>:pre_render</code>, your hook will also receive a payload hash as
a second parameter which allows you full control over the variables that are
available while rendering.
<code>:posts</code>, and <code>:documents</code>. In all cases, Jekyll calls
your hooks with the container object as the first callback parameter. However,
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:
@@ -863,6 +865,8 @@ LESS.js files during generation.
- [Jekyll Ideal Image Slider](https://github.com/xHN35RQ/jekyll-ideal-image-slider): Liquid tag plugin to create image sliders using [Ideal Image Slider](https://github.com/gilbitron/Ideal-Image-Slider).
- [Jekyll Tags List Plugin](https://github.com/crispgm/jekyll-tags-list-plugin): A Liquid tag plugin that creates tags list in specific order.
- [Jekyll Maps](https://github.com/ayastreb/jekyll-maps) by [Anatoliy Yastreb](https://github.com/ayastreb): A Jekyll plugin to easily embed maps with filterable locations.
- [Jekyll Cloudinary](https://nhoizey.github.io/jekyll-cloudinary/) by [Nicolas Hoizey](https://nicolas-hoizey.com/): a Jekyll plugin adding a Liquid tag to ease the use of Cloudinary for responsive images in your Markdown/Kramdown posts.
- [jekyll-include-absolute-plugin](https://github.com/tnhu/jekyll-include-absolute-plugin) by [Tan Nhu](https://github.com/tnhu): A Jekyll plugin to include a file from its path relative to Jekyll's source folder.
#### Collections
@@ -907,6 +911,9 @@ LESS.js files during generation.
- [Jekyll Autoprefixer](https://github.com/vwochnik/jekyll-autoprefixer): Autoprefixer integration for Jekyll
- [Jekyll-breadcrumbs](https://github.com/git-no/jekyll-breadcrumbs): Creates breadcrumbs for Jekyll 3.x, includes features like SEO optimization, optional breadcrumb item translation and more.
- [generator-jekyllized](https://github.com/sondr3/generator-jekyllized): A Yeoman generator for rapidly developing sites with Gulp. Live reload your site, automatically minify and optimize your assets and much more.
- [Jekyll-Spotify](https://github.com/MertcanGokgoz/Jekyll-Spotify): Easily output Spotify Embed Player for jekyll
- [jekyll-menus](https://github.com/forestryio/jekyll-menus): Hugo style menus for your Jekyll site... recursive menus included.
- [jekyll-data](https://github.com/ashmaroli/jekyll-data): Read data files within Jekyll Theme Gems.
#### Editors

View File

@@ -27,18 +27,18 @@ To create a new post, all you need to do is create a file in the `_posts`
directory. How you name files in this folder is important. Jekyll requires blog
post files to be named according to the following format:
{% highlight shell %}
```sh
YEAR-MONTH-DAY-title.MARKUP
{% endhighlight %}
```
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit
numbers, and `MARKUP` is the file extension representing the format used in the
file. For example, the following are examples of valid post filenames:
{% highlight shell %}
```sh
2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.textile
{% endhighlight %}
2012-09-12-how-to-write-a-blog.md
```
<div class="note">
<h5>ProTip™: Link to other posts</h5>
@@ -90,16 +90,16 @@ variable in a post.
Including an image asset in a post:
{% highlight text %}
```text
... which is shown in the screenshot below:
![My helpful screenshot]({% raw %}{{ site.url }}{% endraw %}/assets/screenshot.jpg)
{% endhighlight %}
```
Linking to a PDF for readers to download:
{% highlight text %}
```text
... you can [get the PDF]({% raw %}{{ site.url }}{% endraw %}/assets/mydoc.pdf) directly.
{% endhighlight %}
```
<div class="note">
<h5>ProTip™: Link using just the site root URL</h5>
@@ -119,7 +119,7 @@ you have a list of posts somewhere. Creating an index of posts on another page
language](https://docs.shopify.com/themes/liquid/basics) and its tags. Heres a
basic example of how to create a list of links to your blog posts:
{% highlight html %}
```html
<ul>
{% raw %}{% for post in site.posts %}{% endraw %}
<li>
@@ -127,7 +127,7 @@ basic example of how to create a list of links to your blog posts:
</li>
{% raw %}{% endfor %}{% endraw %}
</ul>
{% endhighlight %}
```
Of course, you have full control over how (and where) you display your posts,
and how you structure your site. You should read more about [how templates
@@ -146,7 +146,7 @@ Take the above example of an index of posts. Perhaps you want to include
a little hint about the post's content by adding the first paragraph of each of
your posts:
{% highlight html %}
```html
<ul>
{% raw %}{% for post in site.posts %}{% endraw %}
<li>
@@ -155,22 +155,22 @@ your posts:
</li>
{% raw %}{% endfor %}{% endraw %}
</ul>
{% endhighlight %}
```
Because Jekyll grabs the first paragraph you will not need to wrap the excerpt
in `p` tags, which is already done for you. These tags can be removed with the
following if you'd prefer:
{% highlight html %}
```html
{% raw %}{{ post.excerpt | remove: '<p>' | remove: '</p>' }}{% endraw %}
{% endhighlight %}
```
If you don't like the automatically-generated post excerpt, it can be
explicitly overridden by adding an `excerpt` value to your post's YAML
Front Matter. Alternatively, you can choose to define a custom
`excerpt_separator` in the post's YAML front matter:
{% highlight text %}
```text
---
excerpt_separator: <!--more-->
---
@@ -178,7 +178,7 @@ excerpt_separator: <!--more-->
Excerpt
<!--more-->
Out-of-excerpt
{% endhighlight %}
```
You can also set the `excerpt_separator` globally in your `_config.yml`
configuration file.
@@ -197,7 +197,7 @@ Jekyll also has built-in support for syntax highlighting of code snippets using
either Pygments or Rouge, and including a code snippet in any post is easy.
Just use the dedicated Liquid tag as follows:
{% highlight text %}
```text
{% raw %}{% highlight ruby %}{% endraw %}
def show
@widget = Widget(params[:id])
@@ -207,11 +207,11 @@ def show
end
end
{% raw %}{% endhighlight %}{% endraw %}
{% endhighlight %}
```
And the output will look like this:
{% highlight ruby %}
```ruby
def show
@widget = Widget(params[:id])
respond_to do |format|
@@ -219,7 +219,7 @@ def show
format.json { render json: @widget }
end
end
{% endhighlight %}
```
<div class="note">
<h5>ProTip™: Show line numbers</h5>

View File

@@ -6,13 +6,15 @@ permalink: /docs/quickstart/
For the impatient, here's how to get a boilerplate Jekyll site up and running.
{% highlight shell %}
~ $ gem install jekyll
```sh
~ $ gem install jekyll bundler
~ $ jekyll new myblog
~ $ cd myblog
~/myblog $ jekyll serve
~/myblog $ bundle exec jekyll serve
# => Now browse to http://localhost:4000
{% endhighlight %}
```
The `jekyll new` command now automatically initiates `bundle install` and installs the dependencies required. To skip this, pass `--skip-bundle` option like so `jekyll new myblog --skip-bundle`.
If you wish to install jekyll into an existing directory, you can do so by running `jekyll new .` from within the directory instead of creating a new one. If the existing directory isn't empty, you'll also have to pass the `--force` option like so `jekyll new . --force`.

View File

@@ -26,6 +26,7 @@ Jekylls growing use is producing a wide variety of tutorials, frameworks, ext
- [Jekyll Bootstrap](http://jekyllbootstrap.com), 0 to Blog in 3 minutes. Provides detailed explanations, examples, and helper-code to make getting started with Jekyll easier.
- [Integrating Twitter with Jekyll](http://www.justkez.com/integrating-twitter-with-jekyll/)
> “Having migrated Justkez.com to be based on Jekyll, I was pondering how I might include my recent twitterings on the front page of the site. In the WordPress world, this would have been done via a plugin which may or may not have hung the loading of the page, might have employed caching, but would certainly have had some overheads. … Not in Jekyll.”
- [Staticman](https://staticman.net): Add user-generated content to a Jekyll site (free and open source)
### Other commentary

View File

@@ -26,7 +26,7 @@ following metadata:
<td><p><code>file.path</code></p></td>
<td><p>
The relative path to the file.
The relative path to the file, e.g <code>/assets/img/image.jpg</code>
</p></td>
</tr>
@@ -34,7 +34,23 @@ following metadata:
<td><p><code>file.modified_time</code></p></td>
<td><p>
The `Time` the file was last modified.
The `Time` the file was last modified, e.g <code>2016-04-01 16:35:26 +0200</code>
</p></td>
</tr>
<tr>
<td><p><code>file.name</code></p></td>
<td><p>
The string name of the file e.g. <code>image.jpg</code> for <code>image.jpg</code>
</p></td>
</tr>
<tr>
<td><p><code>file.basename</code></p></td>
<td><p>
The string basename of the file e.g. <code>image</code> for <code>image.jpg</code>
</p></td>
</tr>

View File

@@ -14,12 +14,12 @@ product.
A basic Jekyll site usually looks something like this:
{% highlight shell %}
```sh
.
├── _config.yml
├── _drafts
| ├── begin-with-the-crazy-ideas.textile
| └── on-simplicity-in-technology.markdown
| ├── begin-with-the-crazy-ideas.md
| └── on-simplicity-in-technology.md
├── _includes
| ├── footer.html
| └── header.html
@@ -27,14 +27,14 @@ A basic Jekyll site usually looks something like this:
| ├── default.html
| └── post.html
├── _posts
| ├── 2007-10-29-why-every-programmer-should-play-nethack.textile
| └── 2009-04-26-barcamp-boston-4-roundup.textile
| ├── 2007-10-29-why-every-programmer-should-play-nethack.md
| └── 2009-04-26-barcamp-boston-4-roundup.md
├── _data
| └── members.yml
├── _site
├── .jekyll-metadata
└── index.html
{% endhighlight %}
```
An overview of what each of these does:

View File

@@ -21,6 +21,34 @@ common tasks easier.
</tr>
</thead>
<tbody>
<tr>
<td>
<p class="name"><strong>Relative URL</strong></p>
<p>Prepend the <code>baseurl</code> value to the input. Useful if your site is hosted at a subpath rather than the root of the domain.</p>
</td>
<td class="align-center">
<p>
<code class="filter">{% raw %}{{ "/assets/style.css" | relative_url }}{% endraw %}</code>
</p>
<p>
<code class="output">/my-baseurl/assets/style.css</code>
</p>
</td>
</tr>
<tr>
<td>
<p class="name"><strong>Absolute URL</strong></p>
<p>Prepend the <code>url</code> and <code>baseurl</code> value to the input.</p>
</td>
<td class="align-center">
<p>
<code class="filter">{% raw %}{{ "/assets/style.css" | absolute_url }}{% endraw %}</code>
</p>
<p>
<code class="output">http://example.com/my-baseurl/assets/style.css</code>
</p>
</td>
</tr>
<tr>
<td>
<p class="name"><strong>Date to XML Schema</strong></p>
@@ -263,7 +291,7 @@ common tasks easier.
</td>
<td class="align-center">
<p>
<code class="filter">{% raw %}{{ "a \n b" | normalize_whitepace }}{% endraw %}</code>
<code class="filter">{% raw %}{{ "a \n b" | normalize_whitespace }}{% endraw %}</code>
</p>
</td>
</tr>
@@ -298,6 +326,17 @@ common tasks easier.
</p>
</td>
</tr>
<tr>
<td>
<p class="name"><strong>To Integer</strong></p>
<p>Convert a string or boolean to integer.</p>
</td>
<td class="align-center">
<p>
<code class="filter">{% raw %}{{ some_var | to_integer }}{% endraw %}</code>
</p>
</td>
</tr>
<tr>
<td>
<p class="name"><strong>Array Filters</strong></p>
@@ -331,6 +370,17 @@ common tasks easier.
</p>
</td>
</tr>
<tr>
<td>
<p class="name"><strong>Inspect</strong></p>
<p>Convert an object into its String representation for debugging.</p>
</td>
<td class="align-center">
<p>
<code class="filter">{% raw %}{{ some_var | inspect }}{% endraw %}</code>
</p>
</td>
</tr>
</tbody>
</table>
</div>
@@ -352,9 +402,9 @@ The default is `default`. They are as follows (with what they filter):
If you have small page fragments that you wish to include in multiple places on
your site, you can use the `include` tag.
{% highlight liquid %}
```liquid
{% raw %}{% include footer.html %}{% endraw %}
{% endhighlight %}
```
Jekyll expects all include files to be placed in an `_includes` directory at the
root of your source directory. This will embed the contents of
@@ -373,23 +423,23 @@ root of your source directory. This will embed the contents of
You can also pass parameters to an include. Omit the quotation marks to send a variable's value. Liquid curly brackets should not be used here:
{% highlight liquid %}
```liquid
{% raw %}{% include footer.html param="value" variable-param=page.variable %}{% endraw %}
{% endhighlight %}
```
These parameters are available via Liquid in the include:
{% highlight liquid %}
```liquid
{% raw %}{{ include.param }}{% endraw %}
{% endhighlight %}
```
#### Including files relative to another file
You can also choose to include file fragments relative to the current file:
{% highlight liquid %}
```liquid
{% raw %}{% include_relative somedir/footer.html %}{% endraw %}
{% endhighlight %}
```
You won't need to place your included content within the `_includes` directory. Instead,
the inclusion is specifically relative to the file where the tag is being used. For example,
@@ -415,7 +465,7 @@ languages](http://pygments.org/languages/)
To render a code block with syntax highlighting, surround your code as follows:
{% highlight liquid %}
```liquid
{% raw %}
{% highlight ruby %}
def foo
@@ -423,7 +473,7 @@ def foo
end
{% endhighlight %}
{% endraw %}
{% endhighlight %}
```
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
@@ -438,7 +488,7 @@ Including the `linenos` argument will force the highlighted code to include line
numbers. For instance, the following code block would include line numbers next
to each line:
{% highlight liquid %}
```liquid
{% raw %}
{% highlight ruby linenos %}
def foo
@@ -446,7 +496,7 @@ def foo
end
{% endhighlight %}
{% endraw %}
{% endhighlight %}
```
#### Stylesheets for syntax highlighting
@@ -458,54 +508,82 @@ site. If you use `linenos`, you might want to include an additional CSS class
definition for the `.lineno` class in `syntax.css` to distinguish the line
numbers from the highlighted code.
### Link
If you want to include a link to a collection's document, a post, a page
or a file the `link` tag will generate the correct permalink URL for the path
you specify.
You must include the file extension when using the `link` tag.
```liquid
{% raw %}
{% 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 %}
```
You can also use this tag to create a link in Markdown as follows:
```liquid
{% raw %}
[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 %}
```
### Post URL
If you would like to include a link to a post on your site, the `post_url` tag
will generate the correct permalink URL for the post you specify.
{% highlight liquid %}
```liquid
{% raw %}
{% post_url 2010-07-21-name-of-post %}
{% endraw %}
{% endhighlight %}
```
If you organize your posts in subdirectories, you need to include subdirectory
path to the post:
{% highlight liquid %}
```liquid
{% raw %}
{% post_url /subdir/2010-07-21-name-of-post %}
{% endraw %}
{% endhighlight %}
```
There is no need to include the file extension when using the `post_url` tag.
You can also use this tag to create a link to a post in Markdown as follows:
{% highlight liquid %}
```liquid
{% raw %}
[Name of Link]({% post_url 2010-07-21-name-of-post %})
{% endraw %}
{% endhighlight %}
```
### Gist
Use the `gist` tag to easily embed a GitHub Gist onto your site. This works
with public or secret gists:
{% highlight liquid %}
```liquid
{% raw %}
{% gist parkr/931c1c8d465a04042403 %}
{% endraw %}
{% endhighlight %}
```
You may also optionally specify the filename in the gist to display:
{% highlight liquid %}
```liquid
{% raw %}
{% gist parkr/931c1c8d465a04042403 jekyll-private-gist.markdown %}
{% endraw %}
{% endhighlight %}
```
To use the `gist` tag, you'll need to add the
[jekyll-gist](https://github.com/jekyll/jekyll-gist) gem to your project.

View File

@@ -4,15 +4,6 @@ title: Themes
permalink: /docs/themes/
---
<div class="note unreleased">
<h5>This feature is unreleased!</h5>
<p>
Jekyll 3.0 and 3.1 do NOT have the ability to add themes in this way.
The documentation below is for an unreleased version of Jekyll and
cannot be used at the moment.
</p>
</div>
Jekyll has an extensive theme system, which allows you to leverage community-maintained templates and styles to customize your site's presentation. Jekyll themes package layouts, includes, and stylesheets in a way that can be overridden by your site's content.
## Installing a theme
@@ -36,6 +27,7 @@ Jekyll themes set default layouts, includes, and stylesheets, that can be overri
Jekyll will look first to your site's content, before looking to the theme's defaults, for any requested file in the following folders:
* `/assets`
* `/_layouts`
* `/_includes`
* `/_sass`
@@ -43,22 +35,33 @@ Jekyll will look first to your site's content, before looking to the theme's def
Refer to your selected theme's documentation and source repository for more information on what files you can override.
{: .note .info}
To locate theme's files on your computer, run `bundle show` followed by
the name of the theme's gem, e.g. `bundle show minima` for default Jekyll's
theme. Then copy the files you want to override, from the returned path to your root folder.
## Creating a theme
Jekyll themes are distributed as Ruby gems. The only required file is the [Ruby Gemspec](http://guides.rubygems.org/specification-reference/). Here's an example of a minimal Gemspec for the `my-awesome-jekyll-theme` theme, saved as `/my-awsome-jekyll-theme.gemspec`:
Jekyll themes are distributed as Ruby gems. Don't worry, Jekyll will help you scaffold a new theme with the `new-theme` command. Just run `jekyll new-theme` with the theme name as an argument:
{% highlight ruby %}
Gem::Specification.new do |s|
s.name = '<THEME TITLE>'
s.version = '0.1.0'
s.license = 'MIT'
s.summary = '<THEME DESCRIPTION>'
s.author = '<YOUR NAME>'
s.email = '<YOUR EMAIL>'
s.homepage = 'https://github.com/jekyll/my-awesome-jekyll-theme'
s.files = `git ls-files -z`.split("\x0").grep(%r{^_(sass|includes|layouts)/})
end
{% endhighlight %}
```sh
jekyll new-theme my-awesome-theme
create /path/to/my-awesome-theme/_layouts
create /path/to/my-awesome-theme/_includes
create /path/to/my-awesome-theme/_sass
create /path/to/my-awesome-theme/_layouts/page.html
create /path/to/my-awesome-theme/_layouts/post.html
create /path/to/my-awesome-theme/_layouts/default.html
create /path/to/my-awesome-theme/Gemfile
create /path/to/my-awesome-theme/my-awesome-theme.gemspec
create /path/to/my-awesome-theme/README.md
create /path/to/my-awesome-theme/LICENSE.txt
initialize /path/to/my-awesome-theme/.git
create /path/to/my-awesome-theme/.gitignore
Your new Jekyll theme, my-awesome-theme, is ready for you in /path/to/my-awesome-theme!
For help getting started, read /path/to/my-awesome-theme/README.md.
```
Add your template files in the corresponding folders, complete the `.gemspec` and the README files according to your needs.
### Layouts and includes
@@ -66,6 +69,12 @@ Theme layouts and includes work just like they work in any Jekyll site. Place la
For example, if your theme has a `/_layouts/page.html` file, and a page has `layout: page` in its YAML front matter, Jekyll will first look to the site's `_layouts` folder for a the `page` layout, and if none exists, will use your theme's `page` layout.
### Assets
Any file in `/assets` will be copied over to the user's site upon build unless they have a file with the same relative path. You may ship any kind of asset here: SCSS, an image, a webfont, etc. These files behave just like pages and static files in Jekyll: if the file has [YAML front matter]({{ site.baseurl }}/docs/frontmatter/) at the top, then it will be rendered. If it does not have YAML front matter, it will simply be copied over into the resulting site. This allows theme creators to ship a default `/assets/styles.scss` file which their layouts can depend on as `/assets/styles.css`.
All files in `/assets` will be output into the compiled site in the `/assets` folder just as you'd expect from using Jekyll on your sites.
### Stylesheets
Your theme's stylesheets should be placed in your theme's `/_sass` folder, again, just as you would when authoring a Jekyll site. Your theme's styles can be included in the user's stylesheet using the `@import` directive.
@@ -96,3 +105,6 @@ Themes are published via [RubyGems.org](https://rubygems.org). You'll need a Rub
2. Next, push your packaged theme up to the RubyGems service, by running the following command, again replacing `my-awesome-jekyll-theme` with the name of your theme:
gem push my-awesome-jekyll-theme-*.gem
3. To release a new version of your theme, simply update the version number in the gemspec file, ( `my-awesome-jekyll-theme.gemspec` in this example ), and then repeat Steps 1 & 2 above.
We recommend that you follow [Semantic Versioning](http://semver.org/) while bumping your theme-version.

View File

@@ -13,6 +13,7 @@ that might be of help. If the problem youre experiencing isnt covered belo
- [Base-URL Problems](#base-url-problems)
- [Configuration problems](#configuration-problems)
- [Markup Problems](#markup-problems)
- [Production Problems](#production-problems)
## Installation Problems
@@ -20,63 +21,63 @@ If you encounter errors during gem installation, you may need to install
the header files for compiling extension modules for Ruby 2.0.0. This
can be done on Ubuntu or Debian by running:
{% highlight shell %}
```sh
sudo apt-get install ruby2.0.0-dev
{% endhighlight %}
```
On Red Hat, CentOS, and Fedora systems you can do this by running:
{% highlight shell %}
```sh
sudo yum install ruby-devel
{% endhighlight %}
```
If you installed the above - specifically on Fedora 23 - but the extensions would still not compile, you are probably running a Fedora image that misses the `redhat-rpm-config` package. To solve this, simply run:
{% highlight shell %}
```sh
sudo dnf install redhat-rpm-config
{% endhighlight %}
```
On [NearlyFreeSpeech](https://www.nearlyfreespeech.net/) you need to run the
following commands before installing Jekyll:
{% highlight shell %}
```sh
export GEM_HOME=/home/private/gems
export GEM_PATH=/home/private/gems:/usr/local/lib/ruby/gems/1.8/
export PATH=$PATH:/home/private/gems/bin
export RB_USER_INSTALL='true'
{% endhighlight %}
```
To install RubyGems on Gentoo:
{% highlight shell %}
```sh
sudo emerge -av dev-ruby/rubygems
{% endhighlight %}
```
On Windows, you may need to install [RubyInstaller
DevKit](https://wiki.github.com/oneclick/rubyinstaller/development-kit).
On Mac OS X, you may need to update RubyGems (using `sudo` only if necessary):
On macOS, you may need to update RubyGems (using `sudo` only if necessary):
{% highlight shell %}
```sh
sudo gem update --system
{% endhighlight %}
```
If you still have issues, you can download and install new Command Line
Tools (such as `gcc`) using the command
Tools (such as `gcc`) using the following command:
{% highlight shell %}
```sh
xcode-select --install
{% endhighlight %}
```
which may allow you to install native gems using this command (again using
`sudo` only if necessary):
{% highlight shell %}
```sh
sudo gem install jekyll
{% endhighlight %}
```
Note that upgrading Mac OS X does not automatically upgrade Xcode itself
Note that upgrading macOS does not automatically upgrade Xcode itself
(that can be done separately via the App Store), and having an out-of-date
Xcode.app can interfere with the command line tools downloaded above. If
you run into this issue, upgrade Xcode and install the upgraded Command
@@ -90,22 +91,22 @@ longer available. Given these changes, there are a couple of simple ways to get
up and running. One option is to change the location where the gem will be
installed (again using `sudo` only if necessary):
{% highlight shell %}
```sh
sudo gem install -n /usr/local/bin jekyll
{% endhighlight %}
```
Alternatively, Homebrew can be installed and used to set up Ruby. This can be
done as follows:
{% highlight shell %}
```sh
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
{% endhighlight %}
```
Once Homebrew is installed, the second step is easy:
{% highlight shell %}
```sh
brew install ruby
{% endhighlight %}
```
Advanced users (with more complex needs) may find it helpful to choose one of a
number of Ruby version managers ([RVM][], [rbenv][], [chruby][], [etc][].) in
@@ -119,15 +120,15 @@ which to install Jekyll.
If you elect to use one of the above methods to install Ruby, it might be
necessary to modify your `$PATH` variable using the following command:
{% highlight shell %}
```sh
export PATH=/usr/local/bin:$PATH
{% endhighlight %}
```
GUI apps can modify the `$PATH` as follows:
{% highlight shell %}
```sh
launchctl setenv PATH "/usr/local/bin:$PATH"
{% endhighlight %}
```
Either of these approaches are useful because `/usr/local` is considered a
"safe" location on systems which have SIP enabled, they avoid potential
@@ -151,21 +152,21 @@ in order to have the `jekyll` executable be available in your Terminal.
If you are using base-url option like:
{% highlight shell %}
```sh
jekyll serve --baseurl '/blog'
{% endhighlight %}
```
… then make sure that you access the site at:
{% highlight shell %}
```sh
http://localhost:4000/blog/index.html
{% endhighlight %}
```
It wont work to just access:
{% highlight shell %}
```sh
http://localhost:4000/blog
{% endhighlight %}
```
## Configuration problems
@@ -180,6 +181,11 @@ That is: defaults are overridden by options specified in `_config.yml`,
and flags specified at the command-line will override all other settings
specified elsewhere.
If you encounter an error in building the site, with the error message
"'0000-00-00-welcome-to-jekyll.markdown.erb' does not have a valid date in the
YAML front matter." try including the line `exclude: [vendor]`
in `_config.yml`.
## Markup Problems
The various markup engines that Jekyll uses may have some issues. This
@@ -192,9 +198,9 @@ The latest version, version 2.0, seems to break the use of `{{ "{{" }}` in
templates. Unlike previous versions, using `{{ "{{" }}` in 2.0 triggers the
following error:
{% highlight shell %}
```sh
'{{ "{{" }}' was not properly terminated with regexp: /\}\}/ (Liquid::SyntaxError)
{% endhighlight %}
```
### Excerpts
@@ -204,6 +210,13 @@ strange errors where references don't exist or a tag hasn't been closed. If you
run into these errors, try setting `excerpt_separator: ""` in your
`_config.yml`, or set it to some nonsense string.
## Production Problems
If you run into an issue that a static file can't be found in your
production environment during build since v3.2.0 you should set your
[environment to `production`](../configuration/#specifying-a-jekyll-environment-at-build-time).
The issue is caused by trying to copy a non-existing symlink.
<div class="note">
<h5>Please report issues you encounter!</h5>
<p>

View File

@@ -9,9 +9,9 @@ and 2.0 that you'll want to know about.
Before we dive in, go ahead and fetch the latest version of Jekyll:
{% highlight shell %}
```sh
$ gem update jekyll
{% endhighlight %}
```
<div class="note feature">
<h5 markdown="1">Diving in</h5>

View File

@@ -9,9 +9,9 @@ that you'll want to know about.
Before we dive in, go ahead and fetch the latest version of Jekyll:
{% highlight shell %}
```sh
$ gem update jekyll
{% endhighlight %}
```
Please note: Jekyll 3 requires Ruby version >= 2.0.0.
@@ -36,11 +36,11 @@ When iterating over `site.collections`, ensure the above conversions are made.
For `site.collections.myCollection` in Jekyll 2, you now do:
{% highlight liquid %}
```liquid
{% raw %}
{% assign myCollection = site.collections | where: "label", "myCollection" | first %}
{% endraw %}
{% endhighlight %}
```
This is a bit cumbersome at first, but is easier than a big `for` loop.
@@ -65,6 +65,14 @@ In Jekyll 3, this has been corrected. **Now, `--future` is disabled by default.*
This means you will need to include `--future` if you want your future-dated posts to
generate when running `jekyll build` or `jekyll serve`.
<div class="note info">
<h5>Future Posts on GitHub Pages</h5>
<p>
An exception to the above rule are GitHub Pages sites, where the `--future` flag remains _enabled_
by default to maintain historical consistency for those sites.
</p>
</div>
### Layout metadata
Introducing: `layout`. In Jekyll 2 and below, any metadata in the layout was merged onto
@@ -89,17 +97,17 @@ In Jekyll 3 and above, relative permalinks have been deprecated. If you
created your site using Jekyll 2 and below, you may receive the following
error when trying to **serve** or **build**:
{% highlight text %}
```text
Since v3.0, permalinks for pages in subfolders must be relative to the site
source directory, not the parent directory. Check
http://jekyllrb.com/docs/upgrading/ for more info.
{% endhighlight %}
```
This can be fixed by removing the following line from your `_config.yml` file:
{% highlight yaml %}
```yaml
relative_permalinks: true
{% endhighlight %}
```
### Permalinks no longer automatically add a trailing slash
@@ -109,19 +117,19 @@ In Jekyll 2, any URL constructed from the `permalink:` field had a trailing slas
Try adding `future: true` to your `_config.yml` file. Are they showing up now? If they are, then you were ensnared by an issue with the way Ruby parses times. Each of your posts is being read in a different timezone than you might expect and, when compared to the computer's current time, is "in the future." The fix for this is to add [a timezone offset](https://en.wikipedia.org/wiki/List_of_UTC_time_offsets) to each post (and make sure you remove `future: true` from your `_config.yml` file). If you're writing from California, for example, you would change this:
{% highlight yaml %}
```yaml
---
date: 2016-02-06 19:32:10
---
{% endhighlight %}
```
to this (note the offset):
{% highlight yaml %}
```yaml
---
date: 2016-02-06 19:32:10 -0800
---
{% endhighlight %}
```
### My categories have stopped working!

View File

@@ -7,7 +7,7 @@ permalink: /docs/usage/
The Jekyll gem makes a `jekyll` executable available to you in your Terminal
window. You can use this command in a number of ways:
{% highlight shell %}
```sh
$ jekyll build
# => The current folder will be generated into ./_site
@@ -20,7 +20,7 @@ $ jekyll build --source <source> --destination <destination>
$ jekyll build --watch
# => The current folder will be generated into ./_site,
# watched for changes, and regenerated automatically.
{% endhighlight %}
```
<div class="note info">
<h5>Changes to _config.yml are not included during automatic regeneration.</h5>
@@ -52,7 +52,7 @@ $ jekyll build --watch
Jekyll also comes with a built-in development server that will allow you to
preview what the generated site will look like in your browser locally.
{% highlight shell %}
```sh
$ jekyll serve
# => A development server will run at http://localhost:4000/
# Auto-regeneration: enabled. Use `--no-watch` to disable.
@@ -61,7 +61,7 @@ $ jekyll serve --detach
# => Same as `jekyll serve` but will detach from the current terminal.
# If you need to kill the server, you can `kill -9 1234` where "1234" is the PID.
# If you cannot find the PID, then do, `ps aux | grep jekyll` and kill the instance. [Read more](http://unixhelp.ed.ac.uk/shell/jobz5.html).
{% endhighlight %}
```
<div class="note info">
<h5>Be aware of default behavior</h5>
@@ -70,10 +70,10 @@ $ jekyll serve --detach
</p>
</div>
{% highlight shell %}
```sh
$ jekyll serve --no-watch
# => Same as `jekyll serve` but will not watch for changes.
{% endhighlight %}
```
These are just a few of the available [configuration options](../configuration/).
Many configuration options can either be specified as flags on the command line,
@@ -82,17 +82,17 @@ file at the root of the source directory. Jekyll will automatically use the
options from this file when run. For example, if you place the following lines
in your `_config.yml` file:
{% highlight yaml %}
```yaml
source: _source
destination: _deploy
{% endhighlight %}
```
Then the following two commands will be equivalent:
{% highlight shell %}
```sh
$ jekyll build
$ jekyll build --source _source --destination _deploy
{% endhighlight %}
```
For more about the possible configuration options, see the
[configuration](../configuration/) page.

View File

@@ -115,8 +115,7 @@ following is a reference of the available data.
If the page being processed is a Post, this contains a list of up to ten
related Posts. By default, these are the ten most recent posts.
For high quality but slow to compute results, run the
<code>jekyll</code> command with the <code>--lsi</code> (latent semantic
indexing) option. Also note GitHub Pages does not support the <code>lsi</code> option when generating sites.
<code>jekyll</code> command with the <code>--lsi</code> (<a href="https://en.wikipedia.org/wiki/Latent_semantic_analysis#Latent_semantic_indexing">latent semantic indexing</a>) option. Also note GitHub Pages does not support the <code>lsi</code> option when generating sites.
</p></td>
</tr>

View File

@@ -29,9 +29,9 @@ Additionally, you might need to change the code page of the console window to UT
in case you get a "Liquid Exception: Incompatible character encoding" error during
the site generation process. It can be done with the following command:
{% highlight shell %}
```sh
$ chcp 65001
{% endhighlight %}
```
[windows-installation]: http://jekyll-windows.juthilo.com/
[hitimes-issue]: https://github.com/copiousfreetime/hitimes/issues/40
@@ -43,9 +43,9 @@ As of v1.3.0, Jekyll uses the `listen` gem to watch for changes when the
built-in support for UNIX systems, it requires an extra gem for compatibility
with Windows. Add the following to the Gemfile for your site:
{% highlight ruby %}
```ruby
gem 'wdm', '~> 0.1.0' if Gem.win_platform?
{% endhighlight %}
```
### How to install github-pages
@@ -75,13 +75,13 @@ This gem is also needed in the github-pages and to get it running on Windows x64
**Note:** In the current [pre release][nokogiriFails] it works out of the box with Windows x64 but this version is not referenced in the github-pages.
`cinst -Source "https://go.microsoft.com/fwlink/?LinkID=230477" libxml2`{:.language-ruby}
`choco install libxml2 -Source "https://www.nuget.org/api/v2/"`{:.language-ruby}
`cinst -Source "https://go.microsoft.com/fwlink/?LinkID=230477" libxslt`{:.language-ruby}
`choco install libxslt -Source "https://www.nuget.org/api/v2/"`{:.language-ruby}
`cinst -Source "https://go.microsoft.com/fwlink/?LinkID=230477" libiconv`{:.language-ruby}
`choco install libiconv -Source "https://www.nuget.org/api/v2/"`{:.language-ruby}
```language-ruby
```ruby
gem install nokogiri --^
--with-xml2-include=C:\Chocolatey\lib\libxml2.2.7.8.7\build\native\include^
--with-xml2-lib=C:\Chocolatey\lib\libxml2.redist.2.7.8.7\build\native\bin\v110\x64\Release\dynamic\cdecl^
@@ -95,10 +95,10 @@ This gem is also needed in the github-pages and to get it running on Windows x64
* Open command prompt and install [Bundler][]: `gem install bundler`
* Create a file called `Gemfile` without any extension in your root directory of your blog
* Copy & past the two lines into the file:
* Copy & paste the two lines into the file:
```language-ruby
```ruby
source 'http://rubygems.org'
gem 'github-pages'
```

View File

@@ -1,5 +1,5 @@
{% for item in include.items %}
{% assign item_url = item | prepend:"/docs/" | append:"/" %}
{% assign doc = site.docs | where: "url", item_url | first %}
<option value="{{ site.url }}{{ doc.url }}">{{ doc.title }}</option>
<option value="{{ doc.url }}">{{ doc.title }}</option>
{% endfor %}

View File

@@ -2,6 +2,6 @@
{% for item in include.items %}
{% assign item_url = item | prepend:"/docs/" | append:"/" %}
{% assign p = site.docs | where:"url", item_url | first %}
<li class="{% if item_url == page.url %}current{% endif %}"><a href="{{ site.url }}{{ p.url }}">{{ p.title }}</a></li>
<li class="{% if item_url == page.url %}current{% endif %}"><a href="{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
</ul>

23
site/_layouts/error.html Normal file
View File

@@ -0,0 +1,23 @@
{% include top.html %}
<body class="wrap">
<header>
<div class="grid">
<div class="unit whole align-center">
<h1>
<a href="/">
<span class="sr-only">Jekyll</span>
<img src="/img/logo-2x.png" width="249" height="115" alt="Jekyll Logo">
</a>
</h1>
</div>
</div>
</header>
{{ content }}
{% include anchor_links.html %}
{% include analytics.html %}
</body>
</html>

View File

@@ -24,7 +24,7 @@ Some other notable changes:
- Added an `:after_init` Hook
- Added a `where_exp` filter to provide more powerful filtering
- Added a `link` liquid tag which can be used to generate URL's for any
post, page, or document based on its path relative to the site source
post or document based on its path relative to the site source
- ... and lots more!
As always, there is [a full list of changes](/docs/history/#v3-2-0) for

View File

@@ -0,0 +1,24 @@
---
layout: news_item
title: 'Jekyll 3.2.1 Released with Fix for Windows'
date: 2016-08-02 13:20:11 -0700
author: parkr
version: 3.2.1
categories: [release]
---
Well, 3.2.0 has been a success, but with one fatal flaw: it doesn't work on
Windows! Sorry, Windows users. Hot on the trail of 3.2.0, this release
should squash that :bug:. Sorry about that!
This release also fixes an issue when using [gem-based themes](/docs/themes/)
where the theme was rejected if it existed behind a symlink. This is a
common setup for the various ruby version managers, and for Ruby installed
via Homebrew. Props to @benbalter for fixing that up.
Thanks to the contributors for this release: Adam Petrie, Ben Balter,
Daniel Chapman, DirtyF, Gary Ewan Park, Jordon Bedwell, and Parker Moore.
As always, you can see our full changelog on [the History page](/docs/history/).
Happy Jekylling!

View File

@@ -0,0 +1,18 @@
---
layout: news_item
title: "Jekyll Admin Initial Release"
date: "2016-08-25 09:50:00 +0300"
author: mertkahyaoglu
categories: [community]
---
[Jekyll's Google Summer of Code Project](http://jekyllrb.com/news/2016/06/03/update-on-jekyll-s-google-summer-of-code-projects/) has concluded. After three months of hard (but fun) work with my mentors @benbalter, @jldec, and @parkr, I'm proud to announce [Jekyll Admin](https://github.com/jekyll/jekyll-admin)'s [initial release](https://github.com/jekyll/jekyll-admin/releases/tag/v0.1.0). Jekyll admin is a Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites. You can start to use it right away by following [these instructions](https://github.com/jekyll/jekyll-admin#installation).
As a Google Summer of Code student, I feel very lucky to be part of a project that the community has been wanting for such a long time. The three-month Google Summer of Code period was a great journey. It was a lot of fun developing the project and seeing how it could help the community, and going forward, we are really excited to see where the project goes with the help of the amazing Jekyll community.
I would like to thank my mentors who embraced me as their teammate and guided me throughout the process. They have put a lot of work and time to mentor me and helped me with everything. It was a great pleasure to work with them. I also would like to thank the wonderful Jekyll community for making Jekyll what it is today. It was amazing to see the community contribute to the project and give their feedback
prior to its release. I'm sure that they will support Jekyll Admin as much as they can and move Jekyll even further.
Please let us know what you think about [Jekyll Admin](https://github.com/jekyll/jekyll-admin) and feel free to [contribute](https://github.com/jekyll/jekyll-admin/blob/master/.github/CONTRIBUTING.md). Your feedback and contributions are greatly appreciated.
Happy (graphical) Jekylling!

View File

@@ -0,0 +1,110 @@
---
layout: news_item
title: 'Jekyll 3.3 is here with better theme support, new URL filters, and tons more'
date: 2016-10-06 11:10:38 -0700
author: parkr
version: 3.3.0
categories: [release]
---
There are tons of great new quality-of-life features you can use in 3.3.
Three key things you might want to try:
### 1. Themes can now ship static & dynamic assets in an `/assets` directory
In Jekyll 3.2, we shipped the ability to use a theme that was packaged as a
[gem](http://guides.rubygems.org/). 3.2 included support for includes,
layouts, and sass partials. In 3.3, we're adding assets to that list.
In an effort to make theme management a bit easier, any files you put into
`/assets` in your theme will be read in as though they were part of the
user's site. This means you can ship SCSS and CoffeeScript, images and
webfonts, and so on -- anything you'd consider a part of the
*presentation*. Same rules apply here as in a Jekyll site: if it has YAML
front matter, it will be converted and rendered. No YAML front matter, and
it will simply be copied over like a static asset.
Note that if a user has a file of the same path, the theme content will not
be included in the site, i.e. a user's `/assets/main.scss` will be read and
processed if present instead of a theme's `/assets/main.scss`.
See our [documentation on the subject]({{ "/docs/themes/#assets" | relative_url }})
for more info.
### 2. `relative_url` and `absolute_url` filters
Want a clean way to prepend the `baseurl` or `url` in your config? These
new filters have you covered. When working locally, if you set your
`baseurl` to match your deployment environment, say `baseurl: "/myproject"`,
then `relative_url` will ensure that this baseurl is prepended to anything
you pass it:
{% highlight liquid %}
{% raw %}
{{ "/docs/assets/" | relative_url }} => /myproject/docs/assets
{% endraw %}
{% endhighlight %}
By default, `baseurl` is set to `""` and therefore yields (never set to
`"/"`):
{% highlight liquid %}
{% raw %}
{{ "/docs/assets/" | relative_url }} => /docs/assets
{% endraw %}
{% endhighlight %}
A result of `relative_url` will safely always produce a URL which is
relative to the domain root. A similar principle applies to `absolute_url`.
It prepends your `baseurl` and `url` values, making absolute URL's all the
easier to make:
{% highlight liquid %}
{% raw %}
{{ "/docs/assets/" | absolute_url }} => http://jekyllrb.com/myproject/docs/assets
{% endraw %}
{% endhighlight %}
### 3. `site.url` is set by the development server
When you run `jekyll serve` locally, it starts a web server, usually at
`http://localhost:4000`, that you use to preview your site during
development. If you are using the new `absolute_url` filter, or using
`site.url` anywhere, you have probably had to create a development config
which resets the `url` value to point to `http://localhost:4000`.
No longer! When you run `jekyll serve`, Jekyll will build your site with
the value of the `host`, `port`, and SSL-related options. This defaults to
`url: http://localhost:4000`. When you are developing locally, `site.url`
will yield `http://localhost:4000`.
This happens by default when running Jekyll locally. It will not be set if
you set `JEKYLL_ENV=production` and run `jekyll serve`. If `JEKYLL_ENV` is
any value except `development` (its default value), Jekyll will not
overwrite the value of `url` in your config. And again, this only applies
to serving, not to building.
## A *lot* more!
There are dozens of bug fixes and minor improvements to make your Jekyll
experience better than ever. With every Jekyll release, we strive to bring
greater stability and reliability to your everyday development workflow.
As always, thanks to our many contributors who contributed countless hours
of their free time to making this release happen:
Anatoliy Yastreb, Anthony Gaudino, Antonio, Ashwin Maroli, Ben Balter,
Charles Horn, Chris Finazzo, Daniel Chapman, David Zhang, Eduardo
Bouças, Edward Thomson, Eloy Espinaco, Florian Thomas, Frank Taillandier,
Gerardo, Heng Kwokfu, Heng, K. (Stephen), Jeff Kolesky, Jonathan Thornton,
Jordon Bedwell, Jussi Kinnula, Júnior Messias, Kyle O'Brien, Manmeet Gill,
Mark H. Wilkinson, Marko Locher, Mertcan GÖKGÖZ, Michal Švácha, Mike
Kasberg, Nadjib Amar, Nicolas Hoizey, Nicolas Porcel, Parker Moore, Pat
Hawks, Patrick Marsceill, Stephen Checkoway, Stuart Kent, XhmikosR, Zlatan
Vasović, mertkahyaoglu, shingo-nakanishi, and vohedge.
[Full release notes]({{ "/docs/history/#v3-3-0" | relative_url }}) are available
for your perusal. If you notice any issues, please don't hesitate to file a
bug report.
Happy Jekylling!

View File

@@ -89,11 +89,12 @@
becomes smaller */
.unit img {
max-width: 100%;
height: auto;
}
/* Responsive Stuff */
@media screen and (max-width: 568px) {
/* Stack anything that isnt full-width on smaller screens
/* Stack anything that isnt full-width on smaller screens
and doesn't provide the no-stacking-on-mobiles class */
.grid:not(.no-stacking-on-mobiles) > .unit {
width: 100% !important;

View File

@@ -1 +1 @@
/*! normalize.css v4.2.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:bold}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:0.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}
/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}

View File

@@ -1,10 +1,14 @@
/* Base */
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
font: 300 21px Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;
@@ -673,6 +677,12 @@ h5 > code,
overflow: auto;
}
.highlighter-rouge .highlight {
@extend .highlight;
margin: 0;
padding: 10px 0.5em;
}
/* HTML Elements */
h1, h2, h3, h4, h5, h6 { margin: 0; }

Some files were not shown because too many files have changed in this diff Show More