diff --git a/_config.yml b/_config.yml index 8a61ea4..532aa92 100644 --- a/_config.yml +++ b/_config.yml @@ -1,25 +1,67 @@ -markdown: kramdown -highlighter: pygments -permalink: /news/:year/:month/:day/:title/ -excerpt_separator: "" - -gauges_id: 503c5af6613f5d0f19000027 -google_analytics_id: UA-50755011-1 - +--- +version: 3.8.5 +min_ruby_version: 2.4.0 +name: Jekyll • シンプルで、ブログのような、静的サイト +# name: Jekyll • Simple, blog-aware, static sites +description: プレーンテキストを静的サイトやブログに変えましょう +# description: Transform your plain text into static websites and blogs +url: http://jekyllrb-ja.github.io +# url: https://jekyllrb.com repository: https://github.com/jekyll/jekyll -help_url: https://github.com/jekyll/jekyll-help +timezone: America/Los_Angeles +# twitter: +# username: jekyllrb +logo: "/img/logo-2x.png" +# google_analytics_id: UA-50755011-1 +# google_site_verification: onQcXpAvtHBrUI5LlroHNE_FP0b2qvFyPq7VZw36iEY collections: docs: + permalink: "/:collection/:path/" + output: true + posts: + permalink: "/news/:year/:month/:day/:title/" + output: true + tutorials: output: true -name: Jekyll • Simple, blog-aware, static sites -description: Transform your plain text into static websites and blogs -# url: http://jekyllrb.com +defaults: +- scope: + path: _docs + type: docs + values: + layout: docs +- scope: + path: _posts + type: posts + values: + layout: news_item +- scope: + path: "" + values: + image: "/img/jekyll-og.png" -gems: - - jekyll-feed +plugins: +- jekyll-avatar +- jekyll-feed +- jekyll-mentions +- jekyll-redirect-from +- jekyll-seo-tag +- jekyll-sitemap +- jemoji -# jekyllrb-ja -exclude: [vendor, diff] -url: http://jekyllrb-ja.github.io +feed: + categories: + - release + +sass: + style: compressed + +exclude: +- .gitignore +- .jekyll-cache +- CNAME +- icomoon-selection.json +- README.md +- diff +- vendor \ No newline at end of file diff --git a/_data/docs.yml b/_data/docs.yml deleted file mode 100644 index bcdf352..0000000 --- a/_data/docs.yml +++ /dev/null @@ -1,47 +0,0 @@ -- title: Getting Started - docs: - - home - - quickstart - - installation - - usage - - structure - - configuration - -- title: Your Content - docs: - - frontmatter - - posts - - drafts - - pages - - static-files - - variables - - collections - - datafiles - - assets - - migrations - -- title: Customization - docs: - - templates - - permalinks - - pagination - - plugins - - extras - -- title: Deployment - docs: - - github-pages - - deployment-methods - - continuous-integration - -- title: Miscellaneous - docs: - - troubleshooting - - sites - - resources - - upgrading - -- title: Meta - docs: - - contributing - - history diff --git a/_data/docs_nav.yml b/_data/docs_nav.yml new file mode 100644 index 0000000..cf75f2d --- /dev/null +++ b/_data/docs_nav.yml @@ -0,0 +1,41 @@ +# - title: Getting Started +- title: 入門 + docs: + - link: /docs/ + - link: /docs/ruby-101/ + - link: /docs/installation/ + - link: /docs/community/ + - link: /docs/step-by-step/01-setup/ +# - title: Build +- title: ビルド + docs: + - link: /docs/usage/ + - link: /docs/configuration/ +# - title: Content +- title: コンテンツ + docs: + - link: /docs/pages/ + - link: /docs/posts/ + - link: /docs/front-matter/ + - link: /docs/collections/ + - link: /docs/datafiles/ + - link: /docs/assets/ + - link: /docs/static-files/ +# - title: Site Structure +- title: サイトの構成 + docs: + - link: /docs/structure/ + - link: /docs/liquid/ + - link: /docs/variables/ + - link: /docs/includes/ + - link: /docs/layouts/ + - link: /docs/permalinks/ + - link: /docs/themes/ + - link: /docs/pagination/ +# - title: Guides +- title: ガイド + docs: + - link: /docs/plugins/ + - link: /docs/migrations/ + - link: /docs/upgrading/ + - link: /docs/deployment/ diff --git a/_data/jekyll_filters.yml b/_data/jekyll_filters.yml new file mode 100644 index 0000000..f809183 --- /dev/null +++ b/_data/jekyll_filters.yml @@ -0,0 +1,570 @@ +# +# --------------------------------------------------------------------------------------- +# List of Liquid Filters provided by Jekyll Core that will be utilized for their +# documentation. +# +# To document a new filter, create a new "list-item" below with the following keys: +# name: : [REQUIRED] A string label that identifies the filter +# description: : [REQUIRED] A short description of what to expect from the filter +# version_badge: : [OPTIONAL] Jekyll version that introduced the filter +# examples: : [REQUIRED] A 'nested list' comprised of inputs and outputs +# input: : [REQUIRED] The filter syntax and usage +# output: : [OPTIONAL] The output from the filter +# +# Tip: Use YAML Block notations to "fold" a long string, or to "break" a long string +# to the following line. Block notations can also be used to avoid having to use +# backslashes to escape quotes. +# --------------------------------------------------------------------------------------- +# +# - name: Relative URL +# description: >- +# Prepend the baseurl value to the input. Useful if +# your site is hosted at a subpath rather than the root of the domain. +# examples: +# - input: '{{ "/assets/style.css" | relative_url }}' +# output: '/my-baseurl/assets/style.css' +# +# # +# +# - name: Absolute URL +# description: Prepend the url and baseurl value to the input. +# examples: +# - input: '{{ "/assets/style.css" | absolute_url }}' +# output: 'http://example.com/my-baseurl/assets/style.css' +# +# # +# +# - name: Date to XML Schema +# description: Convert a Date into XML Schema (ISO 8601) format. +# examples: +# - input: '{{ site.time | date_to_xmlschema }}' +# output: '2008-11-07T13:07:54-08:00' +# +# # +# +# - name: Date to RFC-822 Format +# description: Convert a Date into the RFC-822 format used for RSS feeds. +# examples: +# - input: '{{ site.time | date_to_rfc822 }}' +# output: 'Mon, 07 Nov 2008 13:07:54 -0800' +# +# # +# +# - name: Date to String +# description: Convert a date to short format. +# examples: +# - input: '{{ site.time | date_to_string }}' +# output: '07 Nov 2008' +# +# # +# +# - name: Date to String in ordinal US style +# description: 'Format a date to ordinal, US, short format.' +# version_badge: 3.8.0 +# examples: +# - input: '{{ site.time | date_to_string: "ordinal", "US" }}' +# output: 'Nov 7th, 2008' +# +# # +# +# - name: Date to Long String +# description: Format a date to long format. +# examples: +# - input: '{{ site.time | date_to_long_string }}' +# output: '07 November 2008' +# +# # +# +# - name: Date to Long String in ordinal UK style +# description: 'Format a date to ordinal, UK, long format.' +# version_badge: 3.8.0 +# examples: +# - input: '{{ site.time | date_to_long_string: "ordinal" }}' +# output: '7th November 2008' +# +# # +# +# - name: Where +# description: Select all the objects in an array where the key has the given value. +# examples: +# - input: '{{ site.members | where:"graduation_year","2014" }}' +# output: +# +# # +# +# - name: Where Expression +# description: Select all the objects in an array where the expression is true. +# version_badge: 3.2.0 +# examples: +# - input: |- +# {{ site.members | where_exp:"item", +# "item.graduation_year == 2014" }} +# output: +# - input: |- +# {{ site.members | where_exp:"item", +# "item.graduation_year < 2014" }} +# output: +# - input: |- +# {{ site.members | where_exp:"item", +# "item.projects contains 'foo'" }} +# output: +# +# # +# +# - name: Group By +# description: Group an array's items by a given property. +# examples: +# - input: '{{ site.members | group_by:"graduation_year" }}' +# output: |- +# [{"name"=>"2013", "items"=>[...]}, +# {"name"=>"2014", "items"=>[...]}] +# +# # +# +# - name: Group By Expression +# description: Group an array's items using a Liquid expression. +# version_badge: 3.4.0 +# examples: +# - input: |- +# {{ site.members | group_by_exp: "item", +# "item.graduation_year | truncate: 3, ''" }} +# output: |- +# [{"name"=>"201", "items"=>[...]}, +# {"name"=>"200", "items"=>[...]}] +# +# # +# +# - name: XML Escape +# description: Escape some text for use in XML. +# examples: +# - input: '{{ page.content | xml_escape }}' +# output: +# +# # +# +# - name: CGI Escape +# description: >- +# CGI escape a string for use in a URL. Replaces any special characters +# with appropriate %XX replacements. CGI escape normally +# replaces a space with a plus + sign. +# examples: +# - input: '{{ "foo, bar; baz?" | cgi_escape }}' +# output: 'foo%2C+bar%3B+baz%3F' +# +# # +# +# - name: URI Escape +# description: >- +# Percent encodes any special characters in a URI. +# URI escape normally replaces a space with %20. +# Reserved characters +# will not be escaped. +# examples: +# - input: '{{ "http://foo.com/?q=foo, \bar?" | uri_escape }}' +# output: 'http://foo.com/?q=foo,%20%5Cbar?' +# +# # +# +# - name: Number of Words +# description: Count the number of words in some text. +# examples: +# - input: '{{ page.content | number_of_words }}' +# output: 1337 +# +# # +# +# - name: Array to Sentence +# description: >- +# Convert an array into a sentence. Useful for listing tags. +# Optional argument for connector. +# examples: +# - input: '{{ page.tags | array_to_sentence_string }}' +# output: 'foo, bar, and baz' +# - input: '{{ page.tags | array_to_sentence_string: "or" }}' +# output: 'foo, bar, or baz' +# +# # +# +# - name: Markdownify +# description: Convert a Markdown-formatted string into HTML. +# examples: +# - input: '{{ page.excerpt | markdownify }}' +# output: +# +# # +# +# - name: Smartify +# description: 'Convert "quotes" into “smart quotes.”' +# examples: +# - input: '{{ page.title | smartify }}' +# output: +# +# # +# +# - name: Converting Sass/SCSS +# description: Convert a Sass- or SCSS-formatted string into CSS. +# examples: +# - input: '{{ some_sass | sassify }}' +# output: +# - input: '{{ some_scss | scssify }}' +# output: +# +# # +# +# - name: Slugify +# description: Convert a string into a lowercase URL "slug". See below for options. +# examples: +# - input: '{{ "The _config.yml file" | slugify }}' +# output: 'the-config-yml-file' +# - input: '{{ "The _config.yml file" | slugify: "pretty" }}' +# output: 'the-_config.yml-file' +# - input: '{{ "The _cönfig.yml file" | slugify: "ascii" }}' +# output: 'the-c-nfig-yml-file' +# - input: '{{ "The cönfig.yml file" | slugify: "latin" }}' +# output: 'the-config-yml-file' +# +# # +# +# - name: Data To JSON +# description: Convert Hash or Array to JSON. +# examples: +# - input: '{{ site.data.projects | jsonify }}' +# output: +# +# # +# +# - name: Normalize Whitespace +# description: Replace any occurrence of whitespace with a single space. +# examples: +# - input: '{{ "a \n b" | normalize_whitespace }}' +# output: +# +# # +# +# - name: Sort +# description: >- +# Sort an array. Optional arguments for hashes +# 1. property name +# 2. nils order (first or last). +# examples: +# - input: '{{ page.tags | sort }}' +# output: +# - input: '{{ site.posts | sort: "author" }}' +# output: +# - input: '{{ site.pages | sort: "title", "last" }}' +# output: +# +# # +# +# - name: Sample +# description: 'Pick a random value from an array. Optionally, pick multiple values.' +# examples: +# - input: '{{ site.pages | sample }}' +# output: +# - input: '{{ site.pages | sample: 2 }}' +# output: +# +# # +# +# - name: To Integer +# description: Convert a string or boolean to integer. +# examples: +# - input: '{{ some_var | to_integer }}' +# output: +# +# # +# +# - name: Array Filters +# description: >- +# Push, pop, shift, and unshift elements from an Array. +# These are NON-DESTRUCTIVE, i.e. they do not mutate the array, +# but rather make a copy and mutate that. +# examples: +# - input: '{{ page.tags | push: "Spokane" }}' +# output: '["Seattle", "Tacoma", "Spokane"]' +# - input: '{{ page.tags | pop }}' +# output: '["Seattle"]' +# - input: '{{ page.tags | shift }}' +# output: '["Tacoma"]' +# - input: '{{ page.tags | unshift: "Olympia" }}' +# output: '["Olympia", "Seattle", "Tacoma"]' +# +# # +# +# - name: Inspect +# description: Convert an object into its String representation for debugging. +# examples: +# - input: '{{ some_var | inspect }}' +# output: + +- name: Relative URL + description: >- + 入力値の前にbaseurlを追加する。サイトがrootドメインの場合よりサブパスでホストされている場合に便利です。 + examples: + - input: '{{ "/assets/style.css" | relative_url }}' + output: '/my-baseurl/assets/style.css' + +# + +- name: Absolute URL + description: 入力値の前にurlbaseurlを追加する。 + examples: + - input: '{{ "/assets/style.css" | absolute_url }}' + output: 'http://example.com/my-baseurl/assets/style.css' + +# + +- name: Date to XML Schema + description: DateをXML Schema (ISO 8601)フォーマットに変換する。 + examples: + - input: '{{ site.time | date_to_xmlschema }}' + output: '2008-11-07T13:07:54-08:00' + +# + +- name: Date to RFC-822 Format + description: DateをRSSフィードで使うthe RFC-822フォーマットに変換する。 + examples: + - input: '{{ site.time | date_to_rfc822 }}' + output: 'Mon, 07 Nov 2008 13:07:54 -0800' + +# + +- name: Date to String + description: dateをshortフォーマットに変換する。 + examples: + - input: '{{ site.time | date_to_string }}' + output: '07 Nov 2008' + +# + +- name: Date to String in ordinal US style + description: 'Format a date to ordinal, US, short format.' + version_badge: 3.8.0 + examples: + - input: '{{ site.time | date_to_string: "ordinal", "US" }}' + output: 'Nov 7th, 2008' + +# + +- name: Date to Long String + description: dateをlongフォーマットにする。 + examples: + - input: '{{ site.time | date_to_long_string }}' + output: '07 November 2008' + +# + +- name: Date to Long String in ordinal UK style + description: 'Format a date to ordinal, UK, long format.' + version_badge: 3.8.0 + examples: + - input: '{{ site.time | date_to_long_string: "ordinal" }}' + output: '7th November 2008' + +# + +- name: Where + description: キーで指定した値を持つ配列内のオブジェクトを全て選択する。 + examples: + - input: '{{ site.members | where:"graduation_year","2014" }}' + output: + +# + +- name: Where Expression + description: 式がtrueになる配列内の全てのオブジェクトを選択する。 + version_badge: 3.2.0 + examples: + - input: |- + {{ site.members | where_exp:"item", + "item.graduation_year == 2014" }} + output: + - input: |- + {{ site.members | where_exp:"item", + "item.graduation_year < 2014" }} + output: + - input: |- + {{ site.members | where_exp:"item", + "item.projects contains 'foo'" }} + output: + +# + +- name: Group By + description: 指定したプロパティで配列内のアイテムをグループ化する。 + examples: + - input: '{{ site.members | group_by:"graduation_year" }}' + output: |- + [{"name"=>"2013", "items"=>[...]}, + {"name"=>"2014", "items"=>[...]}] + +# + +- name: Group By Expression + description: Liquidの式を使用して、配列内のアイテムをグループ化する。 + version_badge: 3.4.0 + examples: + - input: |- + {{ site.members | group_by_exp: "item", + "item.graduation_year | truncate: 3, ''" }} + output: |- + [{"name"=>"201", "items"=>[...]}, + {"name"=>"200", "items"=>[...]}] + +# + +- name: XML Escape + description: XMLで使用するためにテキストをエスケープする。 + examples: + - input: '{{ page.content | xml_escape }}' + output: + +# + +- name: CGI Escape + description: >- + CGI escapeはURLで使用する文字列をエスケープする。特殊文字を適切な%XXに置き換える。CGI escapeは通常、スペースをプラス+にする。 + examples: + - input: '{{ "foo, bar; baz?" | cgi_escape }}' + output: 'foo%2C+bar%3B+baz%3F' + +# + +- name: URI Escape + description: >- + URI内の特殊文字をパーセントエンコードする。URIエスケープは通常スペースを%20に置き換る。予約文字はエスケープされない。 + examples: + - input: '{{ "http://foo.com/?q=foo, \bar?" | uri_escape }}' + output: 'http://foo.com/?q=foo,%20%5Cbar?' + +# + +- name: Number of Words + description: テキストのワード数を数える。 + examples: + - input: '{{ page.content | number_of_words }}' + output: 1337 + +# + +- name: Array to Sentence + description: >- + 配列をセンテンスに変換する。タグのリスト化に便利。オプションで接続文字を指定できる。 + examples: + - input: '{{ page.tags | array_to_sentence_string }}' + output: 'foo, bar, and baz' + - input: '{{ page.tags | array_to_sentence_string: "or" }}' + output: 'foo, bar, or baz' + +# + +- name: Markdownify + description: Markdown-formatted stringをHTMLに変換する。 + examples: + - input: '{{ page.excerpt | markdownify }}' + output: + +# + +- name: Smartify + description: '"quotes"を“smart quotes.”に変換する。' + examples: + - input: '{{ page.title | smartify }}' + output: + +# + +- name: Converting Sass/SCSS + description: Sass-やSCSS-formatted stringをCSSに変換する。 + examples: + - input: '{{ some_sass | sassify }}' + output: + - input: '{{ some_scss | scssify }}' + output: + +# + +- name: Slugify + description: stringを小文字のURL "slug"に変換する。オプションは下記をご覧ください。 + examples: + - input: '{{ "The _config.yml file" | slugify }}' + output: 'the-config-yml-file' + - input: '{{ "The _config.yml file" | slugify: "pretty" }}' + output: 'the-_config.yml-file' + - input: '{{ "The _cönfig.yml file" | slugify: "ascii" }}' + output: 'the-c-nfig-yml-file' + - input: '{{ "The cönfig.yml file" | slugify: "latin" }}' + output: 'the-config-yml-file' + +# + +- name: Data To JSON + description: HashやArrayをJSONに変換。 + examples: + - input: '{{ site.data.projects | jsonify }}' + output: + +# + +- name: Normalize Whitespace + description: すべての空白を単一の空白に置き換える。 + examples: + - input: '{{ "a \n b" | normalize_whitespace }}' + output: + +# + +- name: Sort + description: >- + 配列をソート。ハッシュのオプション引数 + 1. プロパティ名 + 2. nils order (firstlast). + examples: + - input: '{{ page.tags | sort }}' + output: + - input: '{{ site.posts | sort: "author" }}' + output: + - input: '{{ site.pages | sort: "title", "last" }}' + output: + +# + +- name: Sample + description: '配列からランダムに取得。オプションで複数を取得可能。 ' + examples: + - input: '{{ site.pages | sample }}' + output: + - input: '{{ site.pages | sample: 2 }}' + output: + +# + +- name: To Integer + description: stringやbooleanをintegerに変換。 + examples: + - input: '{{ some_var | to_integer }}' + output: + +# + +- name: Array Filters + description: >- + 配列のPush, pop, shift, and unshift属性。これらは破壊的ではありません。つまり、配列を変更するのではなく、コピーを作成してそれを変更します。 + examples: + - input: '{{ page.tags | push: "Spokane" }}' + output: '["Seattle", "Tacoma", "Spokane"]' + - input: '{{ page.tags | pop }}' + output: '["Seattle"]' + - input: '{{ page.tags | shift }}' + output: '["Tacoma"]' + - input: '{{ page.tags | unshift: "Olympia" }}' + output: '["Olympia", "Seattle", "Tacoma"]' + +# + +- name: Inspect + description: デバッグのためにオブジェクトをそのStringに変換する。 + examples: + - input: '{{ some_var | inspect }}' + output: diff --git a/_data/jekyll_variables.yml b/_data/jekyll_variables.yml new file mode 100644 index 0000000..41705ed --- /dev/null +++ b/_data/jekyll_variables.yml @@ -0,0 +1,306 @@ +# Variables provided by Jekyll core +# +# name: : name of the variable +# description: : content returned by the varialble + +# global: +# - name: site +# description: >- +# Site wide information + configuration settings from _config.yml. +# See below for details. +# - name: page +# description: >- +# Page specific information + the front matter. +# Custom variables set via the front matter will be available here. See below for details. +# - name: layout +# description: >- +# Layout specific information + the front matter. +# Custom variables set via front matter in layouts will be available here. +# - name: content +# description: >- +# In layout files, the rendered content of the Post or Page being wrapped. +# Not defined in Post or Page files. +# - name: paginator +# description: >- +# When the paginate configuration option is set, this variable becomes available +# for use. See Pagination for details. +# +# site: +# - name: site.time +# description: >- +# The current time (when you run the jekyll command). +# - name: site.pages +# description: >- +# A list of all Pages. +# - name: site.posts +# description: >- +# A reverse chronological list of all Posts. +# - name: site.related_posts +# description: >- +# If the page being processed is a Post, this contains a list of up to ten related Posts. +# By default, these are the ten most recent posts. For high quality but slow to compute +# results, run the jekyll command with the --lsi +# (latent semantic indexing) +# option. Also note GitHub Pages does not support the +# lsi option when generating sites. +# - name: site.static_files +# description: >- +# A list of all static files (i.e. +# files not processed by Jekyll's converters or the Liquid renderer). +# Each file has five properties: path, modified_time, +# name, basename and extname. +# - name: site.html_pages +# description: >- +# A subset of `site.pages` listing those which end in `.html`. +# - name: site.html_files +# description: >- +# A subset of `site.static_files` listing those which end in `.html`. +# - name: site.collections +# description: >- +# A list of all the collections (including posts). +# - name: site.data +# description: >- +# A list containing the data loaded from the YAML files located in the _data +# directory. +# - name: site.documents +# description: >- +# A list of all the documents in every collection. +# - name: site.categories.CATEGORY +# description: >- +# The list of all Posts in category CATEGORY. +# - name: site.tags.TAG +# description: >- +# The list of all Posts with tag TAG. +# - name: site.url +# description: >- +# Contains the url of your site as it is configured in the _config.yml. +# For example, if you have url: http://mysite.com in your configuration file, +# then it will be accessible in Liquid as site.url. For the development +# environment there is an +# exception, if you are running jekyll serve in a development environment +# site.url will be set to the value of host, port, +# and SSL-related options. This defaults to url: http://localhost:4000. +# - name: "site.[CONFIGURATION_DATA]" +# description: >- +# All the variables set via the command line and your _config.yml are available +# through the site variable. For example, if you have foo: bar in +# your configuration file, then it will be accessible in Liquid as site.foo. +# Jekyll does not parse changes to _config.yml in +# watch mode, you must restart Jekyll to see changes to variables. +# +# page: +# - name: page.content +# description: >- +# The content of the Page, rendered or un-rendered depending upon +# what Liquid is being processed and what page is. +# - name: page.title +# description: >- +# The title of the Page. +# - name: page.excerpt +# description: >- +# The un-rendered excerpt of a document. +# - name: page.url +# description: >- +# The URL of the Post without the domain, but with a leading slash, e.g. +# /2008/12/14/my-post.html +# - name: page.date +# description: >- +# The Date assigned to the Post. This can be overridden in a Post’s front matter by specifying +# a new date/time in the format YYYY-MM-DD HH:MM:SS (assuming UTC), or +# YYYY-MM-DD HH:MM:SS +/-TTTT (to specify a time zone using an offset from UTC. +# e.g. 2008-12-14 10:30:00 +0900). +# - name: page.id +# description: >- +# An identifier unique to a document in a Collection or a Post (useful in RSS feeds). e.g. +# /2008/12/14/my-post/my-collection/my-document +# - name: page.categories +# description: >- +# The list of categories to which this post belongs. Categories are derived from the directory +# structure above the _posts directory. For example, a post at +# /work/code/_posts/2008-12-24-closures.md would have this field set to +# ['work', 'code']. These can also be specified in the +# front matter. +# - name: page.collection +# description: >- +# The label of the collection to which this document belongs. e.g. posts for a post, or +# puppies for a document at path _puppies/rover.md. If not part of a +# collection, an empty string is returned. +# - name: page.tags +# description: >- +# The list of tags to which this post belongs. These can be specified in the +# front matter. +# - name: page.dir +# description: >- +# The path between the source directory and the file of the post or page, e.g. +# /pages/. +# This can be overridden by permalink in the front matter. +# - name: page.name +# description: >- +# The filename of the post or page, e.g. about.md +# - name: page.path +# description: >- +# The path to the raw post or page. Example usage: Linking back to the page or post’s source +# on GitHub. This can be overridden in the front matter. +# - name: page.next +# description: >- +# The next post relative to the position of the current post in site.posts. +# Returns nil for the last entry. +# - name: page.previous +# description: >- +# The previous post relative to the position of the current post in site.posts. +# Returns nil for the first entry. +# +# paginator: +# - name: paginator.page +# description: The number of the current page +# - name: paginator.per_page +# description: Number of posts per page +# - name: paginator.posts +# description: Posts available for the current page +# - name: paginator.total_posts +# description: Total number of posts +# - name: paginator.total_pages +# description: Total number of pages +# - name: paginator.previous_page +# description: >- +# The number of the previous page, or nil if no previous page exists +# - name: paginator.previous_page_path +# description: >- +# The path to the previous page, or nil if no previous page exists +# - name: paginator.next_page +# description: >- +# The number of the next page, or nil if no subsequent page exists +# - name: paginator.next_page_path +# description: >- +# The path to the next page, or nil if no subsequent page exists + +global: + - name: site + description: >- + サイト全体の情報と_config.ymlの設定。詳細は下記をご覧ください。 + - name: page + description: >- + ページ固有の情報とfront matterの情報。ページのfront matterで設定したカスタム変数はこれで使用できます。詳細は下記をご覧ください。 + - name: layout + description: >- + レイアウト固有の情報とfront matterの情報。レイアウトのfront matterで設定したカスタム変数はこれで使用できます。 + - name: content + description: >- + レイアウトファイルで、ポストやページの内容を取り込むために使用します。ポストやページのファイルでは定義されていません。 + - name: paginator + description: >- + paginateが設定されているときに、この変数は使用可能です。詳細はPaginationをご覧ください。 + +site: + - name: site.time + description: >- + 現在の時刻。(jekyllを実行した時) + - name: site.pages + description: >- + 全てのページのリスト。 + - name: site.posts + description: >- + 全てのポストの逆日時順ポスト。 + - name: site.related_posts + description: >- + 処理を行っているページがポストの場合、最大10件の関連するポストのリストが含まれます。デフォルトでは、最新の10件のポストです。計算結果が遅いですが高品質のためには、jekyllコマンド実行時に--lsi + (latent semantic indexing)オプションを追加します。GitHub Pagesではサイト生成時のlsiオプションをサポートしていません。 + - name: site.static_files + description: >- + 全ての静的ファイル (JekyllやLiquidの処理が行われないファイル)のリスト。各ファイルに5つのプロパティがあります:path, modified_time, + name, basename and extname。 + - name: site.html_pages + description: >- + `site.pages`のサブセットで`.html`で終わるファイルのリスト。 + - name: site.html_files + description: >- + `site.static_files`のサブセットで`.html`で終わるファイルのリスト。 + - name: site.collections + description: >- + (ポストを含む)コレクションのリスト。 + - name: site.data + description: >- + _dataディレクトリのYAMLファイルからロードされたデータのリスト。 + - name: site.documents + description: >- + 全てのコレクションのドキュメントのリスト。 + - name: site.categories.CATEGORY + description: >- + CATEGORYカテゴリのポストのリスト。 + - name: site.tags.TAG + description: >- + TAGタグのポストのリスト。 + - name: site.url + description: >- + _config.ymlで設定されているサイトのURLです。例えば、設定ファイルでurl: http://mysite.comとすると、site.urlとしてLiquidからアクセスできます。開発環境でjekyll serveを実行した場合は異なり、site.urlhostportとSSL関連オプションで設定されます。デフォルトでは、url: http://localhost:4000です。 + - name: "site.[CONFIGURATION_DATA]" + description: >- + コマンドやインや_config.ymlsite変数として登録した値です。例えば、設定ファイルにfoo: barとあれば、Liquidからsite.fooでアクセスできます。Jekyllはwatchでは_config.ymlの変更を反映できません。変数を変更した場合はJekyllをリスタートしてください。 + +page: + - name: page.content + description: >- + ページのコンテンツ。Liquidの処理やどんなpageなのかに応じてレンダリングされたりされなかったりします。 + - name: page.title + description: >- + ページのタイトル。 + - name: page.excerpt + description: >- + ドキュメントのレンダリングされていない抜粋。 + - name: page.url + description: >- + ドメインを含まないポストのURL。/2008/12/14/my-post.htmlの様にスラッシュから始まります。 + - name: page.date + description: >- + ポストに割り当てられた日付。ポストのfront matterで日時を上書きできます。フォーマットはYYYY-MM-DD HH:MM:SS(UTC)かYYYY-MM-DD HH:MM:SS +/-TTTT(2008-12-14 10:30:00 +0900などUTCからの差で特定のタイムゾーンを指定) + - name: page.id + description: >- + (RSSフィードに便利な)コレクションやポストのドキュメントのユニークID。/2008/12/14/my-post/my-collection/my-documentなど。 + - name: page.categories + description: >- + ポストのカテゴリのリスト。カテゴリは_postsの所属するディレクトリで決まります。例えば、/work/code/_posts/2008-12-24-closures.mdのカテゴリは['work', 'code']です。front matterでも指定できます。 + - name: page.collection + description: >- + そのドキュメントが属するコレクションのラベル。ポストのpostsや、_puppies/rover.mdドキュメントのpuppies。コレクションで無ければ、空文字が返されます。 + - name: page.tags + description: >- + そのポストのタグのリスト。front matterで指定できます。 + - name: page.dir + description: >- + ソースディレクトリとポストやページの間のパス。/pages/など。front matterpermalinkで上書きできます。 + - name: page.name + description: >- + ポストやページのファイル名。about.mdなど。 + - name: page.path + description: >- + ページやポストの元ファイルへのパス。使用例:GitHubでページやポストのソースへバックリンクを行う。front matterで無効にできます。 + - name: page.next + description: >- + site.postsでの現在のポストから相対的に次のポスト。最後の投稿の場合は、nilが返されます。 + - name: page.previous + description: >- + site.postsでの現在のポストから相対的に前のポスト。最初の投稿の場合は、nilが返されます。 + +paginator: + - name: paginator.page + description: 現在のページ番号 + - name: paginator.per_page + description: 1ページに表示するポストの数 + - name: paginator.posts + description: 現在のページに表示されているポスト + - name: paginator.total_posts + description: ポストの総数 + - name: paginator.total_pages + description: ページの総数 + - name: paginator.previous_page + description: >- + 前のページのページ番号。無い場合はnil。 + - name: paginator.previous_page_path + description: >- + 前のページへのパス。無い場合はnil。 + - name: paginator.next_page + description: >- + 次のページのページ番号。無い場合はnil。 + - name: paginator.next_page_path + description: >- + 次のページへのパス。無い場合はnil。 diff --git a/_data/jekyllconf-talks.yml b/_data/jekyllconf-talks.yml new file mode 100644 index 0000000..6ef34e4 --- /dev/null +++ b/_data/jekyllconf-talks.yml @@ -0,0 +1,167 @@ +- speaker: Ben Balter + twitter_handle: BenBalter + youtube_id: Z-37y1qaoxc + topic: GitHub Pages behind the scenes + year: 2015 + +- speaker: Brandon Mathis + twitter_handle: imathis + youtube_id: KS6e4XxY2H4 + topic: What the heck is Octopress and why should I care? + year: 2015 + +- speaker: Brian Rinaldi + twitter_handle: remotesynth + youtube_id: vT7DhK5zbv0 + topic: Comparing Jekyll with the Competition + year: 2015 + +- speaker: Kyle Rush + twitter_handle: kylerush + youtube_id: ia8vsuiXiL0 + topic: Meet the Obama Campaign's $250 Million Fundraising Platform + year: 2015 + +- speaker: Michael Jovel + twitter_handle: mjovel + youtube_id: 8zSHG6XU_xY + topic: Building Living Style Guides with Jekyll + year: 2015 + +- speaker: Mike Neumegen + twitter_handle: mikeneumegen + youtube_id: NuChR_YdjrI + topic: A CMS for Jekyll + year: 2015 + +- speaker: Parker Moore + twitter_handle: parkr + youtube_id: y2SbOIQ5nSA + topic: Jekyll 3 and Beyond + year: 2015 + +- speaker: Tom Preston-Werner + twitter_handle: mojombo + youtube_id: BMve1OCKj6M + topic: Some crazy ideas I have for the future of static sites + year: 2015 + +- speaker: Allison Zadrozny + twitter_handle: allizad + youtube_id: Rsc0Mmp1qc8 + topic: Elasticsearch for Jekyll + year: 2016 + +- speaker: Amy Johnston + twitter_handle: AmyJohnstonXL + youtube_id: HR12JiUI2Zc + topic: Jekyll for Technical Documentation + year: 2016 + +- speaker: Bud Parr + twitter_handle: budparr + youtube_id: A1nTuNjoNbg + topic: Real World Content Strategy with Jekyll + year: 2016 + +- speaker: George Phillips + twitter_handle: gphillips_nz + youtube_id: skb_XWABEDc + topic: Building client-editable Jekyll sites + year: 2016 + +- speaker: Ire Aderinokun + twitter_handle: ireaderinokun + youtube_id: PRKV5IGKF2c + topic: Using Jekyll for Rapid CSS Testing + year: 2016 + +- speaker: Jon Chan + twitter_handle: JonHMChan + youtube_id: vDeKPs6xpOM + topic: Stack Overflow on Jekyll + year: 2016 + +- speaker: Julio Faerman + twitter_handle: juliodevrel + youtube_id: SOMonG8Iqak + topic: Jekyll on AWS + year: 2016 + +- speaker: Katy DeCorah + twitter_handle: katydecorah + youtube_id: s84wFRD8vfE + topic: Unconventional use cases for Jekyll + year: 2016 + +- speaker: David Darnes + twitter_handle: DavidDarnes + youtube_id: Y4qwpN40Dvg + topic: Doing a lot with a little + year: 2016 + +- speaker: Ronan Berder + twitter_handle: hunvreus + youtube_id: TteAQq25_Ns + topic: Designing fast websites with Jekyll + year: 2016 + +- speaker: David Von Lehman + twitter_handle: davidvlsea + youtube_id: wMlPlKCZfEk + topic: Continuous deployment of Jekyll sites powered by Docker + year: 2016 + +- speaker: David Jones + twitter_handle: d_jones + youtube_id: 4XxYQ7efk0E + topic: Building our agency site with Jekyll + year: 2016 + +- speaker: Scott Hewitt + twitter_handle: scotthewitt + youtube_id: qSd3pXQaPsE + topic: Jekyll For Every Case + year: 2016 + +- speaker: Tim Carry + twitter_handle: pixelastic + youtube_id: ivMML1J4ABY + topic: Algolia search on Jekyll sites + year: 2016 + +- speaker: Nils Borchers + twitter_handle: nilsbo + youtube_id: DtNMjuv6Rbo + topic: Building a living brand guide with Jekyll and Hologram + year: 2016 + +- speaker: Mike Neumegen + twitter_handle: mikeneumegen + youtube_id: rJ5EhVmTR7I + topic: Learning resources for the Jekyll community + year: 2016 + +- speaker: Oliver Pattison + twitter_handle: olivermakes + youtube_id: BIf6oNpGl74 + topic: Responsive srcset images with imgix + year: 2016 + +- speaker: Michael Lee + twitter_handle: michaelsoolee + youtube_id: F4bJRLEvXIc + topic: Jekyll, Your Website's Baseplate + year: 2016 + +- speaker: Paul Webb + twitter_handle: NetOpWibby + youtube_id: BRB5DgAE5nM + topic: Deploy Jekyll Like A Boss + year: 2016 + +- speaker: Tom Johnson + twitter_handle: tomjohnson + youtube_id: nq1AUB72GCQ + topic: Overcoming challenges in using Jekyll for documentation projects + year: 2016 diff --git a/_data/primary_nav.yml b/_data/primary_nav.yml new file mode 100644 index 0000000..f946278 --- /dev/null +++ b/_data/primary_nav.yml @@ -0,0 +1,20 @@ +- title: Home + link: / + show_on_mobile: true + target: _self +- title: Docs + link: /docs/ + show_on_mobile: true + target: _self +- title: Resources + link: /resources/ + show_on_mobile: true + target: _self +- title: Showcase + link: https://jekyllrb.com/showcase/ + show_on_mobile: false + target: _blank +- title: News + link: https://jekyllrb.com/news/ + show_on_mobile: true + target: _blank diff --git a/_data/showcase.yml b/_data/showcase.yml new file mode 100644 index 0000000..ffd6646 --- /dev/null +++ b/_data/showcase.yml @@ -0,0 +1,241 @@ +- name: Tom Preston Werner Blog + url: http://tom.preston-werner.com/ + categories: + - personal + - blog +- name: GitHub On Demand Training + url: https://services.github.com/on-demand/ + categories: + - software + - knowledgebase +- name: Vesterheim Norwegian-American Museum + url: http://vesterheim.org/ + categories: + - marketing-site +- name: KOTN + url: https://kotn.com/ + categories: + - marketing-site +- name: MvvmCross + url: https://www.mvvmcross.com/ + categories: + - software + - marketing-site +- name: Vidgrid + url: https://www.vidgrid.com/ + categories: + - software + - marketing-site +- name: Bitcoin + url: https://bitcoin.org/en/ + categories: + - software + - marketing-site +- name: Mapwize + url: https://www.mapwize.io/ + categories: + - software + - marketing-site +- name: Auth0 Blog + url: https://auth0.com/blog/ + categories: + - software + - blog +- name: AWS Amplify + url: https://aws-amplify.github.io/ + categories: + - open-source + - marketing-site +- name: Yeoman + url: http://yeoman.io/ + categories: + - open-source + - marketing-site +- name: Ionic Framwork + url: https://ionicframework.com/ + categories: + - software + - marketing-site +- name: Release Management Blog + url: https://release.mozilla.org/ + categories: + - software + - blog +- name: Freedom of Information Act + url: https://www.foia.gov/ + categories: + - government +- name: Art & About Sydney + url: https://www.artandabout.com.au/ + categories: + - government +- name: Passbolt Help + url: https://help.passbolt.com/ + categories: + - knowledgebase +- name: We are COLLINS + url: https://www.wearecollins.com/ + categories: + - agency +- name: Light Burn + url: https://lightburn.co/ + categories: + - agency +- name: italia.it + url: https://developers.italia.it/ + categories: + - community +- name: Sydney New Years Eve + url: https://www.sydneynewyearseve.com/ + categories: + - government +- name: Login.gov + url: https://login.gov/ + categories: + - government +- name: plainlanguage.gov + url: https://plainlanguage.gov/ + categories: + - government +- name: U.S. Web Design Standards + url: https://standards.usa.gov/ + categories: + - government +- name: Grantmaker Search + url: https://www.grantmakers.io/ + categories: + - marketing-site +- name: Rehan Butt + url: http://rehanbutt.com/ + categories: + - personal + - portfolio +- name: The Markdown Guide + url: https://www.markdownguide.org/ + categories: + - knowledgebase +- name: PROBOT + url: https://probot.github.io/ + categories: + - documentation +- name: Matt Grey + url: https://himatt.com/ + categories: + - personal + - portfolio +- name: frame.ai + url: https://frame.ai/ + categories: + - software + - marketing-site +- name: AdHawk + url: https://www.tryadhawk.com/ + categories: + - agency +- name: City of Boston Budget + url: https://budget.boston.gov/ + categories: + - government +- name: Lattice + url: https://latticehq.com/ + categories: + - software + - marketing-site +- name: MailTape + url: https://www.mailta.pe/ + categories: + - other +- name: Digital Democracy + url: http://www.digital-democracy.org/ + categories: + - other +- name: HTML Reference + url: http://htmlreference.io/ + categories: + - documentation +- name: CSS Reference + url: http://cssreference.io/ + categories: + - documentation +- name: Chain + url: https://chain.com/ + categories: + - marketing-site +- name: Boxy Suite + url: https://www.boxysuite.com/ + categories: + - marketing-site + - software +- name: Pattern Lab + url: http://patternlab.io/ + categories: + - documentation +- name: IBM MobileFirst Foundation + url: https://mobilefirstplatform.ibmcloud.com/ + categories: + - documentation +- name: 18F + url: https://18f.gsa.gov/ + categories: + - agency + - government +- name: Mapbox + url: https://mapbox.com/ + categories: + - marketing-site +- name: Development Seed + url: https://developmentseed.org/ + categories: + - agency +- name: Isomer - Singapore Government Static Websites + url: https://isomer.gov.sg/ + categories: + - government +- name: SiteLeaf + url: https://siteleaf.com + categories: + - software + - marketing-site +- name: CloudCannon + url: https://cloudcannon.com/ + categories: + - software + - marketing-site +- name: Ruby on Rails + url: http://rubyonrails.org/ + categories: + - marketing-site + - documentation +- name: White House Social and Behavioral Sciences Team + url: https://sbst.gov/ + categories: + - government +- name: UN World Statistics + url: https://worldstatisticsday.org + categories: + - government +- name: Sketch App + url: https://sketchapp.com/ + categories: + - software + - marketing-site +- name: Netflix Devices + url: https://devices.netflix.com/en/ + categories: + - marketing-site +- name: TwitchCon + url: https://www.twitchcon.com/ + categories: + - marketing-site + - conference +- name: Twitch Developer Documentation + url: https://dev.twitch.tv/ + categories: + - marketing-site + - documentation +- name: Spotify for Developers + url: https://developer.spotify.com + categories: + - marketing-site + - documentation + - software diff --git a/_data/tutorials.yml b/_data/tutorials.yml new file mode 100644 index 0000000..de06fcb --- /dev/null +++ b/_data/tutorials.yml @@ -0,0 +1,13 @@ +- title: Tutorials + tutorials: + - home + - video-walkthroughs + - navigation + - orderofinterpretation + - custom-404-page + - convert-site-to-jekyll + - using-jekyll-with-bundler + +#- title: Another section +# tutorials: +# - sample diff --git a/_docs/assets.md b/_docs/assets.md index 2413d89..7ba464a 100644 --- a/_docs/assets.md +++ b/_docs/assets.md @@ -1,131 +1,122 @@ --- -layout: docs title: Assets -prev_section: datafiles -next_section: migrations permalink: /docs/assets/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - +Jekyllは[Sass](https://sass-lang.com/){:target="_blank"}の組み込みをサポートし、Ruby gemで[CoffeeScript](https://coffeescript.org/){:target="_blank"}を使用することができます。これらを使用するには、適切な拡張子(`.sass`か`.scss`か`.coffee`)のファイルを作成し、下記のように***2行の3つのダッシュで始める***必要があります。 -Jekyll は Sass と CoffeeScript の組み込みをサポートしています。 -それらを使うためには、適切な拡張子名のファイルを作成( `.sass`, `.scss` や `.coffee` の一つ) -し、ファイルを2行の3ダッシュで開始します、このように: + - - -{% highlight sass %} +```sass --- --- -// コンテンツのはじまり +// start content .my-definition font-size: 1.2em -{% endhighlight %} +``` - - -Jekyll はこれらのファイルを通常ページと同一に扱われ、 -その中で出力ファイルはもとファイルと同一ディレクトリに配置されます。 -例えば、あなたが `/css/styles.scss` という名前のファイルを -サイトのソースフォルダに持っていた場合、 -Jekyll はそれを処理し、そしてサイトの指定フォルダの下に -`/css/styles.css` を配置します。 - - +`css/styles.css`. --> + +
+
JekyllはAssetファイルの全てのLiquidタグとフィルタを処理します。
+ +

Liquidテンプレート文法と競合するMustache + や他のJavaScriptテンプレート言語を使用している場合、コードを{% raw %}{% endraw %}で囲む必要があります。

+ +
## Sass/SCSS - +Jekyllは、Sassの変換を特定の方法でカスタマイズできるようにします。 -Jekyll は特定の方法で Sass 変換をカスタマイズする事ができます。 + - +全ての部品を`sass_dir`に配置します。デフォルトは、`/_sass`です。メインのSCSSやSassファイルを、`/css`のような出力後に配置したいフォルダに入れます。例は、[JekyllでSassをサーポーとしている例][example-sass]を見てください。 -もし、あなたが Sass の `@import` 文を使用している場合は、 Sass ファイルを含む -`sass_dir` が ベースディレクトリに設定されていることを保障する必要があります。 -次いで、あなたはこうしてそれを行うことができます: + - +Sass `@import`を使用している場合は、`sass_dir`がSassファイルのベースディテクとりに設定されていることを確認してください。 -{% highlight yaml %} -sass: - sass_dir: _sass -{% endhighlight %} + - +``` -Sass コンバータはデフォルトで `_sass` を設定します。 +Sassコンバータは`sass_dir`をデフォルトで`_sass`に設定します。 - + -また、 `_config.yml` ファイルの `style` オプションで -出力スタイルを設定することもできます。 +[example-sass]: https://github.com/jekyll/jekyll-sass-converter/tree/master/docs - +
+
sass_dirはSassにのみ使用できます。
+ +

-{% highlight yaml %} -sass: - style: :compressed -{% endhighlight %} + sass_dirはSassをインポートするためのロードパスになるだけで、それ以外ではないことに注意してください。Jekyllはこのディレクトリのファイルは知らないということを意味します。ここのファイルには空のfront matterを含めるべきではありません。含んでいたとしても、変換されることはありません。このフォルダは、インポート用のファイルのみです。 +

+ +
- + +```yaml sass: - style: :compressed -{% endhighlight %} ---> + style: compressed +``` + +これらはSassに渡されるので、Sassがサポートする出力スタイルオプションはすべて、ここでも有効です。 + + + + +## Coffeescript + +CoffeeScriptはJekyll 3.0以上で有効です。 + + + +* `jekyll-coffeescript` gemをインストールします +* `_config.yml`に下記を確実に書き込んでください。 -これは Sass に渡されたため、 -Sass の任意の出力スタイルのオプションサポートはここでも有効になります。 + - +```yaml +plugins: + - jekyll-coffeescript +``` diff --git a/_docs/code_of_conduct.md b/_docs/code_of_conduct.md new file mode 100644 index 0000000..6dcd46f --- /dev/null +++ b/_docs/code_of_conduct.md @@ -0,0 +1,127 @@ +--- +title: 行動規範 +permalink: "/docs/code_of_conduct/" +note: This file is autogenerated. Edit /CODE_OF_CONDUCT.markdown instead. +redirect_from: "/conduct/index.html" +editable: false +--- + + +## 誓約 + + +オープンで歓迎される環境を促進するために、私たちは貢献者及びメンテナンス者として、誰に対してもハラスメントなく、次の事柄にかかわらず、プロジェクトとコミュニティに参加します。年齢、体格、身体障害、人種、性別、性同一性とその表現、経験のレベル、教育、社会経済的地位、国籍、個人的な外見、人種、宗教、や性的アイデンティティとその方向性。 + + + +## スタンダード + + +前向きな環境の構築に貢献する行動の例は以下が含まれています。 + + + +* 歓迎的で包括的な言葉を使う +* 異なる視点や経験を尊重する +* 建設的な批判を優雅に受け入れる +* コミュニティにとって何が最善なのかに焦点を当てる +* 他のコミュニティメンバーに共感を示す + + + +参加者による容認できない行動の例は次の様な事柄です。 + + + +* 性的表現の言語や画像の使用、および歓迎されない性的注意や進言 +* トローリング、侮辱的/軽蔑的なコメント、および個人的または政治的攻撃 +* 公開またはプライベートの嫌がらせ +* 許可なく、他者の電子的アドレスやリアルの住所など、他者の個人情報を公開すること +* 職業的に不適切と合理的に考えられるその他の行為 + + + +## 責任 + + +プロジェクト管理者は、許容できる行動の基準を明確にする責任があり、許容できない行動が発生した場合には、それに応じて適切かつ公正な是正措置を講じることが求められます。 + + + +プロジェクト管理者は、この行動規範に合わないコメント、コミット、コード、ウィキの編集、問題、その他の貢献を削除、編集、または棄却する、あるいはその他の行為を一時的または恒久的に禁止する権限を持ちます。それらは不適切、脅迫的、攻撃的、または有害と見なします。 + + + +## 範囲 + + +この行動規範は、個人がプロジェクトまたはそのコミュニティを代表している場合に、プロジェクトスペース内および公共スペース内の両方に適用されます。プロジェクトまたはコミュニティを代表する例としては、公式のプロジェクトEメールアドレスの使用、公式のソーシャルメディアアカウントによる投稿、オンラインまたはオフラインのイベントでの代表者としての行動などがあります。プロジェクトの表現は、プロジェクト管理者によって定義がさらに明確にされる可能性があります。 + + + +## 実施 + + +虐待、嫌がらせ、またはその他の容認できない行動が見られた場合は、プロジェクトチームの[olivia@jekyllrb.com](mailto:olivia@jekyllrb.com)に連絡してください。すべての苦情はレビューおよび調査され、必要かつ状況に適していると思われる対応がとられます。プロジェクトチームは、インシデントの報告者に関して機密性を維持する義務があります。特定の執行方針の詳細は別に掲載される可能性があります。 + + + +誠意を持って行動規範を遵守しない、または執行しないプロジェクト管理者は、他のプロジェクトの指導者の決定に応じて一時的または恒久的な影響を受ける可能性があります。 + + + +## 帰属 + + +この行動規範は、[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html){:target="_blank"}で入手可能な[寄稿者規約][homepage]、バージョン1.4から改訂されたものです。 + + + +[homepage]: https://www.contributor-covenant.org + +この行動規範に関するよくある質問への回答は、[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq){:target="_blank"}をご覧ください。 + + diff --git a/_docs/collections.md b/_docs/collections.md index 5cc827c..2fb4f38 100644 --- a/_docs/collections.md +++ b/_docs/collections.md @@ -1,285 +1,240 @@ --- -layout: docs -title: Collection -prev_section: variables -next_section: datafiles +title: コレクション permalink: /docs/collections/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - +--- --> -
-
Collectionのサポートは確定しておらず、変更される可能性があります。
-

これは実験的な機能であり、APIはこの機能が安定するまでは変更される可能性が高いです。

+コレクションは、チームのメンバーや会議でのトークなどの関連コンテンツをグループ化するのに最適な方法です。 + + + +## セットアップ + + +コレクションを使用するには、まず`_config.yml`で定義します。例として、staff membersのコレクションを作成します。 + + + +```yaml +collections: + - staff_members +``` + +必要に応じて、設定でコレクションのメタデータを指定できます。 + + + +```yaml +collections: + staff_members: + people: true +``` + +
+
コレクションをまとめる {%- include docs_version_badge.html version="3.7.0" -%}
+ + +

collections_dir: my_collectionsで全てのコレクションをまとめるディレクトリを指定できます。

+ + +

するとJekyllは、booksコレクションをmy_collections/_booksで、recipesコレクションをmy_collections/_recipesで見つけるようになります。

+
- +

collections_dir: my_collectionsでコレクションをひとまとめにしたなら、_draftsmy_collections/_draftsに、_postsmy_collections/_postsに移動してください。コレクションディレクトリの名前はアンダースコア("_")で始められないことに注意してください。

+
---> -PostとPageですべてがまかなえるわけではありません。関わっているオープンソースプロジェクトにおける決めごとをまとめたり、チームメンバーの紹介をしたり、カンファレンスでの発表の記録を残したりしたくなることもあるでしょう。 -Collectionを使えば、新しいタイプのドキュメント、つまり通常ではPageやPostのように振る舞い、しかし一方で、固有の属性と名前空間を持ったもの、を定義することができます。 +## コンテンツの追加 + - +対応するフォルダ(`/_staff_members`など)を作成して、ドキュメントを追加します。front matterがある場合はfront matterが処理され、front matterより後の全部がドキュメントの`content`とされます。front matterが無い場合は、Jekyllは[静的ファイル]({{ "docs/static-files/" | relative_url }})として(`_site`など)変換先に、そのままコピーを行います。front matterがある場合は、Jekyllはコレクション内のファイルの処理を行いますが、コレクションのメタデータに`output: true`が設定されていなければディスクに書き込みません。 -## Collectionの使い方 + - +上記で設定したコレクションにstaff memberを追加する方法の例です。ファイル名は`./_staff_members/jane.md`で、内容は以下の通りです。 -### ステップ1:Jekyllにあなたのコレクションを読み込ませる + - +```markdown +--- +name: Jane Doe +position: Developer +--- +Jane has worked on Jekyll for the past *five years*. +``` -サイトの`_config.yml`に以下を追加します(`my_collection`は自身のコレクション名に置き換えてください)。 +
+
ディレクトリは正しい名前にしてください
+ +

+ フォルダは_config.ymlファイルで定義した名前で、前に_を追加します。 +

+ +
- +## 出力 + -{% highlight yaml %} -collections: -- my_collection -{% endhighlight %} +これで`site.staff_members`をページで繰り返し処理して、各staff memberの内容を出力できます。ポストと同様、ドキュメント本文には`content` 変数を使用してアクセスします。 - + -この設定でコレクションのメタデータを指定することもできます。 +{% raw %} +```liquid +{% for staff_member in site.staff_members %} +

{{ staff_member.name }} - {{ staff_member.position }}

+

{{ staff_member.content | markdownify }}

+{% endfor %} +``` +{% endraw %} - +コレクションの各ページをJekyllで作成したい場合は、`_config.yml`のコレクションのメタデータで`output`キーを`true`に設定します。 -{% highlight yaml %} -collections: - my_collection: - foo: bar -{% endhighlight %} + - + staff_members: + output: true +``` -### ステップ2:コンテンツを追加する +`url`属性を使用して、ページにリンクを生成できます。 - + -対応するフォルダー(例えば、`/_my_collection`)を作成し、ドキュメントを追加します。 -YAML front-matterがある場合は、それはデータとして読み込まれ、無い場合は、すべてのものはそのままドキュメントの`content`属性に挿入されます。 +{% raw %} +```liquid +{% for staff_member in site.staff_members %} +

+ + {{ staff_member.name }} - {{ staff_member.position }} + +

+

{{ staff_member.content | markdownify }}

+{% endfor %} +``` +{% endraw %} - +## パーマリンク + -注:フォルダーの名前は、config.ymlファイルに定義したコレクション名に、`_`文字を前置したものと同じでなければなりません。 +コレクション全体のURLの出力をコントロールするのに役立つ、特別な[コレクションのパーマリンク変数]({{ "docs/permalinks/" | relative_url }})があります。 - + -### ステップ3:必要に応じてコレクションのドキュメントを個別ファイルに書き出す +{% if site.version == '4.0.0' %}{% comment %} Remove this encapsulation when v4.0 ships {% endcomment %} - +## ドキュメントのカスタムソート + -コレクション内の各ドキュメントの公開用ファイル出力版をJekyllで生成したい場合は、`_config.yml`におけるcollectionメタデータの`output`キーを`true`に設定します。 +デフォルトでは、コレクション内のドキュメントはパスでソートされます。ですが、コレクションのメタデータでソート順を制御することができます。 - + -{% highlight yaml %} -collections: - my_collection: - output: true -{% endhighlight %} +### Front Matterキーでソート + - + +```yaml collections: - my_collection: - output: true -{% endhighlight %} ---> + tutorials: + sort_by: lesson +``` -この例では、コレクション内の各ドキュメントごとに1つのファイルが生成されます。 -例えば、`_my_collection/some_subdir/some_doc.md`がある場合、それは、設定されたLiquidとMarkdownコンバータを使ってレンダリングされ、`/my_collection/some_subdir/some_doc.html`に書き出されます。 +ドキュメントはキーの値で昇順に並べられます。front matterキーが設定されていない場合は、そのドキュメントはソートの最後に配置されます。複数のドキュメントにfront matterキーが設定されていない場合は、設定されているドキュメントの後に、設定されていないドキュメントが日付やパスでソートされて配置されます。 - + -[パーマリンク](../permalinks/)がある記事に関しては、ドキュメントのURLはコレクションの`permalink`メタデータを設定することでカスタマイズできます。 +### ドキュメントの手動並び替え + - +`order`メタデータに**ファイル名のリスト**を並べたい順に設定することで、好きな順序で配置できます。tutorialsコレクションの設定の例を、次に示します。 -{% highlight yaml %} -collections: - my_collection: - output: true - permalink: /awesome/:path/ -{% endhighlight %} + - + tutorials: + order: + - hello-world.md + - introduction.md + - basic-concepts.md + - advanced-concepts.md +``` -例えば、`_my_collection/some_subdir/some_doc.md`がある場合、それは`/awesome/some_subdir/some_doc/index.html`に書き出されることになります。 +リストにないファイル名のドキュメントは、指定されたものの後に配置されます。 +サブカテゴリのドキュメントも、次のようにして含めることができます。 - + -
- - - - - - - - - - - - - - - - - - - - - -
変数解説
-

collection

-
-

コレクションのラベル

-
-

path

-
-

コレクションのディレクトリに対するドキュメントの相対パス

-
-

output_ext

-
-

出力ファイルの拡張子

-
-
+```yaml +collections: + tutorials: + order: + - hello-world.md + - introduction.md + - concepts/basics.md + - concepts/advanced.md +``` - +どちらのメタデータキーも設定されている場合、`order`のリストが優先されます。 -## Liquid属性 + +{% endif %} - +## Liquid属性 + ### コレクション + - - -各コレクションには、Liquid変数`site`を通してアクセス可能です。例えば、`_albums`にある`albums`コレクションにアクセスしたい場合は、`site.albums`を使います。 -各コレクションそれ自体は、ドキュメントの配列です(例えば、`site.albums` -は、`site.pages`や`site.posts`と同じようなドキュメントの配列です)。これらのドキュメントの属性にアクセスする方法については、以下を参照してください。 +コレクションは、`site.collections`下に`_config.yml`で指定したメタデータを付加することで使用できます。情報を以下に示します。 - - -また、コレクションには`site.collections`を通してアクセスできますが、これには、`_config.yml`で指定がなされているならそのメタデータと、次の情報とがあります。 - - +
- + + @@ -289,8 +244,11 @@ The collections are also available under `site.collections`, with the metadata y @@ -301,70 +259,22 @@ The collections are also available under `site.collections`, with the metadata y

ドキュメントの配列。

+ - - - - - - - - - - - -
変数解説説明

- コレクションの名前(例:my_collection)。 + コレクションの名前。my_collectionなど。

+
-

relative_directory

-
-

- コレクションのソースディレクトリのパス(サイトソースからの相対パス)。 -

-
-

directory

-
-

- コレクションのソースディレクトリのフルパス。 -

-
-

output

-
-

- 個別ファイルとしてコレクションのドキュメントを出力するか否かの指定。 -

-
-
- - @@ -373,8 +283,12 @@ The collections are also available under `site.collections`, with the metadata y

- The path to the collections's source directory, relative to the site source. + コレクションのディレクトリへの、サイトからの相対パス。

+ @@ -383,8 +297,11 @@ The collections are also available under `site.collections`, with the metadata y

- The full path to the collections's source directory. + コレクションのディレクトリへのフルパス。

+ @@ -393,34 +310,71 @@ The collections are also available under `site.collections`, with the metadata y

- Whether the collection's documents will be output as individual files. + コレクションのドキュメントを個別のファイルとして出力するかどうか。

+ ---> -### ドキュメント +
+
強制コレクション
+ +

あなたが作成したコレクションに加え、Jekyllはpostsコレクションを強制的に保持しています。_postsディレクトリがあるかどうかは、関係ありません。site.collectionsの反復処理を行う場合は注意してください。フィルタで除外する必要があるかもしれません。

+ +

コレクションを見つけるには、フィルタを使用するのがよいでしょう。 + {% raw %}{{ site.collections | where: "label", "myCollection" | first }}{% endraw %}

+ +
+ +
+
コレクションと日時
+ +

postsコレクションのドキュメントを除き、作成した全てのコレクションのドキュメントは、割り当てられた日付の有無に関係なくLiquidでアクセス可能ですので、レンダリング可能です。 +

+ +

関連するコレクションのメタデータでoutput: trueが指定されている場合のみ、ドキュメントがディスクに書き込まれます。加えて、未来の日付のドキュメントはsite.futureがtrueの場合だけです。 +

+ +

ドキュメントをディスクに書き込むかの更に細かい設定は、front matterで published: false (デフォルトはtrue)を設定することで可能です。 +

+ +
- +### ドキュメント + -ドキュメントの対応するファイルに備えられたYAML front-matterのものに加えて、各ドキュメントは、次の属性を持っています。 +各ドキュメントのfront matterで記載されたものに加えて、次の属性を持っています。 - +
- - + + + @@ -430,8 +384,15 @@ In addition to any YAML front-matter provided in the document's corresponding fi @@ -440,8 +401,12 @@ In addition to any YAML front-matter provided in the document's corresponding fi @@ -450,8 +415,11 @@ In addition to any YAML front-matter provided in the document's corresponding fi @@ -460,8 +428,11 @@ In addition to any YAML front-matter provided in the document's corresponding fi @@ -470,8 +441,11 @@ In addition to any YAML front-matter provided in the document's corresponding fi @@ -482,88 +456,24 @@ In addition to any YAML front-matter provided in the document's corresponding fi

ドキュメントのコレクションの名前。

- - - -
変数解説変数説明

- (出力前の)ドキュメントの内容。YAML front-matterを備えていない場合、ファイルにある内容のすべてがこれに該当する。YAML front-matterが使われている場合は、ファイルにおけるfront-matterの終端を示す`---`以降の内容がこれに該当する。 + ドキュメントの(レンダリングされていない)コンテンツ。front matterが無い場合、Jekyllはコレクション内のファイルを生成しません。front matterがある場合は、front matter終了の`---`以降の全てです。

+

- contentに基づくドキュメントのレンダリング出力。 + contentの出力。

+

- ドキュメントのソースファイルのフルパス。 + ドキュメントのソースファイルへのフルパス。

+

- ドキュメントのソースファイルのパス(サイトソースからの相対パス)。 + サイトからのドキュメントのソースへの相対パス。

+

- 出力されたコレクションのURL。ファイルは、サイトの設定ファイルにおけるrenderキーに、それが属するコレクションの名前が含まれているときに限り、出力先に書き出される。 -

+ 出力されたコレクションのURL。サイトの設定でoutput: trueが指定されている場合のみファイルが出力されます。 +

+
-
- - -

collection

+

date

- The name of the document's collection. + ドキュメントのコレクションの日付

+ ---> diff --git a/_docs/community/bug.md b/_docs/community/bug.md new file mode 100644 index 0000000..ee3cd9e --- /dev/null +++ b/_docs/community/bug.md @@ -0,0 +1,16 @@ +--- +title: バグの報告 +permalink: "/docs/community/bug/" +--- + + +バグがJekyllプラグインのものだと思う場合は、そのプラグインのリポジトリのissueを開いてください。 — まず、[rubygemsでプラグインを探し](https://rubygems.org/){:target="_blank"}、プラグインのリポジトリへアクセスするための`Homepage`リンクをクリックしてください。 + + + +Jekyll自身のバグだと思う場合は、[issueを開いて](https://github.com/jekyll/jekyll/issues/new){:target="_blank"}ください。 + + diff --git a/_docs/community/community.md b/_docs/community/community.md new file mode 100644 index 0000000..fd3f1d4 --- /dev/null +++ b/_docs/community/community.md @@ -0,0 +1,60 @@ +--- +title: コミュニティ +permalink: /docs/community/ +redirect_from: "/help/index.html" +--- + + +## Jekyll貢献者 行動規範 + + +このプロジェクトの貢献者・維持者として、そしてオープンで歓迎されるコミュニティーが成長するために、全ての人の問題の報告・機能のリクエストの投稿・ドキュメンテーションの更新・プルリクエストやパッチの提出・その他の活動を尊重することを約束します。 + + +全[行動規範]({{ "/docs/conduct/" | relative_url }})を読む + + +## サポートを得る場所 + + +Jekyllのサポートを探しているのなら、多くの選択肢があります: + + +* [Jekyllドキュメンテーション](https://jekyllrb.com/docs/)を読む +* Jekyllの使い方について質問があれば、[Jekyll Forum](https://talk.jekyllrb.com/){:target="_blank"}や[StackOverflow](https://stackoverflow.com/questions/tagged/jekyll){:target="_blank"}でディスカッションを始めてください。 +* Jekyllerとのチャット — [Gitter channel](https://gitter.im/jekyll/jekyll){:target="_blank"}や[IRC channel on Freenode](irc:irc.freenode.net/jekyll)に参加してください。 + + + +これらのサービスには、あなたに正しい方向を示してくれる、親切なコミュニティメンバーが沢山います。 + + +**覚えておいてください:Jekyllのissue trackerはサポートフォーラムではありません。** + + +## 貢献する方法 + + +* [貢献の方法]({{ "/docs/contributing/" | relative_url }}) +* [バグの報告方法]({{ "/docs/community/bug/" | relative_url }}) +* [Jekyllのメンテナンスガイド]({{ "/docs/maintaining/" | relative_url }}) + + + + +## Jekyllconf + +Jekyllコミュニティのメンバーからの興味深い使用方法、彼らが学んだ技術、メタJekyllトピックについて話している[ビデオを見て]({{ "/jekyllconf/" | relative_url }})ください。 + + +## Jekyll on Twitter + +The [official Jekyll Twitter account](https://twitter.com/jekyllrb){:target="_blank"}. diff --git a/_docs/conduct.md b/_docs/conduct.md new file mode 100644 index 0000000..431d0b9 --- /dev/null +++ b/_docs/conduct.md @@ -0,0 +1,127 @@ +--- +title: 行動規範 +permalink: "/docs/conduct/" +note: This file is autogenerated. Edit /CONDUCT.markdown instead. +redirect_from: "/conduct/index.html" +editable: false +--- + + +## 誓約 + + +オープンで歓迎される環境を促進するために、私たちは貢献者及びメンテナンス者として、誰に対してもハラスメントなく、次の事柄にかかわらず、プロジェクトとコミュニティに参加します。年齢、体格、身体障害、人種、性別、性同一性とその表現、経験のレベル、教育、社会経済的地位、国籍、個人的な外見、人種、宗教、や性的アイデンティティとその方向性。 + + + +## スタンダード + + +前向きな環境の構築に貢献する行動の例は以下が含まれています。 + + + +* 歓迎的で包括的な言葉を使う +* 異なる視点や経験を尊重する +* 建設的な批判を優雅に受け入れる +* コミュニティにとって何が最善なのかに焦点を当てる +* 他のコミュニティメンバーに共感を示す + + + +参加者による容認できない行動の例は次の様な事柄です。 + + + +* 性的表現の言語や画像の使用、および歓迎されない性的注意や進言 +* トローリング、侮辱的/軽蔑的なコメント、および個人的または政治的攻撃 +* 公開またはプライベートの嫌がらせ +* 許可なく、他者の電子的アドレスやリアルの住所など、他者の個人情報を公開すること +* 職業的に不適切と合理的に考えられるその他の行為 + + + +## 責任 + + +プロジェクト管理者は、許容できる行動の基準を明確にする責任があり、許容できない行動が発生した場合には、それに応じて適切かつ公正な是正措置を講じることが求められます。 + + + +プロジェクト管理者は、この行動規範に合わないコメント、コミット、コード、ウィキの編集、問題、その他の貢献を削除、編集、または棄却する、あるいはその他の行為を一時的または恒久的に禁止する権限を持ちます。それらは不適切、脅迫的、攻撃的、または有害と見なします。 + + + +## 範囲 + + +この行動規範は、個人がプロジェクトまたはそのコミュニティを代表している場合に、プロジェクトスペース内および公共スペース内の両方に適用されます。プロジェクトまたはコミュニティを代表する例としては、公式のプロジェクトEメールアドレスの使用、公式のソーシャルメディアアカウントによる投稿、オンラインまたはオフラインのイベントでの代表者としての行動などがあります。プロジェクトの表現は、プロジェクト管理者によって定義がさらに明確にされる可能性があります。 + + + +## 実施 + + +虐待、嫌がらせ、またはその他の容認できない行動が見られた場合は、プロジェクトチームの[olivia@jekyllrb.com](mailto:olivia@jekyllrb.com)に連絡してください。すべての苦情はレビューおよび調査され、必要かつ状況に適していると思われる対応がとられます。プロジェクトチームは、インシデントの報告者に関して機密性を維持する義務があります。特定の執行方針の詳細は別に掲載される可能性があります。 + + + +誠意を持って行動規範を遵守しない、または執行しないプロジェクト管理者は、他のプロジェクトの指導者の決定に応じて一時的または恒久的な影響を受ける可能性があります。 + + + +## 帰属 + + +この行動規範は、[https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html){:target="_blank"}で入手可能な[寄稿者規約][homepage]、バージョン1.4から改訂されたものです。 + + + +[homepage]: https://www.contributor-covenant.org + +この行動規範に関するよくある質問への回答は、[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq){:target="_blank"}をご覧ください。 + + diff --git a/_docs/configuration.md b/_docs/configuration.md index b550ef1..f20976f 100644 --- a/_docs/configuration.md +++ b/_docs/configuration.md @@ -1,875 +1,33 @@ --- -layout: docs -title: 設定項目 -prev_section: structure -next_section: frontmatter +title: 構成・設定 permalink: /docs/configuration/ --- - - - -Jekyll はあなたが夢見る任意の方法でサイトを組むことができます、 -それはパワフルで柔軟なコンフィグオプションのおかげで可能になります。 -これらのオプションは、サイトのルートディレクトリに置かれる `_config.yml` ファイルか、 -ターミナルから実行した `jekyll` のフラグとしてのどちらでも指定することができます。 - - - -## コンフィグ設定 - - - -### グローバルコンフィグ - - - -以下のテーブルは、Jekyll で使用可能な設定と、 -それらを制御するためのオプション (設定ファイルで指定します) と -フラグ (コマンドラインで指定します) の一覧です。 - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
設定 - オプションフラグ -
-

サイトソース

-

Jekyll がファイルを読み込むディレクトリを変更します。

-
-

source: DIR

-

-s, --source DIR

-
-

サイト出力先

-

Jekyll がファイルを書き出すディレクトリを変更します。

-
-

destination: DIR

-

-d, --destination DIR

-
-

セーフモード

-

カスタムプラグインを無効化します。

-
-

safe: BOOL

-

--safe

-
-

エクスクルード

-

ディレクトリやファイルを変換対象から除外します。 - 除外はサイトのソースディレクトリからの相対指定であり、 - ソースディレクトリ外のものは指定できません。 -

-
-

exclude: [DIR, FILE, ...]

-
-

インクルード

-

- ディレクトリまたはファイルを強制的に変換対象に含めます。 - ドットファイルはデフォルトで除外されるため、 .htaccess を指定するのがよい例です。 -

-
-

include: [DIR, FILE, ...]

-
-

タイムゾーン

-

- サイト生成のためにタイムゾーンを設定します。 - このオプションは、Ruby が日付の作成と操作を処理するために使用する環境変数 TZ を設定します。 - IANA タイムゾーン データベース からの - 任意のエントリが有効です、例えば America/New_York のような。 - デフォルトでは、あなたが使っているオペレーティングシステムのローカルタイムゾーンがセットされています。 -

-
-

timezone: TIMEZONE

-
-

エンコーディング

-

- 名前によってファイルのエンコーディングがセットされます。 - ( Ruby 1.9 またはそれ以降でのみ利用可能です。) - デフォルトの値は、2.0.0以降では utf-8 、2.0.0より前では nil で、 - Rubyのデフォルト ASCII-8BIT を使います。 - Ruby で利用可能なエンコーディングは、コマンド - ruby -e 'puts Encoding::list.join("\n")' - によって一覧することができます。 -

-
-

encoding: ENCODING

-
-
- - - -### ビルドコマンドオプション - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
設定オプションフラグ
-

再生成

-

ファイルが変更された場合の、サイトの自動再生成を有効にします。

-
-

-w, --watch

-
-

設定

-

- 自動的に読み込まれる _config.yml の代わりに - 設定ファイルを指定します。 - 先に指定したファイルの設定は、後に指定したファイルの設定で上書きされます。 -

-
-

--config FILE1[,FILE2,...]

-
-

ドラフト

-

ドラフトの posts を処理し、レンダリングします。

-
-

--drafts

-
-

未来日付の出力

-

未来の日付の posts も出力します。

-
-

future: BOOL

-

--future

-
-

LSI

-

関連 posts の索引を作成します。

-
-

lsi: BOOL

-

--lsi

-
-

Posts 制限

-

解析、出力する posts の数を制限します。

-
-

limit_posts: NUM

-

--limit_posts NUM

-
-
- - - -### Serve コマンドオプション - - - -以下のオプションに加え、 `serve` サブコマンドは `build` サブコマンドの -オプションすべてを受け入れることができます。 -それらのオプションを使用してサイトをビルドしたうえで、サイトを serve します。 - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
設定オプションフラグ
-

ローカルサーバのポート

-

与えられたポートを Listen します。

-
-

port: PORT

-

--port PORT

-
-

ローカルサーバのホスト名

-

与えられたホスト名を Listen します。

-
-

host: HOSTNAME

-

--host HOSTNAME

-
-

ベース URL

-

与えられたベース URL から Web サイトを提供します。

-
-

baseurl: URL

-

--baseurl URL

-
-

切り離し

-

ターミナルからサーバを切り離します。

-
-

detach: BOOL

-

-B, --detach

-
-
- - - -
-
設定ファイルにタブは使わないでください
-

- パースエラーにつながるか、 Jekyll のデフォルト設定に戻るかのどちらかになるでしょう。 - 代わりにスペースを使用してください。 -

-
- - - -## デフォルト設定 - - - -Jekyll はデフォルトでは以下のオプションで実行されます。 -代わりのオプションが設定ファイルまたはコマンドラインから明示的に指定されない限り、 -Jekyll はこれらのオプションを使用して起動します。 - - - -
-
サポートしていない kramdown のオプションが 2 つあります
-

- remove_block_html_tagsremove_span_html_tags の両方が - kramdown HTML コンバータに含まれていないので、現在 Jekyll でもそれらをサポートしていません。 - ご注意ください。 -

-
- - - -{% highlight yaml %} -source: . -destination: ./_site -plugins: ./_plugins -layouts: ./_layouts -include: ['.htaccess'] -exclude: [] -keep_files: ['.git','.svn'] -gems: [] -timezone: nil -encoding: nil - -future: true -show_drafts: nil -limit_posts: 0 -pygments: true - -relative_permalinks: true - -permalink: date -paginate_path: 'page:num' - -markdown: maruku -markdown_ext: markdown,mkd,mkdn,md -textile_ext: textile - -excerpt_separator: "\n\n" - -safe: false -watch: false # deprecated -server: false # deprecated -host: 0.0.0.0 -port: 4000 -baseurl: / -url: http://localhost:4000 -lsi: false - -maruku: - use_tex: false - use_divs: false - png_engine: blahtex - png_dir: images/latex - png_url: /images/latex - fenced_code_blocks: true - -rdiscount: - extensions: [] - -redcarpet: - extensions: [] - -kramdown: - auto_ids: true - footnote_nr: 1 - entity_output: as_char - toc_levels: 1..6 - smart_quotes: lsquo,rsquo,ldquo,rdquo - use_coderay: false - - coderay: - coderay_wrap: div - coderay_line_numbers: inline - coderay_line_numbers_start: 1 - coderay_tab_width: 4 - coderay_bold_every: 10 - coderay_css: style - -redcloth: - hard_breaks: true -{% endhighlight %} - - - -
-
Kramdown をデフォルトに設定したバージョンは、まだリリースされていません。
-

- 最新の開発版リリースにおいて、私たちは Maruku を非推奨としました。代わりに Kramdown がデフォルトになる予定です。 - それより前のバージョンでは Maruku をデフォルトで使用しています。 -

-
- - - -## Markdown オプション - - - -Jekyll でサポートしているさまざまな Markdown レンダラでは、 -追加のオプションを利用できる場合があります。 - - - -### Redcarpet - - - -Redcarpet は `extensions` サブセッティングを設けることで設定が可能です。 -値は文字列の配列である必要があります。 -各々の文字列は `Redcarpet::Markdown` クラスの拡張の -いずれかの名前であるべきです。 -配列に名前が存在する場合、当該の拡張を `true` にセットします。 - - - -Jekyll は Redcarpet の 2 つの特別な拡張を処理します: - - - -- `no_fenced_code_blocks` --- デフォルトでは、 - Jekyll は `fenced_code_blocks` 拡張(トリプルチルダまたはトリプルバッククォートで - コードブロックを区切るための拡張)を `true` に設定しています。 - おそらく、GitHub がこれを積極的に採用しているので、避けられなくなりつつある、という理由からです。 - Jekyll で使用するときには、 Redcarpet の通常の `fenced_code_blocks` 拡張は不活性です。 - 代わりに、この逆バージョンの拡張を使って fenced code を無効化できます。 - 最初の区切りのあとに、ハイライトする言語の指定もできることに注目: - - ```ruby - # ...ruby code - ``` - - fenced code block と highlighter を両方有効にすると、静的にコードをハイライトします。 - highlighter なしの場合、`` 要素に `class="LANGUAGE"` を追加し、 - 様々な JavaScript のコードハイライトライブラリがこれをヒントとして使用できるようにします。 -- `smart` --- この擬似拡張は SmartyPants をオンにし、 - straight quotes を curly quotes に、 - ハイフンの連打を em (`---`) ダッシュ、 en (`--`) ダッシュに変換します。 - - - -その他の拡張はすべて Redcarpet における本来の名前を維持しており、 -`smart` 以外のレンダリングオプションは Jekyll によって指定されることはありません。 -[利用可能な拡張のリストは Redcarpet の README から見つけられます。][redcarpet_extensions] -Redcarpet の正しいバージョンの README を見ていることを確認してください。 -Jekyll は現在 v2.2.x を使用しています。 `footnotes` や `highlight` のような拡張は -バージョン 3.0.0 以降まで追加されません。 -もっとも一般的に使用される拡張は以下の通りです: - - - -- `tables` -- `no_intra_emphasis` -- `autolink` - - - -[redcarpet_extensions]: https://github.com/vmg/redcarpet/blob/v2.2.2/README.markdown#and-its-like-really-simple-to-use - - - -### Kramdown - - - -上記のデフォルトに加えて、 `input` オプションに `GFM` 値を渡すことで、 -GitHub Flavored Markdown の認識を有効にすることができます。 - - - -例えば、あなたの `_config.yml` にこう書きます: - - - - kramdown: - input: GFM - - +--- --> + +Jekyllではサイトをどのように構築するか、柔軟にカスタマイズすることができます。これらのオプションは、サイトのrootディレクトリにある`_config.yml`か`_config.toml`で指定することができます。また、ターミナルで`jekyll`を実行するときにflagsとして設定することもできます。 + + +* [オプション設定]({{ "/docs/configuration/options/" | relative_url }}) +* [デフォルト設定]({{ "/docs/configuration/default/" | relative_url }}) +* [Front Matterのデフォルト]({{ "/docs/configuration/front-matter-defaults/" | relative_url }}) +* [環境]({{ "/docs/configuration/environments/" | relative_url }}) +* [Markdownオプション]({{ "/docs/configuration/markdown/" | relative_url }}) +* [Liquidオプション]({{ "/docs/configuration/liquid/" | relative_url }}) +* [Webrickオプション]({{ "/docs/configuration/webrick/" | relative_url }}) +* [増分の再生成]({{ "/docs/configuration/incremental-regeneration/" | relative_url }}) + + + diff --git a/_docs/configuration/default.md b/_docs/configuration/default.md new file mode 100644 index 0000000..3adb6df --- /dev/null +++ b/_docs/configuration/default.md @@ -0,0 +1,92 @@ +--- +title: デフォルト設定 +permalink: "/docs/configuration/default/" +--- + + +Jekyllはデフォルトでは以下の設定を使用します。設定ファイルやコマンドラインで特定のオプションを変更することができます。 + + + +```yaml +# Where things are +source : . +destination : ./_site +collections_dir : . +plugins_dir : _plugins +layouts_dir : _layouts +data_dir : _data +includes_dir : _includes +collections: + posts: + output : true + +# Handling Reading +safe : false +include : [".htaccess"] +exclude : ["Gemfile", "Gemfile.lock", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"] +keep_files : [".git", ".svn"] +encoding : "utf-8" +markdown_ext : "markdown,mkdown,mkdn,mkd,md" +strict_front_matter : false + +# Filtering Content +show_drafts : null +limit_posts : 0 +future : false +unpublished : false + +# Plugins +whitelist : [] +plugins : [] + +# Conversion +markdown : kramdown +highlighter : rouge +lsi : false +excerpt_separator : "\n\n" +incremental : false + +# Serving +detach : false +port : 4000 +host : 127.0.0.1 +baseurl : "" # does not include hostname +show_dir_listing : false + +# Outputting +permalink : date +paginate_path : /page:num +timezone : null + +quiet : false +verbose : false +defaults : [] + +liquid: + error_mode : warn + strict_filters : false + strict_variables : false + +# Markdown Processors +rdiscount: + extensions : [] + +redcarpet: + extensions : [] + +kramdown: + auto_ids : true + entity_output : as_char + toc_levels : 1..6 + smart_quotes : lsquo,rsquo,ldquo,rdquo + input : GFM + hard_wrap : false + footnote_nr : 1 + show_warnings : false +``` diff --git a/_docs/configuration/environments.md b/_docs/configuration/environments.md new file mode 100644 index 0000000..7ba183f --- /dev/null +++ b/_docs/configuration/environments.md @@ -0,0 +1,71 @@ +--- +title: 環境 +permalink: "/docs/configuration/environments/" +--- + + +`build`(や`serve`)引数で、Jekyllの環境と値を指定できます。その後、ビルドはこの値をコンテンツの条件付きステートメントに適用します。 + + + +例えば、コードで次の条件を設定したとします。 + + + +{% raw %} +```liquid +{% if jekyll.environment == "production" %} + {% include disqus.html %} +{% endif %} +``` +{% endraw %} + +Jekyllサイトを構築するとき、`if`内のコンテンツは、次のようにビルドコマンドで`production`environmentを指定しなければ実行されません。 + + + +```sh +JEKYLL_ENV=production jekyll build +``` + +environmentの値を指定することで、特定の場合のみコンテンツを利用可能にすることができます。 + + + +`JEKYLL_ENV`のデフォルト値は、`development`です。従って、ビルド引数から`JEKYLL_ENV`を省略すると、デフォルト値は`JEKYLL_ENV=development`になります。{% raw %}`{% if jekyll.environment == "development" %}`{% endraw %}タグ内の全てのコンテンツは自動的にビルド時に表示されます。 + + + +environment値は(`development`と`production`以外は)好きなものを使用できます。DisqusコメントフォームやGoogle Analyticsを含む開発時には隠したい要素があるでしょう。"Edit me in GitHub"ボタンは開発環境では表示して、製品環境では含まないようにしたいのではないでしょうか。 + + + +ビルドコマンドのオプションでの指定で、ある環境から別の環境への変更時に、設定ファイル内の値を変更する必要がありません。 + + + +
+

+ 環境に応じて設定の一部を切り替えるには、ビルドコマンドオプションを使用します。例えば--config _config.yml、_config_development.ymlです。 後のファイルの設定は、前のファイルの設定を上書きします。 +

+ +
diff --git a/_docs/configuration/front-matter-defaults.md b/_docs/configuration/front-matter-defaults.md new file mode 100644 index 0000000..5840dd2 --- /dev/null +++ b/_docs/configuration/front-matter-defaults.md @@ -0,0 +1,198 @@ +--- +title: Front Matterのデフォルト +permalink: "/docs/configuration/front-matter-defaults/" +--- + + +[front matter]({{ "/docs/front-matter/" | relative_url }})の使用は、サイトのページやポストに特別な設定行う方法の一つです。デフォルトのレイアウトやタイトルのカスタマイズ、ポストの正確な日時の指定のような設定は、ページやポストのfront matterで追加することができます。 + + + +度々、多くのオプション設定を繰り返す場合が出てくるでしょう。各ファイルへの同じレイアウトの指定、ポストへの同じカテゴリの指定等です。著者名といったカスタム変数の追加も、ブログの多数のポストで同じです。 + + + +新しいポストやページを作成する度に設定を繰り返す代わりに、Jekyllはサイト設定でこれらのデフォルトを設定する方法を提供しています。これを行うには、プロジェクトのrootディレクトリの`_config.yml`に`defaults`キーを使用してサイト全体のデフォルトを設定します。 + + + +`defaults`キーはデフォルトを定義する特定のpathとscopeとvalueのペアの配列で指定します。オプションでパスのファイルの種類を指定することもできます。 + + + +サイトの全てのページとポストのデフォルトレイアウトを追加したい場合です。以下を`_config.yml`ファイルに追加します。 + + + +```yaml +defaults: + - + scope: + path: "" # an empty string here means all files in the project + values: + layout: "default" +``` + +
+ +
一度止めて`jekyll serve`コマンドを再実行します
+

+ グローバル設定と変数定義が含まれているマスター設定ファイルの_config.ymlは、実行時に一度だけ読み込まれます。自動再生成をしている時に_config.ymlに変更を加えても、次の実行まで読み込まれません。 +

+ +

+ Dataファイルは自動再生成時も再読込されます。 +

+ +
+ +ここでは、`scope`パスの中に存在するファイルに`values`に当てはめています。pathに空の文字列が指定されているので、プロジェクトの**全ファイル**に適用されます。例えばcssファイルのように、全てのファイルにはレイアウトを設定したくないでしょう。`scope`キーに`type`を指定することができます。 + + + +```yaml +defaults: + - + scope: + path: "" # an empty string here means all files in the project + type: "posts" # previously `post` in Jekyll 2.2. + values: + layout: "default" +``` + +これで、`posts`タイプのファイルにのみレイアウトが設定されます。`pages`や`posts`、`drafts`、サイトのコレクションをtypeで使用することができます。`type`はオプションですが、`scope/values`ペアを指定するときは`path`を指定する必要があります。 + + + +前述のように、`defaults`には複数のscope/valuesペアを指定することができます。 + + + +```yaml +defaults: + - + scope: + path: "" + type: "pages" + values: + layout: "my-site" + - + scope: + path: "projects" + type: "pages" # previously `page` in Jekyll 2.2. + values: + layout: "project" # overrides previous default layout + author: "Mr. Hyde" +``` + +このdefaultsで、全てのページは`my-site`レイアウトを使用します。`projects/`フォルダのhtmlファイルは`project`レイアウトを使用し、`page.author` [liquid変数]({{ "/docs/variables/" | relative_url }})に`Mr. Hyde`を指定します。 + + + +```yaml +collections: + my_collection: + output: true + +defaults: + - + scope: + path: "" + type: "my_collection" # a collection in your site, in plural form + values: + layout: "default" +``` + +この例では、`my_collection`という[コレクション]({{ "/docs/collections/" | relative_url }})に`layout`は`default`だと設定します。 + + + +### Front MatterデフォルトでのGlobパターン + + +デフォルトをマッチさせるために、Globpパターンを使用することもできます(現在は、`*`を含むパター限定です)。例えば、`section`フォルダのサブフォルダにある各`special-page.html`に特定のレイアウトを設定することができます。{%- include docs_version_badge.html version="3.7.0" -%} + + + +```yaml +collections: + my_collection: + output: true + +defaults: + - + scope: + path: "section/*/special-page.html" + values: + layout: "specific-layout" +``` + +
+
Globとパフォーマンス
+ +

+ パスをGlobで指定するとパフォーマンスへの悪影響があることが知られており、特にWindowsでは最適化されていません。パスをGlobで指定すると、コレクションディレクトリの大きさに応じて構築時間が長くなります。 +

+ +
+ +### 優先順位 + + +Jekyllは`_config.yml`の`defaults`セクションで指定された設定を全て適用します。他の特定のパスへのscope/valuesペアを設定することで、上書きすることができます。 + + + +上に戻って下から3つ目の例を見てください。まず、`my-site`へのデフォルトページレイアウトを設定しています。そして、`project`用の`projects/`パスのページへのデフォルトを設定しています。ページやポストのfront matterに設定する任意の値で実行可能です。 + + + +最後に、`_config.yml`ファイルに`defaults`セクションを追加してサイト設定のデフォルトを設定した場合、それらの設定はページやポストで上書きできます。ページやポストのfront matterで設定を行うだけです。例えば、 + + + +```yaml +# In _config.yml +... +defaults: + - + scope: + path: "projects" + type: "pages" + values: + layout: "project" + author: "Mr. Hyde" + category: "project" +... +``` + +```yaml +# In projects/foo_project.md +--- +author: "John Smith" +layout: "foobar" +--- +The post text goes here... +``` + +`projects/foo_project.md`は、`layout`には`project`の代わりに`foobar`が、`author`には`Mr. Hyde`の代わりに`John Smith`がサイト構築時に設定されます。 + + diff --git a/_docs/configuration/incremental-regeneration.md b/_docs/configuration/incremental-regeneration.md new file mode 100644 index 0000000..1c9779c --- /dev/null +++ b/_docs/configuration/incremental-regeneration.md @@ -0,0 +1,53 @@ +--- +title: デフォルト設定 +permalink: "/docs/configuration/incremental-regeneration/" +--- + + +## 増分の再生成 + +
+
増分の再生成はまだ実験的な機能です
+ +

+ 増分の再生成は多くの一般的な状況で働きますが、全てのシナリオで働くわけではありません。この機能を使用するときは細心の注意を払ってください。また、以下にない問題はGitHubのissueを開いて報告してください。 +

+ +
+ +増分の再生成は、以前の構築から更新されたドキュメントやページだけを生成することで、構築時間を短くします。これは、ファイルの更新時刻と`.jekyll-metadata`ファイル内の内部ファイルの依存関係両方の追跡を行うことで実行されます。 + + + +現在の実装では、ドキュメントかページ、またはその依存関係にあるもののいずれかが変更された場合にのみ増分の再生成を行います。現在は({% raw %}`{% include %}`{% endraw %}タグを使用した)インクルードとレイアウトの依存関係のみ追跡しています。これは、他のドキュメントへの単純な参照(たとえば、投稿リストページで`site.posts`を反復処理する一般的なケース)は依存関係として検出されないことを意味します。 + + + +この欠点を解決するために、ドキュメントのfront matterに`regenerate: true`を設定すると、変更されているかどうかにかかわらず、Jekyllは強制的に再生成します。これは指定されたドキュメントだけを生成することに注意してください。他のドキュメントのコンテンツへの参照は再レンダリングされないため機能しません。 + + + +増分の再生成は、コマンドラインで`--incremental`フラッグ(省略形は`-I`)を使用、もしくは設定ファイルで`incremental: true`を指定することで有効にできます。 + + diff --git a/_docs/configuration/liquid.md b/_docs/configuration/liquid.md new file mode 100644 index 0000000..4f8d791 --- /dev/null +++ b/_docs/configuration/liquid.md @@ -0,0 +1,33 @@ +--- +title: Liquidオプション +permalink: "/docs/configuration/liquid/" +--- + + +エラーに対するLiquidの応答は、`error_mode`を設定することで設定できます。オプションは、 + + + +- `lax` --- 全てのエラーを無視する +- `warn` --- 各エラーをコンソールに警告出力する +- `strict` --- エラーメッセージを出力し、ビルドを中止する + + + +また、`strict_variables`や`strict_filters`を`true`に設定することで、割り当てられていない変数や存在しないフィルタをキャッチするようにLiquidのレンダラを設定することもできます。{% include docs_version_badge.html version="3.8.0" %} + + + +`error_mode`はLiquidのパーサを設定しますが、`strict_variables`と`strict_filters`オプションはLiquidのレンダラを設定し、結果として、相互に排他的です。 + + diff --git a/_docs/configuration/markdown.md b/_docs/configuration/markdown.md new file mode 100644 index 0000000..a95210b --- /dev/null +++ b/_docs/configuration/markdown.md @@ -0,0 +1,201 @@ +--- +title: Markdownオプション +permalink: "/docs/configuration/markdown/" +--- + + +Jekyllでサポートされている様々なMarkdownレンダラーには、追加のオプションがある場合があります。 + + + +### Kramdown + +KramdownはJekyllのデフォルトMarkdownレンダラーです。以下は現在サポートされているオプションのリストです。 + + + +* **auto_id_prefix** - 自動的に生成された見出しのIDのプレフィックス +* **auto_id_stripping** - 自動ID生成のために見出しテキストからすべてのフォーマットを削除 +* **auto_ids** - 自動見出しID生成を使用 +* **coderay_bold_every** - 行番号を太字にする頻度を定義 +* **coderay_css** - 強調表示されたコードのスタイル設定方法の定義 +* **coderay_default_lang** - ハイライトコードブロックのデフォルト言語を設定 +* **coderay_line_number_start** - 行番号の開始番号 +* **coderay_line_numbers** - 行番号を表示するかの定義 +* **coderay_tab_width** - 強調表示されたコードのtabの長さ +* **coderay_wrap** - 強調表示されたコードをどのように折り返すかを定義 +* **enable_coderay** - 構文の強調表示にcoderayを使う +* **entity_output** - エンティティの出力方法を定義 +* **footnote_backlink** - 脚注のバックリンクに使用するテキストを定義 +* **footnote_backlink_inline** - 脚注のバックリンクを常にインラインにするかどうかを指定 +* **footnote_nr** - 最初の脚注の番号 +* **gfm_quirks** - GFM特有の癖のセットを有効にします +* **hard_wrap** - 改行を文字通りに解釈する +* **header_offset** - ヘッダの出力オフセットを設定します +* **html_to_native** - HTML要素をネイティブ要素に変換する +* **line_width** - 文書を出力するときに使用される線の長さを定義 +* **link_defs** - リンク定義を事前定義 +* **math_engine** - mathエンジンの設定 +* **math_engine_opts** - mathエンジンのオプションを設定 +* **parse_block_html** - blockHTMLタグでkramdown構文を処理する +* **parse_span_html** - spanHTMLタグでkramdown構文を処理する +* **smart_quotes** - スマートクォート出力用のHTMLエンティティ名またはコードポイントを定義 +* **syntax_highlighter** - シンタックスハイライトの設定 +* **syntax_highlighter_opts** - シンタックスハイライトのオプションの設定 +* **toc_levels** - 目次に使用されるレベルを定義 +* **transliterated_header_ids** - IDを生成する前にヘッダテキストを音訳する +* **typographic_symbols** - 活版印刷シンボルから出力文字へのマッピングを定義 + + + + +
+
サポートされていないkramdownオプションが2つあります
+ +

+ remove_block_html_tagsremove_span_html_tagsは、kramdown HTMLコンバータに含まれていないため、現在Jekyllではサポートされていません。 +

+ +
+ +これらのオプションの詳細は、[Kramdown configuration documentation](https://kramdown.gettalong.org/options.html){:target="_blank"}をご覧ください。 + + + +### CommonMark + +[CommonMark](https://commonmark.org/){:target="_blank"}はMarkdown構文の合理化バージョンであり、Cで実装されているため、Rubyで実装されているデフォルトのKramdownよりも高速です。元のMarkdownとは[少し異なり](https://github.com/commonmark/CommonMark#differences-from-original-markdown){:target="_blank"}、[Block Inline Attribute Lists](https://kramdown.gettalong.org/syntax.html#block-ials){:target="_blank"}のようにKramdownで実装されているすべての構文要素をサポートするわけではありません。 + + + +[jekyll-commonmark](https://github.com/jekyll/jekyll-commonmark){:target="_blank"}プラグインを使った基本CommonMarkとGitHub Pagesでサポートされている[GitHub Flavored Markdown](https://github.com/github/jekyll-commonmark-ghpages){:target="_blank"}の2種類があります。 + + + +### Redcarpet + +Redcarpetは、文字列の配列の`extensions`サブ設定を提供することによって、設定することができます。 各文字列は、`Redcarpet::Markdown`クラスの拡張の名前でなければなりません。配列内に存在する場合は、対応する拡張子を`true`に設定します。 + + + +Jekyllは2つの特別なRedcarpet拡張を扱えます。 + + + +- `no_fenced_code_blocks` --- デフォルトで、Jekyllは(チルダ3つまたはバッククォート3つでコードブロックを区切るため)`fenced_code_blocks`拡張を`true`に設定しています。おそらく、GitHubが積極的に採用しており、不可避の設定になってきています。Redcarpetの通常の`fenced_code_blocks`はJekyllで使用するときは無効です。——言い換えれば、区切られたコードを無効にするためにこの反転の拡張を使用できます。 + + + +最初の区切り文字の後に言語のハイライトを設定できます。 + + + + ```ruby + # ...ruby code + ``` + +コードブロックとハイライトは共に有効にできます。これはコードを静的にハイライトします。シンタックスハイライトがない場合は、``要素に `class =" LANGUAGE "`属性を追加します。これは様々なJavaScriptコードハイライトライブラリでヒントとして使用できます。 + + + +- `smart` --- この擬似拡張はSmartyPantsを有効にします。これは、ストレート引用符を中引用符に変換し、ハイフンをem(`---`)とen(`--`)ダッシュとします。 + + + +他のすべての拡張はRedcarpetからの通常の名前を保持しており、Jekyllでは`smart`以外のレンダラオプションは指定できません。利用可能な拡張のリストは[RedcarpetのREADMEファイル](https://github.com/vmg/redcarpet/blob/v3.2.2/README.markdown#and-its-like-really-simple-to-use){:target="_blank"}にあります。Redcarpetの正しいバージョンのREADMEを見ていることを確認してください:Jekyllは現在v3.2.xを使っています。 最も一般的に使用されている拡張は次のとおりです。 + + + +- `tables` +- `no_intra_emphasis` +- `autolink` + +### カスタムMarkdownプロセス + + +カスタムmarkdownプロセッサの作成に興味があるなら、あなたは運がいいです! `Jekyll::Converters::Markdown`ネームスペースに新しいクラスを作成します。 + + + +```ruby +class Jekyll::Converters::Markdown::MyCustomProcessor + def initialize(config) + require 'funky_markdown' + @config = config + rescue LoadError + STDERR.puts 'You are missing a library required for Markdown. Please run:' + STDERR.puts ' $ [sudo] gem install funky_markdown' + raise FatalException.new("Missing dependency: funky_markdown") + end + + def convert(content) + ::FunkyMarkdown.new(content).convert + end +end +``` + +一度クラスを作成し、`_plugins`フォルダのプラグインかgemとして適切に設定したら、`_config.yml`で指定します。 + + + +```yaml +markdown: MyCustomProcessor +``` diff --git a/_docs/configuration/options.html b/_docs/configuration/options.html new file mode 100644 index 0000000..f82a87e --- /dev/null +++ b/_docs/configuration/options.html @@ -0,0 +1,504 @@ +--- +title: オプション設定 +permalink: "/docs/configuration/options/" +--- + + +

以下の表は、Jekyllで使用可能な設定と、それらを制御する様々なoptions(設定ファイルで指定)とflags(コマンドラインで指定)です。

+ + + +

グローバル設定

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
設定 + OptionsFlags +
+

Site Source

+

Jekyllが読むファイルのディレクトリを変更

+ +
+

source: DIR

+

-s, --source DIR

+
+

Site Destination

+

Jekyllが書き出すファイルのディレクトリを変更

+ +
+

destination: DIR

+

-d, --destination DIR

+
+

Safe

+

カスタムプラグインを無効にし、シンボリックリンクを無視する。

+ +
+

safe: BOOL

+

--safe

+
+

Exclude

+

+ ファイルやディレクトリを変換時に除外する。サイトのソースディレクトリからの相対パスで指定し、ソースディレクトリ外にはならない。 +

+ +
+

exclude: [DIR, FILE, ...]

+
+

Include

+

+ ディレクトリやファイルを強制的に変換に含める。ドットから始まるファイルはデフォルトでは無視されるため、.htaccessはよい例である。 +

+ +
+

include: [DIR, FILE, ...]

+
+

Keep files

+

+ サイトの出力先に変更を加える際に、選択したファイルを残す。Jekyllが生成しないファイル、例えばビルドツールが生成したファイルやアセット、に便利です。パスは出力先からの相対パスです。 +

+ +
+

keep_files: [DIR, FILE, ...]

+
+

Time Zone

+

+ サイト生成時のタイムゾーンを設定。これはTZ環境変数を設定し、Rubyが日時の作成と操作を処理するために使用する。IANA Time Zone + Databaseからの全てのエントリは有効です(例:Asia/Tokyo)。 + こちらに使用可能な全ての変数のリストがあります。 ローカルマシン上のサーバーの場合、デフォルトのタイムゾーンはオペレーティングシステムによって設定されます。 しかし、リモートホスト/サーバー上で提供される場合、デフォルトのタイムゾーンはサーバーの設定や場所によって異なります。 +

+ +
+

timezone: TIMEZONE

+
+

Encoding

+

+ ファイルのエンコーディングを名前で設定する(Ruby 1.9以降のみ)。デフォルト値は2.0.0以降ではutf-8で、2.0.0より前はnilでrubyのデフォルトのASCII-8BITが使用される。ruby -e 'puts Encoding::list.join("\n")'コマンドで使用可能なエンコーディングが表示される。 +

+ +
+

encoding: ENCODING

+
+

Defaults

+

+ front matter変数のデフォルト値を設定する。 +

+ +
+

こちらをご覧ください

+ +
+
+ +
+
出力先は、サイト構築時に消去されます。
+ +

+ <destination>コンテンツは出力時にデフォルトで自動的に消去されます。サイトで生成されないファイルやフォルダは消去されます。<keep_files>で指定することで、消去を防ぐことができます。 +

+ +

+ <destination>に重要な場所を設定しないでください。ステージング領域として使用し、そこからWebサーバーにコピーしてください。 +

+ +
+ +

Buildコマンドオプション

+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
設定 + OptionsFlags +
+

Regeneration

+

ファイルを修正したときのサイトの自動再生成を有効にする

+ +
+

-w, --[no-]watch

+
+

Configuration

+

_config.ymlファイルの代わりに特定の設定ファイルを使用する。後のファイルの設定は前のファイルの設定で上書きされる。 + +

+

--config FILE1[,FILE2,...]

+
+

Drafts

+

ドラフトを処理してレンダリングする。

+ +
+

show_drafts: BOOL

+

--drafts

+
+

Environment

+

ビルド時に特定の環境値を使用する。

+ +
+

JEKYLL_ENV=production

+
+

Future

+

未来の日付のポストやコレクションドキュメントを公開する。

+ +
+

future: BOOL

+

--future

+
+

Unpublished

+

unpublishedとしてマークされたポストをレンダリングする。

+ +
+

unpublished: BOOL

+

--unpublished

+
+

LSI

+

関連記事のインデックスを作成する。classifier-rebornプラグインが必要。

+ +
+

lsi: BOOL

+

--lsi

+
+

Limit Posts

+

解析及び公開する投稿数のリミット。

+ +
+

limit_posts: NUM

+

--limit_posts NUM

+
+

Force polling

+

pollingを使用するようwatchを強要する。

+ +
+

--force_polling

+
+

Verbose output

+

詳細な出力をプリントする。

+ +
+

-V, --verbose

+
+

Silence Output

+

ビルド時のJekyllからの通常の出力を黙らせる。

+ +
+

-q, --quiet

+
+

Incremental build

+

+ 実験的なインクリメンタルビルド機能を有効にする。インクリメンタルビルドでは、変更された投稿とページのみが再ビルドされるため、大規模サイトではパフォーマンスが大幅に向上するが、場合によってはサイトの生成が中断されることもある。 +

+ +
+

incremental: BOOL

+

-I, --incremental

+
+

Liquid profiler

+

+ パフォーマンスのボトルネックを特定するのに役立つLiquidレンダリングプロファイルを生成する。 +

+ +
+

profile: BOOL

+

--profile

+
+

Strict Front Matter

+

+ ページのfront matterのYAML構文にエラーがあるとビルドを失敗するようにする。 +

+ +
+

strict_front_matter: BOOL

+

--strict_front_matter

+
+
+ +

Serveコマンドオプション

+ + +

以下のオプションに加えて、`serve`サブコマンドは`build`サブコマンドを受け入れることができます。これらのオプションはサイトが供給される直前の構築時に適用されます。

+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
設定 + OptionsFlags +
+

Local Server Port

+

与えられたポートに従う

+ +
+

port: PORT

+

--port PORT

+
+

Local Server Hostname

+

与えられたホスト名に従う

+ +
+

host: HOSTNAME

+

--host HOSTNAME

+
+

Base URL

+

与えられたベースURLでWebサイトを提供する

+ +
+

baseurl: URL

+

--baseurl URL

+
+

Live Reload

+

内容を変更した場合に、自動でページを再読込する。

+ +
+

livereload: true

+

--livereload

+
+

Detach

+

ターミナルからサーバーを切り離す

+ +
+

detach: BOOL

+

-B, --detach

+
+

Skips the initial site build.

+

サーバー開始時の最初のサイト構築をスキップする

+ +
+

--skip-initial-build

+
+

X.509 (SSL) Private Key

+

サイトのソースに保存またはシンボリックリンクされている、SSLプライベートキー

+ +
+

--ssl-key

+
+

X.509 (SSL) Certificate

+

サイトのソースに保存またはシンボリックリンクされている、SSL公開証明書

+ +
+

--ssl-cert

+
+
+ +
+
設定ファイルにはtabを使わないでください
+ +

+ 構文解析エラーに繋がったり、Jekyllの設定がデフォルトに戻ることになります。代わりにスペースを使用してください。 +

+ +
diff --git a/_docs/configuration/webrick.md b/_docs/configuration/webrick.md new file mode 100644 index 0000000..90cce97 --- /dev/null +++ b/_docs/configuration/webrick.md @@ -0,0 +1,30 @@ +--- +title: WEBrickオプション +permalink: "/docs/configuration/webrick/" +--- + + +`_config.yml`に追加することで、サイトにカスタムヘッダを提供することができます。 + + + +```yaml +# File: _config.yml +webrick: + headers: + My-Header: My-Value + My-Other-Header: My-Other-Value +``` + +### デフォルト + + +Jekyllはデフォルトで`Content-Type`と`Cache-Control`レスポンスヘッダを提供します。提供されるデータの所為室を指定するための動的な一つと、開発モードでChromeの積極的なキャッシングを無効にするため静的なものです。 + + diff --git a/_docs/continuous-integration/buddyworks.md b/_docs/continuous-integration/buddyworks.md new file mode 100644 index 0000000..216a1fc --- /dev/null +++ b/_docs/continuous-integration/buddyworks.md @@ -0,0 +1,80 @@ +--- +title: "Buddy" +--- + +[Buddy][buddy-homepage]は[Docker][docker-homepage]ベースのCIサーバーで、15〜20分でセットアップしてJekyll Webサイトを構築、テスト、および展開できます。[GitHub][github-homepage]、[Bitbucket][bitbucket-homepage]、および[GitLab][gitlab-homepage]リポジトリをサポートしており、オンプレミスでインストールすることも、クラウドで使用することもできます。以下のガイドでは、Jekyllプロジェクトをビルドしてテストするための無料の環境を設定する方法を説明しています。 + + + +[buddy-homepage]: https://buddy.works +[docker-homepage]: https://www.docker.com/ +[github-homepage]: https://github.com +[bitbucket-homepage]: https://bitbucket.org/ +[gitlab-homepage]: https://gitlab.com + +## 1. 始める + + +1. [https://buddy.works][buddy-homepage]にGitHub/BitbucketアカウントかEメールでログインします。 +2. Gitプロバイダーを選び、Jekyllプロジェクトを選択するかプッシュします。 +3. 新しいパイプラインを作成し、'On every push'にトリガーをセットします。 +4. Jekyllアクション設定を追加し、パイプラインを保存します。 + + + +## 2. 働き方 + + +選択したブランチにプッシュするたびに、Jekyllアクションは孤立した[Jekyll Dockerイメージ][jekyll-docker-image]で`jekyll build`を実行します。 出力は`/filesystem`ディレクトリに生成され、さらにFTP/SFTPおよびIaaSサービスにデプロイできます。あなた自身のコマンドを追加したり、追加のパッケージをインストールしたり、サービスをアタッチしたり、Seleniumテストを実行したり、そして他のアクション(Slack通知やサーバーを再起動するSSHスクリプトなど)をパイプラインの下に追加することができます。 + + + +[jekyll-docker-image]: https://hub.docker.com/r/jekyll/jekyll/ + +## 3. 設定にYAMLを使用する + + +GUIよりもコードとして設定したい場合は、ターゲットブランチにプッシュするとJekyllアクションでパイプラインを作成する`buddy.yml`を生成できます。 + + + +```yaml +- pipeline: "Build and Deploy Jekyll site" + trigger_mode: "ON_EVERY_PUSH" + ref_name: "master" + actions: + - action: "Execute: jekyll build" + type: "BUILD" + docker_image_name: "jekyll/jekyll" + docker_image_tag: "latest" + execute_commands: + - "chown jekyll:jekyll $WORKING_DIR" + - "jekyll build" +``` + +## 4. オンプレミスサーバーの設定 + + +セルフホスト版のBuddyは、[Linux][bw-linux]、[Mac][bw-mac]、 [AWS EC2][bw-aws-ec2]、[DigitalOcean][bw-digitalocean]、[Microsoft Azure][bw-azure]など、Dockerをサポートするあらゆる種類のサーバーにインストールできます。 + + + +[bw-linux]: https://buddy.works/knowledge/standalone/installation-linux +[bw-mac]: https://buddy.works/knowledge/standalone/installation-mac-osx +[bw-aws-ec2]: https://buddy.works/knowledge/standalone/installation-amazon-ec2 +[bw-digitalocean]: https://buddy.works/knowledge/standalone/installation-digitalocean +[bw-azure]: https://buddy.works/knowledge/standalone/installation-azure + +## 5. 疑問がありますか? + + +このガイドはオープンソースです。修正がある場合は[編集][jekyll-docs-ci-buddy]を、トラブルがあり助けが必要な場合は[助けを求めて][jekyll-help]ください。CircleCIには、助けになる[オンラインコミュニティー][buddy-forum]もあります。 + + + +[jekyll-docs-ci-buddy]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/buddyworks.md +[jekyll-help]: https://jekyllrb.com/help/ +[buddy-forum]: http://forum.buddy.works/ diff --git a/_docs/continuous-integration/circleci.md b/_docs/continuous-integration/circleci.md new file mode 100644 index 0000000..88ccd5b --- /dev/null +++ b/_docs/continuous-integration/circleci.md @@ -0,0 +1,189 @@ +--- +title: "CircleCI" +--- + +Jekyllによって生成されたWebサイトの構築、テスト、およびデプロイは、継続的な統合および配信ツールである[CircleCI][0]を使用して素早く実行できます。CircleCIは[GitHub][1]と[Bitbucket][2]をサポートしており、オープンソースまたはプライベートのリポジトリを使って無料で始めることができます。 + + + +[0]: https://circleci.com/ +[1]: https://github.com/ +[2]: https://bitbucket.org/ + +## 1. CircleCIでプロジェクトをフォローする + + +CircleCIでプロジェクトの構築を開始するには、CircleCIのWebサイトからプロジェクトを'follow'するだけです。 + + + +1. 'Add Projects'ページへ行きます +2. 左のGitHubかBitbucketタブから、ユーザーか組織を選択します。 +3. リストからプロジェクトを見つけ出し、右の'Build project'をクリックします。 +4. 最初のビルドはそれ自身で始まります。リポジトリのrootに[circle.yml][3]ファイルを作成することで、CircleCIにプロジェクトのビルド方法を指示することができます。 + + + +[3]: https://circleci.com/docs/configuration/ + +## 2. 依存関係 + + +(CircleCIの利用に関係なく)Jekyllプロジェクトの依存関係管理の最も簡単な方法は、[Gemfile][4]の利用です。`Gemfile`でJekyll、Jekyllプラグイン、[HTML Proofer](#html-proofer)、その他のgemを使用することをお勧めします。`Gemfile.lock`のバージョンも忘れないでください。こちらが`Gemfile`の例です。 + + + +[4]: http://bundler.io/gemfile.html + +```ruby +source 'https://rubygems.org' + +ruby '2.4.0' + +gem 'jekyll' +gem 'html-proofer' +``` + +CircleCIは、`Gemfile`が存在することを検出し、`dependencies`フェーズで自動的に`bundle install`を実行します。 + + + +## 3. テスト + + +最も基本的なテストは、`jekyll build`がきちんと動くかを確認することです。これは、生成されたサイトで他のテストを実行するためのブロッカーであり、あなたがそうするなら依存関係です。そのため、`dependencies`フェーズでBundler経由でJekyllを実行します。 + + + +```yaml +dependencies: + post: + - bundle exec jekyll build +``` + +### HTML Proofer + +サイトを構築したら、有効なHTML、リンク切れなどを確認するためのテストを実行すると便利です。それにはいくつかのツールがありますが、[HTML Proofer][5]はJekyllユーザーの間で人気があります。いくつかの優先フラグを付けて`test`フェーズで実行します。利用可能な全フラグについては、`html-proofer` [README][6]をチェックするか、または`htmlproofer --help`をローカルで実行してください。 + + + +[5]: https://github.com/gjtorikian/html-proofer +[6]: https://github.com/gjtorikian/html-proofer/blob/master/README.md#configuration + +```yaml +test: + post: + - bundle exec htmlproofer ./_site --check-html --disable-external +``` + +## circle.ymlファイルの例 + + +まとめると、こちらは`circle.yml`ファイルがv1でどのように見えるかの例です。 + + + +```yaml +machine: + environment: + NOKOGIRI_USE_SYSTEM_LIBRARIES: true # speeds up installation of html-proofer + +dependencies: + post: + - bundle exec jekyll build + +test: + post: + - bundle exec htmlproofer ./_site --allow-hash-href --check-favicon --check-html --disable-external + +deployment: + prod: + branch: master + commands: + - rsync -va --delete ./_site username@my-website:/var/html +``` + +新しいプロジェクトが従うDockerベースのシステムであるCircleCI v2の場合は、`S3_BUCKET_NAME`環境変数を設定します(必要な設定ファイルの例を以下に示します)。 + + + +```yaml +defaults: &defaults + working_directory: ~/repo +version: 2 +jobs: + build: + <<: *defaults + docker: + - image: circleci/ruby:2.5 + environment: + BUNDLE_PATH: ~/repo/vendor/bundle + steps: + - checkout + - restore_cache: + keys: + - rubygems-v1-{% raw %}{{ checksum "Gemfile.lock" }}{% endraw %} + - rubygems-v1-fallback + - run: + name: Bundle Install + command: bundle check || bundle install + - save_cache: + key: rubygems-v1-{% raw %}{{ checksum "Gemfile.lock" }}{% endraw %} + paths: + - vendor/bundle + - run: + name: Jekyll build + command: bundle exec jekyll build + - run: + name: HTMLProofer tests + command: | + bundle exec htmlproofer ./_site \ + --allow-hash-href \ + --check-favicon \ + --check-html \ + --disable-external + - persist_to_workspace: + root: ./ + paths: + - _site + deploy: + <<: *defaults + docker: + - image: circleci/python:3.6.3 + environment: + S3_BUCKET_NAME: <> + steps: + - attach_workspace: + at: ./ + - run: + name: Install AWS CLI + command: pip install awscli --upgrade --user + - run: + name: Upload to s3 + command: ~/.local/bin/aws s3 sync ./_site s3://$S3_BUCKET_NAME/ --delete --acl public-read +workflows: + version: 2 + test-deploy: + jobs: + - build + - deploy: + requires: + - build + filters: + branches: + only: master +``` + +## 疑問がありますか? + + +このガイドはオープンソースです。修正がある場合は[編集][7]を、トラブルがあり助けが必要な場合は[助けを求めて][8]ください。CircleCIには、助けになる[オンラインコミュニティー][9]もあります。 + + + +[7]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/circleci.md +[8]: https://jekyllrb.com/help/ +[9]: https://discuss.circleci.com diff --git a/_docs/continuous-integration/travis-ci.md b/_docs/continuous-integration/travis-ci.md new file mode 100644 index 0000000..084ecdc --- /dev/null +++ b/_docs/continuous-integration/travis-ci.md @@ -0,0 +1,327 @@ +--- +title: "Travis CI" +--- + +Webサイトのビルドを1つ以上のバージョンのRubyに対してテストできます。次のガイドでは、プルリクエスト用の[GitHub][github]統合を使用して、[Travis][travis]で無料ビルド環境を設定する方法を説明します。 + + + +[travis]: https://travis-ci.org/ +[github]: https://github.com/ + +## 1. TravisとGithubの有効化 + + +GitHubリポジトリのTravisビルドを有効にします。 + + + +1. travis-ci.orgのあなたのプロフィールへ行きます:https://travis-ci.org/profile/username +2. ビルドを有効にしたいリポジトリを見つけます。 +3. リポジトリスイッチをオンにして、青色にします。 +4. 歯車アイコンをクリックしてビルドのうプション設定ができます。それ以上の設定は`.travis.yml`ファイルで行います。詳細は下記をご覧ください。 + + + +## 2. テストスクリプト + + +最も単純なテストスクリプトは`jekyll build`を実行し、Jekyllがサイトの構築に失敗しないことを確認します。結果のサイトは確認しませんが、物事が適切に構築されていることは確認します。 + + + +Jekyllの出力をテストするには、[html-proofer][html-proofer]が最も良いツールです。このツールは結果のサイトをチェックして、すべてのリンクと画像が存在することを確認します。便利な`htmlproofer`コマンドライン実行ファイルでそれを利用するか、あるいはgemを利用するRubyスクリプトを書いてください。 + + + +実行したい成功したコマンドを`./script/cibuild`ファイルに保存します。 + + + +### The HTML Proofer Executable + +```sh +#!/usr/bin/env bash +set -e # halt script on error + +bundle exec jekyll build +bundle exec htmlproofer ./_site +``` + +一部のオプションはコマンドラインスイッチで指定できます。これらのスイッチの詳細については、`html-proofer`のREADMEを確認するか、`htmlproofer --help`をローカルで実行してください。 + + + +外部のサイトをテストを避ける上記の例は、以下のコマンドを使用します。 + + + +```sh +bundle exec htmlproofer ./_site --disable-external +``` + +### The HTML Proofer Library + +Rubyスクリプト(Rakefileなど)で`html-proofer`を呼び出すこともできます。 + + + +```ruby +#!/usr/bin/env ruby + +require 'html-proofer' +HTMLProofer.check_directory("./_site").run +``` + +オプションは`.new`の2番目の引数として与えられ、シンボルキー付きのRuby Hashでエンコードされています。設定オプションの詳細については、`html-proofer`のREADMEファイルをご覧ください。 + + + +[html-proofer]: https://github.com/gjtorikian/html-proofer + +## 3. Travisビルドの設定 + + +このファイルはTravisビルドを設定するために使用されます。JekyllはRubyでビルドされており、インストールにはRubyGemsが必要なので、Ruby言語ビルド環境を使います。 以下はサンプルの`.travis.yml`ファイルで、その後に各行の説明が続きます。 + + + +**注:**Gemfileも必要です。Travisは参照されているgemに基づいて依存関係を[自動的にインストール](https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management)します。こちらは、2つの参照gem、"jekyll"と"html-proofer"を持つ`Gemfile`です。 + + + +```ruby +source "https://rubygems.org" + +gem "jekyll" +gem "html-proofer" +``` + +`.travis.yml`は次のようにします。 + + + +```yaml +language: ruby +rvm: + - 2.4.1 + +before_script: + - chmod +x ./script/cibuild # or do this locally and commit + +# Assume bundler is being used, therefore +# the `install` step will run `bundle install` by default. +script: ./script/cibuild + +# branch whitelist, only for GitHub Pages +branches: + only: + - gh-pages # test the gh-pages branch + - /pages-(.*)/ # test every branch which starts with "pages-" + +env: + global: + - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer + +addons: + apt: + packages: + - libcurl4-openssl-dev + +sudo: false # route your build to the container-based infrastructure for a faster build + +cache: bundler # caching bundler gem packages will speed up build + +# Optional: disable email notifications about the outcome of your builds +notifications: + email: false +``` + +それでは、各行について説明します。 + + + +```yaml +language: ruby +``` + +この行は、TravisにRubyビルドコンテナを使用することを伝えます。Bundler、RubyGems、Ruby runtimeへのアクセスを与えます。 + + + +```yaml +rvm: + - 2.4.1 +``` + +RVMは(rbenv、chrubyのように)有名なRubyのバージョン管理です。これはTravisにテストスクリプトを実行するときに使うRubyのバージョンを伝えます。ビルドをスピードアップするために[Travisビルドドッカーイメージにプレインストールされているバージョン][5]を使用してください。 + + + +```yaml +before_script: + - chmod +x ./script/cibuild +``` + +ビルドスクリプトファイルには*実行可能*属性を設定する必要があります。そうしないと、Travisはパーミッション拒否エラーで失敗します。これをローカルで実行して権限を直接コミットすることもでき、このステップは無関係です。 + + + +```yaml +script: ./script/cibuild +``` + +Travisはあなたのサイトをテストするために任意のシェルスクリプトを実行することを可能にします。1つの規則は、プロジェクトのすべてのスクリプトを`script`ディレクトリに置き、テストスクリプトを`cibuild`と名付けます。この行は完全にカスタマイズ可能です。スクリプトがそれほど変わらない場合は、テストの呪文をここに直接記述できます。 + + + +```yaml +install: gem install jekyll html-proofer +script: jekyll build && htmlproofer ./_site +``` + +`script`ディレクティブは、絶対に任意の有効なシェルコマンドにすることができます。 + + + +```yaml +# branch whitelist, only for GitHub Pages +branches: + only: + - gh-pages # test the gh-pages branch + - /pages-(.*)/ # test every branch which starts with "pages-" +``` + +サイト用のTravisビルドがサイトを含むブランチでのみ実行されていることを確認します。この分離を確実にする1つの方法は、Travis設定ファイルにブランチホワイトリストを含めることです。`gh-pages`ブランチを指定することで、関連するテストスクリプト(上記で説明)がサイトブランチでのみ実行されるようになります。変更を提案するためにプルリクエストフローを使用する場合は、上記の`/pages-(.*)/`正規表現で例証されているように、編集を含むすべてのブランチにプレフィックスを付けるように、ビルドを強制することができます。 + + + +`branches`ディレクティブは完全にオプションです。省略した場合、Travisはリポジトリの任意のブランチへのすべてのプッシュから構築します。 + + + +```yaml +env: + global: + - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer +``` + +`html-proofer`を使用していますか? この環境変数を必要とするでしょう。NokogiriはコンパイルされたサイトでHTMLファイルを解析するのに使われ、それがインストールされるたびにコンパイルされなければならないライブラリにバンドルされています。幸いなことに、環境変数`NOKOGIRI_USE_SYSTEM_LIBRARIES`を`true`に設定することによって、Nokogiriのインストール時間を劇的に減らすことができます。 + + + +
+
_config.ymlからvendorを除外してください
+ +

Travisはビルドサーバー上のvendorディレクトリの全gemをバンドルしています。Jekyllが間違えて読んで爆発します。

+ +
+ +```yaml +exclude: [vendor] +``` + +デフォルトではTravisに`sudo: false`コマンドを与えるべきです。このコマンドは、Travisの[コンテナベースのインフラストラクチャ](https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure)でビルドを実行するようにTravisに明示的に指示します。コンテナーベースのインフラストラクチャーで実行すると、ビルドの速度が上がることがよくあります。ビルドに問題がある場合、またはビルドに`sudo`アクセスが必要な場合は、その行を`sudo: required`に変更します。 + + + +```yaml +sudo: false +``` + +ビルドをスピードアップするために、`bundler`によって作成されたgemパッケージをキャッシュするべきです。Travisは事前定義された[ツールのキャッシュストラテジー][6]を持っています。正確にするためにすべてのデフォルト設定が必要です。 + + + +```yaml +cache: bundler +``` + +オプションで、ビルドEメール通知が必要ない場合は、この構成でそれらを無効にすることができます。Travisはさまざまな通知サービスをサポートしており、[(slackなど)別の役立つサービス][7]を見つけることができるでしょう。 + + + +```yaml +notifications: + email: false +``` + +### トラブルシューティング + + +**Travis error:** *"Gemfileを変更した後でデプロイモードをインストールしようとしています。他の場所でbundle installを実行し、更新されたGemfile.lockをバージョン管理に追加してください。"* + + + +**Workaround:** `bundle install`をローカルで実行して`Gemfile.lock`への変更をコミットするか、`Gemfile.lock`ファイルをリポジトリから削除して`.gitignore`ファイルにエントリを追加して、再度チェックインされないようにしてください。 + + + +### 疑問がありますか? + + +このガイド全体はオープンソースです。修正がある場合は先に進んで[編集][3]し、問題が発生して助けが必要な場合は[助けを求めて][4]ください。 + + + +[3]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/travis-ci.md +[4]: https://jekyllrb.com/help/ +[5]: https://docs.travis-ci.com/user/languages/ruby/#Specifying-Ruby-versions-and-implementations +[6]: https://docs.travis-ci.com/user/caching/#Caching-directories-(Bundler%2C-dependencies) +[7]: https://docs.travis-ci.com/user/notifications/ diff --git a/_docs/contributing.md b/_docs/contributing.md index 9394f2d..34440a1 100644 --- a/_docs/contributing.md +++ b/_docs/contributing.md @@ -1,323 +1,262 @@ --- -layout: docs title: 貢献 -prev_section: upgrading -next_section: history -permalink: /docs/contributing/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] +permalink: "/docs/contributing/" +note: This file is autogenerated. Edit /.github/CONTRIBUTING.markdown instead. --- - - - -あなたは Jekyll に投じるすばらしいアイディアを持っています。 -すばらしいことです!次の事柄を心に留めてください。 - - - -* 取り組んでいるのが細かな修正や既存機能へのパッチなら、簡単な内容で構わないのでテストも追加してください。 - 現在のテストスイートの範囲にとどまり、そして - [Shoulda](https://github.com/thoughtbot/shoulda/tree/master) や - [RR](https://github.com/btakita/rr/tree/master) を使用してください。 -* もし、それが新しい機能の場合は、必ず新しい - [Cucumber](https://github.com/cucumber/cucumber/) の機能を作成し、 - 必要に応じて手順を再利用します。 - また、あなたがフォークした `site` に - 急ぎいくつかのドキュメントを用意し、一度マージを行い - メイン `site` の jekyllrb.com に転送していただければ幸いです。 -* あなたの貢献によって Jekyll の振る舞いが変わった場合、 - それは `site/docs` にあります。 - もし、 docs に情報の誤りがあった場合、遠慮なく追加してください。 - すばらしいドキュメントはすばらしいプロジェクトを作ります! -* Ruby のコードを変更するときは、 [GitHub Ruby Styleguide](https://github.com/styleguide/ruby) - に従ってください。 -* **小さなプルリクエスト** に最善を尽くしてください。 - 簡単に提案された変更はレビューされ、マージされる可能性が高いです。 -* プルリクエストを送信するとき、プルリクエストのボディを賢明に使用してください。 - 変更されたかどうかの記述、変更の背後にある動機、 [完了したかどうかのタスクリスト](http://git.io/gfm-tasks) - もレビュー時間を早めます。 - - - - -
-
テストなしでは貢献はできません
-

- もし、既存の機能への小さな修正やパッチを作成したなら、ただのシンプルなテストを行います。 -

-
- - - -テストの依存関係 ------------------ - - - - -テストスイートの実行や gem のビルドのために、 -Jekyll の依存ツールをインストールする必要があります。 -Jekyll は Bundler を使用しており、 `bundle` コマンドを実行すると全ての設定が迅速に行われます! - - - -{% highlight bash %} -$ bundle -{% endhighlight %} - - - -はじめる前に、テストを実行し、必ずテストが通ることを -確認してください(あなたの環境が適切に設定されているかを確認するために): - - - -{% highlight bash %} -$ bundle exec rake test -$ bundle exec rake features -{% endhighlight %} - - - -ワークフロー --------- - - - -これは、あなたの作業がプロジェクトにマージされるもっとも直接的な方法です: - - - -* プロジェクトをフォークします -* あなたのフォークプロジェクトをクローンします: - - - -{% highlight bash %} -git clone git://github.com//jekyll.git -{% endhighlight %} - - - -* トピックブランチを作成し、あなたの変更を含んでください: - - - -{% highlight bash %} -git checkout -b my_awesome_feature -{% endhighlight %} - - - -* ハックし、テストを追加します。必ずしもこの順番でなくてかまいません -* `rake` を実行し、テストが必ず全て通ることを確認してください -* 必要に応じて、エラーがないようにコミットを論理的な塊にリベースしてください -* ブランチをプッシュしてください - - - -{% highlight bash %} -git push origin my_awesome_feature -{% endhighlight %} - - - -* jekyll/jekyll プロジェクトの master ブランチに対してプルリクエストを作成し、 - あなたの変更内容と、なぜそれをマージすべきかを記述してください - - - -ドキュメントの更新 ----------------------- - - - -私たちは Jekyll のドキュメントについて最善を尽くしたいです。 -私たちはドキュメントをオープンソース化しました、そして -あなたが Jekyll に欠けているものを見つけた場合、私たちはプルリクエストを歓迎しています。 - - - -あなたは、 GitHub.com 上の Jekyll リポジトリの [site](https://github.com/jekyll/jekyll/tree/master/site) で -jekyllrb.comのドキュメントを見つけることができます。 - - - -全てのドキュメントのプルリクエストは `master` に向けられる必要があります。 -他のブランチに向けたプルリクエストは受け入れられません。 - - - -GitHub の [Jekyll wiki]({{ site.repository }}/wiki) は、 -自由に更新することができるように、プルリクエストなしで -全ての GitHub ユーザがアクセス権を持つことができます。 - - - -もし、あなたのプラグインを[プラグイン一覧](/docs/plugins/#available-plugins)に追加したいなら、 -あなたのプラグインのタイプに応じて適切な小見出しの下にリンクを追加し、 -[プラグインページのソースファイル]({{ site.repository }}/blob/master/site/docs/plugins.md)へ -プルリクエストを送ってください。 - - - -落とし穴 -------- - - - -* もし、 gem のバージョンをあげる場合は、コミットを分けてください。 - この方法だと、メンテナが gem をリリースするときに制御できます。 -* jekyll/jekyll の最新コミットに基づいて(複数の)パッチを維持してください。 - それは適用するためのあなたの仕事で、メンテナがしなければならないことを少なくするのは - とてもよいことです。 -* あなたの GitHub issue で \[fix\], \[feature\] などのタグをつけないでください。 - メンテナは積極的に issue を読み、彼らが問題に出くわしたらラベルをつけるでしょう。 - - - -
-
もっとよくできる方法をお知らせください!
-

- Jekyll の使用とハックは楽しく単純、簡単でなければなりません。 - なんらかの理由で苦痛を見つけた場合、 あなたの経験をGitHub の - issue に報告(英語)すると、 - 私たちはそれを改善することができます。 -

-
- - +permalink: "/docs/contributing/" +note: This file is autogenerated. Edit /.github/CONTRIBUTING.markdown instead. +--- --> + +こんにちは! Jekyllへの貢献に興味がありますか? あなたの助けが大好きです。Jekyllはオープンソースプロジェクトで、あなたのようなユーザーの貢献の積み重ねでできています。 + + + +## 問題の報告や助けを得る場所 + + +[サポートガイドライン]({{ "/docs/support/" | relative_url }})を見てください。 + + + +## 貢献の仕方 + + +あなたが開発者でも、デザイナーでも、あるいは単にJekyllの信者でも、貢献する方法はたくさんあります。ここにいくつかのアイデアを示します。 + + + +* [コンピュータにJekyllをインストール]({{ "/docs/installation/" | relative_url }})し、ざっと操作を行ってみてください。動きましたか? 希望通りの動作ですか? そうでなければ、[issueを開き](https://github.com/jekyll/jekyll/issues/new){:target="_blank"}知らせてください。 +* プロジェクトの[開いているissue](https://github.com/jekyll/jekyll/issues){:target="_blank"}にコメントしてください。同じ問題を経験しましたか? 回避策を知っていますか? この機能がどのように優れているかについての提案はありますか? +* [documentation]({{ "/docs/home/" | relative_url }})を読み、"improve this page"をクリックしてください。何かを混乱させているのを見たり、改善することができる何かについての提案をしている時はいつでも。 +* [Jekyll discussion forum](https://talk.jekyllrb.com/){:target="_blank"}をブラウズして、質問に手を貸してください。他のユーザーが体験していることを既に経験していれば、いいチャンスです。 +* [未解決のissue](https://github.com/jekyll/jekyll/issues){:target="_blank"}(特に[`help-wanted`のラベル](https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted){:target="_blank"})のもの)を見つけて、修正案を提出してください。それがあなたの最初のプルリクエストであるならば、我々は噛み付かないと約束します、そして、どんな質問にでも答えて喜んでいます。 +* 変更をローカルでテストし、提案内容を確認することは、[オープンプルリクエスト](https://github.com/jekyll/jekyll/pulls){:target="_blank"}を評価するのに役立ちます。 + + + +## プルリクエストの送信 {#submitting-a-pull-request} + + +### プルリクエストの基本 + + +* 提案された変更は小さい方が良いです。無関係な変更を2つ提案する場合は、2つのプルリクエストを送信してください。 +* 情報が多いほど、優れています。プルリクエストボディをしっかりと使用してください。どのような変更が行われたのか、なぜ変更が行われたのか、およびそれらがユーザーに与える影響について説明します。 +* これがあなたの最初のプルリクエストなら、それは[GitHub Flowを理解する](https://guides.github.com/introduction/flow/){:target="_blank"}のを助けるかもしれません。 +* コードの投稿を送信する場合は、必ず以下の[コードへの貢献](#code-contributions)セクションを読んでください。 + + + +### github.comでのプルリクエストの送信 + + +github.comのWebインターフェースを介して、多くの小さな変更を完全に行うことができます。 + + + +1. 編集を行う[`jekyll/jekyll`](https://github.com/jekyll/jekyll){:target="_blank"}内のファイルに移動します。 +2. ファイルを編集するために、右上の鉛筆のアイコンをクリックします。 +3. 提案する変更を行います。 +4. "Propose file change"をクリックします。 +5. "Create pull request"をクリックします。 +6. 提案する変更の説明的なタイトルと詳細な説明を追加します。詳しい方が良いです。 +7. "Create pull request"をクリックします。 + + + +以上です。提案した変更を他の人が確認してフィードバックを提供すると、自動的に更新を受け取るように登録されます。 + + + +### Gitコマンドラインでプルリクエストを送信する + + +1. [`jekyll/jekyll`](https://github.com/jekyll/jekyll){:target="_blank"}の右上のコーナーの"Fork"をクリックし、プロジェクトをForkします。 +2. `git clone https://github.com//jekyll`でローカルリポジトリにクローンします。 +3. 変更を行うための、説明的な名前のブランチを作成します。( `git checkout -b my-awesome-feature` ) +4. 修正とテストを行います。必ずしも必要な手順ではありません。 +5. `script/cibuild`を実行して、また全てが上手くいくことを確認してください。([テストセクション](#running-tests-locally)もご確認ください) +6. ブランチをプッシュします( `git push origin my-awesome-feature` )。 +7. `https://github.com//jekyll`に行き、プルリクエストを作成します。そして、画面上部の指示に従ってください。 + + + +## ドキュメントの更新を提案する + + +Jekyllのドキュメンテーションをできるだけベストな状態にしたいと考えています。ドキュメンテーションをオープンソース化しており、かけているところを見つけられた際はプルリクエストを送信してください。 + + + +### 変更の送信の仕方 + + +jekyllrb.comのドキュメンテーションは[docs](https://github.com/jekyll/jekyll/tree/master/docs){:target="_blank"}ディレクトリにあります。上のセクションを見て、変更の情報を[プルリクエストで送信](#submitting-a-pull-request)してください。 + + + +注意点を一つ。すべてのpullリクエストは`master`ブランチ(デフォルトのブランチ)に向けてください。 + + + +### jekyllrb.comのFontAwesome iconsetを更新 + + +使用しているアイコンだけを含む、カスタムバージョンのFontAwesomeを使用しています。 + + + +カスタムアイコンセットでまだ使用できないアイコンを使用してドキュメンテーションを更新する必要がある場合、Icomoon's Generatorを使用してアイコンをレンダリングし直す必要があります。 + + + +1. に行きます。 +2. 上部のバーの`Import Icons`をクリックし、`/docs/icomoon-selection.json`を実行してアップロードします。 +3. ページの下の`Add Icons from Library..`をクリックし、'Font Awesome'を追加します。 +4. ライブラリから必要なアイコンを選択します('IcoMoon-Free'ライブラリの代わりに'FontAwesome'ライブラリを使用してください)。 +5. ボタンのバーの`Generate Font`をクリックします。 +6. 含まれるアイコンを確認して、`Download`をクリックして次に進みます。 +7. フォントファイルを抽出し、CSSをJekyllで使用しているパスに適応させます。 + - `fonts`ディレクトリ全体をコピーし、`/docs/`のそれを上書きします。 + - `selection.json`の内容をコピーし、`/docs/icomoon-selection.json`の内容を上書きします。 + - `@font-face {}`の宣言をコピーし、**新しいアイコンのcss宣言**だけを`/docs/_sass/_font-awesome.scss`のsass部分を更新します。 + - `@font-face {}`宣言のパスの`fonts/FontAwesome.*`の前に`../`を追加してパスを修正します。`('../fonts/Fontawesome.woff?9h6hxj')`の様にします。 + + + + + +## コードへの貢献 {#code-contributions} + + +プルリクエストの送信に興味がありますか? あなたが落とし穴にはまるのを避けられるように、いくつかの共通の注意事項を示します。 + + + +### テストとドキュメンテーション + + +コードの変更を提案するときはいつでも、ドキュメンテーションとテストの更新を同じプルリクエストに含めてください。 + + + +#### ドキュメンテーション + + +あなたの貢献がJekyllの振る舞いを変えるなら、ドキュメンテーションを必ず更新してください。ドキュメンテーションは`docs/_docs`フォルダにあります(警報:それはJekyllサイトです!)。ドキュメントに情報が欠けている場合は、気軽に追加してください。優れたドキュメントは、プロジェクトを素晴らしいものにします。プルリクエストにドキュメントの変更を含めると、マージ時に`jekyllrb.com`が更新されます。 + + + +#### テスト + + +* 既存の機能に対して小さな修正やパッチを作成する場合は、簡単なテストで十分です。通常、`tests`フォルダの既存の例からコピー&ペーストすることができますが、必要に応じて私たちのテストsuiteの[Shoulda](https://github.com/thoughtbot/shoulda/tree/master){:target="_blank"}と[RSpec-Mocks](https://github.com/rspec/rspec-mocks){:target="_blank"}について調べてください。 +* 全く新しい機能なら、新しい[Cucumber](https://github.com/cucumber/cucumber/){:target="_blank"}を作成し、必要に応じて既存の手順を再利用してください。 + + + +### コード貢献の基本 + + +* Jekyllは[Rubocop](https://github.com/bbatsov/rubocop){:target="_blank"}静的アナライザーを使って、貢献が[GitHub Ruby Styleguide](https://github.com/styleguide/ruby){:target="_blank"}に従っていることを確認してます。あなたのブランチをプッシュする前に、`script/fmt`を使ってあなたのコードをチェックし、エラーを解決してください。 +* プルリクエストでGemバージョンをbumpしないでください(意味がわからない場合は、おそらくしなかったでしょう)。 +* `script/console`のコマンドを使ってREPLを起動し、Jekyllのメソッドの結果を調べることができます。また、サイトや設定をすばやく作成するのに役立つ方法もあります。[ぜひお試しください!](https://github.com/jekyll/jekyll/blob/master/script/console){:target="_blank"} + + + +## ローカルでのテスト実行 {#running-tests-locally} + + +### 依存関係をテスト + + +テストsuiteを実行し、Jekyllの依存関係に必要なgemを構築するために、以下のコマンドを実行します。 + + + +```sh +script/bootstrap +``` + +変更を行う前に、テストを実行しパスすることを確認します(環境が正しく設定されていることを確認します)。 + + + +```sh +script/cibuild +``` + +`test/`内のファイルだけを更新した場合は、次のコマンドを使います。 + + + +```sh +script/test test/blah_test.rb +``` + +`.feature`ファイルだけを更新した場合は、次のコマンドを使用します。 + + + +```sh +script/cucumber features/blah.feature +``` + +`script/test`と`script/cucumber`はどちらも引数なしで実行することができ、その場合はそれぞれのsuite全体を実行します。 + + + +## A thank you + +ありがとうございます。Jekyllをハッキングするのは楽しいはずです。もしあなたがこれを理解するのが難しいと思うなら、私たちが私たちのプロセスやドキュメンテーションを改善できるように知らせてください! + diff --git a/_docs/datafiles.md b/_docs/datafiles.md index 314bdf6..72a04d5 100644 --- a/_docs/datafiles.md +++ b/_docs/datafiles.md @@ -1,133 +1,85 @@ --- -layout: docs -title: データファイル -prev_section: collections -next_section: assets +title: Dataファイル permalink: /docs/datafiles/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -Jekyll から利用できる[組み込み変数](../variables/)に加えて、 -[Liquid templating system](https://wiki.github.com/shopify/liquid/liquid-for-designers) を -介してアクセス可能な独自のカスタムデータを指定できます。 +Jekyllの[組み込み変数](../variables/)に加えて、[Liquid +templating system](https://wiki.github.com/shopify/liquid/liquid-for-designers){:target="_blank"}からアクセスできるカスタムデータを設定できます。 - +templating system](https://wiki.github.com/shopify/liquid/liquid-for-designers). --> -Jekyll は `_data` ディレクトリの中に配置された [YAML](http://yaml.org/) ファイルおよび -[JSON](http://www.json.org/) ファイルからのデータ読み込みをサポートしています。 +Jekyllは`_data`ディレクトリの[YAML](http://yaml.org/){:target="_blank"}・[JSON](http://www.json.org/){:target="_blank"}・[CSV](https://en.wikipedia.org/wiki/Comma-separated_values){:target="_blank"}・[TSV](https://en.wikipedia.org/wiki/Tab-separated_values){:target="_blank"}ファイルのデータ読み込みをサポートしています。 +注:CSVとTSVはヘッダ行が*必要*です。 - + -この強力な機能を利用すれば、テンプレート内で繰り返しを避けることができ、また、 -`_config.yml` を変更せずともサイト特有のオプションを設定することができます。 +この強力な機能は、`_config.yml`を変更することなく、テンプレートでの繰り返し処理やサイトの特別なオプションを提供します。 - + -プラグイン/テーマも環境設定のためにデータファイルを活用することができます。 +プラグインやテーマはデータファイルを利用して、設定用変数をセットできます。 - + ## データフォルダ + - - -[ディレクトリ構成](../structure/)ページで説明しているように、 -あなたのサイトを生成する時に Jekyll が使用する追加的なデータを -格納できる場所が `_data` フォルダです。 -これらのファイルは YAML ファイル(拡張子は `.yml`, `.yaml` または `.json` を使用) -であるべきであり、そしてそれらは `site.data` 経由でアクセスできるようになります。 - - +`_data`フォルダがJekyllがサイトを生成するときに使う追加データを保管するフォルダです。ファイルは、YAMLかJSON、CSV(拡張子が`.yml`, `.yaml`, `.json`, `.csv`)ファイルで、`site.data`からアクセス可能になります。 -## 例: メンバーのリスト + - +## 例:メンバーのリスト + -データファイルを使用すれば、 Jekyll テンプレートでたくさんのコードをコピー&ペーストしなくて済むようになります。 -基本的な例は下記の通りです。 +大量のコードをJekyllテンプレートにコピー&ペースとしなくてすむように、データファイルの基本的な使用例を示します。 - + -`_data/members.yml` に次のように記述します: - - -{% highlight yaml %} -- name: Tom Preston-Werner - github: mojombo +```yaml +- name: Eric Mill + github: konklone - name: Parker Moore github: parkr - name: Liu Fengyun github: liufengyun -{% endhighlight %} +``` - - -このデータには `site.data.members` 経由でアクセスできます -(ファイル名が変数名を決定していることに注意してください)。 +このデータは`site.data.members`でアクセスできます(注:ファイル名が変数名になります)。 - + -これで、テンプレート内のメンバーリストをレンダリングできるようになりました: +これで、次のようテンプレートに記述すると、メンバーのリスト作成できます。 - + -{% highlight html %} {% raw %} +```liquid
    {% for member in site.data.members %}
  • @@ -137,48 +89,22 @@ You can now render the list of members in a template:
  • {% endfor %}
+``` {% endraw %} -{% endhighlight %} - - - -## 例: Organizations - - +## サブフォルダ + -データファイルは `_data` フォルダの下位のフォルダに配置することもできます。 -各フォルダレベルが変数の名前空間に追加されます。 -以下の例は、GitHub の organizations を `orgs` フォルダ配下のファイルに -分割して定義するとしたらどのようになるかを示しています。 +データファイルは`_data`フォルダのサブフォルダに配置することもできます。各フォルダのレベルが変数のネームスペースとして追加されます。GitHub組織が`orgs`フォルダの各ファイルで設定されている場合の例を、以下にしまします。 - + -`_data/orgs/jekyll.yml` に次のように記述します: - - -{% highlight yaml %} +```yaml username: jekyll name: Jekyll members: @@ -187,53 +113,25 @@ members: - name: Parker Moore github: parkr -{% endhighlight %} - - - -`_data/orgs/doeorg.yml` に次のように記述します: - - - -{% highlight yaml %} -username: doeorg -name: Doe Org -members: - - name: John Doe - github: jdoe -{% endhighlight %} - +``` -organizations は `site.data.orgs` のあとにファイル名を続ける形でアクセスできます: +組織には、`site.data.orgs`にファイル名を続けてアクセスすることができます。 - + -{% highlight html %} {% raw %} +```liquid
    {% for org_hash in site.data.orgs %} {% assign org = org_hash[1] %} @@ -245,23 +143,44 @@ The organizations can then be accessed via `site.data.orgs`, followed by the fil {% endfor %}
+``` {% endraw %} -{% endhighlight %} - + +ページやポストもデータアイテムにアクセスすることができます。以下にその例を示します。 + + + +`_data/people.yml`: + +```yaml +dave: + name: David Smith + twitter: DavidSilvaSmith +``` + +ポストのfront matterでページ変数として著者(author)を指定できます。 + + + {% raw %} -
    -{% for org_hash in site.data.orgs %} -{% assign org = org_hash[1] %} -
  • - - {{ org.name }} - - ({{ org.members | size }} members) -
  • -{% endfor %} -
+```liquid +--- +title: sample post +author: dave +--- + +{% assign author = site.data.people[page.author] %} + +``` {% endraw %} -{% endhighlight %} ---> + +(特にドキュメンテーションサイトや多くのページが存在するJekyllサイトを持っているなら)しっかりしたナビゲーションの構築のための情報は、[ナビゲーション]({{ "tutorials/navigation" | relative_url }})を見てください。 + + diff --git a/_docs/deployment-methods.md b/_docs/deployment-methods.md deleted file mode 100644 index bf1882b..0000000 --- a/_docs/deployment-methods.md +++ /dev/null @@ -1,339 +0,0 @@ ---- -layout: docs -title: デプロイ方法 -prev_section: github-pages -next_section: troubleshooting -permalink: /docs/deployment-methods/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -Jekyllを使用して構築されたサイトは、生成される出力の静的コンテンツを様々な方法でデプロイすることができます。最も一般的なデプロイの方法をいくつか以下に説明します。 - - - -## Web ホスティングプロバイダ (FTP) - - - -従来のWebホスティングプロバイダについては、あなたは、FTP経由でそれらのサーバーにファイルをアップロードできます。 FTPを使用してWebホストにJekyllで作られたサイトをアップロードするには、単に `jekyll build` コマンドを実行し、生成された `_site` フォルダをホスティングアカウントのルートフォルダにコピーします。 -これは、多くのホスティングプロバイダーの `httpdocs` や `publich_html` フォルダに相当します。 - - - -### Glynn を利用したFTP - - - -Jekyllを利用したサイトの静的ファイルを簡単に生成し、それをあなたのホストにFTP送信する [Glynn](https://github.com/dmathieu/glynn) というプロジェクトがあります。 - - - -## 自分で管理している web サーバの場合 - - - -デプロイ対象のWebサーバへ直接アクセスする方法を持っている場合は、 -デプロイの方法は基本的に同じです(`scp`、あるいはファイルシステムへ直接アクセスするといった、 -他のファイル転送方法がある場合は除く)。生成された `_site`フォルダの内容が、 -Webサーバーの適切なWebルートディレクトリに置かれているか確認するのを忘れないでください。 - - - -## 自動化された方法 - - - -Jekyllサイトのデプロイを簡単に自動化する方法はいくつもあります。あなたが一覧にない方法を知っているなら、誰もが恩恵を受けることができるように、[貢献](../contributing/)してくれるととても嬉しいです! - - - -### Git post-update フック - - - -あなたが自身のJekyllサイトを[Git](http://git-scm.com/) に保存している場合(あなたはバージョン管理をしていますよね?)、 -あなたのGitリポジトリに post-update フックを設定することでデプロイ手順を自動化するのは簡単です。 -[やり方はこちらです](http://web.archive.org/web/20091223025644/http://www.taknado.com/en/2009/03/26/deploying-a-jekyll-generated-site/)。 - - - -### Git post-receive フック - - - -Gitで変更をpushする度にリモートサーバにデプロイするためには、デプロイ権限を持ったアカウントを作成し、公開鍵を`authorized_keys` ファイルに追加します。次のように所定の場所に post-receive フックを設定することでできます: - - - -{% highlight bash %} -laptop$ ssh deployer@example.com -server$ mkdir myrepo.git -server$ cd myrepo.git -server$ git --bare init -server$ cp hooks/post-receive.sample hooks/post-receive -server$ mkdir /var/www/myrepo -{% endhighlight %} - - - -次に、hooks/post-receive に次の行を追加して、そしてJekyllがサーバにインストールされていることを -確認してください: - - - -{% highlight bash %} -GIT_REPO=$HOME/myrepo.git -TMP_GIT_CLONE=$HOME/tmp/myrepo -PUBLIC_WWW=/var/www/myrepo - -git clone $GIT_REPO $TMP_GIT_CLONE -jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW -rm -Rf $TMP_GIT_CLONE -exit -{% endhighlight %} - - - -最後に、このフックを使用してデプロイできる必要のあるユーザのラップトップから次のコマンドを実行してください: - - - -{% highlight bash %} -laptops$ git remote add deploy deployer@example.com:~/myrepo.git -{% endhighlight %} - - - -ここまでくれば、デプロイはnginx や Apache が `/var/www/myrepo` を見るくらいに簡単です。 -そして次のコマンドを実行します: - - - -{% highlight bash %} -laptops$ git push deploy master -{% endhighlight %} - - - -### Jekyll-hook - - - -あなたは jekyll-hook を使うこともできます。 -jekyll-hook は GitHub からのウェブフックの発動を監視し、Jekyll でウェブサイトを -作成してどこかの場所に発行するサーバです。 -あなた独自の GitHub Pages スタイルのウェブサーバを運用するために使ってください。 - - - -ファイアウォール越しにサイトを提供する場合や、HTTP ベーシック認証のような -追加的なサーバレベル機能が必要な場合、あるいは CDN や S3 のようなファイルホストで -直接サイトをホストしたい場合には、この方法が便利です。 - - - -セットアップの手順は -[`jekyll-hook` リポジトリ](https://github.com/developmentseed/jekyll-hook) -にすべてドキュメント化されています。 - - - -### Rake - - - -Jekyllサイトをデプロイする別の方法は[Rake](https://github.com/jimweirich/rake)、[HighLine](https://github.com/JEG2/highline)、[Net::SSH](https://github.com/net-ssh/net-ssh) を利用することです。 -複数のブランチをRakeで扱い、Jekyllをデプロイするより複雑な例は[Git Ready](https://github.com/gitready/gitready/blob/cdfbc4ec5321ff8d18c3ce936e9c749dbbc4f190/Rakefile) に記載されています。 - - - -### rsync - - - -一度、 `_site` ディレクトリを生成したら、あなたは -[このデプロイスクリプト](https://github.com/henrik/henrik.nyh.se/blob/master/tasks/deploy) -のような `tasks/deploy` シェルスクリプトを用いて簡単にrsyncできます。 -当然ながら、あなたのサイトの詳細に合わせて値を変更する必要はあります。 -このスクリプトに[対応したTextMateのコマンド](http://gist.github.com/214959) もあり、 -Textmate上からこのスクリプトを実行するのに役立ちます。 - - - -## Rack-Jekyll - - - -[Rack-Jekyll](https://github.com/adaoraul/rack-jekyll/)は、Amazon EC2、Slicehost、Herokuの、そして、任意のRackサーバ上などでサイトをデプロイするための簡単な方法です。 -それらは [shotgun](https://github.com/rtomayko/shotgun/)、 [rackup](https://github.com/rack/rack)、 [mongrel](https://github.com/mongrel/mongrel)、 [unicorn](https://github.com/defunkt/unicorn/)、 [その他](https://github.com/adaoraul/rack-jekyll#readme) にて実行することができます。 - - - -Rack-Jekyllを用いたHerokuへのデプロイの仕方については[この記事](http://blog.crowdint.com/2010/08/02/instant-blog-using-jekyll-and-heroku.html) を読んでください。 - - - -## Rails用のJekyll-Admin - - - -もし、あなたが既存のRailsアプリの内部でJekyllを利用したいなら、[Jekyll-Admin](https://github.com/zkarpinski/Jekyll-Admin)にある挿入用コードを使うことで可能です。 -詳細はJekyll-Adminの[README](https://github.com/zkarpinski/Jekyll-Admin/blob/master/README)を参照してください。 - - - -## Amazon S3 - - - -あなたがAmazon S3の中であなたのサイトをホストしたい場合は、 -[s3_website](https://github.com/laurilehmijoki/s3_website) アプリケーションで実現することができます。 -Amazon S3にあなたのサイトをpushし、任意のWebサーバのように提供できます。ほぼ無制限のトラフィックに動的にスケーリングします。 -この手段はあなたが使っただけの代金を払うだけで容量の少ないブログが利用できる最も安いホスティング・オプションであるという利点があります。 - - - -## OpenShift - - - -あなたのサイトをOpenShift gearにデプロイしたい場合は、[そのためのカートリッジ](https://github.com/openshift-cartridges/openshift-jekyll-cartridge)があります。 - - - -
-
ProTip™: 面倒ゼロのJekyllホスティングのためにGitHub Pagesを使う
-

GitHub Pages は裏側でJekyllが動いています。そして、あなたが面倒ゼロでコストがゼロなソリューションをさがしているなら、GitHub Pages は 無料でJekyll利用のウェブサイトをホストする優れた方法です。

-
- - diff --git a/_docs/deployment.md b/_docs/deployment.md new file mode 100644 index 0000000..a4e21c0 --- /dev/null +++ b/_docs/deployment.md @@ -0,0 +1,17 @@ +--- +title: Deployment +permalink: /docs/deployment/ +redirect_from: "/docs/deployment-methods/index.html" +--- + +Jekyllを使用して構築されたサイトは、静的なファイルが出力されますので、さまざまな方法で配置できます。 最も一般的な方法は次のとおりです。 + + + +* [手動で]({{ "/docs/deployment/manual/" | relative_url }}) +* [自動で]({{ "/docs/deployment/automated/" | relative_url }}) +* [サードパーティ]({{ "/docs/deployment/third-party/" | relative_url }}) + + diff --git a/_docs/deployment/automated.md b/_docs/deployment/automated.md new file mode 100644 index 0000000..fd5425b --- /dev/null +++ b/_docs/deployment/automated.md @@ -0,0 +1,94 @@ +--- +title: 自動デプロイ +permalink: /docs/deployment/automated/ +--- + + +Jekyllサイトは多くの簡単に自動でデプロイする方法があります。 + + + +## Continuous Integration Service + +自動デプロイの最も簡単なセットアップのフローはCIを使用することです。 + + + +これらのサービスはGitリポジトリにコミットしたときにスクリプトを実行します。このスクリプトでサイトを構築し、出力に対してテストを実行してから、選択したサービスに配置することをお勧めします。 + + + +以下のプロバイダのガイドを用意しています。 + + + +* [Travis CI]({{ "/docs/continuous-integration/travis-ci/" | relative_url }}) +* [CircleCI]({{ "/docs/continuous-integration/circleci/" | relative_url }}) +* [Buddy]({{ "/docs/continuous-integration/buddyworks/" | relative_url }}) + + + +## Git post-receive hook + +Gitを使用して変更をプッシュするたびにリモートサーバーが展開を処理するようにするには、その`authorized_keys`ファイルに展開が許可されている全ての公開鍵を持つユーザーアカウントを作成します。これを設定したら、受信後フックの設定は次のようセットアップします。 + + + +```sh +laptop$ ssh deployer@example.com +server$ mkdir myrepo.git +server$ cd myrepo.git +server$ git --bare init +server$ cp hooks/post-receive.sample hooks/post-receive +server$ mkdir /var/www/myrepo +``` + +次に、以下の行をhooks/post-receiveに追加し、Jekyllがサーバーにインストールされたことを確認します。 + + + +```bash +#!/bin/bash -l + +# Install Ruby Gems to ~/gems +export GEM_HOME=$HOME/gems +export PATH=$GEM_HOME/bin:$PATH + +GIT_REPO=$HOME/myrepo.git +TMP_GIT_CLONE=$HOME/tmp/myrepo +GEMFILE=$TMP_GIT_CLONE/Gemfile +PUBLIC_WWW=/var/www/myrepo + +git clone $GIT_REPO $TMP_GIT_CLONE +BUNDLE_GEMFILE=$GEMFILE bundle install +BUNDLE_GEMFILE=$GEMFILE bundle exec jekyll build -s $TMP_GIT_CLONE -d $PUBLIC_WWW +rm -Rf $TMP_GIT_CLONE +exit +``` + +最後に、このフックを使用して展開できるようにする必要がある全ユーザーのラップトップで、次のコマンドを実行します。 + + + +```sh +laptops$ git remote add deploy deployer@example.com:~/myrepo.git +``` + +デプロイは、nginxやApacheに`/var/www/myrepo`を調べて次のコマンドを実行するように指示するのと同じくらい簡単です。 + + + +```sh +laptops$ git push deploy master +``` diff --git a/_docs/deployment/manual.md b/_docs/deployment/manual.md new file mode 100644 index 0000000..a85fd0b --- /dev/null +++ b/_docs/deployment/manual.md @@ -0,0 +1,52 @@ +--- +title: 手動デプロイ +permalink: /docs/deployment/manual/ +--- + + +Jekyllはデフォルトで`_site`ディレクトリにサイトを生成します。このディレクトリのコンテンツをホスティングプロバイダのサイトディレクトリに転送することができます。いくつかの手動で行う方法を示します。 + + + +## rsync + +Rsyncはscpに似ていますが、ファイル全体ではなく変更されたファイルの部分だけを送信するので高速です。[Digital Oceanチュートリアル](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps){:target="_blank"}でrsyncの使い方についてもっと学ぶことができます。 + + + +## Amazon S3 + +サイトをAmazon S3でホストしたい場合は、[s3_website](https://github.com/laurilehmijoki/s3_website){:target="_blank"}アプリケーションを使用して実行できます。サイトをAmazon S3にプッシュします。Amazon S3はあらゆるウェブサーバーのようにサイトを提供でき、ほぼ無制限のトラフィックに動的に拡大します。このアプローチには、使用するだけを支払うので、少量のブログで利用可能な最も安いホスティングオプションがあるという利点があります。 + + + +## FTP + +最も伝統的なWebホスティングプロバイダは、FTPを介してサーバーにファイルをアップロードすることを可能にします。FTPを使用してJekyllサイトをWebホストにアップロードするには、`jekyll build`コマンドを実行して、生成された`_site`フォルダの内容をホスティングアカウントのrootフォルダにコピーします。多くのホスティングプロバイダでは`httpdocs`または`public_html`フォルダです。 + + + +## scp + +デプロイメントWebサーバーに直接アクセスできる場合、ファイルを転送するために他の方法(`scp`、または直接ファイルシステムアクセスなど)を使用できる場合を除いて、プロセスは基本的に同じです。 生成された`_site`フォルダの内容が、Webサーバーの適切なWeb rootディレクトリに配置されるようにしてください。 + + + +## Rack-Jekyll + +[Rack-Jekyll](https://github.com/adaoraul/rack-jekyll/){:target="_blank"}を使用すると、Amazon EC2、Slicehost、Herokuなどのラックサーバにサイトをデプロイできます。また、[shotgun](https://github.com/rtomayko/shotgun/){:target="_blank"}、[rackup](https://github.com/rack/rack)、[mongrel](https://github.com/mongrel/mongrel){:target="_blank"}、[unicorn](https://github.com/defunkt/unicorn/){:target="_blank"}や[その他](https://github.com/adaoraul/rack-jekyll#readme){:target="_blank"}でも実行できます。 + + diff --git a/_docs/deployment/third-party.md b/_docs/deployment/third-party.md new file mode 100644 index 0000000..d071532 --- /dev/null +++ b/_docs/deployment/third-party.md @@ -0,0 +1,69 @@ +--- +title: 3rd Party +permalink: /docs/deployment/third-party/ +--- + +## Aerobatic + +[Aerobatic](https://www.aerobatic.com){:target="_blank"}には、カスタムドメイン、グローバルCDN配布、基本認証、CORSプロキシ、そして増え続けるプラグインのリストが含まれています。 + + + +自動でのJekyllサイトのデプロイはシンプルです。詳細は[Jekyll docs](https://www.aerobatic.com/docs/static-site-generators/#jekyll){:target="_blank"}をご覧ください。ビルドした`_site`フォルダを高可用性のグローバルに分散されたホスティングサービスにデプロイします。 + + + +## AWS Amplify + +[AWS Amplify Console](https://console.amplify.aws){:target="_blank"}は、最新のウェブアプリ(シングルページアプリと静的サイトジェネレータ)の継続的なデプロイとホスティングを提供します。継続的な展開により、開発者はGitリポジトリへのコードコミットごとにWebアプリケーションの更新を展開することができます。ホスティングには、グローバルに利用可能なCDN、ワンクリックカスタムドメイン設定 + HTTPS、機能ブランチの展開、リダイレクト、末尾のスラッシュ、パスワード保護などの機能が含まれています。 + + + +JekyllサイトをAWS Amplifyでデプロイとホストするために[step-by-step guide](https://medium.com/@FizzyInTheHall/build-and-publish-a-jekyll-powered-blog-easily-with-aws-amplify-529852042ab6){:target="_blank"}を読んでください。 + + + +## CloudCannon + +[CloudCannon](https://cloudcannon.com){:target="_blank"}にはJekyllサイトをビルド、ホスト、更新するのに必要な物が全てあります。グローバルCDN、自動SSL、継続的導入[など](https://cloudcannon.com/features/)を{:target="_blank"}活用してください。 + + + +## GitHub Pages + +GitHub Pagesのサイトは、舞台裏でJekyllによって提供されています。ですので、手間のかからない、コストのかからないソリューションを探しているのであれば、GitHub Pagesは[Jekyllで運営されているWebサイトを無料でホスト]({{ "/docs/github-pages/" | relative_url }})するのに最適な方法です。 + + + +## Kickster + +GitHub Pagesでサポートされていないプラグインを使用する場合は、GitHub Pagesへの自動デプロイに[Kickster](http://kickster.nielsenramon.com/){:target="_blank"}を使用してください。 + + + +Kicksterは、Webのベストプラクティスと、プロジェクト全体の品質を向上させる便利な最適化ツールが満載の基本的なJekyllプロジェクト設定を提供します。Kicksterには、GitHub Pages用の自動化された、心配のないデプロイスクリプトが付属しています。 + + + +Kickster gemをインストールしてください。より多くのドキュメンテーションは[こちら](https://github.com/nielsenramon/kickster#kickster){:target="_blank"}で見つけることができます。gemを使用したくない、または新しいプロジェクトを開始したくない場合は、[Travis CI](https://github.com/nielsenramon/kickster/tree/master/snippets/travis){:target="_blank"}や[Circle CI](https://github.com/nielsenramon/kickster#automated-deployment-with-circle-ci){:target="_blank"}用のデプロイスクリプトをコピー&ペーストするだけです。 + + + + +## Netlify + +Netlifyは、グローバルCDN、継続的導入、ワンクリックHTTPS[など](https://www.netlify.com/features/){:target="_blank"}を提供し、複雑さを増すことなく、最新のWebプロジェクトで利用可能な最も堅牢なツールセットを開発者に提供します。NetlifyはJekyll用のカスタムプラグインをサポートし、オープンソースプロジェクトのための無料プランを持っています。 + + + +JekyllサイトをNetlifyでセットアップするには、[Jekyll step-by-step guide](https://www.netlify.com/blog/2015/10/28/a-step-by-step-guide-jekyll-3.0-on-netlify/){:target="_blank"}をご覧ください。 + + + +## Static Publisher + +[Static Publisher](https://github.com/static-publisher/static-publisher){:target="_blank"}は、ウェブフックの投稿を待機しているサーバーを使用したもう1つの自動導入オプションです。ただし、GitHubとは特に関係ありません。Herokuにワンクリックでデプロイでき、1つのサーバーから複数のプロジェクトを見ることができ、ユーザー管理が簡単なインターフェースを備え、S3またはgitリポジトリ(gh-pagesなど)にパブリッシュできます。 + + diff --git a/_docs/drafts.md b/_docs/drafts.md deleted file mode 100644 index 73e1fba..0000000 --- a/_docs/drafts.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -layout: docs -title: ドラフトを使う -prev_section: posts -next_section: pages -permalink: /docs/drafts/ ---- - - - -ドラフトは、日付なしの posts です。 -それらはまだ作業中、またはまだ公開したくない posts です。 -ドラフトを実行するために、 `_drafts` フォルダをあなたのサイトのルート -([ディレクトリ構成](/docs/structure/) セクションに記述されているように) に作成し、 -最初のドラフトを作成してください。 - - - -{% highlight text %} -|-- _drafts/ -| |-- a-draft-post.md -{% endhighlight %} - - - -ドラフトを含めてサイトをプレビューするためには、 ただ `jekyll serve` -または `jekyll build` に `--drafts` をつけて実行します。 -それぞれのドラフトファイルの日付に変更時間の値が割り当てられます。 -こうして、あなたは最新の posts として現在編集しているドラフトを見ることができます。 - - - diff --git a/_docs/extras.md b/_docs/extras.md deleted file mode 100644 index 12c98f5..0000000 --- a/_docs/extras.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: docs -title: Extras -prev_section: plugins -next_section: github-pages -permalink: /docs/extras/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -Jekyllには、これをサポートする多数の(オプショナルな)追加機能があるので、あなたの使い方に応じてそれらをインストールしたくなるでしょう。 - - - -## Mathのサポート - - - -Kramdownには、mathブロックにおいて、[MathJax](http://www.mathjax.org/)を通してPNGをレンダリングするLaTeXのオプショナルなサポートがあります。 -詳細については、Kramdownの[math blocks](http://kramdown.gettalong.org/syntax.html#math-blocks)および[math support](http://kramdown.gettalong.org/converter/html.html#math-support)の資料を見てください。 - - - -## 他のMarkdownプロセッサ - - - -他のMarkdownプロセッサの使い方および設定方法の説明、並びに[カスタムプロセッサ](/docs/configuration/#custom-markdown-processors)の作り方の説明については、[設定項目ページ](/docs/configuration/#markdown-options)のMarkdownセクションを参照してください。 - - diff --git a/_docs/front-matter.md b/_docs/front-matter.md new file mode 100644 index 0000000..fd1279a --- /dev/null +++ b/_docs/front-matter.md @@ -0,0 +1,278 @@ +--- +title: Front Matter +permalink: /docs/front-matter/ +redirect_from: /docs/frontmatter/index.html +--- + +[YAML](https://yaml.org/ target="_blank") front matterブロックを含むファイルは全て、Jekyllに特別なファイルとして処理されます。front matterはファイルの最初で3つのダッシュの行に挟まれた有効なYAMLでなければなりません。次は基本的な例です。 + + + +```yaml +--- +layout: post +title: Blogging Like a Hacker +--- +``` + +3つのダッシュの行の間で、定義済みの変数(下記を参照してください)を設定したり、カスタム変数を作ることができます。これらの変数は、そのファイルやそのページやポストのレイアウトで、Liquidタグを使ってアクセスできるようになります。 + + + +
+
UTF-8エンコーディング時の警告
+ +

+ UTF-8エンコーディングを使用している場合、BOMをヘッダに含めないでください。Jekyllに非常に悪いことが起こります。特にJekyll on Windowsを使用している場合に影響があります。 +

+ +
+ +
+
ProTip™: Front Matter変数はオプションです
+ +

+ Liquidタグや変数は使いたいけれどfront matterでは何も必要ない場合、取り除いて空にしましょう。3つのダッシュの行が2行続いていれば、Jekyllはそのファイルで作業をします。(これは、CSSやRSSフィードのファイルで便利です!) +

+ +
+ +## 定義済みグローバル変数 + + +ページやポストのfront matterで設定できる、定義済みのグローバル変数です。 + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
変数説明
+

layout

+
+

+ + 設定したらそのレイアウトファイルを使用します。レイアウトファイルの名前を拡張子無しで使います。レイアウトファイルは、_layoutsディレクトリになければなりません。 + +

+ +
    +
  • + nullを使用するとレイアウトファイルを使用しません。ファイルがpost/documentで + front matterのデフォルトが定義されている場合、上書きします。 +
  • + +
  • + バージョン3.5.0から始めた場合、post/documentでnoneを使用すると、front matterのデフォルトに関係なく、レイアウトファイルを使用しません。pageでnoneを使用すると、Jekyllは"none"というレイアウトを使用しようとします。 +
  • + +
+
+

permalink

+
+

+ + サイト全体のURLのスタイル(デフォルトは/year/month/day/title.html)と異なるURLで作成したい場合この変数を設定します。最終的なURLとして使用されます。 +

+ +
+

published

+
+

+ サイトを生成するときに、特定のポストを表示したくない場合にfalseを設定します。 +

+ +
+
+ +
+
ProTip™: 非公開としてマークされたポストをレンダリングする
+ +

+ 非公開のページをプレビューするには、jekyll servejekyll buildを実行するときに--unpublishedスイッチを使います。 Jekyllには、ブログポスト専用の便利なドラフト機能もあります。 +

+ +
+ +## カスタム変数 + + +Liquidでアクセスできる、あなた自身のfront matter変数を設定することもできます。例えば、`food`という変数を使用したい場合、ページには次のように記載します。 + + + +{% raw %} +```liquid +--- +food: Pizza +--- + +

{{ page.food }}

+``` +{% endraw %} + +## ポストの定義済み変数 + + +ポストのfront matterですぐに使用できます。 + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
変数説明
+

date

+
+

+ ポストのファイル名からの日付を上書きします。これはポストを正しくソートするために使用できます。日付は特定のフォーマットYYYY-MM-DD HH:MM:SS +/-TTTTで、時刻とタイムゾーンはオプションです。 +

+ +
+

category

+

categories

+
+

+ + ポストをフォルダ分けする代わりに、1つ以上のカテゴリを設定できます。サイトにポストを生成するときに、これらのカテゴリが設定されているように振る舞います。Categories(複数キー)ではYAML listやスペース区切りの文字列で指定できます。 + +

+ +
+

tags

+
+

+ + カテゴリとよく似ており、1つ以上のタグをポストに追加できます。カテゴリと同様tagsもYAML listやスペース区切りの文字列で指定できます。 + +

+ +
+
+ +
+
ProTip™: 繰り返さないで
+ +

+ よく使用するfront matter変数を、何度も何度も繰り返し記述したくない場合は、デフォルトを変更し必要に応じて上書きしてください。これは定義済み変数でもカスタム変数でも行えます。 +

+ +
diff --git a/_docs/frontmatter.md b/_docs/frontmatter.md deleted file mode 100644 index adb72cf..0000000 --- a/_docs/frontmatter.md +++ /dev/null @@ -1,414 +0,0 @@ ---- -layout: docs -title: Front-matter -prev_section: configuration -next_section: posts -permalink: /docs/frontmatter/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -Front-matter は、本当にクールに Jekyll を開始します。 -[YAML](http://yaml.org/) front matter ブロックを含む任意のファイルは Jekyll に特別なファイルとして処理されます。 -front matter はファイルの最初になければならず、 トリプルダッシュの間に正しい YAML フォームをセットする必要があります。 -基本的な例はこうです: - - - -{% highlight yaml %} ---- -layout: post -title: Blogging Like a Hacker ---- -{% endhighlight %} - - - -これらの トリプルダッシュの間には、定義済の変数をセット(以下を参照)したり、 -あなた自身のカスタム変数を作成することができます。 -これらの変数は、問題の page や post が依存している任意の layouts や includes ファイルの -両方のさらに下に Liquid タグを使用してのアクセスに利用することができます。 - - - -
-
UTF-8 キャラクタエンコーディング警告
-

- もし、 UTF-8 エンコーディングを使用している場合、 BOM ヘッダの - 文字がファイルに存在するかどうか、またはとてもとても悪い何かが Jekyll に起こるか - どうか確認してください。 - これは、 Windows 上で Jekyll を実行している場合、特に関連します。 -

-
- - - -
-
ProTip™: Front Matter 変数は任意です
-

- Liquid タグや変数を使用したいが、 front-matter には - 何も必要でない場合、ただそれを空で残してください! - トリプルダッシュの間に何もないセットは、 Jekyll はファイルを処理するために取得します。 - (これは、 CSS や RSS フィード のようなものに役立ちます!) -

-
- - - - -## 事前に定義されたグローバル変数 - - - -あなたが page や post の front-matter でセットできる、 -事前に定義されたグローバル変数がいくつかあります。 - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
変数記述
-

layout

-
-

- - 使用されるレイアウトファイルを指定します。 - ファイル拡張子なしでレイアウトファイル名を使用してください。 - レイアウトファイルは _layouts ディレクトリに配置する必要があります。 - -

-
-

permalink

-
-

- - ブログ post の URL をデフォルト /year/month/day/title.html 以外の - 何かにする必要がある場合、あなたはこの変数をセットすることができ、そして - それが最終的な URL として使用されます。 - -

-
-

published

-
-

- サイトを生成したとき、特定の post を表示させたくない場合、false をセットします。 -

-
-

category

-

categories

-
-

- - フォルダの内部に posts を配置する代わりに、 - post が属している 1 つまたはそれ以上のカテゴリを指定することができます。 - サイトが生成される時、 post は通常、これらのカテゴリに - セットされていたかのように振る舞います。 - カテゴリ(複数キー)は、YAML list - または、スペースで分けられた文字列として指定されます。 - -

-
-

tags

-
-

- - カテゴリや、 1 つのタグや複数タグと同じように post に追加することができます。 - タグもカテゴリのように YAML list または、スペースで分けられた文字列として指定されます。 - -

-
-
- - - - -## カスタム変数 - - - -事前に定義されていない front matter 内の変数は -変換中にLiquid テンプレートエンジンに送られ、データの中に混ぜられます。 -タイトルを設定した場合、あなたはページタイトルをセットするために、 -あなたのレイアウト内で使用することができます。 - - - -{% highlight html %} - - - - {% raw %}{{ page.title }}{% endraw %} - - - ... -{% endhighlight %} - - - -## posts 用の事前に定義された変数 - - - -これらは、 post 用 front-matter で使用される枠を超えた変数です。 - - - -
- - - - - - - - - - - - - -
変数記述
-

date

-
-

- post 名からの日付をここの date で上書きします。 - これは、 posts の正しいソートを確実にするために使用されます。 -

-
-
- - - -
-
ProTip™: 同じ事を繰り返さない(Don't repeat yourself)
-

- もし、頻繁に使用するfront-matter変数を何度も繰り返したくない場合、 - それらは設定ファイルにdefaultsとして定義し - 必要に応じてそれらを上書きします。(あるいは全く上書きしません) - これは定義済変数、カスタム変数両方に対して動作します。 -

-
- - - diff --git a/_docs/github-pages.md b/_docs/github-pages.md index efbaadc..738acc0 100644 --- a/_docs/github-pages.md +++ b/_docs/github-pages.md @@ -1,229 +1,188 @@ --- -layout: docs -title: GitHub Pagesについて -prev_section: extras -next_section: deployment-methods -permalink: /docs/github-pages/ -base_revision: 52c76b5d9333a98285db7e04ee7ae8051228ec76[refs/heads/master] ---- - - - -[GitHub Pages](http://pages.github.com) はユーザや、組織、そしてレポジトリ -(これらはGitHubの `github.io` ドメインあるいは、ユーザが選んだドメイン名で自由にホストされます) -のための公開できるウェブページです。GitHub Pages は -裏側でJekyllが動作しており、通常のHTMLコンテンツをサポートすることに加え、 -Jekyllで動作するウェブサイトを無料でホストするとても優れた方法です。 - - - -## GitHub Pages へ Jekyll をデプロイ - - - -GitHub上のレポジトリのあるブランチを指定することでGitHub Pagesは動作します。 -利用できる2つの基本的なタイプがあります:ユーザー/組織のページとプロジェクトのページです。 -2,3の細かな部分を除いて、これら2つのタイプのサイトをデプロイする方法は、ほとんど同じです。 - - -### ユーザーと組織ページ +[GitHub Pages](https://pages.github.com)は、ユーザー、組織、リポジトリの公開Webページで、`github.io`かカスタムドメイン名を選択でき、GitHubにホストされています。GitHub PagesはJekyllによって供給されているので、無料でJekyllで運営されているWebサイトをホストするのに最適な方法です。 - + -GitHub Pagesファイル専用の特別なGithubレポジトリでユーザーと組織ページは動作します。 -このレポジトリは、アカウント名をとって名付けられなければなりません。たとえば、 -[@mojomboというユーザのレポジトリ](https://github.com/mojombo/mojombo.github.io) -は、`mojombo.github.io`という名前になります。 +ソースファイルをプッシュすると、GitHub Pagesによりサイトが自動で生成されます。GitHub Pagesは通常のHTMLコンテンツでも同様に機能します。理由は簡単で、Jekyllはfront matterの無いファイルは静的なassetとして扱うためです。生成されたHTMLをプッシュするのでしたら、更なる設定を何もせずに行えばいいです。 - + -あなたのレポジトリの`master`ブランチの内容はGitHub Pagesサイトの構築・公開するのに -使用されるので、あなたのJekyllサイトがそこに保存されてることを確認してください。 +GitHub Pagesでサイトを構築するのは初めてですか? [Jonathan McGloneによる素晴らしいガイド](http://jmcglone.com/guides/github-pages/){: target="_blank"}を見て、行ってみてください。このガイドでは、GitHub Pagesで自身のWebサイトを作るために、GitやGitHub、Jekyllについて知っておくべきことを説明しています。 - + -
-
カスタムドメインの場合はレポジトリ名の制限はありません
+## The github-pages gem + +GitHubの友人たちは、[JekyllとそのGitHub Pagesへの依存関係](https://pages.github.com/versions/){: target="_blenk"}を管理するために使用される[github-pages](https://github.com/github/pages-gem)を提供しています。プロジェクトでそれを使うことは、サイトをGitHub Pagesにデプロイするとき、gemの様々なバージョン間の予想外の違いに捕まることはないということを意味します。 + + + +GitHub Pagesは`safe`モードで動作し、[ホワイトリストに登録されたプラグインのセット](https://help.github.com/articles/configuring-jekyll-plugins/#default-plugins){: target="_blenk"}のみを許可していることに気をつけてください。 + + + +プロジェクトで現在デプロイされているバージョンのgemを使用するには、`Gemfile`に以下を追加します。 + + + +```ruby +source "https://rubygems.org" + +gem "github-pages", group: :jekyll_plugins +``` + +必ず`bundle update`を頻繁に実行してください。 + + + +
+
GitHub Pagesのドキュメンテーションとヘルプ、サポート
+

- GitHub Pagesはまず最初にusername.github.ioサブドメインで - 動作するように構成されます。 - そして、これがカスタムドメインが利用されるとしても、 - リポジトリにこのような名前を付けられなければならない理由です。 + GitHub Pagesでできることやトラブルシューティングガイドの詳細については、GitHubのPagesヘルプセクションをご覧ください。 それでもうまくいかない場合は、GitHubサポートに連絡してください。

+
- + +GitHubにプッシュする前にJekyllサイトをプレビューした方が良い場合があります。GitHubがプロジェクトページに使用するサブディレクトリのようなURL構造は、URLの適切な解決を複雑にします。あなたのサイトが正しく構築されていることを確認するために、便利な[URLフィルタ]({{ "/docs/liquid/filters/" | relative_url }})を使用してください。 + + + +{% raw %} +```liquid + + + +[{{ page.title }}]("{{ page.url | relative_url }}") +``` +{% endraw %} + +この方法で、localhost上のサイトrootからローカルでプレビューできます。そして、GitHubがページを生成するときには、全てのURLが正しく解決されます。 + + + +## JekyllをGitHub Pagesにデプロイ + + +GitHub PagesはGitHub上のリポジトリの特定のブランチを見ることによって機能します。利用可能な2つの基本的な種類があります:[user/organization と project pages](https://help.github.com/articles/user-organization-and-project-pages/){: target="_blenk"}。これら2種類のサイトを展開する方法は、いくつかの細かい点を除いてほぼ同じです。 + + + +### UserとOrganizationページ + + +UserとOrganizationページは、GitHub Pagesのファイル専用の特別なGitHubリポジトリにあります。このリポジトリは、アカウント名にちなんで命名する必要があります。たとえば、[@mojomboのユーザーページのリポジトリ](https://github.com/mojombo/mojombo.github.io){: target="_blenk"}の名前は`mojombo.github.io`です。 + + + +GitHub Pagesサイトの構築と公開には、リポジトリの`master`ブランチのコンテンツが使用されます。そのため、Jekyllサイトがそこに格納されていることを確認してください。 + + +
-
Custom domains do not affect repository names
+
カスタムドメインはリポジトリ名に影響しません
+

+ GitHub Pagesは、まずusername.github.ioサブドメインの下に存在するように設定されています。そのため、カスタムドメインを使用している場合でも、リポジトリにこのように名前を付ける必要があります。 +

+
---> - -### プロジェクトページ - -ユーザーと組織ページと違って、プロジェクトページは彼らのプロジェクトと同じリポジトリに -保存されますが、ウェブサイトコンテンツは特別な名前をつけられた`gh-pages`ブランチに保存されます。 -このブランチのコンテンツはJekyllを利用して生成されます。そして出力されたものは -あなたのユーザーページのサブドメイン、例えば`username.github.io/project` -(明示的なカスタムドメインでない限り。下記参照)のような形で利用できます。 +UserとOrganizationページとは異なり、プロジェクトページは、目的のプロジェクトと同じリポジトリに保存されます。ただし、Webページのコンテンツは、特別な名前の`gh-pages`ブランチ、または`master`ブランチの`docs`フォルダに格納されているます。コンテンツはJekyllを使用してレンダリングされ、出力は`username.github.io/project`などのユーザーページサブドメインのサブパスの下に表示されます(カスタムドメインが指定されていない場合)。 - - -Jekyll プロジェクトのリポジトリ自体が — この[master ブランチ]({{ site.repository }}) -を含むブランチ構成が — Jekyllというソフトウエアの完璧な例になっています。 -しかし、Jekyllウェブサイト(あなたがたった今見ているこのサイト)は同じリポジトリの -[gh-pages ブランチ]({{ site.repository }}/tree/gh-pages) に含まれているものになります。 - - + +Jekyllプロジェクトのリポジトリ自体が、このブランチ構造の完璧な例です。[マスターブランチ]({{ site.repository }}){: target="_blenk"} にはJekyllの実際のソフトウェアプロジェクトが含まれています。現在見ているJekyll Webサイトは、同じリポジトリの[docsフォルダ]({{ site.repository }}/tree/master/docs){: target="_blenk"}にあります。 + + +actual software project for Jekyll, and the Jekyll website that you’re +looking at right now is contained in the [docs +folder]({{ site.repository }}/tree/master/docs) of the same repository. --> -
-
ソースファイルはルートディレクトリ内にある必要があります
-

-Github Pages は “Site Source” 設定値を -上書きします。 -だから、ルートディレクトリ以外のソースファイルを探そうとした場合、 -正しくビルドできない可能性があります。 -

-
+より詳細な例については、GitHubの公式ドキュメントの[user, organization and project pages](https://help.github.com/articles/user-organization-and-project-pages/){: target="_blenk"}を参照してください。 + + -

-Github Pages overrides the “Site Source” configuration value, so if you locate your files anywhere other than the root directory, your site may not build correctly. -

+GitHub Pagesは“Site Source”の設定値を上書きするため、ファイルをルートディレクトリ以外の場所に配置すると、サイトが正しく構築されない可能性があります。

+
---> - -### Project Page URL Structureについて - - - -時々、あなたのJekyllサイトの`gh-pages`ブランチをGitHubへpush する前にプレビューするとよい -です。しかし、GitHubがプロジェクトページのために使用するサブディレクトリのようなURL構造は -URLの適切な解決を困難にします。 -そこで、ローカルでにJekyllサイトをプレビューする機能を維持する -GitHubGitHub Project Page URL structure (`username.github.io/project-name/`) を -利用するアプローチがあります。 - - - -1. `_config.yml` ファイルにて、`baseurl` オプションを`/project-name`に設定します。 -- 先頭にスラッシュをつけて、最後にスラッシュを**つけない**ことに注意してください。 -2. JSやCSSファイルを参照する際は、次のようにしてください: - `{% raw %}{{ site.baseurl }}/path/to/css.css{% endraw %}` -- 変数に続いてスラッシュを記述することに注意してください。("path"のすぐ前に記述) -3. パーマリンクや内部リンクを行う時には、次のようにしてください: - `{% raw %}{{ site.baseurl }}{{ post.url }}{% endraw %}` -- 2つの変数の間にスラッシュは**ない**ことに注意してください。 -4. 最後に、もしあなたがコミット・デプロイする前にプレビューしたい場合は`jekyll serve`を実行してください。 - `--baseurl` オプションに空文字列を渡せば`localhost:4000`で見ることができます。(最初に`/project-name`をつけることなしに) - - - -この方法ならlocalhost上でサイトのトrootからあなたのサイトを手元でプレビューすることができます。 -しかし、gh-pages ブランチからあなたのページをGitHubが生成する時にはすべてのURLは - `/project-name` で始まり、適切に解決されます。 - - - -
-
GitHubのページマニュアル、ヘルプ、サポート
-

- GitHub Pagesを使って何ができるかのさらに詳細な情報が必要な場合やだけでなく、 - トラブルシューティングガイドについては GitHub’s Pages Help - sectionをチェックアウトする必要があります。 それらのすべてでも解決しない場合にはGitHub サポートにご連絡ください。 -

-
+
+
Windowsでのgithub-pages gemのインストール
+ -
---> diff --git a/_docs/history.md b/_docs/history.md index 440dc6e..8d646bf 100644 --- a/_docs/history.md +++ b/_docs/history.md @@ -1,168 +1,2576 @@ --- -layout: docs title: History permalink: "/docs/history/" -prev_section: contributing +note: This file is autogenerated. Edit /History.markdown instead. --- - +## 3.8.5 / 2018-11-04 +{: #v3-8-5} + +### Bug Fixes +{: #bug-fixes-v3-8-5} + +- Re-implement handling Liquid blocks in excerpts ([#7250]({{ site.repository }}/issues/7250)) + + +## 3.8.4 / 2018-09-18 +{: #v3-8-4} + +### Bug Fixes +{: #bug-fixes-v3-8-4} + +- 3.8.x: security: fix `include` bypass of `EntryFilter#filter` symlink check ([#7228]({{ site.repository }}/issues/7228)) + + +## 3.8.3 / 2018-06-05 +{: #v3-8-3} + +### Bug Fixes +{: #bug-fixes-v3-8-3} + +- Fix --unpublished not affecting collection documents ([#7027]({{ site.repository }}/issues/7027)) + + +## 3.8.2 / 2018-05-18 +{: #v3-8-2} + +### Development Fixes +{: #development-fixes-v3-8-2} + +- Update rubocop version ([#7016]({{ site.repository }}/issues/7016)) + +### Bug Fixes +{: #bug-fixes-v3-8-2} + +- Add whitespace control to LIQUID_TAG_REGEX ([#7015]({{ site.repository }}/issues/7015)) + + +## 3.8.1 / 2018-05-01 +{: #v3-8-1} + +### Bug Fixes +{: #bug-fixes-v3-8-1} + +- Fix rendering Liquid constructs in excerpts ([#6945]({{ site.repository }}/issues/6945)) +- Liquify documents unless published == false ([#6959]({{ site.repository }}/issues/6959)) + + +## 3.8.0 / 2018-04-19 +{: #v3-8-0} + +### Development Fixes +{: #development-fixes-v3-8-0} + +- move duplicate code to a single private method ([#6593]({{ site.repository }}/issues/6593)) +- Test against Ruby 2.5 on AppVeyor ([#6668]({{ site.repository }}/issues/6668)) +- Replace simple regex with a native Ruby method ([#6732]({{ site.repository }}/issues/6732)) +- Codeclimate: exclude livereload.js ([#6776]({{ site.repository }}/issues/6776)) +- Add a cucumber feature to test link tag ([#6777]({{ site.repository }}/issues/6777)) +- Fix theme gem feature ([#6784]({{ site.repository }}/issues/6784)) +- Replace simple regex with equivalent Ruby methods ([#6736]({{ site.repository }}/issues/6736)) +- Rewrite `script/rubyprof` as a Ruby script ([#6813]({{ site.repository }}/issues/6813)) +- Add debug output to theme rendering ([#5195]({{ site.repository }}/issues/5195)) +- fix minitest deprecation warning in test ([#6839]({{ site.repository }}/issues/6839)) +- Memoize `Site#site_data` ([#6809]({{ site.repository }}/issues/6809)) +- Memoize document output extension ([#6814]({{ site.repository }}/issues/6814)) +- Access document permalink attribute efficiently ([#6740]({{ site.repository }}/issues/6740)) +- Minimize array allocations in the `where` filter ([#6860]({{ site.repository }}/issues/6860)) +- Bump JRuby ([#6878]({{ site.repository }}/issues/6878)) +- Assert existence of <collection>.files ([#6907]({{ site.repository }}/issues/6907)) +- Bump RuboCop to 0.54.x ([#6915]({{ site.repository }}/issues/6915)) +- Regenerate unconditionally unless its an incremental build ([#6917]({{ site.repository }}/issues/6917)) +- Centralize require statements ([#6910]({{ site.repository }}/issues/6910)) +- Bump to RuboCop 0.55 ([#6929]({{ site.repository }}/issues/6929)) +- Refactor private method `HighlightBlock#parse_options` ([#6822]({{ site.repository }}/issues/6822)) + +### Minor Enhancements +{: #minor-enhancements-v3-8-0} + +- Two massive performance improvements for large sites ([#6730]({{ site.repository }}/issues/6730)) +- Cache the list of documents to be written ([#6741]({{ site.repository }}/issues/6741)) +- Allow Jekyll Doctor to detect stray posts dir ([#6681]({{ site.repository }}/issues/6681)) +- Excerpt relative-path should match its path ([#6597]({{ site.repository }}/issues/6597)) +- Remind user to resolve conflict in `jekyll new` with `--force` ([#6801]({{ site.repository }}/issues/6801)) +- Memoize helper methods in site-cleaner ([#6808]({{ site.repository }}/issues/6808)) +- Compute document's relative_path faster ([#6767]({{ site.repository }}/issues/6767)) +- Create a single instance of PostReader per site ([#6759]({{ site.repository }}/issues/6759)) +- Allow date filters to output ordinal days ([#6773]({{ site.repository }}/issues/6773)) +- Change regex to sanitize and normalize filenames passed to LiquidRenderer ([#6610]({{ site.repository }}/issues/6610)) +- Allow passing :strict_variables and :strict_filters options to Liquid's renderer ([#6726]({{ site.repository }}/issues/6726)) +- Debug writing files during the build process ([#6696]({{ site.repository }}/issues/6696)) +- Improve regex usage in `Tags::IncludeTag` ([#6848]({{ site.repository }}/issues/6848)) +- Improve comment included in the starter index.md ([#6916]({{ site.repository }}/issues/6916)) +- Store and retrieve converter instances for Jekyll::Filters via a hash ([#6856]({{ site.repository }}/issues/6856)) +- Implement a cache within the `where` filter ([#6868]({{ site.repository }}/issues/6868)) +- Store regexp in a constant ([#6887]({{ site.repository }}/issues/6887)) +- Optimize computing filename in LiquidRenderer ([#6841]({{ site.repository }}/issues/6841)) + +### Documentation + +- Adding the jekyll-algolia plugin to the list of plugins ([#6737]({{ site.repository }}/issues/6737)) +- Added Premonition plugin to list of plugins ([#6750]({{ site.repository }}/issues/6750)) +- Add document on releasing a new version ([#6745]({{ site.repository }}/issues/6745)) +- Mention Talkyard, a new commenting system for Jekyll and others. ([#6752]({{ site.repository }}/issues/6752)) +- Add 'jekyll-fontello' to plugins ([#6757]({{ site.repository }}/issues/6757)) +- Install dh-autoreconf on Windows ([#6765]({{ site.repository }}/issues/6765)) +- Fix common typos ([#6764]({{ site.repository }}/issues/6764)) +- Fix documentation for {% raw %}`{{ page.excerpt }}`{% endraw %} ([#6779]({{ site.repository }}/issues/6779)) +- Update docs on permalink configuration ([#6775]({{ site.repository }}/issues/6775)) +- Propose fix some typos ([#6785]({{ site.repository }}/issues/6785)) +- Say hello to Jekyll's New Lead Developer ([#6790]({{ site.repository }}/issues/6790)) +- Add reference to Liquid to plugin docs ([#6794]({{ site.repository }}/issues/6794)) +- Draft a release post for v3.7.3 ([#6803]({{ site.repository }}/issues/6803)) +- add missing step for gem-based theme conversion ([#6802]({{ site.repository }}/issues/6802)) +- Update windows.md to explain an issue with jekyll new. ([#6838]({{ site.repository }}/issues/6838)) +- Add Bundler Installation Instructions ([#6828]({{ site.repository }}/issues/6828)) +- Docs: describe difference between tags and categories ([#6882]({{ site.repository }}/issues/6882)) +- Add `jekyll-random` plugin to docs ([#6833]({{ site.repository }}/issues/6833)) +- Fixed typo in description of categories and tags ([#6896]({{ site.repository }}/issues/6896)) +- Add missing ul-tag ([#6897]({{ site.repository }}/issues/6897)) +- doc: add liquid tag plugin jekyll-onebox for html previews ([#6898]({{ site.repository }}/issues/6898)) +- Add `jekyll-w2m` to plugins ([#6855]({{ site.repository }}/issues/6855)) +- Fix tutorials navigation HTML ([#6919]({{ site.repository }}/issues/6919)) +- add Arch Linux instalation troubleshoot ([#6782]({{ site.repository }}/issues/6782)) +- Docs: Install Jekyll on macOS ([#6881]({{ site.repository }}/issues/6881)) +- Fix CodeClimate badges [ci skip] ([#6930]({{ site.repository }}/issues/6930)) +- Update index.md ([#6933]({{ site.repository }}/issues/6933)) + +### Site Enhancements +{: #site-enhancements-v3-8-0} + +- Remove links to Gists ([#6751]({{ site.repository }}/issues/6751)) +- Always load Google Fonts over HTTPS ([#6792]({{ site.repository }}/issues/6792)) +- always load analytics.js over HTTPS ([#6807]({{ site.repository }}/issues/6807)) + +### Bug Fixes +{: #bug-fixes-v3-8-0} + +- Append appropriate closing tag to Liquid block in an excerpt ### -minor ([#6724]({{ site.repository }}/issues/6724)) +- Bypass rendering via Liquid unless required ([#6735]({{ site.repository }}/issues/6735)) +- Delegated methods after `private` keyword are meant to be private ([#6819]({{ site.repository }}/issues/6819)) +- Improve handling non-default collection documents rendering and writing ([#6795]({{ site.repository }}/issues/6795)) +- Fix passing multiline params to include tag when using the variable syntax ([#6858]({{ site.repository }}/issues/6858)) +- `include_relative` tag should find related documents in collections gathered within custom `collections_dir` ([#6818]({{ site.repository }}/issues/6818)) +- Handle liquid tags in excerpts robustly ([#6891]({{ site.repository }}/issues/6891)) +- Allow front matter defaults to be applied properly to documents gathered under custom `collections_dir` ([#6885]({{ site.repository }}/issues/6885)) + + +## 3.7.4 / 2018-09-07 +{: #v3-7-4} + +### Bug Fixes +{: #bug-fixes-v3-7-4} + +- Security: fix `include` bypass of EntryFilter#filter symlink check ([#7224]({{ site.repository }}/issues/7224)) + + +## 3.7.3 / 2018-02-25 +{: #v3-7-3} + +### Bug Fixes +{: #bug-fixes-v3-7-3} + +- Do not hardcode locale unless certainly necessary ([#6791]({{ site.repository }}/issues/6791)) + + +## 3.7.2 / 2018-01-25 +{: #v3-7-2} + +### Development Fixes +{: #development-fixes-v3-7-2} + +- CI: Test against Ruby 2.5.0 ([#6664]({{ site.repository }}/issues/6664)) +- Bump rdoc to 6.0 ([#6600]({{ site.repository }}/issues/6600)) +- Lint file and bump theme dependencies ([#6698]({{ site.repository }}/issues/6698)) +- Write a Rubocop Cop to ensure no `#p` or `#puts` calls get committed to master. ([#6615]({{ site.repository }}/issues/6615)) +- Remove redgreen gem ([#6720]({{ site.repository }}/issues/6720)) + +### Site Enhancements +{: #site-enhancements-v3-7-2} + +- Display latest version in header ([#6676]({{ site.repository }}/issues/6676)) +- Update version in `config.yml` via YAML load / dump ([#6677]({{ site.repository }}/issues/6677)) + +### Documentation + +- Fix: Add note about posts in context of collections_dir ([#6680]({{ site.repository }}/issues/6680)) +- Update deploy-script in documentation ([#6666]({{ site.repository }}/issues/6666)) +- Add note about naming of collections_dir ([#6703]({{ site.repository }}/issues/6703)) +- Update installation.md ([#6694]({{ site.repository }}/issues/6694)) +- Add `jekyll-html` to plugins. ([#6654]({{ site.repository }}/issues/6654)) +- Update plugins.md ([#6716]({{ site.repository }}/issues/6716)) +- Release v3.7.1 ([#6695]({{ site.repository }}/issues/6695)) + +### Bug Fixes +{: #bug-fixes-v3-7-2} + +- inform that symlinks are not allowed in safe mode ([#6670]({{ site.repository }}/issues/6670)) +- Glob scope path only if configured with a pattern ([#6692]({{ site.repository }}/issues/6692)) +- Add gem "wdm" to all newly generated Gemfiles ([#6711]({{ site.repository }}/issues/6711)) +- Fix timezone inconsistencies between different ruby version ([#6697]({{ site.repository }}/issues/6697)) +- Refactor collections_dir feature for consistency ([#6685]({{ site.repository }}/issues/6685)) + +### Minor Enhancements +{: #minor-enhancements-v3-7-2} + +- Require external library only if necessary ([#6596]({{ site.repository }}/issues/6596)) + + +## 3.7.0 / 2018-01-02 +{: #v3-7-0} + +### Minor Enhancements +{: #minor-enhancements-v3-7-0} + +- Add LiveReload functionality to Jekyll. ([#5142]({{ site.repository }}/issues/5142)) +- Add Utils::Internet.connected? to determine whether host machine has internet connection. ([#5870]({{ site.repository }}/issues/5870)) +- Disable default layouts for Pages with a `layout: none` declaration ([#6182]({{ site.repository }}/issues/6182)) +- Scope path glob ([#6268]({{ site.repository }}/issues/6268)) +- Allow the user to set collections_dir to put all collections under one subdirectory ([#6331]({{ site.repository }}/issues/6331)) +- Upgrade to Rouge 3 ([#6381]({{ site.repository }}/issues/6381)) +- Allow URL filters to work directly with documents ([#6478]({{ site.repository }}/issues/6478)) +- filter relative_url should keep absolute urls with scheme/authority ([#6490]({{ site.repository }}/issues/6490)) +- `.sass-cache` doesn't *always* land in `options['source']` ([#6500]({{ site.repository }}/issues/6500)) +- Allow plugins to modify the obsolete files. ([#6502]({{ site.repository }}/issues/6502)) +- Add latin mode to `slugify` ([#6509]({{ site.repository }}/issues/6509)) +- Log Kramdown warnings if log level is WARN ([#6522]({{ site.repository }}/issues/6522)) +- Add an option to configure kramdown warning output ([#6554]({{ site.repository }}/issues/6554)) +- Add `json` extension to list of directory indices ([#6550]({{ site.repository }}/issues/6550)) +- Dependency: Bump jekyll-watch to 2.0 ([#6589]({{ site.repository }}/issues/6589)) +- Remove paginate check ([#6606]({{ site.repository }}/issues/6606)) +- update classifier-reborn to 2.2.0 ([#6631]({{ site.repository }}/issues/6631)) +- Switch to an actively-maintained TOML parser. ([#6652]({{ site.repository }}/issues/6652)) +- Do not coerce layout paths in theme-gem to the source directory ([#6603]({{ site.repository }}/issues/6603)) + +### Bug Fixes +{: #bug-fixes-v3-7-0} + +- Raise when theme root directory is not available ([#6455]({{ site.repository }}/issues/6455)) +- Avoid block parser warning in SmartyPants ([#6565]({{ site.repository }}/issues/6565)) +- Fail gracefully if "sass" gem cannot be loaded ([#6573]({{ site.repository }}/issues/6573)) +- return correct file in dir if dir has same name as file ([#6569]({{ site.repository }}/issues/6569)) +- Register reload hooks in Server#process ([#6605]({{ site.repository }}/issues/6605)) +- Memoize path to metadata file ([#6602]({{ site.repository }}/issues/6602)) +- Use `require_relative` to load Jekyll classes ([#6609]({{ site.repository }}/issues/6609)) + +### Development Fixes +{: #development-fixes-v3-7-0} + +- Added direct collection access to future collection item feature test([#6151]({{ site.repository }}/issues/6151)) +- add failing test for non-utf8 encoding ([#6339]({{ site.repository }}/issues/6339)) +- Upgrade to Cucumber 3.0 ([#6395]({{ site.repository }}/issues/6395)) +- Provide a better default hash for tracking liquid stats ([#6417]({{ site.repository }}/issues/6417)) +- Add configuration for first-timers bot ([#6431]({{ site.repository }}/issues/6431)) +- Do not linkify escaped characters as PRs in History ([#6468]({{ site.repository }}/issues/6468)) +- Rely on jekyll-mentions for linking usernames ([#6469]({{ site.repository }}/issues/6469)) +- Update first-timers-issue-template.md ([#6472]({{ site.repository }}/issues/6472)) +- Enable `Lint/RescueWithoutErrorClass` Cop ([#6482]({{ site.repository }}/issues/6482)) +- Clean up Rubocop config ([#6495]({{ site.repository }}/issues/6495)) +- Use Gem to discover the location of bundler ([#6499]({{ site.repository }}/issues/6499)) +- Remove unnecessary encoding comment ([#6513]({{ site.repository }}/issues/6513)) +- Suggest using Rubocop to automatically fix errors ([#6514]({{ site.repository }}/issues/6514)) +- Assert raising Psych::SyntaxError when`"strict_front_matter"=>true` ([#6520]({{ site.repository }}/issues/6520)) +- Use Kernel#Array instead of explicit Array check ([#6525]({{ site.repository }}/issues/6525)) +- RuboCop: Enable `Style/UnneededCapitalW` cop ([#6526]({{ site.repository }}/issues/6526)) +- Refactor method to reduce ABC Metric size ([#6529]({{ site.repository }}/issues/6529)) +- Remove parentheses around arguments to raise ([#6532]({{ site.repository }}/issues/6532)) +- Use double-quotes around gem name ([#6535]({{ site.repository }}/issues/6535)) +- Dependencies: upgrade to toml 0.2.0 ([#6541]({{ site.repository }}/issues/6541)) +- Lock to cucumber 3.0.1 on Ruby 2.1 ([#6546]({{ site.repository }}/issues/6546)) +- Bump JRuby version in Travis config ([#6561]({{ site.repository }}/issues/6561)) +- Rescue from Psych::SyntaxError instead of SyntaxError after parsing YAML([#5828]({{ site.repository }}/issues/5828)) +- Drop forwarding to private methods by exposing those methods as public([#6577]({{ site.repository }}/issues/6577)) +- Upgrade pygments to v1.x ([#5937]({{ site.repository }}/issues/5937)) +- Bump yajl-ruby ([#6582]({{ site.repository }}/issues/6582)) +- Cleanup test_redcarpet.rb ([#6584]({{ site.repository }}/issues/6584)) +- Add PageWithoutAFile class from jekyll plugins ([#6556]({{ site.repository }}/issues/6556)) +- Cleanup LiveReloadReactor ([#6607]({{ site.repository }}/issues/6607)) + +### Documentation + +- Add formester to the list of saas form backend ([#6059]({{ site.repository }}/issues/6059)) +- GitHub Pages instructions ([#6384]({{ site.repository }}/issues/6384)) +- Improve documentation for theme-gem installation ([#6387]({{ site.repository }}/issues/6387)) +- Fix diff syntax-highlighting ([#6388]({{ site.repository }}/issues/6388)) +- Update instructions ([#6396]({{ site.repository }}/issues/6396)) +- Fix code-block highlighting in docs ([#6398]({{ site.repository }}/issues/6398)) +- Filtering Posts with categories, tags, or other variables ([#6399]({{ site.repository }}/issues/6399)) +- Fixes formatting on pre-formatted text. ([#6405]({{ site.repository }}/issues/6405)) +- Added new tutorial to tutorials section on docs ([#6406]({{ site.repository }}/issues/6406)) +- Updates ([#6407]({{ site.repository }}/issues/6407)) +- Fix `collections_dir` example ([#6408]({{ site.repository }}/issues/6408)) +- Renaming duplicate of "Scenario 6" to "Scenario 7" ([#6411]({{ site.repository }}/issues/6411)) +- Mark `collection_dir` as unreleased ([#6412]({{ site.repository }}/issues/6412)) +- Fix link to SUPPORT ([#6415]({{ site.repository }}/issues/6415)) +- Fix list appearance by adding missing `ol` tag ([#6421]({{ site.repository }}/issues/6421)) +- Explain how to override output collection index page ([#6424]({{ site.repository }}/issues/6424)) +- Added github-cards to the list of plugins ([#6425]({{ site.repository }}/issues/6425)) +- CoC violation correspondants ([#6429]({{ site.repository }}/issues/6429)) +- Add a note about Liquid and syntax highlighting ([#6466]({{ site.repository }}/issues/6466)) +- Remove `sudo` from macOS troubleshooting instructions ([#6486]({{ site.repository }}/issues/6486)) +- Add a note on `:jekyll_plugins` group in the docs ([#6488]({{ site.repository }}/issues/6488)) +- Updated custom-404-page.md ([#6489]({{ site.repository }}/issues/6489)) +- Fix a few minor issues in the docs ([#6494]({{ site.repository }}/issues/6494)) +- Add jekyll-pwa-plugin ([#6533]({{ site.repository }}/issues/6533)) +- Remove Jekyll-Smartify from plugins directory ([#6548]({{ site.repository }}/issues/6548)) +- Updated Jekyll-Pug listing to include official website ([#6555]({{ site.repository }}/issues/6555)) +- Remove link to severely outdated asset plugin ([#6613]({{ site.repository }}/issues/6613)) +- Default time zone depends upon server ([#6617]({{ site.repository }}/issues/6617)) +- Add `disqus-for-jekyll` to plugins. ([#6618]({{ site.repository }}/issues/6618)) +- Update "Requirements" for Ruby version ([#6623]({{ site.repository }}/issues/6623)) +- Fix: Update link to i18n_filter plugin ([#6638]({{ site.repository }}/issues/6638)) +- Correct WordPress capitalization ([#6645]({{ site.repository }}/issues/6645)) +- Add Tweetsert, Stickyposts, Paginate::Content ([#6651]({{ site.repository }}/issues/6651)) +- Post: Jekyll 3.7.0 released ([#6634]({{ site.repository }}/issues/6634)) + +### Site Enhancements +{: #site-enhancements-v3-7-0} + +- Add special styling for code-blocks run in shell ([#6389]({{ site.repository }}/issues/6389)) +- Add post about diversity ([#6447]({{ site.repository }}/issues/6447)) +- Update list of files excluded from Docs site ([#6457]({{ site.repository }}/issues/6457)) +- Update site History ([#6460]({{ site.repository }}/issues/6460)) +- Add default twitter card image ([#6476]({{ site.repository }}/issues/6476)) +- Update normalize.css to v7.0.0 ([#6491]({{ site.repository }}/issues/6491)) +- Optimize images ([#6519]({{ site.repository }}/issues/6519)) +- Back to original main navigation ([#6544]({{ site.repository }}/issues/6544)) +- Styles: mobile-docs select element ([#6545]({{ site.repository }}/issues/6545)) +- Search with DocSearch by @Algolia ([#6557]({{ site.repository }}/issues/6557)) +- Site header redesign ([#6567]({{ site.repository }}/issues/6567)) +- Move logo above site navigation on small screens ([#6570]({{ site.repository }}/issues/6570)) +- Docs: Include version badge for latest features ([#6574]({{ site.repository }}/issues/6574)) +- Use version-badge on an existing feature intro ([#6575]({{ site.repository }}/issues/6575)) +- Add jekyll-category-pages plugin ([#6632]({{ site.repository }}/issues/6632)) +- Improve docs styling for code to be run in shell ([#6641]({{ site.repository }}/issues/6641)) +- Fix permalink icon markup in news-item layout ([#6639]({{ site.repository }}/issues/6639)) + + +## 3.6.3 / 2018-09-18 +{: #v3-6-3} + +### Bug Fixes +{: #bug-fixes-v3-6-3} + +- 3.6.x: security: fix `include` bypass of `EntryFilter#filter` symlink check ([#7229]({{ site.repository }}/issues/7229)) + + +## 3.6.2 / 2017-10-21 +{: #v3-6-2} + +### Development Fixes +{: #development-fixes-v3-6-2} + +- Update Rubocop to 0.51.0 ([#6444]({{ site.repository }}/issues/6444)) +- Add test for layout as string ([#6445]({{ site.repository }}/issues/6445)) + +### Bug Fixes +{: #bug-fixes-v3-6-2} + +- Problematic UTF+bom files ([#6322]({{ site.repository }}/issues/6322)) +- Always treat `data.layout` as a string ([#6442]({{ site.repository }}/issues/6442)) + + +## 3.6.1 / 2017-10-20 +{: #v3-6-1} + +### Documentation + +- Doc y_day in docs/permalinks ([#6244]({{ site.repository }}/issues/6244)) +- Update frontmatter.md ([#6371]({{ site.repository }}/issues/6371)) +- Elaborate on excluding items from processing ([#6136]({{ site.repository }}/issues/6136)) +- Style lists in tables ([#6379]({{ site.repository }}/issues/6379)) +- Remove duplicate "available" ([#6380]({{ site.repository }}/issues/6380)) + +### Development Fixes +{: #development-fixes-v3-6-1} + +- Bump rubocop to use `v0.50.x` ([#6368]({{ site.repository }}/issues/6368)) + + +## 3.6.0 / 2017-09-21 +{: #v3-6-0} + +### Minor Enhancements +{: #minor-enhancements-v3-6-0} + +- Ignore final newline in folded YAML string ([#6054]({{ site.repository }}/issues/6054)) +- Add URL checks to Doctor ([#5760]({{ site.repository }}/issues/5760)) +- Fix serving files that clash with directories ([#6222]({{ site.repository }}/issues/6222)) ([#6231]({{ site.repository }}/issues/6231)) +- Bump supported Ruby version to `>= 2.1.0` ([#6220]({{ site.repository }}/issues/6220)) +- set `LiquidError#template_name` for errors in included file ([#6206]({{ site.repository }}/issues/6206)) +- Access custom config array throughout session ([#6200]({{ site.repository }}/issues/6200)) +- Add support for Rouge 2, in addition to Rouge 1 ([#5919]({{ site.repository }}/issues/5919)) +- Allow `yield` to logger methods & bail early on no-op messages ([#6315]({{ site.repository }}/issues/6315)) +- Update mime-types. ([#6336]({{ site.repository }}/issues/6336)) +- Use a Schwartzian transform with custom sorting ([#6342]({{ site.repository }}/issues/6342)) +- Alias `Drop#invoke_drop` to `Drop#[]` ([#6338]({{ site.repository }}/issues/6338)) + +### Bug Fixes +{: #bug-fixes-v3-6-0} + +- `Deprecator`: fix typo for `--serve` command ([#6229]({{ site.repository }}/issues/6229)) +- `Reader#read_directories`: guard against an entry not being a directory ([#6226]({{ site.repository }}/issues/6226)) +- kramdown: symbolize keys in-place ([#6247]({{ site.repository }}/issues/6247)) +- Call `to_s` on site.url before attempting to concatenate strings ([#6253]({{ site.repository }}/issues/6253)) +- Enforce Style/FrozenStringLiteralComment ([#6265]({{ site.repository }}/issues/6265)) +- Update theme-template README to note 'assets' directory ([#6257]({{ site.repository }}/issues/6257)) +- Memoize the return value of `Document#url` ([#6266]({{ site.repository }}/issues/6266)) +- delegate `StaticFile#to_json` to `StaticFile#to_liquid` ([#6273]({{ site.repository }}/issues/6273)) +- Fix `Drop#key?` so it can handle a nil argument ([#6281]({{ site.repository }}/issues/6281)) +- Guard against type error in absolute url ([#6280]({{ site.repository }}/issues/6280)) +- Mutable drops should fallback to their own methods when a mutation isn't present ([#6350]({{ site.repository }}/issues/6350)) +- Skip adding binary files as posts ([#6344]({{ site.repository }}/issues/6344)) +- Don't break if bundler is not installed ([#6377]({{ site.repository }}/issues/6377)) + +### Documentation + +- Fix a typo in `custom-404-page.md` ([#6218]({{ site.repository }}/issues/6218)) +- Docs: fix links to issues in History.markdown ([#6255]({{ site.repository }}/issues/6255)) +- Update deprecated gems key to plugins. ([#6262]({{ site.repository }}/issues/6262)) +- Fixes minor typo in post text ([#6283]({{ site.repository }}/issues/6283)) +- Execute build command using bundle. ([#6274]({{ site.repository }}/issues/6274)) +- name unification - buddy details ([#6317]({{ site.repository }}/issues/6317)) +- name unification - application index ([#6318]({{ site.repository }}/issues/6318)) +- trim and relocate plugin info across docs ([#6311]({{ site.repository }}/issues/6311)) +- update Jekyll's README ([#6321]({{ site.repository }}/issues/6321)) +- add SUPPORT file for GitHub ([#6324]({{ site.repository }}/issues/6324)) +- Rename CODE_OF_CONDUCT to show in banner ([#6325]({{ site.repository }}/issues/6325)) +- Docs : illustrate page.id for a collection's document ([#6329]({{ site.repository }}/issues/6329)) +- Docs: post's date can be overriden in front matter ([#6334]({{ site.repository }}/issues/6334)) +- Docs: `site.url` behavior on development and production environments ([#6270]({{ site.repository }}/issues/6270)) +- Fix typo in site.url section of variables.md :-[ ([#6337]({{ site.repository }}/issues/6337)) +- Docs: updates ([#6343]({{ site.repository }}/issues/6343)) +- Fix precedence docs ([#6346]({{ site.repository }}/issues/6346)) +- add note to contributing docs about `script/console` ([#6349]({{ site.repository }}/issues/6349)) +- Docs: Fix permalink example ([#6375]({{ site.repository }}/issues/6375)) + +### Site Enhancements +{: #site-enhancements-v3-6-0} + +- Adding DevKit helpers ([#6225]({{ site.repository }}/issues/6225)) +- Customizing url in collection elements clarified ([#6264]({{ site.repository }}/issues/6264)) +- Plugins is the new gems ([#6326]({{ site.repository }}/issues/6326)) + +### Development Fixes +{: #development-fixes-v3-6-0} + +- Strip unnecessary leading whitespace in template ([#6228]({{ site.repository }}/issues/6228)) +- Users should be installing patch versions. ([#6198]({{ site.repository }}/issues/6198)) +- Fix tests ([#6240]({{ site.repository }}/issues/6240)) +- Define path with `__dir__` ([#6087]({{ site.repository }}/issues/6087)) +- exit site.process sooner ([#6239]({{ site.repository }}/issues/6239)) +- make flakey test more robust ([#6277]({{ site.repository }}/issues/6277)) +- Add a quick test for DataReader ([#6284]({{ site.repository }}/issues/6284)) +- script/backport-pr: commit message no longer includes the `#` ([#6289]({{ site.repository }}/issues/6289)) +- Add Add CODEOWNERS file to help automate reviews. ([#6320]({{ site.repository }}/issues/6320)) +- Fix builds on codeclimate ([#6333]({{ site.repository }}/issues/6333)) +- Bump rubies on Travis ([#6366]({{ site.repository }}/issues/6366)) + + +## 3.5.2 / 2017-08-12 +{: #v3-5-2} + +### Bug Fixes +{: #bug-fixes-v3-5-2} + +- Backport [#6281]({{ site.repository }}/issues/6281) for v3.5.x: Fix `Drop#key?` so it can handle a nil argument ([#6288]({{ site.repository }}/issues/6288)) +- Backport [#6280]({{ site.repository }}/issues/6280) for v3.5.x: Guard against type error in `absolute_url` ([#6287]({{ site.repository }}/issues/6287)) +- Backport [#6266]({{ site.repository }}/issues/6266) for v3.5.x: Memoize the return value of `Document#url` ([#6301]({{ site.repository }}/issues/6301)) +- Backport [#6273]({{ site.repository }}/issues/6273) for v3.5.x: delegate `StaticFile#to_json` to `StaticFile#to_liquid` ([#6302]({{ site.repository }}/issues/6302)) +- Backport [#6226]({{ site.repository }}/issues/6226) for v3.5.x: `Reader#read_directories`: guard against an entry not being a directory ([#6304]({{ site.repository }}/issues/6304)) +- Backport [#6247]({{ site.repository }}/issues/6247) for v3.5.x: kramdown: symbolize keys in-place ([#6303]({{ site.repository }}/issues/6303)) + + +## 3.5.1 / 2017-07-17 +{: #v3-5-1} + +### Minor Enhancements +{: #minor-enhancements-v3-5-1} + +- Use Warn for deprecation messages ([#6192]({{ site.repository }}/issues/6192)) +- site template: Use plugins key instead of gems ([#6045]({{ site.repository }}/issues/6045)) + +### Bug Fixes +{: #bug-fixes-v3-5-1} + +- Backward compatiblize URLFilters module ([#6163]({{ site.repository }}/issues/6163)) +- Static files contain front matter default keys when `to_liquid`'d ([#6162]({{ site.repository }}/issues/6162)) +- Always normalize the result of the `relative_url` filter ([#6185]({{ site.repository }}/issues/6185)) + +### Documentation + +- Update reference to trouble with OS X/macOS ([#6139]({{ site.repository }}/issues/6139)) +- added BibSonomy plugin ([#6143]({{ site.repository }}/issues/6143)) +- add plugins for multiple page pagination ([#6055]({{ site.repository }}/issues/6055)) +- Update minimum Ruby version in installation.md ([#6164]({{ site.repository }}/issues/6164)) +- Add information about finding a collection in `site.collections` ([#6165]({{ site.repository }}/issues/6165)) +- Add {% raw %}`{% raw %}`{% endraw %} to Liquid example on site ([#6179]({{ site.repository }}/issues/6179)) +- Added improved Pug plugin - removed 404 Jade plugin ([#6174]({{ site.repository }}/issues/6174)) +- Linking the link ([#6210]({{ site.repository }}/issues/6210)) +- Small correction in documentation for includes ([#6193]({{ site.repository }}/issues/6193)) +- Fix docs site page margin ([#6214]({{ site.repository }}/issues/6214)) + +### Development Fixes +{: #development-fixes-v3-5-1} + +- Add jekyll doctor to GitHub Issue Template ([#6169]({{ site.repository }}/issues/6169)) +- Test with Ruby 2.4.1-1 on AppVeyor ([#6176]({{ site.repository }}/issues/6176)) +- set minimum requirement for jekyll-feed ([#6184]({{ site.repository }}/issues/6184)) + + +## 3.5.0 / 2017-06-18 +{: #v3-5-0} + +### Minor Enhancements +{: #minor-enhancements-v3-5-0} + +- Upgrade to Liquid v4 ([#4362]({{ site.repository }}/issues/4362)) +- Convert StaticFile liquid representation to a Drop & add front matter defaults support to StaticFiles ([#5871]({{ site.repository }}/issues/5871)) +- Add support for Tab-Separated Values data files (`*.tsv`) ([#5985]({{ site.repository }}/issues/5985)) +- Specify version constraint in subcommand error message. ([#5974]({{ site.repository }}/issues/5974)) +- Add a template for custom 404 page ([#5945]({{ site.repository }}/issues/5945)) +- Require `runtime_dependencies` of a Gem-based theme from its `.gemspec` file ([#5914]({{ site.repository }}/issues/5914)) +- Don't raise an error if URL contains a colon ([#5889]({{ site.repository }}/issues/5889)) +- Date filters should never raise an exception ([#5722]({{ site.repository }}/issues/5722)) +- add `plugins` config key as replacement for `gems` ([#5130]({{ site.repository }}/issues/5130)) +- create configuration from options only once in the boot process ([#5487]({{ site.repository }}/issues/5487)) +- Add option to fail a build with front matter syntax errors ([#5832]({{ site.repository }}/issues/5832)) +- Disable default layouts for documents with a `layout: none` declaration ([#5933]({{ site.repository }}/issues/5933)) +- In `jekyll new`, make copied site template user-writable ([#6072]({{ site.repository }}/issues/6072)) +- Add top-level `layout` liquid variable to Documents ([#6073]({{ site.repository }}/issues/6073)) +- Address reading non-binary static files in themes ([#5918]({{ site.repository }}/issues/5918)) +- Allow filters to sort & select based on subvalues ([#5622]({{ site.repository }}/issues/5622)) +- Add strip_index filter ([#6075]({{ site.repository }}/issues/6075)) + +### Documentation + +- Install troubleshooting on Ubuntu ([#5817]({{ site.repository }}/issues/5817)) +- Add Termux section on troubleshooting ([#5837]({{ site.repository }}/issues/5837)) +- fix ial css classes in theme doc ([#5876]({{ site.repository }}/issues/5876)) +- Update installation.md ([#5880]({{ site.repository }}/issues/5880)) +- Update Aerobatic docs ([#5883]({{ site.repository }}/issues/5883)) +- Add note to collections doc on hard-coded collections. ([#5882]({{ site.repository }}/issues/5882)) +- Makes uri_escape template docs more specific. ([#5887]({{ site.repository }}/issues/5887)) +- Remove duplicate footnote_nr from default config ([#5891]({{ site.repository }}/issues/5891)) +- Fixed tutorial for publishing gem to include repo. ([#5900]({{ site.repository }}/issues/5900)) +- update broken links ([#5905]({{ site.repository }}/issues/5905)) +- Fix typo in contribution information ([#5910]({{ site.repository }}/issues/5910)) +- update plugin repo URL to reflect repo move ([#5916]({{ site.repository }}/issues/5916)) +- Update exclude array in configuration.md ([#5947]({{ site.repository }}/issues/5947)) +- Fixed path in "Improve this page" link in Tutorials section ([#5951]({{ site.repository }}/issues/5951)) +- Corrected permalink ([#5949]({{ site.repository }}/issues/5949)) +- Included more details about adding defaults to static files ([#5971]({{ site.repository }}/issues/5971)) +- Create buddyworks ([#5962]({{ site.repository }}/issues/5962)) +- added (buddyworks) to ci list ([#5965]({{ site.repository }}/issues/5965)) +- Add a tutorial on serving custom Error 404 page ([#5946]({{ site.repository }}/issues/5946)) +- add custom 404 to tutorial navigation ([#5978]({{ site.repository }}/issues/5978)) +- Add link to order of interpretation tutorial in Tutorials nav ([#5952]({{ site.repository }}/issues/5952)) +- Document Jekyll's Philosophy ([#5792]({{ site.repository }}/issues/5792)) +- Require Ruby > 2.1.0 ([#5983]({{ site.repository }}/issues/5983)) +- Fix broken link ([#5994]({{ site.repository }}/issues/5994)) +- Default options for script/proof ([#5995]({{ site.repository }}/issues/5995)) +- Mention Bash on Ubuntu on Windows ([#5960]({{ site.repository }}/issues/5960)) +- Document `--unpublished` flag introduced in 91e9ecf ([#5959]({{ site.repository }}/issues/5959)) +- Update upgrading.md to mention usage of `bundle update` ([#5604]({{ site.repository }}/issues/5604)) +- Fix missing quotation mark ([#6002]({{ site.repository }}/issues/6002)) +- New tutorial: Convert an HTML site to Jekyll ([#5881]({{ site.repository }}/issues/5881)) +- Revamp Permalink section ([#5912]({{ site.repository }}/issues/5912)) +- Fixup tutorial on creating theme from existing HTML templates ([#6006]({{ site.repository }}/issues/6006)) +- Standardise on "URLs" without apostrophe in docs ([#6018]({{ site.repository }}/issues/6018)) +- Added txtpen in tutorial ([#6021]({{ site.repository }}/issues/6021)) +- fix typo using past participle ([#6026]({{ site.repository }}/issues/6026)) +- changed formatting to fit the style of the documentation ([#6027]({{ site.repository }}/issues/6027)) +- doc fix typo word usage ([#6028]({{ site.repository }}/issues/6028)) +- corrected reference to layout in index.md ([#6032]({{ site.repository }}/issues/6032)) +- (Minor) Update MathJax CDN ([#6013]({{ site.repository }}/issues/6013)) +- Add MvvmCross to samples ([#6035]({{ site.repository }}/issues/6035)) +- Update travis-ci.md to correct procedure ([#6043]({{ site.repository }}/issues/6043)) +- fix sentence in documentation ([#6048]({{ site.repository }}/issues/6048)) +- rephrase a sentence in posts.md to be more direct ([#6049]({{ site.repository }}/issues/6049)) +- Compress Website Sass output ([#6009]({{ site.repository }}/issues/6009)) +- doc correct spelling error ([#6050]({{ site.repository }}/issues/6050)) +- adjusted date-format in sitemap ([#6053]({{ site.repository }}/issues/6053)) +- Typo fix (welcomed change -> welcome change). ([#6070]({{ site.repository }}/issues/6070)) +- Fixed documentation inconsistency ([#6068]({{ site.repository }}/issues/6068)) +- Add own plugin -> Jekyll Brand Social Wall ([#6064]({{ site.repository }}/issues/6064)) +- Added plugin jekyll-analytics ([#6042]({{ site.repository }}/issues/6042)) +- Use more precise language when explaining links ([#6078]({{ site.repository }}/issues/6078)) +- Update plugins.md ([#6088]({{ site.repository }}/issues/6088)) +- windows 10 tutorial ([#6100]({{ site.repository }}/issues/6100)) +- Explain how to override theme styles ([#6107]({{ site.repository }}/issues/6107)) +- updated Bash on Ubuntu on Windows link in tutorial ([#6111]({{ site.repository }}/issues/6111)) +- Fix wording in `_docs/templates.md` links section ([#6114]({{ site.repository }}/issues/6114)) +- Update windows.md ([#6115]({{ site.repository }}/issues/6115)) +- Added windows to docs.yml ([#6109]({{ site.repository }}/issues/6109)) +- Be more specific on what to upload ([#6119]({{ site.repository }}/issues/6119)) +- Remove Blank Newlines from "Jekyll on Windows" Page ([#6126]({{ site.repository }}/issues/6126)) +- Link the troubleshooting page in the quickstart page ([#6134]({{ site.repository }}/issues/6134)) +- add documentation about the "pinned" label ([#6147]({{ site.repository }}/issues/6147)) +- docs(JekyllOnWindows): Add a new Installation way ([#6141]({{ site.repository }}/issues/6141)) +- corrected windows.md ([#6149]({{ site.repository }}/issues/6149)) +- Refine documentation for Windows ([#6153]({{ site.repository }}/issues/6153)) + +### Development Fixes +{: #development-fixes-v3-5-0} + +- Rubocop: add missing comma ([#5835]({{ site.repository }}/issues/5835)) +- Appease classifier-reborn ([#5934]({{ site.repository }}/issues/5934)) +- Allow releases & development on `*-stable` branches ([#5926]({{ site.repository }}/issues/5926)) +- Add script/backport-pr ([#5925]({{ site.repository }}/issues/5925)) +- Prefer .yaml over .toml ([#5966]({{ site.repository }}/issues/5966)) +- Fix Appveyor with DST-aware cucumber steps ([#5961]({{ site.repository }}/issues/5961)) +- Use Rubocop v0.47.1 till we're ready for v0.48 ([#5989]({{ site.repository }}/issues/5989)) +- Test against Ruby 2.4.0 ([#5687]({{ site.repository }}/issues/5687)) +- rubocop: lib/jekyll/renderer.rb complexity fixes ([#5052]({{ site.repository }}/issues/5052)) +- Use yajl-ruby 1.2.2 (now with 2.4 support) ([#6007]({{ site.repository }}/issues/6007)) +- Bump Rubocop to v0.48 ([#5997]({{ site.repository }}/issues/5997)) +- doc use example.com ([#6031]({{ site.repository }}/issues/6031)) +- fix typo ([#6040]({{ site.repository }}/issues/6040)) +- Fix CI ([#6044]({{ site.repository }}/issues/6044)) +- Remove `ruby RUBY_VERSION` from generated Gemfile ([#5803]({{ site.repository }}/issues/5803)) +- Test if hidden collections output a document with a future date ([#6103]({{ site.repository }}/issues/6103)) +- Add test for uri_escape on reserved characters ([#6086]({{ site.repository }}/issues/6086)) +- Allow you to specify the rouge version via an environment variable for testing ([#6138]({{ site.repository }}/issues/6138)) +- Bump Rubocop to 0.49.1 ([#6093]({{ site.repository }}/issues/6093)) +- Lock nokogiri to 1.7.x for Ruby 2.1 ([#6140]({{ site.repository }}/issues/6140)) + +### Site Enhancements +{: #site-enhancements-v3-5-0} + +- Corrected date for version 3.4.0 ([#5842]({{ site.repository }}/issues/5842)) +- Add the correct year to the 3.4.0 release date ([#5858]({{ site.repository }}/issues/5858)) +- Add documentation about order of interpretation ([#5834]({{ site.repository }}/issues/5834)) +- Documentation on how to build navigation ([#5698]({{ site.repository }}/issues/5698)) +- Navigation has been moved out from docs ([#5927]({{ site.repository }}/issues/5927)) +- Make links in sidebar for current page more prominent ([#5820]({{ site.repository }}/issues/5820)) +- Update normalize.css to v6.0.0 ([#6008]({{ site.repository }}/issues/6008)) +- Docs: rename `gems` to `plugins` ([#6082]({{ site.repository }}/issues/6082)) +- plugins -> gems ([#6110]({{ site.repository }}/issues/6110)) +- Document difference between cgi_escape and uri_escape [#5970]({{ site.repository }}/issues/5970) ([#6081]({{ site.repository }}/issues/6081)) + +### Bug Fixes +{: #bug-fixes-v3-5-0} + +- Exclude Gemfile by default ([#5860]({{ site.repository }}/issues/5860)) +- Convertible#validate_permalink!: ensure the return value of `data["permalink"]` is a string before asking if it is empty ([#5878]({{ site.repository }}/issues/5878)) +- Allow abbreviated post dates ([#5920]({{ site.repository }}/issues/5920)) +- Remove dependency on include from default about.md ([#5903]({{ site.repository }}/issues/5903)) +- Allow colons in `uri_escape` filter ([#5957]({{ site.repository }}/issues/5957)) +- Re-surface missing public methods in `Jekyll::Document` ([#5975]({{ site.repository }}/issues/5975)) +- absolute_url should not mangle URL if called more than once ([#5789]({{ site.repository }}/issues/5789)) +- patch URLFilters to prevent `//` ([#6058]({{ site.repository }}/issues/6058)) +- add test to ensure variables work in `where_exp` condition ([#5315]({{ site.repository }}/issues/5315)) +- Read explicitly included dot-files in collections. ([#6092]({{ site.repository }}/issues/6092)) +- Default `baseurl` to `nil` instead of empty string ([#6137]({{ site.repository }}/issues/6137)) +- Filters#time helper: Duplicate time before calling #localtime. ([#5996]({{ site.repository }}/issues/5996)) + + +## 3.4.5 / 2017-06-30 +{: #v3-4-5} + +- Backport [#6185]({{ site.repository }}/issues/6185) for v3.4.x: Always normalize the result of the `relative_url` filter ([#6186]({{ site.repository }}/issues/6186)) + + +## 3.4.4 / 2017-06-17 +{: #v3-4-4} + +- Backport [#6137]({{ site.repository }}/issues/6137) for v3.4.x: Default `baseurl` to `nil` instead of empty string ([#6146]({{ site.repository }}/issues/6146)) + + +## 3.4.3 / 2017-03-21 +{: #v3-4-3} + +- Backport [#5957]({{ site.repository }}/issues/5957) for v3.4.x: Allow colons in `uri_escape` filter ([#5968]({{ site.repository }}/issues/5968)) + + +## 3.4.2 / 2017-03-09 +{: #v3-4-2} + +- Backport [#5871]({{ site.repository }}/issues/5871) for v3.4.x: Convert StaticFile liquid representation to a Drop & add front matter defaults support to StaticFiles ([#5940]({{ site.repository }}/issues/5940)) + + +## 3.4.1 / 2017-03-02 +{: #v3-4-1} + +- Backport [#5920]({{ site.repository }}/issues/5920) for v3.4.x: Allow abbreviated post dates ([#5924]({{ site.repository }}/issues/5924)) + + +## 3.4.0 / 2017-01-27 +{: #v3-4-0} + +### Minor Enhancements +{: #minor-enhancements-v3-4-0} + +- Add connector param to `array_to_sentence_string` filter ([#5597]({{ site.repository }}/issues/5597)) +- Adds `group_by_exp` filter ([#5513]({{ site.repository }}/issues/5513)) +- Use Addressable instead of URI to decode ([#5726]({{ site.repository }}/issues/5726)) +- throw IncludeTagError if error occurs in included file ([#5767]({{ site.repository }}/issues/5767)) +- Write Jekyll::Utils::Exec.run for running shell commands. ([#5640]({{ site.repository }}/issues/5640)) +- Use the current year for the LICENSE of theme ([#5712]({{ site.repository }}/issues/5712)) +- Update License ([#5713]({{ site.repository }}/issues/5713)) + +### Bug Fixes +{: #bug-fixes-v3-4-0} + +- Escaped regular expressions when using `post_url`. ([#5605]({{ site.repository }}/issues/5605)) +- fix date parsing in file names to be stricter ([#5609]({{ site.repository }}/issues/5609)) +- Add a module to re-define `ENV["TZ"]` in Windows ([#5612]({{ site.repository }}/issues/5612)) +- Use each instead of map to actually return nothing ([#5668]({{ site.repository }}/issues/5668)) +- include: fix 'no implicit conversion of nil to String' ([#5750]({{ site.repository }}/issues/5750)) +- Don't include the theme's includes_path if it is nil. ([#5780]({{ site.repository }}/issues/5780)) +- test double slash when input = '/' ([#5542]({{ site.repository }}/issues/5542)) +- use logger.info for related posts ([#5822]({{ site.repository }}/issues/5822)) + +### Site Enhancements +{: #site-enhancements-v3-4-0} + +- Use only the used Font Awesome icons. ([#5530]({{ site.repository }}/issues/5530)) +- Switch to `https` when possible. ([#5611]({{ site.repository }}/issues/5611)) +- Update `_font-awesome.scss` to move .woff file before .ttf ([#5614]({{ site.repository }}/issues/5614)) +- Update documentation on updating FontAwesome Iconset ([#5655]({{ site.repository }}/issues/5655)) +- Use defaults for docs and news-items ([#5744]({{ site.repository }}/issues/5744)) +- Sort gems in `docs/_config.yml` ([#5746]({{ site.repository }}/issues/5746)) +- Add missing class ([#5791]({{ site.repository }}/issues/5791)) +- Improve template docs ([#5694]({{ site.repository }}/issues/5694)) + +### Development Fixes +{: #development-fixes-v3-4-0} + +- clean unit-test names in `test/test_tags.rb` ([#5608]({{ site.repository }}/issues/5608)) +- Add cucumber feature to test for bonafide theme gems ([#5384]({{ site.repository }}/issues/5384)) +- Use `assert_nil` instead of `assert_equal nil` ([#5652]({{ site.repository }}/issues/5652)) +- Rubocop -a on lib/jekyll ([#5666]({{ site.repository }}/issues/5666)) +- Bump to rake 12.0 ([#5670]({{ site.repository }}/issues/5670)) +- Rubocop Gemfile ([#5671]({{ site.repository }}/issues/5671)) +- update Classifier-Reborn to 2.1.0 ([#5711]({{ site.repository }}/issues/5711)) +- Rubocop: fix Rakefile and gemspec ([#5745]({{ site.repository }}/issues/5745)) +- Use `assert_nil` ([#5725]({{ site.repository }}/issues/5725)) +- Sort gems in `jekyll.gemspec` ([#5746]({{ site.repository }}/issues/5746)) +- Rubocop: Require consistent comma in multiline literals ([#5761]({{ site.repository }}/issues/5761)) +- Bump rubocop ([#5765]({{ site.repository }}/issues/5765)) +- New rubocop security checks ([#5768]({{ site.repository }}/issues/5768)) +- test/helper: fix flaky plugin path test by removing calls to Dir.chdir without a block ([#5779]({{ site.repository }}/issues/5779)) +- Use latest jemoji gem ([#5782]({{ site.repository }}/issues/5782)) +- Bump htmlproofer ([#5781]({{ site.repository }}/issues/5781)) +- Bump rubies we test against ([#5784]({{ site.repository }}/issues/5784)) +- Bump rdoc to v5.0 ([#5797]({{ site.repository }}/issues/5797)) +- Bump codeclimate-test-reporter to v1.0.5 ([#5798]({{ site.repository }}/issues/5798)) + +### Documentation + +- Improve quickstart docs ([#5689]({{ site.repository }}/issues/5689)) +- Add Jekyll-Post to list of plugins ([#5705]({{ site.repository }}/issues/5705)) +- Add jekyll-numbered-headings ([#5688]({{ site.repository }}/issues/5688)) +- Docs: move permalinks from documents into config ([#5544]({{ site.repository }}/issues/5544)) +- Improve collections docs ([#5691]({{ site.repository }}/issues/5691)) +- Fix [#5730]({{ site.repository }}/issues/5730): add gcc and make to the list of requirements ([#5731]({{ site.repository }}/issues/5731)) +- Remove instructions to install Jekyll 2 on Windows ([#5582]({{ site.repository }}/issues/5582)) +- Fix example URL inconsistency ([#5592]({{ site.repository }}/issues/5592)) +- Replace backticks within HTML blocks with HTML tags ([#5435]({{ site.repository }}/issues/5435)) +- Add jekyll-migrate-permalink ([#5600]({{ site.repository }}/issues/5600)) +- Fix bad config YAML in collections example ([#5587]({{ site.repository }}/issues/5587)) +- Bring documentation on 'Directory Structure' up-to-date ([#5573]({{ site.repository }}/issues/5573)) +- Fixed typo ([#5632]({{ site.repository }}/issues/5632)) +- use backticks for Gemfile for consistency since in the next sentence … ([#5641]({{ site.repository }}/issues/5641)) +- Update Core team list in the README file ([#5643]({{ site.repository }}/issues/5643)) +- Improve Permalinks documentation. ([#5653]({{ site.repository }}/issues/5653)) +- Fix typo in Variables doc page ([#5657]({{ site.repository }}/issues/5657)) +- Fix a couple of typos in the docs ([#5658]({{ site.repository }}/issues/5658)) +- Update windows.md ([#5683]({{ site.repository }}/issues/5683)) +- Improve permalinks docs ([#5693]({{ site.repository }}/issues/5693)) +- Document --unpublished build option ([#5720]({{ site.repository }}/issues/5720)) +- Improve pages docs ([#5692]({{ site.repository }}/issues/5692)) +- Added new includes.md topic to docs ([#5696]({{ site.repository }}/issues/5696)) +- Replace a dead link with a web-archived one ([#5738]({{ site.repository }}/issues/5738)) +- Remove duplicate paragraph. ([#5740]({{ site.repository }}/issues/5740)) +- Addition of a sample "typical post" ([#5473]({{ site.repository }}/issues/5473)) +- Fix a minor grammatical mistake on themes' document ### -dev ([#5748]({{ site.repository }}/issues/5748)) +- Correct comments in data_reader.rb ([#5621]({{ site.repository }}/issues/5621)) +- Add jekyll-pre-commit to plugins list ([#5752]({{ site.repository }}/issues/5752)) +- Update quickstart.md ([#5758]({{ site.repository }}/issues/5758)) +- Correct minor typo ([#5764]({{ site.repository }}/issues/5764)) +- Fix a markdown link to look properly on the web ([#5769]({{ site.repository }}/issues/5769)) +- Info about the help command usage ([#5312]({{ site.repository }}/issues/5312)) +- Add missing merge labels for jekyllbot ([#5753]({{ site.repository }}/issues/5753)) +- Fix broken links in documentation ([#5736]({{ site.repository }}/issues/5736)) +- Docs: add `match_regex` and `replace_regex` filters ([#5799]({{ site.repository }}/issues/5799)) +- Got that diaper money? ([#5810]({{ site.repository }}/issues/5810)) +- Sort content by popularity using Google Analytics ([#5812]({{ site.repository }}/issues/5812)) +- Rework CI doc to include multiple providers. ([#5815]({{ site.repository }}/issues/5815)) +- Improve theme docs ([#5690]({{ site.repository }}/issues/5690)) +- Add mention of classifier-reborn for LSI ([#5811]({{ site.repository }}/issues/5811)) +- Added note about --blank flag ([#5802]({{ site.repository }}/issues/5802)) +- Fixed inaccuracy in "Built-in permalink styles" docs ([#5819]({{ site.repository }}/issues/5819)) + + +## 3.3.1 / 2016-11-14 +{: #v3-3-1} + +### Minor Enhancements +{: #minor-enhancements-v3-3-1} + +- Collapse `gsub` for performance ([#5494]({{ site.repository }}/issues/5494)) +- URL: warn if key doesn't exist in url drop ([#5524]({{ site.repository }}/issues/5524)) + +### Bug Fixes +{: #bug-fixes-v3-3-1} + +- Fix typo in `theme_template` README ([#5472]({{ site.repository }}/issues/5472)) +- Do not swallow all exceptions on render ([#5495]({{ site.repository }}/issues/5495)) +- Site template: fixed `_config.yml` comment typo ([#5511]({{ site.repository }}/issues/5511)) +- `jekyll new-theme` should specify Jekyll as a runtime dependency for the theme ([#5457]({{ site.repository }}/issues/5457)) +- Be much more specific about ignoring specific vendored directories. ([#5564]({{ site.repository }}/issues/5564)) +- Only warn about auto-regeneration bug on Bash On Windows. ([#5464]({{ site.repository }}/issues/5464)) +- Allow permalink template to have underscores ([#5572]({{ site.repository }}/issues/5572)) + +### Site Enhancements +{: #site-enhancements-v3-3-1} + +- Documentation: `link` Liquid tag ([#5449]({{ site.repository }}/issues/5449)) +- Updating install instruction link for Jekyll 3 on Windows ([#5475]({{ site.repository }}/issues/5475)) +- Update normalize.css to v5.0.0 ([#5471]({{ site.repository }}/issues/5471)) +- Add jekyll-data to the list of plugins ([#5491]({{ site.repository }}/issues/5491)) +- Add info about checking version + updating ([#5497]({{ site.repository }}/issues/5497)) +- Add jekyll-include-absolute-plugin to list of third-party plugins ([#5492]({{ site.repository }}/issues/5492)) +- Remove jekyll-hook from deployment methods ([#5502]({{ site.repository }}/issues/5502)) +- Update deployment-methods.md ([#5504]({{ site.repository }}/issues/5504)) +- Ubuntu users should install ruby2.3-dev ([#5512]({{ site.repository }}/issues/5512)) +- Remove Glynn as deployment option ([#5519]({{ site.repository }}/issues/5519)) +- Fix broken forum link ([#5466]({{ site.repository }}/issues/5466)) +- Move documentation to docs folder ([#5459]({{ site.repository }}/issues/5459)) +- Fix broken links in CONTRIBUTING ([#5533]({{ site.repository }}/issues/5533)) +- Update documentation on jekyllrb.com ([#5540]({{ site.repository }}/issues/5540)) +- Fix HTML rendering ([#5536]({{ site.repository }}/issues/5536)) +- Remove outdated deployment information ([#5557]({{ site.repository }}/issues/5557)) +- no more invalid US-ASCII on lines 30 and 97 ([#5520]({{ site.repository }}/issues/5520)) +- Add permalinks to docs in '/maintaining/' ([#5532]({{ site.repository }}/issues/5532)) +- Add jekyll-pinboard to list of third-party plugins ([#5514]({{ site.repository }}/issues/5514)) +- Fix formatting in 2-to-3.md ([#5507]({{ site.repository }}/issues/5507)) +- Add two plugins to the plugins page ([#5493]({{ site.repository }}/issues/5493)) +- Use site.baseurl before link and post_url tags ([#5559]({{ site.repository }}/issues/5559)) +- Fix link to jekyll-pinboard plugin ([#5570]({{ site.repository }}/issues/5570)) +- mention `docs` folder as a way to deploy on GitHub Pages ([#5571]({{ site.repository }}/issues/5571)) + +### Development Fixes +{: #development-fixes-v3-3-1} + +- fix rubocop errors on testing with Rubocop 0.44 ([#5489]({{ site.repository }}/issues/5489)) +- script/test: add missing whitespace ([#5479]({{ site.repository }}/issues/5479)) +- Restrict Rubocop version ([#5496]({{ site.repository }}/issues/5496)) +- include a hashbang for all benchmark scripts & make them executable ([#5505]({{ site.repository }}/issues/5505)) +- Update source in script/proof ([#5538]({{ site.repository }}/issues/5538)) +- Collections.feature: conditional steps to have it pass on Windows ([#5546]({{ site.repository }}/issues/5546)) +- Fix tests to get script/test to pass on Windows ([#5526]({{ site.repository }}/issues/5526)) + + +## 3.3.0 / 2016-10-06 +{: #v3-3-0} + +### Minor Enhancements +{: #minor-enhancements-v3-3-0} + +- Colorize interpolated output in logger.info ([#5239]({{ site.repository }}/issues/5239)) +- Site template: exclude Gemfile and Gemfile.lock in site config ([#5293]({{ site.repository }}/issues/5293)) +- Fix [#5233]({{ site.repository }}/issues/5233): Increase our ability to detect Windows. ([#5235]({{ site.repository }}/issues/5235)) +- update gitignore template to ignore theme gems built by user ([#5326]({{ site.repository }}/issues/5326)) +- Adds ability to link to all files ([#5199]({{ site.repository }}/issues/5199)) +- Exclude vendor by default ([#5361]({{ site.repository }}/issues/5361)) +- Add ThemeAssetsReader which reads assets from a theme ([#5364]({{ site.repository }}/issues/5364)) +- Add bundle install to jekyll new command ([#5237]({{ site.repository }}/issues/5237)) +- Add absolute_url and relative_url filters. ([#5399]({{ site.repository }}/issues/5399)) +- Site template: remove `css/` from new site scaffolding ([#5402]({{ site.repository }}/issues/5402)) +- Site template: Move contents of the index.html page to the 'home' layout ([#5420]({{ site.repository }}/issues/5420)) +- Exclude node_modules by default ([#5210]({{ site.repository }}/issues/5210)) +- Run hooks in priority order. ([#5157]({{ site.repository }}/issues/5157)) +- Add `static_file.name` and `.basename` Liquid attributes ([#5264]({{ site.repository }}/issues/5264)) +- set site.url in dev environment to `http://localhost:4000` ([#5431]({{ site.repository }}/issues/5431)) +- Add support for indented link references on excerpt ([#5212]({{ site.repository }}/issues/5212)) + +### Bug Fixes +{: #bug-fixes-v3-3-0} + +- Use jekyll-feed to generate the default site's RSS feed ([#5196]({{ site.repository }}/issues/5196)) +- Site#configure_theme: do not set theme unless it's a string ([#5189]({{ site.repository }}/issues/5189)) +- Convertible: set self.output in #render_all_layouts and #do_layout ([#5337]({{ site.repository }}/issues/5337)) +- Only complain about `kramdown.coderay` if it is actually in the config ([#5380]({{ site.repository }}/issues/5380)) +- Clarify documentation in theme gem's README template ([#5376]({{ site.repository }}/issues/5376)) +- Allow underscore in highlighter language ([#5375]({{ site.repository }}/issues/5375)) +- Site template: set empty url in config file by default ([#5338]({{ site.repository }}/issues/5338)) +- Site template config: prepend 'jekyll serve' with 'bundle exec' ([#5430]({{ site.repository }}/issues/5430)) +- Don't call `File.utime` for StaticFiles if it's a symlink ([#5427]({{ site.repository }}/issues/5427)) +- Fix handling of non-ASCII characters in new `*_url` filters ([#5410]({{ site.repository }}/issues/5410)) +- Remove autoload of Draft which no longer exists. ([#5441]({{ site.repository }}/issues/5441)) +- Fix issue where Windows drive name is stripped from Jekyll.sanitized_path incorrectly ([#5256]({{ site.repository }}/issues/5256)) +- Fix bug where `post_url` tag matched incorrect post with subdirectory ([#4873]({{ site.repository }}/issues/4873)) +- Fix loading data from subdir with a period in name ([#5433]({{ site.repository }}/issues/5433)) +- Revert Commands::Serve#server_address signature change. ([#5456]({{ site.repository }}/issues/5456)) + +### Site Enhancements +{: #site-enhancements-v3-3-0} + +- Document `to_integer` and `inspect` filters ([#5185]({{ site.repository }}/issues/5185)) +- Fix path in the prompt ([#5194]({{ site.repository }}/issues/5194)) +- need subcommand build ([#5190]({{ site.repository }}/issues/5190)) +- Add the Jekyll Cloudinary plugin ([#5183]({{ site.repository }}/issues/5183)) +- Documentation : `new-theme` command ([#5205]({{ site.repository }}/issues/5205)) +- Document `link` Liquid tag ([#5182]({{ site.repository }}/issues/5182)) +- Remove mention of page for link tag in release post ([#5214]({{ site.repository }}/issues/5214)) +- fixed typo ([#5226]({{ site.repository }}/issues/5226)) +- Add missing comma ([#5222]({{ site.repository }}/issues/5222)) +- Maintain aspect ratio with `height: auto;` ([#5254]({{ site.repository }}/issues/5254)) +- Fix a link in deployment-methods.md ([#5244]({{ site.repository }}/issues/5244)) +- Documentation: improve highlight in `Creating a theme` ([#5249]({{ site.repository }}/issues/5249)) +- Bundler isn't installed by default ([#5258]({{ site.repository }}/issues/5258)) +- Update troubleshooting documentation to include fix for issue with vendored gems ([#5271]({{ site.repository }}/issues/5271)) +- Link `--lsi` option's description to Wikipedia docs on LSI ([#5274]({{ site.repository }}/issues/5274)) +- Document `--profile` option on the configuration page ([#5279]({{ site.repository }}/issues/5279)) +- Update homepage to sync with merge of [#5258]({{ site.repository }}/issues/5258) ([#5287]({{ site.repository }}/issues/5287)) +- Add post about Jekyll Admin initial release ([#5291]({{ site.repository }}/issues/5291)) +- Replace liquid highlight tag with backticks ([#5262]({{ site.repository }}/issues/5262)) +- Word update ([#5294]({{ site.repository }}/issues/5294)) +- Site documentation section links always point to https://jekyllrb.com ([#5281]({{ site.repository }}/issues/5281)) +- Missing `:site, :post_render` payload documentation on site ([#5280]({{ site.repository }}/issues/5280)) +- Site: exclude README.md and .gitignore ([#5304]({{ site.repository }}/issues/5304)) +- Add link to Staticman ([#5224]({{ site.repository }}/issues/5224)) +- Update url for OpenShift ([#5320]({{ site.repository }}/issues/5320)) +- Add help for missing static_file e.g. on heroku ([#5334]({{ site.repository }}/issues/5334)) +- Add a line about updating theme-gems in the docs ([#5318]({{ site.repository }}/issues/5318)) +- Explain how to copy a theme's files ([#5335]({{ site.repository }}/issues/5335)) +- .md as default extension in examples ([#5316]({{ site.repository }}/issues/5316)) +- Fix small typo in docs ([#5347]({{ site.repository }}/issues/5347)) +- Add missing period to sentence in first paragraph. ([#5372]({{ site.repository }}/issues/5372)) +- added jekyll-spotify plugin ([#5369]({{ site.repository }}/issues/5369)) +- Add jekyll-menus to the list of plugins. ([#5397]({{ site.repository }}/issues/5397)) +- macOS and one grammar fix ([#5403]({{ site.repository }}/issues/5403)) +- Add documentation for `relative_url` and `absolute_url` ([#5405]({{ site.repository }}/issues/5405)) +- Bugfix on logo in JSON-LD ([#5421]({{ site.repository }}/issues/5421)) +- Fix Travis.ci documentation ([#5413]({{ site.repository }}/issues/5413)) +- Update documentation regarding `bundle install` after `jekyll new` ([#5428]({{ site.repository }}/issues/5428)) +- Replace classic box-sizing reset with inheritance reset ([#5411]({{ site.repository }}/issues/5411)) +- Update Wikipedia YAML list link ([#5452]({{ site.repository }}/issues/5452)) +- Add Jekyll 3.3 release post ([#5442]({{ site.repository }}/issues/5442)) + +### Development Fixes +{: #development-fixes-v3-3-0} + +- Update appveyor.yml and fix optional deps for Ruby x64 ([#5180]({{ site.repository }}/issues/5180)) +- Improve tests for Jekyll::PluginManager ([#5167]({{ site.repository }}/issues/5167)) +- Update Ruby versions in travis.yml ([#5221]({{ site.repository }}/issues/5221)) +- Avoid installing unnecessary gems for site testing ([#5272]({{ site.repository }}/issues/5272)) +- Proposal: Affinity teams and their captains ([#5273]({{ site.repository }}/issues/5273)) +- Replace duplicate with positive local test in issue template ([#5286]({{ site.repository }}/issues/5286)) +- Update AppVeyor config. ([#5240]({{ site.repository }}/issues/5240)) +- Execute jekyll from clone instead of defined binary when running 'script/default-site' ([#5295]({{ site.repository }}/issues/5295)) +- rubocop: lib/jekyll/document.rb complexity fixes ([#5045]({{ site.repository }}/issues/5045)) +- Proxy a number of Convertible methods to Renderer ([#5308]({{ site.repository }}/issues/5308)) +- Run executable for Cucumber via Ruby instead of Shell ([#5383]({{ site.repository }}/issues/5383)) +- Appease Rubocop ([#5381]({{ site.repository }}/issues/5381)) +- remove features' directories on windows with proper access ([#5389]({{ site.repository }}/issues/5389)) +- `site_configuration.feature`: use UTC format in timezone ([#5416]({{ site.repository }}/issues/5416)) +- swallow bundle output from `jekyll new` while in CI ([#5408]({{ site.repository }}/issues/5408)) +- Add .editorconfig ([#5412]({{ site.repository }}/issues/5412)) + + +## 3.2.1 / 2016-08-02 +{: #v3-2-1} + +### Bug Fixes +{: #bug-fixes-v3-2-1} + +- Include theme directories in default gemspec ([#5152]({{ site.repository }}/issues/5152)) +- Fix for symlinked themes ([#5156]({{ site.repository }}/issues/5156)) +- Layout: set `relative_path` without using Pathname ([#5164]({{ site.repository }}/issues/5164)) + +### Development Fixes +{: #development-fixes-v3-2-1} + +- Add test to build the default site ([#5154]({{ site.repository }}/issues/5154)) +- script/default-site: specify `BUNDLE_GEMFILE` for new site ([#5178]({{ site.repository }}/issues/5178)) +- script/default-site: read Jekyll source from local clone ([#5188]({{ site.repository }}/issues/5188)) + +### Site Enhancements +{: #site-enhancements-v3-2-1} + +- Enable site excerpts ([#5150]({{ site.repository }}/issues/5150)) +- Initial 404 page ([#5143]({{ site.repository }}/issues/5143)) +- Remove the "this feature is unreleased" warning from the theme docs ([#5158]({{ site.repository }}/issues/5158)) +- Future True on GitHub Pages note ([#5173]({{ site.repository }}/issues/5173)) +- Minor updates and corrections ([#5177]({{ site.repository }}/issues/5177)) +- index.html: update instructions to require bundler ([#5169]({{ site.repository }}/issues/5169)) +- docs/quickstart: update instructions to require bundler ([#5168]({{ site.repository }}/issues/5168)) + + +## 3.2.0 / 2016-07-26 +{: #v3-2-0} + +### Minor Enhancements +{: #minor-enhancements-v3-2-0} + +- Stop testing with Ruby 2.0.x, which is EOL'd. ([#4381]({{ site.repository }}/issues/4381)) +- Allow collections to have documents that have no file extension ([#4545]({{ site.repository }}/issues/4545)) +- Add size property to `group_by` result ([#4557]({{ site.repository }}/issues/4557)) +- Site Template: Removed unnecessary nesting from `_base.scss` ([#4637]({{ site.repository }}/issues/4637)) +- Adding a debug log statement for skipped future documents. ([#4558]({{ site.repository }}/issues/4558)) +- Site Template: Changed main `
` to `
` and added accessibility info ([#4636]({{ site.repository }}/issues/4636)) +- Add array support to `where` filter ([#4555]({{ site.repository }}/issues/4555)) +- 'jekyll clean': also remove .sass-cache ([#4652]({{ site.repository }}/issues/4652)) +- Clean up `Tags::PostUrl` a bit, including better errors and date parsing ([#4670]({{ site.repository }}/issues/4670)) +- Use `String#encode` for `xml_escape` filter instead of `CGI.escapeHTML` ([#4694]({{ site.repository }}/issues/4694)) +- Add `show_dir_listing` option for serve command and fix index file names ([#4533]({{ site.repository }}/issues/4533)) +- Site Template: write a Gemfile which is educational to the new site ([#4542]({{ site.repository }}/issues/4542)) +- Site template: add explanation of site variables in the example `_config.yml` ([#4704]({{ site.repository }}/issues/4704)) +- Adds `link` Liquid tag to make generation of URLs easier ([#4624]({{ site.repository }}/issues/4624)) +- Allow static files to be symlinked in unsafe mode or non-prod environments ([#4640]({{ site.repository }}/issues/4640)) +- Add `:after_init` hook & add `Site#config=` to make resetting config easy ([#4703]({{ site.repository }}/issues/4703)) +- DocumentDrop: add `#<=>` which sorts by date (falling back to path) ([#4741]({{ site.repository }}/issues/4741)) +- Add a `where_exp` filter for filtering by expression ([#4478]({{ site.repository }}/issues/4478)) +- Globalize Jekyll's Filters. ([#4792]({{ site.repository }}/issues/4792)) +- Gem-based themes ([#4595]({{ site.repository }}/issues/4595)) +- Allow symlinks if they point to stuff inside `site.source` ([#4710]({{ site.repository }}/issues/4710)) +- Update colorator dependency to v1.x ([#4855]({{ site.repository }}/issues/4855)) +- Move EntryFilter to use Pathutil & fix `glob_include?` ([#4859]({{ site.repository }}/issues/4859)) +- Add 'jekyll new-theme' command to help users get up and running creating a theme ([#4848]({{ site.repository }}/issues/4848)) +- `markdownify` and `smartify` should convert input to string before conversion ([#4958]({{ site.repository }}/issues/4958)) +- Run `Site#generate` for 'jekyll doctor' to catch plugin issues ([#5005]({{ site.repository }}/issues/5005)) +- Add `normalize_whitepace` filter ([#4917]({{ site.repository }}/issues/4917)) +- Move bin/jekyll to exe/jekyll to prevent collision with binstubs ([#5014]({{ site.repository }}/issues/5014)) +- Cleaning up site template & theme updates. ([#4922]({{ site.repository }}/issues/4922)) +- Add fetch method to Drops ([#5056]({{ site.repository }}/issues/5056)) +- Extract tag name to class method ([#5063]({{ site.repository }}/issues/5063)) +- check if relative URL contains a colon ([#5069]({{ site.repository }}/issues/5069)) +- Enable strict (or lax) liquid parsing via a config variable. ([#5053]({{ site.repository }}/issues/5053)) +- Add filter: `to_integer` ([#5101]({{ site.repository }}/issues/5101)) +- watcher: pass site instance to watch plugin ([#5109]({{ site.repository }}/issues/5109)) +- Show liquid warnings. ([#5129]({{ site.repository }}/issues/5129)) +- Add `--baseurl` to `build` subcommand ([#5135]({{ site.repository }}/issues/5135)) + +### Bug Fixes +{: #bug-fixes-v3-2-0} + +- Site Template: Added a default lang attribute ([#4633]({{ site.repository }}/issues/4633)) +- Site template: Escape title and description where it is used in HTML ([#4606]({{ site.repository }}/issues/4606)) +- `Document#date`: drafts which have no date should use source file mtime ([#4611]({{ site.repository }}/issues/4611)) +- `Filters#time`: clone an input Time so as to be non-destructive ([#4590]({{ site.repository }}/issues/4590)) +- Doctor: fix issue where `--config` wasn't a recognized flag ([#4598]({{ site.repository }}/issues/4598)) +- Ensures `related_posts` are only set for a post ([#4620]({{ site.repository }}/issues/4620)) +- `EntryFilter#special?`: ignore filenames which begin with `~` ([#4491]({{ site.repository }}/issues/4491)) +- Cleaner: `keep_files` should only apply to the beginning of paths, not substrings with index > 0 ([#3849]({{ site.repository }}/issues/3849)) +- Use SSLEnable instead of EnableSSL and make URL HTTPS. ([#4693]({{ site.repository }}/issues/4693)) +- convertible: use `Document::YAML_FRONT_MATTER_REGEXP` to parse transformable files ([#4786]({{ site.repository }}/issues/4786)) +- Example in the site template should be IANA-approved example.com ([#4793]({{ site.repository }}/issues/4793)) +- 3.2.x/master: Fix defaults for Documents (posts/collection docs) ([#4808]({{ site.repository }}/issues/4808)) +- Don't rescue LoadError or bundler load errors for Bundler. ([#4857]({{ site.repository }}/issues/4857)) +- `Serve.process` should receive same config as `Build.process` ([#4953]({{ site.repository }}/issues/4953)) +- Prevent reset of page in Liquid payload right before rendering layouts ([#5009]({{ site.repository }}/issues/5009)) +- Add missing fields to ExcerptDrop ([#5067]({{ site.repository }}/issues/5067)) +- Stringify configuration overrides before first use ([#5060]({{ site.repository }}/issues/5060)) +- hooks: move `after_init` hook call at the end of `Site#initialize` ([#5106]({{ site.repository }}/issues/5106)) +- filters: raise error if no input given to date filters ([#5127]({{ site.repository }}/issues/5127)) +- `where_exp` filter should filter posts ([#4860]({{ site.repository }}/issues/4860)) + +### Forward Ports +{: #forward-ports-v3-2-0} + +- From v3.1.4: Add ExcerptDrop and remove excerpt's ability to refer to itself in Liquid ([#4941]({{ site.repository }}/issues/4941)) +- From v3.1.4: Configuration permalink fix and addition of Configuration.from and sorting `site.collections` by label ([#4942]({{ site.repository }}/issues/4942)) +- From v3.1.4: Fix {% raw %}`{{ layout }}`{% endraw %} oddities (proper inheritance & fixing overflow of old data) ([#4943]({{ site.repository }}/issues/4943)) +- From v3.1.5: Sort the results of the `require_all` glob ([#4944]({{ site.repository }}/issues/4944)) +- From v3.1.6: Add ability to render drops as JSON ([#4945]({{ site.repository }}/issues/4945)) + +### Development Fixes +{: #development-fixes-v3-2-0} + +- Add project maintainer profile links ([#4591]({{ site.repository }}/issues/4591)) +- Fix state leakage in Kramdown test ([#4618]({{ site.repository }}/issues/4618)) +- Unify method for copying special files from repo to site ([#4601]({{ site.repository }}/issues/4601)) +- Refresh the contributing file ([#4596]({{ site.repository }}/issues/4596)) +- change smartify doc from copy/paste of mardownify doc ([#4653]({{ site.repository }}/issues/4653)) +- Update Rake & disable warnings when running tests ([#4720]({{ site.repository }}/issues/4720)) +- Fix many warnings ([#4537]({{ site.repository }}/issues/4537)) +- Don't blindly assume the last system when determining "open" cmd ([#4717]({{ site.repository }}/issues/4717)) +- Fix "locally" typo in contributing documentation ([#4756]({{ site.repository }}/issues/4756)) +- Update Rubocop rules ([#4886]({{ site.repository }}/issues/4886)) +- Flesh out the issue template to be much more detailed ([#4849]({{ site.repository }}/issues/4849)) +- Fixing rubocop offenses in lib/jekyll/cleaner.rb ([#4892]({{ site.repository }}/issues/4892)) +- Update `jekyll/commands*` to pass rubocop rules ([#4888]({{ site.repository }}/issues/4888)) +- Clean up many test files to pass Rubocop rules ([#4902]({{ site.repository }}/issues/4902)) +- Rubocop cleanup for some utils and further test files ([#4916]({{ site.repository }}/issues/4916)) +- Rubocop: Low hanging fruit ([#4936]({{ site.repository }}/issues/4936)) +- Rubocop: `Drop` changes from v3.1 forward-ports ([#4949]({{ site.repository }}/issues/4949)) +- Rubocop: cleanup for misc files ([#4946]({{ site.repository }}/issues/4946)) +- Rubocop: Stevenson ([#4951]({{ site.repository }}/issues/4951)) +- Rubocop: lib/jekyll/entry_filter.rb ([#4950]({{ site.repository }}/issues/4950)) +- Rubocop: `test/*` ([#4947]({{ site.repository }}/issues/4947)) +- Rubocop: features ([#4934]({{ site.repository }}/issues/4934)) +- Rubocop: Liquid renderer ([#4933]({{ site.repository }}/issues/4933)) +- Rubocop: converters ([#4931]({{ site.repository }}/issues/4931)) +- Rubocop: Site Drop ([#4948]({{ site.repository }}/issues/4948)) +- Rubocop: tags ([#4938]({{ site.repository }}/issues/4938)) +- Rubocop: Readers ([#4932]({{ site.repository }}/issues/4932)) +- rubocop: jekyll/lib/frontmatter_defaults.rb ([#4974]({{ site.repository }}/issues/4974)) +- rubocop: features/step_definitions.rb ([#4956]({{ site.repository }}/issues/4956)) +- Rubocop theme and url jekyll libs ([#4959]({{ site.repository }}/issues/4959)) +- Rubocop jekyll.rb ([#4966]({{ site.repository }}/issues/4966)) +- Rubocop: use %r for all regular expressions. ([#4979]({{ site.repository }}/issues/4979)) +- Cleanup and make misc files compliant with Rubocop. ([#4940]({{ site.repository }}/issues/4940)) +- Rubocop: jekyll/lib/site.rb ([#4973]({{ site.repository }}/issues/4973)) +- Add timings for each scenario in cucumber & print worst offenders ([#4908]({{ site.repository }}/issues/4908)) +- rubocop: jekyll/lib/filters.rb ([#4993]({{ site.repository }}/issues/4993)) +- Fix rubocop offenses in exe/jekyll ([#5017]({{ site.repository }}/issues/5017)) +- Rubocop: lib/jekyll/command.rb ([#5018]({{ site.repository }}/issues/5018)) +- rubocop: lib/jekyll/static_file.rb ([#5019]({{ site.repository }}/issues/5019)) +- rubocop: lib/jekyll/utils.rb ([#5026]({{ site.repository }}/issues/5026)) +- rubocop: lib/jekyll/regenerator.rb ([#5025]({{ site.repository }}/issues/5025)) +- rubocop: lib/jekyll/configuration.rb ([#5024]({{ site.repository }}/issues/5024)) +- rubocop: lib/jekyll/renderer.rb style fixes ([#5032]({{ site.repository }}/issues/5032)) +- rubocop: lib/jekyll/convertible.rb style fixes ([#5031]({{ site.repository }}/issues/5031)) +- rubocop: lib/jekyll/document.rb style fixes ([#5030]({{ site.repository }}/issues/5030)) +- Remove ruby-head from Travis matrix & fix jruby failures ([#5015]({{ site.repository }}/issues/5015)) +- Remove useless statement from Configuration test ([#5065]({{ site.repository }}/issues/5065)) +- Change baseurl to example.com for some test cases ([#5068]({{ site.repository }}/issues/5068)) +- use activesupport < 5 if we are on a Ruby < 2.2.2 ([#5100]({{ site.repository }}/issues/5100)) +- Internal documentation for working on Jekyll ([#5011]({{ site.repository }}/issues/5011)) +- rubocop: lib/jekyll/collection.rb ([#5022]({{ site.repository }}/issues/5022)) +- tests: Typo fixes. ([#5114]({{ site.repository }}/issues/5114)) +- Normalize yml files. ([#5116]({{ site.repository }}/issues/5116)) +- Whitespace cleanup. ([#5113]({{ site.repository }}/issues/5113)) +- Add AppVeyor support. ([#5115]({{ site.repository }}/issues/5115)) +- appveyor.yml: drop Ruby 2.0.0. ([#5119]({{ site.repository }}/issues/5119)) +- Fix indentation in benchmark ([#5124]({{ site.repository }}/issues/5124)) +- Style fixes for Rubocop 0.42.0 - var == 0 becomes var.zero? - when defining method_missing, also define respond_to_missing? ([#5137]({{ site.repository }}/issues/5137)) + +### Site Enhancements +{: #site-enhancements-v3-2-0} + +- Add jekyll-seo-tag, jekyll-avatar, and jekyll-sitemap to the site ([#4553]({{ site.repository }}/issues/4553)) +- Add Google search query to /docs/help/ ([#4589]({{ site.repository }}/issues/4589)) +- Upgrading, documentation ([#4597]({{ site.repository }}/issues/4597)) +- Add 'view source' entry ([#4602]({{ site.repository }}/issues/4602)) +- Add jekyll-video-embed to list of third-party plugins. ([#4621]({{ site.repository }}/issues/4621)) +- Adding Aerobatic to list of deployment options ([#4630]({{ site.repository }}/issues/4630)) +- Update documentation: HTMLProofer CLI command ([#4641]({{ site.repository }}/issues/4641)) +- Document that subdirectories of `_posts` are no longer categories ([#4639]({{ site.repository }}/issues/4639)) +- Update continuous-integration docs with sudo: false information ([#4628]({{ site.repository }}/issues/4628)) +- Blog post on refreshed contributing file and new affinity teams ([#4645]({{ site.repository }}/issues/4645)) +- Fixes typo on collections ([#4647]({{ site.repository }}/issues/4647)) +- Documentation: future option also works for collections ([#4682]({{ site.repository }}/issues/4682)) +- Additional package needed for Fedora 23 Workspace ([#4685]({{ site.repository }}/issues/4685)) +- Fix typo on Chocolatey name in Windows documentation ([#4686]({{ site.repository }}/issues/4686)) +- Use the correct URL, Fixes [#4698]({{ site.repository }}/issues/4698) ([#4699]({{ site.repository }}/issues/4699)) +- Add jekyll-paspagon plugin ([#4700]({{ site.repository }}/issues/4700)) +- Bold-italicize note in assets documentation about needing front matter ([#4706]({{ site.repository }}/issues/4706)) +- Highlight the `script/` calls in the Contributing documentation ([#4712]({{ site.repository }}/issues/4712)) +- Add Hawkins to the list of third-party plugins ([#4755]({{ site.repository }}/issues/4755)) +- Fix a typo in pagination doc ([#4763]({{ site.repository }}/issues/4763)) +- Switch second GitHub Pages link to HTTPS ([#4760]({{ site.repository }}/issues/4760)) +- Explain data file format requirements more clearly in documentation ([#4781]({{ site.repository }}/issues/4781)) +- Add jekyll-i18n_tags to list of third-party plugins ([#4775]({{ site.repository }}/issues/4775)) +- Remove Leonard Lamprecht's website from Sites page ([#4771]({{ site.repository }}/issues/4771)) +- Updates documentation for collections to include `date` property ([#4769]({{ site.repository }}/issues/4769)) +- Added an explicit rerun note to configuration.md, defaults section ([#4734]({{ site.repository }}/issues/4734)) +- Update Rack-Jekyll Heroku deployment blog post url ([#4789]({{ site.repository }}/issues/4789)) +- Added missing single quote on rsync client side command ([#4813]({{ site.repository }}/issues/4813)) +- Organize Form Platforms-as-a-Service into unified list & add FormSpree.io ([#4754]({{ site.repository }}/issues/4754)) +- Fixed typo on Configuration page ([#4804]({{ site.repository }}/issues/4804)) +- Update FormKeep URL on the Resources doc ([#4844]({{ site.repository }}/issues/4844)) +- site: use liquid & reduce some whitespace noise ([#4854]({{ site.repository }}/issues/4854)) +- Add jekyll-breadcrumbs to list of third-party plugins ([#4874]({{ site.repository }}/issues/4874)) +- Added Pug converter to list of third-party plugins ([#4872]({{ site.repository }}/issues/4872)) +- Add jekyll-ideal-image-slider to list of third-party plugins ([#4863]({{ site.repository }}/issues/4863)) +- Add Jekyll Tips and the Cheatsheet to the list of resources ([#4887]({{ site.repository }}/issues/4887)) +- Removed extra `

` from `site/_docs/permalinks.md` ([#4890]({{ site.repository }}/issues/4890)) +- Add pubstorm deployment instructions to docs ([#4881]({{ site.repository }}/issues/4881)) +- Corrected pagination docs for hidden: true feature ([#4903]({{ site.repository }}/issues/4903)) +- Remove a Broken Link for Refheap Plugin ([#4971]({{ site.repository }}/issues/4971)) +- Instructions on how to install github-gem on Windows ([#4975]({{ site.repository }}/issues/4975)) +- Minor tweak to fix missing apostrophne ([#4962]({{ site.repository }}/issues/4962)) +- Instructions on how to install github-gem on Windows (v2) ([#4977]({{ site.repository }}/issues/4977)) +- Fix inaccurate HTTP response header field name ([#4976]({{ site.repository }}/issues/4976)) +- Add post about GSoC project ([#4980]({{ site.repository }}/issues/4980)) +- Link to the HTML page instead of Markdown ([#4985]({{ site.repository }}/issues/4985)) +- Update normalize.css to v4.0.0. ([#4989]({{ site.repository }}/issues/4989)) +- Add jekyll-tags-list-plugin to list of third-party plugins ([#5000]({{ site.repository }}/issues/5000)) +- Windows docs: Command needs to be called from blog path ([#5006]({{ site.repository }}/issues/5006)) +- Update text to be consitent with example ([#5010]({{ site.repository }}/issues/5010)) +- Update template links to point to core Liquid site ([#5012]({{ site.repository }}/issues/5012)) +- Add generator-jekyllized to third-party plugins ([#5027]({{ site.repository }}/issues/5027)) +- Add Jekyll Art Hallery generator plugin to list of third-party plugins ([#5043]({{ site.repository }}/issues/5043)) +- Add Formingo to the list of Jekyll form SaaS ([#5054]({{ site.repository }}/issues/5054)) +- Highlight help nav item when navigated to. ([#5058]({{ site.repository }}/issues/5058)) +- Update normalize.css to v4.2.0. ([#5096]({{ site.repository }}/issues/5096)) +- Updates html-proofer code ([#5098]({{ site.repository }}/issues/5098)) +- Jekyll Community ([#5097]({{ site.repository }}/issues/5097)) +- Typo in documentation file templates.md ([#5117]({{ site.repository }}/issues/5117)) +- Slightly, improve PNG compression. ([#5112]({{ site.repository }}/issues/5112)) +- docs: add jekyll-maps plugin reference ([#5123]({{ site.repository }}/issues/5123)) +- docs: fix link to plugins page source ([#5122]({{ site.repository }}/issues/5122)) +- Update the configuration docs to match the code ([#5131]({{ site.repository }}/issues/5131)) +- Removed confusing word repetition. ([#5139]({{ site.repository }}/issues/5139)) +- Add a note about script/fmt ([#5138]({{ site.repository }}/issues/5138)) + + +## 3.1.6 / 2016-05-19 +{: #v3-1-6} + +### Bug Fixes +{: #bug-fixes-v3-1-6} + +- Add ability to `jsonify` Drops such that, e.g. `site | jsonify`, works. ([#4914]({{ site.repository }}/issues/4914)) + + +## 3.1.5 / 2016-05-18 +{: #v3-1-5} + +### Bug Fixes +{: #bug-fixes-v3-1-5} + +- Sort the results of the `require_all` glob (affects Linux only). ([#4912]({{ site.repository }}/issues/4912)) + + +## 3.1.4 / 2016-05-18 +{: #v3-1-4} + +### Bug Fixes +{: #bug-fixes-v3-1-4} + +- Add `ExcerptDrop` and remove excerpt's ability to refer to itself in Liquid ([#4907]({{ site.repository }}/issues/4907)) +- Configuration permalink fix where `collections.posts.permalink` inherits properly from `permalink` only when it doesn't exist ([#4910]({{ site.repository }}/issues/4910)) +- Add `Configuration.from` to make it easier to build configs from just a hash +- Sorting `site.collections` in Liquid by label ([#4910]({{ site.repository }}/issues/4910)) +- Fix bug where `layout` in Liquid would inherit from previously-rendered layouts' metadatas ([#4909]({{ site.repository }}/issues/4909)) +- Fix bug where `layout` in Liquid would override in the wrong direction (more-specific layouts' data were overwritten by their parent layouts' data; this has now been reversed) ([#4909]({{ site.repository }}/issues/4909)) + + +## 3.1.3 / 2016-04-18 +{: #v3-1-3} + +- Fix defaults for Documents to lookup defaults based on `relative_path` instead of `url` ([#4807]({{ site.repository }}/issues/4807)) +- Use SSLEnable instead of EnableSSL and make URL HTTPS (WEBrick) ([#4693]({{ site.repository }}/issues/4693)) + + +## 3.1.2 / 2016-02-19 +{: #v3-1-2} + +### Minor Enhancements +{: #minor-enhancements-v3-1-2} + +- Include `.rubocop.yml` in Gem ([#4437]({{ site.repository }}/issues/4437)) +- `LiquidRenderer#parse`: parse with line numbers. ([#4452]({{ site.repository }}/issues/4452)) +- Add consistency to the no-subcommand deprecation message ([#4505]({{ site.repository }}/issues/4505)) + +### Bug Fixes +{: #bug-fixes-v3-1-2} + +- Fix syntax highlighting in kramdown by making `@config` accessible in the Markdown converter. ([#4428]({{ site.repository }}/issues/4428)) +- `Jekyll.sanitized_path`: sanitizing a questionable path should handle tildes ([#4492]({{ site.repository }}/issues/4492)) +- Fix `titleize` so already capitalized words are not dropped ([#4525]({{ site.repository }}/issues/4525)) +- Permalinks which end in a slash should always output HTML ([#4546]({{ site.repository }}/issues/4546)) + +### Development Fixes +{: #development-fixes-v3-1-2} + +- Require at least cucumber version 2.1.0 ([#4514]({{ site.repository }}/issues/4514)) + +### Site Enhancements +{: #site-enhancements-v3-1-2} + +- Add jekyll-toc plugin ([#4429]({{ site.repository }}/issues/4429)) +- Docs: Quickstart - added documentation about the `--force` option ([#4410]({{ site.repository }}/issues/4410)) +- Fix broken links to the Code of Conduct ([#4436]({{ site.repository }}/issues/4436)) +- Upgrade notes: mention trailing slash in permalink; fixes [#4440]({{ site.repository }}/issues/4440) ([#4455]({{ site.repository }}/issues/4455)) +- Add hooks to the plugin categories toc ([#4463]({{ site.repository }}/issues/4463)) +- Jekyll 3 requires newer version of Ruby. ([#4461]({{ site.repository }}/issues/4461)) +- Fix typo in upgrading docs ([#4473]({{ site.repository }}/issues/4473)) +- Add note about upgrading documentation on jekyllrb.com/help/ ([#4484]({{ site.repository }}/issues/4484)) +- Update Rake link ([#4496]({{ site.repository }}/issues/4496)) +- Update & prune the short list of example sites ([#4374]({{ site.repository }}/issues/4374)) +- Added amp-jekyll plugin to plugins docs ([#4517]({{ site.repository }}/issues/4517)) +- A few grammar fixes ([#4512]({{ site.repository }}/issues/4512)) +- Correct a couple mistakes in structure.md ([#4522]({{ site.repository }}/issues/4522)) + + +## 3.1.1 / 2016-01-29 +{: #v3-1-1} + +### Meta + +- Update the Code of Conduct to the latest version ([#4402]({{ site.repository }}/issues/4402)) + +### Bug Fixes +{: #bug-fixes-v3-1-1} + +- `Page#dir`: ensure it ends in a slash ([#4403]({{ site.repository }}/issues/4403)) +- Add `Utils.merged_file_read_opts` to unify reading & strip the BOM ([#4404]({{ site.repository }}/issues/4404)) +- `Renderer#output_ext`: honor folders when looking for ext ([#4401]({{ site.repository }}/issues/4401)) + +### Development Fixes +{: #development-fixes-v3-1-1} + +- Suppress stdout in liquid profiling test ([#4409]({{ site.repository }}/issues/4409)) + + +## 3.1.0 / 2016-01-23 +{: #v3-1-0} + +### Minor Enhancements +{: #minor-enhancements-v3-1-0} + +- Use `Liquid::Drop`s instead of `Hash`es in `#to_liquid` ([#4277]({{ site.repository }}/issues/4277)) +- Add 'sample' Liquid filter Equivalent to Array#sample functionality ([#4223]({{ site.repository }}/issues/4223)) +- Cache parsed include file to save liquid parsing time. ([#4120]({{ site.repository }}/issues/4120)) +- Slightly speed up url sanitization and handle multiples of ///. ([#4168]({{ site.repository }}/issues/4168)) +- Print debug message when a document is skipped from reading ([#4180]({{ site.repository }}/issues/4180)) +- Include tag should accept multiple variables in the include name ([#4183]({{ site.repository }}/issues/4183)) +- Add `-o` option to serve command which opens server URL ([#4144]({{ site.repository }}/issues/4144)) +- Add CodeClimate platform for better code quality. ([#4220]({{ site.repository }}/issues/4220)) +- General improvements for WEBrick via jekyll serve such as SSL & custom headers ([#4224]({{ site.repository }}/issues/4224), [#4228]({{ site.repository }}/issues/4228)) +- Add a default charset to content-type on webrick. ([#4231]({{ site.repository }}/issues/4231)) +- Switch `PluginManager` to use `require_with_graceful_fail` for better UX ([#4233]({{ site.repository }}/issues/4233)) +- Allow quoted date in front matter defaults ([#4184]({{ site.repository }}/issues/4184)) +- Add a Jekyll doctor warning for URLs that only differ by case ([#3171]({{ site.repository }}/issues/3171)) +- drops: create one base Drop class which can be set as mutable or not ([#4285]({{ site.repository }}/issues/4285)) +- drops: provide `#to_h` to allow for hash introspection ([#4281]({{ site.repository }}/issues/4281)) +- Shim subcommands with indication of gem possibly required so users know how to use them ([#4254]({{ site.repository }}/issues/4254)) +- Add smartify Liquid filter for SmartyPants ([#4323]({{ site.repository }}/issues/4323)) +- Raise error on empty permalink ([#4361]({{ site.repository }}/issues/4361)) +- Refactor Page#permalink method ([#4389]({{ site.repository }}/issues/4389)) + +### Bug Fixes +{: #bug-fixes-v3-1-0} + +- Pass build options into `clean` command ([#4177]({{ site.repository }}/issues/4177)) +- Allow users to use .htm and .xhtml (XHTML5.) ([#4160]({{ site.repository }}/issues/4160)) +- Prevent Shell Injection. ([#4200]({{ site.repository }}/issues/4200)) +- Convertible should make layout data accessible via `layout` instead of `page` ([#4205]({{ site.repository }}/issues/4205)) +- Avoid using `Dir.glob` with absolute path to allow special characters in the path ([#4150]({{ site.repository }}/issues/4150)) +- Handle empty config files ([#4052]({{ site.repository }}/issues/4052)) +- Rename `@options` so that it does not impact Liquid. ([#4173]({{ site.repository }}/issues/4173)) +- utils/drops: update Drop to support `Utils.deep_merge_hashes` ([#4289]({{ site.repository }}/issues/4289)) +- Make sure jekyll/drops/drop is loaded first. ([#4292]({{ site.repository }}/issues/4292)) +- Convertible/Page/Renderer: use payload hash accessor & setter syntax for backwards-compatibility ([#4311]({{ site.repository }}/issues/4311)) +- Drop: fix hash setter precedence ([#4312]({{ site.repository }}/issues/4312)) +- utils: `has_yaml_header?` should accept files with extraneous spaces ([#4290]({{ site.repository }}/issues/4290)) +- Escape html from site.title and page.title in site template ([#4307]({{ site.repository }}/issues/4307)) +- Allow custom file extensions if defined in `permalink` front matter ([#4314]({{ site.repository }}/issues/4314)) +- Fix deep_merge_hashes! handling of drops and hashes ([#4359]({{ site.repository }}/issues/4359)) +- Page should respect output extension of its permalink ([#4373]({{ site.repository }}/issues/4373)) +- Disable auto-regeneration when running server detached ([#4376]({{ site.repository }}/issues/4376)) +- Drop#: only use public_send for keys in the content_methods array ([#4388]({{ site.repository }}/issues/4388)) +- Extract title from filename successfully when no date. ([#4195]({{ site.repository }}/issues/4195)) + +### Development Fixes +{: #development-fixes-v3-1-0} + +- `jekyll-docs` should be easily release-able ([#4152]({{ site.repository }}/issues/4152)) +- Allow use of Cucumber 2.1 or greater ([#4181]({{ site.repository }}/issues/4181)) +- Modernize Kramdown for Markdown converter. ([#4109]({{ site.repository }}/issues/4109)) +- Change TestDoctorCommand to JekyllUnitTest... ([#4263]({{ site.repository }}/issues/4263)) +- Create namespaced rake tasks in separate `.rake` files under `lib/tasks` ([#4282]({{ site.repository }}/issues/4282)) +- markdown: refactor for greater readability & efficiency ([#3771]({{ site.repository }}/issues/3771)) +- Fix many Rubocop style errors ([#4301]({{ site.repository }}/issues/4301)) +- Fix spelling of "GitHub" in docs and history ([#4322]({{ site.repository }}/issues/4322)) +- Reorganize and cleanup the Gemfile, shorten required depends. ([#4318]({{ site.repository }}/issues/4318)) +- Remove script/rebund. ([#4341]({{ site.repository }}/issues/4341)) +- Implement codeclimate platform ([#4340]({{ site.repository }}/issues/4340)) +- Remove ObectSpace dumping and start using inherited, it's faster. ([#4342]({{ site.repository }}/issues/4342)) +- Add script/travis so all people can play with Travis-CI images. ([#4338]({{ site.repository }}/issues/4338)) +- Move Cucumber to using RSpec-Expections and furthering JRuby support. ([#4343]({{ site.repository }}/issues/4343)) +- Rearrange Cucumber and add some flair. ([#4347]({{ site.repository }}/issues/4347)) +- Remove old FIXME ([#4349]({{ site.repository }}/issues/4349)) +- Clean up the Gemfile (and keep all the necessary dependencies) ([#4350]({{ site.repository }}/issues/4350)) + +### Site Enhancements +{: #site-enhancements-v3-1-0} + +- Add three plugins to directory ([#4163]({{ site.repository }}/issues/4163)) +- Add upgrading docs from 2.x to 3.x ([#4157]({{ site.repository }}/issues/4157)) +- Add `protect_email` to the plugins index. ([#4169]({{ site.repository }}/issues/4169)) +- Add `jekyll-deploy` to list of third-party plugins ([#4179]({{ site.repository }}/issues/4179)) +- Clarify plugin docs ([#4154]({{ site.repository }}/issues/4154)) +- Add Kickster to deployment methods in documentation ([#4190]({{ site.repository }}/issues/4190)) +- Add DavidBurela's tutorial for Windows to Windows docs page ([#4210]({{ site.repository }}/issues/4210)) +- Change GitHub code block to highlight tag to avoid it overlaps parent div ([#4121]({{ site.repository }}/issues/4121)) +- Update FormKeep link to be something more specific to Jekyll ([#4243]({{ site.repository }}/issues/4243)) +- Remove example Roger Chapman site, as the domain doesn't exist ([#4249]({{ site.repository }}/issues/4249)) +- Added configuration options for `draft_posts` to configuration docs ([#4251]({{ site.repository }}/issues/4251)) +- Fix checklist in `_assets.md` ([#4259]({{ site.repository }}/issues/4259)) +- Add Markdown examples to Pages docs ([#4275]({{ site.repository }}/issues/4275)) +- Add jekyll-paginate-category to list of third-party plugins ([#4273]({{ site.repository }}/issues/4273)) +- Add `jekyll-responsive_image` to list of third-party plugins ([#4286]({{ site.repository }}/issues/4286)) +- Add `jekyll-commonmark` to list of third-party plugins ([#4299]({{ site.repository }}/issues/4299)) +- Add documentation for incremental regeneration ([#4293]({{ site.repository }}/issues/4293)) +- Add note about removal of relative permalink support in upgrading docs ([#4303]({{ site.repository }}/issues/4303)) +- Add Pro Tip to use front matter variable to create clean URLs ([#4296]({{ site.repository }}/issues/4296)) +- Fix grammar in the documentation for posts. ([#4330]({{ site.repository }}/issues/4330)) +- Add documentation for smartify Liquid filter ([#4333]({{ site.repository }}/issues/4333)) +- Fixed broken link to blog on using mathjax with jekyll ([#4344]({{ site.repository }}/issues/4344)) +- Documentation: correct reference in Precedence section of Configuration docs ([#4355]({{ site.repository }}/issues/4355)) +- Add @jmcglone's guide to github-pages doc page ([#4364]({{ site.repository }}/issues/4364)) +- Added the Wordpress2Jekyll Wordpress plugin ([#4377]({{ site.repository }}/issues/4377)) +- Add Contentful Extension to list of third-party plugins ([#4390]({{ site.repository }}/issues/4390)) +- Correct Minor spelling error ([#4394]({{ site.repository }}/issues/4394)) + + +## 3.0.5 / 2016-04-26 +{: #v3-0-5} + +- Remove call to `#backwards_compatibilize` in `Configuration.from` ([#4846]({{ site.repository }}/issues/4846)) + + +## 3.0.4 / 2016-04-18 +{: #v3-0-4} + +- Fix defaults for Documents to lookup defaults based on `relative_path` instead of `url` ([#4806]({{ site.repository }}/issues/4806)) +- Configuration: allow users to specify a `collections.posts.permalink` directly without `permalink` clobbering it ([#4753]({{ site.repository }}/issues/4753)) + + +## 3.0.3 / 2016-02-08 +{: #v3-0-3} + +### Bug Fixes +{: #bug-fixes-v3-0-3} + +- Fix extension weirdness with folders ([#4493]({{ site.repository }}/issues/4493)) +- EntryFilter: only include 'excluded' log on excluded files ([#4479]({{ site.repository }}/issues/4479)) +- `Jekyll.sanitized_path`: escape tildes before sanitizing a questionable path ([#4468]({{ site.repository }}/issues/4468)) +- `LiquidRenderer#parse`: parse with line numbers ([#4453]({{ site.repository }}/issues/4453)) +- `Document#<=>`: protect against nil comparison in dates. ([#4446]({{ site.repository }}/issues/4446)) + + +## 3.0.2 / 2016-01-20 +{: #v3-0-2} + +### Bug Fixes +{: #bug-fixes-v3-0-2} + +- Document: throw a useful error when an invalid date is given ([#4378]({{ site.repository }}/issues/4378)) + + +## 3.0.1 / 2015-11-17 +{: #v3-0-1} + +### Bug Fixes +{: #bug-fixes-v3-0-1} + +- Document: only superdirectories of the collection are categories ([#4110]({{ site.repository }}/issues/4110)) +- `Convertible#render_liquid` should use `render!` to cause failure on bad Liquid ([#4077]({{ site.repository }}/issues/4077)) +- Don't generate `.jekyll-metadata` in non-incremental build ([#4079]({{ site.repository }}/issues/4079)) +- Set `highlighter` config val to `kramdown.syntax_highlighter` ([#4090]({{ site.repository }}/issues/4090)) +- Align hooks implementation with documentation ([#4104]({{ site.repository }}/issues/4104)) +- Fix the deprecation warning in the doctor command ([#4114]({{ site.repository }}/issues/4114)) +- Fix case in `:title` and add `:slug` which is downcased ([#4100]({{ site.repository }}/issues/4100)) + +### Development Fixes +{: #development-fixes-v3-0-1} + +- Fix test warnings when doing rake {test,spec} or script/test ([#4078]({{ site.repository }}/issues/4078)) + +### Site Enhancements +{: #site-enhancements-v3-0-1} + +- Update normalize.css to v3.0.3. ([#4085]({{ site.repository }}/issues/4085)) +- Update Font Awesome to v4.4.0. ([#4086]({{ site.repository }}/issues/4086)) +- Adds a note about installing the jekyll-gist gem to make gist tag work ([#4101]({{ site.repository }}/issues/4101)) +- Align hooks documentation with implementation ([#4104]({{ site.repository }}/issues/4104)) +- Add Jekyll Flickr Plugin to the list of third party plugins ([#4111]({{ site.repository }}/issues/4111)) +- Remove link to now-deleted blog post ([#4125]({{ site.repository }}/issues/4125)) +- Update the liquid syntax in the pagination docs ([#4130]({{ site.repository }}/issues/4130)) +- Add jekyll-language-plugin to plugins.md ([#4134]({{ site.repository }}/issues/4134)) +- Updated to reflect feedback in [#4129]({{ site.repository }}/issues/4129) ([#4137]({{ site.repository }}/issues/4137)) +- Clarify assets.md based on feedback of [#4129]({{ site.repository }}/issues/4129) ([#4142]({{ site.repository }}/issues/4142)) +- Re-correct the liquid syntax in the pagination docs ([#4140]({{ site.repository }}/issues/4140)) + + +## 3.0.0 / 2015-10-26 +{: #v3-0-0} + +### Major Enhancements +{: #major-enhancements-v3-0-0} + +- Liquid profiler (i.e. know how fast or slow your templates render) ([#3762]({{ site.repository }}/issues/3762)) +- Incremental regeneration ([#3116]({{ site.repository }}/issues/3116)) +- Add Hooks: a new kind of plugin ([#3553]({{ site.repository }}/issues/3553)) +- Upgrade to Liquid 3.0.0 ([#3002]({{ site.repository }}/issues/3002)) +- `site.posts` is now a Collection instead of an Array ([#4055]({{ site.repository }}/issues/4055)) +- Add basic support for JRuby (commit: 0f4477) +- Drop support for Ruby 1.9.3. ([#3235]({{ site.repository }}/issues/3235)) +- Support Ruby v2.2 ([#3234]({{ site.repository }}/issues/3234)) +- Support RDiscount 2 ([#2767]({{ site.repository }}/issues/2767)) +- Remove most runtime deps ([#3323]({{ site.repository }}/issues/3323)) +- Move to Rouge as default highlighter ([#3323]({{ site.repository }}/issues/3323)) +- Mimic GitHub Pages `.html` extension stripping behavior in WEBrick ([#3452]({{ site.repository }}/issues/3452)) +- Always include file extension on output files ([#3490]({{ site.repository }}/issues/3490)) +- Improved permalinks for pages and collections ([#3538]({{ site.repository }}/issues/3538)) +- Sunset (i.e. remove) Maruku ([#3655]({{ site.repository }}/issues/3655)) +- Remove support for relative permalinks ([#3679]({{ site.repository }}/issues/3679)) +- Iterate over `site.collections` as an array instead of a hash. ([#3670]({{ site.repository }}/issues/3670)) +- Adapt StaticFile for collections, config defaults ([#3823]({{ site.repository }}/issues/3823)) +- Add a Code of Conduct for the Jekyll project ([#3925]({{ site.repository }}/issues/3925)) +- Added permalink time variables ([#3990]({{ site.repository }}/issues/3990)) +- Add `--incremental` flag to enable incremental regen (disabled by default) ([#4059]({{ site.repository }}/issues/4059)) + +### Minor Enhancements +{: #minor-enhancements-v3-0-0} + +- Deprecate access to Document#data properties and Collection#docs methods ([#4058]({{ site.repository }}/issues/4058)) +- Sort static files just once, and call `site_payload` once for all collections ([#3204]({{ site.repository }}/issues/3204)) +- Separate `jekyll docs` and optimize external gem handling ([#3241]({{ site.repository }}/issues/3241)) +- Improve `Site#getConverterImpl` and call it `Site#find_converter_instance` ([#3240]({{ site.repository }}/issues/3240)) +- Use relative path for `path` Liquid variable in Documents for consistency ([#2908]({{ site.repository }}/issues/2908)) +- Generalize `Utils#slugify` for any scripts ([#3047]({{ site.repository }}/issues/3047)) +- Added basic microdata to post template in site template ([#3189]({{ site.repository }}/issues/3189)) +- Store log messages in an array of messages. ([#3244]({{ site.repository }}/issues/3244)) +- Allow collection documents to override `output` property in front matter ([#3172]({{ site.repository }}/issues/3172)) +- Keep file modification times between builds for static files ([#3220]({{ site.repository }}/issues/3220)) +- Only downcase mixed-case categories for the URL ([#2571]({{ site.repository }}/issues/2571)) +- Added per post `excerpt_separator` functionality ([#3274]({{ site.repository }}/issues/3274)) +- Allow collections YAML to end with three dots ([#3134]({{ site.repository }}/issues/3134)) +- Add mode parameter to `slugify` Liquid filter ([#2918]({{ site.repository }}/issues/2918)) +- Perf: `Markdown#matches` should avoid regexp ([#3321]({{ site.repository }}/issues/3321)) +- Perf: Use frozen regular expressions for `Utils#slugify` ([#3321]({{ site.repository }}/issues/3321)) +- Split off Textile support into jekyll-textile-converter ([#3319]({{ site.repository }}/issues/3319)) +- Improve the navigation menu alignment in the site template on small screens ([#3331]({{ site.repository }}/issues/3331)) +- Show the regeneration time after the initial generation ([#3378]({{ site.repository }}/issues/3378)) +- Site template: Switch default font to Helvetica Neue ([#3376]({{ site.repository }}/issues/3376)) +- Make the `include` tag a teensy bit faster. ([#3391]({{ site.repository }}/issues/3391)) +- Add `pkill -f jekyll` to ways to kill. ([#3397]({{ site.repository }}/issues/3397)) +- Site template: collapsed, variable-driven font declaration ([#3360]({{ site.repository }}/issues/3360)) +- Site template: Don't always show the scrollbar in code blocks ([#3419]({{ site.repository }}/issues/3419)) +- Site template: Remove undefined `text` class from `p` element ([#3440]({{ site.repository }}/issues/3440)) +- Site template: Optimize text rendering for legibility ([#3382]({{ site.repository }}/issues/3382)) +- Add `draft?` method to identify if Post is a Draft & expose to Liquid ([#3456]({{ site.repository }}/issues/3456)) +- Write regeneration metadata even on full rebuild ([#3464]({{ site.repository }}/issues/3464)) +- Perf: Use `String#end_with?("/")` instead of regexp when checking paths ([#3516]({{ site.repository }}/issues/3516)) +- Docs: document 'ordinal' built-in permalink style ([#3532]({{ site.repository }}/issues/3532)) +- Upgrade liquid-c to 3.x ([#3531]({{ site.repository }}/issues/3531)) +- Use consistent syntax for deprecation warning ([#3535]({{ site.repository }}/issues/3535)) +- Added build --destination and --source flags ([#3418]({{ site.repository }}/issues/3418)) +- Site template: remove unused `page.meta` attribute ([#3537]({{ site.repository }}/issues/3537)) +- Improve the error message when sorting null objects ([#3520]({{ site.repository }}/issues/3520)) +- Added liquid-md5 plugin ([#3598]({{ site.repository }}/issues/3598)) +- Documentation: RR replaced with RSpec Mocks ([#3600]({{ site.repository }}/issues/3600)) +- Documentation: Fix subpath. ([#3599]({{ site.repository }}/issues/3599)) +- Create 'tmp' dir for test_tags if it doesn't exist ([#3609]({{ site.repository }}/issues/3609)) +- Extract reading of data from `Site` to reduce responsibilities. ([#3545]({{ site.repository }}/issues/3545)) +- Removed the word 'Jekyll' a few times from the comments ([#3617]({{ site.repository }}/issues/3617)) +- `bin/jekyll`: with no args, exit with exit code 1 ([#3619]({{ site.repository }}/issues/3619)) +- Incremental build if destination file missing ([#3614]({{ site.repository }}/issues/3614)) +- Static files `mtime` liquid should return a `Time` obj ([#3596]({{ site.repository }}/issues/3596)) +- Use `Jekyll::Post`s for both LSI indexing and lookup. ([#3629]({{ site.repository }}/issues/3629)) +- Add `charset=utf-8` for HTML and XML pages in WEBrick ([#3649]({{ site.repository }}/issues/3649)) +- Set log level to debug when verbose flag is set ([#3665]({{ site.repository }}/issues/3665)) +- Added a mention on the Gemfile to complete the instructions ([#3671]({{ site.repository }}/issues/3671)) +- Perf: Cache `Document#to_liquid` and invalidate where necessary ([#3693]({{ site.repository }}/issues/3693)) +- Perf: `Jekyll::Cleaner#existing_files`: Call `keep_file_regex` and `keep_dirs` only once, not once per iteration ([#3696]({{ site.repository }}/issues/3696)) +- Omit jekyll/jekyll-help from list of resources. ([#3698]({{ site.repository }}/issues/3698)) +- Add basic `jekyll doctor` test to detect fsnotify (OSX) anomalies. ([#3704]({{ site.repository }}/issues/3704)) +- Added talk.jekyllrb.com to "Have questions?" ([#3694]({{ site.repository }}/issues/3694)) +- Performance: Sort files only once ([#3707]({{ site.repository }}/issues/3707)) +- Performance: Marshal metadata ([#3706]({{ site.repository }}/issues/3706)) +- Upgrade highlight wrapper from `div` to `figure` ([#3779]({{ site.repository }}/issues/3779)) +- Upgrade mime-types to `~> 2.6` ([#3795]({{ site.repository }}/issues/3795)) +- Update windows.md with Ruby version info ([#3818]({{ site.repository }}/issues/3818)) +- Make the directory for includes configurable ([#3782]({{ site.repository }}/issues/3782)) +- Rename directory configurations to match `*_dir` convention for consistency ([#3782]({{ site.repository }}/issues/3782)) +- Internal: trigger hooks by owner symbol ([#3871]({{ site.repository }}/issues/3871)) +- Update MIME types from mime-db ([#3933]({{ site.repository }}/issues/3933)) +- Add header to site template `_config.yml` for clarity & direction ([#3997]({{ site.repository }}/issues/3997)) +- Site template: add timezone offset to post date front matter ([#4001]({{ site.repository }}/issues/4001)) +- Make a constant for the regex to find hidden files ([#4032]({{ site.repository }}/issues/4032)) +- Site template: refactor github & twitter icons into includes ([#4049]({{ site.repository }}/issues/4049)) +- Site template: add background to Kramdown Rouge-ified backtick code blocks ([#4053]({{ site.repository }}/issues/4053)) -## 1.4.2 / 2013-12-16 +### Bug Fixes +{: #bug-fixes-v3-0-0} + +- `post_url`: fix access deprecation warning & fix deprecation msg ([#4060]({{ site.repository }}/issues/4060)) +- Perform jekyll-paginate deprecation warning correctly. ([#3580]({{ site.repository }}/issues/3580)) +- Make permalink parsing consistent with pages ([#3014]({{ site.repository }}/issues/3014)) +- `time()`pre-filter method should accept a `Date` object ([#3299]({{ site.repository }}/issues/3299)) +- Remove unneeded end tag for `link` in site template ([#3236]({{ site.repository }}/issues/3236)) +- Kramdown: Use `enable_coderay` key instead of `use_coderay` ([#3237]({{ site.repository }}/issues/3237)) +- Unescape `Document` output path ([#2924]({{ site.repository }}/issues/2924)) +- Fix nav items alignment when on multiple rows ([#3264]({{ site.repository }}/issues/3264)) +- Highlight: Only Strip Newlines/Carriage Returns, not Spaces ([#3278]({{ site.repository }}/issues/3278)) +- Find variables in front matter defaults by searching with relative file path. ([#2774]({{ site.repository }}/issues/2774)) +- Allow variables (e.g `:categories`) in front matter permalinks ([#3320]({{ site.repository }}/issues/3320)) +- Handle nil URL placeholders in permalinks ([#3325]({{ site.repository }}/issues/3325)) +- Template: Fix nav items alignment when in "burger" mode ([#3329]({{ site.repository }}/issues/3329)) +- Template: Remove `!important` from nav SCSS introduced in [#3329]({{ site.repository }}/issues/3329) ([#3375]({{ site.repository }}/issues/3375)) +- The `:title` URL placeholder for collections should be the filename slug. ([#3383]({{ site.repository }}/issues/3383)) +- Trim the generate time diff to just 3 places past the decimal place ([#3415]({{ site.repository }}/issues/3415)) +- The highlight tag should only clip the newlines before and after the *entire* block, not in between ([#3401]({{ site.repository }}/issues/3401)) +- highlight: fix problem with linenos and rouge. ([#3436]({{ site.repository }}/issues/3436)) +- `Site#read_data_file`: read CSV's with proper file encoding ([#3455]({{ site.repository }}/issues/3455)) +- Ignore `.jekyll-metadata` in site template ([#3496]({{ site.repository }}/issues/3496)) +- Template: Point documentation link to the documentation pages ([#3502]({{ site.repository }}/issues/3502)) +- Removed the trailing slash from the example `/blog` baseurl comment ([#3485]({{ site.repository }}/issues/3485)) +- Clear the regenerator cache every time we process ([#3592]({{ site.repository }}/issues/3592)) +- Readd (bring back) minitest-profile ([#3628]({{ site.repository }}/issues/3628)) +- Add WOFF2 font MIME type to Jekyll server MIME types ([#3647]({{ site.repository }}/issues/3647)) +- Be smarter about extracting the extname in `StaticFile` ([#3632]({{ site.repository }}/issues/3632)) +- Process metadata for all dependencies ([#3608]({{ site.repository }}/issues/3608)) +- Show error message if the front matter on a page/post is invalid. ([#3643]({{ site.repository }}/issues/3643)) +- Upgrade redcarpet to 3.2 (Security fix: OSVDB-120415) ([#3652]({{ site.repository }}/issues/3652)) +- Create #mock_expects that goes directly to RSpec Mocks. ([#3658]({{ site.repository }}/issues/3658)) +- Open `.jekyll-metadata` in binary mode to read binary Marshal data ([#3713]({{ site.repository }}/issues/3713)) +- Incremental regeneration: handle deleted, renamed, and moved dependencies ([#3717]({{ site.repository }}/issues/3717)) +- Fix typo on line 19 of pagination.md ([#3760]({{ site.repository }}/issues/3760)) +- Fix it so that 'blog.html' matches 'blog.html' ([#3732]({{ site.repository }}/issues/3732)) +- Remove occasionally-problematic `ensure` in `LiquidRenderer` ([#3811]({{ site.repository }}/issues/3811)) +- Fixed an unclear code comment in site template SCSS ([#3837]({{ site.repository }}/issues/3837)) +- Fix reading of binary metadata file ([#3845]({{ site.repository }}/issues/3845)) +- Remove var collision with site template header menu iteration variable ([#3838]({{ site.repository }}/issues/3838)) +- Change non-existent `hl_linenos` to `hl_lines` to allow passthrough in safe mode ([#3787]({{ site.repository }}/issues/3787)) +- Add missing flag to disable the watcher ([#3820]({{ site.repository }}/issues/3820)) +- Update CI guide to include more direct explanations of the flow ([#3891]({{ site.repository }}/issues/3891)) +- Set `future` to `false` in the default config ([#3892]({{ site.repository }}/issues/3892)) +- filters: `where` should compare stringified versions of input & comparator ([#3935]({{ site.repository }}/issues/3935)) +- Read build options for `jekyll clean` command ([#3828]({{ site.repository }}/issues/3828)) +- Fix [#3970]({{ site.repository }}/issues/3970): Use Gem::Version to compare versions, not `>`. +- Abort if no subcommand. Fixes confusing message. ([#3992]({{ site.repository }}/issues/3992)) +- Whole-post excerpts should match the post content ([#4004]({{ site.repository }}/issues/4004)) +- Change default font weight to 400 to fix bold/strong text issues ([#4050]({{ site.repository }}/issues/4050)) +- Document: Only auto-generate the excerpt if it's not overridden ([#4062]({{ site.repository }}/issues/4062)) +- Utils: `deep_merge_hashes` should also merge `default_proc` (45f69bb) +- Defaults: compare paths in `applies_path?` as `String`s to avoid confusion (7b81f00) - +### Development Fixes +{: #development-fixes-v3-0-0} + +- Remove loader.rb and "modernize" `script/test`. ([#3574]({{ site.repository }}/issues/3574)) +- Improve the grammar in the documentation ([#3233]({{ site.repository }}/issues/3233)) +- Update the LICENSE text to match the MIT license exactly ([#3253]({{ site.repository }}/issues/3253)) +- Update rake task `site:publish` to fix minor bugs. ([#3254]({{ site.repository }}/issues/3254)) +- Switch to shields.io for the README badges. ([#3255]({{ site.repository }}/issues/3255)) +- Use `FileList` instead of `Dir.glob` in `site:publish` rake task ([#3261]({{ site.repository }}/issues/3261)) +- Fix test script to be platform-independent ([#3279]({{ site.repository }}/issues/3279)) +- Instead of symlinking `/tmp`, create and symlink a local `tmp` in the tests ([#3258]({{ site.repository }}/issues/3258)) +- Fix some spacing ([#3312]({{ site.repository }}/issues/3312)) +- Fix comment typo in `lib/jekyll/frontmatter_defaults.rb` ([#3322]({{ site.repository }}/issues/3322)) +- Move all `regenerate?` checking to `Regenerator` ([#3326]({{ site.repository }}/issues/3326)) +- Factor out a `read_data_file` call to keep things clean ([#3380]({{ site.repository }}/issues/3380)) +- Proof the site with CircleCI. ([#3427]({{ site.repository }}/issues/3427)) +- Update LICENSE to 2015. ([#3477]({{ site.repository }}/issues/3477)) +- Upgrade tests to use Minitest ([#3492]({{ site.repository }}/issues/3492)) +- Remove trailing whitespace ([#3497]({{ site.repository }}/issues/3497)) +- Use `fixture_site` for Document tests ([#3511]({{ site.repository }}/issues/3511)) +- Remove adapters deprecation warning ([#3529]({{ site.repository }}/issues/3529)) +- Minor fixes to `url.rb` to follow GitHub style guide ([#3544]({{ site.repository }}/issues/3544)) +- Minor changes to resolve deprecation warnings ([#3547]({{ site.repository }}/issues/3547)) +- Convert remaining textile test documents to markdown ([#3528]({{ site.repository }}/issues/3528)) +- Migrate the tests to use rspec-mocks ([#3552]({{ site.repository }}/issues/3552)) +- Remove `activesupport` ([#3612]({{ site.repository }}/issues/3612)) +- Added tests for `Jekyll:StaticFile` ([#3633]({{ site.repository }}/issues/3633)) +- Force minitest version to 5.5.1 ([#3657]({{ site.repository }}/issues/3657)) +- Update the way cucumber accesses Minitest assertions ([#3678]({{ site.repository }}/issues/3678)) +- Add `script/rubyprof` to generate cachegrind callgraphs ([#3692]({{ site.repository }}/issues/3692)) +- Upgrade cucumber to 2.x ([#3795]({{ site.repository }}/issues/3795)) +- Update Kramdown. ([#3853]({{ site.repository }}/issues/3853)) +- Updated the scripts shebang for portability ([#3858]({{ site.repository }}/issues/3858)) +- Update JRuby testing to 9K ([3ab386f](https://github.com/jekyll/jekyll/commit/3ab386f1b096be25a24fe038fc70fd0fb08d545d)) +- Organize dependencies into dev and test groups. ([#3852]({{ site.repository }}/issues/3852)) +- Contributing.md should refer to `script/cucumber` ([#3894]({{ site.repository }}/issues/3894)) +- Update contributing documentation to reflect workflow updates ([#3895]({{ site.repository }}/issues/3895)) +- Add script to vendor mime types ([#3933]({{ site.repository }}/issues/3933)) +- Ignore .bundle dir in SimpleCov ([#4033]({{ site.repository }}/issues/4033)) + +### Site Enhancements +{: #site-enhancements-v3-0-0} + +- Add 'info' labels to certain notes in collections docs ([#3601]({{ site.repository }}/issues/3601)) +- Remove extra spaces, make the last sentence less awkward in permalink docs ([#3603]({{ site.repository }}/issues/3603)) +- Update the permalinks documentation to reflect the updates for 3.0 ([#3556]({{ site.repository }}/issues/3556)) +- Add blog post announcing Jekyll Help ([#3523]({{ site.repository }}/issues/3523)) +- Add Jekyll Talk to Help page on site ([#3518]({{ site.repository }}/issues/3518)) +- Change Ajax pagination resource link to use HTTPS ([#3570]({{ site.repository }}/issues/3570)) +- Fixing the default host on docs ([#3229]({{ site.repository }}/issues/3229)) +- Add `jekyll-thumbnail-filter` to list of third-party plugins ([#2790]({{ site.repository }}/issues/2790)) +- Add link to 'Adding Ajax pagination to Jekyll' to Resources page ([#3186]({{ site.repository }}/issues/3186)) +- Add a Resources link to tutorial on building dynamic navbars ([#3185]({{ site.repository }}/issues/3185)) +- Semantic structure improvements to the post and page layouts ([#3251]({{ site.repository }}/issues/3251)) +- Add new AsciiDoc plugin to list of third-party plugins. ([#3277]({{ site.repository }}/issues/3277)) +- Specify that all transformable collection documents must contain front matter ([#3271]({{ site.repository }}/issues/3271)) +- Assorted accessibility fixes ([#3256]({{ site.repository }}/issues/3256)) +- Update configuration docs to mention `keep_files` for `destination` ([#3288]({{ site.repository }}/issues/3288), [#3296]({{ site.repository }}/issues/3296)) +- Break when we successfully generate nav link to save CPU cycles. ([#3291]({{ site.repository }}/issues/3291)) +- Update usage docs to mention `keep_files` and a warning about `destination` cleaning ([#3295]({{ site.repository }}/issues/3295)) +- Add logic to automatically generate the `next_section` and `prev_section` navigation items ([#3292]({{ site.repository }}/issues/3292)) +- Some small fixes for the Plugins TOC. ([#3306]({{ site.repository }}/issues/3306)) +- Added versioning comment to configuration file ([#3314]({{ site.repository }}/issues/3314)) +- Add `jekyll-minifier` to list of third-party plugins ([#3333]({{ site.repository }}/issues/3333)) +- Add blog post about the Jekyll meet-up ([#3332]({{ site.repository }}/issues/3332)) +- Use `highlight` Liquid tag instead of the four-space tabs for code ([#3336]({{ site.repository }}/issues/3336)) +- 3.0.0.beta1 release post ([#3346]({{ site.repository }}/issues/3346)) +- Add `twa` to the list of third-party plugins ([#3384]({{ site.repository }}/issues/3384)) +- Remove extra spaces ([#3388]({{ site.repository }}/issues/3388)) +- Fix small grammar errors on a couple pages ([#3396]({{ site.repository }}/issues/3396)) +- Fix typo on Templates docs page ([#3420]({{ site.repository }}/issues/3420)) +- s/three/four for plugin type list ([#3424]({{ site.repository }}/issues/3424)) +- Release jekyllrb.com as a locally-compiled site. ([#3426]({{ site.repository }}/issues/3426)) +- Add a jekyllrb.com/help page which elucidates places from which to get help ([#3428]({{ site.repository }}/issues/3428)) +- Remove extraneous dash on Plugins doc page which caused a formatting error ([#3431]({{ site.repository }}/issues/3431)) +- Fix broken link to Jordan Thornquest's website. ([#3438]({{ site.repository }}/issues/3438)) +- Change the link to an extension ([#3457]({{ site.repository }}/issues/3457)) +- Fix Twitter link on the help page ([#3466]({{ site.repository }}/issues/3466)) +- Fix wording in code snippet highlighting section ([#3475]({{ site.repository }}/issues/3475)) +- Add a `/` to `paginate_path` in the Pagination documentation ([#3479]({{ site.repository }}/issues/3479)) +- Add a link on all the docs pages to "Improve this page". ([#3510]({{ site.repository }}/issues/3510)) +- Add jekyll-auto-image generator to the list of third-party plugins ([#3489]({{ site.repository }}/issues/3489)) +- Replace link to the proposed `picture` element spec ([#3530]({{ site.repository }}/issues/3530)) +- Add front matter date formatting information ([#3469]({{ site.repository }}/issues/3469)) +- Improve consistency and clarity of plugins options note ([#3546]({{ site.repository }}/issues/3546)) +- Add permalink warning to pagination docs ([#3551]({{ site.repository }}/issues/3551)) +- Fix grammar in Collections docs API stability warning ([#3560]({{ site.repository }}/issues/3560)) +- Restructure `excerpt_separator` documentation for clarity ([#3550]({{ site.repository }}/issues/3550)) +- Fix accidental line break in collections docs ([#3585]({{ site.repository }}/issues/3585)) +- Add information about the `.jekyll-metadata` file ([#3597]({{ site.repository }}/issues/3597)) +- Document addition of variable parameters to an include ([#3581]({{ site.repository }}/issues/3581)) +- Add `jekyll-files` to the list of third-party plugins. ([#3586]({{ site.repository }}/issues/3586)) +- Define the `install` step in the CI example `.travis.yml` ([#3622]({{ site.repository }}/issues/3622)) +- Expand collections documentation. ([#3638]({{ site.repository }}/issues/3638)) +- Add the "warning" note label to excluding `vendor` in the CI docs page ([#3623]({{ site.repository }}/issues/3623)) +- Upgrade pieces of the Ugrading guide for Jekyll 3 ([#3607]({{ site.repository }}/issues/3607)) +- Showing how to access specific data items ([#3468]({{ site.repository }}/issues/3468)) +- Clarify pagination works from within HTML files ([#3467]({{ site.repository }}/issues/3467)) +- Add note to `excerpt_separator` documentation that it can be set globally ([#3667]({{ site.repository }}/issues/3667)) +- Fix some names on Troubleshooting page ([#3683]({{ site.repository }}/issues/3683)) +- Add `remote_file_content` tag plugin to list of third-party plugins ([#3691]({{ site.repository }}/issues/3691)) +- Update the Redcarpet version on the Configuration page. ([#3743]({{ site.repository }}/issues/3743)) +- Update the link in the welcome post to point to Jekyll Talk ([#3745]({{ site.repository }}/issues/3745)) +- Update link for navbars with data attributes tutorial ([#3728]({{ site.repository }}/issues/3728)) +- Add `jekyll-asciinema` to list of third-party plugins ([#3750]({{ site.repository }}/issues/3750)) +- Update pagination example to be agnostic to first pagination dir ([#3763]({{ site.repository }}/issues/3763)) +- Detailed instructions for rsync deployment method ([#3848]({{ site.repository }}/issues/3848)) +- Add Jekyll Portfolio Generator to list of plugins ([#3883]({{ site.repository }}/issues/3883)) +- Add `site.html_files` to variables docs ([#3880]({{ site.repository }}/issues/3880)) +- Add Static Publisher tool to list of deployment methods ([#3865]({{ site.repository }}/issues/3865)) +- Fix a few typos. ([#3897]({{ site.repository }}/issues/3897)) +- Add `jekyll-youtube` to the list of third-party plugins ([#3931]({{ site.repository }}/issues/3931)) +- Add Views Router plugin ([#3950]({{ site.repository }}/issues/3950)) +- Update install docs (Core dependencies, Windows reqs, etc) ([#3769]({{ site.repository }}/issues/3769)) +- Use Jekyll Feed for jekyllrb.com ([#3736]({{ site.repository }}/issues/3736)) +- Add jekyll-umlauts to plugins.md ($3966) +- Troubleshooting: fix broken link, add other mac-specific info ([#3968]({{ site.repository }}/issues/3968)) +- Add a new site for learning purposes ([#3917]({{ site.repository }}/issues/3917)) +- Added documentation for Jekyll environment variables ([#3989]({{ site.repository }}/issues/3989)) +- Fix broken configuration documentation page ([#3994]({{ site.repository }}/issues/3994)) +- Add troubleshooting docs for installing on El Capitan ([#3999]({{ site.repository }}/issues/3999)) +- Add Lazy Tweet Embedding to the list of third-party plugins ([#4015]({{ site.repository }}/issues/4015)) +- Add installation instructions for 2 of 3 options for plugins ([#4013]({{ site.repository }}/issues/4013)) +- Add alternative jekyll gem installation instructions ([#4018]({{ site.repository }}/issues/4018)) +- Fix a few typos and formatting problems. ([#4022]({{ site.repository }}/issues/4022)) +- Fix pretty permalink example ([#4029]({{ site.repository }}/issues/4029)) +- Note that `_config.yml` is not reloaded during regeneration ([#4034]({{ site.repository }}/issues/4034)) +- Apply code block figure syntax to blocks in CONTRIBUTING ([#4046]({{ site.repository }}/issues/4046)) +- Add jekyll-smartify to the list of third-party plugins ([#3572]({{ site.repository }}/issues/3572)) + + +## 2.5.3 / 2014-12-22 +{: #v2-5-3} ### Bug Fixes -- Turn on Maruku fenced code blocks by default ([#1830]({{ site.repository }}/issues/1830)) +{: #bug-fixes-v2-5-3} + +- When checking a Markdown extname, include position of the `.` ([#3147]({{ site.repository }}/issues/3147)) +- Fix `jsonify` Liquid filter handling of boolean values ([#3154]({{ site.repository }}/issues/3154)) +- Add comma to value of `viewport` meta tag ([#3170]({{ site.repository }}/issues/3170)) +- Set the link type for the RSS feed to `application/rss+xml` ([#3176]({{ site.repository }}/issues/3176)) +- Refactor `#as_liquid` ([#3158]({{ site.repository }}/issues/3158)) + +### Development Fixes +{: #development-fixes-v2-5-3} + +- Exclude built-in bundles from being added to coverage report ([#3180]({{ site.repository }}/issues/3180)) + +### Site Enhancements +{: #site-enhancements-v2-5-3} + +- Add @alfredxing to the @jekyll/core team. :tada: ([#3218]({{ site.repository }}/issues/3218)) +- Document the `-q` option for the `build` and `serve` commands ([#3149]({{ site.repository }}/issues/3149)) +- Fix some minor typos/flow fixes in documentation website content ([#3165]({{ site.repository }}/issues/3165)) +- Add `keep_files` to configuration documentation ([#3162]({{ site.repository }}/issues/3162)) +- Repeat warning about cleaning of the `destination` directory ([#3161]({{ site.repository }}/issues/3161)) +- Add jekyll-500px-embed to list of third-party plugins ([#3163]({{ site.repository }}/issues/3163)) +- Simplified platform detection in Gemfile example for Windows ([#3177]({{ site.repository }}/issues/3177)) +- Add the `jekyll-jalali` plugin added to the list of third-party plugins. ([#3198]({{ site.repository }}/issues/3198)) +- Add Table of Contents to Troubleshooting page ([#3196]({{ site.repository }}/issues/3196)) +- Add `inline_highlight` plugin to list of third-party plugins ([#3212]({{ site.repository }}/issues/3212)) +- Add `jekyll-mermaid` plugin to list of third-party plugins ([#3222]({{ site.repository }}/issues/3222)) + + +## 2.5.2 / 2014-11-17 +{: #v2-5-2} + +### Minor Enhancements +{: #minor-enhancements-v2-5-2} + +- `post_url` should match `post.name` instead of slugs and dates ([#3058]({{ site.repository }}/issues/3058)) - +{: #bug-fixes-v2-5-2} -## 1.4.1 / 2013-12-09 +- Fix bundle require for `:jekyll_plugins` ([#3119]({{ site.repository }}/issues/3119)) +- Remove duplicate regexp phrase: `^\A` ([#3089]({{ site.repository }}/issues/3089)) +- Remove duplicate `Conversion error:` message in `Convertible` ([#3088]({{ site.repository }}/issues/3088)) +- Print full conversion error message in `Renderer#convert` ([#3090]({{ site.repository }}/issues/3090)) - +### Site Enhancements +{: #site-enhancements-v2-5-2} + +- Change variable names in Google Analytics script ([#3093]({{ site.repository }}/issues/3093)) +- Mention CSV files in the docs for data files ([#3101]({{ site.repository }}/issues/3101)) +- Add trailing slash to `paginate_path` example. ([#3091]({{ site.repository }}/issues/3091)) +- Get rid of noifniof (`excerpt_separator`) ([#3094]({{ site.repository }}/issues/3094)) +- Sass improvements, around nesting mostly. ([#3123]({{ site.repository }}/issues/3123)) +- Add webmentions.io plugin to the list of third-party plugins ([#3127]({{ site.repository }}/issues/3127)) +- Add Sass mixins and use them. ([#2904]({{ site.repository }}/issues/2904)) +- Slightly compress jekyll-sticker.jpg. ([#3133]({{ site.repository }}/issues/3133)) +- Update gridism and separate out related but custom styles. ([#3132]({{ site.repository }}/issues/3132)) +- Add remote-include plugin to list of third-party plugins ([#3136]({{ site.repository }}/issues/3136)) + + +## 2.5.1 / 2014-11-09 +{: #v2-5-1} + +### Bug Fixes +{: #bug-fixes-v2-5-1} + +- Fix path sanitation bug related to Windows drive names ([#3077]({{ site.repository }}/issues/3077)) + +### Development Fixes +{: #development-fixes-v2-5-1} + +- Add development time dependencies on minitest and test-unit to gemspec for cygwin ([#3064]({{ site.repository }}/issues/3064)) +- Use Travis's built-in caching. ([#3075]({{ site.repository }}/issues/3075)) + + +## 2.5.0 / 2014-11-06 +{: #v2-5-0} + +### Minor Enhancements +{: #minor-enhancements-v2-5-0} + +- Require gems in `:jekyll_plugins` Gemfile group unless `JEKYLL_NO_BUNDLER_REQUIRE` is specified in the environment. ([#2865]({{ site.repository }}/issues/2865)) +- Centralize path sanitation in the `Site` object ([#2882]({{ site.repository }}/issues/2882)) +- Allow placeholders in permalinks ([#3031]({{ site.repository }}/issues/3031)) +- Allow users to specify the log level via `JEKYLL_LOG_LEVEL`. ([#3067]({{ site.repository }}/issues/3067)) +- Fancy Indexing with WEBrick ([#3018]({{ site.repository }}/issues/3018)) +- Allow Enumerables to be used with `where` filter. ([#2986]({{ site.repository }}/issues/2986)) +- Meta descriptions in the site template now use `page.excerpt` if it's available ([#2964]({{ site.repository }}/issues/2964)) +- Change indentation in `head.html` of site template to 2 spaces from 4 ([#2973]({{ site.repository }}/issues/2973)) +- Use a `$content-width` variable instead of a fixed value in the site template CSS ([#2972]({{ site.repository }}/issues/2972)) +- Strip newlines in site template `` description. ([#2982]({{ site.repository }}/issues/2982)) +- Add link to atom feed in `head` of site template files ([#2996]({{ site.repository }}/issues/2996)) +- Performance optimizations ([#2994]({{ site.repository }}/issues/2994)) +- Use `Hash#each_key` instead of `Hash#keys.each` to speed up iteration over hash keys. ([#3017]({{ site.repository }}/issues/3017)) +- Further minor performance enhancements. ([#3022]({{ site.repository }}/issues/3022)) +- Add 'b' and 's' aliases for build and serve, respectively ([#3065]({{ site.repository }}/issues/3065)) + +### Bug Fixes +{: #bug-fixes-v2-5-0} + +- Fix Rouge's RedCarpet plugin interface integration ([#2951]({{ site.repository }}/issues/2951)) +- Remove `--watch` from the site template blog post since it defaults to watching in in 2.4.0 ([#2922]({{ site.repository }}/issues/2922)) +- Fix code for media query mixin in site template ([#2946]({{ site.repository }}/issues/2946)) +- Allow post URLs to have `.htm` extensions ([#2925]({{ site.repository }}/issues/2925)) +- `Utils.slugify`: Don't create new objects when gsubbing ([#2997]({{ site.repository }}/issues/2997)) +- The jsonify filter should deep-convert to Liquid when given an Array. ([#3032]({{ site.repository }}/issues/3032)) +- Apply `jsonify` filter to Hashes deeply and effectively ([#3063]({{ site.repository }}/issues/3063)) +- Use `127.0.0.1` as default host instead of `0.0.0.0` ([#3053]({{ site.repository }}/issues/3053)) +- In the case that a Gemfile does not exist, ensure Jekyll doesn't fail on requiring the Gemfile group ([#3066]({{ site.repository }}/issues/3066)) + +### Development Fixes +{: #development-fixes-v2-5-0} + +- Fix a typo in the doc block for `Jekyll::URL.escape_path` ([#3052]({{ site.repository }}/issues/3052)) +- Add integration test for `jekyll new --blank` in TestUnit ([#2913]({{ site.repository }}/issues/2913)) +- Add unit test for `jekyll new --force` logic ([#2929]({{ site.repository }}/issues/2929)) +- Update outdated comment for `Convertible#transform` ([#2957]({{ site.repository }}/issues/2957)) +- Add Hakiri badge to README. ([#2953]({{ site.repository }}/issues/2953)) +- Add some simple benchmarking tools. ([#2993]({{ site.repository }}/issues/2993)) + +### Site Enhancements +{: #site-enhancements-v2-5-0} + +- `NOKOGIRI_USE_SYSTEM_LIBRARIES=true` **decreases** installation time. ([#3040]({{ site.repository }}/issues/3040)) +- Add FormKeep to resources as Jekyll form backend ([#3010]({{ site.repository }}/issues/3010)) +- Fixing a mistake in the name of the new Liquid tag ([#2969]({{ site.repository }}/issues/2969)) +- Update Font Awesome to v4.2.0. ([#2898]({{ site.repository }}/issues/2898)) +- Fix link to [#2895]({{ site.repository }}/issues/2895) in 2.4.0 release post. ([#2899]({{ site.repository }}/issues/2899)) +- Add Big Footnotes for Kramdown plugin to list of third-party plugins ([#2916]({{ site.repository }}/issues/2916)) +- Remove warning regarding GHP use of singular types for front matter defaults ([#2919]({{ site.repository }}/issues/2919)) +- Fix quote character typo in site documentation for templates ([#2917]({{ site.repository }}/issues/2917)) +- Point Liquid links to Liquid’s GitHub wiki ([#2887]({{ site.repository }}/issues/2887)) +- Add HTTP Basic Auth (.htaccess) plugin to list of third-party plugins ([#2931]({{ site.repository }}/issues/2931)) +- (Minor) Grammar & `_config.yml` filename fixes ([#2911]({{ site.repository }}/issues/2911)) +- Added `mathml.rb` to the list of third-party plugins. ([#2937]({{ site.repository }}/issues/2937)) +- Add `--force_polling` to the list of configuration options ([#2943]({{ site.repository }}/issues/2943)) +- Escape unicode characters in site CSS ([#2906]({{ site.repository }}/issues/2906)) +- Add note about using the github-pages gem via pages.github.com/versions.json ([#2939]({{ site.repository }}/issues/2939)) +- Update usage documentation to reflect 2.4 auto-enabling of `--watch`. ([#2954]({{ site.repository }}/issues/2954)) +- Add `--skip-initial-build` to configuration docs ([#2949]({{ site.repository }}/issues/2949)) +- Fix a minor typo in Templates docs page ([#2959]({{ site.repository }}/issues/2959)) +- Add a ditaa-ditaa plugin under Other section on the Plugins page ([#2967]({{ site.repository }}/issues/2967)) +- Add `build/serve -V` option to configuration documentation ([#2948]({{ site.repository }}/issues/2948)) +- Add 'Jekyll Twitter Plugin' to list of third-party plugins ([#2979]({{ site.repository }}/issues/2979)) +- Docs: Update normalize.css to v3.0.2. ([#2981]({{ site.repository }}/issues/2981)) +- Fix typo in Continuous Integration documentation ([#2984]({{ site.repository }}/issues/2984)) +- Clarify behavior of `:categories` in permalinks ([#3011]({{ site.repository }}/issues/3011)) + + +## 2.4.0 / 2014-09-09 +{: #v2-4-0} + +### Minor Enhancements +{: #minor-enhancements-v2-4-0} + +- Support a new `relative_include` tag ([#2870]({{ site.repository }}/issues/2870)) +- Auto-enable watch on 'serve' ([#2858]({{ site.repository }}/issues/2858)) +- Render Liquid in CoffeeScript files ([#2830]({{ site.repository }}/issues/2830)) +- Array Liquid filters: `push`, `pop`, `unshift`, `shift` ([#2895]({{ site.repository }}/issues/2895)) +- Add `:title` to collection URL template fillers ([#2864]({{ site.repository }}/issues/2864)) +- Add support for CSV files in the `_data` directory ([#2761]({{ site.repository }}/issues/2761)) +- Add the `name` variable to collection permalinks ([#2799]({{ site.repository }}/issues/2799)) +- Add `inspect` liquid filter. ([#2867]({{ site.repository }}/issues/2867)) +- Add a `slugify` Liquid filter ([#2880]({{ site.repository }}/issues/2880)) + +### Bug Fixes +{: #bug-fixes-v2-4-0} + +- Use `Jekyll.sanitized_path` when adding static files to Collections ([#2849]({{ site.repository }}/issues/2849)) +- Fix encoding of `main.scss` in site template ([#2771]({{ site.repository }}/issues/2771)) +- Fix orientation bugs in default site template ([#2862]({{ site.repository }}/issues/2862)) + +### Development Fixes +{: #development-fixes-v2-4-0} + +- Update simplecov gem to 0.9 ([#2748]({{ site.repository }}/issues/2748)) +- Remove `docs/` dir ([#2768]({{ site.repository }}/issues/2768)) +- add class `<< self` idiom to `New` command ([#2817]({{ site.repository }}/issues/2817)) +- Allow Travis to 'parallelize' our tests ([#2859]({{ site.repository }}/issues/2859)) +- Fix test for Liquid rendering in Sass ([#2856]({{ site.repository }}/issues/2856)) +- Fixing "vertycal" typo in site template's `_base.scss` ([#2889]({{ site.repository }}/issues/2889)) + +### Site Enhancements +{: #site-enhancements-v2-4-0} + +- Document the `name` variable for collection permalinks ([#2829]({{ site.repository }}/issues/2829)) +- Adds info about installing jekyll in current dir ([#2839]({{ site.repository }}/issues/2839)) +- Remove deprecated `jekyll-projectlist` plugin from list of third-party plugins ([#2742]({{ site.repository }}/issues/2742)) +- Remove tag plugins that are built in to Jekyll ([#2751]({{ site.repository }}/issues/2751)) +- Add `markdown-writer` package for Atom Editor to list of third-party plugins ([#2763]({{ site.repository }}/issues/2763)) +- Fix typo in site documentation for collections ([#2764]({{ site.repository }}/issues/2764)) +- Fix minor typo on plugins docs page ([#2765]({{ site.repository }}/issues/2765)) +- Replace markdown with HTML in `sass_dir` note on assets page ([#2791]({{ site.repository }}/issues/2791)) +- Fixed "bellow" typo in datafiles docs ([#2879]({{ site.repository }}/issues/2879)) +- Fix code/markdown issue in documentation for variables ([#2877]({{ site.repository }}/issues/2877)) +- Remove Good Include third-party plugin from plugins page ([#2881]({{ site.repository }}/issues/2881)) +- Add some more docs on `include_relative` ([#2884]({{ site.repository }}/issues/2884)) + + +## 2.3.0 / 2014-08-10 +{: #v2-3-0} + +### Minor Enhancements +{: #minor-enhancements-v2-3-0} + +- Allow Convertibles to be converted by >= 1 converters ([#2704]({{ site.repository }}/issues/2704)) +- Allow Sass files to be rendered in Liquid, but never place them in layouts. ([#2733]({{ site.repository }}/issues/2733)) +- Add `jekyll help` command ([#2707]({{ site.repository }}/issues/2707)) +- Use `.scss` for `site_template` styles. ([#2667]({{ site.repository }}/issues/2667)) +- Don't require the `scope` key in front matter defaults ([#2659]({{ site.repository }}/issues/2659)) +- No longer set `permalink: pretty` in the `_config.yml` for the site template ([#2680]({{ site.repository }}/issues/2680)) +- Rework site template to utilize Sass ([#2687]({{ site.repository }}/issues/2687)) +- Notify the user when auto-regeneration is disabled. ([#2696]({{ site.repository }}/issues/2696)) +- Allow partial variables in include tag filename argument ([#2693]({{ site.repository }}/issues/2693)) +- Move instances of `Time.parse` into a Utils method ([#2682]({{ site.repository }}/issues/2682)) +- Ignore subfolders in the `_posts` folder ([#2705]({{ site.repository }}/issues/2705)) REVERTS ([#2633]({{ site.repository }}/issues/2633)) +- Front Matter default types should always be pluralized ([#2732]({{ site.repository }}/issues/2732)) +- Read in static files into `collection.files` as `StaticFile`s ([#2737]({{ site.repository }}/issues/2737)) +- Add `sassify` and `scssify` Liquid filters ([#2739]({{ site.repository }}/issues/2739)) +- Replace `classifier` gem with `classifier-reborn` ([#2721]({{ site.repository }}/issues/2721)) + +### Bug Fixes +{: #bug-fixes-v2-3-0} + +- Use only the last extname when multiple converters exist ([#2722]({{ site.repository }}/issues/2722)) +- Call `#to_liquid` before calling `#to_json` in jsonify filter ([#2729]({{ site.repository }}/issues/2729)) +- Use non padded config in `strftime` to avoid parse string twice ([#2673]({{ site.repository }}/issues/2673)) +- Replace deprecated Ruby methods with undeprecated ones ([#2664]({{ site.repository }}/issues/2664)) +- Catch errors when parsing Post `date` front matter value & produce nice error message ([#2649]({{ site.repository }}/issues/2649)) +- Allow static files in Collections ([#2615]({{ site.repository }}/issues/2615)) +- Fixed typo in `Deprecator#gracefully_require` error message ([#2694]({{ site.repository }}/issues/2694)) +- Remove preemptive loading of the 'classifier' gem. ([#2697]({{ site.repository }}/issues/2697)) +- Use case-insensitive checking for the file extensions when loading config files ([#2718]({{ site.repository }}/issues/2718)) +- When Reading Documents, Respect `encoding` Option ([#2720]({{ site.repository }}/issues/2720)) +- Refactor based on jekyll-watch clean-up. ([#2716]({{ site.repository }}/issues/2716)) +- `Document#to_s` should produce just the content of the document ([#2731]({{ site.repository }}/issues/2731)) + +### Development Fixes +{: #development-fixes-v2-3-0} + +- Only include lib files in the gem ([#2671]({{ site.repository }}/issues/2671)) +- Fix `git diff` command in `proof` script ([#2672]({{ site.repository }}/issues/2672)) +- Make default rake task a multitask so tests run in parallel ([#2735]({{ site.repository }}/issues/2735)) + +### Site Enhancements +{: #site-enhancements-v2-3-0} + +- Use Sass and a Docs Collection ([#2651]({{ site.repository }}/issues/2651)) +- Add `latest_version.txt` file to the site ([#2740]({{ site.repository }}/issues/2740)) +- Be more ambiguous about `page.content`. But more transparent. ([#2522]({{ site.repository }}/issues/2522)) +- Streamlining front matter wording (instead of front-matter/frontmatter) ([#2674]({{ site.repository }}/issues/2674)) +- Add note that source directory cannot be modified in GitHub Pages ([#2669]({{ site.repository }}/issues/2669)) +- Fix links from [#2669]({{ site.repository }}/issues/2669) to be actual HTML. Whoops. ([#2679]({{ site.repository }}/issues/2679)) +- Add link to `jekyll-slim` in list of third-party plugins ([#2689]({{ site.repository }}/issues/2689)) +- Add Barry Clark's Smashing Magazine tutorial to resources page ([#2688]({{ site.repository }}/issues/2688)) +- Reorganize and update default configuration settings ([#2456]({{ site.repository }}/issues/2456)) +- Fixing indentation in the configuration docs about Redcarpet exts ([#2717]({{ site.repository }}/issues/2717)) +- Use `null` in YAML instead of `nil` in default config list ([#2719]({{ site.repository }}/issues/2719)) +- Fix typo in Continuous Integration docs ([#2708]({{ site.repository }}/issues/2708)) + + +## 2.2.0 / 2014-07-29 +{: #v2-2-0} + +### Minor Enhancements +{: #minor-enhancements-v2-2-0} + +- Throw a warning if the specified layout does not exist ([#2620]({{ site.repository }}/issues/2620)) +- Whitelist Pygments options in safe mode ([#2642]({{ site.repository }}/issues/2642)) + +### Bug Fixes +{: #bug-fixes-v2-2-0} + +- Remove unnecessary `Jekyll::Tags::IncludeTag#blank?` method ([#2625]({{ site.repository }}/issues/2625)) +- Categories in the path are ignored ([#2633]({{ site.repository }}/issues/2633)) + +### Development Fixes +{: #development-fixes-v2-2-0} + +- Refactoring Errors & Requires of Third-Party stuff ([#2591]({{ site.repository }}/issues/2591)) +- Add further tests for categories ([#2584]({{ site.repository }}/issues/2584)) +- Proof site with html-proofer on change ([#2605]({{ site.repository }}/issues/2605)) +- Fix up bug in [#2605]({{ site.repository }}/issues/2605) which caused proofing the site not to function ([#2608]({{ site.repository }}/issues/2608)) +- Use `bundle exec` in `script/proof` ([#2610]({{ site.repository }}/issues/2610)) + +### Site Enhancements +{: #site-enhancements-v2-2-0} + +- Update Kramdown urls ([#2588]({{ site.repository }}/issues/2588)) +- Add `Jekyll::AutolinkEmail` and `Jekyll::GitMetadata` to the list of third-party plugins ([#2596]({{ site.repository }}/issues/2596)) +- Fix a bunch of broken links in the site ([#2601]({{ site.repository }}/issues/2601)) +- Replace dead links with working links ([#2611]({{ site.repository }}/issues/2611)) +- Add jekyll-hook to deployment methods ([#2617]({{ site.repository }}/issues/2617)) +- Added kramdown-with-pygments plugin to the list of third-party plugins ([#2623]({{ site.repository }}/issues/2623)) +- Update outdated "Extras" page and remove duplicate documentation ([#2622]({{ site.repository }}/issues/2622)) +- Add co2 plugin to list of third-party plugins ([#2639]({{ site.repository }}/issues/2639)) +- Attempt to clarify the way Sass imports happen ([#2642]({{ site.repository }}/issues/2642)) + + +## 2.1.1 / 2014-07-01 +{: #v2-1-1} + +### Bug Fixes +{: #bug-fixes-v2-1-1} + +- Patch read vulnerabilities for data & confirm none for layouts ([#2563]({{ site.repository }}/issues/2563)) +- Update Maruku dependency to allow use of the latest version ([#2576]({{ site.repository }}/issues/2576)) +- Remove conditional assignment from document URL to prevent stale urls ([#2575]({{ site.repository }}/issues/2575)) + +### Site Enhancements +{: #site-enhancements-v2-1-1} + +- Add vertical margin to `highlight` to separate code blocks ([#2558]({{ site.repository }}/issues/2558)) +- Add `html_pages` to Variables docs ([#2567]({{ site.repository }}/issues/2567)) +- Fixed broken link to Permalinks page ([#2572]({{ site.repository }}/issues/2572)) +- Update link to Windows installation guide ([#2578]({{ site.repository }}/issues/2578)) + + +## 2.1.0 / 2014-06-28 +{: #v2-1-0} + +### Minor Enhancements +{: #minor-enhancements-v2-1-0} + +- Bump to the latest Liquid version, 2.6.1 ([#2495]({{ site.repository }}/issues/2495)) +- Add support for JSON files in the `_data` directory ([#2369]({{ site.repository }}/issues/2369)) +- Allow subclasses to override `EXCERPT_ATTRIBUTES_FOR_LIQUID` ([#2408]({{ site.repository }}/issues/2408)) +- Add `Jekyll.env` and `jekyll.environment` (the Liquid var) ([#2417]({{ site.repository }}/issues/2417)) +- Use `_config.yaml` or `_config.yml` (`.yml` takes precedence) ([#2406]({{ site.repository }}/issues/2406)) +- Override collection url template ([#2418]({{ site.repository }}/issues/2418)) +- Allow subdirectories in `_data` ([#2395]({{ site.repository }}/issues/2395)) +- Extract Pagination Generator into gem: `jekyll-paginate` ([#2455]({{ site.repository }}/issues/2455)) +- Utilize `date_to_rfc822` filter in site template ([#2437]({{ site.repository }}/issues/2437)) +- Add categories, last build datetime, and generator to site template feed ([#2438]({{ site.repository }}/issues/2438)) +- Configurable, replaceable Logger-compliant logger ([#2444]({{ site.repository }}/issues/2444)) +- Extract `gist` tag into a separate gem ([#2469]({{ site.repository }}/issues/2469)) +- Add `collection` attribute to `Document#to_liquid` to access the document's collection label. ([#2436]({{ site.repository }}/issues/2436)) +- Upgrade listen to `2.7.6 <= x < 3.0.0` ([#2492]({{ site.repository }}/issues/2492)) +- Allow configuration of different Twitter and GitHub usernames in site template ([#2485]({{ site.repository }}/issues/2485)) +- Bump Pygments to v0.6.0 ([#2504]({{ site.repository }}/issues/2504)) +- Front matter defaults for documents in collections ([#2419]({{ site.repository }}/issues/2419)) +- Include files with a url which ends in `/` in the `site.html_pages` list ([#2524]({{ site.repository }}/issues/2524)) +- Make `highlight` tag use `language-` prefix in CSS class ([#2511]({{ site.repository }}/issues/2511)) +- Lookup item property via `item#to_liquid` before `#data` or `#[]` in filters ([#2493]({{ site.repository }}/issues/2493)) +- Skip initial build of site on serve with flag ([#2477]({{ site.repository }}/issues/2477)) +- Add support for `hl_lines` in `highlight` tag ([#2532]({{ site.repository }}/issues/2532)) +- Spike out `--watch` flag into a separate gem ([#2550]({{ site.repository }}/issues/2550)) + +### Bug Fixes +{: #bug-fixes-v2-1-0} + +- Liquid `sort` filter should sort even if one of the values is `nil` ([#2345]({{ site.repository }}/issues/2345)) +- Remove padding on `pre code` in the site template CSS ([#2383]({{ site.repository }}/issues/2383)) +- Set `log_level` earlier to silence info level configuration output ([#2393]({{ site.repository }}/issues/2393)) +- Only list pages which have `title` in site template ([#2411]({{ site.repository }}/issues/2411)) +- Accept `Numeric` values for dates, not `Number` values ([#2377]({{ site.repository }}/issues/2377)) +- Prevent code from overflowing container in site template ([#2429]({{ site.repository }}/issues/2429)) +- Encode URLs in UTF-8 when escaping and unescaping ([#2420]({{ site.repository }}/issues/2420)) +- No Layouts or Liquid for Asset Files ([#2431]({{ site.repository }}/issues/2431)) +- Allow front matter defaults to set post categories ([#2373]({{ site.repository }}/issues/2373)) +- Fix command in subcommand deprecation warning ([#2457]({{ site.repository }}/issues/2457)) +- Keep all parent directories of files/dirs in `keep_files` ([#2458]({{ site.repository }}/issues/2458)) +- When using RedCarpet and Rouge without Rouge installed, fixed erroneous error which stated that redcarpet was missing, not rouge. ([#2464]({{ site.repository }}/issues/2464)) +- Ignore *all* directories and files that merit it on auto-generation ([#2459]({{ site.repository }}/issues/2459)) +- Before copying file, explicitly remove the old one ([#2535]({{ site.repository }}/issues/2535)) +- Merge file system categories with categories from YAML. ([#2531]({{ site.repository }}/issues/2531)) +- Deep merge front matter defaults ([#2490]({{ site.repository }}/issues/2490)) +- Ensure exclude and include arrays are arrays of strings ([#2542]({{ site.repository }}/issues/2542)) +- Allow collections to have dots in their filenames ([#2552]({{ site.repository }}/issues/2552)) +- Collections shouldn't try to read in directories as files ([#2552]({{ site.repository }}/issues/2552)) +- Be quiet very quickly. ([#2520]({{ site.repository }}/issues/2520)) + +### Development Fixes +{: #development-fixes-v2-1-0} + +- Test Ruby 2.1.2 instead of 2.1.1 ([#2374]({{ site.repository }}/issues/2374)) +- Add test for sorting UTF-8 characters ([#2384]({{ site.repository }}/issues/2384)) +- Use `https` for GitHub links in documentation ([#2470]({{ site.repository }}/issues/2470)) +- Remove coverage reporting with Coveralls ([#2494]({{ site.repository }}/issues/2494)) +- Fix a bit of missing TomDoc to `Jekyll::Commands::Build#build` ([#2554]({{ site.repository }}/issues/2554)) + +### Site Enhancements +{: #site-enhancements-v2-1-0} + +- Set `timezone` to `America/Los_Angeles` ([#2394]({{ site.repository }}/issues/2394)) +- Improve JavaScript in `anchor_links.html` ([#2368]({{ site.repository }}/issues/2368)) +- Remove note on Quickstart page about default markdown converter ([#2387]({{ site.repository }}/issues/2387)) +- Remove broken link in extras.md to a Maruku fork ([#2401]({{ site.repository }}/issues/2401)) +- Update Font Awesome to v4.1.0. ([#2410]({{ site.repository }}/issues/2410)) +- Fix broken link on Installation page to Templates page ([#2421]({{ site.repository }}/issues/2421)) +- Prevent table from extending parent width in permalink style table ([#2424]({{ site.repository }}/issues/2424)) +- Add collections to info about pagination support ([#2389]({{ site.repository }}/issues/2389)) +- Add `jekyll_github_sample` plugin to list of third-party plugins ([#2463]({{ site.repository }}/issues/2463)) +- Clarify documentation around front matter defaults and add details about defaults for collections. ([#2439]({{ site.repository }}/issues/2439)) +- Add Jekyll Project Version Tag to list of third-party plugins ([#2468]({{ site.repository }}/issues/2468)) +- Use `https` for GitHub links across whole site ([#2470]({{ site.repository }}/issues/2470)) +- Add StickerMule + Jekyll post ([#2476]({{ site.repository }}/issues/2476)) +- Add Jekyll Asset Pipeline Reborn to list of third-party plugins ([#2479]({{ site.repository }}/issues/2479)) +- Add link to jekyll-compress-html to list of third-party plugins ([#2514]({{ site.repository }}/issues/2514)) +- Add Piwigo Gallery to list of third-party plugins ([#2526]({{ site.repository }}/issues/2526)) +- Set `show_drafts` to `false` in default configuration listing ([#2536]({{ site.repository }}/issues/2536)) +- Provide an updated link for Windows installation instructions ([#2544]({{ site.repository }}/issues/2544)) +- Remove `url` from configuration docs ([#2547]({{ site.repository }}/issues/2547)) +- Documentation for Continuous Integration for your Jekyll Site ([#2432]({{ site.repository }}/issues/2432)) + + +## 2.0.3 / 2014-05-08 +{: #v2-0-3} + +### Bug Fixes +{: #bug-fixes-v2-0-3} + +- Properly prefix links in site template with URL or baseurl depending upon need. ([#2319]({{ site.repository }}/issues/2319)) +- Update gist tag comments and error message to require username ([#2326]({{ site.repository }}/issues/2326)) +- Fix `permalink` setting in site template ([#2331]({{ site.repository }}/issues/2331)) +- Don't fail if any of the path objects are nil ([#2325]({{ site.repository }}/issues/2325)) +- Instantiate all descendants for converters and generators, not just direct subclasses ([#2334]({{ site.repository }}/issues/2334)) +- Replace all instances of `site.name` with `site.title` in site template ([#2324]({{ site.repository }}/issues/2324)) +- `Jekyll::Filters#time` now accepts UNIX timestamps in string or number form ([#2339]({{ site.repository }}/issues/2339)) +- Use `item_property` for `where` filter so it doesn't break on collections ([#2359]({{ site.repository }}/issues/2359)) +- Rescue errors thrown so `--watch` doesn't fail ([#2364]({{ site.repository }}/issues/2364)) + +### Site Enhancements +{: #site-enhancements-v2-0-3} + +- Add missing "as" to assets docs page ([#2337]({{ site.repository }}/issues/2337)) +- Update docs to reflect new `baseurl` default ([#2341]({{ site.repository }}/issues/2341)) +- Add links to headers who have an ID. ([#2342]({{ site.repository }}/issues/2342)) +- Use symbol instead of HTML number in `upgrading.md` ([#2351]({{ site.repository }}/issues/2351)) +- Fix link to front matter defaults docs ([#2353]({{ site.repository }}/issues/2353)) +- Fix for `History.markdown` in order to fix history page in docs ([#2363]({{ site.repository }}/issues/2363)) + + +## 2.0.2 / 2014-05-07 +{: #v2-0-2} + +### Bug Fixes +{: #bug-fixes-v2-0-2} + +- Correct use of `url` and `baseurl` in the site template. ([#2317]({{ site.repository }}/issues/2317)) +- Default `baseurl` to `""` ([#2317]({{ site.repository }}/issues/2317)) + +### Site Enhancements +{: #site-enhancements-v2-0-2} + +- Correct docs for the `gist` plugin so it always includes the username. ([#2314]({{ site.repository }}/issues/2314)) +- Clarify new (defaults, `where` filter) features in docs ([#2316]({{ site.repository }}/issues/2316)) + + +## 2.0.1 / 2014-05-06 +{: #v2-0-1} + +### Bug Fixes +{: #bug-fixes-v2-0-1} + +- Require `kramdown` gem instead of `maruku` gem + + +## 2.0.0 / 2014-05-06 +{: #v2-0-0} + +### Major Enhancements +{: #major-enhancements-v2-0-0} + +- Add "Collections" feature ([#2199]({{ site.repository }}/issues/2199)) +- Add gem-based plugin whitelist to safe mode ([#1657]({{ site.repository }}/issues/1657)) +- Replace the commander command line parser with a more robust solution for our needs called `mercenary` ([#1706]({{ site.repository }}/issues/1706)) +- Remove support for Ruby 1.8.x ([#1780]({{ site.repository }}/issues/1780)) +- Move to jekyll/jekyll from mojombo/jekyll ([#1817]({{ site.repository }}/issues/1817)) +- Allow custom markdown processors ([#1872]({{ site.repository }}/issues/1872)) +- Provide support for the Rouge syntax highlighter ([#1859]({{ site.repository }}/issues/1859)) +- Provide support for Sass ([#1932]({{ site.repository }}/issues/1932)) +- Provide a 300% improvement when generating sites that use `Post#next` or `Post#previous` ([#1983]({{ site.repository }}/issues/1983)) +- Provide support for CoffeeScript ([#1991]({{ site.repository }}/issues/1991)) +- Replace Maruku with Kramdown as Default Markdown Processor ([#1988]({{ site.repository }}/issues/1988)) +- Expose `site.static_files` to Liquid ([#2075]({{ site.repository }}/issues/2075)) +- Complete redesign of the template site generated by `jekyll new` ([#2050]({{ site.repository }}/issues/2050)) +- Update Listen from 1.x to 2.x ([#2097]({{ site.repository }}/issues/2097)) +- Front matter defaults ([#2205]({{ site.repository }}/issues/2205)) +- Deprecate `relative_permalinks` configuration option (default to `false`) ([#2307]({{ site.repository }}/issues/2307)) +- Exclude files based on prefix as well as `fnmatch?` ([#2303]({{ site.repository }}/issues/2303)) + +### Minor Enhancements +{: #minor-enhancements-v2-0-0} + +- Move the EntryFilter class into the Jekyll module to avoid polluting the global namespace ([#1800]({{ site.repository }}/issues/1800)) +- Add `group_by` Liquid filter create lists of items grouped by a common property's value ([#1788]({{ site.repository }}/issues/1788)) +- Add support for Maruku's `fenced_code_blocks` option ([#1799]({{ site.repository }}/issues/1799)) +- Update Redcarpet dependency to ~> 3.0 ([#1815]({{ site.repository }}/issues/1815)) +- Automatically sort all pages by name ([#1848]({{ site.repository }}/issues/1848)) +- Better error message when time is not parseable ([#1847]({{ site.repository }}/issues/1847)) +- Allow `include` tag variable arguments to use filters ([#1841]({{ site.repository }}/issues/1841)) +- `post_url` tag should raise `ArgumentError` for invalid name ([#1825]({{ site.repository }}/issues/1825)) +- Bump dependency `mercenary` to `~> 0.2.0` ([#1879]({{ site.repository }}/issues/1879)) +- Bump dependency `safe_yaml` to `~> 1.0` ([#1886]({{ site.repository }}/issues/1886)) +- Allow sorting of content by custom properties ([#1849]({{ site.repository }}/issues/1849)) +- Add `--quiet` flag to silence output during build and serve ([#1898]({{ site.repository }}/issues/1898)) +- Add a `where` filter to filter arrays based on a key/value pair ([#1875]({{ site.repository }}/issues/1875)) +- Route 404 errors to a custom 404 page in development ([#1899]({{ site.repository }}/issues/1899)) +- Excludes are now relative to the site source ([#1916]({{ site.repository }}/issues/1916)) +- Bring MIME Types file for `jekyll serve` to complete parity with GH Pages servers ([#1993]({{ site.repository }}/issues/1993)) +- Adding Breakpoint to make new site template more responsive ([#2038]({{ site.repository }}/issues/2038)) +- Default to using the UTF-8 encoding when reading files. ([#2031]({{ site.repository }}/issues/2031)) +- Update Redcarpet dependency to ~> 3.1 ([#2044]({{ site.repository }}/issues/2044)) +- Remove support for Ruby 1.9.2 ([#2045]({{ site.repository }}/issues/2045)) +- Add `.mkdown` as valid Markdown extension ([#2048]({{ site.repository }}/issues/2048)) +- Add `index.xml` to the list of WEBrick directory index files ([#2041]({{ site.repository }}/issues/2041)) +- Make the `layouts` config key relative to CWD or to source ([#2058]({{ site.repository }}/issues/2058)) +- Update Kramdown to `~> 1.3` ([#1894]({{ site.repository }}/issues/1894)) +- Remove unnecessary references to `self` ([#2090]({{ site.repository }}/issues/2090)) +- Update to Mercenary v0.3.x ([#2085]({{ site.repository }}/issues/2085)) +- Ship Sass support as a separate gem ([#2098]({{ site.repository }}/issues/2098)) +- Extract core extensions into a Utils module ([#2112]({{ site.repository }}/issues/2112)) +- Refactor CLI & Commands For Greater Happiness ([#2143]({{ site.repository }}/issues/2143)) +- Provide useful error when Pygments returns `nil` and error out ([#2148]({{ site.repository }}/issues/2148)) +- Add support for unpublished drafts ([#2164]({{ site.repository }}/issues/2164)) +- Add `force_polling` option to the `serve` command ([#2165]({{ site.repository }}/issues/2165)) +- Clean up the `` in the site template ([#2186]({{ site.repository }}/issues/2186)) +- Permit YAML blocks to end with three dots to better conform with the YAML spec ([#2110]({{ site.repository }}/issues/2110)) +- Use `File.exist?` instead of deprecated `File.exists?` ([#2214]({{ site.repository }}/issues/2214)) +- Require newline after start of front matter header ([#2211]({{ site.repository }}/issues/2211)) +- Add the ability for pages to be marked as `published: false` ([#1492]({{ site.repository }}/issues/1492)) +- Add `Jekyll::LiquidExtensions` with `.lookup_variable` method for easy looking up of variable values in a Liquid context. ([#2253]({{ site.repository }}/issues/2253)) +- Remove literal lang name from class ([#2292]({{ site.repository }}/issues/2292)) +- Return `utf-8` encoding in header for webrick error page response ([#2289]({{ site.repository }}/issues/2289)) +- Make template site easier to customize ([#2268]({{ site.repository }}/issues/2268)) +- Add two-digit year to permalink template option ([#2301]({{ site.repository }}/issues/2301)) +- Add `site.documents` to Liquid payload (list of all docs) ([#2295]({{ site.repository }}/issues/2295)) +- Take into account missing values in the Liquid sort filter ([#2299]({{ site.repository }}/issues/2299)) ### Bug Fixes +{: #bug-fixes-v2-0-0} + - Don't allow nil entries when loading posts ([#1796]({{ site.repository }}/issues/1796)) +- Remove the scrollbar that's always displayed in new sites generated from the site template ([#1805]({{ site.repository }}/issues/1805)) +- Add `#path` to required methods in `Jekyll::Convertible` ([#1866]({{ site.repository }}/issues/1866)) +- Default Maruku fenced code blocks to ON for 2.0.0-dev ([#1831]({{ site.repository }}/issues/1831)) +- Change short opts for host and port for `jekyll docs` to be consistent with other subcommands ([#1877]({{ site.repository }}/issues/1877)) +- Fix typos ([#1910]({{ site.repository }}/issues/1910)) +- Lock Maruku at 0.7.0 to prevent bugs caused by Maruku 0.7.1 ([#1958]({{ site.repository }}/issues/1958)) +- Fixes full path leak to source directory when using include tag ([#1951]({{ site.repository }}/issues/1951)) +- Don't generate pages that aren't being published ([#1931]({{ site.repository }}/issues/1931)) +- Use `SafeYAML.load` to avoid conflicts with other projects ([#1982]({{ site.repository }}/issues/1982)) +- Relative posts should never fail to build ([#1976]({{ site.repository }}/issues/1976)) +- Remove executable bits of non executable files ([#2056]({{ site.repository }}/issues/2056)) +- `#path` for a draft is now `_drafts` instead of `_posts` ([#2042]({{ site.repository }}/issues/2042)) +- Patch a couple show-stopping security vulnerabilities ([#1946]({{ site.repository }}/issues/1946)) +- Sanitize paths uniformly, in a Windows-friendly way ([#2065]({{ site.repository }}/issues/2065), [#2109]({{ site.repository }}/issues/2109)) +- Update gem build steps to work correctly on Windows ([#2118]({{ site.repository }}/issues/2118)) +- Remove obsolete `normalize_options` method call from `bin/jekyll` ([#2121]({{ site.repository }}/issues/2121)) +- Remove `+` characters from Pygments lexer names when adding as a CSS class ([#994]({{ site.repository }}/issues/994)) +- Remove some code that caused Ruby interpreter warnings ([#2178]({{ site.repository }}/issues/2178)) +- Only strip the drive name if it begins the string ([#2175]({{ site.repository }}/issues/2175)) +- Remove default post with invalid date from site template ([#2200]({{ site.repository }}/issues/2200)) +- Fix `Post#url` and `Page#url` escape ([#1568]({{ site.repository }}/issues/1568)) +- Strip newlines from the {% raw %}`{% highlight %}`{% endraw %} block content ([#1823]({{ site.repository }}/issues/1823)) +- Load in `rouge` only when it's been requested as the highlighter ([#2189]({{ site.repository }}/issues/2189)) +- Convert input to string before XML escaping (`xml_escape` liquid filter) ([#2244]({{ site.repository }}/issues/2244)) +- Modify configuration key for Collections and reset properly. ([#2238]({{ site.repository }}/issues/2238)) +- Avoid duplicated output using `highlight` tag ([#2264]({{ site.repository }}/issues/2264)) +- Only use Jekyll.logger for output ([#2307]({{ site.repository }}/issues/2307)) +- Close the file descriptor in `has_yaml_header?` ([#2310]({{ site.repository }}/issues/2310)) +- Add `output` to `Document` liquid output hash ([#2309]({{ site.repository }}/issues/2309)) + +### Development Fixes +{: #development-fixes-v2-0-0} + +- Add a link to the site in the README.md file ([#1795]({{ site.repository }}/issues/1795)) +- Add in History and site changes from `v1-stable` branch ([#1836]({{ site.repository }}/issues/1836)) +- Testing additions on the Excerpt class ([#1893]({{ site.repository }}/issues/1893)) +- Fix the `highlight` tag feature ([#1859]({{ site.repository }}/issues/1859)) +- Test Jekyll under Ruby 2.1.0 ([#1900]({{ site.repository }}/issues/1900)) +- Add script/cibuild for fun and profit ([#1912]({{ site.repository }}/issues/1912)) +- Use `Forwardable` for delegation between `Excerpt` and `Post` ([#1927]({{ site.repository }}/issues/1927)) +- Rename `read_things` to `read_content` ([#1928]({{ site.repository }}/issues/1928)) +- Add `script/branding` script for ASCII art lovin' ([#1936]({{ site.repository }}/issues/1936)) +- Update the README to reflect the repo move ([#1943]({{ site.repository }}/issues/1943)) +- Add the project vision to the README ([#1935]({{ site.repository }}/issues/1935)) +- Speed up Travis CI builds by using Rebund ([#1985]({{ site.repository }}/issues/1985)) +- Use Yarp as a Gem proxy for Travis CI ([#1984]({{ site.repository }}/issues/1984)) +- Remove Yarp as a Gem proxy for Travis CI ([#2004]({{ site.repository }}/issues/2004)) +- Move the reading of layouts into its own class ([#2020]({{ site.repository }}/issues/2020)) +- Test Sass import ([#2009]({{ site.repository }}/issues/2009)) +- Switch Maruku and Kramdown in lists of Runtime vs. Development dependencies ([#2049]({{ site.repository }}/issues/2049)) +- Clean up the gemspec for the project ([#2095]({{ site.repository }}/issues/2095)) +- Add Japanese translation of README and CONTRIBUTING docs. ([#2081]({{ site.repository }}/issues/2081)) +- Re-align the tables in Cucumber ([#2108]({{ site.repository }}/issues/2108)) +- Trim trailing spaces and convert tabs to spaces ([#2122]({{ site.repository }}/issues/2122)) +- Fix the failing Travis scenarios due to Cucumber issues ([#2155]({{ site.repository }}/issues/2155)) +- Wrap `bundle install` in `travis_retry` to retry when RubyGems fails ([#2160]({{ site.repository }}/issues/2160)) +- Refactor tags and categories ([#1639]({{ site.repository }}/issues/1639)) +- Extract plugin management into its own class ([#2197]({{ site.repository }}/issues/2197)) +- Add missing tests for `Command` ([#2216]({{ site.repository }}/issues/2216)) +- Update `rr` link in CONTRIBUTING doc ([#2247]({{ site.repository }}/issues/2247)) +- Streamline Cucumber execution of `jekyll` subcommands ([#2258]({{ site.repository }}/issues/2258)) +- Refactor `Commands::Serve`. ([#2269]({{ site.repository }}/issues/2269)) +- Refactor `highlight` tag ([#2154]({{ site.repository }}/issues/2154)) +- Update `Util` hash functions with latest from Rails ([#2273]({{ site.repository }}/issues/2273)) +- Workaround for Travis bug ([#2290]({{ site.repository }}/issues/2290)) + +### Site Enhancements +{: #site-enhancements-v2-0-0} + +- Document Kramdown's GFM parser option ([#1791]({{ site.repository }}/issues/1791)) +- Move CSS to includes & update normalize.css to v2.1.3 ([#1787]({{ site.repository }}/issues/1787)) +- Minify CSS only in production ([#1803]({{ site.repository }}/issues/1803)) +- Fix broken link to installation of Ruby on Mountain Lion blog post on Troubleshooting docs page ([#1797]({{ site.repository }}/issues/1797)) +- Fix issues with 1.4.1 release blog post ([#1804]({{ site.repository }}/issues/1804)) +- Add note about deploying to OpenShift ([#1812]({{ site.repository }}/issues/1812)) +- Collect all Windows-related docs onto one page ([#1818]({{ site.repository }}/issues/1818)) +- Fixed typo in datafiles doc page ([#1854]({{ site.repository }}/issues/1854)) +- Clarify how to access `site` in docs ([#1864]({{ site.repository }}/issues/1864)) +- Add closing `` tag to `context.registers[:site]` note ([#1867]({{ site.repository }}/issues/1867)) +- Fix link to @mojombo's site source ([#1897]({{ site.repository }}/issues/1897)) +- Add `paginate: nil` to default configuration in docs ([#1896]({{ site.repository }}/issues/1896)) +- Add link to our License in the site footer ([#1889]({{ site.repository }}/issues/1889)) +- Add a charset note in "Writing Posts" doc page ([#1902]({{ site.repository }}/issues/1902)) +- Disallow selection of path and prompt in bash examples +- Add jekyll-compass to the plugin list ([#1923]({{ site.repository }}/issues/1923)) +- Add note in Posts docs about stripping `

` tags from excerpt ([#1933]({{ site.repository }}/issues/1933)) +- Add additional info about the new exclude behavior ([#1938]({{ site.repository }}/issues/1938)) +- Linkify 'awesome contributors' to point to the contributors graph on GitHub ([#1940]({{ site.repository }}/issues/1940)) +- Update `docs/sites.md` link to GitHub Training materials ([#1949]({{ site.repository }}/issues/1949)) +- Update `master` with the release info from 1.4.3 ([#1947]({{ site.repository }}/issues/1947)) +- Define docs nav in datafile ([#1953]({{ site.repository }}/issues/1953)) +- Clarify the docs around the naming convention for posts ([#1971]({{ site.repository }}/issues/1971)) +- Add missing `next` and `previous` docs for post layouts and templates ([#1970]({{ site.repository }}/issues/1970)) +- Add note to `Writing posts` page about how to strip html from excerpt ([#1962]({{ site.repository }}/issues/1962)) +- Add `jekyll-humanize` plugin to plugin list ([#1998]({{ site.repository }}/issues/1998)) +- Add `jekyll-font-awesome` plugin to plugin list ([#1999]({{ site.repository }}/issues/1999)) +- Add `sublime-jekyll` to list of Editor plugins ([#2001]({{ site.repository }}/issues/2001)) +- Add `vim-jekyll` to the list of Editor plugins ([#2005]({{ site.repository }}/issues/2005)) +- Fix non-semantic nesting of `p` tags in `news_item` layout ([#2013]({{ site.repository }}/issues/2013)) +- Document destination folder cleaning ([#2016]({{ site.repository }}/issues/2016)) +- Updated instructions for NearlyFreeSpeech.NET installation ([#2015]({{ site.repository }}/issues/2015)) +- Update link to rack-jekyll on "Deployment Methods" page ([#2047]({{ site.repository }}/issues/2047)) +- Fix typo in /docs/configuration ([#2073]({{ site.repository }}/issues/2073)) +- Fix count in docs for `site.static_files` ([#2077]({{ site.repository }}/issues/2077)) +- Update configuration docs to indicate utf-8 is the default for 2.0.0 and ASCII for 1.9.3 ([#2074]({{ site.repository }}/issues/2074)) +- Add info about unreleased feature to the site ([#2061]({{ site.repository }}/issues/2061)) +- Add whitespace to liquid example in GitHub Pages docs ([#2084]({{ site.repository }}/issues/2084)) +- Clarify the way Sass and CoffeeScript files are read in and output ([#2067]({{ site.repository }}/issues/2067)) +- Add lyche gallery tag plugin link to list of plugins ([#2094]({{ site.repository }}/issues/2094)) +- Add Jekyll Pages Directory plugin to list of plugins ([#2096]({{ site.repository }}/issues/2096)) +- Update Configuration docs page with new markdown extension ([#2102]({{ site.repository }}/issues/2102)) +- Add `jekyll-image-set` to the list of third-party plugins ([#2105]({{ site.repository }}/issues/2105)) +- Losslessly compress images ([#2128]({{ site.repository }}/issues/2128)) +- Update normalize.css to 3.0.0 ([#2126]({{ site.repository }}/issues/2126)) +- Update modernizr to v2.7.1 ([#2129]({{ site.repository }}/issues/2129)) +- Add `jekyll-ordinal` to list of third-party plugins ([#2150]({{ site.repository }}/issues/2150)) +- Add `jekyll_figure` to list of third-party plugins ([#2158]({{ site.repository }}/issues/2158)) +- Clarify the documentation for safe mode ([#2163]({{ site.repository }}/issues/2163)) +- Some HTML tidying ([#2130]({{ site.repository }}/issues/2130)) +- Remove modernizr and use html5shiv.js directly for IE less than v9 ([#2131]({{ site.repository }}/issues/2131)) +- Remove unused images ([#2187]({{ site.repository }}/issues/2187)) +- Use `array_to_sentence_string` filter when outputting news item categories ([#2191]({{ site.repository }}/issues/2191)) +- Add link to Help repo in primary navigation bar ([#2177]({{ site.repository }}/issues/2177)) +- Switch to using an ico file for the shortcut icon ([#2193]({{ site.repository }}/issues/2193)) +- Use numbers to specify font weights and only bring in font weights used ([#2185]({{ site.repository }}/issues/2185)) +- Add a link to the list of all tz database time zones ([#1824]({{ site.repository }}/issues/1824)) +- Clean-up and improve documentation `feed.xml` ([#2192]({{ site.repository }}/issues/2192)) +- Remove duplicate entry in list of third-party plugins ([#2206]({{ site.repository }}/issues/2206)) +- Reduce the whitespace in the favicon. ([#2213]({{ site.repository }}/issues/2213)) +- Add `jekyll-page-collections` to list of third-party plugins ([#2215]({{ site.repository }}/issues/2215)) +- Add a cross-reference about `post_url` ([#2243]({{ site.repository }}/issues/2243)) +- Add `jekyll-live-tiles` to list of third-party plugins ([#2250]({{ site.repository }}/issues/2250)) +- Fixed broken link to GitHub training material site source ([#2257]({{ site.repository }}/issues/2257)) +- Update link to help repo, now called `jekyll-help` ([#2277]({{ site.repository }}/issues/2277)) +- Fix capitalization of 'Jekyll' on Deployment Methods page ([#2291]({{ site.repository }}/issues/2291)) +- Include plugins by sonnym in list of third-party plugins ([#2297]({{ site.repository }}/issues/2297)) +- Add deprecated articles keeper filter to list of third-party plugins ([#2300]({{ site.repository }}/issues/2300)) +- Simplify and improve our CSS. ([#2127]({{ site.repository }}/issues/2127)) +- Use black text color for the mobile navbar ([#2306]({{ site.repository }}/issues/2306)) +- Use the built in date filter and `site.time` for the copyright year. ([#2305]({{ site.repository }}/issues/2305)) +- Update html5shiv to v3.7.2 ([#2304]({{ site.repository }}/issues/2304)) +- Add 2.0.0 release post ([#2298]({{ site.repository }}/issues/2298)) +- Add docs for custom markdown processors ([#2298]({{ site.repository }}/issues/2298)) +- Add docs for `where` and `group_by` Liquid filters ([#2298]({{ site.repository }}/issues/2298)) +- Remove notes in docs for unreleased features ([#2309]({{ site.repository }}/issues/2309)) + + +## 1.5.1 / 2014-03-27 +{: #v1-5-1} + +### Bug Fixes +{: #bug-fixes-v1-5-1} + +- Only strip the drive name if it begins the string ([#2176]({{ site.repository }}/issues/2176)) + + +## 1.5.0 / 2014-03-24 +{: #v1-5-0} + +### Minor Enhancements +{: #minor-enhancements-v1-5-0} + +- Loosen `safe_yaml` dependency to `~> 1.0` ([#2167]({{ site.repository }}/issues/2167)) +- Bump `safe_yaml` dependency to `~> 1.0.0` ([#1942]({{ site.repository }}/issues/1942)) + +### Bug Fixes +{: #bug-fixes-v1-5-0} + +- Fix issue where filesystem traversal restriction broke Windows ([#2167]({{ site.repository }}/issues/2167)) +- Lock `maruku` at `0.7.0` ([#2167]({{ site.repository }}/issues/2167)) + +### Development Fixes +{: #development-fixes-v1-5-0} + +- Lock `cucumber` at `1.3.11` ([#2167]({{ site.repository }}/issues/2167)) + + +## 1.4.3 / 2014-01-13 +{: #v1-4-3} + +### Bug Fixes +{: #bug-fixes-v1-4-3} + +- Patch show-stopping security vulnerabilities ([#1944]({{ site.repository }}/issues/1944)) + + +## 1.4.2 / 2013-12-16 +{: #v1-4-2} + +### Bug Fixes +{: #bug-fixes-v1-4-2} + +- Turn on Maruku fenced code blocks by default ([#1830]({{ site.repository }}/issues/1830)) + + +## 1.4.1 / 2013-12-09 +{: #v1-4-1} - -## 1.4.0 / 2013-12-07 - +{: #v1-4-0} ### Major Enhancements -- Add support for TOML config files ([#1765]({{ site.repository }}/issues/1765)) +{: #major-enhancements-v1-4-0} - ### Minor Enhancements -- Sort plugins as a way to establish a load order ([#1682]({{ site.repository }}/issues/1682)) -- Update Maruku to 0.7.0 ([#1775]({{ site.repository }}/issues/1775)) +{: #minor-enhancements-v1-4-0} - ### Bug Fixes -- Add a space between two words in a Pagination warning message ([#1769]({{ site.repository }}/issues/1769)) -- Upgrade `toml` gem to `v0.1.0` to maintain compat with Ruby 1.8.7 ([#1778]({{ site.repository }}/issues/1778)) +{: #bug-fixes-v1-4-0} - ### Development Fixes -- Remove some whitespace in the code ([#1755]({{ site.repository }}/issues/1755)) -- Remove some duplication in the reading of posts and drafts ([#1779]({{ site.repository }}/issues/1779)) +{: #development-fixes-v1-4-0} - ### Site Enhancements -- Fixed case of a word in the Jekyll v1.3.0 release post ([#1762]({{ site.repository }}/issues/1762)) -- Fixed the mime type for the favicon ([#1772]({{ site.repository }}/issues/1772)) +{: #site-enhancements-v1-4-0} - -## 1.3.1 / 2013-11-26 - +{: #v1-3-1} ### Minor Enhancements -- Add a `--prefix` option to passthrough for the importers ([#1669]({{ site.repository }}/issues/1669)) -- Push the paginator plugin lower in the plugin priority order so - other plugins run before it ([#1759]({{ site.repository }}/issues/1759)) +{: #minor-enhancements-v1-3-1} - +- Push the paginator plugin lower in the plugin priority order so other plugins run before it ([#1759]({{ site.repository }}/issues/1759)) ### Bug Fixes -- Fix the include tag when ran in a loop ([#1726]({{ site.repository }}/issues/1726)) -- Fix errors when using `--watch` on 1.8.7 ([#1730]({{ site.repository }}/issues/1730)) -- Specify where the include is called from if an included file is - missing ([#1746]({{ site.repository }}/issues/1746)) +{: #bug-fixes-v1-3-1} - +- Specify where the include is called from if an included file is missing ([#1746]({{ site.repository }}/issues/1746)) ### Development Fixes -- Extract `Site#filter_entries` into its own object ([#1697]({{ site.repository }}/issues/1697)) -- Enable Travis' bundle caching ([#1734]({{ site.repository }}/issues/1734)) -- Remove trailing whitespace in some files ([#1736]({{ site.repository }}/issues/1736)) -- Fix a duplicate test name ([#1754]({{ site.repository }}/issues/1754)) +{: #development-fixes-v1-3-1} - ### Site Enhancements -- Update link to example Rakefile to point to specific commit ([#1741]({{ site.repository }}/issues/1741)) -- Fix drafts docs to indicate that draft time is based on file modification - time, not `Time.now` ([#1695]({{ site.repository }}/issues/1695)) -- Add `jekyll-monthly-archive-plugin` and `jekyll-category-archive-plugin` to - list of third-party plugins ([#1693]({{ site.repository }}/issues/1693)) -- Add `jekyll-asset-path-plugin` to list of third-party plugins ([#1670]({{ site.repository }}/issues/1670)) -- Add `emoji-for-jekyll` to list of third-part plugins ([#1708]({{ site.repository }}/issues/1708)) -- Fix previous section link on plugins page to point to pagination page ([#1707]({{ site.repository }}/issues/1707)) -- Add `org-mode` converter plugin to third-party plugins ([#1711]({{ site.repository }}/issues/1711)) -- Point "Blog migrations" page to http://import.jekyllrb.com ([#1732]({{ site.repository }}/issues/1732)) -- Add docs for `post_url` when posts are in subdirectories ([#1718]({{ site.repository }}/issues/1718)) -- Update the docs to point to `example.com` ([#1448]({{ site.repository }}/issues/1448)) +{: #site-enhancements-v1-3-1} - -## 1.3.0 / 2013-11-04 - +{: #v1-3-0} ### Major Enhancements -- Add support for adding data as YAML files under a site's `_data` - directory ([#1003]({{ site.repository }}/issues/1003)) -- Allow variables to be used with `include` tags ([#1495]({{ site.repository }}/issues/1495)) -- Allow using gems for plugin management ([#1557]({{ site.repository }}/issues/1557)) +{: #major-enhancements-v1-3-0} - ### Minor Enhancements -- Decrease the specificity in the site template CSS ([#1574]({{ site.repository }}/issues/1574)) -- Add `encoding` configuration option ([#1449]({{ site.repository }}/issues/1449)) -- Provide better error handling for Jekyll's custom Liquid tags - ([#1514]({{ site.repository }}/issues/1514)) -- If an included file causes a Liquid error, add the path to the - include file that caused the error to the error message ([#1596]({{ site.repository }}/issues/1596)) -- If a layout causes a Liquid error, change the error message so that - we know it comes from the layout ([#1601]({{ site.repository }}/issues/1601)) -- Update Kramdown dependency to `~> 1.2` ([#1610]({{ site.repository }}/issues/1610)) -- Update `safe_yaml` dependency to `~> 0.9.7` ([#1602]({{ site.repository }}/issues/1602)) -- Allow layouts to be in subfolders like includes ([#1622]({{ site.repository }}/issues/1622)) -- Switch to listen for site watching while serving ([#1589]({{ site.repository }}/issues/1589)) -- Add a `json` liquid filter to be used in sites ([#1651]({{ site.repository }}/issues/1651)) -- Point people to the migration docs when the `jekyll-import` gem is - missing ([#1662]({{ site.repository }}/issues/1662)) +{: #minor-enhancements-v1-3-0} - +- Point people to the migration docs when the `jekyll-import` gem is missing ([#1662]({{ site.repository }}/issues/1662)) ### Bug Fixes -- Fix up matching against source and destination when the two - locations are similar ([#1556]({{ site.repository }}/issues/1556)) -- Fix the missing `pathname` require in certain cases ([#1255]({{ site.repository }}/issues/1255)) -- Use `+` instead of `Array#concat` when building `Post` attribute list ([#1571]({{ site.repository }}/issues/1571)) -- Print server address when launching a server ([#1586]({{ site.repository }}/issues/1586)) -- Downgrade to Maruku `~> 0.6.0` in order to avoid changes in rendering ([#1598]({{ site.repository }}/issues/1598)) -- Fix error with failing include tag when variable was file name ([#1613]({{ site.repository }}/issues/1613)) -- Downcase lexers before passing them to pygments ([#1615]({{ site.repository }}/issues/1615)) -- Capitalize the short verbose switch because it conflicts with the - built-in Commander switch ([#1660]({{ site.repository }}/issues/1660)) -- Fix compatibility with 1.8.x ([#1665]({{ site.repository }}/issues/1665)) -- Fix an error with the new file watching code due to library version - incompatibilities ([#1687]({{ site.repository }}/issues/1687)) +{: #bug-fixes-v1-3-0} - +- Fix an error with the new file watching code due to library version incompatibilities ([#1687]({{ site.repository }}/issues/1687)) ### Development Fixes -- Add coverage reporting with Coveralls ([#1539]({{ site.repository }}/issues/1539)) -- Refactor the Liquid `include` tag ([#1490]({{ site.repository }}/issues/1490)) -- Update launchy dependency to `~> 2.3` ([#1608]({{ site.repository }}/issues/1608)) -- Update rr dependency to `~> 1.1` ([#1604]({{ site.repository }}/issues/1604)) -- Update cucumber dependency to `~> 1.3` ([#1607]({{ site.repository }}/issues/1607)) -- Update coveralls dependency to `~> 0.7.0` ([#1606]({{ site.repository }}/issues/1606)) -- Update rake dependency to `~> 10.1` ([#1603]({{ site.repository }}/issues/1603)) -- Clean up `site.rb` comments to be more concise/uniform ([#1616]({{ site.repository }}/issues/1616)) -- Use the master branch for the build badge in the readme ([#1636]({{ site.repository }}/issues/1636)) -- Refactor Site#render ([#1638]({{ site.repository }}/issues/1638)) -- Remove duplication in command line options ([#1637]({{ site.repository }}/issues/1637)) -- Add tests for all the coderay options ([#1543]({{ site.repository }}/issues/1543)) -- Improve some of the cucumber test code ([#1493]({{ site.repository }}/issues/1493)) -- Improve comparisons of timestamps by ignoring the seconds ([#1582]({{ site.repository }}/issues/1582)) +{: #development-fixes-v1-3-0} - ### Site Enhancements -- Fix params for `JekyllImport::WordPress.process` arguments ([#1554]({{ site.repository }}/issues/1554)) -- Add `jekyll-suggested-tweet` to list of third-party plugins ([#1555]({{ site.repository }}/issues/1555)) -- Link to Liquid's docs for tags and filters ([#1553]({{ site.repository }}/issues/1553)) -- Add note about installing Xcode on the Mac in the Installation docs ([#1561]({{ site.repository }}/issues/1561)) -- Simplify/generalize pagination docs ([#1577]({{ site.repository }}/issues/1577)) -- Add documentation for the new data sources feature ([#1503]({{ site.repository }}/issues/1503)) -- Add more information on how to create generators ([#1590]({{ site.repository }}/issues/1590), [#1592]({{ site.repository }}/issues/1592)) -- Improve the instructions for mimicking GitHub Flavored Markdown - ([#1614]({{ site.repository }}/issues/1614)) -- Add `jekyll-import` warning note of missing dependencies ([#1626]({{ site.repository }}/issues/1626)) -- Fix grammar in the Usage section ([#1635]({{ site.repository }}/issues/1635)) -- Add documentation for the use of gems as plugins ([#1656]({{ site.repository }}/issues/1656)) -- Document the existence of a few additional plugins ([#1405]({{ site.repository }}/issues/1405)) -- Document that the `date_to_string` always returns a two digit day ([#1663]({{ site.repository }}/issues/1663)) -- Fix navigation in the "Working with Drafts" page ([#1667]({{ site.repository }}/issues/1667)) -- Fix an error with the data documentation ([#1691]({{ site.repository }}/issues/1691)) +{: #site-enhancements-v1-3-0} - -## 1.2.1 / 2013-09-14 - +{: #v1-2-1} ### Minor Enhancements -- Print better messages for detached server. Mute output on detach. ([#1518]({{ site.repository }}/issues/1518)) -- Disable reverse lookup when running `jekyll serve` ([#1363]({{ site.repository }}/issues/1363)) -- Upgrade RedCarpet dependency to `~> 2.3.0` ([#1515]({{ site.repository }}/issues/1515)) -- Upgrade to Liquid `>= 2.5.2, < 2.6` ([#1536]({{ site.repository }}/issues/1536)) +{: #minor-enhancements-v1-2-1} - ### Bug Fixes -- Fix file discrepancy in gemspec ([#1522]({{ site.repository }}/issues/1522)) -- Force rendering of Include tag ([#1525]({{ site.repository }}/issues/1525)) +{: #bug-fixes-v1-2-1} - ### Development Fixes -- Add a rake task to generate a new release post ([#1404]({{ site.repository }}/issues/1404)) -- Mute LSI output in tests ([#1531]({{ site.repository }}/issues/1531)) -- Update contributor documentation ([#1537]({{ site.repository }}/issues/1537)) +{: #development-fixes-v1-2-1} - ### Site Enhancements -- Fix a couple of validation errors on the site ([#1511]({{ site.repository }}/issues/1511)) -- Make navigation menus reusable ([#1507]({{ site.repository }}/issues/1507)) -- Fix link to History page from Release v1.2.0 notes post. -- Fix markup in History file for command line options ([#1512]({{ site.repository }}/issues/1512)) -- Expand 1.2 release post title to 1.2.0 ([#1516]({{ site.repository }}/issues/1516)) +{: #site-enhancements-v1-2-1} - -## 1.2.0 / 2013-09-06 - +{: #v1-2-0} ### Major Enhancements -- Disable automatically-generated excerpts when `excerpt_separator` is `""`. ([#1386]({{ site.repository }}/issues/1386)) -- Add checking for URL conflicts when running `jekyll doctor` ([#1389]({{ site.repository }}/issues/1389)) +{: #major-enhancements-v1-2-0} - ### Minor Enhancements -- Catch and fix invalid `paginate` values ([#1390]({{ site.repository }}/issues/1390)) -- Remove superfluous `div.container` from the default html template for - `jekyll new` ([#1315]({{ site.repository }}/issues/1315)) -- Add `-D` short-form switch for the drafts option ([#1394]({{ site.repository }}/issues/1394)) -- Update the links in the site template for Twitter and GitHub ([#1400]({{ site.repository }}/issues/1400)) -- Update dummy email address to example.com domain ([#1408]({{ site.repository }}/issues/1408)) -- Update normalize.css to v2.1.2 and minify; add rake task to update - normalize.css with greater ease. ([#1430]({{ site.repository }}/issues/1430)) -- Add the ability to detach the server ran by `jekyll serve` from it's - controlling terminal ([#1443]({{ site.repository }}/issues/1443)) -- Improve permalink generation for URLs with special characters ([#944]({{ site.repository }}/issues/944)) -- Expose the current Jekyll version to posts and pages via a new - `jekyll.version` variable ([#1481]({{ site.repository }}/issues/1481)) +{: #minor-enhancements-v1-2-0} - +- Expose the current Jekyll version to posts and pages via a new `jekyll.version` variable ([#1481]({{ site.repository }}/issues/1481)) ### Bug Fixes -- Markdown extension matching matches only exact matches ([#1382]({{ site.repository }}/issues/1382)) -- Fixed NoMethodError when message passed to `Stevenson#message` is nil ([#1388]({{ site.repository }}/issues/1388)) -- Use binary mode when writing file ([#1364]({{ site.repository }}/issues/1364)) -- Fix 'undefined method `encoding` for "mailto"' errors w/ Ruby 1.8 and - Kramdown > 0.14.0 ([#1397]({{ site.repository }}/issues/1397)) -- Do not force the permalink to be a dir if it ends on .html ([#963]({{ site.repository }}/issues/963)) -- When a Liquid Exception is caught, show the full path rel. to site source ([#1415]({{ site.repository }}/issues/1415)) -- Properly read in the config options when serving the docs locally - ([#1444]({{ site.repository }}/issues/1444)) -- Fixed `--layouts` option for `build` and `serve` commands ([#1458]({{ site.repository }}/issues/1458)) -- Remove kramdown as a runtime dependency since it's optional ([#1498]({{ site.repository }}/issues/1498)) -- Provide proper error handling for invalid file names in the include - tag ([#1494]({{ site.repository }}/issues/1494)) +{: #bug-fixes-v1-2-0} - +- Provide proper error handling for invalid file names in the include tag ([#1494]({{ site.repository }}/issues/1494)) ### Development Fixes -- Remove redundant argument to - Jekyll::Commands::New#scaffold_post_content ([#1356]({{ site.repository }}/issues/1356)) -- Add new dependencies to the README ([#1360]({{ site.repository }}/issues/1360)) -- Fix link to contributing page in README ([#1424]({{ site.repository }}/issues/1424)) -- Update TomDoc in Pager#initialize to match params ([#1441]({{ site.repository }}/issues/1441)) -- Refactor `Site#cleanup` into `Jekyll::Site::Cleaner` class ([#1429]({{ site.repository }}/issues/1429)) -- Several other small minor refactorings ([#1341]({{ site.repository }}/issues/1341)) -- Ignore `_site` in jekyllrb.com deploy ([#1480]({{ site.repository }}/issues/1480)) -- Add Gem version and dependency badge to README ([#1497]({{ site.repository }}/issues/1497)) +{: #development-fixes-v1-2-0} - ### Site Enhancements -- Add info about new releases ([#1353]({{ site.repository }}/issues/1353)) -- Update plugin list with jekyll-rss plugin ([#1354]({{ site.repository }}/issues/1354)) -- Update the site list page with Ruby's official site ([#1358]({{ site.repository }}/issues/1358)) -- Add `jekyll-ditaa` to list of third-party plugins ([#1370]({{ site.repository }}/issues/1370)) -- Add `postfiles` to list of third-party plugins ([#1373]({{ site.repository }}/issues/1373)) -- For internal links, use full path including trailing `/` ([#1411]({{ site.repository }}/issues/1411)) -- Use curly apostrophes in the docs ([#1419]({{ site.repository }}/issues/1419)) -- Update the docs for Redcarpet in Jekyll ([#1418]({{ site.repository }}/issues/1418)) -- Add `pluralize` and `reading_time` filters to docs ([#1439]({{ site.repository }}/issues/1439)) -- Fix markup for the Kramdown options ([#1445]({{ site.repository }}/issues/1445)) -- Fix typos in the History file ([#1454]({{ site.repository }}/issues/1454)) -- Add trailing slash to site's post URL ([#1462]({{ site.repository }}/issues/1462)) -- Clarify that `--config` will take multiple files ([#1474]({{ site.repository }}/issues/1474)) -- Fix docs/templates.md private gist example ([#1477]({{ site.repository }}/issues/1477)) -- Use `site.repository` for Jekyll's GitHub URL ([#1463]({{ site.repository }}/issues/1463)) -- Add `jekyll-pageless-redirects` to list of third-party plugins ([#1486]({{ site.repository }}/issues/1486)) -- Clarify that `date_to_xmlschema` returns an ISO 8601 string ([#1488]({{ site.repository }}/issues/1488)) -- Add `jekyll-good-include` to list of third-party plugins ([#1491]({{ site.repository }}/issues/1491)) -- XML escape the blog post title in our feed ([#1501]({{ site.repository }}/issues/1501)) -- Add `jekyll-toc-generator` to list of third-party plugins ([#1506]({{ site.repository }}/issues/1506)) +{: #site-enhancements-v1-2-0} - -## 1.1.2 / 2013-07-25 - +{: #v1-1-2} ### Bug Fixes -- Require Liquid 2.5.1 ([#1349]({{ site.repository }}/issues/1349)) +{: #bug-fixes-v1-1-2} - -## 1.1.1 / 2013-07-24 - +{: #v1-1-1} ### Minor Enhancements -- Remove superfluous `table` selector from main.css in `jekyll new` template ([#1328]({{ site.repository }}/issues/1328)) -- Abort with non-zero exit codes ([#1338]({{ site.repository }}/issues/1338)) +{: #minor-enhancements-v1-1-1} - ### Bug Fixes -- Fix up the rendering of excerpts ([#1339]({{ site.repository }}/issues/1339)) +{: #bug-fixes-v1-1-1} - ### Site Enhancements -- Add Jekyll Image Tag to the plugins list ([#1306]({{ site.repository }}/issues/1306)) -- Remove erroneous statement that `site.pages` are sorted alphabetically. -- Add info about the `_drafts` directory to the directory structure - docs ([#1320]({{ site.repository }}/issues/1320)) -- Improve the layout of the plugin listing by organizing it into - categories ([#1310]({{ site.repository }}/issues/1310)) -- Add generator-jekyllrb and grunt-jekyll to plugins page ([#1330]({{ site.repository }}/issues/1330)) -- Mention Kramdown as option for markdown parser on Extras page ([#1318]({{ site.repository }}/issues/1318)) -- Update Quick-Start page to include reminder that all requirements must be installed ([#1327]({{ site.repository }}/issues/1327)) -- Change filename in `include` example to an HTML file so as not to indicate that Jekyll - will automatically convert them. ([#1303]({{ site.repository }}/issues/1303)) -- Add an RSS feed for commits to Jekyll ([#1343]({{ site.repository }}/issues/1343)) +{: #site-enhancements-v1-1-1} - -## 1.1.0 / 2013-07-14 - +{: #v1-1-0} ### Major Enhancements -- Add `docs` subcommand to read Jekyll's docs when offline. ([#1046]({{ site.repository }}/issues/1046)) -- Support passing parameters to templates in `include` tag ([#1204]({{ site.repository }}/issues/1204)) -- Add support for Liquid tags to post excerpts ([#1302]({{ site.repository }}/issues/1302)) +{: #major-enhancements-v1-1-0} - ### Minor Enhancements -- Search the hierarchy of pagination path up to site root to determine template page for - pagination. ([#1198]({{ site.repository }}/issues/1198)) -- Add the ability to generate a new Jekyll site without a template ([#1171]({{ site.repository }}/issues/1171)) -- Use redcarpet as the default markdown engine in newly generated - sites ([#1245]({{ site.repository }}/issues/1245), [#1247]({{ site.repository }}/issues/1247)) -- Add `redcarpet` as a runtime dependency so `jekyll build` works out-of-the-box for new - sites. ([#1247]({{ site.repository }}/issues/1247)) -- In the generated site, remove files that will be replaced by a - directory ([#1118]({{ site.repository }}/issues/1118)) -- Fail loudly if a user-specified configuration file doesn't exist ([#1098]({{ site.repository }}/issues/1098)) -- Allow for all options for Kramdown HTML Converter ([#1201]({{ site.repository }}/issues/1201)) +{: #minor-enhancements-v1-1-0} - ### Bug Fixes -- Fix pagination in subdirectories. ([#1198]({{ site.repository }}/issues/1198)) -- Fix an issue with directories and permalinks that have a plus sign - (+) in them ([#1215]({{ site.repository }}/issues/1215)) -- Provide better error reporting when generating sites ([#1253]({{ site.repository }}/issues/1253)) -- Latest posts first in non-LSI `related_posts` ([#1271]({{ site.repository }}/issues/1271)) +{: #bug-fixes-v1-1-0} - ### Development Fixes -- Merge the theme and layout cucumber steps into one step ([#1151]({{ site.repository }}/issues/1151)) -- Restrict activesupport dependency to pre-4.0.0 to maintain compatibility with `<= 1.9.2` -- Include/exclude deprecation handling simplification ([#1284]({{ site.repository }}/issues/1284)) -- Convert README to Markdown. ([#1267]({{ site.repository }}/issues/1267)) -- Refactor Jekyll::Site ([#1144]({{ site.repository }}/issues/1144)) +{: #development-fixes-v1-1-0} - ### Site Enhancements -- Add "News" section for release notes, along with an RSS feed ([#1093]({{ site.repository }}/issues/1093), [#1285]({{ site.repository }}/issues/1285), [#1286]({{ site.repository }}/issues/1286)) -- Add "History" page. -- Restructured docs sections to include "Meta" section. -- Add message to "Templates" page that specifies that Python must be installed in order - to use Pygments. ([#1182]({{ site.repository }}/issues/1182)) -- Update link to the official Maruku repo ([#1175]({{ site.repository }}/issues/1175)) -- Add documentation about `paginate_path` to "Templates" page in docs ([#1129]({{ site.repository }}/issues/1129)) -- Give the quick-start guide its own page ([#1191]({{ site.repository }}/issues/1191)) -- Update ProTip on Installation page in docs to point to all the info about Pygments and - the 'highlight' tag. ([#1196]({{ site.repository }}/issues/1196)) -- Run `site/img` through ImageOptim (thanks [@qrush](https://github.com/qrush)!) ([#1208]({{ site.repository }}/issues/1208)) -- Added Jade Converter to `site/docs/plugins` ([#1210]({{ site.repository }}/issues/1210)) -- Fix location of docs pages in Contributing pages ([#1214]({{ site.repository }}/issues/1214)) -- Add ReadInXMinutes plugin to the plugin list ([#1222]({{ site.repository }}/issues/1222)) -- Remove plugins from the plugin list that have equivalents in Jekyll - proper ([#1223]({{ site.repository }}/issues/1223)) -- Add jekyll-assets to the plugin list ([#1225]({{ site.repository }}/issues/1225)) -- Add jekyll-pandoc-mulitple-formats to the plugin list ([#1229]({{ site.repository }}/issues/1229)) -- Remove dead link to "Using Git to maintain your blog" ([#1227]({{ site.repository }}/issues/1227)) -- Tidy up the third-party plugins listing ([#1228]({{ site.repository }}/issues/1228)) -- Update contributor information ([#1192]({{ site.repository }}/issues/1192)) -- Update URL of article about Blogger migration ([#1242]({{ site.repository }}/issues/1242)) -- Specify that RedCarpet is the default for new Jekyll sites on Quickstart page ([#1247]({{ site.repository }}/issues/1247)) -- Added site.pages to Variables page in docs ([#1251]({{ site.repository }}/issues/1251)) -- Add Youku and Tudou Embed link on Plugins page. ([#1250]({{ site.repository }}/issues/1250)) -- Add note that `gist` tag supports private gists. ([#1248]({{ site.repository }}/issues/1248)) -- Add `jekyll-timeago` to list of third-party plugins. ([#1260]({{ site.repository }}/issues/1260)) -- Add `jekyll-swfobject` to list of third-party plugins. ([#1263]({{ site.repository }}/issues/1263)) -- Add `jekyll-picture-tag` to list of third-party plugins. ([#1280]({{ site.repository }}/issues/1280)) -- Update the GitHub Pages documentation regarding relative URLs - ([#1291]({{ site.repository }}/issues/1291)) -- Update the S3 deployment documentation ([#1294]({{ site.repository }}/issues/1294)) -- Add suggestion for Xcode CLT install to troubleshooting page in docs ([#1296]({{ site.repository }}/issues/1296)) -- Add 'Working with drafts' page to docs ([#1289]({{ site.repository }}/issues/1289)) -- Add information about time zones to the documentation for a page's - date ([#1304]({{ site.repository }}/issues/1304)) +{: #site-enhancements-v1-1-0} - +- Add information about time zones to the documentation for a page's date ([#1304]({{ site.repository }}/issues/1304)) -## 1.0.3 / 2013-06-07 - +{: #v1-0-3} ### Minor Enhancements -- Add support to gist tag for private gists. ([#1189]({{ site.repository }}/issues/1189)) -- Fail loudly when MaRuKu errors out ([#1190]({{ site.repository }}/issues/1190)) -- Move the building of related posts into their own class ([#1057]({{ site.repository }}/issues/1057)) -- Removed trailing spaces in several places throughout the code ([#1116]({{ site.repository }}/issues/1116)) -- Add a `--force` option to `jekyll new` ([#1115]({{ site.repository }}/issues/1115)) -- Convert IDs in the site template to classes ([#1170]({{ site.repository }}/issues/1170)) +{: #minor-enhancements-v1-0-3} - ### Bug Fixes -- Fix typo in Stevenson constant "ERROR". ([#1166]({{ site.repository }}/issues/1166)) -- Rename Jekyll::Logger to Jekyll::Stevenson to fix inheritance issue ([#1106]({{ site.repository }}/issues/1106)) -- Exit with a non-zero exit code when dealing with a Liquid error ([#1121]({{ site.repository }}/issues/1121)) -- Make the `exclude` and `include` options backwards compatible with - versions of Jekyll prior to 1.0 ([#1114]({{ site.repository }}/issues/1114)) -- Fix pagination on Windows ([#1063]({{ site.repository }}/issues/1063)) -- Fix the application of Pygments' Generic Output style to Go code - ([#1156]({{ site.repository }}/issues/1156)) +{: #bug-fixes-v1-0-3} - +- Fix the application of Pygments' Generic Output style to Go code ([#1156]({{ site.repository }}/issues/1156)) ### Site Enhancements -- Add a Pro Tip to docs about front matter variables being optional ([#1147]({{ site.repository }}/issues/1147)) -- Add changelog to site as History page in /docs/ ([#1065]({{ site.repository }}/issues/1065)) -- Add note to Upgrading page about new config options in 1.0.x ([#1146]({{ site.repository }}/issues/1146)) -- Documentation for `date_to_rfc822` and `uri_escape` ([#1142]({{ site.repository }}/issues/1142)) -- Documentation highlight boxes shouldn't show scrollbars if not necessary ([#1123]({{ site.repository }}/issues/1123)) -- Add link to jekyll-minibundle in the doc's plugins list ([#1035]({{ site.repository }}/issues/1035)) -- Quick patch for importers documentation -- Fix prefix for WordpressDotCom importer in docs ([#1107]({{ site.repository }}/issues/1107)) -- Add jekyll-contentblocks plugin to docs ([#1068]({{ site.repository }}/issues/1068)) -- Make code bits in notes look more natural, more readable ([#1089]({{ site.repository }}/issues/1089)) -- Fix logic for `relative_permalinks` instructions on Upgrading page ([#1101]({{ site.repository }}/issues/1101)) -- Add docs for post excerpt ([#1072]({{ site.repository }}/issues/1072)) -- Add docs for gist tag ([#1072]({{ site.repository }}/issues/1072)) -- Add docs indicating that Pygments does not need to be installed - separately ([#1099]({{ site.repository }}/issues/1099), [#1119]({{ site.repository }}/issues/1119)) -- Update the migrator docs to be current ([#1136]({{ site.repository }}/issues/1136)) -- Add the Jekyll Gallery Plugin to the plugin list ([#1143]({{ site.repository }}/issues/1143)) +{: #site-enhancements-v1-0-3} - ### Development Fixes -- Use Jekyll.logger instead of Jekyll::Stevenson to log things ([#1149]({{ site.repository }}/issues/1149)) -- Fix pesky Cucumber infinite loop ([#1139]({{ site.repository }}/issues/1139)) -- Do not write posts with timezones in Cucumber tests ([#1124]({{ site.repository }}/issues/1124)) -- Use ISO formatted dates in Cucumber features ([#1150]({{ site.repository }}/issues/1150)) +{: #development-fixes-v1-0-3} - -## 1.0.2 / 2013-05-12 - +{: #v1-0-2} ### Major Enhancements -- Add `jekyll doctor` command to check site for any known compatibility problems ([#1081]({{ site.repository }}/issues/1081)) -- Backwards-compatibilize relative permalinks ([#1081]({{ site.repository }}/issues/1081)) +{: #major-enhancements-v1-0-2} - ### Minor Enhancements -- Add a `data-lang=""` attribute to Redcarpet code blocks ([#1066]({{ site.repository }}/issues/1066)) -- Deprecate old config `server_port`, match to `port` if `port` isn't set ([#1084]({{ site.repository }}/issues/1084)) -- Update pygments.rb version to 0.5.0 ([#1061]({{ site.repository }}/issues/1061)) -- Update Kramdown version to 1.0.2 ([#1067]({{ site.repository }}/issues/1067)) +{: #minor-enhancements-v1-0-2} - ### Bug Fixes -- Fix issue when categories are numbers ([#1078]({{ site.repository }}/issues/1078)) -- Catching that Redcarpet gem isn't installed ([#1059]({{ site.repository }}/issues/1059)) +{: #bug-fixes-v1-0-2} - ### Site Enhancements -- Add documentation about `relative_permalinks` ([#1081]({{ site.repository }}/issues/1081)) -- Remove pygments-installation instructions, as pygments.rb is bundled with it ([#1079]({{ site.repository }}/issues/1079)) -- Move pages to be Pages for realz ([#985]({{ site.repository }}/issues/985)) -- Updated links to Liquid documentation ([#1073]({{ site.repository }}/issues/1073)) +{: #site-enhancements-v1-0-2} - -## 1.0.1 / 2013-05-08 - +{: #v1-0-1} ### Minor Enhancements -- Do not force use of toc_token when using generate_tok in RDiscount ([#1048]({{ site.repository }}/issues/1048)) -- Add newer `language-` class name prefix to code blocks ([#1037]({{ site.repository }}/issues/1037)) -- Commander error message now preferred over process abort with incorrect args ([#1040]({{ site.repository }}/issues/1040)) +{: #minor-enhancements-v1-0-1} - ### Bug Fixes -- Make Redcarpet respect the pygments configuration option ([#1053]({{ site.repository }}/issues/1053)) -- Fix the index build with LSI ([#1045]({{ site.repository }}/issues/1045)) -- Don't print deprecation warning when no arguments are specified. ([#1041]({{ site.repository }}/issues/1041)) -- Add missing `

` to site template used by `new` subcommand, fixed typos in code ([#1032]({{ site.repository }}/issues/1032)) +{: #bug-fixes-v1-0-1} - ### Site Enhancements -- Changed https to http in the GitHub Pages link ([#1051]({{ site.repository }}/issues/1051)) -- Remove CSS cruft, fix typos, fix HTML errors ([#1028]({{ site.repository }}/issues/1028)) -- Removing manual install of Pip and Distribute ([#1025]({{ site.repository }}/issues/1025)) -- Updated URL for Markdown references plugin ([#1022]({{ site.repository }}/issues/1022)) +{: #site-enhancements-v1-0-1} - ### Development Fixes -- Markdownify history file ([#1027]({{ site.repository }}/issues/1027)) -- Update links on README to point to new jekyllrb.com ([#1018]({{ site.repository }}/issues/1018)) +{: #development-fixes-v1-0-1} - - -## 1.0.0 / 2013-05-06 - - - -### Major Enhancements -- Add `jekyll new` subcommand: generate a jekyll scaffold ([#764]({{ site.repository }}/issues/764)) -- Refactored jekyll commands into subcommands: build, serve, and migrate. ([#690]({{ site.repository }}/issues/690)) -- Removed importers/migrators from main project, migrated to jekyll-import sub-gem ([#793]({{ site.repository }}/issues/793)) -- Added ability to render drafts in `_drafts` folder via command line ([#833]({{ site.repository }}/issues/833)) -- Add ordinal date permalink style (/:categories/:year/:y_day/:title.html) ([#928]({{ site.repository }}/issues/928)) - - - -### Minor Enhancements -- Site template HTML5-ified ([#964]({{ site.repository }}/issues/964)) -- Use post's directory path when matching for the post_url tag ([#998]({{ site.repository }}/issues/998)) -- Loosen dependency on Pygments so it's only required when it's needed ([#1015]({{ site.repository }}/issues/1015)) -- Parse strings into Time objects for date-related Liquid filters ([#1014]({{ site.repository }}/issues/1014)) -- Tell the user if there is no subcommand specified ([#1008]({{ site.repository }}/issues/1008)) -- Freak out if the destination of `jekyll new` exists and is non-empty ([#981]({{ site.repository }}/issues/981)) -- Add `timezone` configuration option for compilation ([#957]({{ site.repository }}/issues/957)) -- Add deprecation messages for pre-1.0 CLI options ([#959]({{ site.repository }}/issues/959)) -- Refactor and colorize logging ([#959]({{ site.repository }}/issues/959)) -- Refactor Markdown parsing ([#955]({{ site.repository }}/issues/955)) -- Added application/vnd.apple.pkpass to mime.types served by WEBrick ([#907]({{ site.repository }}/issues/907)) -- Move template site to default markdown renderer ([#961]({{ site.repository }}/issues/961)) -- Expose new attribute to Liquid via `page`: `page.path` ([#951]({{ site.repository }}/issues/951)) -- Accept multiple config files from command line ([#945]({{ site.repository }}/issues/945)) -- Add page variable to liquid custom tags and blocks ([#413]({{ site.repository }}/issues/413)) -- Add paginator.previous_page_path and paginator.next_page_path ([#942]({{ site.repository }}/issues/942)) -- Backwards compatibility for 'auto' ([#821]({{ site.repository }}/issues/821), [#934]({{ site.repository }}/issues/934)) -- Added date_to_rfc822 used on RSS feeds ([#892]({{ site.repository }}/issues/892)) -- Upgrade version of pygments.rb to 0.4.2 ([#927]({{ site.repository }}/issues/927)) -- Added short month (e.g. "Sep") to permalink style options for posts ([#890]({{ site.repository }}/issues/890)) -- Expose site.baseurl to Liquid templates ([#869]({{ site.repository }}/issues/869)) -- Adds excerpt attribute to posts which contains first paragraph of content ([#837]({{ site.repository }}/issues/837)) -- Accept custom configuration file via CLI ([#863]({{ site.repository }}/issues/863)) -- Load in GitHub Pages MIME Types on `jekyll serve` ([#847]({{ site.repository }}/issues/847), [#871]({{ site.repository }}/issues/871)) -- Improve debugability of error message for a malformed highlight tag ([#785]({{ site.repository }}/issues/785)) -- Allow symlinked files in unsafe mode ([#824]({{ site.repository }}/issues/824)) -- Add 'gist' Liquid tag to core ([#822]({{ site.repository }}/issues/822), [#861]({{ site.repository }}/issues/861)) -- New format of Jekyll output ([#795]({{ site.repository }}/issues/795)) -- Reinstate `--limit_posts` and `--future` switches ([#788]({{ site.repository }}/issues/788)) -- Remove ambiguity from command descriptions ([#815]({{ site.repository }}/issues/815)) -- Fix SafeYAML Warnings ([#807]({{ site.repository }}/issues/807)) -- Relaxed Kramdown version to 0.14 ([#808]({{ site.repository }}/issues/808)) -- Aliased `jekyll server` to `jekyll serve`. ([#792]({{ site.repository }}/issues/792)) -- Updated gem versions for Kramdown, Rake, Shoulda, Cucumber, and RedCarpet. ([#744]({{ site.repository }}/issues/744)) -- Refactored jekyll subcommands into Jekyll::Commands submodule, which now contains them ([#768]({{ site.repository }}/issues/768)) -- Rescue from import errors in Wordpress.com migrator ([#671]({{ site.repository }}/issues/671)) -- Massively accelerate LSI performance ([#664]({{ site.repository }}/issues/664)) -- Truncate post slugs when importing from Tumblr ([#496]({{ site.repository }}/issues/496)) -- Add glob support to include, exclude option ([#743]({{ site.repository }}/issues/743)) -- Layout of Page or Post defaults to 'page' or 'post', respectively ([#580]({{ site.repository }}/issues/580)) - REPEALED by ([#977]({{ site.repository }}/issues/977)) -- "Keep files" feature ([#685]({{ site.repository }}/issues/685)) -- Output full path & name for files that don't parse ([#745]({{ site.repository }}/issues/745)) -- Add source and destination directory protection ([#535]({{ site.repository }}/issues/535)) -- Better YAML error message ([#718]({{ site.repository }}/issues/718)) -- Bug Fixes -- Paginate in subdirectories properly ([#1016]({{ site.repository }}/issues/1016)) -- Ensure post and page URLs have a leading slash ([#992]({{ site.repository }}/issues/992)) -- Catch all exceptions, not just StandardError descendents ([#1007]({{ site.repository }}/issues/1007)) -- Bullet-proof limit_posts option ([#1004]({{ site.repository }}/issues/1004)) -- Read in YAML as UTF-8 to accept non-ASCII chars ([#836]({{ site.repository }}/issues/836)) -- Fix the CLI option `--plugins` to actually accept dirs and files ([#993]({{ site.repository }}/issues/993)) -- Allow 'excerpt' in YAML Front-Matter to override the extracted excerpt ([#946]({{ site.repository }}/issues/946)) -- Fix cascade problem with site.baseurl, site.port and site.host. ([#935]({{ site.repository }}/issues/935)) -- Filter out directories with valid post names ([#875]({{ site.repository }}/issues/875)) -- Fix symlinked static files not being correctly built in unsafe mode ([#909]({{ site.repository }}/issues/909)) -- Fix integration with directory_watcher 1.4.x ([#916]({{ site.repository }}/issues/916)) -- Accepting strings as arguments to jekyll-import command ([#910]({{ site.repository }}/issues/910)) -- Force usage of older directory_watcher gem as 1.5 is broken ([#883]({{ site.repository }}/issues/883)) -- Ensure all Post categories are downcase ([#842]({{ site.repository }}/issues/842), [#872]({{ site.repository }}/issues/872)) -- Force encoding of the rdiscount TOC to UTF8 to avoid conversion errors ([#555]({{ site.repository }}/issues/555)) -- Patch for multibyte URI problem with jekyll serve ([#723]({{ site.repository }}/issues/723)) -- Order plugin execution by priority ([#864]({{ site.repository }}/issues/864)) -- Fixed Page#dir and Page#url for edge cases ([#536]({{ site.repository }}/issues/536)) -- Fix broken post_url with posts with a time in their YAML Front-Matter ([#831]({{ site.repository }}/issues/831)) -- Look for plugins under the source directory ([#654]({{ site.repository }}/issues/654)) -- Tumblr Migrator: finds `_posts` dir correctly, fixes truncation of long - post names ([#775]({{ site.repository }}/issues/775)) -- Force Categories to be Strings ([#767]({{ site.repository }}/issues/767)) -- Safe YAML plugin to prevent vulnerability ([#777]({{ site.repository }}/issues/777)) -- Add SVG support to Jekyll/WEBrick. ([#407]({{ site.repository }}/issues/407), [#406]({{ site.repository }}/issues/406)) -- Prevent custom destination from causing continuous regen on watch ([#528]({{ site.repository }}/issues/528), [#820]({{ site.repository }}/issues/820), [#862]({{ site.repository }}/issues/862)) - ### Site Enhancements -- Responsify ([#860]({{ site.repository }}/issues/860)) -- Fix spelling, punctuation and phrasal errors ([#989]({{ site.repository }}/issues/989)) -- Update quickstart instructions with `new` command ([#966]({{ site.repository }}/issues/966)) -- Add docs for page.excerpt ([#956]({{ site.repository }}/issues/956)) -- Add docs for page.path ([#951]({{ site.repository }}/issues/951)) -- Clean up site docs to prepare for 1.0 release ([#918]({{ site.repository }}/issues/918)) -- Bring site into master branch with better preview/deploy ([#709]({{ site.repository }}/issues/709)) -- Redesigned site ([#583]({{ site.repository }}/issues/583)) +{: #site-enhancements-v1-0-0} - ### Development Fixes -- Exclude Cucumber 1.2.4, which causes tests to fail in 1.9.2 ([#938]({{ site.repository }}/issues/938)) -- Added "features:html" rake task for debugging purposes, cleaned up - cucumber profiles ([#832]({{ site.repository }}/issues/832)) -- Explicitly require HTTPS rubygems source in Gemfile ([#826]({{ site.repository }}/issues/826)) -- Changed Ruby version for development to 1.9.3-p374 from p362 ([#801]({{ site.repository }}/issues/801)) -- Including a link to the GitHub Ruby style guide in CONTRIBUTING.md ([#806]({{ site.repository }}/issues/806)) -- Added script/bootstrap ([#776]({{ site.repository }}/issues/776)) -- Running Simplecov under 2 conditions: ENV(COVERAGE)=true and with Ruby version - of greater than 1.9 ([#771]({{ site.repository }}/issues/771)) -- Switch to Simplecov for coverage report ([#765]({{ site.repository }}/issues/765)) +{: #development-fixes-v1-0-0} - -## 0.12.1 / 2013-02-19 -### Minor Enhancements -- Update Kramdown version to 0.14.1 ([#744]({{ site.repository }}/issues/744)) -- Test Enhancements -- Update Rake version to 10.0.3 ([#744]({{ site.repository }}/issues/744)) -- Update Shoulda version to 3.3.2 ([#744]({{ site.repository }}/issues/744)) -- Update Redcarpet version to 2.2.2 ([#744]({{ site.repository }}/issues/744)) - -## 0.12.0 / 2012-12-22 -### Minor Enhancements -- Add ability to explicitly specify included files ([#261]({{ site.repository }}/issues/261)) -- Add --default-mimetype option ([#279]({{ site.repository }}/issues/279)) -- Allow setting of RedCloth options ([#284]({{ site.repository }}/issues/284)) -- Add post_url Liquid tag for internal post linking ([#369]({{ site.repository }}/issues/369)) -- Allow multiple plugin dirs to be specified ([#438]({{ site.repository }}/issues/438)) -- Inline TOC token support for RDiscount ([#333]({{ site.repository }}/issues/333)) -- Add the option to specify the paginated url format ([#342]({{ site.repository }}/issues/342)) -- Swap out albino for pygments.rb ([#569]({{ site.repository }}/issues/569)) -- Support Redcarpet 2 and fenced code blocks ([#619]({{ site.repository }}/issues/619)) -- Better reporting of Liquid errors ([#624]({{ site.repository }}/issues/624)) -- Bug Fixes -- Allow some special characters in highlight names -- URL escape category names in URL generation ([#360]({{ site.repository }}/issues/360)) -- Fix error with limit_posts ([#442]({{ site.repository }}/issues/442)) -- Properly select dotfile during directory scan ([#363]({{ site.repository }}/issues/363), [#431]({{ site.repository }}/issues/431), [#377]({{ site.repository }}/issues/377)) -- Allow setting of Kramdown smart_quotes ([#482]({{ site.repository }}/issues/482)) -- Ensure front-matter is at start of file ([#562]({{ site.repository }}/issues/562)) - +- Allow setting of Kramdown `smart_quotes` ([#482]({{ site.repository }}/issues/482)) +- Ensure front matter is at start of file ([#562]({{ site.repository }}/issues/562)) -## 0.11.2 / 2011-12-27 -- Bug Fixes -- Fix gemspec - -## 0.11.1 / 2011-12-27 -- Bug Fixes -- Fix extra blank line in highlight blocks ([#409]({{ site.repository }}/issues/409)) -- Update dependencies - -## 0.11.0 / 2011-07-10 -### Major Enhancements -- Add command line importer functionality ([#253]({{ site.repository }}/issues/253)) -- Add Redcarpet Markdown support ([#318]({{ site.repository }}/issues/318)) -- Make markdown/textile extensions configurable ([#312]({{ site.repository }}/issues/312)) -- Add `markdownify` filter - ### Minor Enhancements -- Switch to Albino gem -- Bundler support -- Use English library to avoid hoops ([#292]({{ site.repository }}/issues/292)) -- Add Posterous importer ([#254]({{ site.repository }}/issues/254)) -- Fixes for Wordpress importer ([#274]({{ site.repository }}/issues/274), [#252]({{ site.repository }}/issues/252), [#271]({{ site.repository }}/issues/271)) -- Better error message for invalid post date ([#291]({{ site.repository }}/issues/291)) -- Print formatted fatal exceptions to stdout on build failure -- Add Tumblr importer ([#323]({{ site.repository }}/issues/323)) -- Add Enki importer ([#320]({{ site.repository }}/issues/320)) -- Bug Fixes -- Secure additional path exploits +{: #minor-enhancements-v0-11-0} - -## 0.10.0 / 2010-12-16 -- Bug Fixes -- Add --no-server option. - +- Add `--no-server` option. -## 0.9.0 / 2010-12-15 -### Minor Enhancements -- Use OptionParser's `[no-]` functionality for better boolean parsing. -- Add Drupal migrator ([#245]({{ site.repository }}/issues/245)) -- Complain about YAML and Liquid errors ([#249]({{ site.repository }}/issues/249)) -- Remove orphaned files during regeneration ([#247]({{ site.repository }}/issues/247)) -- Add Marley migrator ([#28]({{ site.repository }}/issues/28)) - -## 0.8.0 / 2010-11-22 -### Minor Enhancements -- Add wordpress.com importer ([#207]({{ site.repository }}/issues/207)) -- Add --limit-posts cli option ([#212]({{ site.repository }}/issues/212)) -- Add uri_escape filter ([#234]({{ site.repository }}/issues/234)) -- Add --base-url cli option ([#235]({{ site.repository }}/issues/235)) -- Improve MT migrator ([#238]({{ site.repository }}/issues/238)) -- Add kramdown support ([#239]({{ site.repository }}/issues/239)) -- Bug Fixes -- Fixed filename basename generation ([#208]({{ site.repository }}/issues/208)) -- Set mode to UTF8 on Sequel connections ([#237]({{ site.repository }}/issues/237)) -- Prevent `_includes` dir from being a symlink - -## 0.7.0 / 2010-08-24 -### Minor Enhancements -- Add support for rdiscount extensions ([#173]({{ site.repository }}/issues/173)) -- Bug Fixes -- Highlight should not be able to render local files -- The site configuration may not always provide a 'time' setting ([#184]({{ site.repository }}/issues/184)) - -## 0.6.2 / 2010-06-25 -- Bug Fixes -- Fix Rakefile 'release' task (tag pushing was missing origin) -- Ensure that RedCloth is loaded when textilize filter is used ([#183]({{ site.repository }}/issues/183)) -- Expand source, destination, and plugin paths ([#180]({{ site.repository }}/issues/180)) -- Fix page.url to include full relative path ([#181]({{ site.repository }}/issues/181)) - +- Fix `page.url` to include full relative path ([#181]({{ site.repository }}/issues/181)) -## 0.6.1 / 2010-06-24 -- Bug Fixes -- Fix Markdown Pygments prefix and suffix ([#178]({{ site.repository }}/issues/178)) - -## 0.6.0 / 2010-06-23 -### Major Enhancements -- Proper plugin system ([#19]({{ site.repository }}/issues/19), [#100]({{ site.repository }}/issues/100)) -- Add safe mode so unsafe converters/generators can be added -- Maruku is now the only processor dependency installed by default. - Other processors will be lazy-loaded when necessary (and prompt the - user to install them when necessary) ([#57]({{ site.repository }}/issues/57)) - +- Maruku is now the only processor dependency installed by default. Other processors will be lazy-loaded when necessary (and prompt the user to install them when necessary) ([#57]({{ site.repository }}/issues/57)) ### Minor Enhancements -- Inclusion/exclusion of future dated posts ([#59]({{ site.repository }}/issues/59)) -- Generation for a specific time ([#59]({{ site.repository }}/issues/59)) -- Allocate site.time on render not per site_payload invocation ([#59]({{ site.repository }}/issues/59)) -- Pages now present in the site payload and can be used through the - site.pages and site.html_pages variables -- Generate phase added to site#process and pagination is now a generator -- Switch to RakeGem for build/test process -- Only regenerate static files when they have changed ([#142]({{ site.repository }}/issues/142)) -- Allow arbitrary options to Pygments ([#31]({{ site.repository }}/issues/31)) -- Allow URL to be set via command line option ([#147]({{ site.repository }}/issues/147)) -- Bug Fixes -- Render highlighted code for non markdown/textile pages ([#116]({{ site.repository }}/issues/116)) -- Fix highlighting on Ruby 1.9 ([#65]({{ site.repository }}/issues/65)) -- Fix extension munging when pretty permalinks are enabled ([#64]({{ site.repository }}/issues/64)) -- Stop sorting categories ([#33]({{ site.repository }}/issues/33)) -- Preserve generated attributes over front matter ([#119]({{ site.repository }}/issues/119)) -- Fix source directory binding using Dir.pwd ([#75]({{ site.repository }}/issues/75)) +{: #minor-enhancements-v0-6-0} - +- Fix source directory binding using `Dir.pwd` ([#75]({{ site.repository }}/issues/75)) -## 0.5.7 / 2010-01-12 -### Minor Enhancements -- Allow overriding of post date in the front matter ([#62]({{ site.repository }}/issues/62), [#38]({{ site.repository }}/issues/38)) -- Bug Fixes -- Categories isn't always an array ([#73]({{ site.repository }}/issues/73)) -- Empty tags causes error in read_posts ([#84]({{ site.repository }}/issues/84)) -- Fix pagination to adhere to read/render/write paradigm -- Test Enhancement -- cucumber features no longer use site.posts.first where a better - alternative is available - +- Cucumber features no longer use site.posts.first where a better alternative is available -## 0.5.6 / 2010-01-08 -- Bug Fixes -- Require redcloth >= 4.2.1 in tests ([#92]({{ site.repository }}/issues/92)) -- Don't break on triple dashes in yaml frontmatter ([#93]({{ site.repository }}/issues/93)) - +- Don't break on triple dashes in front matter ([#93]({{ site.repository }}/issues/93)) ### Minor Enhancements -- Allow .mkd as markdown extension -- Use $stdout/err instead of constants ([#99]({{ site.repository }}/issues/99)) -- Properly wrap code blocks ([#91]({{ site.repository }}/issues/91)) -- Add javascript mime type for webrick ([#98]({{ site.repository }}/issues/98)) +{: #minor-enhancements-v0-5-6} - -## 0.5.5 / 2010-01-08 -- Bug Fixes -- Fix pagination % 0 bug ([#78]({{ site.repository }}/issues/78)) -- Ensure all posts are processed first ([#71]({{ site.repository }}/issues/71)) - - -## NOTE -- After this point I will no longer be giving credit in the history; - that is what the commit log is for. +- After this point I will no longer be giving credit in the history; that is what the commit log is for. - ## 0.5.4 / 2009-08-23 -- Bug Fixes -- Do not allow symlinks (security vulnerability) +{: #v0-5-4} - -## 0.5.3 / 2009-07-14 -- Bug Fixes -- Solving the permalink bug where non-html files wouldn't work - ([@jeffrydegrande](https://github.com/jeffrydegrande)) - +{: #v0-5-3} -## 0.5.2 / 2009-06-24 -- Enhancements -- Added --paginate option to the executable along with a paginator object - for the payload ([@calavera](https://github.com/calavera)) -- Upgraded RedCloth to 4.2.1, which makes `` tags work once - again. -- Configuration options set in config.yml are now available through the - site payload ([@vilcans](https://github.com/vilcans)) -- Posts can now have an empty YAML front matter or none at all - ([@bahuvrihi](https://github.com/bahuvrihi)) - Bug Fixes -- Fixing Ruby 1.9 issue that requires to_s on the err object - ([@Chrononaut](https://github.com/Chrononaut)) -- Fixes for pagination and ordering posts on the same day ([@ujh](https://github.com/ujh)) -- Made pages respect permalinks style and permalinks in yml front matter - ([@eugenebolshakov](https://github.com/eugenebolshakov)) -- Index.html file should always have index.html permalink - ([@eugenebolshakov](https://github.com/eugenebolshakov)) -- Added trailing slash to pretty permalink style so Apache is happy - ([@eugenebolshakov](https://github.com/eugenebolshakov)) -- Bad markdown processor in config fails sooner and with better message - ([@gcnovus](https://github.com/gcnovus)) -- Allow CRLFs in yaml frontmatter ([@juretta](https://github.com/juretta)) -- Added Date#xmlschema for Ruby versions < 1.9 +- Solving the permalink bug where non-html files wouldn't work (@jeffrydegrande) + - - -## 0.5.1 / 2009-05-06 -### Major Enhancements -- Next/previous posts in site payload ([@pantulis](https://github.com/pantulis), [@tomo](https://github.com/tomo)) -- Permalink templating system -- Moved most of the README out to the GitHub wiki -- Exclude option in configuration so specified files won't be brought over - with generated site ([@duritong](https://github.com/duritong)) -- Bug Fixes -- Making sure config.yaml references are all gone, using only config.yml -- Fixed syntax highlighting breaking for UTF-8 code ([@henrik](https://github.com/henrik)) -- Worked around RDiscount bug that prevents Markdown from getting parsed - after highlight ([@henrik](https://github.com/henrik)) -- CGI escaped post titles ([@Chrononaut](https://github.com/Chrononaut)) - +- Fixed syntax highlighting breaking for UTF-8 code (@henrik) +- Worked around RDiscount bug that prevents Markdown from getting parsed after highlight (@henrik) +- CGI escaped post titles (@Chrononaut) -## 0.5.0 / 2009-04-07 -### Minor Enhancements -- Ability to set post categories via YAML ([@qrush](https://github.com/qrush)) -- Ability to set prevent a post from publishing via YAML ([@qrush](https://github.com/qrush)) -- Add textilize filter ([@willcodeforfoo](https://github.com/willcodeforfoo)) -- Add 'pretty' permalink style for wordpress-like urls ([@dysinger](https://github.com/dysinger)) -- Made it possible to enter categories from YAML as an array ([@Chrononaut](https://github.com/Chrononaut)) -- Ignore Emacs autosave files ([@Chrononaut](https://github.com/Chrononaut)) -- Bug Fixes -- Use block syntax of popen4 to ensure that subprocesses are properly disposed ([@jqr](https://github.com/jqr)) -- Close open4 streams to prevent zombies ([@rtomayko](https://github.com/rtomayko)) -- Only query required fields from the WP Database ([@ariejan](https://github.com/ariejan)) -- Prevent `_posts` from being copied to the destination directory ([@bdimcheff](https://github.com/bdimcheff)) -- Refactors -- Factored the filtering code into a method ([@Chrononaut](https://github.com/Chrononaut)) -- Fix tests and convert to Shoulda ([@qrush](https://github.com/qrush), [@technicalpickles](https://github.com/technicalpickles)) -- Add Cucumber acceptance test suite ([@qrush](https://github.com/qrush), [@technicalpickles](https://github.com/technicalpickles)) - +- Factored the filtering code into a method (@Chrononaut) +- Fix tests and convert to Shoulda (@qrush, @technicalpickles) +- Add Cucumber acceptance test suite (@qrush, @technicalpickles) -## 0.4.1 -### Minor Enhancements -- Changed date format on wordpress converter (zeropadding) ([@dysinger](https://github.com/dysinger)) -- Bug Fixes -- Add jekyll binary as executable to gemspec ([@dysinger](https://github.com/dysinger)) - +- Add Jekyll binary as executable to gemspec (@dysinger) -## 0.4.0 / 2009-02-03 -### Major Enhancements -- Switch to Jeweler for packaging tasks - ### Minor Enhancements -- Type importer ([@codeslinger](https://github.com/codeslinger)) -- site.topics accessor ([@baz](https://github.com/baz)) -- Add `array_to_sentence_string` filter ([@mchung](https://github.com/mchung)) -- Add a converter for textpattern ([@PerfectlyNormal](https://github.com/PerfectlyNormal)) -- Add a working Mephisto / MySQL converter ([@ivey](https://github.com/ivey)) -- Allowing .htaccess files to be copied over into the generated site ([@briandoll](https://github.com/briandoll)) -- Add option to not put file date in permalink URL ([@mreid](https://github.com/mreid)) -- Add line number capabilities to highlight blocks ([@jcon](https://github.com/jcon)) +{: #minor-enhancements-v0-4-0} + +- Type importer (@codeslinger) +- `site.topics` accessor (@baz) +- Add `array_to_sentence_string` filter (@mchung) +- Add a converter for textpattern (@PerfectlyNormal) +- Add a working Mephisto / MySQL converter (@ivey) +- Allowing .htaccess files to be copied over into the generated site (@briandoll) +- Add option to not put file date in permalink URL (@mreid) +- Add line number capabilities to highlight blocks (@jcon) - Bug Fixes -- Fix permalink behavior ([@cavalle](https://github.com/cavalle)) -- Fixed an issue with pygments, markdown, and newlines ([@zpinter](https://github.com/zpinter)) -- Ampersands need to be escaped ([@pufuwozu](https://github.com/pufuwozu), [@ap](https://github.com/ap)) -- Test and fix the site.categories hash ([@zzot](https://github.com/zzot)) -- Fix site payload available to files ([@matrix9180](https://github.com/matrix9180)) +- Fix permalink behavior (@cavalle) +- Fixed an issue with pygments, markdown, and newlines (@zpinter) +- Ampersands need to be escaped (@pufuwozu, @ap) +- Test and fix the site.categories hash (@zzot) +- Fix site payload available to files (@matrix9180) - ## 0.3.0 / 2008-12-24 -### Major Enhancements -- Added --server option to start a simple WEBrick server on destination - directory ([@johnreilly](https://github.com/johnreilly) and [@mchung](https://github.com/mchung)) +{: #v0-3-0} - +{: #major-enhancements-v0-3-0} -### Minor Enhancements -- Added post categories based on directories containing `_posts` ([@mreid](https://github.com/mreid)) -- Added post topics based on directories underneath `_posts` -- Added new date filter that shows the full month name ([@mreid](https://github.com/mreid)) -- Merge Post's YAML front matter into its to_liquid payload ([@remi](https://github.com/remi)) -- Restrict includes to regular files underneath `_includes` -- Bug Fixes -- Change YAML delimiter matcher so as to not chew up 2nd level markdown - headers ([@mreid](https://github.com/mreid)) -- Fix bug that meant page data (such as the date) was not available in - templates ([@mreid](https://github.com/mreid)) -- Properly reject directories in `_layouts` +- Added `--server` option to start a simple WEBrick server on destination directory (@johnreilly and @mchung) - -## 0.2.1 / 2008-12-15 -- Major Changes -- Use Maruku (pure Ruby) for Markdown by default ([@mreid](https://github.com/mreid)) -- Allow use of RDiscount with --rdiscount flag - +- Use Maruku (pure Ruby) for Markdown by default (@mreid) +- Allow use of RDiscount with `--rdiscount` flag ### Minor Enhancements -- Don't load directory_watcher unless it's needed ([@pjhyett](https://github.com/pjhyett)) +{: #minor-enhancements-v0-2-1} - +- Don't load directory_watcher unless it's needed (@pjhyett) -## 0.2.0 / 2008-12-14 -- Major Changes -- related_posts is now found in site.related_posts - +- related_posts is now found in `site.related_posts` -## 0.1.6 / 2008-12-13 -- Major Features -- Include files in `_includes` with {% raw %}`{% include x.textile %}`{% endraw %} - -## 0.1.5 / 2008-12-12 -### Major Enhancements -- Code highlighting with Pygments if --pygments is specified -- Disable true LSI by default, enable with --lsi - +{: #major-enhancements-v0-1-5} -### Minor Enhancements -- Output informative message if RDiscount is not available ([@JackDanger](https://github.com/JackDanger)) -- Bug Fixes -- Prevent Jekyll from picking up the output directory as a source ([@JackDanger](https://github.com/JackDanger)) -- Skip `related_posts` when there is only one post ([@JackDanger](https://github.com/JackDanger)) +- Code highlighting with Pygments if `--pygments` is specified +- Disable true LSI by default, enable with `--lsi` - +{: #minor-enhancements-v0-1-5} -## 0.1.4 / 2008-12-08 +- Output informative message if RDiscount is not available (@JackDanger) - Bug Fixes -- DATA does not work properly with rubygems +- Prevent Jekyll from picking up the output directory as a source (@JackDanger) +- Skip `related_posts` when there is only one post (@JackDanger) + - -## 0.1.3 / 2008-12-06 -- Major Features -- Markdown support ([@vanpelt](https://github.com/vanpelt)) -- Mephisto and CSV converters ([@vanpelt](https://github.com/vanpelt)) -- Code hilighting ([@vanpelt](https://github.com/vanpelt)) -- Autobuild -- Bug Fixes -- Accept both \r\n and \n in YAML header ([@vanpelt](https://github.com/vanpelt)) - +- Accept both `\r\n` and `\n` in YAML header (@vanpelt) -## 0.1.2 / 2008-11-22 -- Major Features -- Add a real "related posts" implementation using Classifier -- Command Line Changes -- Allow cli to be called with 0, 1, or 2 args intuiting dir paths - if they are omitted - +- Allow cli to be called with 0, 1, or 2 args intuiting dir paths if they are omitted -## 0.1.1 / 2008-11-22 -- Minor Additions -- Posts now support introspectional data e.g. {% raw %}`{{ page.url }}`{% endraw %} - -## 0.1.0 / 2008-11-05 -- First release -- Converts posts written in Textile -- Converts regular site pages -- Simple copy of binary files - -## 0.0.0 / 2008-10-19 -- Birthday! - +{: #v0-0-0} +- Birthday! diff --git a/_docs/includes.md b/_docs/includes.md new file mode 100644 index 0000000..05175cd --- /dev/null +++ b/_docs/includes.md @@ -0,0 +1,212 @@ +--- +title: Includes(インクルード) +permalink: /docs/includes/ +--- + + +`include`タグは、`_includes`フォルダの他のファイルを入れ込む事を可能にします。 + + + +{% raw %} +```liquid +{% include footer.html %} +``` +{% endraw %} + +Jekyllはソースディレクトリのrootにある`_includes`ディレクトリのファイル(この場合は`footer.html`)を探し、コンテンツに挿入します。 + + + +### 相対的な他のファイルをインクルードする + + +`include_relative`タグを使用することで、現在のファイルから相対的な位置のファイルを挿入することもできます。 + + + +{% raw %} +```liquid +{% include_relative somedir/footer.html %} +``` +{% endraw %} + +`_includes`ディレクトリに挿入するコンテンツを置いておく必要はありません。タグを使用するファイルから、挿入したいファイルを相対パスで指定します。例えば、`_posts/2014-09-03-my-file.markdown`で`include_relative`を使用すると、`_posts`ディレクトリのファイルやそのサブディレクトリのファイルを挿入できます。 + + + +`../`は使用できませんので、上位のディレクトリのファイルは挿入できないことに注意してください。 + + + +`include`タグの変数など全ての機能は、`include_relative`でも使用できます。 + + + +### インクルードファイルを変数で指定する + + +埋め込むファイルの名前は、実際のファイル名の代わりに変数として指定できます。例えば、ページのfront matterに次のように変数を定義したとします。 + + + +```yaml +--- +title: My page +my_variable: footer_company_a.html +--- +``` + +そうすれば、その変数をincludeで参照できます。 + + + +{% raw %} +```liquid +{% if page.my_variable %} + {% include {{ page.my_variable }} %} +{% endif %} +``` +{% endraw %} + +この例では、`_includes`ディレクトリの`footer_company_a.html`ファイルが挿入されます。 + + + +### インクルードにパラメータを渡す + + +インクルードにパラメータを渡すこともできます。例えば、`_includes`フォルダの`note.html`ファイルに次の記載があるとします。 + + + +{% raw %} +```liquid + +``` +{% endraw %} + +`{% raw %}{{ include.content }}{% endraw %}`はincludeでそのパラメータの値を指定した時に入力される変数です。指定は次のように行います。 + + + +{% raw %} +```liquid +{% include note.html content="This is my sample note." %} +``` +{% endraw %} + +`content`の値(今回は`This is my sample note`)が{% raw %}`{{ include.content }}`{% endraw %}に挿入されます。 + + + +インクルードにパラメータを渡すのは、Markdownコンテンツから複雑な部分を隠したいときに役立ちます。 + + + +例えば、画像を特別なフォーマットで使用しようと思っていて、著者にこの複雑なフォーマットを覚えさせたくない場合です。一つの方法として、includeとパラメータを使用して、シンプルにします。以下にincludeを使用したいと思うようなフォーマットの例を示します。 + + + +```html +
+ + Jekyll logo + +
This is the Jekyll logo
+
+``` + +これを、インクルードとパラメータを使用して、次のようにテンプレート化することができます。 + + + +{% raw %} +```liquid +
+ + {{ include.alt }} + +
{{ include.caption }}
+
+``` +{% endraw %} + +このインクルードの内容には5つのパラメータがあります。 + + + +* `url` +* `max-width` +* `file` +* `alt` +* `caption` + +このinclude(ファイル名は`image.html`とします)に全てのパラメータを渡す例です。 + + + +{% raw %} +```liquid +{% include image.html url="http://jekyllrb.com" +max-width="200px" file="logo.png" alt="Jekyll logo" +caption="This is the Jekyll logo." %} +``` +{% endraw %} + +これで、出力されるHTMLは最初に示したものになります。 + + + +ユーザーがパラメータを指定しない状況への対策として、[Liquid's default filter](https://shopify.github.io/liquid/filters/default/){:target="_blank"}を使用できます。 + + + +全体として、オーディオクリップやビデオクリップの挿入、アラート、特別なフォーマットなど、さまざまな用途のテンプレートとして機能するインクルードを作成できます。あまりにも多くのインクルードを使うことは避けるようにしてください。サイトの構築時間が遅くなります。例えば、画像を挿入する度にインクルードを使うのは避けるべきです。(上記のテクニックは特別な画像のための例です。) + + + +### インクルードにパラメータ変数を渡す + + +インクルードに渡したいパラメータが、文字列ではなく変数である場合もあるでしょう。例えば実際の製品の名前ではなく、{% raw %}`{{ site.product_name }}`{% endraw %}を使用して製品の全てのインスタンスを参照している場合です。(この場合、`_config.yml`ファイルで`product_name`キーに製品名が設定されています) + + + +インクルードに渡すパラメータの値に中括弧は使用できません。例えば、{% raw %}`"The latest version of {{ site.product_name }} is now available."`{% endraw %}の値のパラメータは渡せません。 + + + +インクルードに渡す値に変数を含める場合は、その前に全体を変数として格納する必要があります。`capture`タグを使用して変数を作成します。 + + + +{% raw %} +```liquid +{% capture download_note %} +The latest version of {{ site.product_name }} is now available. +{% endcapture %} +``` +{% endraw %} + +captureした変数をインクルードのパラメータとして渡します。文字列ではなくなったので、変数名を引用符で囲まないでください。 + + + +{% raw %} +```liquid +{% include note.html content=download_note %} +``` +{% endraw %} diff --git a/_docs/index.md b/_docs/index.md index 2e651f0..e45dce7 100644 --- a/_docs/index.md +++ b/_docs/index.md @@ -1,136 +1,59 @@ --- -layout: docs -title: ようこそ -next_section: quickstart -permalink: /docs/home/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] +title: クイックスタート +permalink: /docs/ +redirect_from: + - /docs/home/ + - /docs/quickstart/ + - /docs/extras/ --- - - -このサイトは Jekyll の包括的なガイドを目指しています。 -私たちはあなたのサイトの起動と動作、コンテンツの作成と管理、 -サイトの動作や見た目のカスタマイズ、様々な環境へのデプロイのようなトピックをカバーし、 -Jekyll 自体の将来の開発への参加について、いくつかアドバイスします。 - - - -## Jekyll とは一体何ですか? - - - -Jekyll はシンプルな、ブログを意識した静的サイトジェネレータです。 -それは様々なフォーマットの生テキストファイルを含むテンプレートディレクトリをとり、 -[Markdown](http://daringfireball.net/projects/markdown/) (または -[Textile](http://redcloth.org/textile)) や -[Liquid](http://wiki.shopify.com/Liquid) -コンバータを通して実行し、あなたの好みの Web サーバとサービス提供に適した、 -完全かつすぐに公開できる静的 Web サイトを吐き出します。 -Jekyll は GitHub Pages の背後で動いているエンジンでもあります。このことは、 -プロジェクトのページ、ブログまたは Web サイトをGitHub のサーバから**無料で**ホストするために -Jekyll を使用できることを意味します。 - - - -## 役に立つヒント集 - - - -このガイドには Jekyll の利用をより簡単に、より楽しく、より危険が少なく -できる、ささやかだけれども役に立つ多くの情報があります。 -以下に、注意すべき点を示します。 - - - -
-
ProTips™ はあなたが Jekyll からより多くのことを得る助けになります
-

Jekyll の達人になるのを助ける tips や仕掛けがあります!

-
- - - -
-
Notes は役に立つ情報です
-

Jekyll を理解するために時々必要となる追加情報です。

-
- - - -
-
Warnings は、あなたがものを破壊してしまわないよう手助けします
-

もし、あなたが絶体絶命の事態を回避したいなら、これらのメッセージに注意してください。

-
- - - -
-
この注釈付きの機能はリリースされていません
-

このウェブサイトの中には、まだリリースされていない将来のバージョンのJekyllのための情報が含まれています。

-
- - - -もし、あなたが私たちがカバーしていない何かに途中で出くわしたり、 -他の人が便利だと思う tips を知っているならば、[issueに報告(英語)]({{ site.repository }}/issues/new) をお願いします。 -そうすれば、私たちはこのガイドに含めることを検討します。 - - + + +Jekyllはシンプルで、拡張できる、静的サイトジェネレータです。 +好きなマークアップ言語で書かれたテキストを用意すれば、Jekyllはレイアウトを合成して静的サイトを作成します。 +このプロセスを通じ、サイトのURLの見た目をどうするか、レイアウトでどのデータを表示するかなどを調整することができます。 + + +## 説明 + + +1. [Ruby開発環境]({{ "/docs/installation/" | relative_url }})をフルでインストールします + +2. Jekyllと[bundler]({{ "/docs/ruby-101/#bundler" | relative_url }}) [gems]({{ "/docs/ruby-101/#gems" | relative_url }})をインストールします。 + +``` +gem install jekyll bundler +``` +3. `./myblog`に新しいJkyllサイトを作ります + +``` +jekyll new myblog +``` +4. 新しいディレクトリに移動します + +``` +cd myblog +``` +5. サイトを構築し、ローカルサーバ上に出現させます + +``` +bundle exec jekyll serve +``` +6. さあ[http://localhost:4000](http://localhost:4000){:target="_blank"}をブラウザで見てみましょう + + +上記の作業中に予期しないエラーが発生した場合は、[トラブルシューティング]({{ "/docs/troubleshooting/#configuration-problems" | relative_url }})ページや既に紹介した[必要条件]({{ "/docs/installation/#requirements" | relative_url }})ページを参照してください。development headersや他の前提条件が整っていない可能性があります。 + diff --git a/_docs/installation.md b/_docs/installation.md index 0cd7f36..3bf8d1e 100644 --- a/_docs/installation.md +++ b/_docs/installation.md @@ -1,256 +1,41 @@ --- -layout: docs title: インストール -prev_section: quickstart -next_section: usage +description: macOS、GNU/Linux、WindowsへのJikyllインストールガイド permalink: /docs/installation/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - - -Jekyll は数分でインストールと運用準備ができます。 -もし、それが悩みの種となっていたら、[issue(英語)]({{ site.repository }}/issues/new)に -あなたが遭遇した問題を報告することで(または、プルリクエスト送信で)、我々がプロセスを -より簡単に変更するかもしれません。 - - - -### 必要条件 - - - -Jekyll のインストールは簡単で単純明快です。 -しかし、いくつかの必要条件があり、 -インストールを始める前にあなたのシステムで -使用されていることを確かめる必要があります。 - - - -- [Ruby](http://www.ruby-lang.org/en/downloads/) -- [RubyGems](http://rubygems.org/pages/download) -- Linux, Unix または Mac OS X -- [NodeJS](http://nodejs.org)か、あるいは別のJavaScriptランタイム(CoffeeScriptをサポートするため) - - - -
-
Jekyll を Windows で実行する
-

- Windowsは公式にはサポートしていませんが、Windows上でJekyllを実行できるかもしれません。 - Windows向けのドキュメントページに、説明があります。 -

-
- - - -## Rubygems を使ったインストール - - - -Jekyll をインストールする最もよい方法は -[RubyGems](http://rubygems.org/pages/download) を経由する事です。 -ターミナルプロンプトで、単純に Jekyll をインストールするには -以下のコマンドを実行します。 - - - -{% highlight bash %} -$ gem install jekyll -{% endhighlight %} - - - -Jekyll の gem の全ての依存関係は、上記のコマンドで自動的にインストールされるため、 -あなたはそれらについて心配する必要はありません。 -もし Jekyll のインストールに問題が発生した場合、 -Jekyll コミュニティは、皆のための体験を向上できるので -[トラブルシューティング](../troubleshooting/) ページをチェックするか、 -[その問題を報告(英語)]({{ site.repository }}/issues/new) してください。 - - - -
-
Xcode コマンドラインツールをインストール
-

- ネイティブ拡張を利用したJekyllの依存関係をインストールする際に問題が生じた場合、 - あなたがMax OS Xを使っているなら、Xcodeと、 - 付属のコマンドラインツールをインストールする必要があるでしょう。 - ダウンロードは、 - Preferences → Downloads → Components. -

-
- - - -## Pre-releases - - - -pre-release をインストールするためには、必要なものをインストールした状態で、以下を実行してください。 - - - -{% highlight bash %} -gem install jekyll --pre -{% endhighlight %} - - - -このコマンドで、最新の pre-release がインストールできます。もし、特定のバージョンの pre-release を使いたい場合は `-v` オプションを使い、インストールしたいバージョンを指定してください。 - - - -{% highlight bash %} -gem install jekyll -v '2.0.0.alpha.1' -{% endhighlight %} - - - -もし、開発バージョンの Jekyll をインストールしたい場合、少し手順が複雑です。 -開発バージョンでは最新の素晴らしい利点を得ることができますが、安定性に欠ける恐れがあります。 - - - -{% highlight bash %} -$ git clone git://github.com/jekyll/jekyll.git -$ cd jekyll -$ script/bootstrap -$ bundle exec rake build -$ ls pkg/*.gem | head -n 1 | xargs gem install -l -{% endhighlight %} +--- --> - +Jekyllは多くのシステムにインストールできる[Ruby Gem]({{ "/docs/ruby-101/#gems" | relative_url }})です。 + -## その他の追加機能 +## 必要条件 + - +* [Ruby](https://www.ruby-lang.org/en/downloads/){:target="_blank"}バージョン{{ site.min_ruby_version }}以上、全てのdevelopment headersを含む。(Rubyのバージョンは、`ruby -v`の実行で確認できます) +* [RubyGems](https://rubygems.org/pages/download){:target="_blank"}(`gem -v`の実行で確認できます) +* [GCC](https://gcc.gnu.org/install/){:target="_blank"}と[Make](https://www.gnu.org/software/make/){:target="_blank"}(あなたのシステムにこれらがインストールされていない場合は、システムのコマンドラインから`gcc -v`、`g++ -v`や`make -v`を実行することで確認できます) -Jekyll には、インストールした方がよい、 Jekyll の使用プランに応じてサポートする -いくつかの(オプションの)追加機能があります。 -これらの追加は LaTeX サポートやコンテンツレンダリングエンジンの選択を含みます。 -詳細については [the extras page](../extras/) をチェックしてください。 + - +## ガイド + -
-
ProTip™: シンタックスハイライト有効化
-

- Jekyll を使用している人ならば、 Pygments を使用して - シンタックスハイライトを有効化したほうがよいでしょう。 - これ以上進む前にやり方を調べるべきです。 -

-
+詳しいインストールの手順は、お使いのOSのガイドをご覧ください。 - + -今やあなたは全てをインストールしたに違いないのだから、さあ取り掛かろう! +* [macOS]({{ "/docs/installation/macos/" | relative_url }}) +* [Ubuntu Linux]({{ "/docs/installation/ubuntu/" | relative_url }}) +* [Other Linux distros]({{ "/docs/installation/other-linux" | relative_url }}) +* [Windows]({{ "/docs/installation/windows/" | relative_url }}) - + diff --git a/_docs/installation/macos.md b/_docs/installation/macos.md new file mode 100644 index 0000000..9b6c51b --- /dev/null +++ b/_docs/installation/macos.md @@ -0,0 +1,186 @@ +--- +title: Jekyll on macOS +permalink: /docs/installation/macos/ +--- + +## コマンドラインツールのインストール + + +最初に、ネイティブエクステンションをコンパイルできるようにするために、コマンドラインツールをインストールします。ターミナルを開いて、実行します。 + + + +```sh +xcode-select --install +``` + +## Rubyのインストール +## Install Ruby + +JekyllはRuby > {{ site.min_ruby_version }}が必須です。 +macOS Mojave 10.14には、ruby 2.3.xのみ付属していますので、新しいバージョンのRubyをインストールする必要があります。 + + + +### With Homebrew {#brew} + +最新のRubyバージョンを実行するには、[Homebrew](https://brew.sh){:target="_blank"}を通じてインストールする必要があります。 + + + +```sh +# Install Homebrew +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +brew install ruby +``` + +brew Rubyパスをshell configに追加するのを忘れないでください。 + + + +``` +export PATH=/usr/local/opt/ruby/bin:$PATH +``` + +ターミナルを再起動し、Rubyのセットアップの更新を確認します。 + + + +```sh +which ruby +# /usr/local/opt/ruby/bin/ruby + +ruby -v +# ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18] +``` + +現在の安定版Rubyを実行できるようになりました。 + + + +### With rbenv {#rbenv} + +複数のRubyバージョンを管理するために、[rbenv](https://github.com/rbenv/rbenv){:target="_blank"}を使用することもあります。これは、プロジェクトで特定のRubyバージョンを実行する必要がある場合には、とても便利です。 + + + +```sh +# Install Homebrew +/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + +# Install rbenv and ruby-build +brew install rbenv + +# Setup rbenv integration to your shell +rbenv init + +# Check your install +curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash +``` + +変更を有効にするために、ターミナルを再起動します。これで、選択したRubyバージョンをインストールできます。最新の安定版Rubyを使ってみましょう。 + + + +```sh +rbenv install 2.6.2 +rbenv global 2.6.2 +ruby -v +# ruby 2.6.2p47 (2019-03-13 revision 67232) [x86_64-darwin18] +``` + +以上です。[rbenv command references](https://github.com/rbenv/rbenv#command-reference){:target="_blank"}を読んで、プロジェクトでの異なるRubyバージョンの使い方を学んでください。 + + + +## Jekyllのインストール + + +後は、[Bundler]({{ "/docs/ruby-101/#bundler" | relative_url }})とJekyllをインストールするだけです。 + + + +### ローカルインストール + + +```sh +gem install --user-install bundler jekyll +``` + +それからRubyのバージョンを取得します。 + + + +```sh +ruby -v +# ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin18] +``` + +それから、パスファイルに以下を追加します。`X.X`には、あなたのRubyバージョンの最初の2桁を入れてください。 + + + +``` +export PATH=$HOME/.gem/ruby/X.X.0/bin:$PATH +``` + +gemパスがホームディレクトリを指していることを確認するには、次のコマンドを実行します。 + + + +```sh +gem env +``` + +`GEM PATHS:`がホームディレクトリを指していることを確認してください。 + + + +{: .note } +最初の2桁が異なるRubyバージョンに更新する度に、パスもあわせて更新する必要があります。 + + + +### グローバルインストール + + +{: .note .warning} +ファイルのパーミッションの問題を解決し、`sudo`を使用するためにRuby Gemsをグローバル環境にインストールすることを、強く推奨します。 + + + +#### Mojave(10.14)の場合 + + +MojaveのSIPプロテクションのため、以下を実行しなければなりません。 + + + +```sh +sudo gem install bundler +sudo gem install -n /usr/local/bin/ jekyll +``` + +#### Mojave以前(<10.14) + + +次を実行するだけです。 + + + +```sh +sudo gem install bundler jekyll +``` + +## 問題が発生しましたか? + + +[トラブルシューティング]({{ "/docs/troubleshooting/" | relative_url }})ページを確認したり、[フォーラムで助けを求めて](https://talk.jekyllrb.com){:target="_blank"}ください。 + + diff --git a/_docs/installation/other-linux.md b/_docs/installation/other-linux.md new file mode 100644 index 0000000..549cb5a --- /dev/null +++ b/_docs/installation/other-linux.md @@ -0,0 +1,27 @@ +--- +title: Jekyll on Linux +permalink: /docs/installation/other-linux/ +--- +他のLinuxディストリビューションへのインストールは、[Ubuntu](../ubuntu/)の場合とよく似ています。 + + + +Fedoraでは、dependenciesを以下でインストールできます。 + + + + ```sh +sudo dnf install ruby ruby-devel @development-tools +``` + +Debianの場合。 + + + +```sh +sudo apt-get install ruby-full build-essential +``` + +後は[Ubuntu](../ubuntu/)と同じです。 + + diff --git a/_docs/installation/ubuntu.md b/_docs/installation/ubuntu.md new file mode 100644 index 0000000..c9714f2 --- /dev/null +++ b/_docs/installation/ubuntu.md @@ -0,0 +1,38 @@ +--- +title: Jekyll on Ubuntu +permalink: /docs/installation/ubuntu/ +--- +Jekyllをインストールする前に、必須のrequiredを全て揃っていることを確認する必要があります。 + + + +```sh +sudo apt-get install ruby-full build-essential zlib1g-dev +``` + +rootユーザーとして、Ruby Gemsをインストールしないのがいいです。ですので、ユーザーアカウントをgemのインストールディレクトリとして設定する必要があります。以下のコマンドは、gemのインストールパスを設定するために、`~/.bashrc`に環境変数を追加します。 + + + +```sh +echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc +echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc +echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc +source ~/.bashrc +``` + +最後に、Jekyllをインストールします。 + + + +```sh +gem install jekyll bundler +``` + +以上です。Jekyllを使い始める準備ができました。 + + diff --git a/_docs/installation/windows.md b/_docs/installation/windows.md new file mode 100644 index 0000000..0511ded --- /dev/null +++ b/_docs/installation/windows.md @@ -0,0 +1,219 @@ +--- +title: Jekyll on Windows +permalink: /docs/installation/windows/ +redirect_from: + - /docs/windows/ +--- + +Windowsはまだ公式にサポートされたプラットフォームではありません。ですが、適切な調整を行ってJekyllを使用することができます。このページには、Windowsユーザーから掘り起こされた知識や教訓を集めています。 + + + + +## Jekyllのインストール + + +### Rubyインストーラでインストール + + +JekyllをWindowsで実行する最も簡単な方法は、[Rubyインストーラ](https://rubyinstaller.org/){:target="_blank"}を使用することです。 + + + +RubyインストーラはRuby言語、実行環境、重要なドキュメンテーションなどを含むWindowsベースの自己完結型インストーラです。RubyInstaller-2.4以上のみをカバーしています。古いバージョンは手動で[Devkitをインストール](https://github.com/oneclick/rubyinstaller/wiki/Development-Kit){:target="_blank"}する必要があります。 + + + +1. [RubyInstaller Downloads](https://rubyinstaller.org/downloads/){:target="_blank"}から**Ruby+Devkit**バージョンをダウンロードして、インストールしてください。インストールはデフォルトのオプションを使用してください。 +2. インストールウィザードの最後の段階で、`ridk install`ステップを実行してください。これはネイティブ環境でgemsをインストールするためです。詳しくは[RubyInstaller Documentation](https://github.com/oneclick/rubyinstaller2#using-the-installer-on-a-target-system){:target="_blank"}を読んでください。 +3. `PATH`環境変数への変更を有効にするため、スタートメニューから新しいコマンドプロンプトを開きます。`gem install jekyll bundler`でJekyllとBundlerをインストールします。 +4. Jekyllがインストールされたか、`jekyll -v`で確認します。 + + + +以上で、Jekyllを使用する準備ができました! + + + +### Windows 10でのBashによるインストール + + +Windows10の1607以降を使用している場合、Linux用のWindowsサブシステムでJekyllを[インストール](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide){:target="_blank"}するオプションがあります。 + + + +*注:*[Windows Subsystem for Linux](https://msdn.microsoft.com/en-us/commandline/wsl/about){:target="_blank"}を有効にする必要があります。 + + + +まず、全てのパッケージとリポジトリを最新にします。新しいコマンドプロンプトを開き、以下の入力します。 + + + +```sh +bash +``` + +コマンドプロンプトインスタンスはBashインスタンスになります。今度はリポジトリリストとパッケージを更新しなければなりません + + + +```sh +sudo apt-get update -y && sudo apt-get upgrade -y +``` + +Rubyがインストールできます。それを行うために、Ruby for Ubuntuの最適化バージョンをホストする[BrightBox](https://www.brightbox.com/docs/ruby/ubuntu/){:target="_blank"}のリポジトリを使用します。 + + + +```sh +sudo apt-add-repository ppa:brightbox/ruby-ng +sudo apt-get update +sudo apt-get install ruby2.5 ruby2.5-dev build-essential dh-autoreconf +``` + +次はRuby gemsをアップデートしましょう。 + + + +```sh +gem update +``` + +後はJekyllのインストールを残すのみです。 + + + +```sh +gem install jekyll bundler +``` + +(*注:ここでは`sudo`を使いません。*) + + + +次を実行して、Jekyllが正しくインストールされているかを確認します。 + + + +```sh +jekyll -v +``` + +**以上です!** + + + +`_posts`フォルダを調べることで、時間管理がきちんとできているかを確認することができます。現在の日付けがファイル名のmarkdownファイルがあるはずです。 + + + +
+
superuserでないアカウントの問題
+ +

`jekyll new`コマンドで"Your user account isn't allowed to install to the system RubyGems"のエラーが表示されたら、 トラブルシューティングの"SuperuserでなくJekyllを実行する"の項を見てください。

+ +
+ +**注:** Bash on Ubuntu on Windowsは、まだ開発中です。実行で問題が発生するかもしれません。 + + + + +## エンコード + + +UTF-8を使用している場合、必ず`BOM`はつけないでください。Jekyllに非常に悪いことが起こります。これは、WindowsでJekyllを実行する場合に顕著です。 + + + +さらに、サイト生成プロセス中に`Liquid Exception: Incompatible character encoding`エラーが発生した場合は、コンソールウィンドウのコードページをUTF-8に変更する必要があります。これは次のコマンドで実行できます。 + + + +```sh +chcp 65001 +``` + +## タイムゾーンの管理 + + +Windowsはゾーン情報データのネイティブソースを持っていないので、RubyインタプリタはIANAタイムゾーンを理解しないでしょう。ですので、`TZ`環境変数ではデフォルトのUTC/GMT 00:00を使用します。 + + + +Windowsユーザーは、タイムゾーンを定義するPOSIX形式を使用するようにキーを設定してブログのタイムゾーンを定義することもできます。ですが、DSTルールの変更に合わせて時計を変更することになると、それほどユーザーフレンドリーではありませんでした。 + + + +Jekyllは現在、確立された[IANAタイムゾーンデータベース](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones){:target="_blank"}に基づいてタイムゾーンを内部で設定するために、Rubygemを使用しています。 Jekyll v3.4以降で作成された「新しい」ブログでは、デフォルトで以下のものが`Gemfile`に追加されますが、既存のサイトではWindowsで開発できるように`Gemfile`を更新(およびインストール)する必要があります。 + + + +```ruby +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] +``` + +
+
TZInfo 2.0 不適合
+ +

+ TZ情報ライブラリv2.0はタイムゾーンオフセットの計算方法に変更を加えました。サイトがWindows上でJekyll 3.xでビルドされている場合、このことは投稿の日時を不正確にするでしょう。 +

+ +

+ ですので、Gemfilegem 'tzinfo', '~> 1.2'をリストして、タイムゾーンライブラリをv1.2以上にロックすることをお勧めします。 +

+ +
+ +## 自動再作成 + + +Jekyllは構築またはサーブ中に`--watch`スイッチが指定された場合、`listen` gemを使用して変更を監視します。 `listen`はUNIXシステムを組み込みでサポートしていますが、Windowsとの互換性のために追加のgemが必要になるかもしれません。 + + + +Windows上で自動再生成に問題があった場合は、サイトの`Gemfile`に以下を追加してください。 + + + +```ruby +gem 'wdm', '~> 0.1.1', :install_if => Gem.win_platform? +``` + +Rubyインストーラのバージョンの[Ruby+Devkit](https://rubyinstaller.org/downloads/){:target="_blank"}を使用しなければなりませんし、`wdm`gemのインストールを成功させるためにMSYS2ビルドツールのインストールが必要です。 + + diff --git a/_docs/layouts.md b/_docs/layouts.md new file mode 100644 index 0000000..6498507 --- /dev/null +++ b/_docs/layouts.md @@ -0,0 +1,181 @@ +--- +title: レイアウト +description: placeholder +permalink: /docs/layouts/ +--- + + +レイアウトはコンテンツを包み込むテンプレートです。テンプレートでソースコードを一カ所にまとめることができますので、フッターやナビゲーションをページ毎に繰り返す必要がありません。 + + + +レイアウトは`_layouts`ディレクトリに入れます。慣例として、`default.html`という基本テンプレートを用意し、必要に応じて他のレイアウトがこれを[継承](#inheritance)するようにします。 + + + +
+
レイアウトディレクトリ
+ +

+ Jekyllはサイトのsourceのrootかテーマのrootのどちらかで_layoutsディレクトリを探します。 +

+ +

+ 設定ファイルのlayouts_dirキーでレイアウトを入れるディレクトリの名前を変更できますが、そのディレクトリはサイトのsourceのrootにある必要があります。 +

+ +
+ + +## 使い方 + + +まず始めに、`default.html`にテンプレートのソースコードを書きます。`content`は特別な変数で、ポストやページのコンテンツをレンダリングして、入れ込みます。 + + + + + +{% raw %} +``` + + + + + {{ page.title }} + + + + +

{{ page.title }}

+
+ {{ content }} +
+
+ © to me +
+ + +``` +{% endraw %} + +元のファイルの全front matterにアクセスできます。上記の例では、`page.title`がページのfront matterから読み込まれます。 + + + +次にページのfront matterで使用するレイアウトを指定する必要があります。[front matterのデフォルト](/docs/configuration/front-matter-defaults/)を使用して、全ページに設定するのを省くことができます。 + + + +``` +--- +title: My First Page +layout: default +--- + +This is the content of my page +``` + +このページは次のように出力します。 + + + +``` + + + + + My First Page + + + + +

My First Page

+
+ This is the content of my page +
+
+ © to me +
+ + +``` + + +## 継承 + + +レイアウトの継承は、サイトの一部のドキュメントには、既存のレイアウトに何かを追加したい場合に便利です。例としては、ブログのポストには日付と著者を表示したいけれど、他ではベースのレイアウトを使用する場合です。 + + + +その様な場合は、違うレイアウトを作成して、元にするレイアウトをfront matterで指定します。例えば、次のような`_layouts/post.html`を作ります。 + + + +{% raw %} +``` +--- +layout: default +--- +

{{ page.date }} - Written by {{ page.author }}

+ +{{ content }} +``` +{% endraw %} + +これで、ポストはこのレイアウトを使用して、ページではデフォルトを使用することができます。 + + + +## 変数 + + +レイアウトにもfront matterを設定することができます。Liquidを使用する場合のみ違いがあり、`page`変数ではなく、`layout`変数を使用します。例えば: + + + +{% raw %} +``` +--- +city: San Francisco +--- +

{{ layout.city }}

+ +{{ content }} +``` +{% endraw %} diff --git a/_docs/liquid.md b/_docs/liquid.md new file mode 100644 index 0000000..58a3620 --- /dev/null +++ b/_docs/liquid.md @@ -0,0 +1,26 @@ +--- +title: Liquid +permalink: /docs/liquid/ +redirect_from: "/docs/templates/" +--- + +Jekyllでは、テンプレートのためにテンプレート用言語のLiquidを使用しています。 + + +一般的に、Liquidで内容を出力するのに2つの中括弧を使用します(例えば、{% raw %}`{{ variable }}`{% endraw %})。また、論理文の実行には、中括弧とパーセントで囲みます(例えば、{% raw %}`{% if statement %}`{% endraw %})。 +Liquidについて更に学びたい場合は、official Liquid Documentationをチェックしてください。 + + +Jekyllではサイトの構築を助けるため、多くの便利なLiquidの追加機能を提供しています。 + + +* [フィルタ]({{ "/docs/liquid/filters/" | relative_url }}) +* [タグ]({{ "/docs/liquid/tags/" | relative_url }}) + + diff --git a/_docs/liquid/filters.md b/_docs/liquid/filters.md new file mode 100644 index 0000000..8e52696 --- /dev/null +++ b/_docs/liquid/filters.md @@ -0,0 +1,159 @@ +--- +title: #Liquid Filters + Liquidフィルタ +permalink: "/docs/liquid/filters/" +shopify_filter_url: https://shopify.github.io/liquid/filters/ +shopify_filters: +- abs +- append +- at_least +- at_most +- capitalize +- ceil +- compact +- concat +- date +- default +- divided_by +- downcase +- escape +- escape_once +- first +- floor +- join +- last +- lstrip +- map +- minus +- modulo +- newline_to_br +- plus +- prepend +- remove +- remove_first +- replace +- replace_first +- reverse +- round +- rstrip +- size +- slice +- sort +- sort_natural +- split +- strip +- strip_html +- strip_newlines +- times +- truncate +- truncatewords +- uniq +- upcase +- url_decode +- url_encode +--- + +全ての標準Liquid[フィルタ](#standard-liquid-filters)はサポートされています(以下をご覧ください)。 + + + +共通のタスクを簡単にするため、Jekyllはいくらかのフィルタを追加していて、それはこのページに全て掲載しています。また、[プラグイン]({{ "/docs/plugins/" | relative_url }})であなた自身のフィルタを作ることもできます。 + + + +
+ + + + + + + + + {% for filter in site.data.jekyll_filters %} + + + + + {% endfor %} + +
説明フィルタ出力
+

{{ filter.name }}

+

+ {{- filter.description -}} + {%- if filter.version_badge %} + + {{- filter.version_badge -}} + + {% endif -%} +

+
+ {%- for example in filter.examples %} +

{{ example.input }}

+ {% if example.output %}

{{ example.output }}

{% endif %} + {% endfor -%} +
+
+ +### `slugify`フィルタのオプション + + +`slugify`フィルタはオプションを受け入れ、それぞれがフィルタが何をするのかを指定します。デフォルトは`default`です。以下に(何をフィルタするのかと共に)示します。 + + + +- `none`: 文字無し +- `raw`: スペース +- `default`: スペースと、英数字以外の文字 +- `pretty`: スペースと、`._~!$&'()+,;=@`を除く英数字以外の文字 +- `ascii`: スペース、英数字以外の文字、ASCII以外の文字 +- `latin`: `default`に似ている。ラテン文字以外は最初に音訳される(例えば、`àèïòü`は `aeiou`に) {%- include docs_version_badge.html version="3.7.0" -%}。 + + + +### `where`フィルタでの`nil`値の検出 {%- include docs_version_badge.html version="4.0.0" -%} + + +プロパティが`nil`や`""`のドキュメントやページの検出に`where`フィルタを使用できます。例えば、 + + + +```liquid +// `my_prop`が設定されていないか、明示的に`nil`が設定されているポストを選択するために`nil`を使う。 +{% raw %}{% assign filtered_posts = site.posts | where: 'my_prop', nil %}{% endraw %} +``` + + + +```liquid +// `my_prop`に空文字が設定されているポストを選択するために、Liquidの特別なリテラル`empty`や`blank`を使う。 +{% raw %}{% assign filtered_posts = site.posts | where: 'my_prop', empty %}{% endraw %} +``` + + + +{: #standard-liquid-filters} +### 標準のLiquidフィルタ + + +利便性のため、こちらに全ての[Liquidフィルタ]({{ page.shopify_filter_url }})のリストを、公式Liquidドキュメンテーション内の使用例へのリンクと共に掲載しています。 + + + +{% for filter in page.shopify_filters %} +- [{{ filter }}]({{ filter | prepend: page.shopify_filter_url | append: '/' }}){: target="_blank"} +{% endfor %} diff --git a/_docs/liquid/tags.md b/_docs/liquid/tags.md new file mode 100644 index 0000000..5e4e4f3 --- /dev/null +++ b/_docs/liquid/tags.md @@ -0,0 +1,209 @@ +--- +title: タグフィルタ +permalink: "/docs/liquid/tags/" +--- + + +標準のLiquid[タグ](https://shopify.github.io/liquid/tags/control-flow/){:target="_blank"}は全てサポートされています。Jekyllはサイト構築のためにいくつかの組み込みタグを用意しています。また、あなた自身のタグを[プラグイン]({{ "/docs/plugins/" | relative_url }})を使用して作成することもできます。 + + + +## Includes + +サイトに渡り、繰り返すページ構文がある場合は、[include]({{ "/docs/includes/" | relative_url }})は管理面からもよい方法です。 + + + +## コードの構文ハイライト + + +Jekyllは[Rouge](http://rouge.jneen.net){:target="_blank"}のおかげで100言語以上のシンタックスハイライトを組み込みサポートしています。RougeはJekyll 3以上のデフォルトのハイライターです。Jekyll 2でこれを使用するには、`highlighter`を`rouge`に指定し、`rouge`gemが正しくインストールされていることを確認します。 + + + +もしくは、Jekyll 3.x以下ではコードのハイライトに[Pygments](http://pygments.org){:target="_blank"}を使用することもできます。使用するには、システムにPythonをインストールし、`pygments.rb` gemをインストールし、サイトの設定ファイルで`highlighter`を`pygments`に指定しなければなりません。Pygmentsは[100以上の言語](http://pygments.org/languages/){:target="_blank"}をサポートしています。 + + + +
+

Pygmentsの使用は推奨されず、Jekyll 4では公式サポートが無くなります。つまり、highlighter: pygmentsの設定は、Pygmentsのスタイルシートと100%互換のRubyで書かれたRougeの使用に、自動的に変更されます。 +

+ +
+ +コードブロックのシンタックスハイライトのレンダリングは、以下のようにコードを囲みます。 + + + +{% raw %} +```liquid +{% highlight ruby %} +def foo + puts 'foo' +end +{% endhighlight %} +``` +{% endraw %} + +`highlight`タグの引数(上記の例では`ruby`)は言語の識別子です。ハイライトしたい言語の適切な識別子は[Rouge +wiki](https://github.com/jayferd/rouge/wiki/List-of-supported-languages-and-lexers){:target="_blank"}や[Pygments' Lexers page](http://pygments.org/docs/lexers/){:target="_blank"}から“short name”を探してください。 + + + +
+
Jekyllはコードブロックに全てのLiquidフィルタを適用します
+ +

使用する言語に中括弧がある場合、{% raw %}{% endraw %}でコードを囲む必要があります。

+ +
+ +### 行番号 + + +`linenos`という`highlight`の2番目の引数はオプションです。`linenos`引数を含む場合、ハイライトコードは強制的に行番号を含みます。例えば、以下のコードブロックは各行に行番号が振られます。 + + + +{% raw %} +```liquid +{% highlight ruby linenos %} +def foo + puts 'foo' +end +{% endhighlight %} +``` +{% endraw %} + +### シンタックスハイライトのスタイルシート + + +ハイライトを表示するために、ハイライトのスタイルシートを含める必要があります。PygmentsやRougeには、Pygmentsのスタイルシートを使用でき、[こちら](http://help.farbox.com/pygments.html){:target="_blank"}のギャラリーで見つけることができます。 + + + +## リンク + + +### ページのリンク {#link} + + +ポストやページ、コレクションアイテム、ファイルへのリンクは`link`タグで指定したパスへのパーマリンクURLを取得生成します。例えば、`mypage.html`へのリンクに`link`タグを使用した場合、パーマリンクのスタイルを拡張子を含むよう・含まないよう変更したとしても、`link`タグで作成したURLは常に有効です。 + + + +`link`タグを使用するときは、ファイルの元々の拡張子を含めなければなりません。以下にいくつか例を示します。 + + + +{% raw %} +```liquid +{% link _collection/name-of-document.md %} +{% link _posts/2016-07-26-name-of-post.md %} +{% link news/index.html %} +{% link /assets/files/doc.pdf %} +``` +{% endraw %} + +以下のように、Markdownのリンク作成にも`link`タグを使用できます。 + + + +{% raw %} +```liquid +[Link to a document]({% link _collection/name-of-document.md %}) +[Link to a post]({% link _posts/2016-07-26-name-of-post.md %}) +[Link to a page]({% link news/index.html %}) +[Link to a file]({% link /assets/files/doc.pdf %}) +``` +{% endraw %} + +{: .note } +{% include docs_version_badge.html version="v4.0"%}以降、`link`タグの前に`site.baseurl`を追加する必要はありません。 + + + +ポストやページ、コレクションへのパスは、(設定ファイルのある)rootディレクトリからの相対パスで定義されます。既存のページから他のページへのパスではありません。 + + + +例えば、(`pages/folder1/folder2`にある)`page_a.md`で、(`pages/folder1`にある)`page_b.md`へのリンクを作成しているとします。パスは`../page_b.html`ではありません。代わりに、`/pages/folder1/page_b.md`を使用します。 + + + +パスが分からない場合、ページに`{% raw %}{{ page.path }}{% endraw %}`を追加し、パスを表示します。 + + + +`link`または` post_url`タグを使用することの一つの大きな利点はリンク検証です。リンクが存在しない場合、Jekyllはあなたのサイトを構築しません。リンクが壊れていることを警告するので、(リンクが壊れたサイトを構築し公開するのではなく)修正することができます。 + + + +`link`タグにフィルタは追加できませんので注意してください。例えば、`{% raw %}{% link mypage.html | append: "#section1" %} {% endraw %}`のようにLiquidフィルタで文字列を追加することはできません。ページのセクションへのリンクは、通常のHTMlやMarkdownのリンク方法を使用する必要があります。 + + + +### ポストへのリンク + + +サイトのポストへのリンクを行いたい場合、`post_url`タグで指定したポストへのリンクを取得生成できます。 + + + +{% raw %} +```liquid +{{ site.baseurl }}{% post_url 2010-07-21-name-of-post %} +``` +{% endraw %} + +ポストをサブディレクトリに整理している場合は、ポストへのパスにサブディレクトリを含めます。 + + + +{% raw %} +```liquid +{{ site.baseurl }}{% post_url /subdir/2010-07-21-name-of-post %} +``` +{% endraw %} + +`post_url`タグを使用するときは、ファイルの拡張子を含める必要はありません。 + + + +以下のようにMarkdownでのポストへのリンク作成でも、このタグを使用できます。 + + + +{% raw %} +```liquid +[Name of Link]({{ site.baseurl }}{% post_url 2010-07-21-name-of-post %}) +``` +{% endraw %} diff --git a/_docs/maintaining/affinity-team-captain.md b/_docs/maintaining/affinity-team-captain.md new file mode 100644 index 0000000..70d0e10 --- /dev/null +++ b/_docs/maintaining/affinity-team-captain.md @@ -0,0 +1,28 @@ +--- +title: Affinity Team Captains +--- + +**This guide is for affinity team captains.** These special people are **team maintainers** of one of our [affinity teams][] and help triage and evaluate the issues and contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +## Affinity teams & their captains + +The Jekyll project uses [affinity teams][] to help break up the work of incoming issues and pull requests from community members. We receive a sizeable number of issues and pull requests each week; the use of affinity teams helps distribute this load across a number of specialized groups instead of pushing it all onto @jekyll/core. + +## Responsibilities of Team Captains + +Each affinity team has a few captains who manage the issues and pull requests for that team. When an issue or PR is opened with a `/cc` for a given affinity team, @jekyllbot automatically assigns a random affinity team captain to the issue to triage it. They have access to add labels, reassign the issue, give LGTM's, and so forth. While they do not merge PR's today, they are still asked to review PR's for parts of the codebase under their purview. + +## How do I become a team captain? + +Just ask! Feel free to open an issue on `jekyll/jekyll` and add `/cc @jekyll/core`. We can add you. :smile: + +Alternatively, you can email or otherwise reach out to [@oe](https://github.com/oe) directly if you prefer the more private route. + +## Ugh, I'm tired and don't have time to be a captain anymore. What now? + +No sweat at all! Email [@oe](https://github.com/oe) and ask to be removed. Alternatively, you should be able to go to your team's page on GitHub.com (go to https://github.com/jekyll, click "Teams", click the link to your team) and change your status to either "member" or leave the team. + +We realize that being a captain is no easy feat so we want to make it a great experience. As always, communicate as much as you can with us about what is working, and what isn't. Thanks for dedicating some time to Jekyll! :sparkles: + +[affinity teams]: https://teams.jekyllrb.com/ diff --git a/_docs/maintaining/avoiding-burnout.md b/_docs/maintaining/avoiding-burnout.md new file mode 100644 index 0000000..ea9f88a --- /dev/null +++ b/_docs/maintaining/avoiding-burnout.md @@ -0,0 +1,30 @@ +--- +title: "Avoiding Burnout" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +# 1. Use Jekyll + +Maintainers of Jekyll should be using it regularly. This is partly because you won't be a good maintainer unless you can put yourself in the shoes of our users, but also because you may at some point decide to stop using Jekyll, and at that point you should also decide to stop being a maintainer and find other things to work on. + +# 2. No Guilt About Leaving + +All maintainers can stop working on Jekyll at any time without any guilt or explanation (like at a job). We may still ask for your help with questions after you leave but you are under no obligation to answer them. If you create a big mess and then leave you still have no obligations but we may think less of you (or, realistically, probably just revert the problematic work). Also, you should probably take a break from Jekyll at least a few times a year. + +This also means contributors should be consumers. If a maintainer finds they are not using a project in the real-world, they should reconsider their involvement with the project. + +# 3. Prioritise Maintainers Over Users + +It's important to be user-focused but ultimately, as long as you follow #1 above, Jekyll's minimum number of users will be the number of maintainers. However, if Jekyll has no maintainers it will quickly become useless to all users and the project will die. As a result, no user complaint, behaviour or need takes priority over the burnout of maintainers. If users do not like the direction of the project, the easiest way to influence it is to make significant, high-quality code contributions and become a maintainer. + +# 4. Learn To Say No + +Jekyll gets a lot of feature requests, non-reproducible bug reports, usage questions and PRs we won't accept. These should be closed out as soon as we realise that they aren't going to be resolved or merged. This is kinder than deciding this after a long period of review. Our issue tracker should reflect work to be done. + +--- + +Thanks to https://gist.github.com/ryanflorence/124070e7c4b3839d4573 which influenced this document. + +Thanks to [Homebrew's "Avoiding Burnout" document](https://github.com/Homebrew/brew/blob/master/docs/Maintainers-Avoiding-Burnout.md) for providing a perfect base for this document. diff --git a/_docs/maintaining/becoming-a-maintainer.md b/_docs/maintaining/becoming-a-maintainer.md new file mode 100644 index 0000000..00abef5 --- /dev/null +++ b/_docs/maintaining/becoming-a-maintainer.md @@ -0,0 +1,38 @@ +--- +title: "Becoming a Maintainer" +--- + +**This guide is for contributors.** These special people have contributed to one or more of Jekyll's repositories, but do not yet have write access to any. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +So you want to become a maintainer of a Jekyll project? We'd love to have you! Here are some things we like to see from community members before we promote them to maintainers. + +## 1. Use Jekyll + +You want to maintain Jekyll? Use it often. Do weird things with it. Do normal things with it. Does it work? Does it have any weaknesses? Is there a gap in the product that you think should be filled? + +## 2. Help Triage Issues + +Watch the repository you're interested in. Join [an Affinity Team](https://teams.jekyllrb.com) and receive mentions regarding a particular interest area of the project. When you receive a notification for an issue that has not been triaged by a maintainer, dive in. Can you reproduce the issue? Can you determine the fix? [More tips on Triaging an Issue in our maintainer guide](../triaging-an-issue). Every maintainer loves an issue that is resolved before they get to it. :smiley: + +## 3. Write Documentation + +Good documentation means less confusion for our users and fewer issues to triage. Documentation is always in need of fixes and updates as we change the code. Read through the documentation during your normal usage of the product and submit changes as you feel they are necessary. + +## 4. Write Code + +As a maintainer, you will be reviewing pull requests which update code. You should feel comfortable with the Jekyll codebase enough to confidently review any pull request put forward. In order to become more comfortable, write some code of your own and send a pull request. A great place to start is with any issue labeled "bug" in the issue tracker. Write a test which replicates the problem and fails, then work on fixing the code such that the test passes. + +## 5. Review Pull Requests + +Start by reviewing one pull request a week. Leave detailed comments and [follow our guide for reviewing pull requests](../reviewing-a-pull-request). + +## 6. Ask! + +Open an issue describing your contributions to the project and why you wish to be a maintainer. Issues are nice because you can easily reference where you have demonstrated that you help triage issues, write code & documentation, and review pull requests. You may also email any maintainer privately if you do not feel comfortable asking in the open. + +We would love to expand the team and look forward to many more community members becoming maintainers! + +# Helping Out Elsewhere + +In addition to maintainers of our core and plugin code, the Jekyll team is comprised of moderators for our forums. These helpful community members take a look at the topics posted to [https://talk.jekyllrb.com](https://talk.jekyllrb.com) and ensure they are properly categorized and are acceptable under our Code of Conduct. If you would like to be a moderator, email one of the maintainers with links to where you have answered questions and a request to be added as a moderator. More help is always welcome. diff --git a/_docs/maintaining/index.md b/_docs/maintaining/index.md new file mode 100644 index 0000000..500f9db --- /dev/null +++ b/_docs/maintaining/index.md @@ -0,0 +1,48 @@ +--- +title: Jekyllのメンテナンス +permalink: /docs/maintaining/ +--- + + +**このガイドはJekyllの貢献者と維持管理者向けです。**これらの特別な人々は、1つ以上のジキルのリポジトリに貢献したり、他の人々の貢献を統合するのを助けています。こちらに書かれていることに興味を持つかもしれませんが、万人向けのガイドではありません。 +{: .note .info } + + + + +
+
日本語訳注:公式へのリンクです
+

ガイドの対象者および性質上、読む必要がある方は原文を読むべきと判断しました。

+
+ +こんにちは! Jekyllを維持するためのさまざまなプロセスを文書化しています。Jekyllプロジェクトのメンテナになることは大きな責任です。ですから、あなたがメンテナとしてする可能性があるさまざまなタスクのために役立つドキュメントをまとめました。 + + + +- [アフィニティチームとそのキャプテン](https://jekyllrb.com/docs/maintaining/affinity-team-captain/){:target="_blank"} +- [issueの解決](https://jekyllrb.com/docs/maintaining/triaging-an-issue/){:target="_blank"} +- [プルリクエストのレビュー](https://jekyllrb.com/docs/maintaining/reviewing-a-pull-request/){:target="_blank"} +- [プルリクエストのマージ](https://jekyllrb.com/docs/maintaining/merging-a-pull-request/){:target="_blank"} +- [バーンアウトの回避](https://jekyllrb.com/docs/maintaining/avoiding-burnout/){:target="_blank"} +- [スペシャルラベル](https://jekyllrb.com/docs/maintaining/special-labels/){:target="_blank"} +- [新バージョンのリリース](https://jekyllrb.com/docs/maintaining/releasing-a-new-version/){:target="_blank"} + + + + +メンテナになることに興味がありますか? **貢献者**向けのドキュメンテーションはこちらです。 + + + +- [メンテナになる](https://jekyllrb.com/docs/maintaining/becoming-a-maintainer/){:target="_blank"} + + diff --git a/_docs/maintaining/merging-a-pull-request.md b/_docs/maintaining/merging-a-pull-request.md new file mode 100644 index 0000000..0403d05 --- /dev/null +++ b/_docs/maintaining/merging-a-pull-request.md @@ -0,0 +1,55 @@ +--- +title: "Merging a Pull Request" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +## Code Review + +All pull requests should be subject to code review. Code review is a [foundational value](https://blog.fullstory.com/what-we-learned-from-google-code-reviews-arent-just-for-catching-bugs/) of good engineering teams. Besides providing validation of correctness, it promotes a sense of community and gives other maintainers understanding of all parts of the code base. In short, code review is crucial to a healthy open source project. + +**Read our guide for [Reviewing a pull request](../reviewing-a-pull-request) before merging.** Notably, the change must have tests if for code, and at least two maintainers must give it an OK. + +## Merging + +We have [a helpful little bot](https://github.com/jekyllbot) which we use to merge pull requests. We don't use the GitHub.com interface for two reasons: + +1. You can't modify anything on mobile (e.g. titles, labels) +2. We like to provide a consistent paper trail in the `History.markdown` file for each release + +To merge a pull request, leave a comment thanking the contributor, then add the special merge request: + +```text +Thank you very much for your contribution. Folks like you make this project and community strong. :heart: + +@jekyllbot: merge +dev +``` + +The merge request is made up of three things: + +1. `@jekyllbot:` – this is the prefix our bot looks for when processing commands +2. `merge` – the command +3. `+dev` – the category to which the changes belong. + +The categories match the headings in the `History.markdown` file, and they are: + +1. Major Enhancements (`+major`) – major updates or breaking changes to the code which necessitate a major version bump (v3 ~> v4) +2. Minor Enhancements (`+minor`) – minor updates (with the labels `feature` or `enhancement`) which necessitate a minor version bump (v3.1 ~> v3.2) +3. Bug Fixes (`+bug`) – corrections to code which do not change or add functionality, which necessitate a patch version bump (v3.1.0 ~> v3.1.1) +4. Documentation (`+doc`) - changes to the documentation found in `docs/_docs/` +5. Site Enhancements (`+site`) – changes to the source of [https://jekyllrb.com](https://jekyllrb.com) found in `docs/` +6. Development Fixes (`+dev`) – changes which do not affect user-facing functionality or documentation, such as test fixes or bumping internal dependencies +7. Forward Ports (`+port`) — bug fixes applied to a previous version of Jekyll pulled onto `master`, e.g. cherry-picked commits from `3-1-stable` to `master` + +Once @jekyllbot has merged the pull request, you should see three things: + +1. A successful merge +2. Addition of labels for the necessary category if they aren't already applied +3. A commit to the `History.markdown` file which adds a note about the change + +If you forget the category, that's just fine. You can always go back and move the line to the proper category header later. The category is always necessary for `jekyll/jekyll`, but many plugins have too few changes to necessitate changelog categories. + +## Rejoice + +You did it! Thanks for being a maintainer for one of our official Jekyll projects. Your work means the world to our thousands of users who rely on Jekyll daily. :heart: diff --git a/_docs/maintaining/releasing-a-new-version.md b/_docs/maintaining/releasing-a-new-version.md new file mode 100644 index 0000000..f85f499 --- /dev/null +++ b/_docs/maintaining/releasing-a-new-version.md @@ -0,0 +1,89 @@ +--- +title: "Releasing a new version" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +The most important thing to understand before making a release is that there's no need to feel nervous. Most things are revertable, and even if you do publish an incomplete gem version, we can always skip that one. Don't hestitate to contact the other maintainers if you feel unsure or don't know what to do next. + +### Bump the version + +The only important place you need to manually bump the version is in `lib/jekyll/version.rb`. Adjust that, and everything else should work fine. + +### Update the history document + +Replace the first header of the history document with a version milestone. This looks like the following: + +```diff +-## HEAD ++## 3.7.1 / 2018-01-25 +``` + +Adjust the version number and the date. The `## HEAD` heading will be regenerated next time a pull request is merged. + +Once you've done this, update the website by running the following command: + +```sh +bundle exec rake site:generate +``` + +This updates the website's changelog, and pushes the versions in various other places. + +It's recommended that you go over the `History.markdown` file manually one more time, in case there are any spelling errors or such. Feel free to fix those manually, and after you're done generating the website changelog, commit your changes. + +## Write a release post + +In case this isn't done already, you can generate a new release post using the included `rake` command: + +```sh +bundle exec rake site:releases:new[3.8.0] +``` + +where `3.8.0` should be replaced with the new version. Then, write the post. Be sure to thank all of the collaborators and maintainers who have contributed since the last release. You can generate a log of their names using the following command: + +```sh +git shortlog -sn master...v3.7.2 +``` + +where, again `v3.7.2` is the last release. Be sure to open a pull request for your release post. + +### Push the version + +Before you do this step, make sure the following things are done: + +- You have permission to push a new gem version to RubyGems +- You're logged into RubyGems on your command line +- A release post has been prepared, and is ideally already live +- All of the prior steps are done, committed, and pushed to `master` + +Really the only thing left to do is to run this command: + +```sh +bundle exec rake release +``` + +This will automatically build the new gem, make a release commit and tag and then push the new gem to RubyGems. Don't worry about creating a GitHub release, @jekyllbot should take care of that. + +And then, you're done! :tada: Feel free to celebrate! + +If you have access to the [@jekyllrb](https://twitter.com/jekyllrb) Twitter account, you should tweet the release post from there. If not, just ask another maintainer to do it or to give you access. + +### Build the docs + +We package our documentation as a :gem: Gem for offline use. + +This is done with the +[**jekyll-docs**](https://github.com/jekyll/jekyll-docs#building) repository, +and more detailed instructions are provided there. + +## For non-core gems + +If you're not a maintainer for `jekyll/jekyll`, the procedure is much simpler in a lot of cases. Generally, the procedure still looks like this: + +- Bump the gem version manually, usually in `lib//version.rb` +- Adjust the history file +- Run `bundle exec rake release` or `script/release`, depending on which of the two exists +- Rejoice + +Be sure to ask your project's maintainers if you're unsure! diff --git a/_docs/maintaining/reviewing-a-pull-request.md b/_docs/maintaining/reviewing-a-pull-request.md new file mode 100644 index 0000000..a0a6e35 --- /dev/null +++ b/_docs/maintaining/reviewing-a-pull-request.md @@ -0,0 +1,46 @@ +--- +title: "Reviewing a Pull Request" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +## Respond Kindly + +Above all else, please review a pull request kindly. Our community can only be strong if we make it a welcoming and inclusive environment. To further promote this, the Jekyll community is governed by a [Code of Conduct](/docs/conduct/) by which all community members must abide. + +Use emoji liberally :heart: :tada: :sparkles: :confetti_ball: and feel free to be emotive!! Contributions keep this project moving forward and we're always happy to receive them, even if the pull request isn't ultimately merged. + +Mike McQuaid's post on the GitHub blog entitled ["Kindly Closing Pull Requests"](https://github.com/blog/2124-kindly-closing-pull-requests) is a great place to start. It describes various scenarios in which it would be acceptable to close a pull request for reasons other than lack of technical integrity or accuracy. Part of being kind is responding to and resolving pull requests quickly. + +## Respond Quickly + +We should be able to review all pull requests within one week. The only time initial review should take longer is if all the maintainers mysteriously took vacation during the same week. Promptness encourages frequent, high-quality contributions from community members and other maintainers. + +If your response requires a response on the part of the author, please add the `pending-feedback` tag. @jekyllbot will automatically remove the tag once the author of the pull request responds. + +## Resolve Quickly + +Similarly, we should aim to resolve pull requests quickly. If a pull request introduces a feature which does not fit into the core purpose or goal of the project, close it promptly with a kind explanation of why it is not acceptable. + +Leave detailed comments wherever possible. Provide the contributor with context around why the change you are requesting is necessary, or why the question you are asking is important to resolve. The more context we can clearly communicate to the contributor, the better able the contributor is to provide high-quality patches. + +You may close a pull request if more than 30 days pass without a response from the author. + +In some cases, review will involve many weeks of back-and-forth. As long as communication continues, this is fine. Ideally, any PR would be capable of resolution within 30 days of it being opened. + +## Look for Tests + +If this is a code change, are there tests for the updated or added behaviour? Shipping a version with bugs is inevitable, but ensuring changes are tested helps keep bugs and regressions to a minimum. + +## CI Must Pass + +It is fine to ask a contributor to investigate failures on Travis and patch them up before you begin your review. It is helpful to leave a message for the contributor indicating that the tests have failed and that no review will occur before the tests pass. If they ask for help, take a look and assist if you can. + +## Rule of Two + +A pull request may be merged once two maintainers have reviewed the pull request and indicated that it is acceptable to them. There is no need to wait for a third unless one of the two reviewers wishes for another set of eyes. + +## Think Security + +We owe it to our users to ensure that using a theme from the community or building someone else's site doesn't come with built-in security vulnerabilities. Things like where files may be read from and written to are important to keep secure. Jekyll is also the basis for hosted services such as [GitHub Pages](https://pages.github.com), which cannot upgrade when security issues are introduced. diff --git a/_docs/maintaining/special-labels.md b/_docs/maintaining/special-labels.md new file mode 100644 index 0000000..964ff0e --- /dev/null +++ b/_docs/maintaining/special-labels.md @@ -0,0 +1,24 @@ +--- +title: "Special Labels" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +We use a series of "special labels" on GitHub.com to automate handling of some parts of the pull request and issue process. @jekyllbot may automatically apply or remove certain labels based on actions taken by users or maintainers. Below are the labels and how they work: + +## `pending-feedback` + +This label is used to indicate that we need more information from the issue/PR author in order to continue. It may be that you need more info before you can properly triage a bug report, or that you have some unanswered questions about a PR that need to be resolved before moving forward. You can safely ignore any issue with this label, as it is waiting for feedback. + +## `needs-work` & `pending-rebase` + +These labels are used to indicate that the Git state of a pull request must change. Both are removed once a push is registered (a "synchronize" event for the pull request) and the pull request becomes mergable. Add `needs-work` to a PR if, after your review, it requires code changes. Add `pending-rebase` to a PR if the code is fine but the branch is not automatically mergable with the target branch (e.g. `master`). + +## `stale` + +This label is automatically added and removed by @jekyllbot based on activity on an issue or pull request. The rules for this label are laid out in [Triaging an Issue: Staleness and automatic closure](../triaging-an-issue/#staleness-and-automatic-closure). + +## `pinned` + +This label is for @jekyllbot to ignore the age of the issue, which means that the `stale` label won't be automatically added, and the issue won't be closed after a while. This needs to be set manually, and should be set with care. (The `has-pull-request` label does the same thing, but shouldn't be used to _only_ keep an issue open) diff --git a/_docs/maintaining/triaging-an-issue.md b/_docs/maintaining/triaging-an-issue.md new file mode 100644 index 0000000..36bfdcc --- /dev/null +++ b/_docs/maintaining/triaging-an-issue.md @@ -0,0 +1,54 @@ +--- +title: "Triaging an Issue" +--- + +**This guide is for maintainers.** These special people have **write access** to one or more of Jekyll's repositories and help merge the contributions of others. You may find what is written here interesting, but it’s definitely not for everyone. +{: .note .info } + +Before evaluating an issue, it is important to identify if it is a feature +request or a bug. For the Jekyll project the following definitions are used +to identify a feature or a bug: + +**Feature** - A feature is defined as a request that adds functionality to +Jekyll outside of its current capabilities. +**Bug** - A bug is defined as an issue that identifies an error that a user +(or users) encounter when using current Jekyll functionalities. + +## Feature? + +If the issue describes a feature request, ask: + +1. Is this a setting? [Settings are a crutch](http://ben.balter.com/2016/03/08/optimizing-for-power-users-and-edge-cases/#settings-are-a-crutch) for doing "the right thing". Settings usually point to a bad default or an edge case that could be solved easily with a plugin. Keep the :christmas_tree: of settings as small as possible so as not to reduce the usability of the product. We like the philosophy "decisions not options." +2. Would at least 80% of users find it useful? If even a quarter of our users won't use it, it's very likely that the request doesn't fit our product's core goal. +3. Is there another way to accomplish the end goal of the request? Most feature requests are due to bad documentation for or understanding of a pre-existing feature. See if you can clarify the end goal of the request. What is the user trying to do? Could they accomplish that goal through another feature we already support? +4. Even if 80% of our users will use it, does it fit the core goal of our project? We are writing a tool for making static websites, not a swiss army knife for publishing more generally. + +Feel free to get others' opinions and ask questions of the issue author, but depending upon the answers to the questions above, it may be out of scope for our project. + +If the request is within scope, prioritize it on the product roadmap with the other maintainers. Apply the appropriate tags and ensure the right people have weighed in to define the feature's scope and implementation. If you want to be the _best ever_, submit a PR yourself which adds the feature. + +## Bug? + +### Reproducibility + +If the bug has clear reproduction steps, take a minute to try them. If it helps, write a test in our test suite for the scenario which replicates the problem. Can you reliably replicate the issue? + +If you can't replicate the issue, post your replication steps which didn't work and ask for clarification from the issue author. + +### Supported Platform + +Is the author using a supported platform? We support the latest versions of macOS, Ubuntu, Debian, CentOS, Fedora, and Arch Linux. + +You may close the issue immediately if the author cannot reproduce the issue on a supported platform. For Windows-related problems, leave a comment letting the user know that Windows is not officially supported, but that they may absolutely continue using the issue to communicate with folks from `@jekyll/windows` to further investigate. Additionally, you can point them to Jekyll Talk (https://talk.jekyllrb.com) as a means of getting support from the community. + +If the user is experiencing issues with GitHub Pages or another hosted platform that we cannot reproduce, please direct them to the platform's support channel and close the issue. + +### What they wanted vs. what they got + +An issue without a clear explanation of what the user got and what they were expecting to get is not an issue we can accurately respond to. If the user doesn't provide this information, please ask for clarification and apply the `pending-feedback` label. This information helps us build test cases such that we do not break the behaviour again in the future. The `pending-feedback` label will be removed automatically once the issue author posts a reply. + +Is what they wanted to get something we want to happen? Sometimes a bug report is actually masquerading as a feature request. See the guidance above for handling feature requests. + +### Staleness and automatic closure + +@jekyllbot will automatically mark issues as `stale` if no activity occurs for at least one month. @jekyllbot leaves a comment asking for information about reproducibility in current versions. If no one responds after another month, the issue is automatically closed. This behavior can be suppressed by setting the [`pinned` label](/docs/maintaining/special-labels/#pinned). diff --git a/_docs/markdown-101.md b/_docs/markdown-101.md new file mode 100644 index 0000000..c1090db --- /dev/null +++ b/_docs/markdown-101.md @@ -0,0 +1,6 @@ +--- +title: Markdown 101 +permalink: /docs/markdown-101/ +--- + +# TO WRITE diff --git a/_docs/migrations.md b/_docs/migrations.md index 4b4feee..98833e1 100644 --- a/_docs/migrations.md +++ b/_docs/migrations.md @@ -1,30 +1,14 @@ --- -layout: docs -title: 他のBlogからの移行 -prev_section: assets -next_section: templates +title: ブログの移行 permalink: /docs/migrations/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -もし、他のブログから Jekyll に移行する場合、 -Jekyll のインポーターは移行の手助けをしてくれます。 -あなたのサイトを Jekyll にインポートする方法については、 -[`jekyll-import` docs site](http://import.jekyllrb.com/docs/home/) で -詳しく知ることができます。 +他のブログシステムからJekyllに移動しようとしている場合、Jekyllのインポート機能が移動を手助けしてくれます。Jekyllへのサイトのインポートについては、[`jekyll-import` docs site](https://import.jekyllrb.com/docs/home/){:target="_blank"}をご覧ください。 - +visit our [`jekyll-import` docs site](https://import.jekyllrb.com/docs/home/). --> diff --git a/_docs/pages.md b/_docs/pages.md index f5cea81..055b641 100644 --- a/_docs/pages.md +++ b/_docs/pages.md @@ -1,210 +1,42 @@ --- -layout: docs -title: ページ作成 -prev_section: drafts -next_section: variables +title: Pages(ページ) permalink: /docs/pages/ --- - - -[Post の書き方](../posts/)に加え、あなたが Jekyll サイトで -やりたいもう一つのことは静的なページを作成することです。 -この方法を利用することにより、 Jekyll はファイルとディレクトリを -コピーします、これを行うのは簡単です。 - - - -## ホームページ - - - -あなたが遭遇するほぼ全ての Web サーバの設定では、 -サイトのルートフォルダで(慣例により) `index.html` と呼ばれる HTML ファイルを探し、 -そしてホームページとして表示します。 -あなたが使用する Web サーバが、いくつかの他のファイル名を -デフォルトとして探しにいくと設定されていない限り、 -このファイルは Jekyll が生成したサイトのホームページに変わります。 - - - -
-
ProTip™: あなたのホームページで layouts を使用する
-

- あなたのサイトの任意の HTML は layouts そして/または includes を - ホームページで使うことができます。 - 共通のコンテンツは、ヘッダーそしてフッターのように、 - レイアウトへ抽出するための優れた候補を作ります。 -

-
- - - -## 追加したページの在り処 - - - -あなたが Page として配置した HTML ファイルが -どのように働いてほしいかは場所に依存します。 -Page を作成する主な方法は 2 つあります: - - +--- --> -- サイトのルートフォルダ内に各々の Page として 配置した HTML ファイル -- サイトのルートに各々の Page としてフォルダを作成し、各々の Page のフォルダ内に配置した index.html ファイル +ページはコンテンツの最も基礎となる要素です。(日付に基づかず、スタッフメンバーやレシピのようなグループでも無い)独立したコンテンツに便利です。 - + -どちらの方法もうまくいき(そして、お互いに組み合わせて使用することができます)、 -唯一の本当の違いは結果の URL です。 +ページを追加する最もシンプルな方法は、rootディレクトリに適した名前のHTMLファイルを追加することです。ページを拡張子を`.md`にしてMarkdownで書くこともできます。ビルド時にHTMLに変換されます。 +サイトのホームページ、aboutページ、コンタクトページ、これらをrootディレクトリに配置する例とURLにどのように関連づけられるかを示します。 - - -### HTML ファイルの命名 - - - -Page を追加するもっとも単純な方法は、ルートディレクトリ内に -あなたが作成したいと思う適切な名前の HTML ファイルをただ追加することです。 -ホームページ、アバウトページやコンタクトページを持つサイトについて、 -ルートディレクトリと関連した URL がどのように見えるかここに表します: - - +and associated URLs might look like: --> -{% highlight bash %} +```sh . -|-- _config.yml -|-- _includes/ -|-- _layouts/ -|-- _posts/ -|-- _site/ -|-- about.html # => http://example.com/about.html +|-- about.md # => http://example.com/about.html |-- index.html # => http://example.com/ └── contact.html # => http://example.com/contact.html -{% endhighlight %} +``` - +多くのページがあるのでしたら、サブフォルダに配置することもできます。ページに使用したサブフォルダは、ビルドしたときも`_site`フォルダの中に同じサブフォルダとして配置されます。 -### 名づけられたフォルダが index HTML ファイルを含んでいる場合 + - - -上記の方法には何の問題もありませんが、しかしながら、 -一部の人々はファイル名の拡張子のようなものがなくても URL を維持したいと思っています。 -Jekyll を使用したページできれいな URL を実現するには、 -あなたは単純にトップレベルのページにあなたがほしいと思う必要なフォルダを作成し、 -そして各ページのフォルダに `index.html` ファイルを配置します。 -この方法では、ページの URL は フォルダ名になり、 -Web サーバは `index.html` ファイルを提供します。 -ここでは、この構造がどのように見えるかの例を示します: - - - -{% highlight bash %} -. -├── _config.yml -├── _includes/ -├── _layouts/ -├── _posts/ -├── _site/ -├── about/ -| └── index.html # => http://example.com/about/ -├── contact/ -| └── index.html # => http://example.com/contact/ -└── index.html # => http://example.com/ -{% endhighlight %} - - +## 出力するURLを変更する + -このアプローチは、すべての人々にはあわないかもしれませんが、 -それはきれいな URL を好む人々のために簡単に動作します。 -最終的に決定するのはあなた自身です! +ビルド後のソースファイルでは、特定のフォルダ構成にしたい場合もあるでしょう。[permalinks]({{ "/docs/permalinks" | relative_url }})を使用することで、出力するURLをコントロールできます。 - \ No newline at end of file + diff --git a/_docs/pagination.md b/_docs/pagination.md index 1f986b4..68e3e45 100644 --- a/_docs/pagination.md +++ b/_docs/pagination.md @@ -1,344 +1,135 @@ --- -layout: docs -title: ページネーション -prev_section: permalinks -next_section: plugins +title: Pagination(ページ分け) permalink: /docs/pagination/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -多くのウェブサイト、とりわけブログにおいては、メインの投稿リストを小さなリストに分割して -複数のページにわたって表示させることがごく一般的に行われています。 -Jekyllはページネーションを組み込んでおり、リストのページ分割のために必要となる -適切なファイルとフォルダを自動生成できます。 +多くのWebサイト、特にブログでは、ポストのリストをいくつかの小さなリストに分けて、複数のページに分けて表示することは一般的です。Jekyllにはページ分けプラグインがあり、ページ区切り付きリストに適切なファイルとフォルダを自動的に生成できます。 - + -
-
ページネーションはHTMLファイル内でのみ動作します
-

- ページネーションはJekyllサイトのMarkdownファイルやTextileファイルでは動作しません。 - HTMLファイルの中で使用された場合のみ動作します。おそらくページネーションは - postsのリストを作成するために使われるでしょうから、このことは問題にならないでしょう。 -

-
+Jekyll 3では、`jekyll-paginate`プラグインが、Gemfileや`_config.yml`の`plugins`に含まれています。Jekyll 2ではスタンダードです。 + + -

- Pagination does not work with Markdown or Textile files in your Jekyll site. - It will only work when used within HTML files. Since you’ll likely be using - this for the list of Posts, this shouldn’t be an issue. + ページ分けはJekyllサイトのMarkdownファイルでは機能しません。index.htmlという名前のHTMLファイルで呼び出されたときのみ機能します。paginate_path設定値でサブディレクトリ無いでページ分けを行うこともできます。

+ ---> - -## ページネーションを有効にする - +## ページ分けの有効化 + -ブログでページネーションを有効にするには、1ページあたりの表示アイテム数の指定を -`_config.yml` に追記します。 +ブログでポストのページ分けを有効にするには、`_config.yml`ふぁいるに1ページに何個のアイテムを表示するかの設定を追加します。 - + -{% highlight yaml %} +```yaml paginate: 5 -{% endhighlight %} +``` - - -生成されたサイトの1ページに表示させたいpost数の最大値を指定してください。 - - - -ページネーションを行うページの生成先を指定することもできます: - - - -{% highlight yaml %} -paginate_path: "blog/page:num" -{% endhighlight %} - - - -この指定は、`blog/index.html` を読み込み、それをLiquidの各分割ページに `paginator` として送り、 -出力を `blog/page:num` に書き込みます。ここで `:num` は `2` から始まるページ番号です。 -もしサイトに12のpostsがあり、 `paginate: 5` が指定されていた場合、 -Jekyllは `blog/index.html` に最初の5件を、 `blog/page2/index.html` に次の5件を、 -`blog/page3/index.html` に最後の2件を書き込んで出力先ディレクトリに配置します。 - - - -## 利用できるLiquidの属性 - - - -ページネーションプラグインは `paginator` Liquidオブジェクトに下記の属性を付与します。 - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
属性内容

page

現在のページ番号

per_page

ページあたりのpostの件数

posts

現在のページのpostのリスト

total_posts

サイトのpostの総件数

total_pages

分割されたページの総数

-

previous_page

-

- 前ページのページ番号。 - 前ページがない場合はnil -

-

previous_page_path

-

- 前ページのパス。 - 前ページがない場合はnil -

-

next_page

-

- 次ページのページ番号。 - 次ページがない場合はnil -

-

next_page_path

-

- 次ページのパス。 - 次ページがない場合はnil -

-
-
+数字は、生成したサイトで1ページに表示するポストの最大数です。 - + -
-
ページネーションはタグとカテゴリをサポートしていません
-

ページネーションでは、各ページのYAML Front Matterにどのような変数が - 指定されているかには関知せず、サイトの posts 全部をページ分割します。 - 現在のところ、共通のタグやカテゴリで紐付けられたグループごとでの - ページネーションはできません。posts に限定されているため、ドキュメントの - 任意のコレクションを含めることはできません。 +ページ分けしたページの出力先も指定できます。 + + + +```yaml +paginate_path: "/blog/page:num/" +``` + +これで`blog/index.html`を読み込み、`paginator`としてLiquidのページ分けしたページを送り、`blog/page:num/`に出力します。ここで`:num`には`2`から始まるページ番号が入ります。 +`paginate: 5`の設定で12個のポストをページ分けした場合、Jekyllは`blog/index.html`には最初の5個、`blog/page2/index.html`には次の5個、`blog/page3/index.html`には最後の2個を出力します。 + + + +

+
パーマリンクを設定しないでください
+ +

+ ブログページのfront matterにパーマリンクを設定すると、ページ分けが壊れます。パーマリンクは省いてください。 +

+
- +

+ 新しいjekyll-paginate-v2プラグインには更なる機能があります。 + pagination examplesのリポジトリをご覧ください。このプラグインは、GitHub Pagesではサポートされていません。 +

+
---> -## 分割されたページのレンダリング +## 利用可能なLiquid属性 + - +ページ分けプラグインは`paginator`Liquidオブジェクト属性を利用できます。 -`paginator` 変数が使えるようになったので、次は、 -これを使って実際のpostの一覧を表示させます。 -おそらくあなたはサイトのメインページのひとつでリストを表示させたいと思うでしょう。 -ページ分割されたpostsをHTMLファイルでレンダリングするシンプルなやり方の例は下記のとおりです: + - +{% include docs_variables_table.html scope=site.data.jekyll_variables.paginator %} -{% highlight html %} -{% raw %} ---- -layout: default -title: My Blog ---- +
+
Paginationはタグやカテゴリをサポートしていません
+ +

front matterでhidden: trueでないポストを除き、全てのpostsのポストがページ分けされたページに出力されます。現在のページ分けは、同じタグやカテゴリでグループを作る機能はありません。またポストに限定されるため、コレクションのドキュメントは含まれません。

+ +
- -{% for post in paginator.posts %} -

{{ post.title }}

-

- {{ post.date }} -

-
- {{ post.content }} -
-{% endfor %} +## ページ分けしたポストのレンダリング + - - -{% endraw %} -{% endhighlight %} +次に`paginator`変数を使用してポストのリストを実際に表示する必要が出てくるでしょう。 おそらく、サイトのメインページで行いたいのでしょう。以下は、ページ分けされたポストをHTMLファイルにレンダリングする簡単な方法の一例です。 + + - +``` {% endraw %} -{% endhighlight %} --->
-
1ページ目のエッジケースに注意
+
端のページに注意してください
+

- Jekyllは‘page1’フォルダを作らないので、上記のコードはもし /page1 - リンクが生成された場合は動きません。もしこれが問題になるようであれば、 - 扱い方について以下を参照してください。 + Jekyllは‘page1’フォルダを生成しませんので、上記のコードは/page1へのリンクが作成されたときには機能しません。これが問題でしたら、処理方法については下記をご覧ください。

-
- - ---> - -以下のHTMLは1ページ目をうまく取り扱い、現在のページ以外の全ページそれぞれの -リンクの一覧をレンダリングします。 - +次のHTMLはページ1を処理し、現在のページを除く全てのページへのリンクをレンダリングします。 -{% highlight html %} -{% raw %} -{% if paginator.total_pages > 1 %} - -{% endif %} -{% endraw %} -{% endhighlight %} + - diff --git a/_docs/permalinks.md b/_docs/permalinks.md index 4c18322..550499d 100644 --- a/_docs/permalinks.md +++ b/_docs/permalinks.md @@ -1,53 +1,72 @@ --- -layout: docs title: パーマリンク -prev_section: templates -next_section: pagination permalink: /docs/permalinks/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - + +パーマリンクは、ページやポスト、コレクションを出力するパスです。ソースコードのディレクトリ構成と出力するディレクトリ構成を変えることも可能です。 + + + +## Front Matter + +パーマリンクを設定するシンプルな方法は、front matterを使用することです。front matterの`permalink`変数に、好きな出力パスを設定します。 + + + +例えば、`/my_pages/about-me.html`のページの出力するURLを`/about/`にしたい場合は、ページのfront matterを次のようにセットします。 + + + +``` --- ---> - -Jekyll はサイトの URL を構築するための柔軟な方法をサポートしています。 -あなたは[設定項目](../configuration/)か、Post ごとの -[YAML Front Matter](../frontmatter/) 内でサイトのパーマリンクを指定することができます。 -あなたはリンクを作成するか、あなた自身のリンクを作成するために -組み込まれたスタイルのひとつを自由に選択します。 -デフォルトのスタイルは `date` です。 - - - -パーマリンクは動的要素がコロン接頭辞で表現された -テンプレートの URL を作成することによって構築されます。 -例えば、デフォルトの `date` パーマリンクは -`/:categories/:year/:month/:day/:title.html` として定義されています。 - - - -## テンプレート変数 - - +permalink: /about/ +--- +``` + +## グローバル + + +パーマリンクを全てのページのfront matterで設定するのは大変です。幸運なことに、Jekyllでは`_config.yml`でサイト全体のパーマリンクの構成を設定できます。 + + + +全体的なパーマリンクを設定するには、`_config.yml`で`permalink`変数を使用します。望む出力になるように置換用変数(placeholders)を使用できます。例えば: + + + +```yaml +permalink: /:categories/:year/:month/:day/:title:output_ext +``` + +ページやコレクションには時刻やカテゴリが無いことに注意してください。これらのパーマリンクスタイルは出力時には無視されます。 + + + +パーマリンクスタイルの例は、ポストなら`/:categories/:year/:month/:day/:title:output_ext`、ページやコレクションなら`/:title.html`です。 + + + +### 置換用変数(Placeholders) + + +使用できる全置換用変数(Placeholders)のリストです。 + + +
@@ -55,6 +74,8 @@ permalink is defined as `/:categories/:year/:month/:day/:title.html`. + @@ -63,265 +84,276 @@ permalink is defined as `/:categories/:year/:month/:day/:title.html`.

year

- - - - - -
変数 説明
-

Post のファイル名から取得できる年

-
-

month

-
-

Post のファイル名から取得できる月

+

+ ポストのファイル名から取得した4桁の年。ドキュメントのfront matterのdateで上書きされる可能性があります。 +

+
-

i_month

+

short_year

-

Post のファイル名から取得できる0埋めしない月

+

+ ポストのファイル名から取得した西暦の下2桁。ドキュメントのfront matterのdateで上書きされる可能性があります。 +

+
-

day

+

month

-

Post のファイル名から取得できる日

+

+ ポストのファイル名から取得した月(2桁)。ドキュメントのfront matterのdateで上書きされる可能性があります。 +

+
-

i_day

+

i_month

-

Post のファイル名から取得できる前ゼロなしの日

+

+ ポストのファイル名から取得した月(10 の位の0なし)。ドキュメントのfront matterのdateで上書きされる可能性があります。 +

+
-

short_year

+

short_month

-

Post のファイル名から取得できる年の下2桁

+

3文字表記の月。“Jan”など。

+
-

title

+

long_month

+ {% include docs_version_badge.html version="4.0.0" %}
-

Post のファイル名から取得できるタイトル

+

月のフルネーム。“January”など。

+
-

categories

+

day

- この Post に対して指定されたカテゴリ。 - Jekyll は自動的に URL 中のダブルスラッシュを解析し、 - もしそのカテゴリーが存在しない場合は、これを無視します。 + ポストのファイル名から取得した日(2桁)。ドキュメントのfront matterのdateで上書きされる可能性があります。

+
-
- - -

month

+

y_day

-

Month from the Post’s filename

+

ポストのファイル名から取得した、その年の何日目か。 (001..366)

+ -

i_month

+

w_year

+ {% include docs_version_badge.html version="4.0.0" %} -

Month from the Post’s filename without leading zeros.

+

週の所属する年。1月の始めと12月の終わりは月の所属する年と異なる場合があります。

+ -

day

+

week

+ {% include docs_version_badge.html version="4.0.0" %} -

Day from the Post’s filename

+

その年の何週目か。ただし、1月の日が大部分を占める週から始まります。 (01..53)

+ -

i_day

+

w_day

+ {% include docs_version_badge.html version="4.0.0" %} -

Day from the Post’s filename without leading zeros.

+ + -

short_year

+

short_day

+ {% include docs_version_badge.html version="4.0.0" %} -

Year from the Post’s filename without the century.

+

3文字表記の曜日。“Sun”など

+ -

title

+

long_day

+ {% include docs_version_badge.html version="4.0.0" %} -

Title from the Post’s filename

+

曜日名。“Sunday”など。

+ -

categories

+

hour

- The specified categories for this Post. Jekyll automatically parses - out double slashes in the URLs, so if no categories are present, it - will ignore this. + ポストのfront matterのdateから取得した24時間表記の時。(00..23)

- - - - - ---> - -## 組み込みパーマリンクスタイル - - - -
- - - - - - - - - - - - -
パーマリンクスタイルURL テンプレート
-

date

-
-

/:categories/:year/:month/:day/:title.html

+
-

pretty

+

minute

-

/:categories/:year/:month/:day/:title/

+

+ ポストのfront matterのdateから取得した分。(00..59) +

+
-

none

+

second

-

/:categories/:title.html

+

+ ポストのfront matterのdateから取得した秒。(00..59) +

+
-
- - -

pretty

+

slug

-

/:categories/:year/:month/:day/:title/

+

+ ドキュメントのファイル名からのタイトルをスラグ化(数字と文字を除くすべての文字はハイフンに置き換えらる)したもの。front matterのslugで上書きされる可能性があります。 +

+ -

none

+

categories

-

/:categories/:title.html

+

+ ポストのカテゴリ。ポストに複数のカテゴリがある場合、Jekyllは/category1/category2の様に階層化します。また、JekyllはURL内の二重スラッシュを自動的に修復します。そのため、カテゴリが存在しない場合、無視されます。 +

+ ---> - -## パーマリンクスタイルの例 - +### 組み込みフォーマット + -Post 名 `/2009-04-29-slap-chop.textile` が与えられた時: +Jekyllはポストに、以下の便利な組み込みスタイルを提供します。 - +
+ - + @@ -329,72 +361,133 @@ Given a post named: `/2009-04-29-slap-chop.textile`

pretty

+ + + +
パーマリンクスタイル URLテンプレートパーマリンク URL の結果
-

指定なし、または permalink: date

+

date

-

/2009/04/29/slap-chop.html

+

/:categories/:year/:month/:day/:title:output_ext

-

/2009/04/29/slap-chop/index.html

+

/:categories/:year/:month/:day/:title/

-

/:month-:day-:year/:title.html

+

ordinal

-

/04-29-2009/slap-chop.html

+

/:categories/:year/:y_day/:title:output_ext

-

/blog/:year/:month/:day/:title/

+

weekdate

+ {% include docs_version_badge.html version="4.0.0" %}
-

/blog/2009/04/29/slap-chop/

+

/:categories/:year/W:week/:short_day/:title:output_ext

+
+

none

+
+

/:categories/:title:output_ext

- + +
+
front matterでのパーマリンクの指定
+ +

組み込みパーマリンクスタイルはfront matterでは認識されません。ですので、 permalink: prettyは機能しません。

+ +
+ +### コレクション + + +コレクションは、`_config.yml`のコレクションの設定でグローバルパーマリンクを上書きできるオプションがあります。 + + + +```yaml +collections: + my_collection: + output: true + permalink: /:collection/:name +``` + +コレクションは以下の置換用変数を使用できます。 + + +
- - + + + + + + +
URL TemplateResulting Permalink URL変数説明
-

None specified, or permalink: date

+

:collection

-

/2009/04/29/slap-chop.html

+

どのコレクションかのラベル。

+
-

pretty

+

:path

-

/2009/04/29/slap-chop/index.html

+

コレクションのディレクトリからの相対パス。

+
-

/:month-:day-:year/:title.html

+

:name

+
+

ドキュメントのベースファイル名。空白及びアルファベット以外の文字はハイフンに置き換えられます。

+
-

/04-29-2009/slap-chop.html

+

:title

+
+

+ :titleテンプレート変数はfront matterslugがある場合はその値を取得します。無い場合、:title:nameは同じ値です。ファイル名から作成されたスラグとも言えます。 +

+
-

/blog/:year/:month/:day/:title

+

:output_ext

-

/blog/2009/04/29/slap-chop/index.html

+

出力ファイルの拡張子。(デフォルトで含まれており、通常は不要です。)

+
---> diff --git a/_docs/plugins.md b/_docs/plugins.md index 902123b..1db8154 100644 --- a/_docs/plugins.md +++ b/_docs/plugins.md @@ -1,1200 +1,32 @@ --- -layout: docs title: プラグイン -prev_section: pagination -next_section: extras permalink: /docs/plugins/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -Jekyllはフックによるプラグイン(plugin)システムを備えており、これによりあなたのサイト向けに特化したコンテンツの生成が可能になります。Jekyllのソース自体を修正することなく、あなたのサイト用のコードを実行できます。 +Jekyllは、サイトにカスタム生成されたコンテンツの作成を可能にするプラグインシステムを持っています。 Jekyllのソース自体を修正しなくても、サイト用のカスタムコードを実行することができます。 - - - -
-
GitHub Pagesにおけるプラグイン
-

- GitHub PagesはJekyllで動いていますが、ここで構築されるすべてのサイトは、セキュリティ上の理由から--safeオプションで生成され、カスタムプラグインが利用できないようになっています。残念ながら、これはあなたのプラグインをGitHub Pagesにデプロイしても動作しないことを意味します。

- あなたのサイトを公開するためにGitHub Pagesを利用することはできますが、そのためには、Jekyllのソースファイルの代わりに、サイトをローカルで変換して、生成された静的ファイルをGitHubレポジトリにプッシュする必要があります。 -

-
- - - -## プラグインのインストール - - - -プラグインをインストールする2つの方法があります。 - - - -1. サイトのルートに`_plugins`ディレクトリを作って、プラグインをここに配置します。このディレクトリ内の`*.rb`で終わるすべてのファイルは、Jekyllがサイトを生成するときに読み込まれます。 - - -2. `_config.yml`ファイルに、`gems`をキーとし、使いたいプラグインのgem名を値とする新たな行を追加します。例を示します。 - - gems: [jekyll-test-plugin, jekyll-jsonify, jekyll-assets] - # これで各gemが自動的に読み込まれます。 - - - - -
-
- _pluginsgems - は同時に使用できます。 -
-

- 前述した2つのプラグインの選択肢は、同じサイトにおいて同時に使うことができます。一方の使用は、他方の使用を制限しません。 -

-
- - - -通常、あなたが作るpluginは次の3つのカテゴリの何れかに該当します。 - - - -1. ジェネレータ(Generators) -2. コンバータ(Converters) -3. タグ(Tags) - - - -## ジェネレータ(Generators) - - - -独自ルールでJekyllに追加コンテンツを生成させる必要があるときは、ジェネレータを作ります。 - - - -ジェネレータは、`generate`メソッドを定義している`Jekyll::Generator`のサブクラスであり、このメソッドは、[`Jekyll::Site`]({{ site.repository }}/blob/master/lib/jekyll/site.rb)のインスタンスを取ります。 - - - -ジェネレータは、その副作用のために起動され、`generate`メソッドの返り値は無視されます。Jekyllは引き起こされる如何なる特定の副作用も期待しておらず、ただそのメソッドを呼ぶだけです。 - - - -ジェネレータは、Jekyllが存在するコンテンツの目録を作った後、サイトが生成される前に、動作します。YAML front-matterを備えたpageは、[`Jekyll::Page`]({{ site.repository }}/blob/master/lib/jekyll/page.rb)のインスタンスとして格納され、`site.pages`を通して利用可能になります。静的ファイルは、[`Jekyll::StaticFile`]({{ site.repository }}/blob/master/lib/jekyll/static_file.rb)のインスタンスになり、`site.static_files`を通して利用可能になります。詳しくは、[変数のページ](/docs/variables/)および[`Jekyll::Site`]({{ site.repository }}/blob/master/lib/jekyll/site.rb)を確認して下さい。 - - - -例えばジェネレータは、ビルド時に計算された値をテンプレート変数を使い挿入できます。次の例ではテンプレート`reading.html`は2つの変数、`ongoing`および`done`を持っており、これらはジェネレータにおいて値を埋め込まれます。 - - - -{% highlight ruby %} -module Reading - class Generator < Jekyll::Generator - def generate(site) - ongoing, done = Book.all.partition(&:ongoing?) - - reading = site.pages.detect {|page| page.name == 'reading.html'} - reading.data['ongoing'] = ongoing - reading.data['done'] = done - end - end -end -{% endhighlight %} - - - -以下は、新しいページを生成する、より複雑なジェネレータです。 - - - -{% highlight ruby %} -module Jekyll - - class CategoryPage < Page - def initialize(site, base, dir, category) - @site = site - @base = base - @dir = dir - @name = 'index.html' - - self.process(@name) - self.read_yaml(File.join(base, '_layouts'), 'category_index.html') - self.data['category'] = category - - category_title_prefix = site.config['category_title_prefix'] || 'Category: ' - self.data['title'] = "#{category_title_prefix}#{category}" - end - end - - class CategoryPageGenerator < Generator - safe true - - def generate(site) - if site.layouts.key? 'category_index' - dir = site.config['category_dir'] || 'categories' - site.categories.keys.each do |category| - site.pages << CategoryPage.new(site, site.source, File.join(dir, category), category) - end - end - end - end - -end -{% endhighlight %} - - - -この例においてジェネレータは、各カテゴリごとに`categories`ディレクトリ下に一式のファイルを生成し、`category_index.html`レイアウトを使って、各カテゴリごとに記事をリスト表示します。 - - - -ジェネレータでは、1つのメソッドを実装すれば良いです。 - - - -
- - - - - - - - - - - - - -
メソッド解説
-

generate

-
-

副作用でコンテンツを生成する

-
-
- - - -## コンバータ(Converters) - - - -サイトで利用したい新しいマークアップ言語があるときは、独自のコンバータを実装することで利用できるようになります。MarkdownおよびTextileマークアップ言語は、共にこの方法で実装されています。 - - - -
-
YAML front-matterを忘れずに
-

- Jekyllは先頭にYAMLヘッダーがあるファイルだけを変換しますが、これはたとえプラグインを使って追加されたコンバータであっても同じです。 -

-
- - - -以下は、`.upcase`で終わる全postを対象に、これらを`UpcaseConverter`を使用して処理するコンバータの例です。 - - - -{% highlight ruby %} -module Jekyll - class UpcaseConverter < Converter - safe true - priority :low - - def matches(ext) - ext =~ /^\.upcase$/i - end - - def output_ext(ext) - ".html" - end - - def convert(content) - content.upcase - end - end -end -{% endhighlight %} - - - -コンバータには、最低3つのメソッドを実装する必要があります。 - - - -
- - - - - - - - - - - - - - - - - - - - - -
メソッド解説
-

matches

-

- 与えられた拡張子はこのコンバータのアクセス可能な拡張子のリストにマッチするか?1引数を取る: ファイルの拡張子(ドットを含む)。マッチする場合はtrueを、それ以外はfalseを返す必要がある。 -

-

output_ext

-

- 出力ファイルに与えられる拡張子(ドットを含む)。 - 通常、これは".html"である。 -

-

convert

-

- コンテンツの変換をするためのロジック。1引数を取る: ファイルの未加工のコンテンツ(YAML front matterを含まない)。文字列を返す必要がある。 -

-
- - - -この例で、`UpcaseConverter#matches`は、ファイル名の拡張子が`.upcase`であるかをチェックし、そうである場合、このコンバータを使ってレンダリングを行います。`UpcaseConverter#convert`は、このコンテンツを処理するために呼ばれます。この簡単なコンバータでは単に全コンテンツの文字列を大文字化します。そして、このpageを保存するときは`.html`の拡張子で保存します。 - - - -## タグ(Tags) - - - - -サイトで専用Liquidタグを使いたいときは、タグシステムにフックさせることで実現できます。jekyllの組み込みサンプルには、'highlight'タグと'include'タグが含まれています。次の例は、pageが作られるときの時刻を出力する専用Liquidタグです。 - - - - -{% highlight ruby %} -module Jekyll - class RenderTimeTag < Liquid::Tag - - def initialize(tag_name, text, tokens) - super - @text = text - end - - def render(context) - "#{@text} #{Time.now}" - end - end -end - -Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag) -{% endhighlight %} - - - -Liquidタグでは最低限、次を実装する必要があります。 - - - -
- - - - - - - - - - - - - -
メソッド解説
-

render

-
-

タグのコンテンツを出力する。

-
-
- - - -また、Liquidテンプレートエンジンにこの専用タグを登録する必要があります。 - - - -{% highlight ruby %} -Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag) -{% endhighlight %} - - - -上記の例で、任意のpageのどこにでも、次のようなタグを配置できるようになります。 - - - -{% highlight ruby %} -{% raw %} -

{% render_time page rendered at: %}

-{% endraw %} -{% endhighlight %} - - - -これにより、page上に次のような出力が得られます。 - - - -{% highlight html %} -

page rendered at: Tue June 22 23:38:47 –0500 2010

-{% endhighlight %} - - - -### Liquidフィルタ(Liquid filters) - - - -上でタグを追加したように、Liquidテンプレートシステムに独自フィルタを追加することもできます。フィルタは、Liquidにメソッドをエクスポートする簡単なモジュールです。すべてのメソッドは、フィルタの入力としての少なくとも1つの引数を取る必要があります。その返り値はフィルタの出力になります。 - - - -{% highlight ruby %} -module Jekyll - module AssetFilter - def asset_url(input) - "http://www.example.com/#{input}?#{Time.now.to_i}" - end - end -end - -Liquid::Template.register_filter(Jekyll::AssetFilter) -{% endhighlight %} - - - -
-
ProTip™: Liquidを通じたsiteオブジェクトへのアクセス
-

- Jekyllではsiteオブジェクトにアクセスでき、これはLiquidのcontext.registers機能を通じたcontext.registers[:site]により可能になります。例えば、グローバル設定ファイル_config.ymlcontext.registers[:site].configを使ってアクセスできます。 -

-
- - - -### フラグ(Flags) - - - -プラグインを書くときに注意すべき2つのフラグがあります。 - - - -
- - - - - - - - - - - - - - - - - -
フラグ解説
-

safe

-
-

- 任意のコードの実行が許可されていない環境で、対象のプラグインが安全に実行されるものであるか否かをJekyllに伝えるブーリアンフラグ。これはGitHub Pagesで利用され、そこでどのコアプラグインが利用でき、またどのプラグインが起動上安全でないかが判断される。あなたのプラグインが任意コードの実行を許可しない場合には、trueをセットする。これをセットしたとしてもGitHub Pagesは依然としてあなたのプラグインを読み込むようにはならないが、Jekyll本体に組み込むべくプラグインを供するつもりなら、このオプションを正しく設定しておくのがよい。 -

-
-

priority

-
-

- このフラグは、プラグインがロードされる順番を決定する。有効な値は、 :lowest, :low, :normal, - :high, および :highest。最上位(highest priority)のものは最初に適用され、最下位(lowest priority)のものは最後に適用される。 -

-
-
- - - - -上で説明したサンプルプラグインの一つを使う場合、これら2つのフラグの指定は次のようになります。 - - - -{% highlight ruby %} -module Jekyll - class UpcaseConverter < Converter - safe true - priority :low - ... - end -end -{% endhighlight %} - - - -## 利用可能なプラグイン - - - -幾つかの便利なプラグインが次の場所にあります。 - - - -#### ジェネレータ - - - -- [ArchiveGenerator by Ilkka Laukkanen](https://gist.github.com/707909): [このarchive page](https://gist.github.com/707020)を使ってアーカイブを生成する。 -- [LESS.js Generator by Andy Fowler](https://gist.github.com/642739): 生成の過程においてLESS.jsファイルをレンダリングする。 -- [Version Reporter by Blake Smith](https://gist.github.com/449491): Jekyllのバージョンを含むversion.htmlファイルを作る。 -- [Sitemap.xml Generator by Michael Levin](https://github.com/kinnetica/jekyll-plugins): 利用可能な全postおよびpageを走査して、sitemap.xmlファイルを生成する。 -- [Full-text search by Pascal Widdershoven](https://github.com/PascalW/jekyll_indextank): プラグインと少しのJavaScriptを使って、あなたのJekyllサイトに全文テキスト検索を追加する。 -- [AliasGenerator by Thomas Mango](https://github.com/tsmango/jekyll_alias_generator): YAML Front Matterでエイリアスが指定されたときに、postのためのリダイレクトページを生成する。 -- [Pageless Redirect Generator by Nick Quinlan](https://github.com/nquinlan/jekyll-pageless-redirects): htaccessリダイレクトのサポートで、Jekyllのルート内のファイルに従ってリダイレクトを生成する。 -- [Projectlist by Frederic Hemberger](https://github.com/fhemberger/jekyll-projectlist): ディレクトリ内のファイル群を、分割されたpostとする代わりに、単一のページとしてレンダリングする。 -- [RssGenerator by Assaf Gelber](https://github.com/agelber/jekyll-rss): postからRSS 2.0フィードを自動的に生成する。 -- [Monthly archive generator by Shigeya Suzuki](https://github.com/shigeya/jekyll-monthly-archive-plugin): MovableTypeスタイルの月ごとのアーカイブをレンダリングする、Ilkka Laukkanenその他の作品をベースにした、ジェネレータとテンプレート。 -- [Category archive generator by Shigeya Suzuki](https://github.com/shigeya/jekyll-category-archive-plugin): MovableTypeスタイルのカテゴリーアーカイブをレンダリングする、Monthly archive generatorをベースにした、ジェネレータとテンプレート。 -- [Emoji for Jekyll](https://github.com/yihangho/emoji-for-jekyll): 全postおよびpageでシームレスに利用可能な絵文字。 -- [Compass integration for Jekyll](https://github.com/mscharley/jekyll-compass): CompassおよびSassをJekyllのウェブサイトに簡単に統合する。 -- [Pages Directory by Ben Baker-Smith](https://github.com/bbakersmith/jekyll-pages-directory): pageファイル群のための`_pages`ディレクトリを定義し、それがプロジェクトのルートに対する出力先を作る。 -- [Page Collections by Jeff Kolesky](https://github.com/jeffkole/jekyll-page-collections): Postに似た機能を持ったPageのコレクションを生成する。 -- [Windows 8.1 Live Tile Generation by Matt Sheehan](https://github.com/sheehamj13/jekyll-live-tiles): インターネットエクスプローラー11のconfig.xmlファイルおよびタイルテンプレートを生成し、サイトをWindows 8.1専用にする。 -- [Jekyll::AutolinkEmail by Ivan Tse](https://github.com/ivantsepp/jekyll-autolink_email): e-mailの自動リンク。 -- [Jekyll::GitMetadata by Ivan Tse](https://github.com/ivantsepp/jekyll-git_metadata): テンプレートにおけるGitのメタデータを公開する。 - - - -#### コンバータ - - - -- [Jade plugin by John Papandriopoulos](https://github.com/snappylabs/jade-jekyll-plugin): Jekyll用Jadeコンバータ。 -- [HAML plugin by Sam Z](https://gist.github.com/517556): Jekyll用HAMLコンバータ。 -- [HAML-Sass Converter by Adam Pearson](https://gist.github.com/481456): Jekyll用のシンプルなHAML-Sassコンバータ。Sam Xによる[Fork](https://gist.github.com/528642)。 -- [Sass SCSS Converter by Mark Wolfe](https://gist.github.com/960150): 新しいCSS互換シンタックスを使ったSassコンバータで、上記Sam Xのfork版がベース。 -- [LESS Converter by Jason Graham](https://gist.github.com/639920): LESSファイルをCSSに変換する。 -- [LESS Converter by Josh Brown](https://gist.github.com/760265): シンプルなLESSコンバータ。 -- [Upcase Converter by Blake Smith](https://gist.github.com/449463): サンプルとしてのJekyllコンバータ。 -- [CoffeeScript Converter by phaer](https://gist.github.com/959938): [CoffeeScript](http://coffeescript.org)からJavascriptへのコンバータ。 -- [Markdown References by Olov Lassus](https://github.com/olov/jekyll-references): すべてのmarkdownの参照型リンクを一つの\_references.mdファイルに保持する。 -- [Stylus Converter](https://gist.github.com/988201): .stylを.cssに変換する。 -- [ReStructuredText Converter](https://github.com/xdissent/jekyll-rst): ReSTドキュメントを、PygmentsシンタックスハイライトでHTMLに変換する。 -- [Jekyll-pandoc-plugin](https://github.com/dsanson/jekyll-pandoc-plugin): markdownをレンダリングするためにpandocを使う。 -- [Jekyll-pandoc-multiple-formats](https://github.com/fauno/jekyll-pandoc-multiple-formats) by [edsl](https://github.com/edsl): pandocを使って複数のフォーマットでサイトを生成する。pandocのmarkdown拡張をサポート。 -- [Transform Layouts](https://gist.github.com/1472645): HAMLレイアウトを可能にする(これを機能させるには、HAMLコンバータプラグインが必要)。 -- [Org-mode Converter](https://gist.github.com/abhiyerra/7377603): Jekyll用Org-modeコンバータ。 -- [Customized Kramdown Converter](https://github.com/mvdbos/kramdown-with-pygments): Kramdownでパースされるフェンスコードブロックに対し、Pygmentsによるシンタックスハイライトを使えるようにする。 - - - -#### フィルタ - - - -- [Truncate HTML](https://github.com/MattHall/truncatehtml) by [Matt Hall](http://codebeef.com): マークアップ構造を維持しつつHTMLをトランケートするJekyllフィルタ。 -- [Domain Name Filter by Lawrence Woodman](https://github.com/LawrenceWoodman/domain_name-liquid_filter): ドメイン名が残るように入力テキストをフィルタする。 -- [Summarize Filter by Mathieu Arnold](https://gist.github.com/731597): `
`タグの後のマークアップを除去する。 -- [URL encoding by James An](https://gist.github.com/919275): URIパーセントエンコーディング。 -- [JSON Filter](https://gist.github.com/1850654) by [joelverhagen](https://github.com/joelverhagen): 入力テキストを得てJSONとして出力するフィルタ。JavaScriptをレンダリングするのに好適。 -- [i18n_filter](https://github.com/gacha/gacha.id.lv/blob/master/_plugins/i18n_filter.rb): I18nローカライゼーションに使うLiquidフィルタ。 -- [Smilify](https://github.com/SaswatPadhi/jekyll_smilify) by [SaswatPadhi](https://github.com/SaswatPadhi): コンテンツ内の顔文字テキスト(emoticons)をテーマ別顔文字画像に変換する。 -- [Read in X Minutes](https://gist.github.com/zachleat/5792681) by [zachleat](https://github.com/zachleat): 文字列(ブログ記事のコンテンツ)のリーディング時間を見積る。 -- [Jekyll-timeago](https://github.com/markets/jekyll-timeago): 時間値を時間経過の単語に変換する。 -- [pluralize](https://github.com/bdesham/pluralize): 数字と単語を文法的に正しい量(例:“1 minute” or “2 minute**s**”)で簡単に結合する。 -- [reading_time](https://github.com/bdesham/reading_time): 単語をカウントし、テキスト片のリーディング時間を見積る。この場合、対象テキストとして含めるにそぐわないHTML要素は無視される。 -- [Table of Content Generator](https://github.com/dafi/jekyll-toc-generator): 目次(TOC)を含むHTMLコードを生成する。目次は多様な方法でカスタマイズ可能であり、例えば、目次を持たないページを指定できる。 -- [jekyll-humanize](https://github.com/23maverick23/jekyll-humanize): これはDjangoアプリhumanizeの移植版で、データに"人間らしさ"を追加する。各メソッドは、Fluidタイプフィルタを表し、Jekyllサイトのテンプレートで利用可能。Jekyllは静的サイトを生成するので、いくつかのオリジナルメソッドは移植版において論理的な意味をなさない(例:naturaltime)。 -- [Jekyll-Ordinal](https://github.com/PatrickC8t/Jekyll-Ordinal): "st"、"nd"、"rd"、"th"などの日付けの序数を出力するJekyllのLiquidフィルタ。 -- [Deprecated articles keeper](https://github.com/kzykbys/JekyllPlugins) by [Kazuya Kobayashi](http://blog.kazuya.co/): 記事の古さを監視するシンプルなJekyllフィルタ。 - - - -#### タグ - - - -- [Asset Path Tag](https://github.com/samrayner/jekyll-asset-path-plugin) by [Sam Rayner](http://www.samrayner.com/): 与えられたファイルのpostまたはpageに対する相対パスを出力することで、アセットをサブディレクトリに整理できるようにする。 -- [Delicious Plugin by Christian Hellsten](https://github.com/christianhellsten/jekyll-plugins): delicious.comからブックマークを取得しレンダリングする。 -- [Ultraviolet Plugin by Steve Alex](https://gist.github.com/480380): [Ultraviolet](https://github.com/grosser/ultraviolet)コードハイライターのためのJekyllタグ。 -- [Tag Cloud Plugin by Ilkka Laukkanen](https://gist.github.com/710577): タグページにリンクしたタグクラウドを生成する。 -- [GIT Tag by Alexandre Girard](https://gist.github.com/730347): リスト内にGitのアクティビティを追加する。 -- [MathJax Liquid Tags by Jessy Cowan-Sharp](https://gist.github.com/834610): インラインおよびブロック引用の数式を、適切なMathJaxスクリプトタグに変換するJekyll用のシンプルなLiquidタグ。 -- [Non-JS Gist Tag by Brandon Tilley](https://gist.github.com/1027674) Gistsを埋め込み、JavaScript非対応ブラウザおよびリーダー用にコードを表示するLiquidタグ。 -- [Render Time Tag by Blake Smith](https://gist.github.com/449509): Jekyllのページが生成された時刻を表示する。 -- [Status.net/OStatus Tag by phaer](https://gist.github.com/912466): 渡されたstatus.net/ostatusフィード内の通知を表示する。 -- [Raw Tag by phaer](https://gist.github.com/1020852): `raw`タグ間のLiquidをテキストパースに対して維持する。 -- [Embed.ly client by Robert Böhnke](https://github.com/robb/jekyll-embedly-client): oEmbedを使ってURLから添付物(embeds)を自動生成する。 -- [Logarithmic Tag Cloud](https://gist.github.com/2290195): フレキシブルな対数分布。説明はコード内を参照。 -- [oEmbed Tag by Tammo van Lessen](https://gist.github.com/1455726): oEmbed経由で(YouTube, Flickr, Slideshareなどから)簡単にコンテンツの埋め込みができるようにする。 -- [FlickrSetTag by Thomas Mango](https://github.com/tsmango/jekyll_flickr_set_tag): Flickrのsetから画像ギャラリーを生成する。 -- [Tweet Tag by Scott W. Bradley](https://github.com/scottwb/jekyll-tweet-tag): Twitterの短いコードを使った[ツイートをサイトに埋め込む(Embedded Tweets)](https://dev.twitter.com/docs/embedded-tweets)のためのLiquidタグ。 -- [Jekyll-contentblocks](https://github.com/rustygeldmacher/jekyll-contentblocks): テンプレートでRails風のcontent_forタグを使えるようにして、コンテンツをpostからレイアウトに渡せるようにする。 -- [Generate YouTube Embed](https://gist.github.com/1805814) by [joelverhagen](https://github.com/joelverhagen): YouTubeビデオをそのIDを使ってpageに埋め込めるようにするJekyllのプラグイン。オプションでwidthとheightのサイズを指定できる。 YouTube専用の“oEmbed Tag”。 -- [Jekyll-beastiepress](https://github.com/okeeblow/jekyll-beastiepress): Jekyllサイト用FreeBSDユーティリティタグ。 -- [Jsonball](https://gist.github.com/1895282): JSONファイルを読んで、Jekyllファイルで使う写像(maps)を生成する。 -- [Bibjekyll](https://github.com/pablooliveira/bibjekyll): bibtex2htmlを使ってBibTeX形式の目録/postおよびpageに含まれる引用をレンダリングする。 -- [Jekyll-citation](https://github.com/archome/jekyll-citation): BibTeX形式の目録/postおよびpageに含まれる引用をレンダリングする(100%Ruby)。 -- [Jekyll Dribbble Set Tag](https://github.com/ericdfields/Jekyll-Dribbble-Set-Tag): 任意ユーザからのDribbble画像ギャラリーを構築する。 -- [Debbugs](https://gist.github.com/2218470): Debian BTSへのリンクの投稿を簡単にできるようにする。 -- [Refheap_tag](https://github.com/aburdette/refheap_tag): [refheap](https://refheap.com)からのコードスニペットの埋め込みを可能にするLiquidタグ。 -- [Jekyll-devonly_tag](https://gist.github.com/2403522): 開発期間だけにマークアップを挿入するブロックタグ。 -- [JekyllGalleryTag](https://github.com/redwallhp/JekyllGalleryTag) by [redwallhp](https://github.com/redwallhp): 画像ディレクトリからサムネイルを生成し、グリッド状に表示する。 -- [Youku and Tudou Embed](https://gist.github.com/Yexiaoxing/5891929): YoukuおよびTudouビデオを埋め込むためのLiquidプラグイン。 -- [Jekyll-swfobject](https://github.com/sectore/jekyll-swfobject): [SWFObject](http://code.google.com/p/swfobject/)を使ってAdobe Flashファイル(.swf)を埋め込むためのLiquidプラグイン。 -- [Jekyll Picture Tag](https://github.com/robwierzbowski/jekyll-picture-tag): Jekyll用の簡易なレスポンシブ画像タグ。[``](http://picture.responsiveimages.org/) 要素案に基づき、Scott Jehlの[Picturefill](https://github.com/scottjehl/picturefill)でポリフィルされている。 -- [Jekyll Image Tag](https://github.com/robwierzbowski/jekyll-image-tag): Jekyll用の高機能画像タグ。画像プリセットの保存、リサイズ画像の生成、並びに、クラス、altテキストおよび他の属性の追加ができる。 -- [Ditaa Tag](https://github.com/matze/jekyll-ditaa) by [matze](https://github.com/matze): ASCIIダイアグラムアートをPNGイメージにレンダリングし、画像タグを挿入する。 -- [Good Include](https://github.com/penibelst/jekyll-good-include) by [Anatol Broder](http://penibelst.de/): includeされるファイルが処理される前に、その文末から改行と空白を除去する。 -- [Jekyll Suggested Tweet](https://github.com/davidensinger/jekyll-suggested-tweet) by [David Ensinger](https://github.com/davidensinger/): TwitterのWeb Intents APIを経由してサジェストされたツイートを埋め込めるようにするJekyll用Liquidタグ。 -- [Jekyll Date Chart](https://github.com/GSI/jekyll_date_chart) by [GSI](https://github.com/GSI): texttile形式のテーブルで日付ラインチャートをレンダリングするブロック。 -- [Jekyll Image Encode](https://github.com/GSI/jekyll_image_encode) by [GSI](https://github.com/GSI): ウェブから取得した画像のbase64コードをレンダリングするタグ。 -- [Jekyll Quick Man](https://github.com/GSI/jekyll_quick_man) by [GSI](https://github.com/GSI): インターネット上のmanページのソースへのちょっとしたリンクをレンダリングするタグ。 -- [jekyll-font-awesome](https://gist.github.com/23maverick23/8532525): postにFont Awesomeのアイコンを簡単に追加する。 -- [Lychee Gallery Tag](https://gist.github.com/tobru/9171700) by [tobru](https://github.com/tobru): postに[Lychee](http://lychee.electerious.com/)アルバムを挿入する。はじめに、[Jekyll meets Lychee - A Liquid Tag plugin](https://tobrunet.ch/articles/jekyll-meets-lychee-a-liquid-tag-plugin/)を参照のこと。 -- [Image Set/Gallery Tag](https://github.com/callmeed/jekyll-image-set) by [callmeed](https://github.com/callmeed): Jekyllサイトの特定フォルダから画像ギャラリーのためのHTMLをレンダリングする。フォルダ名とclass/tagオプションを渡します。 -- [jekyll_figure](https://github.com/lmullen/jekyll_figure): 図と見出しを複数のフォーマットの画像リンクと共に生成する。 -- [Jekyll Github Sample Tag](https://github.com/bwillis/jekyll-github-sample): GitHubリポジトリファイルのサンプルをJekyllサイトに含めるためのLiquidタグ。 -- [Jekyll Project Version Tag](https://github.com/rob-murray/jekyll-version-plugin): Jekyllサイトのバージョン識別子をレンダリングするLiquidタグプラグイン。識別子はサイトのコードを管理するgitリポジトリから取得される。 -- [Piwigo Gallery](https://github.com/AlessandroLorenzi/piwigo_gallery) by [Alessandro Lorenzi](http://www.alorenzi.eu/): Piwigoギャラリーからサムネイルを生成し、Liquidタグを使って表示するためのJekyllプラグイン。 - - - - -#### コレクション - - - -- [Jekyll Plugins by Recursive Design](http://recursive-design.com/projects/jekyll-plugins/): GitHubのREADMEからプロジェクトページを生成するプラグイン、カテゴリページとサイトマップのジェネレータ。 -- [Company website and blog plugins](https://github.com/flatterline/jekyll-plugins) by Flatterline, a [Ruby on Rails development company](http://flatterline.com/): ポートフォリオ/プロジェクトページのジェネレータ、チーム/個人ページのジェネレータ、postで使える著者略歴用のLiquidタグ、およびその他の小さなプラグイン群。 -- [Jekyll plugins by Aucor](https://github.com/aucor/jekyll-plugins): 不要な改行/空白を除去するプラグインと、weight属性でページをソートするプラグイン。 - - - -#### その他 - - - -- [Pygments Cache Path by Raimonds Simanovskis](https://github.com/rsim/blog.rayapps.com/blob/master/_plugins/pygments_cache_patch.rb): Pygmentsでシンタックスハイライトされたコードをキャッシュするプラグイン。 -- [Draft/Publish Plugin by Michael Ivey](https://gist.github.com/49630): ドラフトとしてpostを保存する。 -- [Growl Notification Generator by Tate Johnson](https://gist.github.com/490101): GrowlにJekyllの通知を送る。 -- [Growl Notification Hook by Tate Johnson](https://gist.github.com/525267): 上記の高機能な他の選択肢だが、Jekyllの“hook”のフォーク版が必要。 -- [Related Posts by Lawrence Woodman](https://github.com/LawrenceWoodman/related_posts-jekyll_plugin): `site.related_posts`を上書きし、関係性を評価したカテゴリを使えるようにする。 -- [Tiered Archives by Eli Naeher](https://gist.github.com/88cda643aa7e3b0ca1e5): 多段テンプレート変数を生成し、年および月ごとにアーカイブをグループ化できるようにする。 -- [Jekyll-localization](https://github.com/blackwinter/jekyll-localization): レンダリングエンジンにローカライゼーション機能を追加するJekyllプラグイン。 -- [Jekyll-rendering](https://github.com/blackwinter/jekyll-rendering): レンダリングエンジンの他の選択肢を提供するJekyllプラグイン。 -- [Jekyll-pagination](https://github.com/blackwinter/jekyll-pagination): ページネーションジェネレータを拡張するJekyllプラグイン。 -- [Jekyll-tagging](https://github.com/pattex/jekyll-tagging): タグクラウドおよびタグページを自動で生成するJekyllプラグイン。 -- [Jekyll-scholar](https://github.com/inukshuk/jekyll-scholar): 学術研究向けブログのためのJekyll拡張。 -- [Jekyll-asset_bundler](https://github.com/moshen/jekyll-asset_bundler): JavaScriptとCSSをバンドルしミニファイする。 -- [Jekyll-assets](http://ixti.net/jekyll-assets/) by [ixti](https://github.com/ixti): Rails風アセットパイプライン(アセットをCoffeeScript, Sass, LESSなどで書いて、アセット内の簡単な宣言的コメントで自動バンドリングのための依存関係を指定し、ミニファイおよび圧縮を実行し、JSTテンプレートを使用し、キャッシュ消去(cache bust)をし、その他諸々をする)。 -- [JAPR](https://github.com/kitsched/japr): Jekyll Asset Pipeline Reborn - JavaScriptおよびCSSファイル群を収集、変換および圧縮するJekyll用の強力なアセットパイプライン。 -- [File compressor](https://gist.github.com/2758691) by [mytharcher](https://github.com/mytharcher): サイトのビルドにおいてHTMLおよびJavaScriptファイルを圧縮する。 -- [Jekyll-minibundle](https://github.com/tkareine/jekyll-minibundle): アセットのバンドリングおよびキャッシュ消去(cache busting)を、指定の外部ミニファイツールを使って行う。他のGemに依存しない。 -- [Singlepage-jekyll](https://github.com/JCB-K/singlepage-jekyll) by [JCB-K](https://github.com/JCB-K): Jekyllを動的な単一ページWebサイトに変える。 -- [generator-jekyllrb](https://github.com/robwierzbowski/generator-jekyllrb): Jekyllを[Yeoman](http://yeoman.io/)でラップするジェネレータ。Yeomanは、最新のWebアプリを構築するためのツールセットおよびワークフローである。 -- [grunt-jekyll](https://github.com/dannygarcia/grunt-jekyll): 文字通りのJekyll用[Grunt](http://gruntjs.com/)プラグイン。 -- [jekyll-postfiles](https://github.com/indirect/jekyll-postfiles): `_postfiles`ディレクトリと{% raw %}`{{ postfile }}`{% endraw %}タグを追加し、postから参照するファイルを常にpostのすぐそばに置けるようにする。 -- [A layout that compresses HTML](https://github.com/penibelst/jekyll-compress-html) by [Anatol Broder](http://penibelst.de/): サイト生成時に作動するHTML圧縮用プラグイン。GitHub Pages対応。圧縮方法は設定可能。 -- [Jekyll CO₂](https://github.com/wdenton/jekyll-co2): ハワイ州マウナロア観測所における大気中CO₂の月ごとの変化を表示するHTMLを生成する。 - - - -#### エディタ - - - -- [sublime-jekyll](https://github.com/23maverick23/sublime-jekyll): Jekyll静的サイトのためのSublimeテキストエディタパッケージ。本パッケージは、Jekyllサイトの生成を助け投稿を容易にするもので、これは、キーテンプレートタグおよびフィルタ、並びに、良く使う補完および現在のdate/datetimeコマンド(postの日付け決め用)へのアクセスを提供することで実現される。本パッケージは手作業でGitHubから、または[Package Control](https://sublime.wbond.net/packages/Jekyll)を通してインストールできる。 -- [vim-jekyll](https://github.com/parkr/vim-jekyll): Vimから離れることなく新規投稿および`jekyll build`の起動を可能にするVimプラグイン。 - - - -
-
Jekyllプラグイン求む
-

- このリストに追加したいJekyllプラグインがある場合は、貢献(contributing)ページを読んで、そうする方法を調べてください。 -

-
- - - +having to modify the Jekyll source itself. --> + +* [インストール]({{ "/docs/plugins/installation/" | | relative_url }}) - プラグインのインストール法 +* [初めてのプラグイン]({{ "/docs/plugins/your-first-plugin/" | | relative_url }}) - プラグインの書き方 +* [Generators(ジェネレータ)]({{ "/docs/plugins/generators/" | | relative_url }}) - サイトの追加コンテンツを作成 +* [Converters(コンバータ)]({{ "/docs/plugins/converters/" | | relative_url }}) - マークアップ言語を他のフォーマットに変換 +* [コマンド]({{ "/docs/plugins/commands/" | | relative_url }}) - `jekyll`の実行をサブコマンドで拡張 +* [タグ]({{ "/docs/plugins/tags" | | relative_url }}) - カスタムLiquidタグを作成 +* [フィルタ]({{ "/docs/plugins/filters/" | | relative_url }}) - カスタムLiquidフィルタを作成 +* [Hooks(フック)]({{ "/docs/plugins/hooks/" | | relative_url }}) - ビルドプロセスを拡張するための細かい制御 + + diff --git a/_docs/plugins/commands.md b/_docs/plugins/commands.md new file mode 100644 index 0000000..f7db0de --- /dev/null +++ b/_docs/plugins/commands.md @@ -0,0 +1,81 @@ +--- +title: コマンド +permalink: /docs/plugins/commands/ +--- + + +バージョン2.5.0以降、Jekyllはプラグインで`jekyll`で実行可能なサブコマンドを提供することができます。`:jekyll_plugins`という`Gemfile`グループに関連するプラグインを含めることで可能になります。 + + + +```ruby +group :jekyll_plugins do + gem "my_fancy_jekyll_plugin" +end +``` + +各`Command`は`Jekyll::Command`クラスのサブクラスである必要があり、`init_with_program`メソッドを含まなければなりません。例えば、 + + + +```ruby +class MyNewCommand < Jekyll::Command + class << self + def init_with_program(prog) + prog.command(:new) do |c| + c.syntax "new [options]" + c.description 'Create a new Jekyll site.' + + c.option 'dest', '-d DEST', 'Where the site should go.' + + c.action do |args, options| + Jekyll::Site.new_site_at(options['dest']) + end + end + end + end +end +``` + +コマンドには一つのメソッドが必要です。 + + + +
+ + + + + + + + + + + + + + +
メソッド説明
+

init_with_program

+

+ このメソッドは、1つのパラメーター、Jekyllプログラム自体であるMercenary::Programインスタンスを受け入れます。プログラム上で、上記の構文を使用してコマンドを作成できます。 詳細については、GitHub.comのMercenaryリポジトリをご覧ください。 +

+ +
+
diff --git a/_docs/plugins/converters.md b/_docs/plugins/converters.md new file mode 100644 index 0000000..682be9e --- /dev/null +++ b/_docs/plugins/converters.md @@ -0,0 +1,124 @@ +--- +title: Converters(コンバータ) +permalink: /docs/plugins/converters/ +--- + + +サイトで使用したい新しいマークアップ言語がある場合は、あなた自身のコンバータを実施することで含めることができます。Markdownと[Textile](https://github.com/jekyll/jekyll-textile-converter){:target="_blank"}のマークアップ言語は共にこのメソッドを実施しています。 + + + +
+
Front Matterを忘れないでください
+ +

+ JekyllはYAMLヘッダ最初にあるファイルだけを変換します。それはプラグインで追加したコンバータの場合も同様です。 +

+ +
+ +以下は`.upcase`で終わる全てのポストを取得して、`UpcaseConverter`を使用して変換するコンバータです。 + + + +```ruby +module Jekyll + class UpcaseConverter < Converter + safe true + priority :low + + def matches(ext) + ext =~ /^\.upcase$/i + end + + def output_ext(ext) + ".html" + end + + def convert(content) + content.upcase + end + end +end +``` + +コンバータは最低3つのメソッドが必要です。 + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
メソッド説明
+

matches

+

+ このコンバータで使用する拡張子のリストと一致するかどうか。(ドットを含む)ファイルの拡張子の引数をとる。一致する場合はtrue、そうでなければfalseを返す必要がある。 +

+ +
+

output_ext

+

+ (ドットを含む)出力ファイルの拡張子。 + 通常は".html"。 +

+ +
+

convert

+

+ コンテンツの変換ロジック。(front matterを含まない)ファイルのコンテンツを引数としてとります。文字列を返す必要があります。 +

+ +
+
+ +先ほどの例では、`UpcaseConverter#matches`でファイル名の拡張子が`.upcase`かを確認し、そうであるならコンバータでレンダリングします。コンテンツを処理するために`UpcaseConverter#convert`を呼ぶということです。先ほどのシンプルなコンバータは、単純にコンテンツの文字列を大文字に変換します。最後に、ページをして保存するときに`.html`拡張子を使用します。 + + diff --git a/_docs/plugins/filters.md b/_docs/plugins/filters.md new file mode 100644 index 0000000..34a9f00 --- /dev/null +++ b/_docs/plugins/filters.md @@ -0,0 +1,40 @@ +--- +title: フィルタ +permalink: /docs/plugins/filters/ +--- + + +フィルタはメソッドをLiquidに書き出すモジュールです。すべてのメソッドは、フィルタの入力を表す少なくとも1つのパラメータを受け取る必要があります。戻り値はフィルタの出力になります。 + + + +```ruby +module Jekyll + module AssetFilter + def asset_url(input) + "http://www.example.com/#{input}?#{Time.now.to_i}" + end + end +end + +Liquid::Template.register_filter(Jekyll::AssetFilter) +``` + +
+
ProTip™: Liquidを使用してサイトオブジェクトにアクセスする
+ +

+ Jekyllでは、context.registers[:site]のLiquidのcontext.registers機能を通じて、siteオブジェクトにアクセスすることができます。例えば、 context.registers[:site].configを使用してグローバル設定ファイルの_config.ymlにアクセスできます。 +

+ +
diff --git a/_docs/plugins/generators.md b/_docs/plugins/generators.md new file mode 100644 index 0000000..4f65c73 --- /dev/null +++ b/_docs/plugins/generators.md @@ -0,0 +1,127 @@ +--- +title: Generators(ジェネレータ) +permalink: /docs/plugins/generators/ +--- + + +あなた自身のルールに基づいた追加コンテンツがJekyllに必要なら、ジェネレータを作ることができます。 + + + +ジェネレータは`generate`メソッドを定義する`Jekyll::Generator`のサブクラスです。[`Jekyll::Site`]({{ site.repository }}/blob/master/lib/jekyll/site.rb){:target="_blank"}のインスタンスを受け取ります。`generate`が返す値は無視されます。 + + + +ジェネレータは、Jekyllが既存のコンテンツのインベントリを作成した後、サイトが生成される前に実行されます。front matterのあるページは[`Jekyll::Page`]({{ site.repository }}/blob/master/lib/jekyll/page.rb){:target="_blank"}インスタンスとして保管され、`site.pages`で使用可能です。静的ファイルは[`Jekyll::StaticFile`]({{ site.repository }}/blob/master/lib/jekyll/static_file.rb){:target="_blank"}インスタンスになり、`site.static_files`で使用可能です。詳細は[ドキュメンテーションの変数ページ]({{ "/docs/variables/" | relative_url }})と[`Jekyll::Site`]({{ site.repository }}/blob/master/lib/jekyll/site.rb){:target="_blank"}を見てください。 + + + +例えば、ジェネレータはテンプレート変数に構築時に計算された値を代入することができます。以下の例では、`reading.html`テンプレートに`ongoing`と`done`の2つの変数をジェネレータから書き込んでいます。 + + + +```ruby +module Reading + class Generator < Jekyll::Generator + def generate(site) + ongoing, done = Book.all.partition(&:ongoing?) + + reading = site.pages.detect {|page| page.name == 'reading.html'} + reading.data['ongoing'] = ongoing + reading.data['done'] = done + end + end +end +``` + +こちらは新しいページを生成するより複雑なジェネレータです。 + + + +```ruby +module Jekyll + class CategoryPageGenerator < Generator + safe true + + def generate(site) + if site.layouts.key? 'category_index' + dir = site.config['category_dir'] || 'categories' + site.categories.each_key do |category| + site.pages << CategoryPage.new(site, site.source, File.join(dir, category), category) + end + end + end + end + + # A Page subclass used in the `CategoryPageGenerator` + class CategoryPage < Page + def initialize(site, base, dir, category) + @site = site + @base = base + @dir = dir + @name = 'index.html' + + self.process(@name) + self.read_yaml(File.join(base, '_layouts'), 'category_index.html') + self.data['category'] = category + + category_title_prefix = site.config['category_title_prefix'] || 'Category: ' + self.data['title'] = "#{category_title_prefix}#{category}" + end + end +end +``` + +この例では、ジェネレータは一連のファイルを`categories`ディレクトリに各カテゴリの作成します。`category_index.html`レイアウトを使用し、各カテゴリのポストの一覧を作成します。 + + + +ジェネレータには一つのメソッドの実装が必要です。 + + + +
+ + + + + + + + + + + + + + +
メソッド説明
+

generate

+
+

サイドエフェクトとしてコンテンツを生成する。

+ +
+
diff --git a/_docs/plugins/hooks.md b/_docs/plugins/hooks.md new file mode 100644 index 0000000..094b407 --- /dev/null +++ b/_docs/plugins/hooks.md @@ -0,0 +1,279 @@ +--- +title: Hooks(フック) +permalink: /docs/plugins/hooks/ +--- + + +Hookを使用すると、プラグインはビルドプロセスのさまざまな側面をきめ細かく制御できます。プラグインが何らかのHookを定義している場合、Jekyllはそれらを事前定義された時点で呼び出します。 + + + +Hookはコンテナとイベント名に登録されます。登録するには、Jekyll::Hooks.registerを呼び出し、フックがトリガーされるたびに呼び出すコンテナ、イベント名、およびコードを渡します。たとえば、Jekyllが投稿をレンダリングするたびにカスタム機能を実行したい場合は、次のようにフックを登録します。 + + + +```ruby +Jekyll::Hooks.register :posts, :post_render do |post| + # code to call after Jekyll renders a post +end +``` + +Jekyllは`:site`、`:pages`、`:posts`そして`:documents`にHookを提供します。すべての場合において、Jekyllは最初のコールバックパラメータとしてのコンテナオブジェクトを使用してHookを呼び出します。 全ての`:pre_render` Hookと`:site, :post_render` Hookもペイロードハッシュを2番目のパラメータとして提供します。`:pre_render`の場合、ペイロードはレンダリング中に利用可能な変数を完全に制御します。`:site, :post_render`の場合、ペイロードにはすべてのサイトをレンダリングした後の最終値が含まれます(サイトマップ、フィードなどに役立ちます)。 + + + +以下に利用可能なHookの完全なリストを示します。 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
コンテナイベント読み込み
+

:site

+
+

:after_init

+
+

サイト初期化直後でセットアップやレンダリングの前。サイトの構成の修正によい。

+ +
+

:site

+
+

:after_reset

+
+

サイトのリセット直後

+ +
+

:site

+
+

:post_read

+
+

サイトのデータがディスクに読み書きされた後

+ +
+

:site

+
+

:pre_render

+
+

サイトのレンダリング直前

+ +
+

:site

+
+

:post_render

+
+

サイトレンダリング後、ファイルを書き込む前

+ +
+

:site

+
+

:post_write

+
+

サイトをディスクに書き込んだ後

+ +
+

:pages

+
+

:post_init

+
+

ページが初期化される度

+ +
+

:pages

+
+

:pre_render

+
+

ページがレンダリングされる直前

+ +
+

:pages

+
+

:post_render

+
+

ページレンダリング後、ディスクへの書き込み前

+ +
+

:pages

+
+

:post_write

+
+

ページをディスクに書き込んだ後

+ +
+

:posts

+
+

:post_init

+
+

ポストが初期化される度

+ +
+

:posts

+
+

:pre_render

+
+

ポストのレンダリング直前

+ +
+

:posts

+
+

:post_render

+
+

ポストレンダリング後、ディスクに書き込む前

+ +
+

:posts

+
+

:post_write

+
+

ポストをディスクに書き込んだ後

+ +
+

:documents

+
+

:post_init

+
+

ドキュメントが初期化される度

+ +
+

:documents

+
+

:pre_render

+
+

ドキュメントのレンダリング直前

+ +
+

:documents

+
+

:post_render

+
+

ドキュメントのレンダリング後、ディスクに書き込む前

+ +
+

:documents

+
+

:post_write

+
+

ドキュメントをディスクに書き込んだ後

+ +
+
diff --git a/_docs/plugins/installation.md b/_docs/plugins/installation.md new file mode 100644 index 0000000..3e76b25 --- /dev/null +++ b/_docs/plugins/installation.md @@ -0,0 +1,133 @@ +--- +title: プラグイン +permalink: /docs/plugins/installation/ +--- + + +プラグインのインストールに3つのオプションがあります。 + + + +1. サイトのソースrootに`_plugins`ディレクトリを作ります。プラグインをここに入れます。このディレクトリにある`*.rb`で終わる全てのファイルはJekyllがサイトを生成する前に読み込まれます。 +2. `_config.yml`ファイルに`plugins`キー(もしくはJekyll < `3.5.0`は`gems`)と使用したいgem名の値の配列を追加します。例えば、 + + ```yaml + # This will require each of these plugins automatically. + plugins: + - jekyll-gist + - jekyll-coffeescript + - jekyll-assets + - another-jekyll-plugin + ``` + + 次に`gem install jekyll-gist jekyll-coffeescript jekyll-assets another-jekyll-plugin`でプラグインをインストールします。 +3. `Gemfile`のBundlerグループに関連するプラグインを追加します。例えば、 + + ```ruby + group :jekyll_plugins do + gem "jekyll-gist" + gem "jekyll-coffeescript" + gem "jekyll-assets" + gem "another-jekyll-plugin" + end + ``` + + `bundle install`コマンドを実行して、Bundlerグループから全てのプラグインをインストールする必要があります。 + + + +
+
GitHub Pagesでのプラグイン
+ +

+ GitHub PagesはJekyllで動いています。セキュリティ上の理由で(いくつかのホワイトリストのプラグインを除く)プラグインを無効にする--safeオプションで全てのページを生成します。GitHub Pagesで公開する場合はあなたのプラグインが機能しないことを意味します。

+ GitHubページを使用してサイトを公開することはできますが、サイトをローカルで変換し、Jekyllのソースファイルではなく、生成された静的ファイルをGitHubリポジトリにプッシュする必要があります。 +

+ +
+ +
+
+ _plugins_config.ymlGemfileは同時に使用できます。 +
+ +

+ 同じサイト内で上記のプラグインオプションを同時に使用することもできます。1つの使用は他の使用を制限しません。 +

+ +
+ +### jekyll_pligin グループ + + +Jekyllは`Gemfile`の中の特定のGemグループを別に扱います。このグループに含まれる全てのGemは、Jekyllがあなたのソースディレクトリの残りを処理し始める前にロードされます。 + + + +ここに含まれるGemは、設定ファイルの`plugins:`キーに明示されなくても、有効になります。 + + + +
+

+ :jekyll-pluginsグループに含まれるGemは、--safeモード設定に関係なく有効になります。このグループにどのようなGemが含まれているかに、注意してください! +

+ +
diff --git a/_docs/plugins/tags.md b/_docs/plugins/tags.md new file mode 100644 index 0000000..64cbd67 --- /dev/null +++ b/_docs/plugins/tags.md @@ -0,0 +1,142 @@ +--- +title: タグ +permalink: /docs/plugins/tags/ +--- + + +サイトでカスタムLiquidタグを使用したい場合は、タグシステムで行うことができます。組み込み例として、Jekyllには`highlight`や`include`タグがあります。以下は、ページがレンダリングされた時を出力するカスタムLiquidダグの例です。 + + + +```ruby +module Jekyll + class RenderTimeTag < Liquid::Tag + + def initialize(tag_name, text, tokens) + super + @text = text + end + + def render(context) + "#{@text} #{Time.now}" + end + end +end + +Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag) +``` + +最低、次のメソッドの実装が必要です。 + + + +
+ + + + + + + + + + + + + + +
メソッド説明
+

render

+
+

タグの内容の出力

+ +
+
+ +次のようにLiquidテンプレートエンジンにカスタムタグを登録する必要があります。 + + + +```ruby +Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTag) +``` + +上記の例では、ページのどこにでもタグを設置することができます。 + + + +{% raw %} +```ruby +

{% render_time page rendered at: %}

+``` +{% endraw %} + +ページには次のように出力されます。 + + + +```html +

page rendered at: Tue June 22 23:38:47 –0500 2010

+``` + +## タグブロック + + +上記の`render_time`タグは、`Liquid::Block`クラスを継承することでタグブロックとして書くこともできます。以下の例を見てください。 + + + +```ruby +module Jekyll + class RenderTimeTagBlock < Liquid::Block + + def render(context) + text = super + "

#{text} #{Time.now}

" + end + + end +end + +Liquid::Template.register_tag('render_time', Jekyll::RenderTimeTagBlock) +``` + +これで、タグブロックをどこでも使用できます。 + + + +{% raw %} +```liquid +{% render_time %} +page rendered at: +{% endrender_time %} +``` +{% endraw %} + +ページでは上の例と同じ出力を得ることができます。 + + + +```html +

page rendered at: Tue June 22 23:38:47 –0500 2010

+``` + +
+

上記の例では、タグとタグブロックを同じ名前render_timeで登録しました。しかし、同じプロジェクトでタグとタグブロックに同じ名前を使用することは推奨しません。競合する可能性があります。

+ +
\ No newline at end of file diff --git a/_docs/plugins/your-first-plugin.md b/_docs/plugins/your-first-plugin.md new file mode 100644 index 0000000..9ffdfaf --- /dev/null +++ b/_docs/plugins/your-first-plugin.md @@ -0,0 +1,203 @@ +--- +title: 初めてのプラグイン +permalink: /docs/plugins/your-first-plugin/ +--- + + +プラグインはあなたのニーズに合わせたJekyllの拡張動作を可能にします。Jekyllのプラグインには6種類あります。 + + + +## Generatiors(ジェネレータ) + + +[Generators(ジェネレータ)]({{ "/docs/plugins/generators/" | relative_url }})はサイトにコンテンツを作成します。 +例えば、 + + + +* [jekyll-feed](https://github.com/jekyll/jekyll-feed){:target="_blank"} ブログポストのAtomフィードを作成する。 +* [jekyll-archives](https://github.com/jekyll/jekyll-archives){:target="_blank"} ブログのカテゴリやタグのアーカイブページを作成する。 +* [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap){:target="_blank"} sitemapを作成する。 + + + +## Converters(コンバータ) + + +[Converters(コンバータ)]({{ "/docs/plugins/converters/" | relative_url }})はマークアップ言語を他のフォーマットに変換します。 +例えば、 + + + +* [jekyll-textile-converter](https://github.com/jekyll/jekyll-textile-converter){:target="_blank"} +textileをHTMLに変換する。 +* [jekyll-coffeescript](https://github.com/jekyll/jekyll-coffeescript){:target="_blank"} CoffeescriptをJavaScriptに変換する。 +* [jekyll-opal](https://github.com/jekyll/jekyll-opal){:target="_blank"} RubyをJavaScriptに変換する。 + + + +## コマンド + + +[コマンド]({{ "/docs/plugins/commands/" | relative_url }}) サブコマンドで`jekyll`の実行を拡張します。 +例えば、 + + + +* [jekyll-compose](https://github.com/jekyll/jekyll-compose){:target="_blank"} ポストやページ、ドラフトを作成するサブコマンドを追加する。 + + + +## タグ + + +[タグ]({{ "/docs/plugins/tags/" | relative_url }})はカスタムLiquidタグを作成します。 +例えば、 + + + +* [jekyll-youtube](https://github.com/dommmel/jekyll-youtube){:target="_blank"} YouTubeビデオを埋め込む。 +* [jekyll-asset-path-plugin](https://github.com/samrayner/jekyll-asset-path-plugin){:target="_blank"} アセットの相対パスを出力する。 +* [jekyll-swfobject](https://github.com/sectore/jekyll-swfobject){:target="_blank"} SWFオブジェクトを埋め込む。 + + + +## フィルタ + + +[フィルタ]({{ "/docs/plugins/filters/" | relative_url }})はカスタムLiquidフィルタを作成します。 +例えば、 + + + +* [jekyll-time-ago](https://github.com/markets/jekyll-timeago){:target="_blank"} 2つの日付の間隔。 +* [jekyll-toc](https://github.com/toshimaru/jekyll-toc){:target="_blank"} 目次を作成する。 +* [jekyll-email-protect](https://github.com/vwochnik/jekyll-email-protect){:target="_blank"} スパムボットから保護するために電子メールを難読化する。 + + + +## Hooks(ホック) + + +[Hooks(ホック)]({{ "/docs/plugins/hooks/" | relative_url }})はビルドプロセスを拡張するためのきめ細かい制御を与えます。 + + + +## Flags + +プラグインを書くときに気をつけるべき2つのFlagがあります。 + + + +
+ + + + + + + + + + + + + + + + + + +
Flag説明
+

safe

+
+

+ 任意のコードの実行が許可されていない環境でこのプラグインを安全に実行できるかどうかをJekyllに通知するboolean flag。これはGitHubページがどのコアプラグインを使うことができるか、そしてどれを実行するのが危険かを判断するために使われます。プラグインが任意のコードの実行を許可していない場合は、これをtrueに設定してください。GitHub Pagesはまだあなたのプラグインをロードすることはできませんが、コアに含めるために提出することが、使用するための最善の方法です! +

+ +
+

priority

+
+

+ プラグインがロードされる順位を定義します。使用できる値は、:lowest, :low, :normal, :high, :highestです。highestが最初に適用され、lowestが最後に適用されます。 +

+ +
+
+ +上記のことをプラグインで使用する例として、この2つのflagの指定方法を示します。 + + + +```ruby +module Jekyll + class UpcaseConverter < Converter + safe true + priority :low + ... + end +end +``` + +## Best Practices + +ガイドがプラグインの作成の助けとなるでしょう。プラグイン構築に関して、推奨することがあります。 + + + +プラグインに[gem]({{ "/docs/ruby-101/#gems" | relative_url }})を使うことをお勧めします。依存関係の管理を助け、サイトのソースコードと切り分け、複数のプロジェクトに渡り共用できるようになります。gemの作成に関しては、[Ruby gems guide](https://guides.rubygems.org/make-your-own-gem/){:target="_blank"}や[jekyll-feed](https://github.com/jekyll/jekyll-feed){:target="_blank"}等既存のプラグインのソースを見てください。 + + diff --git a/_docs/posts.md b/_docs/posts.md index 166d380..1ad1431 100644 --- a/_docs/posts.md +++ b/_docs/posts.md @@ -1,520 +1,273 @@ --- -layout: docs -title: Post を書く -prev_section: frontmatter -next_section: drafts +title: Posts(ポスト) permalink: /docs/posts/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] +redirect_from: + - /docs/drafts/ --- - - -Jekyll の最高の側面の一つは、それが “Blog のようである” ということです。 -これはまさに何を意味するのでしょうか? -まあ、簡単に言えば、それはブログは Jekyll の機能に焼成されることを意味しています。 -もし、Post を書き、そしてそれらをオンラインで公開する場合、 -これはあなたがブログの公開と維持をコンピュータ上のテキストファイルで -フォルダ管理をすることによって単純にできることを意味します。 -データベースの設定と管理の手間や Web ベースの CMS システムと比較して、 -これは喜ばしい変化になります! - - - -## Post のフォルダ - - - -[ディレクトリ構成](../structure/) ページで説明した通り、 -`_posts` フォルダはあなたのブログの Post がある場所です。 -これらのファイルは -[Markdown](http://daringfireball.net/projects/markdown/) や -[Textile](http://redcloth.org/textile) フォーマットのテキストファイルの -どちらでも書くことができ、そしてそれらが -[YAML front-matter](../frontmatter/) を持っている限り、 -これらのソースフォーマットから静的サイトの一部として HTML ページに変換されます。 - - - -### Post ファイルを作成する - - - -新しい Post を作成するために、あなたが行う必要があることは、 -`_posts` ディレクトリに新しいファイルを作成することです。 -このフォルダ内のファイルにどのように名前をつけるかが重要になります。 -Jekyll は以下のようなフォーマットによって命名されたブログの Post ファイルが必要です: - - - -{% highlight bash %} -YEAR-MONTH-DAY-title.MARKUP -{% endhighlight %} +redirect_from: + - /docs/drafts/ +--- --> + +ブログはJekyllに組み込まれています。あなたがブログポストをテキストファイルで書き、Jekyllがそれをブログにします。 + + + +## ポストフォルダ + - + +## ポストを作る + + +ポストを作るには、`_posts`ディレクトリに以下のフォーマットでファイルを追加します。 + + + +``` YEAR-MONTH-DAY-title.MARKUP -{% endhighlight %} ---> +``` -`YEAR` は 4 桁の数字、 `MONTH` と `DAY` は両方とも 2 桁の数字、 -そして `MARKUP` はファイルで使用されるフォーマットを表すファイル拡張子です。 -例えば、以下は有効な Post のファイル名の例になります: +`YEAR`は4桁を、`MONTH`と`DAY`は2桁を使用します。`MARKUP`はファイルで使用している形式を表す拡張子です。 +以下に有効なファイル名の例を示します。 - +file. For example, the following are examples of valid post filenames: --> -{% highlight bash %} +``` 2011-12-31-new-years-eve-is-awesome.md -2012-09-12-how-to-write-a-blog.textile -{% endhighlight %} +2012-09-12-how-to-write-a-blog.md +``` - +全てのブログポスト用ファイルは[front matter]({{ "docs/front-matter/" | relative_url }})で開始します。通常ここには使用する[レイアウト]({{ "docs/layouts/" | relative_url }})やその他メタデータを記述します。 +シンプルな例として、何も書かないも可能です。 -
-
ProTip™: 別のポストへのリンク
-

- post_url タグを使って - 別のポストにリンクをすることにより、サイトのパーマリンクの変更時のURL変更を - 気にしなくて済みます。 -

-
+ + +```markdown +--- +layout: post +title: "Welcome to Jekyll!" +--- + +# Welcome + +**Hello world**, this is my first Jekyll blog post. + +I hope you like it! +``` -

- Use the post_url - tag to link to other posts without having to worry about the URL's - breaking when the site permalink style changes. + post_urlタグを使用することで、パーマリンクの形式を変更したときにURLが壊れる心配なく、他のポストへリンクできます。

+
---> - -### コンテンツのフォーマット - - - -すべてのブログ Post は [YAML front-matter](../frontmatter/) ではじまるべきです。 -後は、あなたが好むフォーマットを決定するだけです。 -Jekyll は 2 つの人気のあるマークアップフォーマットをサポートしています: -[Markdown](http://daringfireball.net/projects/markdown/) と -[Textile](http://redcloth.org/textile) です。 -これらのフォーマットはそれぞれ -Post のコンテンツの異なるタイプをマークアップする独自の方法を持っているため、 -あなたは自分のニーズにもっとも適したものを決定し、それらのフォーマットに慣れるべきです。 - - -
-
文字セットに注意してください
-

- コンテンツプロセッサは、それらをよりよく見せるために、 - 特定の文字を変更することができます。 - 例えば、 Redcarpet 内の smart 拡張子は - ASCII のクォーテーション文字を Unicode のものに通常変換します。 - ブラウザにそれらの文字を適切に表示するためには、 - layout ファイルの <head> 内に - <meta charset="utf-8"> を含むことによって - 文字セットのメタ値を定義します。 -

-
-

+ コンテンツプロセッサはより美しく見せるために、特定の文字を変更できます。例えば、Redcarpetのsmart extensionは、標準のASCII引用符をUnicodeの中括弧に変換します。ブラウザがこれらの文字を正しく表示するために、レイアウトの<head><meta charset="utf-8">の文字コード定義メタタグを入れてください。 +

+ ---> - -## 画像やリソースを含める - - - -あなたが画像、ダウンロードや他のデジタル資産を -テキストのコンテンツに沿って含めるチャンスです。 -これらのリソースにリンクするための構文は Markdown と Textile の間で異なり、 -あなたのサイトにこれらのファイルを格納することの動作の問題は誰もが直面するものです。 - - - -なぜなら Jekyll の柔軟性は、これらを行うための方法に -たくさんのソリューションがあるからです。 -一つの一般的なソリューションは、任意の画像、 -ダウンロードや他のリソースを配置した `assets` や `downloads` のように -呼ばれるディレクトリをプロジェクトのルートに作成することです。 -その後、任意の Post の中からそれらは資産を含めたパスとして -サイトのルートを使用してリンクすることができます。 -繰り返しますが、これはあなたのサイトの(サブ)ドメインとパスの設定方法に依存しますが、 -ここであなたが Post の `site.url` 変数を使用してこれを行う方法の -いくつかの(Markdown での)例を示します。 - - - -Post 内に画像資産を含めます: - - - -{% highlight text %} -… 以下にスクリーンショットが表示されます: -![私の有用なスクリーンショット]({% raw %}{{ site.url }}{% endraw %}/assets/screenshot.jpg) -{% endhighlight %} - - - -読者がダウンロードするための PDF へのリンクを貼ります: - - - -{% highlight text %} -… あなたはそのまま [PDFをダウンロードできます]({% raw %}{{ site.url }}{% endraw %}/assets/mydoc.pdf) 。 -{% endhighlight %} - - -
-
ProTip™: 単にサイトのルート URL を使用してリンクする
-

- もしあなたのサイトが今までドメインのルート URL で表示していたならば、 - {% raw %}{{ site.url }}{% endraw %} 変数をスキップすることができます。 - この場合、あなたは単に /path/file.jpg とすれば、 - 資産を直接参照することができます。 -

-
+## イメージやリソースを含める + - - -## Post の index を表示する - - - -それは、フォルダ内で持っている Post がすべて順調でよいですが、 -あなたがどこかで Post のリストを持っていない限りブログはそれを使用しません。 -別のページ(または[テンプレート](../templates/)内)上の Post の index を作成するのは -簡単で、それは [Liquid template language](http://wiki.shopify.com/Liquid) と -そのタグのおかげと思っています。 -これはあなたのブログの Post へのリンクのリストを作成する方法の基本的な例です: - - - -{% highlight html %} - -{% endhighlight %} +いくつかのポイントとして、テキストコンテンツに画像やダウンロード、その他デジタルファイルを入れたくなるでしょう。一般的な方法として、プロジェクトディレクトリのrootフォルダに`assets`のようなイメージや他のリソースを入れておくためのフォルダを作ります。そうすれば、どのようなポストでもサイトのrootパスから挿入するアイテムへのリンクを使用することができます。実行するには、サイトの(サブ)ドメインとパスの構成により方法が異なりますが、シンプルなMarkdownの例を示します。 + + + +ポストに画像を入れる: + + + +```markdown +... which is shown in the screenshot below: +![My helpful screenshot](/assets/screenshot.jpg) +``` - + +```markdown +... you can [get the PDF](/assets/mydoc.pdf) directly. +``` + +## ポストのインデックスを表示する + + +他のページにポストのインデックスを作るのは、[Liquid](https://docs.shopify.com/themes/liquid/basics){:target="_blank"}とそのタグのおかげで簡単です。 +ここに、ブログポストへのリンクのリストを作り方のシンプルな例を示します。 + + + +{% raw %} +```html -{% endhighlight %} ---> +``` +{% endraw %} -もちろん、あなたは Post を表示する方法(と場所)や、 -サイトを構築する方法を完全に制御することができます。 -もし、さらに知りたい場合は、 Jekyll とともに -[テンプレートがどのように働くか](../templates/)について詳細を読むべきです。 +ポストをどのように(どこで)表示するか、サイトの構成をどのようにするかは、全てコントロールできます。もっと知りたい場合、Jekillの[テンプレートの働き方]({{ "docs/templates/" | relative_url }})を更に読むべきです。 - - -## Post の抜粋 - - - -各々の Post は自動的に excerpt_separator の最初に発生するコンテンツの先頭から -文書のはじめのブロックが取られ、そして post.excerpt として設定されます。 -上記の Post の index の例です。 -多分、あなたは各々の Post のはじめの段落を追加することよって Post の -内容について少しヒント含めたいのです: - - - -{% highlight html %} - -{% endhighlight %} +work](/docs/templates/) with Jekyll if you want to know more. --> + +`post`が上記の`for`ループ内にのみ存在することに注意してください。変換対象のポストやページの変数(`for`ループの中にあるポストやページの変数)にアクセスしたいときは、代わりに`page`変数を使用してください。 + + + +## カテゴリとタグ + + +Jekyllはブログポストのカテゴリとタグをサポートしています。カテゴリとタグの違いは、カテゴリはポストのURLに含めることができますが、タグはできません。 + + + +使用するにはまず、カテゴリとタグをfront matterにセットします: + + + +```yaml +--- +layout: post +title: A Trip +categories: [blog, travel] +tags: [hot, summer] +--- +``` + +Jekyllは`site.categories`でカテゴリを使用可能にします。`site.categories`には2つの異なる配列が格納されています。一つ目はカテゴリの名前、二つ目はそのカテゴリのポストの配列です。 + + + +{% raw %} +```liquid +{% for category in site.categories %} +

{{ category[0] }}

+ +{% endfor %} +``` +{% endraw %} + +タグも同様に`site.tags`で使用できます。 - + +## ポストの抜粋 + + +ポストで`excerpt`変数を使用することで、抜粋にアクセスすることができます。デフォルトはポストの最初の段落ですが、front matterや`_config.yml`で`excerpt_separator`を設定することでカスタマイズできます。 + + + +```yaml +--- +excerpt_separator: +--- + +Excerpt with multiple paragraphs + +Here's another paragraph in the excerpt. + +Out-of-excerpt +``` + +抜粋付きのブログポストのリストを出力する例です: + + + +{% raw %} +```liquid -{% endhighlight %} ---> - -Jekyll はあなたのために既にはじめの段落を掴んでくれているので、 -抜粋を `p` タグでラップする必要はありません。 -あなたが好むなら、これらのタグは以下のように消すことができます: - - - -{% highlight html %} -{% raw %}{{ post.excerpt | remove: '

' | remove: '

' }}{% endraw %} -{% endhighlight %} - - - -もし、あなたが自動的に生成された Post の抜粋を好まないなら、 -Post の YAML front-matter に `excerpt` を追加することによって上書きすることができます。 -`excerpt_separator` に `""` を設定することによって、完全にそれを無効にします。 - - - -また、 Liquid タグによって生成された任意の出力も同様に、任意の html タグを -出力の中から削除するために `| strip_html` フラグを渡すことができます。 -これはもし、あなたが `meta="description"` タグを Post の `head` として Post の抜粋を -出力するか、またはどこか他の内容の html タグ に沿って持つことを希望するなら、 -望ましくないが特に有効です。 - - - -## コードスニペットのハイライト化 - - - -Jekyll もまた Pygments か Rouge を使用したコードスニペットの -シンタックスハイライトサポートが組み込まれているため、 -任意の Post 内にコードスニペットを含めることは簡単です。 -ちょうど、次のように専用の Liquid タグを使用します。 - - - -{% highlight text %} -{% raw %}{% highlight ruby %}{% endraw %} -def show - @widget = Widget(params[:id]) - respond_to do |format| - format.html # show.html.erb - format.json { render json: @widget } - end -end -{% raw %}{% endhighlight %}{% endraw %} -{% endhighlight %} - - - -そして、出力はこのようになります: - - - -{% highlight ruby %} -def show - @widget = Widget(params[:id]) - respond_to do |format| - format.html # show.html.erb - format.json { render json: @widget } - end -end -{% endhighlight %} - - +``` +{% endraw %} -
-
ProTip™: 行番号を表示する
-

- あなたは、このように highlight 開始タグの終端に linenos を - 加えることによってコードスニペットに行番号を含めることができます: - {% raw %}{% highlight ruby linenos %}{% endraw %}。 -

-
+## ドラフト + - - -これらの基本情報は、あなたがはじめの Post を書き始めるのに十分でなければなりません。 -あなたがそれ以外の情報を掘り下げる準備が可能になったとき、 -あなたの Post やあなたのサイトの他の場所で -[Postのパーマリンクをカスタマイズする](../permalinks/)ことや、 -[カスタム変数](../variables/)を使用するようなことに興味がわいているかもしれません。 - - +ドラフトは、ファイル名に日付を含まないポストです。作業中で、まだ公開したくないポストです。ドラフトを立ち上げるには、サイトのrootに`_drafts`フォルダを作り、最初のドラフトを作成してください。 + + + +```text +|-- _drafts/ +| |-- a-draft-post.md +``` + +ドラフトを含むプレビューは、`jekyll serve`や`jekyll build`の実行時に`--drafts`スイッチをつけてください。ドラフトファイルの日付が割り当てられるため、現在編集中のドラフトは最新のポストとして表示されます。 + + diff --git a/_docs/quickstart.md b/_docs/quickstart.md deleted file mode 100644 index f08b680..0000000 --- a/_docs/quickstart.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -layout: docs -title: Quick-start ガイド -prev_section: home -next_section: installation -permalink: /docs/quickstart/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -せっかちな人のために、 Jekyll のひな形サイトを立ち上げる方法を説明します。 - - - -{% highlight bash %} -~ $ gem install jekyll -~ $ jekyll new myblog -~ $ cd myblog -~/myblog $ jekyll serve -# => http://localhost:4000 を見てください -{% endhighlight %} - - - -しかし、これは大したことではありません。 -テンプレートとレイアウトを制御するために front-matter を使い、 -Jekyll で使用可能なすべてのすばらしい設定オプションを利用し、 -ブログの posts を作成し始めた時に、真の魔法は起こります。 - - - -もし、問題に直面した時は、全ての [インストール必要条件][Installation] -を満たしている事を確認してください。 - - - -[Installation]: /docs/installation/ - - diff --git a/_docs/resources.md b/_docs/resources.md deleted file mode 100644 index d590b84..0000000 --- a/_docs/resources.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -layout: docs -title: リソース集 -prev_section: sites -next_section: upgrading -permalink: /docs/resources/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -Jekyllの利用の広がりと共に、チュートリアル、フレームワーク、エクステンション、例、そして -とても有用なリソースを生んでいます。以下は最も人気のあるJekyllリソースの一部へのリンク集です。 - - - -### Jekyll の使い方やヒント、例 - - - -- [GitHub Pages と統合するためのヒント](https://gist.github.com/2890453) - - - - コード例の再利用、および最新のドキュメントを維持する。 - - - -- [シンプルな問い合わせフォームと統合するためにはSimple Formを利用してください。](http://getsimpleform.com/) -- [JekyllBootstrap.com](http://jekyllbootstrap.com) - - - - より簡単にJekyllを始めるための、詳細な説明や例、ヘルパーコードが書かれています。 - - - -### チュートリアル - - - -#### Git とのJekyllの統合 - - - -- [Blogging with Git, Emacs and Jekyll](http://metajack.im/2009/01/23/blogging-with-git-emacs-and-jekyll/) - - - -#### その他のハック - - - -- [JekyllとTwitterの統合](http://www.justkez.com/integrating-twitter-with-jekyll/) - > “JekyllベースにJustkez.comを移行したので、サイトのフロントページに私の直近のつぶやきを表示させるにはどうすればいか考えていました。WordPressの場合では、キャッシュを利用したとしてもオーバヘッドがあり、ページのロード中にハングしてしまうかもしれないようなpluginで行っただろう…。Jekyllでない場合は。” -- [Mike Westによるブログ ‘My Jekyll Fork’](http://mikewest.org/2009/11/my-jekyll-fork) - > “Jekyllは非常によく設計されており、WordPress以前に立ち戻らせてくれる。男が男であり、HTMLが静的であった頃に。私はこのアイデアが気に入っていて、支持してしているし、そしてこのコア部分にいくつかの改良も加えています。ここで、私はこのサイト以外の利用者の為に私のFork内容の要点のいくつかについて指摘しておきます。” -- [Carter Allenによるブログ ‘このウェブサイトについて’](http://cartera.me/2010/08/12/about-this-website/) - > “Jekyllは私が今までブログエンジンで欲しかったものすべてです。本当に。完璧ではないですが、何が素晴らしいかというと何か間違ってることがあれば、どのように動作するかを正確に知っており、どのように修正するかを知っているからです。あなたのマシン上で実行され、本質的にあなたとブラウザの間に”build"という過程が加わるだけです。私は標準のHTML5とCSS3を使用してTextMateで、このサイト全体をコード化して、最後に私はこのマークアップにいくつかの変数を追加しました。Presto-chango、私のサイトは構築され、そして世界の平和を思います。” -- [Jekyllでタグクラウドを生成する](http://www.justkez.com/generating-a-tag-cloud-in-jekyll/) -Jekyllを用いたタグクラウドとタグごとのコンテンツページの実装ガイド - - - -- ForkやJekyll gemのコードベースを修正することなしに[Jekyllを拡張](https://github.com/rfelix/jekyll_ext)したり、再利用・共有可能ないくつかの[便利なJekyllの拡張](https://wiki.github.com/rfelix/jekyll_ext/extensions)の方法 - - - -- [RailsのレイアウトでJekyllを利用する](http://numbers.brighterplanet.com/2010/08/09/sharing-rails-views-with-jekyll) - - diff --git a/_docs/ruby-101.md b/_docs/ruby-101.md new file mode 100644 index 0000000..4b6e7aa --- /dev/null +++ b/_docs/ruby-101.md @@ -0,0 +1,64 @@ +--- +title: Ruby基礎 +permalink: /docs/ruby-101/ +--- + + +JekyllはRubyで書かれています。Rubyが初めてでしたら、このページはいくつかの用語を理解するのを助けるものです。 + + +## Gems + +gemはRubyプロジェクトに含めることができるコードです。機能をパッケージにして、他のプロジェクトや他の人々と共有することを可能にします。 +gemは次のような機能を実行できます。 + + +* RubyオブジェクトをJSONにコンバート +* ページ分け +* GitHubのようなAPIとの相互作用 +* Jekyllはそれ自身が、[jekyll-feed](https://github.com/jekyll/jekyll-feed){:target="_blank"}、[jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag){:target="_blank"}や[jekyll-archives](https://github.com/jekyll/jekyll-archives){:target="_blank"}を含む多くのJekyllプラグインと同様にgemです。 + + + + +## Gemfile + +`Gemfile`はあなたのサイトに必要なgemのリストです。シンプルなJekyllサイトの場合、この様になります。 + + +```ruby +source 'https://rubygems.org' + +gem 'jekyll' + +group :jekyll_plugins do + gem 'jekyll-feed' + gem 'jekyll-seo-tag' +end +``` + +## Bundler + +Bundlerは`Gemfile`のgemをインストールします。`Gemfile`や`bundler`の使用は必須ではありませんが、異なる環境で横断的に、JekyllやJekyllプラグインと同じバージョンを確保することを強くお勧めします。 + + +`gem install bundler`で[Bundler](https://rubygems.org/gems/bundler){:target="_blank"}をインストールします。必要なのは1回だけです。 — 新しいJekyllプロジェクトを作成する度ではありません。 +追加情報をいくつか以下に記載しています。 + + +`Gemfile`を使用している場合、最初に`bundle install`でgemをインストールし、`bundle exec jekyll serve`でサイトを構築します。これは`Gemfile`に設定されているgemバーションを使用することを保証します。 +`Gemfile`を使用していない場合は、ただ`jekyll serve`で実行できます。 + + +JekyllプロジェクトでのBundlerの使い方についてのさらなる情報は、この[チュートリアル]({{ "/tutorials/using-jekyll-with-bundler/" | relative_url }})に多くの共通の質問の回答と、すぐに起動して実行する方法があります。 + diff --git a/_docs/sites.md b/_docs/sites.md deleted file mode 100644 index 68ccf4f..0000000 --- a/_docs/sites.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -layout: docs -title: Jekyllを使ったサイト -prev_section: troubleshooting -next_section: resources -permalink: /docs/sites/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] ---- - - - -他の人が考えたデザインや機能を見るのは面白いです。 -以下は厳選された学習目的のJekyll利用のブログです。 - - - -- [Tom Preston-Wernerのブログ](http://tom.preston-werner.com/) - ([ソース](https://github.com/mojombo/mojombo.github.io)) -- [Nick Quarantoのブログ](http://quaran.to/) - ([ソース](https://github.com/qrush/qrush.github.com)) -- [Roger Chapmanのブログ](http://rogchap.com/) - ([ソース](https://github.com/rogchap/rogchap.github.com)) -- [GitHub 公式 教育資料](http://training.github.com) - ([ソース](https://github.com/github/training.github.com/tree/7049d7532a6856411e34046aedfce43a4afaf424)) -- [Rasmus Anderssonのブログ](http://rsms.me/) - ([ソース](https://github.com/rsms/rsms.github.com)) -- [Scott Chaconのブログ](http://schacon.github.com) - ([ソース](https://github.com/schacon/schacon.github.com)) - - - -あなたがより多くの例を探したい場合は、[Jekyll wikiの「サイト」ページ][jekyll-sites]にサイトと -そのソースのリストを見つけることができます。 - - - -[jekyll-sites]: {{ site.repository }}/wiki/Sites - - diff --git a/_docs/static_files.md b/_docs/static_files.md new file mode 100644 index 0000000..43e06d6 --- /dev/null +++ b/_docs/static_files.md @@ -0,0 +1,126 @@ +--- +title: 静的ファイル +permalink: /docs/static-files/ +--- + + +静的ファイルはfront matterの無いファイルです。画像やPDFなどレンダリングしないファイルも含みます。 + + + +`site.static_files`でLiquidからアクセスでき、以下のメタデータを含んでいます。 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
変数説明

file.path

+ + ファイルの相対パス。/assets/img/image.jpgなど。 + + +

file.modified_time

+ + ファイルが最後に修正された`Time`。2016-04-01 16:35:26 +0200など。 + + +

file.name

+ + ファイル名の文字列。 例:ファイルがimage.jpgだとimage.jpg。 + + +

file.basename

+ + ファイルのベースネーム。例:ファイルがimage.jpgだとimage。 + + +

file.extname

+ + ファイルの拡張子。例:ファイルがimage.jpgだと.jpg + + +

+
+ +上記の表で、`file`は何にでもなることに注意してください。(ループのような)処理で変数として使用するものです。グローバルなサイトやページの変数ではありません。 + + + +## 静的ファイルへのfront matterの追加 + + +静的ファイルに直接front matterを追加することはできませんが、設定ファイルの[デフォルトプロパティ]({{ "docs/configuration/front-matter-defaults/" | relative_url }})を通じてfront matterニア隊をセットできます。Jekyllが構築するときにセットしたfront matterを使用できます。 + + + +例えば: + + +`_config.yml`に`defaults`として以下の値を追加します。 + + + +```yaml +defaults: + - scope: + path: "assets/img" + values: + image: true +``` + +Jekyllサイトの画像(静的ファイル)が全て`assets/img`にあると仮定します。すると、Jekyllがサイトを構築するとき、全ての画像ファイルにfront matterで`image: true`とされているかのように扱います。 + + + +`assets/img`にある画像ファイルのリストを作りたいとします。`static_files`を見るループ処理で、このfront matterを持つファイルを取得します。 + + + +{% raw %} +```liquid +{% assign image_files = site.static_files | where: "image", true %} +{% for myimage in image_files %} + {{ myimage.path }} +{% endfor %} +``` +{% endraw %} + +サイトを構築すると、このfront matterを持つファイルのパスのリストが出力されます。 + + diff --git a/_docs/step-by-step/01-setup.md b/_docs/step-by-step/01-setup.md new file mode 100644 index 0000000..c3c5423 --- /dev/null +++ b/_docs/step-by-step/01-setup.md @@ -0,0 +1,134 @@ +--- +layout: step +title: セットアップ +menu_name: Step by Stepチュートリアル +position: 1 +--- + + +Jekkylのstep-by-stepチュートリアルへようこそ。このチュートリアルの目的は、デフォルトのgemベースのテーマに頼ることなく、一から最初のJekyllサイトを構築し、フロントエンドのWeb開発の経験をすることです。 +さあ、始めましょう! + + + +## インストール + + +JekyllはRubyプログラムですので、最初にRubyをあなたのマシーンにインストールする必要があります。[インストールガイド]({{ "/docs/installation/" | relative_url }})へ向かい、OSにあわせた説明を確認してください。 + + + +Rubyをセットアップしたら、ターミナルで以下を実行し、Jekyllをインストールできます。 + + + +``` +gem install jekyll bundler +``` + +プロジェクトの依存関係のリストのために、新しい`Gemfile`を作成します。 + + + +``` +bundle init +``` + +`Gemfile`を編集し、依存関係としてJekyllを追加します。 + + + +``` +gem "jekyll" +``` + +最後にプロジェクトのためのJekyllをインストールするために`bundle`を実行します。 + + + +以上でこのチュートリアルに書かれている全てのコマンドの前に`bundle exec`をつけることで、`Gemfile`で定義されたjekyllのバーションを使用できます。 + + + +## サイトを作る + + +サイトを作るときです! サイト用の新しいディレクトリを作り、好きな名前をつけましょう。このチュートリアルでは、そのディレクトリを“root”とします。 + + + +冒険がお好きなら、ここでGitリポジトリを初期化することができます。Jekyllの素晴らしいところの一つは、データベースが無いことです。全てのコンテンツとサイトの構成はGitのリポジトリでバージョン管理できるファイルです。リポジトリを使用するのは完全にオプションですが、習得するのは良い習慣です。Gitの使用については、[Git Handbook](https://guides.github.com/introduction/git-handbook/){:target="_blank"}を読むことで学べます。 + + + +最初のファイルを作成しましょう。rootに以下の内容の`index.html`を作成します。 + + + +```html + + + + + Home + + +

Hello World!

+ + +``` + +## ビルド + + +Jekyllは静的サイトのジェネレータですので、サイトを見る前にJekyllで構築する必要があります。 +構築するためにrootで実行できるコマンドは2つあります。 + + + +* `jekyll build` - サイトを構築し、`_site`ディレクトリに出力します。 +* `jekyll serve` - 上記と同じことをし、変更を加える度に再構築を行います。あわせて`http://localhost:4000`でローカルサーバを走らせます。 + + + +サイトを開発しているときは、変更を更新するために`jekyll serve`を使用するとよいでしょう。 + + + +`jekyll serve`を実行し、ブラウザでhttp://localhost:4000を見てみましょう。"Hello World!"と表示されるはずです。 + + + +さて、あなたはこれが何だというのかと、考えているでしょうか? JekyllはただHTMLファイルをある場所から別の場所へコピーしただけです。もう少し我慢してください。まだまだ学ぶことがあります。 + + diff --git a/_docs/step-by-step/02-liquid.md b/_docs/step-by-step/02-liquid.md new file mode 100644 index 0000000..5b00c01 --- /dev/null +++ b/_docs/step-by-step/02-liquid.md @@ -0,0 +1,115 @@ +--- +layout: step +title: Liquid +position: 2 +--- + +LiquidでJekyllはもっと面白くなります。Liquidは3つの主なパート:[オブジェクト](#objects)、[タグ](#tags)、[フィルタ](#filters)を持つテンプレート言語です。 + + + + +## オブジェクト {#objects} + + +ObjectはLiquidにコンテンツを出力する場所を指示します。2つの中括弧:{% raw %}`{{`{% endraw %}と{% raw %}`}}`{% endraw %}で示します。例えば、 + + + +{% raw %} +```liquid +{{ page.title }} +``` +{% endraw %} + +ページに`page.title`という変数の内容を出力します。 + + + +## タグ {#tags} + + +タグはロジックを作成し、テンプレートの流れをコントロールします。中括弧とパーセント:{% raw %}`{%`{% endraw %}と{% raw %}`%}`{% endraw %}で示します。例えば、 + + + +{% raw %} +```liquid +{% if page.show_sidebar %} + +{% endif %} +``` +{% endraw %} + +もし`page.show_sidebar`がtrueなら、サイドバーを出力します。Jekyllで使用できるタグについては、[こちら]({{ "/docs/liquid/tags/" | relative_url }})をご確認ください。 + + + +## フィルタ {#filters} + + +フィルタはLiquidオブジェクトの出力を変更します。アプトプットの中で使用し、`|`で区切ります。例えば、 + + + +{% raw %} +```liquid +{{ "hi" | capitalize }} +``` +{% endraw %} + +`Hi`が出力されます。Jekyllで使用できるフィルタについては、[こちら]({{ "/docs/liquid/filters/" | relative_url }})をご確認ください。 + + + +## Liquidを使う + + +あなたの番です。ページのHello World!を小文字での出力に変更しましょう。 + + + +{% raw %} +```liquid +... +

{{ "Hello World!" | downcase }}

+... +``` +{% endraw %} + +変更をJekyllが処理するには、ページの先頭に[front matter](03-front-matter/)を追加する必要があります。 + + + +```markdown +--- +# front matter tells Jekyll to process Liquid +--- +``` + +"Hello World!"はレンダリング時に小文字になります。 + + + +今は何もないように見えるかもしれませんが、JekyllはLiquidや他の機能と組み合わせることで、大きな力を発揮します。 + + + +`downcase`のLiquidフィルタによる変更を見るには、front matterを追加する必要があります。 + + + +歩みを止めず、次へ進みましょう。 + + diff --git a/_docs/step-by-step/03-front-matter.md b/_docs/step-by-step/03-front-matter.md new file mode 100644 index 0000000..77e702e --- /dev/null +++ b/_docs/step-by-step/03-front-matter.md @@ -0,0 +1,58 @@ +--- +layout: step +title: Front Matter +position: 3 +--- +front matterは、ファイル冒頭の3つのダッシュのライン2つの間の[YAML](http://yaml.org/){:target="_blank"}の断片です。front matterは、例えば次のようにしてページに変数をセットするために使います。 + + + +```liquid +--- +my_number: 5 +--- +``` + +front matterの変数は、`page`変数としてLiquidで使用できます。例えば、上記の変数を出力する場合は、次のように使用します。 + + + +{% raw %} +```liquid +{{ page.my_number }} +``` +{% endraw %} + +## front matterを使う + + +front matterを使って、サイトの``を変更してみましょう。 + +<!-- Let's change the `<title>` on your site to populate using front matter: --> + +{% raw %} +```html +--- +title: Home +--- +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <title>{{ page.title }} + + +

{{ "Hello World!" | downcase }}

+ + +``` +{% endraw %} + +普通のHTMLよりもソースコードを多く書かなければいけないのに、どうしてこの様にするのか不思議に思っているのではないでしょうか。次のステップへ進むと、理由が分かります。 + + diff --git a/_docs/step-by-step/04-layouts.md b/_docs/step-by-step/04-layouts.md new file mode 100644 index 0000000..d5a086d --- /dev/null +++ b/_docs/step-by-step/04-layouts.md @@ -0,0 +1,123 @@ +--- +layout: step +title: レイアウト +position: 4 +--- + + +Webサイトには通常複数のページがあり、このWebサイトでも違いはありません。 + + + +JekyllはページのためにHTMLと同様[Markdown](https://daringfireball.net/projects/markdown/syntax){:target="_blank"}もサポートしています。MarkdownはHTMLと比較して少ない要素で済み、(段落とヘッダと画像という)シンプルな構成要素のページには素晴らしい選択です。2つ目のページでは、それに挑戦してみましょう。 + + + +rootに`about.md`を作成します。 + + + +構成は`index.html`をコピーして、aboutページになるよう修正します。これを行う際の問題は、重複しているコードがあることです。スタイルシートをサイトに追加したくなったら、各ページの``に指定を追加しなければなりません。2ページだけならそう大変には思えないでしょうが、100ページある場合を想像してみてください。簡単な変更でも、長い時間がかかります。 + + + +## レイアウトを作る + + +レイアウトを使うことは、より良い選択です。レイアウトはコンテンツを包み込むテンプレートです。それらは、`_layouts`に入っています。 + + + +以下の内容で、`_layouts/default.html`にあなたの最初のレイアウトを作りましょう。 + + + +{% raw %} +```liquid + + + + + {{ page.title }} + + + {{ content }} + + +``` +{% endraw %} + +`index.html`とほとんど同じことに気づいたのではないでしょうか。違いは、front matterが無いことと、ページのコンテンツが`content`変数に置き換わっていることです。`content`は特別な変数で、ページが読み込まれたときに、そのレンダリングされたコンテンツを持っています。 + + + +`index.html`がこのレイアウトを使う用にするために、front matterに`layout`変数をセットします。レイアウトがコンテンツを包み込むため、`index.html`に入れる必要があるのは、いかが全てです。 + + + +{% raw %} +```html +--- +layout: default +title: Home +--- +

{{ "Hello World!" | downcase }}

+``` +{% endraw %} + +これを行ったあと、出力は以前と全く同じになります。レイアウトから、`page`のfront matterにアクセスすることができます。今回の場合は、`title`がindexページのfront matterで設定されていますが、レイアウトで出力されています。 + + + +## Aboutページ + + +aboutページに戻り、`index.html`からコピーする代わりに、レイアウトを使用することができます。 + + + +`about.md`を以下のようにします。 + + + +{% raw %} +```html +--- +layout: default +title: About +--- +# About page + +This page tells you a little bit about me. +``` +{% endraw %} + +http://localhost:4000/about.htmlをブラウザで開き、新しいページを見てみましょう。 + + + +おめでとうございます、2つのページのWebサイトができました! しかし、どうやってあるページから別のページへナビゲートしましょう? それを見つけるため、引き続き読み進めてください。 + + diff --git a/_docs/step-by-step/05-includes.md b/_docs/step-by-step/05-includes.md new file mode 100644 index 0000000..e1d47bf --- /dev/null +++ b/_docs/step-by-step/05-includes.md @@ -0,0 +1,116 @@ +--- +layout: step +title: Includes(インクルード) +position: 5 +--- + + +サイトは一緒にできていますが、ページ間を移動する方法がありません。そこを修正していきましょう。 + + + +ナビゲーションは全てのページにあるべきですので、レイアウトに追加するのが正しいです。レイアウトに直接追加するのではなく、インクルードについて学ぶ機会に使いましょう。 + + + +## インクルードタグ + + +`include`タグは、`_includes`フォルダにある別のファイルを読み込むことを可能にします。インクルードはサイト内で繰り返されるコードを一つにしたり、読みやすさを向上させるのに役立ちます。 + + + +ナビゲーションのソースコードは複雑になる可能性があるため、インクルードに移動する方が場合があります。 + + + +## インクルードの使い方 + + +以下の内容のナビゲーションファイルを`_includes/navigation.html`として作成します。 + + + +```liquid + +``` + +インクルードタグを使用して、`_layouts/default.html`にナビゲーションを追加してみましょう。 + + + +{% raw %} +```liquid + + + + + {{ page.title }} + + + {% include navigation.html %} + {{ content }} + + +``` +{% endraw %} + +http://localhost:4000をブラウザで開いて、ページの移動をやってみましょう。 + + + +## 現在のページを強調 + + +更に一歩進んで、ナビゲーションの現在のページを強調してみましょう。 + + + +スタイルを追加するためには、`_includes/navigation.html`が挿入されるページのURLを知っている必要があります。Jekyllでは便利な[変数]({{ "/docs/variables/" | relative_url }})を使用でき、その一つが`page.url`です。 + + + +`page.url`を使用して各リンクが現在のページなのかを確認し、そうなら色を赤にします。 + + + +{% raw %} +```liquid + +``` +{% endraw %} + +http://localhost:4000を見て、現在のページがレッドリンクになっていることを確認してください。 + + + +ナビゲーションに新しい項目を追加したり、ハイライトの色を変更したい場合は、ここでも多くの繰り返しがあります。次のステップでは、これに対処します。 + + diff --git a/_docs/step-by-step/06-data-files.md b/_docs/step-by-step/06-data-files.md new file mode 100644 index 0000000..08e10fa --- /dev/null +++ b/_docs/step-by-step/06-data-files.md @@ -0,0 +1,69 @@ +--- +layout: step +title: Dataファイル +position: 6 +--- + + +Jekyllは`_data`ディレクトリにあるYAMLやJSON、CSVファイルからのデータのロードをサポートしています。データファイルはコースコードとコンテンツを分け、サイトの管理を簡単にするよい方法です。 + + + +このステップでは、ナビゲーションの内容をデータファイルに保存して、ナビゲーションのインクルードで繰り返して使用します。 + + + +## データファイルの使い方 + + +[YAML](http://yaml.org/){:target="_blank"}はRubyエコシステムと共通のフォーマットです。ナビゲーションの各名前とリンクのアイテムを配列で保存して使用します。 + + + +以下の内容のナビゲーション用ファイルを`_data/navigation.yml`として作成します。 + + + +```yaml +- name: Home + link: / +- name: About + link: /about.html +``` + +Jekyllはこのデータファイルを`site.data.navigation`で利用できるようにします。`_includes/navigation.html`の各リンクの出力の代わりに、データファイルの反復処理でできます。 + + + +{% raw %} +```liquid + +``` +{% endraw %} + +出力結果は同じです。違いは、新しいナビゲーションを追加やHTML構成の変更が簡単になることです。 + + + +CSS、JS、画像のないサイトは何がいいのでしょう? JekyllでAssetsを処理する方法を見てみましょう。 + + diff --git a/_docs/step-by-step/07-assets.md b/_docs/step-by-step/07-assets.md new file mode 100644 index 0000000..ebdaa73 --- /dev/null +++ b/_docs/step-by-step/07-assets.md @@ -0,0 +1,113 @@ +--- +layout: step +title: Assets +position: 7 +--- + +JekyllでCSSやJS、画像その他のファイルを使うのは、簡単です。サイトのフォルダにそれらを入れれば、サイトを構築する家庭でコピーされます。 + + + +Jekyllのサイトでは、ファイルを整理するために次のような構成を取ることが多いです。 + + + +```sh +. +├── assets +| ├── css +| ├── images +| └── js +... +``` + +## Sass + +`_includes/navigation.html`のインラインスタイルは、ベストではありません。classを使用して、現在のページの表示スタイルを設定してみましょう。 + + + +{% raw %} +```liquid + +``` +{% endraw %} + +スタイル設定のために一般的なCSSを使用することもできますが、このステップでは[Sass](https://sass-lang.com/){:target="_blank"}を使ってみましょう。SassはJekyllに組み込まれているCSSの素晴らしい拡張機能です。 + + + +まず、以下の内容で`/assets/css/styles.scss`のファイルを作成します。 + + + +{% raw %} +```css +--- +--- +@import "main"; +``` +{% endraw %} + +冒頭にある空のfront matterは、Jekyllに処理が必要なファイルだと知らせるためのものです。`@import "main"`は、Sassへのsassディレクトリ(デフォルトではサイトのrootの`_sass/`)の`main.scss`というファイルを探すようにという指示です。 + + + +この段階では、メインのcssファイルのみです。より大きなプロジェクトでは、CSSを整理するための素晴らしい方法になります。 + + + +以下の内容で、`/_sass/main.scss`を作成します。 + + + +```sass +.current { + color: green; +} +``` + +レイアウトで、スタイルシートを参照するようにする必要があります。 + + + +`_layouts/default.html`を開き、``にスタイルシートの参照を追加します。 + + + +{% raw %} +```liquid + + + + + {{ page.title }} + + + + {% include navigation.html %} + {{ content }} + + +``` +{% endraw %} + +http://localhost:4000を読み込み、ナビゲーションのそのページへのリンクが緑になっていることを確認しましょう。 + + + +次は、Jekyllの最もポピュラーな機能、ブログについて見てみましょう。 + + diff --git a/_docs/step-by-step/08-blogging.md b/_docs/step-by-step/08-blogging.md new file mode 100644 index 0000000..47db76c --- /dev/null +++ b/_docs/step-by-step/08-blogging.md @@ -0,0 +1,189 @@ +--- +layout: step +title: ブログ +position: 8 +--- + + +データベースを使わず、どうやってブログにするのか不思議に思っているのではないでしょうか。Jekyllのスタイルなら、テキストファイルだけでブログを作ることができます。 + + + +## ポスト + + +ブログポストは`_posts`フォルダに入れます。ポストのファイル名は特別なフォーマットで、公開日、タイトル、拡張子です。 + + + +最初のポストを、以下の内容で`_posts/2018-08-20-bananas.md`として作成しましょう。 + + + +```markdown +--- +layout: post +author: jill +--- +A banana is an edible fruit – botanically a berry – produced by several kinds +of large herbaceous flowering plants in the genus Musa. + +In some countries, bananas used for cooking may be called "plantains", +distinguishing them from dessert bananas. The fruit is variable in size, color, +and firmness, but is usually elongated and curved, with soft flesh rich in +starch covered with a rind, which may be green, yellow, red, purple, or brown +when ripe. +``` + +以前作成した`about.md`に似ていますが、レイアウトが異なり、著者(author)の指定が入っています。`author`はカスタム変数で、必須ではありませんし、`creator`の様な名前にすることもできます。 + + + +## レイアウト + + +`post`レイアウトがありませんので、以下の内容で`_layouts/post.html`を作成しましょう。 + + + +{% raw %} +```html +--- +layout: default +--- +

{{ page.title }}

+

{{ page.date | date_to_string }} - {{ page.author }}

+ +{{ content }} +``` +{% endraw %} + +これはレイアウトを継承する例です。postレイアウトはタイトル、日付、著者をコンテンツをdefaultレイアウトのbodyに出力します。 + + + +`date_to_string`はフィルタで、日付のフォーマットをより良いフォーマットに変換します。 + + + +## ポストのリスト + + +ブログポストへの移動方法がまだありません。通常ブログはポストのリストのページがあります。次はそれを作ってみましょう。 + + + +Jekyllはポストを`site.posts`で使用可能にします。 + + + +以下の内容の`blog.html`をroot(`/blog.html`)に作成します。 + + + +{% raw %} +```html +--- +layout: default +title: Blog +--- +

Latest Posts

+ +
    + {% for post in site.posts %} +
  • +

    {{ post.title }}

    +

    {{ post.excerpt }}

    +
  • + {% endfor %} +
+``` +{% endraw %} + +このコードのメモです。 + + + +* `post.url`はJekyllが自動でセットするポストの出力するパスです。 +* `post.title`はポストのファイル名から取得され、front matterで`title`を設定することで上書きできます。 +* `post.excerpt`はデフォルトではポストの内容の最初の段落です。 + + + +また、メインナビゲーションにこのページへの移動が必要です。`_data/navigation.yml`を開き、ブログページを追加しましょう。 + + + +```yaml +- name: Home + link: / +- name: About + link: /about.html +- name: Blog + link: /blog.html +``` + +## ポストを増やす + + +一つのポストだけのブログは面白くありません。もう少し追加しましょう。 + + + +`_posts/2018-08-21-apples.md`: + +```markdown +--- +layout: post +author: jill +--- +An apple is a sweet, edible fruit produced by an apple tree. + +Apple trees are cultivated worldwide, and are the most widely grown species in +the genus Malus. The tree originated in Central Asia, where its wild ancestor, +Malus sieversii, is still found today. Apples have been grown for thousands of +years in Asia and Europe, and were brought to North America by European +colonists. +``` + +`_posts/2018-08-22-kiwifruit.md`: + +```markdown +--- +layout: post +author: ted +--- +Kiwifruit (often abbreviated as kiwi), or Chinese gooseberry is the edible +berry of several species of woody vines in the genus Actinidia. + +The most common cultivar group of kiwifruit is oval, about the size of a large +hen's egg (5–8 cm (2.0–3.1 in) in length and 4.5–5.5 cm (1.8–2.2 in) in +diameter). It has a fibrous, dull greenish-brown skin and bright green or +golden flesh with rows of tiny, black, edible seeds. The fruit has a soft +texture, with a sweet and unique flavor. +``` + +http://localhost:4000を開き、ブログポストを確認してみましょう。 + + + +次は、ポストの著者のページの作成に焦点を合わせます。 + + diff --git a/_docs/step-by-step/09-collections.md b/_docs/step-by-step/09-collections.md new file mode 100644 index 0000000..79bc7cd --- /dev/null +++ b/_docs/step-by-step/09-collections.md @@ -0,0 +1,320 @@ +--- +layout: step +title: コレクション +position: 9 +--- + + +著者について肉付けするため、各著者の紹介と公開したポストのページを準備しましょう。 + + + +それを行うために、コレクションを使用します。コレクションはポストによく似ていますが、日付でグループ化されない点が異なります。 + + + +## 設定 + + +コレクションをセットアップするために、Jekyllに教える必要があります。(デフォルトでは)Jekyllの設定は`_config.yml`というファイルで行います。 + + + +以下の内容で`_config.yml`を作成します。 + + + +```yaml +collections: + authors: +``` + +設定ファイルを(再)読み込みするために、Jekyllサーバーをリスタートします。ターミナルで、`Ctrl`+`C`を押しサーバーを止めてから、`jekyll serve`で再起動します。 + + + +## 著者を追加する + + +ドキュメント(コレクションのアイテム)は、サイトのrootの`_*collection_name*`に入れます。今回の場合は、`_authors`です。 + + + +各著者のドキュメントを作成します。 + + + +`_authors/jill.md`: + +```markdown +--- +short_name: jill +name: Jill Smith +position: Chief Editor +--- +Jill is an avid fruit grower based in the south of France. +``` + +`_authors/ted.md`: + +```markdown +--- +short_name: ted +name: Ted Doe +position: Writer +--- +Ted has been eating fruit since he was baby. +``` + +## スタッフページ + + +サイトの全著者のリストのページを追加しましょう。Jekyllは`site.authors`でコレクションを利用可能にします。 + + + +`staff.html`を作り、`site.authors`を繰り返し処理して全てのスタッフを出力します。 + + + +{% raw %} +```html +--- +layout: default +title: Staff +--- +

Staff

+ +
    + {% for author in site.authors %} +
  • +

    {{ author.name }}

    +

    {{ author.position }}

    +

    {{ author.content | markdownify }}

    +
  • + {% endfor %} +
+``` +{% endraw %} + +contentはmarkdownで書かれていますので、`markdownify`フィルタを通す必要があります。レイアウトで{% raw %}`{{ content }}`{% endraw %}を使用するときは、自動で行われています。 + + + +また、メインナビゲーションでこのページに移動できるようにしましょう。`_data/navigation.yml`を開き、スタッフページの記述を追加しましょう。 + + + +```yaml +- name: Home + link: / +- name: About + link: /about.html +- name: Blog + link: /blog.html +- name: Staff + link: /staff.html +``` + +## ページの出力 + + +デフォルトでは、コレクションはドキュメントのページを出力しません。今回の場合、各著者のページが必要ですので、コレクションの設定を修正します。 + + + +`_config.yml`を開き、authorコレクションの設定に`output: true`を追加します。 + + + +```yaml +collections: + authors: + output: true +``` + +出力したページへのリンクは、`author.url`を使用して行えます。 + + + +`staff.html`ページにリンクを追加します。 + + + +{% raw %} +```html +--- +layout: default +--- +

Staff

+ +
    + {% for author in site.authors %} +
  • +

    {{ author.name }}

    +

    {{ author.position }}

    +

    {{ author.content | markdownify }}

    +
  • + {% endfor %} +
+``` +{% endraw %} + +ポストと同じように、著者のレイアウトを作成する必要があります。 + + + +以下の内容で`_layouts/author.html`を作成します。 + + + +{% raw %} +```html +--- +layout: default +--- +

{{ page.name }}

+

{{ page.position }}

+ +{{ content }} +``` +{% endraw %} + +## front matterのデフォルト値 + + +次は、著者のドキュメントに`author`レイアウトを設定する必要があります。これまでやったように、front matterで設定することができますが、それでは何度も同じ操作が必要です。 + + + +自動でポストはpostレイアウト、著者のページにはauthorレイアウト、その他のページはdefaultレイアウトになるといいですよね。 + + + +`_config.yml`で[front matter defaults]({{ "/docs/configuration/front-matter-defaults/" | relative_url }})を使用すれば、できます。デフォルトをscopeに当てはめて、望むfront matterのデフォルト値を設定します。 + + + +実際に`_config.yml`にレイアウトのデフォルト値を追加してみましょう。 + + + +```yaml +collections: + authors: + output: true + +defaults: + - scope: + path: "" + type: "authors" + values: + layout: "author" + - scope: + path: "" + type: "posts" + values: + layout: "post" + - scope: + path: "" + values: + layout: "default" +``` + +これで、全てのページやポストのfront matterからレイアウトの指定を省くことができます。`_config.yml`を更新した場合は、変更を反映するためにJekyllを再起動する必要があります。 + + + +## 著者の投稿のリスト + + +著者のページに公開したポストをリストアップしてみましょう。これには、著者の`short_name`とポストの`author`を一致させる必要があります。ポストをauthorでフィルタすることで行うことができます。 + + + +著者のポストを出力するために、`_layouts/author.html`のフィルタをかけたリストの繰り返し処理を行います。 + + + +{% raw %} +```html +--- +layout: default +--- +

{{ page.name }}

+

{{ page.position }}

+ +{{ content }} + +

Posts

+
    + {% assign filtered_posts = site.posts | where: 'author', page.short_name %} + {% for post in filtered_posts %} +
  • {{ post.title }}
  • + {% endfor %} +
+``` +{% endraw %} + +## 著者ページへのリンク + + +ポストでは著者を参照していますので、著者のページへのリンクを貼りましょう。`_layouts/post.html`で、先ほどとよく似たフィルタのテクニックを使います。 + + + +{% raw %} +```html +--- +layout: default +--- +

{{ page.title }}

+ +

+ {{ page.date | date_to_string }} + {% assign author = site.authors | where: 'short_name', page.author | first %} + {% if author %} + - {{ author.name }} + {% endif %} +

+ +{{ content }} +``` +{% endraw %} + +http://localhost:4000を開き、スタッフページやポストの著者のリンクが、きちんと機能していることを確認しましょう。 + + + +次はこのチュートリアルの最後のステップです。サイトに磨きをかけ、作品の配備の準備をします。 + + diff --git a/_docs/step-by-step/10-deployment.md b/_docs/step-by-step/10-deployment.md new file mode 100644 index 0000000..a3e8f84 --- /dev/null +++ b/_docs/step-by-step/10-deployment.md @@ -0,0 +1,204 @@ +--- +layout: step +title: Deployment +position: 10 +--- + +この最後のステップでは、サイトの公開準備をします。 + + + +## Gemfile + +サイトの[Gemfile]({{ "/docs/ruby-101/#gemfile" | relative_url }})を用意することは、よい経験になります。これにより、Jekyllや他のgemのバージョンが異なる環境でも、一貫していることが保証されます。 + + + +rootに以下の`Gemfile`を作ります。 + + + +``` +source 'https://rubygems.org' + +gem 'jekyll' +``` + +ターミナルで`bundle install`を実行します。これでgemをインストールし、後々`bundle install`時に現在のgemのバージョンをロックしておくための`Gemfile.lock`を作成します。gemのバージョンを更新したいときは、`bundle update`を実行してください。 + + + +`Gemfile`を使用すると、`jekyll serve`の様なコマンドは`bundle exec`を前につけて実行します。ですので、フルコマンドは次のようになります。 + + + +```bash +bundle exec jekyll serve +``` + +これは、`Gemfile`で設定されたgemだけを使用するようにRuby環境を制限します。 + + + +## プラグイン + + +Jekyllプラグインは、サイトに固有のカスタムコンテンツを生成することができます。沢山の利用可能な[plugins]({{ "/docs/plugins/" | relative_url }})がありますし、自分自身で作ることもできます。 + + + +多くのJekyllサイトで便利な公式のプラグイン3つを紹介します。 + + + +* [jekyll-sitemap](https://github.com/jekyll/jekyll-sitemap){:target="_blank"} - 検索エンジンがコンテンツをインデックスに加えるのを助けるsitemapを作成します。 +* [jekyll-feed](https://github.com/jekyll/jekyll-feed){:target="_blank"} - ポストのRSSフィードを作成します。 +* [jekyll-seo-tag](https://github.com/jekyll/jekyll-seo-tag) {:target="_blank"}- SEO用のmetaタグを追加します。 + + + +これらを使用するには、まず`Gemfile`に追記します。`jekyll_plugins`に配置すれば、自動でJekyllに要求されます。 + + + +``` +source 'https://rubygems.org' + +gem 'jekyll' + +group :jekyll_plugins do + gem 'jekyll-sitemap' + gem 'jekyll-feed' + gem 'jekyll-seo-tag' +end +``` + +次に以下の行を`_config.yml`に追加します。 + + + +``` +plugins: + - jekyll-feed + - jekyll-sitemap + - jekyll-seo-tag +``` + +では、`bundle update`を実行して、これらをインストールしましょう。 + + + +`jekyll-sitemap`はこれ以上のステップを必要とせず、構築時にsitemapを作成します。 + + + +`jekyll-feed`と`jekyll-seo-tag`は`_layouts/default.html`にタグの追加が必要です。 + + + +{% raw %} +```liquid + + + + + {{ page.title }} + + {% feed_meta %} + {% seo %} + + + {% include navigation.html %} + {{ content }} + + +``` +{% endraw %} + +Jekyll serverを再起動して、これらのタグが``に追加されていることを確認しましょう。 + + + +## Environments(環境) + + +作品に出力したいけれど、まだデプロイにないものに出会うこともあるでしょう。例としては、Analyticsスクリプトです。 + + + +これを行うには、[environments]({{ "/docs/configuration/environments/" | relative_url }})を使用します。`JEKYLL_ENV`変数を使用して、コマンド実行時に環境を設定します。例えば、 + + + +```bash +JEKYLL_ENV=production bundle exec jekyll build +``` + +デフォルトでは`JEKYLL_ENV`はデプロイです。`JEKYLL_ENV`は`jekyll.environment`でLiquidで使用できます。 + + + +{% raw %} +```liquid +{% if jekyll.environment == "production" %} + +{% endif %} +``` +{% endraw %} + +## デプロイ + + +最後のステップではsiteをサーバーに上げます。最も基本的な方法は、production buildを実行することです。 + + + +```bash +JEKYLL_ENV=production bundle exec jekyll build +``` + +そして、`_site`のコンテンツをサーバーにコピーします。 + + + +更によい方法は、このプロセスを[CI]({{ "/docs/deployment/automated/" | relative_url }})や[3rd party]({{ "/docs/deployment/third-party/" | relative_url }})の利用による自動化です。 + + + +## 最後に + + +これで、このstep-by-stepちょーとリアルはお終いです。ですが、あなたのJekyllの旅は始まったばかりです! + + + +* [community forums](https://talk.jekyllrb.com){:target="_blank"}に行き挨拶しましょう。 +* [貢献]({{ "/docs/contributing/" | relative_url }})でJekyllをより良くするのを手伝ってください。 +* Jekyllサイトを作り続けてください。 + + diff --git a/_docs/structure.md b/_docs/structure.md index 08f185d..9d3f8c0 100644 --- a/_docs/structure.md +++ b/_docs/structure.md @@ -1,76 +1,24 @@ --- -layout: docs title: ディレクトリ構成 -prev_section: usage -next_section: configuration permalink: /docs/structure/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -Jekyll のコアは、テキスト変換エンジンです。 -システムの背後のコンセプトはこれです: -あなたが、 Markdown や Textile や ただのプレーン HTML のような -自分のお気に入りのマークアップ言語で書かれたテキストを -与えると、それはレイアウトや一連のレイアウトファイルを大量生産します。 -そのプロセスを通して、あなたはどのようにサイト URL が見られるか、 -取得データがレイアウトの中に表示されるかなどを微調整することができます -それはすべてのテキストファイル編集を通して行われ、 -静的な Web サイトは最終的な成果物となります。 +基本的なJekyllサイトは、通常この様になっています。 - + -基本的な Jekyll サイトは、通常このようになります: - - - -{% highlight bash %} +```sh . ├── _config.yml -├── _drafts -| ├── begin-with-the-crazy-ideas.textile -| └── on-simplicity-in-technology.markdown -├── _includes -| ├── footer.html -| └── header.html -├── _layouts -| ├── default.html -| └── post.html -├── _posts -| ├── 2007-10-29-why-every-programmer-should-play-nethack.textile -| └── 2009-04-26-barcamp-boston-4-roundup.textile ├── _data | └── members.yml -├── _site -└── index.html -{% endhighlight %} - - +├── .jekyll-metadata +└── index.html # can also be an 'index.md' with valid front matter +``` + +
+
gemベーステーマを使ったJekyllサイトのディレクトリ構成
+ +

+ Jekyll 3.2から、jekyll newの新しいJekyllプロジェクトは、gemベーステーマを使用してサイトの外観を決定します。その結果、デフォルトのディレクトリ構成は軽くます。_layouts_includes_sassがテーマのgemに入っています。 +

+ +
+

+ minimaは現在のデフォルトテーマで、 bundle show minimaでminimaのテーマファイルがコンピュータのどこに保存されているのかを見ることができます。 +

+ +
-これらのファイルの概要はこのようになります: +以下は、それぞれのファイルがなんなのかの概要です。 - +
- + + @@ -108,12 +75,13 @@ An overview of what each of these does: @@ -122,12 +90,13 @@ An overview of what each of these does: @@ -136,13 +105,15 @@ An overview of what each of these does: @@ -151,14 +122,16 @@ An overview of what each of these does: @@ -167,14 +140,16 @@ An overview of what each of these does: @@ -183,214 +158,104 @@ An overview of what each of these does: - - - - - - - - - - - - - - -
ファイル / ディレクトリファイル・
ディレクトリ
説明

- - 設定項目 データを保管します。 - これらのオプションの多くはコマンドラインの実行から指定することもできます。 - しかし、オプションはここで指定する方が簡単です。オプションを覚えておく必要がありません。 - + 構成データの保管場所です。多くのオプションはコマンドラインから実行するときに指定できますが、ここで設定する方が簡単です。ですので、覚えておく必要がありません。

+

- - ドラフトは posts に出力しません。 - これらのファイルのフォーマットは日付がありません: title.MARKUP 。 - ドラフトの働き で使い方を学んでください。 - + ドラフトは未公開のポストです。これらのファイルのフォーマットは、日付を含めません: title.MARKUPドラフトの働きで方法を学んでください。

+

- - これらは部分的な再利用を容易にするために layouts ファイルと posts ファイルによって - ミックス、マッチすることができます。 - liquid のタグ {% raw %}{% include file.ext %}{% endraw %} は - ファイルの _includes/file.ext を含むために使用されます。 - + レイアウトやポストに入れ込んで使う部品です。Liquidタグの{% raw %}{% include file.ext %}{% endraw %}_includes/file.extのファイルを読み込んで使用できます。

+

- - これらは posts をラップするテンプレートです。 - layouts は次のセクションに記述されている YAML front matter - に基づいて post 毎に選択されます。 - liquid タグ {% raw %}{{ content }}{% endraw %} は - ウェブページにコンテンツを挿入するために使用されます。 - + ポストを包むテンプレートです。レイアウトはポスト毎にfront matterで設定できます。Liqudタグ{% raw %}{{ content }}{% endraw %}をページにコンテンツを挿入するために使用します。

+

- - 言うならば、あなたの動的コンテンツです。 - これらのファイルのフォーマットは重要で、フォーマットに従う必要があります: - YEAR-MONTH-DAY-title.MARKUP 。 - パーマリンク は、各 post のためにカスタマイズすることができます。 - しかし、日付とマークアップ言語はファイル名によってのみ決定されます。 - + 言うなれば、あなたの動的コンテンツです。ファイルの命名規則が重要で、YEAR-MONTH-DAY-title.MARKUPのフォーマットでなければなりません。ポスト毎にパーマリンクをカスタマイズできますが、日付とマークアップの言語はファイル名によってのみ決まります。

+

- - よく整備されたサイトデータはここに置かれるべきです。 - Jekyll エンジンはこのディレクトリの全ての yaml ファイルをオートロードします。 - (.yml または .yaml で終わるもの) - このディレクトリの下に member.yml がある場合、あなたは - site.data.members を通してコンテンツにアクセスできます。 - -

-
-

_site

-
-

- - Jekyll がそれを変換すると、生成されたサイトは(デフォルトで)ここに置かれます。 - あなたの .gitignore ファイルにこれを追加するのは良い考えです。 - -

-
-

index.html や、他の HTML, Markdown, Textile ファイル

-
-

- - YAML Front Matter セクションを持つという条件で、 - それは Jekyll によって変換されます。 - 同様の事がどんな .html.markdown 、 - .md 、または .textile ファイルにも - サイトのルートディレクトリや、上記以外のディレクトリに起こります。 - -

-
-

他のファイル/フォルダ

-
-

- - 上記のリストで挙げたファイルやディレクトリを除く全てのもの - ― cssimages フォルダ、 - favicon.ico ファイルのような― - そのまま生成したサイトにコピーされます。 - もし、あなたが彼らが展開したものに興味があれば、 - 既に Jekyll を使用しているサイトはたくさんあります。 - -

-
-
- - -

_drafts

+

_sass

- - Drafts are unpublished posts. The format of these files is without a date: title.MARKUP. Learn how to work with drafts. - + main.scssにインポートするためのsassの部品ファイルです。変換する家庭で一つのスタイルシートmain.cssになり、サイトのスタイルとして使用できます。

+ -

_includes

- - -

- - These are the partials that can be mixed and matched by your layouts - and posts to facilitate reuse. The liquid tag - {% raw %}{% include file.ext %}{% endraw %} - can be used to include the partial in - _includes/file.ext. - -

- - - - -

_layouts

- - -

- - These are the templates that wrap posts. Layouts are chosen on a post- - by-post basis in the YAML front matter, - which is described in the next section. The liquid tag - {% raw %}{{ content }}{% endraw %} - is used to inject content into the web page. - -

- - - - -

_posts

+

_site

- - Your dynamic content, so to speak. The naming convention of these files is - important, and must follow the format: - YEAR-MONTH-DAY-title.MARKUP. - The permalinks can be customized for each - post, but the date and markup language are determined solely by the - file name. - + 生成されたサイトがJ、ekyllが変換した際に配置される(デフォルトの)場所です。これを .gitignore ファイルに追加することをお勧めします。

+ -

_data

+

.jekyll-metadata

- - Well-formatted site data should be placed here. The jekyll engine will - autoload all yaml files (ends with .yml or .yaml) - in this directory. If there's a file members.yml under the directory, - then you can access contents of the file through site.data.members. - + これにより、Jekyllは、サイトが最後に構築されてから変更されていないファイル、および次回の構築時にどのファイルを再生成する必要があるかを追跡できます。このファイルは生成されたサイトには含まれません。これをあなたの.gitignoreファイルに追加するのはおそらく良い考えです。

+ -

_site

+

index.htmlindex.mdと他のHTML、Markdownファイル

+

- - This is where the generated site will be placed (by default) once - Jekyll is done transforming it. It’s probably a good idea to add this - to your .gitignore file. - + ファイルにfront matterがある場合、Jekyllによって変換されます。サイトのルートディレクトリまたは上記以外のディレクトリにある.html.markdown.mdまたは.textileファイルについても同様です。

- - - - -

index.html and other HTML, Markdown, Textile files

- - -

- - Provided that the file has a YAML Front - Matter section, it will be transformed by Jekyll. The same will + -

Other Files/Folders

+

他のファイルやフォルダ

+

- + cssimagesフォルダ、favicon.icoファイルなど、上記以外のすべてのディレクトリとファイルは、生成されたサイトにそのままコピーされます。レイアウトがどのように行われているかを知りたい場合は、既にJekyllを使用しているサイトがたくさんあります。 +

+ ---> diff --git a/_docs/support.md b/_docs/support.md new file mode 100644 index 0000000..b376b3e --- /dev/null +++ b/_docs/support.md @@ -0,0 +1,44 @@ +--- +title: サポート +permalink: "/docs/support/" +note: This file is autogenerated. Edit /.github/SUPPORT.markdown instead. +--- + + +## 助けを得る + + +**Jekyllのissueトラッカーはサポートフォーラムではありません。** + + + +Jekyllのサポートをお探しでしたら、多くののオプションがあります。 + + + +* [Jekyll ドキュメンテーション](https://jekyllrb.com/docs/home/)を読む。 +* Jekyllの使い方について質問がある場合は、[Jekyll Forum](https://talk.jekyllrb.com/){:target="_blank"}や[StackOverflow](https://stackoverflow.com/questions/tagged/jekyll){:target="_blank"}でディスカッションを開始してください。 +* Jekyllersとのチャット — [our Gitter channel](https://gitter.im/jekyll/jekyll){:target="_blank"}や[our IRC channel on Freenode](irc:irc.freenode.net/jekyll){:target="_blank"}に参加してください。 + + + +これらのサービスには、正しい方向性を示すために喜んで助けてくれるコミュニティメンバーがたくさんいます。 + + + +## バグの報告 + + +* Jekyllプラグインのバグを見つけたと思った場合は、プラグインのリポジトリのissueを開いてください。 — まず[rubygemsでプラグインを探し](https://rubygems.org/){:target="_blank"}、`Homepage`リンクをクリックして、プラグインのリポジトリにアクセスします。 +* Jekyll自身のバグだと思う場合は、[issueを開いて](https://github.com/jekyll/jekyll/issues/new){:target="_blank"}ください。 + + + +Happy Jekyllin'! diff --git a/_docs/templates.md b/_docs/templates.md deleted file mode 100644 index 288a851..0000000 --- a/_docs/templates.md +++ /dev/null @@ -1,755 +0,0 @@ ---- -layout: docs -title: テンプレート -prev_section: migrations -next_section: permalinks -permalink: /docs/templates/ ---- - - - -Jekyll はテンプレートを処理するために -[Liquid](http://wiki.shopify.com/Liquid) テンプレート言語を使用しています。 -標準の Liquid [タグ](http://wiki.shopify.com/Logic) や -[フィルタ](http://wiki.shopify.com/Filters) はすべてサポートされています。 -Jekyll は一般的なタスクをより簡単に所有するために、 -いくつかの便利なフィルタやタグが追加されています。 - - - -## フィルタ - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
記述フィルタ出力
-

日付を XML スキーマに

-

日付を XML スキーマ(ISO 8601)形式に変換します。

-
-

- {% raw %}{{ site.time | date_to_xmlschema }}{% endraw %} -

-

- 2008-11-07T13:07:54-08:00 -

-
-

日付を RFC-822 形式に

-

日付を RSS フィードで使用される RFC-822 形式に変換します。

-
-

- {% raw %}{{ site.time | date_to_rfc822 }}{% endraw %} -

-

- Mon, 07 Nov 2008 13:07:54 -0800 -

-
-

日付を文字列に

-

日付を短い文字列形式に変換します。

-
-

- {% raw %}{{ site.time | date_to_string }}{% endraw %} -

-

- 07 Nov 2008 -

-
-

日付を長い文字列に

-

日付を長い文字列形式に変換します。

-
-

- {% raw %}{{ site.time | date_to_long_string }}{% endraw %} -

-

- 07 November 2008 -

-
-

XML エスケープ

-

XML で使用するためのいくつかのテキストをエスケープします。

-
-

- {% raw %}{{ page.content | xml_escape }}{% endraw %} -

-
-

CGI エスケープ

-

- CGI エスケープは URL で使用される文字列をエスケープします。 - 適切な %XX との交換で任意の特殊文字を置き換えます。 -

-
-

- {% raw %}{{ “foo,bar;baz?” | cgi_escape }}{% endraw %} -

-

- foo%2Cbar%3Bbaz%3F -

-
-

URI エスケープ

-

- URI エスケープします。 -

-
-

- {% raw %}{{ “'foo, bar \\baz?'” | uri_escape }}{% endraw %} -

-

- foo,%20bar%20%5Cbaz? -

-
-

ワード数

-

テキスト内のワード数をカウントします。

-
-

- {% raw %}{{ page.content | number_of_words }}{% endraw %} -

-

- 1337 -

-
-

文を配列

-

文を配列に変換します。タグのリストを表示するのに役立ちます。

-
-

- {% raw %}{{ page.tags | array_to_sentence_string }}{% endraw %} -

-

- foo, bar, and baz -

-
-

Textile 化

-

RedCloth を経由で作成された Textile フォーマット文字列を HTML に変換します。

-
-

- {% raw %}{{ page.excerpt | textilize }}{% endraw %} -

-
-

Markdown 化

-

Markdown フォーマット文字列を HTML に変換します。

-
-

- {% raw %}{{ page.excerpt | markdownify }}{% endraw %} -

-
-

JSON 用のデータ

-

ハッシュや配列を JSON に変換します。

-
-

- {% raw %}{{ site.data.projects | jsonify }}{% endraw %} -

-
-
- - - -## タグ - - - -### Includes - - - -もしあなたが小さなページの断片を持つなら、 -`include` タグを使用することで、サイト上の複数の場所に含めることができます。 - - - -{% highlight ruby %} -{% raw %}{% include footer.html %}{% endraw %} -{% endhighlight %} - - - -Jekyll はすべてのインクルードファイルがソースディレクトリのルートの -`_includes` ディレクトリに配置されることを期待します。 -上記は `/_includes/footer.html` の内容が呼び出し元のファイルに埋め込まれます。 - - - -
-
ProTip™: ファイル名として変数を使用する
-

- - あなたが埋め込みたいファイル名は、(上記の例のように)リテラルを指定できます。 - また、 {% raw %}{% include {{ my_variable }} %}{% endraw %} のように - liquid のような変数構文を使用して変数を使用することができます。 - -

-
- - - -また、 include にパラメータを渡すこともできます: - - - -{% highlight ruby %} -{% raw %}{% include footer.html param="value" %}{% endraw %} -{% endhighlight %} - - - -これらのパラメータは include 内の Liquid 経由で利用可能です。 - - - -{% highlight ruby %} -{% raw %}{{ include.param }}{% endraw %} -{% endhighlight %} - - - -### コードのハイライト化 - - - -Jekyll は Pygments のおかげで [100 以上の言語](http://pygments.org/languages/)の -シンタックスハイライトサポートが組み込まれています。 -[Pygments](http://pygments.org/) を使うためには、あなたのシステムに Python をインストールし、 -サイトの設定ファイルの `highlighter` に `pygments` を設定する必要があります。 - - - -または、コードハイライトに [Rouge](https://github.com/jayferd/rouge) を使うことができます。 -それは Pygments のようにたくさんの言語をサポートしていませんが、 -ほとんどのケースには対応していて、ピュア Ruby で書かれています ; あなたのシステムで Python を -必要としません! - - - -シンタックスハイライトのコードブロックをレンダリングするためには、次のようにコードを囲みます。 - - - -{% highlight text %} -{% raw %} -{% highlight ruby %} -def foo - puts 'foo' -end -{% endhighlight %} -{% endraw %} -{% endhighlight %} - - - -highlight タグの引数は言語識別子です。(上記の例では Ruby です) -適切な識別子を使用すると、 [Pygments' Lexers page](http://pygments.org/docs/lexers/) または -[Rouge wiki](https://github.com/jayferd/rouge/wiki/List-of-supported-languages-and-lexers) 上の -"short name" からハイライトしたい言語を探します。 - - - -#### 行番号 - - - -`highlight` タグの第 2 引数に `linenos` と呼ばれるオプションがあります。 -`linenos` 引数を含めるとハイライトされたコードに行番号を含めることを強制します。 -例えば、次のコードブロックは行ごとに行番号が含まれます: - - - - - -#### シンタックスハイライトのためのスタイルシート - - - -表示するまでにハイライトするには、ハイライトスタイルシートを含める必要があります。 -[syntax.css](http://github.com/mojombo/tpw/tree/master/css/syntax.css) でスタイルシートの例を見ることができます。 -同一のスタイルが GitHub によって使用されており、あなたが自分のサイトのために自由に使用することができます。 -もし `linenos` を使っているなら、ハイライトされたコードから行番号を区別するため `syntax.css` 内に `.lineno` 定義を -追加することをお勧めします。 - - - -### Post の URL - - - -もし、あなたのサイト上に Post のリンクを含めたいと思ったら、 -`post_url` タグが指定した Post の正しいパーマリンクの URL を生成します。 - - - -{% highlight text %} -{% raw %} -{% post_url 2010-07-21-name-of-post %} -{% endraw %} -{% endhighlight %} - - - -もし、サブディレクトリ内に Post を整理したなら、Post のサブディレクトリパスを含める必要があります。 - - - -{% highlight text %} -{% raw %} -{% post_url /subdir/2010-07-21-name-of-post %} -{% endraw %} -{% endhighlight %} - - - -`post_url` タグを使用するときは、ファイル拡張子を含める必要ありません。 - - - -また、以下のような Markdown 内で Post リンクを作成するためにこのタグを使用することもできます。 - - - -{% highlight text %} -{% raw %} -[Name of Link]({% post_url 2010-07-21-name-of-post %}) -{% endraw %} -{% endhighlight %} - - - -### Gist - - - -GitHub Gist をあなたのサイトに簡単に埋め込むために `gist` タグを使用します。 - - - -{% highlight text %} -{% raw %} -{% gist 5555251 %} -{% endraw %} -{% endhighlight %} - - - -また、オプションで gist を表示するためにファイル名を指定することができます: - - - -{% highlight text %} -{% raw %} -{% gist 5555251 result.md %} -{% endraw %} -{% endhighlight %} - - - -`gist` タグはプライベート gist にも働きますが、 gist 所有者の GitHub ユーザ名が必須です: - - - -{% highlight text %} -{% raw %} -{% gist parkr/931c1c8d465a04042403 %} -{% endraw %} -{% endhighlight %} - - - -プライベート gist のシンタックスもファイル名でサポートしています。 - - diff --git a/_docs/themes.md b/_docs/themes.md new file mode 100644 index 0000000..a6563a9 --- /dev/null +++ b/_docs/themes.md @@ -0,0 +1,507 @@ +--- +title: テーマ +permalink: /docs/themes/ +--- + + +Jekyllには幅広いテーマシステムがあり、サイトの表現をカスタマイズできる、コミュティーで管理されたテンプレートとスタイルを提供します。Jekyllのテーマは、プラグインとパッケージ化されたAsset、レイアウト、インクルード、スタイルシートで、サイトのコンテンツで上書きできます。 + + + +## gemベーステーマを理解する + + +`jekyll new `コマンドを実行して、[新しいJekyllサイトを作る]({{ "/docs/" | relative_url }})時、Jekyllは[Minima](https://github.com/jekyll/minima){:target="_blank"}というgemベーステーマをインストールします。 + + + +gemベーステーマでは、いくつかのサイトディレクトリ(`assets`や`_layouts`、`_includes`、`_sass`ディレクトリ)はテーマに内包されていて、直接見えるところからは隠れています。ですが、全ての必要なディレクトリはJekyllが構築するときに読み込み、作業を行います。 + + + +Minimaの場合、Jekyllのサイトディレクトリでは以下のファイルだけが見えます。 + + + +``` +├── Gemfile +├── Gemfile.lock +├── _config.yml +├── _posts +│ └── 2016-12-04-welcome-to-jekyll.markdown +├── about.markdown +└── index.markdown +``` + +`Gemfile`と`Gemfile.lock`は、Jekyllのサイトを構築するのに必要なgemの必須バージョンを追跡するために、Bundlerが使用します。 + + + +gemベーステーマは、テーマ開発者が使用者に更新を利用可能にするのを簡単にします。更新があるとき、開発者はRubyGemsに更新をプッシュします。 + + + +テーマgemを使用している場合、(希望するなら)プロジェクトの全てのgemを更新するには、`bundle update`を実行します。`bundle update `の``に`minima`のようなテーマの名前を入れて、テーマgemのみを更新することもできます。開発者が追加や更新した(スタイルシートやインクルード)ファイルが自動でプロジェクトにプルします。 + + + +gemベーステーマの目標は、テーマのファイルを取得し直す手間無く更新したり、過度に複雑にすること無く、テーマの利点を享受し、コンテンツの作成に注力することです。 + + + +## テーマのデフォルトを上書きする + + +Jekyllのテーマはデフォルトのレイアウトやインクルド、スタイルシートを設定します。しかし、サイトのコンテンツでテーマのデフォルトを上書きすることができます。 + + + +テーマのレイアウトやインクルードを置き換えるには、あなたの`_layouts`や`_includes`ディレクトリに修正するファイルをコピーしたり、上書きしたいファイルと同じ名前のファイルを新たに作成します。 + + + +例えば、テーマに`page`レイアウトがある場合、`_layouts`ディレクトリに`page`レイアウト(`_layouts/page.html`)を作成することで、テーマのレイアウトを上書きできます。 + + + +コンピューターにあるテーマのファイルを見つけるには、 + + + +1. `bundle show`にテーマgemの名前をつけて実行します。Jekyllのデフォルトテーマなら、`bundle show minima`です。 + これは、gemベーステーマのファイルの場所を返します。例えばmacOSなら、Minimaテーマのファイルは、`/usr/local/lib/ruby/gems/2.3.0/gems/minima-2.1.0`にあるはずです。 + + + + + +2. FinderやExplorerでテーマのディレクトリを開きます。 + + + + ```sh + # On MacOS + open $(bundle show minima) + + # On Windows + # First get the gem's installation path: + # + # bundle show minima + # => C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/minima-2.1.0 + # + # then invoke explorer with above path, substituting `/` with `\` + explorer C:\Ruby24-x64\lib\ruby\gems\2.4.0\gems\minima-2.1.0 + + # On Linux + xdg-open $(bundle show minima) + ``` + + FinderやExplorerが開き、テーマのファイルやディレクトリが表示されます。Minimaテーマgemはこれらのファイルを含んでいます。 + + + + ``` + ├── LICENSE.txt + ├── README.md + ├── _includes + │   ├── disqus_comments.html + │   ├── footer.html + │   ├── google-analytics.html + │   ├── head.html + │   ├── header.html + │   ├── icon-github.html + │   ├── icon-github.svg + │   ├── icon-twitter.html + │   └── icon-twitter.svg + ├── _layouts + │   ├── default.html + │   ├── home.html + │   ├── page.html + │   └── post.html + ├── _sass + │   ├── minima + │   │   ├── _base.scss + │   │   ├── _layout.scss + │   │   └── _syntax-highlighting.scss + │   └── minima.scss + └── assets + └── main.scss + ``` + +テーマファイルをはっきり理解するには、あなたのJekyllサイトのディレクトリに同じ名前のファイルを作成します。 + + + +Minimaのフッターを上書きしたい例です。Jekyllサイトに`_includes`フォルダを作り、`footer.html`というファイルを追加します。これで、JekyllはMinimaテーマの`footer.html`ではなく、あなたのサイトの`footer.html`を使用するようになります。 + + + +スタイルシートを修正する場合はもう一つステップが必要で、メインのsassファイル(Minimaテーマの場合は`_sass/minima.scss`)もサイトのソースの`_sass`ディレクトリにコピーします。 + + + +Jekyllは以下のフォルダへのリクエストがあったときは、テーマのデフォルトを探す前に、まずサイトのコンテンツを探します。 + + + +- `/assets` +- `/_layouts` +- `/_includes` +- `/_sass` + +テーマのファイルのコピーを作成すると、それらの更新を受け取れなくなります。テーマの全てのスタイルシートの更新を受け取りたい場合、あなた自身のCSSセレクタを追加し、別名のCSSファイルを使用するとよいでしょう。 + + + +上書きできるファイルの詳細については、選択したテーマのドキュメントやソースリポジトリを参照してください。 +{: .note .info} + + + +## gemベーステーマから通常のテーマへの変換 + + +gemベーステーマを取り除き、全てのファイルがテーマgemでは無く、Jekyllサイトディレクトリにある通常のテーマに、切り替えたいとします。 + + + +これを行うには、テーマgemのディレクトリから、Jekyllサイトのディレクトリにファイルをコピーします。(Jekyllサイトを`/myblog`に作成したなら、`/myblog`にコピーします。詳細は前項を見てください。) + + + +次に、テーマが参照しているプラグインをJekyllに知らせなければなりません。これらのプラグインは、ランタイムと従属関係のテーマのgemspecファイルで見つけることができます。例えば、Minimaテーマの場合は次のようになります。 + + + +``` +spec.add_runtime_dependency "jekyll-feed", "~> 0.9" +spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.1" +``` + +これらのリファレンスを2つの方法のどちらかで、`Gemfile`に含めなければなりません。 + + + +`Gemfile`と`_config.yml`の両方に記載する方法があります。 + + + +```ruby +# ./Gemfile + +gem "jekyll-feed", "~> 0.9" +gem "jekyll-seo-tag", "~> 2.1" +``` + +```yaml +# ./_config.yml + +plugins: + - jekyll-feed + - jekyll-seo-tag +``` + +もしくは、JekyllプラグインとしてGemfileに記載し、`_config.yml`は更新しない方法もあります。 + + + +```ruby +# ./Gemfile + +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.9" + gem "jekyll-seo-tag", "~> 2.1" +end +``` + +どちらの方法でも、`bundle update`を忘れないでください。 + + + +GitHub Pagesで公開している場合は、GitHub PagesはBundler経由でプラグインをロードしないため、`_config.yml`だけを更新してください。 + + + +最後に、`Gemfile`のテーマgemへの参照と設定を削除します。`minima`を削除する場合を例示します。 + + + +- `Gemfile`を開き、`gem "minima", "~> 2.0"`を削除します。 +- `_config.yml`を開き、`theme: minima`を削除します。 + + + +これで、`bundle update`をしてもテーマgemの更新は取得されません。 + + + +## gemベーステーマのインストール + + +`jekyll new `コマンドはgemベーステーマの新しいJekyllサイトを作る唯一の方法ではありません。Gemベーステーマをオンラインで見つけ、それをJekyllプロジェクトに組み込むこともできます。 + + + +例えば、[RubyGemsでJekyllテーマ](https://rubygems.org/search?utf8=%E2%9C%93&query=jekyll-theme){:target="_blank"}を検索すると、他のgemベーステーマを見つけることができます。(全てのテーマが`jekyll-theme`をテーマの名前に使用しているわけではありません。) + + + +gemベーステーマをインストールするには: + + + +1. サイトの`Gemfile`にテーマgemを追加します。 + + + + ```ruby + # ./Gemfile + + # This is an example, declare the theme gem you want to use here + gem "jekyll-theme-minimal" + ``` + + もしくは、`jekyll new`コマンドで開始するときなら、`gem "minima", "~> 2.0"`を好きなように書き換えてください。 + + + + ```diff + # ./Gemfile + + - gem "minima", "~> 2.0" + + gem "jekyll-theme-minimal" + ``` + +2. テーマをインストールします。 + + + + ```sh + bundle install + ``` + +3. テーマを有効にするために、サイトの`_config.yml`に以下を追加します。 + + + + ```yaml + theme: jekyll-theme-minimal + ``` + +4. サイトを構築します。 + + + ```sh + bundle exec jekyll serve + ``` + +`Gemfile`には、複数のテーマをリストアップできます。しかし、サイトの`_config.yml`に指定した1つのテーマだけが選択されます。{: .note .info } + + + +Jekyllサイトを[GitHub Pages](https://pages.github.com/){:target="_blank"}で公開している場合、GitHub Pagesは[いくつかのgemベーステーマ](https://pages.github.com/themes/){:target="_blank"}しかサポートしていないことに注意してください。GitHub Pagesは`remote_theme`設定で、gemベーステーマなら[GitHubがホストのテーマの使用](https://help.github.com/articles/adding-a-jekyll-theme-to-your-github-pages-site/#adding-a-jekyll-theme-in-your-sites-_configyml-file){:target="_blank"}をサポートしています。 + + + +## gemベーステーマの作成 + + +あなたが(テーマの使用者というよりも)開発者なら、あなたのテーマをBundlerを通じユーザーがインストールできるように、RubyGemsにパッケージにすることができます。 + + + +Ruby gemsの作成になれていなくても、心配しないでください。Jekyllは`new-theme`コマンドで新しいテーマの骨組みを作成します。テーマ名を引数にして`jekyll new-theme`を実行してください。 + + + +こちらがその例です。 + + + +```sh +jekyll new-theme jekyll-theme-awesome + create /path/to/jekyll-theme-awesome/_layouts + create /path/to/jekyll-theme-awesome/_includes + create /path/to/jekyll-theme-awesome/_sass + create /path/to/jekyll-theme-awesome/_layouts/page.html + create /path/to/jekyll-theme-awesome/_layouts/post.html + create /path/to/jekyll-theme-awesome/_layouts/default.html + create /path/to/jekyll-theme-awesome/Gemfile + create /path/to/jekyll-theme-awesome/jekyll-theme-awesome.gemspec + create /path/to/jekyll-theme-awesome/README.md + create /path/to/jekyll-theme-awesome/LICENSE.txt + initialize /path/to/jekyll-theme-awesome/.git + create /path/to/jekyll-theme-awesome/.gitignore +Your new Jekyll theme, jekyll-theme-awesome, is ready for you in /path/to/jekyll-theme-awesome! +For help getting started, read /path/to/jekyll-theme-awesome/README.md. +``` + +テンプレートファイルを対応するフォルダに追加してください。必要に応じ`.gemspec`とREADMEファイルを完成させてください。 + + + +### レイアウトとインクルード + + +テーマのレイアウトとインクルードはJekyllサイトと同様に働きます。レイアウトは`/_layouts`フォルダに、インクルードは`/_includes`フォルダに入れてください。 + + + +例えば、テーマに`/_layouts/page.html`があり、ページのfront matterに`layout: page`があれば、Jekyllはまずサイトの`_layouts`フォルダに`page`があるかを確認し、無ければテーマの`page`レイアウトを使用します。 + + + +### Assets + +`/assets`フォルダのファイルは、同じ相対パスのファイルが無ければ、ユーザーがサイトを構築するときにコピーされます。SCSS、画像、Webフォントなどを出荷することができます。これらのファイルは、Jekyllに静的ファイルの様に取り扱われます。 + + + +- ファイルの冒頭に[front matter]({{ "/docs/front-matter/" | relative_url }})がある場合、レンダリングされます。 +- front matterが無い場合、単純にサイトにコピーされます。 + + + +これにより、テーマの作成者は`/assets/styles.css`を出荷することが可能になり、レイアウトで`/assets/styles.css`を使用できます。 + + + +サイトでJekyllを使用しているのと同じように、`/assets`内のファイルは、作成されたサイトの`/assets`フォルダにコピーされます。 + + + +### Stylesheets + +テーマのスタイルシートは、Jekyllサイトを作成するときと同じように、テーマの `_sass`フォルダに入れます。 + + + +``` +_sass +├── jekyll-theme-awesome.scss +``` + +テーマのスタイルシートは`@import`を使用することでダイレクトにユーザーのスタイルシートを取り込めます。 + + + +{% raw %} +```css +@import "{{ site.theme }}"; +``` +{% endraw %} + +### テーマgemの依存関係 {%- include docs_version_badge.html version="3.5.0" -%} + + +サイトの設定ファイルに`plugins`として明示されていなくても、テーマgemのホワイトリストの`runtime_dependencies`を、Jekyllは自動的に必要とします。(注:ホワイトリストは`--safe`オプションで提供するとき、構築するときのみ必要です。) + + + +これにより、エンドユーザーはテーマgemが機能するように、設定ファイルに含めたプラグインを追跡する必要がありません。 + + + +{% if site.version == '4.0.0' %} +{% comment %} Remove this encapsulation when `v4.0` ships {% endcomment %} + +### テーマgemの事前設定 {%- include docs_version_badge.html version="4.0.0" -%} + + +Jekyllはテーマgemのrootで `_config.yml`を読み込み、そのデータをサイトの既存の設定データにマージします。 + + + +しかし、テーマ内からロードされた他のエンティティとは異なり、設定ファイルのロードには、以下に要約するように、いくつかの制限があります。 + + + + * Jekkyllのデフォルト設定はテーマの設定で上書きできません。*権限はまだ、ユーザーにあります*。 + * テーマの設定ファイルは、`safe mode`やシンボリックリンクが指すファイルがテーマgem内の正当なファイルであるかどうかにかかわらず、シンボリックリンクはできません。 + * テーマの設定は一連のキーと値のペアでなければなりません。空の設定ファイル、キーの下の項目を単にリストする設定ファイル、または単純なテキスト文字列を含む設定ファイルは、単に黙って無視されます。この矛盾に関する警告やログ出力は表示されません。 + * 全てのテーマ設定ファイルの内容は、ユーザーが上書き可能です。 + + + +この機能はテーマをより簡単に採用できるようにするためのものですが、制限によってテーマ設定が適切な方法でビルドに影響を及さないようにします。テーマに必要なすべてのプラグインはユーザーが手動でリストするか、テーマの `gemspec`ファイルで提供されなければなりません。 + + + +この機能により、テーマgemは*テーマ固有の設定変数*をそのまま使用できるようになります。 + + +{% endif %} + +### テーマのドキュメンテーション + + +テーマには、テーマのインストールや使用法を伝えるための`/README.md`ファイルを含めるべきです。どんなレイアウト、どんなファイルが含まれていますか? 使用者はサイトの設定ファイルに何か特別なことを書き加えなければなりませんか? + + + +### スクリーンショットの追加 + + +テーマは見た目です。スクリーンショットをテーマのリポジトリ内に `/ screenshot.png`としてプログラムで取得できるように含めることで、テーマの見た目をユーザーに示すことができます。このスクリーンショットをテーマのドキュメンテーションに含めることもできます。 + + + +### テーマのプレビュー + + +著者としてテーマのプレビューを行うには、`/index.html`や`/page.html`のダミーコンテンツを追加するのが便利です。`jekyll build`や`jekyll serve`をプレビューのために利用できるようになります。あとは、Jekyllサイトのプレビューを行うだけです。 + + + +ローカル環境でテーマのプレビューを行ったら、テーマを配布するときにコンパイル済みのサイトが含まれないように、テーマの`.gitignore`に`/_site`を追加するのを忘れないようにしましょう。 +{: .info .note} + + + +### あなたのテーマを公開 + + +テーマは[RubyGems.org](https://rubygems.org){:target="_blank"}で公開されています。RubyGemsのアカウントが必要なら、[無料で作成](https://rubygems.org/sign_up){:target="_blank"}できます。 + + + +1. 始めに、gitリポジトリを用意する必要があります。 + + + + ```sh + git init # Only the first time + git add -A + git commit -m "Init commit" + ``` + +2. 次に、以下のコマンドでテーマをパッケージ化します。`jekyll-theme-awesome`はあなたのテーマの名前に変えてください。 + + + + ```sh + gem build jekyll-theme-awesome.gemspec + ``` + +3. 最後に、RubyGemsサービスに以下のコマンドを実行して、パッケージ化したテーマをプッシュしてください。`jekyll-theme-awesome`はあなたのテーマの名前に変えてください。 + + + + ```sh + gem push jekyll-theme-awesome-*.gem + ``` + +4. テーマの新しいバージョンをリリースするときは、gemspecファイル(この例では`jekyll-theme-awesome.gemspec`)のバージョンナンバーを更新し、上記の1〜3のステップを繰り返してください。テーマバージョンを上げながら、[Semantic Versioning](http://semver.org/){:target="_blank"}に従うことをお勧めします。 + + diff --git a/_docs/troubleshooting.md b/_docs/troubleshooting.md index 769d519..b26d11e 100644 --- a/_docs/troubleshooting.md +++ b/_docs/troubleshooting.md @@ -1,374 +1,436 @@ --- -layout: docs title: トラブルシューティング -prev_section: deployment-methods -next_section: sites permalink: /docs/troubleshooting/ -base_revision: 0fbdc6944041147c2d21b306751b078860b6603b[refs/heads/master] --- - - +--- --> -あなたが今までJekyllのインストールや使用した際に問題が発生した場合、 -いくつか助けになるかもしれないヒントがあります。以下にあるヒントでも解決しない場合、 -[その問題を報告(英語)]({{site.help_url}}/issues/new) してください。そうすることで -Jekyll コミュニティはすべての人によりよい体験を与えられます。 +Jekyllのインストールや使用に関する問題に出会ったら、ここにいくつかのヒントがあります。あなたが経験している問題が以下でカバーされていなければ、**[他のヘルプリソースをチェック]({{ "/help/" | relative_url }})してください**。 - +**please [check out our other help resources](/help/)** as well. --> -## インストールでの問題 +- [インストールの問題](#installation-problems) +- [Jekyll実行の問題](#problems-running-jekyll) +- [Base-URLの問題](#base-url-problems) +- [設定の問題](#configuration-problems) +- [マークアップの問題](#markup-problems) +- [productionの問題](#production-problems) - + -もしあなたがgem インストールにおいてエラーに遭遇したら, あなたはruby 1.9.1 -用の拡張モジュールをコンパイルするためのヘッダファイルをインストールする必要があります。 -Ubuntu や Debian 上で以下を実行することでインストールできます。 +## インストールの問題 {#installation-problems} + - +gemのインストール時にエラーに遭遇したら、Ruby 2.x用コンパイルの拡張モジュールのヘッダファイルをインストールする必要があります。UbuntuやDebianでは次を実行します。 -{% highlight bash %} -sudo apt-get install ruby1.9.1-dev -{% endhighlight %} + - +```sh +sudo apt-get install ruby2.6-dev +``` -Red Hat、CentOSやFedoraのシステム上では以下を実行することでインストールできます。 +Red Hat, CentOS, そしてFedoraでは、次を実行します。 - + -{% highlight bash %} +```sh sudo yum install ruby-devel -{% endhighlight %} +``` - +上記をインストールしたが、 - 特にFedora 23で - 拡張機能がまだコンパイルしない場合は、おそらく`redhat-rpm-config`が欠けているFedora imageを実行しているのでしょう。解決するために次を実行します。 -[NearlyFreeSpeech](http://nearlyfreespeech.net/) では、あなたはJekyllを -インストールする前に次のコマンドを実行する必要があります: + - +```sh +sudo dnf install redhat-rpm-config +``` -{% highlight bash %} -export GEM_HOME=/home/private/gems -export GEM_PATH=/home/private/gems:/usr/local/lib/ruby/gems/1.8/ -export PATH=$PATH:/home/private/gems/bin -export RB_USER_INSTALL='true' -{% endhighlight %} +Arch Linuxでは次の実行が必要です。 + + + +```sh +sudo pacman -S ruby-ffi +``` + +Ubuntuで`bundle exec jekyll serve`の後動けなくなり、`Could not locate Gemfile`や`.bundle/ directory`といったエラーが出たのでしたら、おそらく満たされていない要件があるのでしょう。最近の標準のUbuntuディストリビューションは`ruby`と`ruby-all-dev`パッケージの両方のインストールが必要です。 + + - + +```sh export GEM_HOME=/home/private/gems export GEM_PATH=/home/private/gems:/usr/local/lib/ruby/gems/1.8/ export PATH=$PATH:/home/private/gems/bin export RB_USER_INSTALL='true' -{% endhighlight %} ---> +``` -OSXでは、RubyGemsの更新をする必要があります: +GentooにRubyGemsをインストールするために: - + -{% highlight bash %} -sudo gem update --system -{% endhighlight %} +```sh +sudo emerge -av dev-ruby/rubygems +``` - +Windowsでは、[RubyInstaller +DevKit](https://wiki.github.com/oneclick/rubyinstaller/development-kit){:target="_blank"}のインストールが必要です。 -それでもまだ問題がある場合は、 [Xcodeを使ってコマンドラインツールをインストールする] -(http://www.zlu.me/ruby/os%20x/gem/mountain%20lion/2012/02/21/install-native-ruby-gem-in-mountain-lion-preview.html) -必要があります。 -コマンドラインツールをインストールすることで、次のコマンドを使ってネイティブのgemsをインストールすることができます。 + - +Android (with Termux)では全ての必要要件を次の実行でインストールできます。 -{% highlight bash %} -sudo gem install jekyll -{% endhighlight %} + - +```sh +apt update && apt install libffi-dev clang ruby-dev make +``` -GentooでのRubyGemsのインストール: +macOSでは、RubyGemsのアップデートが必要かもしれません(必要な場合だけ`sudo`を使用します)。 - + -{% highlight bash %} -sudo emerge -av dev-ruby/rubygems -{% endhighlight %} +```sh +gem update --system +``` - +まだ問題があるのでしたら、(`gcc`のような)新しいコマンドラインツールを以下のコマンドでインストールしてください。 -Windows では[RubyInstaller DevKit](https://wiki.github.com/oneclick/rubyinstaller/development-kit) -をインストールする必要があります。 + - +```sh +xcode-select --install +``` -## Jekyllの実行での問題 +これにより、このコマンド(必要な場合だけ`sudo`を使用します)でネイティブgemsをインストールできるようになります。 - + -Debian や Ubuntuでは、あなたのターミナルで `jekyll` コマンドが実行できるようにするために -PATHに `/var/lib/gems/1.8/bin/` を追加する必要があります。 +```sh +gem install jekyll +``` - +macOSのアップグレードは自動でXcodeをアップグレードしません(App Storeで別途行えます)、古いXcode.appは上記でダウンロードしたコマンドラインツールを妨害する恐れがあります。この問題に直面している場合は、Xcodeをアップグレードし、アップグレードされたコマンドラインツールをインストールしてください。 -## Base-URL の問題 + - +### Non-SuperuserとしてJekyllを実行する (no sudo!) +{: #no-sudo} + -もし、あなたが次のようなbase-urlオプションを使用している場合: +Linux、macOS、およびWindows上のUbuntuのBashのほとんどのフレーバーでは、次の行を`.bashrc`ファイルの末尾に追加することで、Jekyllをnon-superuserとして実行し、システム全体の場所にgemをインストールする必要はありません。 - + -{% highlight bash %} -jekyll serve --baseurl '/blog' -{% endhighlight %} +``` +# Ruby exports + +export GEM_HOME=$HOME/gems +export PATH=$HOME/gems/bin:$PATH +``` + +これは、`gem`の場所をシステム全体の場所ではなく、ユーザーのホームフォルダのgemsにし、システム全体のパスよりもユーザーの`PATH`にlocal jekyllコマンドを追加します。 + + + +これは、ユーザーアカウントの権限が限られている多くの共有Webホスティングサービスにも役立ちます。`gem install jekyll bundler`を実行する前に、これらのexportを`.bashrc`に追加すると、Jekyllを完全にnon-`sudo`でインストールできます。 + + + +新しいexportを有効にするには、Bashを閉じ再起動するか、shellアカウントからログアウトしてログインしなおすか、実行中のshellで`. .bashrc`を実行します。 + + + +`jekyll new`コマンドで以下のようなエラーを見た場合は、上記の手順で解決することができます。 + + + +```sh +jekyll new test + +Running bundle install in /home/user/test... + +Your user account is not allowed to install to the system RubyGems. +You can cancel this installation and run: + + bundle install --path vendor/bundle + +to install the gems into ./vendor/bundle/, or you can enter your password +and install the bundled gems to RubyGems using sudo. + +Password: +``` + +一度これを行えば、`jekyll new`はあなたのユーザーアカウントで適切に動作するはずです。 + + + +### Jekyll & macOS + +v10.11でのSystem Integrity Protectionの導入により、以前は書き込み可能だったいくつかのディレクトリがシステムの場所と見なされ、使用できなくなりました。これらの変更を受け、起動して実行するにはいくつかの簡単な方法があります。1つの選択肢は、gemがインストールされる場所を変更することです(ここでも、必要な場合にのみ`sudo`を使用します)。 + + + +```sh +gem install -n /usr/local/bin jekyll +``` + +あるいは、HomebrewをインストールしてRubyのセットアップに使用することもできます。これは次のようにして行うことができます。 + + + +```sh +ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` + +Homebrewをインストールしたら、2番目のステップで実行します。 + + + +```sh +brew install ruby +``` - + +[RVM]: https://rvm.io +[rbenv]: http://rbenv.org +[chruby]: https://github.com/postmodern/chruby +[etc]: https://github.com/rvm/rvm/blob/master/docs/alt.md + +Rubyのインストールに上記の方法のいずれかを使用することを選択した場合は、次のコマンドを使用して`$PATH`変数を変更する必要がある場合があります。 + + + +```sh +export PATH=/usr/local/bin:$PATH +``` + +GUI appsは以下で`$PATH`を修正できます。 + + + +```sh +launchctl setenv PATH "/usr/local/bin:$PATH" +``` + +SIPが有効になっているシステムでは`/usr/local`が「安全な」場所と見なされ、Appleが提供するRubyのバージョンとの潜在的な競合を回避し、Jekyllとその依存関係をサンドボックス環境に保ちます。gemを追加または削除するときに`sudo`を必要としないという利点もあります。 + + + +### JavaScriptランタイムが見つけられない。(ExecJS::RuntimeUnavailable) + + +適切なJavaScriptランタイムがない場合、`jekyll-coffeescript`のインストール中にこのエラーが発生する可能性があります。これを解決するには、`execjs`と`therubyracer` gemsをインストールするか、`nodejs`をインストールしてください。 詳細は[issue #2327](https://github.com/jekyll/jekyll/issues/2327){:target="_blank"}をご覧ください。 + + + +## Jekyll実行の問題 {#problems-running-jekyll} + + +DebianやUbuntuでは、`jekyll`実行ファイルをターミナルで利用できるようにするために、パスに`/var/lib/gems/1.8/bin/`を追加する必要があります。 + + + +## Base-URLの問題 {#base-url-problems} + + + + + +```sh jekyll serve --baseurl '/blog' -{% endhighlight %} ---> +``` -… その時は次の様にしてあなたのサイトにアクセスできることを確認してください: +上記のようにbase-urlオプションを使用している場合、サイトへのアクセスは以下を使用します。 - -{% highlight bash %} -http://localhost:4000/blog/index.html -{% endhighlight %} + - +``` -以下にアクセスしてもうまく動きません: +以下では上手く機能しません。 - + -{% highlight bash %} +``` http://localhost:4000/blog -{% endhighlight %} +``` - +## 設定の問題 {#configuration-problems} + + +[構成・設定]({{ "/docs/configuration/" | relative_url }})で矛盾がある場合の優先順位は以下の通りです。 -## 設定での問題 + - +1. コマンドラインのflags +2. 設定ファイルの設定 +3. デフォルト -[構成設定](../configuration/)の競合の優先順位は次のとおりです: + - +これは、デフォルトは`_config.yml`のオプション設定で上書きされ、コマンドラインのflagsは他の設定を上書きするを意味しています。 -1. コマンドラインフラグ -2. 設定ファイルでの設定 -3. デフォルト値 + - +**注:v3.3.0以降、Jekyllはデフォルトで`node_modules`と`vendor`内の特定のサブディレクトリを処理しません。ただし、設定ファイルで明示的に`exclude:`arrayを定義すると、このデフォルト設定が上書きされるため、一部のユーザーはサイトの構築時にエラーが発生し、次のエラーメッセージが表示されます。** -それは、次のとおりです: デフォルト値は`_config.yml`で指定されたオプションで上書きされて、 -そしてコマンドラインで指定されたフラグは、他の場所で設定されたすべての設定を上書きします。 +**Note: From v3.3.0 onward, Jekyll does not process `node_modules` and certain subdirectories within `vendor`, by default. But, by having an `exclude:` array defined explicitly in the config file overrides this default setting, which results in some users to encounter an error in building the site, with the following error message:** - +```sh + ERROR: YOUR SITE COULD NOT BE BUILT: + ------------------------------------ + Invalid date '<%= Time.now.strftime('%Y-%m-%d %H:%M:%S %z') %>': + Document 'vendor/bundle/gems/jekyll-3.4.3/lib/site_template/_posts/0000-00-00-welcome-to-jekyll.markdown.erb' + does not have a valid date in front matter. +``` -## マークアップでの問題 +`vendor/bundle`を`exclude:`リストに追加することでこの問題は解決されますが、`/vendor/`(および`/node_modules/`下のサブディレクトリ)の下に他のサブディレクトリも宛先フォルダー`_site`に処理されることになります。 - + -Jekyllが利用する様々なマークアップエンジンはいくつかの問題があることがあります。この -ページには、同じ問題が発生する可能性のある他の人を助けるためにそれらをドキュメント化します。 +適切な解決策は、完全に上書きするのではなく、`exclude:`のデフォルト設定を組み込むことです: - - -### Maruku - - - -もし、あなたのリンクにエスケープが必要な文字が含まれていた場合、次の文法を使う必要があります: - - - -{% highlight text %} -![Alt text](http://yuml.me/diagram/class/[Project]->[Task]) -{% endhighlight %} - - - -中身が空のタグがある場合、例えば` -{% endif %} - {% if site.google_analytics_id %} - + + diff --git a/_includes/section_nav.html b/_includes/section_nav_tutorials.html similarity index 67% rename from _includes/section_nav.html rename to _includes/section_nav_tutorials.html index 2016997..30812bb 100644 --- a/_includes/section_nav.html +++ b/_includes/section_nav_tutorials.html @@ -1,8 +1,8 @@ {% comment %} -Map grabs the doc sections, giving us an array of arrays. Join, flattens all +Map grabs the tutorials sections, giving us an array of arrays. Join, flattens all the items to a comma delimited string. Split turns it into an array again. {% endcomment %} -{% assign docs = site.data.docs | map: 'docs' | join: ',' | split: ',' %} +{% assign tutorials = site.data.tutorials | map: 'tutorials' | join: ',' | split: ',' %} {% comment %} Because this is built for every page, lets find where we are in the ordered @@ -10,16 +10,16 @@ next, lets build a link to it. {% endcomment %} -{% for document in docs %} - {% assign document_url = document | prepend:"/docs/" | append:"/" %} - {% if document_url == page.url %} +{% for tutorial in tutorials %} + {% assign tutorial_url = tutorial | prepend:"/tutorials/" | append:"/" %} + {% if tutorial_url == page.url %}
{% if forloop.first %} Back {% else %} {% assign previous = forloop.index0 | minus: 1 %} - {% assign previous_page = docs[previous] | prepend:"/docs/" | append:"/" %} + {% assign previous_page = tutorials[previous] | prepend:"/tutorials/" | append:"/" %} {% endif %}
@@ -28,7 +28,7 @@ Next {% else %} {% assign next = forloop.index0 | plus: 1 %} - {% assign next_page = docs[next] | prepend:"/docs/" | append:"/" %} + {% assign next_page = tutorials[next] | prepend:"/tutorials/" | append:"/" %} {% endif %}
diff --git a/_includes/step-index.html b/_includes/step-index.html new file mode 100644 index 0000000..eb03b55 --- /dev/null +++ b/_includes/step-index.html @@ -0,0 +1,65 @@ +{% assign docs = site.docs | where_exp: "doc", "doc.url contains '/step-by-step/'" %} + +{% for tutorial in tutorials %} + {% assign tutorial_url = tutorial | prepend:"/tutorials/" | append:"/" %} + {% if tutorial_url == page.url %} +
+
+ {% if forloop.first %} + Back + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + {% assign previous_page = tutorials[previous] | prepend:"/tutorials/" | append:"/" %} + + {% endif %} +
+
+ {% if forloop.last %} + Next + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + {% assign next_page = tutorials[next] | prepend:"/tutorials/" | append:"/" %} + + {% endif %} +
+
+
+ {% break %} + {% endif %} +{% endfor %} + + +{% for doc in docs %} + {% if doc.url == page.url %} +
+
+ {% if forloop.first %} + Back + {% else %} + {% assign previous = forloop.index0 | minus: 1 %} + + {% endif %} +
+
+ {% if forloop.last %} + Next + {% else %} + {% assign next = forloop.index0 | plus: 1 %} + + {% endif %} +
+
+
+ {% break %} + {% endif %} +{% endfor %} + +
    + {% for step in docs %} +
  1. + + {{ step.title }} + +
  2. + {% endfor %} +
diff --git a/_includes/togglate_js.html b/_includes/togglate_js.html deleted file mode 100644 index 198c9ca..0000000 --- a/_includes/togglate_js.html +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/_includes/top.html b/_includes/top.html index 2d12d1b..a76e22a 100644 --- a/_includes/top.html +++ b/_includes/top.html @@ -2,14 +2,17 @@ - {{ page.title }} {% feed_meta %} + - + + + + {% seo %} +

{{ page.position }}. {{ page.title }}

+ {{ content }} + {% include step-index.html %} + + + + {% include docs_contents.html %} + +
+ + + diff --git a/_layouts/tutorials.html b/_layouts/tutorials.html new file mode 100644 index 0000000..3850971 --- /dev/null +++ b/_layouts/tutorials.html @@ -0,0 +1,27 @@ +--- +layout: default +--- + +
+
+ + {% include tutorials_contents_mobile.html %} + +
+
+ +

{{ page.title }}

+ {{ content }} + {% include section_nav_tutorials.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..deafe50 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; + } } } @@ -537,8 +574,22 @@ aside { } .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)