diff --git a/docs/_data/jekyll_filters.yml b/docs/_data/jekyll_filters.yml new file mode 100644 index 00000000..adc494c3 --- /dev/null +++ b/docs/_data/jekyll_filters.yml @@ -0,0 +1,298 @@ +# +# --------------------------------------------------------------------------------------- +# 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: diff --git a/docs/_docs/liquid/filters.md b/docs/_docs/liquid/filters.md index f7f2735d..84aad19e 100644 --- a/docs/_docs/liquid/filters.md +++ b/docs/_docs/liquid/filters.md @@ -52,8 +52,8 @@ shopify_filters: - url_encode --- -All of the standard Liquid -[filters](#standard-liquid-filters) are supported (see below). +All of the standard Liquid [filters](#standard-liquid-filters) are supported (see below). + To make common tasks easier, Jekyll even adds a few handy filters of its own, all of which you can find on this page. You can also create your own filters using [plugins](/docs/plugins/). @@ -67,432 +67,27 @@ using [plugins](/docs/plugins/). - - -

Relative URL

-

Prepend the baseurl value to the input. Useful if your site is hosted at a subpath rather than the root of the domain.

- - -

- {% raw %}{{ "/assets/style.css" | relative_url }}{% endraw %} -

-

- /my-baseurl/assets/style.css -

- - - - -

Absolute URL

-

Prepend the url and baseurl value to the input.

- - -

- {% raw %}{{ "/assets/style.css" | absolute_url }}{% endraw %} -

-

- http://example.com/my-baseurl/assets/style.css -

- - - - -

Date to XML Schema

-

Convert a Date into XML Schema (ISO 8601) format.

- - -

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

-

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

- - - - -

Date to RFC-822 Format

-

Convert a Date into the RFC-822 format used for RSS feeds.

- - -

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

-

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

- - - - -

Date to String

-

Convert a date to short format.

- - -

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

-

- 07 Nov 2008 -

- - - - -

Date to String in ordinal US style

-

Format a date to ordinal, US, short format. - {% include docs_version_badge.html version="3.8.0" %}

- - -

- {% raw %}{{ site.time | date_to_string: "ordinal", "US" }}{% endraw %} -

-

- Nov 7th, 2008 -

- - - - -

Date to Long String

-

Format a date to long format.

- - -

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

-

- 07 November 2008 -

- - - - -

Date to Long String in ordinal UK style

-

Format a date to ordinal, UK, long format. - {% include docs_version_badge.html version="3.8.0" %}

- - -

- {% raw %}{{ site.time | date_to_long_string: "ordinal" }}{% endraw %} -

-

- 7th November 2008 -

- - - - -

Where

-

Select all the objects in an array where the key has the given value.

- - -

- {% raw %}{{ site.members | where:"graduation_year","2014" }}{% endraw %} -

- - - - -

Where Expression

-

Select all the objects in an array where the expression is true. - {% include docs_version_badge.html version="3.2.0" %}

- - -

- {% raw %}{{ site.members | where_exp:"item", -"item.graduation_year == 2014" }}{% endraw %} - {% raw %}{{ site.members | where_exp:"item", -"item.graduation_year < 2014" }}{% endraw %} - {% raw %}{{ site.members | where_exp:"item", -"item.projects contains 'foo'" }}{% endraw %} -

- - - - -

Group By

-

Group an array's items by a given property.

- - -

- {% raw %}{{ site.members | group_by:"graduation_year" }}{% endraw %} -

-

- [{"name"=>"2013", "items"=>[...]}, -{"name"=>"2014", "items"=>[...]}] -

- - - - -

Group By Expression

-

Group an array's items using a Liquid expression. - {% include docs_version_badge.html version="3.4.0" %}

- - -

- {% raw %}{{ site.members | group_by_exp:"item", -"item.graduation_year | truncate: 3, \"\"" }}{% endraw %} -

-

- [{"name"=>"201...", "items"=>[...]}, -{"name"=>"200...", "items"=>[...]}] -

- - - - -

XML Escape

-

Escape some text for use in XML.

- - -

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

- - - - -

CGI Escape

-

- 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. -

- - -

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

-

- foo%2C+bar%3B+baz%3F -

- - - - -

URI Escape

-

- Percent encodes any special characters in a URI. URI escape normally replaces a space with %20. Reserved characters will not be escaped. -

- - -

- {% raw %}{{ "http://foo.com/?q=foo, \bar?" | uri_escape }}{% endraw %} -

-

- http://foo.com/?q=foo,%20%5Cbar? -

- - - - -

Number of Words

-

Count the number of words in some text.

- - -

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

-

- 1337 -

- - - - -

Array to Sentence

-

Convert an array into a sentence. Useful for listing tags. Optional argument for connector.

- - -

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

-

- foo, bar, and baz -

-

- {% raw %}{{ page.tags | array_to_sentence_string: 'or' }}{% endraw %} -

-

- foo, bar, or baz -

- - - - -

Markdownify

-

Convert a Markdown-formatted string into HTML.

- - -

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

- - - - -

Smartify

-

Convert "quotes" into “smart quotes.”

- - -

- {% raw %}{{ page.title | smartify }}{% endraw %} -

- - - - -

Converting Sass/SCSS

-

Convert a Sass- or SCSS-formatted string into CSS.

- - -

- {% raw %}{{ some_scss | scssify }}{% endraw %} - {% raw %}{{ some_sass | sassify }}{% endraw %} -

- - - - -

Slugify

-

Convert a string into a lowercase URL "slug". See below for options.

- - -

- {% raw %}{{ "The _config.yml file" | slugify }}{% endraw %} -

-

- the-config-yml-file -

-

- {% raw %}{{ "The _config.yml file" | slugify: 'pretty' }}{% endraw %} -

-

- the-_config.yml-file -

-

- {% raw %}{{ "The _cönfig.yml file" | slugify: 'ascii' }}{% endraw %} -

-

- the-c-nfig-yml-file -

-

- {% raw %}{{ "The cönfig.yml file" | slugify: 'latin' }}{% endraw %} -

-

- the-config-yml-file -

- - - - -

Data To JSON

-

Convert Hash or Array to JSON.

- - -

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

- - - - -

Normalize Whitespace

-

Replace any occurrence of whitespace with a single space.

- - -

- {% raw %}{{ "a \n b" | normalize_whitespace }}{% endraw %} -

- - - - -

Sort

-

Sort an array. Optional arguments for hashes: 1. property name 2. nils order (first or last).

- - -

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

-

- {% raw %}{{ site.posts | sort: 'author' }}{% endraw %} -

-

- {% raw %}{{ site.pages | sort: 'title', 'last' }}{% endraw %} -

- - - - -

Sample

-

Pick a random value from an array. Optional: pick multiple values.

- - -

- {% raw %}{{ site.pages | sample }}{% endraw %} -

-

- {% raw %}{{ site.pages | sample:2 }}{% endraw %} -

- - - - -

To Integer

-

Convert a string or boolean to integer.

- - -

- {% raw %}{{ some_var | to_integer }}{% endraw %} -

- - - - -

Array Filters

-

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.

- - -

- {% raw %}{{ page.tags | push: 'Spokane' }}{% endraw %} -

-

- ['Seattle', 'Tacoma', 'Spokane'] -

-

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

-

- ['Seattle'] -

-

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

-

- ['Tacoma'] -

-

- {% raw %}{{ page.tags | unshift: "Olympia" }}{% endraw %} -

-

- ['Olympia', 'Seattle', 'Tacoma'] -

- - - - -

Inspect

-

Convert an object into its String representation for debugging.

- - -

- {% raw %}{{ some_var | inspect }}{% endraw %} -

- - + {% for filter in site.data.jekyll_filters %} + + +

{{ 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 -%} + + + {% endfor %}