- {% if post.link %} - {{ title }} Permalink - {% else %} - {{ title }} - {% endif %} -
- {% include page__meta.html type=include.type %} - {% if post.excerpt %}{{ post.excerpt | markdownify | strip_html | truncate: 160 }}
{% endif %} -diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 3a287c451431..000000000000 --- a/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# editorconfig.org -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = false - -[*.md] -trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 4d536e4abe56..000000000000 --- a/.gitattributes +++ /dev/null @@ -1,10 +0,0 @@ -assets/fonts/* linguist-vendored -assets/js/main.min.js linguist-vendored -assets/js/lunr/* linguist-vendored -assets/js/plugins/* linguist-vendored -assets/js/vendor/* linguist-vendored -_sass/minimal-mistakes/vendor/* linguist-vendored -CHANGELOG.md text merge=union -docs/_docs/18-history.md text merge=union - -*.md text diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index 847b69e8c5a9..000000000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,23 +0,0 @@ -# Contributing - -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 -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:. - -## Pull Requests - -When submitting a pull request: - -1. Clone the repo. -2. Create a branch off of `master` and give it a meaningful name (e.g. - `my-awesome-new-feature`) and describe the feature or fix. -3. Open a pull request on GitHub. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index cb3aac83607a..000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -name: "Bug Report" -about: "Is something not working as expected?" ---- - - - -## Environment - - - -- Minimal Mistakes version: -- Ruby gem or remote theme version: -- Jekyll version: -- Git repository URL: -- Hosted on GitHub Pages (if yes provide URL to site): -- Operating system: - -## Expected behavior - - - -## Steps to reproduce the behavior - - - -## Other - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 3adfbcd18905..000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Bug Report -description: There is something wrong with the theme. 99% of the time you should select Support below. -body: - - type: markdown - attributes: - value: | - Before opening a new issue please: - - - Verify you have the latest versions of Jekyll and Minimal Mistakes - installed by running `bundle update`. - - Thoroughly read the theme's documentation at - https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/ - - Search all issues at https://github.com/mmistakes/minimal-mistakes/issues - for solutions and to avoid duplication. - - Ask for help at https://talk.jekyllrb.com/ - - If none of the above solved your problem, you can continue below. - - - type: textarea - id: environment - attributes: - label: What happened? - description: | - Please include theme version, Jekyll version, public git repository, whether - you are hosting with GitHub Pages, and the operating system you tested with. - - Issues without a link to a public repository or ZIP file will likely go ignored. - Being able to see your actual files is necessary to troubleshoot, as most - issues stem from invalid/missing YAML Front Matter, a mis-configured _config.yml - file, or problematic site content. - value: |- - - Minimal Mistakes version: - - Ruby gem or remote theme version: - - Jekyll version: - - Git repository URL: - - Hosted on GitHub Pages (if yes provide URL to site): - - Operating system: - validations: - required: true - - - type: textarea - id: expected-behavior - attributes: - label: Expected behavior - description: | - Please describe the expected behavior and the actual result you got. - placeholder: > - What is it you expected to happen? This should be a description of how the - functionality you tried to use is supposed to work. - validations: - required: true - - - type: textarea - id: steps-to-reproduce - attributes: - label: Steps to reproduce the behavior - description: | - Describe the steps you took for this problem to come up. Such as: you installed - the theme, customized _config.yml, added your own posts, and started up a - Jekyll server locally. - - If an error occurred on GitHub Pages when pushing, please test a local version - following these setup instructions: - https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/ - - Then provide a complete log by running `bundle exec jekyll build --trace --verbose` - and include this output in the filed issue. - - Screenshots can also be included if they help illustrate a behavior. - validations: - required: true - - - type: textarea - id: other - attributes: - label: Other - description: | - Please provide a code repository, gist, code snippet, sample files, - screenshots, or anything else you think will aid in reproducing the issue. - validations: - required: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index e02be34d82d0..000000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,5 +0,0 @@ -blank_issues_enabled: false -contact_links: - - name: Support - url: https://github.com/mmistakes/minimal-mistakes/discussions - about: Please post your support questions in the Discussions section. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 25f111fd7a23..000000000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: "Documentation" -about: "Found a typo or something that needs clarification?" ---- - - - -## Motivation - - - - - -## Suggestion - - \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml deleted file mode 100644 index 65a03152deae..000000000000 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Documentation -description: Found a typo or something that needs clarification? -body: - - type: markdown - attributes: - value: | - Thanks for taking the time to open an issue and help make the docs better. - - - type: textarea - id: motivation - attributes: - label: Motivation - description: | - Why should we update our docs? - validations: - required: true - - - type: textarea - id: suggestion - attributes: - label: Suggestion - description: | - What should we do instead? - validations: - required: true \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 3271858f6dae..000000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - -## Summary - - - -## Context - - - - diff --git a/.github/workflows/bad-pr.yml b/.github/workflows/bad-pr.yml deleted file mode 100644 index bf5572e0a896..000000000000 --- a/.github/workflows/bad-pr.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Cleanup bad PR - -on: - pull_request_target: - types: [opened, reopened] - -permissions: - contents: read - -jobs: - close-pr: - permissions: - pull-requests: write - runs-on: ubuntu-latest - if: "contains(github.event.pull_request.body, 'by deleting this comment block') || github.event.pull_request.body == ''" - steps: - - uses: actions-ecosystem/action-add-labels@v1 - with: - labels: 'Type: Invalid' - - uses: superbrothers/close-pull-request@v3 - with: - # Optional. Post an issue comment just before closing a pull request. - comment: | - **You have created a Pull Request to the wrong repository.** This is the repository for [Minimal Mistakes][1], the free Jekyll theme. See [GitHub Docs: About pull requests][2] if you need help. - - [1]: https://mmistakes.github.io/minimal-mistakes/ - [2]: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests - - uses: sudo-bot/action-pull-request-lock@v1.0.5 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - number: ${{ github.event.pull_request.number }} - lock-reason: spam diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 733ad0d6668c..000000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: build - -on: - push: - branches: - - master - workflow_dispatch: {} - repository_dispatch: {} - -jobs: - build: - if: github.repository == 'mmistakes/minimal-mistakes' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.2' - - name: Setup cache for Bundler - id: cache - uses: actions/cache@v4 - with: - path: | - docs/Gemfile.lock - docs/vendor/bundle - key: ${{ runner.os }}-bundler-${{ hashFiles('docs/Gemfile') }} - restore-keys: | - ${{ runner.os }}-bundler- - - - name: Install - Bundler - env: - MAKE: make -j2 - working-directory: docs/ - run: | - bundle config set path vendor/bundle - bundle install --jobs=4 --retry=3 - bundle clean - - - name: Update Algolia index - working-directory: docs/ - run: bundle exec jekyll algolia push - env: - ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }} - continue-on-error: true diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 406061feb7db..e769f21c3fbb --- a/.gitignore +++ b/.gitignore @@ -1,32 +1,5 @@ -# Vim -*~ -*.sw[p_] - -# IntelliJ IDEA -*.idea - -# 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 +.sass-cache +.jekyll-metadata +*~ +*.swp diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1bb28592f877..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -language: ruby -cache: bundler -gemfile: docs/Gemfile -script: - - bundle exec jekyll algolia --source docs --destination docs/_site --config docs/_config.yml -branches: - only: - # Change this to gh-pages if you're deploying using the gh-pages branch - - master -rvm: - - 2.4 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index d8b6e7757c83..000000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,1737 +0,0 @@ -# Changelog - -## Unreleased - -### Enhancements - -- Add RTL Support. [#4886](https://github.com/mmistakes/minimal-mistakes/pull/4886) -- Add missing Polish translation. [#4890](https://github.com/mmistakes/minimal-mistakes/pull/4890) -- Rewrite most directions with [CSS logical properties](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_logical_properties_and_values). - -### Bug Fixes - -- Replace a redirected link to MadeMistakes in footer. [#4882](https://github.com/mmistakes/minimal-mistakes/pull/4882) -- Fix wrong float direction for `feature_row` with `type="right"`. [#4061](https://github.com/mmistakes/minimal-mistakes/issues/4061) - -### Documentation & Maintenance - -- Automatically update Algolia search index with GitHub Actions. - -## [4.26.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.26.2) - -### Enhancements - -- Add Czech localization. [#4866](https://github.com/mmistakes/minimal-mistakes/pull/4866) -- Allow overriding HTML `lang` attribute on a per-page basis. [#4862](https://github.com/mmistakes/minimal-mistakes/pull/4862) - -### Bug Fixes - -- Figure helper breaks when using code markup in caption with `popup=true`. [#4841](https://github.com/mmistakes/minimal-mistakes/issues/4841) - -## [4.26.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.26.1) - -### Bug Fixes - -- Disable copy button on invalid syntax highlighting blocks to avoid positioning issues. -- Fix typo for `fa-dribbble` in `_utilities.scss`. -- Restrict "auto scroll sticky ToC to content" feature to Chromium browsers for now. [#4826](https://github.com/mmistakes/minimal-mistakes/issues/4826) - -### Documentation & Maintenance - -- Rewrite social icons SCSS with a loop. - -### Enhancements - -- Change the icon of a copy button into a tick for 1.5 seconds on successful copy. - -## [4.26.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.26.0) - -### Bug Fixes - -- Fix an unclosed `
` tag in `page__hero.html`, near `page.header.actions`.
-- Remove overlay and revert X to hamburger icon when popup disappears. [#3958](https://github.com/mmistakes/minimal-mistakes/pull/3958)
-- Fix SEO title when it contains a vertical bar. [#3094](https://github.com/mmistakes/minimal-mistakes/pull/3094) [#3113](https://github.com/mmistakes/minimal-mistakes/pull/3113)
-- Remove "sticky sidebar" JS as it's now completely based on CSS media queries. [#4245](https://github.com/mmistakes/minimal-mistakes/issues/4245) [#4645](https://github.com/mmistakes/minimal-mistakes/pull/4645)
-
-### Enhancements
-
-- Add support for [Jekyll Paginate V2](https://github.com/sverrirs/jekyll-paginate-v2) 🎉 [#2636](https://github.com/mmistakes/minimal-mistakes/pull/2636)
-- Add "copy to clipboard" button for code blocks 🎉 [#2812](https://github.com/mmistakes/minimal-mistakes/pull/2812)
-- Auto scroll sticky ToC with content. [#3115](https://github.com/mmistakes/minimal-mistakes/pull/3115)
-- Replace "hidden" check in Liquid templates with `where_exp: "item", "item.hidden != true"`.
-- Remove deprecated `page.header.cta_url` setting. [#4821](https://github.com/mmistakes/minimal-mistakes/pull/4821)
-- Allow multiple nav lists in sidebar. [#2843](https://github.com/mmistakes/minimal-mistakes/pull/2843)
-- Add popup parameter to `{% include figure %}` to enable Magnific Popup. [#3119](https://github.com/mmistakes/minimal-mistakes/pull/3119)
-- Add target attribute for navigation link. [#3056](https://github.com/mmistakes/minimal-mistakes/pull/3056)
-- Split schema to a separate include file. [#3085](https://github.com/mmistakes/minimal-mistakes/pull/3085)
-- Cleanup `_includes/seo.html`.
-
-### Documentation & Maintenance
-
-- Rewrite skin previews on `05-configuration.md` in Liquid template.
-- Remove unused classes from `_layouts/single.html`.
-- Migrate npm run scripts to Ruby Rake tasks.
-- Add Rake task `version` for updating all hard-coded version numbers from `package.json` all at once.
-- Merge `categories` and `tags` layout into `_includes/posts-taxonomy.html`.
-- Update Social Sharing links section. [#4066](https://github.com/mmistakes/minimal-mistakes/pull/4066)
-
-## [4.25.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.25.1)
-
-### Bug Fixes
-
-- "You may also enjoy" no longer recommends hidden posts. [#4653](https://github.com/mmistakes/minimal-mistakes/issues/4653)
-- Replaced dead link to "Viewport and Media Queries" slides. [#4421](https://github.com/mmistakes/minimal-mistakes/discussions/4421)
-- Fix broken `where_exp` in `lunr-store.js` for Jekyll < 4.0. [#4808](https://github.com/mmistakes/minimal-mistakes/issues/4808)
-
-### Enhancements
-
-- Add Ukrainian translations. [#4273](https://github.com/mmistakes/minimal-mistakes/pull/4273)
-- Add more configuration for Giscus. [#4274](https://github.com/mmistakes/minimal-mistakes/pull/4274)
-- Bump jekyll-toc to [v1.2.1](https://github.com/allejo/jekyll-toc/releases/tag/v1.2.1).
-
-### Documentation & Maintenance
-
-- Bump shell-quote from 1.7.1 to 1.7.3 [#3692](https://github.com/mmistakes/minimal-mistakes/issues/3692)
-- Add `after-content.html` and `before-related.html` includes to ease docs site overrides.
-- GitHub Workflows security hardening [#3884](https://github.com/mmistakes/minimal-mistakes/issues/3884)
-- Replace Font Awesome v5 search page with v6.
-- Try adding an FAQ page.
-- Update remote theme reference in Quick-Start Guide to point to 4.25.0. [#4809](https://github.com/mmistakes/minimal-mistakes/issues/4809)
-
-## [4.25.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.25.0)
-
-### Bug Fixes
-
-- Fix Linkedin social share link [#4754](https://github.com/mmistakes/minimal-mistakes/issues/4754)
-- Fix non-English characters being url encoded in breadcrumb [#3819](https://github.com/mmistakes/minimal-mistakes/issues/3819)
-- Fix wrong `first_page_path` because of hard-coded `page:num` [#3778](https://github.com/mmistakes/minimal-mistakes/issues/3778)
-- Remove JS and other files from search index [#4000](https://github.com/mmistakes/minimal-mistakes/pull/4000)
-- Fix unlisted YouTube video embeds in documentation/test sites. [#3649](https://github.com/mmistakes/minimal-mistakes/issues/3649)
-- Fix error in Algolia search script when returning a hit that without `html` and `hightlight.html`. [#3101](https://github.com/mmistakes/minimal-mistakes/issues/3101) [#3102](https://github.com/mmistakes/minimal-mistakes/pull/3102)
-- Fix inline code style not applied to stylized text. [#3253](https://github.com/mmistakes/minimal-mistakes/pull/3253)
-- Fix Keybase icon in author sidebar. [#3221](https://github.com/mmistakes/minimal-mistakes/pull/3221)
-- Fix sort order of Staticman comments when data files aren't named alphabetically. [#3184](https://github.com/mmistakes/minimal-mistakes/pull/3184)
-- Fix `layout: compress` issue with HTML comment in video include. [#3117](https://github.com/mmistakes/minimal-mistakes/pull/3117)
-- Add Magnific Popup class to anchors that only contain an `img` element. [#3111](https://github.com/mmistakes/minimal-mistakes/issues/3111) [#3114](https://github.com/mmistakes/minimal-mistakes/pull/3114)
-- Fix heading level of related posts section from `h4` to `h2` to improve accessibility and SEO. [#3064](https://github.com/mmistakes/minimal-mistakes/pull/3064)
-- Fix grammar error in German localized UI text string. [#3063](https://github.com/mmistakes/minimal-mistakes/pull/3063)
-- Remove site.url from first breadcrumb link. [#3051](https://github.com/mmistakes/minimal-mistakes/pull/3051)
-
-### Enhancements
-
-- Add `site.copyright` and `site.copyright_url` config options [#4313](https://github.com/mmistakes/minimal-mistakes/pull/4313)
-- Lazy-load InstantSearch scripts and stylesheets [#3691](https://github.com/mmistakes/minimal-mistakes/pull/3691)
-- Improve Finnish translations [#4595](https://github.com/mmistakes/minimal-mistakes/pull/4595)
-- Remove redundant downcase from \_layouts/categories.html. [#4531](https://github.com/mmistakes/minimal-mistakes/pull/4531)
-- Load latest Font Awesome package. [#3765](https://github.com/mmistakes/minimal-mistakes/pull/3765)
-- Add missing Polish missing UI text strings. [#3969](https://github.com/mmistakes/minimal-mistakes/pull/3969)
-- Update breadcrumbs conditional to enable/disable them via Front Matter on pages using `layout: single`. [#3096](https://github.com/mmistakes/minimal-mistakes/pull/3096) [#3669](https://github.com/mmistakes/minimal-mistakes/pull/3669)
-- Remove Internet Explorer 9 upgrade notice. [#3666](https://github.com/mmistakes/minimal-mistakes/pull/3666)
-- Add Kiswahili localized UI text strings. [#3489](https://github.com/mmistakes/minimal-mistakes/pull/3489)
-- Exclude `main.scss` from Lunr search index.
-- Allow `site.pages` to be indexed and searched via Lunr. [#3352](https://github.com/mmistakes/minimal-mistakes/pull/3352)
-- Update jQuery to v3.6.0. [#3254](https://github.com/mmistakes/minimal-mistakes/pull/3254)
-- Use notice `` colors for blockquotes that have `notice--` classes applied. [#3140](https://github.com/mmistakes/minimal-mistakes/pull/3140) [#3068](https://github.com/mmistakes/minimal-mistakes/issues/3068)
-- Add sameAs itemprop to author link. [#3087](https://github.com/mmistakes/minimal-mistakes/pull/3087)
-- Update and add missing Brazilian Portuguese translations. [#3204](https://github.com/mmistakes/minimal-mistakes/pull/3204)
-- Add optional label attribute for utterances comments. [#3128](https://github.com/mmistakes/minimal-mistakes/pull/3128)
-- Add missing Danish translations. [#3095](https://github.com/mmistakes/minimal-mistakes/pull/3095)
-- Add ARIA role to search forms. [#3086](https://github.com/mmistakes/minimal-mistakes/pull/3086)
-- Add overflow scroll bar to sticky table of contents that are taller than the viewport's height. [#2874](https://github.com/mmistakes/minimal-mistakes/pull/2874)
-- Add Microformats markup. [#3052](https://github.com/mmistakes/minimal-mistakes/pull/3052)
-
-### Documentation & Maintenance
-
-- Fix links to Font Awesome gallery. [#3599](https://github.com/mmistakes/minimal-mistakes/pull/3599)
-- Fix GreedyNav.js attribution link. [#3553](https://github.com/mmistakes/minimal-mistakes/pull/3553)
-- Fix typo about loading JavaScript in layout documentation. [#3350](https://github.com/mmistakes/minimal-mistakes/pull/3350)
-- Fix documentation typos. [#3232](https://github.com/mmistakes/minimal-mistakes/pull/3232) [#3318](https://github.com/mmistakes/minimal-mistakes/pull/3318)
-- Add link to documentation clarifying how to add plugins. [#3181](https://github.com/mmistakes/minimal-mistakes/pull/3181)
-- Fix broken documentation link and add Baidu site verification to `_config.yml` files. [#3139](https://github.com/mmistakes/minimal-mistakes/pull/3139)
-- Bump path-parse from 1.0.6 to 1.0.7. [#3116](https://github.com/mmistakes/minimal-mistakes/pull/3116)
-- Automatically close invalid PRs using GitHub Actions. [#3313](https://github.com/mmistakes/minimal-mistakes/pull/3313)
-- Add instructions on how to unminify `main.js` for easier browser debugging. [#3055](https://github.com/mmistakes/minimal-mistakes/pull/3055)
-- Consolidate hard-coded version numbers where possible.
-- Add Rakefile for automatically syncing CHANGELOG with history and synched them.
-
-## [4.24.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.24.0)
-
-### Bug Fixes
-
-- Fix README text for Gumshoejs license. [#3024](https://github.com/mmistakes/minimal-mistakes/pull/3024)
-- Remove `tabindex="-1"` from `input` elements in `search.html` layout to allow them to be accessible by keyboard. [#2982](https://github.com/mmistakes/minimal-mistakes/issues/2982)
-- Fix broken sidebar image in sample post. [#3013](https://github.com/mmistakes/minimal-mistakes/issues/3013)
-- Fix broken links in Upgrading documentation. [#3004](https://github.com/mmistakes/minimal-mistakes/issues/3004)
-
-### Enhancements
-
-- Remove IE9 flexbox fallback. [#3042](https://github.com/mmistakes/minimal-mistakes/pull/3042)
-- Remove `h2` from skip links navigation as it is not important for site structure. [#3012](https://github.com/mmistakes/minimal-mistakes/pull/3012)
-- Loads Font Awesome asynchronously. [#2967](https://github.com/mmistakes/minimal-mistakes/pull/2967)
-- Replace custom search icon SVG with Font Awesome icon. [#2774](https://github.com/mmistakes/minimal-mistakes/pull/2774)
-- Adds support for giscus comments. [#3022](https://github.com/mmistakes/minimal-mistakes/pull/3022)
-
-## [4.23.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.23.0)
-
-### Enhancements
-
-- Add Arabic (عربي) localized UI text strings. [#2936](https://github.com/mmistakes/minimal-mistakes/pull/2936)
-- Update onchange and uglify-js dependencies.
-- Document head and footer `custom.html` includes. [#2815](https://github.com/mmistakes/minimal-mistakes/pull/2815)
-- 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 verification [#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
-
-- 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)
-- 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)
-
-### 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) [#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
-
-- 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](https://github.com/mmistakes/minimal-mistakes/pull/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)
-- 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)
-
-### 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)
-- Fix a small typo in documentation. [#2718](https://github.com/mmistakes/minimal-mistakes/pull/2718)
-
-### 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)
-- 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
-
-- 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)
-- Change `fa` to `fas` for Font Awesome 5. [#2649](https://github.com/mmistakes/minimal-mistakes/pull/2649)
-
-### Enhancements
-
-- Refactor page meta include. [#2641](https://github.com/mmistakes/minimal-mistakes/pull/2641)
-- Add `article:author` Open Graph markup. [#2670](https://github.com/mmistakes/minimal-mistakes/pull/2670)
-
-## [4.20.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.1)
-
-### Bug Fixes
-
-- Fix grid `entries_layout` in home.html. [#2616](https://github.com/mmistakes/minimal-mistakes/pull/2616)
-
-## [4.20.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.20.0)
-
-### 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)
-- Fix broken Lunr search with Jekyll v4.1.0. [#2617](https://github.com/mmistakes/minimal-mistakes/pull/2617)
-
-### 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)
-- 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)
-- 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)
-
-### Enhancements
-
-- Update GreedyNav.js to reduce masthead link overflow/shifting on mobile devices. [#2551](https://github.com/mmistakes/minimal-mistakes/issues/2551)
-- Replace `` in `comments.html` include and add `custom_scripts.html` include for loading custom comment provider JavaScript in the footer. [#2549](https://github.com/mmistakes/minimal-mistakes/issues/2549)
-- Move page date Liquid to include. [#2544](https://github.com/mmistakes/minimal-mistakes/pull/2544)
-- Strip trailing whitespace in `seo_description`. [#2542](https://github.com/mmistakes/minimal-mistakes/pull/2542)
-- Improve sticky sidebar's appearance with short content. [#2514](https://github.com/mmistakes/minimal-mistakes/pull/2514)
-
-## [4.19.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.2)
-
-### Enhancements
-
-- Add support for bilibili videos in [responsive video helper](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#responsive-video-embed). [#2512](https://github.com/mmistakes/minimal-mistakes/pull/2512)
-- Add Myanmar (Burmese) localized UI text strings. [#2500](https://github.com/mmistakes/minimal-mistakes/pull/2500)
-- Improve author links underline on hover. [#2472](https://github.com/mmistakes/minimal-mistakes/pull/2472)
-- Add documentation for applying Front Matter defaults to jekyll-archives pages. [#2466](https://github.com/mmistakes/minimal-mistakes/pull/2466)
-- Add missing Vietnamese translations. [#2459](https://github.com/mmistakes/minimal-mistakes/pull/2459) [#2486](https://github.com/mmistakes/minimal-mistakes/pull/2486)
-- Fix Finnish localized UI text strings. [#2455](https://github.com/mmistakes/minimal-mistakes/pull/2455)
-- Clarify documentation that Lunr only searches documents in collections. [#2450](https://github.com/mmistakes/minimal-mistakes/pull/2450)
-- Add guide on applying Front Matter defaults to jekyll-archives pages [#2466](https://github.com/mmistakes/minimal-mistakes/pull/2466)
-
-### Bug Fixes
-
-- Fix typo in configuration documentation. [#2497](https://github.com/mmistakes/minimal-mistakes/pull/2497)
-- Fix "Follow menu falls under post links" on small screens. [#2479](https://github.com/mmistakes/minimal-mistakes/issues/2479)
-- Hide index page from page-archive. [#2482](https://github.com/mmistakes/minimal-mistakes/pull/2482)
-
-## [4.19.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.1)
-
-### Enhancements
-
-- Add [Dracula](https://draculatheme.com/) Base16 syntax highlighting theme Sass variables to [stylesheets documentation](https://mmistakes.github.io/minimal-mistakes/docs/stylesheets/#syntax-highlighting). [#2438](https://github.com/mmistakes/minimal-mistakes/pull/2438)
-- Update links to `HTTPS` and remove Google+ from configuration documentation. [#2432](https://github.com/mmistakes/minimal-mistakes/pull/2432)
-- Use `first_page_path` from jekyll-paginate-v2 if available. [#2431](https://github.com/mmistakes/minimal-mistakes/pull/2431)
-- Update onchange and uglify-js dependencies.
-- Update smooth-scroll.js to `v16.1.2`. [#2430](https://github.com/mmistakes/minimal-mistakes/issues/2430)
-
-### Bug Fixes
-
-- Fix author profile links `z-index` order on small screens. [#2440](https://github.com/mmistakes/minimal-mistakes/issues/2440)
-
-## [4.19.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.19.0)
-
-### Enhancements
-
-- Add "click" overlay to close masthead and follow button menus when open. [#1168](https://github.com/mmistakes/minimal-mistakes/issues/1168)
-- Remove deprecated Staticman v1 configurations from `_config.yml`. [#2386](https://github.com/mmistakes/minimal-mistakes/issues/2386)
-- Use `relative_url` and `absolute_url` filters where possible. [#2387](https://github.com/mmistakes/minimal-mistakes/pull/2387)
-- Improve headline hierarchy and add Sass specific variables `$h-size-x`. [#2423](https://github.com/mmistakes/minimal-mistakes/issues/2423)
-- Improve accessibility of `default` skin by increasing color contrast of text and links.
-- Hide posts with `hidden: true` YAML front matter from appearing in listings. [#2345](https://github.com/mmistakes/minimal-mistakes/pull/2345)
-- Add Irish (Gaeilge) localized UI text strings. [#2422](https://github.com/mmistakes/minimal-mistakes/pull/2422)
-- Remove `box-shadow` on radio and checkbox inputs. [#2398](https://github.com/mmistakes/minimal-mistakes/pull/2398)
-- Bump Jekyll gem dependency to `v3.7`.
-
-### Bug Fixes
-
-- Fix documentation around using `bundle info` command. [#2425](https://github.com/mmistakes/minimal-mistakes/pull/2425)
-- Fix rake vulnerability in `.gemspec` file.
-- Fix Staticman v2 comment submission. [#2402](https://github.com/mmistakes/minimal-mistakes/pull/2402)
-- Fix repeated site base path for masthead logo. [#2385](https://github.com/mmistakes/minimal-mistakes/pull/2385)
-
-## [4.18.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.18.1)
-
-### Bug Fixes
-
-- Fix compatibility issue with jekyll-paginate-v2. [#2381](https://github.com/mmistakes/minimal-mistakes/pull/2381)
-
-## [4.18.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.18.0)
-
-### Enhancements
-
-- Allow `home` layout to display posts without pagination. [#2378](https://github.com/mmistakes/minimal-mistakes/pull/2378)
-- Add links to high resolution skin screenshots in README. [#2363](https://github.com/mmistakes/minimal-mistakes/issues/2363)
-- 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)
-- 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)
-- Add social icon color for Keybase. [#2302](https://github.com/mmistakes/minimal-mistakes/pull/2302)
-
-### Bug Fixes
-
-- Fix JavaScript comments in Disqus include to be compatible with `compress` layout. [#2373](https://github.com/mmistakes/minimal-mistakes/pull/2373)
-- Fix wrong newline concatenation in SEO description [#2368](https://github.com/mmistakes/minimal-mistakes/pull/2368) [#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)
-- Fix background color of code blocks in notices. [#2328](https://github.com/mmistakes/minimal-mistakes/pull/2328)
-- Fix alignment of feature rows when placed next to a sticky sidebar. [#2327](https://github.com/mmistakes/minimal-mistakes/issues/2327)
-- Fix `seo_description` in `_includes/seo.html`. [#2326](https://github.com/mmistakes/minimal-mistakes/pull/2326)
-- Fix typo in `_config.yml`. [#2319](https://github.com/mmistakes/minimal-mistakes/pull/2319)
-
-## [4.17.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.17.2)
-
-### Enhancements
-
-- Add collection step to documentation about creating a portfolio page. [#2294](https://github.com/mmistakes/minimal-mistakes/pull/2294)
-- Replace sticky footer JavaScript with flexbox styles. [#2289](https://github.com/mmistakes/minimal-mistakes/pull/2289)
-
-### Bug Fixes
-
-- Fix sticky footer when using MozBar extension. [#2281](https://github.com/mmistakes/minimal-mistakes/issues/2281)
-
-## [4.17.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.17.1)
-
-### Enhancements
-
-- Update Chinese (Simplified) localized UI text strings. [#2286](https://github.com/mmistakes/minimal-mistakes/pull/2286)
-- Update list of 3rd party JavaScript used and licenses. [#2276](https://github.com/mmistakes/minimal-mistakes/pull/2276)
-
-### Bug Fixes
-
-- Fix indention of nested GFM task lists. [#2283](https://github.com/mmistakes/minimal-mistakes/issues/2283)
-
-## [4.17.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.17.0)
-
-### Enhancements
-
-- Show a permalink anchor when hovering over headings in main content area. [#2251](https://github.com/mmistakes/minimal-mistakes/pull/2251)
-- Allow per-page override of `words_per_minute`. [#2250](https://github.com/mmistakes/minimal-mistakes/pull/2250)
-- Update [onchange](https://www.npmjs.com/package/onchange) development dependency in `package.json`. [#2241](https://github.com/mmistakes/minimal-mistakes/issues/2241)
-- Add Catalan localized UI text strings. [#2237](https://github.com/mmistakes/minimal-mistakes/pull/2237)
-
-### Bug Fixes
-
-- Remove extraneous space from Internet Explorer conditional statement. [#2273](https://github.com/mmistakes/minimal-mistakes/pull/2273)
-- Fix typo in `_config.yml`. [#2243](https://github.com/mmistakes/minimal-mistakes/pull/2243)
-- Replace `http` URLs with `https` where applicable in `_config.yml`. [#2244](https://github.com/mmistakes/minimal-mistakes/pull/2244)
-
-## [4.16.6](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.6)
-
-### Enhancements
-
-- Relax Jekyll dependency to allow for version 4.0.
-- Add missing Spanish localized UI text strings. [#2229](https://github.com/mmistakes/minimal-mistakes/pull/2229)
-- Allow Markdown in author bio. [#2215](https://github.com/mmistakes/minimal-mistakes/pull/2215)
-
-### Bug Fixes
-
-- Fix `site.url` in Organization/Person JSON-LD schema. [#1906](https://github.com/mmistakes/minimal-mistakes/issues/1906)
-- Remove full stop in some `comment_form_info` UI text strings. [#2220](https://github.com/mmistakes/minimal-mistakes/pull/2220)
-- Fix default `site.author` in seo.html [#2230](https://github.com/mmistakes/minimal-mistakes/pull/2230)
-- Fix overlapping links (linked to and post's permalink) in post link type. [#2222](https://github.com/mmistakes/minimal-mistakes/issues/2222)
-
-## [4.16.5](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.5)
-
-### Enhancements
-
-- Add optional site subtitle to masthead. [#2173](https://github.com/mmistakes/minimal-mistakes/issues/2173)
-- Add missing Punjabi and Hindi localized UI text strings. [#2212](https://github.com/mmistakes/minimal-mistakes/pull/2212)
-- Add missing Korean localized UI text strings. [#2209](https://github.com/mmistakes/minimal-mistakes/pull/2209)
-- Use [Font Awesome Kits](https://blog.fontawesome.com/introducing-font-awesome-kits-7134d1d59959) to use the latest version of icons. [#2184](https://github.com/mmistakes/minimal-mistakes/issues/2184)
-- Remove unnecessary console.log in `lunr-en.js` and `lunr-gr.js` JavaScript. [#2193](https://github.com/mmistakes/minimal-mistakes/issues/2193)
-- Remove unnecessary `type="text/javascript"` from Google Analytics JavaScript. [#2190](https://github.com/mmistakes/minimal-mistakes/pull/2190)
-- Update links and fix typos in documentation. [#2186](https://github.com/mmistakes/minimal-mistakes/pull/2186)
-- Add skip links. [#2182](https://github.com/mmistakes/minimal-mistakes/issues/2182)
-
-### Bug Fixes
-
-- Fix aria issues with Lunr search form. [#2211](https://github.com/mmistakes/minimal-mistakes/pull/2211)
-- Fix missing fallback title for table of contents.
-
-## [4.16.4](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.4)
-
-### Enhancements
-
-- Update Brazilian Portuguese localized UI text strings. [#2162](https://github.com/mmistakes/minimal-mistakes/pull/2162)
-- Update Font Awesome to v5.8.2. [#2150](https://github.com/mmistakes/minimal-mistakes/pull/2150)
-- Add missing Spanish localized UI text strings. [#2149](https://github.com/mmistakes/minimal-mistakes/pull/2149)
-
-### Bug Fixes
-
-- Fix arithmetic in `_form.scss` partial. [#2169](https://github.com/mmistakes/minimal-mistakes/pull/2169)
-- Fix pound symbol not displaying properly for post categories and tags. [#2156](https://github.com/mmistakes/minimal-mistakes/issues/2156)
-- Fix permalink stacking order and click-able area in archives.
-
-## [4.16.3](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.3)
-
-### Enhancements
-
-- Update jQuery to v3.4.1. [#2137](https://github.com/mmistakes/minimal-mistakes/issues/2137)
-- Update Gumshoe to v5.1.1. [#2140](https://github.com/mmistakes/minimal-mistakes/issues/2140)
-
-### Bug Fixes
-
-- Fix JavaScript error when resizing pages with table of contents. [#2140](https://github.com/mmistakes/minimal-mistakes/issues/2140)
-
-## [4.16.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.2)
-
-### Bug Fixes
-
-- Revert jQuery back to version v3.3.1, v.3.4.0 causes issues with other plugins that haven't been updated. [#2137](https://github.com/mmistakes/minimal-mistakes/issues/2137)
-
-## [4.16.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.1)
-
-### Enhancements
-
-- Update [`compress` layout](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#compress-layout) to v3.1.0. [#2128](https://github.com/mmistakes/minimal-mistakes/pull/2128)
-- Update jQuery to v3.4.0. [#2129](https://github.com/mmistakes/minimal-mistakes/pull/2129)
-
-### Bug Fixes
-
-- Fix Gumshoe related JavaScript error on pages without a table of contents. [#2124](https://github.com/mmistakes/minimal-mistakes/pull/2124)
-
-## [4.16.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.16.0)
-
-### Enhancements
-
-- Improve search `input` semantics for Lunr and Google search providers. [#2123](https://github.com/mmistakes/minimal-mistakes/pull/2123)
-- Allow adding JavaScript files after those bundled in the theme. [#2110](https://github.com/mmistakes/minimal-mistakes/issues/2110) [#2116](https://github.com/mmistakes/minimal-mistakes/pull/2116)
-- Add `$max-width` Sass variable for adjusting page content's maximum width. [#2093](https://github.com/mmistakes/minimal-mistakes/pull/2093)
-- Add Thai localized UI text strings. [#2111](https://github.com/mmistakes/minimal-mistakes/pull/2111)
-- Update Font Awesome to [v5.8.1](https://github.com/FortAwesome/Font-Awesome/releases/tag/5.8.1). [#2102](https://github.com/mmistakes/minimal-mistakes/pull/2102)
-- Add missing Vietnamese localized UI text strings. [#2097](https://github.com/mmistakes/minimal-mistakes/pull/2097)
-- Replace jQuery Smooth Scroll with Smooth Scroll + Gumshoe. [#2082](https://github.com/mmistakes/minimal-mistakes/pull/2082)
-- Add styling for [GFM task lists](https://help.github.com/en/articles/about-task-lists#creating-task-lists). [#2092](https://github.com/mmistakes/minimal-mistakes/issues/2092)
-- Update Google Universal Analytics to load async. [#2079](https://github.com/mmistakes/minimal-mistakes/pull/2079)
-- Remove Google+ social sharing button, comment provider, and author link configs from theme.
-- Add missing Chinese text strings. [#2072](https://github.com/mmistakes/minimal-mistakes/pull/2072)
-
-### Bug Fixes
-
-- Fix table of contents active link styling.
-- Add missing Hindi localized UI text strings. [#2105](https://github.com/mmistakes/minimal-mistakes/pull/2105) [#2106](https://github.com/mmistakes/minimal-mistakes/pull/2106)
-- Fix Brazilian Portuguese text strings. [#2098](https://github.com/mmistakes/minimal-mistakes/pull/2098)
-- Fix typo in French `results_found` text string. [#2096](https://github.com/mmistakes/minimal-mistakes/pull/2096)
-- Fix figures inside of list elements. [#2094](https://github.com/mmistakes/minimal-mistakes/pull/2094)
-- Remove Font Awesome `data-search-pseudo-elements` attribute as it degrades smooth scroll performance. [#2075](https://github.com/mmistakes/minimal-mistakes/issues/2075#issuecomment-472437014)
-- Fix footnote links incompatibility with smooth scroll plugin. [#2075](https://github.com/mmistakes/minimal-mistakes/issues/2075)
-- Loosen Bundler dependency in ruby gem.
-
-## [4.15.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.15.2)
-
-### Enhancements
-
-- Close search overlay with Esc. [#2055](https://github.com/mmistakes/minimal-mistakes/pull/2055)
-- Update Swedish localized UI text strings. [#2056](https://github.com/mmistakes/minimal-mistakes/pull/2056)
-- Update Font Awesome to 5.7.1 and add `data-search-pseudo-elements` attribute. [#2053](https://github.com/mmistakes/minimal-mistakes/pull/2053)
-- Add Malayalam localized UI text strings. [#2037](https://github.com/mmistakes/minimal-mistakes/pull/2037)
-
-### Bug Fixes
-
-- Fix table of contents errors with non-English characters in the headings. [#2042](https://github.com/mmistakes/minimal-mistakes/pull/2042)
-- Fix `site.logo` false positives. [#2026](https://github.com/mmistakes/minimal-mistakes/pull/2026#issuecomment-455770730)
-- Add empty `alt` attribute to `site.logo` image. [#2035](https://github.com/mmistakes/minimal-mistakes/pull/2035)
-
-## [4.15.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.15.1)
-
-### Bug Fixes
-
-- Fix empty `` when `site_logo` is not assigned. [#2026](https://github.com/mmistakes/minimal-mistakes/pull/2026#issuecomment-454809876)
-
-## [4.15.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.15.0)
-
-### Enhancements
-
-- Add logo and title customization to the masthead. [#2026](https://github.com/mmistakes/minimal-mistakes/pull/2026)
-- Add support to customize `issue-term` for utterances comment provider. [#2022](https://github.com/mmistakes/minimal-mistakes/pull/2022)
-- Allow custom canonical url on a page-by-page basis. [#2021](https://github.com/mmistakes/minimal-mistakes/pull/2021)
-- Update table of contents navigation based on scroll position to indicate which link is currently active in the viewport. [#2020](https://github.com/mmistakes/minimal-mistakes/pull/2020)
-- Clicking table of contents links changes URL has fragment. [#2019](https://github.com/mmistakes/minimal-mistakes/pull/2019) [#2023](https://github.com/mmistakes/minimal-mistakes/pull/2023)
-
-## [4.14.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.14.2)
-
-### Enhancements
-
-- Improve accessibility by adding label text to search button toggle. [#2014](https://github.com/mmistakes/minimal-mistakes/pull/2014)
-- Update Lunr to 2.3.5. [#2010](https://github.com/mmistakes/minimal-mistakes/pull/2010)
-- Shorten Internet Explorer conditional statement in `_includes/head.html`. [#2006](https://github.com/mmistakes/minimal-mistakes/pull/2006)
-- Add Persian localized UI text strings. [#2004](https://github.com/mmistakes/minimal-mistakes/pull/2004)
-- Remove unused JavaScript variables from Staticman comment script. [#1996](https://github.com/mmistakes/minimal-mistakes/pull/1996)
-- Update Font Awesome to 5.6.0. [#1995](https://github.com/mmistakes/minimal-mistakes/pull/1995)
-- Change remaining schema.org markup to `https`. [#1978](https://github.com/mmistakes/minimal-mistakes/pull/1978)
-- Update NPM dependencies.
-
-### Bug Fixes
-
-- Fix wide tables that overflow parent container. [#2008](https://github.com/mmistakes/minimal-mistakes/issues/2008)
-- Fix Spanish `comments_label` and `comments_title` UI text strings. [#1997](https://github.com/mmistakes/minimal-mistakes/pull/1997)
-- Allow sidebar navigation with custom sidebar content. [#1986](https://github.com/mmistakes/minimal-mistakes/issues/1986)
-- Fix Google Custom Search JavaScript error when not using Instant Search. [#1983](https://github.com/mmistakes/minimal-mistakes/pull/1983)
-
-## [4.14.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.14.1)
-
-### Bug Fixes
-
-- Fix closed navicon on hover.
-
-## [4.14.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.14.0)
-
-### Enhancements
-
-- Change schema.org markup to `https`. [#1969](https://github.com/mmistakes/minimal-mistakes/pull/1969)
-- Add Google Drive as video provider. [#1967](https://github.com/mmistakes/minimal-mistakes/pull/1967)
-- Match `:focus` color to skin.
-- Add support for [utterances](https://utteranc.es/) comments. [#1909](https://github.com/mmistakes/minimal-mistakes/issues/1909)
-- Use privacy aware embed options for YouTube and Vimeo in [responsive video helper](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#responsive-video-embed). [#1964](https://github.com/mmistakes/minimal-mistakes/pull/1964)
-- Add `rel="nofollow noopener noreferrer"` to author profile links. [#1924](https://github.com/mmistakes/minimal-mistakes/pull/1924)
-- Improve color contrast of primary buttons and links.
-- Add Punjabi localized UI text strings. [#1962](https://github.com/mmistakes/minimal-mistakes/pull/1962)
-- Add Hindi localized UI text strings. [#1888](https://github.com/mmistakes/minimal-mistakes/pull/1888)
-- Update Lunr to `2.3.3`. [#1885](https://github.com/mmistakes/minimal-mistakes/pull/1885)
-- Cache "static" includes to improve build performance. **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. [#1874](https://github.com/mmistakes/minimal-mistakes/pull/1874)
-- Make entire feature and archive items "clickable". [#1864](https://github.com/mmistakes/minimal-mistakes/pull/1864)
-- Allow custom Staticman endpoints. [#1842](https://github.com/mmistakes/minimal-mistakes/issues/1842)
-- Remove `type="text/css"` from Algolia script includes. [#1836](https://github.com/mmistakes/minimal-mistakes/pull/1836)
-- Remove unneeded `HandheldFriendly` and `MobileOptimized` meta tags. [#1837](https://github.com/mmistakes/minimal-mistakes/pull/1837)
-- Update Font Awesome to version `5.5.0` and add `integrity` hash. [#1922](https://github.com/mmistakes/minimal-mistakes/pull/1922)
-- Always load Google 404 Linkhelp script over HTTPS. [#1829](https://github.com/mmistakes/minimal-mistakes/pull/1829)
-- Remove deprecated `base_path` include helper.
-
-### Bug Fixes
-
-- Prevent current post from showing in the related posts section. [#1976](https://github.com/mmistakes/minimal-mistakes/pull/1976)
-- Fix dark skins syntax highlighting colors. [#1973](https://github.com/mmistakes/minimal-mistakes/issues/1973)
-- Remove unnecessary closing bracket in analytics documentation. [#1915](https://github.com/mmistakes/minimal-mistakes/pull/1915)
-- Fix breadcrumb navigation alignment. [#1917](https://github.com/mmistakes/minimal-mistakes/issues/1917)
-- Fix Algolia search link positioning. [#1904](https://github.com/mmistakes/minimal-mistakes/pull/1904)
-- Fix Lunr search index merging words. [#1883](https://github.com/mmistakes/minimal-mistakes/issues/1883)
-- Properly apply `relative_url` filter to internal links in header overlay `actions` array.
-- Revert cached includes (`include_cached`) for comment and analytics providers. [#1905](https://github.com/mmistakes/minimal-mistakes/issues/1905)
-
-## [4.13.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.13.0)
-
-### Enhancements
-
-- Add Romanian localized UI text strings. [#1814](https://github.com/mmistakes/minimal-mistakes/pull/1814)
-- Improve author link flexibility. [#1581](https://github.com/mmistakes/minimal-mistakes/issues/1581)
-- Improve footer link flexibility.
-- Deprecate `cta_label` and `cta_url` in header overlay in favor of new `actions` array that allows for multiple "call to action" button links. [#1461](https://github.com/mmistakes/minimal-mistakes/issues/1461)
-- Add support to [gallery helper](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery) for defining column layout (`half`, `third`, or single `''`). [#1821](https://github.com/mmistakes/minimal-mistakes/issues/1821)
-
-### Bug Fixes
-
-- Fix sidebar navigation list toggle. [#1819](https://github.com/mmistakes/minimal-mistakes/issues/1819)
-- Fix hover animation for links with `:visited` state. [#1820](https://github.com/mmistakes/minimal-mistakes/issues/1820)
-
-## [4.12.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.12.2)
-
-### Enhancements
-
-- Add missing Italian localized UI text strings. [#1793](https://github.com/mmistakes/minimal-mistakes/pull/1793)
-- Update [jekyll-toc](https://github.com/allejo/jekyll-toc) to `v1.0.5`.
-- Support heading levels 1-6 in table of contents with proper indentation styling. [#1782](https://github.com/mmistakes/minimal-mistakes/issues/1782)
-- Use relative links for masthead navigation menu items when possible. [#1784](https://github.com/mmistakes/minimal-mistakes/pull/1784)
-- Add `.emoji` class to author sidebar to normalize image sizes. [#1780](https://github.com/mmistakes/minimal-mistakes/pull/1780)
-- Update Staticman commit message to include comment author's name.
-- Improve side navigation spacing in relation to masthead.
-- Style archive links with appropriate link color.
-- Adjust feature row spacing and font-sizes.
-- Use sentence case and increase font-sizes for improved readability in table of contents.
-- Add `{{ content }}` to `home` layout. [#1775](https://github.com/mmistakes/minimal-mistakes/pull/1775)
-
-## [4.12.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.12.1)
-
-### Enhancements
-
-- Add missing French localized UI text strings. [#1769](https://github.com/mmistakes/minimal-mistakes/pull/1769) [#1741](https://github.com/mmistakes/minimal-mistakes/pull/1741)
-- Update Font Awesome to version [`5.2.0`](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md). [#1754](https://github.com/mmistakes/minimal-mistakes/pull/1754)
-- Add documentation note to update root `Gemfile` when forking theme.
-
-### Bug Fixes
-
-- Remove slash at the beginning of `path` in staticman.yml example. [#1772](https://github.com/mmistakes/minimal-mistakes/pull/1772)
-- Fix `read_time` logic in header image overlay. [#1756](https://github.com/mmistakes/minimal-mistakes/pull/1756)
-
-## [4.12.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.12.0)
-
-### Enhancements
-
-- Add Hungarian localized UI text strings. [#1682](https://github.com/mmistakes/minimal-mistakes/pull/1682)
-- DRY `tags_max` calculation in tags.html layout. [#1696](https://github.com/mmistakes/minimal-mistakes/pull/1696)
-- DRY `categories_max` calculation in categories.html layout.
-- Add support for ["sticking" table of contents](https://mmistakes.github.io/minimal-mistakes/layout-table-of-contents-sticky/) to top of page via `toc_sticky: true` YAML Front Matter.
-- Add support for captioning images in feature row helper via `image_caption` YAML Front Matter. [#1440](https://github.com/mmistakes/minimal-mistakes/issues/1440)
-- Add [Google Custom Search Engine](https://cse.google.com/cse) support. [#1652](https://github.com/mmistakes/minimal-mistakes/issues/1652)
-- Update Font Awesome to version. [`5.1.13`](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
-- Add "Pets" sample archive page to documentation site. [#1664](https://github.com/mmistakes/minimal-mistakes/pull/1664)
-- Add GitLab social icon brand color. [#1653](https://github.com/mmistakes/minimal-mistakes/issues/1653)
-- Prevent line breaks between FontAwesome icon and text in footer social links. [#1659](https://github.com/mmistakes/minimal-mistakes/issues/1659)
-
-### Bug Fixes
-
-- Set default `title_separator`. [#1701](https://github.com/mmistakes/minimal-mistakes/pull/1701)
-- Fix `naver_site_verification` typo in /\_includes/seo.html. [#1687](https://github.com/mmistakes/minimal-mistakes/pull/1687)
-- Fix table of contents missing borders. [#1675](https://github.com/mmistakes/minimal-mistakes/issues/1675)
-- Fix link to "Recipes" sample archive on documentation site. [#1664](https://github.com/mmistakes/minimal-mistakes/pull/1664)
-- Update example Reddit social share interpolation syntax in documentation. [#1656](https://github.com/mmistakes/minimal-mistakes/issues/1656)
-- Fix "Back to Top" links on pages that use [header overlays](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#header-overlay).
-
-## [4.11.2](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.11.2)
-
-### Enhancements
-
-- Update Font Awesome to version `5.0.11`. [#1620](https://github.com/mmistakes/minimal-mistakes/pull/1620)
-- Add Slovak localized UI text strings. [#1613](https://github.com/mmistakes/minimal-mistakes/pull/1613)
-- Add option to anonymize IP addresses of hits sent to Google Analytics. [#1636](https://github.com/mmistakes/minimal-mistakes/pull/1636)
-
-### Bug Fixes
-
-- Use correct text string for "Back to Top" link. [#1595](https://github.com/mmistakes/minimal-mistakes/issues/1595)
-- Add conditionals for showing `reCaptcha.siteKey` and `reCaptcha.secret` in Staticman comments form.
-
-## [4.11.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.11.1)
-
-### Enhancements
-
-- Add default `theme` and `remote_theme` values to `_config.yml`.
-- Add new layouts (`posts`, `categories`, `tags`, `collection`, `category`, and `tag`) for easier archive page creation.
-
-### Bug Fixes
-
-- Replace `absolute_url` filter with `relative_url` where it makes sense (asset/navigation related paths). [#1588](https://github.com/mmistakes/minimal-mistakes/issues/1588)
-- Fix search excerpts that run together because of implied spaces.
-
-## [4.10.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.10.1)
-
-### Enhancements
-
-- Update jQuery to version `3.3.1`. [#1491](https://github.com/mmistakes/minimal-mistakes/issues/1491)
-- Add link to jekyll-algolia's `files_to_exclude` documentation.
-- Update Font Awesome to version [`5.0.8`](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md). [#1561](https://github.com/mmistakes/minimal-mistakes/pull/1561)
-- Activate Algolia search for documentation site. [#1570](https://github.com/mmistakes/minimal-mistakes/issues/1570)
-- Add missing German translations. [#1577](https://github.com/mmistakes/minimal-mistakes/pull/1577)
-- Add support for Google Analytics with global site tag (gtag.js) [#1563](https://github.com/mmistakes/minimal-mistakes/pull/1563)
-
-### Bug Fixes
-
-- Focus Algolia search input after clicking on search toggle.
-
-## [4.10.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.10.0)
-
-### Enhancements
-
-- Add support for [Algolia](https://www.algolia.com/) search provider ([see demo](https://mmistakes.github.io/minimal-mistakes-algolia-search/)). [#1416](https://github.com/mmistakes/minimal-mistakes/issues/1416)
-
-## [4.9.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.9.1)
-
-### Enhancements
-
-- Simplify year archive Liquid.
-- Add documentation on how to downgrade theme.
-- Improve greedy navigation's layout when JavaScript is disabled.
-- Improve SEO include by grouping similar tags, reducing white-space, and adding `article:modified_time`. [#1456](https://github.com/mmistakes/minimal-mistakes/pull/1456)
-- Minify `assets/js/lunr/lunr.js`.
-- Improve calculation of Greedy navigation's `availableSpace`.
-- Add Danish and Russian translations for new search strings. [#1472](https://github.com/mmistakes/minimal-mistakes/pull/1472) [#1477](https://github.com/mmistakes/minimal-mistakes/pull/1477)
-- Indicate that archive titles are links with an underline.
-- Remove `base_path` include from `/test` pages.
-- Reduce font-size of page meta in list/grid items.
-- Improve feature row styling when used with `archive` layout. [#1484](https://github.com/mmistakes/minimal-mistakes/issues/1484)
-- Improve German translations. [#1511](https://github.com/mmistakes/minimal-mistakes/pull/1511)
-- Update Font Awesome to `5.0.6`. [#1513](https://github.com/mmistakes/minimal-mistakes/pull/1513)
-- Add `wide` variant to single layout. [#1516](https://github.com/mmistakes/minimal-mistakes/pull/1516)
-
-### Bug Fixes
-
-- Allow `author` to accept an object or string. [#289](https://github.com/mmistakes/minimal-mistakes/issues/289)
-- Fix syntax highlighting line number styling inconsistency. [#1467](https://github.com/mmistakes/minimal-mistakes/issues/1467)
-- Fix author sidebar icon colors for dark skins. [#1482](https://github.com/mmistakes/minimal-mistakes/issues/1482)
-- Remove misleading underline hover state on feature row items.
-- Properly escape quotes in `site.social.name` and `site.name`. [#1485](https://github.com/mmistakes/minimal-mistakes/pull/1485)
-- Fix typo in upgrading documentation. [#1487](https://github.com/mmistakes/minimal-mistakes/pull/1487)
-- Fix `border-bottom` for Gist line numbers.
-- Replace `|` with HTML entity when used as title separator. [#760](https://github.com/mmistakes/minimal-mistakes/issues/760)
-
-## [4.9.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.9.0)
-
-### Enhancements
-
-- Add `show_overlay_excerpt` for disabling overlay image excerpt text. [#1436](https://github.com/mmistakes/minimal-mistakes/pull/1436)
-- Update remote theme installation instructions in Quick Start Guide. [#1439](https://github.com/mmistakes/minimal-mistakes/pull/1439)
-- Reduce visual weight of code blocks.
-- Add Lunr.js Greek stemmer. [#1445](https://github.com/mmistakes/minimal-mistakes/pull/1445)
-- Update Font Awesome 5 [SVG with JavaScript version](https://fontawesome.com/how-to-use/svg-with-js). [#1446](https://github.com/mmistakes/minimal-mistakes/pull/1446)
- - Note: if Font Awesome icons were used in the content of posts/pages or custom table of contents, find and replace any icons that have different names between version 4 and 5. Make sure to read the [complete list](https://fontawesome.com/how-to-use/upgrading-from-4#icon-name-changes-full) on Font Awesome's site.
-- Reduce size of Lunr.js search JSON data and introduce `site.search_full_content` flag for limiting size of JSON file. [#1449](https://github.com/mmistakes/minimal-mistakes/pull/1449)
-- Improve syntax highlighting styles. [#1450](https://github.com/mmistakes/minimal-mistakes/pull/1450)
-
-### Bug Fixes
-
-- Fix code block extra white-space when using [Jekyll's highlight tag](https://jekyllrb.com/docs/templates/#code-snippet-highlighting) with `linenos`. [#1437](https://github.com/mmistakes/minimal-mistakes/issues/1437)
-- Round top-right corner of code block icon.
-- Remove Lunr.js trimmer and bring back colons. [#1445](https://github.com/mmistakes/minimal-mistakes/pull/1445)
-- Fix sticky `.sidebar` that overlaps main content when resizing viewport. [#1447](https://github.com/mmistakes/minimal-mistakes/issues/1447)
-
-## [4.8.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.8.1)
-
-### Enhancements
-
-- Add linkback functionality to author avatar and name in sidebar via `author.home`. [#1386](https://github.com/mmistakes/minimal-mistakes/pull/1386)
-- Add Japanese localized UI text strings. [#1411](https://github.com/mmistakes/minimal-mistakes/pull/1411)
-- Update Lunr.js to 2.1.5 [#1419](https://github.com/mmistakes/minimal-mistakes/pull/1419)
-
-### Bug Fixes
-
-- Fixed broken link to Staticman's page [#1422](https://github.com/mmistakes/minimal-mistakes/pull/1422)
-- Fix Lunr search to work with number tags. [#1409](https://github.com/mmistakes/minimal-mistakes/issues/1409) [#1419](https://github.com/mmistakes/minimal-mistakes/pull/1419)
-
-## [4.8.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.8.0)
-
-### Enhancements
-
-- Open social share links in a new window. [#1357](https://github.com/mmistakes/minimal-mistakes/pull/1357)
-- Remove Alexa.com verification due to retiring of "[Claim Your Site](https://support.alexa.com/hc/en-us/articles/219135887)" feature. [#1350](https://github.com/mmistakes/minimal-mistakes/issues/1350)
-- Disable analytics in `development` environment. [#1362](https://github.com/mmistakes/minimal-mistakes/pull/1362)
-- Disable comments in `development` environment. [#1363](https://github.com/mmistakes/minimal-mistakes/pull/1363)
-- Exclude specific pages/posts from search index by adding `search: false` to the YAML Front Matter. [#1369](https://github.com/mmistakes/minimal-mistakes/pull/1369)
-- Add optional `description` key to masthead links for clarifying their purpose with the `title` attribute. [#1380](https://github.com/mmistakes/minimal-mistakes/pull/1380)
-- Incorporate site search into masthead. [#1383](https://github.com/mmistakes/minimal-mistakes/pull/1383)
-- Update gem dependencies. [#1388](https://github.com/mmistakes/minimal-mistakes/pull/1388)
-
-### Bug Fixes
-
-- Fix `post.content` typo in `assets/js/lunr-en.js`. [#1354](https://github.com/mmistakes/minimal-mistakes/pull/1354)
-- Fix "lunr-en.js:1 Uncaught SyntaxError: Unexpected token <" in `assets/js/lunr-en.js`. [#1356](https://github.com/mmistakes/minimal-mistakes/pull/1356)
-- Rename Naver verification `naver_site_verification` to be consistent with other site variables.
-- Fix button class in "Post with Table Of Contents" demo content. [#1368](https://github.com/mmistakes/minimal-mistakes/pull/1368)
-- Fix capitalization of WordPress in documentation. [#1381](https://github.com/mmistakes/minimal-mistakes/pull/1381)
-- Fix zh-HK UI text to point to Traditional Chinese. [#1374](https://github.com/mmistakes/minimal-mistakes/issues/1374) [#1389](https://github.com/mmistakes/minimal-mistakes/pull/1389)
-
-## [4.7.1](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.7.1)
-
-### Enhancements
-
-- Add search layout powered by [Lunr](https://lunrjs.com/). [#1353](https://github.com/mmistakes/minimal-mistakes/pull/1353)
-- Use [jekyll-remote-theme](https://github.com/benbalter/jekyll-remote-theme) for demo site. [#1339](https://github.com/mmistakes/minimal-mistakes/issues/1339)
-- Add note about WordPress to Staticman comment migration tool in documentation. [#1346](https://github.com/mmistakes/minimal-mistakes/issues/1346)
-
-### Bug Fixes
-
-- Change `http` to `https` for Jekyll and Browserhappy links. [#1342](https://github.com/mmistakes/minimal-mistakes/pull/1342) [#1343](https://github.com/mmistakes/minimal-mistakes/pull/1343)
-- Change `http` author profile links to `https` when supported. [#1349](https://github.com/mmistakes/minimal-mistakes/pull/1349)
-- Fix broken SCSS partial links in layouts documentation. [#1351](https://github.com/mmistakes/minimal-mistakes/issues/1351)
-
-## [4.7.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.7.0)
-
-### Enhancements
-
-- Add `alt` description to avatar image. [#1226](https://github.com/mmistakes/minimal-mistakes/pull/1226)
-- Clarify documentation about which `assets` folders and files to remove when migrating to the gem version of the theme. [#1268](https://github.com/mmistakes/minimal-mistakes/issues/1268)
-- Add note about Staticman GitHub compatibility. [#1273](https://github.com/mmistakes/minimal-mistakes/issues/1273)
-- Add missing Brazilian Portuguese translations to `ui-text.yml`. [#1278](https://github.com/mmistakes/minimal-mistakes/pull/1278)
-- Update font stack documentation. [#1292](https://github.com/mmistakes/minimal-mistakes/pull/1292)
-- Improve accessibility of navigation menu button. [#1099](https://github.com/mmistakes/minimal-mistakes/issues/1099)
-- Add Naver Webmaster Tools verification. [#1286](https://github.com/mmistakes/minimal-mistakes/pull/1286)
-- Add support for Staticman v2 endpoint and reCAPTCHA.
-- Add Polish localized UI text strings. [#1304](https://github.com/mmistakes/minimal-mistakes/pull/1304)
-- Add toggleable table of contents via YAML Front Matter. Note: `toc` helper include will be deprecated in next major version. [#1222](https://github.com/mmistakes/minimal-mistakes/issues/1222)
-- Refactor seo.html include to DRY-up page image handling.
-- Add support for setting what image is used by OpenGraph and Twitter via `page.header.og_image`. [#1316](https://github.com/mmistakes/minimal-mistakes/issues/1316)
-- Fix the spelling of some product names in the author profile. [#1328](https://github.com/mmistakes/minimal-mistakes/pull/1328)
-- Add `aqua`, `neon`, and `plum` skins. [#1336](https://github.com/mmistakes/minimal-mistakes/pull/1336)
-- Update **jekyll-toc** with heading classes fix. [#1337](https://github.com/mmistakes/minimal-mistakes/pull/1337)
-- Remove `+` from Google+ author link to allow non-vanity URLs. [#1319](https://github.com/mmistakes/minimal-mistakes/pull/1319)
-
-### Bug Fixes
-
-- Fix system font rendering in Chrome on macOS/OS X. [#1290](https://github.com/mmistakes/minimal-mistakes/pull/1290)
-- Fix extra padding in syntax highlighted code blocks due to Rouge 2 adding `` to markup.
-
-## [4.6.0](https://github.com/mmistakes/minimal-mistakes/releases/tag/4.6.0)
-
-### Enhancements
-
-- Test strict Front Matter in `/test` site. [#1236](https://github.com/mmistakes/minimal-mistakes/pull/1236)
-- Rename `gems` key to `plugins`. [#1239](https://github.com/mmistakes/minimal-mistakes/pull/1239)
-- Add [YIQ Color Contrast](https://github.com/easy-designs/yiq-color-contrast) mixin for determining lightness of a color.
-- DRY up button CSS using Sass lists and YIQ Color Contrast mixin.
-- Add `btn--primary` button class. **Note:** elements that were previously using only a `.btn` class will now also need `.btn--primary` (eg. `my link`).
-- Add `air`, `contrast`, `dark`, `dirt`, `mint`, and `sunrise` skin color options. [#1208](https://github.com/mmistakes/minimal-mistakes/issues/1208)
-- Allow scripts in `
" | remove: "
" %} -{% else %} - {% assign title = post.title %} -{% endif %} - -{{ post.excerpt | markdownify | strip_html | truncate: 160 }}
{% endif %} -- {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} - - {% for category_word in categories_sorted %} - {{ category_word }}{% unless forloop.last %}, {% endunless %} - {% endfor %} - -
-{% endif %} \ No newline at end of file diff --git a/_includes/comment.html b/_includes/comment.html deleted file mode 100644 index 2e3013ee2a76..000000000000 --- a/_includes/comment.html +++ /dev/null @@ -1,22 +0,0 @@ -- {% if include.date %} - {% if include.index %}{% endif %} - - {% if include.index %}{% endif %} - {% endif %} -
-{{ 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].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} *
- -{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}
- {% endif %} -" | remove: "
" }} -" | remove: "
" }}{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}
-{% elsif page.date %} -{{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}
-{% endif %} \ No newline at end of file diff --git a/_includes/page__hero.html b/_includes/page__hero.html deleted file mode 100644 index ebc0b6b43068..000000000000 --- a/_includes/page__hero.html +++ /dev/null @@ -1,53 +0,0 @@ -{% capture overlay_img_path %}{{ page.header.overlay_image | relative_url }}{% endcapture %} - -{% 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 %} - {% assign image_description = page.header.image_description %} -{% else %} - {% assign image_description = page.title %} -{% endif %} - -{% assign image_description = image_description | markdownify | strip_html | strip_newlines | escape_once %} - - diff --git a/_includes/page__hero_video.html b/_includes/page__hero_video.html deleted file mode 100644 index a313a23d45b9..000000000000 --- a/_includes/page__hero_video.html +++ /dev/null @@ -1,2 +0,0 @@ -{% assign video = page.header.video %} -{% include video id=video.id provider=video.provider danmaku=video.danmaku %} diff --git a/_includes/page__meta.html b/_includes/page__meta.html deleted file mode 100644 index 3d228c921205..000000000000 --- a/_includes/page__meta.html +++ /dev/null @@ -1,31 +0,0 @@ -{% assign document = post | default: page %} -{% if document.read_time or document.show_date %} - -{% endif %} diff --git a/_includes/page__related.html b/_includes/page__related.html deleted file mode 100644 index 9777865eeefd..000000000000 --- a/_includes/page__related.html +++ /dev/null @@ -1,11 +0,0 @@ -{% assign posts = include.posts | where_exp: "post", "post.hidden != true" %} - diff --git a/_includes/page__taxonomy.html b/_includes/page__taxonomy.html deleted file mode 100644 index 75c76c81ddf2..000000000000 --- a/_includes/page__taxonomy.html +++ /dev/null @@ -1,7 +0,0 @@ -{% if site.tag_archive.type and page.tags[0] %} - {% include tag-list.html %} -{% endif %} - -{% if site.category_archive.type and page.categories[0] %} - {% include category-list.html %} -{% endif %} \ No newline at end of file diff --git a/_includes/paginator-v1.html b/_includes/paginator-v1.html deleted file mode 100644 index c24d4909f488..000000000000 --- a/_includes/paginator-v1.html +++ /dev/null @@ -1,70 +0,0 @@ -{% if paginator.total_pages > 1 %} - -{% endif %} diff --git a/_includes/paginator-v2.html b/_includes/paginator-v2.html deleted file mode 100644 index ea5707d56965..000000000000 --- a/_includes/paginator-v2.html +++ /dev/null @@ -1,68 +0,0 @@ - diff --git a/_includes/paginator.html b/_includes/paginator.html deleted file mode 100644 index c4ab29edf29b..000000000000 --- a/_includes/paginator.html +++ /dev/null @@ -1,7 +0,0 @@ -{% if paginator.total_pages > 1 %} - {% if site.paginate %} - {% include paginator-v1.html %} - {% elsif site.pagination.enabled %} - {% include paginator-v2.html %} - {% endif %} -{% endif %} diff --git a/_includes/post_pagination.html b/_includes/post_pagination.html deleted file mode 100644 index a93c6279763b..000000000000 --- a/_includes/post_pagination.html +++ /dev/null @@ -1,14 +0,0 @@ -{% if page.previous or page.next %} - -{% endif %} \ No newline at end of file diff --git a/_includes/posts-category.html b/_includes/posts-category.html deleted file mode 100644 index 658f315104b2..000000000000 --- a/_includes/posts-category.html +++ /dev/null @@ -1,4 +0,0 @@ -{% assign posts = site.categories[include.taxonomy] | where_exp: "post", "post.hidden != true" %} -{%- for post in posts -%} - {% include archive-single.html %} -{%- endfor -%} diff --git a/_includes/posts-tag.html b/_includes/posts-tag.html deleted file mode 100644 index a8fc472b443a..000000000000 --- a/_includes/posts-tag.html +++ /dev/null @@ -1,4 +0,0 @@ -{% assign posts = site.tags[include.taxonomy] | where_exp: "post", "post.hidden != true" %} -{%- for post in posts -%} - {% include archive-single.html %} -{%- endfor -%} diff --git a/_includes/posts-taxonomy.html b/_includes/posts-taxonomy.html deleted file mode 100644 index e99db65c875f..000000000000 --- a/_includes/posts-taxonomy.html +++ /dev/null @@ -1,37 +0,0 @@ -{% assign items_max = 0 %} -{% for item in include.taxonomies %} - {% if item[1].size > items_max %} - {% assign items_max = item[1].size %} - {% endif %} -{% endfor %} - -- {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} - - {% for tag_word in tags_sorted %} - {{ tag_word }}{% unless forloop.last %}, {% endunless %} - {% endfor %} - -
-{% endif %} \ No newline at end of file diff --git a/_includes/toc b/_includes/toc deleted file mode 100644 index 6423ccdc72e1..000000000000 --- a/_includes/toc +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/_includes/toc.html b/_includes/toc.html deleted file mode 100644 index bc90d08a994b..000000000000 --- a/_includes/toc.html +++ /dev/null @@ -1,189 +0,0 @@ -{% capture tocWorkspace %} - {% comment %} - Copyright (c) 2017 Vladimir "allejo" Jimenez - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, 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. - {% endcomment %} - {% comment %} - Version 1.2.1 - 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 - - Usage: - {% 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 - - 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(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 - * 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 - * skip_no_ids (bool) : false - skip headers that do not have an `id` attribute - * flat_toc (bool) : false - when set to true, the TOC will be a single level list - - 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 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 flatToc = include.flat_toc | 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 | strip | split: '" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}
{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = "
Step | Bytes |
raw | {{ content | size }}{% if _profile_endings %} |
endings | {{ _profile_endings }}{% endif %}{% if _profile_startings %} |
startings | {{ _profile_startings }}{% endif %}{% if _profile_comments %} |
comments | {{ _profile_comments }}{% endif %}{% if _profile_collapse %} |
collapse | {{ _profile_collapse }}{% endif %}{% if _profile_clippings %} |
clippings | {{ _profile_clippings }}{% endif %} |
" | remove: "
" }} -
+var arr = Array.apply(null, Array(5)).map(function (_, i) {return i;});
+var processedArr = $.map(arr, function(el) { return el * 2; } );
+// arr = [0, 1, 2, 3, 4]
+// processedArr = [0, 2, 4, 6, 8]
+
+
+
+ var keys = $.unique($.map(objects, function(e) { return e[keyfield] }))
+ $.map(keys,function(e){
+ var ret = {};
+ ret[e]= $.grep(objects, function(gr) {
+ return gr[keyfield] == e;
+ }).length;
+ return ret;
+} );
+
+JSFiddle
+
+
+var arr = Array.apply(null, Array(5)).map(function (_, i) {return i;});
+// note that no records change with scalar elements b/c items passed by value
+$.each(arr, function(idx, el) { el *= 2; });
+// [ 0, 1, 2, 3, 4 ]
+
+var arr1 = [ ['a',1],['b',2],['c',3] ];
+$.each(arr, function(idx, el) { el *= 2; });
+// [["a", 2], ["b", 4], ["c", 6]]
+
+var arr2 = [ {a: 1}, {a: 2}, {a: 3} ];
+// records change with an object
+$.each(arr2, function(idx, el) { el.a *= 2; });
+// [ {a: 2}, {a: 4}, {a: 6} ];
+
+
\ No newline at end of file
diff --git a/_posts/2014-05-08-idiom-for-generics-on-static-methods.md b/_posts/2014-05-08-idiom-for-generics-on-static-methods.md
new file mode 100644
index 000000000000..4dce00eed14d
--- /dev/null
+++ b/_posts/2014-05-08-idiom-for-generics-on-static-methods.md
@@ -0,0 +1,26 @@
+---
+id: 40
+title: Idiom for generics on static methods
+date: 2014-05-08T09:21:40+00:00
+author: edgriebel
+guid: http://www.edgriebel.com/?p=40
+permalink: /idiom-for-generics-on-static-methods/
+categories:
+ - Uncategorized
+---
+I always forget this idiom:
+[sourcecode language="java"]
+ public static sqljdbc_auth.dll
.
+
+Including a DLL is problematic when running Java on a non-Windows host. There is an open source library that can access MS SQL Server, http://jtds.sourceforge.net/. Getting the URL correct is tricky because of the parameters that need to be supplied. The URL I found that works is:
+jdbc:jtds:sqlserver://<serverhost>;useNTLMv2=true;user=<userid>;databaseName=<definedDbName>;domain=<NTLM Domain>;instance=<"Other" database name>
\ No newline at end of file
diff --git a/_posts/2014-07-03-learning-experience-with-git-push.md b/_posts/2014-07-03-learning-experience-with-git-push.md
new file mode 100644
index 000000000000..ce57e41ba0ac
--- /dev/null
+++ b/_posts/2014-07-03-learning-experience-with-git-push.md
@@ -0,0 +1,23 @@
+---
+id: 80
+title: Learning experience with git push
+date: 2014-07-03T12:42:42+00:00
+author: edgriebel
+guid: http://www.edgriebel.com/?p=80
+permalink: /learning-experience-with-git-push/
+image: /wp-content/uploads/2014/07/gitlogo.jpg
+categories:
+ - Uncategorized
+tags:
+ - git
+---
+TL;DR, #1: merges in all branches in a directory/local repo will be pushed regardless of the current branch when push is done, #2 use a new clone “every” time you make a change, #3 git pull is an implicit merge without a commit and shows up in the shared remote repo when local is pushed
+
+So I’ve been doing my merges from our release branch to master in a clone in directory /work. This directory is “clean”, no development taking place or changing files, so I have been reusing this directory, probably not the best practice as I'm about to find out.
+
+
+Another developer, "Joe", and I were doing some experimentation, so I went to /work because I knew it was clean and checked out Joe's branch “A”, then did a merge of branch “B” into it to see if we could see changes between the two branches.
+
+Later on I wanted to move some files from one of my dev branches into a new branch, so in my clean /work directory I did a git checkout -b new-branch, copied the files over, did git add and git commit of these. Then did a git push origin.
+
+Turns out, doing a push from the new branch doesn’t only commit the changes on the branch I’m in but in all branches in the local repo that I was sitting in. So the merge I did that was not supposed to be pushed to the repo at all ended up being pushed. Fortunately the merge changes are independent of Joe's existing code on A so no major harm done.
diff --git a/_posts/2014-10-23-two-hard-things.md b/_posts/2014-10-23-two-hard-things.md
new file mode 100644
index 000000000000..03b3dba6e339
--- /dev/null
+++ b/_posts/2014-10-23-two-hard-things.md
@@ -0,0 +1,20 @@
+---
+id: 86
+title: 'Two Hard Things…'
+date: 2014-10-23T08:19:17+00:00
+author: edgriebel
+guid: http://www.edgriebel.com/?p=86
+permalink: /two-hard-things/
+categories:
+ - Uncategorized
+---
+There are only two hard things in Computer Science: cache invalidation and naming things. + +-- Phil Karlton + + +Long a favorite saying of mine, one for which I couldn't find a satisfactory URL. + +There is also a variation on this that says there are two hard things in computer science: cache invalidation, naming things, and off-by-one errors. + +http://martinfowler.com/bliki/TwoHardThings.html\ No newline at end of file diff --git a/_posts/2015-01-27-quick-graphic-model-of-a-db.md b/_posts/2015-01-27-quick-graphic-model-of-a-db.md new file mode 100644 index 000000000000..2482920f64d2 --- /dev/null +++ b/_posts/2015-01-27-quick-graphic-model-of-a-db.md @@ -0,0 +1,20 @@ +--- +id: 90 +title: Quick graphic model of a DB +date: 2015-01-27T10:43:49+00:00 +author: edgriebel +guid: http://www.edgriebel.com/?p=90 +permalink: /quick-graphic-model-of-a-db/ +categories: + - Uncategorized +tags: + - SQL +--- +Found a quick way to generate a DB entity model diagram with Oracle's SQL Developer. Here is a description of how to do it, but in short: +
http_proxy
) or via a configuration file. Setting up a non-encrypting proxy is tedious, but none in my experience support NTLM-based authentication. The process for getting these apps to talk across a proxied firewall is painful.
+
+So, every developer who wants their tools to access the internet needs to configure CNTLM and configure their apps to use this proxy. This is fiddly too, as some apps use HTTP_PROXY
/HTTPS_PROXY
environment variables, and some use a config file. This config file could be in the install directory, users home directory (%USERPROFILE%/.gitconfig
), an app directory in the home directory (%USERPROFILE%/.m2/settings.xml
), some other random place, or commandline (npm config set proxy...
, npm config set http-proxy ...
, etc.
+
+Woe to you if the https proxy cert's is self-signed so that the signature can't be traced back to a standard Certificate Authority (CA). There's a whole new ring of Hell of figuring out how to disable signature validation. Most of the time signature validation can't be disabled, so another configuration needs to be set to tell the app to use the http flavor of a given repo instead of the default https, if it even offers a non-encrypted version.
diff --git a/_posts/2016-10-25-yet-another-reason-to-not-use-ie-smashing-magazine.md b/_posts/2016-10-25-yet-another-reason-to-not-use-ie-smashing-magazine.md
new file mode 100644
index 000000000000..7ed93528e190
--- /dev/null
+++ b/_posts/2016-10-25-yet-another-reason-to-not-use-ie-smashing-magazine.md
@@ -0,0 +1,25 @@
+---
+id: 158
+title: 'Yet another reason to not use IE --- Smashing Magazine'
+date: 2016-10-25T11:55:10+00:00
+author: edgriebel
+guid: http://www.edgriebel.com/?p=158
+permalink: /yet-another-reason-to-not-use-ie-smashing-magazine/
+categories:
+ - Uncategorized
+tags:
+ - ie
+---
+This must be reason #84 at this point to use anything (even Opera) instead of IE...
+
+{:right: style="float: right" width="150px"}
+\\
+*"Microsoft Standards"*
+{:right}
+> 512 MAGICAL BYTES: This is, hands down,
+> one of the strangest quirks I have ever encountered in web development.
+> You must ensure that the total size of your 404.html page is greater than 512 bytes, because if it isn’t, Internet Explorer will disregard it and show a generic browser 404 page instead. When I finally figured this out, I had to crack open a beer to cope with the amount of time it took.
+
+Source:
+[S(GH)PA: The Single-Page App Hack For GitHub Pages – Smashing Magazine](https://www.smashingmagazine.com/2016/08/sghpa-single-page-app-hack-github-pages/#512-magical-bytes)
+
diff --git a/_posts/2017-02-27-getting-a-blog-running-on-github-with-jekyll.md b/_posts/2017-02-27-getting-a-blog-running-on-github-with-jekyll.md
new file mode 100755
index 000000000000..cb74be078e73
--- /dev/null
+++ b/_posts/2017-02-27-getting-a-blog-running-on-github-with-jekyll.md
@@ -0,0 +1,158 @@
+---
+title: Getting a Blog running on Github with Jekyll
+date: 2017-02-27T20:00:00+00:00
+author: edgriebel
+permalink: /first-jekyll/
+tags:
+ - blogging
+ - jekyll
+ - ruby
+ - ubuntu
+---
+# Overall thoughts
+{:right: style="float: right" width="250px"}
+{:width="250px"}\\
+*With special Ruby Powers!*
+{:right}
+Jekyll is complicated! I had a very hard time converting an existing Wordpress
+blog to Jekyll. It took 15-20 hours because of futzing with themes,
+working around firewalls, false starts with running Jekyll in Windows, etc.
+
+I'm still not happy with the theme.
+Theming in Jekyll is way harder than in Wordpress. Wordpress is click-click to change
+to a new theme and even just a single click to preview. The way with Jekyll is
+to:
+1. clone someone else's github repo with a style you like
+2. copy `_posts` directory into the clone
+3. copy static/asset content to the clone
+4. figure out what layout they use in their posts and pages and change appropriately
+5. run `jekyll serve` multiple times until all bugs are exorcised
+6. Clever people will do this on a different branch and have github serve up the branch temporarily
+
+Instead of changing every post, one can make an alias, if you use layout "mypost", create `_layouts/mypost.html`:
+~~~~
+---
+layout: themepost # the layout specified in the new theme
+---
+{% raw %}{{ content }}{% endraw %}
+
+~~~~
+
+When there are any errors in the numerous cookbook-style blogs about how to convert,
+there is a lot to know about Ruby, Jekyll, `bundle`, `Gemfile`s, RubyGems, etc.
+to get all the moving parts working.
+
+Jekyll does not work well with Windows. Most of the blogs say this, and I agree, _do not use windows_
+for Jekyll. The toolchain just doesn't work well for anything more complicated than the
+default `minima` theme.
+Things went much smoother when I set up a linux vm in VirtualBox on my windows box,
+but there were still some gotchas when getting github previews working.
+
+# Exporting from existing wordpress blog
+This was tons of trouble. It seems that the [wordpress exporter] I used
+would export the post content and images, etc. but doesn't preserve
+the theme. When the `_posts` contents copied into a newly-initialized
+`jekyll new testblog`, there are errors about specified layouts not found.
+A barely acceptable solution is to create a new jekyll blog and then copy Gemfile,
+make changes in `_config.yml`, and futz with stuff to get `jekyll build` to complete.
+Some of the problems could also have been because of trying to use Windows. **DO NOT USE WINDOWS!!**
+
+
+# Steps to get Jekyll working with Github themes (a.k.a. github "preview") on Ubuntu MATE
+**Do not try to use Windows until you _completely_ understand Jekyll!!!**
+
+## Install requisite libraries to preview github-themed pages
+~~~~ bash
+sudo apt-get install ruby
+sudo apt-get install libz-dev
+sudo apt-get install g++
+sudo gem install jekyll
+# change perms so gem doesn't have to be run with sudo
+sudo chmod -R a+w /var/lib/gems
+gem install bundler
+gem install jekyll-feed
+gem install jekyll-instant
+gem install minima # originally used the minima theme
+gem install nokogiri
+gem install therubyracer # For coffeescript used by github-pages build
+# need to remove newer version of Jekyll as github pages supports older version
+gem uninstall jekyll
+# choose newer version from list
+~~~~
+
+At some point this could probably be turned into a [Vagrant](https://www.vagrantup.com/) vm-based dev env.
+
+## Troubleshooting Notes
+`Gemfile.lock` is required to be in the repo.
+It is NOT a lockfile to prevent multiple edits as I initially assumed,
+but a listing of all the [gem] [versions] used the last time `gem update` was run.
+
+Most of the github themes don't list an individual page's
+title at the top of the page. The `default.html` page was copied from the
+theme's `_layout` directory and then `block to clipboard - ========================================================================== */ - -// a
x
'; - head.appendChild(div.childNodes[1]); - } - - if ( options ) { - $.extend( settings, options ); - } - - return this.each(function(){ - var selectors = [ - 'iframe[src*="player.vimeo.com"]', - 'iframe[src*="youtube.com"]', - 'iframe[src*="youtube-nocookie.com"]', - 'iframe[src*="kickstarter.com"][src*="video.html"]', - 'object', - 'embed' - ]; - - if (settings.customSelector) { - selectors.push(settings.customSelector); - } - - var ignoreList = '.fitvidsignore'; - - if(settings.ignore) { - ignoreList = ignoreList + ', ' + settings.ignore; - } - - var $allVideos = $(this).find(selectors.join(',')); - $allVideos = $allVideos.not('object object'); // SwfObj conflict patch - $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. - - $allVideos.each(function(count){ - var $this = $(this); - if($this.parents(ignoreList).length > 0) { - return; // Disable FitVids on this video. - } - if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } - if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) - { - $this.attr('height', 9); - $this.attr('width', 16); - } - var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), - width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), - aspectRatio = height / width; - if(!$this.attr('id')){ - var videoID = 'fitvid' + count; - $this.attr('id', videoID); - } - $this.wrap('').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); - $this.removeAttr('height').removeAttr('width'); - }); - }); - }; -// Works with either jQuery or Zepto -})( window.jQuery || window.Zepto ); \ No newline at end of file diff --git a/assets/js/plugins/jquery.greedy-navigation.js b/assets/js/plugins/jquery.greedy-navigation.js deleted file mode 100644 index ce8a80ca2874..000000000000 --- a/assets/js/plugins/jquery.greedy-navigation.js +++ /dev/null @@ -1,128 +0,0 @@ -/* -GreedyNav.js - https://github.com/lukejacksonn/GreedyNav -Licensed under the MIT license - http://opensource.org/licenses/MIT -Copyright (c) 2015 Luke Jackson http://lukejacksonn.com -*/ - -$(function() { - - var $btn = $("nav.greedy-nav .greedy-nav__toggle"); - var $vlinks = $("nav.greedy-nav .visible-links"); - var $hlinks = $("nav.greedy-nav .hidden-links"); - var $nav = $("nav.greedy-nav"); - var $logo = $('nav.greedy-nav .site-logo'); - 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 - // 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; - totalSpace = 0; - closingTime = 1000; - breakWidths = []; - - // Adds the width of a navItem in order to create breakpoints for the navbar - function addWidth(i, w) { - totalSpace += w; - numOfItems += 1; - breakWidths.push(totalSpace); - } - - // Measures the width of hidden links by making a temporary clone of them and positioning under visible links - function hiddenWidth(obj){ - var clone = obj.clone(); - clone.css("visibility","hidden"); - $vlinks.append(clone); - addWidth(0, clone.outerWidth()); - clone.remove(); - } - // Measure both visible and hidden links widths - $vlinks.children().outerWidth(addWidth); - $hlinks.children().each(function(){hiddenWidth($(this))}); - } - // Get initial state - measureLinks(); - - var winWidth = $( window ).width(); - // Set the last measured CSS width breakpoint: 0: <768px, 1: <1024px, 2: < 1280px, 3: >= 1280px. - var lastBreakpoint = winWidth < 768 ? 0 : winWidth < 1024 ? 1 : winWidth < 1280 ? 2 : 3; - - var availableSpace, numOfVisibleItems, requiredSpace, timer; - - function check() { - - winWidth = $( window ).width(); - // Set the current CSS width breakpoint: 0: <768px, 1: <1024px, 2: < 1280px, 3: >= 1280px. - var curBreakpoint = winWidth < 768 ? 0 : winWidth < 1024 ? 1 : winWidth < 1280 ? 2 : 3; - // If current breakpoint is different from last measured breakpoint, measureLinks again - if(curBreakpoint !== lastBreakpoint) measureLinks(); - // Set the last measured CSS width breakpoint with the current breakpoint - lastBreakpoint = curBreakpoint; - - // Get instant state - numOfVisibleItems = $vlinks.children().length; - // Decrease the width of visible elements from the nav innerWidth to find out the available space for navItems - availableSpace = /* nav */ $nav.innerWidth() - - /* logo */ ($logo.length !== 0 ? $logo.outerWidth(true) : 0) - - /* title */ $title.outerWidth(true) - - /* search */ ($search.length !== 0 ? $search.outerWidth(true) : 0) - - /* toggle */ (numOfVisibleItems !== breakWidths.length ? $btn.outerWidth(true) : 0); - requiredSpace = breakWidths[numOfVisibleItems - 1]; - - // There is not enought space - if (requiredSpace > availableSpace) { - $vlinks.children().last().prependTo($hlinks); - numOfVisibleItems -= 1; - check(); - // There is more than enough space. If only one element is hidden, add the toggle width to the available space - } else if (availableSpace + (numOfVisibleItems === breakWidths.length - 1?$btn.outerWidth(true):0) > breakWidths[numOfVisibleItems]) { - $hlinks.children().first().appendTo($vlinks); - numOfVisibleItems += 1; - check(); - } - // Update the button accordingly - $btn.attr("count", numOfItems - numOfVisibleItems); - if (numOfVisibleItems === numOfItems) { - $btn.addClass('hidden'); - } else $btn.removeClass('hidden'); - } - - // Window listeners - $(window).resize(function() { - check(); - }); - - $btn.on('click', function() { - $hlinks.toggleClass('hidden'); - $(this).toggleClass('close'); - clearTimeout(timer); - }); - - $hlinks.on('mouseleave', function() { - // Mouse has left, start the timer - timer = setTimeout(function() { - $hlinks.addClass('hidden'); - $('.greedy-nav__toggle').removeClass('close'); - }, closingTime); - }).on('mouseenter', function() { - // Mouse is back, cancel the timer - clearTimeout(timer); - }) - - // check if page has a logo - if($logoImg.length !== 0){ - // check if logo is not loaded - if(!($logoImg[0].complete || $logoImg[0].naturalWidth !== 0)){ - // if logo is not loaded wait for logo to load or fail to check - $logoImg.one("load error", check); - // if logo is already loaded just check - } else check(); - // if page does not have a logo just check - } else check(); - -}); diff --git a/assets/js/plugins/jquery.magnific-popup.js b/assets/js/plugins/jquery.magnific-popup.js deleted file mode 100644 index 7d1d1978490c..000000000000 --- a/assets/js/plugins/jquery.magnific-popup.js +++ /dev/null @@ -1,1860 +0,0 @@ -/*! Magnific Popup - v1.1.0 - 2016-02-20 -* http://dimsemenov.com/plugins/magnific-popup/ -* Copyright (c) 2016 Dmitry Semenov; */ -;(function (factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS - factory(require('jquery')); - } else { - // Browser globals - factory(window.jQuery || window.Zepto); - } - }(function($) { - - /*>>core*/ - /** - * - * Magnific Popup Core JS file - * - */ - - - /** - * Private static constants - */ - var CLOSE_EVENT = 'Close', - BEFORE_CLOSE_EVENT = 'BeforeClose', - AFTER_CLOSE_EVENT = 'AfterClose', - BEFORE_APPEND_EVENT = 'BeforeAppend', - MARKUP_PARSE_EVENT = 'MarkupParse', - OPEN_EVENT = 'Open', - CHANGE_EVENT = 'Change', - NS = 'mfp', - EVENT_NS = '.' + NS, - READY_CLASS = 'mfp-ready', - REMOVING_CLASS = 'mfp-removing', - PREVENT_CLOSE_CLASS = 'mfp-prevent-close'; - - - /** - * Private vars - */ - /*jshint -W079 */ - var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this' - MagnificPopup = function(){}, - _isJQ = !!(window.jQuery), - _prevStatus, - _window = $(window), - _document, - _prevContentType, - _wrapClasses, - _currPopupType; - - - /** - * Private functions - */ - var _mfpOn = function(name, f) { - mfp.ev.on(NS + name + EVENT_NS, f); - }, - _getEl = function(className, appendTo, html, raw) { - var el = document.createElement('div'); - el.className = 'mfp-'+className; - if(html) { - el.innerHTML = html; - } - if(!raw) { - el = $(el); - if(appendTo) { - el.appendTo(appendTo); - } - } else if(appendTo) { - appendTo.appendChild(el); - } - return el; - }, - _mfpTrigger = function(e, data) { - mfp.ev.triggerHandler(NS + e, data); - - if(mfp.st.callbacks) { - // converts "mfpEventName" to "eventName" callback and triggers it if it's present - e = e.charAt(0).toLowerCase() + e.slice(1); - if(mfp.st.callbacks[e]) { - mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]); - } - } - }, - _getCloseBtn = function(type) { - if(type !== _currPopupType || !mfp.currTemplate.closeBtn) { - mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) ); - _currPopupType = type; - } - return mfp.currTemplate.closeBtn; - }, - // Initialize Magnific Popup only when called at least once - _checkInstance = function() { - if(!$.magnificPopup.instance) { - /*jshint -W020 */ - mfp = new MagnificPopup(); - mfp.init(); - $.magnificPopup.instance = mfp; - } - }, - // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr - supportsTransitions = function() { - var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist - v = ['ms','O','Moz','Webkit']; // 'v' for vendor - - if( s['transition'] !== undefined ) { - return true; - } - - while( v.length ) { - if( v.pop() + 'Transition' in s ) { - return true; - } - } - - return false; - }; - - - - /** - * Public functions - */ - MagnificPopup.prototype = { - - constructor: MagnificPopup, - - /** - * Initializes Magnific Popup plugin. - * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed - */ - init: function() { - var appVersion = navigator.appVersion; - mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener; - mfp.isAndroid = (/android/gi).test(appVersion); - mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion); - mfp.supportsTransition = supportsTransitions(); - - // We disable fixed positioned lightbox on devices that don't handle it nicely. - // If you know a better way of detecting this - let me know. - mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) ); - _document = $(document); - - mfp.popupsCache = {}; - }, - - /** - * Opens popup - * @param data [description] - */ - open: function(data) { - - var i; - - if(data.isObj === false) { - // convert jQuery collection to array to avoid conflicts later - mfp.items = data.items.toArray(); - - mfp.index = 0; - var items = data.items, - item; - for(i = 0; i < items.length; i++) { - item = items[i]; - if(item.parsed) { - item = item.el[0]; - } - if(item === data.el[0]) { - mfp.index = i; - break; - } - } - } else { - mfp.items = $.isArray(data.items) ? data.items : [data.items]; - mfp.index = data.index || 0; - } - - // if popup is already opened - we just update the content - if(mfp.isOpen) { - mfp.updateItemHTML(); - return; - } - - mfp.types = []; - _wrapClasses = ''; - if(data.mainEl && data.mainEl.length) { - mfp.ev = data.mainEl.eq(0); - } else { - mfp.ev = _document; - } - - if(data.key) { - if(!mfp.popupsCache[data.key]) { - mfp.popupsCache[data.key] = {}; - } - mfp.currTemplate = mfp.popupsCache[data.key]; - } else { - mfp.currTemplate = {}; - } - - - - mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); - mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos; - - if(mfp.st.modal) { - mfp.st.closeOnContentClick = false; - mfp.st.closeOnBgClick = false; - mfp.st.showCloseBtn = false; - mfp.st.enableEscapeKey = false; - } - - - // Building markup - // main containers are created only once - if(!mfp.bgOverlay) { - - // Dark overlay - mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() { - mfp.close(); - }); - - mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) { - if(mfp._checkIfClose(e.target)) { - mfp.close(); - } - }); - - mfp.container = _getEl('container', mfp.wrap); - } - - mfp.contentContainer = _getEl('content'); - if(mfp.st.preloader) { - mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading); - } - - - // Initializing modules - var modules = $.magnificPopup.modules; - for(i = 0; i < modules.length; i++) { - var n = modules[i]; - n = n.charAt(0).toUpperCase() + n.slice(1); - mfp['init'+n].call(mfp); - } - _mfpTrigger('BeforeOpen'); - - - if(mfp.st.showCloseBtn) { - // Close button - if(!mfp.st.closeBtnInside) { - mfp.wrap.append( _getCloseBtn() ); - } else { - _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) { - values.close_replaceWith = _getCloseBtn(item.type); - }); - _wrapClasses += ' mfp-close-btn-in'; - } - } - - if(mfp.st.alignTop) { - _wrapClasses += ' mfp-align-top'; - } - - - - if(mfp.fixedContentPos) { - mfp.wrap.css({ - overflow: mfp.st.overflowY, - overflowX: 'hidden', - overflowY: mfp.st.overflowY - }); - } else { - mfp.wrap.css({ - top: _window.scrollTop(), - position: 'absolute' - }); - } - if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) { - mfp.bgOverlay.css({ - height: _document.height(), - position: 'absolute' - }); - } - - - - if(mfp.st.enableEscapeKey) { - // Close on ESC key - _document.on('keyup' + EVENT_NS, function(e) { - if(e.keyCode === 27) { - mfp.close(); - } - }); - } - - _window.on('resize' + EVENT_NS, function() { - mfp.updateSize(); - }); - - - if(!mfp.st.closeOnContentClick) { - _wrapClasses += ' mfp-auto-cursor'; - } - - if(_wrapClasses) - mfp.wrap.addClass(_wrapClasses); - - - // this triggers recalculation of layout, so we get it once to not to trigger twice - var windowHeight = mfp.wH = _window.height(); - - - var windowStyles = {}; - - if( mfp.fixedContentPos ) { - if(mfp._hasScrollBar(windowHeight)){ - var s = mfp._getScrollbarSize(); - if(s) { - windowStyles.marginRight = s; - } - } - } - - if(mfp.fixedContentPos) { - if(!mfp.isIE7) { - windowStyles.overflow = 'hidden'; - } else { - // ie7 double-scroll bug - $('body, html').css('overflow', 'hidden'); - } - } - - - - var classesToadd = mfp.st.mainClass; - if(mfp.isIE7) { - classesToadd += ' mfp-ie7'; - } - if(classesToadd) { - mfp._addClassToMFP( classesToadd ); - } - - // add content - mfp.updateItemHTML(); - - _mfpTrigger('BuildControls'); - - // remove scrollbar, add margin e.t.c - $('html').css(windowStyles); - - // add everything to DOM - mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) ); - - // Save last focused element - mfp._lastFocusedEl = document.activeElement; - - // Wait for next cycle to allow CSS transition - setTimeout(function() { - - if(mfp.content) { - mfp._addClassToMFP(READY_CLASS); - mfp._setFocus(); - } else { - // if content is not defined (not loaded e.t.c) we add class only for BG - mfp.bgOverlay.addClass(READY_CLASS); - } - - // Trap the focus in popup - _document.on('focusin' + EVENT_NS, mfp._onFocusIn); - - }, 16); - - mfp.isOpen = true; - mfp.updateSize(windowHeight); - _mfpTrigger(OPEN_EVENT); - - return data; - }, - - /** - * Closes the popup - */ - close: function() { - if(!mfp.isOpen) return; - _mfpTrigger(BEFORE_CLOSE_EVENT); - - mfp.isOpen = false; - // for CSS3 animation - if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) { - mfp._addClassToMFP(REMOVING_CLASS); - setTimeout(function() { - mfp._close(); - }, mfp.st.removalDelay); - } else { - mfp._close(); - } - }, - - /** - * Helper for close() function - */ - _close: function() { - _mfpTrigger(CLOSE_EVENT); - - var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' '; - - mfp.bgOverlay.detach(); - mfp.wrap.detach(); - mfp.container.empty(); - - if(mfp.st.mainClass) { - classesToRemove += mfp.st.mainClass + ' '; - } - - mfp._removeClassFromMFP(classesToRemove); - - if(mfp.fixedContentPos) { - var windowStyles = {marginRight: ''}; - if(mfp.isIE7) { - $('body, html').css('overflow', ''); - } else { - windowStyles.overflow = ''; - } - $('html').css(windowStyles); - } - - _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS); - mfp.ev.off(EVENT_NS); - - // clean up DOM elements that aren't removed - mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style'); - mfp.bgOverlay.attr('class', 'mfp-bg'); - mfp.container.attr('class', 'mfp-container'); - - // remove close button from target element - if(mfp.st.showCloseBtn && - (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) { - if(mfp.currTemplate.closeBtn) - mfp.currTemplate.closeBtn.detach(); - } - - - if(mfp.st.autoFocusLast && mfp._lastFocusedEl) { - $(mfp._lastFocusedEl).focus(); // put tab focus back - } - mfp.currItem = null; - mfp.content = null; - mfp.currTemplate = null; - mfp.prevHeight = 0; - - _mfpTrigger(AFTER_CLOSE_EVENT); - }, - - updateSize: function(winHeight) { - - if(mfp.isIOS) { - // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2 - var zoomLevel = document.documentElement.clientWidth / window.innerWidth; - var height = window.innerHeight * zoomLevel; - mfp.wrap.css('height', height); - mfp.wH = height; - } else { - mfp.wH = winHeight || _window.height(); - } - // Fixes #84: popup incorrectly positioned with position:relative on body - if(!mfp.fixedContentPos) { - mfp.wrap.css('height', mfp.wH); - } - - _mfpTrigger('Resize'); - - }, - - /** - * Set content of popup based on current index - */ - updateItemHTML: function() { - var item = mfp.items[mfp.index]; - - // Detach and perform modifications - mfp.contentContainer.detach(); - - if(mfp.content) - mfp.content.detach(); - - if(!item.parsed) { - item = mfp.parseEl( mfp.index ); - } - - var type = item.type; - - _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]); - // BeforeChange event works like so: - // _mfpOn('BeforeChange', function(e, prevType, newType) { }); - - mfp.currItem = item; - - if(!mfp.currTemplate[type]) { - var markup = mfp.st[type] ? mfp.st[type].markup : false; - - // allows to modify markup - _mfpTrigger('FirstMarkupParse', markup); - - if(markup) { - mfp.currTemplate[type] = $(markup); - } else { - // if there is no markup found we just define that template is parsed - mfp.currTemplate[type] = true; - } - } - - if(_prevContentType && _prevContentType !== item.type) { - mfp.container.removeClass('mfp-'+_prevContentType+'-holder'); - } - - var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]); - mfp.appendContent(newContent, type); - - item.preloaded = true; - - _mfpTrigger(CHANGE_EVENT, item); - _prevContentType = item.type; - - // Append container back after its content changed - mfp.container.prepend(mfp.contentContainer); - - _mfpTrigger('AfterChange'); - }, - - - /** - * Set HTML content of popup - */ - appendContent: function(newContent, type) { - mfp.content = newContent; - - if(newContent) { - if(mfp.st.showCloseBtn && mfp.st.closeBtnInside && - mfp.currTemplate[type] === true) { - // if there is no markup, we just append close button element inside - if(!mfp.content.find('.mfp-close').length) { - mfp.content.append(_getCloseBtn()); - } - } else { - mfp.content = newContent; - } - } else { - mfp.content = ''; - } - - _mfpTrigger(BEFORE_APPEND_EVENT); - mfp.container.addClass('mfp-'+type+'-holder'); - - mfp.contentContainer.append(mfp.content); - }, - - - /** - * Creates Magnific Popup data object based on given data - * @param {int} index Index of item to parse - */ - parseEl: function(index) { - var item = mfp.items[index], - type; - - if(item.tagName) { - item = { el: $(item) }; - } else { - type = item.type; - item = { data: item, src: item.src }; - } - - if(item.el) { - var types = mfp.types; - - // check for 'mfp-TYPE' class - for(var i = 0; i < types.length; i++) { - if( item.el.hasClass('mfp-'+types[i]) ) { - type = types[i]; - break; - } - } - - item.src = item.el.attr('data-mfp-src'); - if(!item.src) { - item.src = item.el.attr('href'); - } - } - - item.type = type || mfp.st.type || 'inline'; - item.index = index; - item.parsed = true; - mfp.items[index] = item; - _mfpTrigger('ElementParse', item); - - return mfp.items[index]; - }, - - - /** - * Initializes single popup or a group of popups - */ - addGroup: function(el, options) { - var eHandler = function(e) { - e.mfpEl = this; - mfp._openClick(e, el, options); - }; - - if(!options) { - options = {}; - } - - var eName = 'click.magnificPopup'; - options.mainEl = el; - - if(options.items) { - options.isObj = true; - el.off(eName).on(eName, eHandler); - } else { - options.isObj = false; - if(options.delegate) { - el.off(eName).on(eName, options.delegate , eHandler); - } else { - options.items = el; - el.off(eName).on(eName, eHandler); - } - } - }, - _openClick: function(e, el, options) { - var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick; - - - if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) { - return; - } - - var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn; - - if(disableOn) { - if($.isFunction(disableOn)) { - if( !disableOn.call(mfp) ) { - return true; - } - } else { // else it's number - if( _window.width() < disableOn ) { - return true; - } - } - } - - if(e.type) { - e.preventDefault(); - - // This will prevent popup from closing if element is inside and popup is already opened - if(mfp.isOpen) { - e.stopPropagation(); - } - } - - options.el = $(e.mfpEl); - if(options.delegate) { - options.items = el.find(options.delegate); - } - mfp.open(options); - }, - - - /** - * Updates text on preloader - */ - updateStatus: function(status, text) { - - if(mfp.preloader) { - if(_prevStatus !== status) { - mfp.container.removeClass('mfp-s-'+_prevStatus); - } - - if(!text && status === 'loading') { - text = mfp.st.tLoading; - } - - var data = { - status: status, - text: text - }; - // allows to modify status - _mfpTrigger('UpdateStatus', data); - - status = data.status; - text = data.text; - - mfp.preloader.html(text); - - mfp.preloader.find('a').on('click', function(e) { - e.stopImmediatePropagation(); - }); - - mfp.container.addClass('mfp-s-'+status); - _prevStatus = status; - } - }, - - - /* - "Private" helpers that aren't private at all - */ - // Check to close popup or not - // "target" is an element that was clicked - _checkIfClose: function(target) { - - if($(target).hasClass(PREVENT_CLOSE_CLASS)) { - return; - } - - var closeOnContent = mfp.st.closeOnContentClick; - var closeOnBg = mfp.st.closeOnBgClick; - - if(closeOnContent && closeOnBg) { - return true; - } else { - - // We close the popup if click is on close button or on preloader. Or if there is no content. - if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) { - return true; - } - - // if click is outside the content - if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) { - if(closeOnBg) { - // last check, if the clicked element is in DOM, (in case it's removed onclick) - if( $.contains(document, target) ) { - return true; - } - } - } else if(closeOnContent) { - return true; - } - - } - return false; - }, - _addClassToMFP: function(cName) { - mfp.bgOverlay.addClass(cName); - mfp.wrap.addClass(cName); - }, - _removeClassFromMFP: function(cName) { - this.bgOverlay.removeClass(cName); - mfp.wrap.removeClass(cName); - }, - _hasScrollBar: function(winHeight) { - return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) ); - }, - _setFocus: function() { - (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus(); - }, - _onFocusIn: function(e) { - if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) { - mfp._setFocus(); - return false; - } - }, - _parseMarkup: function(template, values, item) { - var arr; - if(item.data) { - values = $.extend(item.data, values); - } - _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] ); - - $.each(values, function(key, value) { - if(value === undefined || value === false) { - return true; - } - arr = key.split('_'); - if(arr.length > 1) { - var el = template.find(EVENT_NS + '-'+arr[0]); - - if(el.length > 0) { - var attr = arr[1]; - if(attr === 'replaceWith') { - if(el[0] !== value[0]) { - el.replaceWith(value); - } - } else if(attr === 'img') { - if(el.is('img')) { - el.attr('src', value); - } else { - el.replaceWith( $('