diff --git a/site/_posts/2016-10-03-jekyll-3-3-0-released.markdown b/site/_posts/2016-10-03-jekyll-3-3-0-released.markdown new file mode 100644 index 00000000..af3948d3 --- /dev/null +++ b/site/_posts/2016-10-03-jekyll-3-3-0-released.markdown @@ -0,0 +1,102 @@ +--- +layout: news_item +title: 'Jekyll 3.3 is here with better theme support, new URL filters, and tons more' +date: 2016-10-03 17:08: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: + +!! TODO: Add list of contributors for this release! + +[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!