From 8e2d290c7f0f7dc46e9aed110ba90a2904b18287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 8 Jan 2020 01:36:05 +0800 Subject: [PATCH 001/317] Update toc.html from allejo/jekyll-toc:master (#2355) --- _includes/toc.html | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/_includes/toc.html b/_includes/toc.html index 54ab8b03da40..25b9f6a382b0 100644 --- a/_includes/toc.html +++ b/_includes/toc.html @@ -1,6 +1,6 @@ {% capture tocWorkspace %} {% comment %} - Version 1.0.5 + Version 1.0.8 https://github.com/allejo/jekyll-toc "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe @@ -9,20 +9,22 @@ {% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %} Parameters: - * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll + * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll Optional Parameters: - * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC - * class (string) : '' - a CSS class assigned to the TOC - * id (string) : '' - an ID to assigned to the TOC - * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored - * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored - * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list - * item_class (string) : '' - add custom class for each list item; has support for '%level%' placeholder, which is the current heading level - * baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content + * sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC + * class (string) : '' - a CSS class assigned to the TOC + * id (string) : '' - an ID to assigned to the TOC + * h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored + * h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored + * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list + * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level + * baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content + * anchor_class (string) : '' - add custom class(es) for each anchor element Output: - An ordered or unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it + An ordered or unordered list representing the table of contents of a markdown block. This snippet will only + generate the table of contents and will NOT output the markdown given to it {% endcomment %} {% capture my_toc %}{% endcapture %} @@ -50,13 +52,21 @@ {% assign minHeader = headerLevel %} {% endif %} - {% assign indentAmount = headerLevel | minus: minHeader | add: 1 %} + {% assign indentAmount = headerLevel | minus: minHeader %} {% assign _workspace = node | split: '' | first }}>{% endcapture %} {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} @@ -69,8 +79,9 @@ {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %} {% endunless %} + {% capture heading_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} {% capture my_toc %}{{ my_toc }} -{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %} +{{ space }}{{ listModifier }} {{ listItemClass }} [{{ heading_body | replace: "|", "\|" }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %} {% endfor %} {% if include.class %} @@ -82,4 +93,4 @@ {% capture my_toc %}{: #{{ include.id }}} {{ my_toc | lstrip }}{% endcapture %} {% endif %} -{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }} \ No newline at end of file +{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }} From e604b4742a6d717387e43ce905e22038e56f55e7 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 12:37:31 -0500 Subject: [PATCH 002/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e5b4c7efc58..6ffdc6e74de0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) - Support page header (hero) in `archive-taxonomy` layout. [#2320](https://github.com/mmistakes/minimal-mistakes/pull/2320) - Add social icon color for Keybase. [#2302](https://github.com/mmistakes/minimal-mistakes/pull/2302) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 964e21fa4739..1660626da49e 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2019-12-19T11:39:33-05:00 +last_modified_at: 2020-01-07T12:37:16-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) - Support page header (hero) in `archive-taxonomy` layout. [#2320](https://github.com/mmistakes/minimal-mistakes/pull/2320) - Add social icon color for Keybase. [#2302](https://github.com/mmistakes/minimal-mistakes/pull/2302) From f33158412536eee16d2dae63c5d646ebfd4d2142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 8 Jan 2020 01:38:08 +0800 Subject: [PATCH 003/317] Use %-d instead of %d (#2359) --- _includes/comment.html | 2 +- _layouts/single.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_includes/comment.html b/_includes/comment.html index cebedabfb5d5..2e3013ee2a76 100644 --- a/_includes/comment.html +++ b/_includes/comment.html @@ -13,7 +13,7 @@

{{ site.data.ui-text[site.locale].meta_label }}

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

{% elsif page.date %} -

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

+

{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

{% endif %} From 65051cce2eccbc9eee421cbda998fb9241756dae Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 12:39:34 -0500 Subject: [PATCH 004/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ffdc6e74de0..85ad1502030c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) - Support page header (hero) in `archive-taxonomy` layout. [#2320](https://github.com/mmistakes/minimal-mistakes/pull/2320) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 1660626da49e..3ae4dd0da501 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-07T12:37:16-05:00 +last_modified_at: 2020-01-07T12:39:26-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) - Support page header (hero) in `archive-taxonomy` layout. [#2320](https://github.com/mmistakes/minimal-mistakes/pull/2320) From e2f0cf82f9f9dfa930aa2f8ad0c0c68281dec400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Gra=C3=A7a?= <1134310+rodrigograca31@users.noreply.github.com> Date: Tue, 7 Jan 2020 17:45:58 +0000 Subject: [PATCH 005/317] =?UTF-8?q?=F0=9F=94=A7=20Exclude=20`package-lock.?= =?UTF-8?q?json`=20(#2364)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index f9a962363918..6aa9d9cccd6f 100644 --- a/_config.yml +++ b/_config.yml @@ -180,6 +180,7 @@ exclude: - log - node_modules - package.json + - package-lock.json - Rakefile - README - tmp From f2af873e942728320f1c5737a013e5ab5f1f2df1 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 12:47:33 -0500 Subject: [PATCH 006/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85ad1502030c..ddb21eae2c51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 3ae4dd0da501..e3606853b058 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-07T12:39:26-05:00 +last_modified_at: 2020-01-07T12:47:03-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) - Add missing Dutch localized UI text strings. [#2321](https://github.com/mmistakes/minimal-mistakes/pull/2321) From be0e7ca97197a2b8f4b494b874515b675f2f95f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 8 Jan 2020 02:01:47 +0800 Subject: [PATCH 007/317] Allow override of page excerpt in heading (via tagline) (#2307) Allow the use of `page.tagline` to override `page.excerpt` in heading area --- _includes/page__hero.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_includes/page__hero.html b/_includes/page__hero.html index 98bff72aa29e..a84671db30c3 100644 --- a/_includes/page__hero.html +++ b/_includes/page__hero.html @@ -42,7 +42,9 @@

{{ page.title | default: site.title | markdownify | remove: "

" | remove: "

" }} {% endif %}

- {% if page.header.show_overlay_excerpt != false and page.excerpt %} + {% if page.tagline %} +

{{ page.tagline | markdownify | remove: "

" | remove: "

" }}

+ {% elsif page.header.show_overlay_excerpt != false and page.excerpt %}

{{ page.excerpt | markdownify | remove: "

" | remove: "

" }}

{% endif %} {% if page.read_time %} From 6deaab8d3a2a9995ebb6d7773d05b284814f96b1 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 13:14:33 -0500 Subject: [PATCH 008/317] Add example posts with header `tagline` --- ...-15-layout-header-overlay-image-tagline.md | 28 +++++++++++++++++++ ...-15-layout-header-overlay-image-tagline.md | 28 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 docs/_posts/2012-03-15-layout-header-overlay-image-tagline.md create mode 100644 test/_posts/2012-03-15-layout-header-overlay-image-tagline.md diff --git a/docs/_posts/2012-03-15-layout-header-overlay-image-tagline.md b/docs/_posts/2012-03-15-layout-header-overlay-image-tagline.md new file mode 100644 index 000000000000..32588bde9b53 --- /dev/null +++ b/docs/_posts/2012-03-15-layout-header-overlay-image-tagline.md @@ -0,0 +1,28 @@ +--- +title: "Layout: Header Image Overlay with Custom Tagline" +tagline: "This is a custom tagline content which overrides the *default* page excerpt." +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +categories: + - Layout + - Uncategorized +tags: + - edge case + - image + - layout +last_modified_at: 2020-01-07T13:05:25-05:00 +--- + +This post should display a **header with an overlay image** and **custom tagline**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests overlay header images with custom `page.tagline`. + +```yaml +tagline: "This is a custom tagline content which overrides the default page excerpt." +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +``` \ No newline at end of file diff --git a/test/_posts/2012-03-15-layout-header-overlay-image-tagline.md b/test/_posts/2012-03-15-layout-header-overlay-image-tagline.md new file mode 100644 index 000000000000..32588bde9b53 --- /dev/null +++ b/test/_posts/2012-03-15-layout-header-overlay-image-tagline.md @@ -0,0 +1,28 @@ +--- +title: "Layout: Header Image Overlay with Custom Tagline" +tagline: "This is a custom tagline content which overrides the *default* page excerpt." +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +categories: + - Layout + - Uncategorized +tags: + - edge case + - image + - layout +last_modified_at: 2020-01-07T13:05:25-05:00 +--- + +This post should display a **header with an overlay image** and **custom tagline**, if the theme supports it. + +Non-square images can provide some unique styling issues. + +This post tests overlay header images with custom `page.tagline`. + +```yaml +tagline: "This is a custom tagline content which overrides the default page excerpt." +header: + overlay_image: /assets/images/unsplash-image-1.jpg + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" +``` \ No newline at end of file From eb1af708107c97ac0cef619a57abcc0fcdaeed16 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 13:14:50 -0500 Subject: [PATCH 009/317] Document header `tagline` --- docs/_docs/10-layouts.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index a1664e8f3613..fd8f1df910e6 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -7,7 +7,7 @@ single_layout_gallery: alt: "single layout with header example" - image_path: /assets/images/mm-layout-single-meta.png alt: "single layout with comments and related posts" -last_modified_at: 2019-07-24T10:15:57-04:00 +last_modified_at: 2020-01-07T13:14:09-05:00 toc: true toc_label: "Included Layouts" toc_icon: "columns" @@ -427,6 +427,7 @@ To overlay text on top of a header image you have a few more options: | **overlay_filter** | Color/opacity to overlay on top of the header image eg: `0.5` or `rgba(255, 0, 0, 0.5)`. | | **show_overlay_excerpt** | Display excerpt in the overlay text | true | | **excerpt** | Auto-generated page excerpt is added to the overlay text or can be overridden. | | +| **tagline** | Overrides page excerpt. Useful when header text needs to be different from excerpt in archive views. | | | **actions** | Call to action button links (`actions` array: `label` and `url`). More than one button link can be assigned. | | | **cta_label** | Deprecated, use `actions` instead. Call to action button text label. | `more_label` in UI Text data file | | **cta_url** | Deprecated, use `actions` instead. Call to action button URL. | | From 39423bc2337b2cd3c509ce23fcab9e11d48d99af Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 7 Jan 2020 13:14:57 -0500 Subject: [PATCH 010/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddb21eae2c51..6c31e3c657d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index e3606853b058..8aa31905464c 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-07T12:47:03-05:00 +last_modified_at: 2020-01-07T13:11:03-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) - Update table of contents helper (`toc.html`) to [v1.0.8](https://github.com/allejo/jekyll-toc/releases). [#2355](https://github.com/mmistakes/minimal-mistakes/pull/2355) From a9f927a353ab05be48cdacfe87fca1257ab61a7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 15 Jan 2020 01:31:30 +0800 Subject: [PATCH 011/317] Update .gitignore (#2366) --- .gitignore | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 3fe6b7186e40..a3ad00c52756 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,29 @@ -*.gem +# Vim +*~ +*.sw[p_] + +# Sublime Text *.sublime-project *.sublime-workspace + +# Ruby Gem +*.gem .bundle +Gemfile.lock +vendor/bundle + +# Node.js and NPM +node_modules +npm-debug.log* +package-lock.json +codekit-config.json + +# macOS .DS_Store + +# Jekyll generated files .jekyll-cache .jekyll-metadata .sass-cache _asset_bundler_cache _site -codekit-config.json -example/_site -Gemfile.lock -node_modules -npm-debug.log* -vendor/bundle From 31d230934c4efe4afd807fca4d9eda085bef5662 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 14 Jan 2020 12:32:20 -0500 Subject: [PATCH 012/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c31e3c657d8..b49ab269f4f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Update `.gitignore` file. [#2366](https://github.com/mmistakes/minimal-mistakes/pull/2366) - Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 8aa31905464c..e8b5fc2af543 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-07T13:11:03-05:00 +last_modified_at: 2020-01-14T12:32:13-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Update `.gitignore` file. [#2366](https://github.com/mmistakes/minimal-mistakes/pull/2366) - Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) - Use `%-d` instead of `%d` so displayed dates aren't padded with zero. [#2359](https://github.com/mmistakes/minimal-mistakes/pull/2359) From d1db419e596efc6ede8d608a3d0ad7fee044e3f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 15 Jan 2020 01:32:48 +0800 Subject: [PATCH 013/317] Update README and LICENSE (#2367) * Update README and LICENSE * README: Replace RawGit with jsDelivr --- LICENSE | 4 ++-- README.md | 8 ++++---- docs/_docs/01-quick-start-guide.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/LICENSE b/LICENSE index af1e9d4727c9..3e733ff32a69 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2013-2019 Michael Rose and contributors +Copyright (c) 2013-2020 Michael Rose and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. diff --git a/README.md b/README.md index 7b7e5112e5e2..20e6602d7c44 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building per **If you enjoy this theme, please consider [supporting me](https://www.paypal.me/mmistakes) to continue developing and maintaining it.** -[![Support via PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes) +[![Support via PayPal](https://cdn.jsdelivr.net/gh/twolfson/paypal-github-button@1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes) -**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and added to the `plugins` array of `_config.yml`. Otherwise you'll throw `Unknown tag 'include_cached'` errors at build. +**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and added to the `plugins` array of `_config.yml`. Otherwise you'll encounter `Unknown tag 'include_cached'` errors at build. [![Minimal Mistakes live preview][2]][1] @@ -37,7 +37,7 @@ Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building per ## Skins (color variations) -This theme comes in nine different skins (including the default one). +This theme comes in nine different skins (in addition to the default one). | `air` | `contrast` | `dark` | | --- | --- | --- | @@ -198,7 +198,7 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http The MIT License (MIT) -Copyright (c) 2013-2019 Michael Rose and contributors +Copyright (c) 2013-2020 Michael Rose and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/docs/_docs/01-quick-start-guide.md b/docs/_docs/01-quick-start-guide.md index 113e6fc1db65..1384fc1fd9f0 100644 --- a/docs/_docs/01-quick-start-guide.md +++ b/docs/_docs/01-quick-start-guide.md @@ -12,7 +12,7 @@ Minimal Mistakes has been developed as a [Gem-based theme](http://jekyllrb.com/d **If you enjoy this theme, please consider [supporting me](https://www.paypal.me/mmistakes) for developing and maintaining it.** -[![Support via PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes) +[![Support via PayPal](https://cdn.jsdelivr.net/gh/twolfson/paypal-github-button@1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes) ## Installing the theme From b84c196178bea5be8b4750655bc15efec643ae46 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 14 Jan 2020 12:33:30 -0500 Subject: [PATCH 014/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b49ab269f4f9..92d9506e0ac4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Update README and LICENSE. [#2367](https://github.com/mmistakes/minimal-mistakes/pull/2367) - Update `.gitignore` file. [#2366](https://github.com/mmistakes/minimal-mistakes/pull/2366) - Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index e8b5fc2af543..5ba252694e48 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-14T12:32:13-05:00 +last_modified_at: 2020-01-14T12:33:23-05:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Update README and LICENSE. [#2367](https://github.com/mmistakes/minimal-mistakes/pull/2367) - Update `.gitignore` file. [#2366](https://github.com/mmistakes/minimal-mistakes/pull/2366) - Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) From c6b4cdac971b676da388f9124f8947efe157a756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 15 Jan 2020 01:40:11 +0800 Subject: [PATCH 015/317] Fix wrong newline concatenation in SEO description, resolves #2354 (#2368) Close #2354 --- _includes/seo.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/seo.html b/_includes/seo.html index 4d508fa0730d..cb6e36ef47c2 100644 --- a/_includes/seo.html +++ b/_includes/seo.html @@ -22,7 +22,7 @@ {%- assign seo_description = page.description | default: page.excerpt | default: site.description -%} {%- if seo_description -%} - {%- assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once -%} + {%- assign seo_description = seo_description | markdownify | strip_html | newline_to_br | strip_newlines | replace: '
', ' ' | escape_once -%} {%- endif -%} {%- assign author = page.author | default: page.authors[0] | default: site.author -%} From 2397da4e283f7eb1a590cf7a0dcf2925d68267a7 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 14 Jan 2020 12:41:28 -0500 Subject: [PATCH 016/317] Add post to test multiline excerpt --- docs/_posts/2009-10-05-edge-case-multiline-excerpt.md | 6 ++++++ test/_posts/2009-10-05-edge-case-multiline-excerpt.md | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 docs/_posts/2009-10-05-edge-case-multiline-excerpt.md create mode 100644 test/_posts/2009-10-05-edge-case-multiline-excerpt.md diff --git a/docs/_posts/2009-10-05-edge-case-multiline-excerpt.md b/docs/_posts/2009-10-05-edge-case-multiline-excerpt.md new file mode 100644 index 000000000000..6acc568a0655 --- /dev/null +++ b/docs/_posts/2009-10-05-edge-case-multiline-excerpt.md @@ -0,0 +1,6 @@ +--- +title: "Edge Case: Post with multiline excerpt" +--- + +Et ex ullamco duis don't +combine these words quis laborum sunt sint. Nisi et Lorem reprehenderit cupidatat. Aliqua fugiat aliquip officia culpa elit. Adipisicing do eu duis aute et aute amet anim ut cillum aliqua. Aliqua adipisicing occaecat et ullamco fugiat. \ No newline at end of file diff --git a/test/_posts/2009-10-05-edge-case-multiline-excerpt.md b/test/_posts/2009-10-05-edge-case-multiline-excerpt.md new file mode 100644 index 000000000000..6acc568a0655 --- /dev/null +++ b/test/_posts/2009-10-05-edge-case-multiline-excerpt.md @@ -0,0 +1,6 @@ +--- +title: "Edge Case: Post with multiline excerpt" +--- + +Et ex ullamco duis don't +combine these words quis laborum sunt sint. Nisi et Lorem reprehenderit cupidatat. Aliqua fugiat aliquip officia culpa elit. Adipisicing do eu duis aute et aute amet anim ut cillum aliqua. Aliqua adipisicing occaecat et ullamco fugiat. \ No newline at end of file From 0ce6c0d64882c1581788f90d31a80f978b3c1da5 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 14 Jan 2020 12:42:35 -0500 Subject: [PATCH 017/317] Update CHANGELOG and history --- CHANGELOG.md | 3 ++- docs/_docs/18-history.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92d9506e0ac4..c07f31c8391f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ### Enhancements -- Update README and LICENSE. [#2367](https://github.com/mmistakes/minimal-mistakes/pull/2367) +- Update README and LICENSE. [#2367](https://github.com/mmistakes/minimal-mistakes/pull/2367) [#2354](https://github.com/mmistakes/minimal-mistakes/issues/2354) - Update `.gitignore` file. [#2366](https://github.com/mmistakes/minimal-mistakes/pull/2366) - Allow override of page excerpt in hero header via `tagline` YAML front matter. [#2307](https://github.com/mmistakes/minimal-mistakes/pull/2307) - Exclude `package-lock.json` from Jekyll build. [#2364](https://github.com/mmistakes/minimal-mistakes/pull/2364) @@ -14,6 +14,7 @@ ### Bug Fixes +- Fix wrong newline concatenation in SEO description. [#2368](https://github.com/mmistakes/minimal-mistakes/pull/2368) - Fix Staticman v2/v3 conditional for showing comments. [#2351](https://github.com/mmistakes/minimal-mistakes/pull/2351) - Fix masthead logo path. [#2332](https://github.com/mmistakes/minimal-mistakes/pull/2332) - Fix schema.org dates to ISO-8601. [#2339](https://github.com/mmistakes/minimal-mistakes/pull/2339) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 5ba252694e48..81a454909fbe 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-01-14T12:33:23-05:00 +last_modified_at: 2020-01-14T12:42:23-05:00 toc: false --- @@ -25,6 +25,7 @@ toc: false ### Bug Fixes +- Update README and LICENSE. [#2367](https://github.com/mmistakes/minimal-mistakes/pull/2367) [#2354](https://github.com/mmistakes/minimal-mistakes/issues/2354) - Fix Staticman v2/v3 conditional for showing comments. [#2351](https://github.com/mmistakes/minimal-mistakes/pull/2351) - Fix masthead logo path. [#2332](https://github.com/mmistakes/minimal-mistakes/pull/2332) - Fix schema.org dates to ISO-8601. [#2339](https://github.com/mmistakes/minimal-mistakes/pull/2339) From 741b6dcb10a918186fbe40e9bf3f4a306cefd8eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Ganzenm=C3=BCller?= Date: Tue, 14 Jan 2020 18:43:14 +0100 Subject: [PATCH 018/317] Adjust comments to be compatible with compress_html (#2373) --- _includes/comments-providers/disqus.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_includes/comments-providers/disqus.html b/_includes/comments-providers/disqus.html index 8cf7acabeac2..16a6027c71c6 100644 --- a/_includes/comments-providers/disqus.html +++ b/_includes/comments-providers/disqus.html @@ -1,10 +1,10 @@ {% if site.comments.disqus.shortname %} From 8711be97c6b0e41f46be9b79ee28cde40e8ffb92 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 22 Jul 2020 15:36:25 -0400 Subject: [PATCH 119/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4adfcc49ff14..e2c320952424 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Enhancements +- Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 2693f2da1b53..c526c18b9508 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at:2020-07-22T15:30:17-04:00 +last_modified_at: 2020-07-22T15:36:16-04:00 toc: false --- @@ -17,6 +17,7 @@ toc: false ### Enhancements +- Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) From 42c4df6244d6b58587a0c246ccf69575bca1c5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Thu, 23 Jul 2020 03:42:46 +0800 Subject: [PATCH 120/317] Enhance Bilibili video support (redo of #2522) (#2599) * Enhance support for bilibili videos in responsive video helper, and add corresponding doc * Apply @iBug's review in mmistakes/minimal-mistakes#2522 * Fix danmaku in page hero video * Update video to use case..when for iframe src * Update CHANGELOG and history Co-authored-by: Anran <51769728+ALeafWolf@users.noreply.github.com> Co-authored-by: Michael Rose --- CHANGELOG.md | 1 + _includes/page__hero_video.html | 6 ++---- _includes/video | 31 ++++++++++++++++++++----------- docs/_docs/14-helpers.md | 25 +++++++++++++++++++++++++ docs/_docs/18-history.md | 3 ++- 5 files changed, 50 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c320952424..7730eab4365c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) +- Add `danmaku` option to Bilibili video provider and add corresponding documentation/ [#2599](https://github.com/mmistakes/minimal-mistakes/pull/2599) ## [4.19.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.3) diff --git a/_includes/page__hero_video.html b/_includes/page__hero_video.html index 8586a95a2b15..a313a23d45b9 100644 --- a/_includes/page__hero_video.html +++ b/_includes/page__hero_video.html @@ -1,4 +1,2 @@ -{% capture video_id %}{{ page.header.video.id }}{% endcapture %} -{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %} - -{% include video id=video_id provider=video_provider %} +{% assign video = page.header.video %} +{% include video id=video.id provider=video.provider danmaku=video.danmaku %} diff --git a/_includes/video b/_includes/video index 04b37e0d1c4b..d653fd641df6 100644 --- a/_includes/video +++ b/_includes/video @@ -1,15 +1,24 @@ {% capture video_id %}{{ include.id }}{% endcapture %} {% capture video_provider %}{{ include.provider }}{% endcapture %} +{% capture video_danmaku %}{{ include.danmaku | default: 0 }}{% endcapture %} + +{% capture video_src %} + {% case video_provider %} + {% when "vimeo" %} + https://player.vimeo.com/video/{{ video_id }}?dnt=true + {% when "youtube" %} + https://www.youtube-nocookie.com/embed/{{ video_id }} + {% when "google-drive" %} + https://drive.google.com/file/d/{{ video_id }}/preview + {% when "bilibili" %} + https://player.bilibili.com/player.html?bvid={{ video_id }}&page=1&as_wide=1&high_quality=1&danmaku={{ video_danmaku }} + {% endcase %} +{% endcapture %} +{% assign video_src = video_src | strip %} -
-{% if video_provider == "vimeo" %} - -{% elsif video_provider == "youtube" %} - -{% elsif video_provider == "google-drive" %} - -{% elsif video_provider == "bilibili" %} - -{% endif %} -
+{% unless video_src == "" %} +
+ +
+{% endunless %} diff --git a/docs/_docs/14-helpers.md b/docs/_docs/14-helpers.md index 7002cd8c65f1..e7ff5a267352 100644 --- a/docs/_docs/14-helpers.md +++ b/docs/_docs/14-helpers.md @@ -179,6 +179,7 @@ Embed a video from YouTube, Vimeo, Google Drive, or bilibili that responsively s | ---------- | ------------ | ---------------------------------------------------------- | | `id` | **Required** | ID of the video | | `provider` | **Required** | Hosting provider of the video: `youtube`, `vimeo`, `google-drive`, or `bilibili` | +| `danmaku` | Optional | Bilibili only, [details below](#Bilibili) | ### YouTube @@ -240,6 +241,30 @@ header: provider: google-drive ``` +### Bilibili + +To embed the following Bilibili video at url `https://www.bilibili.com/video/BV1E7411e7hC` into a post or page's main content you'd use: + +```liquid +{% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" %}{% endraw %} +``` + +If you want to enable danmaku (弹幕) for the embeded video, which is disabled by default, you can supply an additional parameter `danmaku="1"` as shown below: + +```liquid +{% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" danmaku="1" %}{% endraw %} +``` + +To embed it as a video header you'd use the following YAML Front Matter: + +```yaml +header: + video: + id: BV1E7411e7hC + provider: bilibili + danmaku: 1 +``` + ## Table of contents Auto-generated table of contents list for your posts and pages can be enabled using two methods. diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index c526c18b9508..1d4ab77deec4 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-22T15:36:16-04:00 +last_modified_at: 2020-07-11T12:31:08+08:00 toc: false --- @@ -21,6 +21,7 @@ toc: false - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) +- Add `danmaku` option to Bilibili video provider and add corresponding documentation/ [#2599](https://github.com/mmistakes/minimal-mistakes/pull/2599) ## [4.19.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.3) From adb301096f3d58a21f1663b61c35b504c4b802ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Thu, 23 Jul 2020 03:44:25 +0800 Subject: [PATCH 121/317] Give H4 in notice some space from below (#2602) --- _sass/minimal-mistakes/_notices.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/_sass/minimal-mistakes/_notices.scss b/_sass/minimal-mistakes/_notices.scss index 8fb8f53f5e08..f87031b31bbb 100644 --- a/_sass/minimal-mistakes/_notices.scss +++ b/_sass/minimal-mistakes/_notices.scss @@ -23,6 +23,7 @@ h4 { margin-top: 0 !important; /* override*/ + line-height: inherit; margin-bottom: 0.75em; } From af7805a985e4abf330bc1f4f020993b6ee0d4712 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 22 Jul 2020 15:45:40 -0400 Subject: [PATCH 122/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7730eab4365c..4b4f26904ac1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Enhancements +- Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 1d4ab77deec4..626d1c97e5a6 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-11T12:31:08+08:00 +last_modified_at: 2020-07-22T15:45:31-04:00 toc: false --- @@ -17,6 +17,7 @@ toc: false ### Enhancements +- Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) From a0309bba05161ee9968ec9601604aedb91b756e3 Mon Sep 17 00:00:00 2001 From: Scott M <36738506+smanjo@users.noreply.github.com> Date: Wed, 22 Jul 2020 14:46:44 -0500 Subject: [PATCH 123/317] Fix config comment to list all analytics providers. (#2607) The main config was properly updated with the google-gtag feature commit (79d0b75683a4c13787b117e9e612073586fa21be), but was removed, possibly by bad merge, with an unrelated commit (bac26e96b21f846df6ede382e8c7ee4019564eab) two days later. The docs and test configs appear to have never received the initial google-gtag update. --- _config.yml | 2 +- docs/_config.yml | 2 +- test/_config.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index b38abd22ed15..92e645cc2546 100644 --- a/_config.yml +++ b/_config.yml @@ -85,7 +85,7 @@ social: # Analytics analytics: - provider : false # false (default), "google", "google-universal", "custom" + provider : false # false (default), "google", "google-universal", "google-gtag", "custom" google: tracking_id : anonymize_ip : # true, false (default) diff --git a/docs/_config.yml b/docs/_config.yml index ab2919dddd83..4d279fce1562 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -81,7 +81,7 @@ social: # Analytics analytics: - provider : "google-universal" # false (default), "google", "google-universal", "custom" + provider : "google-universal" # false (default), "google", "google-universal", "google-gtag", "custom" google: tracking_id : "UA-2011187-3" # Replace this with your ID, or delete anonymize_ip : true diff --git a/test/_config.yml b/test/_config.yml index 44515b53992c..a97378940dfc 100644 --- a/test/_config.yml +++ b/test/_config.yml @@ -75,7 +75,7 @@ social: # Analytics analytics: - provider : false # false (default), "google", "google-universal", "custom" + provider : false # false (default), "google", "google-universal", "google-gtag", "custom" google: tracking_id : From 8a60d43b12d45b134613b1304ea5c46f76412bd8 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 22 Jul 2020 15:47:29 -0400 Subject: [PATCH 124/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b4f26904ac1..5e21509c0af1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) ### Enhancements diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 626d1c97e5a6..cea74f3d24e4 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-22T15:45:31-04:00 +last_modified_at: 2020-07-22T15:47:17-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Bug Fixes +- Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) ### Enhancements From a89a015ce78d12d44dbd3c2805a0ba5c94e4cedb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Fri, 24 Jul 2020 00:09:36 +0800 Subject: [PATCH 125/317] Change tab indent to space for consistency (#2614) --- _sass/minimal-mistakes/_notices.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_sass/minimal-mistakes/_notices.scss b/_sass/minimal-mistakes/_notices.scss index f87031b31bbb..5c087ed5b5d2 100644 --- a/_sass/minimal-mistakes/_notices.scss +++ b/_sass/minimal-mistakes/_notices.scss @@ -23,8 +23,8 @@ h4 { margin-top: 0 !important; /* override*/ - line-height: inherit; margin-bottom: 0.75em; + line-height: inherit; } @at-root .page__content #{&} h4 { From be9a90fa0c6262f77fabcc9f2bde521eee5d7fd3 Mon Sep 17 00:00:00 2001 From: dianlujitao Date: Fri, 24 Jul 2020 00:11:03 +0800 Subject: [PATCH 126/317] Fix link for author name (#2575) Missed from bcd61266122892c2cdf3b5b85c12a71bf849d2fb --- _includes/author-profile.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/author-profile.html b/_includes/author-profile.html index bf8589deb1bf..d384ee734376 100644 --- a/_includes/author-profile.html +++ b/_includes/author-profile.html @@ -17,7 +17,7 @@
{% if author.home %} -

{{ author.name }}

+

{{ author.name }}

{% else %}

{{ author.name }}

{% endif %} From 16bacdcc373bf9d515f5465903741e0b13a9703b Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Thu, 23 Jul 2020 12:12:15 -0400 Subject: [PATCH 127/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e21509c0af1..afc339836df9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Add `relative_url` filter to author home link [#2575](https://github.com/mmistakes/minimal-mistakes/pull/2575) - Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index cea74f3d24e4..828e64c6c8f3 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-22T15:47:17-04:00 +last_modified_at:2020-07-23T12:12:07-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Bug Fixes +- Add `relative_url` filter to author home link [#2575](https://github.com/mmistakes/minimal-mistakes/pull/2575) - Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) From a0e33876774ab1a1a76c0eec50594f3e98168389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E4=B9=9D=E9=BC=8E?= <109224573@qq.com> Date: Fri, 24 Jul 2020 00:12:52 +0800 Subject: [PATCH 128/317] Update zh-cn (#2576) * Update zh-cn * Update ui-text.yml --- _data/ui-text.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index 3fef42bd1b9b..ae67507e2745 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -376,17 +376,17 @@ it-IT: # Chinese (zh-CN Chinese - China) # -------------------------------- zh: &DEFAULT_ZH_HANS - skip_links : - skip_primary_nav : - skip_content : - skip_footer : + skip_links : "跳转链接" + skip_primary_nav : "转到主导航栏" + skip_content : "转到内容" + skip_footer : "转到页脚" page : "页面" pagination_previous : "向前" pagination_next : "向后" breadcrumb_home_label : "首页" breadcrumb_separator : "/" menu_label : "切换菜单" - search_label : + search_label : "切换搜索" toc_label : "在本页上" ext_link_label : "直接链接" less_than : "少于" @@ -418,9 +418,9 @@ zh: &DEFAULT_ZH_HANS comment_success_msg : "感谢您的评论!被批准后它会立即在此站点展示。" comment_error_msg : "很抱歉,您的提交存在错误。请确保所有必填字段都已填写正确,然后再试一次。" loading_label : "正在加载..." - search_label_text : + search_label_text : "输入您要搜索的关键词..." search_placeholder_text : "输入您要搜索的关键词..." - search_algolia_no_results : + search_algolia_no_results : "无结果" results_found : "条记录匹配" back_to_top : "返回顶部" zh-CN: From bae1a2eb0d1a27c5ba8e0ad62f2fb3cd5dac9742 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Thu, 23 Jul 2020 12:14:05 -0400 Subject: [PATCH 129/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index afc339836df9..8edfe5a9578e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ### Enhancements +- Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 828e64c6c8f3..bc91ae4f9c38 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at:2020-07-23T12:12:07-04:00 +last_modified_at: 2020-07-23T12:13:57-04:00 toc: false --- @@ -19,6 +19,7 @@ toc: false ### Enhancements +- Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) From d5d38633225cdba2635e463fd045d3da97ce6f3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Fri, 24 Jul 2020 20:22:16 +0800 Subject: [PATCH 130/317] Use layout: none instead of null (#2617) * Use layout: none instead of null * Update CHANGELOG and history --- CHANGELOG.md | 1 + assets/js/lunr/lunr-en.js | 2 +- assets/js/lunr/lunr-gr.js | 2 +- assets/js/lunr/lunr-store.js | 2 +- docs/_docs/18-history.md | 3 ++- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8edfe5a9578e..9aca5b546b8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Add `relative_url` filter to author home link [#2575](https://github.com/mmistakes/minimal-mistakes/pull/2575) - Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) +- Fix broken Lunr search with Jekyll v4.1.0. [#2617](https://github.com/mmistakes/minimal-mistakes/pull/2617) ### Enhancements diff --git a/assets/js/lunr/lunr-en.js b/assets/js/lunr/lunr-en.js index 5a5814f338fa..43429309faf0 100644 --- a/assets/js/lunr/lunr-en.js +++ b/assets/js/lunr/lunr-en.js @@ -1,5 +1,5 @@ --- -layout: null +layout: none --- var idx = lunr(function () { diff --git a/assets/js/lunr/lunr-gr.js b/assets/js/lunr/lunr-gr.js index eb4daaef2394..10eb0e71cef4 100644 --- a/assets/js/lunr/lunr-gr.js +++ b/assets/js/lunr/lunr-gr.js @@ -1,5 +1,5 @@ --- -layout: null +layout: none --- step1list = new Array(); diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index 0f405ee92a4a..370d1448884c 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -1,5 +1,5 @@ --- -layout: null +layout: none --- var store = [ diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index bc91ae4f9c38..bd9ad3f3e43e 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-23T12:13:57-04:00 +last_modified_at: 2020-07-24T00:00:00+00:00 toc: false --- @@ -16,6 +16,7 @@ toc: false - Add `relative_url` filter to author home link [#2575](https://github.com/mmistakes/minimal-mistakes/pull/2575) - Fix `analytics.provider` config comment to list all analytics providers. [#2607](https://github.com/mmistakes/minimal-mistakes/pull/2607) - Fix typo in installation documentation. [#2570](https://github.com/mmistakes/minimal-mistakes/pull/2570) +- Fix broken Lunr search with Jekyll v4.1.0. [#2617](https://github.com/mmistakes/minimal-mistakes/pull/2617) ### Enhancements From 34ff24e31bf8640f7ef3eb8d5170ad3141aaa89f Mon Sep 17 00:00:00 2001 From: Juan Ara Date: Fri, 24 Jul 2020 21:53:21 +0200 Subject: [PATCH 131/317] Configure entries layout `list` or `grid` (#2616) * Configure entries layout `list` or `grid` This allows to use grid layout on `page.entries_layout` on the home layout. Included a break since when using grid the post images are too close to the horizontal line bellow `posts` text. There's a entries div now surrounding the posts since the first row of the grid was having a slight padding on the left. The home now behaves like posts/categories/tags pages with grid but including the paginator. For best results on desktop use `classes: wide` and `paginate: 4` on `_config.yml` (or multiples of 4 if you want more rows) * Fix indent * Archive subtitle leaves space on the bottom * Now space is added through style --- _layouts/home.html | 8 +++++--- _sass/minimal-mistakes/_archive.scss | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/_layouts/home.html b/_layouts/home.html index 8a49047ecae9..c3a9976842ac 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -12,8 +12,10 @@

{{ site.data.ui-text[site.locale].recent_posts | d {% assign posts = site.posts %} {% endif %} -{% for post in posts %} - {% include archive-single.html %} -{% endfor %} +
+ {% for post in posts %} + {% include archive-single.html type=page.entries_layout %} + {% endfor %} +
{% include paginator.html %} diff --git a/_sass/minimal-mistakes/_archive.scss b/_sass/minimal-mistakes/_archive.scss index 12fbf654214e..3df299614b00 100644 --- a/_sass/minimal-mistakes/_archive.scss +++ b/_sass/minimal-mistakes/_archive.scss @@ -32,7 +32,7 @@ } .archive__subtitle { - margin: 1.414em 0 0; + margin: 1.414em 0 0.5em; padding-bottom: 0.5em; font-size: $type-size-5; color: $muted-text-color; From 960d80dc6d3ff2e5061d69c96e6c85bc9999aaa7 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 24 Jul 2020 15:55:31 -0400 Subject: [PATCH 132/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aca5b546b8b..3188f85ef66c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Enhancements +- Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index bd9ad3f3e43e..b87cfc109ec8 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-24T00:00:00+00:00 +last_modified_at: 2020-07-24T15:55:22-04:00 toc: false --- @@ -20,6 +20,7 @@ toc: false ### Enhancements +- Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) From f099739f425382b84499f238af0034cdbf00a785 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 24 Jul 2020 16:00:37 -0400 Subject: [PATCH 133/317] Include documentation for home page grid view --- docs/_docs/10-layouts.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index f727137e28fc..7f9612121d66 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -7,7 +7,7 @@ single_layout_gallery: alt: "single layout with header example" - image_path: /assets/images/mm-layout-single-meta.png alt: "single layout with comments and related posts" -last_modified_at: 2020-03-06T15:47:42-05:00 +last_modified_at: 2020-07-24T16:00:21-04:00 toc: true toc_label: "Included Layouts" toc_icon: "columns" @@ -337,6 +337,10 @@ paginate_path: /blog/page:num **Note:** Jekyll can only paginate a single `index.html` file. If you'd like to paginate more pages (e.g. category indexes) you'll need the help of a custom plugin. For more pagination related settings check the [**Configuration**]({{ "/docs/configuration/#paginate" | relative_url }}) section. {: .notice--info} +Because `layout: home` is a variant of `layout: archive`, posts can be shown in list and grid views. See [grid view](#grid-view) documentation above for more details. + +**ProTip**: Combine `entries_layout: grid` with `classes: wide` to increase the width of the main container, giving more space to the grid items. + ## Splash page layout For full-width landing pages that need a little something extra add `layout: splash` to the YAML Front Matter. From 1f0b50044c058dbdf377867996ddc72c7fdfcf59 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 24 Jul 2020 16:06:32 -0400 Subject: [PATCH 134/317] Update 10-layouts.md --- docs/_docs/10-layouts.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 7f9612121d66..20d5be432123 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -337,9 +337,8 @@ paginate_path: /blog/page:num **Note:** Jekyll can only paginate a single `index.html` file. If you'd like to paginate more pages (e.g. category indexes) you'll need the help of a custom plugin. For more pagination related settings check the [**Configuration**]({{ "/docs/configuration/#paginate" | relative_url }}) section. {: .notice--info} -Because `layout: home` is a variant of `layout: archive`, posts can be shown in list and grid views. See [grid view](#grid-view) documentation above for more details. - -**ProTip**: Combine `entries_layout: grid` with `classes: wide` to increase the width of the main container, giving more space to the grid items. +**Note:** By default, documents are shown in a list view. To change to a grid view add `entries_layout: grid` to the page's front matter. To increase the width of the main container, giving more space to the grid items also add `classes: wide` to the home page's YAML Front Matter. +{: .notice--info} ## Splash page layout From 83b4dba2f08186314fea26051af6b2702258aff3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Wed, 29 Jul 2020 03:37:13 +0800 Subject: [PATCH 135/317] Update UI text for zh-CN and zh-TW (#2626) * Update UI text for zh-CN and zh-TW * Update CHANGELOG and history Not touching last_modified_at this time - it's messy enough --- CHANGELOG.md | 1 + _data/ui-text.yml | 29 ++++++++++++++++------------- docs/_docs/18-history.md | 1 + 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3188f85ef66c..fd8fa0db10b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) +- Improve Chinese translations. [#2626](https://github.com/mmistakes/minimal-mistakes/pull/2626) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index ae67507e2745..f9853e27427b 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -379,15 +379,15 @@ zh: &DEFAULT_ZH_HANS skip_links : "跳转链接" skip_primary_nav : "转到主导航栏" skip_content : "转到内容" - skip_footer : "转到页脚" + skip_footer : "转到底部" page : "页面" - pagination_previous : "向前" - pagination_next : "向后" + pagination_previous : "上一页" + pagination_next : "下一页" breadcrumb_home_label : "首页" breadcrumb_separator : "/" menu_label : "切换菜单" search_label : "切换搜索" - toc_label : "在本页上" + toc_label : "目录" ext_link_label : "直接链接" less_than : "少于" minute_read : "分钟阅读" @@ -430,16 +430,16 @@ zh-SG: # Taiwan (Traditional Chinese) zh-TW: &DEFAULT_ZH_HANT skip_links : - skip_primary_nav : - skip_content : - skip_footer : + skip_primary_nav : "轉至主導航欄" + skip_content : "轉至内容" + skip_footer : "轉至頁脚" page : "頁面" - pagination_previous : "較舊" - pagination_next : "較新" + pagination_previous : "前一頁" + pagination_next : "後一頁" breadcrumb_home_label : "首頁" breadcrumb_separator : "/" menu_label : "切換選單" - search_label : + search_label : "切換搜索" toc_label : "本頁" ext_link_label : "外部連結" less_than : "少於" @@ -462,7 +462,7 @@ zh-TW: &DEFAULT_ZH_HANT undefined_wpm : "_config.yml 中未定義 words_per_minute" comment_form_info : "您的電子信箱不會被公開. 必填部份已標記" comment_form_comment_label : "留言內容" - comment_form_md_info : "支援Markdown語法。" + comment_form_md_info : "支援 Markdown 語法。" comment_form_name_label : "名字" comment_form_email_label : "電子信箱帳號" comment_form_website_label : "網頁 (可選填)" @@ -471,8 +471,11 @@ zh-TW: &DEFAULT_ZH_HANT comment_success_msg : "感謝您的留言! 審核後將會顯示在站上。" comment_error_msg : "抱歉,部份資料輸入有問題。請確認資料填寫正確後再試一次。" loading_label : "載入中..." - search_label_text : - search_algolia_no_results : + search_label_text : "輸入您要搜索的關鍵詞..." + search_placeholder_text : "輸入您要搜索的關鍵詞..." + search_algolia_no_results : "沒有結果" + results_found : "條匹配的記錄" + back_to_top : "回到頂部" zh-HK: <<: *DEFAULT_ZH_HANT diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index b87cfc109ec8..fca1b982cb4b 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -22,6 +22,7 @@ toc: false - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) +- Improve Chinese translations. [#2626](https://github.com/mmistakes/minimal-mistakes/pull/2626) - Add `line-height` to `h4` element in notice helper. [#2602](https://github.com/mmistakes/minimal-mistakes/pull/2602) - Improve Algolia search. [#2572](https://github.com/mmistakes/minimal-mistakes/pull/2572) - Update link to wtfpl license in README. [#2571](https://github.com/mmistakes/minimal-mistakes/pull/2571) From a695d7728fa32317fe9b7de6daee1d70b9f8ab3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Tue, 4 Aug 2020 22:23:18 +0800 Subject: [PATCH 136/317] Update documentation for #2621 (#2624) * Update documentation for #2621 * Update CHANGELOG and history * Update last_modified_at --- CHANGELOG.md | 1 + docs/_docs/01-quick-start-guide.md | 18 +++++++++++------- docs/_docs/06-overriding-theme-defaults.md | 5 +++-- docs/_docs/18-history.md | 3 ++- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd8fa0db10b3..0d45aac54f67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) - Add `danmaku` option to Bilibili video provider and add corresponding documentation/ [#2599](https://github.com/mmistakes/minimal-mistakes/pull/2599) +- Update documentation about loading l10n data file from the theme-gem. [#2621](https://github.com/mmistakes/minimal-mistakes/issues/2621) [#2624](https://github.com/mmistakes/minimal-mistakes/pull/2624) ## [4.19.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.3) diff --git a/docs/_docs/01-quick-start-guide.md b/docs/_docs/01-quick-start-guide.md index 2a62f27a7d78..b4c6b0360a51 100644 --- a/docs/_docs/01-quick-start-guide.md +++ b/docs/_docs/01-quick-start-guide.md @@ -2,7 +2,7 @@ title: "Quick-Start Guide" permalink: /docs/quick-start-guide/ excerpt: "How to quickly install and setup Minimal Mistakes for use with GitHub Pages." -last_modified_at: 2020-04-27 +last_modified_at: 2020-07-27 redirect_from: - /theme-setup/ toc: true @@ -136,12 +136,17 @@ Depending on the path you took installing Minimal Mistakes you'll setup things a Starting with an empty folder and `Gemfile` you'll need to copy or re-create this [default `_config.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_config.yml) file. For a full explanation of every setting be sure to read the [**Configuration**]({{ "/docs/configuration/" | relative_url }}) section. -From `v4.5.0` onwards, Minimal Mistakes theme-gem comes bundled with the necessary data files and will automatically use them via the [`jekyll-data`](https://github.com/ashmaroli/jekyll-data) plugin. So you no longer need to maintain a copy of these data files at your project directory. +From `v4.5.0` onwards, Minimal Mistakes theme-gem comes bundled with the necessary data files for localization. +They will be picked up automatically if you have the [`jekyll-data`](https://github.com/ashmaroli/jekyll-data) plugin installed. +If you're hosting on GitHub Pages, you can copy the [`_data/ui-text.yml`][ui-text.yml] file into your repository for the localization feature to work. You'll need to create and edit these data files to customize them: -- [`_data/ui-text.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml) - UI text [documentation]({{ "/docs/ui-text/" | relative_url }}) -- [`_data/navigation.yml`](https://github.com/mmistakes/minimal-mistakes/blob/master/_data/navigation.yml) - navigation [documentation]({{ "/docs/navigation/" | relative_url }}) +- [`_data/ui-text.yml`][ui-text.yml] - UI text [documentation]({{ "/docs/ui-text/" | relative_url }}) +- [`_data/navigation.yml`][navigation.yml] - navigation [documentation]({{ "/docs/navigation/" | relative_url }}) + + [ui-text.yml]: https://github.com/mmistakes/minimal-mistakes/blob/master/_data/ui-text.yml + [navigation.yml]: https://github.com/mmistakes/minimal-mistakes/blob/master/_data/navigation.yml ### Starting from `jekyll new` @@ -174,8 +179,7 @@ You won't need these anymore as they're bundled with the theme gem --- unless yo **Note:** When clearing out the `assets` folder be sure to leave any files you've added and need. This includes images, CSS, or JavaScript that aren't already [bundled in the theme](https://github.com/mmistakes/minimal-mistakes/tree/master/assets). {: .notice--warning} -From `v4.5.0` onwards, you don't have to maintain a copy of the default data files viz. `_data/ui-text.yml` and `_data/navigation.yml` either. -The default files are read-in automatically via the [`jekyll-data`](https://github.com/ashmaroli/jekyll-data) plugin. +From `v4.5.0` onwards, the default language files are read-in automatically via the [`jekyll-data`](https://github.com/ashmaroli/jekyll-data) plugin if it's installed. For sites hosted with GitHub Pages, you still need to copy the [`_data/ui-text.yml`][ui-text.yml] file because the `jekyll-data` plugin [is unsupported on GitHub Pages](https://docs.github.com/en/github/working-with-github-pages/about-github-pages-and-jekyll#plugins). If you customized any of these files leave them alone, and only remove the untouched ones. If done correctly your modified versions should [override](https://jekyllrb.com/docs/themes/#overriding-theme-defaults) the versions bundled with the theme and be used by Jekyll instead. @@ -196,7 +200,7 @@ When finished your `Gemfile` should look something like this: ```ruby source "https://rubygems.org" -gem "jekyll", "~> 3.5" +gem "jekyll", "~> 3.7" gem "minimal-mistakes-jekyll" ``` diff --git a/docs/_docs/06-overriding-theme-defaults.md b/docs/_docs/06-overriding-theme-defaults.md index 2999fbc8e077..a4fa3f6f1cfa 100644 --- a/docs/_docs/06-overriding-theme-defaults.md +++ b/docs/_docs/06-overriding-theme-defaults.md @@ -2,7 +2,7 @@ title: "Overriding Theme Defaults" permalink: /docs/overriding-theme-defaults/ excerpt: "Instructions on how to customize the theme's default set of layouts, includes, and stylesheets when using the Ruby Gem version." -last_modified_at: 2018-03-20T15:59:31-04:00 +last_modified_at: 2020-07-27 --- When installing the theme as a Ruby Gem its layouts, includes, stylesheets, and other assets are all bundled in the `gem`. Meaning they're not easily visible in your project. @@ -21,7 +21,8 @@ Jekyll will use the files in your project first before falling back to the defau /_sass ``` -Additionally, from `v4.5.0` the theme-gem will also exhibit above behavior for `/_data` via a plugin. +Additionally, from `v4.5.0` onwards the theme-gem will also exhibit above behavior for `/_data` via a plugin. Consequently, the data files for UI Text and Navigation are also bundled within the theme-gem. +This doesn't apply if you're building your site on GitHub Pages, however. For more information on customizing the theme's [stylesheets]({{ "/docs/stylesheets/" | relative_url }}) and [JavaScript]({{ "/docs/javascript/" | relative_url }}), see the appropriate pages. diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index fca1b982cb4b..ae5b96b0b11b 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-24T15:55:22-04:00 +last_modified_at: 2020-07-27T12:00:00+08:00 toc: false --- @@ -29,6 +29,7 @@ toc: false - Ignore teaser headline in table of contents when including posts list in another page. [#2558](https://github.com/mmistakes/minimal-mistakes/pull/2558) - Replace Font Awesome Kits with CSS from jsDelivr CDN. [#2583](https://github.com/mmistakes/minimal-mistakes/pull/2583) - Add `danmaku` option to Bilibili video provider and add corresponding documentation/ [#2599](https://github.com/mmistakes/minimal-mistakes/pull/2599) +- Update documentation about loading l10n data file from the theme-gem. [#2621](https://github.com/mmistakes/minimal-mistakes/issues/2621) [#2624](https://github.com/mmistakes/minimal-mistakes/pull/2624) ## [4.19.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.3) From b093b52074573fced65b2b6677d57c29b05e3eef Mon Sep 17 00:00:00 2001 From: Andrey Kartashov Date: Tue, 4 Aug 2020 21:25:38 +0700 Subject: [PATCH 137/317] remove hidden posts from `/posts` (#2625) --- _layouts/posts.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_layouts/posts.html b/_layouts/posts.html index 76d25f9dda8e..95072ce0d402 100644 --- a/_layouts/posts.html +++ b/_layouts/posts.html @@ -5,7 +5,7 @@ {{ content }}
    - {% assign postsInYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %} + {% assign postsInYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %} {% for year in postsInYear %}
  • @@ -15,7 +15,7 @@ {% endfor %}
-{% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %} +{% assign postsByYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %} {% for year in postsByYear %}

{{ year.name }}

From 5d85bf19129d350b8d7e78c62dc9f0a00aabcd61 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 4 Aug 2020 10:26:29 -0400 Subject: [PATCH 138/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d45aac54f67..6af51a43220f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Enhancements +- Remove hidden posts from posts.html layout. [#2625](https://github.com/mmistakes/minimal-mistakes/pull/2625) - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Improve Chinese translations. [#2626](https://github.com/mmistakes/minimal-mistakes/pull/2626) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index ae5b96b0b11b..54064e4db6b6 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-07-27T12:00:00+08:00 +last_modified_at: 2020-08-04T10:26:21-04:00 toc: false --- @@ -20,6 +20,7 @@ toc: false ### Enhancements +- Remove hidden posts from posts.html layout. [#2625](https://github.com/mmistakes/minimal-mistakes/pull/2625) - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) - Improve Chinese translations. [#2626](https://github.com/mmistakes/minimal-mistakes/pull/2626) From f15e02ea58656bd6206e905f1c96d2f6a60f4081 Mon Sep 17 00:00:00 2001 From: Lim Jing Heng Date: Tue, 4 Aug 2020 22:39:01 +0800 Subject: [PATCH 139/317] Show date of posts (#2526) * add date to read-time.html * add option for show_date, dynamic icon style * change read-time to post__meta * cleanup post__metal.html * cleanup post__meta include variables * put date before read time * remove space in include variable * allow customisation of post__meta separator * add some documentation * oops fix typo derp * add post date image * change page meta separator customisation to CSS --- _includes/archive-single.html | 4 +- _includes/page__hero.html | 4 +- _includes/post__meta.html | 35 ++++++++++++++++++ _includes/read-time.html | 15 -------- _layouts/single.html | 4 +- _sass/minimal-mistakes/_page.scss | 6 +++ docs/_docs/05-configuration.md | 34 +++++++++++++++++ .../2012-01-02-layout-post-date-disabled.md | 18 +++++++++ docs/_posts/2012-01-02-layout-post-date.md | 18 +++++++++ docs/assets/images/mm-post-date-example.png | Bin 0 -> 57632 bytes .../2012-01-02-layout-post-date-disabled.md | 18 +++++++++ test/_posts/2012-01-02-layout-post-date.md | 18 +++++++++ 12 files changed, 150 insertions(+), 24 deletions(-) create mode 100644 _includes/post__meta.html delete mode 100644 _includes/read-time.html create mode 100644 docs/_posts/2012-01-02-layout-post-date-disabled.md create mode 100644 docs/_posts/2012-01-02-layout-post-date.md create mode 100644 docs/assets/images/mm-post-date-example.png create mode 100644 test/_posts/2012-01-02-layout-post-date-disabled.md create mode 100644 test/_posts/2012-01-02-layout-post-date.md diff --git a/_includes/archive-single.html b/_includes/archive-single.html index c262de1b27bd..ef4609987625 100644 --- a/_includes/archive-single.html +++ b/_includes/archive-single.html @@ -24,9 +24,7 @@

{{ title }} {% endif %}

- {% if post.read_time %} -

{% include read-time.html %}

- {% endif %} + {% include post__meta.html type=include.type %} {% if post.excerpt %}

{{ post.excerpt | markdownify | strip_html | truncate: 160 }}

{% endif %}

diff --git a/_includes/page__hero.html b/_includes/page__hero.html index 27fcaff771bd..8e477535c9ef 100644 --- a/_includes/page__hero.html +++ b/_includes/page__hero.html @@ -31,9 +31,7 @@

{% elsif page.header.show_overlay_excerpt != false and page.excerpt %}

{{ page.excerpt | markdownify | remove: "

" | remove: "

" }}

{% endif %} - {% if page.read_time %} -

{% include read-time.html %}

- {% endif %} + {% include post__meta.html %} {% if page.header.cta_url %}

{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}

{% endif %} diff --git a/_includes/post__meta.html b/_includes/post__meta.html new file mode 100644 index 000000000000..1ea81e5bbcba --- /dev/null +++ b/_includes/post__meta.html @@ -0,0 +1,35 @@ +{% assign page = post | default: page %} + +{% if page.read_time or page.show_date %} +

+ + {% if page.show_date %} + {% assign date = page.date %} + + + {% endif %} + + {% if page.read_time and page.show_date %} + {% if include.type == "grid" %} +
+ {% else %} + + {% endif %} + {% endif %} + + {% if page.read_time %} + {% assign words_per_minute = page.words_per_minute | default: site.words_per_minute | default: 200 %} + {% assign words = page.content | strip_html | number_of_words %} + + + {% if words < words_per_minute %} + {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% elsif words == words_per_minute %} + 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% else %} + {{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} + {% endif %} + {% endif %} + +

+{% endif %} \ No newline at end of file diff --git a/_includes/read-time.html b/_includes/read-time.html deleted file mode 100644 index 588574433c50..000000000000 --- a/_includes/read-time.html +++ /dev/null @@ -1,15 +0,0 @@ -{% assign words_per_minute = page.words_per_minute | default: site.words_per_minute | default: 200 %} - -{% if post.read_time %} - {% assign words = post.content | strip_html | number_of_words %} -{% elsif page.read_time %} - {% assign words = page.content | strip_html | number_of_words %} -{% endif %} - -{% if words < words_per_minute %} - {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} -{% elsif words == words_per_minute %} - 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} -{% else %} - {{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }} -{% endif %} diff --git a/_layouts/single.html b/_layouts/single.html index c58eca02330f..7116d72d688b 100644 --- a/_layouts/single.html +++ b/_layouts/single.html @@ -27,9 +27,7 @@ {% unless page.header.overlay_color or page.header.overlay_image %}
{% if page.title %}

{{ page.title | markdownify | remove: "

" | remove: "

" }}

{% endif %} - {% if page.read_time %} -

{% include read-time.html %}

- {% endif %} + {% include post__meta.html %}
{% endunless %} diff --git a/_sass/minimal-mistakes/_page.scss b/_sass/minimal-mistakes/_page.scss index 458733a3ae53..c4bf8ae76b73 100644 --- a/_sass/minimal-mistakes/_page.scss +++ b/_sass/minimal-mistakes/_page.scss @@ -299,6 +299,12 @@ body { text-transform: uppercase; } +.post__meta-sep::before { + content: "\2022"; + padding-left: 0.5em; + padding-right: 0.5em; +} + /* Page taxonomy ========================================================================== */ diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 4ad70aaa30e8..d162dc314313 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -265,6 +265,26 @@ breadcrumbs: true # disabled by default Breadcrumb start link text and separator character can both be changed in the [UI Text data file]({{ "/docs/ui-text/" | relative_url }}). +### Post dates + +Enable post date snippets with `show_date: true` in YAML Front Matter. + +![post date example]({{ "/assets/images/mm-post-date-example.png" | relative_url }}) + +Instead of adding `show_date: true` to each post, apply as a default in `_config.yml` like so: + +```yaml +defaults: + # _posts + - scope: + path: "" + type: posts + values: + show_date: true +``` + +To disable post date for a post, add `show_date: false` its YAML Front Matter to override what was set in `_config.yml`. + ### Reading time Enable estimated reading time snippets with `read_time: true` in YAML Front Matter. `200` has been set as the default words per minute value --- which can be changed by adjusting `words_per_minute:` in `_config.yml`. @@ -291,6 +311,20 @@ To disable reading time for a post, add `read_time: false` its YAML Front Matter words_per_minute: 250 ``` +### Post meta separator + +To customise the separator between the post date and reading time (if both are enabled), edit ```.post__meta-sep::before``` in a [custom stylesheet]({{ "/docs/stylesheets/" | relative_url }}). + +For example, + +```css +.post__meta-sep::before { + content: "\2022"; + padding-left: 0.5em; + padding-right: 0.5em; +} +``` + ### Comments [**Disqus**](https://disqus.com/), [**Discourse**](https://www.discourse.org/), [**Facebook**](https://developers.facebook.com/docs/plugins/comments), [**utterances**](https://utteranc.es/), and static-based commenting via [**Staticman**](https://staticman.net/) are built into the theme. First set the comment provider you'd like to use: diff --git a/docs/_posts/2012-01-02-layout-post-date-disabled.md b/docs/_posts/2012-01-02-layout-post-date-disabled.md new file mode 100644 index 000000000000..77f2c3387320 --- /dev/null +++ b/docs/_posts/2012-01-02-layout-post-date-disabled.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Post Date Disabled" +show_date: false +tags: + - post date +--- + +This post has reading time disabled. The estimated time that it takes to read this post should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file diff --git a/docs/_posts/2012-01-02-layout-post-date.md b/docs/_posts/2012-01-02-layout-post-date.md new file mode 100644 index 000000000000..b2fc747cfdc7 --- /dev/null +++ b/docs/_posts/2012-01-02-layout-post-date.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Post Date Enabled" +show_date: true +tags: + - post date +--- + +This post has reading time enabled. The estimated time that it takes to read this post should show if also enabled in `_config.yml` with `show_date: true`. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file diff --git a/docs/assets/images/mm-post-date-example.png b/docs/assets/images/mm-post-date-example.png new file mode 100644 index 0000000000000000000000000000000000000000..a209b97dc1c01b3a74aa47c803326656e8e00744 GIT binary patch literal 57632 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 literal 0 HcmV?d00001 diff --git a/test/_posts/2012-01-02-layout-post-date-disabled.md b/test/_posts/2012-01-02-layout-post-date-disabled.md new file mode 100644 index 000000000000..77f2c3387320 --- /dev/null +++ b/test/_posts/2012-01-02-layout-post-date-disabled.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Post Date Disabled" +show_date: false +tags: + - post date +--- + +This post has reading time disabled. The estimated time that it takes to read this post should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file diff --git a/test/_posts/2012-01-02-layout-post-date.md b/test/_posts/2012-01-02-layout-post-date.md new file mode 100644 index 000000000000..b2fc747cfdc7 --- /dev/null +++ b/test/_posts/2012-01-02-layout-post-date.md @@ -0,0 +1,18 @@ +--- +title: "Layout: Post Date Enabled" +show_date: true +tags: + - post date +--- + +This post has reading time enabled. The estimated time that it takes to read this post should show if also enabled in `_config.yml` with `show_date: true`. + +If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. + +I don't know whether you have ever seen a map of a person's mind. Doctors sometimes draw maps of other parts of you, and your own map can become intensely interesting, but catch them trying to draw a map of a child's mind, which is not only confused, but keeps going round all the time. There are zigzag lines on it, just like your temperature on a card, and these are probably roads in the island, for the Neverland is always more or less an island, with astonishing splashes of colour here and there, and coral reefs and rakish-looking craft in the offing, and savages and lonely lairs, and gnomes who are mostly tailors, and caves through which a river runs, and princes with six elder brothers, and a hut fast going to decay, and one very small old lady with a hooked nose. It would be an easy map if that were all, but there is also first day at school, religion, fathers, the round pond, needle-work, murders, hangings, verbs that take the dative, chocolate pudding day, getting into braces, say ninety-nine, three-pence for pulling out your tooth yourself, and so on, and either these are part of the island or they are another map showing through, and it is all rather confusing, especially as nothing will stand still. + +Of course the Neverlands vary a good deal. John's, for instance, had a lagoon with flamingoes flying over it at which John was shooting, while Michael, who was very small, had a flamingo with lagoons flying over it. John lived in a boat turned upside down on the sands, Michael in a wigwam, Wendy in a house of leaves deftly sewn together. John had no friends, Michael had friends at night, Wendy had a pet wolf forsaken by its parents, but on the whole the Neverlands have a family resemblance, and if they stood still in a row you could say of them that they have each other's nose, and so forth. On these magic shores children at play are for ever beaching their coracles [simple boat]. We too have been there; we can still hear the sound of the surf, though we shall land no more. + +Of all delectable islands the Neverland is the snuggest and most compact, not large and sprawly, you know, with tedious distances between one adventure and another, but nicely crammed. When you play at it by day with the chairs and table-cloth, it is not in the least alarming, but in the two minutes before you go to sleep it becomes very real. That is why there are night-lights. + +Occasionally in her travels through her children's minds Mrs. Darling found things she could not understand, and of these quite the most perplexing was the word Peter. She knew of no Peter, and yet he was here and there in John and Michael's minds, while Wendy's began to be scrawled all over with him. The name stood out in bolder letters than any of the other words, and as Mrs. Darling gazed she felt that it had an oddly cocky appearance. \ No newline at end of file From eb31e33365805c97723d6607875386b749f5f5fe Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 4 Aug 2020 10:48:44 -0400 Subject: [PATCH 140/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6af51a43220f..bce06e4de747 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Enhancements +- Add an optional date alongside the reading time. To enable set `show_date: true` similar to how reading time is. [#2526](https://github.com/mmistakes/minimal-mistakes/pull/2526) - Remove hidden posts from posts.html layout. [#2625](https://github.com/mmistakes/minimal-mistakes/pull/2625) - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 54064e4db6b6..8f3d83534c66 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-08-04T10:26:21-04:00 +last_modified_at: 2020-08-04T10:48:30-04:00 toc: false --- @@ -20,6 +20,7 @@ toc: false ### Enhancements +- Add an optional date alongside the reading time. To enable set `show_date: true` similar to how reading time is. [#2526](https://github.com/mmistakes/minimal-mistakes/pull/2526) - Remove hidden posts from posts.html layout. [#2625](https://github.com/mmistakes/minimal-mistakes/pull/2625) - Add entry layout configuration for `list` (default) or `grid` views on `layout: home`. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616) - Add missing Chinese translations. [#2576](https://github.com/mmistakes/minimal-mistakes/pull/2576) From e4fbcf73837ad262bbe68b5c4226652804cf479e Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 4 Aug 2020 10:52:49 -0400 Subject: [PATCH 141/317] Fix grammar --- docs/_docs/05-configuration.md | 4 ++-- docs/_posts/2012-01-02-layout-post-date-disabled.md | 2 +- docs/_posts/2012-01-02-layout-post-date.md | 2 +- test/_posts/2012-01-02-layout-post-date-disabled.md | 2 +- test/_posts/2012-01-02-layout-post-date.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index d162dc314313..038222d7eb81 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -2,7 +2,7 @@ title: "Configuration" permalink: /docs/configuration/ excerpt: "Settings for configuring and customizing the theme." -last_modified_at: 2019-10-04T10:54:48-04:00 +last_modified_at: 2020-08-04T10:49:57-04:00 toc: true --- @@ -283,7 +283,7 @@ defaults: show_date: true ``` -To disable post date for a post, add `show_date: false` its YAML Front Matter to override what was set in `_config.yml`. +To disable post date for a post, add `show_date: false` to its YAML Front Matter, overriding what was set in `_config.yml`. ### Reading time diff --git a/docs/_posts/2012-01-02-layout-post-date-disabled.md b/docs/_posts/2012-01-02-layout-post-date-disabled.md index 77f2c3387320..a10a3e4648eb 100644 --- a/docs/_posts/2012-01-02-layout-post-date-disabled.md +++ b/docs/_posts/2012-01-02-layout-post-date-disabled.md @@ -5,7 +5,7 @@ tags: - post date --- -This post has reading time disabled. The estimated time that it takes to read this post should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. +This post has the date disabled. The date this post was published should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. diff --git a/docs/_posts/2012-01-02-layout-post-date.md b/docs/_posts/2012-01-02-layout-post-date.md index b2fc747cfdc7..b31c9a275b5c 100644 --- a/docs/_posts/2012-01-02-layout-post-date.md +++ b/docs/_posts/2012-01-02-layout-post-date.md @@ -5,7 +5,7 @@ tags: - post date --- -This post has reading time enabled. The estimated time that it takes to read this post should show if also enabled in `_config.yml` with `show_date: true`. +This post has post date enabled. The date the post was published should show if `show_date: true` is added to it's YAML Front Matter or as a default in `_config.yml`. If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. diff --git a/test/_posts/2012-01-02-layout-post-date-disabled.md b/test/_posts/2012-01-02-layout-post-date-disabled.md index 77f2c3387320..a10a3e4648eb 100644 --- a/test/_posts/2012-01-02-layout-post-date-disabled.md +++ b/test/_posts/2012-01-02-layout-post-date-disabled.md @@ -5,7 +5,7 @@ tags: - post date --- -This post has reading time disabled. The estimated time that it takes to read this post should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. +This post has the date disabled. The date this post was published should not be showing if `show_date: false` is set in `_config.yml` or in this post's YAML Front Matter. If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. diff --git a/test/_posts/2012-01-02-layout-post-date.md b/test/_posts/2012-01-02-layout-post-date.md index b2fc747cfdc7..b31c9a275b5c 100644 --- a/test/_posts/2012-01-02-layout-post-date.md +++ b/test/_posts/2012-01-02-layout-post-date.md @@ -5,7 +5,7 @@ tags: - post date --- -This post has reading time enabled. The estimated time that it takes to read this post should show if also enabled in `_config.yml` with `show_date: true`. +This post has post date enabled. The date the post was published should show if `show_date: true` is added to it's YAML Front Matter or as a default in `_config.yml`. If you could keep awake (but of course you can't) you would see your own mother doing this, and you would find it very interesting to watch her. It is quite like tidying up drawers. You would see her on her knees, I expect, lingering humorously over some of your contents, wondering where on earth you had picked this thing up, making discoveries sweet and not so sweet, pressing this to her cheek as if it were as nice as a kitten, and hurriedly stowing that out of sight. When you wake in the morning, the naughtiness and evil passions with which you went to bed have been folded up small and placed at the bottom of your mind and on the top, beautifully aired, are spread out your prettier thoughts, ready for you to put on. From 6d1aea573c739d454699320aa2679c449d0b69c2 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 4 Aug 2020 11:12:05 -0400 Subject: [PATCH 142/317] Remove extra back ticks --- docs/_docs/05-configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 038222d7eb81..1043936700f2 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -2,7 +2,7 @@ title: "Configuration" permalink: /docs/configuration/ excerpt: "Settings for configuring and customizing the theme." -last_modified_at: 2020-08-04T10:49:57-04:00 +last_modified_at: 2020-08-04T11:11:59-04:00 toc: true --- @@ -313,7 +313,7 @@ words_per_minute: 250 ### Post meta separator -To customise the separator between the post date and reading time (if both are enabled), edit ```.post__meta-sep::before``` in a [custom stylesheet]({{ "/docs/stylesheets/" | relative_url }}). +To customise the separator between the post date and reading time (if both are enabled), edit `.post__meta-sep::before` in a [custom stylesheet]({{ "/docs/stylesheets/" | relative_url }}). For example, From cb18aaa7a0e64d6dbc153220e2f5a3aba26918a2 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 4 Aug 2020 11:18:04 -0400 Subject: [PATCH 143/317] =?UTF-8?q?Release=204.20.0=20=F0=9F=92=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- README.md | 2 +- _layouts/default.html | 2 +- _sass/minimal-mistakes.scss | 2 +- assets/js/main.min.js | 2 +- docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/04-upgrading.md | 6 +++--- docs/_docs/18-history.md | 4 ++-- docs/_layouts/default.html | 2 +- docs/_pages/home.md | 2 +- minimal-mistakes-jekyll.gemspec | 2 +- package.json | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bce06e4de747..bd1180b42814 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## [4.20.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.0) ### Bug Fixes diff --git a/README.md b/README.md index 88654b6f6f86..47b1c62c1612 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ To install: bundle ``` -4. Add `remote_theme: "mmistakes/minimal-mistakes@4.19.3"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. +4. Add `remote_theme: "mmistakes/minimal-mistakes@4.20.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. **Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed. diff --git a/_layouts/default.html b/_layouts/default.html index 52b091f1e7ff..5c64b396301c 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ diff --git a/_sass/minimal-mistakes.scss b/_sass/minimal-mistakes.scss index 25f739d0460e..7c69bb2759df 100644 --- a/_sass/minimal-mistakes.scss +++ b/_sass/minimal-mistakes.scss @@ -1,6 +1,6 @@ /*! * Minimal Mistakes Jekyll Theme 4.20.1 by Michael Rose - * Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes + * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE) */ From e21035e62d32ddc1dfff076f7f45b19c1f29f7ae Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Sun, 30 Aug 2020 21:25:30 -0400 Subject: [PATCH 160/317] Fix typo Close #2678 --- CHANGELOG.md | 1 + docs/_docs/10-layouts.md | 4 ++-- docs/_docs/18-history.md | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f74b2748bba..7010124d2d3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Fix typo in documentation. [#2678](https://github.com/mmistakes/minimal-mistakes/issues/2678) - Remove duplicate CSS definitions. [#2666](https://github.com/mmistakes/minimal-mistakes/pull/2666) - Fix `entries_layout: grid` in various layouts. [#2639](https://github.com/mmistakes/minimal-mistakes/issues/2639) - Change `fa` to `fas` for Font Awesome 5. [#2649](https://github.com/mmistakes/minimal-mistakes/pull/2649) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 20d5be432123..216743359883 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -7,7 +7,7 @@ single_layout_gallery: alt: "single layout with header example" - image_path: /assets/images/mm-layout-single-meta.png alt: "single layout with comments and related posts" -last_modified_at: 2020-07-24T16:00:21-04:00 +last_modified_at: 2020-08-30T21:24:15-04:00 toc: true toc_label: "Included Layouts" toc_icon: "columns" @@ -625,7 +625,7 @@ To create a sidebar menu[^sidebar-menu] similar to the one found in the theme's
Custom sidebar navigation menu example.
-To start, add a new key to `_data/navigation.yml`. This will be referenced later in via YAML Front Matter so keep it short and memorable. In the case of the theme's documentation menu I used `docs`. +To start, add a new key to `_data/navigation.yml`. This will be referenced later via YAML Front Matter so keep it short and memorable. In the case of the theme's documentation menu I used `docs`. **Sample sidebar menu links:** diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 6cb716987012..96ed10dec0a7 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,12 +5,15 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-08-30T20:53:08-04:00 +last_modified_at: 2020-08-30T21:25:24-04:00 toc: false --- ## Unreleased +## Bug Fixes + +- Fix typo in documentation. [#2678](https://github.com/mmistakes/minimal-mistakes/issues/2678) - Remove duplicate CSS definitions. [#2666](https://github.com/mmistakes/minimal-mistakes/pull/2666) - Fix `entries_layout: grid` in various layouts. [#2639](https://github.com/mmistakes/minimal-mistakes/issues/2639) - Change `fa` to `fas` for Font Awesome 5. [#2649](https://github.com/mmistakes/minimal-mistakes/pull/2649) From 8bec01b76dbb94d54ffd36fbb01841892ce37190 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Sun, 30 Aug 2020 21:28:31 -0400 Subject: [PATCH 161/317] Fix broken link in documentation Close #2677 --- CHANGELOG.md | 1 + docs/_docs/10-layouts.md | 4 ++-- docs/_docs/18-history.md | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7010124d2d3c..b3ecb3aa2759 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Fix broken link in documentation. [#2677](https://github.com/mmistakes/minimal-mistakes/issues/2677) - Fix typo in documentation. [#2678](https://github.com/mmistakes/minimal-mistakes/issues/2678) - Remove duplicate CSS definitions. [#2666](https://github.com/mmistakes/minimal-mistakes/pull/2666) - Fix `entries_layout: grid` in various layouts. [#2639](https://github.com/mmistakes/minimal-mistakes/issues/2639) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 216743359883..458f169d16c1 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -7,7 +7,7 @@ single_layout_gallery: alt: "single layout with header example" - image_path: /assets/images/mm-layout-single-meta.png alt: "single layout with comments and related posts" -last_modified_at: 2020-08-30T21:24:15-04:00 +last_modified_at: 2020-08-30T21:27:40-04:00 toc: true toc_label: "Included Layouts" toc_icon: "columns" @@ -224,7 +224,7 @@ If you're not using the `jekyll-archives` plugin then you need to create archive | [Category Archive](https://mmistakes.github.io/minimal-mistakes/categories/edge-case/) | `layout: category` | [edge-case.md](https://github.com/mmistakes/minimal-mistakes/blob/master/docs/_pages/edge-case.md) | | [Tags Archive](https://mmistakes.github.io/minimal-mistakes/tags/) | `layout: tags` | [tag-archive.md](https://github.com/mmistakes/minimal-mistakes/blob/master/docs/_pages/tag-archive.md) | | [Tag Archive](https://mmistakes.github.io/minimal-mistakes/tags/markup/) | `layout: tag` | [markup.md](https://github.com/mmistakes/minimal-mistakes/blob/master/docs/_pages/markup.md) | -| [Collection Archive](https://mmistakes.github.io/minimal-mistakes/recipes-archive/) | `layout: collection` | [recipes-archive.md](https://github.com/mmistakes/minimal-mistakes/blob/master/docs/_pages/recipes-archive.md) | +| [Collection Archive](https://mmistakes.github.io/minimal-mistakes/recipes/) | `layout: collection` | [recipes-archive.md](https://github.com/mmistakes/minimal-mistakes/blob/master/docs/_pages/recipes-archive.md) | **Note:** By default, documents are shown in a list view. To change to a grid view add `entries_layout: grid` to the page's front matter. {: .notice--info} diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 96ed10dec0a7..d0e2f35802be 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-08-30T21:25:24-04:00 +last_modified_at: 2020-08-30T21:28:27-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ## Bug Fixes +- Fix broken link in documentation. [#2677](https://github.com/mmistakes/minimal-mistakes/issues/2677) - Fix typo in documentation. [#2678](https://github.com/mmistakes/minimal-mistakes/issues/2678) - Remove duplicate CSS definitions. [#2666](https://github.com/mmistakes/minimal-mistakes/pull/2666) - Fix `entries_layout: grid` in various layouts. [#2639](https://github.com/mmistakes/minimal-mistakes/issues/2639) From 526445bffe16c1975b02aba8b5c8e952a6bf81cc Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 7 Sep 2020 10:07:29 -0400 Subject: [PATCH 162/317] =?UTF-8?q?Release=204.20.2=20=F0=9F=92=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- README.md | 2 +- _layouts/default.html | 2 +- _sass/minimal-mistakes.scss | 2 +- assets/js/main.min.js | 7 +++++-- docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/04-upgrading.md | 6 +++--- docs/_docs/18-history.md | 4 ++-- docs/_layouts/default.html | 2 +- docs/_pages/home.md | 2 +- minimal-mistakes-jekyll.gemspec | 2 +- package.json | 2 +- 12 files changed, 19 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3ecb3aa2759..95e6ae2a806d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) ### Bug Fixes diff --git a/README.md b/README.md index 2757638ce8bd..d7a12b51054b 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ To install: bundle ``` -4. Add `remote_theme: "mmistakes/minimal-mistakes@4.20.1"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. +4. Add `remote_theme: "mmistakes/minimal-mistakes@4.20.2"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. **Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed. diff --git a/_layouts/default.html b/_layouts/default.html index 3c958d24921a..0e25dc7cd87f 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ + {% if include.submenu_class and previousLevel > indentAmount %} + + {% assign submenuIndentation = space | prepend: ' ' %} + + {% capture my_toc %}{{ my_toc }} +{{ submenuIndentation }}{:.{{ include.submenu_class | replace: '%level%', previousLevel }}}{% endcapture %} + {% endif %} - {% capture heading_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} {% capture my_toc %}{{ my_toc }} -{{ space }}{{ listModifier }} {{ listItemClass }} [{{ heading_body | replace: "|", "\|" }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %} +{{ space }}{{ listModifier }} {{ listItemClass }} {{ list_item }}{% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %} + + {% assign previousLevel = indentAmount %} {% endfor %} - {% if include.class %} + {% if include.class and include.class != blank %} {% capture my_toc %}{:.{{ include.class }}} {{ my_toc | lstrip }}{% endcapture %} {% endif %} @@ -93,4 +148,23 @@ {% capture my_toc %}{: #{{ include.id }}} {{ my_toc | lstrip }}{% endcapture %} {% endif %} + + + {% if include.submenu_class != blank %} + + {% for i in (1..previousLevel) %} + {% assign lvl = previousLevel | plus: 1 | minus: i %} + {% assign closingSpace = '' %} + + {% for i in (1..lvl) %} + {% assign closingSpace = closingSpace | prepend: ' ' %} + {% endfor %} + + {% capture my_toc %}{{ my_toc }} +{{ closingSpace }}{:.{{ include.submenu_class | replace: '%level%', lvl }}}{% endcapture %} + {% endfor %} + {% endif %} {% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }} From d6444412c63aea5e47241ef536509fb1bfef4830 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?iBug=20=E2=99=A6?= Date: Mon, 21 Sep 2020 22:28:18 +0800 Subject: [PATCH 165/317] Fix dead link to "CI services" Jekyll (#2692) * Fix #2635 * Update CHANGELOG and history --- CHANGELOG.md | 6 ++++++ docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/18-history.md | 8 +++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 95e6ae2a806d..05f941d14ffa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## Unreleased + +### Bug Fixes + +- Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) + ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) ### Bug Fixes diff --git a/docs/_docs/01-quick-start-guide.md b/docs/_docs/01-quick-start-guide.md index 84c891610481..b4484abd7017 100644 --- a/docs/_docs/01-quick-start-guide.md +++ b/docs/_docs/01-quick-start-guide.md @@ -105,7 +105,7 @@ To do so fork the [Minimal Mistakes theme](https://github.com/mmistakes/minimal- [netlify-jekyll]: https://www.netlify.com/blog/2015/10/28/a-step-by-step-guide-jekyll-3.0-on-netlify/ [gitlab-jekyll]: https://about.gitlab.com/2016/04/07/gitlab-pages-setup/ -[ci-jekyll]: https://jekyllrb.com/docs/continuous-integration/ +[ci-jekyll]: https://jekyllrb.com/docs/deployment/automated/#continuous-integration-service ### Remove the Unnecessary diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 4c91d67d6c5c..4cd485a34144 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -9,9 +9,15 @@ last_modified_at: 2020-09-07T10:03:41-04:00 toc: false --- +## Unreleased + +### Bug Fixes + +- Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) + ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) -## Bug Fixes +### Bug Fixes - Fix broken link in documentation. [#2677](https://github.com/mmistakes/minimal-mistakes/issues/2677) - Fix typo in documentation. [#2678](https://github.com/mmistakes/minimal-mistakes/issues/2678) From 052f3f786fb6df00f37f08ea81b175e320ef022d Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 23 Oct 2020 13:37:42 -0400 Subject: [PATCH 166/317] Update README.md --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d7a12b51054b..24af71c6dbdb 100644 --- a/README.md +++ b/README.md @@ -138,11 +138,9 @@ For detailed instructions on how to configure, customize, add/migrate content, a ## Contributing -Having trouble working with the theme? Found a typo in the documentation? Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. +Found a typo in the documentation or interested in [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. -Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or submitting pull requests. If it's not something that most people will use, I probably won't consider it. When in doubt ask. - -This goes for author sidebar links and "share button" additions -- I have no intention of merging in every possibly option, the essentials are there to get you started :smile:. +For help with using the theme or general Jekyll support questions, please use the [Jekyll Talk forums](https://talk.jekyllrb.com/). ### Pull Requests From 187752b67391f86f11bda7b05eab8690455f2711 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 23 Oct 2020 13:39:22 -0400 Subject: [PATCH 167/317] Update CONTRIBUTING.md --- .github/CONTRIBUTING.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 5b9b83063bee..847b69e8c5a9 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,11 +1,8 @@ # Contributing -Having trouble working with the theme? Found a typo in the documentation? -Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? -Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) -or [pull request](https://help.github.com/articles/using-pull-requests/). -If this is your first pull request, it may be helpful to read up on the -[GitHub Flow](https://guides.github.com/introduction/flow/) first. +Found a typo in the documentation or interested in [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first. + +For help with using the theme or general Jekyll support questions, please use the [Jekyll Talk forums](https://talk.jekyllrb.com/). Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or From 50bd68e6d02a6efaf2f75f1be5fec132bfe7b119 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 28 Oct 2020 09:20:07 -0400 Subject: [PATCH 168/317] Update stale.yml --- .github/stale.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/stale.yml b/.github/stale.yml index 3aa2e79c6e77..2d8120fa3799 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -6,6 +6,7 @@ daysUntilClose: 7 exemptLabels: - "Status: Accepted" - "Status: Under Consideration" + - "Status: Review Needed" # Label to use when marking an issue as stale staleLabel: "Status: Stale" # Comment to post when marking an issue as stale. Set to `false` to disable From c2c05b9b6754af37cea662870836f3f8680dafa8 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 28 Oct 2020 11:43:09 -0700 Subject: [PATCH 169/317] Fix closing tag of figures without captions in lists (#2697) When the figure helper is used in a list, which can be either ordered or unordered, and no caption is specified, a line with text "" will be shown below the figure on the rendered page. This is because, if the '{% if include.caption %}' evaluates to false, the lines between that 'if' statement and '{% endif %}' will be emptied, not removed, so the block will be filled by empty lines. HTML ignores redundant empty lines, but Markdown takes them seriously. In addition, Markdown expects proper indentation of lines inside lists, and the closing '' tag is not indented. When combined, the empty space and absence of indentation cause Markdown to process the '' tag as a separate paragraph instead of an HTML tag, thus the text for the tag is directly rendered on the page. The fix for this issue is very simple: remove the empty space when 'include.caption' is false. As described in , this can be done by adding hyphens to the 'if' and 'endif' tags. --- _includes/figure | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_includes/figure b/_includes/figure index f1ce1ebcc110..dacc668d1006 100644 --- a/_includes/figure +++ b/_includes/figure @@ -1,9 +1,9 @@
{% if include.alt %}{{ include.alt }}{% endif %} - {% if include.caption %} + {%- if include.caption -%}
{{ include.caption | markdownify | remove: "

" | remove: "

" }}
- {% endif %} + {%- endif -%}
From 4488d4cf2bfd073e68e7f394f3f535c2767fda3a Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 28 Oct 2020 14:45:24 -0400 Subject: [PATCH 170/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f941d14ffa..09b07b10d8e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 4cd485a34144..f3102f2ab77d 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-09-07T10:03:41-04:00 +last_modified_at: 2020-10-28T14:45:02-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Bug Fixes +- Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) From f75d8e552c5f6a6089b185ee976abf78c7fab467 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 28 Oct 2020 14:50:18 -0400 Subject: [PATCH 171/317] Update CHANGELOG and history --- CHANGELOG.md | 4 ++++ docs/_docs/18-history.md | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09b07b10d8e1..f1dcfd3c9d37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) +## Enhancements + +- Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) + ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) ### Bug Fixes diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index f3102f2ab77d..49df8cb94a1e 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-10-28T14:45:02-04:00 +last_modified_at: 2020-10-28T14:50:08-04:00 toc: false --- @@ -16,6 +16,10 @@ toc: false - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) +## Enhancements + +- Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) + ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) ### Bug Fixes From b69acb674355d3374b56715645de9e4251280e97 Mon Sep 17 00:00:00 2001 From: Kai A Date: Wed, 28 Oct 2020 19:50:55 +0100 Subject: [PATCH 172/317] Norwegian translation (#2702) --- _data/ui-text.yml | 55 ++++++++++++++++++++++++++++++++++++++++ docs/_docs/08-ui-text.md | 1 + 2 files changed, 56 insertions(+) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index f9853e27427b..d6dd1fcfb84a 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -1794,6 +1794,61 @@ my: &DEFAULT_MY my-MM: <<: *DEFAULT_MY +# Norwegian +# ------- +no: &DEFAULT_NO + skip_links : "Hopp over lenker" + skip_primary_nav : "Gå til primærnavigasjon" + skip_content : "Gå til innhold" + skip_footer : "Gå til fotnote" + page : "Side" + pagination_previous : "Forrige" + pagination_next : "Neste" + breadcrumb_home_label : "Hjem" + breadcrumb_separator : "/" + menu_label : "Vis/skjul meny" + search_label : "Vis/skjul søk" + toc_label : "På denne siden" + ext_link_label : "Direkte lenke" + less_than : "mindre enn" + minute_read : "minutters lesing" + share_on_label : "Del på" + meta_label : + tags_label : "Nøkkelord:" + categories_label : "Kategorier:" + date_label : "Oppdatert:" + comments_label : "Skriv en kommentar" + comments_title : "Kommentarer" + more_label : "Lær mer" + related_label : "Du vil kanskje også lese:" + follow_label : "Følg:" + feed_label : "Feed" + powered_by : "Lagd med" + website_label : "Nettside" + email_label : "E-post" + recent_posts : "Nyeste innlegg" + undefined_wpm : "Parameteret words_per_minute er ikke definert i _config.yml" + comment_form_info : "Din e-postadresse vil ikke bli publisert. Obligatoriske felt er markert" + comment_form_comment_label : "Kommentar" + comment_form_md_info : "Markdown er støttet" + comment_form_name_label : "Navn" + comment_form_email_label : "E-postadresse" + comment_form_website_label : "Nettside (frivillig)" + comment_btn_submit : "Send kommentar" + comment_btn_submitted : "Sendt" + comment_success_msg : "Takk for din kommentar! Den blir vist på siden så fort den er godkjent" + comment_error_msg : "Beklager, noe gikk galt. Sjekk at alle obligatoriska felt er utfylt og prøv igjen" + loading_label : "Laster..." + search_label_text : "Skriv inn søkeord" + search_placeholder_text : "Skriv inn søkeord" + search_algolia_no_results : "Ingen treff" + results_found : "Treff funnet" + back_to_top : "Tillbake til toppen" +no-NB: + <<: *DEFAULT_NO +no-NN: + <<: *DEFAULT_NO + # Another locale # -------------- # diff --git a/docs/_docs/08-ui-text.md b/docs/_docs/08-ui-text.md index e51561178371..b88d5cd2d5ef 100644 --- a/docs/_docs/08-ui-text.md +++ b/docs/_docs/08-ui-text.md @@ -27,6 +27,7 @@ The English[^yaml-anchors] main keys in [`_data/ui-text.yml`](https://github.com - Malayalam - Myanmar (Burmese) - Nepali (Nepalese) +- Norwegian (Norsk) - Polish - Persian (فارسی) - Romanian From c70990aa7093c84dcc5bf405386ad31d2837519e Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 28 Oct 2020 14:54:19 -0400 Subject: [PATCH 173/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + README.md | 2 +- docs/_docs/18-history.md | 3 ++- docs/_pages/about.md | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1dcfd3c9d37..96993c4cc46c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ## Enhancements +- Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) diff --git a/README.md b/README.md index 24af71c6dbdb..6952c717bf79 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building per - Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more. - Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and [utterances](https://utteranc.es/)). - [Google Analytics](https://www.google.com/analytics/) support. -- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese. +- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese. ## Skins (color variations) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 49df8cb94a1e..e11c08623daa 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-10-28T14:50:08-04:00 +last_modified_at: 2020-10-28T14:52:30-04:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ## Enhancements +- Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) ## [4.20.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.2) diff --git a/docs/_pages/about.md b/docs/_pages/about.md index 25bde3d2131f..6eb65fcbafbd 100644 --- a/docs/_pages/about.md +++ b/docs/_pages/about.md @@ -12,7 +12,7 @@ layouts_gallery: - url: /assets/images/mm-layout-archive.png image_path: /assets/images/mm-layout-archive.png alt: "archive layout example" -last_modified_at: 2020-05-01T10:15:22-04:00 +last_modified_at: 2020-10-28T14:51:23-04:00 toc: true --- @@ -33,7 +33,7 @@ Minimal Mistakes is a flexible two-column Jekyll theme. Perfect for hosting your - Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more. - Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), [Discourse](https://www.discourse.org/), [utterances](https://utteranc.es/), static-based via [Staticman v1 and v2](https://staticman.net/), and custom). - [Google Analytics](https://www.google.com/analytics/) support. -- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese. +- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese. ## Demo Pages From 10a4cb116f515fec62d92e7fa0de55f51ac7e06f Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 28 Oct 2020 15:05:35 -0400 Subject: [PATCH 174/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96993c4cc46c..6137101c536c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug Fixes +- Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index e11c08623daa..bd90dc29c8d5 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-10-28T14:52:30-04:00 +last_modified_at: 2020-10-28T15:05:26-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Bug Fixes +- Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) From f98d7de8970b34397ea4929c0cf1c8e8dcae71ad Mon Sep 17 00:00:00 2001 From: iBug Date: Thu, 29 Oct 2020 14:24:52 +0800 Subject: [PATCH 175/317] Fix a small typo in documentation --- CHANGELOG.md | 1 + docs/_docs/14-helpers.md | 2 +- docs/_docs/18-history.md | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6137101c536c..90f4ec7414b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) +- Fix a small type in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) ## Enhancements diff --git a/docs/_docs/14-helpers.md b/docs/_docs/14-helpers.md index e7ff5a267352..c80b285886b3 100644 --- a/docs/_docs/14-helpers.md +++ b/docs/_docs/14-helpers.md @@ -249,7 +249,7 @@ To embed the following Bilibili video at url `https://www.bilibili.com/video/BV1 {% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" %}{% endraw %} ``` -If you want to enable danmaku (弹幕) for the embeded video, which is disabled by default, you can supply an additional parameter `danmaku="1"` as shown below: +If you want to enable danmaku (弹幕) for the embedded video, which is disabled by default, you can supply an additional parameter `danmaku="1"` as shown below: ```liquid {% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" danmaku="1" %}{% endraw %} diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index bd90dc29c8d5..7fbc6f069040 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -16,6 +16,7 @@ toc: false - Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) +- Fix a small type in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) ## Enhancements From 7e3a7c1b169d84b0f52626bc98e3e58117a3ec9d Mon Sep 17 00:00:00 2001 From: Quan <8580008+quanengineering@users.noreply.github.com> Date: Fri, 30 Oct 2020 10:52:35 +0700 Subject: [PATCH 176/317] Update ui-text.yml for Vietnamese --- _data/ui-text.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index d6dd1fcfb84a..b38679de45d7 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -972,7 +972,7 @@ vi: &DEFAULT_VI breadcrumb_separator : "/" menu_label : "Menu" search_label : "Tìm kiếm" - toc_label : "Tại trang này" + toc_label : "Mục lục" ext_link_label : "Đường dẫn trực tiếp" less_than : "chỉ cần" minute_read : "phút để đọc" @@ -1005,7 +1005,7 @@ vi: &DEFAULT_VI loading_label : "Đang tải..." search_label_text : "Nhập từ khóa cần tìm..." search_placeholder_text : "Nhập từ khóa cần tìm..." - search_algolia_no_results : + search_algolia_no_results : "Không tìm thấy kết quả nào" results_found : "Kết quả tìm được" back_to_top : "Lên đầu trang" vi-VN: From efe9f3bf945a61769c65e4e6bc6026bcba906e20 Mon Sep 17 00:00:00 2001 From: "M. Akhyar Rahman H" Date: Mon, 2 Nov 2020 05:00:46 +0800 Subject: [PATCH 177/317] Added some translation for indonesian language --- _data/ui-text.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index d6dd1fcfb84a..f974d608326a 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -912,9 +912,9 @@ nl-NL: # ---------- id: &DEFAULT_ID skip_links : - skip_primary_nav : - skip_content : - skip_footer : + skip_primary_nav : "Loncat ke navigasi" + skip_content : "Loncat ke konten" + skip_footer : "Loncat ke footer" page : "Halaman" pagination_previous : "Kembali" pagination_next : "Maju" @@ -1851,4 +1851,4 @@ no-NN: # Another locale # -------------- -# +# \ No newline at end of file From a5aeef3d7080b7c46888350fd58a91367b5951fe Mon Sep 17 00:00:00 2001 From: "M. Akhyar Rahman H" Date: Mon, 2 Nov 2020 05:22:01 +0800 Subject: [PATCH 178/317] Update indonesian translation --- _data/ui-text.yml | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index f974d608326a..eeda852569af 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -916,45 +916,48 @@ id: &DEFAULT_ID skip_content : "Loncat ke konten" skip_footer : "Loncat ke footer" page : "Halaman" - pagination_previous : "Kembali" - pagination_next : "Maju" - breadcrumb_home_label : "Home" + pagination_previous : "Sebelumnya" + pagination_next : "Selanjutnya" + breadcrumb_home_label : "Beranda" breadcrumb_separator : "/" - menu_label : "Menu Toggle" - search_label : + menu_label : "Menu" + search_label : "Pencarian" toc_label : "Pada Halaman Ini" ext_link_label : "Link langsung" less_than : "Kurang dari" - minute_read : "Waktu baca" - share_on_label : "Berbagi di" + minute_read : "menit baca" + share_on_label : "Bagikan di" meta_label : - tags_label : "Golongan:" + tags_label : "Label:" categories_label : "Kategori:" date_label : "Diupdate:" comments_label : "Tinggalkan komentar" comments_title : "Komentar" more_label : "Pelajari lagi" - related_label : "Anda juga akan suka" + related_label : "Anda mungkin suka" follow_label : "Ikuti:" feed_label : "Feed" powered_by : "Didukung oleh" website_label : "Website" email_label : "Email" - recent_posts : "Posting terbaru" + recent_posts : "Post terbaru" undefined_wpm : "Parameter terdeskripsi words_per_minute di _config.yml" - comment_form_info : "Email Anda tidak akan dipublish. Kolom yang diperlukan ditandai" + comment_form_info : "Email Anda tidak akan dipublish. Kolom yang diperlukan ditandai dengan tanda " comment_form_comment_label : "Komentar" - comment_form_md_info : "Markdown disupport." + comment_form_md_info : "Markdown didukung." comment_form_name_label : "Nama" comment_form_email_label : "Alamat email" comment_form_website_label : "Website (opsional)" - comment_btn_submit : "Submit Komentar" - comment_btn_submitted : "Telah disubmit" - comment_success_msg : "Terimakasih atas komentar Anda! Komentar ini akan tampil setelah disetujui." - comment_error_msg : "Maaf, ada kesalahan pada submisi Anda. Pastikan seluruh kolom sudah dilengkapi dan coba kembali." - loading_label : "Sedang meload..." - search_label_text : - search_algolia_no_results : + comment_btn_submit : "Kirim Komentar" + comment_btn_submitted : "Telah dikirim" + comment_success_msg : "Terimakasih atas komentar Anda! Komentar akan tampil setelah disetujui." + comment_error_msg : "Maaf, ada kesalahan pada komentar Anda. Pastikan seluruh kolom sudah dilengkapi dan coba kembali." + loading_label : "Sedang memuat..." + search_label_text : "Masukkan kata kunci percarian..." + search_placeholder_text : "Masukkan kata kunci percarian..." + search_algolia_no_results : "Tidak ada hasil" + results_found : "Hasil percarian ditemukan" + back_to_top : "Kembali ke awal" id-ID: <<: *DEFAULT_ID From 0c9553da068d5f5ef4d55130595f68842249dbcd Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 2 Nov 2020 11:22:18 -0500 Subject: [PATCH 179/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6137101c536c..7c8953ec2c13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ ## Enhancements +- Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index bd90dc29c8d5..72b46a10278d 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-10-28T15:05:26-04:00 +last_modified_at: 2020-11-02T11:22:02-05:00 toc: false --- @@ -19,6 +19,7 @@ toc: false ## Enhancements +- Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) From de2cf5609bdfa00b13cf1b88518ba691364bd3e9 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 2 Nov 2020 11:24:34 -0500 Subject: [PATCH 180/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d444e9986612..db9071802147 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ## Enhancements +- Add Indonesian localized UI text strings. [#2725](https://github.com/mmistakes/minimal-mistakes/pull/2725) - Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index b20d1da27c3c..451cee648354 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-11-02T11:22:02-05:00 +last_modified_at: 2020-11-02T11:24:24-05:00 toc: false --- @@ -20,6 +20,7 @@ toc: false ## Enhancements +- Add Indonesian localized UI text strings. [#2725](https://github.com/mmistakes/minimal-mistakes/pull/2725) - Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) - Update allejo/jekyll-toc to v1.0.14 [#2700](https://github.com/mmistakes/minimal-mistakes/pull/2700) From 133dffe2f93d3e16e7118a55c256454204cfd396 Mon Sep 17 00:00:00 2001 From: Mitchell Skaggs Date: Mon, 2 Nov 2020 10:25:10 -0600 Subject: [PATCH 181/317] Update jQuery to 3.5.1 (#2713) * Update jQuery to 3.5.1 Closes #2712 * Build NodeJS Run using `npm run build:js` --- assets/js/main.min.js | 2 +- .../{jquery-3.4.1.js => jquery-3.5.1.js} | 1238 ++++++++++------- docs/_docs/17-javascript.md | 2 +- package-lock.json | 850 ++++++++++- package.json | 3 +- 5 files changed, 1608 insertions(+), 487 deletions(-) rename assets/js/vendor/jquery/{jquery-3.4.1.js => jquery-3.5.1.js} (91%) diff --git a/assets/js/main.min.js b/assets/js/main.min.js index db820cf92913..904d8da712ae 100644 --- a/assets/js/main.min.js +++ b/assets/js/main.min.js @@ -3,4 +3,4 @@ * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes * Licensed under MIT */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(T,e){"use strict";function m(e){return null!=e&&e===e.window}var t=[],E=T.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},c={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",S=function(e,t){return new S.fn.init(e,t)},d=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!b(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&r|56320)}function i(){C()}var e,p,x,o,a,h,d,m,w,u,l,C,T,s,E,g,c,v,y,S="sizzle"+ +new Date,b=n.document,k=0,r=0,A=ue(),N=ue(),j=ue(),I=ue(),L=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],O=t.pop,P=t.push,H=t.push,q=t.slice,M=function(e,t){for(var n=0,r=e.length;n+~]|"+$+")"+$+"*"),Q=new RegExp($+"|>"),Y=new RegExp(F),V=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$+"*(even|odd|(([+-]|)(\\d*)n|)"+$+"*(?:([+-]|)"+$+"*(\\d+)|))"+$+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+$+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$+"*((?:-\\d)?\\d*)"+$+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,te=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,re=new RegExp("\\\\([\\da-f]{1,6}"+$+"?|("+$+")|.)","ig"),ie=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=q.call(b.childNodes),b.childNodes),t[b.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){P.apply(e,q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&((e?e.ownerDocument||e:b)!==T&&C(e),e=e||T,E)){if(11!==d&&(u=te.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!I[t+" "]&&(!g||!g.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&Q.test(t)){for((s=e.getAttribute("id"))?s=s.replace(ie,oe):e.setAttribute("id",s=S),o=(l=h(t)).length;o--;)l[o]="#"+s+" "+be(l[o]);c=l.join(","),f=ne.test(t)&&ve(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){I(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return m(t.replace(W,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function me(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ge(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!K.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:b;return r!==T&&9===r.nodeType&&r.documentElement&&(s=(T=r).documentElement,E=!a(T),b!==T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",i,!1):n.attachEvent&&n.attachEvent("onunload",i)),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=ce(function(e){return s.appendChild(e).id=S,!T.getElementsByName||!T.getElementsByName(S).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(re,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},c=[],g=[],(p.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){s.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+$+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+$+"*(?:value|"+_+")"),e.querySelectorAll("[id~="+S+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||g.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+$+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=ee.test(v=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),c.push("!=",F)}),g=g.length&&new RegExp(g.join("|")),c=c.length&&new RegExp(c.join("|")),t=ee.test(s.compareDocumentPosition),y=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},L=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument===b&&y(b,e)?-1:t===T||t.ownerDocument===b&&y(b,t)?1:u?M(u,e)-M(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===T?-1:t===T?1:i?-1:o?1:u?M(u,e)-M(u,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]===b?-1:s[r]===b?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==T&&C(e),p.matchesSelector&&E&&!I[t+" "]&&(!c||!c.test(t))&&(!g||!g.test(t)))try{var n=v.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){I(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||"").replace(re,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Y.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+$+")"+e+"("+$+"|$)"))&&A(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,n,r){return b(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||L,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:D.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),j.test(r[1])&&S.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=S.fn,L=S(E);var O=/^(?:parents|prev(?:Until|All))/,P={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,me={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!ye.cloneNode(!0).lastChild.defaultValue;var Ce=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function Se(){return!0}function ke(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function je(e,i,o){o?(G.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=G.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),G.set(this,i,r),t=o(this,i),this[i](),r!==(n=G.get(this,i))||t?G.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(G.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===G.get(e,i)&&S.event.add(e,i,Se)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,d,p,h,m,g=G.get(t);if(g)for(n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(ie,i),n.guid||(n.guid=S.guid++),(u=g.events)||(u=g.events={}),(a=g.handle)||(a=g.handle=function(e){return void 0!==S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(q)||[""]).length;l--;)p=m=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=S.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=S.event.special[p]||{},c=S.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(p,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),S.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,m,g=G.hasData(e)&&G.get(e);if(g&&(u=g.events)){for(l=(t=(t||"").match(q)||[""]).length;l--;)if(p=m=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){for(f=S.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)c=d[o],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||S.removeEvent(e,p,g.handle),delete u[p])}else for(p in u)S.event.remove(e,p+t[l],n,r,!0);S.isEmptyObject(u)&&G.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=S.event.fix(e),u=new Array(arguments.length),l=(G.get(this,"events")||{})[s.type]||[],c=S.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/\s*$/g;function Pe(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(G.hasData(e)&&(o=G.access(e),a=G.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ge(c),r=0,i=(o=ge(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var nn,rn=[],on=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=rn.pop()||S.expando+"_"+Pt++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(on.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&on.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(on,"$1"+r):!1!==e.jsonp&&(e.url+=(Ht.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?S(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,rn.push(r)),o&&b(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((nn=E.implementation.createHTMLDocument("").body).innerHTML="
",2===nn.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=j.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),i=("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(u)||0),b(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===S.css(e,"position");)e=e.offsetParent;return e||ie})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return z(this,function(e,t,n){var r;if(m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Je(y.pixelPosition,function(e,t){if(t)return t=Ze(e,n),Qe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return z(this,function(e,t,n){var r;return m(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0x

',t.appendChild(r.childNodes[1])}return e&&o.extend(n,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];n.customSelector&&e.push(n.customSelector);var i=".fitvidsignore";n.ignore&&(i=i+", "+n.ignore);var t=o(this).find(e.join(","));(t=(t=t.not("object object")).not(i)).each(function(e){var t=o(this);if(!(0').parent(".fluid-width-video-wrapper").css("padding-top",100*n+"%"),t.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),$(function(){var r,i,e,o,t=$("nav.greedy-nav .greedy-nav__toggle"),a=$("nav.greedy-nav .visible-links"),s=$("nav.greedy-nav .hidden-links"),n=$("nav.greedy-nav"),u=$("nav.greedy-nav .site-logo"),l=$("nav.greedy-nav .site-logo img"),c=$("nav.greedy-nav .site-title"),f=$("nav.greedy-nav button.search__toggle");function d(){function n(e,t){i+=t,r+=1,o.push(i)}i=r=0,e=1e3,o=[],a.children().outerWidth(n),s.children().each(function(){var e,t;e=$(this),(t=e.clone()).css("visibility","hidden"),a.append(t),n(0,t.outerWidth()),t.remove()})}d();var p,h,m,g,v=$(window).width(),y=v<768?0:v<1024?1:v<1280?2:3;function b(){var e=(v=$(window).width())<768?0:v<1024?1:v<1280?2:3;e!==y&&d(),y=e,h=a.children().length,p=n.innerWidth()-(0!==u.length?u.outerWidth(!0):0)-c.outerWidth(!0)-(0!==f.length?f.outerWidth(!0):0)-(h!==o.length?t.outerWidth(!0):0),m=o[h-1],po[h]&&(s.children().first().appendTo(a),h+=1,b()),t.attr("count",r-h),h===r?t.addClass("hidden"):t.removeClass("hidden")}$(window).resize(function(){b()}),t.on("click",function(){s.toggleClass("hidden"),clearTimeout(g)}),s.on("mouseleave",function(){g=setTimeout(function(){s.addClass("hidden")},e)}).on("mouseenter",function(){clearTimeout(g)}),0===l.length||l[0].complete||0!==l[0].naturalWidth?b():l.one("load error",b)}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(c){function e(){}function f(e,t){m.ev.on("mfp"+e+x,t)}function d(e,t,n,r){var i=document.createElement("div");return i.className="mfp-"+e,n&&(i.innerHTML=n),r?t&&t.appendChild(i):(i=c(i),t&&i.appendTo(t)),i}function p(e,t){m.ev.triggerHandler("mfp"+e,t),m.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),m.st.callbacks[e]&&m.st.callbacks[e].apply(m,c.isArray(t)?t:[t]))}function h(e){return e===t&&m.currTemplate.closeBtn||(m.currTemplate.closeBtn=c(m.st.closeMarkup.replace("%title%",m.st.tClose)),t=e),m.currTemplate.closeBtn}function o(){c.magnificPopup.instance||((m=new e).init(),c.magnificPopup.instance=m)}var m,r,g,i,v,t,u="Close",l="BeforeClose",y="MarkupParse",b="Open",x=".mfp",w="mfp-ready",n="mfp-removing",a="mfp-prevent-close",s=!!window.jQuery,C=c(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;m.isLowIE=m.isIE8=document.all&&!document.addEventListener,m.isAndroid=/android/gi.test(e),m.isIOS=/iphone|ipad|ipod/gi.test(e),m.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),m.probablyMobile=m.isAndroid||m.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),g=c(document),m.popupsCache={}},open:function(e){var t;if(!1===e.isObj){m.items=e.items.toArray(),m.index=0;var n,r=e.items;for(t=0;t(e||C.height())},_setFocus:function(){(m.st.focus?m.content.find(m.st.focus).eq(0):m.wrap).focus()},_onFocusIn:function(e){if(e.target!==m.wrap[0]&&!c.contains(m.wrap[0],e.target))return m._setFocus(),!1},_parseMarkup:function(i,e,t){var o;t.data&&(e=c.extend(t.data,e)),p(y,[i,e,t]),c.each(e,function(e,t){if(void 0===t||!1===t)return!0;if(1<(o=e.split("_")).length){var n=i.find(x+"-"+o[0]);if(0").attr("src",t).attr("class",n.attr("class"))):n.attr(o[1],t)}}else i.find(x+"-"+e).html(t)})},_getScrollbarSize:function(){if(void 0===m.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),m.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return m.scrollbarSize}},c.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return o(),(e=e?c.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return c.magnificPopup.instance&&c.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(c.magnificPopup.defaults[e]=t.options),c.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},c.fn.magnificPopup=function(e){o();var t=c(this);if("string"==typeof e)if("open"===e){var n,r=s?t.data("magnificPopup"):t[0].magnificPopup,i=parseInt(arguments[1],10)||0;n=r.items?r.items[i]:(n=t,r.delegate&&(n=n.find(r.delegate)),n.eq(i)),m._openClick({mfpEl:n},t,r)}else m.isOpen&&m[e].apply(m,Array.prototype.slice.call(arguments,1));else e=c.extend(!0,{},e),s?t.data("magnificPopup",e):t[0].magnificPopup=e,m.addGroup(t,e);return t};function T(){k&&(S.after(k.addClass(E)).detach(),k=null)}var E,S,k,A="inline";c.magnificPopup.registerModule(A,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){m.types.push(A),f(u+"."+A,function(){T()})},getInline:function(e,t){if(T(),e.src){var n=m.st.inline,r=c(e.src);if(r.length){var i=r[0].parentNode;i&&i.tagName&&(S||(E=n.hiddenClass,S=d(E),E="mfp-"+E),k=r.after(S).detach().removeClass(E)),m.updateStatus("ready")}else m.updateStatus("error",n.tNotFound),r=c("
");return e.inlineElement=r}return m.updateStatus("ready"),m._parseMarkup(t,{},e),t}}});function N(){I&&c(document.body).removeClass(I)}function j(){N(),m.req&&m.req.abort()}var I,L="ajax";c.magnificPopup.registerModule(L,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){m.types.push(L),I=m.st.ajax.cursor,f(u+"."+L,j),f("BeforeChange."+L,j)},getAjax:function(i){I&&c(document.body).addClass(I),m.updateStatus("loading");var e=c.extend({url:i.src,success:function(e,t,n){var r={data:e,xhr:n};p("ParseAjax",r),m.appendContent(c(r.data),L),i.finished=!0,N(),m._setFocus(),setTimeout(function(){m.wrap.addClass(w)},16),m.updateStatus("ready"),p("AjaxContentAdded")},error:function(){N(),i.finished=i.loadError=!0,m.updateStatus("error",m.st.ajax.tError.replace("%url%",i.src))}},m.st.ajax.settings);return m.req=c.ajax(e),""}}});var D;c.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var e=m.st.image,t=".image";m.types.push("image"),f(b+t,function(){"image"===m.currItem.type&&e.cursor&&c(document.body).addClass(e.cursor)}),f(u+t,function(){e.cursor&&c(document.body).removeClass(e.cursor),C.off("resize"+x)}),f("Resize"+t,m.resizeImage),m.isLowIE&&f("AfterChange",m.resizeImage)},resizeImage:function(){var e=m.currItem;if(e&&e.img&&m.st.image.verticalFit){var t=0;m.isLowIE&&(t=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",m.wH-t)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,D&&clearInterval(D),e.isCheckingImgSize=!1,p("ImageHasSize",e),e.imgHidden&&(m.content&&m.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var n=0,r=t.img[0],i=function(e){D&&clearInterval(D),D=setInterval(function(){0
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){m.types.push(H),f("BeforeChange",function(e,t,n){t!==n&&(t===H?P():n===H&&P(!0))}),f(u+"."+H,function(){P()})},getIframe:function(e,t){var n=e.src,r=m.st.iframe;c.each(r.patterns,function(){if(-1',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var o=m.st.gallery,e=".mfp-gallery";if(m.direction=!0,!o||!o.enabled)return!1;v+=" mfp-gallery",f(b+e,function(){o.navigateByImgClick&&m.wrap.on("click"+e,".mfp-img",function(){if(1=m.index,m.index=e,m.updateItemHTML()},preloadNearbyImages:function(){var e,t=m.st.gallery.preload,n=Math.min(t[0],m.items.length),r=Math.min(t[1],m.items.length);for(e=1;e<=(m.direction?r:n);e++)m._preloadItem(m.index+e);for(e=1;e<=(m.direction?n:r);e++)m._preloadItem(m.index-e)},_preloadItem:function(e){if(e=q(e),!m.items[e].preloaded){var t=m.items[e];t.parsed||(t=m.parseEl(e)),p("LazyLoad",t),"image"===t.type&&(t.img=c('').on("load.mfploader",function(){t.hasSize=!0}).on("error.mfploader",function(){t.hasSize=!0,t.loadError=!0,p("LazyLoadError",t)}).attr("src",t.src)),t.preloaded=!0}}}});var _="retina";c.magnificPopup.registerModule(_,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(1r.durationMax?r.durationMax:r.durationMin&&i=y)return k.cancelScroll(!0),r=t,i=l,0===(n=a)&&document.body.focus(),i||(n.focus(),document.activeElement!==n&&(n.setAttribute("tabindex","-1"),n.focus(),n.style.outline="none"),A.scrollTo(0,r)),L("scrollStop",u,a,s),!(S=f=null)},C=function(e){var t,n,r;b+=e-(f=f||e),d=c+v*(n=o=1<(o=0===x?0:b/x)?1:o,"easeInQuad"===(t=u).easing&&(r=n*n),"easeOutQuad"===t.easing&&(r=n*(2-n)),"easeInOutQuad"===t.easing&&(r=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(r=n*n*n),"easeOutCubic"===t.easing&&(r=--n*n*n+1),"easeInOutCubic"===t.easing&&(r=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(r=n*n*n*n),"easeOutQuart"===t.easing&&(r=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(r=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(r=n*n*n*n*n),"easeOutQuint"===t.easing&&(r=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(r=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(r=t.customEasing(n)),r||n),A.scrollTo(0,Math.floor(d)),w(d,g)||(S=A.requestAnimationFrame(C),f=e)};0===A.pageYOffset&&A.scrollTo(0,0),p=a,h=u,l||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:p.id},document.title,p===document.documentElement?"#top":"#"+p.id),"matchMedia"in A&&A.matchMedia("(prefers-reduced-motion)").matches?A.scrollTo(0,Math.floor(g)):(L("scrollStart",u,a,s),k.cancelScroll(!0),A.requestAnimationFrame(C))}};function t(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(i=e.target.closest(r))&&"a"===i.tagName.toLowerCase()&&!e.target.closest(T.ignore)&&i.hostname===A.location.hostname&&i.pathname===A.location.pathname&&/#/.test(i.href)){var t,n;try{t=o(decodeURIComponent(i.hash))}catch(e){t=o(i.hash)}if("#"===t){if(!T.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||"#top"!==t?n:document.documentElement)&&(e.preventDefault(),function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=A.location.hash;t=t||"",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||A.pageYOffset},document.title,t||A.location.href)}}(T),k.animateScroll(n,i))}}function n(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(T)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(o(history.state.anchor)))||k.animateScroll(t,null,{updateURL:!1})}}k.destroy=function(){T&&(document.removeEventListener("click",t,!1),A.removeEventListener("popstate",n,!1),k.cancelScroll(),S=E=i=T=null)};return function(){if(!("querySelector"in document&&"addEventListener"in A&&"requestAnimationFrame"in A&&"closest"in A.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";k.destroy(),T=N(D,e||{}),E=T.header?document.querySelector(T.header):null,document.addEventListener("click",t,!1),T.updateURL&&T.popstate&&A.addEventListener("popstate",n,!1)}(),k}}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(c){"use strict";function f(e,t,n){if(n.settings.events){var r=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t.dispatchEvent(r)}}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function p(e,t){var n,r,i=e[e.length-1];if(n=i,r=t,s()&&a(n.content,r,!0))return i;for(var o=e.length-1;0<=o;o--)if(a(e[o].content,t))return e[o]}function h(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),r(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}}var m={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},r=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.remove(t.nestedClass),r(n,t))}},g=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.add(t.nestedClass),g(n,t))}};return function(e,t){var n,r,i,o,a,s={};s.setup=function(){n=document.querySelectorAll(e),r=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&r.push({nav:e,content:t})}),d(r)},s.detect=function(){var e=p(r,a);e?i&&e.content===i.content||(h(i,a),function(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),g(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t}))}}(e,a),i=e):i&&(h(i,a),i=null)};function u(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(s.detect)}function l(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(function(){d(r),s.detect()})}s.destroy=function(){i&&h(i,a),c.removeEventListener("scroll",u,!1),a.reflow&&c.removeEventListener("resize",l,!1),a=o=i=n=r=null};return a=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(m,t||{}),s.setup(),s.detect(),c.addEventListener("scroll",u,!1),a.reflow&&c.addEventListener("resize",l,!1),s}}),$(document).ready(function(){$("#main").fitVids();function e(){(0===$(".author__urls-wrapper button").length?1024<$(window).width():!$(".author__urls-wrapper button").is(":visible"))?$(".sidebar").addClass("sticky"):$(".sidebar").removeClass("sticky")}e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").toggleClass("is--visible"),$(".author__urls-wrapper button").toggleClass("open")}),$(document).keyup(function(e){27===e.keyCode&&$(".initial-content").hasClass("is--hidden")&&($(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"))}),$(".search__toggle").on("click",function(){$(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"),setTimeout(function(){$(".search-content input").focus()},400)});new SmoothScroll('a[href*="#"]',{offset:20,speed:400,speedAsDuration:!0,durationMax:500});if(0<$("nav.toc").length)new Gumshoe("nav.toc a",{navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:20,reflow:!0,events:!0});$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),$(".page__content").find("h1, h2, h3, h4, h5, h6").each(function(){var e=$(this).attr("id");if(e){var t=document.createElement("a");t.className="header-link",t.href="#"+e,t.innerHTML='Permalink',t.title="Permalink",$(this).append(t)}})}); \ No newline at end of file +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(T,e){"use strict";function m(e){return null!=e&&e===e.window}var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},E=T.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!b(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&n|56320))}function i(){C()}var e,p,x,o,a,h,d,m,w,u,l,C,T,s,E,g,c,v,y,S="sizzle"+ +new Date,b=n.document,k=0,r=0,A=ue(),N=ue(),j=ue(),I=ue(),L=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],O=t.pop,P=t.push,H=t.push,q=t.slice,M=function(e,t){for(var n=0,r=e.length;n+~]|"+$+")"+$+"*"),Q=new RegExp($+"|>"),Y=new RegExp(F),V=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$+"*(even|odd|(([+-]|)(\\d*)n|)"+$+"*(?:([+-]|)"+$+"*(\\d+)|))"+$+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+$+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$+"*((?:-\\d)?\\d*)"+$+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,te=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,re=new RegExp("\\\\[\\da-fA-F]{1,6}"+$+"?|\\\\([^\\r\\n\\f])","g"),ie=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=xe(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=q.call(b.childNodes),b.childNodes),t[b.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){P.apply(e,q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(C(e),e=e||T,E)){if(11!==d&&(u=te.exec(t)))if(i=u[1]){if(9===d){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(p.qsa&&!I[t+" "]&&(!g||!g.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&(Q.test(t)||X.test(t))){for((f=ne.test(t)&&ve(e.parentNode)||e)===e&&p.scope||((s=e.getAttribute("id"))?s=s.replace(ie,oe):e.setAttribute("id",s=S)),o=(l=h(t)).length;o--;)l[o]=(s?"#"+s:":scope")+" "+be(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){I(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return m(t.replace(W,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>x.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function me(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ge(a){return le(function(o){return o=+o,le(function(e,t){for(var n,r=a([],e.length,o),i=r.length;i--;)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!K.test(t||n&&n.nodeName||"HTML")},C=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:b;return r!=T&&9===r.nodeType&&r.documentElement&&(s=(T=r).documentElement,E=!a(T),b!=T&&(n=T.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",i,!1):n.attachEvent&&n.attachEvent("onunload",i)),p.scope=ce(function(e){return s.appendChild(e).appendChild(T.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=ce(function(e){return s.appendChild(e).id=S,!T.getElementsByName||!T.getElementsByName(S).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(x.filter.ID=function(e){var n=e.replace(re,f);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"!==e)return o;for(;n=o[i++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},c=[],g=[],(p.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){var t;s.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+$+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+$+"*(?:value|"+_+")"),e.querySelectorAll("[id~="+S+"-]").length||g.push("~="),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+$+"*name"+$+"*="+$+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+$+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),s.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=ee.test(v=s.matches||s.webkitMatchesSelector||s.mozMatchesSelector||s.oMatchesSelector||s.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),c.push("!=",F)}),g=g.length&&new RegExp(g.join("|")),c=c.length&&new RegExp(c.join("|")),t=ee.test(s.compareDocumentPosition),y=t||ee.test(s.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},L=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==T||e.ownerDocument==b&&y(b,e)?-1:t==T||t.ownerDocument==b&&y(b,t)?1:u?M(u,e)-M(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==T?-1:t==T?1:i?-1:o?1:u?M(u,e)-M(u,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==b?-1:s[r]==b?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(C(e),p.matchesSelector&&E&&!I[t+" "]&&(!c||!c.test(t))&&(!g||!g.test(t)))try{var n=v.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){I(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||"").replace(re,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Y.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+$+")"+e+"("+$+"|$)"))&&A(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return b(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||I,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}).prototype=S.fn,I=S(E);var D=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var me={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ge(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var ye=/<|&#?\w+;/;function be(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p\s*$/g;function Le(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(V.hasData(e)&&(s=V.get(e).events))for(i in V.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var tn,nn=[],rn=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=nn.pop()||S.expando+"_"+Ot.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(rn.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&rn.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(rn,"$1"+r):!1!==e.jsonp&&(e.url+=(Pt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=T[r],T[r]=function(){o=arguments},n.always(function(){void 0===i?S(T).removeProp(r):T[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,nn.push(r)),o&&b(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((tn=E.implementation.createHTMLDocument("").body).innerHTML="
",2===tn.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=be([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),i=("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,r.left):(a=parseFloat(o)||0,parseFloat(u)||0),b(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===S.css(e,"position");)e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return F(this,function(e,t,n){var r;if(m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Ze(y.pixelPosition,function(e,t){if(t)return t=Ke(e,n),Xe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return F(this,function(e,t,n){var r;return m(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0x

',t.appendChild(r.childNodes[1])}return e&&o.extend(n,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];n.customSelector&&e.push(n.customSelector);var i=".fitvidsignore";n.ignore&&(i=i+", "+n.ignore);var t=o(this).find(e.join(","));(t=(t=t.not("object object")).not(i)).each(function(e){var t=o(this);if(!(0').parent(".fluid-width-video-wrapper").css("padding-top",100*n+"%"),t.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),$(function(){var r,i,e,o,t=$("nav.greedy-nav .greedy-nav__toggle"),a=$("nav.greedy-nav .visible-links"),s=$("nav.greedy-nav .hidden-links"),n=$("nav.greedy-nav"),u=$("nav.greedy-nav .site-logo"),l=$("nav.greedy-nav .site-logo img"),c=$("nav.greedy-nav .site-title"),f=$("nav.greedy-nav button.search__toggle");function d(){function n(e,t){i+=t,r+=1,o.push(i)}i=r=0,e=1e3,o=[],a.children().outerWidth(n),s.children().each(function(){var e,t;e=$(this),(t=e.clone()).css("visibility","hidden"),a.append(t),n(0,t.outerWidth()),t.remove()})}d();var p,h,m,g,v=$(window).width(),y=v<768?0:v<1024?1:v<1280?2:3;function b(){var e=(v=$(window).width())<768?0:v<1024?1:v<1280?2:3;e!==y&&d(),y=e,h=a.children().length,p=n.innerWidth()-(0!==u.length?u.outerWidth(!0):0)-c.outerWidth(!0)-(0!==f.length?f.outerWidth(!0):0)-(h!==o.length?t.outerWidth(!0):0),m=o[h-1],po[h]&&(s.children().first().appendTo(a),h+=1,b()),t.attr("count",r-h),h===r?t.addClass("hidden"):t.removeClass("hidden")}$(window).resize(function(){b()}),t.on("click",function(){s.toggleClass("hidden"),clearTimeout(g)}),s.on("mouseleave",function(){g=setTimeout(function(){s.addClass("hidden")},e)}).on("mouseenter",function(){clearTimeout(g)}),0===l.length||l[0].complete||0!==l[0].naturalWidth?b():l.one("load error",b)}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(c){function e(){}function f(e,t){m.ev.on("mfp"+e+x,t)}function d(e,t,n,r){var i=document.createElement("div");return i.className="mfp-"+e,n&&(i.innerHTML=n),r?t&&t.appendChild(i):(i=c(i),t&&i.appendTo(t)),i}function p(e,t){m.ev.triggerHandler("mfp"+e,t),m.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),m.st.callbacks[e]&&m.st.callbacks[e].apply(m,c.isArray(t)?t:[t]))}function h(e){return e===t&&m.currTemplate.closeBtn||(m.currTemplate.closeBtn=c(m.st.closeMarkup.replace("%title%",m.st.tClose)),t=e),m.currTemplate.closeBtn}function o(){c.magnificPopup.instance||((m=new e).init(),c.magnificPopup.instance=m)}var m,r,g,i,v,t,u="Close",l="BeforeClose",y="MarkupParse",b="Open",x=".mfp",w="mfp-ready",n="mfp-removing",a="mfp-prevent-close",s=!!window.jQuery,C=c(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;m.isLowIE=m.isIE8=document.all&&!document.addEventListener,m.isAndroid=/android/gi.test(e),m.isIOS=/iphone|ipad|ipod/gi.test(e),m.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),m.probablyMobile=m.isAndroid||m.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),g=c(document),m.popupsCache={}},open:function(e){var t;if(!1===e.isObj){m.items=e.items.toArray(),m.index=0;var n,r=e.items;for(t=0;t(e||C.height())},_setFocus:function(){(m.st.focus?m.content.find(m.st.focus).eq(0):m.wrap).focus()},_onFocusIn:function(e){if(e.target!==m.wrap[0]&&!c.contains(m.wrap[0],e.target))return m._setFocus(),!1},_parseMarkup:function(i,e,t){var o;t.data&&(e=c.extend(t.data,e)),p(y,[i,e,t]),c.each(e,function(e,t){if(void 0===t||!1===t)return!0;if(1<(o=e.split("_")).length){var n=i.find(x+"-"+o[0]);if(0").attr("src",t).attr("class",n.attr("class"))):n.attr(o[1],t)}}else i.find(x+"-"+e).html(t)})},_getScrollbarSize:function(){if(void 0===m.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),m.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return m.scrollbarSize}},c.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return o(),(e=e?c.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return c.magnificPopup.instance&&c.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(c.magnificPopup.defaults[e]=t.options),c.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},c.fn.magnificPopup=function(e){o();var t=c(this);if("string"==typeof e)if("open"===e){var n,r=s?t.data("magnificPopup"):t[0].magnificPopup,i=parseInt(arguments[1],10)||0;n=r.items?r.items[i]:(n=t,r.delegate&&(n=n.find(r.delegate)),n.eq(i)),m._openClick({mfpEl:n},t,r)}else m.isOpen&&m[e].apply(m,Array.prototype.slice.call(arguments,1));else e=c.extend(!0,{},e),s?t.data("magnificPopup",e):t[0].magnificPopup=e,m.addGroup(t,e);return t};function T(){k&&(S.after(k.addClass(E)).detach(),k=null)}var E,S,k,A="inline";c.magnificPopup.registerModule(A,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){m.types.push(A),f(u+"."+A,function(){T()})},getInline:function(e,t){if(T(),e.src){var n=m.st.inline,r=c(e.src);if(r.length){var i=r[0].parentNode;i&&i.tagName&&(S||(E=n.hiddenClass,S=d(E),E="mfp-"+E),k=r.after(S).detach().removeClass(E)),m.updateStatus("ready")}else m.updateStatus("error",n.tNotFound),r=c("
");return e.inlineElement=r}return m.updateStatus("ready"),m._parseMarkup(t,{},e),t}}});function N(){I&&c(document.body).removeClass(I)}function j(){N(),m.req&&m.req.abort()}var I,L="ajax";c.magnificPopup.registerModule(L,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){m.types.push(L),I=m.st.ajax.cursor,f(u+"."+L,j),f("BeforeChange."+L,j)},getAjax:function(i){I&&c(document.body).addClass(I),m.updateStatus("loading");var e=c.extend({url:i.src,success:function(e,t,n){var r={data:e,xhr:n};p("ParseAjax",r),m.appendContent(c(r.data),L),i.finished=!0,N(),m._setFocus(),setTimeout(function(){m.wrap.addClass(w)},16),m.updateStatus("ready"),p("AjaxContentAdded")},error:function(){N(),i.finished=i.loadError=!0,m.updateStatus("error",m.st.ajax.tError.replace("%url%",i.src))}},m.st.ajax.settings);return m.req=c.ajax(e),""}}});var D;c.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var e=m.st.image,t=".image";m.types.push("image"),f(b+t,function(){"image"===m.currItem.type&&e.cursor&&c(document.body).addClass(e.cursor)}),f(u+t,function(){e.cursor&&c(document.body).removeClass(e.cursor),C.off("resize"+x)}),f("Resize"+t,m.resizeImage),m.isLowIE&&f("AfterChange",m.resizeImage)},resizeImage:function(){var e=m.currItem;if(e&&e.img&&m.st.image.verticalFit){var t=0;m.isLowIE&&(t=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",m.wH-t)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,D&&clearInterval(D),e.isCheckingImgSize=!1,p("ImageHasSize",e),e.imgHidden&&(m.content&&m.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var n=0,r=t.img[0],i=function(e){D&&clearInterval(D),D=setInterval(function(){0
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){m.types.push(H),f("BeforeChange",function(e,t,n){t!==n&&(t===H?P():n===H&&P(!0))}),f(u+"."+H,function(){P()})},getIframe:function(e,t){var n=e.src,r=m.st.iframe;c.each(r.patterns,function(){if(-1',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var o=m.st.gallery,e=".mfp-gallery";if(m.direction=!0,!o||!o.enabled)return!1;v+=" mfp-gallery",f(b+e,function(){o.navigateByImgClick&&m.wrap.on("click"+e,".mfp-img",function(){if(1=m.index,m.index=e,m.updateItemHTML()},preloadNearbyImages:function(){var e,t=m.st.gallery.preload,n=Math.min(t[0],m.items.length),r=Math.min(t[1],m.items.length);for(e=1;e<=(m.direction?r:n);e++)m._preloadItem(m.index+e);for(e=1;e<=(m.direction?n:r);e++)m._preloadItem(m.index-e)},_preloadItem:function(e){if(e=q(e),!m.items[e].preloaded){var t=m.items[e];t.parsed||(t=m.parseEl(e)),p("LazyLoad",t),"image"===t.type&&(t.img=c('').on("load.mfploader",function(){t.hasSize=!0}).on("error.mfploader",function(){t.hasSize=!0,t.loadError=!0,p("LazyLoadError",t)}).attr("src",t.src)),t.preloaded=!0}}}});var _="retina";c.magnificPopup.registerModule(_,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(1r.durationMax?r.durationMax:r.durationMin&&i=y)return k.cancelScroll(!0),r=t,i=l,0===(n=a)&&document.body.focus(),i||(n.focus(),document.activeElement!==n&&(n.setAttribute("tabindex","-1"),n.focus(),n.style.outline="none"),A.scrollTo(0,r)),L("scrollStop",u,a,s),!(S=f=null)},C=function(e){var t,n,r;b+=e-(f=f||e),d=c+v*(n=o=1<(o=0===x?0:b/x)?1:o,"easeInQuad"===(t=u).easing&&(r=n*n),"easeOutQuad"===t.easing&&(r=n*(2-n)),"easeInOutQuad"===t.easing&&(r=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(r=n*n*n),"easeOutCubic"===t.easing&&(r=--n*n*n+1),"easeInOutCubic"===t.easing&&(r=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(r=n*n*n*n),"easeOutQuart"===t.easing&&(r=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(r=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(r=n*n*n*n*n),"easeOutQuint"===t.easing&&(r=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(r=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(r=t.customEasing(n)),r||n),A.scrollTo(0,Math.floor(d)),w(d,g)||(S=A.requestAnimationFrame(C),f=e)};0===A.pageYOffset&&A.scrollTo(0,0),p=a,h=u,l||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:p.id},document.title,p===document.documentElement?"#top":"#"+p.id),"matchMedia"in A&&A.matchMedia("(prefers-reduced-motion)").matches?A.scrollTo(0,Math.floor(g)):(L("scrollStart",u,a,s),k.cancelScroll(!0),A.requestAnimationFrame(C))}};function t(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(i=e.target.closest(r))&&"a"===i.tagName.toLowerCase()&&!e.target.closest(T.ignore)&&i.hostname===A.location.hostname&&i.pathname===A.location.pathname&&/#/.test(i.href)){var t,n;try{t=o(decodeURIComponent(i.hash))}catch(e){t=o(i.hash)}if("#"===t){if(!T.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||"#top"!==t?n:document.documentElement)&&(e.preventDefault(),function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=A.location.hash;t=t||"",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||A.pageYOffset},document.title,t||A.location.href)}}(T),k.animateScroll(n,i))}}function n(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(T)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(o(history.state.anchor)))||k.animateScroll(t,null,{updateURL:!1})}}k.destroy=function(){T&&(document.removeEventListener("click",t,!1),A.removeEventListener("popstate",n,!1),k.cancelScroll(),S=E=i=T=null)};return function(){if(!("querySelector"in document&&"addEventListener"in A&&"requestAnimationFrame"in A&&"closest"in A.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";k.destroy(),T=N(D,e||{}),E=T.header?document.querySelector(T.header):null,document.addEventListener("click",t,!1),T.updateURL&&T.popstate&&A.addEventListener("popstate",n,!1)}(),k}}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(c){"use strict";function f(e,t,n){if(n.settings.events){var r=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t.dispatchEvent(r)}}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function p(e,t){var n,r,i=e[e.length-1];if(n=i,r=t,s()&&a(n.content,r,!0))return i;for(var o=e.length-1;0<=o;o--)if(a(e[o].content,t))return e[o]}function h(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),r(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}}var m={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},r=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.remove(t.nestedClass),r(n,t))}},g=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.add(t.nestedClass),g(n,t))}};return function(e,t){var n,r,i,o,a,s={};s.setup=function(){n=document.querySelectorAll(e),r=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&r.push({nav:e,content:t})}),d(r)},s.detect=function(){var e=p(r,a);e?i&&e.content===i.content||(h(i,a),function(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),g(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t}))}}(e,a),i=e):i&&(h(i,a),i=null)};function u(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(s.detect)}function l(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(function(){d(r),s.detect()})}s.destroy=function(){i&&h(i,a),c.removeEventListener("scroll",u,!1),a.reflow&&c.removeEventListener("resize",l,!1),a=o=i=n=r=null};return a=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(m,t||{}),s.setup(),s.detect(),c.addEventListener("scroll",u,!1),a.reflow&&c.addEventListener("resize",l,!1),s}}),$(document).ready(function(){$("#main").fitVids();function e(){(0===$(".author__urls-wrapper button").length?1024<$(window).width():!$(".author__urls-wrapper button").is(":visible"))?$(".sidebar").addClass("sticky"):$(".sidebar").removeClass("sticky")}e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").toggleClass("is--visible"),$(".author__urls-wrapper button").toggleClass("open")}),$(document).keyup(function(e){27===e.keyCode&&$(".initial-content").hasClass("is--hidden")&&($(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"))}),$(".search__toggle").on("click",function(){$(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"),setTimeout(function(){$(".search-content input").focus()},400)});new SmoothScroll('a[href*="#"]',{offset:20,speed:400,speedAsDuration:!0,durationMax:500});if(0<$("nav.toc").length)new Gumshoe("nav.toc a",{navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:20,reflow:!0,events:!0});$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),$(".page__content").find("h1, h2, h3, h4, h5, h6").each(function(){var e=$(this).attr("id");if(e){var t=document.createElement("a");t.className="header-link",t.href="#"+e,t.innerHTML='Permalink',t.title="Permalink",$(this).append(t)}})}); \ No newline at end of file diff --git a/assets/js/vendor/jquery/jquery-3.4.1.js b/assets/js/vendor/jquery/jquery-3.5.1.js similarity index 91% rename from assets/js/vendor/jquery/jquery-3.4.1.js rename to assets/js/vendor/jquery/jquery-3.5.1.js index 773ad95c56f8..50937333b99a 100644 --- a/assets/js/vendor/jquery/jquery-3.4.1.js +++ b/assets/js/vendor/jquery/jquery-3.5.1.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v3.4.1 + * jQuery JavaScript Library v3.5.1 * https://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * https://jquery.org/license * - * Date: 2019-05-01T21:04Z + * Date: 2020-05-04T22:49Z */ ( function( global, factory ) { @@ -47,13 +47,16 @@ var arr = []; -var document = window.document; - var getProto = Object.getPrototypeOf; var slice = arr.slice; -var concat = arr.concat; +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + var push = arr.push; @@ -86,6 +89,8 @@ var isWindow = function isWindow( obj ) { }; +var document = window.document; + var preservedScriptAttributes = { @@ -142,7 +147,7 @@ function toType( obj ) { var - version = "3.4.1", + version = "3.5.1", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -150,11 +155,7 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + }; jQuery.fn = jQuery.prototype = { @@ -220,6 +221,18 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -353,9 +366,10 @@ jQuery.extend( { return true; }, - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); }, each: function( obj, callback ) { @@ -379,13 +393,6 @@ jQuery.extend( { return obj; }, - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -472,7 +479,7 @@ jQuery.extend( { } // Flatten any nested arrays - return concat.apply( [], ret ); + return flat( ret ); }, // A global GUID counter for objects @@ -489,7 +496,7 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { +function( _i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); @@ -511,17 +518,16 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.4 + * Sizzle CSS Selector Engine v2.3.5 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2019-04-08 + * Date: 2020-03-14 */ -(function( window ) { - +( function( window ) { var i, support, Expr, @@ -561,59 +567,70 @@ var i, }, // Instance methods - hasOwn = ({}).hasOwnProperty, + hasOwn = ( {} ).hasOwnProperty, arr = [], pop = arr.pop, - push_native = arr.push, + pushNative = arr.push, push = arr.push, slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[i] === elem ) { + if ( list[ i ] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -625,14 +642,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -648,18 +667,21 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair high < 0 ? - // BMP codepoint String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -675,7 +697,8 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -700,18 +723,20 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - (arr = slice.call( preferredDoc.childNodes )), + ( arr = slice.call( preferredDoc.childNodes ) ), preferredDoc.childNodes ); + // Support: Android<4.0 // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - push_native.apply( target, slice.call(els) ); + pushNative.apply( target, slice.call( els ) ); } : // Support: IE<9 @@ -719,8 +744,9 @@ try { function( target, els ) { var j = target.length, i = 0; + // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} + while ( ( target[ j++ ] = els[ i++ ] ) ) {} target.length = j - 1; } }; @@ -744,24 +770,21 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } + setDocument( context ); context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { // ID selector - if ( (m = match[1]) ) { + if ( ( m = match[ 1 ] ) ) { // Document context if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { + if ( ( elem = context.getElementById( m ) ) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -780,7 +803,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && + if ( newContext && ( elem = newContext.getElementById( m ) ) && contains( context, elem ) && elem.id === m ) { @@ -790,12 +813,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[2] ) { + } else if ( match[ 2 ] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -806,11 +829,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && // Support: IE 8 only // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { newSelector = selector; newContext = context; @@ -819,27 +842,36 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); } newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; } try { @@ -872,12 +904,14 @@ function createCache() { var keys = []; function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries delete cache[ keys.shift() ]; } - return (cache[ key + " " ] = value); + return ( cache[ key + " " ] = value ); } return cache; } @@ -896,17 +930,19 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement("fieldset"); + var el = document.createElement( "fieldset" ); try { return !!fn( el ); - } catch (e) { + } catch ( e ) { return false; } finally { + // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } + // release memory in IE el = null; } @@ -918,11 +954,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split("|"), + var arr = attrs.split( "|" ), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; + Expr.attrHandle[ arr[ i ] ] = handler; } } @@ -944,7 +980,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( (cur = cur.nextSibling) ) { + while ( ( cur = cur.nextSibling ) ) { if ( cur === b ) { return -1; } @@ -972,7 +1008,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; + return ( name === "input" || name === "button" ) && elem.type === type; }; } @@ -1015,7 +1051,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -1037,21 +1073,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { + return markFunction( function( argument ) { argument = +argument; - return markFunction(function( seed, matches ) { + return markFunction( function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); } } - }); - }); + } ); + } ); } /** @@ -1073,7 +1109,7 @@ support = Sizzle.support = {}; */ isXML = Sizzle.isXML = function( elem ) { var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; + docElem = ( elem.ownerDocument || elem ).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -1091,7 +1127,11 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1100,10 +1140,14 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9-11, Edge + // Support: IE 9 - 11+, Edge 12 - 18+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1115,25 +1159,36 @@ setDocument = Sizzle.setDocument = function( node ) { } } + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert(function( el ) { + support.attributes = assert( function( el ) { el.className = "i"; - return !el.getAttribute("className"); - }); + return !el.getAttribute( "className" ); + } ); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1142,38 +1197,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { + support.getById = assert( function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); + } ); // ID filter and find if ( support.getById ) { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute("id") === attrId; + return elem.getAttribute( "id" ) === attrId; }; }; - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter["ID"] = function( id ) { + Expr.filter[ "ID" ] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); + elem.getAttributeNode( "id" ); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { + Expr.find[ "ID" ] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1181,7 +1236,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode("id"); + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1189,8 +1244,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); if ( node && node.value === id ) { return [ elem ]; } @@ -1203,7 +1258,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find["TAG"] = support.getElementsByTagName ? + Expr.find[ "TAG" ] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1218,12 +1273,13 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1235,7 +1291,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1256,10 +1312,14 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + // Build QSA regex // Regex strategy adopted from Diego Perini - assert(function( el ) { + assert( function( el ) { + + var input; + // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1273,78 +1333,98 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { + if ( !el.querySelectorAll( "[selected]" ).length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); + rbuggyQSA.push( ".#.+[+~]" ); } - }); - assert(function( el ) { + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); + var input = document.createElement( "input" ); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { + if ( el.querySelectorAll( "[name=d]" ).length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } + // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); } - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { - assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1353,11 +1433,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - }); + } ); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); /* Contains ---------------------------------------------------------------------- */ @@ -1374,11 +1454,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); + ) ); } : function( a, b ) { if ( b ) { - while ( (b = b.parentNode) ) { + while ( ( b = b.parentNode ) ) { if ( b === a ) { return true; } @@ -1407,7 +1487,11 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1415,13 +1499,24 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( a == document || a.ownerDocument == preferredDoc && + contains( preferredDoc, a ) ) { return -1; } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( b == document || b.ownerDocument == preferredDoc && + contains( preferredDoc, b ) ) { return 1; } @@ -1434,6 +1529,7 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { + // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1449,8 +1545,14 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + return a == document ? -1 : + b == document ? 1 : + /* eslint-enable eqeqeq */ aup ? -1 : bup ? 1 : sortInput ? @@ -1464,26 +1566,32 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { ap.unshift( cur ); } cur = b; - while ( (cur = cur.parentNode) ) { + while ( ( cur = cur.parentNode ) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { + while ( ap[ i ] === bp[ i ] ) { i++; } return i ? + // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : + siblingCheck( ap[ i ], bp[ i ] ) : // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + /* eslint-disable eqeqeq */ + ap[ i ] == preferredDoc ? -1 : + bp[ i ] == preferredDoc ? 1 : + /* eslint-enable eqeqeq */ 0; }; @@ -1495,10 +1603,7 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } + setDocument( elem ); if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -1510,12 +1615,13 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch (e) { + } catch ( e ) { nonnativeSelectorCache( expr, true ); } } @@ -1524,20 +1630,31 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { + // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( context.ownerDocument || context ) != document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { + // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( ( elem.ownerDocument || elem ) != document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1547,13 +1664,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); + return ( sel + "" ).replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1576,7 +1693,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { + while ( ( elem = results[ i++ ] ) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1604,17 +1721,21 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { + // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { + while ( ( node = elem[ i++ ] ) ) { + // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { + // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1623,6 +1744,7 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } + // Do not include comment or processing instruction nodes return ret; @@ -1650,19 +1772,21 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); + match[ 1 ] = match[ 1 ].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + match[ 3 ] = ( match[ 3 ] || match[ 4 ] || + match[ 5 ] || "" ).replace( runescape, funescape ); - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; + if ( match[ 2 ] === "~=" ) { + match[ 3 ] = " " + match[ 3 ] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1673,22 +1797,25 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[1] = match[1].toLowerCase(); + match[ 1 ] = match[ 1 ].toLowerCase(); + + if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); + if ( !match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + match[ 4 ] = +( match[ 4 ] ? + match[ 5 ] + ( match[ 6 ] || 1 ) : + 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); + match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); + // other types prohibit arguments + } else if ( match[ 3 ] ) { + Sizzle.error( match[ 0 ] ); } return match; @@ -1696,26 +1823,28 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[6] && match[2]; + unquoted = !match[ 6 ] && match[ 2 ]; - if ( matchExpr["CHILD"].test( match[0] ) ) { + if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { return null; } // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; + if ( match[ 3 ] ) { + match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && + ( excess = tokenize( unquoted, true ) ) && + // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); + match[ 0 ] = match[ 0 ].slice( 0, excess ); + match[ 2 ] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1728,7 +1857,9 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { return true; } : + function() { + return true; + } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1738,10 +1869,16 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); + ( pattern = new RegExp( "(^|" + whitespace + + ")" + className + "(" + whitespace + "|$)" ) ) && classCache( + className, function( elem ) { + return pattern.test( + typeof elem.className === "string" && elem.className || + typeof elem.getAttribute !== "undefined" && + elem.getAttribute( "class" ) || + "" + ); + } ); }, "ATTR": function( name, operator, check ) { @@ -1757,6 +1894,8 @@ Expr = Sizzle.selectors = { result += ""; + /* eslint-disable max-len */ + return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1765,10 +1904,12 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; + /* eslint-enable max-len */ + }; }, - "CHILD": function( type, what, argument, first, last ) { + "CHILD": function( type, what, _argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1780,7 +1921,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, context, xml ) { + function( elem, _context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1794,7 +1935,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( (node = node[ dir ]) ) { + while ( ( node = node[ dir ] ) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1802,6 +1943,7 @@ Expr = Sizzle.selectors = { return false; } } + // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1817,22 +1959,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( (node = ++nodeIndex && node && node[ dir ] || + while ( ( node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { + ( diff = nodeIndex = 0 ) || start.pop() ) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1842,16 +1984,18 @@ Expr = Sizzle.selectors = { } } else { + // Use previously-cached element index if available if ( useCache ) { + // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -1861,9 +2005,10 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { + while ( ( node = ++nodeIndex && node && node[ dir ] || + ( diff = nodeIndex = 0 ) || start.pop() ) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -1872,12 +2017,13 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); + outerCache = node[ expando ] || + ( node[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); + ( outerCache[ node.uniqueID ] = {} ); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -1898,6 +2044,7 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -1917,15 +2064,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { + markFunction( function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); + idx = indexOf( seed, matched[ i ] ); + seed[ idx ] = !( matches[ idx ] = matched[ i ] ); } - }) : + } ) : function( elem ) { return fn( elem, 0, args ); }; @@ -1936,8 +2083,10 @@ Expr = Sizzle.selectors = { }, pseudos: { + // Potentially complex pseudos - "not": markFunction(function( selector ) { + "not": markFunction( function( selector ) { + // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -1946,39 +2095,40 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { + markFunction( function( seed, matches, _context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); + if ( ( elem = unmatched[ i ] ) ) { + seed[ i ] = !( matches[ i ] = elem ); } } - }) : - function( elem, context, xml ) { - input[0] = elem; + } ) : + function( elem, _context, xml ) { + input[ 0 ] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) - input[0] = null; + input[ 0 ] = null; return !results.pop(); }; - }), + } ), - "has": markFunction(function( selector ) { + "has": markFunction( function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - }), + } ), - "contains": markFunction(function( text ) { + "contains": markFunction( function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - }), + } ), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -1988,25 +2138,26 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { + // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { + if ( !ridentifier.test( lang || "" ) ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( (elemLang = documentIsHTML ? + if ( ( elemLang = documentIsHTML ? elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); return false; }; - }), + } ), // Miscellaneous "target": function( elem ) { @@ -2019,7 +2170,9 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + return elem === document.activeElement && + ( !document.hasFocus || document.hasFocus() ) && + !!( elem.type || elem.href || ~elem.tabIndex ); }, // Boolean properties @@ -2027,16 +2180,20 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + return ( nodeName === "input" && !!elem.checked ) || + ( nodeName === "option" && !!elem.selected ); }, "selected": function( elem ) { + // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { + // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2045,6 +2202,7 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2058,7 +2216,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); + return !Expr.pseudos[ "empty" ]( elem ); }, // Element/input types @@ -2082,39 +2240,40 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + ( ( attr = elem.getAttribute( "type" ) ) == null || + attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo(function() { + "first": createPositionalPseudo( function() { return [ 0 ]; - }), + } ), - "last": createPositionalPseudo(function( matchIndexes, length ) { + "last": createPositionalPseudo( function( _matchIndexes, length ) { return [ length - 1 ]; - }), + } ), - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - }), + } ), - "even": createPositionalPseudo(function( matchIndexes, length ) { + "even": createPositionalPseudo( function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "odd": createPositionalPseudo(function( matchIndexes, length ) { + "odd": createPositionalPseudo( function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -2124,19 +2283,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - }), + } ), - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - }) + } ) } }; -Expr.pseudos["nth"] = Expr.pseudos["eq"]; +Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2167,37 +2326,39 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( !matched || ( match = rcomma.exec( soFar ) ) ) { if ( match ) { + // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; + soFar = soFar.slice( match[ 0 ].length ) || soFar; } - groups.push( (tokens = []) ); + groups.push( ( tokens = [] ) ); } matched = false; // Combinators - if ( (match = rcombinators.exec( soFar )) ) { + if ( ( match = rcombinators.exec( soFar ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, + // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); + type: match[ 0 ].replace( rtrim, " " ) + } ); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { + if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || + ( match = preFilters[ type ]( match ) ) ) ) { matched = match.shift(); - tokens.push({ + tokens.push( { value: matched, type: type, matches: match - }); + } ); soFar = soFar.slice( matched.length ); } } @@ -2214,6 +2375,7 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : + // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2223,7 +2385,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[i].value; + selector += tokens[ i ].value; } return selector; } @@ -2236,9 +2398,10 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? + // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2253,7 +2416,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2261,27 +2424,29 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( (elem = elem[ dir ]) ) { + while ( ( elem = elem[ dir ] ) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); + outerCache = elem[ expando ] || ( elem[ expando ] = {} ); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + uniqueCache = outerCache[ elem.uniqueID ] || + ( outerCache[ elem.uniqueID ] = {} ); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && + } else if ( ( oldCache = uniqueCache[ key ] ) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); + return ( newCache[ 2 ] = oldCache[ 2 ] ); } else { + // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { return true; } } @@ -2297,20 +2462,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { + if ( !matchers[ i ]( elem, context, xml ) ) { return false; } } return true; } : - matchers[0]; + matchers[ 0 ]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); + Sizzle( selector, contexts[ i ], results ); } return results; } @@ -2323,7 +2488,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { + if ( ( elem = unmatched[ i ] ) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2343,14 +2508,18 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction(function( seed, results, context, xml ) { + return markFunction( function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + elems = seed || multipleContexts( + selector || "*", + context.nodeType ? [ context ] : context, + [] + ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2358,6 +2527,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2381,8 +2551,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + if ( ( elem = temp[ i ] ) ) { + matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); } } } @@ -2390,25 +2560,27 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) ) { + if ( ( elem = matcherOut[ i ] ) ) { + // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); + temp.push( ( matcherIn[ i ] = elem ) ); } } - postFinder( null, (matcherOut = []), temp, xml ); + postFinder( null, ( matcherOut = [] ), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + if ( ( elem = matcherOut[ i ] ) && + ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - seed[temp] = !(results[temp] = elem); + seed[ temp ] = !( results[ temp ] = elem ); } } } @@ -2426,14 +2598,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - }); + } ); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], + leadingRelative = Expr.relative[ tokens[ 0 ].type ], + implicitRelative = leadingRelative || Expr.relative[ " " ], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2445,38 +2617,43 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? + ( checkContext = context ).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { + matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { + if ( Expr.relative[ tokens[ j ].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens + .slice( 0, i - 1 ) + .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), j < len && toSelector( tokens ) ); } @@ -2497,28 +2674,40 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, + // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), len = elems.length; if ( outermost ) { - outermostContext = context === document || context || outermost; + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + outermostContext = context == document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { if ( byElement && elem ) { j = 0; - if ( !context && elem.ownerDocument !== document ) { + + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( !context && elem.ownerDocument != document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { + while ( ( matcher = elementMatchers[ j++ ] ) ) { + if ( matcher( elem, context || document, xml ) ) { results.push( elem ); break; } @@ -2530,8 +2719,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { + // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { + if ( ( elem = !matcher && elem ) ) { matchedCount--; } @@ -2555,16 +2745,17 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( (matcher = setMatchers[j++]) ) { + while ( ( matcher = setMatchers[ j++ ] ) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); + if ( !( unmatched[ i ] || setMatched[ i ] ) ) { + setMatched[ i ] = pop.call( results ); } } } @@ -2605,13 +2796,14 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[i] ); + cached = matcherFromTokens( match[ i ] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2620,7 +2812,10 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + cached = compilerCache( + selector, + matcherFromGroupMatchers( elementMatchers, setMatchers ) + ); // Save selector and tokenization cached.selector = selector; @@ -2640,7 +2835,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); + match = !seed && tokenize( ( selector = compiled.selector || selector ) ); results = results || []; @@ -2649,11 +2844,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + tokens = match[ 0 ] = match[ 0 ].slice( 0 ); + if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + context = ( Expr.find[ "ID" ]( token.matches[ 0 ] + .replace( runescape, funescape ), context ) || [] )[ 0 ]; if ( !context ) { return results; @@ -2666,20 +2862,22 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[i]; + token = tokens[ i ]; // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { + if ( Expr.relative[ ( type = token.type ) ] ) { break; } - if ( (find = Expr.find[ type ]) ) { + if ( ( find = Expr.find[ type ] ) ) { + // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { + if ( ( seed = find( + token.matches[ 0 ].replace( runescape, funescape ), + rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || + context + ) ) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2710,7 +2908,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; +support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2721,58 +2919,59 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { +support.sortDetached = assert( function( el ) { + // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); + return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; +} ); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { +if ( !assert( function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { + return el.firstChild.getAttribute( "href" ) === "#"; +} ) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - }); + } ); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { +if ( !support.attributes || !assert( function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { +} ) ) { + addHandle( "value", function( elem, _name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - }); + } ); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { +if ( !assert( function( el ) { + return el.getAttribute( "disabled" ) == null; +} ) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? + ( val = elem.getAttributeNode( name ) ) && val.specified ? val.value : - null; + null; } - }); + } ); } return Sizzle; -})( window ); +} )( window ); @@ -3141,7 +3340,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, i, until ) { + parentsUntil: function( elem, _i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3156,10 +3355,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, i, until ) { + nextUntil: function( elem, _i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, i, until ) { + prevUntil: function( elem, _i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3169,7 +3368,13 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { + if ( elem.contentDocument != null && + + // Support: IE 11+ + // elements with no `data` attribute has an object + // `contentDocument` with a `null` prototype. + getProto( elem.contentDocument ) ) { + return elem.contentDocument; } @@ -3512,7 +3717,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { + jQuery.each( tuples, function( _i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -3965,7 +4170,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, key, value ) { + fn = function( elem, _key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -4000,7 +4205,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { +function fcamelCase( _all, letter ) { return letter.toUpperCase(); } @@ -4528,27 +4733,6 @@ var isHiddenWithinTree = function( elem, el ) { jQuery.css( elem, "display" ) === "none"; }; -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - function adjustCSS( elem, prop, valueParts, tween ) { @@ -4719,11 +4903,40 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -// We have to close these tags to support XHTML (#13200) -var wrapMap = { +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; // Support: IE <=9 only - option: [ 1, "" ], + // IE <=9 replaces "; + support.option = !!div.lastChild; +} )(); + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten @@ -4736,12 +4949,14 @@ var wrapMap = { _default: [ 0, "", "" ] }; -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; +// Support: IE <=9 only +if ( !support.option ) { + wrapMap.optgroup = wrapMap.option = [ 1, "" ]; +} + function getAll( context, tag ) { @@ -4874,32 +5089,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, @@ -5008,8 +5197,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { + // Only attach events to objects that accept data + if ( !acceptData( elem ) ) { return; } @@ -5033,7 +5222,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = {}; + events = elemData.events = Object.create( null ); } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5191,12 +5380,15 @@ jQuery.event = { dispatch: function( nativeEvent ) { - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( nativeEvent ), + + handlers = ( + dataPriv.get( this, "events" ) || Object.create( null ) + )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5771,13 +5963,6 @@ jQuery.fn.extend( { var - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5814,7 +5999,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + var i, l, type, pdataOld, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -5822,13 +6007,11 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); + pdataOld = dataPriv.get( src ); events = pdataOld.events; if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; + dataPriv.remove( dest, "handle events" ); for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -5864,7 +6047,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = concat.apply( [], args ); + args = flat( args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -5939,7 +6122,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - } ); + }, doc ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -5976,7 +6159,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); + return html; }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { @@ -6238,6 +6421,27 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; +var swap = function( elem, options, callback ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.call( elem ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6295,7 +6499,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, + reliableTrDimensionsVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6330,6 +6534,35 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; + }, + + // Support: IE 9 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Behavior in IE 9 is more subtle than in newer versions & it passes + // some versions of this test; make sure not to make it pass there! + reliableTrDimensions: function() { + var table, tr, trChild, trStyle; + if ( reliableTrDimensionsVal == null ) { + table = document.createElement( "table" ); + tr = document.createElement( "tr" ); + trChild = document.createElement( "div" ); + + table.style.cssText = "position:absolute;left:-11111px"; + tr.style.height = "1px"; + trChild.style.height = "9px"; + + documentElement + .appendChild( table ) + .appendChild( tr ) + .appendChild( trChild ); + + trStyle = window.getComputedStyle( tr ); + reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; + + documentElement.removeChild( table ); + } + return reliableTrDimensionsVal; } } ); } )(); @@ -6454,7 +6687,7 @@ var fontWeight: "400" }; -function setPositiveNumber( elem, value, subtract ) { +function setPositiveNumber( _elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6559,17 +6792,26 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box + // Support: IE 9 - 11 only + // Use offsetWidth/offsetHeight for when box sizing is unreliable. + // In those cases, the computed value can be trusted to be border-box. if ( ( !support.boxSizingReliable() && isBorderBox || + + // Support: IE 10 - 11+, Edge 15 - 18+ + // IE/Edge misreport `getComputedStyle` of table rows with width/height + // set in CSS while `offset*` properties report correct values. + // Interestingly, in some cases IE 9 doesn't suffer from this issue. + !support.reliableTrDimensions() && nodeName( elem, "tr" ) || + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || + + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + + // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -6764,7 +7006,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( i, dimension ) { +jQuery.each( [ "height", "width" ], function( _i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -7537,7 +7779,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue && type !== false ) { + if ( clearQueue ) { this.queue( type || "fx", [] ); } @@ -7620,7 +7862,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -7841,7 +8083,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -8465,7 +8707,9 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + handle = ( + dataPriv.get( cur, "events" ) || Object.create( null ) + )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8576,7 +8820,10 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - var doc = this.ownerDocument || this, + + // Handle: regular nodes (via `this.ownerDocument`), window + // (via `this.document`) & document (via `this`). + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8585,7 +8832,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this, + var doc = this.ownerDocument || this.document || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8601,7 +8848,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = Date.now(); +var nonce = { guid: Date.now() }; var rquery = ( /\?/ ); @@ -8733,7 +8980,7 @@ jQuery.fn.extend( { rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) - .map( function( i, elem ) { + .map( function( _i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9346,7 +9593,8 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9479,6 +9727,11 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } + // Use a noop converter for missing script + if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { + s.converters[ "text script" ] = function() {}; + } + // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9569,7 +9822,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( i, method ) { +jQuery.each( [ "get", "post" ], function( _i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -9590,8 +9843,17 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; } ); +jQuery.ajaxPrefilter( function( s ) { + var i; + for ( i in s.headers ) { + if ( i.toLowerCase() === "content-type" ) { + s.contentType = s.headers[ i ] || ""; + } + } +} ); + -jQuery._evalUrl = function( url, options ) { +jQuery._evalUrl = function( url, options, doc ) { return jQuery.ajax( { url: url, @@ -9609,7 +9871,7 @@ jQuery._evalUrl = function( url, options ) { "text script": function() {} }, dataFilter: function( response ) { - jQuery.globalEval( response, options ); + jQuery.globalEval( response, options, doc ); } } ); }; @@ -9931,7 +10193,7 @@ var oldCallbacks = [], jQuery.ajaxSetup( { jsonp: "callback", jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); this[ callback ] = true; return callback; } @@ -10148,23 +10410,6 @@ jQuery.fn.load = function( url, params, callback ) { -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -} ); - - - - jQuery.expr.pseudos.animated = function( elem ) { return jQuery.grep( jQuery.timers, function( fn ) { return elem === fn.elem; @@ -10221,6 +10466,12 @@ jQuery.offset = { options.using.call( elem, props ); } else { + if ( typeof props.top === "number" ) { + props.top += "px"; + } + if ( typeof props.left === "number" ) { + props.left += "px"; + } curElem.css( props ); } } @@ -10371,7 +10622,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( i, prop ) { +jQuery.each( [ "top", "left" ], function( _i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { @@ -10434,25 +10685,19 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); +jQuery.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( _i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); }; } ); -jQuery.fn.extend( { - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); - } -} ); - @@ -10474,9 +10719,33 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + }, + + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( _i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; + } ); + + + + +// Support: Android <=4.0 only +// Make sure we trim BOM and NBSP +var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + // Bind a function to a context, optionally partially applying any // arguments. // jQuery.proxy is deprecated to promote standards (specifically Function#bind) @@ -10539,6 +10808,11 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; +jQuery.trim = function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); +}; @@ -10587,7 +10861,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( !noGlobal ) { +if ( typeof noGlobal === "undefined" ) { window.jQuery = window.$ = jQuery; } diff --git a/docs/_docs/17-javascript.md b/docs/_docs/17-javascript.md index 3d8ad948e559..072fc3f92cc2 100644 --- a/docs/_docs/17-javascript.md +++ b/docs/_docs/17-javascript.md @@ -20,7 +20,7 @@ minimal mistakes | | | └── smooth-scroll.js # make same-page links scroll smoothly | | ├── vendor | | | └── jquery -| | | └── jquery-3.4.1.js +| | | └── jquery-3.5.1.js | | ├── _main.js # jQuery plugin settings and other scripts | | └── main.min.js # concatenated and minified theme script ``` diff --git a/package-lock.json b/package-lock.json index 372809183b57..01b36f8276ac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,854 @@ { "name": "minimal-mistakes", - "version": "4.20.1", - "lockfileVersion": 1, + "version": "4.20.2", + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "version": "4.20.2", + "license": "MIT", + "devDependencies": { + "npm-run-all": "^4.1.5", + "onchange": "^6.1.0", + "uglify-js": "^3.8.0" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/@blakeembrey/deque": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@blakeembrey/deque/-/deque-1.0.5.tgz", + "integrity": "sha512-6xnwtvp9DY1EINIKdTfvfeAtCYw4OqBZJhtiqkT3ivjnEfa25VQ3TsKvaFfKm8MyGIEfE95qLe+bNEt3nB0Ylg==", + "dev": true + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", + "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/onchange": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/onchange/-/onchange-6.1.0.tgz", + "integrity": "sha512-T0wvi3yzNd+Lut2ymJp2e6fTiob0TLrXnjqGaiK9MAFB8MYo/k/ZClx6ps7YhTtQ88dDm+hDHmtJXP1nJT5WNA==", + "dev": true, + "dependencies": { + "@blakeembrey/deque": "^1.0.3", + "arrify": "^2.0.0", + "chokidar": "^3.0.0", + "cross-spawn": "^6.0.0", + "ignore": "^5.1.4", + "minimist": "^1.2.0", + "supports-color": "^7.0.0", + "tree-kill": "^1.2.0" + }, + "bin": { + "onchange": "cli.js" + } + }, + "node_modules/onchange/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/onchange/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pidtree": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz", + "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.0.7" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.1.tgz", + "integrity": "sha512-2kUqeAGnMAu6YrTPX4E3LfxacH9gKljzVjlkUeSqY0soGwK4KLl7TURXCem712tkhBCeeaFP9QK4dKn88s3Icg==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "node_modules/string.prototype.padend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "es-abstract": "^1.4.3", + "function-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/uglify-js": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz", + "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==", + "dev": true, + "dependencies": { + "commander": "~2.20.3", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + } + }, "dependencies": { "@blakeembrey/deque": { "version": "1.0.5", diff --git a/package.json b/package.json index d94faa121f45..fc9f744fba87 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "minimal-mistakes", + "private": true, "version": "4.20.2", "description": "Minimal Mistakes 2 column Jekyll theme.", "repository": { @@ -26,7 +27,7 @@ "uglify-js": "^3.8.0" }, "scripts": { - "uglify": "uglifyjs assets/js/vendor/jquery/jquery-3.4.1.js assets/js/plugins/jquery.fitvids.js assets/js/plugins/jquery.greedy-navigation.js assets/js/plugins/jquery.magnific-popup.js assets/js/plugins/jquery.ba-throttle-debounce.js assets/js/plugins/smooth-scroll.js assets/js/plugins/gumshoe.js assets/js/_main.js -c -m -o assets/js/main.min.js", + "uglify": "uglifyjs assets/js/vendor/jquery/jquery-3.5.1.js assets/js/plugins/jquery.fitvids.js assets/js/plugins/jquery.greedy-navigation.js assets/js/plugins/jquery.magnific-popup.js assets/js/plugins/jquery.ba-throttle-debounce.js assets/js/plugins/smooth-scroll.js assets/js/plugins/gumshoe.js assets/js/_main.js -c -m -o assets/js/main.min.js", "add-banner": "node banner.js", "watch:js": "onchange \"assets/js/**/*.js\" -e \"assets/js/main.min.js\" -- npm run build:js", "build:js": "npm run uglify && npm run add-banner" From d993845dfdc5b505e25f6a60e57be36bbebf5e4d Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 2 Nov 2020 11:26:10 -0500 Subject: [PATCH 182/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db9071802147..7f41f2aa9955 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ## Enhancements +- Update jQuery to 3.5.1. [#2713](https://github.com/mmistakes/minimal-mistakes/pull/2713) - Add Indonesian localized UI text strings. [#2725](https://github.com/mmistakes/minimal-mistakes/pull/2725) - Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 451cee648354..b9d90334c0d0 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-11-02T11:24:24-05:00 +last_modified_at: 2020-11-02T11:25:57-05:00 toc: false --- @@ -20,6 +20,7 @@ toc: false ## Enhancements +- Update jQuery to 3.5.1. [#2713](https://github.com/mmistakes/minimal-mistakes/pull/2713) - Add Indonesian localized UI text strings. [#2725](https://github.com/mmistakes/minimal-mistakes/pull/2725) - Update Vietnamese localized UI text strings. [#2722](https://github.com/mmistakes/minimal-mistakes/pull/2722) - Add Norwegian (Norsk) localized UI text strings. [#2702](https://github.com/mmistakes/minimal-mistakes/pull/2702) From 144cfee5b7f01a6f43a2689e9e640f876d475664 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Mon, 2 Nov 2020 11:35:14 -0500 Subject: [PATCH 183/317] =?UTF-8?q?Release=204.21.0=20=F0=9F=92=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- README.md | 2 +- _layouts/default.html | 2 +- _sass/minimal-mistakes.scss | 2 +- assets/js/main.min.js | 2 +- docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/04-upgrading.md | 6 +++--- docs/_docs/18-history.md | 4 ++-- docs/_layouts/default.html | 2 +- docs/_pages/home.md | 2 +- minimal-mistakes-jekyll.gemspec | 2 +- package.json | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f41f2aa9955..7638bccbbb14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## [4.21.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.21.0) ### Bug Fixes diff --git a/README.md b/README.md index 6952c717bf79..99b44af50200 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ To install: bundle ``` -4. Add `remote_theme: "mmistakes/minimal-mistakes@4.20.2"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. +4. Add `remote_theme: "mmistakes/minimal-mistakes@4.21.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. **Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed. diff --git a/_layouts/default.html b/_layouts/default.html index 0e25dc7cd87f..573d645f64e3 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ - From e61476d0a9a004a0b7f2a7722481fa5589be9044 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 8 Dec 2020 22:47:06 -0500 Subject: [PATCH 194/317] Delete feature_request.md --- .github/ISSUE_TEMPLATE/feature_request.md | 32 ----------------------- 1 file changed, 32 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 8477f6364487..000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: "Enhancement / Feature Request" -about: "What would make this theme better?" ---- - - - -## Summary - - - -## Motivation - - - -## Drawbacks - - \ No newline at end of file From faf86f59e9f897c5ed8928b6cf01ba0028402458 Mon Sep 17 00:00:00 2001 From: iBug Date: Fri, 11 Dec 2020 03:41:57 +0800 Subject: [PATCH 195/317] Update allejo/jekyll-toc to v1.1.0, skip headings without an ID (#2752) * Update allejo/jekyll-toc to v1.1.0, skip headings without an ID https://github.com/allejo/jekyll-toc/releases/tag/v1.1.0 * Update CHANGELOG and history --- CHANGELOG.md | 3 +- _includes/toc.html | 148 +++++++++++++++++++++------------------ _layouts/single.html | 2 +- docs/_docs/14-helpers.md | 2 +- docs/_docs/18-history.md | 3 +- 5 files changed, 86 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 729654b20759..b69f4eaac201 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) +- Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) ## [4.21.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.21.0) @@ -17,7 +18,7 @@ - Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) -- Fix a small type in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) +- Fix a small typo in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) ### Enhancements diff --git a/_includes/toc.html b/_includes/toc.html index e6c1cb4ae603..8c7100722734 100644 --- a/_includes/toc.html +++ b/_includes/toc.html @@ -24,7 +24,7 @@ OTHER DEALINGS IN THE SOFTWARE. {% endcomment %} {% comment %} - Version 1.0.14 + Version 1.1.0 https://github.com/allejo/jekyll-toc "...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe @@ -44,34 +44,51 @@ * ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list * item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level * submenu_class (string) : '' - add custom class(es) for each child group of headings; has support for '%level%' placeholder which is the current "submenu" heading level - * baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content + * base_url (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content * anchor_class (string) : '' - add custom class(es) for each anchor element - * skipNoIDs (bool) : false - skip headers that do not have an `id` attribute + * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute Output: An ordered or unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it {% endcomment %} - {% capture my_toc %}{% endcapture %} + {% capture newline %} + {% endcapture %} + {% assign newline = newline | rstrip %} + + {% capture deprecation_warnings %}{% endcapture %} + + {% if include.baseurl %} + {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %} + {% endif %} + + {% if include.skipNoIDs %} + {% capture deprecation_warnings %}{{ deprecation_warnings }}{{ newline }}{% endcapture %} + {% endif %} + + {% capture jekyll_toc %}{% endcapture %} {% assign orderedList = include.ordered | default: false %} - {% assign skipNoIDs = include.skipNoIDs | default: false %} + {% assign baseURL = include.base_url | default: include.baseurl | default: '' %} + {% assign skipNoIDs = include.skip_no_ids | default: include.skipNoIDs | default: false %} {% assign minHeader = include.h_min | default: 1 %} {% assign maxHeader = include.h_max | default: 6 %} - {% assign nodes = include.html | split: ' maxHeader %} + {% if currLevel < minHeader or currLevel > maxHeader %} {% continue %} {% endif %} @@ -79,92 +96,87 @@ {% assign _idWorkspace = _workspace[0] | split: 'id="' %} {% assign _idWorkspace = _idWorkspace[1] | split: '"' %} - {% assign html_id = _idWorkspace[0] %} + {% assign htmlID = _idWorkspace[0] %} {% assign _classWorkspace = _workspace[0] | split: 'class="' %} {% assign _classWorkspace = _classWorkspace[1] | split: '"' %} - {% assign html_class = _classWorkspace[0] %} + {% assign htmlClass = _classWorkspace[0] %} - {% if html_class contains "no_toc" %} + {% if htmlClass contains "no_toc" %} {% continue %} {% endif %} {% if firstHeader %} - {% assign firstHeader = false %} - {% assign minHeader = headerLevel %} + {% assign minHeader = currLevel %} {% endif %} {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %} {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} - {% assign indentAmount = headerLevel | minus: minHeader %} - {% assign space = '' %} - {% for i in (1..indentAmount) %} - {% assign space = space | prepend: ' ' %} - {% endfor %} - {% if include.item_class and include.item_class != blank %} - {% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %} + {% capture listItemClass %} class="{{ include.item_class | replace: '%level%', currLevel | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} + + {% if include.submenu_class and include.submenu_class != blank %} + {% assign subMenuLevel = currLevel | minus: 1 %} + {% capture subMenuClass %} class="{{ include.submenu_class | replace: '%level%', subMenuLevel | split: '.' | join: ' ' }}"{% endcapture %} {% endif %} - {% capture anchor_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} - {% capture anchor_body %}{{ anchor_body | replace: "|", "\|" }}{% endcapture %} + {% capture anchorBody %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %} + + {% if htmlID %} + {% capture anchorAttributes %} href="{% if baseURL %}{{ baseURL }}{% endif %}#{{ htmlID }}"{% endcapture %} + + {% if include.anchor_class %} + {% capture anchorAttributes %}{{ anchorAttributes }} class="{{ include.anchor_class | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} - {% if html_id %} - {% capture list_item %}[{{ anchor_body }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %} + {% capture listItem %}{{ anchorBody }}{% endcapture %} {% elsif skipNoIDs == true %} {% continue %} {% else %} - {% capture list_item %}{{ anchor_body }}{% endcapture %} + {% capture listItem %}{{ anchorBody }}{% endcapture %} {% endif %} - - {% if include.submenu_class and previousLevel > indentAmount %} - - {% assign submenuIndentation = space | prepend: ' ' %} - - {% capture my_toc %}{{ my_toc }} -{{ submenuIndentation }}{:.{{ include.submenu_class | replace: '%level%', previousLevel }}}{% endcapture %} + {% if currLevel > lastLevel %} + {% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %} + {% elsif currLevel < lastLevel %} + {% assign repeatCount = lastLevel | minus: currLevel %} + + {% for i in (1..repeatCount) %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% endfor %} + + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% else %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} {% endif %} - {% capture my_toc %}{{ my_toc }} -{{ space }}{{ listModifier }} {{ listItemClass }} {{ list_item }}{% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %} + {% capture jekyll_toc %}{{ jekyll_toc }}{{ listItem }}{% endcapture %} - {% assign previousLevel = indentAmount %} + {% assign lastLevel = currLevel %} + {% assign firstHeader = false %} {% endfor %} - {% if include.class and include.class != blank %} - {% capture my_toc %}{:.{{ include.class }}} -{{ my_toc | lstrip }}{% endcapture %} - {% endif %} + {% assign repeatCount = minHeader | minus: 1 %} + {% assign repeatCount = lastLevel | minus: repeatCount %} + {% for i in (1..repeatCount) %} + {% capture jekyll_toc %}{{ jekyll_toc }}{% endcapture %} + {% endfor %} - {% if include.id %} - {% capture my_toc %}{: #{{ include.id }}} -{{ my_toc | lstrip }}{% endcapture %} - {% endif %} + {% if jekyll_toc != '' %} + {% assign rootAttributes = '' %} + {% if include.class and include.class != blank %} + {% capture rootAttributes %} class="{{ include.class | split: '.' | join: ' ' }}"{% endcapture %} + {% endif %} - - {% if include.submenu_class != blank %} - - {% for i in (1..previousLevel) %} - {% assign lvl = previousLevel | plus: 1 | minus: i %} - {% assign closingSpace = '' %} - - {% for i in (1..lvl) %} - {% assign closingSpace = closingSpace | prepend: ' ' %} - {% endfor %} + {% if include.id and include.id != blank %} + {% capture rootAttributes %}{{ rootAttributes }} id="{{ include.id }}"{% endcapture %} + {% endif %} - {% capture my_toc %}{{ my_toc }} -{{ closingSpace }}{:.{{ include.submenu_class | replace: '%level%', lvl }}}{% endcapture %} - {% endfor %} + {% if rootAttributes %} + {% assign nodes = jekyll_toc | split: '>' %} + {% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %} + {% endif %} {% endif %} -{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }} +{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc }} diff --git a/_layouts/single.html b/_layouts/single.html index 71cb4e83dc66..d74002b7ddd0 100644 --- a/_layouts/single.html +++ b/_layouts/single.html @@ -36,7 +36,7 @@ {% endif %} diff --git a/docs/_docs/14-helpers.md b/docs/_docs/14-helpers.md index c80b285886b3..59ac01713f0c 100644 --- a/docs/_docs/14-helpers.md +++ b/docs/_docs/14-helpers.md @@ -249,7 +249,7 @@ To embed the following Bilibili video at url `https://www.bilibili.com/video/BV1 {% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" %}{% endraw %} ``` -If you want to enable danmaku (弹幕) for the embedded video, which is disabled by default, you can supply an additional parameter `danmaku="1"` as shown below: +If you want to enable danmaku (弹幕) for the embedded video, which is disabled by default, you can supply an additional parameter `danmaku="1"` as shown below: ```liquid {% raw %}{% include video id="BV1E7411e7hC" provider="bilibili" danmaku="1" %}{% endraw %} diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index f0520d5187d1..2e1791ce202d 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -20,6 +20,7 @@ toc: false - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) +- Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) ## [4.21.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.21.0) @@ -28,7 +29,7 @@ toc: false - Fix greedy navigation by improving reliability of remaining space for visible links. [#2664](https://github.com/mmistakes/minimal-mistakes/issues/2664) - Collapse white-space in `figure` helper to fix issues when used in Markdown ordered and unordered lists. [#2697](https://github.com/mmistakes/minimal-mistakes/pull/2697) - Fix dead link to CI services in documentation. [#2635](https://github.com/mmistakes/minimal-mistakes/issues/2635) [#2692](https://github.com/mmistakes/minimal-mistakes/pull/2692) -- Fix a small type in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) +- Fix a small typo in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718) ### Enhancements From fe77557d60844ff28ed1a7d566d28bc2885eb00a Mon Sep 17 00:00:00 2001 From: gricn Date: Sat, 6 Feb 2021 09:10:08 +0800 Subject: [PATCH 196/317] Add toc_sticky parameter's description (#2741) --- docs/_docs/10-layouts.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 458f169d16c1..22f72fd3bc94 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -129,6 +129,7 @@ Auto-generated table of contents list for your posts and pages can be enabled by | **toc** | Optional | Show table of contents. (boolean) | `false` | | **toc_label** | Optional | Table of contents title. (string) | `toc_label` in UI Text data file. | | **toc_icon** | Optional | Table of contents icon, displays before the title. (string) | [Font Awesome](https://fontawesome.com/icons?d=gallery&s=solid&m=free) **file-alt** icon. Other FA icons can be used instead. | +| **toc_sticky** | Optional | Stick table of contents to top of screen. | `false` | **TOC example with custom title and icon** From 5ef9af5fe551661b440dcd09577699a652ca98ae Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:11:18 -0500 Subject: [PATCH 197/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b69f4eaac201..9eadf7e2a67f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Update documentation to inclue `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 2e1791ce202d..b3ee284a650d 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2020-11-14T18:10:28-05:00 +last_modified_at: 2021-02-05T20:11:02-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Update documentation to inclue `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) From 5d52384b855213af4ef95b177ea1b63819c07b39 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:12:48 -0500 Subject: [PATCH 198/317] Fix typo --- CHANGELOG.md | 2 +- docs/_docs/18-history.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eadf7e2a67f..c7a58b59128d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ ### Enhancements -- Update documentation to inclue `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) +- Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index b3ee284a650d..6b3d805c4fed 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -18,7 +18,7 @@ toc: false ### Enhancements -- Update documentation to inclue `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) +- Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) From 08c53cb804cc6a66ff79a06ca20f5b2abe939190 Mon Sep 17 00:00:00 2001 From: Uri Brecher Date: Sat, 6 Feb 2021 03:12:56 +0200 Subject: [PATCH 199/317] Add hebrew translation (#2760) --- _data/ui-text.yml | 55 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/_data/ui-text.yml b/_data/ui-text.yml index 84bddf083f59..6c26b3602fc7 100644 --- a/_data/ui-text.yml +++ b/_data/ui-text.yml @@ -1852,6 +1852,59 @@ no-NB: no-NN: <<: *DEFAULT_NO +# Hebrew +# ------- +he: &DEFAULT_HE + skip_links : "דלגו על קישור" + skip_primary_nav : "דלגו לראשי" + skip_content : "דלגו לתוכן" + skip_footer : "דלגו לתחתית" + page : "דף" + pagination_previous : "קודם" + pagination_next : "הבא" + breadcrumb_home_label : "בית" + breadcrumb_separator : "/" + menu_label : "סגירה/פתיחה של תפריט" + search_label : "סגירה/פתיחה של חיפוש" + toc_label : "בדף זה" + ext_link_label : "קישור ישיר" + less_than : "פחות מ" + minute_read : "דקת קריאה" + share_on_label : "שתפו ב" + meta_label : + tags_label : "תגיות:" + categories_label : "קטגוריות:" + date_label : "מעודכן:" + comments_label : "השאירו הערה" + comments_title : "הערות" + more_label : "קראו עוד" + related_label : "אולי יעניין אותך גם" + follow_label : "עקבו אחרי" + feed_label : "פיד" + powered_by : "Powered by" + website_label : "אתר" + email_label : "אימייל" + recent_posts : "פוסטים אחרונים" + undefined_wpm : "Undefined parameter words_per_minute at _config.yml" + comment_form_info : "האימייל שלך נשמר חסוי. שדות חובה מסומנים" + comment_form_comment_label : "הערה" + comment_form_md_info : "Markdown is supported." + comment_form_name_label : "שם" + comment_form_email_label : "כתובת אימייל" + comment_form_website_label : "אתר (אפשרות)" + comment_btn_submit : "שלחו הערה" + comment_btn_submitted : "נשלח" + comment_success_msg : "תודה על ההערה שלך! היא תופיע באתר ברגע שתאושר." + comment_error_msg : "סליחה, קרתה תקלה בשליחה. אנא וודאו שכל השדות מלאים ונסו שנית." + loading_label : "טוען..." + search_label_text : "מילות חיפוש..." + search_placeholder_text : "מילות חיפוש..." + search_algolia_no_results : "אין תוצאות" + results_found : "תוצאות נמצאו" + back_to_top : "חזרה להתחלה" +he-IL: + <<: *DEFAULT_HE + # Another locale # -------------- -# +# \ No newline at end of file From db9cff2ade9a1ef83bbcfa946b858b8eb76a2285 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:13:39 -0500 Subject: [PATCH 200/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7a58b59128d..5f456c88b55d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 6b3d805c4fed..31fbbb038614 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:11:02-05:00 +last_modified_at: 2021-02-05T20:13:31-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) From 784264d1e665d95f378ae36afe817a36ce500cfa Mon Sep 17 00:00:00 2001 From: PHOENiX Date: Sat, 6 Feb 2021 01:14:21 +0000 Subject: [PATCH 201/317] Add .webp to supported lightbox images (#2788) --- assets/js/_main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/_main.js b/assets/js/_main.js index 82e1194431c3..0efc970269fa 100644 --- a/assets/js/_main.js +++ b/assets/js/_main.js @@ -83,7 +83,7 @@ $(document).ready(function() { // add lightbox class to all image links $( - "a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']" + "a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']" ).addClass("image-popup"); // Magnific-Popup options From 0fe0d839763851bcaf5a1ba76544312fb7b9c930 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:15:23 -0500 Subject: [PATCH 202/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f456c88b55d..406851a78839 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 31fbbb038614..e850fefabc2c 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:13:31-05:00 +last_modified_at: 2021-02-05T20:15:16-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] From 4b29913413db872ae2e580e893a1cbcae70fc119 Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Fri, 5 Feb 2021 20:15:46 -0500 Subject: [PATCH 203/317] Remove google's fixurl.js from example (#2789) Unfortunately, it no longer exists. --- test/_pages/404.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/test/_pages/404.md b/test/_pages/404.md index 9d0f86066123..b3025a6053b5 100644 --- a/test/_pages/404.md +++ b/test/_pages/404.md @@ -5,12 +5,4 @@ sitemap: false permalink: /404.html --- -Sorry, but the page you were trying to view does not exist --- perhaps you can try searching for it below. - - - +Sorry, but the page you were trying to view does not exist. From 20f45e1d01314950ddeb7577c14e3c9896804bd2 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:17:12 -0500 Subject: [PATCH 204/317] Update CHANGELOG and history --- CHANGELOG.md | 2 +- docs/_docs/18-history.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 406851a78839..3a966e2354a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ### Bug Fixes -- Remove Google Search script from `404.md`. [#2597](https://github.com/mmistakes/minimal-mistakes/issues/2597) [#2737](https://github.com/mmistakes/minimal-mistakes/pull/2737) +- Remove Google Search script from `404.md`. [#2597](https://github.com/mmistakes/minimal-mistakes/issues/2597) [#2737](https://github.com/mmistakes/minimal-mistakes/pull/2737) [#2789](https://github.com/mmistakes/minimal-mistakes/pull/2789) - Fix Font Awesome icon color in `contrast`, `dark`, `mint`, `neon`, `plum`, and `sunrise` skins. [#2724](https://github.com/mmistakes/minimal-mistakes/issues/2724) ### Enhancements diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index e850fefabc2c..777a5592ebac 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:15:16-05:00 +last_modified_at: 2021-02-05T20:17:06-05:00 toc: false --- @@ -13,7 +13,7 @@ toc: false ### Bug Fixes -- Remove Google Search script from `404.md`. [#2597](https://github.com/mmistakes/minimal-mistakes/issues/2597) [#2737](https://github.com/mmistakes/minimal-mistakes/pull/2737) +- Remove Google Search script from `404.md`. [#2597](https://github.com/mmistakes/minimal-mistakes/issues/2597) [#2737](https://github.com/mmistakes/minimal-mistakes/pull/2737) [#2789](https://github.com/mmistakes/minimal-mistakes/pull/2789) - Fix Font Awesome icon color in `contrast`, `dark`, `mint`, `neon`, `plum`, and `sunrise` skins. [#2724](https://github.com/mmistakes/minimal-mistakes/issues/2724) ### Enhancements From 0ec1aa1292c04be06b3b256e67a69f28dcdbd324 Mon Sep 17 00:00:00 2001 From: Lars Olesen Date: Sat, 6 Feb 2021 02:20:12 +0100 Subject: [PATCH 205/317] Upgrade Lunrjs to 2.3.9 and switch to relative_url (#2805) * Update Lunr to 2.3.9 * Switch from absolute_url to relative_url --- assets/js/lunr/lunr-store.js | 4 +- assets/js/lunr/lunr.js | 143 ++++++++++++++++------------------- assets/js/lunr/lunr.min.js | 7 +- 3 files changed, 75 insertions(+), 79 deletions(-) diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js index 370d1448884c..ff5e2e60db03 100644 --- a/assets/js/lunr/lunr-store.js +++ b/assets/js/lunr/lunr-store.js @@ -42,8 +42,8 @@ var store = [ {%- endif -%} "categories": {{ doc.categories | jsonify }}, "tags": {{ doc.tags | jsonify }}, - "url": {{ doc.url | absolute_url | jsonify }}, - "teaser": {{ teaser | absolute_url | jsonify }} + "url": {{ doc.url | relative_url | jsonify }}, + "teaser": {{ teaser | relative_url | jsonify }} }{%- unless forloop.last and l -%},{%- endunless -%} {%- endfor -%} {%- endfor -%}] diff --git a/assets/js/lunr/lunr.js b/assets/js/lunr/lunr.js index b37984ab68f3..6aa370fbcb7b 100644 --- a/assets/js/lunr/lunr.js +++ b/assets/js/lunr/lunr.js @@ -1,6 +1,6 @@ /** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.5 - * Copyright (C) 2018 Oliver Nightingale + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale * @license MIT */ @@ -54,10 +54,10 @@ var lunr = function (config) { return builder.build() } -lunr.version = "2.3.5" +lunr.version = "2.3.9" /*! * lunr.utils - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -177,7 +177,7 @@ lunr.FieldRef.prototype.toString = function () { } /*! * lunr.Set - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -211,8 +211,8 @@ lunr.Set.complete = { return other }, - union: function (other) { - return other + union: function () { + return this }, contains: function () { @@ -389,7 +389,7 @@ lunr.Token.prototype.clone = function (fn) { } /*! * lunr.tokenizer - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -424,7 +424,7 @@ lunr.tokenizer = function (obj, metadata) { }) } - var str = obj.toString().trim().toLowerCase(), + var str = obj.toString().toLowerCase(), len = str.length, tokens = [] @@ -465,7 +465,7 @@ lunr.tokenizer = function (obj, metadata) { lunr.tokenizer.separator = /[\s\-]+/ /*! * lunr.Pipeline - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -509,8 +509,8 @@ lunr.Pipeline.registeredFunctions = Object.create(null) * or mutate (or add) metadata for a given token. * * A pipeline function can indicate that the passed token should be discarded by returning - * null. This token will not be passed to any downstream pipeline functions and will not be - * added to the index. + * null, undefined or an empty string. This token will not be passed to any downstream pipeline + * functions and will not be added to the index. * * Multiple tokens can be returned by returning an array of tokens. Each token will be passed * to any downstream pipeline functions and all will returned tokens will be added to the index. @@ -673,7 +673,7 @@ lunr.Pipeline.prototype.run = function (tokens) { for (var j = 0; j < tokens.length; j++) { var result = fn(tokens[j], j, tokens) - if (result === void 0 || result === '') continue + if (result === null || result === void 0 || result === '') continue if (Array.isArray(result)) { for (var k = 0; k < result.length; k++) { @@ -732,7 +732,7 @@ lunr.Pipeline.prototype.toJSON = function () { } /*! * lunr.Vector - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -929,7 +929,7 @@ lunr.Vector.prototype.toJSON = function () { /* eslint-disable */ /*! * lunr.stemmer - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt */ @@ -1151,7 +1151,7 @@ lunr.stemmer = (function(){ lunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer') /*! * lunr.stopWordFilter - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -1316,7 +1316,7 @@ lunr.stopWordFilter = lunr.generateStopWordFilter([ lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter') /*! * lunr.trimmer - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -1343,7 +1343,7 @@ lunr.trimmer = function (token) { lunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer') /*! * lunr.TokenSet - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -1469,41 +1469,49 @@ lunr.TokenSet.fromFuzzyString = function (str, editDistance) { }) } + if (frame.editsRemaining == 0) { + continue + } + + // insertion + if ("*" in frame.node.edges) { + var insertionNode = frame.node.edges["*"] + } else { + var insertionNode = new lunr.TokenSet + frame.node.edges["*"] = insertionNode + } + + if (frame.str.length == 0) { + insertionNode.final = true + } + + stack.push({ + node: insertionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str + }) + // deletion // can only do a deletion if we have enough edits remaining // and if there are characters left to delete in the string - if (frame.editsRemaining > 0 && frame.str.length > 1) { - var char = frame.str.charAt(1), - deletionNode - - if (char in frame.node.edges) { - deletionNode = frame.node.edges[char] - } else { - deletionNode = new lunr.TokenSet - frame.node.edges[char] = deletionNode - } - - if (frame.str.length <= 2) { - deletionNode.final = true - } else { - stack.push({ - node: deletionNode, - editsRemaining: frame.editsRemaining - 1, - str: frame.str.slice(2) - }) - } + if (frame.str.length > 1) { + stack.push({ + node: frame.node, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) } // deletion // just removing the last character from the str - if (frame.editsRemaining > 0 && frame.str.length == 1) { + if (frame.str.length == 1) { frame.node.final = true } // substitution // can only do a substitution if we have enough edits remaining // and if there are characters left to substitute - if (frame.editsRemaining > 0 && frame.str.length >= 1) { + if (frame.str.length >= 1) { if ("*" in frame.node.edges) { var substitutionNode = frame.node.edges["*"] } else { @@ -1513,40 +1521,19 @@ lunr.TokenSet.fromFuzzyString = function (str, editDistance) { if (frame.str.length == 1) { substitutionNode.final = true - } else { - stack.push({ - node: substitutionNode, - editsRemaining: frame.editsRemaining - 1, - str: frame.str.slice(1) - }) - } - } - - // insertion - // can only do insertion if there are edits remaining - if (frame.editsRemaining > 0) { - if ("*" in frame.node.edges) { - var insertionNode = frame.node.edges["*"] - } else { - var insertionNode = new lunr.TokenSet - frame.node.edges["*"] = insertionNode } - if (frame.str.length == 0) { - insertionNode.final = true - } else { - stack.push({ - node: insertionNode, - editsRemaining: frame.editsRemaining - 1, - str: frame.str - }) - } + stack.push({ + node: substitutionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) } // transposition // can only do a transposition if there are edits remaining // and there are enough characters to transpose - if (frame.editsRemaining > 0 && frame.str.length > 1) { + if (frame.str.length > 1) { var charA = frame.str.charAt(0), charB = frame.str.charAt(1), transposeNode @@ -1560,13 +1547,13 @@ lunr.TokenSet.fromFuzzyString = function (str, editDistance) { if (frame.str.length == 1) { transposeNode.final = true - } else { - stack.push({ - node: transposeNode, - editsRemaining: frame.editsRemaining - 1, - str: charA + frame.str.slice(2) - }) } + + stack.push({ + node: transposeNode, + editsRemaining: frame.editsRemaining - 1, + str: charA + frame.str.slice(2) + }) } } @@ -1619,6 +1606,10 @@ lunr.TokenSet.fromString = function (str) { * Converts this TokenSet into an array of strings * contained within the TokenSet. * + * This is not intended to be used on a TokenSet that + * contains wildcards, in these cases the results are + * undefined and are likely to cause an infinite loop. + * * @returns {string[]} */ lunr.TokenSet.prototype.toArray = function () { @@ -1836,7 +1827,7 @@ lunr.TokenSet.Builder.prototype.minimize = function (downTo) { } /*! * lunr.Index - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** @@ -2003,7 +1994,7 @@ lunr.Index.prototype.query = function (fn) { */ var clause = query.clauses[i], terms = null, - clauseMatches = lunr.Set.complete + clauseMatches = lunr.Set.empty if (clause.usePipeline) { terms = this.pipeline.runString(clause.term, { @@ -2328,7 +2319,7 @@ lunr.Index.load = function (serializedIndex) { } /*! * lunr.Builder - * Copyright (C) 2018 Oliver Nightingale + * Copyright (C) 2020 Oliver Nightingale */ /** diff --git a/assets/js/lunr/lunr.min.js b/assets/js/lunr/lunr.min.js index f45a81eb800c..cdc94cd390c6 100644 --- a/assets/js/lunr/lunr.min.js +++ b/assets/js/lunr/lunr.min.js @@ -1 +1,6 @@ -!function(){var t,l,c,e,r,h,d,f,p,y,m,g,x,v,w,Q,k,S,E,L,b,P,T,O,I,i,n,s,z=function(e){var t=new z.Builder;return t.pipeline.add(z.trimmer,z.stopWordFilter,z.stemmer),t.searchPipeline.add(z.stemmer),e.call(t,t),t.build()};z.version="2.3.5",z.utils={},z.utils.warn=(t=this,function(e){t.console&&console.warn&&console.warn(e)}),z.utils.asString=function(e){return null==e?"":e.toString()},z.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i=this.length)return z.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},z.QueryLexer.prototype.width=function(){return this.pos-this.start},z.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},z.QueryLexer.prototype.backup=function(){this.pos-=1},z.QueryLexer.prototype.acceptDigitRun=function(){for(var e,t;47<(t=(e=this.next()).charCodeAt(0))&&t<58;);e!=z.QueryLexer.EOS&&this.backup()},z.QueryLexer.prototype.more=function(){return this.pos0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); From d585934803cb043f412cafd7f83a859654bf0d9f Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:21:41 -0500 Subject: [PATCH 206/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a966e2354a4..631f980144b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 777a5592ebac..f3b025bcc75c 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) - Update documentation to include `toc_sticky` parameter's description. [#2741](https://github.com/mmistakes/minimal-mistakes/pull/2741) From 5fe4c4810ddf9a2decca8805f9fadfd2c9d3349a Mon Sep 17 00:00:00 2001 From: iBug Date: Sat, 6 Feb 2021 09:24:25 +0800 Subject: [PATCH 207/317] Allow custom gradient in page header overlays (#2806) * Allow custom gradient in page header overlays * Update documentation * Update CHANGELOG and history --- CHANGELOG.md | 1 + _includes/page__hero.html | 8 +++++-- docs/_docs/10-layouts.md | 21 ++++++++++++++++-- docs/_docs/18-history.md | 1 + .../mm-header-overlay-custom-filter.jpg | Bin 0 -> 44825 bytes 5 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 docs/assets/images/mm-header-overlay-custom-filter.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index 631f980144b1..2e183aa6a64c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731) - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) +- Allow custom gradient for page header overlay. [#2806](https://github.com/mmistakes/minimal-mistakes/pull/2806) ## [4.21.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.21.0) diff --git a/_includes/page__hero.html b/_includes/page__hero.html index 3f55aaa60ac5..dd1c26fbf1fc 100644 --- a/_includes/page__hero.html +++ b/_includes/page__hero.html @@ -1,9 +1,13 @@ {% capture overlay_img_path %}{{ page.header.overlay_image | relative_url }}{% endcapture %} -{% if page.header.overlay_filter contains "rgba" %} +{% if page.header.overlay_filter contains "gradient" %} {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %} +{% elsif page.header.overlay_filter contains "rgba" %} + {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %} + {% capture overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}){% endcapture %} {% elsif page.header.overlay_filter %} {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %} + {% capture overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}){% endcapture %} {% endif %} {% if page.header.image_description %} @@ -15,7 +19,7 @@ {% assign image_description = image_description | markdownify | strip_html | strip_newlines | escape_once %}
{% if page.header.overlay_color or page.header.overlay_image %}
diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 22f72fd3bc94..50b13df13bc6 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -428,7 +428,7 @@ To overlay text on top of a header image you have a few more options: | Name | Description | Default | | ---- | ----------- | ------- | | **overlay_image** | Header image you'd like to overlay. Same rules as `header.image` from above. | | -| **overlay_filter** | Color/opacity to overlay on top of the header image eg: `0.5` or `rgba(255, 0, 0, 0.5)`. | +| **overlay_filter** | Color/opacity to overlay on top of the header image. Example: `0.5`, `rgba(255, 0, 0, 0.5)` or [`linear-gradient`][mdn-linear-gradient]. | | **show_overlay_excerpt** | Display excerpt in the overlay text | true | | **excerpt** | Auto-generated page excerpt is added to the overlay text or can be overridden. | | | **tagline** | Overrides page excerpt. Useful when header text needs to be different from excerpt in archive views. | | @@ -436,6 +436,8 @@ To overlay text on top of a header image you have a few more options: | **cta_label** | Deprecated, use `actions` instead. Call to action button text label. | `more_label` in UI Text data file | | **cta_url** | Deprecated, use `actions` instead. Call to action button URL. | | + [mdn-linear-gradient]: https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient() + With this YAML Front Matter: ```yaml @@ -477,7 +479,7 @@ header: url: "https://github.com" ``` -Or if you want to do more fancy things, go full rgba: +Or if you feel colorful, use full rgba: ![transparent red overlay]({{ "/assets/images/mm-header-overlay-red-filter.jpg" | relative_url }}) @@ -492,6 +494,21 @@ header: url: "https://github.com" ``` +Or if you want to do more fancy things, go all the way to [linear-gradient][mdn-linear-gradient]: + +![transparent custom overlay]({{ "/assets/images/mm-header-overlay-custom-filter.jpg" | relative_url }}) + +```yaml +excerpt: "This post should [...]" +header: + overlay_image: /assets/images/unsplash-image-1.jpg + overlay_filter: linear-gradient(rgba(255, 0, 0, 0.5), rgba(0, 255, 255, 0.5)) + caption: "Photo credit: [**Unsplash**](https://unsplash.com)" + actions: + - label: "Download" + url: "https://github.com" +``` + Multiple call to action button links can be assigned like this: ```yaml diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index f3b025bcc75c..d2da54436e6c 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -25,6 +25,7 @@ toc: false - Update Indonesian localized UI text strings. [#2731](https://github.com/mmistakes/minimal-mistakes/pull/2731)] - Update remote theme documentation. [#2734](https://github.com/mmistakes/minimal-mistakes/pull/2734) - Update allejo/jekyll-toc to v1.1.0, skip headings without an ID. [#2752](https://github.com/mmistakes/minimal-mistakes/pull/2752) +- Allow custom gradient for page header overlay. [#2806](https://github.com/mmistakes/minimal-mistakes/pull/2806) ## [4.21.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.21.0) diff --git a/docs/assets/images/mm-header-overlay-custom-filter.jpg b/docs/assets/images/mm-header-overlay-custom-filter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7f0cff974496605add7255494a49f0de8c0110ad GIT binary patch literal 44825 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 G`hNfihiq2> literal 0 HcmV?d00001 From 7bb68edf0353a72e82a4c39c6b153eca6721a1eb Mon Sep 17 00:00:00 2001 From: Sean Killeen Date: Fri, 5 Feb 2021 20:26:16 -0500 Subject: [PATCH 208/317] Add toggle option for RSS feed visibility (#2787) * add a "hide" value in config for atom * Update footer to use param * update header to use param * Update docs to note configuration * undo formatting * use unless syntax * unless syntax and indentation * indentation --- _config.yml | 1 + _includes/footer.html | 4 +++- _includes/head.html | 6 ++++-- docs/_docs/05-configuration.md | 9 +++++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/_config.yml b/_config.yml index 92e645cc2546..2135c6f042e5 100644 --- a/_config.yml +++ b/_config.yml @@ -51,6 +51,7 @@ reCaptcha: secret : atom_feed: path : # blank (default) uses feed.xml + hide : # true, false (default) search : # true, false (default) search_full_content : # true, false (default) search_provider : # lunr (default), algolia, google diff --git a/_includes/footer.html b/_includes/footer.html index 2bc78963ce39..2b53a253ee93 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -12,7 +12,9 @@ {% endfor %} {% endif %} -
  • {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}
  • + {% unless site.atom_feed.hide %} +
  • {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}
  • + {% endunless %}
    diff --git a/_includes/head.html b/_includes/head.html index 3b99471f5ec5..4f1ebedb88e6 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -2,7 +2,9 @@ {% include seo.html %} - +{% unless site.atom_feed.hide %} + +{% endunless %} @@ -34,4 +36,4 @@ {% for script in site.head_scripts %} {% endfor %} -{% endif %} +{% endif %} \ No newline at end of file diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 11c22a649ba4..0775250f3616 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -559,6 +559,15 @@ atom_feed: **Note:** By default the site feed is linked in two locations: inside the [`` element](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/head.html) and at the bottom of every page in the [site footer](https://github.com/mmistakes/minimal-mistakes/blob/master/_includes/footer.html). {: .notice--info} +### Disable Feed Icons + +By default the theme links to `feed.xml` generated in the root of your site by the **jekyll-feed** plugin. To remove the RSS icon in the header and footer, update `atom_feed` in `_config.yml` like so: + +```yaml +atom_feed: + hide: true +``` + ### Site search To enable site-wide search add `search: true` to your `_config.yml`. From f189e4076650256dea0b2ed309cf0367634a8409 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:28:25 -0500 Subject: [PATCH 209/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e183aa6a64c..9d751df47082 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index d2da54436e6c..fd51675baafb 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:17:06-05:00 +last_modified_at: 2021-02-05T20:28:17-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) - Add Hebrew localized UI text strings. [#2760](https://github.com/mmistakes/minimal-mistakes/pull/2760) From 9be80f891fe1cb57b092e15bf579e9c15936fd12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Ganzenm=C3=BCller?= Date: Sat, 6 Feb 2021 02:29:06 +0100 Subject: [PATCH 210/317] Use sort_natural instead of custom-logic (#2756) --- _includes/category-list.html | 11 ++--------- _includes/tag-list.html | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/_includes/category-list.html b/_includes/category-list.html index d684a2829f3b..1439f14fc6b8 100644 --- a/_includes/category-list.html +++ b/_includes/category-list.html @@ -6,19 +6,12 @@ {% endcase %} {% if site.category_archive.path %} - {% comment %} - - - {% endcomment %} - {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}|{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} - {% assign category_hashes = page_categories | split: ',' | sort %} + {% assign categories_sorted = page.categories | sort_natural %}

    {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} - {% for hash in category_hashes %} - {% assign keyValue = hash | split: '|' %} - {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} + {% for category_word in categories_sorted %} {% unless forloop.last %}, {% endunless %} {% endfor %} diff --git a/_includes/tag-list.html b/_includes/tag-list.html index e0d02bfa561a..b16eca2e7aeb 100644 --- a/_includes/tag-list.html +++ b/_includes/tag-list.html @@ -6,19 +6,12 @@ {% endcase %} {% if site.tag_archive.path %} - {% comment %} - - - {% endcomment %} - {% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}|{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %} - {% assign tag_hashes = page_tags | split: ',' | sort %} + {% assign tags_sorted = page.tags | sort_natural %}

    {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} - {% for hash in tag_hashes %} - {% assign keyValue = hash | split: '|' %} - {% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %} + {% for tag_word in tags_sorted %} {% unless forloop.last %}, {% endunless %} {% endfor %} From 3a2075a090304abc9a8ad404981141db63d1e9bb Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:30:33 -0500 Subject: [PATCH 211/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d751df47082..a9a8bffc070f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Use `sort_natural` instead of custom Liquid logic to sort tags and categories. [#2756](https://github.com/mmistakes/minimal-mistakes/pull/2756) - Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index fd51675baafb..b40d778cdce3 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:28:17-05:00 +last_modified_at: 2021-02-05T20:30:19-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Use `sort_natural` instead of custom Liquid logic to sort tags and categories. [#2756](https://github.com/mmistakes/minimal-mistakes/pull/2756) - Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] - Adds `.webp` to list of supported image extensions for the image popup lightbox. [#2788](https://github.com/mmistakes/minimal-mistakes/pull/2788) From 6282bd92219606cc53dee7f7a8f9a5264461b83e Mon Sep 17 00:00:00 2001 From: Nicolas Elie <40382614+n-elie@users.noreply.github.com> Date: Sat, 6 Feb 2021 02:37:31 +0100 Subject: [PATCH 212/317] Allow custom sorting for collections (#2723) * Allow custom sorting for collections * Update docs with custom sort of collections * Refactoring --- _includes/documents-collection.html | 18 ++++++------------ docs/_docs/10-layouts.md | 7 ++++++- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/_includes/documents-collection.html b/_includes/documents-collection.html index 376a509e3e49..e88d8c4c46a2 100644 --- a/_includes/documents-collection.html +++ b/_includes/documents-collection.html @@ -1,17 +1,11 @@ {% assign entries = site[include.collection] %} -{% if include.sort_by == 'title' %} - {% if include.sort_order == 'reverse' %} - {% assign entries = entries | sort: 'title' | reverse %} - {% else %} - {% assign entries = entries | sort: 'title' %} - {% endif %} -{% elsif include.sort_by == 'date' %} - {% if include.sort_order == 'reverse' %} - {% assign entries = entries | sort: 'date' | reverse %} - {% else %} - {% assign entries = entries | sort: 'date' %} - {% endif %} +{% if include.sort_by %} + {% assign entries = entries | sort: include.sort_by %} +{% endif %} + +{% if include.sort_order == 'reverse' %} + {% assign entries = entries | reverse %} {% endif %} {%- for post in entries -%} diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index 50b13df13bc6..048318823ef0 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -250,7 +250,7 @@ This layout displays all documents grouped by a specific collection. It accommod collection: # collection name entries_layout: # list (default), grid show_excerpts: # true (default), false -sort_by: # date (default) title +sort_by: # date (default), title or any metadata key added to the collection's documents sort_order: # forward (default), reverse ``` @@ -264,6 +264,11 @@ collection: recipes ``` If you want to sort the collection by title add `sort_by: title`. If you want reverse sorting, add `sort_order: reverse`. +You can also use any metadata key that is present in the documents. For example, you can add `number: ` to your documents and use `number` as the sort key: + +```yaml +sort_by: number +``` ### `layout: category` From f734cf7e99c7f55e99cee67ddb31619efb28d9d5 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:38:20 -0500 Subject: [PATCH 213/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9a8bffc070f..ebb274a9c58e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Enhancements +- Allow custom sorting for collections. [#2723](https://github.com/mmistakes/minimal-mistakes/pull/2723) - Use `sort_natural` instead of custom Liquid logic to sort tags and categories. [#2756](https://github.com/mmistakes/minimal-mistakes/pull/2756) - Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index b40d778cdce3..a03e9851d4bf 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T20:30:19-05:00 +last_modified_at: 2021-02-05T20:38:11-05:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Enhancements +- Allow custom sorting for collections. [#2723](https://github.com/mmistakes/minimal-mistakes/pull/2723) - Use `sort_natural` instead of custom Liquid logic to sort tags and categories. [#2756](https://github.com/mmistakes/minimal-mistakes/pull/2756) - Add configuration option to toggle off RSS feed link in `` and site footer. [#2787](https://github.com/mmistakes/minimal-mistakes/pull/2787) - Upgrade Lunrjs to 2.3.9 and switch to `relative_url`. [#2805] From 4556423b667b39d0f5cc49dce5c8290ffbbea780 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 5 Feb 2021 20:53:57 -0500 Subject: [PATCH 214/317] =?UTF-8?q?Release=204.22.0=20=F0=9F=92=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- README.md | 2 +- _layouts/default.html | 2 +- _sass/minimal-mistakes.scss | 2 +- assets/js/main.min.js | 6 +++--- docs/_config.yml | 2 +- docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/04-upgrading.md | 6 +++--- docs/_docs/18-history.md | 4 ++-- docs/_layouts/default.html | 2 +- docs/_pages/home.md | 2 +- minimal-mistakes-jekyll.gemspec | 2 +- package.json | 2 +- 13 files changed, 18 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebb274a9c58e..de73e507bf0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Unreleased +## [4.22.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.22.0) ### Bug Fixes diff --git a/README.md b/README.md index 47ee70bcb073..2954f11a596e 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ To install: bundle ``` -4. Add `remote_theme: "mmistakes/minimal-mistakes@4.21.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. +4. Add `remote_theme: "mmistakes/minimal-mistakes@4.22.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. **Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed. diff --git a/_layouts/default.html b/_layouts/default.html index 573d645f64e3..b2f35a276174 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 0775250f3616..5af864969581 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -715,6 +715,22 @@ Into `_config.yml` yandex_site_verification: "2132801JL" ``` +#### Baidu + +There are several ways to verify site ownership — the easiest is adding an authentication code to your config file. + +Copy and paste the string inside of `content`: + +```html + +``` + +Into `_config.yml` + +```yaml +baidu_site_verification: "code-iA0wScWXN1" +``` + #### Twitter Cards and Facebook Open Graph To improve the appearance of links shared from your site to social networks like Twitter and Facebook be sure to configure the following. From 8a39b748c2f485b449e23f7106cb00ccfdce24a2 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 13 Apr 2021 15:54:21 -0400 Subject: [PATCH 222/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e25825fd3c8..f86da3d8a85b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) ### Bug Fixes diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 2bb1accedba0..423ae69233fa 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-02-05T21:01:55-05:00 +last_modified_at: 2021-04-13T15:54:12-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) ### Bug Fixes From 2301fdf5a71536685796b8df261cbbd4c31a0c3d Mon Sep 17 00:00:00 2001 From: Vincent Tam Date: Tue, 13 Apr 2021 21:55:51 +0200 Subject: [PATCH 223/317] Remove all references to official public Staticman API instance. (#2831) * Updated Staticman docs * remove any ref to official public instance in docs * remove fallback instance for staticman v2 left staticman v1 untouched as I dunno how to deal with that --- _includes/comments.html | 2 +- docs/_docs/05-configuration.md | 15 +++++++++------ staticman.yml | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/_includes/comments.html b/_includes/comments.html index dbb90d1e3a0f..b23cea4d3f41 100644 --- a/_includes/comments.html +++ b/_includes/comments.html @@ -35,7 +35,7 @@

    {{ site.data.ui-text[site.locale].comments_titl

    {{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}

    {{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *

    -
    +
    {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }} diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 5af864969581..13f3e0dd9e52 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -334,7 +334,7 @@ For example, | **disqus** | Disqus | | **discourse** | Discourse | | **facebook** | Facebook Comments | -| **staticman_v2** | Staticman v2 | +| **staticman_v2** | Staticman v2 / v3 | | **staticman** | Staticman v1 (deprecated) | | **utterances** | utterances | | **custom** | Other | @@ -425,13 +425,16 @@ Transform user comments into `_data` files that live inside of your GitHub repos **Note:** Looking to migrate comments from a WordPress based site? Give [this tool](https://github.com/arthurlacoste/wordpress-comments-jekyll-staticman) a try. {: .notice--info} -**Note:** Please note that as of September 2018, Staticman is reaching GitHub API limits due to its popularity, and it is recommended by its maintainer that users deploy their own instances for production (use `site.staticman.endpoint`). +**Note:** Please note that as of September 2018, Staticman is reaching GitHub API limits due to its popularity, and it is recommended by its maintainer that users deploy their own instances for production (use `site.staticman.endpoint`). Consult the Staticman "[Get Started](https://staticman.net/docs/index.html)" guide for more info. {: .notice--warning} -##### Add Staticman as a collaborator +##### Add Staticman as a collaborator on GitHub (legacy) -1. Allow Staticman push access to your GitHub repository by clicking on **Settings**, then the **Collaborators** tab and adding `staticmanapp` as a collaborator. -2. To accept the pending invitation visit: `https://api.staticman.net/v2/connect/{your GitHub username}/{your repository name}`. Consult the Staticman "[Get Started](https://staticman.net/docs/index.html)" guide for more info. +1. Allow Staticman push access to your GitHub repository by clicking on **Settings**, then the **Collaborators** tab and adding your GitHub bot as a collaborator. +2. To accept the pending invitation visit: `https://{your Staticman v2/3 API}/v[2|3]/connect/{your GitHub username}/{your repository name}`. + +**Note:** The new GitHub App authentication method is recommended for GitHub repositories to avoid the API rate limit. +{: .notice--info} ##### Configure Staticman @@ -524,7 +527,7 @@ By default comment moderation is enabled in `staticman.yml`. As new comments are To skip this moderation step simply set `moderation: false`. -**ProTip:** Create a GitHub webhook that sends a `POST` request to the following payload URL `https://api.staticman.net/v2/webhook` and triggers a "Pull request" event to delete Staticman branches on merge. +**ProTip:** Create a GitHub webhook that sends a `POST` request to the following payload URL `https://{your Staticman API URL}/v2/webhook` and triggers a "Pull request" event to delete Staticman branches on merge. {: .notice--info} ![pull-request webhook]({{ "/assets/images/mm-staticman-pr-webhook.jpg" | relative_url }}) diff --git a/staticman.yml b/staticman.yml index a4f161b7609b..61b95925167f 100644 --- a/staticman.yml +++ b/staticman.yml @@ -3,7 +3,7 @@ # For example, you can have one property to handle comment submission and # another one to handle posts. # To encrypt strings use the following endpoint: -# https://api.staticman.net/v2/encrypt/{TEXT TO BE ENCRYPTED} +# https://{your Staticman API URL}/v[2|3]/encrypt/{TEXT TO BE ENCRYPTED} comments: # (*) REQUIRED From 2e05b8568b5d3f1f1dfc3583c401a0de61963ef4 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 13 Apr 2021 15:57:24 -0400 Subject: [PATCH 224/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f86da3d8a85b..e4f2eecb11ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ ### Bug Fixes +- Remove all references to official public Staticman API instance. [#2818](https://github.com/mmistakes/minimal-mistakes/issues/2818) [#2831](https://github.com/mmistakes/minimal-mistakes/pull/2831) - Remove Google Search CSS. [#2852](https://github.com/mmistakes/minimal-mistakes/issues/2852) [#2855](https://github.com/mmistakes/minimal-mistakes/pull/2855) ## [4.22.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.22.0) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 423ae69233fa..d2478735163c 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-04-13T15:54:12-04:00 +last_modified_at: 2021-04-13T15:57:04-04:00 toc: false --- @@ -18,6 +18,7 @@ toc: false ### Bug Fixes +- Remove all references to official public Staticman API instance. [#2818](https://github.com/mmistakes/minimal-mistakes/issues/2818) [#2831](https://github.com/mmistakes/minimal-mistakes/pull/2831) - Remove Google Search CSS. [#2852](https://github.com/mmistakes/minimal-mistakes/issues/2852) [#2855](https://github.com/mmistakes/minimal-mistakes/pull/2855) ## [4.22.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.22.0) From c521fe58df548342b2c228ecc99ce7009befb35f Mon Sep 17 00:00:00 2001 From: luweizheng Date: Wed, 14 Apr 2021 03:58:37 +0800 Subject: [PATCH 225/317] Datetime format (#2844) * datetime_format * page__meta * page__date * page__date test * update docs * update docs --- _includes/page__date.html | 5 +++-- _includes/page__meta.html | 3 ++- docs/_docs/05-configuration.md | 6 ++++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/_includes/page__date.html b/_includes/page__date.html index e663f9b9c7f0..4f995ed0a65f 100644 --- a/_includes/page__date.html +++ b/_includes/page__date.html @@ -1,5 +1,6 @@ +{% assign date_format = site.date_format | default: "%B %-d, %Y" %} {% if page.last_modified_at %} -

    {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

    +

    {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

    {% elsif page.date %} -

    {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

    +

    {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}

    {% endif %} diff --git a/_includes/page__meta.html b/_includes/page__meta.html index 1afc3d8f85eb..3d228c921205 100644 --- a/_includes/page__meta.html +++ b/_includes/page__meta.html @@ -5,7 +5,8 @@ {% assign date = document.date %} - + {% assign date_format = site.date_format | default: "%B %-d, %Y" %} + {% endif %} diff --git a/docs/_docs/05-configuration.md b/docs/_docs/05-configuration.md index 13f3e0dd9e52..fbd369b6f9d2 100644 --- a/docs/_docs/05-configuration.md +++ b/docs/_docs/05-configuration.md @@ -285,6 +285,12 @@ defaults: To disable post date for a post, add `show_date: false` to its YAML Front Matter, overriding what was set in `_config.yml`. +When dates are shown on blog posts or pages, a date format will be chosen to format the date string. The default format is `"%B %-d, %Y"`, which will be displayed like "February 24, 2016". You can choose your date format by referencing this [cheat sheet](https://www.shortcutfoo.com/app/dojos/ruby-date-format-strftime/cheatsheet). For example, use your date format in `_config.yml`. + +```yaml +date_format: "%Y-%m-%d" +``` + ### Reading time Enable estimated reading time snippets with `read_time: true` in YAML Front Matter. `200` has been set as the default words per minute value --- which can be changed by adjusting `words_per_minute:` in `_config.yml`. From b1e4881c5075fe17fecab292d5d511d277dc1b9f Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 13 Apr 2021 15:59:28 -0400 Subject: [PATCH 226/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4f2eecb11ea..1516b4361750 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Add configurable datetime format. [#2844](https://github.com/mmistakes/minimal-mistakes/pull/2844) - Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index d2478735163c..4fb310814901 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-04-13T15:57:04-04:00 +last_modified_at: 2021-04-13T15:59:20-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Add configurable datetime format. [#2844](https://github.com/mmistakes/minimal-mistakes/pull/2844) - Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) From 5ffad0d956138c90df92553ca1d85e4bde889420 Mon Sep 17 00:00:00 2001 From: Tom Manner Date: Tue, 13 Apr 2021 16:00:24 -0400 Subject: [PATCH 227/317] Color notices based on skin colors instead of fixed values (#2887) * Made notice Sass color mixing in based on $background-color and $text-color instead of hard-coded black and white values. * Made some style adjustments to notices to improve readability. Notice links are slightly darkened from the notice color, mostly because the gray-on-gray default notice links were very hard to read. Rather than being $notice-color, they are `mix(#000, $notice-color, 10%)`. The notice background mix and code-background mix can now be set with the SCSS variables $notice-background-mix and $code-notice-background-mix. The default mix for background was adjusted to 80%, from 90%. The default mix for code-background was adjusted to 90%, from 95%. Skins that still didn't read well were adjusted individually. * Adjusted sunrise $notice-background-mix to 75% * Adjusted dark theme notice background mix colors back to the default Co-authored-by: Tom Manner --- _sass/minimal-mistakes/_notices.scss | 10 +++++----- _sass/minimal-mistakes/_variables.scss | 4 ++++ _sass/minimal-mistakes/skins/_aqua.scss | 6 +++++- _sass/minimal-mistakes/skins/_dark.scss | 2 +- _sass/minimal-mistakes/skins/_neon.scss | 4 ++++ _sass/minimal-mistakes/skins/_plum.scss | 4 ++++ _sass/minimal-mistakes/skins/_sunrise.scss | 3 +++ 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/_sass/minimal-mistakes/_notices.scss b/_sass/minimal-mistakes/_notices.scss index 5c087ed5b5d2..3a9b5e606eaf 100644 --- a/_sass/minimal-mistakes/_notices.scss +++ b/_sass/minimal-mistakes/_notices.scss @@ -13,11 +13,11 @@ @mixin notice($notice-color) { margin: 2em 0 !important; /* override*/ padding: 1em; - color: $dark-gray; + color: $text-color; font-family: $global-font-family; font-size: $type-size-6 !important; text-indent: initial; /* override*/ - background-color: mix(#fff, $notice-color, 90%); + background-color: mix($background-color, $notice-color, $notice-background-mix); border-radius: $border-radius; box-shadow: 0 1px 1px rgba($notice-color, 0.25); @@ -46,15 +46,15 @@ } a { - color: $notice-color; + color: mix(#000, $notice-color, 10%); &:hover { - color: mix(#000, $notice-color, 40%); + color: mix(#000, $notice-color, 50%); } } code { - background-color: mix(#fff, $notice-color, 95%) + background-color: mix($background-color, $notice-color, $code-notice-background-mix) } pre code { diff --git a/_sass/minimal-mistakes/_variables.scss b/_sass/minimal-mistakes/_variables.scss index 4065a0ebca4c..81a3acf7b88f 100644 --- a/_sass/minimal-mistakes/_variables.scss +++ b/_sass/minimal-mistakes/_variables.scss @@ -118,6 +118,10 @@ $masthead-link-color: $primary-color !default; $masthead-link-color-hover: mix(#000, $primary-color, 25%) !default; $navicon-link-color-hover: mix(#fff, $primary-color, 75%) !default; +/* notices */ +$notice-background-mix: 80% !default; +$code-notice-background-mix: 90% !default; + /* syntax highlighting (base16) */ $base00: #263238 !default; $base01: #2e3c43 !default; diff --git a/_sass/minimal-mistakes/skins/_aqua.scss b/_sass/minimal-mistakes/skins/_aqua.scss index f5a69af5c690..7c3944e07173 100644 --- a/_sass/minimal-mistakes/skins/_aqua.scss +++ b/_sass/minimal-mistakes/skins/_aqua.scss @@ -27,4 +27,8 @@ $link-color : $info-color !default; $link-color-hover : mix(#000, $link-color, 25%) !default; $link-color-visited : mix(#fff, $link-color, 25%) !default; $masthead-link-color : $primary-color !default; -$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default; \ No newline at end of file +$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default; + +/* notices */ +$notice-background-mix: 90% !default; +$code-notice-background-mix: 95% !default; diff --git a/_sass/minimal-mistakes/skins/_dark.scss b/_sass/minimal-mistakes/skins/_dark.scss index d3d24ef76259..38053493779f 100644 --- a/_sass/minimal-mistakes/skins/_dark.scss +++ b/_sass/minimal-mistakes/skins/_dark.scss @@ -27,4 +27,4 @@ $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; .ais-search-box .ais-search-box--input { background-color: $form-background-color; -} \ No newline at end of file +} diff --git a/_sass/minimal-mistakes/skins/_neon.scss b/_sass/minimal-mistakes/skins/_neon.scss index 737e6b4005ff..a4f2ef5d9d8d 100644 --- a/_sass/minimal-mistakes/skins/_neon.scss +++ b/_sass/minimal-mistakes/skins/_neon.scss @@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default; $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; +/* notices */ +$notice-background-mix: 90% !default; +$code-notice-background-mix: 95% !default; + /* neon syntax highlighting (base16) */ $base00: #ffffff !default; $base01: #e0e0e0 !default; diff --git a/_sass/minimal-mistakes/skins/_plum.scss b/_sass/minimal-mistakes/skins/_plum.scss index 135db9004d0f..defa69cde796 100644 --- a/_sass/minimal-mistakes/skins/_plum.scss +++ b/_sass/minimal-mistakes/skins/_plum.scss @@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default; $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; +/* notices */ +$notice-background-mix: 70% !default; +$code-notice-background-mix: 80% !default; + /* plum syntax highlighting (base16) */ $base00: #ffffff !default; $base01: #e0e0e0 !default; diff --git a/_sass/minimal-mistakes/skins/_sunrise.scss b/_sass/minimal-mistakes/skins/_sunrise.scss index f23d4f96cfd1..bc259f6d8d3d 100644 --- a/_sass/minimal-mistakes/skins/_sunrise.scss +++ b/_sass/minimal-mistakes/skins/_sunrise.scss @@ -20,6 +20,9 @@ $masthead-link-color: $text-color !default; $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; +/* notices */ +$notice-background-mix: 75% !default; + /* sunrise syntax highlighting (base16) */ $base00: #1d1f21 !default; $base01: #282a2e !default; From 99cd379c61abf5116a9383c93b356bb12db70b68 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Tue, 13 Apr 2021 16:01:17 -0400 Subject: [PATCH 228/317] Update CHANGELOG and history --- CHANGELOG.md | 1 + docs/_docs/18-history.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1516b4361750..6b192c91286b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Enhancements +- Color notices based on skin colors instead of fixed values. [#2887](https://github.com/mmistakes/minimal-mistakes/pull/2887) - Add configurable datetime format. [#2844](https://github.com/mmistakes/minimal-mistakes/pull/2844) - Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 4fb310814901..cdbb7b15ed5b 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-04-13T15:59:20-04:00 +last_modified_at: 2021-04-13T16:01:10-04:00 toc: false --- @@ -13,6 +13,7 @@ toc: false ### Enhancements +- Color notices based on skin colors instead of fixed values. [#2887](https://github.com/mmistakes/minimal-mistakes/pull/2887) - Add configurable datetime format. [#2844](https://github.com/mmistakes/minimal-mistakes/pull/2844) - Add Baidu site verfication [#2830](https://github.com/mmistakes/minimal-mistakes/pull/2830) - Add `alt` attribute to site logo. [#2529](https://github.com/mmistakes/minimal-mistakes/issues/2529) [#2824](https://github.com/mmistakes/minimal-mistakes/issues/2824) From de6870743de938fa722eea54250d816079f53f1a Mon Sep 17 00:00:00 2001 From: Tom Manner Date: Tue, 13 Apr 2021 16:10:08 -0400 Subject: [PATCH 229/317] Document user custom element hooks (#2815) * Added documentation for including custom CSS on a site or page * Removed non-configuration related content from 05-configuration.md and cleaned up some style in new sections of 16-stylesheets.md * Moved small custom head documentation to a ProTip in _docs/06-overriding-theme-defaults.md * Cleaned up some documentation, and added some example uses of custom head and footer. * Replace double space with single * Replace double spaces with single Co-authored-by: Tom Manner Co-authored-by: Michael Rose --- docs/_docs/02-structure.md | 8 ++++-- docs/_docs/10-layouts.md | 54 +++++++++++++++++++++++++++++++++--- docs/_docs/16-stylesheets.md | 22 +++++++-------- 3 files changed, 66 insertions(+), 18 deletions(-) diff --git a/docs/_docs/02-structure.md b/docs/_docs/02-structure.md index 5c7016364d8d..18562ad34abf 100644 --- a/docs/_docs/02-structure.md +++ b/docs/_docs/02-structure.md @@ -7,7 +7,7 @@ last_modified_at: 2018-03-20T15:19:22-04:00 Nothing clever here :wink:. Layouts, data files, and includes are all placed in their default locations. Stylesheets and scripts in `assets`, and a few development related files in the project's root directory. -**Please note:** If you installed Minimal Mistakes via the Ruby Gem method, theme files like `_layouts`, `_includes`, `_sass`, and `/assets/` will be missing. This is normal as they are bundled with the [`minimal-mistakes-jekyll`](https://rubygems.org/gems/minimal-mistakes-jekyll) Ruby gem. +**Please note:** If you installed Minimal Mistakes via the Ruby Gem method, theme files like `_layouts`, `_includes`, `_sass`, and `/assets/` will be missing. This is normal as they are bundled with the [`minimal-mistakes-jekyll`](https://rubygems.org/gems/minimal-mistakes-jekyll) Ruby gem. If you would like to make changes, create the files and Jekyll will prefer your local copy. {: .notice--info} ```bash @@ -18,8 +18,10 @@ minimal-mistakes ├── _includes | ├── analytics-providers # snippets for analytics (Google and custom) | ├── comments-providers # snippets for comments -| ├── footer # custom snippets to add to site footer -| ├── head # custom snippets to add to site head +| ├── footer +| | └── custom.html # custom snippets to add to site footer +| ├── head +| | └── custom.html # custom snippets to add to site head | ├── feature_row # feature row helper | ├── gallery # image gallery helper | ├── group-by-array # group by array helper for archives diff --git a/docs/_docs/10-layouts.md b/docs/_docs/10-layouts.md index acb7e098b72f..0a6ef71f0b01 100644 --- a/docs/_docs/10-layouts.md +++ b/docs/_docs/10-layouts.md @@ -129,7 +129,7 @@ Auto-generated table of contents list for your posts and pages can be enabled by | **toc** | Optional | Show table of contents. (boolean) | `false` | | **toc_label** | Optional | Table of contents title. (string) | `toc_label` in UI Text data file. | | **toc_icon** | Optional | Table of contents icon, displays before the title. (string) | [Font Awesome](https://fontawesome.com/icons?d=gallery&s=solid&m=free) **file-alt** icon. Other FA icons can be used instead. | -| **toc_sticky** | Optional | Stick table of contents to top of screen. | `false` | +| **toc_sticky** | Optional | Stick table of contents to top of screen. | `false` | **TOC example with custom title and icon** @@ -363,7 +363,7 @@ Then adjust the `paginate_path` in **_config.yml** to match. ```yaml paginate_path: /blog/page:num -``` +``` **Note:** Jekyll can only paginate a single `index.html` file. If you'd like to paginate more pages (e.g. category indexes) you'll need the help of a custom plugin. For more pagination related settings check the [**Configuration**]({{ "/docs/configuration/#paginate" | relative_url }}) section. {: .notice--info} @@ -627,7 +627,7 @@ For example, to color a Reddit icon, simply add a `color` declaration and the co color: #ff4500; } } -``` +``` ![Reddit link in author profile with color]({{ "/assets/images/mm-author-profile-reddit-color.png" | relative_url }}) @@ -677,7 +677,7 @@ To start, add a new key to `_data/navigation.yml`. This will be referenced later **Sample sidebar menu links:** -```yaml +```yaml docs: - title: Getting Started children: @@ -798,3 +798,49 @@ Add the new `.btn--reddit` class to the `` element from earlier, [compile `ma ``` ![Reddit social share link button]({{ "/assets/images/mm-social-share-links-reddit-color.png" | relative_url }}) + +--- + +## Custom head and footer + +The `default` layout includes a number of custom templates, which provide ways for you to directly add content to all your pages. + +### Head + +`_includes/head/custom.html` is included at the end of the `` tag. An example use of this include is to add custom CSS per page: + +Add some Liquid tags for the new configuration to `_includes/head/custom.html`. +{% raw %}```html +{% if page.page_css %} + {% for stylesheet in page.page_css %} + + {% endfor %} +{% endif %} +```{% endraw %} + +Next, add `page_css` to any page's YAML Front Matter to have your CSS loaded for that page. +```yaml +page_css: + - /path/to/your/custom.css +``` + +### Footer + +`_includes/footer/custom.html` is included at the beginning of the `
    ').parent(".fluid-width-video-wrapper").css("padding-top",100*n+"%"),t.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto),$(function(){var r,i,e,o,t=$("nav.greedy-nav .greedy-nav__toggle"),a=$("nav.greedy-nav .visible-links"),s=$("nav.greedy-nav .hidden-links"),n=$("nav.greedy-nav"),u=$("nav.greedy-nav .site-logo"),l=$("nav.greedy-nav .site-logo img"),c=$("nav.greedy-nav .site-title"),f=$("nav.greedy-nav button.search__toggle");function d(){function n(e,t){i+=t,r+=1,o.push(i)}i=r=0,e=1e3,o=[],a.children().outerWidth(n),s.children().each(function(){var e,t;e=$(this),(t=e.clone()).css("visibility","hidden"),a.append(t),n(0,t.outerWidth()),t.remove()})}d();var p,h,m,g,v=$(window).width(),y=v<768?0:v<1024?1:v<1280?2:3;function b(){var e=(v=$(window).width())<768?0:v<1024?1:v<1280?2:3;e!==y&&d(),y=e,h=a.children().length,p=n.innerWidth()-(0!==u.length?u.outerWidth(!0):0)-c.outerWidth(!0)-(0!==f.length?f.outerWidth(!0):0)-(h!==o.length?t.outerWidth(!0):0),m=o[h-1],po[h]&&(s.children().first().appendTo(a),h+=1,b()),t.attr("count",r-h),h===r?t.addClass("hidden"):t.removeClass("hidden")}$(window).resize(function(){b()}),t.on("click",function(){s.toggleClass("hidden"),clearTimeout(g)}),s.on("mouseleave",function(){g=setTimeout(function(){s.addClass("hidden")},e)}).on("mouseenter",function(){clearTimeout(g)}),0===l.length||l[0].complete||0!==l[0].naturalWidth?b():l.one("load error",b)}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(c){function e(){}function f(e,t){m.ev.on("mfp"+e+x,t)}function d(e,t,n,r){var i=document.createElement("div");return i.className="mfp-"+e,n&&(i.innerHTML=n),r?t&&t.appendChild(i):(i=c(i),t&&i.appendTo(t)),i}function p(e,t){m.ev.triggerHandler("mfp"+e,t),m.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),m.st.callbacks[e]&&m.st.callbacks[e].apply(m,c.isArray(t)?t:[t]))}function h(e){return e===t&&m.currTemplate.closeBtn||(m.currTemplate.closeBtn=c(m.st.closeMarkup.replace("%title%",m.st.tClose)),t=e),m.currTemplate.closeBtn}function o(){c.magnificPopup.instance||((m=new e).init(),c.magnificPopup.instance=m)}var m,r,g,i,v,t,u="Close",l="BeforeClose",y="MarkupParse",b="Open",x=".mfp",w="mfp-ready",n="mfp-removing",a="mfp-prevent-close",s=!!window.jQuery,C=c(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;m.isLowIE=m.isIE8=document.all&&!document.addEventListener,m.isAndroid=/android/gi.test(e),m.isIOS=/iphone|ipad|ipod/gi.test(e),m.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),m.probablyMobile=m.isAndroid||m.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),g=c(document),m.popupsCache={}},open:function(e){var t;if(!1===e.isObj){m.items=e.items.toArray(),m.index=0;var n,r=e.items;for(t=0;t(e||C.height())},_setFocus:function(){(m.st.focus?m.content.find(m.st.focus).eq(0):m.wrap).focus()},_onFocusIn:function(e){if(e.target!==m.wrap[0]&&!c.contains(m.wrap[0],e.target))return m._setFocus(),!1},_parseMarkup:function(i,e,t){var o;t.data&&(e=c.extend(t.data,e)),p(y,[i,e,t]),c.each(e,function(e,t){if(void 0===t||!1===t)return!0;if(1<(o=e.split("_")).length){var n=i.find(x+"-"+o[0]);if(0").attr("src",t).attr("class",n.attr("class"))):n.attr(o[1],t)}}else i.find(x+"-"+e).html(t)})},_getScrollbarSize:function(){if(void 0===m.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),m.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return m.scrollbarSize}},c.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return o(),(e=e?c.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return c.magnificPopup.instance&&c.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(c.magnificPopup.defaults[e]=t.options),c.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},c.fn.magnificPopup=function(e){o();var t=c(this);if("string"==typeof e)if("open"===e){var n,r=s?t.data("magnificPopup"):t[0].magnificPopup,i=parseInt(arguments[1],10)||0;n=r.items?r.items[i]:(n=t,r.delegate&&(n=n.find(r.delegate)),n.eq(i)),m._openClick({mfpEl:n},t,r)}else m.isOpen&&m[e].apply(m,Array.prototype.slice.call(arguments,1));else e=c.extend(!0,{},e),s?t.data("magnificPopup",e):t[0].magnificPopup=e,m.addGroup(t,e);return t};function T(){k&&(S.after(k.addClass(E)).detach(),k=null)}var E,S,k,A="inline";c.magnificPopup.registerModule(A,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){m.types.push(A),f(u+"."+A,function(){T()})},getInline:function(e,t){if(T(),e.src){var n=m.st.inline,r=c(e.src);if(r.length){var i=r[0].parentNode;i&&i.tagName&&(S||(E=n.hiddenClass,S=d(E),E="mfp-"+E),k=r.after(S).detach().removeClass(E)),m.updateStatus("ready")}else m.updateStatus("error",n.tNotFound),r=c("
    ");return e.inlineElement=r}return m.updateStatus("ready"),m._parseMarkup(t,{},e),t}}});function N(){I&&c(document.body).removeClass(I)}function j(){N(),m.req&&m.req.abort()}var I,L="ajax";c.magnificPopup.registerModule(L,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){m.types.push(L),I=m.st.ajax.cursor,f(u+"."+L,j),f("BeforeChange."+L,j)},getAjax:function(i){I&&c(document.body).addClass(I),m.updateStatus("loading");var e=c.extend({url:i.src,success:function(e,t,n){var r={data:e,xhr:n};p("ParseAjax",r),m.appendContent(c(r.data),L),i.finished=!0,N(),m._setFocus(),setTimeout(function(){m.wrap.addClass(w)},16),m.updateStatus("ready"),p("AjaxContentAdded")},error:function(){N(),i.finished=i.loadError=!0,m.updateStatus("error",m.st.ajax.tError.replace("%url%",i.src))}},m.st.ajax.settings);return m.req=c.ajax(e),""}}});var D;c.magnificPopup.registerModule("image",{options:{markup:'
    ',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var e=m.st.image,t=".image";m.types.push("image"),f(b+t,function(){"image"===m.currItem.type&&e.cursor&&c(document.body).addClass(e.cursor)}),f(u+t,function(){e.cursor&&c(document.body).removeClass(e.cursor),C.off("resize"+x)}),f("Resize"+t,m.resizeImage),m.isLowIE&&f("AfterChange",m.resizeImage)},resizeImage:function(){var e=m.currItem;if(e&&e.img&&m.st.image.verticalFit){var t=0;m.isLowIE&&(t=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",m.wH-t)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,D&&clearInterval(D),e.isCheckingImgSize=!1,p("ImageHasSize",e),e.imgHidden&&(m.content&&m.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var n=0,r=t.img[0],i=function(e){D&&clearInterval(D),D=setInterval(function(){0
    ',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){m.types.push(H),f("BeforeChange",function(e,t,n){t!==n&&(t===H?P():n===H&&P(!0))}),f(u+"."+H,function(){P()})},getIframe:function(e,t){var n=e.src,r=m.st.iframe;c.each(r.patterns,function(){if(-1',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var o=m.st.gallery,e=".mfp-gallery";if(m.direction=!0,!o||!o.enabled)return!1;v+=" mfp-gallery",f(b+e,function(){o.navigateByImgClick&&m.wrap.on("click"+e,".mfp-img",function(){if(1=m.index,m.index=e,m.updateItemHTML()},preloadNearbyImages:function(){var e,t=m.st.gallery.preload,n=Math.min(t[0],m.items.length),r=Math.min(t[1],m.items.length);for(e=1;e<=(m.direction?r:n);e++)m._preloadItem(m.index+e);for(e=1;e<=(m.direction?n:r);e++)m._preloadItem(m.index-e)},_preloadItem:function(e){if(e=q(e),!m.items[e].preloaded){var t=m.items[e];t.parsed||(t=m.parseEl(e)),p("LazyLoad",t),"image"===t.type&&(t.img=c('').on("load.mfploader",function(){t.hasSize=!0}).on("error.mfploader",function(){t.hasSize=!0,t.loadError=!0,p("LazyLoadError",t)}).attr("src",t.src)),t.preloaded=!0}}}});var _="retina";c.magnificPopup.registerModule(_,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(1r.durationMax?r.durationMax:r.durationMin&&i=y)return k.cancelScroll(!0),r=t,i=l,0===(n=a)&&document.body.focus(),i||(n.focus(),document.activeElement!==n&&(n.setAttribute("tabindex","-1"),n.focus(),n.style.outline="none"),A.scrollTo(0,r)),L("scrollStop",u,a,s),!(S=f=null)},C=function(e){var t,n,r;b+=e-(f=f||e),d=c+v*(n=o=1<(o=0===x?0:b/x)?1:o,"easeInQuad"===(t=u).easing&&(r=n*n),"easeOutQuad"===t.easing&&(r=n*(2-n)),"easeInOutQuad"===t.easing&&(r=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(r=n*n*n),"easeOutCubic"===t.easing&&(r=--n*n*n+1),"easeInOutCubic"===t.easing&&(r=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(r=n*n*n*n),"easeOutQuart"===t.easing&&(r=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(r=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(r=n*n*n*n*n),"easeOutQuint"===t.easing&&(r=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(r=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(r=t.customEasing(n)),r||n),A.scrollTo(0,Math.floor(d)),w(d,g)||(S=A.requestAnimationFrame(C),f=e)};0===A.pageYOffset&&A.scrollTo(0,0),p=a,h=u,l||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:p.id},document.title,p===document.documentElement?"#top":"#"+p.id),"matchMedia"in A&&A.matchMedia("(prefers-reduced-motion)").matches?A.scrollTo(0,Math.floor(g)):(L("scrollStart",u,a,s),k.cancelScroll(!0),A.requestAnimationFrame(C))}};function t(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(i=e.target.closest(r))&&"a"===i.tagName.toLowerCase()&&!e.target.closest(T.ignore)&&i.hostname===A.location.hostname&&i.pathname===A.location.pathname&&/#/.test(i.href)){var t,n;try{t=o(decodeURIComponent(i.hash))}catch(e){t=o(i.hash)}if("#"===t){if(!T.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||"#top"!==t?n:document.documentElement)&&(e.preventDefault(),function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=A.location.hash;t=t||"",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||A.pageYOffset},document.title,t||A.location.href)}}(T),k.animateScroll(n,i))}}function n(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(T)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(o(history.state.anchor)))||k.animateScroll(t,null,{updateURL:!1})}}k.destroy=function(){T&&(document.removeEventListener("click",t,!1),A.removeEventListener("popstate",n,!1),k.cancelScroll(),S=E=i=T=null)};return function(){if(!("querySelector"in document&&"addEventListener"in A&&"requestAnimationFrame"in A&&"closest"in A.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";k.destroy(),T=N(D,e||{}),E=T.header?document.querySelector(T.header):null,document.addEventListener("click",t,!1),T.updateURL&&T.popstate&&A.addEventListener("popstate",n,!1)}(),k}}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(c){"use strict";function f(e,t,n){if(n.settings.events){var r=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t.dispatchEvent(r)}}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function p(e,t){var n,r,i=e[e.length-1];if(n=i,r=t,s()&&a(n.content,r,!0))return i;for(var o=e.length-1;0<=o;o--)if(a(e[o].content,t))return e[o]}function h(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),r(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}}var m={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},r=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.remove(t.nestedClass),r(n,t))}},g=function(e,t){if(t.nested){var n=e.parentNode.closest("li");n&&(n.classList.add(t.nestedClass),g(n,t))}};return function(e,t){var n,r,i,o,a,s={};s.setup=function(){n=document.querySelectorAll(e),r=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&r.push({nav:e,content:t})}),d(r)},s.detect=function(){var e=p(r,a);e?i&&e.content===i.content||(h(i,a),function(e,t){if(e){var n=e.nav.closest("li");n&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),g(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t}))}}(e,a),i=e):i&&(h(i,a),i=null)};function u(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(s.detect)}function l(e){o&&c.cancelAnimationFrame(o),o=c.requestAnimationFrame(function(){d(r),s.detect()})}s.destroy=function(){i&&h(i,a),c.removeEventListener("scroll",u,!1),a.reflow&&c.removeEventListener("resize",l,!1),a=o=i=n=r=null};return a=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(m,t||{}),s.setup(),s.detect(),c.addEventListener("scroll",u,!1),a.reflow&&c.addEventListener("resize",l,!1),s}}),$(document).ready(function(){$("#main").fitVids();function e(){(0===$(".author__urls-wrapper button").length?1024<$(window).width():!$(".author__urls-wrapper button").is(":visible"))?$(".sidebar").addClass("sticky"):$(".sidebar").removeClass("sticky")}e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").toggleClass("is--visible"),$(".author__urls-wrapper button").toggleClass("open")}),$(document).keyup(function(e){27===e.keyCode&&$(".initial-content").hasClass("is--hidden")&&($(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"))}),$(".search__toggle").on("click",function(){$(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"),setTimeout(function(){$(".search-content input").focus()},400)});new SmoothScroll('a[href*="#"]',{offset:20,speed:400,speedAsDuration:!0,durationMax:500});if(0<$("nav.toc").length)new Gumshoe("nav.toc a",{navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:20,reflow:!0,events:!0});$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),$(".page__content").find("h1, h2, h3, h4, h5, h6").each(function(){var e=$(this).attr("id");if(e){var t=document.createElement("a");t.className="header-link",t.href="#"+e,t.innerHTML='Permalink',t.title="Permalink",$(this).append(t)}})}); \ No newline at end of file +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";function m(e){return null!=e&&e===e.window}var t=[],n=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,o=t.indexOf,r={},i=r.toString,v=r.hasOwnProperty,a=v.toString,l=a.call(Object),y={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},T=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,o,i=(n=n||T).createElement("script");if(i.text=e,t)for(r in c)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function h(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?r[i.call(e)]||"object":typeof e}var f="3.5.1",E=function(e,t){return new E.fn.init(e,t)};function d(e){var t=!!e&&"length"in e&&e.length,n=h(e);return!b(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function r(){C()}var e,d,x,i,o,p,h,m,w,u,l,C,T,a,E,g,s,c,v,S="sizzle"+ +new Date,y=n.document,k=0,b=0,A=ue(),N=ue(),j=ue(),I=ue(),L=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],O=t.pop,H=t.push,P=t.push,q=t.slice,M=function(e,t){for(var n=0,r=e.length;n+~]|"+$+")"+$+"*"),Q=new RegExp($+"|>"),Y=new RegExp(F),V=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$+"*(even|odd|(([+-]|)(\\d*)n|)"+$+"*(?:([+-]|)"+$+"*(\\d+)|))"+$+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+$+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$+"*((?:-\\d)?\\d*)"+$+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,te=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,re=new RegExp("\\\\[\\da-fA-F]{1,6}"+$+"?|\\\\([^\\r\\n\\f])","g"),oe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=ye(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{P.apply(t=q.call(y.childNodes),y.childNodes),t[y.childNodes.length].nodeType}catch(e){P={apply:t.length?function(e,t){H.apply(e,q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var o,i,a,s,u,l,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(C(e),e=e||T,E)){if(11!==f&&(s=te.exec(t)))if(l=s[1]){if(9===f){if(!(i=e.getElementById(l)))return n;if(i.id===l)return n.push(i),n}else if(c&&(i=c.getElementById(l))&&v(e,i)&&i.id===l)return n.push(i),n}else{if(s[2])return P.apply(n,e.getElementsByTagName(t)),n;if((l=s[3])&&d.getElementsByClassName&&e.getElementsByClassName)return P.apply(n,e.getElementsByClassName(l)),n}if(d.qsa&&!I[t+" "]&&(!g||!g.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(l=t,c=e,1===f&&(Q.test(t)||X.test(t))){for((c=ne.test(t)&&me(e.parentNode)||e)===e&&d.scope||((a=e.getAttribute("id"))?a=a.replace(oe,ie):e.setAttribute("id",a=S)),o=(u=p(t)).length;o--;)u[o]=(a?"#"+a:":scope")+" "+ve(u[o]);l=u.join(",")}try{return P.apply(n,c.querySelectorAll(l)),n}catch(e){I(t,!0)}finally{a===S&&e.removeAttribute("id")}}}return m(t.replace(W,"$1"),e,n,r)}function ue(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function le(e){return e[S]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function he(a){return le(function(i){return i=+i,le(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in d=se.support={},o=se.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!K.test(t||e&&e.nodeName||"HTML")},C=se.setDocument=function(e){var t,e=e?e.ownerDocument||e:y;return e!=T&&9===e.nodeType&&e.documentElement&&(a=(T=e).documentElement,E=!o(T),y!=T&&(t=T.defaultView)&&t.top!==t&&(t.addEventListener?t.addEventListener("unload",r,!1):t.attachEvent&&t.attachEvent("onunload",r)),d.scope=ce(function(e){return a.appendChild(e).appendChild(T.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=ee.test(T.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!T.getElementsByName||!T.getElementsByName(S).length}),d.getById?(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){e=t.getElementById(e);return e?[e]:[]}}):(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=d.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=d.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],g=[],(d.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+$+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+$+"*(?:value|"+_+")"),e.querySelectorAll("[id~="+S+"-]").length||g.push("~="),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+$+"*name"+$+"*="+$+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+$+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(d.matchesSelector=ee.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),g=g.length&&new RegExp(g.join("|")),s=s.length&&new RegExp(s.join("|")),t=ee.test(a.compareDocumentPosition),v=t||ee.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},L=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==T||e.ownerDocument==y&&v(y,e)?-1:t==T||t.ownerDocument==y&&v(y,t)?1:u?M(u,e)-M(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==T?-1:t==T?1:o?-1:i?1:u?M(u,e)-M(u,t):0;if(o===i)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==y?-1:s[r]==y?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(C(e),d.matchesSelector&&E&&!I[t+" "]&&(!s||!s.test(t))&&(!g||!g.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){I(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(re,f),e[3]=(e[3]||e[4]||e[5]||"").replace(re,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&Y.test(n)&&(t=p(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(re,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+$+")"+e+"("+$+"|$)"))&&A(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=se.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return b(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){if(!e)return this;if(n=n||L,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:I.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:T,!0)),N.test(r[1])&&E.isPlainObject(t))for(var r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(e=T.getElementById(r[2]))&&(this[0]=e,this.length=1),this}).prototype=E.fn;var L=E(T),D=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,de=/^$|^module$|\/(?:java|ecma)script/i;f=T.createDocumentFragment().appendChild(T.createElement("div")),(p=T.createElement("input")).setAttribute("type","radio"),p.setAttribute("checked","checked"),p.setAttribute("name","t"),f.appendChild(p),y.checkClone=f.cloneNode(!0).cloneNode(!0).lastChild.checked,f.innerHTML="",y.noCloneChecked=!!f.cloneNode(!0).lastChild.defaultValue,f.innerHTML="",y.option=!!f.lastChild;var pe={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function he(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&A(e,t)?E.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;n",""]);var ge=/<|&#?\w+;/;function ve(e,t,n,r,o){for(var i,a,s,u,l,c=t.createDocumentFragment(),f=[],d=0,p=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Le(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function De(e,t){var n,r,o,i;if(1===t.nodeType){if(V.hasData(e)&&(i=V.get(e).events))for(o in V.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),T.head.appendChild(r[0])},abort:function(){o&&o()}}});var Gt=[],Kt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||E.expando+"_"+jt.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Kt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Kt,"$1"+r):!1!==e.jsonp&&(e.url+=(It.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||E.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=C[r],C[r]=function(){i=arguments},n.always(function(){void 0===o?E(C).removeProp(r):C[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),i&&b(o)&&o(i[0]),i=o=void 0}),"script"}),y.createHTMLDocument=((f=T.implementation.createHTMLDocument("").body).innerHTML="
    ",2===f.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,t.head.appendChild(r)):t=T),r=!n&&[],(n=N.exec(e))?[t.createElement(n[1])]:(n=ve([e],t,r),r&&r.length&&E(r).remove(),E.merge([],n.childNodes)));var r},E.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,o,i,a,s=E.css(e,"position"),u=E(e),l={};"static"===s&&(e.style.position="relative"),i=u.offset(),r=E.css(e,"top"),a=E.css(e,"left"),a=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=u.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=b(t)?t.call(e,n,E.extend({},i)):t).top&&(l.top=t.top-i.top+o),null!=t.left&&(l.left=t.left-i.left+a),"using"in t?t.using.call(e,l):("number"==typeof l.top&&(l.top+="px"),"number"==typeof l.left&&(l.left+="px"),u.css(l))}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n=this[0];return n?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],o={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),o.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-E.css(r,"marginTop",!0),left:t.left-o.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===E.css(e,"position");)e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;E.fn[t]=function(e){return F(this,function(e,t,n){var r;return m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[o]:e[t]:void(r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=Ge(y.pixelPosition,function(e,t){if(t)return t=Ve(e,n),We.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){E.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return F(this,function(e,t,n){var r;return m(e)?0===i.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,o):E.style(e,t,n,o)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0x

    ',t.appendChild(n.childNodes[1])),e&&i.extend(o,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];o.customSelector&&e.push(o.customSelector);var r=".fitvidsignore";o.ignore&&(r=r+", "+o.ignore);e=i(this).find(e.join(","));(e=(e=e.not("object object")).not(r)).each(function(e){var t,n=i(this);0
    ').parent(".fluid-width-video-wrapper").css("padding-top",100*t+"%"),n.removeAttr("height").removeAttr("width"))})})}}(window.jQuery||window.Zepto),$(function(){var n,r,e,o,t=$("nav.greedy-nav .greedy-nav__toggle"),i=$("nav.greedy-nav .visible-links"),a=$("nav.greedy-nav .hidden-links"),s=$("nav.greedy-nav"),u=$("nav.greedy-nav .site-logo"),l=$("nav.greedy-nav .site-logo img"),c=$("nav.greedy-nav .site-title"),f=$("nav.greedy-nav button.search__toggle");function d(){function t(e,t){r+=t,n+=1,o.push(r)}r=n=0,e=1e3,o=[],i.children().outerWidth(t),a.children().each(function(){var e;(e=(e=$(this)).clone()).css("visibility","hidden"),i.append(e),t(0,e.outerWidth()),e.remove()})}d();var p,h,m,g,v=$(window).width(),y=v<768?0:v<1024?1:v<1280?2:3;function b(){var e=(v=$(window).width())<768?0:v<1024?1:v<1280?2:3;e!==y&&d(),y=e,h=i.children().length,p=s.innerWidth()-(0!==u.length?u.outerWidth(!0):0)-c.outerWidth(!0)-(0!==f.length?f.outerWidth(!0):0)-(h!==o.length?t.outerWidth(!0):0),m=o[h-1],po[h]&&(a.children().first().appendTo(i),h+=1,b()),t.attr("count",n-h),h===n?t.addClass("hidden"):t.removeClass("hidden")}$(window).resize(function(){b()}),t.on("click",function(){a.toggleClass("hidden"),$(this).toggleClass("close"),clearTimeout(g)}),a.on("mouseleave",function(){g=setTimeout(function(){a.addClass("hidden")},e)}).on("mouseenter",function(){clearTimeout(g)}),0===l.length||l[0].complete||0!==l[0].naturalWidth?b():l.one("load error",b)}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(l){function e(){}function c(e,t){h.ev.on("mfp"+e+x,t)}function f(e,t,n,r){var o=document.createElement("div");return o.className="mfp-"+e,n&&(o.innerHTML=n),r?t&&t.appendChild(o):(o=l(o),t&&o.appendTo(t)),o}function d(e,t){h.ev.triggerHandler("mfp"+e,t),h.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),h.st.callbacks[e]&&h.st.callbacks[e].apply(h,l.isArray(t)?t:[t]))}function p(e){return e===t&&h.currTemplate.closeBtn||(h.currTemplate.closeBtn=l(h.st.closeMarkup.replace("%title%",h.st.tClose)),t=e),h.currTemplate.closeBtn}function i(){l.magnificPopup.instance||((h=new e).init(),l.magnificPopup.instance=h)}var h,r,m,o,g,t,u="Close",v="BeforeClose",y="MarkupParse",b="Open",x=".mfp",w="mfp-ready",n="mfp-removing",a="mfp-prevent-close",s=!!window.jQuery,C=l(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;h.isLowIE=h.isIE8=document.all&&!document.addEventListener,h.isAndroid=/android/gi.test(e),h.isIOS=/iphone|ipad|ipod/gi.test(e),h.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),h.probablyMobile=h.isAndroid||h.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),m=l(document),h.popupsCache={}},open:function(e){if(!1===e.isObj){h.items=e.items.toArray(),h.index=0;for(var t,n=e.items,r=0;r(e||C.height())},_setFocus:function(){(h.st.focus?h.content.find(h.st.focus).eq(0):h.wrap).focus()},_onFocusIn:function(e){if(e.target!==h.wrap[0]&&!l.contains(h.wrap[0],e.target))return h._setFocus(),!1},_parseMarkup:function(o,e,t){var i;t.data&&(e=l.extend(t.data,e)),d(y,[o,e,t]),l.each(e,function(e,t){return void 0===t||!1===t||void(1<(i=e.split("_")).length?0<(n=o.find(x+"-"+i[0])).length&&("replaceWith"===(r=i[1])?n[0]!==t[0]&&n.replaceWith(t):"img"===r?n.is("img")?n.attr("src",t):n.replaceWith(l("").attr("src",t).attr("class",n.attr("class"))):n.attr(i[1],t)):o.find(x+"-"+e).html(t));var n,r})},_getScrollbarSize:function(){var e;return void 0===h.scrollbarSize&&((e=document.createElement("div")).style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),h.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),h.scrollbarSize}},l.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return i(),(e=e?l.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return l.magnificPopup.instance&&l.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(l.magnificPopup.defaults[e]=t.options),l.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},l.fn.magnificPopup=function(e){i();var t,n,r,o=l(this);return"string"==typeof e?"open"===e?(t=s?o.data("magnificPopup"):o[0].magnificPopup,n=parseInt(arguments[1],10)||0,r=t.items?t.items[n]:(r=o,(r=t.delegate?o.find(t.delegate):r).eq(n)),h._openClick({mfpEl:r},o,t)):h.isOpen&&h[e].apply(h,Array.prototype.slice.call(arguments,1)):(e=l.extend(!0,{},e),s?o.data("magnificPopup",e):o[0].magnificPopup=e,h.addGroup(o,e)),o};function T(){k&&(S.after(k.addClass(E)).detach(),k=null)}var E,S,k,A="inline";l.magnificPopup.registerModule(A,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){h.types.push(A),c(u+"."+A,function(){T()})},getInline:function(e,t){if(T(),e.src){var n,r=h.st.inline,o=l(e.src);return o.length?((n=o[0].parentNode)&&n.tagName&&(S||(E=r.hiddenClass,S=f(E),E="mfp-"+E),k=o.after(S).detach().removeClass(E)),h.updateStatus("ready")):(h.updateStatus("error",r.tNotFound),o=l("
    ")),e.inlineElement=o}return h.updateStatus("ready"),h._parseMarkup(t,{},e),t}}});function N(){I&&l(document.body).removeClass(I)}function j(){N(),h.req&&h.req.abort()}var I,L="ajax";l.magnificPopup.registerModule(L,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){h.types.push(L),I=h.st.ajax.cursor,c(u+"."+L,j),c("BeforeChange."+L,j)},getAjax:function(r){I&&l(document.body).addClass(I),h.updateStatus("loading");var e=l.extend({url:r.src,success:function(e,t,n){n={data:e,xhr:n};d("ParseAjax",n),h.appendContent(l(n.data),L),r.finished=!0,N(),h._setFocus(),setTimeout(function(){h.wrap.addClass(w)},16),h.updateStatus("ready"),d("AjaxContentAdded")},error:function(){N(),r.finished=r.loadError=!0,h.updateStatus("error",h.st.ajax.tError.replace("%url%",r.src))}},h.st.ajax.settings);return h.req=l.ajax(e),""}}});var D;l.magnificPopup.registerModule("image",{options:{markup:'
    ',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var e=h.st.image,t=".image";h.types.push("image"),c(b+t,function(){"image"===h.currItem.type&&e.cursor&&l(document.body).addClass(e.cursor)}),c(u+t,function(){e.cursor&&l(document.body).removeClass(e.cursor),C.off("resize"+x)}),c("Resize"+t,h.resizeImage),h.isLowIE&&c("AfterChange",h.resizeImage)},resizeImage:function(){var e,t=h.currItem;t&&t.img&&h.st.image.verticalFit&&(e=0,h.isLowIE&&(e=parseInt(t.img.css("padding-top"),10)+parseInt(t.img.css("padding-bottom"),10)),t.img.css("max-height",h.wH-e))},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,D&&clearInterval(D),e.isCheckingImgSize=!1,d("ImageHasSize",e),e.imgHidden&&(h.content&&h.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var n=0,r=t.img[0],o=function(e){D&&clearInterval(D),D=setInterval(function(){0
    ',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){h.types.push(P),c("BeforeChange",function(e,t,n){t!==n&&(t===P?H():n===P&&H(!0))}),c(u+"."+P,function(){H()})},getIframe:function(e,t){var n=e.src,r=h.st.iframe;l.each(r.patterns,function(){if(-1',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var i=h.st.gallery,e=".mfp-gallery";if(h.direction=!0,!i||!i.enabled)return!1;g+=" mfp-gallery",c(b+e,function(){i.navigateByImgClick&&h.wrap.on("click"+e,".mfp-img",function(){if(1=h.index,h.index=e,h.updateItemHTML()},preloadNearbyImages:function(){for(var e=h.st.gallery.preload,t=Math.min(e[0],h.items.length),n=Math.min(e[1],h.items.length),r=1;r<=(h.direction?n:t);r++)h._preloadItem(h.index+r);for(r=1;r<=(h.direction?t:n);r++)h._preloadItem(h.index-r)},_preloadItem:function(e){var t;e=q(e),h.items[e].preloaded||((t=h.items[e]).parsed||(t=h.parseEl(e)),d("LazyLoad",t),"image"===t.type&&(t.img=l('').on("load.mfploader",function(){t.hasSize=!0}).on("error.mfploader",function(){t.hasSize=!0,t.loadError=!0,d("LazyLoadError",t)}).attr("src",t.src)),t.preloaded=!0)}}});var _="retina";l.magnificPopup.registerModule(_,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){var n,r;1t.durationMax?t.durationMax:t.durationMin&&e=u)return b.cancelScroll(!0),e=t,n=g,0===(t=r)&&document.body.focus(),n||(t.focus(),document.activeElement!==t&&(t.setAttribute("tabindex","-1"),t.focus(),t.style.outline="none"),x.scrollTo(0,e)),E("scrollStop",m,r,o),!(y=f=null)},h=function(e){var t,n,r;l+=e-(f=f||e),d=i+s*(n=d=1<(d=0===c?0:l/c)?1:d,"easeInQuad"===(t=m).easing&&(r=n*n),"easeOutQuad"===t.easing&&(r=n*(2-n)),"easeInOutQuad"===t.easing&&(r=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(r=n*n*n),"easeOutCubic"===t.easing&&(r=--n*n*n+1),"easeInOutCubic"===t.easing&&(r=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(r=n*n*n*n),"easeOutQuart"===t.easing&&(r=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(r=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(r=n*n*n*n*n),"easeOutQuint"===t.easing&&(r=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(r=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),(r=t.customEasing?t.customEasing(n):r)||n),x.scrollTo(0,Math.floor(d)),p(d,a)||(y=x.requestAnimationFrame(h),f=e)},0===x.pageYOffset&&x.scrollTo(0,0),t=r,e=m,g||history.pushState&&e.updateURL&&history.pushState({smoothScroll:JSON.stringify(e),anchor:t.id},document.title,t===document.documentElement?"#top":"#"+t.id),"matchMedia"in x&&x.matchMedia("(prefers-reduced-motion)").matches?x.scrollTo(0,Math.floor(a)):(E("scrollStart",m,r,o),b.cancelScroll(!0),x.requestAnimationFrame(h)))};function t(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(o=e.target.closest(r))&&"a"===o.tagName.toLowerCase()&&!e.target.closest(v.ignore)&&o.hostname===x.location.hostname&&o.pathname===x.location.pathname&&/#/.test(o.href)){var t,n;try{n=a(decodeURIComponent(o.hash))}catch(e){n=a(o.hash)}if("#"===n){if(!v.topOnEmptyHash)return;t=document.documentElement}else t=document.querySelector(n);(t=t||"#top"!==n?t:document.documentElement)&&(e.preventDefault(),n=v,history.replaceState&&n.updateURL&&!history.state&&(e=(e=x.location.hash)||"",history.replaceState({smoothScroll:JSON.stringify(n),anchor:e||x.pageYOffset},document.title,e||x.location.href)),b.animateScroll(t,o))}}function i(e){var t;null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(v)&&("string"==typeof(t=history.state.anchor)&&t&&!(t=document.querySelector(a(history.state.anchor)))||b.animateScroll(t,null,{updateURL:!1}))}b.destroy=function(){v&&(document.removeEventListener("click",t,!1),x.removeEventListener("popstate",i,!1),b.cancelScroll(),y=n=o=v=null)};return function(){if(!("querySelector"in document&&"addEventListener"in x&&"requestAnimationFrame"in x&&"closest"in x.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";b.destroy(),v=w(S,e||{}),n=v.header?document.querySelector(v.header):null,document.addEventListener("click",t,!1),v.updateURL&&v.popstate&&x.addEventListener("popstate",i,!1)}(),b}}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(c){"use strict";function f(e,t,n){n.settings.events&&(n=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}),t.dispatchEvent(n))}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function p(e,t){var n,r,o=e[e.length-1];if(n=o,r=t,!(!s()||!a(n.content,r,!0)))return o;for(var i=e.length-1;0<=i;i--)if(a(e[i].content,t))return e[i]}function h(e,t){var n;!e||(n=e.nav.closest("li"))&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),r(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}var m={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},r=function(e,t){!t.nested||(e=e.parentNode.closest("li"))&&(e.classList.remove(t.nestedClass),r(e,t))},g=function(e,t){!t.nested||(e=e.parentNode.closest("li"))&&(e.classList.add(t.nestedClass),g(e,t))};return function(e,t){var n,o,i,r,a,s={setup:function(){n=document.querySelectorAll(e),o=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&o.push({nav:e,content:t})}),d(o)}};s.detect=function(){var e,t,n,r=p(o,a);r?i&&r.content===i.content||(h(i,a),t=a,!(e=r)||(n=e.nav.closest("li"))&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),g(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t})),i=r):i&&(h(i,a),i=null)};function u(e){r&&c.cancelAnimationFrame(r),r=c.requestAnimationFrame(s.detect)}function l(e){r&&c.cancelAnimationFrame(r),r=c.requestAnimationFrame(function(){d(o),s.detect()})}s.destroy=function(){i&&h(i,a),c.removeEventListener("scroll",u,!1),a.reflow&&c.removeEventListener("resize",l,!1),a=r=i=n=o=null};return a=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(m,t||{}),s.setup(),s.detect(),c.addEventListener("scroll",u,!1),a.reflow&&c.addEventListener("resize",l,!1),s}}),$(document).ready(function(){$("#main").fitVids();function e(){(0===$(".author__urls-wrapper button").length?1024<$(window).width():!$(".author__urls-wrapper button").is(":visible"))?$(".sidebar").addClass("sticky"):$(".sidebar").removeClass("sticky")}e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").toggleClass("is--visible"),$(".author__urls-wrapper button").toggleClass("open")}),$(document).keyup(function(e){27===e.keyCode&&$(".initial-content").hasClass("is--hidden")&&($(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"))}),$(".search__toggle").on("click",function(){$(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"),setTimeout(function(){$(".search-content input").focus()},400)});new SmoothScroll('a[href*="#"]',{offset:20,speed:400,speedAsDuration:!0,durationMax:500});0<$("nav.toc").length&&new Gumshoe("nav.toc a",{navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:20,reflow:!0,events:!0}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),$(".page__content").find("h1, h2, h3, h4, h5, h6").each(function(){var e,t=$(this).attr("id");t&&((e=document.createElement("a")).className="header-link",e.href="#"+t,e.innerHTML='Permalink',e.title="Permalink",$(this).append(e))})}); \ No newline at end of file diff --git a/assets/js/plugins/jquery.greedy-navigation.js b/assets/js/plugins/jquery.greedy-navigation.js index 5a93a41e159c..d8f323788b94 100644 --- a/assets/js/plugins/jquery.greedy-navigation.js +++ b/assets/js/plugins/jquery.greedy-navigation.js @@ -14,11 +14,11 @@ $(function() { var $logoImg = $('nav.greedy-nav .site-logo img'); var $title = $("nav.greedy-nav .site-title"); var $search = $('nav.greedy-nav button.search__toggle'); - + var numOfItems, totalSpace, closingTime, breakWidths; // This function measures both hidden and visible links and sets the navbar breakpoints - // This is called the first time the script runs and everytime the "check()" function detects a change of window width that reached a different CSS width breakpoint, which affects the size of navbar Items + // This is called the first time the script runs and everytime the "check()" function detects a change of window width that reached a different CSS width breakpoint, which affects the size of navbar Items // Please note that "CSS width breakpoints" (which are only 4) !== "navbar breakpoints" (which are as many as the number of items on the navbar) function measureLinks(){ numOfItems = 0; @@ -99,6 +99,7 @@ $(function() { $btn.on('click', function() { $hlinks.toggleClass('hidden'); + $(this).toggleClass('close'); clearTimeout(timer); }); @@ -122,5 +123,5 @@ $(function() { } else check(); // if page does not have a logo just check } else check(); - + }); diff --git a/docs/_docs/18-history.md b/docs/_docs/18-history.md index 3d80f6c93bab..fbcfa80a1a95 100644 --- a/docs/_docs/18-history.md +++ b/docs/_docs/18-history.md @@ -5,7 +5,7 @@ permalink: /docs/history/ excerpt: "Change log of enhancements and bug fixes made to the theme." sidebar: nav: docs -last_modified_at: 2021-05-11T10:41:54-04:00 +last_modified_at: 2021-05-14T19:24:07-04:00 toc: false --- @@ -23,6 +23,7 @@ toc: false ### Bug Fixes +- Fix menu toggle to properly show close icon when open. - Fix Jekyll environment note in configuration documentation. [#2912](https://github.com/mmistakes/minimal-mistakes/issues/2912) - Fix typo in Helpers documentation. [#2940](https://github.com/mmistakes/minimal-mistakes/pull/2940) - Remove all references to official public Staticman API instance. [#2818](https://github.com/mmistakes/minimal-mistakes/issues/2818) [#2831](https://github.com/mmistakes/minimal-mistakes/pull/2831) From 65eb672dcc744df1a11edf42ea663a0699755fed Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Fri, 14 May 2021 19:34:33 -0400 Subject: [PATCH 242/317] =?UTF-8?q?Release=204.23.0=20=F0=9F=92=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- _layouts/default.html | 2 +- _sass/minimal-mistakes.scss | 2 +- assets/js/main.min.js | 2 +- docs/_docs/01-quick-start-guide.md | 2 +- docs/_docs/04-upgrading.md | 6 +++--- docs/_layouts/default.html | 2 +- docs/_pages/home.md | 2 +- minimal-mistakes-jekyll.gemspec | 2 +- package.json | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6a0d47112e47..e96b2b32ca0c 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,7 @@ To install: bundle ``` -4. Add `remote_theme: "mmistakes/minimal-mistakes@4.22.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. +4. Add `remote_theme: "mmistakes/minimal-mistakes@4.23.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry. **Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed. diff --git a/_layouts/default.html b/_layouts/default.html index b2f35a276174..d43a49b19ca4 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -3,7 +3,7 @@ {% endcomment %} + {% if page.id and page.related and site.related_posts.size > 0 %} + + {% comment %}{% endcomment %} + {% elsif page.id and page.related %} + + {% endif %} +

    From f2461af7a874bb0c50aa3f4a3cbda9749fd1af83 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Sat, 19 Jun 2021 12:27:35 -0400 Subject: [PATCH 254/317] Update FUNDING.yml --- .github/FUNDING.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 702c8c639bbe..0416fdf37bfb 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,2 @@ github: mmistakes -ko_fi: mmistakes -custom: ['https://www.buymeacoffee.com/mmistakes', 'https://www.paypal.me/mmistakes', 'https://cash.app/$mmistakes'] +custom: ['https://www.buymeacoffee.com/mmistakes', 'https://www.paypal.me/mmistakes'] From d9305929cf07911530ce27ee0270af29a7a83419 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Sat, 19 Jun 2021 12:28:06 -0400 Subject: [PATCH 255/317] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 0416fdf37bfb..72c3cf2ee5d1 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ github: mmistakes -custom: ['https://www.buymeacoffee.com/mmistakes', 'https://www.paypal.me/mmistakes'] +custom: ['https://www.paypal.me/mmistakes'] From 00d9900743970034722f4db1699f806fabd0b267 Mon Sep 17 00:00:00 2001 From: Michael Rose Date: Wed, 23 Jun 2021 07:55:12 -0400 Subject: [PATCH 256/317] Fix broken image Close #3013 --- docs/_posts/2012-03-15-layout-sidebar-custom.md | 5 +++-- docs/assets/images/350x250.png | Bin 0 -> 1346 bytes 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 docs/assets/images/350x250.png diff --git a/docs/_posts/2012-03-15-layout-sidebar-custom.md b/docs/_posts/2012-03-15-layout-sidebar-custom.md index bd1c6105c654..3b3739bc8ce6 100644 --- a/docs/_posts/2012-03-15-layout-sidebar-custom.md +++ b/docs/_posts/2012-03-15-layout-sidebar-custom.md @@ -1,10 +1,11 @@ --- title: "Layout: Sidebar Custom" excerpt: "A post with custom sidebar content." +last_modified_at: 2021-06-23T07:53:04-04:00 author_profile: false sidebar: - title: "Title" - image: http://placehold.it/350x250 + image: "/assets/images/350x250.png" image_alt: "image" text: "Some text here." - title: "Another Title" @@ -19,7 +20,7 @@ An example of how that YAML could look is: ```yaml sidebar: - title: "Title" - image: http://placehold.it/350x250 + image: "/assets/images/your-image.jpg" image_alt: "image" text: "Some text here." - title: "Another Title" diff --git a/docs/assets/images/350x250.png b/docs/assets/images/350x250.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4d5edbe8e757bec8dfc78d56d1ec8894abea57 GIT binary patch literal 1346 zcmb7D2~!dX6voW4Lo_GR%Bw8hRZ=Fj!%;gFB)lpEk0Py2G%~fMG%;XWEyG(p(jrSR zyjINvP*a-5s|YPYG$=svBvSLh11nd5!Ong&?|t9Q_vU>wZ{|_X`XPYZ_G|+H06^qv zm_GoZ6|$~1o3+=w=^7NfL1%qXa6X@3P*6al(JCt|J3Bk;>gpH_28YApa=9sqvE}Py zTW_8Y#sdKQ9UG;U57svY05d{O3r?%G~%$kEy=RruCfvgC8Fc zr6*Z7;q!OQ=HLxmr7@aABsVJQAoFb+Q`bWk24b;fprv^ta|S*}HPAH6B76m4P%({(URT_YJ@!>Z#D>}mV z;fjiM7c20R&}v6SR-CUrD{sq?P1gPOoe1Bqm{*f;!FcO2ZG>(t1ztXdxEH?y61HCf z^SUrBK4>hBI#8nw3O`A@kkmebT{o1C9ahGqxRMe=^AY-eek*vNN6}GMMcHCuK=P7U z&o#4tdyRfCT1bOg5sH+e%u#UktL{dxZ>~4V1atno%}zjfVmrlIsLps{S(dlLF>X<+ z65cnu*Z5mN-G(s)8worai)lJbVWet(n??0&_jb^_*uLPTz$(**UDpher;@7)U$&~u zBOBF%*Z^p?Kg48**RR_mlL?&Rq9*5hbt-}8lnwjJy@%?d;_?aNTByq6sQ5>uAiHUqtc^s>)$&_rhwTpPVtvQbb|an2 zr^j7{`#T|yM{Lu&9o!Z&?Mkb3K{l$LAamOj*^5;VC)jx?H&(?PSF{hPj-39}#rbhu zE|-^9aOqPMwUuMDm{rHMmk9LTXH2BJEiY`1bVe>WU^+a-Ggi5grBs}Cm@N2kLj$_UNid};w41c^?$?ts4)2nPzHZK09 zSmLCI@^>6NU_VC*eIH|n$0z@SdmMg#ywo+^?B~GbhtGub1%abxdVa;U)n_MkDlB_* z5n@JkQ9!cnX^MCNGa*qh0~3ii6enj=vCTqbh5G9EEcJ12S#A~2qP%nbjLyXxJ$`z3 zb4XO*!J>dJBJCH#(TO;F=IH|;b|m!41=Ssger0{w#<%`AhK7R1=R=3(6@kjZKc^X` zgA4)^;cYTO^jvPAj8fS^!2b~@)P)otPtr#@0O#4XERhpw8I~iJKiCL zyDY0A^Gh`9v%B|(iWlBJSr&-=y6Ew-UTSB#?c|gXE_`9YGk9e2pTtUtoj@gPwG@qO zYfcY7j(OM8Csn^}`k=U&@knN*)<`|W79_}lV>wuerQO!JOkI~-bk7(l**oGp65J=< z4TM4D^xfq8C0H0?Mule#@=WD(%m%N8xp}74_)b~QHR|xo`T1qFvcv}R<@53&mvL!L zkbue{V^7{vEX48rMD$Yd@?i0&f)I}H>sjxSb7+D!2?u>++DC*MofAYU9=G Date: Wed, 23 Jun 2021 08:06:03 -0400 Subject: [PATCH 257/317] feat: Search icon in masthead is a Font Awesome icon. (#2774) * feat: Allow search icon in masthead to be set to a Font Awesome icon. * fix indentations * Users wishing to avoid FontAwesome should override _includes/masthead.html --- _includes/masthead.html | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/_includes/masthead.html b/_includes/masthead.html index efe631d50d1e..0c66aa65a4fd 100644 --- a/_includes/masthead.html +++ b/_includes/masthead.html @@ -21,9 +21,7 @@ {% if site.search == true %} {% endif %}