From 06223e510e270365cba2d015d75dd9541f10f58f Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Sat, 11 Mar 2017 17:23:18 +0530 Subject: [PATCH 01/30] add a tutorial on serving custom Error 404 page --- docs/_tutorials/custom-404-page.md | 66 ++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 docs/_tutorials/custom-404-page.md diff --git a/docs/_tutorials/custom-404-page.md b/docs/_tutorials/custom-404-page.md new file mode 100644 index 00000000..40bb3262 --- /dev/null +++ b/docs/_tutorials/custom-404-page.md @@ -0,0 +1,66 @@ +--- +layout: tutorials +permalink: /tutorials/custom-404-page/ +title: Custom 404 Page +--- + +You can easily serve custom 404 error pages with Jekyll to replace the default **Error 404 -- File Not Found** page displayed when one tries to access a broken link on your site. + + +## On GitHub Pages + +Any `404.html` at the **root of your `_site` directory** will be served automatically by GitHub Pages and the local WEBrick development server. + +Simply add a `404.md` or `404.html` at the root of your site's source directory and include the YAML Front Matter data to use the theme's base layout. + +If you plan to organize your files under subdirectories, the error page should have the following Front Matter Data, set: `permalink: /404.html`. This is to ensure that the compiled `404.html` resides at the root of your processed site, where it'll be picked by the server. + +``` +--- +# example 404.md + +layout: default +permalink: /404.html +--- + +# 404 + +Page not found! :( +``` + +## Hosting on Apache Web Servers + +Apache Web Servers load a configuration file named [`.htaccess`](http://www.htaccess-guide.com/) that modifies the functionality of these servers. + +Simply add the following to your `.htaccess` file. + +``` +ErrorDocument 404 /404.html +``` + +With an `.htaccess` file, you have the freedom to place your error page within a subdirectory. + +``` +ErrorDocument 404 /error_pages/404.html +``` + +Where the path is relative to your site's domain. + +More info on configuring Apache Error Pages can found in [official documentation](https://httpd.apache.org/docs/current/mod/core.html#errordocument). + + +## Hosting on Nginx server + +The procedure is just as simple as configuring Apache servers, but slightly different. + +Add the following to the ngnix configuration file, `nginx.conf`, which is usually located inside `/etc/nginx/` or `/etc/nginx/conf/`: + +``` +server { + error_page 404 /404.html; + location /404.html { + internal; + } +} +``` +The `location` directive prevents users from directly browsing the 404.html page. From 4df6753109ed255895ffe3ca0e46f797f6ae6fb3 Mon Sep 17 00:00:00 2001 From: Lukasz Brodowski Date: Sun, 12 Mar 2017 14:22:16 -0700 Subject: [PATCH 02/30] Removed navigation paragraph Removed the paragraph telling a user to visit the navigations page to learn how to build more robust navigation. The permalink was broken since Navigation no longer exists and no other suitable substitute (closest being ./permalinks) fits the description. --- docs/_docs/datafiles.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/_docs/datafiles.md b/docs/_docs/datafiles.md index a389a658..c0e10997 100644 --- a/docs/_docs/datafiles.md +++ b/docs/_docs/datafiles.md @@ -152,5 +152,3 @@ author: dave {% endraw %} ``` - -For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation](../navigation). From cf65d2cd8ed256d962f9c145ca53416c58d916b7 Mon Sep 17 00:00:00 2001 From: Lukasz Brodowski Date: Sun, 12 Mar 2017 14:55:47 -0700 Subject: [PATCH 03/30] Corrected permalink Fixed the permalink to navigation page since it was moved to under tutorials. --- docs/_docs/datafiles.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_docs/datafiles.md b/docs/_docs/datafiles.md index c0e10997..671a3206 100644 --- a/docs/_docs/datafiles.md +++ b/docs/_docs/datafiles.md @@ -152,3 +152,5 @@ author: dave {% endraw %} ``` + +For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation](/tutorials/navigation). From 99775e4b5168d63dbac4b7f677a1fe07fac08f0b Mon Sep 17 00:00:00 2001 From: Tom Johnson Date: Mon, 13 Mar 2017 09:55:27 -0700 Subject: [PATCH 04/30] Fixed path in "Improve this page" link in Tutorials section The path in the "Improve this page" link that is auto-generated in the Tutorials section had an incorrect parameter. This PR fixes it. --- docs/_layouts/tutorials.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_layouts/tutorials.html b/docs/_layouts/tutorials.html index e3f7794b..3850971c 100644 --- a/docs/_layouts/tutorials.html +++ b/docs/_layouts/tutorials.html @@ -10,7 +10,7 @@ layout: default

{{ page.title }}

From 0f0ac6f586d26be761f1147c345442be8556111f Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Tue, 14 Mar 2017 01:13:38 -0400 Subject: [PATCH 05/30] Update history to reflect merge of #5951 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index cb6f447d..053e1ee5 100644 --- a/History.markdown +++ b/History.markdown @@ -20,6 +20,7 @@ * Fix typo in contribution information (#5910) * update plugin repo URL to reflect repo move (#5916) * Update exclude array in configuration.md (#5947) + * Fixed path in "Improve this page" link in Tutorials section (#5951) ### Development Fixes From ec5b45cd7c1a2df1520ada1df9b235101ea11ba2 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Thu, 16 Mar 2017 07:54:13 -0500 Subject: [PATCH 06/30] Allow colons in `uri_escape` filter Fixes #5954 --- lib/jekyll/filters.rb | 2 +- test/test_filters.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/jekyll/filters.rb b/lib/jekyll/filters.rb index 0393ea24..3020bfbc 100644 --- a/lib/jekyll/filters.rb +++ b/lib/jekyll/filters.rb @@ -152,7 +152,7 @@ module Jekyll # # Returns the escaped String. def uri_escape(input) - Addressable::URI.encode(input) + Addressable::URI.normalize_component(input) end # Replace any whitespace in the input string with a single space diff --git a/test/test_filters.rb b/test/test_filters.rb index d18b57e3..898f7e3e 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -317,6 +317,11 @@ class TestFilters < JekyllUnitTest assert_equal "my%20things", @filter.uri_escape("my things") end + should "escape colon" do + assert_equal "foo:bar", @filter.uri_escape("foo:bar") + assert_equal "foo%20bar:baz", @filter.uri_escape("foo bar:baz") + end + context "absolute_url filter" do should "produce an absolute URL from a page URL" do page_url = "/about/my_favorite_page/" From 6bc9f71050be590478d1d47b1050f4dddb5471f7 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Thu, 16 Mar 2017 07:59:13 -0500 Subject: [PATCH 07/30] Rename test for clarity --- test/test_filters.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_filters.rb b/test/test_filters.rb index 898f7e3e..782b5be9 100644 --- a/test/test_filters.rb +++ b/test/test_filters.rb @@ -317,7 +317,7 @@ class TestFilters < JekyllUnitTest assert_equal "my%20things", @filter.uri_escape("my things") end - should "escape colon" do + should "allow colons in URI" do assert_equal "foo:bar", @filter.uri_escape("foo:bar") assert_equal "foo%20bar:baz", @filter.uri_escape("foo bar:baz") end From 336b488d70038a9b54ec9cd5e57c7edc0549bf62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Fri, 17 Mar 2017 16:18:52 +0100 Subject: [PATCH 08/30] Create buddyworks Added description for configuring a Jekyll build using a free https://buddy.works project. --- docs/_docs/continuous-integration/buddyworks | 63 ++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 docs/_docs/continuous-integration/buddyworks diff --git a/docs/_docs/continuous-integration/buddyworks b/docs/_docs/continuous-integration/buddyworks new file mode 100644 index 00000000..45daa1f2 --- /dev/null +++ b/docs/_docs/continuous-integration/buddyworks @@ -0,0 +1,63 @@ +--- +title: "BuddyWorks" +--- + +[BuddyWorks][0] is a [Docker][1]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][2], [Bitbucket][3], and [GitLab][4] repositories, can be installed on-premises or in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project. + +[0]: https://buddy.works +[1]: https://www.docker.com/ +[2]: https://github.com +[3]: https://https://bitbucket.org/ +[4]: https://gitlab.com + +## 1. Getting started + +1. Log in at with your GitHub/Bitbucket account or email +2. Choose your Git provider and select or push your Jekyll Project +3. Create a new pipeline and set the trigger mode to 'On every push' +4. Add the Jekyll action and save the pipeline + +## 2. How it works + +Whenever you make a push to the selected branch, the Jekyll action runs `jekyll build` in an isolated [Jekyll Docker image][0]. The output is generated to the `/filesystem` directory, and can be further deployed to FTP/SFTP and Cloud services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server. + +![Jekyll Build](https://buddy.works/data/blog/_images/buddyworks-jekyll-small.png) + +[0]: https://hub.docker.com/r/jekyll/jekyll/ + +## 3. Using YAML for configuration + +If you prefer configuration as code over GUI, you can generate `buddy.yml` that will create a pipeline with the Jekyll action once pushed to the repository: + +```ruby +- pipeline: "Build and Deploy Jekyll site" + trigger_mode: "ON_EVERY_PUSH" + ref_name: "master" + actions: + - action: "Execute: jekyll build" + type: "BUILD" + docker_image_name: "jekyll/jekyll" + docker_image_tag: "latest" + execute_commands: + - "# Working directory with cloned repository: /srv/jekyll" + - "jekyll build" +``` + +## 4. Setting up on-premises server + +The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including [Linux][1], [Mac][2], [AWS EC2][3], [DigitalOcean][4], and [Microsoft Azure][5]. + +[0]: https://buddy.works/buddy-go +[1]: https://buddy.works/knowledge/standalone/installation-linux +[2]: https://buddy.works/knowledge/standalone/installation-mac-osx +[3]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 +[4]: https://buddy.works/knowledge/standalone/installation-digitalocean +[5]: https://buddy.works/knowledge/standalone/installation-azure + +## 5. Questions? + +This entire guide is open-source. Go ahead and [edit it][0] if you want to expand it or have a fix or [ask for help][1] if you run into trouble and need assistance. BuddyWorks also has an [online community][2] for help. + +[0]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md +[1]: https://jekyllrb.com/help/ +[2]: http://forum.buddy.works/ From be7fc8a2c4e9fa77ab6e367d55060cf07b353ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Fri, 17 Mar 2017 16:46:31 +0100 Subject: [PATCH 09/30] added extension + fixed line 15 --- docs/_docs/continuous-integration/{buddyworks => buddyworks.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename docs/_docs/continuous-integration/{buddyworks => buddyworks.md} (97%) diff --git a/docs/_docs/continuous-integration/buddyworks b/docs/_docs/continuous-integration/buddyworks.md similarity index 97% rename from docs/_docs/continuous-integration/buddyworks rename to docs/_docs/continuous-integration/buddyworks.md index 45daa1f2..5c845270 100644 --- a/docs/_docs/continuous-integration/buddyworks +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -12,7 +12,7 @@ title: "BuddyWorks" ## 1. Getting started -1. Log in at with your GitHub/Bitbucket account or email +1. Log in at https://buddy.works with your GitHub/Bitbucket account or email 2. Choose your Git provider and select or push your Jekyll Project 3. Create a new pipeline and set the trigger mode to 'On every push' 4. Add the Jekyll action and save the pipeline From 9e55247dac8f463d60b53885572405857ae2e97f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Mon, 20 Mar 2017 11:59:25 +0100 Subject: [PATCH 10/30] fix in line 42 --- docs/_docs/continuous-integration/buddyworks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_docs/continuous-integration/buddyworks.md b/docs/_docs/continuous-integration/buddyworks.md index 5c845270..7a3a7eee 100644 --- a/docs/_docs/continuous-integration/buddyworks.md +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -39,7 +39,7 @@ If you prefer configuration as code over GUI, you can generate `buddy.yml` that docker_image_name: "jekyll/jekyll" docker_image_tag: "latest" execute_commands: - - "# Working directory with cloned repository: /srv/jekyll" + - "chown jekyll:jekyll $WORKING_DIR" - "jekyll build" ``` From ddc9931c203f5cc84a8451ac684992bf3b82ce25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Mon, 20 Mar 2017 12:04:46 +0100 Subject: [PATCH 11/30] added (buddyworks) to ci list This can only be approved once https://github.com/jekyll/jekyll/pull/5962 has been merged. --- docs/_docs/continuous-integration/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_docs/continuous-integration/index.md b/docs/_docs/continuous-integration/index.md index 14c5c749..a9a12267 100644 --- a/docs/_docs/continuous-integration/index.md +++ b/docs/_docs/continuous-integration/index.md @@ -7,3 +7,4 @@ Continuous Integration (CI) enables you to publish your Jekyll generated website * [Travis CI](travis-ci) * [CircleCI](circleci) +* [BuddyWorks](buddyworks) From f93453368a91ab0df79c5389b30ebfb2d5cbf2f2 Mon Sep 17 00:00:00 2001 From: William Entriken Date: Mon, 20 Mar 2017 10:56:34 -0400 Subject: [PATCH 12/30] Prefer .yaml over .toml --- lib/jekyll/configuration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/configuration.rb b/lib/jekyll/configuration.rb index b4bf7c5a..1e2ca01c 100644 --- a/lib/jekyll/configuration.rb +++ b/lib/jekyll/configuration.rb @@ -137,7 +137,7 @@ module Jekyll SafeYAML.load_file(filename) || {} else raise ArgumentError, "No parser for '#{filename}' is available. - Use a .toml or .y(a)ml file instead." + Use a .y(a)ml or .toml file instead." end end From 428ff04b7f8009dcf594d102a1c6d919bf8dc17c Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Mon, 20 Mar 2017 15:21:27 -0400 Subject: [PATCH 13/30] Update history to reflect merge of #5966 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 053e1ee5..f28c18e2 100644 --- a/History.markdown +++ b/History.markdown @@ -28,6 +28,7 @@ * Appease classifier-reborn (#5934) * Allow releases & development on *-stable branches (#5926) * Add script/backport-pr (#5925) + * Prefer .yaml over .toml (#5966) ### Site Enhancements From 93f472d1eb8251762321cfcc3af5957fc61c7fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Tue, 21 Mar 2017 09:34:43 +0100 Subject: [PATCH 14/30] Update buddyworks.md added unique links + minor text changes --- .../continuous-integration/buddyworks.md | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/docs/_docs/continuous-integration/buddyworks.md b/docs/_docs/continuous-integration/buddyworks.md index 7a3a7eee..d33259df 100644 --- a/docs/_docs/continuous-integration/buddyworks.md +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -2,12 +2,12 @@ title: "BuddyWorks" --- -[BuddyWorks][0] is a [Docker][1]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][2], [Bitbucket][3], and [GitLab][4] repositories, can be installed on-premises or in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project. +[BuddyWorks][0] is a [Docker][1]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][2], [Bitbucket][3], and [GitLab][4] repositories, and can be installed on-premises or used in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project. [0]: https://buddy.works [1]: https://www.docker.com/ [2]: https://github.com -[3]: https://https://bitbucket.org/ +[3]: https://bitbucket.org/ [4]: https://gitlab.com ## 1. Getting started @@ -15,19 +15,19 @@ title: "BuddyWorks" 1. Log in at https://buddy.works with your GitHub/Bitbucket account or email 2. Choose your Git provider and select or push your Jekyll Project 3. Create a new pipeline and set the trigger mode to 'On every push' -4. Add the Jekyll action and save the pipeline +4. Add and configure the Jekyll action and save the pipeline ## 2. How it works -Whenever you make a push to the selected branch, the Jekyll action runs `jekyll build` in an isolated [Jekyll Docker image][0]. The output is generated to the `/filesystem` directory, and can be further deployed to FTP/SFTP and Cloud services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server. +Whenever you make a push to the selected branch, the Jekyll action runs `jekyll build` in an isolated [Jekyll Docker image][5]. The output is generated to the `/filesystem` directory, and can be further deployed to FTP/SFTP and IaaS services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server. ![Jekyll Build](https://buddy.works/data/blog/_images/buddyworks-jekyll-small.png) -[0]: https://hub.docker.com/r/jekyll/jekyll/ +[5]: https://hub.docker.com/r/jekyll/jekyll/ ## 3. Using YAML for configuration -If you prefer configuration as code over GUI, you can generate `buddy.yml` that will create a pipeline with the Jekyll action once pushed to the repository: +If you prefer configuration as code over GUI, you can generate `buddy.yml` that will create a pipeline with the Jekyll action once you push it to the target branch: ```ruby - pipeline: "Build and Deploy Jekyll site" @@ -45,19 +45,18 @@ If you prefer configuration as code over GUI, you can generate `buddy.yml` that ## 4. Setting up on-premises server -The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including [Linux][1], [Mac][2], [AWS EC2][3], [DigitalOcean][4], and [Microsoft Azure][5]. +The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including [Linux][6], [Mac][7], [AWS EC2][8], [DigitalOcean][9], and [Microsoft Azure][10]. -[0]: https://buddy.works/buddy-go -[1]: https://buddy.works/knowledge/standalone/installation-linux -[2]: https://buddy.works/knowledge/standalone/installation-mac-osx -[3]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 -[4]: https://buddy.works/knowledge/standalone/installation-digitalocean -[5]: https://buddy.works/knowledge/standalone/installation-azure +[6]: https://buddy.works/knowledge/standalone/installation-linux +[7]: https://buddy.works/knowledge/standalone/installation-mac-osx +[8]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 +[9]: https://buddy.works/knowledge/standalone/installation-digitalocean +[10]: https://buddy.works/knowledge/standalone/installation-azure ## 5. Questions? -This entire guide is open-source. Go ahead and [edit it][0] if you want to expand it or have a fix or [ask for help][1] if you run into trouble and need assistance. BuddyWorks also has an [online community][2] for help. +This entire guide is open-source. Go ahead and [edit it][11] if you want to expand it or have a fix or [ask for help][12] if you run into trouble and need assistance. BuddyWorks also has an [online community][13] for help. -[0]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md -[1]: https://jekyllrb.com/help/ -[2]: http://forum.buddy.works/ +[11]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md +[12]: https://jekyllrb.com/help/ +[13]: http://forum.buddy.works/ From 086bf13a33ae132af7009acf456dea8158212f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Tue, 21 Mar 2017 10:49:48 +0100 Subject: [PATCH 15/30] Update buddyworks.md added article to `buddy.yml` --- docs/_docs/continuous-integration/buddyworks.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_docs/continuous-integration/buddyworks.md b/docs/_docs/continuous-integration/buddyworks.md index d33259df..c60b5b36 100644 --- a/docs/_docs/continuous-integration/buddyworks.md +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -27,7 +27,7 @@ Whenever you make a push to the selected branch, the Jekyll action runs `jekyll ## 3. Using YAML for configuration -If you prefer configuration as code over GUI, you can generate `buddy.yml` that will create a pipeline with the Jekyll action once you push it to the target branch: +If you prefer configuration as code over GUI, you can generate a `buddy.yml` that will create a pipeline with the Jekyll action once you push it to the target branch: ```ruby - pipeline: "Build and Deploy Jekyll site" From d592f5781ab7ccba005a20e0d18286cd7410bf40 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Tue, 21 Mar 2017 09:12:18 -0400 Subject: [PATCH 16/30] Update history to reflect merge of #5957 [ci skip] --- History.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/History.markdown b/History.markdown index f28c18e2..3f995c3a 100644 --- a/History.markdown +++ b/History.markdown @@ -45,6 +45,9 @@ * Convertible#validate_permalink!: ensure the return value of data["permalink"] is a string before asking if it is empty (#5878) * Allow abbreviated post dates (#5920) * Remove dependency on include from default about.md (#5903) + * Allow colons in `uri_escape` filter + +Fixes #5954 (#5957) ## 3.4.2 / 2017-03-09 From df0d3f20c4075c3853b59be40c057a5b5145ba8e Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Tue, 21 Mar 2017 09:58:26 -0400 Subject: [PATCH 17/30] Fix some errant entries in History.markdown. --- History.markdown | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/History.markdown b/History.markdown index 3f995c3a..12877226 100644 --- a/History.markdown +++ b/History.markdown @@ -26,7 +26,7 @@ * [Rubocop] add missing comma (#5835) * Appease classifier-reborn (#5934) - * Allow releases & development on *-stable branches (#5926) + * Allow releases & development on `*-stable` branches (#5926) * Add script/backport-pr (#5925) * Prefer .yaml over .toml (#5966) @@ -45,9 +45,7 @@ * Convertible#validate_permalink!: ensure the return value of data["permalink"] is a string before asking if it is empty (#5878) * Allow abbreviated post dates (#5920) * Remove dependency on include from default about.md (#5903) - * Allow colons in `uri_escape` filter - -Fixes #5954 (#5957) + * Allow colons in `uri_escape` filter (#5957) ## 3.4.2 / 2017-03-09 From 9d66fc2292080335db5adabbf507693d6c02cedb Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Tue, 21 Mar 2017 08:38:37 -0500 Subject: [PATCH 18/30] Release :gem: 3.4.3 --- History.markdown | 4 ++++ docs/_docs/history.md | 6 ++++++ docs/latest_version.txt | 2 +- lib/jekyll/version.rb | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/History.markdown b/History.markdown index 12877226..c9aae111 100644 --- a/History.markdown +++ b/History.markdown @@ -47,6 +47,10 @@ * Remove dependency on include from default about.md (#5903) * Allow colons in `uri_escape` filter (#5957) +## 3.4.3 / 2017-03-21 + + * Backport #5957 for v3.4.x: Allow colons in `uri_escape` filter (#5968) + ## 3.4.2 / 2017-03-09 * Backport #5871 for v3.4.x: Convert StaticFile liquid representation to a Drop & add front matter defaults support to StaticFiles (#5940) diff --git a/docs/_docs/history.md b/docs/_docs/history.md index 3c821eda..9a504af6 100644 --- a/docs/_docs/history.md +++ b/docs/_docs/history.md @@ -4,6 +4,12 @@ permalink: "/docs/history/" note: This file is autogenerated. Edit /History.markdown instead. --- +## 3.4.3 / 2017-03-21 +{: #v3-4-3} + +- Backport [#5957]({{ site.repository }}/issues/5957) for v3.4.x: Allow colons in `uri_escape` filter ([#5968]({{ site.repository }}/issues/5968)) + + ## 3.4.2 / 2017-03-09 {: #v3-4-2} diff --git a/docs/latest_version.txt b/docs/latest_version.txt index 4d9d11cf..6cb9d3dd 100644 --- a/docs/latest_version.txt +++ b/docs/latest_version.txt @@ -1 +1 @@ -3.4.2 +3.4.3 diff --git a/lib/jekyll/version.rb b/lib/jekyll/version.rb index fc43a4c3..1c4a0b96 100644 --- a/lib/jekyll/version.rb +++ b/lib/jekyll/version.rb @@ -1,3 +1,3 @@ module Jekyll - VERSION = "3.4.2".freeze + VERSION = "3.4.3".freeze end From eab83c3653685ccb51af01be489fa5b6412c8045 Mon Sep 17 00:00:00 2001 From: Parker Moore Date: Tue, 21 Mar 2017 10:00:47 -0400 Subject: [PATCH 19/30] Update generated history for jekyllrb.com --- docs/_docs/history.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_docs/history.md b/docs/_docs/history.md index 9a504af6..d0938169 100644 --- a/docs/_docs/history.md +++ b/docs/_docs/history.md @@ -13,8 +13,7 @@ note: This file is autogenerated. Edit /History.markdown instead. ## 3.4.2 / 2017-03-09 {: #v3-4-2} -- Backport [#5871]({{ site.repository }}/issues/5871) for v3.4.x: Convert StaticFile liquid representation to - a Drop & add front matter defaults support to StaticFiles ([#5940]({{ site.repository }}/issues/5940)) +- Backport [#5871]({{ site.repository }}/issues/5871) for v3.4.x: Convert StaticFile liquid representation to a Drop & add front matter defaults support to StaticFiles ([#5940]({{ site.repository }}/issues/5940)) ## 3.4.1 / 2017-03-02 From ca9d6be061aaa1b5c28d2c75ee942c21d647b9fe Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Tue, 21 Mar 2017 09:58:02 -0500 Subject: [PATCH 20/30] Release post for v3.4.3 --- .../2017-03-21-jekyll-3-4-3-released.markdown | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 docs/_posts/2017-03-21-jekyll-3-4-3-released.markdown diff --git a/docs/_posts/2017-03-21-jekyll-3-4-3-released.markdown b/docs/_posts/2017-03-21-jekyll-3-4-3-released.markdown new file mode 100644 index 00000000..a51fdf49 --- /dev/null +++ b/docs/_posts/2017-03-21-jekyll-3-4-3-released.markdown @@ -0,0 +1,49 @@ +--- +title: 'Jekyll 3.4.3 Released' +date: 2017-03-21 08:52:53 -0500 +author: pathawks +version: 3.4.3 +categories: [release] +--- + +Another one-PR patch update as we continue our quest to destroy all bugs. A +fairly technical debriefing follows, but the TLDR is that we have updated the +`uri_escape` filter to more closely follow the pre-v3.4.0 behavior. + +In [v3.4.0]({% link _posts/2017-01-18-jekyll-3-4-0-released.markdown %}), we +moved away from using the deprecated +[`URI.escape`](https://ruby-doc.org/stdlib-2.3.0/libdoc/uri/rdoc/URI/Escape.html#method-i-encode) +in favor of +[`Addressable::URI.encode`](http://www.rubydoc.info/gems/addressable/Addressable/URI#encode-class_method). +This is what powers our [`uri_escape` +filter](https://jekyllrb.com/docs/templates/). + +While this transition was mostly a smooth one, the two methods are not +identical. While `URI.escape` was happy to escape any string, +`Addressable::URI.encode` first turns the string into an `Addressable::URI` +object, and will then escape each component of that object. In most cases, this +difference was insignificant, but there were a few cases where this caused some +unintended regressions when encoding colons. + +While **Addressable** can understand that something like `"/example :page"` is a +relative URI, without the slash it cannot figure out how to turn +`"example :page"` into an `Addressable::URI` object. `URI.escape` had no such +objection. This lead to the following Liquid code working fine in Jekyll 3.3.x +but breaking in 3.4.0: + +{% raw %} +```liquid +{{ "example :page" | uri_escape }} +``` +{% endraw %} + +This was not an intended consequence of switching to **Addressable**. + +Fortunately, the solution was not complicated. **Addressable** has a method +[`Addressable::URI.normalize_component`](http://www.rubydoc.info/gems/addressable/Addressable/URI#normalize_component-class_method) +which will simply escape the characters in a string, much like `URI.escape`. + +Thanks to @cameronmcefee and @FriesFlorian for reporting +[this issue](https://github.com/jekyll/jekyll/issues/5954). + +Happy Jekylling! From f9243c5ab1c0ae6113180e8c650094e71bd08262 Mon Sep 17 00:00:00 2001 From: Tom Johnson Date: Tue, 21 Mar 2017 08:52:33 -0700 Subject: [PATCH 21/30] Included more details about adding defaults to static files Based on the functionality released in [3.4.2](http://jekyllrb.com/news/2017/03/09/jekyll-3-4-2-released/) re adding defaults to static files, I thought this page needed some more detail. --- docs/_docs/static_files.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/_docs/static_files.md b/docs/_docs/static_files.md index 523c29df..fbb03e79 100644 --- a/docs/_docs/static_files.md +++ b/docs/_docs/static_files.md @@ -65,3 +65,35 @@ following metadata:
+ +Note that in the above table, `file` can be anything. It's simply an arbitrarily set variable used in your own logic (such as in a for loop). It isn't a global site or page variable. + +## Add front matter to static files + +Although you can't directly add front matter values to static files, you can actually set front matter values through the [defaults property](../configuration/#front-matter-defaults) in your configuration file. When Jekyll builds the site, it will use the front matter values you set. + +Here's an example: + +In your `_config.yml` file, add the following values to the `defaults` property: + +```yaml +defaults: + - scope: + path: "assets/img" + values: + image: true +``` + +This assumes that your Jekyll site has a folder path of `assets/img` where you have images (static files) stored. When Jekyll builds the site, it will treat each image as if it had the front matter value of `image: true`. + +Suppose you want to list all your image assets as contained in `assets/img`. You could use this for loop to look in the `static_files` object and get all static files that have this front matter property: + +```liquid +{% raw %}{% for myfile in site.static_files %} + {% if myfile.image == true %} + {{ myfile.path }} + {% endif %} +{% endfor %}{% endraw %} +``` + +When you build your site, the output will list the path to each file that meets this front matter condition. From 161902eda266167e0fc239e96e38190b6462b9aa Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Tue, 21 Mar 2017 12:26:06 -0400 Subject: [PATCH 22/30] Update history to reflect merge of #5949 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index c9aae111..8c262f24 100644 --- a/History.markdown +++ b/History.markdown @@ -21,6 +21,7 @@ * update plugin repo URL to reflect repo move (#5916) * Update exclude array in configuration.md (#5947) * Fixed path in "Improve this page" link in Tutorials section (#5951) + * Corrected permalink (#5949) ### Development Fixes From fe6d4c7beaf315b55623b2c686116f055cd62f2a Mon Sep 17 00:00:00 2001 From: Tom Johnson Date: Tue, 21 Mar 2017 10:27:05 -0700 Subject: [PATCH 23/30] updates from parkr's review - removed "actually" - switched code example to use `where` --- docs/_docs/static_files.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/_docs/static_files.md b/docs/_docs/static_files.md index fbb03e79..a4dda588 100644 --- a/docs/_docs/static_files.md +++ b/docs/_docs/static_files.md @@ -70,7 +70,7 @@ Note that in the above table, `file` can be anything. It's simply an arbitrarily ## Add front matter to static files -Although you can't directly add front matter values to static files, you can actually set front matter values through the [defaults property](../configuration/#front-matter-defaults) in your configuration file. When Jekyll builds the site, it will use the front matter values you set. +Although you can't directly add front matter values to static files, you can set front matter values through the [defaults property](../configuration/#front-matter-defaults) in your configuration file. When Jekyll builds the site, it will use the front matter values you set. Here's an example: @@ -89,10 +89,9 @@ This assumes that your Jekyll site has a folder path of `assets/img` where you Suppose you want to list all your image assets as contained in `assets/img`. You could use this for loop to look in the `static_files` object and get all static files that have this front matter property: ```liquid -{% raw %}{% for myfile in site.static_files %} - {% if myfile.image == true %} - {{ myfile.path }} - {% endif %} +{% raw %}{% assign image_files = site.static_files | where: "image", true %} +{% for myimage in image_files %} + {{ myimage.path }} {% endfor %}{% endraw %} ``` From c55cc1d9ef72ecd4083b1911b8f70a821808203c Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Tue, 21 Mar 2017 15:34:57 -0400 Subject: [PATCH 24/30] Update history to reflect merge of #5971 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 8c262f24..f46b46dc 100644 --- a/History.markdown +++ b/History.markdown @@ -22,6 +22,7 @@ * Update exclude array in configuration.md (#5947) * Fixed path in "Improve this page" link in Tutorials section (#5951) * Corrected permalink (#5949) + * Included more details about adding defaults to static files (#5971) ### Development Fixes From b60b78cfc4c8743446284a88d85c251634eff624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksander=20Ku=C5=9B?= Date: Wed, 22 Mar 2017 13:55:56 +0100 Subject: [PATCH 25/30] changed link references to names --- .../continuous-integration/buddyworks.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/_docs/continuous-integration/buddyworks.md b/docs/_docs/continuous-integration/buddyworks.md index c60b5b36..1dea8be5 100644 --- a/docs/_docs/continuous-integration/buddyworks.md +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -2,13 +2,13 @@ title: "BuddyWorks" --- -[BuddyWorks][0] is a [Docker][1]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][2], [Bitbucket][3], and [GitLab][4] repositories, and can be installed on-premises or used in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project. +[BuddyWorks][buddyworks-homepage] is a [Docker][docker-homepage]-based CI server that you can set up in 15-20 minutes to build, test, and deploy your Jekyll websites. It supports [GitHub][github-homepage], [Bitbucket][bitbucket-homepage], and [GitLab][gitlab-homepage] repositories, and can be installed on-premises or used in cloud. The following guide will show you how to set up a free environment to build and test your Jekyll project. -[0]: https://buddy.works -[1]: https://www.docker.com/ -[2]: https://github.com -[3]: https://bitbucket.org/ -[4]: https://gitlab.com +[buddyworks-homepage]: https://buddy.works +[docker-homepage]: https://www.docker.com/ +[github-homepage]: https://github.com +[bitbucket-homepage]: https://bitbucket.org/ +[gitlab-homepage]: https://gitlab.com ## 1. Getting started @@ -19,11 +19,11 @@ title: "BuddyWorks" ## 2. How it works -Whenever you make a push to the selected branch, the Jekyll action runs `jekyll build` in an isolated [Jekyll Docker image][5]. The output is generated to the `/filesystem` directory, and can be further deployed to FTP/SFTP and IaaS services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server. +Whenever you make a push to the selected branch, the Jekyll action runs `jekyll build` in an isolated [Jekyll Docker image][jekyll-docker-image]. The output is generated to the `/filesystem` directory, and can be further deployed to FTP/SFTP and IaaS services. You can add your own commands, install additional packages, attach services, and run Selenium tests, as well as add other actions down the pipeline, eg. a Slack notification or an SSH script that will restart your server. ![Jekyll Build](https://buddy.works/data/blog/_images/buddyworks-jekyll-small.png) -[5]: https://hub.docker.com/r/jekyll/jekyll/ +[jekyll-docker-image]: https://hub.docker.com/r/jekyll/jekyll/ ## 3. Using YAML for configuration @@ -45,18 +45,18 @@ If you prefer configuration as code over GUI, you can generate a `buddy.yml` tha ## 4. Setting up on-premises server -The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including [Linux][6], [Mac][7], [AWS EC2][8], [DigitalOcean][9], and [Microsoft Azure][10]. +The self-hosted version of BuddyWorks can be installed on any type of server supporting Docker, including [Linux][bw-linux], [Mac][bw-mac], [AWS EC2][bw-aws-ec2], [DigitalOcean][bw-digitalocean], and [Microsoft Azure][bw-azure]. -[6]: https://buddy.works/knowledge/standalone/installation-linux -[7]: https://buddy.works/knowledge/standalone/installation-mac-osx -[8]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 -[9]: https://buddy.works/knowledge/standalone/installation-digitalocean -[10]: https://buddy.works/knowledge/standalone/installation-azure +[bw-linux]: https://buddy.works/knowledge/standalone/installation-linux +[bw-mac]: https://buddy.works/knowledge/standalone/installation-mac-osx +[bw-aws-ec2]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 +[bw-digitalocean]: https://buddy.works/knowledge/standalone/installation-digitalocean +[bw-azure]: https://buddy.works/knowledge/standalone/installation-azure ## 5. Questions? -This entire guide is open-source. Go ahead and [edit it][11] if you want to expand it or have a fix or [ask for help][12] if you run into trouble and need assistance. BuddyWorks also has an [online community][13] for help. +This entire guide is open-source. Go ahead and [edit it][jekyll-docs-ci-buddyworks] if you want to expand it or have a fix or [ask for help][jekyll-help] if you run into trouble and need assistance. BuddyWorks also has an [online community][buddyworks-forum] for help. -[11]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md -[12]: https://jekyllrb.com/help/ -[13]: http://forum.buddy.works/ +[jekyll-docs-ci-buddyworks]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md +[jekyll-help]: https://jekyllrb.com/help/ +[buddyworks-forum]: http://forum.buddy.works/ From c48f147192d417294aac72c559599a46ef0e3410 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Wed, 22 Mar 2017 10:02:05 -0400 Subject: [PATCH 26/30] Update history to reflect merge of #5962 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index f46b46dc..86b2fe79 100644 --- a/History.markdown +++ b/History.markdown @@ -23,6 +23,7 @@ * Fixed path in "Improve this page" link in Tutorials section (#5951) * Corrected permalink (#5949) * Included more details about adding defaults to static files (#5971) + * Create buddyworks (#5962) ### Development Fixes From 16e807a41dd9170b0c7b2b683372ebf463f284fe Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Wed, 22 Mar 2017 11:28:40 -0400 Subject: [PATCH 27/30] Update history to reflect merge of #5965 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 86b2fe79..6140fb92 100644 --- a/History.markdown +++ b/History.markdown @@ -24,6 +24,7 @@ * Corrected permalink (#5949) * Included more details about adding defaults to static files (#5971) * Create buddyworks (#5962) + * added (buddyworks) to ci list (#5965) ### Development Fixes From 3142f31a7aa3554f5dbeae716b8fe2e691fdd85f Mon Sep 17 00:00:00 2001 From: Frank Taillandier Date: Fri, 24 Mar 2017 21:19:54 +0100 Subject: [PATCH 28/30] add custom 404 to tutorial navigation --- docs/_data/tutorials.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_data/tutorials.yml b/docs/_data/tutorials.yml index 73a0184a..df6b4c20 100644 --- a/docs/_data/tutorials.yml +++ b/docs/_data/tutorials.yml @@ -2,6 +2,7 @@ tutorials: - home - navigation + - custom-404-page #- title: Another section # tutorials: From 990809ba0793c09e0801ed87933c6de686025765 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Fri, 24 Mar 2017 16:21:38 -0400 Subject: [PATCH 29/30] Update history to reflect merge of #5946 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 6140fb92..72a24fa3 100644 --- a/History.markdown +++ b/History.markdown @@ -25,6 +25,7 @@ * Included more details about adding defaults to static files (#5971) * Create buddyworks (#5962) * added (buddyworks) to ci list (#5965) + * Add a tutorial on serving custom Error 404 page (#5946) ### Development Fixes From a3aed14d4107f85628ce03aeff6d80d5ce64c149 Mon Sep 17 00:00:00 2001 From: jekyllbot Date: Fri, 24 Mar 2017 17:14:20 -0400 Subject: [PATCH 30/30] Update history to reflect merge of #5978 [ci skip] --- History.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/History.markdown b/History.markdown index 72a24fa3..fdb618fa 100644 --- a/History.markdown +++ b/History.markdown @@ -26,6 +26,7 @@ * Create buddyworks (#5962) * added (buddyworks) to ci list (#5965) * Add a tutorial on serving custom Error 404 page (#5946) + * add custom 404 to tutorial navigation (#5978) ### Development Fixes