Skip to content

Commit

Permalink
Release v4.0.0.pre.alpha1 (jekyll#7574)
Browse files Browse the repository at this point in the history
Merge pull request 7574
  • Loading branch information
DirtyF authored and jekyllbot committed Mar 19, 2019
1 parent f3cb41b commit 378147d
Show file tree
Hide file tree
Showing 13 changed files with 281 additions and 257 deletions.
323 changes: 159 additions & 164 deletions History.markdown

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
version: 3.8.5
min_ruby_version: 2.4.0
name: Jekyll • Simple, blog-aware, static sites
description: Transform your plain text into static websites and blogs
url: https://jekyllrb.com
Expand Down
4 changes: 2 additions & 2 deletions docs/_docs/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,10 @@ note: This file is autogenerated. Edit /History.markdown instead.
- Minimize array allocations in the `where` filter ([#6860]({{ site.repository }}/issues/6860))
- Bump JRuby ([#6878]({{ site.repository }}/issues/6878))
- Assert existence of <collection>.files ([#6907]({{ site.repository }}/issues/6907))
- Bump Rubocop to 0.54.x ([#6915]({{ site.repository }}/issues/6915))
- Bump RuboCop to 0.54.x ([#6915]({{ site.repository }}/issues/6915))
- Regenerate unconditionally unless its an incremental build ([#6917]({{ site.repository }}/issues/6917))
- Centralize require statements ([#6910]({{ site.repository }}/issues/6910))
- Bump to Rubocop 0.55 ([#6929]({{ site.repository }}/issues/6929))
- Bump to RuboCop 0.55 ([#6929]({{ site.repository }}/issues/6929))
- Refactor private method `HighlightBlock#parse_options` ([#6822]({{ site.repository }}/issues/6822))

### Minor Enhancements
Expand Down
2 changes: 1 addition & 1 deletion docs/_docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Jekyll is a [Ruby Gem](/docs/ruby-101/#gems) that can be installed on most syste

## Requirements

* [Ruby](https://www.ruby-lang.org/en/downloads/) version 2.2.5 or above, including all development headers (ruby version can be checked by running `ruby -v`)
* [Ruby](https://www.ruby-lang.org/en/downloads/) version {{ site.min_ruby_version }} or above, including all development headers (ruby version can be checked by running `ruby -v`)
* [RubyGems](https://rubygems.org/pages/download) (which you can check by running `gem -v`)
* [GCC](https://gcc.gnu.org/install/) and [Make](https://www.gnu.org/software/make/) (in case your system doesn't have them installed, which you can check by running `gcc -v`,`g++ -v` and `make -v` in your system's command line interface)

Expand Down
63 changes: 25 additions & 38 deletions docs/_docs/installation/macos.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,10 @@ First, you need to install the command-line tools to be able to compile native e
xcode-select --install
```

{: .note }
We strongly recommend that you install Ruby gems in your home directory to avoid file permissions problems and using `sudo`.

You can do this with the `--user-install` option, for instance by running:

```sh
gem install --user-install bundler jekyll
```

Or you can change the default gem path, by adding those lines to your shell config file, .e.g. `~/.bash_profile` or `~/.bashrc` if your shell is bash:

```
export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH
```

Relaunch your terminal and run `gem env` to check that default gem paths point to your home directory by default.

## Set up Ruby included with the OS

Jekyll requires Ruby > 2.2.5. We recommend that you run Ruby > 2.3 though, as more and more dependencies ask for that requirement. You're good to go on macOS Mojave 10.14:

```sh
sw_vers -productVersion
10.14

ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
```

Install [Bundler](/docs/ruby-101/#bundler) and Jekyll by running:
## Set up Ruby

```sh
gem install bundler jekyll
```
Jekyll requires Ruby > {{ site.min_ruby_version }}.
As macOS Mojave 10.14 comes only with ruby 2.3.x, you'll have to install Ruby through Homebrew.

### Install latest stable Ruby with Homebrew {#brew}

Expand All @@ -69,7 +38,7 @@ which ruby
/usr/local/opt/ruby/bin/ruby
ruby -v
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin18]
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
```

Yay, we are now running current stable Ruby!
Expand All @@ -82,6 +51,24 @@ gem install bundler jekyll

That's it, you're ready to roll!

{: .note }
We strongly recommend that you install Ruby gems in your home directory to avoid file permissions problems and using `sudo`.

You can do this with the `--user-install` option, for instance by running:

```sh
gem install --user-install bundler jekyll
```

Or you can change the default gem path, by adding those lines to your shell config file, .e.g. `~/.bash_profile` or `~/.bashrc` if your shell is bash:

```
export GEM_HOME=$HOME/gems
export PATH=$HOME/gems/bin:$PATH
```

Relaunch your terminal and run `gem env` to check that default gem paths point to your home directory by default.

### Manage multiple Ruby environments with rbenv {#rbenv}

People often use [rbenv](https://github.com/rbenv/rbenv) to manage multiple
Expand All @@ -105,10 +92,10 @@ Restart your terminal for changes to take effect.
Now you can install the Ruby version of our choice, let's go with current latest stable Ruby:

```sh
rbenv install 2.5.3
rbenv global 2.5.3
rbenv install 2.6.2
rbenv global 2.6.2
ruby -v
ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin18]
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
```

That's it! Head over [rbenv command references](https://github.com/rbenv/rbenv#command-reference) to learn how to use different versions of Ruby in your projects.
Expand Down
19 changes: 10 additions & 9 deletions docs/_docs/liquid/tags.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,25 +90,26 @@ You must include the file's original extension when using the `link` tag. Here a

{% raw %}
```liquid
{{ site.baseurl }}{% link _collection/name-of-document.md %}
{{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %}
{{ site.baseurl }}{% link news/index.html %}
{{ site.baseurl }}{% link /assets/files/doc.pdf %}
{% link _collection/name-of-document.md %}
{% link _posts/2016-07-26-name-of-post.md %}
{% link news/index.html %}
{% link /assets/files/doc.pdf %}
```
{% endraw %}

You can also use the `link` tag to create a link in Markdown as follows:

{% raw %}
```liquid
[Link to a document]({{ site.baseurl }}{% link _collection/name-of-document.md %})
[Link to a post]({{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({{ site.baseurl }}{% link news/index.html %})
[Link to a file]({{ site.baseurl }}{% link /assets/files/doc.pdf %})
[Link to a document]({% link _collection/name-of-document.md %})
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({% link news/index.html %})
[Link to a file]({% link /assets/files/doc.pdf %})
```
{% endraw %}

(Including `{% raw %}{{ site.baseurl }}{% endraw %}` is optional — it depends on whether you want to preface the page URL with the `baseurl` value.)
{: .note }
Since {% include docs_version_badge.html version="v4.0"%} you don't need to prepend `link` tags with `site.baseurl`

The path to the post, page, or collection is defined as the path relative to the root directory (where your config file is) to the file, not the path from your existing page to the other page.

Expand Down
6 changes: 3 additions & 3 deletions docs/_docs/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ the header files for compiling extension modules for Ruby 2.x This
can be done on Ubuntu or Debian by running:

```sh
sudo apt-get install ruby2.3-dev
sudo apt-get install ruby2.6-dev
```

On Red Hat, CentOS, and Fedora systems you can do this by running:
Expand Down Expand Up @@ -138,10 +138,10 @@ jekyll new test

Running bundle install in /home/user/test...

Your user account isn't allowed to install to the system RubyGems.
Your user account is not allowed to install to the system RubyGems.
You can cancel this installation and run:

bundle install --path vendor/bundle
bundle install --path vendor/bundle

to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to RubyGems using sudo.
Expand Down
1 change: 1 addition & 0 deletions docs/_docs/upgrading.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ guides to aid your upgrade:

- [From 0.x to 1.x and 2.x](/docs/upgrading/0-to-2/)
- [From 2.x to 3.x](/docs/upgrading/2-to-3/)
- [From 3.x to 4.x](/docs/upgrading/3-to-4/)

## Minor updates

Expand Down
70 changes: 33 additions & 37 deletions docs/_docs/upgrading/3-to-4.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,36 @@ title: Upgrading from 3.x to 4.x
permalink: /docs/upgrading/3-to-4/
---

Upgrading from an older version of Jekyll? A few things have changed in Jekyll 4
that you'll want to know about.
A few things have changed in Jekyll 4.

Before we dive in, you need to have at least Ruby 2.3.0 installed. Run the following
in your terminal to check
Before we dive in, you need to have at least Ruby {{ site.min_ruby_version }}
installed.

Run the following in your terminal to check

```sh
ruby -v
ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18]
```

If you're using Ruby >= 2.3.0, go ahead and fetch the latest version of Jekyll:
If you're using a supported Ruby version > {{ site.min_ruby_version }}, go ahead
and fetch the latest version of Jekyll:

```sh
gem update jekyll
```

---

### Template rendering
## Template rendering

We've slightly altered the way Jekyll parses and renders your various templates to improve
the overall build times. Jekyll now parses a template once, caches it internally and then
renders the parsed template multiple times as required by your pages and documents.
We've slightly altered the way Jekyll parses and renders your various templates
to improve the overall build times. Jekyll now parses a template once, caches it
internally and then renders the parsed template multiple times as required by
your pages and documents.

The downside to this is that some of the community-authored plugins may not work as they
previously used to.
The downside to this is that some of the community-authored plugins may not work
as they previously used to.

#### For Plugin-authors
## For plugin authors

* If your plugin depends on the following code: `site.liquid_renderer.file(path).parse(content)`,
note that the return value (`template`, an instance of *`Liquid::Template`*), from that line will
Expand All @@ -46,11 +48,10 @@ you can invoke *`Liquid::Template`* directly:
+ template = Liquid::Template.parse(content)
```

---

### Exclusion changes
## Exclusion changes

We've enhanced our default exclusion array. It now looks like the following:
We've enhanced our default exclusion array.
It now looks like the following:

```yaml
# default excludes
Expand Down Expand Up @@ -81,27 +82,26 @@ include:
- node_modules/uglifier/index.js
```

The above configuration directs Jekyll to handle only `node_modules/uglifier/index.js`
while ignoring every other file in the `node_modules` directory since that directory is
"excluded" by default.
The above configuration directs Jekyll to handle only
`node_modules/uglifier/index.js` while ignoring every other file in the
`node_modules` directory since that directory is "excluded" by default.

Note that the default `include` array still gets overridden by the `include` array in your
config file. So, be sure to add `.htaccess` to the list if you need that file to be
present in the generated site.
Note that the default `include` array still gets overridden by the `include`
array in your config file. So, be sure to add `.htaccess` to the list if you
need that file to be present in the generated site.

---

### kramdown v2
## Kramdown v2

Jekyll has dropped support for `kramdown-1.x` entirely.

From [`v2.0` onwards](https://kramdown.gettalong.org/news.html#kramdown-200-released) kramdown requires
specific extensions to be additionally installed to use certain features are desired outside of kramdown's
core functionality.
From [`v2.0` onwards](https://kramdown.gettalong.org/news.html#kramdown-200-released)
kramdown requires specific extensions to be additionally installed to use
certain features are desired outside of kramdown's core functionality.

Out of all the extensions listed in the report linked above, gem `kramdown-parser-gfm` is automatically
installed along with Jekyll 4.0. The remaining extensions will have to be manually installed by the user
depending on desired funtionality, by listing the extension's gem-name in their `Gemfile`.
Out of all the extensions listed in the report linked above, gem
`kramdown-parser-gfm` is automatically installed along with Jekyll 4.0. The
remaining extensions will have to be manually installed by the user depending on
desired funtionality, by listing the extension's gem-name in their `Gemfile`.

Notes:
* `kramdown-converter-pdf` will be ignored by Jekyll Core. To have Jekyll convert Markdown to PDF
Expand Down Expand Up @@ -135,7 +135,3 @@ Notes:
```
* Vendors that provide a versioned Jekyll Environment Image (e.g. Docker Image, GitHub Pages, etc)
will have to manually whitelist kramdown's extension gems in their distributions for Jekyll 4.0.

---

*Did we miss something? Please click "Improve this page" above and add a section. Thanks!*
42 changes: 42 additions & 0 deletions docs/_posts/2019-03-18-jekyll-4-0-0-pre-alpha1-released.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: Jekyll 4.0.0.pre.alpha1 Released
date: 2019-03-18 18:17:31 +0100
author: dirtyf
version: 4.0.0.pre.alpha1
category: release
---

Dear Jekyllers,

Time has come to release a first alpha for Jekyll 4!

This pre version fixes many bugs, and should improve your build times. Some of you already shared [really](https://forestry.io/blog/how-i-reduced-my-jekyll-build-time-by-61/) [good](https://boris.schapira.dev/2018/11/jekyll-build-optimization/) results. We hope your Jekyll sites will also benefit from these optimizations.

If you're a plugin developer, we definitely need your feedback, especially if your plugin does not work with v4.

Jekyll now exposes a [caching API](/tutorials/cache-api/), that some plugins could benefit from.

Also be aware that it's a new *major* version, and it comes with a few breaking changes, notably :

1. We dropped support for [Ruby 2.3 who goes EOL at the end of the month](https://www.ruby-lang.org/en/downloads/).
GitHub Pages runs Ruby 2.5.x, services lile Netlify or Forestry already upgraded to latest Ruby 2.6.x.
2. `link` tag now include `relative_url` filter, hurray [no more need to prepend `{% raw %}{{ site.baseurl }}{% endraw %}` ](https://github.com/jekyll/jekyll/pull/6727).
3. [`{% raw %}{% highlight %}{% endraw %}` now behaves like `{% raw %}{% raw %}{% endraw %}`](https://github.com/jekyll/jekyll/pull/6821), so you can no longer use `include` tags within.
4. We dropped support for Pygments, RedCarpet and rdiscount.
5. We bumped kramdown to v2.

Checkout the complete [changelog](https://github.com/jekyll/jekyll/blob/master/History.markdown#minor-enhancements) for more details.

To test this pre version run:

```sh
gem install jekyll --pre
```

Please test this version thoroughly and file bugs as you encounter them.

Thanks to our dear contributors for helping making Jekyll better:

Aidan Fitzgerald, Akshat Kedia, Alex Wood, Alexey Kopytko, Alexey Pelykh, Ali Thompson, Ana María Martínez Gómez, Ananthakumar, Andreas Möller, Andrew Lyndem, Andy Alt, Anne Gentle, Anny, Arjun Thakur, Arthur Attwell, Ashwin Maroli, Behrang, Belhassen Chelbi, Ben Keith, Ben Otte, Bilawal Hameed, Boris Schapira, Boris van Hoytema, Brett C, Chris Finazzo, Christian Oliff, Damien Solodow, Dan Allen, Dan Friedman, Daniel Höpfl, David J. Malan, Denis McDonald, Derek Smart, Derpy, Dusty Candland, ExE Boss, Frank Taillandier, Gareth Cooper, Grzegorz Kaczorek, Isaac Goodman, Jacob Byers, Jakob Krigovsky, Jan Pobořil, Joe Shannon, Jordan Morgan, Jorie Tappa, Josue Caraballo, Justin Vallelonga, Jörg Steinsträter, Karel Bílek, Keith Mifsud, Kelly-Ann Green, Ken Salomon, Kevin Plattret, Kyle Barbour, Lars Kanis, Leandro Facchinetti, Luis Enrique Perez Alvarez, Luis Guillermo Yáñez, Ma HongJun, Manu Mathew, Mario, Martin Scharm, Matt Massicotte, Matthew Rathbone, Maxwell Gerber, Mertcan Yücel, Michael Hiiva, Mike Kasberg, Mike Neumegen, Monica Powell, Nicolas Hoizey, Nikhil Swaminathan, Nikita Skalkin, Olivia Hugger, Parker Moore, Pat Hawks, Patrick Favre-Bulle, Paul Kim, Philip Belesky, Preston Lim, Ralph, Robert Riemann, Rosário Pereira Fernandes, Samuel Gruetter, Scott Killen, Sri Pravan Paturi, Stephan Fischer, Stephen Weiss, Steven Westmoreland, Sundaram Kalyan Vedala, Thanos Kolovos, Timo Schuhmacher, Tobias, Tom Harvey, Tushar Prajapati, Victor Afanasev, Vitor Oliveira, Wouter Schoot, XhmikosR, Zhang Xiangze, _94gsc, argv-minus-one, chrisfinazzo, ikeji, jess, jpasholk, makmm, mo khan, ninevra, penguinpet, 김정환, 104fps

Happy Jekylling everyone!
1 change: 0 additions & 1 deletion docs/_tutorials/cache_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
layout: tutorials
permalink: /tutorials/cache-api/
title: Cache API
published: false
---

Jekyll includes a caching API, which is used both internally as well as exposed
Expand Down
4 changes: 3 additions & 1 deletion jekyll.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,9 @@ Gem::Specification.new do |s|

s.post_install_message = <<~MSG
----------------------------------------------------------------------------------
This version of Jekyll comes with some major changes. Most notably:
This version of Jekyll comes with some major changes.
Most notably:
* Our `link` tag now comes with the `relative_url` filter incorporated into it.
You should no longer prepend `{{ site.baseurl }}` to `{% link foo.md %}`
For further details: https://github.com/jekyll/jekyll/pull/6727
Expand Down
2 changes: 1 addition & 1 deletion lib/jekyll/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module Jekyll
VERSION = "3.8.5"
VERSION = "4.0.0.pre.alpha1"
end

0 comments on commit 378147d

Please sign in to comment.