Compare commits

..
281 Commits
Author SHA1 Message Date
iBug 1d797f01ad Release 4.27.0 💎 2025-04-19 11:20:19 +08:00
iBug 8193f6071e Update CHANGELOG and history 2025-04-18 10:52:20 +08:00
vyshnaviJammi 903ad6596c Update Social Share Buttons to Reflect Twitter Rebranding to X (#5210) 2025-04-18 10:51:01 +08:00
iBug 90ab9d28b9 _config.yml: Add minimal-mistakes-jekyll.gemspec to exclude, fix #5193 2025-04-02 23:07:46 +08:00
iBug d90b7e5b3e Update CHANGELOG and history 2025-02-14 22:47:26 +08:00
Lukas Vermeer af81ee840f Tweak contrast skin $primary-color to adhere to WCAG guidelines (#5126) 2025-02-14 22:46:03 +08:00
Jan De Luyck cb140fc5e6 Mastodon button color (#5109) 2025-02-08 21:29:29 +08:00
Pablo Alonso 1c6bd0d9e2 Fix typo in docs/_docs/05-configuration.md (#5106) 2025-02-01 03:48:53 +08:00
iBug 8f02ec7714 Update CHANGELOG and history 2025-01-02 02:21:53 +08:00
Hyuk Min ef464c868e feat(single.html): Add provider and comments info for non-production (#5068) 2025-01-02 02:20:46 +08:00
iBug 85e1ba131e Update CHANGELOG and regenerate JS 2024-11-28 01:11:48 +08:00
Jason Williscroft 1ae32a42cb Hide hidden links & remove the overlay when one is clicked (#5042) 2024-11-28 01:11:14 +08:00
iBug 6f5e6f4391 fix(_includes/post_pagination.html): Remove trailing newline 2024-11-11 21:31:20 +08:00
Salif Mehmed bc0c83c0c4 Add Bulgarian localization (#5003) 2024-10-28 16:05:59 +08:00
iBug cff0e2a387 fix(_includes/figure): Apply escape_once on include.alt 2024-10-02 22:57:16 +08:00
iBug 844812b4f4 Update CHANGELOG 2024-09-26 13:40:22 +08:00
Archer 5fd703674b Fix JavaScript null error on home and splash layouts (#4939) 2024-09-26 13:39:03 +08:00
iBug a3e2b33c5e Additionally label "spam" for spam PRs 2024-09-26 13:27:12 +08:00
iBug 6be43f77a5 Use $doc-font-size in _reset.scss, fix #4983 2024-09-20 02:38:55 +08:00
iBug 075fad74cb Use include documents-collection.html in home layout 2024-09-17 16:37:55 +08:00
iBug 7d212bc310 Update CHANGELOG 2024-08-20 17:04:25 +08:00
Adel Aloui 96149caa54 Fix: Prevent double title issue in SEO metadata by updating seo.html (#4959) 2024-08-20 16:55:30 +08:00
Dave Cross b939edc600 The "if" means the default is never used (#4955) 2024-08-20 14:27:48 +08:00
Dave Cross 3d44327497 Remove unnecessary "type" attribute (#4956) 2024-08-20 14:25:23 +08:00
iBug b0b2698d35 Update bug_report issue template 2024-08-05 02:45:28 +08:00
iBug 6e83c1acd5 _config.yml: Drop explicit default falses 2024-06-29 04:14:33 +08:00
iBug 66949b5c4c Update Algolia index with GH Actions 2024-06-27 21:13:14 +08:00
iBug 959d5fe1f9 Accidentally committed a test file 2024-06-26 00:17:53 +08:00
iBug 7a7c8022ad Update CHANGELOG and history 2024-06-25 23:57:00 +08:00
iBug 33c6dbd1be Fix wrong direction for feature_row with type=right, fix #4061 2024-06-25 23:55:01 +08:00
iBug d27cc9c132 Fix the remaining issues with CSS logical properties 2024-06-25 23:45:32 +08:00
iBug 922440cd55 Update all CSS to use logical properties
- Vendor CSS's are excluded for now
- Removed <IE7 asterisk prefix items
2024-06-25 23:36:16 +08:00
iBug 9ffaf41d20 Fix two misdirections 2024-06-25 22:55:58 +08:00
iBug ded2d87b2b Replace '[dir=rtl] &' with CSS logical properties where it makes sense 2024-06-25 22:49:22 +08:00
iBug 97f0f35498 Update CHANGELOG and history 2024-06-25 19:54:17 +08:00
621529aaf2 Add RTL Support (#4886)
Signed-off-by: Hamed Faramarzi <hamed.faramarzi@gmail.com>
Co-authored-by: Hamed Faramarzi <hamed.faramarzi@gmail.com>
Co-authored-by: iBug <git@ibugone.com>
2024-06-25 19:50:25 +08:00
wssbck ef5018ee6f Add missing Polish translation (#4890) 2024-06-24 05:08:34 +08:00
Deepak Mahakale 12ae094b8a Change the link it is redirecting to - Fix ahref issue (#4882)
ahref is warning about this since the link redirects to the new path
2024-06-24 05:04:28 +08:00
iBug 93022d6432 Update CHANGELOG and history 2024-06-15 17:54:54 +08:00
iBug 1e6bcecb5a Release 4.26.2 💎 2024-06-15 17:53:30 +08:00
iBug 784efffcd1 Update CHANGELOG and history 2024-06-15 17:52:26 +08:00
Steffen Uhlig b82680b103 Allow overriding HTML lang on a per-page basis (#4862)
The W3C [recommends](https://www.w3.org/International/questions/qa-html-language-declarations) to specify language using identifiers as per [RFC 5646](https://tools.ietf.org/html/rfc5646) which uses dashes.
2024-06-15 17:51:28 +08:00
iBug 7b6b45055c Update CHANGELOG and history 2024-06-10 02:57:57 +08:00
Michal Stanke 02342c919a feat: add Czech localization (#4866) 2024-06-10 02:56:05 +08:00
iBug 5b203f46c4 changelog: Clarify #4841 only triggers with popup=true 2024-05-27 01:08:33 +08:00
iBug ff56bc2bd6 assets/css/main.scss: Add trailing newline 2024-05-16 22:37:48 +08:00
iBug 4efb8638c4 _includes/figure: Replace remove:<p> with strip_html, fix #4841 2024-05-15 00:46:41 +08:00
iBug 536e89d174 Update CHANGELOG and history 2024-05-10 18:00:49 +08:00
iBug 1a85a28685 Release 4.26.1 💎 2024-05-10 17:59:50 +08:00
iBug be3c046acf Actually 3 B's in "dribbble" 2024-05-07 14:21:28 +08:00
iBug 573f286971 Limit "auto scroll ToC" to Chromium-based 2024-05-07 14:20:45 +08:00
iBug 70462d0e16 Rewrite social icons SCSS with a loop 2024-05-06 21:37:40 +08:00
iBug 9dce68d58a Oops, fixed the typo the wrong way 2024-05-06 21:28:05 +08:00
iBug 4c3ada478a Fix typo: dribbble → dribble
seems like nobody uses it anyways
2024-05-06 21:22:06 +08:00
iBug 438710da82 Disable copy button for bad pre blocks 2024-05-06 21:16:04 +08:00
iBug 4f76c2546a Try fixing copy button flying out 2024-05-06 21:06:32 +08:00
iBug 14e3fa2b28 Add success indicator for code block copy button 2024-05-06 01:20:41 +08:00
iBug dc965c5bbe Release 4.26.0 💎 2024-05-05 19:54:28 +08:00
iBug accc82a03b Add "new in v4.26.0" in documentation 2024-05-05 19:50:50 +08:00
iBug 148349b029 Update CHANGELOG and bundle exec rake 2024-05-05 19:44:28 +08:00
iBug 0527e17354 Add "copy to clipboard" button for code blocks (#2812)
* Add copy-to-clipboard button and JS

* Ignore line numbers if present

* Rewrite heading permalink code to use vanilla JS

* README: Add credits to zenorocha/clipboard.js (MIT License)

@iBug really wants a place here in the Credits section :P

* Add .no-copy for hiding the button, update docs

* Add td.rouge-code to selectors

* Fix navigator.clipboard branch

* Add screenreader text for copy button

* Restore focus to the button after copying

* Add site-wide enable switch
2024-05-05 19:43:24 +08:00
iBug c76813f6f5 Remove "sticky sidebar" JS in favor of CSS media queries 2024-05-05 18:23:01 +08:00
iBug 4364fb73f5 Cleanup seo.html and update CHANGELOG 2024-05-05 18:13:23 +08:00
Lars OlesenandiBug dfaac405f0 Fix SEO title when it contains a vertical bar (#3113)
* Do not markdownify title

* Support markup in titles

* Support markup in titles

* Fix seo.html as reviewed

* seo_title is now unconditionally computed

---------

Co-authored-by: iBug <git@ibugone.com>
2024-05-05 18:07:23 +08:00
iBug 9c386c5509 Update CHANGELOG and bundle exec rake 2024-05-05 17:36:35 +08:00
Lars OlesenandiBug 2f5e771072 Split schema to a separate include file (#3085)
* Make changes to schema easier

* Only show on one page not on all pages

* Move schema.html to _includes/ and move the URL guard out

---------

Co-authored-by: iBug <git@ibugone.com>
2024-05-05 17:35:22 +08:00
Dominique Deluvio 16103c6d49 Remove overlay and revert X to hamburger icon when popup disappears (#3958)
the `.hidden-links` popup disappears after you move the cursor out of it.
However, the white overlay on the screen does not disappear, as well as the `x` nav button on the top-right, remains as is.
Now when you click anywhere on the screen the popup appears again, and the `x` nav button turns back to a hamburger menu button.

And when you click on the hamburger menu, the popup disappears. now it's happening the exact opposite.

To remedy this, the pop up menu as well as the `x` nav button should also return back to normal once the popup disappears.

This commit fixes this issue.
2024-05-05 17:34:12 +08:00
iBug bf66a5c345 Update CHANGELOG and history 2024-05-05 17:28:01 +08:00
Dmitriy Derepko ceeda03132 Add target attribute for navigation link (#3056) 2024-05-05 17:12:37 +08:00
iBug f1ffad4b5e Update CHANGELOG and history 2024-05-05 17:05:01 +08:00
John Scott 162f659f61 Add popup parameter for figure include (#3119) 2024-05-05 17:03:40 +08:00
iBug adae207d17 Revert f3c617f on _includes/figure to make way for #3119 2024-05-05 17:02:09 +08:00
iBug 4b08acb115 Update CHANGELOG and history 2024-05-05 16:45:18 +08:00
iBug d240efaa7c Merge branch 'master' of GitHub:mmistakes/minimal-mistakes 2024-05-05 16:45:03 +08:00
Jeremiah StrongandiBug 0378a31f53 Update Social Sharing links section (#4066)
* Update 10-layouts.md

Update social sharing section for appropriate Reddit example and resource locations.

* Update as reviewed

---------

Co-authored-by: iBug <git@ibugone.com>
2024-05-05 16:44:40 +08:00
iBug d47d62f695 Update CHANGELOG and history 2024-05-05 16:30:51 +08:00
64b1d429a4 Multiple Sidebar Nav Lists (#2843)
Co-authored-by: Tom Manner <tsmanner@us.ibm.com>
Co-authored-by: iBug <git@ibugone.com>
2024-05-05 16:29:54 +08:00
iBug 244eff763a bundle exec rake js 2024-05-05 15:28:01 +08:00
iBug 25ce47de8c Rakefile: Add jQuery to uglify targets
Regression of 0b8b5230f
2024-05-05 15:27:23 +08:00
iBug 256e626503 Merge categories and tags layout into _includes/posts-taxonomy.html 2024-05-05 14:13:28 +08:00
iBug 1d3fd5d7d6 Update README 2024-05-05 05:54:53 +08:00
iBug f8ea22fdb8 Update CHANGELOG and history 2024-05-05 05:53:41 +08:00
iBug 7e7b901974 Add Rake task :version
For updating all hard-coded version numbers from `package.json`
2024-05-05 05:52:08 +08:00
iBug f33349c2ee Update CHANGELOG and history 2024-05-05 04:37:14 +08:00
iBug ed883ea2d4 Remove deprecated "page.header.cta_url" setting (#4821) 2024-05-05 04:35:57 +08:00
iBug ab42c3ba1d Gemfile: No newline at end of file 2024-05-05 04:28:03 +08:00
iBug b278dac7fb Merge banner.js into Rake task
Also let uglify-js produce source map for easier debugging
2024-05-05 04:13:39 +08:00
iBug 0b8b5230f9 Migrate npm run scripts to Rakefile tasks
Rakefile is like Makefile - it has dependency management,
while npm run scripts do not.

Aside from that, this also allows us to drop literally all Node.js packages,
as uglify-js is self-contained and has no dependencies.
Reduced node_modules from 17M to 374K.
2024-05-05 04:03:07 +08:00
iBug 6165d896a0 Replace "hidden" check in Liquid with where_exp 2024-05-05 03:18:27 +08:00
iBug bde92b6d4a page__hero.html: Fix an unclosed <p> tag 2024-05-05 02:36:17 +08:00
iBug 271b5da8e5 04-upgrading.md: Minor formatting and grammar fixes 2024-05-05 02:35:06 +08:00
iBug bce2b50556 Fix logic error in toc-scroll 2024-05-05 01:26:25 +08:00
iBug 7daa7aceb3 Try sticky ToC on all docs pages 2024-05-05 01:08:35 +08:00
iBug 3ed92f5ea8 Update CHANGELOG and history 2024-05-05 01:06:18 +08:00
iBug dc41016c62 Auto scroll sticky ToC with content (#3115) 2024-05-05 01:05:21 +08:00
iBug 7ef6af66e4 Remove unused classes from _layouts/single.html 2024-05-05 00:32:30 +08:00
iBug 4b0c8bd1b9 Add .notice--danger for unsupported settings in j-p-v2 2024-05-05 00:07:59 +08:00
iBug 9ac9602e22 Add proper support for sverrirs' Jekyll Paginate V2 plugin (excl. AutoPages) (#2636) 2024-05-05 00:05:12 +08:00
iBug f3c617f7de Add documentation for the incoming Jekyll Paginate V2 support 2024-05-05 00:00:45 +08:00
iBug 753ccbbd03 Rewrite skin previews on 05-configuration.md in Liquid template 2024-05-04 23:32:06 +08:00
iBug 1b06aff3bc Release 4.25.1 💎 2024-04-28 01:13:45 +08:00
iBug 7ea8510d4f Fix where_exp for Jekyll < 4.0
'and' and 'or' are new in Jekyll 4.0.
Ref: https://stackoverflow.com/posts/comments/111965719
2024-04-28 00:56:17 +08:00
iBug 7d61488f5e Update quick-start guide to use 4.25.0, fix #4809 2024-04-28 00:39:25 +08:00
iBug a7af9b0ad2 Replace dead link in _includes/head.html, close #4421 2024-04-26 00:45:41 +08:00
iBug 4310b5459c Try an FAQ page 2024-04-26 00:43:42 +08:00
iBug f8f6e589ac Replace fontawesome.com/v5/search with v6 2024-04-24 00:51:38 +08:00
iBug 172a5169f1 Bump jekyll-toc to v1.2.1 2024-04-23 21:52:22 +08:00
iBug 48ed1444b9 Update CHANGELOG and history 2024-04-23 13:54:48 +08:00
Andrii BandAndrii Burkatskyi 409bc92868 Add more configuration for Giscus (#4274)
* update giscus

* fix site variable name

---------

Co-authored-by: Andrii Burkatskyi <underr-ua@users.noreply.github.com>
2024-04-23 13:53:52 +08:00
iBug f8527e7916 Update CHANGELOG and history 2024-04-23 13:22:11 +08:00
Alex a179735103 GitHub Workflows security hardening (#3884)
Signed-off-by: sashashura <93376818+sashashura@users.noreply.github.com>
2024-04-23 13:20:47 +08:00
iBug 60b9565277 Exclude hidden posts from page__related, fix #4653 2024-04-23 12:18:07 +08:00
iBug 7746db6f7e Add a missing include to before-related.html 2024-04-23 12:11:26 +08:00
iBug 5e3d1406d2 Add _includes/before-related.html and remove docs site single layout override 2024-04-23 12:09:12 +08:00
iBug a0aa8f80a7 Add _includes/after-content.html and remove docs site default layout override 2024-04-23 12:01:53 +08:00
iBug 6308789788 Remove h1 from 18-history.md 2024-04-23 11:45:34 +08:00
iBug c7ef8c0fd0 Bump node.js dependencies 2024-04-23 03:55:37 +08:00
iBug ada1b6184e Update CHANGELOG 2024-04-23 03:54:23 +08:00
Andrii BandAndrii Burkatskyi 9b9d2c66e2 Add Ukrainian translation (#4273)
Co-authored-by: Andrii Burkatskyi <underr-ua@users.noreply.github.com>
2024-04-23 03:52:08 +08:00
iBug 6693a4a8cc Update CHANGELOG and history 2024-04-23 03:47:02 +08:00
dependabot[bot] aca6648bd4 Bump shell-quote from 1.7.1 to 1.7.3 (#3692) 2024-04-22 19:22:04 +00:00
iBug 6e94773083 Release 4.25.0 💎 2024-04-23 01:50:35 +08:00
iBug 4c38bab95b Remove remainders of browser-upgrade.html 2024-04-23 01:43:16 +08:00
iBug 6f1cbfb3be Fix bad Liquid include syntax 2024-04-23 01:34:27 +08:00
iBug 8d3592ff70 Consolidate hard-coded version numbers where possible
Now only 4 files left untouchable.
Search README.md for "Dev note" for details.
2024-04-23 01:28:03 +08:00
iBug aae8dac76c Add Rakefile for automatically syncing CHANGELOG with history 2024-04-23 00:24:44 +08:00
iBug b604e2a686 Sync CHANGELOG with history 2024-04-23 00:24:35 +08:00
iBug 02d989370a Update CHANGELOG and history
Call it a day for now
2024-04-22 23:58:40 +08:00
Huangbo 2c92d34938 Fix non-English characters being url encoded in breadcrumb (#3819)
* Fix non-English characters being url encoded in breadcrumb

* Remove `| replace: '%20', ' ‘`
2024-04-22 23:37:12 +08:00
Mauricio TavaresandiBug 0d56036557 Add site.copyright and site.copyright_url config options (#4313)
* Allow to optionally define website copyright holder name and url using site.copyright and site.copyright_url

* Update _config.yml

---------

Co-authored-by: iBug <git@ibugone.com>
2024-04-22 23:35:49 +08:00
Moose 73c2ad818c Fix Linkedin social share link (#4754)
Removed url encoding of the article link
2024-04-22 23:30:14 +08:00
yusanshi 495fb29b45 Fix wrong first_page_path because of hard-coded page:num (#3778) 2024-04-22 23:27:21 +08:00
iBug 75841313de Lazy-load InstantSearch scripts and stylesheets (#3691)
* Lazy-load InstantSearch scripts and stylesheets

* Replace outdated script parts
2024-04-22 23:25:09 +08:00
LasseAhhMann 7aee05ce0c Remove JS and other files from search index (#4000)
To avoid getting JS and irrelevant files indexed remove pages where title is null. This gives a much cleaner Lunr store with more relevant content.
2024-04-22 23:22:08 +08:00
Niklas EngblomandNiklas Engblom 08b0303298 Improve Finnish translations (#4595)
Co-authored-by: Niklas Engblom <niklas-e@users.noreply.github.com>
2024-04-22 23:18:19 +08:00
eabneka 6eaee034d1 Remove redundant downcase from _layouts/categories.html (#4531) 2024-04-22 23:06:53 +08:00
Michael Rose 9770b663f9 Update CHANGELOG and history 2024-04-22 10:46:09 -04:00
Leszek 'skolima' Ciesielski 2cc21c1e88 Update the Polish translation (#3969) 2024-04-22 10:44:17 -04:00
Tirthankar Mazumder 830595d967 Fixed a grammar mistake. (#3890) 2024-04-22 10:33:21 -04:00
Michael Rose f18799a0c9 Update CHANGELOG and history 2024-04-22 10:30:23 -04:00
Marco OmainskaandMarco Omainska 51fcef50d0 load latest fontawesome package (#3765)
Co-authored-by: Marco Omainska <59295964+marcoiska@users.noreply.github.com>
2024-04-22 10:28:55 -04:00
Michael Rose 91ab537546 Update README.md 2024-04-22 09:17:31 -04:00
Michael Rose 23a91f8695 Delete .github/FUNDING.yml 2024-04-22 09:14:05 -04:00
iBug 8a67ce8e41 Improve PR close auto-comment message (#3713)
* Improve auto-comment message

* Lock these PRs after closing
2022-07-08 11:38:44 -04:00
Michael Rose 18e89666a6 Update CHANGELOG and history 2022-05-30 12:18:57 -04:00
iBug 5946bd4ea0 Fix #3668 breaking "disable per-page when globally enabled" (#3669)
* Fix #3668 breaking "disable per-page when globally enabled"

* `default:` filter doesn't fit here

https://shopify.github.io/liquid/filters/default/
2022-05-30 12:13:22 -04:00
Michael Rose 3d65710bf7 Update CHANGELOG and history 2022-05-29 14:35:04 -04:00
iBug c940a73b50 Remove IE9 upgrade notice (#3666) 2022-05-29 14:34:11 -04:00
iBug e44403e276 Fix #3096 enabling breadcrumb on all pages (#3668) 2022-05-29 14:33:50 -04:00
Michael Rose 6f0ba5e363 Update CHANGELOG and history 2022-05-27 14:08:00 -04:00
Michael Rose 955a19b955 Replace with public YouTube video embeds 2022-05-27 14:07:03 -04:00
Michael Rose de1e2b73a6 Replace with public YouTube video
Close #3649
2022-05-27 14:04:06 -04:00
Michael Rose 1433887f67 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2022-05-27 12:25:22 -04:00
Michael Rose 2f5af9050b Update CHANGELOG and history 2022-05-27 12:25:20 -04:00
FavorMylikes 03a26a105d Update algolia-search-scripts.html (#3102)
Fix issue https://github.com/mmistakes/minimal-mistakes/issues/3101
2022-05-27 12:22:43 -04:00
Lars Olesen 65237df377 Make it possible to enable breadcrumbs per page (#3096)
* Make it possible to disable breadcrumbs per page

* Update single.html

* Update single.html
2022-05-27 12:04:56 -04:00
Michael Rose f92670442f Update CHANGELOG and history 2022-05-27 12:03:17 -04:00
iBug cee4c86ee3 Update link to Font Awesome gallery (#3599) 2022-05-27 12:02:21 -04:00
Michael Rose 58d1ba8293 Update CHANGELOG and history 2022-05-27 12:01:06 -04:00
Benson Muite 8dc2997d1f Update attribution link (#3553) 2022-05-27 12:00:08 -04:00
Michael Rose daf51177f8 Update 2022-05-27 11:59:38 -04:00
Benson Muite 416933d98a Add Kiswahili translation (#3489)
* Add Kiswahili translation

* Add Kiswahli to README

* Add Kiswahili to documentation
2022-05-27 11:58:09 -04:00
Michael Rose 55f6e8fae5 Exclude main.scss from Lunr search index 2022-05-27 11:48:46 -04:00
Michael Rose bcb15f80e7 Update CHANGELOG and history 2022-05-27 11:41:13 -04:00
Nicholas Perry 00b86b1ff8 add optinal lunr searching of pages (#3352) 2022-05-27 11:39:47 -04:00
Michael Rose a66bf7e317 Update CHANGELOG and history 2022-05-27 10:38:07 -04:00
Nicholas Perry 3f36d171bb fix typo about loading javascript in footer (#3350) 2022-05-27 10:34:47 -04:00
Michael Rose 4ef57be787 Update CHANGELOG and history 2022-05-27 10:18:51 -04:00
Lars Olesen df97788050 Update to Jquery 3.6.0 (#3254) 2022-05-27 10:12:25 -04:00
Michael Rose a499b0dcae Update CHANGELOG and history 2022-05-27 10:07:45 -04:00
iBug 3051fcd3c9 Fix inline code style not applied to stylized text (#3253)
* bug: inline code style not applied to stylized text

* Use double colons for pseudoelements
2022-05-27 10:06:37 -04:00
Michael Rose 4e19f46d68 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2022-05-27 10:03:05 -04:00
Michael Rose 7aa8c7b5dc Update CHANGELOG and history 2022-05-27 10:03:02 -04:00
iBug 23e7ad2903 Use <a> color for blockquote.notice border (#3140)
Close #3068
2022-05-27 09:59:38 -04:00
Michael Rose a19dbdbf78 Update CHANGELOG and history 2022-05-27 09:50:20 -04:00
Lars Olesen 8b67db3ff4 Added sameAs (#3087) 2022-05-27 09:49:00 -04:00
Michael Rose 2632ff650a Update CHANGELOG and history 2022-01-10 07:59:54 -05:00
iBug ad1e06633c Automatically close invalid PRs using GitHub Actions (#3313)
* Try auto-closing bad PRs

* Include empty PR body as well

* Add "Type: Invalid" label as well
2022-01-10 07:59:04 -05:00
Michael Rose 9539e3bd84 Update CHANGELOG and history 2022-01-05 10:34:32 -05:00
YuchenandYuchen Zhong d6c84c9508 Add missing comma (#3318)
Co-authored-by: Yuchen Zhong <yuchen21@fb.com>
2022-01-05 10:33:50 -05:00
Michael Rose 5ef199a3eb Update CHANGELOG and history 2022-01-05 10:33:27 -05:00
Sander Holvoet d639c605c8 ✏ fix typo (#3232) 2022-01-05 10:32:35 -05:00
Michael Rose a431dd5cc3 Update CHANGELOG and history 2022-01-05 10:32:14 -05:00
Andrew McIntosh 691df116da Fix keybase class (#3221)
* Fix keybase class

* Fix fas->fab
2022-01-05 10:30:36 -05:00
Michael Rose 9ab55b6c54 Update CHANGELOG and history 2021-10-19 11:26:54 -04:00
Michael Rose bdcfd791a0 Update CHANGELOG and history 2021-10-19 11:25:32 -04:00
Georger Araújo 9f7c0e4144 Update Brazilian Portuguese translation (#3204)
* Update Brazilian Portuguese translation

* Revert some translations to reduce friction
2021-10-19 11:24:59 -04:00
Daniel Schroeder dbc9479fd5 feat: Sort comments by date ascending (#3184) 2021-10-19 11:23:42 -04:00
Jason Hemann 6bd64ffd47 Link clarifying adding plugins (#3181)
The phrase "put them here!" doesn't sufficiently clarify what to do; I add link to the Jekyll documentation with the proper syntax.
2021-10-19 11:21:55 -04:00
Jason Hemann ebc8123d36 Making verbiage consistent w/current _config.yml (#3180)
The plugin in question comes by-default listed in _config.yml ; it's better to say that the user must _retain_ it as listed, not that the user needs to add it.
2021-10-19 11:21:41 -04:00
Nathan Cho a6b51ed91e Fix broken link & Add Baidu site verification (#3139)
* Fix broken link
Link to Bing Webmaster Tools was broken.

* Fix broken link
Link to Open Graph debug tool was broken.

* Add Baidu site verification (mmistakes#2830)
Added `baidu_site_verification` to `_config.yml`
2021-10-19 11:19:29 -04:00
John Scott 642ec7b20f Added optional label attribute (#3128)
Added label attribute as per utterances optional label setting.
2021-10-19 11:18:00 -04:00
Michael Rose 000dc3b4a2 Delete stale.yml 2021-09-21 22:45:24 -04:00
Michael Rose 50d312d04c Delete stale.yml 2021-09-21 10:26:27 -04:00
iBug 25e871c096 Use GitHub issue templates (#3133)
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository
2021-09-04 20:42:08 -04:00
Michael Rose 20cd63c05b Update CHANGELOG and history 2021-08-15 19:04:16 -04:00
John Scott eaef9ecd9f include video does not survive compress.html (#3117) 2021-08-15 19:02:31 -04:00
Michael Rose 62c123c6b5 Update CHANGELOG and history 2021-08-15 18:57:12 -04:00
Michael Rose 234d859040 Merge pull request #3116 from mmistakes:dependabot/npm_and_yarn/path-parse-1.0.7
Bump path-parse from 1.0.6 to 1.0.7
2021-08-15 18:55:48 -04:00
dependabot[bot] c6c6bafad0 Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 19:19:04 +00:00
Michael Rose 97cf6e189b Remove extra semi-colon 2021-08-10 15:17:34 -04:00
Michael Rose 9cf80336b3 Update CHANGELOG and history 2021-08-08 14:10:49 -04:00
iBug ff5b354a9a Enable magnific popup on <a> tags only when it has <img> (#3114) 2021-08-08 14:01:59 -04:00
Michael Rose 0629bb770d Update CHANGELOG and history 2021-08-08 13:47:01 -04:00
Lars Olesen 1ca125d61b Added Danish translations (#3095)
* Added Danish translations

* Fixed wrong commit.
2021-08-08 13:45:42 -04:00
Michael Rose aa5dab277e Update CHANGELOG and history 2021-08-08 13:44:41 -04:00
Lars Olesen f9b17c6249 Add role to search (#3086) 2021-08-08 13:43:31 -04:00
Michael Rose 084ddf8d8e Add margin around Google ads 2021-08-06 11:41:21 -04:00
Michael Rose 9269842e9d Update CHANGELOG and history 2021-07-30 15:58:05 -04:00
Michael Rose 567836e43c Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2021-07-30 15:55:50 -04:00
Michael Rose 7e7e683801 Enable sticky toc on test post 2021-07-30 15:55:45 -04:00
Johnson 0f06cb8225 Enable toc sidebar scrolling (#2874)
* Enable toc sidebar scrolling

* Refactor style rules

* Move style rules from 'navigation' to 'sidebar'

* Remove custom scrollbar styles
2021-07-30 15:54:49 -04:00
Michael Rose 89de4d46db Update CHANGELOG and history 2021-07-23 14:17:50 -04:00
Peter Murray 65e79f5a7d Add Microformats (#3052)
* Add rel=me to author profile links

* Add h-card Microformats markup

* Add h-entry microformat markup

* Fix missing anchor tag

* Fix h-entry microformat markup on single template

* Use minimal subset of Microformat elements

* Move dt-published to `page__date.html` and remove dt-updated
* Remove "author" and "summary"

Leaves "url" as a hidden element

* Add page link to h1 tag

The h1 tag now contains the Schema-org `url` itemprop and the
Microformats `url` class in an anchor tag.  The anchor tag is styled to
not look like a link.

* Put author 'u-url' on author__name h3

This also puts the same `{{ author.home | default: '/' | absolute_url }}`
construct on `author__avatar` to remove the Jekyll `author.home`
conditional.

Also addresses SCSS text color error.
2021-07-23 14:16:08 -04:00
Michael Rose 42f7512702 Update 01-quick-start-guide.md 2021-07-23 12:08:08 -04:00
Michael Rose cc18679227 Make small grammar changes 2021-07-23 09:34:04 -04:00
Michael Rose 5094a4092a Update CHANGELOG and history 2021-07-23 09:33:51 -04:00
Erik Westrup 6ade4536f7 Add instructions on how to unminify main.js for easier browser debugging (#3055)
* Add instructions on how to unminify main.js for easier browser debugging

* Fixed Markdown style like sggested by @iBug
2021-07-23 09:30:38 -04:00
Michael Rose bd46e0a1a8 Update CHANGELOG and history 2021-07-23 09:29:10 -04:00
Kulbhushan Chand 14a47c9d39 fix: change heading tag of related posts section from h4 to h2 for SEO enhancement (#3064)
* Update heading tag from `h4` to `h2`

* Update heading tag from `h4` to `h2`
2021-07-23 09:27:16 -04:00
Michael Rose 2eda29dd1f Update CHANGELOG and history 2021-07-23 09:25:45 -04:00
Anton Brall 26db31c52d Fixed a grammar error in the german translation (#3063) 2021-07-23 09:24:35 -04:00
Michael Rose 4fcd51b9bd Update CHANGELOG and history 2021-07-23 09:24:07 -04:00
Erik Westrup 0491cd362b Remove site.url from first breadcrumb link (#3051)
* Remove site.url from first breadcrumb link

Fixes #3050

* Use relative_rul filter instead of site.baseurl
2021-07-23 09:23:07 -04:00
Michael Rose 3c075fe76b Update version 2021-07-05 16:34:03 -04:00
Michael Rose 00fa7be38b Release 4.24.0 💎 2021-07-05 16:32:52 -04:00
Sean Killeen 297989c1be Add giscus support (#3022)
* Add script in same style as utterances

But adjusted for the various filed differences

* Add initial script

* Add default settings

* Update changelog

* Add feature to readme

* Add comments html

* add comment provider include

* update config in docs

* Add URL for additional reference

* docs for giscus comments

* Unrelated bugfix: add missing version separator

So that things match the "history" doc.

* add space

* update history doc

* update about doc

* add to test config yaml

* remove unnecessary / incorrect async attribute

* probably should pass the right config paths

* lowercase the repo name

* Update docs to address '1' and '0' for reactions_enabled

Figured I'd match the giscus format rather than convert a boolean to an int there.

* update two additional docs

* docs wording fix
2021-07-05 16:08:28 -04:00
Michael Rose 8adb089a68 Update CHANGELOG and history 2021-07-05 15:52:43 -04:00
Christian Oliff ad094187f7 Remove IE9 flexbox fallback (#3042)
IE9 is absolutely, completely, totally dead. it's marketshare is less than 0.1%.
REF: https://caniuse.com/usage-table

Save some bytes in the HTML for all users by removing the fallback inline CSS.
2021-07-05 15:51:47 -04:00
Michael Rose 5aeff0c01b Update CHANGELOG and history 2021-07-05 15:51:30 -04:00
Sean Killeen 579d1759d1 Update README text for Gumshoejs license (#3024) 2021-07-05 15:49:48 -04:00
Michael Rose cc9d1fdaf3 Remove tabindex="-1" from input elements in search.html layout
Make `input` elements accessible by keyboard.

Fixes #2982
2021-06-23 08:27:06 -04:00
Michael Rose 3b62fcef6b Fix broken links in documentation
Close #3004
2021-06-23 08:17:31 -04:00
Michael Rose 8152b4cbfc Update CHANGELOG and history 2021-06-23 08:12:52 -04:00
Lars Olesen 3c60ebde58 Remove H2 as it is not important to site structure (#3012)
This should not use a H2, as that is not an important headline, and thus a H2 here would probably hurt in page SEO.
2021-06-23 08:11:39 -04:00
Michael Rose b997dc5e25 Update CHANGELOG and history 2021-06-23 08:11:14 -04:00
Guillaume Gautreau 7597735c73 Loads font-awesome asynchronously (#2967)
Loading font-awesome asynchronously allows to display the site faster. This change is advised by google pagespeed insights
2021-06-23 08:10:12 -04:00
Michael Rose 184f4f3430 Update CHANGELOG and history 2021-06-23 08:08:05 -04:00
Randall Wood 351174e494 feat: Search icon in masthead is a Font Awesome icon. (#2774)
* feat: Allow search icon in masthead to be set to a Font Awesome icon.

* fix indentations

* Users wishing to avoid FontAwesome should override _includes/masthead.html
2021-06-23 08:06:03 -04:00
Michael Rose 5704e9c0ae Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2021-06-23 07:55:16 -04:00
Michael Rose 00d9900743 Fix broken image
Close #3013
2021-06-23 07:55:12 -04:00
Michael Rose d9305929cf Update FUNDING.yml 2021-06-19 12:28:06 -04:00
Michael Rose f2461af7a8 Update FUNDING.yml 2021-06-19 12:27:35 -04:00
Michael Rose 327a7b6f62 Add banner above related posts 2021-06-07 09:15:17 -04:00
Michael Rose 5516883310 Update Adsense 2021-06-07 08:55:28 -04:00
Michael Rose 1f9698ce37 Update support buttons 2021-06-07 08:55:21 -04:00
Michael Rose 1f0746f2d5 Disable auto ads 2021-06-07 08:20:47 -04:00
Michael Rose b4b8369f5b Update README.md 2021-06-06 16:13:35 -04:00
Michael Rose 1d2a1c51df Update FUNDING.yml 2021-06-06 14:16:57 -04:00
Michael Rose e7687a8e15 Update FUNDING.yml 2021-06-06 12:58:25 -04:00
Michael Rose edd326376b Update Google Adsense 2021-05-31 13:23:01 -04:00
Michael Rose e2f65248b0 Enable auto ads 2021-05-31 12:55:44 -04:00
Michael Rose e134d13e45 Bump theme version 2021-05-14 19:36:48 -04:00
Michael Rose 5423463ca0 Update CHANGELOG and history 2021-05-14 19:36:13 -04:00
Michael Rose 65eb672dcc Release 4.23.0 💎 2021-05-14 19:34:33 -04:00
Michael Rose ee67ad9743 FIx menu toggle
ref: #2957
2021-05-14 19:24:11 -04:00
Michael Rose 635b1790f3 Update stale.yml 2021-05-12 13:36:20 -04:00
Michael Rose 4847ce3330 Update stale action 2021-05-11 10:56:37 -04:00
Michael Rose b0f5370ede Fix typo
Close #2911
2021-05-11 10:47:06 -04:00
Michael Rose 4e2e64989f Fix Jekyll environment note in configuration documentation
Close #2912
2021-05-11 10:42:12 -04:00
Michael Rose 2127655ad8 Update CHANGELOG and history 2021-05-11 10:31:41 -04:00
David Lechner b0261f7c43 Update 14-helpers.md (#2940)
Fix missing backtick.
2021-05-11 10:30:47 -04:00
Michael Rose 68327eb69b Update 2021-05-11 10:24:00 -04:00
Michael Rose 1ae5b070b6 Merge pull request #2936 from MoElaSec:master
Add Arabic Translation 📝
2021-05-11 10:21:28 -04:00
Michael Rose 4710639f05 Fix typo 2021-05-11 10:19:59 -04:00
Michael Rose 736f77c9c6 Update onchange and uglify-js dependencies 2021-05-11 10:00:36 -04:00
ShifraSec e1fce9fc94 Add Arabic Translation 📝 2021-04-21 18:21:10 +04:00
Michael Rose 4259ffdd6f Update CHANGELOG and history 2021-04-13 16:12:16 -04:00
de6870743d Document user custom element hooks (#2815)
* Added documentation for including custom CSS on a site or page

* Removed non-configuration related content from 05-configuration.md and cleaned up some style in new sections of 16-stylesheets.md

* Moved small custom head documentation to a ProTip in _docs/06-overriding-theme-defaults.md

* Cleaned up some documentation, and added some example uses of custom head and footer.

* Replace double space with single

* Replace double spaces with single

Co-authored-by: Tom Manner <tsmanner@us.ibm.com>
Co-authored-by: Michael Rose <mmistakes@users.noreply.github.com>
2021-04-13 16:10:08 -04:00
Michael Rose 99cd379c61 Update CHANGELOG and history 2021-04-13 16:01:17 -04:00
Tom MannerandTom Manner 5ffad0d956 Color notices based on skin colors instead of fixed values (#2887)
* Made notice Sass color mixing in based on $background-color and $text-color instead of hard-coded black and white values.

* Made some style adjustments to notices to improve readability.

Notice links are slightly darkened from the notice color, mostly because the gray-on-gray default notice links were very hard to read.  Rather than being $notice-color, they are `mix(#000, $notice-color, 10%)`.
The notice background mix and code-background mix can now be set with the SCSS variables $notice-background-mix and $code-notice-background-mix.
The default mix for background was adjusted to 80%, from 90%.
The default mix for code-background was adjusted to 90%, from 95%.
Skins that still didn't read well were adjusted individually.

* Adjusted sunrise $notice-background-mix to 75%

* Adjusted dark theme notice background mix colors back to the default

Co-authored-by: Tom Manner <tsmanner@us.ibm.com>
2021-04-13 16:00:24 -04:00
Michael Rose b1e4881c50 Update CHANGELOG and history 2021-04-13 15:59:28 -04:00
luweizheng c521fe58df Datetime format (#2844)
* datetime_format

* page__meta

* page__date

* page__date test

* update docs

* update docs
2021-04-13 15:58:37 -04:00
Michael Rose 2e05b8568b Update CHANGELOG and history 2021-04-13 15:57:24 -04:00
Vincent Tam 2301fdf5a7 Remove all references to official public Staticman API instance. (#2831)
* Updated Staticman docs

* remove any ref to official public instance in docs

* remove fallback instance for staticman v2

left staticman v1 untouched as I dunno how to deal with that
2021-04-13 15:55:51 -04:00
Michael Rose 8a39b748c2 Update CHANGELOG and history 2021-04-13 15:54:21 -04:00
luweizheng deaed193af Add Baidu site verfication (#2830) 2021-04-13 15:53:30 -04:00
iBug 641ca6f3d8 Add note on TOC heading level issue (#2902)
https://github.com/mmistakes/minimal-mistakes/issues/2892#issuecomment-809220952
2021-03-29 08:13:27 -04:00
iBugandMichael Rose 3d3cb58a2e Add alt attr to site logo in masthead (#2824)
Co-authored-by: Michael Rose <mmistakes@users.noreply.github.com>
2021-03-03 10:00:20 -05:00
iBug 6e4aa384d0 Remove G-stuff CSS (#2852) (#2855) 2021-03-03 09:39:28 -05:00
Michael Rose c501842db8 Fix typos 2021-02-05 21:02:03 -05:00
141 changed files with 3309 additions and 3313 deletions
+9 -5
View File
@@ -1,6 +1,10 @@
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
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
-1
View File
@@ -1 +0,0 @@
custom: https://www.paypal.me/mmistakes
-68
View File
@@ -1,68 +0,0 @@
---
name: "Bug Report"
about: "Is something not working as expected?"
---
<!--
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 http://talk.jekyllrb.com/
After exhausting these suggestions use the format below.
-->
## Environment
<!--
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.sys
file, or problematic site content.
-->
- Minimal Mistakes version:
- Ruby gem or remote theme version:
- Jekyll version:
- Git repository URL:
- GitHub Pages hosted (if yes provide URL to site):
- Operating system:
## Expected behavior
<!--
What is it you expected to happen? This should be a description of how the
functionality you tried to use is supposed to work.
-->
## Steps to reproduce the behavior
<!--
Describe the steps you took for this problem to exist. 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.
-->
## Other
<!--
NOTE: Please provide a code repository, gist, code snippet, sample files,
screenshots, or anything else you think will aid in reproducing the issue.
-->
+94
View File
@@ -0,0 +1,94 @@
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: Theme version and system environment
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:
- URL to the page with the problem:
- Operating system:
- Browser version:
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: |
Describe the problem **in detail**. For example:
- What is missing?
- What error do you see? Attach the error log if available.
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
+5
View File
@@ -0,0 +1,5 @@
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.
-16
View File
@@ -1,16 +0,0 @@
---
name: "Documentation"
about: "Found a typo or something that needs clarification?"
---
<!-- Thanks for taking the time to open an issue and help make the docs better -->
## Motivation
<!-- Why should we update our docs? -->
<!-- What should we do instead? -->
## Suggestion
<!-- What should we do instead? -->
+25
View File
@@ -0,0 +1,25 @@
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
+5 -1
View File
@@ -23,4 +23,8 @@
<!--
Is this related to any GitHub issue(s)?
-->
-->
<!--
Please confirm that you want to submit this Pull Request to Minimal Mistakes, the free Jekyll theme by Michael Rose, by deleting this comment block.
-->
-22
View File
@@ -1,22 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "Status: Accepted"
- "Status: Under Consideration"
- "Status: Review Needed"
# Label to use when marking an issue as stale
staleLabel: "Status: Stale"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: |
This issue has been automatically marked as stale because it has not had recent activity.
If this is a **bug** and you can still reproduce this error on the `master` branch, please reply with any additional information you have about it in order to keep the issue open.
If this is a feature request, please consider whether it can be accomplished in another way. If it cannot, please elaborate on why it is core to this project and why you feel more than 80% of users would find this beneficial.
This issue will automatically be closed in 7 days if no further activity occurs. Thank you for all your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
+35
View File
@@ -0,0 +1,35 @@
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: actions-ecosystem/action-add-labels@v1
with:
labels: 'Type: Spam'
- 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
+47
View File
@@ -0,0 +1,47 @@
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
+3
View File
@@ -2,6 +2,9 @@
*~
*.sw[p_]
# IntelliJ IDEA
*.idea
# Sublime Text
*.sublime-project
*.sublime-workspace
+452 -244
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,2 +1,2 @@
source "https://rubygems.org"
gemspec
gemspec
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2013-2020 Michael Rose and contributors
Copyright (c) 2013-2024 Michael Rose and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+37 -20
View File
@@ -2,18 +2,12 @@
[![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/mmistakes/minimal-mistakes/master/LICENSE)
[![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.7-blue.svg)](https://jekyllrb.com/)
[![Ruby gem](https://img.shields.io/gem/v/minimal-mistakes-jekyll.svg)](https://rubygems.org/gems/minimal-mistakes-jekyll)
[![Tip Me via PayPal](https://img.shields.io/badge/PayPal-tip%20me-green.svg?logo=paypal)](https://www.paypal.me/mmistakes)
Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building personal sites, blogs, and portfolios. As the name implies, styling is purposely minimalistic to be enhanced and customized by you :smile:.
:sparkles: See what's new in the [CHANGELOG](CHANGELOG.md).
**If you enjoy this theme, please consider [supporting me](https://www.paypal.me/mmistakes) to continue developing and maintaining it.**
[![Support via PayPal](https://cdn.jsdelivr.net/gh/twolfson/paypal-github-button@1.0.0/dist/button.svg)](https://www.paypal.me/mmistakes)
**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and added to the `plugins` array of `_config.yml`. Otherwise you'll encounter `Unknown tag 'include_cached'` errors at build.
**Note:** The theme uses the [jekyll-include-cache](https://github.com/benbalter/jekyll-include-cache) plugin which will need to be installed in your `Gemfile` and must be retained in the `plugins` array of `_config.yml`. Otherwise you'll encounter `Unknown tag 'include_cached'` errors at build.
[![Minimal Mistakes live preview][2]][1]
@@ -31,9 +25,9 @@ Minimal Mistakes is a flexible two-column Jekyll theme, perfect for building per
- Several responsive layout options (single, archive index, search, splash, and paginated home page).
- Optimized for search engines with support for [Twitter Cards](https://dev.twitter.com/cards/overview) and [Open Graph](http://ogp.me/) data.
- Optional [header images](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#headers), [custom sidebars](https://mmistakes.github.io/minimal-mistakes/docs/layouts/#sidebars), [table of contents](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#table-of-contents), [galleries](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#gallery), related posts, [breadcrumb links](https://mmistakes.github.io/minimal-mistakes/docs/configuration/#breadcrumb-navigation-beta), [navigation lists](https://mmistakes.github.io/minimal-mistakes/docs/helpers/#navigation-list), and more.
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and [utterances](https://utteranc.es/)).
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), [utterances](https://utteranc.es/), and [giscus](https://giscus.app/)).
- [Google Analytics](https://www.google.com/analytics/) support.
- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hebrew, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese.
- UI localized text in English (default), Arabic (عربي), Brazilian Portuguese (Português brasileiro), Bulgarian, Catalan, Chinese, Czech, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hebrew, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Kiswahili, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Norwegian (Norsk), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), Ukrainian (Українська) and Vietnamese.
## Skins (color variations)
@@ -121,13 +115,37 @@ To install:
2. Add `jekyll-include-cache` to the `plugins` array of your `_config.yml`.
3. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
3. Fetch and update bundled gems by running the following [Bundler](https://bundler.io/) command:
```bash
bundle
```
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.22.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.27.0"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
<!--
Dev note: The version number is currently hard-coded in these files:
- package.json
- README.md (this file)
- docs/_data/theme.yml
- docs/_pages/home.md (in Front Matter "excerpt")
`package.json` holds the authoritative version number, and the others can be updated with `bundle exec rake version`.
The following files should also be regenerated:
- _includes/copyright.html, _includes/copyright.js, _sass/minimal-mistakes/_copyright.scss
(Run `bundle exec rake clean` then `bundle exec rake copyright` - all three references `package.json`)
- assets/js/main.min.js (Run `bundle exec rake js`, references `_includes/copyright.js`)
*Tip*: The default Rake task will update all of the above files at once.
Additionally, the license year is hard-coded in these files and are NOT covered by a Rake task:
- README.md (this file, near the end)
- LICENSE
-->
**Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed.
@@ -135,8 +153,6 @@ To install:
For detailed instructions on how to configure, customize, add/migrate content, and more read the [theme's documentation](https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/).
---
## 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.
@@ -159,8 +175,6 @@ To set up your environment to develop this theme, run `bundle install`.
To test the theme, run `bundle exec rake preview` and open your browser at `http://localhost:4000/test/`. This starts a Jekyll server using content in the `test/` directory. As modifications are made to the theme and test site, it will regenerate and you should see the changes in the browser after a refresh.
---
## Credits
### Creator
@@ -173,7 +187,7 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
### Icons + Demo Images:
- [The Noun Project](https://thenounproject.com) -- Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam)
- [The Noun Project](https://thenounproject.com) - Garrett Knoll, Arthur Shlain, and [tracy tam](https://thenounproject.com/tracytam)
- [Font Awesome](http://fontawesome.io/)
- [Unsplash](https://unsplash.com/)
@@ -190,14 +204,13 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
- [Gumshoe](https://github.com/cferdinandi/gumshoe)
- [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/)
- [Lunr](http://lunrjs.com)
---
- [Clipboard.js](https://clipboardjs.com)
## License
The MIT License (MIT)
Copyright (c) 2013-2020 Michael Rose and contributors
Copyright (c) 2013-2024 Michael Rose and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -249,7 +262,7 @@ Smooth Scroll is distributed under the terms of the [MIT License](http://opensou
Minimal Mistakes incorporates [Gumshoejs](http://github.com/cferdinandi/gumshoe),
Copyright (c) 2019 Chris Ferdinandi.
Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Gumshoejs is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/),
Copyright (c) 2010 "Cowboy" Ben Alman.
@@ -270,3 +283,7 @@ Pure Liquid Jekyll Table of Contents is distributed under the terms of the [MIT
Minimal Mistakes incorporates [Lunr](http://lunrjs.com),
Copyright (c) 2018 Oliver Nightingale.
Lunr is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [clipboard.js](https://clipboardjs.com/),
Copyright (c) 2021 Zeno Rocha.
Clipboard.js is distributed under the terms of the [MIT License](https://opensource.org/licenses/MIT).
+133 -2
View File
@@ -1,6 +1,15 @@
require "bundler/gem_tasks"
require "jekyll"
require "json"
require "listen"
require "rake/clean"
require "shellwords"
require "time"
require "yaml"
task :default => %i[copyright changelog js version]
package_json = JSON.parse(File.read("package.json"))
def listen_ignore_paths(base, options)
[
@@ -65,8 +74,7 @@ task :preview do
puts " Halting auto-regeneration."
exit 0
end
loop { sleep 1000 }
sleep
end
rescue ThreadError
# You pressed Ctrl-C, oh my!
@@ -74,3 +82,126 @@ task :preview do
Jekyll::Commands::Serve.process(options)
end
task :history => :changelog
task :changelog => "docs/_docs/18-history.md"
file "docs/_docs/18-history.md" => "CHANGELOG.md" do |t|
front_matter = {
title: "History",
classes: "wide",
permalink: "/docs/history/",
excerpt: "Change log of enhancements and bug fixes made to the theme.",
sidebar: {
nav: "docs",
},
last_modified_at: Time.now.iso8601,
toc: false,
}
# https://stackoverflow.com/a/49553523/5958455
front_matter = JSON.parse(JSON.dump(front_matter))
File.open(t.name, "w") do |f|
f.puts front_matter.to_yaml
f.puts "---"
f.puts ""
f.puts "<!--\n Sourced from CHANGELOG.md\n See Rakefile `task :changelog` for details\n-->"
f.puts ""
f.puts "{% raw %}"
# Remove H1
changelog = File.read(t.prerequisites.first)
.gsub(/^# [^\n]*$/m, "")
.gsub(/\(#(\d+)\)$/m, "[#\\1](https://github.com/mmistakes/minimal-mistakes/issues/\\1)")
.strip
f.write changelog
f.puts ""
f.puts "{% endraw %}"
end
end
COPYRIGHT_LINES = [
"Minimal Mistakes Jekyll Theme #{package_json["version"]} by Michael Rose",
"Copyright 2013-#{Time.now.year} Michael Rose - mademistakes.com | @mmistakes",
"Free for personal and commercial use under the MIT license",
"https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE",
]
COPYRIGHT_FILES = [
"_includes/copyright.html",
"_includes/copyright.js",
"_sass/minimal-mistakes/_copyright.scss",
]
def genenerate_copyright_file(filename, header, prefix, footer)
File.open(filename, "w") do |f|
f.puts header
COPYRIGHT_LINES.each do |line|
f.puts "#{prefix}#{line}"
end
f.puts footer
end
end
file "_includes/copyright.html" => "package.json" do |t|
genenerate_copyright_file(t.name, "<!--", " ", "-->")
end
file "_includes/copyright.js" => "package.json" do |t|
genenerate_copyright_file(t.name, "/*!", " * ", " */")
end
file "_sass/minimal-mistakes/_copyright.scss" => "package.json" do |t|
genenerate_copyright_file(t.name, "/*!", " * ", " */")
end
task :copyright => COPYRIGHT_FILES
CLEAN.include(*COPYRIGHT_FILES)
JS_FILES = ["assets/js/vendor/jquery/jquery-3.6.0.js"] + Dir.glob("assets/js/plugins/*.js") + ["assets/js/_main.js"]
JS_TARGET = "assets/js/main.min.js"
task :js => JS_TARGET
file JS_TARGET => ["_includes/copyright.js"] + JS_FILES do |t|
sh Shellwords.join(%w[npx uglifyjs -c --comments /@mmistakes/ --source-map -m -o] +
[t.name] + t.prerequisites)
end
task :watch_js do
listener = Listen.to(
"assets/js",
ignore: /main\.min\.js$/,
) do |modified, added, removed|
Rake::Task[:js].invoke
end
trap("INT") do
listener.stop
exit 0
end
begin
listener.start
sleep
rescue ThreadError
end
end
task :version => ["docs/_data/theme.yml", "README.md", "docs/_pages/home.md"]
file "docs/_data/theme.yml" => "package.json" do |t|
theme = { "version" => package_json["version"] }
File.open(t.name, "w") do |f|
f.puts "# for use with in-page templates"
f.puts theme.to_yaml
end
end
file "README.md" => "package.json" do |t|
content = File.read(t.name)
content = content.gsub(/(mmistakes\/minimal-mistakes@)[\d.]+/, '\1' + package_json["version"])
File.write(t.name, content)
end
file "docs/_pages/home.md" => "package.json" do |t|
content = File.read(t.name)
content = content.gsub(/(\breleases\/tag\/|Latest release v)[\d.]+/, '\1' + package_json["version"])
File.write(t.name, content)
end
+49 -5
View File
@@ -16,6 +16,7 @@ minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt"
# Site Settings
locale : "en-US"
rtl : # true, false (default) # turns direction of the page into right to left for RTL languages
title : "Site Title"
title_separator : "-"
subtitle : # site tagline that appears below site title in masthead
@@ -27,10 +28,13 @@ repository : # GitHub username/repo-name e.g. "mmistakes/minimal-m
teaser : # path of fallback teaser image, e.g. "/assets/images/500x300.png"
logo : # path of logo image to display in the masthead, e.g. "/assets/images/88x88.png"
masthead_title : # overrides the website title displayed in the masthead, use " " for no title
# breadcrumbs : false # true, false (default)
breadcrumbs : # true, false (default)
words_per_minute : 200
enable_copy_code_button : # true, false (default)
copyright : # "copyright" name, defaults to site.title
copyright_url : # "copyright" URL, defaults to site.url
comments:
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "custom"
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "giscus", "custom"
disqus:
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
discourse:
@@ -43,6 +47,18 @@ comments:
utterances:
theme : # "github-light" (default), "github-dark"
issue_term : # "pathname" (default)
giscus:
repo_id : # Shown during giscus setup at https://giscus.app
category_name : # Full text name of the category
category_id : # Shown during giscus setup at https://giscus.app
discussion_term : # "pathname" (default), "url", "title", "og:title"
reactions_enabled : # '1' for enabled (default), '0' for disabled
theme : # "light" (default), "dark", "dark_dimmed", "transparent_dark", "preferred_color_scheme"
strict : # 1 for enabled, 0 for disabled (default)
input_position : # "top", "bottom" # The comment input box will be placed above or below the comments
emit_metadata : # 1 for enabled, 0 for disabled (default) # https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#imetadatamessage
lang : # "en" (default)
lazy : # true, false # Loading of the comments will be deferred until the user scrolls near the comments container.
staticman:
branch : # "master"
endpoint : # "https://{your Staticman v3 API}/v3/entry/github/"
@@ -55,6 +71,8 @@ atom_feed:
search : # true, false (default)
search_full_content : # true, false (default)
search_provider : # lunr (default), algolia, google
lunr:
search_within_pages : # true, false (default)
algolia:
application_id : # YOUR_APPLICATION_ID
index_name : # YOUR_INDEX_NAME
@@ -66,8 +84,9 @@ google:
# SEO Related
google_site_verification :
bing_site_verification :
yandex_site_verification :
naver_site_verification :
yandex_site_verification :
baidu_site_verification :
# Social Sharing
twitter:
@@ -86,7 +105,7 @@ social:
# Analytics
analytics:
provider : false # false (default), "google", "google-universal", "google-gtag", "custom"
provider : # false (default), "google", "google-universal", "google-gtag", "custom"
google:
tracking_id :
anonymize_ip : # true, false (default)
@@ -165,6 +184,7 @@ exclude:
- gulpfile.js
- LICENSE
- log
- minimal-mistakes-jekyll.gemspec
- node_modules
- package.json
- package-lock.json
@@ -208,9 +228,33 @@ sass:
# Outputting
permalink: /:categories/:title/
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Pagination with jekyll-paginate
paginate: 5 # amount of posts to show
paginate_path: /page:num/
timezone: # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# Pagination with jekyll-paginate-v2
# See https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration
# for configuration details
pagination:
# Set enabled to true to use paginate v2
# enabled: true
debug: false
collection: 'posts'
per_page: 10
permalink: '/page/:num/'
title: ':title - page :num'
limit: 0
sort_field: 'date'
sort_reverse: true
category: 'posts'
tag: ''
locale: ''
trail:
before: 2
after: 2
# Plugins (previously gems:)
+324 -49
View File
@@ -272,20 +272,20 @@ pt-PT:
<<: *DEFAULT_PT
# Brazilian Portuguese
pt-BR:
skip_links :
skip_primary_nav :
skip_content :
skip_footer :
skip_links : "Pular links"
skip_primary_nav : "Pular para navegação primária"
skip_content : "Pular para conteúdo"
skip_footer : "Pular para rodapé"
page : "Página"
pagination_previous : "Anterior"
pagination_next : "Próxima"
breadcrumb_home_label : "Home"
breadcrumb_home_label : "Início"
breadcrumb_separator : "/"
menu_label :
search_label : "Buscar"
menu_label : "Chavear menu"
search_label : "Chavear busca"
toc_label : "Nesta página"
ext_link_label : "Link direto"
less_than : "menos que"
less_than : "menos de"
minute_read : "minuto(s) de leitura"
share_on_label : "Compartilhe"
meta_label :
@@ -296,13 +296,13 @@ pt-BR:
comments_title : "Comentários"
more_label : "Saiba mais"
related_label : "Talvez você também goste"
follow_label : "Acompanhe no"
follow_label : "Siga:"
feed_label : "Feed"
powered_by : "Desenvolvido com"
website_label : "Site"
email_label : "E-mail"
recent_posts : "Publicações recentes"
undefined_wpm : "Parâmetro words_per_minute indefinido no _config.yml"
undefined_wpm : "Parâmetro words_per_minute não definido em _config.yml"
comment_form_info : "Seu e-mail não será publicado. Os campos obrigatórios estão marcados"
comment_form_comment_label : "Comentário"
comment_form_md_info : "Você pode usar Markdown."
@@ -314,9 +314,9 @@ pt-BR:
comment_success_msg : "Obrigado pelo seu comentário! Ele aparecerá no site assim que for aprovado."
comment_error_msg : "Desculpe, ocorreu um erro no envio. Verifique se todos os campos obrigatórios foram preenchidos e tente novamente."
loading_label : "Carregando..."
search_label_text :
search_placeholder_text : "Pesquisar..."
search_algolia_no_results :
search_label_text : "Digite seu termo de busca..."
search_placeholder_text : "Digite seu termo de busca..."
search_algolia_no_results : "Nenhum resultado"
results_found : "Resultado(s) encontrado(s)"
back_to_top : "Voltar para o topo"
@@ -496,7 +496,7 @@ de: &DEFAULT_DE
toc_label : "Auf dieser Seite"
ext_link_label : "Direkter Link"
less_than : "weniger als"
minute_read : "Minuten zum lesen"
minute_read : "Minuten zum Lesen"
share_on_label : "Teilen auf"
meta_label :
tags_label : "Tags:"
@@ -1018,16 +1018,16 @@ vi-VN:
# ------
da: &DEFAULT_DA
skip_links :
skip_primary_nav :
skip_content :
skip_footer :
skip_primary_nav : "Gå til hovedmenuen"
skip_content : "Gå til indholdet"
skip_footer : "Gå til sidefoden"
page : "Side"
pagination_previous : "Forrige"
pagination_next : "Næste"
breadcrumb_home_label : "Home"
breadcrumb_home_label : "Forside"
breadcrumb_separator : "/"
menu_label : "Vis/skjul menu"
search_label :
search_label : "Søgning til/fra"
toc_label : "På denne side"
ext_link_label : "Direkte link"
less_than : "mindre end"
@@ -1059,9 +1059,9 @@ da: &DEFAULT_DA
comment_success_msg : "Tak for din kommentar! Den bliver vist på siden, så snart den er godkendt."
comment_error_msg : "Desværre skete der en fejl. Prøv igen, mens du sørger for at alle obligatoriske felter er udfyldt."
loading_label : "Indlæser..."
search_label_text :
search_label_text : "Hvad leder du efter..."
search_placeholder_text : "Hvad leder du efter..."
search_algolia_no_results :
search_algolia_no_results : "Ingen resultater"
results_found : "Resultat(er) fundet"
back_to_top : "Tilbage til toppen"
da-DK:
@@ -1070,17 +1070,17 @@ da-DK:
# Polish
# ------
pl: &DEFAULT_PL
skip_links :
skip_primary_nav :
skip_content :
skip_footer :
skip_links : "Pomiń linki"
skip_primary_nav : "Przejdź do nawigacji"
skip_content : "Przejdź do treści"
skip_footer : "Przejdź do stopki"
page : "Strona"
pagination_previous : "Poprzednia"
pagination_next : "Następna"
breadcrumb_home_label : "Strona główna"
breadcrumb_separator : "/"
menu_label : "Przełącz menu"
search_label :
search_label : "Przełącz wyszukiwanie"
toc_label : "Spis treści"
ext_link_label : "Link bezpośredni"
less_than : "mniej niż"
@@ -1101,7 +1101,7 @@ pl: &DEFAULT_PL
email_label : "Email"
recent_posts : "Najnowsze wpisy"
undefined_wpm : "Parametr words_per_minute nie został zdefiniowany w _config.yml."
comment_form_info : "Twój adres email nie będzie udostępiony. Wymagane pola są oznaczone"
comment_form_info : "Twój adres email nie będzie udostępiony. Wymagane pola są oznaczone."
comment_form_comment_label : "Skomentuj"
comment_form_md_info : "Markdown jest wspierany"
comment_form_name_label : "Imię"
@@ -1112,8 +1112,11 @@ pl: &DEFAULT_PL
comment_success_msg : "Dziękuję za Twój komentarz! Zostanie dodany po akceptacji."
comment_error_msg : "Niestety wystąpił błąd. Proszę upewnij się, że wszystkie wymagane pola zostały wypełnione i spróbuj ponownie."
loading_label : "Trwa ładowanie strony..."
search_label_text :
search_label_text : "Wprowadź kryteria wyszukiwania..."
search_placeholder_text : "Wprowadź kryteria wyszukiwania..."
search_algolia_no_results : "Brak wyników"
results_found : "Znalezione wyniki"
back_to_top : "Wróć na górę"
pl-PL:
<<: *DEFAULT_PL
@@ -1397,7 +1400,7 @@ fa: &DEFAULT_FA
toc_label : "در این صفحه"
ext_link_label : "لینک مستقیم"
less_than : " "
minute_read : "(طول مطالعه (دقیقه"
minute_read : "دقیقه، طول مطالعه"
share_on_label : "اشتراک گذاری در"
meta_label :
tags_label : "تگ ها: "
@@ -1424,9 +1427,9 @@ fa: &DEFAULT_FA
comment_btn_submitted : "ارسال شد"
comment_success_msg : ".باتشکر از ارسال دیدگاه! پس از تأیید، این دیدگاه در سایت نشان داده خواهد شد"
comment_error_msg : ".متاسفانه در ارسال شما خطایی بود. لطفا مطمئن شوید تمام فیلدهای مورد نیاز تکمیل شده و دوباره امتحان کنید"
loading_label : "...بارگذاری"
loading_label : "بارگذاری..."
search_label_text :
search_placeholder_text : "...عبارت جستجوی خود را وارد کنید"
search_placeholder_text : "عبارت جستجوی خود را وارد کنید..."
search_algolia_no_results :
results_found : "نتایج"
back_to_top : "بازگشت به بالا"
@@ -1697,9 +1700,9 @@ ga-IE:
# -----------------
fi: &DEFAULT_FI
skip_links : "Ohita linkit"
skip_primary_nav : "Hyppää pää navigaatioon"
skip_content : "Hyppää sisältöön"
skip_footer : "Hyppää alareunaan"
skip_primary_nav : "Siirry päävalikkoon"
skip_content : "Siirry sisältöön"
skip_footer : "Siirry alareunaan"
page : "Sivu"
pagination_previous : "Edellinen"
pagination_next : "Seuraava"
@@ -1710,39 +1713,39 @@ fi: &DEFAULT_FI
toc_label : "Tällä sivulla"
ext_link_label : "Suora linkki"
less_than : "vähemmän kuin"
minute_read : "lukuaika"
minute_read : "minuuttia luettavaa"
share_on_label : "Jaa"
meta_label :
tags_label : "Tagit:"
tags_label : "Tunnisteet:"
categories_label : "Kategoriat:"
date_label : "Päivitetty:"
comments_label : "Jätä kommentti"
comments_title : "Kommentit"
more_label : "Lisää"
related_label : "Voit olla kiinnostunut myös"
related_label : "Saatat olla kiinnostunut myös"
follow_label : "Seuraa:"
feed_label : "Syöte"
powered_by : "Voimanlähteenä"
website_label : "Websivu"
email_label : "Email"
recent_posts : "Viimeisimmät postaukset"
powered_by : "Käyttäen"
website_label : "Kotisivu"
email_label : "Sähköposti"
recent_posts : "Viimeisimmät kirjoitukset"
undefined_wpm : "words_per_minute asetusta ei ole määritelty _config.yml tiedostossa"
comment_form_info : "Your email address will not be published. Required fields are marked"
comment_form_info : "Sinun sähköpostiosoitetta ei julkaista. Vaaditut kentät ovat merkittyjä"
comment_form_comment_label : "Kommentti"
comment_form_md_info : "Tukee markdown muotoilua."
comment_form_name_label : "Nimi"
comment_form_email_label : "Email osoite"
comment_form_website_label : "Webbisivu (vapaaehtoinen)"
comment_form_email_label : "Sähköpostiosoite"
comment_form_website_label : "Nettisivu (vapaaehtoinen)"
comment_btn_submit : "Lähetä"
comment_btn_submitted : "Lähetetty"
comment_success_msg : "Kiitos kommentista, se julkaistaan tällä sivulla moderoinnin jälkeen."
comment_error_msg : "Tarkista että olet täyttänyt kaikki kentät ja yritä uudelleen."
comment_success_msg : "Kiitos kommentista, se julkaistaan tällä sivulla tarkastelun jälkeen."
comment_error_msg : "Tapahtui virhe. Tarkista, että olet täyttänyt kaikki kentät ja yritä uudelleen."
loading_label : "Ladataan..."
search_label_text : "Hakusana..."
search_placeholder_text : "Hakusana..."
search_algolia_no_results :
search_algolia_no_results : "Ei hakutuloksia"
results_found : "Tulosta"
back_to_top : "Ylös"
back_to_top : "Siirry ylös"
# Myanmar (Burmese)
# -----------------
@@ -1905,6 +1908,278 @@ he: &DEFAULT_HE
he-IL:
<<: *DEFAULT_HE
# Arabic (عربي)
# --------------
ar: &DEFAULT_AR
skip_links : "تخطي الروابط"
skip_primary_nav : "تخطى الى شريط التنقل"
skip_content : "الانتقال الى المحتوى"
skip_footer : "الانتقال الى ذيل الصفحة"
page : "صفحه"
pagination_previous : "قبل"
pagination_next : "بعد"
breadcrumb_home_label : "الرئيس"
breadcrumb_separator : "/"
menu_label : "الخيارات"
search_label : "البحث"
toc_label : "على هذه الصفحة"
ext_link_label : "رابط مباشر"
less_than : "اقل من"
minute_read : "دقيقة قرائية"
share_on_label : "مشاركة"
meta_label :
tags_label : "العلامات الوصفية:"
categories_label : "الفئات:"
date_label : "تم التحديث:"
comments_label : "اترك تعليق"
comments_title : "التعليقات"
more_label : "اقرأ المزيد"
related_label : "قد يعجبك أيضا"
follow_label : "تابع:"
feed_label : "الاخبار - RSS"
powered_by : "تم تطوير بواسطة"
website_label : "موقع"
email_label : "ايميل"
recent_posts : "المشاركات الأخيرة"
undefined_wpm : "معامل غير معرف في words_per_minute (كلمة في الدقيقة) في ملف _config.yml"
comment_form_info : "لن يتم نشر عنوان بريدك الإلكتروني. الحقول المطلوبة إلزامية"
comment_form_comment_label : "تعليق"
comment_form_md_info : "لغة ال Markdown مدعومة."
comment_form_name_label : "الاسم"
comment_form_email_label : "البريد الالكتروني"
comment_form_website_label : "الموقع (اختياري)"
comment_btn_submit : "أضف تعليق"
comment_btn_submitted : "تم الإرسال"
comment_success_msg : "شكراً على التعليق! سيتم اظهاره عندما يتم موافقة عليه."
comment_error_msg : "للأسف, هناك خطأ في المحاولة. الرجاء الحرص على تعبئة جميع الخانات و محاولة مجدداً."
loading_label : "جاري التحميل..."
search_label_text : "اكتب مصطلح للبحث..."
search_placeholder_text : "اكتب مصطلح للبحث..."
search_algolia_no_results : "لا توجد نتائج"
results_found : "تم إيجاد نتيجة"
back_to_top : "الانتقال الى الأعلى"
ar-SD:
<<: *DEFAULT_AR
ar-SA:
<<: *DEFAULT_AR
ar-AE:
<<: *DEFAULT_AR
ar-EG:
<<: *DEFAULT_AR
# Kiswahili
# -----------------
sw: &DEFAULT_SW
skip_links : "Ruka viungo"
skip_primary_nav : "Ruka orodha kuu"
skip_content : "Ruka maandiko maakuu"
skip_footer : "Ruka chini"
page : "Ukurasa"
pagination_previous : "Rudi"
pagination_next : "Endelea"
breadcrumb_home_label : "Ukurasa wa kwanza"
breadcrumb_separator : "/"
menu_label : "Wezesha/Zima orodha"
search_label : "Wezesha/Zima kutafuta"
toc_label : "Kwa ukurasa huu"
ext_link_label : "Kiungo mbio"
less_than : "Soma kwa dakikia ndogo kuliko"
minute_read : "Soma kwa dakika"
share_on_label : "Tangaza"
meta_label :
tags_label : "Alama:"
categories_label : "Aina:"
date_label : "Geuzi ya mwisho:"
comments_label : "Wacha maoni"
comments_title : "Maoni"
more_label : "Jifunze zaidi"
related_label : "Pia, utapenda"
follow_label : "Fuata:"
feed_label : "Feed"
powered_by : "Inatumia"
website_label : "Tovuti"
email_label : "Barua pepe"
recent_posts : "Makala juzi"
undefined_wpm : "Ingizo words_per_minute kwa _config.yml haijawekwa"
comment_form_info : "Barua pepe yako haitaonekana. Kuna alama kwa ingizo tunahitaji."
comment_form_comment_label : "Maoni"
comment_form_md_info : "Unaweza kutumia `Markdown`."
comment_form_name_label : "Jina"
comment_form_email_label : "Barua pepe"
comment_form_website_label : "Tovuti (hiari)"
comment_btn_submit : "Tuma maoni"
comment_btn_submitted : "Umetuma"
comment_success_msg : "Asante kwa maoni yako! Itaonekana ikiridhiwa."
comment_error_msg : "Pole, kuna makosa kwa ingizo yako. Tafadhali angalia umeandika kwa ingizo zote zinahitaji, na jaribu tena."
loading_label : "Inapakiwa..."
search_label_text : "Ingiza neno unatafuta..."
search_placeholder_text : "Ingiza neno unatafuta..."
search_algolia_no_results : "Hakuna matokeo"
results_found : "Tumepata"
back_to_top : "Rudi juu"
sw-KE:
<<: *DEFAULT_SW
sw-TZ:
<<: *DEFAULT_SW
# Ukrainian / Українська
# -----------------
uk: &DEFAULT_UK
skip_links : "Посилання для переходу"
skip_primary_nav : "Перейти до основної навігації"
skip_content : "Перейти до змісту"
skip_footer : "Перейти до нижнього колонтитула"
page : "Сторінка"
pagination_previous : "Попередня"
pagination_next : "Наступна"
breadcrumb_home_label : "Головна"
breadcrumb_separator : "/"
menu_label : "Випадаюче меню"
search_label : "Пошук"
toc_label : "Зміст"
ext_link_label : "Пряме посилання"
less_than : "менше ніж"
minute_read : "хв. на чітання"
share_on_label : "Поділитися"
meta_label :
tags_label : "Мітки:"
categories_label : "Розділи:"
date_label : "Дата зміни:"
comments_label : "Залишити коментар"
comments_title : "Коментарі"
more_label : "Читати далі"
related_label : "Вам також може сподобатись"
follow_label : "Зв'язатися зі мною:"
feed_label : "RSS-стрічка"
powered_by : "Сайт працює на"
website_label : "Сайт"
email_label : "Электронна пошта"
recent_posts : "Останні записи"
undefined_wpm : "Не визначено параметр words_per_minute в _config.yml"
comment_form_info : "Вашу адресу електронної пошти не буде опубліковано. Обов'язкові поля позначені"
comment_form_comment_label : "Коментар"
comment_form_md_info : "Підтримується синтаксис Markdown."
comment_form_name_label : "Ім'я"
comment_form_email_label : "Електронна пошта"
comment_form_website_label : "Посилання на сайт (необов'язково)"
comment_btn_submit : "Залишити коментар"
comment_btn_submitted : "Відправлено"
comment_success_msg : "Дякую за Ваш коментар! Його буде опубліковано на сайті після перевірки."
comment_error_msg : "На жаль, сталася помилка з надсиланням коментаря. Будь ласка, переконайтеся, що всі обов'язкові поля заповнені та спробуйте знову."
loading_label : "Відправка..."
search_label_text : "Введіть пошуковий запит..."
search_placeholder_text : "Введіть пошуковий запит..."
search_algolia_no_results :
results_found : "Знайдено"
uk-UA:
<<: *DEFAULT_UK
# Czech / čeština
# -----------------
cs: &DEFAULT_CS
skip_links : "Rychlé odkazy"
skip_primary_nav : "Přejít na hlavní navigace"
skip_content : "Přejít na obsah"
skip_footer : "Přejít na zápatí"
page : "Stránka"
pagination_previous : "Předchozí"
pagination_next : "Další"
breadcrumb_home_label : "Domů"
breadcrumb_separator : "/"
menu_label : "Přepnout zobrazení menu"
search_label : "Přepnout zobrazení vyhledávání"
toc_label : "Na této stránce"
ext_link_label : "Přímý odkaz"
less_than : "méně než"
minute_read : "minut"
share_on_label : "Sdílet"
meta_label :
tags_label : "Štítky:"
categories_label : "Rubriky:"
date_label : "Aktualizováno:"
comments_label : "Okomentovat"
comments_title : "Komentáře"
more_label : "Zjistit více"
related_label : "Může se vám také líbit"
follow_label : "Sledovat:"
feed_label : "Zdroj"
powered_by : "Používáme"
website_label : "Web"
email_label : "E-mail"
recent_posts : "Nejnovější příspěvky"
undefined_wpm : "V souboru _config.yml chybí parametr words_per_minute"
comment_form_info : "Vaše e-mailová adresa nebude zveřejněna. Povinná pole jsou označena"
comment_form_comment_label : "Komentář"
comment_form_md_info : "Podporuje markdown."
comment_form_name_label : "Jméno"
comment_form_email_label : "E-mailová adresa"
comment_form_website_label : "Web (volitelné)"
comment_btn_submit : "Odeslat komentář"
comment_btn_submitted : "Odesláno"
comment_success_msg : "Děkujeme za komentář. Na stránce se objeví jakmile projde schválením."
comment_error_msg : "Odeslání se nezdařilo. Zkontrolujte, že jste vyplnili všechna povinná pole a zkuste to znovu."
loading_label : "Načítání..."
search_label_text : "Zadejte vyhledávání..."
search_placeholder_text : "Zadejte vyhledávání..."
search_algolia_no_results : "Žádné výsledky"
results_found : "Nalezené výsledky"
back_to_top : "Na začátek stránky"
cs-CZ:
<<: *DEFAULT_CS
# Bulgarian
# -----------------
bg: &DEFAULT_BG
skip_links : "Пропуснете връзките"
skip_primary_nav : "Преминете към основната навигация"
skip_content : "Преминете към съдържанието"
skip_footer : "Преминете към долния колонтитул"
page : "Страница"
pagination_previous : "Предишна"
pagination_next : "Следваща"
breadcrumb_home_label : "Начало"
breadcrumb_separator : "/"
menu_label : "Превключване на меню"
search_label : "Превключване на търсене"
toc_label : "На тази страница"
ext_link_label : "Пряка връзка"
less_than : "по-малко от"
minute_read : "минута четене"
share_on_label : "Споделете"
meta_label :
tags_label : "Етикети:"
categories_label : "Категории:"
date_label : "Обновено:"
comments_label : "Оставете коментар"
comments_title : "Коментари"
more_label : "Научете повече"
related_label : "Може да са ви интересни"
follow_label : "Последвайте:"
feed_label : "Емисия"
powered_by : "Осъществено чрез"
website_label : "Уебсайт"
email_label : "Е-поща"
recent_posts : "Последни публикации"
undefined_wpm : "Недефиниран параметър words_per_minute в _config.yml"
comment_form_info : "Вашият адрес за е-поща няма да бъде публикуван. Задължителните полета са обозначени"
comment_form_comment_label : "Коментар"
comment_form_md_info : "Поддържа се Маркдаун."
comment_form_name_label : "Име"
comment_form_email_label : "Адрес за е-поща"
comment_form_website_label : "Уебсайт (по желание)"
comment_btn_submit : "Изпращане на коментар"
comment_btn_submitted : "Изпратено"
comment_success_msg : "Благодарности за коментара! Ще се покаже на сайта, след като бъде одобрен."
comment_error_msg : "Съжаляваме, възникна грешка с изпращането. Моля, уверете се, че всички задължителни полета са попълнени и опитайте отново."
loading_label : "Зареждане..."
search_label_text : "Въведете термин за търсене..."
search_placeholder_text : "Въведете термин за търсене..."
search_algolia_no_results : "Няма резултати"
results_found : "Намерени резултати"
back_to_top : "Обратно към началото"
bg-BG:
<<: *DEFAULT_BG
# Another locale
# --------------
#
#
View File
+1 -1
View File
@@ -11,7 +11,7 @@
{% endif %}
<div class="{{ include.type | default: 'list' }}__item">
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork"{% if post.locale %} lang="{{ post.locale }}"{% endif %}>
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src="{{ teaser | relative_url }}" alt="">
+1 -1
View File
@@ -1,6 +1,6 @@
<!--
<li>
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
</a>
</li>
+36 -42
View File
@@ -1,28 +1,22 @@
{% assign author = page.author | default: page.authors[0] | default: site.author %}
{% assign author = site.data.authors[author] | default: author %}
<div itemscope itemtype="https://schema.org/Person">
<div itemscope itemtype="https://schema.org/Person" class="h-card">
{% if author.avatar %}
<div class="author__avatar">
{% if author.home %}
<a href="{{ author.home | relative_url }}">
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
</a>
{% else %}
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
{% endif %}
<a href="{{ author.home | default: '/' | absolute_url }}">
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image" class="u-photo">
</a>
</div>
{% endif %}
<div class="author__content">
{% if author.home %}
<a href="{{ author.home | relative_url }}"><h3 class="author__name" itemprop="name">{{ author.name }}</h3></a>
{% else %}
<h3 class="author__name" itemprop="name">{{ author.name }}</h3>
{% endif %}
<h3 class="author__name p-name" itemprop="name">
<a class="u-url" rel="me" href="{{ author.home | default: '/' | absolute_url }}" itemprop="url">{{ author.name }}</a>
</h3>
{% if author.bio %}
<div class="author__bio" itemprop="description">
<div class="author__bio p-note" itemprop="description">
{{ author.bio | markdownify }}
</div>
{% endif %}
@@ -33,21 +27,21 @@
<ul class="author__urls social-icons">
{% if author.location %}
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name">{{ author.location }}</span>
<i class="fas fa-fw fa-map-marker-alt" aria-hidden="true"></i> <span itemprop="name" class="p-locality">{{ author.location }}</span>
</li>
{% endif %}
{% if author.links %}
{% for link in author.links %}
{% if link.label and link.url %}
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer"><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i><span class="label">{{ link.label }}</span></a></li>
<li><a href="{{ link.url }}" rel="nofollow noopener noreferrer me"{% if link.url contains 'http' %} itemprop="sameAs"{% endif %}><i class="{{ link.icon | default: 'fas fa-link' }}" aria-hidden="true"></i><span class="label">{{ link.label }}</span></a></li>
{% endif %}
{% endfor %}
{% endif %}
{% if author.uri %}
<li>
<a href="{{ author.uri }}" itemprop="url">
<a href="{{ author.uri }}" itemprop="url" rel="me">
<i class="fas fa-fw fa-link" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].website_label | default: "Website" }}</span>
</a>
</li>
@@ -55,7 +49,7 @@
{% if author.email %}
<li>
<a href="mailto:{{ author.email }}">
<a href="mailto:{{ author.email }}" rel="me" class="u-email">
<meta itemprop="email" content="{{ author.email }}" />
<i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
</a>
@@ -64,15 +58,15 @@
{% if author.keybase %}
<li>
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fas fa-fw fa-key" aria-hidden="true"></i><span class="label">Keybase</span>
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-keybase" aria-hidden="true"></i><span class="label">Keybase</span>
</a>
</li>
{% endif %}
{% if author.twitter %}
<li>
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i><span class="label">Twitter</span>
</a>
</li>
@@ -80,7 +74,7 @@
{% if author.facebook %}
<li>
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i><span class="label">Facebook</span>
</a>
</li>
@@ -88,7 +82,7 @@
{% if author.linkedin %}
<li>
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">LinkedIn</span>
</a>
</li>
@@ -96,7 +90,7 @@
{% if author.xing %}
<li>
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i><span class="label">XING</span>
</a>
</li>
@@ -104,7 +98,7 @@
{% if author.instagram %}
<li>
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i><span class="label">Instagram</span>
</a>
</li>
@@ -112,7 +106,7 @@
{% if author.tumblr %}
<li>
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i><span class="label">Tumblr</span>
</a>
</li>
@@ -120,7 +114,7 @@
{% if author.bitbucket %}
<li>
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i><span class="label">Bitbucket</span>
</a>
</li>
@@ -128,7 +122,7 @@
{% if author.github %}
<li>
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span>
</a>
</li>
@@ -136,7 +130,7 @@
{% if author.gitlab %}
<li>
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i><span class="label">GitLab</span>
</a>
</li>
@@ -144,7 +138,7 @@
{% if author.stackoverflow %}
<li>
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i><span class="label">Stack Overflow</span>
</a>
</li>
@@ -152,7 +146,7 @@
{% if author.lastfm %}
<li>
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i><span class="label">Last.fm</span>
</a>
</li>
@@ -160,7 +154,7 @@
{% if author.dribbble %}
<li>
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i><span class="label">Dribbble</span>
</a>
</li>
@@ -168,7 +162,7 @@
{% if author.pinterest %}
<li>
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i><span class="label">Pinterest</span>
</a>
</li>
@@ -176,7 +170,7 @@
{% if author.foursquare %}
<li>
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i><span class="label">Foursquare</span>
</a>
</li>
@@ -184,7 +178,7 @@
{% if author.steam %}
<li>
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-steam" aria-hidden="true"></i><span class="label">Steam</span>
</a>
</li>
@@ -193,13 +187,13 @@
{% if author.youtube %}
{% if author.youtube contains "://" %}
<li>
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
</a>
</li>
{% elsif author.youtube %}
<li>
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
</a>
</li>
@@ -208,7 +202,7 @@
{% if author.soundcloud %}
<li>
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i><span class="label">SoundCloud</span>
</a>
</li>
@@ -216,7 +210,7 @@
{% if author.weibo %}
<li>
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i><span class="label">Weibo</span>
</a>
</li>
@@ -224,7 +218,7 @@
{% if author.flickr %}
<li>
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i><span class="label">Flickr</span>
</a>
</li>
@@ -232,7 +226,7 @@
{% if author.codepen %}
<li>
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i><span class="label">CodePen</span>
</a>
</li>
@@ -240,7 +234,7 @@
{% if author.vine %}
<li>
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fab fa-fw fa-vine" aria-hidden="true"></i><span class="label">{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</span>
</a>
</li>
View File
+4 -3
View File
@@ -19,17 +19,18 @@
{% for crumb in crumbs offset: 1 %}
{% if forloop.first %}
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="{{ site.url }}{{ site.baseurl }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
<a href="{{ '/' | relative_url }}" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
{% endif %}
{% if forloop.last %}
<li class="current">{{ page.title }}</li>
<li class="current"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</li>
{% else %}
{% assign i = i | plus: 1 %}
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
<a href="{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path | relative_url }}" itemprop="item"><span itemprop="name">{{ crumb | url_decode | replace: '-', ' ' | capitalize }}</span></a>
<meta itemprop="position" content="{{ i }}" />
</li>
<span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
-3
View File
@@ -1,3 +0,0 @@
<!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="https://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->
+1 -1
View File
@@ -12,7 +12,7 @@
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
<span itemprop="keywords">
{% for category_word in categories_sorted %}
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
<a href="{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
+34
View File
@@ -0,0 +1,34 @@
<script>
'use strict';
(function () {
var commentContainer = document.querySelector('#giscus-comments');
if (!commentContainer) {
return;
}
var script = document.createElement('script');
script.setAttribute('src', 'https://giscus.app/client.js');
script.setAttribute('data-repo', '{{ site.repository | downcase }}');
script.setAttribute('data-repo-id', '{{ site.comments.giscus.repo_id }}');
script.setAttribute('data-category', '{{ site.comments.giscus.category_name }}');
script.setAttribute('data-category-id', '{{ site.comments.giscus.category_id }}');
script.setAttribute('data-mapping', '{{ site.comments.giscus.discussion_term | default: "pathname" }}');
script.setAttribute('data-strict', '{{ site.comments.giscus.strict | default: 0 }}');
script.setAttribute('data-reactions-enabled', '{{ site.comments.giscus.reactions_enabled | default: 1 }}');
script.setAttribute('data-emit-metadata', '{{ site.comments.giscus.emit_metadata | default: 0 }}');
script.setAttribute('data-input-position', '{{ site.comments.giscus.input_position | default: "top" }}');
script.setAttribute('data-theme', '{{ site.comments.giscus.theme | default: "light" }}');
script.setAttribute('data-lang', '{{ site.comments.giscus.lang | default: "en" }}');
{% if site.comments.giscus.lazy %}
script.setAttribute('data-loading', 'lazy');
{% endif %}
script.setAttribute('crossorigin', 'anonymous');
script.setAttribute('async', '');
commentContainer.appendChild(script);
})();
</script>
@@ -12,6 +12,8 @@
{% include /comments-providers/staticman_v2.html %}
{% when "utterances" %}
{% include /comments-providers/utterances.html %}
{% when "giscus" %}
{% include /comments-providers/giscus.html %}
{% when "custom" %}
{% include /comments-providers/custom_scripts.html %}
{% endcase %}
@@ -12,6 +12,7 @@
script.setAttribute('src', 'https://utteranc.es/client.js');
script.setAttribute('repo', '{{ site.repository }}');
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term | default: "pathname" }}');
{% if site.comments.utterances.label %}script.setAttribute('label', '{{ site.comments.utterances.label }}');{% endif %}
script.setAttribute('theme', '{{ site.comments.utterances.theme | default: "github-light" }}');
script.setAttribute('crossorigin', 'anonymous');
+34 -13
View File
@@ -17,14 +17,23 @@
<div class="js-comments">
{% if site.data.comments[page.slug] %}
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
{% assign comments = site.data.comments[page.slug] | sort %}
{% assign comments = site.data.comments[page.slug] %}
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
create a new array of plain comment objects and then sort by the comment date. -->
{% assign commentObjects = '' | split: '' %}
{% for comment in comments %}
{% assign commentObject = comment[1] %}
{% assign commentObjects = commentObjects | push: commentObject %}
{% endfor %}
{% assign comments = commentObjects | sort: "date" %}
{% for comment in comments %}
{% assign email = comment[1].email %}
{% assign name = comment[1].name %}
{% assign url = comment[1].url %}
{% assign date = comment[1].date %}
{% assign message = comment[1].message %}
{% assign email = comment.email %}
{% assign name = comment.name %}
{% assign url = comment.url %}
{% assign date = comment.date %}
{% assign message = comment.message %}
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
{% endfor %}
{% endif %}
@@ -35,7 +44,7 @@
<div class="page__comments-form">
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
<p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.comments.staticman.endpoint | default: 'https://api.staticman.net/v2/entry/' }}{{ site.repository }}/{{ site.comments.staticman.branch }}/comments">
<form id="new_comment" class="page__comments-form js-form form" method="post" action="{{ site.comments.staticman.endpoint }}{{ site.repository }}/{{ site.comments.staticman.branch }}/comments">
<div class="form__spinner">
<i class="fas fa-spinner fa-spin fa-3x fa-fw"></i>
<span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
@@ -91,14 +100,23 @@
<div class="js-comments">
{% if site.data.comments[page.slug] %}
<h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
{% assign comments = site.data.comments[page.slug] | sort %}
{% assign comments = site.data.comments[page.slug] %}
<!-- In order to sort by date we must have an array of objects, not an array of arrays, so
create a new array of plain comment objects and then sort by the comment date. -->
{% assign commentObjects = '' | split: '' %}
{% for comment in comments %}
{% assign commentObject = comment[1] %}
{% assign commentObjects = commentObjects | push: commentObject %}
{% endfor %}
{% assign comments = commentObjects | sort: "date" %}
{% for comment in comments %}
{% assign email = comment[1].email %}
{% assign name = comment[1].name %}
{% assign url = comment[1].url %}
{% assign date = comment[1].date %}
{% assign message = comment[1].message %}
{% assign email = comment.email %}
{% assign name = comment.name %}
{% assign url = comment.url %}
{% assign date = comment.date %}
{% assign message = comment.message %}
{% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
{% endfor %}
{% endif %}
@@ -153,6 +171,9 @@
{% when "utterances" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="utterances-comments"></section>
{% when "giscus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="giscus-comments"></section>
{% when "custom" %}
{% include /comments-providers/custom.html %}
{% endcase %}
+6
View File
@@ -0,0 +1,6 @@
<!--
Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
-->
+6
View File
@@ -0,0 +1,6 @@
/*!
* Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
* Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
* Free for personal and commercial use under the MIT license
* https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
*/
+2 -4
View File
@@ -1,4 +1,4 @@
{% assign entries = site[include.collection] %}
{% assign entries = include.entries | default: site[include.collection] | where_exp: "post", "post.hidden != true" %}
{% if include.sort_by %}
{% assign entries = entries | sort: include.sort_by %}
@@ -9,7 +9,5 @@
{% endif %}
{%- for post in entries -%}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{% include archive-single.html type=include.type %}
{%- endfor -%}
+3 -1
View File
@@ -1,6 +1,8 @@
<figure class="{{ include.class }}">
{%- if include.popup -%}<a href="{{ include.image_path | relative_url }}" class="image-popup"{% if include.caption %} title="{{ include.caption | markdownify | strip_html }}"{% endif %}>{%- endif -%}
<img src="{{ include.image_path | relative_url }}"
alt="{% if include.alt %}{{ include.alt }}{% endif %}">
alt="{% if include.alt %}{{ include.alt | escape_once }}{% endif %}">
{%- if include.popup -%}</a>{%- endif -%}
{%- if include.caption -%}
<figcaption>
{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}
+1 -1
View File
@@ -18,4 +18,4 @@
</ul>
</div>
<div class="page__footer-copyright">&copy; {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.</div>
<div class="page__footer-copyright">&copy; {{ site.time | date: '%Y' }} <a href="{{ site.copyright_url | default: site.url }}">{{ site.copyright | default: site.title }}</a>. {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://mademistakes.com/work/jekyll-themes/minimal-mistakes/" rel="nofollow">Minimal Mistakes</a>.</div>
+7 -18
View File
@@ -6,34 +6,23 @@
<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">
{% endunless %}
<!-- https://t.co/dKP3o1e -->
{%- comment %} https://docs.google.com/presentation/d/1rmxwWa9P6_xHqonmh5ONXRS-jPc5XKbnv99Rjkhe04s/present {% endcomment -%}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
{% if site.enable_copy_code_button -%}
window.enable_copy_code_button = true;
{%- endif %}
</script>
<!-- For all browsers -->
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5/css/all.min.css">
<!--[if IE]>
<style>
/* old IE unsupported flexbox fixes */
.greedy-nav .site-title {
padding-right: 3em;
}
.greedy-nav button {
position: absolute;
top: 0;
right: 0;
height: 100%;
}
</style>
<![endif]-->
<link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css"></noscript>
{% if site.head_scripts %}
{% for script in site.head_scripts %}
<script src="{{ script | relative_url }}"></script>
{% endfor %}
{% endif %}
{% endif %}
+7 -5
View File
@@ -5,7 +5,7 @@
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
{% unless logo_path == empty %}
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt=""></a>
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt="{{ site.masthead_title | default: site.title }}"></a>
{% endunless %}
<a class="site-title" href="{{ '/' | relative_url }}">
{{ site.masthead_title | default: site.title }}
@@ -14,16 +14,18 @@
<ul class="visible-links">
{%- for link in site.data.navigation.main -%}
<li class="masthead__menu-item">
<a href="{{ link.url | relative_url }}"{% if link.description %} title="{{ link.description }}"{% endif %}>{{ link.title }}</a>
<a
href="{{ link.url | relative_url }}"
{% if link.description %} title="{{ link.description }}"{% endif %}
{% if link.target %} target="{{ link.target }}"{% endif %}
>{{ link.title }}</a>
</li>
{%- endfor -%}
</ul>
{% if site.search == true %}
<button class="search__toggle" type="button">
<span class="visually-hidden">{{ site.data.ui-text[site.locale].search_label | default: "Toggle search" }}</span>
<svg class="icon" width="16" height="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15.99 16">
<path d="M15.5,13.12L13.19,10.8a1.69,1.69,0,0,0-1.28-.55l-0.06-.06A6.5,6.5,0,0,0,5.77,0,6.5,6.5,0,0,0,2.46,11.59a6.47,6.47,0,0,0,7.74.26l0.05,0.05a1.65,1.65,0,0,0,.5,1.24l2.38,2.38A1.68,1.68,0,0,0,15.5,13.12ZM6.4,2A4.41,4.41,0,1,1,2,6.4,4.43,4.43,0,0,1,6.4,2Z" transform="translate(-.01)"></path>
</svg>
<i class="fas fa-search"></i>
</button>
{% endif %}
<button class="greedy-nav__toggle hidden" type="button">
+18 -17
View File
@@ -1,26 +1,27 @@
{% assign navigation = site.data.navigation[include.nav] %}
<nav class="nav__list">
{% if page.sidebar.title %}<h3 class="nav__title" style="padding-left: 0;">{{ page.sidebar.title }}</h3>{% endif %}
<input id="ac-toc" name="accordion-toc" type="checkbox" />
<label for="ac-toc">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</label>
<ul class="nav__items">
{% for nav in navigation %}
<li>
{% if nav.url %}
<a href="{{ nav.url | relative_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
{% else %}
<span class="nav__sub-title">{{ nav.title }}</span>
{% endif %}
{% for navname in include.nav %}
{% assign navigation = site.data.navigation[navname] %}
{% for nav in navigation %}
<li>
{% if nav.url %}
<a href="{{ nav.url | relative_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
{% else %}
<span class="nav__sub-title">{{ nav.title }}</span>
{% endif %}
{% if nav.children != null %}
<ul>
{% for child in nav.children %}
<li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% if nav.children != null %}
<ul>
{% for child in nav.children %}
<li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
{% endfor %}
</ul>
</nav>
+4 -3
View File
@@ -1,5 +1,6 @@
{% assign date_format = site.date_format | default: "%B %-d, %Y" %}
{% if page.last_modified_at %}
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: "%B %-d, %Y" }}</time></p>
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time class="dt-published" datetime="{{ page.last_modified_at | date: "%Y-%m-%d" }}">{{ page.last_modified_at | date: date_format }}</time></p>
{% elsif page.date %}
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %-d, %Y" }}</time></p>
{% endif %}
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}</strong> <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: date_format }}</time></p>
{% endif %}
+1 -3
View File
@@ -36,14 +36,12 @@
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
{% endif %}
{% include page__meta.html %}
{% if page.header.cta_url %}
<p><a href="{{ page.header.cta_url | relative_url }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
{% if page.header.actions %}
<p>
{% for action in page.header.actions %}
<a href="{{ action.url | relative_url }}" class="btn btn--light-outline btn--large">{{ action.label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a>
{% endfor %}
</p>
{% endif %}
</div>
{% else %}
+2 -1
View File
@@ -5,7 +5,8 @@
{% assign date = document.date %}
<span class="page__meta-date">
<i class="far {% if include.type == 'grid' and document.read_time and document.show_date %}fa-fw {% endif %}fa-calendar-alt" aria-hidden="true"></i>
<time datetime="{{ date | date_to_xmlschema }}">{{ date | date: "%B %-d, %Y" }}</time>
{% assign date_format = site.date_format | default: "%B %-d, %Y" %}
<time datetime="{{ date | date_to_xmlschema }}">{{ date | date: date_format }}</time>
</span>
{% endif %}
+11
View File
@@ -0,0 +1,11 @@
{% assign posts = include.posts | where_exp: "post", "post.hidden != true" %}
<div class="page__related">
{% include before-related.html %}
<h2 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h2>
<div class="grid__wrapper">
{% for post in posts limit:4 %}
{% if post.id == page.id %}{% continue %}{% endif %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
+70
View File
@@ -0,0 +1,70 @@
{% if paginator.total_pages > 1 %}
<nav class="pagination">
{% assign paginate_path_last = site.paginate_path | split: '/' | last %}
{% assign first_page_path = paginator.first_page_path | default: site.paginate_path | replace: paginate_path_last, '' | replace: '//', '/' | relative_url %}
<ul>
{% comment %} Link for previous page {% endcomment %}
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% else %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% endif %}
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
{% endif %}
{% comment %} First page {% endcomment %}
{% if paginator.page == 1 %}
<li><a href="#" class="disabled current">1</a></li>
{% else %}
<li><a href="{{ first_page_path }}">1</a></li>
{% endif %}
{% assign page_start = 2 %}
{% if paginator.page > 4 %}
{% assign page_start = paginator.page | minus: 2 %}
{% comment %} Ellipsis for truncated links {% endcomment %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% assign page_end = paginator.total_pages | minus: 1 %}
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
{% if pages_to_end > 4 %}
{% assign page_end = paginator.page | plus: 2 %}
{% endif %}
{% for index in (page_start..page_end) %}
{% if index == paginator.page %}
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | relative_url }}" class="disabled current">{{ index }}</a></li>
{% else %}
{% comment %} Distance from current page and this link {% endcomment %}
{% assign dist = paginator.page | minus: index %}
{% if dist < 0 %}
{% comment %} Distance must be a positive value {% endcomment %}
{% assign dist = 0 | minus: dist %}
{% endif %}
<li><a href="{{ site.paginate_path | replace: ':num', index | relative_url }}">{{ index }}</a></li>
{% endif %}
{% endfor %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% if pages_to_end > 3 %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% if paginator.page == paginator.total_pages %}
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
{% else %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | relative_url }}">{{ paginator.total_pages }}</a></li>
{% endif %}
{% comment %} Link next page {% endcomment %}
{% if paginator.next_page %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
{% endif %}
</ul>
</nav>
{% endif %}
+68
View File
@@ -0,0 +1,68 @@
<nav class="pagination">
<ul>
{% comment %} Link for previous page {% endcomment %}
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<li><a href="{{ paginator.first_page_path | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% else %}
<li><a href="{{ paginator.previous_page_path | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% endif %}
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
{% endif %}
{% comment %} Determine whether the first page and the last page are already included in trail {% endcomment %}
{% for trail in paginator.page_trail %}
{% if trail.num == paginator.first_page %}
{% assign has_first_page = true %}
{% elsif trail.num == paginator.last_page %}
{% assign has_last_page = true %}
{% endif %}
{% endfor %}
{% comment %} First page {% endcomment %}
{% unless has_first_page %}
{% if paginator.page == 1 %}
<li><a href="#" class="disabled current">1</a></li>
{% else %}
<li><a href="{{ paginator.first_page_path | relative_url }}">1</a></li>
{% endif %}
{% endunless %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% assign ellipsis_start = paginator.first_page | plus: 1 %}
{% if paginator.page_trail.first.num > ellipsis_start %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% comment %} Main pagination trail {% endcomment %}
{% for trail in paginator.page_trail %}
{% if paginator.page == trail.num %}
<li><a href="{{ trail.path | remove: 'index.html' | relative_url }}" class="disabled current">{{ trail.num }}</a></li>
{% else %}
<li><a href="{{ trail.path | remove: 'index.html' | relative_url }}">{{ trail.num }}</a></li>
{% endif %}
{% endfor %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% assign ellipsis_end = paginator.last_page | minus: 1 %}
{% if paginator.page_trail.last.num < ellipsis_end %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% unless has_last_page %}
{% if paginator.page == paginator.total_pages %}
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
{% else %}
<li><a href="{{ paginator.last_page_path | remove: 'index.html' | relative_url }}">{{ paginator.total_pages }}</a></li>
{% endif %}
{% endunless %}
{% comment %} Link next page {% endcomment %}
{% if paginator.next_page %}
<li><a href="{{ paginator.next_page_path | remove: 'index.html' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
{% endif %}
</ul>
</nav>
+5 -67
View File
@@ -1,69 +1,7 @@
{% if paginator.total_pages > 1 %}
<nav class="pagination">
{% assign first_page_path = paginator.first_page_path | default: site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | relative_url %}
<ul>
{% comment %} Link for previous page {% endcomment %}
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<li><a href="{{ first_page_path }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% else %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.previous_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
{% endif %}
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
{% endif %}
{% comment %} First page {% endcomment %}
{% if paginator.page == 1 %}
<li><a href="#" class="disabled current">1</a></li>
{% else %}
<li><a href="{{ first_page_path }}">1</a></li>
{% endif %}
{% assign page_start = 2 %}
{% if paginator.page > 4 %}
{% assign page_start = paginator.page | minus: 2 %}
{% comment %} Ellipsis for truncated links {% endcomment %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% assign page_end = paginator.total_pages | minus: 1 %}
{% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
{% if pages_to_end > 4 %}
{% assign page_end = paginator.page | plus: 2 %}
{% endif %}
{% for index in (page_start..page_end) %}
{% if index == paginator.page %}
<li><a href="{{ site.paginate_path | replace: ':num', index | replace: '//', '/' | relative_url }}" class="disabled current">{{ index }}</a></li>
{% else %}
{% comment %} Distance from current page and this link {% endcomment %}
{% assign dist = paginator.page | minus: index %}
{% if dist < 0 %}
{% comment %} Distance must be a positive value {% endcomment %}
{% assign dist = 0 | minus: dist %}
{% endif %}
<li><a href="{{ site.paginate_path | replace: ':num', index | relative_url }}">{{ index }}</a></li>
{% endif %}
{% endfor %}
{% comment %} Ellipsis for truncated links {% endcomment %}
{% if pages_to_end > 3 %}
<li><a href="#" class="disabled">&hellip;</a></li>
{% endif %}
{% if paginator.page == paginator.total_pages %}
<li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
{% else %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.total_pages | replace: '//', '/' | relative_url }}">{{ paginator.total_pages }}</a></li>
{% endif %}
{% comment %} Link next page {% endcomment %}
{% if paginator.next_page %}
<li><a href="{{ site.paginate_path | replace: ':num', paginator.next_page | replace: '//', '/' | relative_url }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
{% else %}
<li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
{% endif %}
</ul>
</nav>
{% if site.paginate %}
{% include paginator-v1.html %}
{% elsif site.pagination.enabled %}
{% include paginator-v2.html %}
{% endif %}
{% endif %}
+3 -3
View File
@@ -1,14 +1,14 @@
{% if page.previous or page.next %}
<nav class="pagination">
{% if page.previous %}
<a href="{{ page.previous.url | relative_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
<a href="{{ page.previous.url | relative_url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html | strip}}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
{% endif %}
{% if page.next %}
<a href="{{ page.next.url | relative_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
<a href="{{ page.next.url | relative_url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html | strip}}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% else %}
<a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
{% endif %}
</nav>
{% endif %}
{% endif %}
+3 -4
View File
@@ -1,5 +1,4 @@
{%- for post in site.categories[include.taxonomy] -%}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{% assign posts = site.categories[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
{%- for post in posts -%}
{% include archive-single.html %}
{%- endfor -%}
+3 -4
View File
@@ -1,5 +1,4 @@
{%- for post in site.tags[include.taxonomy] -%}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{% assign posts = site.tags[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
{%- for post in posts -%}
{% include archive-single.html %}
{%- endfor -%}
+37
View File
@@ -0,0 +1,37 @@
{% assign items_max = 0 %}
{% for item in include.taxonomies %}
{% if item[1].size > items_max %}
{% assign items_max = item[1].size %}
{% endif %}
{% endfor %}
<ul class="taxonomy__index">
{% for i in (1..items_max) reversed %}
{% for item in include.taxonomies %}
{% if item[1].size == i %}
<li>
<a href="#{{ item[0] | slugify }}">
<strong>{{ item[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
{% assign entries_layout = page.entries_layout | default: 'list' %}
{% for i in (1..items_max) reversed %}
{% for taxonomy in include.taxonomies %}
{% if taxonomy[1].size == i %}
<section id="{{ taxonomy[0] | slugify }}" class="taxonomy__section">
<h2 class="archive__subtitle">{{ taxonomy[0] }}</h2>
<div class="entries-{{ entries_layout }}">
{% for post in taxonomy.last %}
{% include archive-single.html type=entries_layout %}
{% endfor %}
</div>
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
</section>
{% endif %}
{% endfor %}
{% endfor %}
+16
View File
@@ -0,0 +1,16 @@
<script type="application/ld+json">
{
"@context": "https://schema.org",
{% if site.social.type == "Organization" -%}
"@type": "Organization",
"url": {{ '/' | absolute_url | jsonify }}{% if site.og_image %},
"logo": {{ site_og_image | jsonify }}{% endif %}{% if site.social.links %},
"sameAs": {{ site.social.links | jsonify }}{% endif %}
{%- else -%}
"@type": "Person",
"name": {{ site.social.name | default: site.name | jsonify }},
"url": {{ '/' | absolute_url | jsonify }}{% if site.social.links %},
"sameAs": {{ site.social.links | jsonify }}{% endif %}
{%- endif %}
}
</script>
+70 -49
View File
@@ -1,60 +1,81 @@
<!-- Including InstantSearch.js library and styling -->
<script src="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
<script>
// Instanciating InstantSearch.js with Algolia credentials
const search = instantsearch({
appId: '{{ site.algolia.application_id }}',
apiKey: '{{ site.algolia.search_only_api_key }}',
indexName: '{{ site.algolia.index_name }}',
searchParameters: {
restrictSearchableAttributes: [
'title',
'content'
]
}
});
// Including InstantSearch.js library and styling
const loadSearch = function() {
const loadCSS = function(src) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = src;
link.media = 'all';
document.head.appendChild(link);
};
const hitTemplate = function(hit) {
const url = hit.url;
const title = hit._highlightResult.title.value;
const content = hit._highlightResult.html.value;
var script = document.createElement('script');
script.setAttribute("type", "text/javascript");
script.setAttribute("src", "https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.js");
script.addEventListener("load", function() {
// Instantiating InstantSearch.js with Algolia credentials
const search = instantsearch({
appId: '{{ site.algolia.application_id }}',
apiKey: '{{ site.algolia.search_only_api_key }}',
indexName: '{{ site.algolia.index_name }}',
searchParameters: {
restrictSearchableAttributes: ['title', 'content']
}
});
return `
<div class="list__item">
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
<div class="archive__item-excerpt" itemprop="description">${content}</div>
</article>
</div>
`;
}
const hitTemplate = function(hit) {
const url = hit.url;
const hightlight = hit._highlightResult;
const title = hightlight.title && hightlight.title.value || "";
const content = hightlight.html && hightlight.html.value || "";
// Adding searchbar and results widgets
search.addWidget(
instantsearch.widgets.searchBox({
container: '.search-searchbar',
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
})
);
search.addWidget(
instantsearch.widgets.hits({
container: '.search-hits',
templates: {
item: hitTemplate,
empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}',
return `
<div class="list__item">
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
<h2 class="archive__item-title" itemprop="headline"><a href="{{ site.baseurl }}${url}">${title}</a></h2>
<div class="archive__item-excerpt" itemprop="description">${content}</div>
</article>
</div>
`;
}
})
);
// Adding searchbar and results widgets
search.addWidget(
instantsearch.widgets.searchBox({
container: '.search-searchbar',
{% unless site.algolia.powered_by == false %}poweredBy: true,{% endunless %}
placeholder: '{{ site.data.ui-text[site.locale].search_placeholder_text | default: "Enter your search term..." }}'
})
);
search.addWidget(
instantsearch.widgets.hits({
container: '.search-hits',
templates: {
item: hitTemplate,
empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}',
}
})
);
if (!search.started) {
search.start();
}
});
document.body.appendChild(script);
loadCSS("https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css");
loadCSS("https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css");
};
// Starting the search only when toggle is clicked
$(document).ready(function () {
$(document).ready(function() {
var scriptLoaded = false;
$(".search__toggle").on("click", function() {
if(!search.started) {
search.start();
if (!scriptLoaded) {
loadSearch();
scriptLoaded = true;
}
});
});
+2 -2
View File
@@ -2,7 +2,7 @@
{%- assign search_provider = site.search_provider | default: "lunr" -%}
{%- case search_provider -%}
{%- when "lunr" -%}
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
<form class="search-content__form" onkeydown="return event.key != 'Enter';" role="search">
<label class="sr-only" for="search">
{{ site.data.ui-text[site.locale].search_label_text | default: 'Enter your search term...' }}
</label>
@@ -10,7 +10,7 @@
</form>
<div id="results" class="results"></div>
{%- when "google" -%}
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id">
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id" role="search">
<label class="sr-only" for="cse-search-input-box-id">
{{ site.data.ui-text[site.locale].search_label_text | default: 'Enter your search term...' }}
</label>
+21 -42
View File
@@ -1,24 +1,17 @@
<!-- begin _includes/seo.html -->
{%- if site.url -%}
{%- assign seo_url = site.url | append: site.baseurl -%}
{%- endif -%}
{%- assign seo_url = seo_url | default: site.github.url -%}
{%- assign title_separator = site.title_separator | default: '-' -%}
{% assign title_separator = site.title_separator | default: '-' | replace: '|', '&#124;' %}
{%- if page.title -%}
{%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
{%- assign page_title = page.title | default: site.title | replace: '|', '&#124;' -%}
{%- if page_title contains site.title -%}
{%- assign seo_title = page_title | replace: '|', '&#124;' -%}
{%- else -%}
{%- assign seo_title = page_title | append: " " | append: title_separator | append: " " | append: site.title | replace: '|', '&#124;' -%}
{%- endif -%}
{%- if seo_title -%}
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
{%- endif -%}
{%- assign page_title = page_title | markdownify | strip_html | strip_newlines | escape_once -%}
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
{% if page.canonical_url %}
{%- assign canonical_url = page.canonical_url %}
{% else %}
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
{% endif %}
{%- assign canonical_url = page.canonical_url | default: page.url | replace: "/index.html", "/" | absolute_url %}
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
{%- if seo_description -%}
@@ -32,14 +25,9 @@
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
{%- endif -%}
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url -%}
{%- assign page_large_image = page_large_image | escape -%}
{%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url -%}
{%- assign page_teaser_image = page_teaser_image | escape -%}
{%- assign site_og_image = site.og_image | absolute_url -%}
{%- assign site_og_image = site_og_image | escape -%}
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url | escape -%}
{%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url | escape -%}
{%- assign site_og_image = site.og_image | absolute_url | escape -%}
{%- if page.date -%}
{%- assign og_type = "article" -%}
@@ -47,7 +35,7 @@
{%- assign og_type = "website" -%}
{%- endif -%}
<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
<title>{{ seo_title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
<meta name="description" content="{{ seo_description }}">
{% if author.name %}
@@ -60,7 +48,7 @@
<meta property="og:type" content="{{ og_type }}">
<meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
<meta property="og:site_name" content="{{ site.title }}">
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
<meta property="og:title" content="{{ page_title }}">
<meta property="og:url" content="{{ canonical_url }}">
{% if seo_description %}
@@ -75,7 +63,7 @@
{% if site.twitter.username %}
<meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
<meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
<meta name="twitter:title" content="{{ page_title }}">
<meta name="twitter:description" content="{{ seo_description }}">
<meta name="twitter:url" content="{{ canonical_url }}">
@@ -121,21 +109,9 @@
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
{% endif %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
{% if site.social.type == "Organization" %}
"@type": "Organization",
"url": {{ '/' | absolute_url | jsonify }}{% if site.og_image %},
"logo": {{ site_og_image | jsonify }}{% endif %}
{% else %}
"@type": "Person",
"name": {{ site.social.name | default: site.name | jsonify }},
"url": {{ '/' | absolute_url |jsonify }}{% if site.social.links %},
"sameAs": {{ site.social.links | jsonify }}{% endif %}
{% endif %}
}
</script>
{% if page.url == '/' %}
{% include schema.html %}
{% endif %}
{% if site.google_site_verification %}
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
@@ -152,4 +128,7 @@
{% if site.naver_site_verification %}
<meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
{% endif %}
{% if site.baidu_site_verification %}
<meta name="baidu-site-verification" content="{{ site.baidu_site_verification }}">
{% endif %}
<!-- end _includes/seo.html -->
-1
View File
@@ -1,5 +1,4 @@
<nav class="skip-links">
<h2 class="screen-reader-text">{{ site.data.ui-text[site.locale].skip_links | default: 'Skip links' }}</h2>
<ul>
<li><a href="#site-nav" class="screen-reader-shortcut">{{ site.data.ui-text[site.locale].skip_primary_nav | default: 'Skip to primary navigation' }}</a></li>
<li><a href="#main" class="screen-reader-shortcut">{{ site.data.ui-text[site.locale].skip_content | default: 'Skip to content' }}</a></li>
+10 -6
View File
@@ -1,11 +1,15 @@
<section class="page__share">
{% if site.data.ui-text[site.locale].share_on_label %}
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
{% endif %}
<h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
<a href="https://twitter.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--twitter" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Twitter"><i class="fab fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
<a href="https://x.com/intent/tweet?{% if site.twitter.username %}via={{ site.twitter.username | url_encode }}&{% endif %}text={{ page.title | url_encode }}%20{{ page.url | absolute_url | url_encode }}" class="btn btn--x" aria-label="Share on X" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} X">
<i class="fas fa-fw fa-share-alt" aria-hidden="true"></i><span> X</span>
</a>
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
<a href="https://www.facebook.com/sharer/sharer.php?u={{ page.url | absolute_url | url_encode }}" class="btn btn--facebook" aria-label="Share on Facebook" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook">
<i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span>
</a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url | url_encode }}" class="btn btn--linkedin" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url={{ page.url | absolute_url }}" class="btn btn--linkedin" aria-label="Share on LinkedIn" onclick="window.open(this.href, 'window', 'left=20,top=20,width=500,height=500,toolbar=1,resizable=0'); return false;" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn">
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span>
</a>
</section>
+1 -1
View File
@@ -12,7 +12,7 @@
<strong><i class="fas fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
<span itemprop="keywords">
{% for tag_word in tags_sorted %}
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | relative_url }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
<a href="{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path | relative_url }}" class="page__taxonomy-item p-category" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
{% endfor %}
</span>
</p>
+13 -6
View File
@@ -24,7 +24,7 @@
OTHER DEALINGS IN THE SOFTWARE.
{% endcomment %}
{% comment %}
Version 1.1.0
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
@@ -47,6 +47,7 @@
* 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
@@ -69,6 +70,7 @@
{% 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 %}
@@ -138,9 +140,9 @@
{% capture listItem %}{{ anchorBody }}{% endcapture %}
{% endif %}
{% if currLevel > lastLevel %}
{% if currLevel > lastLevel and flatToc == false %}
{% capture jekyll_toc %}{{ jekyll_toc }}<{{ listModifier }}{{ subMenuClass }}>{% endcapture %}
{% elsif currLevel < lastLevel %}
{% elsif currLevel < lastLevel and flatToc == false %}
{% assign repeatCount = lastLevel | minus: currLevel %}
{% for i in (1..repeatCount) %}
@@ -158,8 +160,13 @@
{% assign firstHeader = false %}
{% endfor %}
{% assign repeatCount = minHeader | minus: 1 %}
{% assign repeatCount = lastLevel | minus: repeatCount %}
{% if flatToc == true %}
{% assign repeatCount = 1 %}
{% else %}
{% assign repeatCount = minHeader | minus: 1 %}
{% assign repeatCount = lastLevel | minus: repeatCount %}
{% endif %}
{% for i in (1..repeatCount) %}
{% capture jekyll_toc %}{{ jekyll_toc }}</li></{{ listModifier }}>{% endcapture %}
{% endfor %}
@@ -179,4 +186,4 @@
{% capture jekyll_toc %}<{{ listModifier }}{{ rootAttributes }}>{{ nodes | shift | join: '>' }}>{% endcapture %}
{% endif %}
{% endif %}
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc }}
{% endcapture %}{% assign tocWorkspace = '' %}{{ deprecation_warnings }}{{ jekyll_toc -}}
+1 -1
View File
@@ -16,7 +16,7 @@
{% endcapture %}
{% assign video_src = video_src | strip %}
<!-- Courtesy of embedresponsively.com //-->
<!-- Courtesy of embedresponsively.com -->
{% unless video_src == "" %}
<div class="responsive-video-container">
<iframe src="{{ video_src }}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>
+1 -1
View File
@@ -20,7 +20,7 @@ author_profile: false
<div class="archive">
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
{% endunless %}
{% for post in page.posts %}
{% include archive-single.html %}
+2 -2
View File
@@ -19,8 +19,8 @@ layout: default
<div class="archive">
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
{% endunless %}
{{ content }}
</div>
</div>
</div>
+1 -37
View File
@@ -4,40 +4,4 @@ layout: archive
{{ content }}
{% assign categories_max = 0 %}
{% for category in site.categories %}
{% if category[1].size > categories_max %}
{% assign categories_max = category[1].size %}
{% endif %}
{% endfor %}
<ul class="taxonomy__index">
{% for i in (1..categories_max) reversed %}
{% for category in site.categories %}
{% if category[1].size == i %}
<li>
<a href="#{{ category[0] | slugify }}">
<strong>{{ category[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
{% assign entries_layout = page.entries_layout | default: 'list' %}
{% for i in (1..categories_max) reversed %}
{% for category in site.categories %}
{% if category[1].size == i %}
<section id="{{ category[0] | slugify | downcase }}" class="taxonomy__section">
<h2 class="archive__subtitle">{{ category[0] }}</h2>
<div class="entries-{{ entries_layout }}">
{% for post in category.last %}
{% include archive-single.html type=entries_layout %}
{% endfor %}
</div>
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
</section>
{% endif %}
{% endfor %}
{% endfor %}
{% include posts-taxonomy.html taxonomies=site.categories %}
+4 -10
View File
@@ -2,25 +2,20 @@
---
<!doctype html>
<!--
Minimal Mistakes Jekyll Theme 4.22.0 by Michael Rose
Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
-->
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
{% include copyright.html %}
<html lang="{{ site.locale | replace: "_", "-" | default: "en" }}" class="no-js">
<head>
{% include head.html %}
{% include head/custom.html %}
</head>
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}" dir="{% if site.rtl %}rtl{% else %}ltr{% endif %}">
{% include_cached skip-links.html %}
{% include_cached browser-upgrade.html %}
{% include_cached masthead.html %}
<div class="initial-content">
{{ content }}
{% include after-content.html %}
</div>
{% if site.search == true %}
@@ -37,6 +32,5 @@
</div>
{% include scripts.html %}
</body>
</html>
+1 -3
View File
@@ -14,9 +14,7 @@ layout: archive
{% assign entries_layout = page.entries_layout | default: 'list' %}
<div class="entries-{{ entries_layout }}">
{% for post in posts %}
{% include archive-single.html type=entries_layout %}
{% endfor %}
{% include documents-collection.html entries=posts type=entries_layout %}
</div>
{% include paginator.html %}
+3 -3
View File
@@ -17,7 +17,7 @@ layout: default
<div class="archive">
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
<h1 id="page-title" class="page__title"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>{{ page.title }}</h1>
{% endunless %}
{{ content }}
@@ -25,11 +25,11 @@ layout: default
{%- assign search_provider = site.search_provider | default: "lunr" -%}
{%- case search_provider -%}
{%- when "lunr" -%}
<input type="text" id="search" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
<input type="text" id="search" class="search-input" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
<div id="results" class="results"></div>
{%- when "google" -%}
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id">
<input type="text" id="cse-search-input-box-id" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
<input type="text" id="cse-search-input-box-id" class="search-input" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
</form>
<div id="results" class="results">
<gcse:searchresults-only></gcse:searchresults-only>
+23 -25
View File
@@ -8,7 +8,11 @@ layout: default
{% include page__hero_video.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% assign breadcrumbs_enabled = site.breadcrumbs %}
{% if page.breadcrumbs != null %}
{% assign breadcrumbs_enabled = page.breadcrumbs %}
{% endif %}
{% if page.url != "/" and breadcrumbs_enabled %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
@@ -17,8 +21,8 @@ layout: default
<div id="main" role="main">
{% include sidebar.html %}
<article class="page" itemscope itemtype="https://schema.org/CreativeWork">
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
<article class="page" itemscope itemtype="https://schema.org/CreativeWork"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>
{% if page.title %}<meta itemprop="headline" content="{{ page.title | replace: '|', '&#124;' | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date_to_xmlschema }}">{% endif %}
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date_to_xmlschema }}">{% endif %}
@@ -26,7 +30,11 @@ layout: default
<div class="page__inner-wrap">
{% unless page.header.overlay_color or page.header.overlay_image %}
<header>
{% if page.title %}<h1 id="page-title" class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
{% if page.title -%}
<h1 id="page-title" class="page__title" itemprop="headline">
<a href="{{ page.url | absolute_url }}" itemprop="url">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</a>
</h1>
{%- endif %}
{% include page__meta.html %}
</header>
{% endunless %}
@@ -57,33 +65,23 @@ layout: default
{% include post_pagination.html %}
</div>
{% if jekyll.environment == 'production' and site.comments.provider and page.comments %}
{% include comments.html %}
{% if site.comments.provider and page.comments %}
{% if jekyll.environment == 'production' %}
{% include comments.html %}
{% else %}
<p>
Comments are configured with provider: <strong>{{ site.comments.provider }}</strong>,
but are disabled in non-production environments.
</p>
{% endif %}
{% endif %}
</article>
{% comment %}<!-- only show related on a post page when `related: true` -->{% endcomment %}
{% if page.id and page.related and site.related_posts.size > 0 %}
<div class="page__related">
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
<div class="grid__wrapper">
{% for post in site.related_posts limit:4 %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
{% include page__related.html posts=site.related_posts %}
{% comment %}<!-- otherwise show recent posts if no related when `related: true` -->{% endcomment %}
{% elsif page.id and page.related %}
<div class="page__related">
<h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
<div class="grid__wrapper">
{% for post in site.posts limit:4 %}
{% if post.id == page.id %}
{% continue %}
{% endif %}
{% include archive-single.html type="grid" %}
{% endfor %}
</div>
</div>
{% include page__related.html posts=site.posts %}
{% endif %}
</div>
+1 -1
View File
@@ -9,7 +9,7 @@ layout: default
{% endif %}
<div id="main" role="main">
<article class="splash" itemscope itemtype="https://schema.org/CreativeWork">
<article class="splash" itemscope itemtype="https://schema.org/CreativeWork"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>
{% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
{% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date_to_xmlschema }}">{% endif %}
+1 -37
View File
@@ -4,40 +4,4 @@ layout: archive
{{ content }}
{% assign tags_max = 0 %}
{% for tag in site.tags %}
{% if tag[1].size > tags_max %}
{% assign tags_max = tag[1].size %}
{% endif %}
{% endfor %}
<ul class="taxonomy__index">
{% for i in (1..tags_max) reversed %}
{% for tag in site.tags %}
{% if tag[1].size == i %}
<li>
<a href="#{{ tag[0] | slugify }}">
<strong>{{ tag[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
{% assign entries_layout = page.entries_layout | default: 'list' %}
{% for i in (1..tags_max) reversed %}
{% for tag in site.tags %}
{% if tag[1].size == i %}
<section id="{{ tag[0] | slugify | downcase }}" class="taxonomy__section">
<h2 class="archive__subtitle">{{ tag[0] }}</h2>
<div class="entries-{{ entries_layout }}">
{% for post in tag.last %}
{% include archive-single.html type=entries_layout %}
{% endfor %}
</div>
<a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
</section>
{% endif %}
{% endfor %}
{% endfor %}
{% include posts-taxonomy.html taxonomies=site.tags %}
+2 -5
View File
@@ -1,8 +1,5 @@
/*!
* Minimal Mistakes Jekyll Theme 4.22.0 by Michael Rose
* Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes
* Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
*/
/* Copyright comment */
@import "minimal-mistakes/copyright";
/* Variables */
@import "minimal-mistakes/variables";
+51 -83
View File
@@ -7,14 +7,14 @@
margin-bottom: 2em;
@include breakpoint($large) {
float: right;
float: inline-end;
width: calc(100% - #{$right-sidebar-width-narrow});
padding-right: $right-sidebar-width-narrow;
padding-inline-end: $right-sidebar-width-narrow;
}
@include breakpoint($x-large) {
width: calc(100% - #{$right-sidebar-width});
padding-right: $right-sidebar-width;
padding-inline-end: $right-sidebar-width;
}
}
@@ -53,10 +53,7 @@
a[rel="permalink"]::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
inset: 0;
}
a + a {
@@ -98,14 +95,14 @@
.archive__item-caption {
position: absolute;
bottom: 0;
right: 0;
inset-inline-end: 0;
margin: 0 auto;
padding: 2px 5px;
color: #fff;
font-family: $caption-font-family;
font-size: $type-size-8;
background: #000;
text-align: right;
text-align: end;
z-index: 5;
opacity: 0.5;
border-radius: $border-radius 0 0 0;
@@ -140,11 +137,11 @@
/* extend grid elements to the right */
@include breakpoint($large) {
margin-right: -1 * $right-sidebar-width-narrow;
margin-inline-end: -1 * $right-sidebar-width-narrow;
}
@include breakpoint($x-large) {
margin-right: -1 * $right-sidebar-width;
margin-inline-end: -1 * $right-sidebar-width;
}
}
}
@@ -153,23 +150,22 @@
margin-bottom: 2em;
@include breakpoint($small) {
float: left;
float: inline-start;
width: span(5 of 10);
&:nth-child(2n + 1) {
clear: both;
margin-left: 0;
margin-inline-start: 0;
}
&:nth-child(2n + 2) {
clear: none;
margin-left: gutter(of 10);
margin-inline-start: gutter(of 10);
}
}
@include breakpoint($medium) {
margin-left: 0; /* override margin*/
margin-right: 0; /* override margin*/
margin-inline: 0; /* override margin*/
width: span(3 of 12);
&:nth-child(2n + 1) {
@@ -182,17 +178,17 @@
&:nth-child(4n + 2) {
clear: none;
margin-left: gutter(1 of 12);
margin-inline-start: gutter(1 of 12);
}
&:nth-child(4n + 3) {
clear: none;
margin-left: gutter(1 of 12);
margin-inline-start: gutter(1 of 12);
}
&:nth-child(4n + 4) {
clear: none;
margin-left: gutter(1 of 12);
margin-inline-start: gutter(1 of 12);
}
}
@@ -254,23 +250,23 @@
font-size: 1.125em;
@include breakpoint($small) {
float: left;
float: inline-start;
margin-bottom: 0;
width: span(4 of 12);
&:nth-child(3n + 1) {
clear: both;
margin-left: 0;
margin-inline-start: 0;
}
&:nth-child(3n + 2) {
clear: none;
margin-left: gutter(of 12);
margin-inline-start: gutter(of 12);
}
&:nth-child(3n + 3) {
clear: none;
margin-left: gutter(of 12);
margin-inline-start: gutter(of 12);
}
.feature__item-teaser {
@@ -280,114 +276,89 @@
}
.archive__item-body {
padding-left: gutter(1 of 12);
padding-right: gutter(1 of 12);
padding-inline: gutter(1 of 12);
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
inset: 0;
}
&--left {
&--left, &--right {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
margin-inline: 0;
width: 100%;
clear: both;
font-size: 1.125em;
.archive__item {
float: left;
a.btn::before {
content: '';
position: absolute;
inset: 0;
}
.archive__item-teaser {
margin-bottom: 2em;
}
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
&--left {
float: inline-start;
.archive__item {
float: inline-start;
}
@include breakpoint($small) {
.archive__item-teaser {
float: left;
float: inline-start;
width: span(5 of 12);
}
.archive__item-body {
float: right;
padding-left: gutter(0.5 of 12);
padding-right: gutter(1 of 12);
float: inline-end;
width: span(7 of 12);
padding-inline-start: gutter(0.5 of 12);
padding-inline-end: gutter(1 of 12);
}
}
}
&--right {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
width: 100%;
clear: both;
font-size: 1.125em;
float: inline-end;
.archive__item {
float: left;
}
.archive__item-teaser {
margin-bottom: 2em;
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
float: inline-end;
}
@include breakpoint($small) {
text-align: right;
text-align: end;
.archive__item-teaser {
float: right;
float: inline-end;
width: span(5 of 12);
}
.archive__item-body {
float: left;
float: inline-start;
width: span(7 of 12);
padding-left: gutter(0.5 of 12);
padding-right: gutter(1 of 12);
padding-inline-start: gutter(1 of 12);
padding-inline-end: gutter(0.5 of 12);
}
}
}
&--center {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
float: inline-start;
margin-inline: 0;
width: 100%;
clear: both;
font-size: 1.125em;
.archive__item {
float: left;
float: inline-start;
width: 100%;
}
@@ -398,10 +369,7 @@
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
inset: 0;
}
@include breakpoint($small) {
@@ -442,14 +410,14 @@
Wide Pages
========================================================================== */
.wide {
.wide {
.archive {
@include breakpoint($large) {
padding-right: 0;
padding-inline-end: 0;
}
@include breakpoint($x-large) {
padding-right: 0;
padding-inline-end: 0;
}
}
}
+6 -24
View File
@@ -107,18 +107,18 @@ abbr[data-original-title] {
/* blockquotes */
blockquote {
margin: 2em 1em 2em 0;
padding-left: 1em;
padding-right: 1em;
margin-block: 2em;
margin-inline-end: 1em;
padding-inline: 1em;
font-style: italic;
border-left: 0.25em solid $primary-color;
border-inline-start: 0.25em solid $primary-color;
cite {
font-style: italic;
&:before {
&::before {
content: "\2014";
padding-right: 5px;
padding-inline-end: 5px;
}
}
}
@@ -160,24 +160,6 @@ pre {
overflow-x: auto; /* add scrollbars to wide code blocks*/
}
p > code,
a > code,
li > code,
figcaption > code,
td > code {
padding-top: 0.1rem;
padding-bottom: 0.1rem;
font-size: 0.8em;
background: $code-background-color;
border-radius: $border-radius;
&:before,
&:after {
letter-spacing: -0.2em;
content: "\00a0"; /* non-breaking space*/
}
}
/* horizontal rule */
hr {
+5 -4
View File
@@ -21,11 +21,11 @@
cursor: pointer;
.icon {
margin-right: 0.5em;
margin-inline-end: 0.5em;
}
.icon + .hidden {
margin-left: -0.5em; /* override for hidden text*/
margin-inline-start: -0.5em; /* override for hidden text*/
}
/* button colors */
@@ -39,7 +39,8 @@
(info, $info-color),
(facebook, $facebook-color),
(twitter, $twitter-color),
(linkedin, $linkedin-color);
(linkedin, $linkedin-color),
(mastodon, $mastodon-color);
@each $buttoncolor, $color in $buttoncolors {
&--#{$buttoncolor} {
@@ -94,4 +95,4 @@
&--small {
font-size: $type-size-7;
}
}
}
+6
View File
@@ -0,0 +1,6 @@
/*!
* Minimal Mistakes Jekyll Theme 4.27.0 by Michael Rose
* Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
* Free for personal and commercial use under the MIT license
* https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
*/
+6 -8
View File
@@ -4,9 +4,8 @@
.page__footer {
@include clearfix;
float: left;
margin-left: 0;
margin-right: 0;
float: inline-start;
margin-inline: 0;
width: 100%;
margin-top: 3em;
color: $muted-text-color;
@@ -18,8 +17,7 @@
footer {
@include clearfix;
margin-left: auto;
margin-right: auto;
margin-inline: auto;
margin-top: 2em;
max-width: 100%;
padding: 0 1em 2em;
@@ -67,13 +65,13 @@
text-transform: uppercase;
}
li + li:before {
li + li::before {
content: "";
padding-right: 5px;
padding-inline-end: 5px;
}
a {
padding-right: 10px;
padding-inline-end: 10px;
font-weight: bold;
}
+20 -65
View File
@@ -3,7 +3,7 @@
========================================================================== */
form {
margin: 0 0 5px 0;
margin-bottom: 5px;
padding: 1em;
background-color: $form-background-color;
@@ -17,7 +17,7 @@ form {
display: block;
width: 100%;
margin-bottom: 5px * 2;
*margin-left: -7px;
margin-inline-start: -7px;
padding: 0;
color: $text-color;
border: 0;
@@ -45,7 +45,6 @@ button,
select,
textarea {
vertical-align: baseline;
*vertical-align: middle;
}
input,
@@ -102,7 +101,6 @@ input[type="radio"] {
height: auto;
padding: 0;
margin: 3px 0;
*margin-top: 0;
line-height: normal;
cursor: pointer;
border-radius: 0;
@@ -114,8 +112,6 @@ input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
*width: 13px;
*height: 13px;
}
input[type="image"] {
@@ -138,12 +134,6 @@ input[type="submit"] {
width: auto;
height: auto;
cursor: pointer;
*overflow: visible;
}
select,
input[type="file"] {
*margin-top: 4px;
}
select {
@@ -173,14 +163,14 @@ input[type="hidden"] {
.radio,
.checkbox {
padding-left: 18px;
padding-inline-start: 18px;
font-weight: normal;
}
.radio input[type="radio"],
.checkbox input[type="checkbox"] {
float: left;
margin-left: -18px;
float: inline-start;
margin-inline-start: -18px;
}
.radio.inline,
@@ -193,7 +183,7 @@ input[type="hidden"] {
.radio.inline + .radio.inline,
.checkbox.inline + .checkbox.inline {
margin-left: 10px;
margin-inline-start: 10px;
}
/*
@@ -248,7 +238,7 @@ select:focus {
.help-inline {
display: inline-block;
vertical-align: middle;
padding-left: 5px;
padding-inline-start: 5px;
}
/*
@@ -279,16 +269,16 @@ select:focus {
.form-inline .radio,
.form-inline .checkbox,
.form-inline .radio {
padding-left: 0;
padding-inline-start: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
float: left;
margin-left: 0;
margin-right: 3px;
float: inline-start;
margin-inline-start: 0;
margin-inline-end: 3px;
}
/*
@@ -303,8 +293,7 @@ select:focus {
}
.form-search .search-query {
padding-left: 14px;
padding-right: 14px;
padding-inline: 14px;
margin-bottom: 0;
border-radius: 14px;
}
@@ -316,23 +305,23 @@ select:focus {
.form-search .radio,
.form-search .checkbox,
.form-inline .radio {
padding-left: 0;
padding-inline-start: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"] {
float: left;
margin-left: 0;
margin-right: 3px;
float: inline-start;
margin-inline-start: 0;
margin-inline-end: 3px;
}
/*
.form--loading
========================================================================== */
.form--loading:before {
.form--loading::before {
content: "";
}
@@ -340,10 +329,10 @@ select:focus {
display: block;
}
.form:before {
.form::before {
position: absolute;
top: 0;
left: 0;
inset-inline-start: 0;
width: 100%;
height: 100%;
background-color: rgba(255, 255, 255, 0.7);
@@ -354,40 +343,6 @@ select:focus {
display: none;
position: absolute;
top: 50%;
left: 50%;
inset-inline-start: 50%;
z-index: 11;
}
/*
Google search form
========================================================================== */
#goog-fixurl {
ul {
list-style: none;
margin-left: 0;
padding-left: 0;
li {
list-style-type: none;
}
}
}
#goog-wm-qt {
width: auto;
margin-right: 10px;
margin-bottom: 20px;
padding: 8px 20px;
display: inline-block;
font-size: $type-size-6;
background-color: #fff;
color: #000;
border-width: 2px !important;
border-style: solid !important;
border-color: $border-color;
border-radius: $border-radius;
}
#goog-wm-sb {
@extend .btn;
}
+6 -8
View File
@@ -13,8 +13,7 @@
&__inner-wrap {
@include clearfix;
margin-left: auto;
margin-right: auto;
margin-inline: auto;
padding: 1em;
max-width: 100%;
display: -webkit-box;
@@ -59,17 +58,16 @@
}
.masthead__menu {
float: left;
margin-left: 0;
margin-right: 0;
float: inline-start;
margin-inline: 0;
width: 100%;
clear: both;
.site-nav {
margin-left: 0;
margin-inline-start: 0;
@include breakpoint($small) {
float: right;
float: inline-end;
}
}
@@ -87,7 +85,7 @@
white-space: nowrap;
&--lg {
padding-right: 2em;
padding-inline-end: 2em;
font-weight: 700;
}
}
+39 -41
View File
@@ -10,8 +10,7 @@
@include clearfix;
margin: 0 auto;
max-width: 100%;
padding-left: 1em;
padding-right: 1em;
padding-inline: 1em;
font-family: $sans-serif;
-webkit-animation: $intro-transition;
animation: $intro-transition;
@@ -28,7 +27,7 @@
font-size: $type-size-6;
@include breakpoint($large) {
float: right;
float: inline-end;
width: calc(100% - #{$right-sidebar-width-narrow});
}
@@ -52,7 +51,7 @@
.pagination {
@include clearfix();
float: left;
float: inline-start;
margin-top: 1em;
padding-top: 1em;
width: 100%;
@@ -66,8 +65,8 @@
li {
display: block;
float: left;
margin-left: -1px;
float: inline-start;
margin-inline-start: -1px;
a {
display: block;
@@ -101,18 +100,18 @@
}
&:first-child {
margin-left: 0;
margin-inline-start: 0;
a {
border-top-left-radius: $border-radius;
border-bottom-left-radius: $border-radius;
border-start-start-radius: $border-radius;
border-end-start-radius: $border-radius;
}
}
&:last-child {
a {
border-top-right-radius: $border-radius;
border-bottom-right-radius: $border-radius;
border-start-end-radius: $border-radius;
border-end-end-radius: $border-radius;
}
}
}
@@ -121,7 +120,7 @@
&--pager {
display: block;
padding: 1em 2em;
float: left;
float: inline-start;
width: 50%;
font-family: $sans-serif;
font-size: $type-size-5;
@@ -137,14 +136,14 @@
}
&:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-start-end-radius: 0;
border-end-end-radius: 0;
}
&:last-child {
margin-left: -1px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
margin-inline-start: -1px;
border-start-start-radius: 0;
border-end-start-radius: 0;
}
&.disabled {
@@ -192,16 +191,16 @@
}
&.site-logo {
margin-left: 0;
margin-right: 0.5rem;
margin-inline-start: 0;
margin-inline-end: 0.5rem;
}
&.site-title {
margin-left: 0;
margin-inline-start: 0;
}
}
img{
img {
-webkit-transition: none;
transition: none;
}
@@ -240,7 +239,7 @@
&:before {
content: "";
position: absolute;
left: 0;
inset-inline-start: 0;
bottom: 0;
height: 4px;
background: $primary-color;
@@ -262,7 +261,7 @@
.hidden-links {
position: absolute;
top: 100%;
right: 0;
inset-inline-end: 0;
margin-top: 15px;
padding: 5px;
border: 1px solid $border-color;
@@ -287,11 +286,11 @@
}
}
&:before {
&::before {
content: "";
position: absolute;
top: -11px;
right: 10px;
inset-inline-end: 10px;
width: 0;
border-style: solid;
border-width: 0 10px 10px;
@@ -300,11 +299,11 @@
z-index: 0;
}
&:after {
&::after {
content: "";
position: absolute;
top: -10px;
right: 10px;
inset-inline-end: 10px;
width: 0;
border-style: solid;
border-width: 0 10px 10px;
@@ -361,11 +360,11 @@
transition: 0.2s ease-out;
cursor: pointer;
&:before,
&:after {
&::before,
&::after {
content: "";
position: absolute;
right: 1em;
inset-inline-end: 1em;
top: 1.25em;
width: 0.75em;
height: 0.125em;
@@ -446,9 +445,8 @@
}
.active {
margin-left: -0.5em;
padding-left: 0.5em;
padding-right: 0.5em;
margin-inline-start: -0.5em;
padding-inline: 0.5em;
font-weight: bold;
}
@@ -516,8 +514,8 @@
color: #fff;
font-size: $type-size-6;
background: $primary-color;
border-top-left-radius: $border-radius;
border-top-right-radius: $border-radius;
border-start-start-radius: $border-radius;
border-start-end-radius: $border-radius;
}
// Scrollspy marks toc items as .active when they are in focus
@@ -551,23 +549,23 @@
}
li ul > li a {
padding-left: 1.25rem;
padding-inline-start: 1.25rem;
font-weight: normal;
}
li ul li ul > li a {
padding-left: 1.75rem;
padding-inline-start: 1.75rem;
}
li ul li ul li ul > li a {
padding-left: 2.25rem;
padding-inline-start: 2.25rem;
}
li ul li ul li ul li ul > li a {
padding-left: 2.75rem;
padding-inline-start: 2.75rem;
}
li ul li ul li ul li ul li ul > li a {
padding-left: 3.25rem
padding-inline-start: 3.25rem;
}
}
+9 -5
View File
@@ -13,11 +13,11 @@
@mixin notice($notice-color) {
margin: 2em 0 !important; /* override*/
padding: 1em;
color: $dark-gray;
color: $text-color;
font-family: $global-font-family;
font-size: $type-size-6 !important;
text-indent: initial; /* override*/
background-color: mix(#fff, $notice-color, 90%);
background-color: mix($background-color, $notice-color, $notice-background-mix);
border-radius: $border-radius;
box-shadow: 0 1px 1px rgba($notice-color, 0.25);
@@ -46,15 +46,19 @@
}
a {
color: $notice-color;
color: mix(#000, $notice-color, 10%);
&:hover {
color: mix(#000, $notice-color, 40%);
color: mix(#000, $notice-color, 50%);
}
}
@at-root #{selector-unify(&, "blockquote")} {
border-inline-start-color: mix(#000, $notice-color, 10%);
}
code {
background-color: mix(#fff, $notice-color, 95%)
background-color: mix($background-color, $notice-color, $code-notice-background-mix)
}
pre code {
+47 -45
View File
@@ -4,10 +4,8 @@
#main {
@include clearfix;
margin-left: auto;
margin-right: auto;
padding-left: 1em;
padding-right: 1em;
margin-inline: auto;
padding-inline: 1em;
-webkit-animation: $intro-transition;
animation: $intro-transition;
max-width: 100%;
@@ -37,21 +35,20 @@ body {
.page {
@include breakpoint($large) {
float: right;
float: inline-end;
width: calc(100% - #{$right-sidebar-width-narrow});
padding-right: $right-sidebar-width-narrow;
padding-inline-end: $right-sidebar-width-narrow;
}
@include breakpoint($x-large) {
width: calc(100% - #{$right-sidebar-width});
padding-right: $right-sidebar-width;
padding-inline-end: $right-sidebar-width;
}
.page__inner-wrap {
float: left;
float: inline-start;
margin-top: 1em;
margin-left: 0;
margin-right: 0;
margin-inline: 0;
width: 100%;
clear: both;
@@ -59,9 +56,8 @@ body {
.page__meta,
.page__share {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
float: inline-start;
margin-inline: 0;
width: 100%;
clear: both;
}
@@ -72,6 +68,11 @@ body {
margin-top: 0;
line-height: 1;
a {
color: $text-color;
text-decoration: none;
}
& + .page__meta {
margin-top: -0.5em;
}
@@ -91,7 +92,7 @@ body {
h1, h2, h3, h4, h5, h6 {
.header-link {
position: relative;
left: 0.5em;
inset-inline-start: 0.5em;
opacity: 0;
font-size: 0.8em;
-webkit-transition: opacity 0.2s ease-in-out 0.1s;
@@ -134,6 +135,20 @@ body {
}
}
:not(pre) > code {
padding-top: 0.1rem;
padding-bottom: 0.1rem;
font-size: 0.8em;
background: $code-background-color;
border-radius: $border-radius;
&::before,
&::after {
letter-spacing: -0.2em;
content: "\00a0"; /* non-breaking space*/
}
}
dt {
margin-top: 1em;
font-family: $sans-serif;
@@ -141,7 +156,7 @@ body {
}
dd {
margin-left: 1em;
margin-inline-start: 1em;
font-family: $sans-serif;
font-size: $type-size-6;
}
@@ -153,7 +168,7 @@ body {
/* blockquote citations */
blockquote + .small {
margin-top: -1.5em;
padding-left: 1.25rem;
padding-inline-start: 1.25rem;
}
}
@@ -184,8 +199,7 @@ body {
}
.wrapper {
padding-left: 1em;
padding-right: 1em;
padding-inline: 1em;
@include breakpoint($x-large) {
max-width: $x-large;
@@ -223,14 +237,14 @@ body {
.page__hero-caption {
position: absolute;
bottom: 0;
right: 0;
inset-inline-end: 0;
margin: 0 auto;
padding: 2px 5px;
color: #fff;
font-family: $caption-font-family;
font-size: $type-size-7;
background: #000;
text-align: right;
text-align: end;
z-index: 5;
opacity: 0.5;
border-radius: $border-radius 0 0 0;
@@ -301,8 +315,7 @@ body {
.page__meta-sep::before {
content: "\2022";
padding-left: 0.5em;
padding-right: 0.5em;
padding-inline: 0.5em;
}
/*
@@ -315,13 +328,13 @@ body {
}
strong {
margin-right: 10px;
margin-inline-end: 10px;
}
}
.page__taxonomy-item {
display: inline-block;
margin-right: 5px;
margin-inline-end: 5px;
margin-bottom: 8px;
padding: 5px 10px;
text-decoration: none;
@@ -398,7 +411,7 @@ body {
color: $muted-text-color;
font-size: 0.6em;
text-transform: uppercase;
text-align: right;
text-align: end;
text-decoration: none;
}
@@ -407,9 +420,8 @@ body {
========================================================================== */
.page__comments {
float: left;
margin-left: 0;
margin-right: 0;
float: inline-start;
margin-inline: 0;
width: 100%;
clear: both;
}
@@ -451,7 +463,7 @@ body {
}
.comment__avatar-wrapper {
float: left;
float: inline-start;
width: 60px;
height: 60px;
@@ -475,7 +487,7 @@ body {
}
.comment__content-wrapper {
float: right;
float: inline-end;
width: calc(100% - 60px);
@include breakpoint($large) {
@@ -506,13 +518,13 @@ body {
.page__related {
@include clearfix();
float: left;
float: inline-start;
margin-top: 2em;
padding-top: 1em;
border-top: 1px solid $border-color;
@include breakpoint($large) {
float: right;
float: inline-end;
width: calc(100% - #{$right-sidebar-width-narrow});
}
@@ -537,23 +549,13 @@ body {
========================================================================== */
.wide {
.page {
.page, .page__related {
@include breakpoint($large) {
padding-right: 0;
padding-inline-end: 0;
}
@include breakpoint($x-large) {
padding-right: 0;
}
}
.page__related {
@include breakpoint($large) {
padding-right: 0;
}
@include breakpoint($x-large) {
padding-right: 0;
padding-inline-end: 0;
}
}
}
+5 -8
View File
@@ -8,18 +8,18 @@ html {
/* apply a natural box layout model to all elements */
box-sizing: border-box;
background-color: $background-color;
font-size: 16px;
font-size: $doc-font-size;
@include breakpoint($medium) {
font-size: 18px;
font-size: $doc-font-size-medium;
}
@include breakpoint($large) {
font-size: 20px;
font-size: $doc-font-size-large;
}
@include breakpoint($x-large) {
font-size: 22px;
font-size: $doc-font-size-x-large;
}
-webkit-text-size-adjust: 100%;
@@ -64,8 +64,6 @@ audio,
canvas,
video {
display: inline-block;
*display: inline;
*zoom: 1;
}
/* Prevents modern browsers from displaying 'audio' without controls */
@@ -142,7 +140,6 @@ textarea {
button,
input {
*overflow: visible; /* inner spacing ie IE6/7*/
line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/
}
@@ -184,4 +181,4 @@ input[type="search"]::-webkit-search-cancel-button {
textarea {
overflow: auto; /* remove vertical scrollbar in IE6-9*/
vertical-align: top; /* readability and alignment cross-browser*/
}
}
+3 -6
View File
@@ -9,8 +9,7 @@
}
.search__toggle {
margin-left: 1rem;
margin-right: 1rem;
margin-inline: 1rem;
height: $nav-toggle-height;
border: 0;
outline: none;
@@ -38,10 +37,8 @@
&__inner-wrap {
width: 100%;
margin-left: auto;
margin-right: auto;
padding-left: 1em;
padding-right: 1em;
margin-inline: auto;
padding-inline: 1em;
-webkit-animation: $intro-transition;
animation: $intro-transition;
-webkit-animation-delay: 0.15s;
+30 -27
View File
@@ -17,7 +17,7 @@
// }
@include breakpoint($large) {
float: left;
float: inline-start;
width: calc(#{$right-sidebar-width-narrow} - 1em);
opacity: 0.75;
-webkit-transition: opacity 0.2s ease-in-out;
@@ -77,10 +77,10 @@
@include breakpoint($large) {
position: absolute;
top: 0;
right: 0;
inset-inline-end: 0;
width: $right-sidebar-width-narrow;
margin-right: -1 * $right-sidebar-width-narrow;
padding-left: 1em;
margin-inline-end: -1 * $right-sidebar-width-narrow;
padding-inline-start: 1em;
z-index: 10;
&.sticky {
@@ -88,25 +88,32 @@
position: -webkit-sticky;
position: sticky;
top: 2em;
float: right;
float: inline-end;
.toc {
.toc__menu {
overflow-y: auto;
max-height: calc(100vh - 7em);
}
}
}
}
@include breakpoint($x-large) {
width: $right-sidebar-width;
margin-right: -1 * $right-sidebar-width;
margin-inline-end: -1 * $right-sidebar-width;
}
}
.splash .sidebar__right {
@include breakpoint($large) {
position: relative;
float: right;
margin-right: 0;
float: inline-end;
margin-inline-end: 0;
}
@include breakpoint($x-large) {
margin-right: 0;
margin-inline-end: 0;
}
}
@@ -140,15 +147,13 @@
.author__content {
display: table-cell;
vertical-align: top;
padding-left: 15px;
padding-right: 25px;
padding-inline: 15px 25px;
line-height: 1;
@include breakpoint($large) {
display: block;
width: 100%;
padding-left: 0;
padding-right: 0;
padding-inline: 0;
}
a {
@@ -195,7 +200,7 @@
.author__urls {
span.label {
padding-left: 5px;
padding-inline-start: 5px;
}
}
@@ -212,7 +217,7 @@
content: '';
position: fixed;
top: 0;
left: 0;
inset-inline-start: 0;
width: 100%;
height: 100%;
pointer-events: none;
@@ -234,7 +239,7 @@
.author__urls {
display: none;
position: absolute;
right: 0;
inset-inline-end: 0;
margin-top: 15px;
padding: 10px;
list-style-type: none;
@@ -258,12 +263,12 @@
box-shadow: none;
}
&:before {
&::before {
display: block;
content: "";
position: absolute;
top: -11px;
left: calc(50% - 10px);
inset-inline-start: calc(50% - 10px);
width: 0;
border-style: solid;
border-width: 0 10px 10px;
@@ -280,7 +285,7 @@
content: "";
position: absolute;
top: -10px;
left: calc(50% - 10px);
inset-inline-start: calc(50% - 10px);
width: 0;
border-style: solid;
border-width: 0 10px 10px;
@@ -304,9 +309,8 @@
a {
display: block;
margin-bottom: 5px;
padding-right: 5px;
padding-top: 2px;
padding-bottom: 2px;
padding-block: 2px;
padding-inline-end: 5px;
color: inherit;
font-size: $type-size-5;
text-decoration: none;
@@ -327,10 +331,10 @@
@include breakpoint($large) {
position: initial;
top: initial;
right: initial;
inset-inline-end: initial;
width: initial;
margin-right: initial;
padding-left: initial;
margin-inline-end: initial;
padding-inline-start: initial;
z-index: initial;
&.sticky {
@@ -340,7 +344,6 @@
@include breakpoint($x-large) {
width: initial;
margin-right: initial;
margin-inline-end: initial;
}
}
+10 -5
View File
@@ -13,6 +13,11 @@ figure.highlight {
line-height: 1.8;
border-radius: $border-radius;
[dir=rtl] & {
direction: ltr;
text-align: start;
}
> pre,
pre.highlight {
margin: 0;
@@ -33,17 +38,17 @@ figure.highlight {
/* line numbers*/
&.gutter,
&.rouge-gutter {
padding-right: 1em;
padding-inline-end: 1em;
width: 1em;
color: $base04;
border-right: 1px solid $base04;
text-align: right;
border-inline-end: 1px solid $base04;
text-align: end;
}
/* code */
&.code,
&.rouge-code {
padding-left: 1em;
padding-inline-start: 1em;
}
}
@@ -321,4 +326,4 @@ figure.highlight {
th, td {
border-bottom: 0;
}
}
}
+2 -2
View File
@@ -24,7 +24,7 @@ thead {
th {
padding: 0.5em;
font-weight: bold;
text-align: left;
text-align: start;
}
td {
@@ -36,4 +36,4 @@ tr,
td,
th {
vertical-align: middle;
}
}
+122 -147
View File
@@ -83,20 +83,11 @@ body:hover .visually-hidden button {
Type
========================================================================== */
.text-left {
text-align: left;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.text-justify {
text-align: justify;
$text-alignments: left, right, start, end, center, justify;
@each $alignment in $text-alignments {
.text-#{$alignment} {
text-align: $alignment;
}
}
.text-nowrap {
@@ -108,20 +99,20 @@ body:hover .visually-hidden button {
========================================================================== */
.task-list {
padding:0;
padding: 0;
li {
list-style-type: none;
}
.task-list-item-checkbox {
margin-right: 0.5em;
margin-inline-end: 0.5em;
opacity: 1;
}
}
.task-list .task-list {
margin-left: 1em;
margin-inline-start: 1em;
}
/*
@@ -135,8 +126,7 @@ body:hover .visually-hidden button {
}
.wrapper {
margin-left: auto;
margin-right: auto;
margin-inline: auto;
width: 100%;
}
@@ -148,8 +138,7 @@ body:hover .visually-hidden button {
.align-left {
display: block;
margin-left: auto;
margin-right: auto;
margin-inline: auto;
@include breakpoint($small) {
float: left;
@@ -161,8 +150,7 @@ body:hover .visually-hidden button {
.align-right {
display: block;
margin-left: auto;
margin-right: auto;
margin-inline: auto;
@include breakpoint($small) {
float: right;
@@ -174,15 +162,14 @@ body:hover .visually-hidden button {
.align-center {
display: block;
margin-left: auto;
margin-right: auto;
margin-inline: auto;
}
/* file page content container */
.full {
@include breakpoint($large) {
margin-right: -1 * span(2.5 of 12) !important;
margin-inline-end: -1 * span(2.5 of 12) !important;
}
}
@@ -211,118 +198,35 @@ body:hover .visually-hidden button {
color: $text-color;
}
.fa-behance,
.fa-behance-square {
color: $behance-color;
}
.fa-bitbucket {
color: $bitbucket-color;
}
.fa-dribbble,
.fa-dribble-square {
color: $dribbble-color;
}
.fa-facebook,
.fa-facebook-square,
.fa-facebook-f {
color: $facebook-color;
}
.fa-flickr {
color: $flickr-color;
}
.fa-foursquare {
color: $foursquare-color;
}
.fa-github,
.fa-github-alt,
.fa-github-square {
color: $github-color;
}
.fa-gitlab {
color: $gitlab-color;
}
.fa-instagram {
color: $instagram-color;
}
.fa-keybase {
color: $keybase-color;
}
.fa-lastfm,
.fa-lastfm-square {
color: $lastfm-color;
}
.fa-linkedin,
.fa-linkedin-in {
color: $linkedin-color;
}
.fa-mastodon,
.fa-mastodon-square {
color: $mastodon-color;
}
.fa-pinterest,
.fa-pinterest-p,
.fa-pinterest-square {
color: $pinterest-color;
}
.fa-reddit {
color: $reddit-color;
}
.fa-rss,
.fa-rss-square {
color: $rss-color;
}
.fa-soundcloud {
color: $soundcloud-color;
}
.fa-stack-exchange,
.fa-stack-overflow {
color: $stackoverflow-color;
}
.fa-tumblr,
.fa-tumblr-square {
color: $tumblr-color;
}
.fa-twitter,
.fa-twitter-square {
color: $twitter-color;
}
.fa-vimeo,
.fa-vimeo-square,
.fa-vimeo-v {
color: $vimeo-color;
}
.fa-vine {
color: $vine-color;
}
.fa-youtube {
color: $youtube-color;
}
.fa-xing,
.fa-xing-square {
color: $xing-color;
@each $color, $icons in (
$behance-color: ".fa-behance, .fa-behance-square",
$bitbucket-color: ".fa-bitbucket",
$dribbble-color: ".fa-dribbble, .fa-dribbble-square",
$facebook-color: ".fa-facebook, .fa-facebook-square, .fa-facebook-f",
$flickr-color: ".fa-flickr",
$foursquare-color: ".fa-foursquare",
$github-color: ".fa-github, .fa-github-alt, .fa-github-square",
$gitlab-color: ".fa-gitlab",
$instagram-color: ".fa-instagram",
$keybase-color: ".fa-keybase",
$lastfm-color: ".fa-lastfm, .fa-lastfm-square",
$linkedin-color: ".fa-linkedin, .fa-linkedin-in",
$mastodon-color: ".fa-mastodon, .fa-mastodon-square",
$pinterest-color: ".fa-pinterest, .fa-pinterest-p, .fa-pinterest-square",
$reddit-color: ".fa-reddit",
$rss-color: ".fa-rss, .fa-rss-square",
$soundcloud-color: ".fa-soundcloud",
$stackoverflow-color: ".fa-stack-exchange, .fa-stack-overflow",
$tumblr-color: ".fa-tumblr, .fa-tumblr-square",
$twitter-color: ".fa-twitter, .fa-twitter-square",
$vimeo-color: ".fa-vimeo, .fa-vimeo-square, .fa-vimeo-v",
$vine-color: ".fa-vine",
$xing-color: ".fa-xing, .fa-xing-square",
$youtube-color: ".fa-youtube",
) {
#{$icons} {
color: $color;
}
}
}
@@ -339,11 +243,11 @@ body:hover .visually-hidden button {
-webkit-transition: 0.3s;
transition: 0.3s;
&:before,
&:after {
&::before,
&::after {
content: "";
position: absolute;
left: 0;
inset-inline-start: 0;
width: $navicon-width;
height: $navicon-height;
background: $primary-color;
@@ -391,7 +295,7 @@ body:hover .visually-hidden button {
content: '';
position: fixed;
top: 0;
left: 0;
inset-inline-start: 0;
width: 100%;
height: 100%;
opacity: 0;
@@ -465,11 +369,11 @@ body:hover .visually-hidden button {
overflow: hidden;
position: relative;
&:before {
&::before {
position: absolute;
content: "";
top: 0;
left: 0;
inset-inline-start: 0;
width: 100%;
height: 100%;
z-index: 999;
@@ -486,8 +390,8 @@ body:hover .visually-hidden button {
position: fixed;
width: 300px;
top: 50%;
left: 50%;
margin-left: -150px;
inset-inline-start: 50%;
margin-inline-start: -150px;
margin-top: -150px;
min-height: 0;
z-index: 9999;
@@ -578,7 +482,7 @@ a.reversefootnote {
embed {
position: absolute;
top: 0;
left: 0;
inset-inline-start: 0;
width: 100%;
height: 100%;
}
@@ -591,3 +495,74 @@ a.reversefootnote {
position: static;
}
}
/*
Copy <pre> block to clipboard
========================================================================== */
// a <textarea> to hold text for document.execCommand("copy")
.clipboard-helper {
// Prevent zooming on iOS
font-size: 12pt !important;
border: 0 !important;
padding: 0 !important;
margin: 0 !important;
outline: none !important;
position: absolute;
}
pre {
&.highlight .clipboard-copy-button {
color: #ffffca;
}
.clipboard-copy-button {
display: block;
position: absolute;
top: 0.6em;
inset-inline-end: 0.5em;
width: 1.8em;
height: 1.5em;
z-index: 1;
background: none;
border: none;
outline: none;
border-radius: 0.1em;
padding: 0.2em 0.5em;
opacity: 0.4;
transition: color 0.25s linear -0.25s, opacity 0.25s linear;
&::before {
content: '';
position: absolute;
inset: 0;
z-index: 2;
}
i {
position: absolute;
top: 0.25em;
inset-inline-end: 0.25em;
&.copied {
opacity: 0;
}
}
&.copied i {
opacity: 0;
&.copied {
opacity: 1;
}
}
@at-root {
.no-copy & {
display: none;
}
}
}
&:hover .clipboard-copy-button {
opacity: 1;
}
}
+8 -1
View File
@@ -6,7 +6,10 @@
Typography
========================================================================== */
$doc-font-size: 16 !default;
$doc-font-size: 16px !default;
$doc-font-size-medium: $doc-font-size * 1.125 !default;
$doc-font-size-large: $doc-font-size * 1.25 !default;
$doc-font-size-x-large: $doc-font-size * 1.375 !default;
/* paragraph indention */
$paragraph-indent: false !default; // true, false (default)
@@ -118,6 +121,10 @@ $masthead-link-color: $primary-color !default;
$masthead-link-color-hover: mix(#000, $primary-color, 25%) !default;
$navicon-link-color-hover: mix(#fff, $primary-color, 75%) !default;
/* notices */
$notice-background-mix: 80% !default;
$code-notice-background-mix: 90% !default;
/* syntax highlighting (base16) */
$base00: #263238 !default;
$base01: #2e3c43 !default;
+5 -1
View File
@@ -27,4 +27,8 @@ $link-color : $info-color !default;
$link-color-hover : mix(#000, $link-color, 25%) !default;
$link-color-visited : mix(#fff, $link-color, 25%) !default;
$masthead-link-color : $primary-color !default;
$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
$masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
/* notices */
$notice-background-mix: 90% !default;
$code-notice-background-mix: 95% !default;
+1 -1
View File
@@ -5,7 +5,7 @@
/* Colors */
$text-color: #000 !default;
$muted-text-color: $text-color !default;
$primary-color: #ff0000 !default;
$primary-color: #b60000 !default;
$border-color: mix(#fff, $text-color, 75%) !default;
$footer-background-color: #000 !default;
$link-color: #0000ff !default;
+1 -1
View File
@@ -27,4 +27,4 @@ $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
.ais-search-box .ais-search-box--input {
background-color: $form-background-color;
}
}
+4
View File
@@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default;
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
/* notices */
$notice-background-mix: 90% !default;
$code-notice-background-mix: 95% !default;
/* neon syntax highlighting (base16) */
$base00: #ffffff !default;
$base01: #e0e0e0 !default;
+4
View File
@@ -18,6 +18,10 @@ $masthead-link-color: $text-color !default;
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
/* notices */
$notice-background-mix: 70% !default;
$code-notice-background-mix: 80% !default;
/* plum syntax highlighting (base16) */
$base00: #ffffff !default;
$base01: #e0e0e0 !default;
@@ -20,6 +20,9 @@ $masthead-link-color: $text-color !default;
$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
/* notices */
$notice-background-mix: 75% !default;
/* sunrise syntax highlighting (base16) */
$base00: #1d1f21 !default;
$base01: #282a2e !default;
+2 -1
View File
@@ -1,8 +1,9 @@
---
# Only the main Sass file needs front matter (the dashes are enough)
search: false
---
@charset "utf-8";
@import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin
@import "minimal-mistakes"; // main partials
@import "minimal-mistakes"; // main partials
+144 -46
View File
@@ -2,39 +2,18 @@
jQuery plugin settings and other scripts
========================================================================== */
$(document).ready(function() {
$(document).ready(function () {
// FitVids init
$("#main").fitVids();
// Sticky sidebar
var stickySideBar = function() {
var show =
$(".author__urls-wrapper button").length === 0
? $(window).width() > 1024 // width should match $large Sass variable
: !$(".author__urls-wrapper button").is(":visible");
if (show) {
// fix
$(".sidebar").addClass("sticky");
} else {
// unfix
$(".sidebar").removeClass("sticky");
}
};
stickySideBar();
$(window).resize(function() {
stickySideBar();
});
// Follow menu drop down
$(".author__urls-wrapper button").on("click", function() {
$(".author__urls-wrapper button").on("click", function () {
$(".author__urls").toggleClass("is--visible");
$(".author__urls-wrapper button").toggleClass("open");
$(".author__urls-wrapper").find("button").toggleClass("open");
});
// Close search screen with Esc key
$(document).keyup(function(e) {
$(document).keyup(function (e) {
if (e.keyCode === 27) {
if ($(".initial-content").hasClass("is--hidden")) {
$(".search-content").toggleClass("is--visible");
@@ -44,11 +23,11 @@ $(document).ready(function() {
});
// Search toggle
$(".search__toggle").on("click", function() {
$(".search__toggle").on("click", function () {
$(".search-content").toggleClass("is--visible");
$(".initial-content").toggleClass("is--hidden");
// set focus on input
setTimeout(function() {
setTimeout(function () {
$(".search-content input").focus();
}, 400);
});
@@ -58,11 +37,11 @@ $(document).ready(function() {
offset: 20,
speed: 400,
speedAsDuration: true,
durationMax: 500
durationMax: 500,
});
// Gumshoe scroll spy init
if($("nav.toc").length > 0) {
if ($("nav.toc").length > 0) {
var spy = new Gumshoe("nav.toc a", {
// Active classes
navClass: "active", // applied to the nav list item
@@ -77,14 +56,36 @@ $(document).ready(function() {
reflow: true, // if true, listen for reflows
// Event support
events: true // if true, emit custom events
events: true, // if true, emit custom events
});
}
// Auto scroll sticky ToC with content
const scrollTocToContent = function (event) {
var target = event.target;
var scrollOptions = { behavior: "auto", block: "nearest", inline: "start" };
var tocElement = document.querySelector("aside.sidebar__right.sticky");
if (!tocElement) return;
if (window.getComputedStyle(tocElement).position !== "sticky") return;
if (target.parentElement.classList.contains("toc__menu") && target == target.parentElement.firstElementChild) {
// Scroll to top instead
document.querySelector("nav.toc header").scrollIntoView(scrollOptions);
} else {
target.scrollIntoView(scrollOptions);
}
};
// Has issues on Firefox, whitelist Chrome for now
if (!!window.chrome) {
document.addEventListener("gumshoeActivate", scrollTocToContent);
}
// add lightbox class to all image links
$(
"a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']"
).addClass("image-popup");
).has("> img").addClass("image-popup");
// Magnific-Popup options
$(".image-popup").magnificPopup({
@@ -99,38 +100,135 @@ $(document).ready(function() {
gallery: {
enabled: true,
navigateByImgClick: true,
preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
preload: [0, 1], // Will preload 0 - before current, and 1 after the current image
},
image: {
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.'
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.',
},
removalDelay: 500, // Delay in milliseconds before popup is removed
// Class that is added to body when popup is open.
// make it unique to apply your CSS animations just to this exact popup
mainClass: "mfp-zoom-in",
callbacks: {
beforeOpen: function() {
beforeOpen: function () {
// just a hack that adds mfp-anim class to markup
this.st.image.markup = this.st.image.markup.replace(
"mfp-figure",
"mfp-figure mfp-with-anim"
);
}
},
},
closeOnContentClick: true,
midClick: true // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
midClick: true, // allow opening popup on middle mouse click. Always set it to true if you don't provide alternative source.
});
// Add anchors for headings
$('.page__content').find('h1, h2, h3, h4, h5, h6').each(function() {
var id = $(this).attr('id');
if (id) {
var anchor = document.createElement("a");
anchor.className = 'header-link';
anchor.href = '#' + id;
anchor.innerHTML = '<span class=\"sr-only\">Permalink</span><i class=\"fas fa-link\"></i>';
anchor.title = "Permalink";
$(this).append(anchor);
(function () {
var pageContentElement = document.querySelector(".page__content");
if (!pageContentElement) return;
pageContentElement
.querySelectorAll("h1, h2, h3, h4, h5, h6")
.forEach(function (element) {
var id = element.getAttribute("id");
if (id) {
var anchor = document.createElement("a");
anchor.className = "header-link";
anchor.href = "#" + id;
anchor.innerHTML =
'<span class="sr-only">Permalink</span><i class="fas fa-link"></i>';
anchor.title = "Permalink";
element.appendChild(anchor);
}
});
})();
// Add copy button for <pre> blocks
var copyText = function (text) {
if (document.queryCommandEnabled("copy") && navigator.clipboard) {
navigator.clipboard.writeText(text).then(
() => true,
() => console.error("Failed to copy text to clipboard: " + text)
);
return true;
} else {
var isRTL = document.documentElement.getAttribute("dir") === "rtl";
var textarea = document.createElement("textarea");
textarea.className = "clipboard-helper";
textarea.style[isRTL ? "right" : "left"] = "-9999px";
// Move element to the same position vertically
var yPosition = window.pageYOffset || document.documentElement.scrollTop;
textarea.style.top = yPosition + "px";
textarea.setAttribute("readonly", "");
textarea.value = text;
document.body.appendChild(textarea);
var success = true;
try {
textarea.select();
success = document.execCommand("copy");
} catch (e) {
success = false;
}
textarea.parentNode.removeChild(textarea);
return success;
}
});
};
var copyButtonEventListener = function (event) {
var thisButton = event.target;
// Locate the <code> element
var codeBlock = thisButton.nextElementSibling;
while (codeBlock && codeBlock.tagName.toLowerCase() !== "code") {
codeBlock = codeBlock.nextElementSibling;
}
if (!codeBlock) {
// No <code> found - wtf?
console.warn(thisButton);
throw new Error("No code block found for this button.");
}
// Skip line numbers if present (i.e. {% highlight lineno %})
var realCodeBlock = codeBlock.querySelector("td.code, td.rouge-code");
if (realCodeBlock) {
codeBlock = realCodeBlock;
}
var result = copyText(codeBlock.innerText);
// Restore the focus to the button
thisButton.focus();
if (result) {
if (thisButton.interval !== null) {
clearInterval(thisButton.interval);
}
thisButton.classList.add('copied');
thisButton.interval = setTimeout(function () {
thisButton.classList.remove('copied');
clearInterval(thisButton.interval);
thisButton.interval = null;
}, 1500);
}
return result;
};
if (window.enable_copy_code_button) {
document
.querySelectorAll(".page__content pre.highlight > code")
.forEach(function (element, index, parentList) {
// Locate the <pre> element
var container = element.parentElement;
// Sanity check - don't add an extra button if there's already one
if (container.firstElementChild.tagName.toLowerCase() !== "code") {
return;
}
var copyButton = document.createElement("button");
copyButton.title = "Copy to clipboard";
copyButton.className = "clipboard-copy-button";
copyButton.innerHTML = '<span class="sr-only">Copy code</span><i class="far fa-fw fa-copy"></i><i class="fas fa-fw fa-check copied"></i>';
copyButton.addEventListener("click", copyButtonEventListener);
container.prepend(copyButton);
});
}
});
+36 -1
View File
@@ -46,4 +46,39 @@ var store = [
"teaser": {{ teaser | relative_url | jsonify }}
}{%- unless forloop.last and l -%},{%- endunless -%}
{%- endfor -%}
{%- endfor -%}]
{%- endfor -%}{%- if site.lunr.search_within_pages -%},
{%- assign pages = site.pages | where_exp: 'doc', 'doc.search != false' | where_exp: 'doc', 'doc.title != null' -%}
{%- for doc in pages -%}
{%- if forloop.last -%}
{%- assign l = true -%}
{%- endif -%}
{
"title": {{ doc.title | jsonify }},
"excerpt":
{%- if site.search_full_content == true -%}
{{ doc.content | newline_to_br |
replace:"<br />", " " |
replace:"</p>", " " |
replace:"</h1>", " " |
replace:"</h2>", " " |
replace:"</h3>", " " |
replace:"</h4>", " " |
replace:"</h5>", " " |
replace:"</h6>", " "|
strip_html | strip_newlines | jsonify }},
{%- else -%}
{{ doc.content | newline_to_br |
replace:"<br />", " " |
replace:"</p>", " " |
replace:"</h1>", " " |
replace:"</h2>", " " |
replace:"</h3>", " " |
replace:"</h4>", " " |
replace:"</h5>", " " |
replace:"</h6>", " "|
strip_html | strip_newlines | truncatewords: 50 | jsonify }},
{%- endif -%}
"url": {{ doc.url | absolute_url | jsonify }}
}{%- unless forloop.last and l -%},{%- endunless -%}
{%- endfor -%}
{%- endif -%}]
+5 -4
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+12 -6
View File
@@ -1,7 +1,7 @@
/*
GreedyNav.js - http://lukejacksonn.com/actuate
GreedyNav.js - https://github.com/lukejacksonn/GreedyNav
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2015 Luke Jackson
Copyright (c) 2015 Luke Jackson http://lukejacksonn.com
*/
$(function() {
@@ -14,11 +14,11 @@ $(function() {
var $logoImg = $('nav.greedy-nav .site-logo img');
var $title = $("nav.greedy-nav .site-title");
var $search = $('nav.greedy-nav button.search__toggle');
var numOfItems, totalSpace, closingTime, breakWidths;
// This function measures both hidden and visible links and sets the navbar breakpoints
// This is called the first time the script runs and everytime the "check()" function detects a change of window width that reached a different CSS width breakpoint, which affects the size of navbar Items
// This is called the first time the script runs and everytime the "check()" function detects a change of window width that reached a different CSS width breakpoint, which affects the size of navbar Items
// Please note that "CSS width breakpoints" (which are only 4) !== "navbar breakpoints" (which are as many as the number of items on the navbar)
function measureLinks(){
numOfItems = 0;
@@ -99,13 +99,19 @@ $(function() {
$btn.on('click', function() {
$hlinks.toggleClass('hidden');
$(this).toggleClass('close');
clearTimeout(timer);
});
$hlinks.on('mouseleave', function() {
$hlinks.on("click", function () {
// Hide the hidden links & remove the overlay when one is clicked.
$hlinks.addClass("hidden");
$btn.removeClass("close");
}).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
@@ -122,5 +128,5 @@ $(function() {
} else check();
// if page does not have a logo just check
} else check();
});
@@ -1,15 +1,15 @@
/*!
* jQuery JavaScript Library v3.5.1
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2020-05-04T22:49Z
* Date: 2021-03-02T17:08Z
*/
( function( global, factory ) {
@@ -76,12 +76,16 @@ var support = {};
var isFunction = function isFunction( obj ) {
// Support: Chrome <=57, Firefox <=52
// In some browsers, typeof returns "function" for HTML <object> elements
// (i.e., `typeof document.createElement( "object" ) === "function"`).
// We don't want to classify *any* DOM node as a function.
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
// Support: Chrome <=57, Firefox <=52
// In some browsers, typeof returns "function" for HTML <object> elements
// (i.e., `typeof document.createElement( "object" ) === "function"`).
// We don't want to classify *any* DOM node as a function.
// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5
// Plus for old WebKit, typeof returns "function" for HTML collections
// (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756)
return typeof obj === "function" && typeof obj.nodeType !== "number" &&
typeof obj.item !== "function";
};
var isWindow = function isWindow( obj ) {
@@ -147,7 +151,7 @@ function toType( obj ) {
var
version = "3.5.1",
version = "3.6.0",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@@ -401,7 +405,7 @@ jQuery.extend( {
if ( isArrayLike( Object( arr ) ) ) {
jQuery.merge( ret,
typeof arr === "string" ?
[ arr ] : arr
[ arr ] : arr
);
} else {
push.call( ret, arr );
@@ -496,9 +500,9 @@ if ( typeof Symbol === "function" ) {
// Populate the class2type map
jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
function( _i, name ) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
} );
function( _i, name ) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
} );
function isArrayLike( obj ) {
@@ -518,14 +522,14 @@ function isArrayLike( obj ) {
}
var Sizzle =
/*!
* Sizzle CSS Selector Engine v2.3.5
* Sizzle CSS Selector Engine v2.3.6
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2020-03-14
* Date: 2021-02-16
*/
( function( window ) {
var i,
@@ -1108,8 +1112,8 @@ support = Sizzle.support = {};
* @returns {Boolean} True iff elem is a non-HTML XML node
*/
isXML = Sizzle.isXML = function( elem ) {
var namespace = elem.namespaceURI,
docElem = ( elem.ownerDocument || elem ).documentElement;
var namespace = elem && elem.namespaceURI,
docElem = elem && ( elem.ownerDocument || elem ).documentElement;
// Support: IE <=8
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
@@ -3024,9 +3028,9 @@ var rneedsContext = jQuery.expr.match.needsContext;
function nodeName( elem, name ) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
};
}
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
@@ -3997,8 +4001,8 @@ jQuery.extend( {
resolveContexts = Array( i ),
resolveValues = slice.call( arguments ),
// the master Deferred
master = jQuery.Deferred(),
// the primary Deferred
primary = jQuery.Deferred(),
// subordinate callback factory
updateFunc = function( i ) {
@@ -4006,30 +4010,30 @@ jQuery.extend( {
resolveContexts[ i ] = this;
resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
if ( !( --remaining ) ) {
master.resolveWith( resolveContexts, resolveValues );
primary.resolveWith( resolveContexts, resolveValues );
}
};
};
// Single- and empty arguments are adopted like Promise.resolve
if ( remaining <= 1 ) {
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,
!remaining );
// Use .then() to unwrap secondary thenables (cf. gh-3000)
if ( master.state() === "pending" ||
if ( primary.state() === "pending" ||
isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
return master.then();
return primary.then();
}
}
// Multiple arguments are aggregated like Promise.all array elements
while ( i-- ) {
adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );
}
return master.promise();
return primary.promise();
}
} );
@@ -4180,8 +4184,8 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
for ( ; i < len; i++ ) {
fn(
elems[ i ], key, raw ?
value :
value.call( elems[ i ], i, fn( elems[ i ], key ) )
value :
value.call( elems[ i ], i, fn( elems[ i ], key ) )
);
}
}
@@ -5089,10 +5093,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
}
var
rkeyEvent = /^key/,
rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
var rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
function returnTrue() {
return true;
@@ -5387,8 +5388,8 @@ jQuery.event = {
event = jQuery.event.fix( nativeEvent ),
handlers = (
dataPriv.get( this, "events" ) || Object.create( null )
)[ event.type ] || [],
dataPriv.get( this, "events" ) || Object.create( null )
)[ event.type ] || [],
special = jQuery.event.special[ event.type ] || {};
// Use the fix-ed jQuery.Event rather than the (read-only) native event
@@ -5512,12 +5513,12 @@ jQuery.event = {
get: isFunction( hook ) ?
function() {
if ( this.originalEvent ) {
return hook( this.originalEvent );
return hook( this.originalEvent );
}
} :
function() {
if ( this.originalEvent ) {
return this.originalEvent[ name ];
return this.originalEvent[ name ];
}
},
@@ -5656,7 +5657,13 @@ function leverageNative( el, type, expectSync ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
return result.value;
// Support: Chrome 86+
// In Chrome, if an element having a focusout handler is blurred by
// clicking outside of it, it invokes the handler synchronously. If
// that handler calls `.remove()` on the element, the data is cleared,
// leaving `result` undefined. We need to guard against this.
return result && result.value;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
@@ -5821,34 +5828,7 @@ jQuery.each( {
targetTouches: true,
toElement: true,
touches: true,
which: function( event ) {
var button = event.button;
// Add which for key events
if ( event.which == null && rkeyEvent.test( event.type ) ) {
return event.charCode != null ? event.charCode : event.keyCode;
}
// Add which for click: 1 === left; 2 === middle; 3 === right
if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
if ( button & 1 ) {
return 1;
}
if ( button & 2 ) {
return 3;
}
if ( button & 4 ) {
return 2;
}
return 0;
}
return event.which;
}
which: true
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
@@ -5874,6 +5854,12 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp
return true;
},
// Suppress native focus or blur as it's already being fired
// in leverageNative.
_default: function() {
return true;
},
delegateType: delegateType
};
} );
@@ -6541,6 +6527,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// set in CSS while `offset*` properties report correct values.
// Behavior in IE 9 is more subtle than in newer versions & it passes
// some versions of this test; make sure not to make it pass there!
//
// Support: Firefox 70+
// Only Firefox includes border widths
// in computed dimensions. (gh-4529)
reliableTrDimensions: function() {
var table, tr, trChild, trStyle;
if ( reliableTrDimensionsVal == null ) {
@@ -6548,17 +6538,32 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
tr = document.createElement( "tr" );
trChild = document.createElement( "div" );
table.style.cssText = "position:absolute;left:-11111px";
table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
tr.style.cssText = "border:1px solid";
// Support: Chrome 86+
// Height set through cssText does not get applied.
// Computed height then comes back as 0.
tr.style.height = "1px";
trChild.style.height = "9px";
// Support: Android 8 Chrome 86+
// In our bodyBackground.html iframe,
// display for all div elements is set to "inline",
// which causes a problem only in Android 8 Chrome 86.
// Ensuring the div is display: block
// gets around this issue.
trChild.style.display = "block";
documentElement
.appendChild( table )
.appendChild( tr )
.appendChild( trChild );
trStyle = window.getComputedStyle( tr );
reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +
parseInt( trStyle.borderTopWidth, 10 ) +
parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;
documentElement.removeChild( table );
}
@@ -7022,10 +7027,10 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
// Running getBoundingClientRect on a disconnected node
// in IE throws an error.
( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
swap( elem, cssShow, function() {
return getWidthOrHeight( elem, dimension, extra );
} ) :
getWidthOrHeight( elem, dimension, extra );
swap( elem, cssShow, function() {
return getWidthOrHeight( elem, dimension, extra );
} ) :
getWidthOrHeight( elem, dimension, extra );
}
},
@@ -7084,7 +7089,7 @@ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
swap( elem, { marginLeft: 0 }, function() {
return elem.getBoundingClientRect().left;
} )
) + "px";
) + "px";
}
}
);
@@ -7223,7 +7228,7 @@ Tween.propHooks = {
if ( jQuery.fx.step[ tween.prop ] ) {
jQuery.fx.step[ tween.prop ]( tween );
} else if ( tween.elem.nodeType === 1 && (
jQuery.cssHooks[ tween.prop ] ||
jQuery.cssHooks[ tween.prop ] ||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
} else {
@@ -7468,7 +7473,7 @@ function defaultPrefilter( elem, props, opts ) {
anim.done( function() {
/* eslint-enable no-loop-func */
/* eslint-enable no-loop-func */
// The final step of a "hide" animation is actually hiding the element
if ( !hidden ) {
@@ -7588,7 +7593,7 @@ function Animation( elem, properties, options ) {
tweens: [],
createTween: function( prop, end ) {
var tween = jQuery.Tween( elem, animation.opts, prop, end,
animation.opts.specialEasing[ prop ] || animation.opts.easing );
animation.opts.specialEasing[ prop ] || animation.opts.easing );
animation.tweens.push( tween );
return tween;
},
@@ -7761,7 +7766,8 @@ jQuery.fn.extend( {
anim.stop( true );
}
};
doAnimation.finish = doAnimation;
doAnimation.finish = doAnimation;
return empty || optall.queue === false ?
this.each( doAnimation ) :
@@ -8401,8 +8407,8 @@ jQuery.fn.extend( {
if ( this.setAttribute ) {
this.setAttribute( "class",
className || value === false ?
"" :
dataPriv.get( this, "__className__" ) || ""
"" :
dataPriv.get( this, "__className__" ) || ""
);
}
}
@@ -8417,7 +8423,7 @@ jQuery.fn.extend( {
while ( ( elem = this[ i++ ] ) ) {
if ( elem.nodeType === 1 &&
( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
return true;
return true;
}
}
@@ -8707,9 +8713,7 @@ jQuery.extend( jQuery.event, {
special.bindType || type;
// jQuery handler
handle = (
dataPriv.get( cur, "events" ) || Object.create( null )
)[ event.type ] &&
handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] &&
dataPriv.get( cur, "handle" );
if ( handle ) {
handle.apply( cur, data );
@@ -8856,7 +8860,7 @@ var rquery = ( /\?/ );
// Cross-browser xml parsing
jQuery.parseXML = function( data ) {
var xml;
var xml, parserErrorElem;
if ( !data || typeof data !== "string" ) {
return null;
}
@@ -8865,12 +8869,17 @@ jQuery.parseXML = function( data ) {
// IE throws on parseFromString with invalid input.
try {
xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
} catch ( e ) {
xml = undefined;
}
} catch ( e ) {}
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
jQuery.error( "Invalid XML: " + data );
parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
if ( !xml || parserErrorElem ) {
jQuery.error( "Invalid XML: " + (
parserErrorElem ?
jQuery.map( parserErrorElem.childNodes, function( el ) {
return el.textContent;
} ).join( "\n" ) :
data
) );
}
return xml;
};
@@ -8971,16 +8980,14 @@ jQuery.fn.extend( {
// Can add propHook for "elements" to filter or add form elements
var elements = jQuery.prop( this, "elements" );
return elements ? jQuery.makeArray( elements ) : this;
} )
.filter( function() {
} ).filter( function() {
var type = this.type;
// Use .is( ":disabled" ) so that fieldset[disabled] works
return this.name && !jQuery( this ).is( ":disabled" ) &&
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
( this.checked || !rcheckableType.test( type ) );
} )
.map( function( _i, elem ) {
} ).map( function( _i, elem ) {
var val = jQuery( this ).val();
if ( val == null ) {
@@ -9033,7 +9040,8 @@ var
// Anchor tag for parsing the document origin
originAnchor = document.createElement( "a" );
originAnchor.href = location.href;
originAnchor.href = location.href;
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
function addToPrefiltersOrTransports( structure ) {
@@ -9414,8 +9422,8 @@ jQuery.extend( {
// Context for global events is callbackContext if it is a DOM node or jQuery collection
globalEventContext = s.context &&
( callbackContext.nodeType || callbackContext.jquery ) ?
jQuery( callbackContext ) :
jQuery.event,
jQuery( callbackContext ) :
jQuery.event,
// Deferreds
deferred = jQuery.Deferred(),
@@ -9727,8 +9735,10 @@ jQuery.extend( {
response = ajaxHandleResponses( s, jqXHR, responses );
}
// Use a noop converter for missing script
if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
// Use a noop converter for missing script but not if jsonp
if ( !isSuccess &&
jQuery.inArray( "script", s.dataTypes ) > -1 &&
jQuery.inArray( "json", s.dataTypes ) < 0 ) {
s.converters[ "text script" ] = function() {};
}
@@ -10466,12 +10476,6 @@ jQuery.offset = {
options.using.call( elem, props );
} else {
if ( typeof props.top === "number" ) {
props.top += "px";
}
if ( typeof props.left === "number" ) {
props.left += "px";
}
curElem.css( props );
}
}
@@ -10640,8 +10644,11 @@ jQuery.each( [ "top", "left" ], function( _i, prop ) {
// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
function( defaultExtra, funcName ) {
jQuery.each( {
padding: "inner" + name,
content: type,
"": "outer" + name
}, function( defaultExtra, funcName ) {
// Margin is only for outerHeight, outerWidth
jQuery.fn[ funcName ] = function( margin, value ) {
@@ -10726,7 +10733,8 @@ jQuery.fn.extend( {
}
} );
jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
jQuery.each(
( "blur focus focusin focusout resize scroll click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup contextmenu" ).split( " " ),
function( _i, name ) {
@@ -10737,7 +10745,8 @@ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
this.on( name, null, data, fn ) :
this.trigger( name );
};
} );
}
);
-19
View File
@@ -1,19 +0,0 @@
const fs = require("fs");
const pkg = require("./package.json");
const filename = "assets/js/main.min.js";
const script = fs.readFileSync(filename);
const padStart = str => ("0" + str).slice(-2);
const dateObj = new Date();
const date = `${dateObj.getFullYear()}-${padStart(
dateObj.getMonth() + 1
)}-${padStart(dateObj.getDate())}`;
const banner = `/*!
* Minimal Mistakes Jekyll Theme ${pkg.version} by ${pkg.author}
* Copyright 2013-${dateObj.getFullYear()} Michael Rose - mademistakes.com | @mmistakes
* Licensed under ${pkg.license}
*/
`;
if (script.slice(0, 3) != "/**") {
fs.writeFileSync(filename, banner + script);
}

Some files were not shown because too many files have changed in this diff Show More