diff --git a/History.markdown b/History.markdown index cb6f447d..fdb618fa 100644 --- a/History.markdown +++ b/History.markdown @@ -20,13 +20,21 @@ * 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) + * Corrected permalink (#5949) + * 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) + * add custom 404 to tutorial navigation (#5978) ### Development Fixes * [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) ### Site Enhancements @@ -43,6 +51,11 @@ * 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 (#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 diff --git a/docs/_data/tutorials.yml b/docs/_data/tutorials.yml index ad4f4e5c..809c7e55 100644 --- a/docs/_data/tutorials.yml +++ b/docs/_data/tutorials.yml @@ -3,6 +3,7 @@ - home - navigation - orderofinterpretation + - custom-404-page #- title: Another section # tutorials: diff --git a/docs/_docs/continuous-integration/buddyworks.md b/docs/_docs/continuous-integration/buddyworks.md new file mode 100644 index 00000000..1dea8be5 --- /dev/null +++ b/docs/_docs/continuous-integration/buddyworks.md @@ -0,0 +1,62 @@ +--- +title: "BuddyWorks" +--- + +[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. + +[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 + +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 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][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-docker-image]: https://hub.docker.com/r/jekyll/jekyll/ + +## 3. Using YAML for configuration + +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" + 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: + - "chown jekyll:jekyll $WORKING_DIR" + - "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][bw-linux], [Mac][bw-mac], [AWS EC2][bw-aws-ec2], [DigitalOcean][bw-digitalocean], and [Microsoft Azure][bw-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][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. + +[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/ 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) diff --git a/docs/_docs/datafiles.md b/docs/_docs/datafiles.md index a389a658..671a3206 100644 --- a/docs/_docs/datafiles.md +++ b/docs/_docs/datafiles.md @@ -153,4 +153,4 @@ author: dave {% endraw %} ``` -For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation](../navigation). +For information on how to build robust navigation for your site (especially if you have a documentation website or another type of Jekyll site with a lot of pages to organize), see [Navigation](/tutorials/navigation). diff --git a/docs/_docs/history.md b/docs/_docs/history.md index 3c821eda..d0938169 100644 --- a/docs/_docs/history.md +++ b/docs/_docs/history.md @@ -4,11 +4,16 @@ 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} -- 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 diff --git a/docs/_docs/static_files.md b/docs/_docs/static_files.md index 523c29df..a4dda588 100644 --- a/docs/_docs/static_files.md +++ b/docs/_docs/static_files.md @@ -65,3 +65,34 @@ 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 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 %}{% assign image_files = site.static_files | where: "image", true %} +{% for myimage in image_files %} + {{ myimage.path }} +{% endfor %}{% endraw %} +``` + +When you build your site, the output will list the path to each file that meets this front matter condition. 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