diff --git a/_layouts/page.html b/_layouts/page.html index bae31bb..eb8c18c 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -7,6 +7,9 @@
diff --git a/_layouts/step.html b/_layouts/step.html new file mode 100644 index 0000000..aeeeed5 --- /dev/null +++ b/_layouts/step.html @@ -0,0 +1,28 @@ +--- +layout: default +--- +
+
+ + {% include docs_contents_mobile.html %} + +
+ +
+ + {% include docs_contents.html %} + +
+ +
+
diff --git a/_layouts/tutorials.html b/_layouts/tutorials.html new file mode 100644 index 0000000..85eba0b --- /dev/null +++ b/_layouts/tutorials.html @@ -0,0 +1,28 @@ +--- +layout: default +--- + +
+
+ + {% include tutorials_contents_mobile.html %} + +
+ +
+ + {% include tutorials_contents.html %} + +
+ +
+
diff --git a/_posts/2014-07-29-jekyll-2-2-0-released.markdown b/_posts/2014-07-29-jekyll-2-2-0-released.markdown new file mode 100644 index 0000000..ce8e672 --- /dev/null +++ b/_posts/2014-07-29-jekyll-2-2-0-released.markdown @@ -0,0 +1,18 @@ +--- +title: 'Jekyll 2.2.0 Released' +date: 2014-07-29 18:59:13 -0400 +author: parkr +version: 2.2.0 +category: release +--- + +Jekyll 2.2.0 contains a few key updates: + +1. A warning will now fire if you specify a layout in any of your pages or + posts that doesn't exist. +2. Certain Pygments options are now whitelisted in safe mode +3. Categories in a post's path are now respected (i.e. folders in `_posts` + will now work properly). + +As always, a full list of the updates are on the +[history page](/docs/history/#v2-2-0). Happy Jekylling! diff --git a/_posts/2014-08-10-jekyll-2-3-0-released.markdown b/_posts/2014-08-10-jekyll-2-3-0-released.markdown new file mode 100644 index 0000000..c40f850 --- /dev/null +++ b/_posts/2014-08-10-jekyll-2-3-0-released.markdown @@ -0,0 +1,40 @@ +--- +title: 'Jekyll 2.3.0 Released' +date: 2014-08-10 20:38:34 -0400 +author: parkr +version: 2.3.0 +category: release +--- + +This latest release of Jekyll includes a slew of enhancements and bug +fixes. Some of the highlights: + +* Strange bug around spacing/indentation should be resolved. [It was a + curious bug indeed.](https://github.com/jekyll/jekyll/issues/2676) +* Pages, Posts, and Drafts can now be converted by multiple converters. +* Static files can now be safely included in collections. They'll be placed + in a `collection.files` array. `collection.docs` still holds exclusively + content with front matter. +* Sass files can once again be rendered by Liquid. However, neither Sass + nor CoffeeScript can ever have a layout. Bonus: `scssify` and `sassify` + Liquid filters. +* Partial variables allowed now in the path argument of `include` calls +* We added a `jekyll help` command. Pass it a subcommand to see more info + about that subcommand. Or don't, to see the help for `jekyll` itself. +* Lots of fixes to the site template we use for `jekyll new`, including + converting the CSS into SCSS. +* The `jsonify` filter will now call `#to_liquid` for you +* Lots, lots more! + +One change deserves special note. In [#2633][], subfolders *inside* a +`_posts` folder were processed and added as categories to the posts. It +turns out, this behaviour was unwanted by a large number of individuals, as +it is a handy way to organize posts. Ultimately, we decided to revert this +change in [#2705][], because it was a change in behaviour that was already +well-established (at least since Jekyll v0.7.0), and was convenient. + +[#2633]: {{ site.repository }}/issues/2633 +[#2705]: {{ site.repository }}/issues/2705 + +For more excellent CHANGELOG reading material, check out the [History +page](/docs/history/)! Happy Jekylling! diff --git a/_posts/2014-09-09-jekyll-2-4-0-released.markdown b/_posts/2014-09-09-jekyll-2-4-0-released.markdown new file mode 100644 index 0000000..4bcb3a7 --- /dev/null +++ b/_posts/2014-09-09-jekyll-2-4-0-released.markdown @@ -0,0 +1,24 @@ +--- +title: 'A Wild Jekyll 2.4.0 Appeared!' +date: 2014-09-09 21:10:33 -0700 +author: parkr +version: 2.4.0 +category: release +--- + +Well, lookie here! A new release of Jekyll! v2.4.0 contains lots of goodies, including some brilliant new additions: + +- A new `relative_include` Liquid tag ([#2870]({{ site.repository }}/issues/2870)) +- Render Liquid in CoffeeScript files ([#2830]({{ site.repository }}/issues/2830)) +- Add 4 new array Liquid filters: `push`, `pop`, `shift`, and `unshift` ([#2895]({{ site.repository }}/pull/2895)) +- Auto-enable watch on 'serve' ([#2858]({{ site.repository }}/issues/2858)). No more `-w`! +- Add `:title` and `:name` to collection URL template fillers ([#2864]({{ site.repository }}/issues/2864) & [#2799]({{ site.repository }}/issues/2799)) +- Add support for CSV files in the `_data` directory ([#2761]({{ site.repository }}/issues/2761)) +- Add `inspect` liquid filter ([#2867]({{ site.repository }}/issues/2867)) +- Add a `slugify` Liquid filter ([#2880]({{ site.repository }}/issues/2880)) + +Some other wunderbar bug fixes in there as well. Check out the [full changelog](/docs/history/) for the whole scoop. + +As always, many thanks to our amazing contributors who made this release possible: Chris Frederick, Garen Torikian, James Smith, Ruslan Korolev, Joel Glovier, Michael Kühnel, Minn Soe, Pat Hawks, Peter deHaan, Shu Uesugi, TJ, Zhuochun, Alfred Xing, nitoyon, Anatol Broder, Faruk AYDIN, Frederic Hemberger, and Gordon Gao. Thank you!! + +Happy Jekylling! diff --git a/_posts/2014-11-06-jekylls-midlife-crisis-jekyll-turns-2-5-0.markdown b/_posts/2014-11-06-jekylls-midlife-crisis-jekyll-turns-2-5-0.markdown new file mode 100644 index 0000000..45056f9 --- /dev/null +++ b/_posts/2014-11-06-jekylls-midlife-crisis-jekyll-turns-2-5-0.markdown @@ -0,0 +1,46 @@ +--- +title: "Jekyll's Mid-Life Crisis (Or, Jekyll turns 2.5.0)" +date: 2014-11-05 10:48:22 -0800 +author: parkr +version: 2.5.0 +category: release +--- + +A new day, a new release! Jekyll just turned 2.5.0 and has gained a lot of +wisdom along the way. This 2.5.0 release also comes just a few weeks after +Jekyll turned 6 years old! In fashion, we're celebrating this huge +milestone with a pretty big release. What's changed in 2.5.0? Here are some +highlights: + +* Require plugins in the `:jekyll_plugins` Gemfile group (turned off with an environment variable) +* Front matter permalinks can now contain placeholders like `:name`. Check out all the placeholders on the [Permalinks docs page](/docs/permalinks/). +* The `jsonify` filter now deep-converts arrays to liquid. +* Shorted `build` and `serve` commands with `b` and `s` aliases, respectively +* WEBrick will now list your directory if it can't find an index file. +* Any enumerable can be used with the `where` filter. +* Performance optimizations thanks to @tmm1's [stackprof](https://github.com/tmm1/stackprof) +* Fix for Rouge's Redcarpet interface +* Security auditors will love this: path sanitation has now been centralized. +* Specify a log level with `JEKYLL_LOG_LEVEL`: debug, info, warn, or error. + +...and a whole bunch of other fixes and enhancements you can read more +about in [the changelog!](/docs/history/) + +As always, if you run into issues, please [check the issues]({{ site.repository }}/issues) +and [create an issue if one doesn't exist for the bug you encountered]({{ site.repository }}/issues/new). +If you just need some help, the extraordinary jekyll help team is here for +you! + +*When was the [first commit to Jekyll](https://github.com/jekyll/jekyll/commit/d189e05d236769c1e5594af9db4d6eacb86fc16e)? +All the way back on October 19, 2008. It features interesting historical +tidbits, such as the old name for Jekyll was "autoblog", and was first +released via Rubyforge. What a difference 6 years has made!* + +Thanks to the following contributors for making this release possible: + +Parker Moore, XhmikosR, Alfred Xing, Ruslan Korolev, Pat Hawks, +chrisfinazzo, Mike Kruk, Tanguy Krotoff, Matt Hickford, Philipp Rudloff, +Rob Murray, Sean Collins, Seth Warburton, Tom Thorogood, Vasily Vasinov, +Veres Lajos, feivel, mitaa, nitoyon, snrbrnjna, tmthrgd, Bret Comnes, +Charles Baynham, Christian Mayer, Dan Croak, Frederic Hemberger, Glauco +Custódio, Igor Kapkov, and Kevin Ndung'u! diff --git a/_posts/2014-11-08-jekyll-2-5-1-released.markdown b/_posts/2014-11-08-jekyll-2-5-1-released.markdown new file mode 100644 index 0000000..6d08142 --- /dev/null +++ b/_posts/2014-11-08-jekyll-2-5-1-released.markdown @@ -0,0 +1,28 @@ +--- +title: 'Jekyll 2.5.1 Released' +date: 2014-11-09 09:47:52 -0800 +author: parkr +version: 2.5.1 +category: release +--- + +Hot on the heels of v2.5.0, this release brings relief to our Windows +users. It includes a fix for a 2.5.0 path sanitation change that has been +confirmed to work on Windows. + +To our Windows users: while we don't officially support Windows, we don't +wish to impede your normal use of Jekyll at all. Our lack of full support +for Windows is due to our lack of a Windows machine for development testing +(no one on the core team has a Windows machine upon which to test new +release candidates), not due to any malice or willful oversight. If you +come to us with an issue, we are more than happy to work through it with +you to come to a solution that works for all platforms. Along those lines, +we have created a [**Windows Test Force**][] (WTF) which is a group of Jekyll +users dedicated to making sure all future releases work on Windows *before* +they're released so we don't have this issue again. A special thanks goes +out to the initial WTF team members, XhmikosR, Julian Thilo, Pedro Rogério, +and Alfred Xing. + +Happy Jekylling! + +[**Windows Test Force**]: https://github.com/jekyll/jekyll/issues/3069 diff --git a/_posts/2014-11-12-jekyll-2-5-2-released.markdown b/_posts/2014-11-12-jekyll-2-5-2-released.markdown new file mode 100644 index 0000000..bd3d5ee --- /dev/null +++ b/_posts/2014-11-12-jekyll-2-5-2-released.markdown @@ -0,0 +1,17 @@ +--- +title: 'Jekyll 2.5.2 Released' +date: 2014-11-12 18:49:08 -0800 +author: parkr +version: 2.5.2 +category: release +--- + +A very minor release, 2.5.2 fixes a bug with path sanitation that 2.5.1 +introduced. It also improves the `post_url` tag such that it checks the +posts' name (e.g. `2014-03-03-my-cool-post`) instead of a compiled time and +name. This fixes issues where posts are created and the day changes based +on timezone discrepancies. + +[Full history here.](/docs/history/) + +Happy Jekylling! diff --git a/_posts/2014-12-17-alfredxing-welcome-to-jekyll-core.md b/_posts/2014-12-17-alfredxing-welcome-to-jekyll-core.md new file mode 100644 index 0000000..51f5502 --- /dev/null +++ b/_posts/2014-12-17-alfredxing-welcome-to-jekyll-core.md @@ -0,0 +1,26 @@ +--- +title: 'Alfred Xing has joined the Jekyll core team' +date: 2014-12-17 11:16:21 -0800 +author: parkr +version: alfredxing +categories: [team] +--- + +We're excited to announce that [@alfredxing][] has joined the @jekyll/core +team! + +He hails from Vancouver, BC, Canada, where he is studying Economics and +Computer Science at the [University of British Columbia][]. Alfred popped up in +the issues a few months ago with terrific insights, focus, and humility. +Performance buffs may be pleased to hear incremental regeneration will be +released in a future version of Jekyll -- a significant piece of the +feature written by Alfred. + +Please join me in welcoming Alfred to the Jekyll core team. We're excited +he's agreed to lend his talents to this project. The future is an exciting +place! + +Happy Jekylling! + +[@alfredxing]: https://github.com/alfredxing +[University of British Columbia]: http://www.ubc.ca diff --git a/_posts/2014-12-22-jekyll-2-5-3-released.markdown b/_posts/2014-12-22-jekyll-2-5-3-released.markdown new file mode 100644 index 0000000..00ddca6 --- /dev/null +++ b/_posts/2014-12-22-jekyll-2-5-3-released.markdown @@ -0,0 +1,19 @@ +--- +title: 'Jekyll Release for the Holidays! v2.5.3 Out' +date: 2014-12-22 09:03:30 -0500 +author: parkr +version: 2.5.3 +category: release +--- + +Happy Holidays, everyone. + +Jekyll v2.5.3 is a quick patch release, containing some minor fixes. See the +[full history](/docs/history/) for more info. If you notice any problems, +please [let us know]({{ site.repository }}). + +This release also marks the start of Jekyll 3 development. I wrote about it +over on my personal blog: [Jekyll 3 — The Road Ahead](https://byparker.com/blog/2014/jekyll-3-the-road-ahead/). +Feel free to chime in over on GitHub. + +Happy Jekylling! diff --git a/_posts/2015-01-20-jekyll-meet-and-greet.markdown b/_posts/2015-01-20-jekyll-meet-and-greet.markdown new file mode 100644 index 0000000..eee8d5e --- /dev/null +++ b/_posts/2015-01-20-jekyll-meet-and-greet.markdown @@ -0,0 +1,19 @@ +--- +title: "Jekyll Meet & Greet at GitHub HQ" +date: "2015-01-20 19:23:12 -0800" +author: parkr +categories: [meetup] +--- + +Hey! Our friends at GitHub have agreed to host a Jekyll meet & greet on +**February 5, 2015 at 7pm**. The event will be hosted at +[GitHub's Headquarters](https://goo.gl/maps/Bmy7i) +here in San Francisco, CA. Pizza & beer will be available for those interested, +and there will be much time to sit and chat about all things Jekyll. This would +be an especially good time to get help with bugs you've encountered or to talk +over a potential feature with the core team in attendance. + +A special thanks to [@gjtorikian](https://github.com/gjtorikian) for making this +all possible! You rock. + +We look forward to meeting all you fine folks. Cheers! diff --git a/_posts/2015-01-24-jekyll-3-0-0-beta1-released.markdown b/_posts/2015-01-24-jekyll-3-0-0-beta1-released.markdown new file mode 100644 index 0000000..7612876 --- /dev/null +++ b/_posts/2015-01-24-jekyll-3-0-0-beta1-released.markdown @@ -0,0 +1,39 @@ +--- +title: 'Jekyll 3.0.0.beta1 Released' +date: 2015-01-24 00:42:31 -0800 +author: parkr +version: 3.0.0.beta1 +category: release +--- + +Hey! + +Exciting news! First beta for Jekyll 3 is out. Check out the [sizable +changelog](https://github.com/jekyll/jekyll/blob/v3.0.0.beta1/History.markdown#head) +to get a feel for what changes are afoot. Key features: + +1. **Speed.** Jekyll now features incremental regeneration and greatly + improved problematic code that caused slow-downs. +2. Gobs of bugfixes and customization. +3. Uniformity and sanity to Jekyll extensions of Liquid. + +To install just run: + +{% highlight shell %} +$ gem install jekyll --pre +{% endhighlight %} + +Future versions will include [some awesome new +features](https://github.com/jekyll/jekyll/issues/3324) that we haven't +built yet. If you see one you want to tackle, submit a PR & you'll be +featured in the Jekyll 3.0 release post as a contributor to that epic +release. + +Please file bugs as you encounter them, being sure to include your version +of Ruby, the Jekyll version, and (if possible) a link to your site so we +can reproduce. + +If you think there's room for improvement in the UX, also do let us know. +We're always looking to make Jekyll easier to use! + +Happy Jekylling! diff --git a/_posts/2015-02-26-introducing-jekyll-talk.markdown b/_posts/2015-02-26-introducing-jekyll-talk.markdown new file mode 100644 index 0000000..b486ef6 --- /dev/null +++ b/_posts/2015-02-26-introducing-jekyll-talk.markdown @@ -0,0 +1,14 @@ +--- +title: 'Join the Discussion at Jekyll Talk' +date: 2015-02-26 21:06:51 -0800 +author: alfredxing +categories: [community] +--- + +We're super excited to announce the launch of [Jekyll Talk](https://talk.jekyllrb.com), a Discourse forum for anything related to Jekyll! + +The forum was set up by [@envygeeks](https://github.com/envygeeks) to build a community more accessible to Jekyll users and more suitable for general discussion. + +There's already been a lot of interesting topics, including a site showcase and a poll for Jekyll 3.0 priorities. + +Come join the fun! diff --git a/_posts/2015-10-26-jekyll-3-0-released.markdown b/_posts/2015-10-26-jekyll-3-0-released.markdown new file mode 100644 index 0000000..36bf46a --- /dev/null +++ b/_posts/2015-10-26-jekyll-3-0-released.markdown @@ -0,0 +1,34 @@ +--- +title: 'Jekyll 3.0 Released' +date: 2015-10-26 15:37:30 -0700 +author: parkr +version: 3.0 +category: release +--- + +The much-anticipated Jekyll 3.0 has been released! Key changes: + +- Incremental regeneration (experimental, enable with `--incremental`) +- Liquid profiler (add `--profile` to a build or serve) +- Hook plugin API (no more monkey-patching!) +- Dependencies reduced from 14 to 8, none contain C extensions. We're hoping to reduce this even more in the future. +- Changed version support: no support for Ruby 1.9.3, added basic JRuby support. Better Windows support. +- Extension-less URLs +- `site.collections` is an array of collections, thus: + - `collection[0]` becomes `collection.label` + - `collection[1]` becomes `collection` +- Default highlighter is now Rouge instead of Pygments +- Lots of performance improvements +- ... and lots more! + +We also added a [Code of Conduct](/docs/conduct/) to encourage a happier, nicer community where contributions and discussion is protected from negative behaviour. + +A huge shout-out to the amazing Jekyll Core Team members Jordon Bedwell, Alfred Xing, and Matt Rogers for all their hard work in making Jekyll 3 the best release yet. + +We also added [Jekyll Talk](https://talk.jekyllrb.com), managed solely by Jordon, which offers a modern forum experience for Jekyllers across the globe to talk and learn about Jekyll! + +As always, check out the [full history](/docs/history/#v3-0-0) for more details. + +Our contributors are the core of what makes Jekyll great! Many thanks to the 132 contributors who made this release possible (in alphabetical order): AJ Acevedo, Adam Richeimer, Alan Scherger, Alfred Xing, Anatol Broder, Andrew Dunning, Anna Debenham, Anton, Arne Gockeln, Arthur Hammer, Arthur Neves, BRAVO, Ben Balter, Bernardo Dias, BigBlueHat, Brandon Mathis, Bruce Smith, Cai⚡️, Carlos Matallín, ChaYoung You, Christian Vuerings, Cory Simmons, David Herman, David Silva Smith, David Smith, David Wales, David Williamson, DigitalSparky, Dimitri König, Dominik, Eduardo Boucas, Eduardo Bouças, Eduardo Bouças, Erlend Sogge Heggen, Eugene Pirogov, Ezmyrelda Andrade, Fabian Rodriguez, Fabian Tamp, Fabio Niephaus, Falko Richter, Florian Weingarten, Fonso, Garen Torikian, Guillaume LARIVIERE, Günter Kits, I´m a robot, Jason Ly, Jedd Ahyoung, Jensen Kuras, Jesse Pinho, Jesse W, Jim Meyer, Joel Glovier, Johan Bové, Joop Aué, Jordan Thornquest, Jordon Bedwell, Joseph Anderson, Julien Bourdeau, Justin Weiss, Kamil Dziemianowicz, Kevin Locke, Kevin Ushey, Leonard, Lukas, Mads Ohm Larsen, Malo Skrylevo, Marcus Stollsteimer, Mark Phelps, Mark Tareshawty, Martijn den Hoedt, Martin Jorn Rogalla, Martin Rogalla, Matt Rogers, Matt Sheehan, Matthias Nuessler, Max, Max Beizer, Max White, Merlos, Michael Giuffrida, Michael Tu, Mike Bland, Mike Callan, MonsieurV, Nate Berkopec, Neil Faccly, Nic West, Nicholas Burlett, Nicolas Hoizey, Parker Moore, Pascal Borreli, Pat Hawks, Paul Rayner, Pedro Euko, Peter Robins, Philipp Rudloff, Philippe Loctaux, Rafael Picanço, Renaud Martinet, Robert Papp, Ryan Burnette, Ryan Tomayko, Seb, Seth Warburton, Shannon, Stephen Crosby, Stuart Kent, Suriyaa Kudo, Sylvester Keil, Tanguy Krotoff, Toddy69, Tom Johnson, Tony Eichelberger, Tunghsiao Liu, Veres Lajos, Vitaly Repin, Will Norris, William Entriken, XhmikosR, chrisfinazzo, eksperimental, hartmel, jaybe@jekyll, kaatt, nightsense, nitoyon, robschia, schneems, sonnym, takuti, and tasken. + +Happy Jekylling! diff --git a/_posts/2015-11-17-jekyll-3-0-1-released.markdown b/_posts/2015-11-17-jekyll-3-0-1-released.markdown new file mode 100644 index 0000000..be08952 --- /dev/null +++ b/_posts/2015-11-17-jekyll-3-0-1-released.markdown @@ -0,0 +1,24 @@ +--- +title: 'Jekyll 3.0.1 Released' +date: 2015-11-17 22:04:39 -0800 +author: parkr +version: 3.0.1 +category: release +--- + +Hey, folks! Bunch of bug fixes here. Notables: + +* Only superdirectories of `_posts` will be categories. +* `:title` in permalink templates are now properly cased as before +* `.jekyll-metadata` being erroneously written when not using incremental build. +* Failure in liquid will now always fail the `jekyll` process. +* All hooks should now be properly registered & documented + +And a bunch more changes which you can see over in the +[changelog](/docs/history). + +Thanks to the 17 developers who contributed code and documentation to this +patch release: Alfred Xing, Christian Trosell, Jordan Thornquest, Jordon +Bedwell, Larry Fox, Lawrence Murray, Lewis Cowles, Matt Rogers, Nicole +White, Parker Moore, Paul Robert Lloyd, Sarah Kuehnle, Vincent Wochnik, +Will Norris, XhmikosR, chrisfinazzo, and rebornix. diff --git a/_posts/2016-01-20-jekyll-3-0-2-released.markdown b/_posts/2016-01-20-jekyll-3-0-2-released.markdown new file mode 100644 index 0000000..34c3aff --- /dev/null +++ b/_posts/2016-01-20-jekyll-3-0-2-released.markdown @@ -0,0 +1,18 @@ +--- +title: 'Jekyll 3.0.2 Released' +date: 2016-01-20 14:08:18 -0800 +author: parkr +version: 3.0.2 +category: release +--- + +A crucial bug was found in v3.0.1 which caused invalid post dates to go +unnoticed in the build chain until the error that popped up was unhelpful. +v3.0.2 [throws errors as you'd expect](https://github.com/jekyll/jekyll/issues/4375) +when there is a post like `_posts/2016-22-01-future.md` or a post has an +invalid date like `date: "tuesday"` in their front matter. + +This should make the experience of working with Jekyll just a little +better. + +Happy Jekylling! diff --git a/_posts/2016-01-24-jekyll-3-1-0-released.markdown b/_posts/2016-01-24-jekyll-3-1-0-released.markdown new file mode 100644 index 0000000..216a4f2 --- /dev/null +++ b/_posts/2016-01-24-jekyll-3-1-0-released.markdown @@ -0,0 +1,49 @@ +--- +title: 'Jekyll 3.1.0 Released' +date: 2016-01-24 13:16:12 -0800 +author: parkr +version: 3.1.0 +category: release +--- + +Happy weekend! To make your weekend all the better, we have just released +v3.1.0 of Jekyll. + +There are _lots_ of great performance improvements, including a huge one +which is to use Liquid drops instead of hashes. Much of the slowness in +Jekyll is due to Jekyll making lots of objects it doesn't need to make. +By making these objects only as they're needed, we can speed up Jekyll +considerably! + +Some other highlights: + +* Fix: `permalink`s with non-HTML extensions will not be honored +* Fix: `jekyll clean` now accepts build flags like `--source`. +* Enhancement: `include` tags can now accept multiple liquid variables +* Feature: adds new `sample` liquid tag which gets random element from an array +* Fix: Jekyll will read in files with front matter that has extraneous +spaces after the first line +* Enhancement: extract the `title` attribute from the filename for +collection items without a date +* Fix: gracefully handle empty configuration files + +... and [a whole bunch more](/docs/history/#v3-1-0)! + +Please [file a bug]({{ site.repository }}/issues/new?title=Jekyll+3.1.0+Issue:) +if you encounter any issues! As always, [Jekyll Talk](https://talk.jekyllrb.com) +is the best place to get help if you're encountering a problem. + +Special thanks to all our amazing contributors who helped make v3.1.0 a +possibility: + +Alex J Best, Alexander Köplinger, Alfred Xing, Alistair Calder, Atul +Bhosale, Ben Orenstein, Chi Trung Nguyen, Conor O'Callaghan, Craig P. +Motlin, Dan K, David Burela, David Litvak Bruno, Decider UI, Ducksan Cho, +Florian Thomas, James Wen, Jordon Bedwell, Joseph Wynn, Kakoma, Liam +Bowers, Mike Neumegen, Nick Quaranto, Nielsen Ramon, Olivér Falvai, Pat +Hawks, Paul Robert Lloyd, Pedro Euko, Peter Suschlik, Sam Volin, Samuel +Wright, Sasha Friedenberg, Tim Cuthbertson, Vincent Wochnik, William +Entriken, Zshawn Syed, chrisfinazzo, ducksan cho, leethomas, +midnightSuyama, musoke, and rebornix + +Happy Jekylling! diff --git a/_posts/2016-01-28-jekyll-3-1-1-released.markdown b/_posts/2016-01-28-jekyll-3-1-1-released.markdown new file mode 100644 index 0000000..925c9ff --- /dev/null +++ b/_posts/2016-01-28-jekyll-3-1-1-released.markdown @@ -0,0 +1,32 @@ +--- +title: 'Jekyll 3.1.1 Released' +date: 2016-01-28 17:21:50 -0800 +author: parkr +version: 3.1.1 +category: release +--- + +This release squashes a few bugs :bug: :bug: :bug: noticed by a few +wonderful Jekyll users: + +* If your `permalink` ended with a `/`, your URL didn't have any extension, +even if you wanted one +* We now strip the BOM by default per Ruby's `IO.open`. +* `page.dir` will not always end in a slash. + +We also updated our [Code of Conduct](/docs/conduct/) to the latest version of +the Contributor Covenant. The update includes language to ensure that the +reporter of the incident remains confidential to non-maintainers and that +all complaints will result in an appropriate response. I care deeply about +Jekyll's community and will do everything in my power to ensure it is a +welcoming community. Feel free to reach out to me directly if you feel +there is a way we can improve the community for everyone! If you're +interested in more details, [there is a diff for +that](https://github.com/ContributorCovenant/contributor_covenant/blob/v1_4/diffs/1_3_vs_1_4.patch). + +See links to the PR's on [the history page](/docs/history/#v3-1-1). + +Thanks to Jordon Bedwell, chrisfinazzo, Kroum Tzanev, David Celis, and +Alfred Xing for their commits on this latest release! :sparkles: + +Happy Jekylling! diff --git a/_posts/2016-02-08-jekyll-3-0-3-released.markdown b/_posts/2016-02-08-jekyll-3-0-3-released.markdown new file mode 100644 index 0000000..05c9cc2 --- /dev/null +++ b/_posts/2016-02-08-jekyll-3-0-3-released.markdown @@ -0,0 +1,31 @@ +--- +title: 'Jekyll 3.0.3 Released' +date: 2016-02-08 10:39:08 -0800 +author: parkr +version: 3.0.3 +category: release +--- + +[GitHub Pages upgraded to Jekyll 3.0.2][1] last week. With a testbed of +over a million sites, this really put Jekyll 3 through the wringer. This +release addresses a handful of bugs that were surfaced as a result. The +fixes: + +* Fix problem where outputting to a folder would have two extensions +* Handle tildes (`~`) in filenames properly +* Fix issue when comparing documents without dates +* Include line numbers in liquid error output + +Read more on the [changelog](/docs/history/#v3-0-3) with links to the +related patches. + +Please keep [submitting bugs][2] as you find them! Please do take a look +[in our various help resources](/help/) before filing a bug and use [our +forum][3] for asking questions and getting help on a specific problem +you're having. + +Happy Jekylling! + +[1]: https://github.com/blog/2100-github-pages-now-faster-and-simpler-with-jekyll-3-0 +[2]: {{ site.repository }}/issues +[3]: https://talk.jekyllrb.com/ diff --git a/_posts/2016-02-19-jekyll-3-1-2-released.markdown b/_posts/2016-02-19-jekyll-3-1-2-released.markdown new file mode 100644 index 0000000..df8bfd3 --- /dev/null +++ b/_posts/2016-02-19-jekyll-3-1-2-released.markdown @@ -0,0 +1,19 @@ +--- +title: 'Jekyll 3.1.2 Released!' +date: 2016-02-19 15:24:00 -0800 +author: parkr +version: 3.1.2 +category: release +--- + +Happy Friday from sunny California! Today, we're excited to announce the release of Jekyll v3.1.2, which comes with some crucial bug fixes: + +* If a syntax error is encountered by Liquid, it will now print the line number. +* A nasty war between symbols and strings in our configuration hash caused kramdown syntax highlighting to break. That has been resolved; you stand victorious! +* A tilde at the beginning of a filename will no longer crash Jekyll. +* The `titleize` filter mistakenly dropped words that were already capitalized. Fixed! +* Permalinks which end in a slash will now always output as a folder with an `index.html` inside. + +Nitty-gritty details, like always, are available in the [history](/docs/history/). + +Thanks to those who contributed to this release: Alfred Xing, atomicules, bojanland, Brenton Horne, Carlos Garcés, Cash Costello, Chris, chrisfinazzo, Daniel Schildt, Dean Attali, Florian Thomas, Jordon Bedwell, Juuso Mikkonen, Katya Demidova, lonnen, Manabu Sakai, Michael Lee, Michael Lyons, Mitesh Shah, Nicolas Hoizey, Parker Moore, Pat Hawks, Prayag Verma, Robert Martin, Suriyaa Kudo, and toshi. diff --git a/_posts/2016-03-10-making-it-easier-to-contribute-to-jekyll.md b/_posts/2016-03-10-making-it-easier-to-contribute-to-jekyll.md new file mode 100644 index 0000000..9d80604 --- /dev/null +++ b/_posts/2016-03-10-making-it-easier-to-contribute-to-jekyll.md @@ -0,0 +1,16 @@ +--- +title: Making it easier to contribute to Jekyll +description: We've made it easier to contribute to Jekyll by updating our contributing documentation and introducing Jekyll Affinity Teams, teams dedicated to specific aspects of the project. +author: benbalter +categories: [community] +--- + +Jekyll is an open source project, built one contribution at a time by community members just like you. These community contributions can come in many forms beyond just writing code, from reporting an issue or suggesting a new feature to improving documentation or providing feedback on proposed changes. + +If you've been looking to get involved with the Jekyll community, but didn't know, we've recently made it easier to contribute to Jekyll in two ways: + +First, we've completely rewritten [the project's contributing guidelines](https://jekyllrb.com/docs/contributing/), outlining [the various ways you can contribute](https://jekyllrb.com/docs/contributing/#ways-to-contribute), and including better instructions for [submitting proposed changes via GitHub.com](https://jekyllrb.com/docs/contributing/#submitting-a-pull-request-via-githubcom) or for [submitting your first code improvement](https://jekyllrb.com/docs/contributing/#code-contributions). And if you have any feedback, we'd love to hear it! Simply click the "improve this page" button in the top right corner of the contributing documentation. + +Second, this week, we created six community interest groups, we're calling [Jekyll affinity teams](https://teams.jekyllrb.com). If you're interested in a particular aspect of the project (or just want to learn more), you can join any one of these teams (or two, or three), to participate in discussions about potential bugs and proposed improvements. And the best part is there's no commitment. If you just want to listen, or if at any point you want to leave (or switch teams), that's totally fine. We won't say a thing. To learn more about the various affinity teams, or to join one (please do!), just head on over to [teams.jekyllrb.com](https://teams.jekyllrb.com/). + +We hope these changes will make it easier for you to make your first (or second, or third) contribution to Jekyll today. Thanks for helping to make Jekyll awesome! diff --git a/_posts/2016-04-19-jekyll-3-0-4-released.markdown b/_posts/2016-04-19-jekyll-3-0-4-released.markdown new file mode 100644 index 0000000..218ec07 --- /dev/null +++ b/_posts/2016-04-19-jekyll-3-0-4-released.markdown @@ -0,0 +1,23 @@ +--- +title: 'Jekyll 3.0.4 Released' +date: 2016-04-19 10:26:12 -0700 +author: parkr +version: 3.0.4 +category: release +--- + +v3.0.4 is a patch release which fixes the follow two issues: + +- Front matter defaults may not have worked for collection documents and posts due to a problem where they were looked up by their URL rather than their path relative to the site source +- Configuration for the posts permalink might be borked when a user specified a value for `collections.posts.permalink` directly. This forced the use of `permalink` at the top level, which also affected pages. To configure a permalink _just for posts_, you can do so with: + +{% highlight yaml %} +collections: + posts: + output: true + permalink: /blog/:year/:title/ +{% endhighlight %} + +Both of these issues have been resolved. For more information, check out [the full history](/docs/history/#v3-0-4). + +Happy Jekylling! diff --git a/_posts/2016-04-19-jekyll-3-1-3-released.markdown b/_posts/2016-04-19-jekyll-3-1-3-released.markdown new file mode 100644 index 0000000..1735f59 --- /dev/null +++ b/_posts/2016-04-19-jekyll-3-1-3-released.markdown @@ -0,0 +1,16 @@ +--- +title: 'Jekyll 3.1.3 Released' +date: 2016-04-19 10:26:16 -0700 +author: parkr +version: 3.1.3 +category: release +--- + +v3.1.3 is a patch release which fixes the follow two issues: + +- Front matter defaults may not have worked for collection documents and posts due to a problem where they were looked up by their URL rather than their path relative to the site source +- Running `jekyll serve` with SSL enabled was broken due to a bad configuration. + +Both of these issues have been resolved. For more information, check out [the full history](/docs/history/#v3-1-3). + +Happy Jekylling! diff --git a/_posts/2016-04-26-jekyll-3-0-5-released.markdown b/_posts/2016-04-26-jekyll-3-0-5-released.markdown new file mode 100644 index 0000000..8dc23be --- /dev/null +++ b/_posts/2016-04-26-jekyll-3-0-5-released.markdown @@ -0,0 +1,24 @@ +--- +title: 'Jekyll 3.0.5 Released' +date: 2016-04-26 17:40:44 -0700 +author: parkr +version: 3.0.5 +category: release +--- + +This version fixes a bug affecting only v3.0.4 where autoregeneration was +*always* disabled when running Jekyll locally. This feature is a huge +reason why Jekyll (or any static site generator, for that matter) is a joy +to use. Sorry for the regression! + +If you're using GitHub Pages, [you can follow the progress of the upgrade +on the github/pages-gem repo](https://github.com/github/pages-gem/pull/285). + +As always, our [history doc](/docs/history/#v3-0-5) has links to the pull +requests and issues associated with the release for your perusal. + +We're looking forward to the upcoming release of v3.2 which [has some +excellent goodies](https://github.com/jekyll/jekyll/blob/master/History.markdown#head) +we think you'll love. + +Happy Jekylling! diff --git a/_posts/2016-05-18-jekyll-3-1-4-released.markdown b/_posts/2016-05-18-jekyll-3-1-4-released.markdown new file mode 100644 index 0000000..6d607d8 --- /dev/null +++ b/_posts/2016-05-18-jekyll-3-1-4-released.markdown @@ -0,0 +1,25 @@ +--- +title: 'Jekyll 3.1.4 "Stability Sam" Released' +date: 2016-05-18 16:50:37 -0700 +author: parkr +version: 3.1.4 +category: release +--- + +Hey Jekyllites! + +Today, we released v3.1.4 in an effort to bring more stability to the v3.1.x series. This bugfix release consists of: + +* A fix for `layout` in Liquid where values would carry over from one document to the next +* A fix for `layout` in Liquid where a parent layout (e.g. `default` or `base`) would overwrite the metadata of the child layout (e.g. `post` or `special`). +* A fix where `page.excerpt` referencing its excerpt would cause an infinite loop of recursive horror. +* We added `Configuration.from` and the great permalink fix from [v3.0.4](/news/2016/04/19/jekyll-3-0-4-released/) to the v3.1.x series +* `site.collections` in Liquid is now sorted alphabetically by label, so `docs` shows up before `posts` reliably. + +The fixes for `layout` may not be seamless for everyone, but we believe they will be the "right thing to do" going forward. + +We are alwawys striving to make Jekyll more straight-forward to use. Please do open an issue if you believe an aspect of Jekyll's user experience isn't up to par. + +For a full history of our changes, [see the changelog](/docs/history/#v3-1-4). + +As always, Happy Jekylling! diff --git a/_posts/2016-05-18-jekyll-3-1-5-released.markdown b/_posts/2016-05-18-jekyll-3-1-5-released.markdown new file mode 100644 index 0000000..0dbdd52 --- /dev/null +++ b/_posts/2016-05-18-jekyll-3-1-5-released.markdown @@ -0,0 +1,16 @@ +--- +title: 'Jekyll 3.1.5 Released' +date: 2016-05-18 21:35:27 -0700 +author: parkr +version: 3.1.5 +category: release +--- + +There's always at least one bug, right? :) + +Hot on the trails of [v3.1.4](/news/2016/05/18/jekyll-3-1-4-released/), we +bring you v3.1.5! It fixes one bug around requiring the `ExcerptDrop`, +which only affects Linux. For the gory details, see [the pull +request for the fix](https://github.com/jekyll/jekyll/pull/4912). + +Happy Jekylling! diff --git a/_posts/2016-05-19-jekyll-3-1-6-released.markdown b/_posts/2016-05-19-jekyll-3-1-6-released.markdown new file mode 100644 index 0000000..a12c14e --- /dev/null +++ b/_posts/2016-05-19-jekyll-3-1-6-released.markdown @@ -0,0 +1,18 @@ +--- +title: 'Jekyll 3.1.6 Released' +date: 2016-05-19 12:48:14 -0700 +author: parkr +version: 3.1.6 +category: release +--- + +Upon releasing 3.1.5 and kicking the tires, we noticed a glaring bug: our +beloved `jsonify` filter doesn't work! With that, our work was cut out for +us and we decided a 3.1.6 was necessary. This release restores sanity to +our object-to-JSON generation in Liquid and we hope you enjoy. + +For the gory details, see [the pull +request](https://github.com/jekyll/jekyll/pull/4914) or [the +changelog](/docs/history/#v3-1-6). + +Happy Jekylling! diff --git a/_posts/2016-06-03-update-on-jekyll-s-google-summer-of-code-projects.markdown b/_posts/2016-06-03-update-on-jekyll-s-google-summer-of-code-projects.markdown new file mode 100644 index 0000000..c3d01cd --- /dev/null +++ b/_posts/2016-06-03-update-on-jekyll-s-google-summer-of-code-projects.markdown @@ -0,0 +1,18 @@ +--- +title: "Jekyll's Google Summer of Code Project: The CMS You Always Wanted" +date: "2016-06-03 13:21:02 -0700" +author: parkr +categories: [community] +--- + +This year, Jekyll applied to be a part of [Google Summer of Code](https://summerofcode.withgoogle.com/how-it-works/). Students were able to propose any project related to Jekyll. With a gracious sponsorship from GitHub and the participation of myself, @benbalter and @jldec, Jekyll was able to accept two students for the 2016 season, @mertkahyaoglu and @rush-skills. + +These students are working on a project that fills a huge need for the community: _a graphical solution for managing your site's content._ Current plans include a fully-integrated admin which spins up when you run jekyll serve and provides a friendly web interface for creating and editing your content. The server and web interface will speak a common HTTP interface so either piece could be switched out for, e.g. a server which writes directly to a repository on GitHub. + +The strength of text files as the storage medium for content has been part of Jekyll's success. [Our homepage](/) lauds the absence of a traditional SQL database when using Jekyll – your content should be what demands your time, not pesky database downtime. Unfortunately, understanding of the structure of a Jekyll site takes some work, enough that for some users, it's prohibitive to using Jekyll to accomplish their publishing goals. + +Mert and Ankur both applied to take on this challenge and agreed to split the project, one taking on the web interface and the other taking on the backend. We're very excited to see a fully-functional CMS for Jekyll at the end of the summer produced by these excellent community members, and we hope you'll join us in cheering them on and sharing our gratitude for all their hard work. + +Thanks, as always, for being part of such a wonderful community that made this all possible. I'm honored to work with each of you to create something folks all around the globe find a joy to use. I look forward to our continued work to move Jekyll forward. + +As always, Happy Jekylling! diff --git a/_posts/2016-07-26-jekyll-3-2-0-released.markdown b/_posts/2016-07-26-jekyll-3-2-0-released.markdown new file mode 100644 index 0000000..8644002 --- /dev/null +++ b/_posts/2016-07-26-jekyll-3-2-0-released.markdown @@ -0,0 +1,124 @@ +--- +title: 'Jekyll turns 3.2' +date: 2016-07-26 15:06:49 -0700 +author: parkr +version: 3.2.0 +category: release +--- + +Happy Day! Jekyll v3.2.0 is out, and packed full of goodies. + +Our flagship feature for this release has been **themes**. _Themes?!_, you +say? Yes, proper, versionable, releasable, first-class themes. We're pretty +stoked about it and we hope you like building and using them. For now, it +only supports layouts, includes, and sass, but we have plans to include +static assets like images and CSS/JS in a future release. [Read more about +it in the docs.](/docs/themes/) Our site template generated by `jekyll new` +now dogfoods this feature, using the [minima](https://github.com/jekyll/minima) theme. + +Some other notable changes: + +- Symlinks are allowed as long as they target a file in the site source +- Explicit support for Ruby 2.0.x was dropped +- 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 URLs for any +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 +your perusal. + +Every release is made possible by the countless hours of hard work that our +fellow community members put into sending patches, filing thoughtful +patches, and so on. These release took the work of over 80 people: + +- Aaron Sky +- Adam Hollett +- ajhit406 +- Aki +- Alex Hanselka +- Alex Hoyau +- Alex Ivkin +- Alex Kitchens +- Alex Plescan +- Alex Wood +- Anatoliy Yastreb +- Andrew Artajos +- Andrew Munsell +- AndrewCz +- Ankush Menat +- Anthony Smith +- Ben Balter +- Brian Jones +- Brint O'Hearn +- Chayoung You +- Chris Wells +- chrisfinazzo +- Clark Winkelmann +- Dan Allen +- David Von Lehman +- David Zhang +- Derek Gottlieb +- Enes Gönültaş +- EricH +- Erick Sasse +- Eugênio Cabral +- Florian Thomas +- Frank Taillandier +- Henry Goodman +- Henry Wright +- Hugo Duksis +- Hugo Giraudel +- Jack Reed +- Jamie Bilinski +- Jeff Kolesky +- Jens Willmer +- Jordon Bedwell +- Josh Waller +- Joshua Barnett +- Keegan Mullaney +- Kevin Miller +- Krzysztof Jurewicz +- Loren Rogers +- Marcos Brito +- Marcus Stollsteimer +- Matt Rogers +- Michaël Guitton +- Mike Linksvayer +- Mike Neumegen +- Nathan Hazout +- Nick +- No +- nscyclone +- Parker Moore +- Pat Hawks +- Pierre Fenoll +- Praveen Kumar +- Rares Vernica +- Saleem Rashid +- Sam Dutton +- Shengbin Meng +- Shinn Kondo +- Shinnosuke Kondo +- skim +- Sondre Nilsen +- Spencer A. Bywater +- Stephen Checkoway +- Suriyaa Kudo +- surrim +- TheLucasMoore +- Thomas Wood +- Tim Wisniewski +- Tom Fejfar +- Tony Garnock-Jones +- Vincent Wochnik +- XhmikosR +- Yanis Vieilly +- Yordis Prieto +- Zack Spencer + +We are so grateful to all of you for helping to put together a terrific +release. Thank you! + +Happy Jekylling! diff --git a/_posts/2016-08-02-jekyll-3-2-1-released.markdown b/_posts/2016-08-02-jekyll-3-2-1-released.markdown new file mode 100644 index 0000000..d5af2a4 --- /dev/null +++ b/_posts/2016-08-02-jekyll-3-2-1-released.markdown @@ -0,0 +1,23 @@ +--- +title: 'Jekyll 3.2.1 Released with Fix for Windows' +date: 2016-08-02 13:20:11 -0700 +author: parkr +version: 3.2.1 +category: 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! diff --git a/_posts/2016-08-24-jekyll-admin-initial-release.markdown b/_posts/2016-08-24-jekyll-admin-initial-release.markdown new file mode 100644 index 0000000..e256a5c --- /dev/null +++ b/_posts/2016-08-24-jekyll-admin-initial-release.markdown @@ -0,0 +1,17 @@ +--- +title: "Jekyll Admin Initial Release" +date: "2016-08-25 09:50:00 +0300" +author: mertkahyaoglu +categories: [community] +--- + +[Jekyll's Google Summer of Code Project](https://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! diff --git a/_posts/2016-10-06-jekyll-3-3-is-here.md b/_posts/2016-10-06-jekyll-3-3-is-here.md new file mode 100644 index 0000000..0d8d7c5 --- /dev/null +++ b/_posts/2016-10-06-jekyll-3-3-is-here.md @@ -0,0 +1,109 @@ +--- +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 +category: 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 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 URLs all the +easier to make: + +{% highlight liquid %} +{% raw %} +{{ "/docs/assets/" | absolute_url }} => https://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! diff --git a/_posts/2016-11-14-jekyll-3-3-1-released.markdown b/_posts/2016-11-14-jekyll-3-3-1-released.markdown new file mode 100644 index 0000000..6c286ff --- /dev/null +++ b/_posts/2016-11-14-jekyll-3-3-1-released.markdown @@ -0,0 +1,18 @@ +--- +title: 'Jekyll 3.3.1 Released' +date: 2016-11-14 14:29:59 -0800 +author: parkr +version: 3.3.1 +category: release +--- + +Hello! We have a bugfix release of Jekyll hot off the presses for you. Key +fixes to call out: + +1. Only warn about auto-regeneration issues on Windows instead of disabling +2. Exclude very specific `vendor/` subdirectories instead of all of `vendor/` +3. Allow permalink templates to have plaintext underscores + +..and lots more! Check out the [full history for more](/docs/history/#v3-3-1). + +Happy Jekylling! diff --git a/_posts/2017-01-18-jekyll-3-4-0-released.markdown b/_posts/2017-01-18-jekyll-3-4-0-released.markdown new file mode 100644 index 0000000..bf1db93 --- /dev/null +++ b/_posts/2017-01-18-jekyll-3-4-0-released.markdown @@ -0,0 +1,42 @@ +--- +title: 'Jekyll turns 3.4.0' +date: 2017-01-18 14:19:13 -0500 +author: parkr +version: 3.4.0 +category: release +--- + +Hey there! We have a quick update of Jekyll for you to enjoy this January. +Packed full of bug fixes as usual, thanks to the tireless efforts of our +exceptional Jekyll community. Three changes to call out: + +1. If you're a big fan of [`where_by_exp`](/docs/liquid/filters/), you'll be an +even bigger fan of [`group_by_exp`](/docs/liquid/filters/). +2. Using a custom timezone in Jekyll on Windows? Yeah, sorry that hasn't ever worked + properly. We made it possible to accurately [set the timezone using IANA + timezone codes](/docs/installation/windows/#time-zone-management). +3. Documentation has been improved, notably on themes, includes and permalinks. + +And [lots and lots more!](/docs/history/#v3-4-0) + +This update was made possible by the dedicated efforts of our excellent +contributors: Ajay Karwal, Alexey Rogachev, Ashwin Maroli, +BlueberryFoxtrot, Chase, Chayoung You, Dean Attali, Dmitrii Evdokimov, Don +Denton, Eldritch Cheese, Fabrice Laporte, Florian Thomas, Frank +Taillandier, Hugo, Ivan Dmitrievsky, Joel Meyer-Hamme, Josh Habdas, Kenton +Hansen, Kevin Wojniak, Kurt Anderson, Longwelwind, Max Chadwick, Nicolas +Hoizey, Nursen, Parker Moore, Pat Hawks, Purplecarrot, Ricardo N Feliciano, +Rob Crocombe, Roger Ogden, Skylar Challand, Thiago Arrais, Tim Banks, Tom +Johnson, Tunghsiao Liu, XhmikosR, Zlatan Vasović, alexmalik, brainscript, +kimbaudi, muratayusuke, penny, and yoostk. + +As always, if you encounter bugs, please do [search the issues]({{ site.repository }}/issues) +and [file an issue]({{ site.repository }}/issues/new) if you aren't able to +find a resolution. We also have [our Jekyll Talk +forum](https://talk.jekyllrb.com) for those of you with general questions +about how to accomplish certain tasks with Jekyll. + +We have some exciting updates in store for v3.5, and we're hard at work on +those already. + +Happy Jekylling! diff --git a/_posts/2017-03-02-jekyll-3-4-1-released.markdown b/_posts/2017-03-02-jekyll-3-4-1-released.markdown new file mode 100644 index 0000000..213e57a --- /dev/null +++ b/_posts/2017-03-02-jekyll-3-4-1-released.markdown @@ -0,0 +1,106 @@ +--- +title: 'Jekyll 3.4.1, or "Unintended Consequences"' +date: 2017-03-02 14:20:26 -0500 +author: parkr +version: 3.4.1 +category: release +--- + +Conformity is a confounding thing. + +We write tests to ensure that a piece of functionality that works today +will work tomorrow, as further modifications are made to the codebase. This +is a principle of modern software development: every change must have a +test to guard against regressions to the functionality implemented by that +change. + +And yet, occasionally, our very best efforts to test functionality will be +thwarted. This is because of how our code produces unintended +functionality, which naturally goes untested. + +In our documentation, we tell users to name their posts with the following +format: + +```text +YYYY-MM-DD-title.extension +``` + +That format specifies exactly four numbers for the year, e.g. 2017, two +letters for the month, e.g. 03, and two letters for the day, e.g. 02. To +match this, we had the following regular expression: + +```ruby +%r!^(?:.+/)*(\d+-\d+-\d+)-(.*)(\.[^.]+)$! +``` + +You might already see the punchline. While our documentation specifies the +exact number of numbers that is required for each section of the date, our +regular expression does not enforce this precision. What happens if a user +doesn't conform to our documentation? + +We recently [received a bug report](https://github.com/jekyll/jekyll/issues/5603) +that detailed how the following file was considered a post: + +```text +84093135-42842323-42000001-b890-136270f7e5f1.md +``` + +Of course! It matches the above regular expression, but doesn't satisfy +other requirements about those numbers being a valid date (unless you're +living in a world that has 43 million months, and 42 million (and one) +days). So, we [modified the regular expression to match our +documentation](https://github.com/jekyll/jekyll/pull/5609): + +```ruby +%r!^(?:.+/)*(\d{4}-\d{2}-\d{2})-(.*)(\.[^.]+)$! +``` + +Our tests all passed and we were properly excluding this crazy date with 43 +million months and days. This change shipped in Jekyll v3.4.0 and all was +well. + +Well, not so much. + +A very common way to specify the month of February is `2`. This is true for +all single-digit months and days of the month. Notice anything about our +first regular expression versus our second? The second regular expression +imposes a **minimum**, as well as maximum, number of digits. This change +made Jekyll ignore dates with single-digit days and months. + +The first eight years of Jekyll's existence had allowed single-digit days +and months due to an imprecise regular expression. For some people, their +entire blog was missing, and there were no errors that told them why. + +After receiving a few bug reports, it became clear what had happened. +Unintended functionality of the last eight years had been broken. Thus, +v3.4.0 was broken for a non-negligible number of sites. With a test site +in-hand from @andrewbanchich, I tracked it down to this regular expression +and [reintroduced](https://github.com/jekyll/jekyll/pull/5920) a proper +minimum number of digits for each segment: + +```ruby +%r!^(?:.+/)*(\d{2,4}-\d{1,2}-\d{1,2})-(.*)(\.[^.]+)$! +``` + +And, I wrote a test. + +This change was quickly backported to v3.4.0 and here we are: releasing +v3.4.1. It will fix the problem for all users who were using single-digit +months and days. + +With this, I encourage all of you to look at your code for *unintended* +functionality and make a judgement call: if it's allowed, *should it be*? +If it should be allowed, make it *intended* functionality and test it! I +know I'll be looking at my code with much greater scrutiny going forward, +looking for unintended consequences. + +Many thanks to our Jekyll affinity team captains who helped out, including +@pathawks, @pnn, and @DirtyF. Thanks, too, to @ashmaroli for reviewing my +change with an eye for consistency and precision. This was certainly a team +effort. + +We hope Jekyll v3.4.1 brings your variable-digit dates back to their +previous glory. We certainly won't let that unintended functionality be +unintended any longer. + +As always, Happy Jekylling! diff --git a/_posts/2017-03-09-jekyll-3-4-2-released.markdown b/_posts/2017-03-09-jekyll-3-4-2-released.markdown new file mode 100644 index 0000000..775be8c --- /dev/null +++ b/_posts/2017-03-09-jekyll-3-4-2-released.markdown @@ -0,0 +1,51 @@ +--- +title: 'Jekyll 3.4.2 Released' +date: 2017-03-09 15:41:57 -0500 +author: parkr +version: 3.4.2 +category: release +--- + +Another one-PR patch update, though without the same [lessons as for the +previous release]({% link _posts/2017-03-02-jekyll-3-4-1-released.markdown %}). + +This release includes a beneficial change for a number of plugins: +**static files now respect front matter defaults**. + +You might be asking yourself: "why would static files, files that are +static files explicitly because they *don't* have front matter, want +to respect front matter?" That's a great question. Let me illustrate +with an example. + +Let's look at `jekyll-sitemap`. This plugin generates a list of documents, +pages, and static files, and some metadata for them in an XML file for a +Google/Yahoo/Bing/DuckDuckGo crawler to consume. If you don't want a given +file in this list, you set `sitemap: false` in front matter. But +what about static files, which don't have front matter? Before this +release, they could not be excluded because they had no properties in YAML +other than [the ones we explicitly assigned](https://github.com/jekyll/jekyll/blob/v3.4.1/lib/jekyll/static_file.rb#L98-L106). +So if you had a PDF you didn't want to be in your sitemap, you couldn't use +`jekyll-sitemap`. + +With this release, you can now set [front matter +defaults](/docs/configuration/front-matter-defaults/) for static files: + +```yaml +defaults: + - + scope: + path: "pdfs/" + values: + sitemap: false +``` + +Now, for every file in the Liquid `site.static_files` loop which is in the +folder `pdfs/`, you'll see `sitemap` equal to `false`. + +Many thanks to @benbalter for coming up with the solution and ensuring +sitemaps everywhere are filled with just the right content. + +As always, if you notice any bugs, please search the issues and file one if +you can't find another related to your issue. + +Happy Jekylling! diff --git a/_posts/2017-03-21-jekyll-3-4-3-released.markdown b/_posts/2017-03-21-jekyll-3-4-3-released.markdown new file mode 100644 index 0000000..7373961 --- /dev/null +++ b/_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 +category: 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! diff --git a/_posts/2017-06-14-jekyll-3-5-0-released.markdown b/_posts/2017-06-14-jekyll-3-5-0-released.markdown new file mode 100644 index 0000000..7bb2a82 --- /dev/null +++ b/_posts/2017-06-14-jekyll-3-5-0-released.markdown @@ -0,0 +1,38 @@ +--- +title: 'Jekyll turns 3.5, oh my!' +date: 2017-06-15 17:32:32 -0400 +author: parkr +version: 3.5.0 +category: release +--- + +Good news! Nearly 400 commits later, Jekyll 3.5.0 has been released into +the wild. Some new shiny things you might want to test out: + +- Jekyll now uses Liquid 4, the latest! It comes with whitespace control, new filters `concat` and `compact`, loop performance improvements and [many fixes](https://github.com/Shopify/liquid/blob/master/History.md#400--2016-12-14--branch-4-0-stable) +- Themes can specify runtime dependencies (in their gemspecs) and we'll require those. This makes it easier for theme writers to use plugins. +- Speaking of themes, we'll properly handle the discrepancy between a convertible file in the local site and a static file in the theme. Overriding a file locally now doesn't matter if it's convertible or static. +- Pages, posts, and other documents can now access layout variables via `{% raw %}{{ layout }}{% endraw %}`. +- The `gems` key in the `_config.yml` is now `plugins`. This is backwards-compatible, as Jekyll will gracefully upgrade `gems` to `plugins` if you use the former. +- Filters like `sort` now allow you to sort based on a subvalue, e.g. `{% raw %}{% assign sorted = site.posts | sort: "image.alt_text" %}{% endraw %}`. +- You can now create tab-separated data files. +- Using `layout: none` will now produce a file with no layout. Equivalent to `layout: null`, with the exception that `none` is a truthy value and won't be overwritten by front matter defaults. +- No more pesky errors if your URL contains a colon (sorry about those!) +- We now automatically exclude the `Gemfile` from the site manifest when compiling your site. No more `_site/Gemfile`! +- We fixed a bug where abbreviated post dates were ignored, e.g. `_posts/2016-4-4-april-fourth.md`. + +And [so much more!](/docs/history/) + +There was a huge amount of effort put into this release by our maintainers, +especially @pathawks, @DirtyF, and @pup. Huge thanks to them for ushering +this release along and keeping the contributions flowing! Jekyll wouldn't +work without the tireless dedication of our team captains & maintainers. +Thank you, all! + +A huge thanks as well to our contributors to this release: Adam Hollett, Aleksander Kuś, Alfred Myers, Anatoliy Yastreb, Antonio Argote, Ashton Hellwig, Ashwin Maroli, Ben Balter, BlueberryFoxtrot, Brent Yi, Chris Finazzo, Christoph Päper, Christopher League, Chun Fei Lung, Colin, David Zhang, Eric Leong, Finn Ellis, Florian Thomas, Frank Taillandier, Hendrik Schneider, Henry Kobin, Ivan Storck, Jakub Klímek, Jan Pobořil, Jeff Puckett, Jonathan Hooper, Kaligule, Kevin Funk, Krzysztof Szafranek, Liu Cheng, Lukasz Brodowski, Marc Bruins, Marcelo Canina, Martin Desrumaux, Mer, Nate, Oreonax, Parker Moore, Pat Hawks, Pedro Lamas, Phil Nash, Ricardo N Feliciano, Ricky Han, Roger Sheen, Ryan Lue, Ryan Streur, Shane Neuville, Sven Meyer, Tom Johnson, William Entriken, Yury V. Zaytsev, Zarino Zappia, dyang, jekylltools, sean delaney, zenHeart + +Please file any bugs with detailed replication instructions if you find any +bugs. Better yet, submit a patch if you find the bug in the code and know +how to fix it! :heart: + +Happy Jekylling! :tada: diff --git a/_posts/2017-07-17-jekyll-3-5-1-released.markdown b/_posts/2017-07-17-jekyll-3-5-1-released.markdown new file mode 100644 index 0000000..96b76ed --- /dev/null +++ b/_posts/2017-07-17-jekyll-3-5-1-released.markdown @@ -0,0 +1,19 @@ +--- +title: 'Jekyll 3.5.1 Released' +date: 2017-07-17 12:40:37 -0400 +author: parkr +version: 3.5.1 +category: release +--- + +We've released a few bugfixes in the form of v3.5.1 today: + +- Some plugins stopped functioning properly due to a NoMethodError for `registers` on NilClass. That's been fixed. +- A bug in `relative_url` when `baseurl` is `nil` caused URL's to come out wrong. Squashed. +- Static files' liquid representations should now have all the keys you were expecting when serialized into JSON. + +We apologize for the breakages! We're working diligently to improve how we test our plugins with Jekyll core to prevent breakages in the future. + +More details in [the history](/docs/history/#v3-5-1). Many thanks to all the contributors to Jekyll v3.5.1: Adam Voss, ashmaroli, Ben Balter, Coby Chapple, Doug Beney, Fadhil, Florian Thomas, Frank Taillandier, James, jaybe, Joshua Byrd, Kevin Plattret, & Robert Jäschke. + +Happy Jekylling! diff --git a/_posts/2017-08-12-jekyll-3-5-2-released.markdown b/_posts/2017-08-12-jekyll-3-5-2-released.markdown new file mode 100644 index 0000000..84deb6f --- /dev/null +++ b/_posts/2017-08-12-jekyll-3-5-2-released.markdown @@ -0,0 +1,23 @@ +--- +title: 'Jekyll 3.5.2 Released' +date: 2017-08-12 16:31:40 -0400 +author: parkr +version: 3.5.2 +category: release +--- + +3.5.2 is out with 6 great bug fixes, most notably one which should dramatically speed up generation of your site! In testing #6266, jekyllrb.com generation when from 18 seconds down to 8! Here is the full line-up of fixes: + + * Backport #6266 for v3.5.x: Memoize the return value of `Document#url` (#6301) + * Backport #6247 for v3.5.x: kramdown: symbolize keys in-place (#6303) + * Backport #6281 for v3.5.x: Fix `Drop#key?` so it can handle a nil argument (#6288) + * Backport #6280 for v3.5.x: Guard against type error in `absolute_url` (#6287) + * Backport #6273 for v3.5.x: delegate `StaticFile#to_json` to `StaticFile#to_liquid` (#6302) + * Backport #6226 for v3.5.x: `Reader#read_directories`: guard against an entry not being a directory (#6304 + +A [full history](/docs/history/#v3-5-2) is available for your perusal. As always, please file bugs if you encounter them! Opening a pull request with a failing test for your expected behaviour is the easiest way for us to address the issue since we have a reproducible example to test again. Short of that, please fill out our issue template to the best of your ability and we'll try to get to it quickly! + +Many thanks to our contributors without whom this release could not be +possible: Ben Balter & Kyle Zhao. + +Happy Jekylling! diff --git a/_posts/2017-09-21-jekyll-3-6-0-released.markdown b/_posts/2017-09-21-jekyll-3-6-0-released.markdown new file mode 100644 index 0000000..3a36efb --- /dev/null +++ b/_posts/2017-09-21-jekyll-3-6-0-released.markdown @@ -0,0 +1,17 @@ +--- +title: 'Jekyll turns 3.6!' +date: 2017-09-21 16:38:20 -0400 +author: parkr +version: 3.6.0 +category: release +--- + +Another much-anticipated release of Jekyll. This release comes with it Rouge 2 support, but note you can continue to use Rouge 1 if you'd prefer. We also now require Ruby 2.1.0 as 2.0.x is no longer supported by the Ruby team. + +Otherwise, it's a massive bug-fix release! A few bugs were found and squashed with our `Drop` implementation. We're using the Schwartzian transform to speed up our custom sorting (thanks, Perl community!). We now protect against images that are named like posts and we generally worked on guarding our code to enforce requirements, instead of assuming the input was as expected. + +Please let us know if you find any bugs! You can see [the full history here](/docs/history/#v3-6-0). + +Many thanks to our contributors who helped make this release possible: Aleksander Kuś, André Jaenisch, Antonio Argote, ashmaroli, Ben Balter, Bogdan, Bradley Meck, David Zhang, Florian Thomas, Frank Taillandier, Jordon Bedwell, Joshua Byrd, Kyle Zhao, lymaconsulting, Maciej Bembenista, Matt Sturgeon, Natanael Arndt, Ohad Schneider, Pat Hawks, Pedro Lamas, and Sid Verma. + +As always, Happy Jekylling! diff --git a/_posts/2017-10-19-diversity-open-source.markdown b/_posts/2017-10-19-diversity-open-source.markdown new file mode 100644 index 0000000..f5267de --- /dev/null +++ b/_posts/2017-10-19-diversity-open-source.markdown @@ -0,0 +1,44 @@ +--- +title: "Diversity in Open Source, and Jekyll's role in it" +date: 2017-10-19 21:33:00 +0200 +author: oe +categories: [community] +--- + +Open Source has a problem with diversity. GitHub recently conducted a [survey](http://opensourcesurvey.org/2017) which revealed that 95% of the respondents were identifying as male. This is even worse than in the tech industry overall, where the percentage is only about 76%. Every other week, there seems to be another case of a maintainer engaging in targeted harassment against minorities. People somehow deem it completely okay to let these things slide, though. + +Fortunately, there's a couple of things we can do to make it easier and more comfortable for people that have never contributed to any open source project before, to contribute to our projects. + +## Add a Code of Conduct, and enforce it + +This might seem like one of the easiest steps to do, but it actually requires a lot of dedication to pull through with. Basically, a Code of Conduct is a document detailing what is and what isn't acceptable behavior in your project. A good Code of Conduct also details enforcement procedures, that means how the person violating the Code of Conduct gets dealt with. This is the point at which I've seen a looooot of projects fail. It's easy enough to copy-paste a Code of Conduct into your project, but it's more important to be clear on how to enforce it. Inconsistent —or worse, nonexistent— enforcement is just going to scare off newcomers even more! + +The most widely adopted Code of Conduct is the [Contributor Covenant](https://www.contributor-covenant.org/). It's a very good catch-all document, but it is a bit light in the enforcement section, so I'd recommend to flesh it out by yourself, be it by means of adding contact information or expanding the enforcement rules. + +No matter which Code of Conduct you pick, the most important thing is to actually _read it for yourself_. The worst thing in open source is a maintainer that doesn't know when they've violated their own Code of Conduct. + +## Document your contributing workflow + +The problem that puts people off the most is incomplete or missing documentation, as revealed through GitHub's [open source survey](http://opensourcesurvey.org/2017). A very popular myth in programming is that good code explains itself, which might be true, but only for the person writing it. It's important, especially once you put your project out there for the world to see, to document not only your code, but also the process by which you maintain it. Otherwise, it's going to be extremely hard for newcomers to even figure out where to begin contributing to your project. + +Jekyll has [an entire section of its docs](/docs/contributing) dedicated to information on how to contribute for this very reason. Every documentation page has a link to directly edit and improve it on GitHub. It's also important to realize that not all contributions are code. It can be documentation, it can be reviewing pull requests, but it can also just be weighing into issues, and all of this should be recognized in the same way. At Jekyll, out of 397 total merged pull requests in the last year, __204__ were documentation pull requests! + +## Create newcomer-friendly issues + +For most people new to open source, the biggest hurdle is creating their first pull request. That's why initiatives such as [YourFirstPR](https://twitter.com/yourfirstpr) and [First Timers Only](http://www.firsttimersonly.com/) were started. Recently, [a GitHub bot that automatically creates first-timer friendly issues](https://github.com/hoodiehq/first-timers-bot) was launched, which makes it very easy for maintainers to convert otherwise small or trivial changes into viable pull requests that can be taken on by newcomers! So we decided to give it a shot, and we've created a couple of very easy `first timers only` issues: + +- [Issue #6437](https://github.com/jekyll/jekyll/issues/6437) +- [Issue #6438](https://github.com/jekyll/jekyll/issues/6438) +- [Issue #6439](https://github.com/jekyll/jekyll/issues/6439) + +(There's also an up-to-date listing of all of our `first timers only` issues [here](https://github.com/jekyll/jekyll/issues?q=is%3Aissue+is%3Aopen+label%3Afirst-time-only)) + +These issues are designed to be taken on only by someone who has had little to no exposure to contributing to open source before, and additionally, project maintainers offer support in case a question arises. + +Jekyll is a very big and popular open source project, and we hope that with these special issues, we can help people who haven't contributed to open source before to catch a footing in these unsteady waters. + +## Be nice + +I know this is a cliche and a overused phrase, but really, it works if you pull through with it. Come to terms with the fact that some people aren't as fast or reliable as you might want to think. Don't get angry when a contributor takes a day longer than you might like them to. Treat new contributors to your project with respect, but also with hospitality. Think twice before you send that comment with slurs in it. + +I've been contributing to open source for about 4 years now, and I've had my fair share of horrible, horrible experiences. But Jekyll has historically been a project that has always valued the people contributing to it over the code itself, and I hope we can keep it that way. I also hope that other project maintainers read this and take inspiration from this post. Every project should be more diverse. diff --git a/_posts/2017-10-21-jekyll-3-6-2-released.markdown b/_posts/2017-10-21-jekyll-3-6-2-released.markdown new file mode 100644 index 0000000..ad6d37a --- /dev/null +++ b/_posts/2017-10-21-jekyll-3-6-2-released.markdown @@ -0,0 +1,42 @@ +--- +title: 'Jekyll 3.6.2 Released' +date: 2017-10-21 21:31:40 +0200 +author: dirtyf +version: 3.6.2 +category: release +--- + +3.6.2 is out, it's a tiny patch release and we invite you to run `bundle update` +if you want to avoid possible build problems with: + +* some UTF-8 and UTF-16 encoded files, +* fully numeric layout names (we convert those to string for you now). + +Other changes include updates to our documentation, like this [complete +video series by Giraffe Academy](/tutorials/video-walkthroughs/) aimed at +complete beginners. A big thanks to Mike for this. + +And if you're wondering what happened to version 3.6.1, it was just our new +release maintainer getting familiar with the release process. 😄 + +We try to release patch releases as quickly as possible and we're already +working on the next minor version 3.7.0 that will allow you to store all your +collections in a single directory. Stay tuned. + +Theme developers are invited to test the brand new +[`jekyll-remote-theme`](https://github.com/benbalter/jekyll-remote-theme) plugin +and give their feedback to @benbalter. This plugin allows you to use any +GitHub hosted theme as a remote theme! + +Once again, many thanks to our contributors who helped make this release possible: +ashmaroli, bellvat, Frank Taillandier, i-give-up, Jan Piotrowski, Maximiliano +Kotvinsky, Oliver Steele and Pat Hawks. For some it was their [first +contribution to open-source]({% link +_posts/2017-10-19-diversity-open-source.markdown %}) 👏 + +As it's been nine years this week that Tom Preston-Werner started this project, +I also wanna seize this opportunity to thank [all of the 732 contributors](https://github.com/jekyll/jekyll/graphs/contributors) who +helped make it possible for Jekyll to power millions of websites around the world +today. + +Happy Birthday Jekyll! 🎂 diff --git a/_posts/2018-01-02-jekyll-3-7-0-released.md b/_posts/2018-01-02-jekyll-3-7-0-released.md new file mode 100644 index 0000000..d1bbd0d --- /dev/null +++ b/_posts/2018-01-02-jekyll-3-7-0-released.md @@ -0,0 +1,37 @@ +--- +title: "Jekyll 3.7.0 Released" +description: "Jekyll 3.7.0 brings LiveReload, a directory for your collections and much more…" +date: 2018-01-02 11:21:40 +0100 +author: DirtyF +version: 3.7.0 +category: release +--- + +We're happy to release a new minor for the new year. +Here are a few of the latest additions from our contributors: + + * LiveReload is available as an option during development: with `jekyll serve --livereload` no more manual page refresh. A big thanks to @awood for this feature and to @andreyvit, LiveReload author. + * New `collections_dir` configuration option allows you to store all your [collections](/docs/collections) in a single folder. Your source root folder should now look cleaner :sparkles: . + * If you're using a [gem-based theme](/docs/themes/) in coordination with the `--incremental` option, you should notice some significant speed during the regeneration process, we did see build time went down **from 12s to 2s** with @mmistakes [minimal-mistakes theme](https://github.com/mmistakes/minimal-mistakes) during our tests. + * Jekyll will now check to determine whether host machine has internet connection. + * A new `latin` option is available to better [handle URLs slugs](/docs/liquid/filters/#options-for-the-slugify-filter). + * And of course many bug fixes and updates to our documentation — which you can now search thanks to our friends @Algolia. + * [Full history is here](/docs/history/#v3-7-0). + +This release wouldn't have been possible without all the following people: + +Aaron Borden, Alex Tsui, Alex Wood, Alexey Pelykh, Andrew Dassonville, Angelika Tyborska, Ankit Singhaniya, Ashwin Maroli, bellvat, Brandon Dusseau, Chris Finazzo, Doug Beney, Dr. Wolfram Schroers, Edward Shen, Florian Thomas, Frank Taillandier, Gert-jan Theunissen, Goulven Champenois, János Rusiczki, Jed Fox, Johannes Müller, Jon Anning, Jonathan Hooper, Jordon Bedwell, Junko Suzuki, Kacper Duras, Kenton Hansen, Kewin Dousse, Matt Rogers, Maximiliano Kotvinsky, mrHoliday, Olivia, Parker Moore, Pat Hawks, Sebastian Kulig, Vishesh Ruparelia, Xiaoiver and Yashu Mittal. + +A big thanks to everyone! + +Oh, one last thing… + +### :pray: upgrade your Ruby + +Prepare for the next major update, as next major version Jekyll 4.0 will drop support for Ruby 2.1 and 2.2. + +> Ruby 2.2 is now under the state of the security maintenance phase, until the end of the March of 2018. After the date, maintenance of Ruby 2.2 will be ended. We recommend you start planning migration to newer versions of Ruby, such as 2.4 or 2.3. — [Ruby Core Team](https://www.ruby-lang.org/en/news/2017/12/14/ruby-2-2-9-released/) + +We strongly encourage you to upgrade to at least Ruby 2.4.x [like our friends at GitHub Pages](https://pages.github.com/versions/) or even go with [Ruby 2.5](https://www.ruby-lang.org/en/news/2017/12/25/ruby-2-5-0-released/). + +Happy new year to all from the Jekyll team! diff --git a/_posts/2018-01-25-jekyll-3-7-2-released.md b/_posts/2018-01-25-jekyll-3-7-2-released.md new file mode 100644 index 0000000..e7c6efa --- /dev/null +++ b/_posts/2018-01-25-jekyll-3-7-2-released.md @@ -0,0 +1,67 @@ +--- +title: "Jekyll 3.7.2 Released" +date: 2018-01-25 22:22:22 +0530 +author: ashmaroli +version: 3.7.2 +category: release +--- + +Close on the heels of shipping 3.7.0, we were informed of a couple of +regressions due to the changes made in that release. In due time, Team Jekyll +set out to address those issues as early as possible. + +Days later here we're, announcing 3.7.2 (sorry for skipping 3.7.1, +RubyGems didn't want to play nice) that fixes numerous issues! :tada: +The highlights being: + + * A major regression in 3.7.0 was that when a Front Matter Default was + configured with a `scope["path"]` set to a directory, Jekyll would scan + that directory for any subfolders and files, for each document in that + `path`. + Though this is intended, it increases build times in proportion to the size + of the directory. + + We addressed this by having Jekyll scan the directory path only if the user + explicitly configures the `scope["path"]` using wildcards. + + Read our [documentation](/docs/configuration/front-matter-defaults/#glob-patterns-in-front-matter-defaults) + for more details. + + A huge shout-out to @mmistakes for bringing this to our notice and + additionally providing us with a test repository to aid in resolving the issue. + + * Another regression reported was related to our "Custom collections + directory" feature introduced in 3.7.0. + + Users setting `collection_dir` to a certain directory would have *altered* + paths to their posts still at the root of their site's source. This + roughly translated to 404 errors on URLs to their posts. + + Props to @localheinz for bringing this regression to our notice. + + We decided to resolve this by having Jekyll ignore posts and drafts at the + root of the site's source directory if the user customizes the + `collection_dir` setting. + + Ergo, if you set a custom location for your collections, please ensure you + move all of your collections into that directory. **This includes posts and + drafts as well**. Your links generated by + `{% raw %}{% post_url %}{% endraw %}` or `{% raw %}{% link %}{% endraw %}` + will adapt automatically. + + * We also found out that `gem "wdm"` boosts performance while directories are + being watched on Windows. So we recommend having it included in your Gemfile + for a better development experience on Windows. (Newly generated Gemfiles + will hereafter have that gem listed automatically :wink:) + +In addition to the above, numerous other minor fixes and documentation updates +have been made that should improve your Jekyll experience. All of which, would +not have been possible without our wonderful contributors: + +Alexandr, Andreas Möller, Ashwin Maroli, Chayoung You, Florian Thomas, +Frank Taillandier, Hendrik Schneider, Kacper Duras, Olivia, Parker Moore and +Paul Robert Lloyd. + +As always, you can see our full changelog on [the History page](/docs/history/). + +Happy Jekylling! :sparkles: diff --git a/_posts/2018-02-19-meet-jekyll-s-new-lead-developer.markdown b/_posts/2018-02-19-meet-jekyll-s-new-lead-developer.markdown new file mode 100644 index 0000000..46011ed --- /dev/null +++ b/_posts/2018-02-19-meet-jekyll-s-new-lead-developer.markdown @@ -0,0 +1,43 @@ +--- +layout: news_item +title: "Meet Jekyll's New Lead Developer" +date: "2018-02-19 20:48:09 -0500" +author: parkr +categories: [team] +--- + +Jekyll has a new Lead Developer: [Olivia](https://liv.cat/)! + +After over 5 years of leading Jekyll, many releases from 0.12.1 to 3.6.0, and +countless conversations in GitHub Issues, Pull Requests, Jekyll Talk, and +more, I am passing on the torch as Lead Developer of Jekyll. + +Olivia has been working with the Jekyll community for some time now. You +may have seen her around in issues and pull requests on the various Jekyll +repositories. She started as a contributor, then joined the Core team as our +community lead. Olivia joined the Jekyll Core Team with experience in the +Node.js community, both online and as a volunteer organizer with JSConf EU. + +In my conversations with Olivia, it is clear that Jekyll's vision of +simplicity for the user ([no magic!](/philosophy#1-no-magic)) and letting +users' [content be king](/philosophy#3-content-is-king) will remain a top +priority. In just the last few weeks as the transition has been occurring, +we have seen some incredible work on performance that will make future +versions of Jekyll work better at scale. She will be prioritizing work on +innovative improvements to make Jekyll that much better for all of us. +Olivia balances an eye for quality with the need for shipping well. + +When Tom Preston-Werner met me at GitHub HQ 2.0 in January 2013 to pass on +the torch, I could never have dreamed of all the amazing experiences this +community would share with me over the next 5 years. From visiting @qrush +in Buffalo, NY for a hack night on Jekyll to attending a Jekyll planning +session hosted by @benbalter at GitHub to Google Summer of Code which gave +us jekyll-admin, I am eternally grateful to all of you for the opportunity +to lead this excellent community. I'm confident Olivia will continue to +lead Jekyll to even greater heights. + +As always, Happy Jekylling! + +Parker + +*Curious about who else runs this show? [Check out our excellent team.](/team/)* diff --git a/_posts/2018-02-25-jekyll-3-7-3-released.markdown b/_posts/2018-02-25-jekyll-3-7-3-released.markdown new file mode 100644 index 0000000..d66afd6 --- /dev/null +++ b/_posts/2018-02-25-jekyll-3-7-3-released.markdown @@ -0,0 +1,19 @@ +--- +title: 'Jekyll 3.7.3 Released' +date: 2018-02-25 13:02:08 +0530 +author: ashmaroli +version: 3.7.3 +category: release +--- + +Hello Jekyllers!! :wave: + +We're pleased to announce the release of `v3.7.3` which fixes a bug one might encounter while using `Jekyll - 3.7.x` along with a +Jekyll plugin that in turn uses the `I18n` library. + +When [v3.7.0]({% link _posts/2018-01-02-jekyll-3-7-0-released.md %}) enhanced our `slugify` filter with a `latin` option, we also +hardcoded a default fallback locale for the `I18n` library to avoid an exception raised in the event the library fails to find +any locale. This led to issues with third-party i18n plugins for Jekyll, especially since the default locale got assigned before +the plugin was loaded, irrespective of whether the `slugify` filter was used. + +Jekyll will henceforth set the default locale if and only if necessary. diff --git a/_posts/2018-03-14-development-update.md b/_posts/2018-03-14-development-update.md new file mode 100644 index 0000000..0466c02 --- /dev/null +++ b/_posts/2018-03-14-development-update.md @@ -0,0 +1,28 @@ +--- +title: "Jekyll 4.0 is on the Horizon!" +date: "2018-04-19 16:07:00 +0100" +author: oe +categories: [community] +--- + +With the release of Jekyll 3.8.0, it's been 2 and a half years since the last major release. Jekyll 3.0.0 was released in late October of 2015! That's a long time ago, and we've been working towards the next major release of Jekyll for a couple of months now. Here's a small preview of what's to come: + +- Dropping support for Ruby 2.1 and 2.2. Both versions have reached their EOL period. +- Dropping Pygments as a dependency. We're already defaulting to Rouge, and this removes the implicit Python dependency. (finally!) +- Making the `link` tag use relative URLs. This is a big breaking change, but it's the cleaner solution. + +We're open to more ideas, though. If the development cost isn't too high, or if someone volunteers to take care of the implementation, it's likely that your suggestion might make it into Jekyll 4.0. Head over to this [issue] for more details. Some interesting topics might be improving Internationalization support in Jekyll, creating convenience Liquid tags, et cetera. + +That being said, the development period of version 4.0 begins _now_. This means a couple of things: + +- New features will only be implemented in Jekyll 4.0. There will be no 3.9.0 or the like. +- Same with bug fixes, unless they concern something introduced in Jekyll 3.7 or 3.8, in which case we will backport the fixes and release a patch version. +- Now is a great time to finally take on the feature you've wanted to see in Jekyll for ages! Just open an issue or experiment with the code to get going! + +As for a release date, we're currently aiming for late summer, around September or so. However, keep in mind that this project is purely volunteer-run, and as such, delays might occur and we might not hit that release date. + +Finally, this is a great time for newcomers to open-source to make their first contribution. We'll be doing our best to mark recommended contributions and create newcomer-friendly issues, as well as to provide mentoring throughout the contribution process (although we'd like to think that we're already pretty proficient at that). So if you've always been hestitant about contributing to a large open-source project, Jekyll is a good place to start! + +Happy Jekylling! :wave: + +[issue]: https://github.com/jekyll/jekyll/issues/6948 diff --git a/_posts/2018-03-15-jekyll-3-8-0-released.markdown b/_posts/2018-03-15-jekyll-3-8-0-released.markdown new file mode 100644 index 0000000..14e2d61 --- /dev/null +++ b/_posts/2018-03-15-jekyll-3-8-0-released.markdown @@ -0,0 +1,43 @@ +--- +title: 'Jekyll 3.8.0 Released' +date: 2018-04-19 19:45:15 +0530 +author: ashmaroli +version: 3.8.0 +category: release +--- + +Aloha Jekyllers!! :wave: + +After months of toiling on the codebase and shipping a couple of release-candidates, the Jekyll Team is delighted to finally +present `v3.8.0`, packed with optimizations, improvements, some new features and a couple of bug-fixes. Yay!!! + +Under the hood, Jekyll has undergone many minor changes that will allow it to run more performantly in the coming years. :smiley: +Rest assured, our users should see minor improvements in their site's build times. + +Speaking of improvements, users running a site containing a huge amount of posts or those who like to use our `where` filter +frequently in a single template, are going to see a massive reduction in their total build times!! :tada: + +Hold on, this version is not just about optimizations, there are some new features as well..: + * Detect non-existent variables and filters specified in a template by enabling `strict_variables` and `strict_filters` under the + `liquid` key in your config file. + * Allow *date filters* to output ordinal days. + * `jekyll doctor` now warns you if you have opted for custom `collections_dir` but placed `_posts` directory outside that + directory. + +..and yes, a couple of bug-fixes, notably: + * Jekyll now handles future-dated documents properly. + * Jekyll is able to handle Liquid blocks intelligently in excerpts. + * A few methods that were *not meant to be publically accessible* have been entombed properly. + * A few bugs that still plagued our `collections_dir` feature from `v3.7` got crushed. + +As always, the full list of changes since last release can be viewed [here](/docs/history/#v3-8-0). + +A big thanks to the following people who contributed to our repository with pull-requests that improved our codebase, documentation +and tests: + +Ana María Martínez Gómez, Antonio Argote, Ashwin Maroli, Awjin Ahn, Ben Balter, Benjamin Høegh, Christian Oliff, Damien Solodow, +David Zhang, Delson Lima, Eric Cornelissen, Florian Thomas, Frank Taillandier, Heinrich Hartmann, Jakob Vad Nielsen, John Eismeier, +Kacper Duras, KajMagnus, Mario Cekic, Max Vilimpoc, Michael H, Mike Kasberg, Parker Moore, Pat Hawks, Paweł Kuna, Robert Riemann, +Roger Rohrbach, Semen Zhydenko, Stefan Dellmuth, Tim Carry, olivia, and steelman. + +Happy Jekylling!! :sparkles: diff --git a/_posts/2018-05-01-jekyll-3-8-1-released.markdown b/_posts/2018-05-01-jekyll-3-8-1-released.markdown new file mode 100644 index 0000000..cb8c7a5 --- /dev/null +++ b/_posts/2018-05-01-jekyll-3-8-1-released.markdown @@ -0,0 +1,20 @@ +--- +title: 'Jekyll 3.8.1 Released' +date: 2018-05-01 11:56:01 -0500 +author: pathawks +version: 3.8.1 +category: release +--- + +Happy May Day :tada: + +The Jekyll team is happy to announce the release of `v3.8.1`, which fixes +a couple of bugs that were introduced two weeks ago in `v3.8.0`. If you have +experienced trouble regarding post excerpts or non-published posts, this release +should be the remedy. Thanks to @Chaosed0 and @domLocalHeroes for originally +reporting these issues, and to @ashmaroli for fixing them so quickly. + +As a reminder, we have started work on Jekyll 4.0. If there are any +features that you would love to see added to Jekyll, or any pain points you +would like to see removed, please do add your ideas to the [Jekyll 4.0 idea +list](https://github.com/jekyll/jekyll/issues/6948). diff --git a/_posts/2018-05-18-jekyll-3-8-2-released.markdown b/_posts/2018-05-18-jekyll-3-8-2-released.markdown new file mode 100644 index 0000000..d54a982 --- /dev/null +++ b/_posts/2018-05-18-jekyll-3-8-2-released.markdown @@ -0,0 +1,19 @@ +--- +title: 'Jekyll 3.8.2 Released' +date: 2018-05-19 10:30:00 -0500 +author: pathawks +version: 3.8.2 +category: release +--- + +Hello Jekyllers!! + +Today we are releasing `v3.8.2`, which fixes the way Jekyll generates excerpts +for posts when the first paragraph of the post contains Liquid tags that take +advantage of [Liquid's whitespace control feature][Liquid whitespace]. + +Big thanks to @kylebarbour, who first reported this issue and also very quickly +submitted a fix. Also thanks to @nickskalkin for making sure that we are using +the latest version of Rubocop to lint our code. + +[Liquid whitespace]: https://shopify.github.io/liquid/basics/whitespace/ diff --git a/_posts/2018-06-04-jekyll-3-8-3-released.markdown b/_posts/2018-06-04-jekyll-3-8-3-released.markdown new file mode 100644 index 0000000..a2a7056 --- /dev/null +++ b/_posts/2018-06-04-jekyll-3-8-3-released.markdown @@ -0,0 +1,13 @@ +--- +title: 'Jekyll 3.8.3 Released' +date: 2018-06-05 09:00:00 -0500 +author: pathawks +version: 3.8.3 +category: release +--- + +This release fixes a regression in 3.8 where collections with `published: false` +do not show when using the `--unpublished` flag. + +Thanks to @philipbelesky for reporting and fixing this issue; collections with +`published: false` now behave the same way as Posts. diff --git a/_posts/2018-08-01-jekyll-sponsoring.markdown b/_posts/2018-08-01-jekyll-sponsoring.markdown new file mode 100644 index 0000000..1f223df --- /dev/null +++ b/_posts/2018-08-01-jekyll-sponsoring.markdown @@ -0,0 +1,78 @@ +--- +title: "Sponsoring Jekyll's development" +date: 2018-08-01 15:00:00 +0200 +author: oe +categories: [community] +--- + +_(TL;DR: We're open for sponsorships on our [OpenCollective page](https://opencollective.com/jekyll))_ + +Hi Jekyllers, + +As you may know, Jekyll is a completely free and open source project. We offer +our software and its related plugins and documentation at no cost because we +believe that good software should not cost anything. We're not planning on +changing that, but today I want to talk about a different monetary aspect of +open source. + +Open source developers being paid for the work they do is a rare sight. Most +open source software is effectively the result of hundreds and thousands of +hours of free labor provided by individuals who are passionate enough to work +outside of their day job to create software that, ironically, is being used by +almost every company that offers digital services. It's a problem that has +gotten more attention in recent years, with the open source community becoming +more diverse and more and more companies actively investing in providing +monetary support for open source developers. + +Jekyll has always been a product of volunteers. Rarely has someone been paid to +implement a certain plugin or feature. Today, we're excited to announce that we +will finally be able to fund our contributors! __We are opening an +OpenCollective to receive individual and corporate sponsorships__. +This is not unheard of, [Hugo](http://gohugo.io) is also funded by sponsorships, +as are many other similar projects, such as +[webpack](https://opencollective.com/webpack), +[Babel](https://opencollective.com/babel) or +[RuboCop](https://opencollective.com/rubocop). + +OpenCollective is a service that makes it easy for open source projects to +receive funding from individuals and companies alike. It's specifically designed +for open source and many other projects already use it for funding. + +Sponsoring is, for us, a method to finally realize some of the more ambitious +goals we've had with the project for years. The closest thing we want to realize +is to __release Jekyll 4.0, and to make it as polished as we can__. In the +future, we would also like to work on other things that will improve the Jekyll +ecosystem. Here's a couple of ideas: + +- Create a comprehensive official plugin and theme directory site +- Improve tooling built around measuring and improving Jekyll's performance +- Improve maintenance for official plugins +- Including the community into official decisions; making Jekyll more friendly to folks in the community + +Again, these are just some ideas, but with the help of sponsoring, they are now +one step closer to being realized :heart: + +
+ Forestry +
+ +With that, we would like to announce our very first sponsor: +[__Forestry.io__](https://forestry.io)! +Forestry is a CMS that integrates with your Jekyll sites and lets you update +content using a beautiful interface, and then automatically commits it back to +your GitHub repository. We're excited to have them on board on a new, exciting +step of our journey. + +Will anything change for Jekyll users? The answer is no - this step does not +impact the Jekyll software in any aspect. In fact, you might see positive +changes, such as more features and better performance. Surprisingly, that's what +happens when you properly fund people for their work! + +If you have been a long time user for Jekyll and would like to give something +back to the project, you can consider a small monthly donation to our +[OpenCollective page](http://opencollective.com/jekyll). If your company heavily +relies on Jekyll, do consider sponsoring us! + +Contact [matt@jekyllrb.com](mailto:matt@jekyllrb.com) and we'll figure something out together. + +Thanks for sticking with us, and happy Jekylling! :tada: diff --git a/_posts/2018-09-19-security-fixes-for-3-6-3-7-3-8.markdown b/_posts/2018-09-19-security-fixes-for-3-6-3-7-3-8.markdown new file mode 100644 index 0000000..9f92e80 --- /dev/null +++ b/_posts/2018-09-19-security-fixes-for-3-6-3-7-3-8.markdown @@ -0,0 +1,26 @@ +--- +title: "Security Fixes for series 3.6, 3.7 and 3.8" +date: 2018-09-19 18:00:00 +0530 +author: ashmaroli +category: release +version: 3.8.4 +--- + +Hi Jekyllers, + +We have patched a **critical vulnerability** reported to GitHub a couple of weeks ago and have released a set of new gems to +bring that patch to you. The vulnerability allowed arbitrary file reads with the cunning use of the `include:` setting in the +config file. + +By simply including a symlink in the `include` array allowed the symlinked file to be read into the build when they shouldn't +actually be read in any circumstance.   +Further details regarding the patch can be viewed at the [pull request URL]({{ site.repository }}/pull/7224) + +The patch has been released as versions `3.6.3`, `3.7.4` and `3.8.4`.   +Thanks to @parkr `v3.7.4` was released a couple of weeks prior and has been bundled with `github-pages-v192`. + + +Please keep in mind that this issue affects _all previously released Jekyll versions_. If you have not had +a good reason to upgrade to `3.6`, `3.7` or `3.8` yet, we advise that you do so at the earliest. + +As always, Happy Jekylling! :sparkles: diff --git a/_posts/2018-11-04-jekyll-3-8-5-released.markdown b/_posts/2018-11-04-jekyll-3-8-5-released.markdown new file mode 100644 index 0000000..c854051 --- /dev/null +++ b/_posts/2018-11-04-jekyll-3-8-5-released.markdown @@ -0,0 +1,16 @@ +--- +title: 'Jekyll 3.8.5 Released' +date: 2018-11-04 20:58:20 +0100 +author: oe +version: 3.8.5 +category: release +--- + +This release fixes a bug where multiple Liquid tags were not supported in +excerpts. + +Thanks to @ashmaroli for fixing this issue in [#7250]. + +Happy Jekylling! + +[#7250]: https://github.com/jekyll/jekyll/pull/7250 diff --git a/_posts/2019-03-18-jekyll-4-0-0-pre-alpha1-released.markdown b/_posts/2019-03-18-jekyll-4-0-0-pre-alpha1-released.markdown new file mode 100644 index 0000000..ffa900a --- /dev/null +++ b/_posts/2019-03-18-jekyll-4-0-0-pre-alpha1-released.markdown @@ -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 like 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/releases/tag/v4.0.0.pre.alpha1) 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! diff --git a/_sass/_docsearch.scss b/_sass/_docsearch.scss new file mode 100644 index 0000000..46d75e7 --- /dev/null +++ b/_sass/_docsearch.scss @@ -0,0 +1,579 @@ +.searchbox { + display: inline-block; + position: relative; + width: 200px; + height: 32px !important; + padding-top: 1px; + white-space: nowrap; + box-sizing: border-box; + visibility: visible !important; +} + +.searchbox .algolia-autocomplete { + display: block; + width: 100%; + height: 100%; +} + +.searchbox__wrapper { + width: 100%; + height: 100%; + z-index: 999; + position: relative; +} + +.searchbox__input { + display: inline-block; + box-sizing: border-box; + transition: box-shadow 0.4s ease, background 0.4s ease; + border: 0; + border-radius: 16px; + box-shadow: inset 0 0 0 1px #cccccc; + background: #ffffff !important; + padding: 0; + padding-right: 26px; + padding-left: 32px; + width: 100%; + height: 100%; + vertical-align: middle; + white-space: normal; + font-size: 12px; + appearance: none; +} + +.searchbox__input::-webkit-search-decoration, .searchbox__input::-webkit-search-cancel-button, .searchbox__input::-webkit-search-results-button, .searchbox__input::-webkit-search-results-decoration { + display: none; +} + +.searchbox__input:hover { + box-shadow: inset 0 0 0 1px #b3b3b3; +} + +.searchbox__input:focus, .searchbox__input:active { + outline: 0; + box-shadow: inset 0 0 0 1px #aaaaaa; + background: #ffffff; +} + +.searchbox__input::placeholder { + color: #aaaaaa; +} + +.searchbox__submit { + position: absolute; + top: 0; + margin: 0; + border: 0; + border-radius: 16px 0 0 16px; + background-color: rgba(69, 142, 225, 0); + padding: 0; + width: 32px; + height: 100%; + vertical-align: middle; + text-align: center; + font-size: inherit; + user-select: none; + right: inherit; + left: 0; +} + +.searchbox__submit::before { + display: inline-block; + margin-right: -4px; + height: 100%; + vertical-align: middle; + content: ''; +} + +.searchbox__submit:hover, .searchbox__submit:active { + cursor: pointer; +} + +.searchbox__submit:focus { + outline: 0; +} + +.searchbox__submit svg { + width: 14px; + height: 14px; + vertical-align: middle; + fill: #6d7e96; +} + +.searchbox__reset { + display: block; + position: absolute; + top: 8px; + right: 8px; + margin: 0; + border: 0; + background: none; + cursor: pointer; + padding: 0; + font-size: inherit; + user-select: none; + fill: rgba(0, 0, 0, 0.5); +} + +.searchbox__reset.hide { + display: none; +} + +.searchbox__reset:focus { + outline: 0; +} + +.searchbox__reset svg { + display: block; + margin: 4px; + width: 8px; + height: 8px; +} + +.searchbox__input:valid ~ .searchbox__reset { + display: block; + animation-name: sbx-reset-in; + animation-duration: 0.15s; +} + +@keyframes sbx-reset-in { + 0% { + transform: translate3d(-20%, 0, 0); + opacity: 0; + } + 100% { + transform: none; + opacity: 1; + } +} + +.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu { + right: 0 !important; + left: inherit !important; +} + +.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before { + right: 48px; +} + +.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu { + left: 0 !important; + right: inherit !important; +} + +.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before { + left: 48px; +} + +.algolia-autocomplete .ds-dropdown-menu { + position: relative; + top: -6px; + border-radius: 4px; + margin: 6px 0 0; + padding: 0; + text-align: left; + height: auto; + position: relative; + background: transparent; + border: none; + z-index: 999; + max-width: 600px; + min-width: 500px; + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1); +} + +.algolia-autocomplete .ds-dropdown-menu:before { + display: block; + position: absolute; + content: ''; + width: 14px; + height: 14px; + background: #fff; + z-index: 1000; + top: -7px; + border-top: 1px solid #d9d9d9; + border-right: 1px solid #d9d9d9; + transform: rotate(-45deg); + border-radius: 2px; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { + position: relative; + z-index: 1000; + margin-top: 8px; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover { + text-decoration: none; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestion { + cursor: pointer; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple { + background-color: rgba(69, 142, 225, 0.05); +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content { + background-color: rgba(69, 142, 225, 0.05); +} + +.algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] { + position: relative; + border: solid 1px #d9d9d9; + background: #fff; + border-radius: 4px; + overflow: auto; + padding: 0 8px 8px; +} + +.algolia-autocomplete .ds-dropdown-menu * { + box-sizing: border-box; +} + +.algolia-autocomplete .algolia-docsearch-suggestion { + display: block; + position: relative; + padding: 0 8px; + background: #fff; + color: #02060c; + overflow: hidden; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + color: #174d8c; + background: rgba(143, 187, 237, 0.1); + padding: 0.1em 0.05em; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 +.algolia-docsearch-suggestion--highlight, +.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 +.algolia-docsearch-suggestion--highlight { + padding: 0 0 1px; + background: inherit; + box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8); + color: inherit; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + padding: 0 0 1px; + background: inherit; + box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8); + color: inherit; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content { + display: block; + float: right; + width: 70%; + position: relative; + padding: 5.33333px 0 5.33333px 10.66667px; + cursor: pointer; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content:before { + content: ''; + position: absolute; + display: block; + top: 0; + height: 100%; + width: 1px; + background: #ddd; + left: -1px; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header { + position: relative; + border-bottom: 1px solid #ddd; + display: none; + margin-top: 8px; + padding: 4px 0; + font-size: 1em; + color: #33363d; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { + width: 100%; + float: left; + padding: 8px 0 0 0; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + float: left; + width: 30%; + padding-left: 0; + text-align: right; + position: relative; + padding: 5.33333px 10.66667px; + color: #a4a7ae; + font-size: 0.9em; + word-wrap: break-word; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before { + content: ''; + position: absolute; + display: block; + top: 0; + height: 100%; + width: 1px; + background: #ddd; + right: 0; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline { + display: none; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--title { + margin-bottom: 4px; + color: #02060c; + font-size: 0.9em; + font-weight: bold; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text { + display: block; + line-height: 1.2em; + font-size: 0.85em; + color: #63676d; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--no-results { + width: 100%; + padding: 8px 0; + text-align: center; + font-size: 1.2em; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before { + display: none; +} + +.algolia-autocomplete .algolia-docsearch-suggestion code { + padding: 1px 5px; + font-size: 90%; + border: none; + color: #222222; + background-color: #ebebeb; + border-radius: 3px; + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight { + background: none; +} + +.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header { + display: block; +} + +.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary { + display: block; +} + +@media all and (min-width: 768px) { + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column { + display: block; + } +} + +@media all and (max-width: 768px) { + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column { + display: inline-block; + width: auto; + text-align: left; + float: left; + padding: 0; + color: #02060c; + font-size: 0.9em; + font-weight: bold; + text-align: left; + opacity: 0.5; + } + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before { + display: none; + } + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after { + content: '|'; + } + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content { + display: inline-block; + width: auto; + text-align: left; + float: left; + padding: 0; + } + .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before { + display: none; + } +} + +.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion { + border-bottom: solid 1px #eee; + padding: 8px; + margin: 0; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content { + width: 100%; + padding: 0; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before { + display: none; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header { + margin: 0; + padding: 0; + display: block; + width: 100%; + border: none; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0 { + opacity: 0.6; + font-size: 0.85em; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1 { + opacity: 0.6; + font-size: 0.85em; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before { + background-image: url('data:image/svg+xml;utf8,'); + content: ''; + width: 10px; + height: 10px; + display: inline-block; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper { + width: 100%; + float: left; + margin: 0; + padding: 0; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content, .algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline { + display: none !important; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title { + margin: 0; + color: #458ee1; + font-size: 0.9em; + font-weight: normal; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before { + content: '#'; + font-weight: bold; + color: #458ee1; + display: inline-block; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text { + margin: 4px 0 0; + display: block; + line-height: 1.4em; + padding: 5.33333px 8px; + background: #f8f8f8; + font-size: 0.85em; + opacity: 0.8; +} + +.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + color: #3f4145; + font-weight: bold; + box-shadow: none; +} + +.algolia-autocomplete .algolia-docsearch-footer { + width: 134px; + height: 20px; + z-index: 2000; + margin-top: 10.66667px; + float: right; + font-size: 0; + line-height: 0; +} + +.algolia-autocomplete .algolia-docsearch-footer--logo { + background-image: url("data:image/svg+xml,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199c-.295 0-.596.021-.897.069a2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874c-.41.089-1.034.19-1.868.314-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525.26-.45.608-.819 1.047-1.106.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483.158.56.233 1.175.233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164-.514.089-.938.191-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423.685.286 1.274.69 1.753 1.216a5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503-.276-.127-.47-.218-.582-.271a13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729c3.518 0 6.372-2.85 6.372-6.368a6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E%0A"); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; + overflow: hidden; + text-indent: -9000px; + padding: 0 !important; + width: 100%; + height: 100%; + display: block; +} + +// Overrides + +.searchbox { + .searchbox__input { + padding: 6px 5px 5px 29px; + font-size: 0.75em; + border: none; + border-radius: 5px; + color: #555; + background-color: #333 !important; + box-shadow: 0 0 1px 0 #555; + + &::-webkit-input-placeholder { + color: #aaa; + } + &:-ms-input-placeholder { + color: #aaa; + } + &::placeholder { + color: #aaa; + } + + &:focus, &:active { + color: #eaeaea; + background-color: #252525 !important; + } + } +} + +.searchbox__submit svg { fill: #fc0 } +.searchbox__reset svg { fill: #999 } + +.algolia-autocomplete { + .ds-dropdown-menu { + font-size: 1rem; + text-shadow: none; + + .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content { + background-color: rgba(221, 221, 221, 0.5); + } + } + + .algolia-docsearch-suggestion--category-header { + background-color: #444; + color: #ddd; + padding: 0.35em; + } + + .algolia-docsearch-suggestion--subcategory-column { + color: #444; + } + + .algolia-docsearch-suggestion--highlight { + background-color: #fc0; + color: #222; + } + + .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + box-shadow: inset 0 -2px 0 0 #fc0; + } +} diff --git a/_sass/_font-awesome.scss b/_sass/_font-awesome.scss index 681011e..eccd47e 100644 --- a/_sass/_font-awesome.scss +++ b/_sass/_font-awesome.scss @@ -1,11 +1,10 @@ -/*! - * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.4.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg'); + src: url('../fonts/FontAwesome.eot?9h6hxj'); + src: url('../fonts/FontAwesome.eot?9h6hxj#iefix') format('embedded-opentype'), + url('../fonts/FontAwesome.woff?9h6hxj') format('woff'), + url('../fonts/FontAwesome.ttf?9h6hxj') format('truetype'), + url('../fonts/FontAwesome.svg?9h6hxj#FontAwesome') format('svg'); font-weight: normal; font-style: normal; } diff --git a/_sass/_fonts.scss b/_sass/_fonts.scss new file mode 100644 index 0000000..fa0648e --- /dev/null +++ b/_sass/_fonts.scss @@ -0,0 +1,87 @@ +/* lato-300 - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 300; + src: local('Lato Light'), local('Lato-Light'), + url('../fonts/lato-v14-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-300italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 300; + src: local('Lato Light Italic'), local('Lato-LightItalic'), + url('../fonts/lato-v14-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-regular - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), + url('../fonts/lato-v14-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: local('Lato Italic'), local('Lato-Italic'), + url('../fonts/lato-v14-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-700 - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: local('Lato Bold'), local('Lato-Bold'), + url('../fonts/lato-v14-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-700italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: local('Lato Bold Italic'), local('Lato-BoldItalic'), + url('../fonts/lato-v14-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-900 - latin */ +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 900; + src: local('Lato Black'), local('Lato-Black'), + url('../fonts/lato-v14-latin-900.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-900.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} + +/* lato-900italic - latin */ +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 900; + src: local('Lato Black Italic'), local('Lato-BlackItalic'), + url('../fonts/lato-v14-latin-900italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/lato-v14-latin-900italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ + font-display: swap; +} diff --git a/_sass/_gridism.scss b/_sass/_gridism.scss index 61698ef..4c4ce32 100644 --- a/_sass/_gridism.scss +++ b/_sass/_gridism.scss @@ -27,7 +27,7 @@ .grid .unit:first-child { padding-left: 20px; } .grid .unit:last-child { padding-right: 20px; } -/* Nested grids already have padding though, so let’s nuke it */ +/* Nested grids already have padding though, so let's nuke it */ .unit .unit:first-child { padding-left: 0; } .unit .unit:last-child { padding-right: 0; } .unit .grid:first-child > .unit { padding-top: 0; } @@ -89,11 +89,12 @@ becomes smaller */ .unit img { max-width: 100%; + height: auto; } /* Responsive Stuff */ @media screen and (max-width: 568px) { - /* Stack anything that isn’t full-width on smaller screens + /* Stack anything that isn't 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; diff --git a/_sass/_normalize.scss b/_sass/_normalize.scss index ba2f36c..fa4e73d 100644 --- a/_sass/_normalize.scss +++ b/_sass/_normalize.scss @@ -1 +1,447 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} \ No newline at end of file +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in + * IE on Windows Phone and in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers (opinionated). + */ + +body { + margin: 0; +} + +/** + * Add the correct display in IE 9-. + */ + +article, +aside, +footer, +header, +nav, +section { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + * 1. Add the correct display in IE. + */ + +figcaption, +figure, +main { /* 1 */ + display: block; +} + +/** + * Add the correct margin in IE 8. + */ + +figure { + margin: 1em 40px; +} + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * 1. Remove the gray background on active links in IE 10. + * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. + */ + +a { + background-color: transparent; /* 1 */ + -webkit-text-decoration-skip: objects; /* 2 */ +} + +/** + * 1. Remove the bottom border in Chrome 57- and Firefox 39-. + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Prevent the duplicate application of `bolder` by the next rule in Safari 6. + */ + +b, +strong { + font-weight: inherit; +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font style in Android 4.3-. + */ + +dfn { + font-style: italic; +} + +/** + * Add the correct background and color in IE 9-. + */ + +mark { + background-color: #ff0; + color: #000; +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +audio, +video { + display: inline-block; +} + +/** + * Add the correct display in iOS 4-7. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Remove the border on images inside links in IE 10-. + */ + +img { + border-style: none; +} + +/** + * Hide the overflow in IE. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers (opinionated). + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` + * controls in Android 4. + * 2. Correct the inability to style clickable types in iOS and Safari. + */ + +button, +html [type="button"], /* 1 */ +[type="reset"], +[type="submit"] { + -webkit-appearance: button; /* 2 */ +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * 1. Add the correct display in IE 9-. + * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Remove the default vertical scrollbar in IE. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10-. + * 2. Remove the padding in IE 10-. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding and cancel buttons in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in IE 9-. + * 1. Add the correct display in Edge, IE, and Firefox. + */ + +details, /* 1 */ +menu { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Scripting + ========================================================================== */ + +/** + * Add the correct display in IE 9-. + */ + +canvas { + display: inline-block; +} + +/** + * Add the correct display in IE. + */ + +template { + display: none; +} + +/* Hidden + ========================================================================== */ + +/** + * Add the correct display in IE 10-. + */ + +[hidden] { + display: none; +} diff --git a/_sass/_pygments.scss b/_sass/_pygments.scss index 2858bcd..d5759a0 100644 --- a/_sass/_pygments.scss +++ b/_sass/_pygments.scss @@ -1,6 +1,6 @@ .highlight { .hll { background-color: #ffffcc } - .c { color: #87ceeb} /* Comment */ + .c { color: #999; font-style: italic } /* Comment */ .err { color: #ffffff} /* Error */ .g { color: #ffffff} /* Generic */ .k { color: #f0e68c} /* Keyword */ @@ -8,16 +8,16 @@ .n { color: #ffffff} /* Name */ .o { color: #ffffff} /* Operator */ .x { color: #ffffff} /* Other */ - .p { color: #ffffff} /* Punctuation */ + .p { color: #98b9ef} /* Punctuation */ .cm { color: #87ceeb} /* Comment.Multiline */ .cp { color: #cd5c5c} /* Comment.Preproc */ .c1 { color: #87ceeb} /* Comment.Single */ .cs { color: #87ceeb} /* Comment.Special */ - .gd { color: #0000c0; font-weight: bold; background-color: #008080 } /* Generic.Deleted */ + .gd { color: #ce342c} /* Generic.Deleted */ .ge { color: #c000c0; text-decoration: underline} /* Generic.Emph */ .gr { color: #c0c0c0; font-weight: bold; background-color: #c00000 } /* Generic.Error */ .gh { color: #cd5c5c} /* Generic.Heading */ - .gi { color: #ffffff; background-color: #0000c0 } /* Generic.Inserted */ + .gi { color: #27b42c} /* Generic.Inserted */ span.go { color: #add8e6; font-weight: bold; background-color: #4d4d4d } /* Generic.Output, qualified with span to prevent applying this style to the Go language, see #1153. */ .gp { color: #ffffff} /* Generic.Prompt */ .gs { color: #ffffff} /* Generic.Strong */ @@ -45,7 +45,7 @@ .nx { color: #ffffff} /* Name.Other */ .py { color: #ffffff} /* Name.Property */ .nt { color: #f0e68c} /* Name.Tag */ - .nv { color: #98fb98} /* Name.Variable */ + .nv { color: #88d472} /* Name.Variable */ .ow { color: #ffffff} /* Operator.Word */ .w { color: #ffffff} /* Text.Whitespace */ .mf { color: #ffffff} /* Literal.Number.Float */ @@ -69,10 +69,6 @@ .vi { color: #98fb98} /* Name.Variable.Instance */ .il { color: #ffffff} /* Literal.Number.Integer.Long */ .bash .nv { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; + user-select: none; } -} \ No newline at end of file +} diff --git a/_sass/_style.scss b/_sass/_style.scss index 5980d24..c12617c 100644 --- a/_sass/_style.scss +++ b/_sass/_style.scss @@ -1,16 +1,19 @@ /* 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; color: #ddd; background-color: #333; - border-top: 5px solid #fc0; @include box-shadow(inset 0 3px 30px rgba(0,0,0,.3)); text-shadow: 0 1px 3px rgba(0,0,0,.5); -webkit-font-feature-settings: "kern" 1; @@ -18,6 +21,7 @@ body { -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; + margin: 0; } .clear { @@ -45,32 +49,53 @@ footer { /* Header */ header { + padding: 15px; + background: darken(#333, 3%); h1, nav { display: inline-block; } + .flexbox { + display: flex; + height: 50px; + + & > * { margin: auto } + } + + .logo { + display: block; + img { margin-top: -7px } + } + + .search .svg-icons { display: none } } -nav { +nav, .meta { ul { padding: 0; margin: 0; + white-space: nowrap; + display: inline-block; } li { display: inline-block; } } -.main-nav { - margin-top: 52px; +.meta ul { + margin-left: 10px; + + li { vertical-align: middle; } +} + +.main-nav, .meta { li { - margin-right: 10px; a { @include border-radius(5px); font-weight: 900; - font-size: 14px; + font-size: 0.75em; padding: 0.5em 1em; text-shadow: none; text-transform: uppercase; @@ -94,8 +119,8 @@ nav { } } } - .mobile-nav { + padding: 0 5px; ul { overflow: hidden; @@ -110,9 +135,9 @@ nav { color: #fc0; text-align: center; text-transform: uppercase; - font-size: 14px; + font-size: 0.625em; font-weight: 900; - padding: 5px; + padding: 10px 5px; @include border-radius(5px); } @@ -152,17 +177,27 @@ h6:hover .header-link { opacity: 1; } -@media (max-width: 768px) { - .main-nav ul { - text-align: right; +@media (max-width: 580px) { + header { + .flexbox { height: auto } + .logo img { margin-top: 0 } } } +@media (max-width: 699px) { + .searchbox { display: none } +} +@media (max-width: 768px) { + .main-nav ul { text-align: right } +} @media (max-width: 830px) { .main-nav { .show-on-mobiles { display: inline; } .hide-on-mobiles { display: none; } } } +@media (max-width: 890px) { + .meta { display: none; } +} /* Footer */ @@ -189,8 +224,7 @@ footer { img { display: inline-block; - position: relative; - top: 8px; + vertical-align: middle; margin-left: 5px; opacity: .8; padding: 1px; @@ -454,6 +488,9 @@ aside { top: 0; left: -30px; } + &.current a { + color: #f90; + } } } @@ -529,16 +566,30 @@ aside { } .improve { - padding-top: 25px; - font-size: 16px; + padding-top: 4px; //25px; + font-size: 14px; //16px; a { color: #999; } } .docs-nav-mobile select { - color: #000; + padding: 5px; width: 100%; + font-size: 0.85em; + color: #000; + background: #ddd; + border-color: transparent; + @include border-radius(5px); + + &:focus { + outline: none; + } + + option { + font-size: 0.9em; + padding: 3px; + } } /* News */ @@ -643,16 +694,29 @@ p > pre, p > code, p > nobr > code, li > code, +li> pre, h5 > code, .note > code { background-color: #2b2b2b; color: #fff; + max-width: 100%; + overflow-x: auto; + vertical-align: middle; @include border-radius(5px); @include box-shadow(inset 0 1px 10px rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.1), 0 -1px 0 rgba(0,0,0,.5)); } +.note .highlight { + width: 94%; + pre code { + font-size: 0.9em; + background-color: transparent; + box-shadow: none; + } +} + .note code { background-color: #333; background-color: rgba(0,0,0,0.2); @@ -661,13 +725,24 @@ h5 > code, font-size: 0.8em; } +.code-block { + margin: 10px 0; + code { background: none; } +} + .highlight { margin: 1em 0; - padding: 10px 0; width: 100%; overflow: auto; } +pre.highlight { padding: 10px 0.5em; } + +.highlighter-rouge .highlight { + @extend .highlight; + margin: 0; +} + /* HTML Elements */ h1, h2, h3, h4, h5, h6 { margin: 0; } @@ -788,7 +863,12 @@ tbody td { background-image: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%,rgba(255,255,255,0) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1affffff', endColorstr='#00ffffff',GradientType=0 ); - p { + ul { + padding-left: 1em; + } + + p, + ul { font-size: 16px; code { font-size: 14px; } @@ -958,6 +1038,30 @@ code.output { text-shadow: 0 1px 0 rgba(255,255,255,.25); } +/* Version badge */ + +.version-badge { + margin-left: .25em; + padding: 0.2em; + font-size: .75em; + font-weight: 400; + background-color: #fc0; + color: #222; + text-shadow: none; + vertical-align: middle; + border-radius: 3.75px; +} + +.note { + .version-badge { + font-size: 0.9rem; + padding: 0.1em 0.2em; + background-color: rgba(0,0,0,0.2); + color: #fff; + box-shadow: inset 0 1px 10px rgba(0,0,0,0.3),0 1px 0 rgba(255,255,255,0.1),0 -1px 0 rgba(0,0,0,0.5); + } +} + /* Responsive tables */ @media (max-width: 768px) { @@ -982,6 +1086,40 @@ code.output { } } +.videoWrapper { + position: relative; + padding-bottom: 52.4%; + padding-top: 25px; + height: 0; +} + +.videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.imageWrapper { + width: 100%; + height: 0; + padding-bottom: 62.623762376237624%; /* You define this doing height / width * 100% */ + position: relative; + background: #717171; + display: block; + + img { + width: 100%; + position: absolute; + opacity: 0; + } + img.b-loaded { + opacity: 1; + transition: opacity .5s; + } +} + /* Helper class taken from Bootstrap. Hides an element to all devices except screen readers. @@ -996,3 +1134,98 @@ code.output { clip: rect(0, 0, 0, 0); border: 0; } + +.result { + padding: 12px; +} + +.image-description { + margin: -20px 0 20px; + padding: 10px 15px; + font-size: 0.81em; + text-align: justify; + background: #5c5c5c; + + pre, code { + font-size: 0.75em; + background: #454545; + } +} + +.language-sh { + position: relative; + &:before { + display: table; + padding: 8px; + width: 100%; + padding: 5px 0; + font: 400 16px/24px 'Helvetica Neue', Helvetica, Arial, sans-serif; + color: #444; + text-shadow: 0 1px 0 rgba(255,255,255,.5); + background-color: #f7f7f7; + background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Y3ZjdmNyIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjclIiBzdG9wLWNvbG9yPSIjY2ZjZmNmIiBzdG9wLW9wYWNpdHk9IjEiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgPC9saW5lYXJHcmFkaWVudD4KICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBmaWxsPSJ1cmwoI2dyYWQtdWNnZy1nZW5lcmF0ZWQpIiAvPgo8L3N2Zz4=); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f7f7f7), color-stop(7%, #cfcfcf), to(#aaaaaa)); + background-image: -webkit-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: -moz-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: -o-linear-gradient(top, #f7f7f7 0%, #cfcfcf 7%, #aaaaaa 100%); + background-image: linear-gradient(top, #f7f7f7 0%,#cfcfcf 7%,#aaaaaa 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f7f7f7', endColorstr='#aaaaaa',GradientType=0 ); + border-bottom: 1px solid #111; + text-align: center; + content: "terminal"; + @include border-radius(5px 5px 0 0); + @include box-shadow(0 3px 10px rgba(0,0,0,.5)); + } + .highlight { + @include border-radius(0 0 5px 5px); + } + pre.highlight { + background: #1c1c1c; + } +} + +.showcase { + display: flex; + list-style: none; + padding: 0; + margin: 0; + flex-wrap: wrap; + justify-content: space-between; + + li { + flex: 1 1 300px; + box-sizing: border-box; + margin: 10px; + figure { + margin: 0; + } + figcaption { + text-align: center; + } + &.spacer { + height: 0; + margin: 0; + } + } +} + +.step-nav { + background: #2b2b2b; + border-radius: 5px; + color: #fc0; + padding: 8px 45px; + + li { + margin: 0; + padding: 0; + + &.current, &.current a { + color: #f90; + font-weight: bold; + } + } +} + +ol div.highlighter-rouge { + margin: 8px 0 10px 0; +} diff --git a/_tutorials/cache_api.md b/_tutorials/cache_api.md new file mode 100644 index 0000000..2690dc1 --- /dev/null +++ b/_tutorials/cache_api.md @@ -0,0 +1,87 @@ +--- +layout: tutorials +permalink: /tutorials/cache-api/ +title: Cache API +--- + +Jekyll includes a caching API, which is used both internally as well as exposed +for plugins, which can be used to cache the output of deterministic functions to +speed up site generation. This cache will be persistent across builds, but +cleared when Jekyll detects any changes to `_config.yml`. + +## Jekyll::Cache.new(name) → new_cache + +If there has already been a cache created with `name`, this will return a +reference to that existing Cache. Otherwise, create a new Cache called `name`. + +If this Cache will be used by a Gem-packaged plugin, `name` should either be the +name of the Gem, or prefixed with the name of the Gem followed by `::` (if a +plugin expects to use multiple Caches). If this Cache will be used internally by +Jekyll, `name` should be the name of the class that is using the Cache (ie: +`"Jekyll::Converters::Markdown"`). + +Cached objects are shared between all Caches created with the same `name`, but +are _not_ shared between Caches with different names. There can be an object +stored with key `1` in `Jekyll::Cache.new("a")` and an object stored with key +`1` in `Jekyll::Cache.new("b")` and these will not point to the same cached +object. This way, you do not need to ensure that keys are globally unique. + +## getset(key) {block} + +This is the most common way to utilize the Cache. + +`block` is a bit of code that takes a lot of time to compute, but always +generates the same output given a particular input (like converting Markdown to +HTML). `key` is a `String` (or an object with `to_s`) that uniquely identifies +the input to the function. + +If `key` already exists in the Cache, it will be returned and `block` will never +be executed. If `key` does not exist in the Cache, `block` will be executed and +the result will be added to the Cache and returned. + +```ruby +def cache + @@cache ||= Jekyll::Cache.new("ConvertMarkdown") +end + +def convert_markdown_to_html(markdown) + cache.getset(markdown) do + expensive_conversion_method(markdown) + end +end +``` + +In the above example, `expensive_conversion_method` will only be called once for +any given `markdown` input. If `convert_markdown_to_html` is called a second +time with the same input, the cached output will be returned. + +Because posts will frequently remain unchanged from one build to the next, this +is an effective way to avoid performing the same computations each time the site +is built. + +## clear + +This will clear all cached objects from a particular Cache. The Cache will be +empty, both in memory and on disk. + + +### The following methods will probably only be used in special circumstances + +## cache[key] → value + +Fetches `key` from Cache and returns its `value`. Raises if `key` does not exist +in Cache. + +## cache[key] = value + +Adds `value` to Cache under `key`. +Returns nothing. + +## key?(key) → true or false + +Returns `true` if `key` already exists in Cache. False otherwise. + +## delete(key) + +Removes `key` from Cache. +Returns nothing. diff --git a/_tutorials/convert-existing-site-to-jekyll.md b/_tutorials/convert-existing-site-to-jekyll.md new file mode 100644 index 0000000..a2c877c --- /dev/null +++ b/_tutorials/convert-existing-site-to-jekyll.md @@ -0,0 +1,762 @@ +--- +layout: tutorials +permalink: /tutorials/convert-site-to-jekyll/ +title: HTMLサイトをJekyllに変換 +--- + + +Jekyllサイトのテーマをお探しでしたら、既存のJekyllテーマにこだわる必要はありません。様々な静的HTMLファイルをJekyll Webサイトに変換するのは簡単です。 + + + +色々な意味で、現在の静的サイトは*既に*Jekyll Webサイトです。Jekyllを使うと、ファイルを処理するときに、サイトの一部(テンプレートへのページの挿入、ナビゲーション用のリストのレンダリング、フィードとサイトマップの生成など)を自動化できます。 + + + +HTMLサイトにJekyllテンプレートを適用する方法を理解すると、Jekyllテーマの様々なオプションであなたの世界が開けるでしょう。[オンラインで*Jekyll themes*を探す](https://duckduckgo.com/?q=Jekyll+themes){:target="_blank"}代わりに、サイトのための多種多様なHTMLテンプレートから選ぶことができます。HTMLテンプレートを必要に応じて素早くJekyll化し、Jekyllの出力用に構築しましょう。 + + + +Webサイトは洗練された機能とコントロールを持つことができますが、このチュートリアルでは単純化して説明します。 + + + +## Jekyll Webサイトとは + + +まずは、基礎から始めましょう。Jekyllサイトを基本レベルまで削除すると、何が起こっているのか分かりやすくなります。Jekyll gemをまだインストールしていないなら、[インストールしましょう]({{ "/docs/installation/" | relative_url }})。 + + + +3つのファイルからなる*基本のJekyllサイト*からスタートします。 + + + +``` +├── _config.yml +├── _layouts +│   └── default.html +└── index.md +``` + +`my_jekyll_site`かあなたの好きなフォルダにこれらの3つのファイルを手動で作成します。`default.html`は`_layouts`フォルダに入れます。 + + + +```sh +$ touch _config.yml index.md default.html +$ mkdir _layouts && mv default.html _layouts +``` + +好きなエディタを起動し、`default.html`と`index.md`、`_config.yml`ファイルに以下のような基本の内容を書き込みます。 + + + +**_config.yml** + +```yaml +name: My Jekyll Website +``` + +**_layouts/default.html** + +```html + + + + {% raw %}{{ content }}{% endraw %} + + +``` + +**index.md** + +```yaml +--- +title: My page +layout: default +--- + +# {% raw %}{{ page.title }}{% endraw %} + +Content is written in [Markdown](https://learnxinyminutes.com/docs/markdown/). Plain text format allows you to focus on your **content**. + + +``` + +`cd`で`my_jekyll_site`に移動し、serveでサイトをサーバーに構築します。 + + + +``` +cd my_jekyll_site +jekyll serve +``` + +Gemfileがあるのなら、代わりに`bundle exec jekyll serve`と入力して[Bundlerを使用]({{ "/docs/ruby-101/#bundler" | relative_url }})してください。 +{: .note .info} + + + +サイトをサーブしたら、`http://127.0.0.1:4000/`(`http://localhost:4000/`と同じ)でプレビューを見ることができます。サイトのファイルはデフォルトでは`_site`に構築されます。 + + + +これは最も基本的な機能レベルのJekyllのサイトです。以下が起こっていることです。 + + + + * `_config.yml`ファイルは、Jekyllがサイトを変換するときに使用する設定が書かれています。空の設定ファイルなら、Jekyllサイト構築時にデフォルトの値が使用されます。例えば、[Markdown](https://learnxinyminutes.com/docs/markdown/){:target="_blank"}をHTMLに変換するのに、Jekyllはその他の指定が無ければ、自動で[kramdown Markdown filter](https://rubygems.org/gems/kramdown/){:target="_blank"}を使用します。 + * Jekyllは[front matterタグ]({{ "/docs/front-matter/" | relative_url }})(`index.md`のような2行の`---`のセット)のあるファイルを探し、そのファイルで作業を行います(サイト変数の処理、[Liquid](https://shopify.github.io/liquid/){:target="_blank"}のレンダリング、MarkdownからHTMLへの変換)。 + * Jekyllは全てのページとポストをfront matterで指定されたレイアウト(`default`)の`{% raw %}{{ content }}{% endraw %}`変数に押し出します。 + * 処理の終わったファイルを`_site`ディレクトリに`.html`で書き出します。 + + + +Jekyllのファイル処理については[解釈の順番]({{ "/tutorials/orderofinterpretation/" | relative_url }})にも情報があります。 + + + +Jekyllサイトの働きの基本的な理解で、多くのHTMLテーマをJekyll用に変換することができます。以降のセクションでは、その手順を順を追って説明します。 + + + +## 1. デフォルトレイアウトのテンプレートを作る + + +HTMLテーマを見つけ、`default`レイアウトとして保存します。既存のサイトを変換・複製している場合は、ページを右クリックしてソースコードを表示できます。 + + + +例えば、同じブランドのドキュメントサイトを作るために、会社のサイトを複製している場合。HTMLで構築した個人サイトをJekyllで作ろうとしている場合。その様なときは、HTMLソースコードを取得しましょう。 + + + +{: .note .info} +サイトに関係なく、ライセンスを確認し、コードをコピーして使用する権利があることを確認してください。 + + + +ソースコードを`default.html`にコピー&ペーストします。`default.html`ファイルは`_layouts`フォルダに入れます。これがページやポストのデフォルトレイアウトになります — Jekyllがサイトを構築するときに各ページやポストにこのレイアウトを使用します。 + + + +テンプレートを探す際には、HTML出力されたテンプレートが必要です。テンプレートにPHPタグやその他ダイナミックスクリプトがある場合は、それらをHTMLや[Liquid](https://shopify.github.io/liquid/){:target="_blank"}に変換する必要があります。Liquidは動的コンテンツを取得するための[Jekyllテンプレートシステム]({{ "/docs/liquid/" | relative_url }})です。 + + + +`default.html`をローカルでブラウザで開き、オンライン時とサイトの見た目が変わらないかを確認します。おそらく、CSS, JSやイメージへのパスを調整する必要があるでしょう。 + + + +例えば、相対パスで指定されていれば、同じアセットをJekyllサイトにダウンロードするか、クラウドのアセットに絶対パスで指定(`src =" // `のような構文がローカルブラウザで動作するためには`src = "http://`のように接頭辞が必要です)する必要があります。 + + + +Jekyllはパスの前にサイトURLを追加するためのいくつかの[フィルタ]({{ "/docs/liquid/filters" | relative_url }})を提供しています。例えば、スタイルシートを次のようにします。 + + + +```liquid +{% raw %}{{ "/assets/style.css" | relative_url }}{% endraw %} +``` + +`relative_url`フィルタは設定ファイルから[`baseurl`](https://byparker.com/blog/2014/clearing-up-confusion-around-baseurl/){:target="_blank"}の値(例えば`blog`)を取得します。これは、ドメインのrootよりサブパスでホストしているとき(例えば`http://mysite.com/blog/`)に便利です。 + + + +`absolute_url`フィルタを使用することもできます。これは、`url`*と*`baseurl`の値を取得します。 + + + +```liquid +{% raw %}{{ "/assets/style.css" | absolute_url }}{% endraw %} +``` + +`url`と`baseurl`は次のように設定ファイルで定義することができます。 + + + +``` +url: http://mysite.com +baseurl: /blog +``` + +出力される結果は、`http://mysite.com/blog/assets/style.css`となります。 + + + +スラッシュ(`/`)から始まるページの`url`プロパティは、`url`や`baseurl`の最後のスラッシュが省略されるためです。 + + + +必ずしもリンクパスにフィルタを追加する必要はありません。サイト全体に相対リンクを使用することもできます。ただし、アセットへのパスをコーディングすることにした場合は、それらが正しくレンダリングされるようにします。 + + + +ローカルの`default.html`はブラウザできちんと表示されていますか? 全ての画像、スタイルや他の要素は表示されていますか? できていれば、OKです。そのまま進めていきましょう。このテンプレートをレイアウトとして全てのページやポストに使うことも、必要に応じて多くのテンプレートを作ることもできます。 + + + +次のセクションでは、レイアウトのコンテンツ部を空白にして、Jekyllページに動的に取り込まれるプレースホルダタグに置き換えます。 + + + +## 2. レイアウトのコンテンツ部を識別する + + +`default.html`でページコンテンツの開始部(通常は`h1`や`h2`タグ)を見つけます。表示されるタイトルを`{% raw %}{{ page.title }}{% endraw %}`で置き換えます。 + + + +コンテンツ部を取り除き(ナビゲーションメニューやサイドバーフッターは残します)、`{% raw %}{{ content }}{% endraw %}`に変えます。 + + + +ブラウザで再度レイアウトをチェックし、重要な`div`や他の要素を誤って削除していないか確認します。タイトルとページコンテンツだけが変更されてる状態です。この段階では内容はブランクで、プレースホルダタグがそのまま表示されています。 + + + +## 3. front matterタグのある2つのファイルを作成する。 + + +rootディレクトリに2つのファイル(`index.md`と`about.md`)をさくせいします。 + + + +`index.md`ファイルには以下のように、`title`と`layout`プロパティのあるfront matterタグを追加します。 + + + +```yaml +--- +title: Home +layout: default +--- + +Some page content here... +``` + +テスト用に同様のfront matterタグのある`about.md`も作成します。 + + + +{: .note .info} +ページでレイアウトを指定しない場合、Jekyllは単にスタイルの内ベーシックなHTMLページとしてレンダリングします。 + + + +## 4. 設定ファイルを追加する + + +rootディレクトリに`_config.yml`を追加します。`_config.yml`では、オプションで好きなMarkdownフィルタを指定することができます。デフォルトは[kramdown](https://kramdown.gettalong.org/){:target="_blank"}です(指定する必要はありません)。他のフィルタが指定されていなければ、設定ファイルは自動でデフォルトの設定を使用します。 + + + +``` +markdown: kramdown +``` + +[GitHub Flavored Markdown (GFM)](https://github.github.com/gfm/){:target="_blank"}の様に振る舞うようkramdownの[オプション](https://kramdown.gettalong.org/converter/html.html){:target="_blank"}を指定することもできます。 + + + +``` +kramdown: + input: GFM + auto_ids: true + hard_wrap: false + syntax_highlighter: rouge +``` + +## 5. ページのテスト + + +`jekyll serve`を実行し`index.html`と`about.html`ページを切り替えます。どちらのページもdefaultレーアウトが読み込まれているはずです。 + + + +コンテンツを別々のファイルに出力し、同じレイアウトを定義することができました。 + + + +必要なだけページのレイアウトを定義できます。特定のページで使用したいレイアウトを指定するだけです。例えば: + + + +``` +--- +title: Sample page +layout: homepage +--- +``` + +このページは、`_layouts`フォルダの`homepage.html`テンプレートを使用します。 + + + +front matter変数でレイアウトを指定する必要がないように、ページやポスト、[コレクション]({{ "/docs/collections/" | relative_url }})の[デフォルトfront matterタグ]({{ "/docs/configuration/front-matter-defaults/" | relative_url }})を、`_config.yml`ファイルでセットすることもできます。デフォルトの設定に関しては、このチュートリアルの範囲外ですので、作業に戻ります。 + + + +## 6. サイト変数の設定 + + +ページタイトルを`{% raw %}{{ page.title }}{% endraw %}`タグを使用することで既に指定しました。しかし、使用する`title`タグは他にもあります。ブラウザのタブやウィンドウに表示する[`title`](https://moz.com/learn/seo/title-tag){:target="_blank"}タグもあります。通常はページのタイトルとサイトのタイトルをここに表示します。 + + + +`default.html`レイアウトの`head`タグの間にある`title`タグを探します。 + + + +``` +ACME Website +``` + +以下のサイト変数を挿入します。 + + + +``` +{% raw %}{{ page.title }} | {{ site.title }}{% endraw %} +``` + +`_config.yml`を開き、`title`プロパティにサイト名を追加します。 + + + +``` +title: ACME Website +``` + +`_config.yml`ファイルに追加したプロパティには、`site`ネームスペースでアクセスできます。同様にページのfront matterのプロパティには`page`ネームスペースでアクセスできます。変数にアクセスするには、`site`や`page`の後にドットをつけます。 + + + +Ctrl + CでJekyllサーバーを停止し、リスタートします。`title`タグがきちんと表示されることを確認します。 + + + +{: .note .info} +設定ファイルを修正する度に、変更を反映させるにはJekyllを再起動します。他のファイルを修正したときは、Jekyllが自動で変更をピックアップし再構築します。 + + + +サイトに使用する他の変数があれば、同様の操作を繰り返します。 + + + +## 7. ポストとページを表示する + + +ホームページにポストのリストを表示します。まずは、いくつかのポストを作成します。 + + + +`_posts`フォルダに基本の`YYYY-MM-DD-title.md`ポストフォーマットでいくつかのポストを追加します。 + + + + * `2017-01-02-my-first-post.md` + * `2017-01-15-my-second-post.md` + * `2017-02-08-my-third-post.md` + +各ポストには、基本の内容を追加します。 + + + +``` +--- +title: My First Post +layout: default +--- + +Some sample content... +``` + +では、ポストを並べるレイアウトを作成しましょう。`_layouts`に以下の内容の`home.html`を作成します。 + + + +``` +--- +layout: default +--- + +{% raw %}{{ content }} +
    +{% for post in site.posts %} +
  • {{ post.title}} + +
  • +{% endfor %} +
{% endraw %} +``` + +rootディレクトリに`blog.md`を、`home`レイアウトを指定して作成します。 + + + +``` +--- +title: Blog +layout: home +--- +``` + +今回の場合、`blog.md`のコンテンツは`home`レイアウトの`{% raw %}{{ content }}{% endraw %}`タグに入ります。そして、その`home`レイアウトが`default`レイアウトの`{% raw %}{{ content }}{% endraw %}`タグに入ります。 + + + + +### レイアウトの働き方 + + +レイアウトに他のレイアウトが指定されていたら、最初のレイアウトのコンテンツが2つ目のレイアウトの`{% raw %}{{ content }}{% endraw %}`に取り込まれることを意味します。アナログで言えば、ロシアのマトリョーシカのように一方をその中に取り込みます。各レイアウトは指定したレイアウトに入ります。 + + + +以下の図はJekyllでレイアウトがどのように働くかを示しています。 + + + +Concept of Jekyll layouts + +{: .image-description} +この例では、`document.md`で`layout: docs`が指定されており、そのコンテンツは`docs.html`の`{% raw %}{{ content }}{% endraw %}`に入ります。`docs`レイアウトが`layout: page`を指定しているので、`docs.html`のコンテンツは`page.html`の`{% raw %}{{ content }}{% endraw %}`に入ります。最後に`page`レイアウトで`layout: default`を指定しているので、`page.html`のコンテンツが`default.html`の`{% raw %}{{ content }}{% endraw %}`に入ります。 + + + +複数のレイアウトが必要なければ、`default`だけを使用すればいいです。サイトのデザインの選択権はあなたにあります。通常はポスト用とページ用のレイアウトを用意しますが、`default`テンプレート(通常はサイトの最初と最後を定義します)を継承するようにします。 + + + +ブラウザで`blog.html`に行き、ポストのリストを確認します。 +ここで説明した方法を使用する必要はありません。これらの投稿を表示するために `index.md`のようなページに`for`ループを単に追加することもできます。ただし、他の機能に対してより複雑なロジックがある場合があるので、頻繁にコンテンツを入力するページ領域とは別のテンプレートにロジックを格納すると便利です。 + + + +{: .note .info} +最低限、レイアウトにはレンダリング時に*content*を受け取る`{% raw %}{{ content }}{% endraw %}`が必要です。 + + + +### Forループ + + +ここで少し立ち止まって、`for`ループのロジックをもう少し詳しく見てみましょう。[LiquidのForループ](https://shopify.github.io/liquid/tags/iteration/){:target="_blank"}は最も一般的なLiquidタグの一つです。*Forループ*はJekyllサイトのコンテンツを反復して、その結果を構築することができます。`for`ループは、ループ中の場所に基づく(繰り返しの最初や最後といった)[利用可能なプロパティ](https://help.shopify.com/themes/liquid/objects/for-loops){:target="_blank"}があります。 + + + +ポストを取得するのは、`for`ループでできることのほんの一部に過ぎません。例えば、特定のカテゴリのポストを表示したい場合は、`categories`プロパティをポストのfront matterに追加し、そのカテゴリで見つけます。`limit`プロパティを使用して、結果の数を制限することもできます。以下がその例です。 + + + +```liquid +{% raw %}
    +{% for post in site.categories.podcasts limit:3 %} +
  • {{ post.title}} + +
  • +{% endfor %} +
{% endraw %} +``` + +このループは、front matterにカテゴリが`podcasts`という指定がある、最近の3ポストを取得します。 + + + +## 8. ナビゲーションの設定 + + +ポストを設定しましたので、ページナビゲーションの設定を行いましょう。多くのWebサイトはサイドバーやヘッダーエリアにナビゲーションがあります。 + + + +このチュートリアルでは、生成したページのシンプルなリストを取得します。手で数えられるようなページだけなら、`site.pages`オブジェクトに`for`ループを使用して、front matterで並び順を指定しリストを作ることができます。 + + + +ページのリストが表示されているコード部分を識別します。通常これはさまざまな子要素`
  • `を持つ`
      `要素です。そのコードを次のコードに置き換えます。 + + + +```html +{% raw %}
        + {% assign mypages = site.pages | sort: "order" %} + {% for page in mypages %} +
      • {{ page.title }}
      • + {% endfor %} +
      {% endraw %} +``` + +この例では、次のように各ページのfront matterに`title`と`order`が指定されていると仮定しています。 + + + +``` +--- +title: My page +order: 2 +--- +``` + +`order`プロパティはページのソートで取得され、リストの最初に`1`が表示されます + + + +別のデータファイルで管理しているページのリストを繰り返すこともできます。これは、たくさんのページがある場合や、保存したいページに関する他のプロパティがある場合に適しています。 + + + +この方法でリンクを管理するために、jekyllプロジェクトに`_data`フォルダを作成します。このフォルダに、次の内容の`navigation.yml`を作成します。 + + + +```yaml +- title: Sample page 1 + url: /page-1-permalink/ + +- title: Sample page 2 + url: /page-2-permalink/ + +- title: Sample page 3 + url: /page-3-permalink/ +``` + +{: .note .info} +YAMLをこれまで書いたことが無くても、すぐに慣れることができるでしょう。[YAMLでできること](https://learnxinyminutes.com/docs/yaml/){:target="_blank"}を見てください。 + + + +必要に応じて、このデータファイルに各項目の追加のプロパティを保存できます。リスト項目は、表示したい順序に並べます。 + + + +データファイルからページのリストを表示するには、次のようなコードを使用します。 + + + +```html +{% raw %}{% endraw %} +``` + +ドキュメンテーションを構築するときなど、ナビゲーションに対してより高度な要件がある場合は、[ナビゲーションの詳細なチュートリアル]({{ "/tutorials/navigation/" | relative_url }})をご覧ください。 + + + +## 9. サイトをインクルードで単純化する + + +`default.html`ファイルが大規模で作業が困難だとします。HTMLコードを*include*ファイルとして配置することで、レイアウトを分割することができます。 + + + +rootディレクトリに`_includes`フォルダを追加します。そのフォルダに`sidebar.html`を追加します。 + + + +`default.html`レイアウトからサイドバーを取り除き、`sidebar.html`に挿入します。 + + + +`default.html`のサイドバーがあったところには、"include"を配置します。 + + + +```liquid +{% raw %}{% include sidebar.html %}{% endraw %} +``` + +ヘッダーやフッターなどテーマの他の要素も同様にして分割することができます。同じ要素は他のレイアウトファイルに適用することもできます。この方法なら、コードを複製せずに済みます。 + + + +## 10. RSS feed + +JekyllサイトにRSS feedが必要です。[こちら](http://www.w3schools.com/xml/xml_rss.asp){:target="_blank"}は基本のRSS feed構文です。RSSファイルをJekyllに作成するために、rootディレクトリに`feed.xml`を作成し、以下を追加します。 + + + +```xml +--- +layout: null +--- + +{% raw %} + + + + {{ site.title }} + {{ site.url }} + {{ site.description }} + {{ site.time | date_to_rfc822 }} + {% for post in site.posts %} + + {{ post.title }} + + {{ post.url | prepend: site.url }} + + + {{ post.content | escape | truncate: '400' }} + + {{ post.date | date_to_rfc822 }} + + {{ post.url | prepend: site.url }} + + + {% endfor %} + +{% endraw %} +``` + +`_config.yml`ファイルに`title`と`url`、`description`のプロパティを忘れないでください。 + + + +このコードは最近の20ポストを探すために`for`ループを使用しています。[Liquid filters](https://help.shopify.com/themes/liquid/filters){:target="_blank"}を使用して、ポストのコンテントから400時以降を切り捨てています。 + + + +`default.html`レイアウトのヘッダからRSSやAtom feedへの参照を探し、先ほど作成したファイルへの参照に書き換えます。 + + + +```html + +``` + +[`jekyll-feed`](https://help.github.com/articles/atom-rss-feeds-for-github-pages/){:target="_blank"}というgemを追加することで、自動でfeedを生成することもできます。このGemは、GitHub Pagesでも動きます。 + + + +## 11. sitemapを追加する + + +最後に、[site map](https://www.sitemaps.org/protocol.html){:target="_blank"}を追加します。rootディレクトリに`sitemap.xml`を作成し、次のコードを追加します。 + + + +```xml +--- +layout: null +search: exclude +--- + +{% raw %} + + + {% for page in site.pages %} + + {{page.url}} + {{site.time | date: '%Y-%m-%d' }} + daily + 0.5 + + {% endfor %} + + {% for post in site.posts %} + + {{post.url}} + {{site.time | date: '%Y-%m-%d' }} + daily + 0.5 + + {% endfor %} + +{% endraw %} +``` + +全てのページとポストをsitemapに追加するために、再び`for`ループを使用しています。 + + + +[`jekyll-sitemap`](https://help.github.com/articles/sitemaps-for-github-pages/){:target="_blank"}というgemを追加することで、自動でsitemapを生成することもできます。このGemは、GitHub Pagesでも動きます。 + + + +## 12. 外部サービスを追加する + + +(コンタクトフォームや検索、コメントなど)他のサービスが必要になったら、サードパーティーサービスを探してください。例えば、以下のサービスを使用できます。 + + + + * コメント: [Disqus](https://disqus.com/){:target="_blank"} + * ニュースレター: [Tinyletter](https://tinyletter.com/){:target="_blank"} + * コンタクトフォーム: [Wufoo](https://www.wufoo.com/){:target="_blank"} + * 検索: [Algolia Docsearch](https://community.algolia.com/docsearch/){:target="_blank"} + + + +静的サイトのサービスの詳細は、[Third Parties](https://learn.cloudcannon.com/jekyll-third-parties/){:target="_blank"}リストとCloudCannonのチュートリアルを見てください。 + + + +JekyllのページはHTML、CSS、JavaScriptで構成されており、埋め込みコードはほとんど問題なく動作します。 + + + +これらのサービスのコードを統合するとき、**Jekyllサイトのページにfront matterが無ければ、Jekyll八草のページの内容に手を加えない**ことを覚えておいてください。サイト構築時に`_site`フォルダにページが渡されるだけです。 + + + +(設定ファイルで定義した変数を有効にするなど)Jekyllのプロセスを経たい場合は、front matterタグを追加してください。ページにレイアウトを適用したくない場合は、次のように`layout: null`を指定します。 + + + +``` +--- +layout: null +--- +``` + +## 13.最後に + + +Webサイトはさらに見た目をよくしたり機能を実装することができますが、このチュートリアルでは基本部分をカバーしました。Jekyllサイトの沢山の機能を使えるようになったはずです。 + + + +[GitHub Pages](https://pages.github.com/){:target="_blank"}、[Netlify](https://www.netlify.com/){:target="_blank"}を使って、[s3_website plugin](https://github.com/laurilehmijoki/s3_website){:target="_blank"}を使用して[Amazon AWS S3](https://aws.amazon.com/s3/){:target="_blank"}、もしくはFTPでWebサーバーにファイルを転送して、あなたのサイトを公開しましょう。 + + + +アセットを含めたレイアウトをRuby `gem`にパッケージして、[Jekyllのテーマを作る]({{ "/docs/themes/" | relative_url }})こともできます。 + + + +## 追加情報 + + +こちらは、Jekyllサイトを作るための追加のチュートリアルです。 + + + + * [Convert a static site to Jekyll](http://jekyll.tips/jekyll-casts/converting-a-static-site-to-jekyll/){:target="_blank"} + * [Building a Jekyll Site – Part 1 of 3: Converting a Static Website To Jekyll](https://css-tricks.com/building-a-jekyll-site-part-1-of-3/){:target="_blank"} diff --git a/_tutorials/custom-404-page.md b/_tutorials/custom-404-page.md new file mode 100644 index 0000000..756c22e --- /dev/null +++ b/_tutorials/custom-404-page.md @@ -0,0 +1,107 @@ +--- +layout: tutorials +permalink: /tutorials/custom-404-page/ +title: カスタム404ページ +--- + + +壊れたリンクへアクセスしたときに表示されるデフォルトの**Error 404 -- File Not Found**ページを、Jekyllで簡単にカスタム404エラーページに置き換えることができます。 + + + +## GitHub Pagesの場合 + + +**`_site`ディレクトリのroot**に`404.html`がGitHub PagesとローカルWEBrick開発サーバーにより自動で提供されます。 + + + +簡単には、`404.md`か`404.html`をサイトのソースディレクトリのrootに追加し、テーマの基本レイアウトを使用するようfront matterを記載します。 + + + +エラーページ用のファイルを細部ディレクトリに入れる場合は、以下のようにfront matterに`permalink: /404.html`を記載します。これで、コンパイル後の`404.html`はサイトのrootディレクトリに存在することになり、サーバーに認識されます。 + + + +```markdown +--- +# example 404.md + +layout: default +permalink: /404.html +--- + +# 404 + +Page not found! :( +``` + +## Apache Webサーバーによるホスティングの場合 + + +Apache Webサーバーはその機能に変化を加えるために、[`.htaccess`](http://www.htaccess-guide.com/){:target="_blank"}という設定ファイルを読み込みます。 + + + +簡単には、以下の内容を`.htaccess`に追加します。 + + + +```apache +ErrorDocument 404 /404.html +``` + +`.htaccess`ファイルでは、サブディレクトリのエラーページも自由に指定できます。 + + + +```apache +ErrorDocument 404 /error_pages/404.html +``` + +パスは、サイトのドメインからの相対パスです。 + + + +Apache Errorページの設定に関する更なる情報は、[official documentation](https://httpd.apache.org/docs/current/mod/core.html#errordocument){:target="_blank"}をご覧ください。 + + + +## Nginxサーバーによるホスティングの場合 + + +Apacheサーバーの場合と同様に簡単ですが、少し異なります。 + + + +Nginxの設定ファイルは、インストールされているシステムに依存します。多くの場合は、`/etc/nginx/`か`/etc/nginx/conf/`にある`nginx.conf`です。しかし、Ubuntuの様な他のサーバーでは、サーバー関連の情報を含む`default`というNginx設定ファイルを探す必要があります。通常は`/etc/nginx/sites-available/`か`/etc/nginx/sites-enabled/`にあります。以下をNginx設定ファイル(`nginx.conf`ファイルや`default`ファイル)に追加します。 + + + +```nginx +server { + error_page 404 /404.html; + location = /404.html { + internal; + } +} +``` + +もし、`server`ブロックが既にあれば、上記の`server`ブロックに中身だけを追加してください。`location`はユーザーが直接404.htmlページを見ることを防ぎます。 + + + +Nginxエラーページに関する更なる情報は、[nginx official documentation](http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page){:target="_blank"}をご覧ください。 + + + +

      + 設定ファイルの編集は注意して進めてください。 + +

      diff --git a/_tutorials/index.md b/_tutorials/index.md new file mode 100644 index 0000000..40ce624 --- /dev/null +++ b/_tutorials/index.md @@ -0,0 +1,67 @@ +--- +layout: tutorials +title: チュートリアル +permalink: /tutorials/home/ +redirect_from: /tutorials/index.html +--- + + +[Docs]({{ "/docs/home/" | relative_url }})とは対照的に、チュートリアルではJekyllの様々なトピックやシナリオをカバーしたより詳細な説明を行います。チュートリアルには以下の内容が含まれています。 + + + +* 特定のシナリオや課題のstep-by-stepプロセス。 +* サンプルデータを利用したチュートリアル。サンプルデータの入力と結果。 +* Jekyllの長所と短所の説明。 +* Jekyllサイトの全ての機能を開発するための端から端までの解説。 +* ドキュメンテーションを横断した様々なテクニックの解説。 + + + +簡単に言うと、チュートリアルはドキュメンテーションの情報の要約ではありません。ユーザーの最初から最後のプロセスを辿るものです。 + + + +{: .info .note} +**注:**チュートリアルのセクションは新しく、まだ数は多くありません。作成を助けるために、あなたのチュートリアルを追加することもできます。 + + + +いくつかのテクニックは、サポートツールやスクリプトサービス、他のJekyllサイトのハックを通じたガイドの場合もあります。Jekyllを使った外部サービスに関することも、気軽に追加してください。ただし、チュートリアルに紹介されているサードパーティーツールを、Jekyllが推薦することはありません。 + + + +## チュートリアルへの貢献の仕方 + + +チュートリアルへの貢献を歓迎します。あなたのチュートリアルを追加するには、 + + + +1. [jekyll/jekyll project Github repo](https://github.com/jekyll/jekyll/){:target="_blank"}の右上の**Fork**ボタンをクリックして、JekyllプロジェクトをForkします。 +2. `_tutorials`コレクションにあなたのチュートリアルを追加します。 +3. 他のチュートリアルと同様のfront matterを用意してください。 +4. `_data/tutorials.yml`にあなたのチュートリアルのファイル名を追加してください。これであなたのチュートリアルをチュートリアルのサイドバーに表示します。 +5. 通常のgitのワークフローに従い、pullリクエストを送信してください。 + + + +pullリクエストが送信されると、Jekyllドキュメンテーションチームがレビューを行い、mergeするか編集の提案を行います。 + + + + diff --git a/_tutorials/navigation.md b/_tutorials/navigation.md new file mode 100644 index 0000000..86c74bd --- /dev/null +++ b/_tutorials/navigation.md @@ -0,0 +1,729 @@ +--- +layout: tutorials +permalink: /tutorials/navigation/ +title: ナビゲーション +--- + + +Jekyllサイトに多くのページがあるなら、ページのナビゲーションを作りたくなるでしょう。ナビゲーションリンクをハードコーディングする代わりに、ページのリストをプログラムで取得してサイトのナビゲーションを構築することができます。 + + + +Jekyllドキュメンテ—ションには[dataファイルとのやりとり]({{ "/docs/datafiles/" | relative_url }})についての情報がありますが、ここではより堅牢なナビゲーションの構築に挑戦します。 + + + +jekyllサイトのページを取得するには主に2つの方法があります。 + + + +* **YAMLデータソースにリストされているページの取得**。`_data`フォルダのYAML(やJSONやCSV)ファイルにページデータを保管し、YAMLプロパティをル—プさせ、その値をテーマに挿入します。 +* **ページのfront matterをループしてページを取得**。front matterを通じページを識別し、ページを返し、そのページのfront matterの値をテーマに挿入します。 + + + +以下では、基本的なナビゲーションのシナリオから始め、ページを返す異なる方法のデモンストレーションに洗練された要素の追加を例示します。どのシナリオでも、3つの要素があります。 + + + +* YAML +* Liquid +* Result + +`_data`ディレクトリのYAMLファイルは、`samplelist.yml`という名前です。 + + + +シナリオは次の通りです。 + + + +* TOC +{:toc} + +## シナリオ1:基本的なリスト + + +ページの基本的なリストを返します。 + + + +**YAML** + +```yaml +docs_list_title: ACME Documentation +docs: + +- title: Introduction + url: introduction.html + +- title: Configuration + url: configuration.html + +- title: Deployment + url: deployment.html +``` + +**Liquid** + +{% raw %} +```liquid +

      {{ site.data.samplelist.docs_list_title }}

      +
        + {% for item in site.data.samplelist.docs %} +
      • {{ item.title }}
      • + {% endfor %} +
      +``` +{% endraw %} + +**Result** +
      +

      ACME Documentation

      + +
      + +{: .note .info } +この架空のサンプルの結果では、404エラーを回避するために実際のリンク値を`#`に手動で置き換えています。 + + + +`for`ループを使用する場合、参照するためのアイテムは選ぶことができます。選択した変数(この場合は`item`)はリストの各アイテムのプロパティにアクセスするためのものになります。ドットはアイテムのプロパティを取得するのに使います(例:`item.url`)。 + + + +YAMLコンテンツには、こちらに関連する2つの主なフォーマットがあります。 + + + +* マッピング +* リスト + + + +`docs_list_title: ACME Documentation`はマッピングです。`site.data.samplelist.docs_list_title`変数でアクセスします。 + + + +`docs:`はリストです。リストの各アイテムはハイフンから始まります。マッピングとは異なり、通常はリストのプロパティに直接アクセスしません。リストの特定のアイテムにアクセスしたい場合、通常の配列表記に従って、リスト内の場所を指定します。例えば、`site.data.samplelist.docs[0]`でリストの最初のアイテムにアクセスします。しかし、これは滅多に行いません。 + + + +リストでは通常、リストのアイテムを回すために`for`ループを用い、各アイテムに操作を行います。ナビゲーションの場合、通常はHTMLテーマのナビゲーションの部分の`li`タグに各リストを挿入します。 + + + +各ハイフン(`-`)は、リストの他のアイテムであることを示します。この例では、`title`と`url`の2つのプロパティだけを持っています。各アイテムに望むだけプロパティを追加することができます。リスト内のプロパティの順序は関係ありません。 + + + +## シナリオ2:リストのソート + + +`title`でリストをソートする場合を考えます。行うには、`docs`コレクションへの参照を変数に変換する時に、Liquidの`sort`フィルタを使用します。 + + + +**Liquid** + +{% raw %} +```liquid +{% assign doclist = site.data.samplelist.docs | sort: 'title' %} +
        +{% for item in doclist %} +
      1. {{ item.title }}
      2. +{% endfor %} +
      +``` +{% endraw %} + +**Result** + + + +アルファベット順になりました。Liquidフィルタの`sort`プロパティがリストの実際のプロパティである`title`に適用されました。`title`がプロパティで無ければ、他のプロパティでソートする必要があります。 + + + +フィルタのオプションは[Liquid array filter](https://help.shopify.com/themes/liquid/filters/array-filters){:target="_blank"}を見てください。この構文を以下のようにシンプルにすることはできません。 + + + +{% raw %} +```liquid +{% for item in site.data.samplelist.docs | sort: "title" %}{% endfor %} +``` +{% endraw %} + +`site.data.samplelist.docs`を`assign`や`capture`タグで変数に変換する必要があります。 + + + +## シナリオ3:2レベルのナビゲーションリスト + + +見出しタイトルとサブアイテムの複数のセクションからなるリストが必要な場合を考えます。これを行うには、この情報を保管するために各リストアイテムにレベルを追加します。 + + + +**YAML** + +```yaml +toc: + - title: Group 1 + subfolderitems: + - page: Thing 1 + url: /thing1.html + - page: Thing 2 + url: /thing2.html + - page: Thing 3 + url: /thing3.html + - title: Group 2 + subfolderitems: + - page: Piece 1 + url: /piece1.html + - page: Piece 2 + url: /piece2.html + - page: Piece 3 + url: /piece3.html + - title: Group 3 + subfolderitems: + - page: Widget 1 + url: /widget1.html + - page: Widget 2 + url: /widget2.html + - page: Widget 3 + url: /widget3.html +``` + +**Liquid** + +{% raw %} +```liquid +{% for item in site.data.samplelist.toc %} +

      {{ item.title }}

      + + {% endfor %} +``` +{% endraw %} + +**Result** +
      +

      Group 1

      + + +

      Group 2

      + + +

      Group 3

      + +
      + +この例では、`Group 1`が最初のリストアイテムです。このリストアイテムのサブページに、そのリスト(`subfolderitems`)をプロパティとして含んでいます。 + + + +Liquidコードは`for item in site.data.samplelist.toc`でファーストレベルを、`for entry in item.subfolderitems`でセカンドレベルを見通しています。`item`はアイテムをループするための任意の名前で、`entry`も同様です。 + + + +## シナリオ4:3レベルのナビゲーションリスト + + +前のセクションを発展させ、もう1つリストにレベル(`subsubfolderitems`)を追加しましょう。フォーマットは複雑になりますが、原則は同じです。 + + + +**YAML** + +```yaml +toc2: + - title: Group 1 + subfolderitems: + - page: Thing 1 + url: /thing1.html + - page: Thing 2 + url: /thing2.html + subsubfolderitems: + - page: Subthing 1 + url: /subthing1.html + - page: Subthing 2 + url: /subthing2.html + - page: Thing 3 + url: /thing3.html + - title: Group 2 + subfolderitems: + - page: Piece 1 + url: /piece1.html + - page: Piece 2 + url: /piece2.html + - page: Piece 3 + url: /piece3.html + subsubfolderitems: + - page: Subpiece 1 + url: /subpiece1.html + - page: Subpiece2 + url: /subpiece2.html + - title: Group 3 + subfolderitems: + - page: Widget 1 + url: /widget1.html + subsubfolderitems: + - page: Subwidget 1 + url: /subwidget1.html + - page: Subwidget 2 + url: /subwidget2.html + - page: Widget 2 + url: /widget2.html + - page: Widget 3 + url: /widget3.html +``` + +**Liquid** + +{% raw %} +```liquid +
      +{% if site.data.samplelist.toc2[0] %} + {% for item in site.data.samplelist.toc2 %} +

      {{ item.title }}

      + {% if item.subfolderitems[0] %} +
        + {% for entry in item.subfolderitems %} +
      • {{ entry.page }} + {% if entry.subsubfolderitems[0] %} + + {% endif %} +
      • + {% endfor %} +
      + {% endif %} + {% endfor %} +{% endif %} +
      +``` +{% endraw %} + +**Result** + +
      +
      +

      Group 1

      + +

      Group 2

      + +

      Group 3

      + +
      +
      + +この例では、`if site.data.samplelist.toc2[0]`でYAMLレベルに本当にアイテムがあるのかを確認しています。ポジション`[0]`に何もなければ、そのレベルの処理をスキップします。 + + + +
      +
      ProTip: forループとif文を揃える
      + +

      コードをきれいに保つために、forループとif文のように、Liquidタグの始まりと終わりを揃えます。この方法で、タグがどこで始まりどこで終わったかが分かりやすくなります。コードがMarkdownページに表示される場合は、Markdownフィルタがコードサンプルとして扱わないように、HTMLタグの開始と終了を左端にあわせてください。 必要に応じて、コードサンプル全体をdivタグで囲むことで、コードにコードを補足するHTMLタグを確実に含めることができます。

      + +
      + +## シナリオ5:YAMLリストの選択にページ変数を使用する + + +いくつかのドキュメンテーションのセットでサイドバーを変更したい場合を考えます。サイトに3つの異なるプロダクトがあり、それぞれにあわせて3つの異なるサイドバーが必要だとします。 + + + +ページのfront matterにサイドバーのリストの名前を格納し、その値を動的にリストに渡します。 + + + +**Page front matter** + +```yaml +--- +title: My page +sidebar: toc +--- +``` + +**Liquid** + +{% raw %} +```liquid +
        + {% for item in site.data.samplelist[page.sidebar] %} +
      • {{ item.title }}
      • + {% endfor %} +
      +``` +{% endraw %} + +**Result** + + + +このシナリオでは、ページのfront matterからその値を`for`ループに渡しました。割り当てられた変数が文字列ではなくデータ参照である場合は、front matterの値を参照するために(中括弧ではなく)大括弧を使用する必要があります。 + + + +更なる情報は、Liquidのドキュメンテーションの[Expressions and Variables](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#expressions-and-variables){:target="_blank"}を見てください。ドット表記が使えない場所で大括弧が使用されます。この詳細は[Stack Overflow answer](http://stackoverflow.com/questions/4968406/javascript-property-access-dot-notation-vs-brackets/4968448#4968448){:target="_blank"}で読むことができます。 + + + +## シナリオ6:現在のページにactiveクラスを適用する + + +YAMLデータファイルからリストへアイテムを挿入するとき、現在見ているページへのリンクは強調したいこともあるでしょう。現在のページのURLとアイテムがマッチした場合に`active`クラスを挿入することで、実現できます。 + + + +**CSS** +```css +.result li.active a { + color: lightgray; + cursor: default; + } +``` +**Liquid** + +{% raw %} +```liquid +{% for item in site.data.samplelist.docs %} +
    • + {{ item.title }} +
    • +{% endfor %} +``` +{% endraw %} + +**Result** + + + + + +この例では`Deployment`が現在のページとしています。 + + + +(YAMLファイルに格納されている)`item.url`が`page.url`と確実に一致するようにするには、{%raw%} {{page.url}} {%endraw%}をページに出力すると便利です。 + + + +## シナリオ7:条件付きでアイテムを含める + + +リストに条件付きで項目を含めたい場合を考えます。例えば、複数のサイトを持っていて、特定の項目だけを含むサイドバーが欲しい場合です。リストの各項目にプロパティを追加して、含める内容の条件にそのプロパティを使います。 + + + +**YAML** +```yaml +docs2_list_title: ACME Documentation +docs2: + +- title: Introduction + url: introduction.html + version: 1 + +- title: Configuration + url: configuration.html + version: 1 + +- title: Deployment + url: deployment.html + version: 2 +``` + +**Liquid** + +{% raw %} +```liquid +
        + {% for item in site.data.samplelist.docs2 %} + {% if item.version == 1 %} +
      • {{ item.title }}
      • + {% endif %} + {% endfor %} +
      +``` +{% endraw %} + +**Result** + + + +`Deployment`は`version`が`2`ですので書き出されていません。 + + + +## シナリオ8:front matterのプロパティに基づくアイテムの取得 + + +ナビゲーションアイテムを`_data`フォルダのYAMLファイルに格納したくない場合、各ページやコレクションのfront matterを取得して`for`ループを使用し、front matterのプロパティを元にコンテンツを取得します。 + + + +このシナリオでは、`_docs`というコレクションがあるとします。コレクションは、ループできるリストを持っているため、ページよりよい場合が多いです。(ビルド時間が長くなるため、多数の項目をループ処理するシナリオは避けてください。 [コレクション]({{ "/docs/collections/" | relative_url }})は範囲を狭めるのに役立ちます。) + + + +このシナリオでは、`docs`コレクションにSample 1, Sample 2, Topic 1, Topic 2, Widget 1, そしてWidget 2の6つのドキュメントがあるとします。 + + + +コレクションの各ドキュメントにはfront matterに最低3つのプロパティを含めます。 + + + +* `title` +* `category` +* `order` + +各ページのfront matterは以下の通りです。(簡潔にするためここでは統合しています) + + + +```yaml +--- +Title: Sample 1 +category: getting-started +order: 1 +--- + +--- +Title: Sample 2 +category: getting-started +order: 2 +--- + +--- +Title: Topic 1 +category: configuration +order: 1 +--- + +--- +Title: Topic 2 +category: configuration +order: 2 +--- + +--- +Title: Widget 1 +category: deployment +order: 1 +--- + +--- +Title: Widget 2 +category: deployment +order: 2 +--- +``` + +`category`をドキュメントのfront matterで使用していても、`category`はポストの場合の組み込み変数とは異なります。言い換えれば、`site.docs.category`で`category`の内部を直接見ることはできません。 + + + +コレクション内の特定のカテゴリのドキュメントを簡単に取得したい場合、`for`ループ内で`if`文を使いそのカテゴリかをチェックします。 + + + +{% raw %} +```liquid +

      Getting Started

      +
        + {% for doc in site.docs %} + {% if doc.category == "getting-started" %} +
      • {{ doc.title }}
      • + {% endif %} + {% endfor %} +
      +``` +{% endraw %} + +結果は以下のようになります。 + + + +
      +

      Getting Started

      + +
      + +これは、ナレッジベースを設定し、各カテゴリに多数のトピックがあり、各カテゴリをそれぞれのページに表示する場合に便利です。 + + + +カテゴリ名をハードコーディングせずに、カテゴリ別にアイテムをソートし、それらをカテゴリ名の下にグループ化する場合を考えます。2つのフィルタを利用して、実現することができます。 + + + +* `group_by` +* `sort` + +カテゴリヘッダに対応したグループのページのリストを取得するコードを示します。 + + + +**Liquid** + +{% raw %} +```liquid +{% assign mydocs = site.docs | group_by: 'category' %} +{% for cat in mydocs %} +

      {{ cat.name | capitalize }}

      +
        + {% assign items = cat.items | sort: 'order' %} + {% for item in items %} +
      • {{ item.title }}
      • + {% endfor %} +
      +{% endfor %} +``` +{% endraw %} + +**Result** + +
      +

      Getting-started

      + +

      Configuration

      + +

      Deployment

      + +
      + +コードを見ていきましょう。まず、コレクションの内容(`site.docs`)の為の変数(`mydocs`)を設定しています。 + + + +`group_by`フィルタでコレクションを`category`でグループ化しています。より正確には、`group_by`フィルタは`mydocs`を以下のように`name`, `items`, そして`size`の配列に変換しています。 + + + +```yaml +[ + {"name": "getting-started", "items": [Sample 1, Sample 2],"size": 2}, + {"name": "configuration", "items": [Topic 1, Topic 2], "size": 2}, + {"name": "deployment", "items": [Widget 1, Widget 2, "size": 2} +] +``` + +`for cat in mydocs`を使用して、`mydocs`配列のアイテムを確認し、カテゴリ`name`をプリントしています。 + + + +カテゴリ名を取得した後、`sort`フィルタで`order`プロパティ順に並べたドキュメントを変数`items`に設定します。コンテンツの`items`配列にアクセスするために`cat.items`を使用しています。`sort`フィルタでアイテムの番号で昇順に並べ替えています。 + + + +`for item in items`ループは各`item`を確認し、リストのアイテムをリンクするために`title`と`url`を取得しています。 + + + +`group_by`フィルタの詳細は[Jekyll's Templates documentation](https://jekyllrb.com/docs/templates/){:target="_blank"}や[this Siteleaf tutorial](https://www.siteleaf.com/blog/advanced-liquid-group-by/){:target="_blank"}をご覧ください。`sort`フィルタの詳細はLiquidドキュメンテーションの[sort](https://shopify.github.io/liquid/filters/sort/){:target="_blank"}をご覧ください。 + + + +ドキュメントのfront matterを使用する場合、YAMLデータファイルを使用する場合のどちらでも、サイトに為のより堅牢なナビゲーションを構築することができるでしょう。 + + diff --git a/_tutorials/orderofinterpretation.md b/_tutorials/orderofinterpretation.md new file mode 100644 index 0000000..3bdf2f0 --- /dev/null +++ b/_tutorials/orderofinterpretation.md @@ -0,0 +1,231 @@ +--- +layout: tutorials +permalink: /tutorials/orderofinterpretation/ +title: 解釈の順番 +--- + + +Jekyllの主な仕事は、あなたのテキストファイルを静的Webサイトに変換することです。LiquidやMarkdown、その他の変換を行い、静的HTMLを作成し出力します。 + + + +この変換プロセス中の、Jekyllの解釈の順番を理解することは重要です。「解釈の順番」は、何がレンダリングされるのか、どのような順序でレンダリングされるのか、そしてコンテンツの変換にどのような規則が適用されるのかを意味します。 + + + +要素が変換されない場合は、解釈の順番を分析して問題を解決できます。 + + + +## 解釈の順番 + + +Jekyllは以下の順番でサイトを作成します。 + + + +1. **サイト変数** Jekyllはファイルを調べて`site`, `page`, `post`やコレクションオブジェクトといった[サイト変数]({{ "/docs/variables/" | relative_url }})を設定します。(これらから、パーマリンク、タグ、カテゴリなど詳細の値を決定します) +2. **Liquid** [front matter]({{ "/docs/front-matter/" | relative_url }})を含むページの[Liquid](https://github.com/Shopify/liquid){:target="_blank"}フォーマットを処理します。次のようにLiquidを識別できます。 + * **Liquid タグ** `{% raw %}{%{% endraw %}`から`{% raw %}%}{% endraw %}`まで。例えば、`{% raw %}{% highlight %}{% endraw %}`や`{% raw %}{% seo %}{% endraw %}`タグはブロックを定義することもインラインにすることもできます。 ブロック定義タグには対応する終了タグも付きます — `{% raw %}{% endhighlight %}{% endraw %}`など。 + * **Liquid 変数** 2つの中括弧で囲まれた部分。例えば、`{% raw %}{{ site.myvariable }}{% endraw %}`や`{% raw %}{{ content }}{% endraw %}`。 + * **Liquid フィルタ** **Liquid 変数**内でのみ使用できる、変数名の文字列の後で縦棒(`|`)から始まる部分。例えば、`{% raw %}{{ "css/main.css" | relative_url }}{% endraw %}`中の`relative_url`フィルタ。 +3. **Markdown** 設定ファイルで指定されたMarkdownフィルタを用いてJekyllはMerkdownをHTMLに変換します。Jekyllがファイルを変換するためには、ファイルにMarkdownファイル拡張子とfront matterが必要です。 +4. **レイアウト** (設定ファイルや)ページのfront matterで指定されたレイアウトに、コンテンツを押し込みます。コンテンツはレイアウト内の`{% raw %}{{ content }}{% endraw %}`タグ部に入ります。 +5. **ファイル** 生成されたコンテンツを`_site`のディレクトリ構造内のファイルに書き込みます。 ページ、ポスト、およびコレクションは、パーマリンクの設定に基づいて構造化されます。`_`で始まるディレクトリ(`_includes`や`_data`など)は通常、出力時には隠されます。 + + + + + + + + + + + +## 誤った構成が問題を引き起こすシナリオ + + +Jekyllサイトの構築で、多くの場合は解釈の順番を考える必要はありません。レンダリングが上手くいかない場合にこれらの詳細が重要になります。 + + + +以下のシナリオでは、発生する可能性がある潜在的な問題を強調しています。これらの問題は解釈の順番の誤解から来ており、簡単に修正することができます。 + + + +### レイアウト上で割り当てられた変数はページ上ではレンダリングされません + + +レイアウトファイル(`_layouts/default.html`)で変数を割り当てたとします。 + + + +{% raw %} +```liquid +{% assign myvar = "joe" %} +``` +{% endraw %} + +レイアウトを使用するページで、その変数を参照します。 + + + +{% raw %} +```liquid +{{ myvar }} +``` +{% endraw %} + +変数はレンダリングされません。なぜなら、まずLiquidをレンダリングしてからレイアウトのプロセスに移行するという順番で解釈するためです。Liquidがレンダリングされる時点では、変数はまだ割り当てられていません。 + + + +このコードを動かすためには、変数の割り当てをページのfront matterで行います。 + + + +### インクルードファイルのMarkdownは処理されません + + +`_includes/mycontent.md`というMarkdownファイルがあるとします。Markdownファイルでは、Markdownのフォーマットで書かれています。 + + + +```markdown +This is a list: +* first item +* second item +``` + +以下のように、HTMLファイルに先ほどのファイルをインクルードします。 + + + +{% raw %} +```liquid +{% include mycontent.md %} +``` +{% endraw %} + +Markdownは処理されません。なぜなら、Liquid(`include`)タグがまず処理され、`mycontent.md`がHTMLファイルに挿入されるためです。Markdownは*それから*処理されることになります。 + + + +ですが、*HTML*ページに挿入したため、Markdownは処理されません。Markdownの変換プロセスは、Markdownファイルでのみ行われます。 + + + +コードを動かすためには、HTMLファイルにインクルードするファイルはHTML形式にします。 + + + +`highlight`タグはMarkdownの処理を必要としません。以下のインクルードコンテンツがあるとします。 + + + +{% raw %} +```liquid +{% highlight javascript %} +console.log('alert'); +{% endhighlight %} +``` +{% endraw %} + +`highlight`タグはLiquidです。(Liquidはコンテンツを構文強調表示のためにRougeに渡します。)その結果、このコードはHTMLにシンタックスハイライト処理され変換されます。Jekyllは`highlight`タグにMarkdown処理のプロセスを必要としません。 + + + +### LiquidとJavaScriptを混合するとレンダリングされません + + +Liquidの`assign`タグをJavaScriptで使おうとしているとします。 + + + +{% raw %} +```javascript + + +

      + + +``` +{% endraw %} + +`assign`タグはサイトのLiquidレンダリング中のみ使用可能ですので、これは動きません。このJavaScriptの例では、HTMLページでユーザーがボタン("Click me")をクリックしたときに実行されます。Liquidロジックはもはや有効ではなく、`assign`タグは何も返しません。 + + + +しかしながら、Jekyllサイトの変数やLiquidを、後からスクリプト実行時に*渡す*事もできます。例えば、`someContent: "This is some content"`のfront matterプロパティがあるとします。次のようにできます。 + + + +{% raw %} +```js + + +

      + + +``` +{% endraw %} + +Jekyllがビルドするときに、`someContent`プロパティをスクリプトの値に渡し、`{% raw %}{{ page.someContent }}{% endraw %}`を`"This is some content"`に変換します。 + + + +JekyllがビルドするときにLiquidをレンダリングすることを覚えておいてください。Liquidはブラウザで実行時のユーザーイベントでは利用できません。 + + + +## YAMLでのLiquid使用についてのメモ + + +LiquidはYAMLやfront matterではレンダリングされないことを覚えておいてください。(これは解釈の順番とは関係ありませんが、要素のレンダリングに関する一般的な問題ですので、言及する価値があります。) + + + +例えば、`highlight`タグを`_data/mydata.yml`ファイルで使用したい場合を考えます。 + + + +{% raw %} +```liquid +myvalue: > + {% highlight javascript %} + console.log('alert'); + {% endhighlight %} +``` +{% endraw %} + +ページにこの値を挿入します。 + + + +{% raw %} +```liquid +{{ site.data.mydata.myvalue }} +``` +{% endraw %} + +これは、構文を強調表示するコードサンプルではなく、文字列として表示されます。 コードをレンダリングするには、代わりにインクルードを使用することを検討してください。 + + diff --git a/_tutorials/using-jekyll-with-bundler.md b/_tutorials/using-jekyll-with-bundler.md new file mode 100644 index 0000000..10d89d0 --- /dev/null +++ b/_tutorials/using-jekyll-with-bundler.md @@ -0,0 +1,140 @@ +--- +layout: tutorials +permalink: /tutorials/using-jekyll-with-bundler/ +title: BundlerでJekyllを使う +--- + + +>Bundlerは、必要なgemとバージョンを追跡しインストールすることで、Rubyプロジェクトに一貫した環境を提供します。 + + + +[Bundler](https://bundler.io){:target="_blank"}はJekyllで使用できる素晴らしいツールです。プロジェクト毎に依存関係を追跡するため、異なるプロジェクトで異なるバージョンのJekyllを使用する場合や、システムやユーザーレベルでJekyllをインストールしたくない場合に、特に便利です。このチュートリアルでは、Baundlerを使用して、Jekyllをプロジェクト外にインストールせずに、新しいJekyllプロジェクトを作る方法を示します。 + + + +## 始める前に + + +このチュートリアルでは、[Ruby](https://www.ruby-lang.org/en/){:target="_blank"}と[Bundler](https://bundler.io/){:target="_blank"}のインストールが必要です。インストール手順は、それぞれのwebサイトをご確認ください。 + + + +## Bunblerの初期化 + + +まず始めに行うことは、プロジェクト用の新しいディレクトリを作り、`bundle init`を実行することです。これは、(空のGemfileを作ることで)新しいBundlerプロジェクトを作成します。 + + + +```sh +mkdir my-jekyll-website +cd my-jekyll-website +bundle init +``` + +## Bundlerの設定 + + +このステップはオプションですが、行った方がよいでしょう。プロジェクトのサブディレクトリ`./vendor/bundle/`にgemをインストールするため、Bundlerの設定を行います。これにより、依存関係を独立した環境にインストールして、システム上の他のgemと競合しないようにすることができます。このステップを飛ばすと、Bundlerは依存関係をシステムにグローバルにインストールします。 + + + +```sh +bundle install --path vendor/bundle +``` + +
      +
      Bundler設定は永続的です
      + +

      + この手順はプロジェクト毎に1回だけ必要です。Bundlerは設定を./.bundle/configに保存するので、将来のgemは同じ場所にインストールされます。 +

      + +
      + +## Jekyllを追加する + + +次は、新しいプロジェクトが依存するJekyllを追加するためにBundlerを使用します。このコマンドはJekyll gemをGemfileに追加し、`./vendor/bundle/`フォルダにインストールします。 + + + +```sh +bundle add jekyll +``` + +## Jekyll骨格を作成する + + +Jekyllがインストールされました。サイトの骨格を作るためにjekyllを使うことができます。フォルダにはBundlerのファイルが既にあり空ではないので、`--force`パラメータが必要です。Gemfileが既に存在しているとJekyllが混乱するので、`bundle install`を分割して実行します。 + + + +```sh +bundle exec jekyll new --force --skip-bundle . +bundle install +``` + +## サイトをサーブする + + +webサイトの準備ができました! `bundle exec jekyll serve`でWebサイトをサーブして、[http://127.0.0.1:4000](http://127.0.0.1:4000){:target="_blank"}を訪れましょう。これであなた自身がサイトの構築を続けていく準備ができました。Jekyllの通常のコマンドは全て利用できますが、プロジェクトフォルダにインストールしたJekyllのバージョンをBundlerで実行するために`bundle exec`をコマンドの前につけることを忘れないでください。 + + + +## ソース管理へのコミット + + +新しいサイトをバージョン管理で保存している場合、`./vendor/`と`./.bundle/`フォルダにはユーザーやプラットフォーム固有の情報が含まれているため無視したいでしょう。新しいユーザーは最新の`Gemfile`と`Gemfile.lock`に基づいて正しい依存関係をインストールできます。`Gemfile`と`Gemfile.lock`はどちらもチェックインが必要です。必要に応じて、次の`.gitignore`を使用してください。 + + + +**.gitignore** + +``` +# Ignore folders generated by Bundler +vendor +.bundle + +# Ignore folders generated by Jekyll +.sass-cache +_site +``` + diff --git a/_tutorials/video-walkthroughs.md b/_tutorials/video-walkthroughs.md new file mode 100644 index 0000000..75ba653 --- /dev/null +++ b/_tutorials/video-walkthroughs.md @@ -0,0 +1,43 @@ +--- +layout: tutorials +permalink: /tutorials/video-walkthroughs/ +title: 動画での解説 +--- + + +[Giraffe Academy](https://www.youtube.com/c/GiraffeAcademy){:target="_blank"}は、Jekyllの基本的な使用方法の動画での解説シリーズを用意しています。このシリーズでは、Jekyllのインストールから最初のサイトの設定、変数やレイアウト・条件といった複雑な機能の使い方までを学ぶことができます。 + + + +
      + +
      + +## レッスンのリスト + + +1. [Introduction to Jekyll (see above)](https://www.youtube.com/watch?v=T1itpPvFWHI&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=1){:target="_blank"} +2. [Mac Installation](https://www.youtube.com/watch?v=WhrU9m82Wm8&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=2){:target="_blank"} +3. [Windows Installation](https://www.youtube.com/watch?v=LfP7Y9Ja6Qc&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=3){:target="_blank"} +4. [Creating a Site](https://www.youtube.com/watch?v=pxua_1vyFck&index=4&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +5. [Front Matter](https://www.youtube.com/watch?v=ZtEbGztktvc&index=5&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +6. [Writing Posts](https://www.youtube.com/watch?v=gsYqPL9EFwQ&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=6){:target="_blank"} +7. [Working With Drafts](https://www.youtube.com/watch?v=X8jXkW3k2Jg&index=7&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +8. [Creating Pages](https://www.youtube.com/watch?v=1na-IWfv08M&index=8&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +9. [Permalinks](https://www.youtube.com/watch?v=938jDG_YPdc&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=9){:target="_blank"} +10. [Front Matter Defaults](https://www.youtube.com/watch?v=CLCaJJ1zUHU&index=10&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +11. [Themes](https://www.youtube.com/watch?v=NoRS2D-cyko&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=11){:target="_blank"} +12. [Layouts](https://www.youtube.com/watch?v=bDQsGdCWv4I&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=12){:target="_blank"} +13. [Variables](https://www.youtube.com/watch?v=nLJBF2KiOZw&index=13&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +14. [Includes](https://www.youtube.com/watch?v=HfcJeRby2a8&index=14&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +15. [Looping Through Posts](https://www.youtube.com/watch?v=6N1X5XffuUA&index=15&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +16. [Conditionals](https://www.youtube.com/watch?v=iNZBEki_x6o&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=16){:target="_blank"} +17. [Data Files](https://www.youtube.com/watch?v=M6b0KmLB-pM&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=17){:target="_blank"} +18. [Static Files](https://www.youtube.com/watch?v=knWjmVlVpso&index=18&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB){:target="_blank"} +19. [Hosting on Github Pages](https://www.youtube.com/watch?v=fqFjuX4VZmU&list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB&index=19){:target="_blank"} + + diff --git a/css/screen.css b/css/screen.css deleted file mode 100644 index ee9b6f5..0000000 --- a/css/screen.css +++ /dev/null @@ -1,27 +0,0 @@ ---- ---- - -{% capture screen %} -/* *\ - * $normalize.css * -\* */ -{% include css/normalize.css %} -/* *\ - * $gridism.css * -\* */ -{% include css/gridism.css %} -/* *\ - * $style.css * -\* */ -{% include css/style.css %} -/* *\ - * $pygments.css * -\* */ -{% include css/pygments.css %} -{% endcapture %} - -{% if site.GH_ENV %} - {{ screen | strip_newlines | remove: ' ' }} -{% else %} - {{ screen }} -{% endif %} diff --git a/css/screen.scss b/css/screen.scss index 2eff7f8..766f964 100644 --- a/css/screen.scss +++ b/css/screen.scss @@ -6,4 +6,6 @@ @import "gridism"; @import "pygments"; @import "font-awesome"; +@import "fonts"; +@import "docsearch"; @import "style"; diff --git a/fonts/FontAwesome.eot b/fonts/FontAwesome.eot new file mode 100644 index 0000000..4f0b1de Binary files /dev/null and b/fonts/FontAwesome.eot differ diff --git a/fonts/FontAwesome.svg b/fonts/FontAwesome.svg new file mode 100644 index 0000000..32ad8fb --- /dev/null +++ b/fonts/FontAwesome.svg @@ -0,0 +1,12 @@ + + + +Generated by IcoMoon + + + + + + + + \ No newline at end of file diff --git a/fonts/FontAwesome.ttf b/fonts/FontAwesome.ttf new file mode 100644 index 0000000..47e2443 Binary files /dev/null and b/fonts/FontAwesome.ttf differ diff --git a/fonts/FontAwesome.woff b/fonts/FontAwesome.woff new file mode 100644 index 0000000..bec5c4f Binary files /dev/null and b/fonts/FontAwesome.woff differ diff --git a/fonts/lato-v14-latin-300.woff b/fonts/lato-v14-latin-300.woff new file mode 100644 index 0000000..ab45ab7 Binary files /dev/null and b/fonts/lato-v14-latin-300.woff differ diff --git a/fonts/lato-v14-latin-300.woff2 b/fonts/lato-v14-latin-300.woff2 new file mode 100644 index 0000000..136337f Binary files /dev/null and b/fonts/lato-v14-latin-300.woff2 differ diff --git a/fonts/lato-v14-latin-300italic.woff b/fonts/lato-v14-latin-300italic.woff new file mode 100644 index 0000000..0287996 Binary files /dev/null and b/fonts/lato-v14-latin-300italic.woff differ diff --git a/fonts/lato-v14-latin-300italic.woff2 b/fonts/lato-v14-latin-300italic.woff2 new file mode 100644 index 0000000..fd1977b Binary files /dev/null and b/fonts/lato-v14-latin-300italic.woff2 differ diff --git a/fonts/lato-v14-latin-700.woff b/fonts/lato-v14-latin-700.woff new file mode 100644 index 0000000..1d9d75b Binary files /dev/null and b/fonts/lato-v14-latin-700.woff differ diff --git a/fonts/lato-v14-latin-700.woff2 b/fonts/lato-v14-latin-700.woff2 new file mode 100644 index 0000000..d88f1af Binary files /dev/null and b/fonts/lato-v14-latin-700.woff2 differ diff --git a/fonts/lato-v14-latin-700italic.woff b/fonts/lato-v14-latin-700italic.woff new file mode 100644 index 0000000..f79d9a9 Binary files /dev/null and b/fonts/lato-v14-latin-700italic.woff differ diff --git a/fonts/lato-v14-latin-700italic.woff2 b/fonts/lato-v14-latin-700italic.woff2 new file mode 100644 index 0000000..c351d88 Binary files /dev/null and b/fonts/lato-v14-latin-700italic.woff2 differ diff --git a/fonts/lato-v14-latin-900.woff b/fonts/lato-v14-latin-900.woff new file mode 100644 index 0000000..6f251d9 Binary files /dev/null and b/fonts/lato-v14-latin-900.woff differ diff --git a/fonts/lato-v14-latin-900.woff2 b/fonts/lato-v14-latin-900.woff2 new file mode 100644 index 0000000..a5abe36 Binary files /dev/null and b/fonts/lato-v14-latin-900.woff2 differ diff --git a/fonts/lato-v14-latin-900italic.woff b/fonts/lato-v14-latin-900italic.woff new file mode 100644 index 0000000..6922b8f Binary files /dev/null and b/fonts/lato-v14-latin-900italic.woff differ diff --git a/fonts/lato-v14-latin-900italic.woff2 b/fonts/lato-v14-latin-900italic.woff2 new file mode 100644 index 0000000..0d0f984 Binary files /dev/null and b/fonts/lato-v14-latin-900italic.woff2 differ diff --git a/fonts/lato-v14-latin-italic.woff b/fonts/lato-v14-latin-italic.woff new file mode 100644 index 0000000..169e8cf Binary files /dev/null and b/fonts/lato-v14-latin-italic.woff differ diff --git a/fonts/lato-v14-latin-italic.woff2 b/fonts/lato-v14-latin-italic.woff2 new file mode 100644 index 0000000..2688dc6 Binary files /dev/null and b/fonts/lato-v14-latin-italic.woff2 differ diff --git a/fonts/lato-v14-latin-regular.woff b/fonts/lato-v14-latin-regular.woff new file mode 100644 index 0000000..97ab144 Binary files /dev/null and b/fonts/lato-v14-latin-regular.woff differ diff --git a/fonts/lato-v14-latin-regular.woff2 b/fonts/lato-v14-latin-regular.woff2 new file mode 100644 index 0000000..b14c76c Binary files /dev/null and b/fonts/lato-v14-latin-regular.woff2 differ diff --git a/help/index.md b/help/index.md deleted file mode 100644 index 5ce0846..0000000 --- a/help/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: page -title: Getting Help ---- - -Need help with Jekyll? Try these resources. - -### [Google](https://google.com) - -Add **jekyll** to almost any query, and you'll find just what you need. - -### [Jekyll Talk](https://talk.jekyllrb.com/) - -Jekyll Talk is our official Discourse forum. Here, users and contributors -can ask questions and discuss all aspects of Jekyll. - -### [Jekyll on StackOverflow](http://stackoverflow.com/questions/tagged/jekyll) - -StackOverflow is a staple of any developer's diet. Check out the Jekyll tag -on StackOverflow for an answer to your question. Not there? Ask a new -question! - -### [Jekyll IRC Channel](irc:irc.freenode.net/jekyll) - -Get live support at **#jekyll** on **irc.freenode.net**, the official -Jekyll IRC channel. - -### [jekyll/jekyll](https://github.com/jekyll/jekyll/issues) - -Search through the issues on the main Jekyll development. Think you've -found a bug? File a new issue. - -### [@jekyllrb on Twitter](https://twitter.com/jekyllrb) - -The official Jekyll Twitter account. It's not checked often, so try the -above first. diff --git a/icomoon-selection.json b/icomoon-selection.json new file mode 100644 index 0000000..2696104 --- /dev/null +++ b/icomoon-selection.json @@ -0,0 +1,96 @@ +{ + "IcoMoonType": "selection", + "icons": [ + { + "icon": { + "paths": [ + "M207.429 877.714l52-52-134.286-134.286-52 52v61.143h73.143v73.143h61.143zM506.286 347.429c0-7.429-5.143-12.571-12.571-12.571-3.429 0-6.857 1.143-9.714 4l-309.714 309.714c-2.857 2.857-4 6.286-4 9.714 0 7.429 5.143 12.571 12.571 12.571 3.429 0 6.857-1.143 9.714-4l309.714-309.714c2.857-2.857 4-6.286 4-9.714zM475.429 237.714l237.714 237.714-475.429 475.429h-237.714v-237.714zM865.714 292.571c0 19.429-8 38.286-21.143 51.429l-94.857 94.857-237.714-237.714 94.857-94.286c13.143-13.714 32-21.714 51.429-21.714s38.286 8 52 21.714l134.286 133.714c13.143 13.714 21.143 32.571 21.143 52z" + ], + "width": 865.7188571428571, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "pencil" + ], + "defaultCode": 61504, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "pencil", + "id": 64, + "order": 3, + "prevSize": 28, + "code": 61504 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 64 + }, + { + "icon": { + "paths": [ + "M832 694.857c0-14.857-5.714-28.571-16-38.857l-118.857-118.857c-10.286-10.286-24.571-16-38.857-16-16.571 0-29.714 6.286-41.143 18.286 18.857 18.857 41.143 34.857 41.143 64 0 30.286-24.571 54.857-54.857 54.857-29.143 0-45.143-22.286-64-41.143-12 11.429-18.857 24.571-18.857 41.714 0 14.286 5.714 28.571 16 38.857l117.714 118.286c10.286 10.286 24.571 15.429 38.857 15.429s28.571-5.143 38.857-14.857l84-83.429c10.286-10.286 16-24 16-38.286zM430.286 292c0-14.286-5.714-28.571-16-38.857l-117.714-118.286c-10.286-10.286-24.571-16-38.857-16s-28.571 5.714-38.857 15.429l-84 83.429c-10.286 10.286-16 24-16 38.286 0 14.857 5.714 28.571 16 38.857l118.857 118.857c10.286 10.286 24.571 15.429 38.857 15.429 16.571 0 29.714-5.714 41.143-17.714-18.857-18.857-41.143-34.857-41.143-64 0-30.286 24.571-54.857 54.857-54.857 29.143 0 45.143 22.286 64 41.143 12-11.429 18.857-24.571 18.857-41.714zM941.714 694.857c0 43.429-17.714 85.714-48.571 116l-84 83.429c-30.857 30.857-72.571 47.429-116 47.429-44 0-85.714-17.143-116.571-48.571l-117.714-118.286c-30.857-30.857-47.429-72.571-47.429-116 0-45.143 18.286-88 50.286-119.429l-50.286-50.286c-31.429 32-73.714 50.286-118.857 50.286-43.429 0-85.714-17.143-116.571-48l-118.857-118.857c-31.429-31.429-48-72.571-48-116.571 0-43.429 17.714-85.714 48.571-116l84-83.429c30.857-30.857 72.571-47.429 116-47.429 44 0 85.714 17.143 116.571 48.571l117.714 118.286c30.857 30.857 47.429 72.571 47.429 116 0 45.143-18.286 88-50.286 119.429l50.286 50.286c31.429-32 73.714-50.286 118.857-50.286 43.429 0 85.714 17.143 116.571 48l118.857 118.857c31.429 31.429 48 72.571 48 116.571z" + ], + "width": 950.8571428571428, + "attrs": [], + "isMulticolor": false, + "isMulticolor2": false, + "tags": [ + "chain", + "link" + ], + "defaultCode": 61633, + "grid": 14 + }, + "attrs": [], + "properties": { + "name": "chain, link", + "id": 170, + "order": 2, + "prevSize": 28, + "code": 61633 + }, + "setIdx": 0, + "setId": 0, + "iconIdx": 170 + } + ], + "height": 1024, + "metadata": { + "name": "FontAwesome" + }, + "preferences": { + "showGlyphs": true, + "showCodes": true, + "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, + "fontPref": { + "prefix": "fa-", + "metadata": { + "fontFamily": "FontAwesome", + "majorVersion": 1, + "minorVersion": 0 + }, + "metrics": { + "emSize": 1024, + "baseline": 6.25, + "whitespace": 50 + }, + "embed": false, + "showSelector": true, + "selector": "class", + "classSelector": ".fa" + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 0, + "bgColor": 16777215 + }, + "historySize": 100 + } +} \ No newline at end of file diff --git a/img/article-footer.png b/img/article-footer.png index d000cf0..eeb7441 100644 Binary files a/img/article-footer.png and b/img/article-footer.png differ diff --git a/img/footer-logo.png b/img/footer-logo.png index 721b856..e64790b 100644 Binary files a/img/footer-logo.png and b/img/footer-logo.png differ diff --git a/img/forestry-logo.svg b/img/forestry-logo.svg new file mode 100644 index 0000000..4b4beda --- /dev/null +++ b/img/forestry-logo.svg @@ -0,0 +1,19 @@ + diff --git a/img/jekyll-og.png b/img/jekyll-og.png new file mode 100644 index 0000000..508c42a Binary files /dev/null and b/img/jekyll-og.png differ diff --git a/img/jekyll-sticker.jpg b/img/jekyll-sticker.jpg index de3eb1b..b51680c 100644 Binary files a/img/jekyll-sticker.jpg and b/img/jekyll-sticker.jpg differ diff --git a/img/jekyll-sticker.png b/img/jekyll-sticker.png new file mode 100644 index 0000000..09e5cbf Binary files /dev/null and b/img/jekyll-sticker.png differ diff --git a/img/jekylllayoutconcept.png b/img/jekylllayoutconcept.png new file mode 100644 index 0000000..e7fa6d7 Binary files /dev/null and b/img/jekylllayoutconcept.png differ diff --git a/img/logo-2x.png b/img/logo-2x.png index 28b9cd8..57af994 100644 Binary files a/img/logo-2x.png and b/img/logo-2x.png differ diff --git a/img/spacer.gif b/img/spacer.gif new file mode 100644 index 0000000..4bcc753 Binary files /dev/null and b/img/spacer.gif differ diff --git a/img/tube.png b/img/tube.png deleted file mode 100644 index bb0ba9c..0000000 Binary files a/img/tube.png and /dev/null differ diff --git a/img/tube1x.png b/img/tube1x.png deleted file mode 100644 index 104c28b..0000000 Binary files a/img/tube1x.png and /dev/null differ diff --git a/img/twitter-card.png b/img/twitter-card.png new file mode 100644 index 0000000..b828c1a Binary files /dev/null and b/img/twitter-card.png differ diff --git a/index.html b/index.html deleted file mode 100644 index 6d63aa6..0000000 --- a/index.html +++ /dev/null @@ -1,154 +0,0 @@ ---- -layout: default -title: Jekyll • シンプルで、ブログのような、静的サイト -overview: true ---- - -
      -
      -
      -

      プレーンテキストから静的な Web サイトやブログを作成しましょう。

      - -
      -
      -
      -
      -
      -

      ※ Jekyllの最新内容を知りたい場合は 本家サイト(jekyllrb.com) を参照してください。翻訳に関する質問/要望は本家ではなく jekyllrb-jaのIssues へお願いします。

      -
      -
      -
      -
      - - - -
      -
      -
      -
      -
      -
      -

      起動から実行まで一瞬です。

      - -
      -
      -

      Quick-start Instructions

      -
      -

      - ~ - $ - gem install jekyll -

      -

      - ~ - $ - jekyll new my-awesome-site -

      -

      - ~ - $ - cd my-awesome-site -

      -

      - ~/my-awesome-site - $ - jekyll serve -

      -

      - # => http://localhost:4000 を見てください - -

      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - Free Jekyll hosting on GitHub Pages -
      -

      GitHub Pages の無料ホスティング

      - -

      - ホスティング会社との取引にうんざりしていませんか? - GitHub PagesJekyll で動いています。 - だから、あなたも自分のサイトを簡単に GitHub にデプロイできます。 - しかも、 カスタムドメイン名を含む全てが無料です。 - - GitHub Pages についてもっと知る → - -

      -
      -
      -
      -
      -
      -
      diff --git a/js/modernizr-2.5.3.min.js b/js/modernizr-2.5.3.min.js deleted file mode 100644 index 27fcdae..0000000 --- a/js/modernizr-2.5.3.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/* Modernizr 2.5.3 (Custom Build) | MIT & BSD - * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load - */ -;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function L(){e.input=function(c){for(var d=0,e=c.length;d",a,""].join(""),k.id=h,m.innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e});var K=function(c,d){var f=c.join(""),g=d.length;y(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",n.join("touch-enabled),("),h,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",n.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',l,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);s.flexbox=function(){return J("flexOrder")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){try{var d=b.createElement("canvas"),e;e=!(!a.WebGLRenderingContext||!d.getContext("experimental-webgl")&&!d.getContext("webgl")),d=c}catch(f){e=!1}return e},s.touch=function(){return e.touch},s.geolocation=function(){return!!navigator.geolocation},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){for(var b=-1,c=p.length;++b",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f +
      +
      +

      あぁ。このページはきっと
      隠れているんだ...

      + +
      +
      + + +
      +
      +
      +

      要求されたリソースは見つかりませんでした。
      ここに、あなたが知りたいことを見つける手助けとなるリンクがあります:

      + + +
      +
      +
      diff --git a/pages/index.html b/pages/index.html new file mode 100644 index 0000000..7130874 --- /dev/null +++ b/pages/index.html @@ -0,0 +1,102 @@ +--- +layout: default +overview: true +permalink: / +--- + +
      +
      +
      +

      プレーンテキストを静的サイトやブログに変えましょう。

      +
      +
      +
      +
      +
      +

      ※ Jekyllの最新内容を知りたい場合は 本家サイト(jekyllrb.com) を参照してください。翻訳に関する質問/要望は本家ではなく jekyllrb-jaのIssues へお願いします。

      +
      +
      +
      +
      + + + +
      +
      +
      +
      +
      +
      +

      入手してから動かすまで、
      ほんの少しです。

      + +
      +
      +

      クイックスタート

      +
      +

      + ~ + $ + gem install bundler jekyll +

      +

      + ~ + $ + jekyll new my-awesome-site +

      +

      + ~ + $ + cd my-awesome-site +

      +

      + ~/my-awesome-site + $ + bundle exec jekyll serve +

      +

      + # => http://localhost:4000をブラウザで見てください + +

      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + Free Jekyll hosting on GitHub Pages +
      +

      無料のホスティングGitHub Pages

      + +

      ホスティング会社との取引は面倒ではありませんか? GitHub PagesJekyllで動いていますので、 GitHubで簡単にあなたのサイトをデプロイすることができます。 —カスタムドメインの使用など全てが無料です。

      + + GitHub Pagesについてもっと詳しく → + +
      +
      +
      +
      +
      +
      +
      diff --git a/pages/jekyllconf.md b/pages/jekyllconf.md new file mode 100644 index 0000000..4a32b92 --- /dev/null +++ b/pages/jekyllconf.md @@ -0,0 +1,28 @@ +--- +layout: page +title: JekyllConf +permalink: /jekyllconf/ +--- + +[JekyllConf](http://jekyllconf.com){:target="_blank"}は[CloudCannon](http://cloudcannon.com){:target="_blank"}がホストのJekyllの全てのことの無料のオンラインカンファレンスです。毎年、Jekyllコミュニティのメンバーが興味深い使用例や、彼らが学んだ技術、メタJekyllトピックについて話しています。 + + + +## おすすめ + + +{% assign random = site.time | date: "%s%N" | modulo: site.data.jekyllconf-talks.size %} +{% assign featured = site.data.jekyllconf-talks[random] %} + +{{ featured.topic }} - [{{ featured.speaker }}](https://twitter.com/{{ featured.twitter_handle }}) +
      + +
      + +{% assign talks = site.data.jekyllconf-talks | group_by: 'year' %} +{% for year in talks reversed %} +## {{ year.name }} + {% for talk in year.items %} + * [{{ talk.topic }}](https://youtu.be/{{ talk.youtube_id }}) - [{{ talk.speaker }}](https://twitter.com/{{ talk.twitter_handle }}) + {% endfor %} +{% endfor %} diff --git a/news/index.html b/pages/news.html similarity index 100% rename from news/index.html rename to pages/news.html diff --git a/pages/philosophy.md b/pages/philosophy.md new file mode 100644 index 0000000..e6c0839 --- /dev/null +++ b/pages/philosophy.md @@ -0,0 +1,51 @@ +--- +title: Philosophy +permalink: /philosophy/ +--- + +Jekyll offers a unique philosophy when approaching the problem of static +site generation. This core philosophy drives development and product +decisions. When a contributor, maintainer, or user asks herself what Jekyll +is about, the following principles should come to mind: + +### 1. No Magic + +Jekyll is not magic. A user should be able to understand the underlying +processes that make up the Jekyll build without much reading. It should +do only what you ask it to and nothing more. When a user takes a certain +action, the outcome should be easily understandable and focused. + +### 2. It "Just Works" + +The out-of-the-box experience should be that it "just works." Run +`gem install jekyll` and it should build any Jekyll site that it's given. +Features like auto-regeneration and settings like the markdown renderer +should represent sane defaults that work perfectly for the vast majority of +cases. The burden of initial configuration should not be placed on the user. + +### 3. Content is King + +Why is Jekyll so loved by content creators? It focuses on content first and +foremost, making the process of publishing content on the Web easy. Users +should find the management of their content enjoyable and simple. + +### 4. Stability + +If a user's site builds today, it should build tomorrow. +Backwards-compatibility should be strongly preferred over breaking changes. +Breaking changes should be made to support a strong practical goal, and +breaking changes should never be made to drive forward "purity" of the +codebase, or other changes purely to make the maintainers' lives easier. +Breaking changes provide a significant amount of friction between upgrades +and reduce the confidence of users in this software, and should thus be +avoided unless absolutely necessary. +Upon breaking changes, provide a clear path for users to upgrade. + +### 5. Small & Extensible + +The core of Jekyll should be simple and small, and extensibility should be +a first-class feature to provide added functionality from community +contributors. The core should be kept to features used by at least 90% of +users–everything else should be provided as a plugin. New features should +be shipped as plugins and focus should be put on creating extensible core +API's to support rich plugins. diff --git a/pages/redirects/github.html b/pages/redirects/github.html new file mode 100644 index 0000000..6042d0d --- /dev/null +++ b/pages/redirects/github.html @@ -0,0 +1,4 @@ +--- +permalink: /github.html +redirect_to: https://github.com/jekyll/jekyll +--- diff --git a/pages/redirects/issues.html b/pages/redirects/issues.html new file mode 100644 index 0000000..6776051 --- /dev/null +++ b/pages/redirects/issues.html @@ -0,0 +1,4 @@ +--- +permalink: /issues.html +redirect_to: https://github.com/jekyll/jekyll/issues +--- diff --git a/news/releases/index.html b/pages/releases.html similarity index 100% rename from news/releases/index.html rename to pages/releases.html diff --git a/pages/resources.md b/pages/resources.md new file mode 100644 index 0000000..b94ad4f --- /dev/null +++ b/pages/resources.md @@ -0,0 +1,122 @@ +--- +layout: page +title: Resources +permalink: /resources/ +redirect_from: + - /docs/resources/ +--- +Jekyllの成長するコミュニティは、様々なテーマ・プラグイン・チュートリアル、その他にも役立つリソースを作成しています。 +以下は、最も人気のあるJekyllのリソースのリンクコレクションです。 + + +## テーマ + +- [jekyllthemes.org](http://jekyllthemes.org/){:target="_blank"} +- [jekyllthemes.io](https://jekyllthemes.io/){:target="_blank"} + +## プラグイン + +- [jekyll-plugin topic on GitHub](https://github.com/topics/jekyll-plugin){:target="_blank"} +- [Planet Jekyll](https://github.com/planetjekyll/awesome-jekyll-plugins){:target="_blank"} + +## エディタ + + +- [jekyll-atom](https://atom.io/packages/jekyll){:target="_blank"}: AtomのJekyll用snippetsとツールのコレクション + +- [markdown-writer](https://atom.io/packages/markdown-writer){:target="_blank"}: Jekyllで使えるAtomのパッケージ。新しいポスト・ドラフトを作る、タグ・カテゴリの管理、リンク・画像の挿入ができ、便利なキーマッピングを追加します。 + +- [sublime-jekyll](https://github.com/23maverick23/sublime-jekyll){:target="_blank"}: Jekyllの静的サイト向けのSublime Textのパッケージ。このパッケージは、重要なテンプレートタグやフィルタへのアクセスを提供することにより、Jekyllサイトやポストの作成を簡単にします。同様に、一般的な補完機能や(日時記載ポスト向けの)date/datetimeコマンドが役に立つでしょう。[Package Control](https://packagecontrol.io/packages/Jekyll){:target="_blank"}かGitHubから手動でインストールできます。 + +- [vim-jekyll](https://github.com/parkr/vim-jekyll){:target="_blank"}: vimから離れることなく、新しいポストを作成したり、`jekyll build`を走らせるためのvimプラグイン。 + +- [WordPress2Jekyll](https://wordpress.org/plugins/wp2jekyll/){:target="_blank"}: WordPressをエディタのように使い、(自動で)Jekyllコンテンツに出力するWordPressプラグイン。WordPress2Jekyllは、全てのデバイスから簡単に管理できるサイトを作るため、この2つのシステムを結合しようとしています。 + + +## 便利なガイド + + +- [公式チュートリアル]({{ "/tutorials/home/" | relative_url }}) + +- [CloudCannon Academy](https://learn.cloudcannon.com/){:target="_blank"}は、[CloudCannon](https://cloudcannon.com/){:target="_blank"}による、人々がJekyllを起動し実行するのを助けるための、リソースのセットです。全てのスキルレベルをカバーし、すばらしいビデオチュートリアルもあります。 + +- [Jekyll Cheatsheet](https://learn.cloudcannon.com/jekyll-cheat-sheet/){:target="_blank"}では、Jekyllのフィルタや変数などが1ページにまとめられています。 + +- ["Creating and Hosting a Personal Site on GitHub"](http://jmcglone.com/guides/github-pages/){:target="_blank"} +- ['Build A Blog With Jekyll And GitHub Pages' on Smashing Magazine](https://www.smashingmagazine.com/2014/08/01/build-blog-jekyll-github-pages/){:target="_blank"} +- GitHub Pagesで公開しますか? [その目的に合うドキュメンテーションのページを確認してください]({{ "/docs/github-pages/" | relative_url }})。 + +- [Blogging with Git, Emacs and Jekyll](https://metajack.im/2009/01/23/blogging-with-git-emacs-and-jekyll/){:target="_blank"} +- [Tips for working with GitHub Pages Integration](https://gist.github.com/jedschneider/2890453){:target="_blank"} + +## 統合 + + +SaaSサービスをJekyllサイトでの機能的なバックエンドとして使用します。 + + +### コメント + + - [Staticman](https://staticman.net){:target="_blank"}: ユーザーが作成したコンテンツをJekyllサイトに追加する(free and open source) + + - [Talkyard](https://www.talkyard.io/blog-comments){:target="_blank"}: Jekyll等への埋め込みコメント (free and open source, or hosted serverless) + + +### コンテンツ管理 + + - [CloudCannon](https://cloudcannon.com/){:target="_blank"}: JekyllのCloud CMS + + - [Contentful](https://github.com/contentful/jekyll-contentful-data-import){:target="_blank"}: デジタルチームのためのコンテンツ基盤 + + - [Forestry.io](https://forestry.io/){:target="_blank"}: コミットする静的CMS + + - [Netlify CMS](https://www.netlifycms.org/){:target="_blank"}: Git workflowのためのOpen sourceコンテンツ管理 + + - [Siteleaf](https://www.siteleaf.com/){:target="_blank"}: 誰からも愛される、開発者向けBuilt + + - [Statictastic](https://www.statictastic.com/){:target="_blank"}: 静的サイトホスティング、公開とチームのためのコンテンツ管理 + + +### Webショップ + + - [Snipcart](https://snipcart.com/blog/static-site-e-commerce-part-2-integrating-snipcart-with-jekyll){:target="_blank"}: Jekyllサイトにショッピングカートを追加 + + +### フォーラム + + - [Getform](https://getform.io){:target="_blank"} + - [99Inbound](https://www.99inbound.com){:target="_blank"} + - [Formingo](https://www.formingo.co/guides/jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=Jekyll%20Documentation){:target="_blank"} + - [FormKeep](https://formkeep.com/guides/contact-form-jekyll?utm_source=github&utm_medium=jekyll-docs&utm_campaign=contact-form-jekyll){:target="_blank"} + - [Formspark](https://formspark.io/){:target="_blank"} + - [Formspree (open source)](https://formspree.io/){:target="_blank"} + - [formX](https://formx.stream){:target="_blank"} + - [Simple Form](https://getsimpleform.com/){:target="_blank"} + +### 検索 + + - [Algolia](https://blog.algolia.com/instant-search-blog-documentation-jekyll-plugin/){:target="_blank"}: Jekyllサイトに強力なインスタント検索を追加 + + - [CloudSh](https://cloudsh.com/generators/How-to-setup-search-on-Jekyll/){:target="_blank"}: 数行のJavaScriptのWebサイト検索 + + +## その他 評論 + + +- [How I'm using Jekyll in 2016](https://mademistakes.com/articles/using-jekyll-2016/){:target="_blank"} +- [Talkyard comments instructions for Jekyll](https://jekyll-demo.talkyard.io/2018/01/09/installation-instructions.html){:target="_blank"} +- [Static Comments with Jekyll & Staticman](https://mademistakes.com/articles/improving-jekyll-static-comments/){:target="_blank"} +- [Adding Ajax pagination to Jekyll](https://eduardoboucas.com/blog/2014/11/05/adding-ajax-pagination-to-jekyll.html){:target="_blank"} +- ['My Jekyll Fork', by Mike West](https://mikewest.org/2009/11/my-jekyll-fork){:target="_blank"} + + > "Jekyll is a well-architected throwback to a time before WordPress, when men were men, and HTML was static. I like the ideas it espouses, and have made a few improvements to it's core. Here, I'll point out some highlights of my fork in the hopes that they see usage beyond this site." + +- ['About this Website', by Carter Allen](http://cartera.me/2010/08/12/about-this-website/){:target="_blank"} + + > "Jekyll is everything that I ever wanted in a blogging engine. Really. It isn't perfect, but what's excellent about it is that if there's something wrong, I know exactly how it works and how to fix it. It runs on the your machine only, and is essentially an added"build" step between you and the browser. I coded this entire site in TextMate using standard HTML5 and CSS3, and then at the end I added just a few little variables to the markup. Presto-chango, my site is built and I am at peace with the world." + +- A way to [extend Jekyll](https://github.com/rfelix/jekyll_ext){:target="_blank"} without forking and modifying the Jekyll gem codebase and some [portable Jekyll extensions](https://wiki.github.com/rfelix/jekyll_ext/extensions){:target="_blank"} that can be reused and shared. +- [Using your Rails layouts in Jekyll](http://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll){:target="_blank"} +- [Jekpack](https://github.com/yfxie/jekpack/){:target="_blank"} an integration of Jekyll and Webpack to make them work together. diff --git a/pages/showcase.html b/pages/showcase.html new file mode 100644 index 0000000..58d52c0 --- /dev/null +++ b/pages/showcase.html @@ -0,0 +1,46 @@ +--- +layout: page +title: Showcase +permalink: /showcase/ +redirect_from: + - /docs/sites/ +--- + +

      Jekyll is used for all kinds of usecases. Here's some of our favorites:

      + + + + + + diff --git a/pages/team.md b/pages/team.md new file mode 100644 index 0000000..8332ab9 --- /dev/null +++ b/pages/team.md @@ -0,0 +1,29 @@ +--- +layout: page +title: The Jekyll Team +permalink: /team/ +--- + +## コアチーム + + +*Jekyllコアチームの責務は、Jekyllエコシステムを中心とした開発とコミュニティの成長を確実にすることです。* + + + +* Ashwin (@ashmaroli) +* Frank (@DirtyF) +* Matt (@mattr-) + +## 名誉コアチームメンバー + + +*名誉コアチームメンバーは、かつてJekyllのコアチームのメンバーでした。* + + + +* Alfred (@alfredxing) +* Nick (@qrush) +* Parker (@parkr) +* Tom (@mojombo)