Compare commits

..
498 Commits
Author SHA1 Message Date
Michael Rose b4abce3b78 Release 4.20.1 💎 2020-08-04 12:33:22 -04:00
Michael Rose 53ad4d343a Fix grid entries_layout in home.html 2020-08-04 12:32:54 -04:00
Michael Rose 3135099203 Fix grammar 2020-08-04 11:26:26 -04:00
Michael Rose 95ba9242bf Update remote_theme 2020-08-04 11:22:09 -04:00
Michael Rose cb18aaa7a0 Release 4.20.0 💎 2020-08-04 11:18:04 -04:00
Michael Rose 6d1aea573c Remove extra back ticks 2020-08-04 11:12:05 -04:00
Michael Rose e4fbcf7383 Fix grammar 2020-08-04 10:52:49 -04:00
Michael Rose eb31e33365 Update CHANGELOG and history 2020-08-04 10:48:44 -04:00
Lim Jing Heng f15e02ea58 Show date of posts (#2526)
* add date to read-time.html

* add option for show_date, dynamic icon style

* change read-time to post__meta

* cleanup post__metal.html

* cleanup post__meta include variables

* put date before read time

* remove space in include variable

* allow customisation of post__meta separator

* add some documentation

* oops fix typo derp

* add post date image

* change page meta separator customisation to CSS
2020-08-04 10:39:01 -04:00
Michael Rose 5d85bf1912 Update CHANGELOG and history 2020-08-04 10:26:29 -04:00
Andrey Kartashov b093b52074 remove hidden posts from /posts (#2625) 2020-08-04 10:25:38 -04:00
iBug ♦ a695d7728f Update documentation for #2621 (#2624)
* Update documentation for #2621

* Update CHANGELOG and history

* Update last_modified_at
2020-08-04 10:23:18 -04:00
iBug ♦ 83b4dba2f0 Update UI text for zh-CN and zh-TW (#2626)
* Update UI text for zh-CN and zh-TW

* Update CHANGELOG and history

Not touching last_modified_at this time - it's messy enough
2020-07-28 15:37:13 -04:00
Michael Rose 1f0b50044c Update 10-layouts.md 2020-07-24 16:06:32 -04:00
Michael Rose f099739f42 Include documentation for home page grid view 2020-07-24 16:00:37 -04:00
Michael Rose cd7aa71ffc Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2020-07-24 15:55:35 -04:00
Michael Rose 960d80dc6d Update CHANGELOG and history 2020-07-24 15:55:31 -04:00
Juan Ara 34ff24e31b Configure entries layout list or grid (#2616)
* Configure entries layout `list` or `grid`

This allows to use grid layout on `page.entries_layout` on the home layout.

Included a break since when using grid the post images are too close to the horizontal line bellow `posts` text.

There's a entries div now surrounding the posts since the first row of the grid was having a slight padding on the left. The home now behaves like posts/categories/tags pages with grid but including the paginator.

For best results on desktop use `classes: wide` and `paginate: 4` on `_config.yml` (or multiples of 4 if you want more rows)

* Fix indent

* Archive subtitle leaves space on the bottom

* Now space is added through style
2020-07-24 15:53:21 -04:00
iBug ♦ d5d3863322 Use layout: none instead of null (#2617)
* Use layout: none instead of null

* Update CHANGELOG and history
2020-07-24 08:22:16 -04:00
Michael Rose bae1a2eb0d Update CHANGELOG and history 2020-07-23 12:14:05 -04:00
谭九鼎 a0e3387677 Update zh-cn (#2576)
* Update zh-cn
* Update ui-text.yml
2020-07-23 12:12:52 -04:00
Michael Rose 16bacdcc37 Update CHANGELOG and history 2020-07-23 12:12:15 -04:00
dianlujitao be9a90fa0c Fix link for author name (#2575)
Missed from bcd6126612
2020-07-23 12:11:03 -04:00
iBug ♦ a89a015ce7 Change tab indent to space for consistency (#2614) 2020-07-23 12:09:36 -04:00
Michael Rose 8a60d43b12 Update CHANGELOG and history 2020-07-22 15:47:29 -04:00
Scott M a0309bba05 Fix config comment to list all analytics providers. (#2607)
The main config was properly updated with the google-gtag
feature commit (79d0b75683), but was
removed, possibly by bad merge, with an unrelated commit
(bac26e96b2) two days later.

The docs and test configs appear to have never received the initial
google-gtag update.
2020-07-22 15:46:44 -04:00
Michael Rose af7805a985 Update CHANGELOG and history 2020-07-22 15:45:40 -04:00
iBug ♦ adb301096f Give H4 in notice some space from below (#2602) 2020-07-22 15:44:25 -04:00
42c4df6244 Enhance Bilibili video support (redo of #2522) (#2599)
* Enhance support for bilibili videos in responsive video helper, and add corresponding doc

* Apply @iBug's review in mmistakes/minimal-mistakes#2522

* Fix danmaku in page hero video

* Update video to use case..when for iframe src

* Update CHANGELOG and history

Co-authored-by: Anran <51769728+ALeafWolf@users.noreply.github.com>
Co-authored-by: Michael Rose <mmistakes@users.noreply.github.com>
2020-07-22 15:42:46 -04:00
Michael Rose 8711be97c6 Update CHANGELOG and history 2020-07-22 15:36:25 -04:00
Marcin Pietraszek 28edd82198 Algolia search update (#2572)
* Search on menu toggle

With that change search is performed when requested. Before it was done
for each pageview, regardless of the fact if search was used by user or
not.

* Localize algolia's empty template
2020-07-22 15:34:53 -04:00
Michael Rose 91433e72e6 Update CHANGELOG and history 2020-07-22 15:30:29 -04:00
Vanessasaurus 82f79d3045 Updating link to wtfpl license (#2571)
The current wtpl license in the README is dead, so I'm updating it to use the current. The site doesn't have https, so if you want https we could also use https://choosealicense.com/licenses/wtfpl/.
2020-07-22 15:29:37 -04:00
Michael Rose 3af9e57c6a Update CHANGELOG and history 2020-07-22 15:29:09 -04:00
Eduardo Luna c980d7f079 Update 03-installation.md (#2570)
Fixed a small typo.
2020-07-22 15:28:09 -04:00
Michael Rose f297fe1b51 Update CHANGELOG and history 2020-07-22 15:27:46 -04:00
Lars Olesen 4f8e2b48bb Do not include in toc (#2558) 2020-07-22 15:26:14 -04:00
iBug ♦ 2ef1bfb856 Load Font Awesome CSS from jsDelivr CDN (#2583)
* Load Font Awesome CSS from jsDelivr CDN
* Update CHANGELOG and history
2020-07-02 08:08:45 -04:00
Michael Rose 776ab26ce1 Update theme version 2020-06-06 11:49:40 -04:00
Michael Rose a870cbddd9 Update CHANGELOG and history 2020-06-06 11:48:26 -04:00
Michael Rose 5021021fc8 Release 4.19.3 💎 2020-06-06 11:47:44 -04:00
Michael Rose c6145356fd Update CHANGELOG and history 2020-06-06 10:39:32 -04:00
Michael Rose 7ec8e90c76 Update GreedyNav.js 2020-06-06 10:30:54 -04:00
Michael Rose 3ab6ba0b1f Replace custom comment hardcoded HTML with include
Also add custom_scripts.html include for custom comment provider JavaScript that loads in the footer.

Close #2549
2020-06-02 22:33:08 -04:00
Michael Rose 59e007b20e Update CHANGELOG and history 2020-06-02 22:24:13 -04:00
Lars Olesen 875dbdefb8 Move page date to own file (#2544) 2020-06-02 22:22:56 -04:00
Michael Rose da2035c1ff Update CHANGELOG and history 2020-06-02 22:22:21 -04:00
Lars Olesen b336eab85b Strip trailing whitespace in seo_description (#2542) 2020-06-02 22:21:10 -04:00
iBug ♦ 3ca2503745 Bump Jekyll version note from 3.5 to 3.7 (#2520) 2020-06-02 22:19:22 -04:00
Michael Rose d392698661 Reword commit change 2020-06-02 22:18:57 -04:00
iBug ♦ a3d1d904d5 Make sticky sidebar live well with short content (#2514) 2020-06-02 22:17:31 -04:00
Michael Rose cf398b07ab Ignore heading in TOC 2020-05-22 10:06:57 -04:00
Michael Rose f7770ad079 Fix typo 2020-05-01 11:53:47 -04:00
Michael Rose 7a4b65711d Bump version to 4.19.2 2020-05-01 11:51:54 -04:00
Michael Rose 7bdc8dc193 Release 4.19.2 💎 2020-05-01 11:47:01 -04:00
Michael Rose 1a6bc842ae Wrap email in quotes
Close #2498
2020-05-01 10:28:44 -04:00
Michael Rose 476b12c867 Add bilibili provider 2020-05-01 10:23:02 -04:00
Michael Rose 890e573989 Fix typo 2020-05-01 10:21:55 -04:00
Michael Rose b27da24c8d Update CHANGELOG and history 2020-05-01 10:20:27 -04:00
Michael Rose 502e28a54e Add bilibili provider 2020-05-01 10:20:18 -04:00
sunete 9280de7075 Update video (#2512)
* Update video

support bilibili video

* Update video

drop the duplicated <div> wrapper

* Update video

update video
2020-05-01 10:16:59 -04:00
Michael Rose 2147ee2b66 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2020-05-01 10:15:50 -04:00
Michael Rose 172321f115 Add Myanmar (Burmese) 2020-05-01 10:15:46 -04:00
Michael Rose f8ab328e8a Update CHANGELOG and history 2020-05-01 10:14:48 -04:00
Hein Htet Aung ac970d98b8 Update Burmese translation (#2500) 2020-05-01 10:13:23 -04:00
Michael Rose 3c6c8586ba Update CHANGELOG and history 2020-05-01 10:12:43 -04:00
Tobias V. Langhoff f9c4e37816 Fix typo in configuration docs (#2497)
`https://github.io.mmistakes` should be `https://mmistakes.github.io`
2020-05-01 10:11:58 -04:00
Michael Rose 4ba02060e4 Update CHANGELOG and history 2020-05-01 10:11:32 -04:00
Quan 8ba8be1cac Update Vietnamese translation (#2486)
* Update Vietnamese translation

* Update Vietnamese translation
2020-05-01 10:10:35 -04:00
Michael Rose ef9431ccdd Update 01-quick-start-guide.md 2020-04-27 11:11:21 -04:00
Michael Rose d387d410eb Update README.md 2020-04-27 11:10:04 -04:00
iBug ♦ 07957f6d64 Hide index page from page-archive, resolves #2481 (#2482) 2020-04-13 18:55:19 -04:00
iBug ♦ f3c74113fd Fix #2478 "Follow menu falls under post links" (#2479)
* Fix #2478 "Follow menu falls under post links"

* Do it the other way
2020-04-08 09:15:07 -04:00
Michael Rose 63c929655d Update CHANGELOG and history 2020-03-30 16:27:41 -04:00
Ali Farooq 7790757722 Use css padding for author urls to fix underline hover state (#2472)
* Use scss padding for sidebar author urls

* rename .text to .label
2020-03-30 16:26:24 -04:00
Michael Rose b4ccaa6ae2 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes
* 'master' of https://github.com/mmistakes/minimal-mistakes:
  Add guide on applying Front Matter defaults to jekyll-archives pages (#2466)
2020-03-30 16:19:59 -04:00
Michael Rose 29f4efc441 Update CHANGELOG and history 2020-03-30 16:18:32 -04:00
iBug ♦ 54001dade7 Add guide on applying Front Matter defaults to jekyll-archives pages (#2466)
* Add guide on applying Front Matter defaults to jekyll-archives pages

Sources:
- https://github.com/mmistakes/minimal-mistakes/issues/2465#issuecomment-604839346
- https://github.com/iBug/iBug-source/commit/8685c1ecd984529dcb044ba816497313d8896f1e

* Update CHANGELOG and history
2020-03-30 16:17:45 -04:00
Quan 843c38b892 Update ui-text.yml for Vietnamese translation (#2459) 2020-03-30 16:16:24 -04:00
Michael Rose c57dfd78b0 Add mention of Finnish 2020-03-23 14:08:03 -04:00
Michael Rose a0a0a78b07 Update CHANGELOG and history 2020-03-23 14:06:44 -04:00
Tatu Wikman 7f222d7e1f Finnish translations (#2455)
* Finnish translations

* Small fix to finnish translation
2020-03-23 14:05:10 -04:00
Michael Rose e773a08645 Update CHANGELOG and history 2020-03-23 14:04:43 -04:00
A. Ishikawa def3aaf229 Clarify lunr only searches documents in collections (#2450) 2020-03-23 14:03:25 -04:00
Michael Rose 2d0b445634 Bump theme version 2020-03-16 21:32:15 -04:00
Michael Rose 6bc673d331 Release 4.19.1 💎 2020-03-16 21:31:23 -04:00
Michael Rose 0d4e54283a Update CHANGELOG and history 2020-03-16 21:26:12 -04:00
Michael Rose c5523d119a Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2020-03-16 21:24:19 -04:00
Luiz Lopes e00e24dc9d docs: Add dracula base16 syntax highlighting (#2438)
Updates stylesheets doc by adding a section for [dracula theme](https://draculatheme.com/).
2020-03-16 21:24:11 -04:00
Michael Rose e3fd8dc17b Update CHANGELOG and history 2020-03-16 21:23:05 -04:00
Christian Oliff 2d407a9d9e update links to HTTPS and remove Google+ from 05-configuration.md (#2432) 2020-03-16 21:21:36 -04:00
Michael Rose b1d7c4062f Update CHANGELOG and history 2020-03-16 21:18:56 -04:00
iBug ♦ 4e25e5242e Use first_page_path from Paginate V2 if available (#2431) 2020-03-16 21:17:53 -04:00
Michael Rose eeecf26117 Update CHANGELOG and history 2020-03-16 10:46:52 -04:00
Michael Rose 864892c507 Bump dependencies 2020-03-16 10:45:33 -04:00
Michael Rose ece34c1c57 Fix author profile links z-index order on small screens
Close #2440
2020-03-16 10:33:42 -04:00
Michael Rose 7051c2b595 Update smooth-scroll.js to v16.1.2
Close #2430
2020-03-11 13:13:46 -04:00
Michael Rose e31701787e Force rebuild of site 2020-03-10 19:09:54 -04:00
Michael Rose 78f049abee Release 4.19.0 💎 2020-03-10 19:02:57 -04:00
Michael Rose f9b4ddb869 Remove unused variables 2020-03-10 19:00:43 -04:00
Michael Rose a2385e2584 Update CHANGELOG and history 2020-03-09 14:49:50 -04:00
Michael Rose b5abe62bf6 Add "click" overlay to close masthead and follow button menus when open
Fixes #1168
2020-03-09 14:49:15 -04:00
Michael Rose 9c90563d1a Remove delay on menu close 2020-03-09 13:04:51 -04:00
Michael Rose 02098bc079 Update CHANGELOG and history 2020-03-09 12:33:15 -04:00
Michael Rose 60f0f1c33a Remove deprecated Staticman v1 config
Close #2386
2020-03-09 12:31:42 -04:00
Michael Rose e1724aec9d Lock demo site at version 4.18.1
ref: https://github.com/mmistakes/minimal-mistakes/issues/2429
2020-03-09 10:15:17 -04:00
chrismelman 7b953b6b01 fixed typo in page_hero (#2428) 2020-03-08 20:27:54 -04:00
Michael Rose 21ae828654 Fix typo in Sass variable map 2020-03-06 15:48:03 -05:00
Michael Rose cba217a6da Update CHANGELOG and history 2020-03-06 15:42:43 -05:00
Ivan Storck 72bc135b5f Fix minor deprecation issue (#2425)
with bundler show vs now info. Just to avoid warning for users
2020-03-06 15:41:07 -05:00
Michael Rose 5e5d4210e2 Update CHANGELOG and history 2020-03-06 15:39:05 -05:00
iBug ♦ bcd6126612 Use relative_url and absolute_url where possible (#2387)
* Use relative_url and absolute_url where possible

Drops the `contains "://"` check, adopt Jekyll 3.7
Ref: https://github.com/mmistakes/minimal-mistakes/pull/2385#issuecomment-579882236

* One more unneeded {% assign %}

* Remove one more assign as noted by mmistakes

* Consolidate 4 more captures

* Consolidate an extra assign on "active" class
2020-03-06 15:37:07 -05:00
Michael Rose 0cf1a2e114 Improve headline hierarchy
Add headline specific Sass variables:

```scss
$h-size-1: 1.563em !default; // ~25.008px
$h-size-2: 1.25em !default; // ~20px
$h-size-3: 1.125em !default; // ~18px
$h-size-4: 1.0625em !default; // ~17px
$h-size-5: 1.03125em !default; // ~16.5px
$h-size-6: 1em !default; // ~16px
```

Fixes #2423
2020-03-05 12:39:35 -05:00
Michael Rose 52fcc60474 Update CHANGELOG and history 2020-03-05 12:28:40 -05:00
Michael Rose dc8a41bb60 Improve accessiblity of default skin by increasing color contrast 2020-03-04 16:33:50 -05:00
Michael Rose 4fa9cf63d2 Update CHANGELOG and history 2020-03-04 16:10:57 -05:00
Michael Rose 4bf72cf73f Hide hidden posts from listings (#2345) 2020-03-04 16:09:24 -05:00
Michael Rose 31dff63ad1 Update CHANGELOG, history, and documentation 2020-03-04 16:08:15 -05:00
Michael Rose 648ef257a4 Add Irish (Gaeilge) locale to ui-text.yml (#2422) 2020-03-04 16:05:27 -05:00
Michael Rose 909745a7c9 Fix rake vulnerability in .gemspec file 2020-03-02 16:25:50 -05:00
Michael Rose 2513357cdc Update CHANGELOG and history 2020-02-17 15:30:14 -05:00
Daniel Schroeder e8b36c94d3 fix: Do not redirect user away from site after they submit a comment (#2402) 2020-02-17 15:28:33 -05:00
Michael Rose f7884a31c6 Update CHANGELOG and history 2020-02-17 15:27:35 -05:00
iBug ♦ 060d50eda0 Disable box-shadow for radio and checkbox (#2398) 2020-02-17 15:26:10 -05:00
Michael Rose b06b6477e9 Bump Jekyll gem dependency to v3.7 2020-01-29 13:24:22 -05:00
iBug ♦ 1799ddd6a5 Regression for mmistakes#2332 (#2385)
* Regression for mmistakes#2332

There's already a `relative_url` in place, shouldn't stack up another

* Update CHANGELOG and history
2020-01-29 12:48:13 -05:00
Michael Rose 636ea3eb87 Release 4.18.1 💎 2020-01-25 11:18:44 -05:00
iBug ♦ 82a71a59f2 Fix compatibility issue with paginate V2 introduced by mmistakes/minimal-mistakes#2378 (#2381) 2020-01-25 11:14:29 -05:00
Michael Rose ec0b288f9e Release 4.18.0 💎 2020-01-25 10:26:16 -05:00
Michael Rose 1b9b8465b0 Update CHANGELOG and history 2020-01-25 10:19:18 -05:00
Mohamed Akram 3332196ec5 Allow using theme without pagination (#2378) 2020-01-25 10:17:46 -05:00
Michael Rose 1163ddc3f2 Add links to high resolution skin screenshots
Resolves #2363
2020-01-14 12:51:36 -05:00
Michael Rose d6c935aaaa Update CHANGELOG and history 2020-01-14 12:46:02 -05:00
Johannes Ganzenmüller 741b6dcb10 Adjust comments to be compatible with compress_html (#2373) 2020-01-14 12:43:14 -05:00
Michael Rose 0ce6c0d648 Update CHANGELOG and history 2020-01-14 12:42:35 -05:00
Michael Rose 2397da4e28 Add post to test multiline excerpt 2020-01-14 12:41:28 -05:00
iBug ♦ c6b4cdac97 Fix wrong newline concatenation in SEO description, resolves #2354 (#2368)
Close #2354
2020-01-14 12:40:11 -05:00
Michael Rose b84c196178 Update CHANGELOG and history 2020-01-14 12:33:30 -05:00
iBug ♦ d1db419e59 Update README and LICENSE (#2367)
* Update README and LICENSE

* README: Replace RawGit with jsDelivr
2020-01-14 12:32:48 -05:00
Michael Rose 31d230934c Update CHANGELOG and history 2020-01-14 12:32:20 -05:00
iBug ♦ a9f927a353 Update .gitignore (#2366) 2020-01-14 12:31:30 -05:00
Michael Rose 39423bc233 Update CHANGELOG and history 2020-01-07 13:14:57 -05:00
Michael Rose eb1af70810 Document header tagline 2020-01-07 13:14:50 -05:00
Michael Rose 6deaab8d3a Add example posts with header tagline 2020-01-07 13:14:33 -05:00
iBug ♦ be0e7ca971 Allow override of page excerpt in heading (via tagline) (#2307)
Allow the use of `page.tagline` to override `page.excerpt` in heading area
2020-01-07 13:01:47 -05:00
Michael Rose f2af873e94 Update CHANGELOG and history 2020-01-07 12:47:33 -05:00
Rodrigo Graça e2f0cf82f9 🔧 Exclude package-lock.json (#2364) 2020-01-07 12:45:58 -05:00
Michael Rose 65051cce2e Update CHANGELOG and history 2020-01-07 12:39:34 -05:00
iBug ♦ f331584125 Use %-d instead of %d (#2359) 2020-01-07 12:38:08 -05:00
Michael Rose e604b4742a Update CHANGELOG and history 2020-01-07 12:37:31 -05:00
iBug ♦ 8e2d290c7f Update toc.html from allejo/jekyll-toc:master (#2355) 2020-01-07 12:36:05 -05:00
Michael Rose 92401a14b7 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-12-19 11:39:42 -05:00
Michael Rose e7d429cd74 Update CHANGELOG and history 2019-12-19 11:39:39 -05:00
Akhyar Amarullah 7607fcf7b6 Fix staticman v2/v3 comments (#2351)
According to the most recent docs, `branch` and `endpoint` should be inside `site.comments.staticman` config.
2019-12-19 11:38:51 -05:00
Michael Rose 4a85725bfe Update CHANGELOG and history 2019-12-19 11:38:16 -05:00
dmitrypvandiBug ♦ abf29432f6 Update masthead.html (#2332)
* Update masthead.html

fix image path in masthead for relative url

* Update _includes/masthead.html

Co-Authored-By: iBug ♦ <git@ibugone.com>
2019-12-19 11:37:11 -05:00
Eloi Perdereau af528d49ce Fix schema.org dates to ISO-8601 (#2339)
* Fix schema.org dates to ISO-8601

* Revert date_to_xmlschema in <time> tag
2019-12-19 11:35:35 -05:00
Michael Rose df3da4f7e3 Update CHANGELOG and history 2019-11-22 09:27:54 -05:00
Michael Rose e749af9ff8 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-11-22 09:26:59 -05:00
iBug ♦ ee9aa75213 Set background-color = inherit for <pre code> in notices (#2328) 2019-11-22 09:26:38 -05:00
Michael Rose 032aaf209b Add notices with code blocks for testing 2019-11-22 09:26:06 -05:00
Michael Rose 5c9b5c3218 Update CHANGELOG and history 2019-11-22 09:17:09 -05:00
iBug ♦ 02dd27ccdc Make feature row live well with TOC, fix #2327 (#2329) 2019-11-22 09:15:38 -05:00
Michael Rose 6c733c3b93 Update CHANGELOG and history 2019-11-22 09:13:52 -05:00
Lars Olesen 0be64d50fc Fixed page.excerpt to seo_description (#2326) 2019-11-22 09:12:34 -05:00
Michael Rose 14ebcce4a9 Update CHANGELOG and history 2019-11-22 09:12:12 -05:00
Wouter Overmeire c7e3c5e3cb Add missing dutch ui-text fields (#2321) 2019-11-22 09:11:13 -05:00
Michael Rose c2c33a9ca8 Update CHANGELOG and history 2019-11-12 15:15:20 -05:00
Wouter Janson e09ff7efd7 Add social icon color for Keybase (#2302) 2019-11-12 15:14:32 -05:00
Michael Rose 2d257a905e Update CHANGELOG and history 2019-11-12 15:13:33 -05:00
iBug ♦ 13d7a231f7 Support page header (page hero) in archive-taxonomy layouts (#2320)
* Support page header in archive-taxonomy layout
2019-11-12 15:11:52 -05:00
Michael Rose 4ef8db79ba Update CHANGELOG and history 2019-11-12 15:01:33 -05:00
Michael Rose 5eaa0e5ec8 Fix typo in comments in _config.yml 2019-11-12 15:00:44 -05:00
iBug ♦ 96feec08a9 Fix typo in _config.yml (#2319) 2019-11-12 14:59:26 -05:00
Michael Rose ef22eb314e Update CHANGELOG and history
Fix #2310
2019-11-07 11:52:42 -05:00
Michael Rose d4edd0c1e3 Release 4.17.2 💎 (#2296) 2019-10-27 20:22:16 -04:00
Michael Rose 6d1edf339c Update CHANGELOG and history 2019-10-27 20:17:48 -04:00
Dan Wilde 13ab95d1ad Added another step (#2294)
The step is required to get the portfolio collection to work.
2019-10-27 20:14:58 -04:00
Michael Rose 2328c8192c Update CHANGELOG and history
Close #2281
2019-10-21 10:46:44 -04:00
Michael Rose 6d28d12d1d Flexbox sticky footer (#2289)
* Remove sticky footer JavaScript

* Use flexbox to force footer to the bottom of every page

* Fix flexbox in Internet Explorer
2019-10-21 10:41:36 -04:00
Michael Rose 29263ac102 Release 4.17.1 💎 (#2288) 2019-10-17 20:28:02 -04:00
Michael Rose 8e722d0276 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-10-17 20:18:30 -04:00
Michael Rose 4462af335e Update CHANGELOG and history 2019-10-17 20:18:27 -04:00
iBug ♦ 4f206843e4 Update Chinese (Simplified) translation (#2286) 2019-10-17 20:17:16 -04:00
Michael Rose 647c1672c5 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-10-17 20:16:46 -04:00
Michael Rose 1c8c7e6844 Update CHANGELOG and history 2019-10-17 20:16:42 -04:00
Baptiste M 9a8a64cfbe Fix and test case (#2285) 2019-10-17 20:15:36 -04:00
Michael Rose f5da37ea7e Update CHANGELOG and history 2019-10-17 20:12:48 -04:00
Luis Puerto 3e4069c5ba Update the info about what js scrips you are using (#2276)
Added Smooth Scroll and Gumshoe info
2019-10-17 20:10:01 -04:00
Michael Rose a101d668e8 Release 4.17.0 (#2275)
* Release 4.17.0 💎

* Update CHANGELOG and history
2019-10-04 20:00:23 -04:00
Michael Rose 2d22b95c32 Update CHANGELOG and history 2019-10-04 11:02:12 -04:00
Christian Oliff 519824eee7 remove extraneous space from IE conditional statement (#2273) 2019-10-04 11:01:09 -04:00
Michael Rose 9238caac41 Update CHANGELOG and history 2019-10-04 11:00:49 -04:00
iBug ♦ 3b3da46fea Show a permalink anchor when hovering over headings in main content (#2251)
* Implement heading permalinks, close #2246

Thanks to jekyll/jekyll for CSS.
Link anchor is visible when the mouse hovers over the title line.

* Build the updated _main.js
2019-10-04 10:59:44 -04:00
Michael Rose 6a3d325cd4 Update CHANGELOG and history 2019-10-04 10:55:08 -04:00
Michael Rose 57a7401768 Document page.words_per_minute 2019-10-04 10:55:01 -04:00
iBug ♦ a52394c02e Allow per-page override of words_per_minute (#2250)
Different languages usually have different read speeds.
This change is useful for sites with multi-lingual content
2019-10-04 10:50:05 -04:00
Michael Rose 69edbfba58 Update CHANGELOG and history 2019-08-30 08:42:32 -04:00
Rico 4b6b76853f Fix http links to use https (#2244)
Every site should support https by now. Better to link the https sites right away. Both sites do support https at the time I checked.
2019-08-30 08:41:17 -04:00
Michael Rose 5c19a81fe6 Update CHANGELOG and history 2019-08-30 08:40:37 -04:00
Rico f2c5d79451 Fix typo in config comment (#2243) 2019-08-30 08:39:20 -04:00
Michael Rose a2fdc94fb7 Update onchange development dependency in package.json
Close #2241
2019-08-28 08:57:31 -04:00
Michael Rose cc365940c5 Update CHANGELOG, history, and docs 2019-08-27 15:46:59 -04:00
Marc Riera c642c0f694 Translate into Catalan (#2237)
* Translate into Catalan
* Translate missing key
* Pluralize key
2019-08-27 15:44:28 -04:00
Michael Rose 5ab086cb4c Release 4.16.6 💎 2019-08-20 21:40:37 -04:00
Michael Rose 58f1d16900 Update documentation 2019-08-20 21:36:49 -04:00
Michael Rose 143bb32a95 Remove jemoji gem 2019-08-20 21:36:00 -04:00
Michael Rose 2388cbe020 Bump dependencies 2019-08-20 21:35:49 -04:00
Michael Rose 35b31e7143 Remove jemoji gem 2019-08-20 21:35:20 -04:00
Michael Rose 724ea26197 Ignore Jekyll cache 2019-08-20 21:34:51 -04:00
Michael Rose 14e009ee29 Relax Jekyll dependency to allow for version 4.0 2019-08-20 11:25:39 -04:00
Michael Rose 43b5e5f2ef Update history 2019-08-09 09:58:48 -04:00
Michael Rose 9ffdabb51f Fix site.url in Organization/Person JSON-LD schema
Close #1906
2019-08-09 09:58:39 -04:00
Michael Rose d48fe54559 Harmonize site.url for Organization JSON-LD schema 2019-08-09 09:46:03 -04:00
Michael Rose 6d44ad6ca4 Fix typos 2019-08-09 09:25:08 -04:00
Michael Rose 0959ef52ce Update CHANGELOG and history 2019-08-09 09:19:30 -04:00
Vincent Tam b84e5fde6a Remove fullstop in some Staticman UI text (#2220)
In this UI text, the 2nd sentence is not finished.
comment_form_info : "Your email address will not be published. Required fields are marked"
2019-08-09 09:18:03 -04:00
Michael Rose 4f9aca2a55 Update CHANGELOG and history 2019-08-09 09:15:53 -04:00
Juan Diego 07461d7648 Complete Spanish localization (#2229) 2019-08-09 09:14:05 -04:00
Michael Rose bd449813e5 Update CHANGELOG and history 2019-08-09 09:08:56 -04:00
Jason Thai 666c15a66b Fix default site.author in seo.html (#2230) 2019-08-09 09:08:02 -04:00
Michael Rose a2255d03e1 Fix overlapping links in post link type
Close #2222
2019-08-02 12:31:54 -04:00
Michael Rose bd2d947a55 Add emphasis 2019-07-24 10:17:14 -04:00
Michael Rose ae2ab92420 Update CHANGELOG and history 2019-07-24 10:16:31 -04:00
Michael Rose c1df29422b Add note about allowed Markdown in author.bio 2019-07-24 10:16:22 -04:00
Ravi a1200bbd1d Allow Markdown in author bio (#2215)
* enable markdown in author bio

added the markdownify liquid filter

* Add markdown to bio in _config.yml

* add markdown to bio in /test/ _config.yml

* Change <p> to <div>
2019-07-24 10:06:29 -04:00
Michael Rose 6311da0b16 Release 4.16.5 💎 2019-07-18 18:53:36 -04:00
Michael Rose 95ad34bcf5 Update CHANGELOG and history 2019-07-18 18:48:00 -04:00
Kulbhushan Chand 958441dc15 Updated localized text string for "Punjabi" and "Hindi" language (#2212) 2019-07-18 18:46:57 -04:00
Michael Rose f1fba3d8db Update CHANGELOG and history 2019-07-17 16:10:51 -04:00
Michael Rose 64daa7f882 Add localized text string 2019-07-17 16:09:57 -04:00
Jim Drury af772af56f Fixes aria issues on search form (#2211)
* Fixes aria issues on search form
* Swapping aria-label for <label> tag in search
* Removing background gray caused by adding <form> tag to search
* Removing redundant space
* Making form not submit if key is enter

Close #2180
2019-07-17 16:05:50 -04:00
Michael Rose 75c120f56d Add site subtitle 2019-07-17 11:54:13 -04:00
Michael Rose ca786b68f7 Update CHANGELOG and history 2019-07-17 11:53:43 -04:00
Michael Rose 3bbfeac62d Document site.subtitle 2019-07-17 11:50:21 -04:00
Michael Rose 8b708a0ee3 Use span instead of div element 2019-07-17 11:46:37 -04:00
Jan De Luyck cfad550975 Display site subtitle in masthead (#2205)
* Add site subtitle
* Tabs vs spaces - the ancient conflict
* updates cfr PR #2205
* Perhaps also add the closing anchor
* Make sure we check for the right variables...
* Brown paper bag - subtitle, not description
2019-07-17 11:43:25 -04:00
Michael Rose 00bec58bee Update CHANGELOG and history 2019-07-17 11:34:35 -04:00
Potados 86e9d31857 Complete missing parts of Korean locale. (#2209)
search_placeholder_text, results_found, and back_to_top
2019-07-17 11:33:23 -04:00
Michael Rose 8444d54593 Use Font Awesome Kits to use the latest version of icons
Close #2184
2019-06-27 19:19:56 -04:00
Michael Rose dc99092c54 Remove unecessary console.log in lunr-en.js and lunr-gr.js JavaScript
Close #2193
2019-06-27 19:05:01 -04:00
Michael Rose b5b8c45530 Fix missing fallback title for table of contents 2019-06-27 19:00:23 -04:00
Michael Rose 098a475726 Update CHANGELOG and history 2019-06-27 18:47:11 -04:00
Christian Oliff 828b0041a6 remove unneeded type="text/javascript" (#2190)
REF: 
- https://google.github.io/styleguide/htmlcssguide.html#type_Attributes
- https://codeguide.co/#html-style-script
- https://developers.google.com/analytics/devguides/collection/analyticsjs/
2019-06-27 18:45:59 -04:00
Michael Rose 56701a0bde Fix broken Flickr images 2019-06-27 18:45:11 -04:00
Michael Rose 301594f1a3 Update CHANGELOG and history 2019-06-27 18:37:01 -04:00
Noah Pivnick ee81b4613a Low hanging fruit (#2186)
* Update 05-configuration.md

- fix dead Twitter Dev docs url
- slight clarification re: Player Card approval
- fix Jekyll docs url

* Update 2013-01-10-markup-image-alignment.md

- fix the/re typo
2019-06-27 18:35:21 -04:00
Michael Rose 349e4840f1 Remove extra {
Fixes #2192
2019-06-20 12:41:19 -04:00
Michael Rose 1436671500 Add skip links
Close #2182
2019-06-10 19:31:59 -04:00
Michael Rose 14adf5c9ef Remove duplicate UI text file in /docs 2019-06-10 19:21:44 -04:00
Michael Rose e664d1d4d6 Release 4.16.4 💎 2019-05-26 20:47:32 -04:00
Michael Rose 08e14587cd Update CHANGELOG and history 2019-05-26 20:37:28 -04:00
Emanuele Barsanti ca12dcd340 Arithmetic fix in _form.scss (#2169) 2019-05-26 20:36:29 -04:00
Michael Rose 74ea18ecc5 Update CHANGELOG and history 2019-05-26 20:36:04 -04:00
Vítor Bernardes 7127afad90 Fix and improve pt-BR localization. (#2162) 2019-05-26 20:35:22 -04:00
Michael Rose 3b43fac12b Update CHANGELOG and history 2019-05-26 20:34:50 -04:00
Christian Oliff f5dafab391 update Font Awesome (#2150)
REF: https://fontawesome.com/changelog/latest
2019-05-26 20:33:50 -04:00
Michael Rose 480e81d285 Update CHANGELOG and history 2019-05-26 20:33:28 -04:00
Juan Diego cd928021ea Fix and complete Spanish localization (#2149) 2019-05-26 20:32:07 -04:00
Michael Rose 80b6f60205 Create FUNDING.yml 2019-05-24 20:01:30 -04:00
Michael Rose 16fc624b82 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-05-21 11:41:51 -04:00
Michael Rose f0037aeb00 Update CHANGELOG and history 2019-05-21 11:41:36 -04:00
Michael Rose 1b30ffdec2 Add edge case 2019-05-21 11:40:57 -04:00
Michael Rose 26c1989bf6 Fix pound symbol not displaying properly for post categories and tags
Fixes #2156
2019-05-21 11:40:48 -04:00
Michael Rose cb4acd9423 Change permalink 2019-05-21 11:40:02 -04:00
Christian Oliff 64a34ee5ae add www to facebook.com link (#2160) 2019-05-20 09:11:59 -04:00
Michael Rose 843fa688cc Update CHANGELOG and history 2019-05-07 14:54:39 -04:00
Michael Rose 8da334b517 Fix permalink stacking order 2019-05-07 14:53:15 -04:00
Michael Rose 9b68374559 Release 4.16.3 💎 2019-05-03 23:07:46 -04:00
Michael Rose 06820bc6b1 Reset positioning of rel="permalink" anchors 2019-05-03 20:58:44 -04:00
Michael Rose d7af62a34b Update CHANGELOG and history 2019-05-02 08:58:59 -04:00
Michael Rose 129500b852 Update JavaScript listing 2019-05-02 08:58:17 -04:00
Michael Rose 93d29be369 Update jQuery to v3.4.1
ref #2137
2019-05-02 08:57:57 -04:00
Michael Rose 31cb045a61 Update CHANGELOG and history 2019-04-30 08:29:06 -04:00
Michael Rose abf71c6b2a Update Gumshoe to v5.1.1
Fixes #2140
2019-04-30 08:26:53 -04:00
Michael Rose 3f83a0df91 Release 4.16.2 💎 2019-04-28 14:45:59 -04:00
Michael Rose b83ab5600c Revert back to jQuery v3.3.1
3.4.0 causes issues with older jQuery plugins that haven't been updated to support it.
2019-04-28 14:44:06 -04:00
Michael Rose b797deffeb Release 4.16.1 💎 2019-04-28 14:15:55 -04:00
Michael Rose 4e41e73558 Add link to MM remote theme starter 2019-04-18 15:54:51 -04:00
Michael Rose d90cea5ef3 Update CHANGELOG and history 2019-04-15 16:27:14 -04:00
Alex Malaszkiewicz 7cd711e416 Update layout compress from v3.0.2 to v3.1.0 (#2128) 2019-04-15 16:25:47 -04:00
Michael Rose d84c3ded70 Update CHANGELOG and history 2019-04-15 16:25:12 -04:00
Alex Malaszkiewicz 0cf24b028d Update jquery v3.3.1 to v3.4.0 (#2129)
* Update jquery v3.3.1 to v3.4.0
* Update `main.min.js`

Close #2127
2019-04-15 16:23:58 -04:00
Michael Rose 90df6afc68 Update CHANGELOG and history 2019-04-12 11:43:59 -04:00
Jeckari cf0c046dd2 Made Gumshoe contingent upon a TOC being present. This prevents a console error on pages without a TOC. (#2124) 2019-04-12 11:42:10 -04:00
Michael Rose 44760c989e Release 4.16.0 💎 2019-04-09 21:26:37 -04:00
Michael Rose dce8f9c10a Update CHANGELOG and history 2019-04-09 21:21:58 -04:00
Denver Prophit Jr 3f1f7da5c8 Improve search input semantics (#2123)
* Update search_form.html

Updates Issue #2122 by adding the correct input type and aria label.

* update search_form.html

should be area-placeholder. My mistake. Updates Issue #2122

* fix aria-placeholder

Updates issue #2123 with a typo found by @mmistakes for liquid syntax.

Close #2122
2019-04-09 21:20:35 -04:00
Michael Rose d06e437ced Update CHANGELOG and history 2019-04-08 21:05:26 -04:00
Michael Rose 9164fda18a Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes
* 'master' of https://github.com/mmistakes/minimal-mistakes:
  Allow adding JavaScript files after the theme's (#2116)
2019-04-08 21:04:05 -04:00
Michael Rose df8a030a42 Allow adding JavaScript files after the theme's (#2116)
Allow adding JavaScript files after those bundled in the theme

Close #2110
2019-04-08 21:03:52 -04:00
Michael Rose 9baef1bda2 Update CHANGELOG and history 2019-04-08 21:01:43 -04:00
Luis Puerto e4c0689cda Add max-width Sass variable (#2093) 2019-04-08 20:59:57 -04:00
Michael Rose 29acb2a0bf Fix table of contents active link styling 2019-04-03 16:08:31 -04:00
Michael Rose 60b5bacca8 Add reference to Thai UI text strings 2019-04-03 15:16:04 -04:00
Michael Rose 2413ea7204 Update /docs text strings 2019-04-03 15:13:41 -04:00
Samiti d09bf47087 Add UI Text for Thai Language (#2111) 2019-04-03 15:11:44 -04:00
Michael Rose ac2975a8dd Update CHANGELOG and history 2019-04-03 15:08:02 -04:00
Kulbhushan Chand 146186ab82 Added missing Hindi Translation of ui-text ( for docs folder) (#2106)
Due to unknown reason, Hindi translation of ui-text was missing (https://github.com/mmistakes/minimal-mistakes/issues/2101)
I have added it back from a previous pull request (https://github.com/mmistakes/minimal-mistakes/pull/1888)
2019-04-03 15:06:44 -04:00
Kulbhushan Chand c7184ba2a2 Added missing Hindi Translation of ui-text (#2105)
Due to unknown reason, Hindi translation of ui-text was missing (https://github.com/mmistakes/minimal-mistakes/issues/2101)
I have added it back from a previous pull request (https://github.com/mmistakes/minimal-mistakes/pull/1888)
2019-04-03 15:06:31 -04:00
Michael Rose 63f3240366 Update CHANGELOG and history 2019-04-03 15:05:59 -04:00
Michael Rose 01150a8dac Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2019-04-03 15:04:43 -04:00
Christian Oliff 737c011d46 Update Font Awesome (#2102)
REF: https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md
2019-04-03 15:04:07 -04:00
Michael Rose b93ec8ca34 Update CHANGELOG and history 2019-04-03 15:03:27 -04:00
Andre Pacheco baec5d00b5 Typos fix and including more words for pt-br (#2098)
I just fixed some typos PT-BR, included translations for words that were not translated and changed some words to better describe the tag's meaning. This is how I use it in my Portuguese blog.
2019-04-03 15:01:31 -04:00
Michael Rose 54e141aa0b Update CHANGELOG and history 2019-03-22 16:10:47 -04:00
samdx 346c8a9257 Updated vi-VN for some missing terms (#2097)
```yml
search_placeholder_text    : "Nhập từ khóa cần tìm..."
results_found              : "Kết quả tìm được"
back_to_top                : "Về đầu trang"
```
2019-03-22 16:09:49 -04:00
Michael Rose 7fa5ac49db Update CHANGELOG and history 2019-03-22 16:09:05 -04:00
iinimata 2e9e2ab312 Fix French translation typo (#2096) 2019-03-22 16:08:02 -04:00
Michael Rose a66cf1d700 Update CHANGELOG and hsitory 2019-03-22 16:07:37 -04:00
Luis Puerto a1ff46cc59 Fix figures when they are inside of a list (#2094) 2019-03-22 16:05:48 -04:00
Michael Rose 5ed1f79557 Update CHANGELOG and history 2019-03-22 16:05:17 -04:00
Michael Rose a44dc2f914 Replace jQuery Smooth Scroll with Smooth Scroll + Gumshoe (#2082)
* Replace jQuery Smooth Scroll with Smooth Scroll + Gumshoe
* Change smooth scrolling speed
* Set maximum smooth scroll duration
* Remove Font Awesome CSS Ppseudo elements attribute from JS script

Close #2050, close #2075
2019-03-22 16:01:28 -04:00
Michael Rose 94e8280950 Add GFM task list example to post 2019-03-13 08:36:07 -04:00
Michael Rose 8625e0708a Add styling for GFM task lists
Close #2092
2019-03-13 08:30:30 -04:00
Michael Rose 097c01eff1 Adjust wording 2019-03-07 16:26:54 -05:00
Michael Rose 960d6af1a2 Update CHANGELOG and history 2019-03-05 18:56:41 -05:00
Christian Oliff bd5f157833 Update Google Universal Analytics to load async (#2079) 2019-03-05 18:56:03 -05:00
Maxime Michel d5dae86319 Add tip on how to start a YouTube embed at a given timestamp (#2077)
Close #2077
2019-03-05 18:55:29 -05:00
Michael Rose 102924ff94 Update CHANGELOG 2019-03-05 18:54:44 -05:00
Michael Rose 59111d1e01 Remove Google+
Google+ is being shutdown on April 2, 2019. Social sharing buttong, comment provider, and author link configs have been removed from the theme.

ref: https://support.google.com/plus/answer/9195133
2019-03-05 18:53:30 -05:00
Michael Rose 4a38b5fae0 Loosen Bundler dependency for theme gem 2019-03-04 16:56:05 -05:00
Michael Rose 3dbe89d3f0 Fix indents 2019-03-04 11:10:43 -05:00
Michael Rose fb74bde6f6 Fix indendation
Close #2078
2019-03-04 11:09:33 -05:00
Michael Rose 10f62bb9ac Update CHANGELOG and history 2019-03-03 19:03:49 -05:00
Shuo c1094cad44 Add missing translation of chinese (#2072)
Add missing Chinese text strings
2019-03-03 19:02:40 -05:00
Michael Rose 78817f9c66 Release 4.15.2 💎 2019-02-17 12:31:43 -05:00
Michael Rose 7f414f4968 Add link to issue 2019-02-11 16:07:11 -05:00
Michael Rose 4501e4f4b0 Update history page 2019-02-11 16:06:17 -05:00
Michael Rose 397c13f087 Update CHANGELOG and history 2019-02-11 16:03:04 -05:00
safaer 1e78b160ca exit search screen with Esc key (#2055)
* exit search with esc key feature is added
* closing search screen with esc key feature is added to _main.js
2019-02-11 16:00:14 -05:00
Michael Rose 8eb880aaa0 Revert "Add Staticman app endpoint to docs site"
This reverts commit 67c08a05fd.
2019-02-11 15:55:47 -05:00
Michael Rose 67c08a05fd Add Staticman app endpoint to docs site 2019-02-11 15:53:51 -05:00
Michael Rose 65c401b319 Fix bad YAML
Remove comma
2019-02-08 12:51:10 -05:00
Michael Rose 9be0551c69 Update CHANGELOG and history 2019-02-08 12:38:57 -05:00
Michael Rose aefe633770 Update Swedish localized UI text strings 2019-02-08 12:38:47 -05:00
Johannes adfdf4b1d9 Updated swedish translations. (#2056) 2019-02-08 12:37:03 -05:00
Michael Rose 1d4cad2fd7 Update CHANGELOG and history 2019-02-08 12:32:45 -05:00
Christian Oliff f59711945e update Font Awesome (#2053)
* update Font Awesome

REF: https://fontawesome.com/changelog/latest

* Update _includes/scripts.html

Co-Authored-By: coliff <christianoliff@yahoo.com>
2019-02-08 12:30:56 -05:00
Michael Rose 8efaa7e46a Update CHANGELOG and history 2019-02-08 12:30:16 -05:00
Michael Rose 246c678028 Compile main.min.js 2019-02-08 12:29:35 -05:00
정승원 81f7851347 [fix] syntax error of non-english character (#2042)
* Dear the make of one of the world's greatest jekyll theme.

[problem]
I found that
'Syntax Error' occurs when non-english character is included in some html elements(e.g h2, h3 ...) and 'toc' is generated based of that elements.

[debug]
Click the any element of auto generated 'toc' in the below link.
https://aliwo.github.io/swblog/series/principles_of_python/object/#%EA%B0%9D%EC%B2%B4%EC%99%80-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9D%98-%EC%A0%95%EC%9D%98

[fix]
This happens because escaped url string get right in to jquery. So I fixed it with
javascript's 'decodeURI' function! :)

* rollback unnecessary changes
2019-02-08 12:28:56 -05:00
Lucas Caton ea2b6de555 Remove 'www' from Stack Overflow URL (#2054)
Stack Overflow is no longer including `www` in its URLs.
2019-02-05 08:07:16 -05:00
Vincent Tam 622005cb44 Improve Staticman v3 documentation (#2043)
* Corrected Staticman v3 info

* Added a link to eduardoboucas/staticman#219

* Fix typo
2019-01-27 20:08:03 -05:00
Michael Rose cc4471e4dd Update CHANGELOG, history, and docs 2019-01-23 20:23:29 -05:00
Michael Rose bcb7343b17 Add Malayalam localized UI text strings 2019-01-23 20:21:38 -05:00
Hermit Physicist- Aravindvenma c510b51a43 Update ui-text.yml (#2037)
Add Malayalam localized UI text strings
2019-01-23 20:20:05 -05:00
Michael Rose d41a284bd2 Fix site.logo false positives 2019-01-23 20:05:17 -05:00
Michael Rose f405d24ce2 Update CHANGELOG and history 2019-01-23 19:36:01 -05:00
Alex Malaszkiewicz d0d267697e Add empty alt attribute to img tag with logo (#2035)
* Provide empty alt attribute (alt="") for logo image, because it does not provide information
2019-01-23 19:34:43 -05:00
Michael Rose 8f5140ab42 Update test post 2019-01-21 14:24:50 -05:00
Michael Rose afd8cfd99e Fix empty <img> when site_logo is not assigned
Ref: https://github.com/mmistakes/minimal-mistakes/pull/2026#issuecomment-454809876
2019-01-16 11:06:54 -05:00
Michael Rose c44e65cdec Release 4.15.0 💎 2019-01-16 08:26:45 -05:00
Evan Debenham 282806ae07 Add logo and title customization to the masthead (#2026)
* Add logo and title customization to the masthead

* Adjust config description

* Add test site logo to `/test`

* Document `site.logo` and `site.masthead_title`

* Update CHANGELOG and history
2019-01-15 09:07:56 -05:00
Michael Rose 86e95b4f6f Update CHANGELOG and history 2019-01-15 08:09:45 -05:00
Erik Demaine 1b7e8335fe Fix scrollspy on link clicking, and # for top of page (#2023) 2019-01-15 08:08:41 -05:00
Michael Rose a974e45712 Update 2019-01-08 08:45:57 -05:00
Huan LI (李卓桓) cac73fb87d Add support to customize issue-term (#2022)
Current we hardcoded the `pathname` for `issue-term` when we are using utterances comment provider.

It would be better for let users customize it by setting a `site.comments.utterances.issue_term` in their `_config.yml`.
2019-01-08 08:42:19 -05:00
Michael Rose 89c4169191 Update CHANGELOG, history, and canonical_url documentation 2019-01-08 08:32:24 -05:00
Sean Killeen 77059e3710 assign canonical directly if custom value exists (#2021) 2019-01-08 08:23:31 -05:00
Michael Rose 2274abb67d Update CHANGELOG and history 2019-01-08 08:22:03 -05:00
Michael Rose 4c2557d670 Merge pull request #2020 from edemaine/scrollspy 2019-01-08 08:19:16 -05:00
Erik Demaine 04e1614184 Define $active-color in terms of $primary-color 2019-01-04 15:46:01 -05:00
Erik Demaine 6990f8fcc9 Use jQuery throttle library 2019-01-04 12:57:33 -05:00
Erik Demaine f2f580101e Scrollspy-style updating of hash and TOC highlighting 2019-01-04 12:45:04 -05:00
Michael Rose d361c00f8a Update CHANGELOG and history 2019-01-04 12:33:29 -05:00
Erik Demaine 33551c8cdb Clicking TOC links changes hash fragment (#2019)
* Fix smooth scroll breaking back button #1767
* Change URL's hash fragment when clicking on TOC
* Switch from hashchange to popstate event handler

This seems to have better behavior with the Forward button, on page load,
and always scrolls in the right direction.

Close #1767
2019-01-04 12:31:38 -05:00
Michael Rose 2784b3ad43 Bump version to 4.14.2 2019-01-04 12:16:38 -05:00
Michael Rose 9232a38f2a Release 4.14.2 💎 2019-01-01 19:13:16 -05:00
Michael Rose 53a45a240e Update copyright year 2019-01-01 19:06:45 -05:00
Michael Rose c848d1ed61 Update CHANGELOG and history 2019-01-01 18:36:06 -05:00
Michael Rose b45c66f1f8 Update 2019-01-01 18:36:00 -05:00
Sean Killeen a81ed706da Accessibility: Add aria-label to the search button (#2014)
* Accessibility: Add aria-label to the search button
* Update button aria text
* Add aria text to menu toggle
* Add span for search toggle
* Update span for menu label & remove aria
* Update ui-text.yml to add search_label
2019-01-01 18:33:51 -05:00
Michael Rose 1cd1e7112a Fix wide tables that overflow parent container
Close #2008
2019-01-01 18:31:32 -05:00
Michael Rose 47450e8d08 Update CHANGELOG and history 2019-01-01 17:06:55 -05:00
Justin Rummel f27bd39a41 lunr 2.3.5 update (#2010) 2019-01-01 17:05:06 -05:00
Michael Rose 70c937392d Fix typo 2019-01-01 16:53:19 -05:00
Michael Rose 9fb484940f Update CHANGELOG and history 2019-01-01 16:52:54 -05:00
Christian Oliff 8ec8def1b8 shorter IE conditional statement (#2006)
saves 5 bytes :-)
2019-01-01 16:50:33 -05:00
Michael Rose f98445ef96 Update CHANGELOG and history 2019-01-01 16:49:49 -05:00
Roy 599847bf2d Persian Translation of UI Elements (#2004)
* Add Persian translation to ui-text.yml
* Mention the added Persian translation in the documentation
2019-01-01 16:47:05 -05:00
Michael Rose f3f73fdedc Update CHANGELOG and history 2019-01-01 16:42:55 -05:00
Vincent Tam 7de372cea9 [Bug fix]: Added missing Staticman Spanish UI text (#1997)
Taken from line 91 of 5d-eu/messages.php@ec56008
2019-01-01 16:41:20 -05:00
Michael Rose e647af55dd Update CHANGELOG and history 2019-01-01 16:40:39 -05:00
Vincent Tam c1412e3958 Remove unused variables (#1996) 2019-01-01 16:39:39 -05:00
Michael Rose f4d890f282 Update CHANGELOG and history 2019-01-01 16:04:06 -05:00
Christian Oliff 4c6dd4fb41 update font awesome (#1995)
REF: https://fontawesome.com/changelog/latest
2019-01-01 16:02:59 -05:00
Harry Kalantzis 7178b37b08 Fixed Netlify typo (#2013) 2018-12-31 21:15:07 -05:00
Christian Oliff 5b8a9de8eb HTTPS Twitter short link (#2001) 2018-12-19 08:02:41 -05:00
Michael Rose f83fce9a02 Fix broken image 2018-12-11 08:10:51 -05:00
Michael Rose f6d41f8fc8 Fix broken image
Close #1994
2018-12-11 08:10:27 -05:00
Michael Rose aeb09ff7e1 Update YAML example 2018-12-04 14:22:47 -05:00
Michael Rose 63109a8316 Update CHANGELOG and history 2018-12-04 14:20:09 -05:00
Michael Rose 5a8f737732 Update test post 2018-12-04 14:20:00 -05:00
Michael Rose 9de7eab353 Allow sidebar navs with custom sidebar content
Multiple sidebar navs can also be included on a page:

```
sidebar:
  - title: Navigation 1
    nav: nav1
  - title: Navigation 2
    nav: nav2
```

Fixes #1986
2018-12-04 14:17:54 -05:00
Michael Rose be82750f82 Update CHANGELOG and history 2018-12-03 08:40:21 -05:00
Eric Fung f4f6e32cc3 Fix function name for Google Custom Search (#1983)
fbafe58e40b1bd4a2628aef1eb5955ab57dcfaf4 renamed the function in the
scripts file, but did not rename the call sites.
2018-12-03 08:38:33 -05:00
Kulbhushan Chand 6a93cea9bd Update README.md (#1982)
Just a minor addition, the word Hindi written in devnagri script (the script used for this language). Makes it easier to visually understand what script we are talking about.
2018-12-03 08:34:06 -05:00
Kulbhushan Chand f36a8a0bb0 Update about.md (#1981)
Just a minor addition, the word Hindi written in devnagri script (the script used for this language). Makes it easier to visually understand what script we are talking about.
2018-12-03 08:33:51 -05:00
Michael Rose 19862018e5 Update CHANGELOG and history 2018-11-27 09:08:52 -05:00
Justin Rummel 82e9aee6a8 Change remaining schema.org markup to https (#1978) 2018-11-27 09:07:51 -05:00
Michael Rose 4e745d2f14 Update NPM dependencies
cc/ #1977
2018-11-27 08:27:08 -05:00
Michael Rose 763d1c1bb5 Release 4.14.1 gem 2018-11-26 08:17:49 -05:00
Michael Rose b689af7eea Fix closed navicon on hover 2018-11-26 08:14:40 -05:00
Michael Rose 83aa6ecb98 Update CHANGELOG 2018-11-25 23:07:12 -05:00
Michael Rose ed09740b42 Release 4.14.0 💎 2018-11-25 23:02:49 -05:00
Michael Rose 5a68b46e5a Add hover state 2018-11-25 22:17:23 -05:00
Michael Rose edaf61b3ef Disable comments 2018-11-25 22:11:05 -05:00
Michael Rose e954039b13 Change teaser image 2018-11-25 22:10:56 -05:00
Michael Rose 2a64d8f514 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-11-25 20:56:23 -05:00
Michael Rose 573ce183c8 Update CHANGELOG and history 2018-11-25 20:56:20 -05:00
Mike Mylonakis 319a74621b Prevent current post from showing in the "You may also enjoy" (related (#1976)
posts) section
2018-11-25 20:54:44 -05:00
Michael Rose 851426dba2 Update CHANGELOG and history 2018-11-25 20:49:15 -05:00
Kulbhushan Chand 1a88b6a24a Changed schema.org to secure links (https) (#1969) 2018-11-25 20:47:47 -05:00
Michael Rose e2ea799424 Update CHANGELOG and history 2018-11-25 20:47:20 -05:00
Michael Rose 99ca41c4fe Add Google Drive provider documentation 2018-11-25 20:47:14 -05:00
Lars Olesen 8a03ffb439 Add Google Drive as video provider (#1967) 2018-11-25 20:40:54 -05:00
Michael Rose 31828d3174 Update CHANGELOG and history 2018-11-25 20:37:23 -05:00
Michael Rose 22a9c523d6 Use dark syntax highlighting 2018-11-25 20:20:15 -05:00
Michael Rose 2729b692f3 Adjust navigation toggles 2018-11-25 20:20:03 -05:00
Michael Rose cbcc53de31 Add focus color 2018-11-25 20:19:24 -05:00
Michael Rose 3cd24c4b69 Increase padding 2018-11-25 19:52:52 -05:00
Michael Rose a59dd4a84c Increase font-size 2018-11-25 19:52:45 -05:00
Michael Rose e4af8a4036 Update theme documentation 2018-11-25 19:48:19 -05:00
Michael Rose e24e259650 Update README.md 2018-11-25 19:02:37 -05:00
Michael Rose b2b66378ac Update localized text list 2018-11-21 15:16:11 -05:00
Michael Rose a2620d34f6 Add support for utterances (#1966)
* Add support for utterances
* Add utterances config documentation
* Update CHANGELOG and history

Close #1909
2018-11-21 14:59:14 -05:00
Michael Rose d89c9a35fe Update CHANGELOG and history 2018-11-21 14:16:19 -05:00
Kulbhushan Chand ed24ab50be Punjabi Translation of ui-text (#1962)
* Punjabi Translation of ui-text

There are more than 100 million native speakers of Punjabi language. I am one of them. More details about [punjabi on wikipedia](https://en.wikipedia.org/wiki/Punjabi_language).
All the punjabi translations are perfect with the following exceptions-
  - in the variable name (_config.yml and words_per_minute) which are intentionally left in english.
  - meta_label is empty
2018-11-21 14:14:45 -05:00
Michael Rose bede124d3f Update CHANGELOG and history 2018-11-21 14:08:55 -05:00
Maxime Michel 8fd8a0ff3d Use privacy aware embed options for YouTube & Vimeo (#1964) 2018-11-21 14:06:26 -05:00
Kulbhushan Chand dbec2b9975 Added missing ref attribute (#1959)
As suggested by @mmistakes in https://github.com/mmistakes/minimal-mistakes/issues/1948#issuecomment-439888193
2018-11-20 14:23:07 -05:00
Michael Rose c00e5cf84c Update last modified time 2018-11-19 15:37:01 -05:00
Vincent Tam 4b8de03b82 Update 05-configuration.md (#1956) 2018-11-19 15:34:53 -05:00
Michael Rose 309b664cdb Add jekyll-include-cache installation instructions 2018-11-18 12:59:57 -05:00
Michael Rose 7d257e4e8b Fix FontAwesome script
ref #1922
2018-11-14 10:54:18 -05:00
Michael Rose 2cd757e601 Add crossorigin attribute to FontAwesome script
ref #1922
2018-11-14 10:11:00 -05:00
Michael Rose 5c7fe6b603 Update CHANGELOG and history 2018-11-13 09:37:44 -05:00
Alex Malaszkiewicz d786c190c7 Add rel attribute to social media links in author profile and fotter (#1924) 2018-11-13 09:37:14 -05:00
Michael Rose 85237fda1e Update CHANGELOG and history 2018-11-13 09:35:54 -05:00
Léo Grange d0ee15eb5c add integrity hash for Font Awesome script (#1922)
* add integrity hash for Font Awesome script

As the script is loaded from an external CDN (use.fontawesome.com), its integrity must be ensured mainly for security reasons.
This hash must be updated together with the exact version of Font Awesome, as given on their website.

* Update to FontAwesome 5.5.0
2018-11-13 09:34:54 -05:00
Michael Rose 9aedf9a694 Fix broken link in layout documentation
Close #1940
2018-11-13 09:30:21 -05:00
Michael Rose 6fcd16154a Fix link 2018-11-05 14:52:38 -05:00
Michael Rose 85dca86d0a Fix link 2018-11-05 14:52:09 -05:00
Michael Rose f4cfc87b0a Update CHANGELOG and history 2018-10-29 10:09:39 -04:00
Alex Malaszkiewicz 0db8fc3ffb Remove unnecessary closing bracket (#1915) 2018-10-29 10:09:03 -04:00
Michael Rose 50e1ed8900 Improve color contrast of primary buttons and links 2018-10-29 10:06:52 -04:00
Michael Rose 6bb8ff0c24 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-10-29 08:56:09 -04:00
Michael Rose 6690630917 Fix breadcrumb navigation alignment
Fixes #1917
2018-10-29 08:55:05 -04:00
Staticman edae4eaa00 New comment by Jair G (#1911) 2018-10-24 20:07:21 -04:00
Michael Rose 39a0aa91de Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-10-23 10:40:59 -04:00
Michael Rose bf2c543c6c Update CHANGELOG and history 2018-10-23 10:38:42 -04:00
Yash Ketkar 45d2ad86ed Hindi Translation of ui-text #1887 (#1888)
* Hindi Translation of ui-text #1887
* Update README.md and about.md
2018-10-23 10:37:41 -04:00
Michael Rose 28e918e47d Update history 2018-10-23 10:33:28 -04:00
Paul Fioravanti 98d518817f Revert caching for comments and analytics. Fixes #1905 (#1907) 2018-10-23 10:32:41 -04:00
Michael Rose c8f4820d31 Fix Algolia search link positioning (#1904)
* Add link for testing purposes
* Fix excerpt link positioning in Algolia search results
* Fix Algolia search input color
* Update CHANGELOG and history

Fixes #1903
2018-10-22 13:56:43 -04:00
Michael Rose de15fb80c4 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-10-09 17:46:38 -04:00
Michael Rose 4f21d99d56 Fix license path 2018-10-09 17:46:34 -04:00
Michael Rose c3693656dd Update license (#1886) 2018-10-09 17:44:56 -04:00
Michael Rose 91e71e3de5 Update CHANGELOG and history 2018-10-09 14:49:36 -04:00
Justin Rummel e665944f26 Update LUNR to 2.3.3 (#1885)
Close #1882
2018-10-09 14:48:51 -04:00
Michael Rose f932eeae3e Update CHANGELOG and history 2018-10-09 13:55:53 -04:00
Ben McGough 05d296c247 Fix Lunr search index merging words (#1884)
Close #1883
2018-10-09 13:54:36 -04:00
Michael Rose 86d64f412c Move jekyll-include-cache notice up 2018-10-04 23:27:49 -04:00
Michael Rose 9e8899569a Add jekyll-include-cache to docs Gemfile 2018-10-04 20:21:36 -04:00
Michael Rose 2a323940b7 Add notice for fixing Unknown tag 'include_cached'
Fixes #1875
2018-10-04 20:17:37 -04:00
Michael Rose e704cd40d4 Cache "static" includes to improve build performance (#1874)
* Add jekyll-include-cache plugin
* Cache "static" includes to improve build performance
* Update CHANGELOG and history

"Static" refers to those includes that don't rely on data passed from the page content.
2018-10-04 15:48:26 -04:00
Michael Rose c801107754 Make entire archive/feature item "clickable" (#1864)
* Make entire feature item "clickable"

Use a pseudo element on the call to action button to cover the entire feature item and make it "clickable".

* Make entire archive item "clickable"

Use a pseudo element on the `<a>` element to cover the entire archive item and make it "clickable".

* Update CHANGELOG and history

* Reference issue
2018-10-02 11:04:28 -04:00
Staticman 71df5e0112 New comment by Bobby (#1863) 2018-10-02 08:29:40 -04:00
Michael Rose dcdbba835c Change GitHub issue templates 2018-09-28 20:45:34 -04:00
Michael Rose a7258d4fe4 Update CHANGELOG and history 2018-09-21 09:50:42 -04:00
Maxime Michel 4bd6efc323 Allow custom Staticman endpoints (#1845) 2018-09-21 09:49:58 -04:00
Michael Rose 6d6d738e23 Update CHANGELOG and history 2018-09-16 18:20:05 -04:00
Christian Oliff 2f1b8f3321 Update algolia-search-scripts.html (#1836)
not needed for HTML5 and saves a few bytes by removing
2018-09-16 18:18:46 -04:00
Michael Rose 0a7cab0180 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-09-16 18:17:39 -04:00
Michael Rose a5e96659a0 Update CHANGELOG and history 2018-09-16 18:17:37 -04:00
Christian Oliff adfbe8622b Remove unneeded HandheldFriendly and MobileOptimized meta tags (#1837)
Fixes: #1835
2018-09-16 18:16:47 -04:00
Michael Rose 7869947455 Update CHANGELOG and history 2018-09-16 18:15:06 -04:00
Christian Oliff fe67efdee8 Update Font Awesome to latest version (#1830) 2018-09-16 18:13:50 -04:00
Michael Rose 396e2ae402 Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-09-16 18:12:41 -04:00
Michael Rose 2167884cae Update CHANGELOG and history 2018-09-16 18:12:38 -04:00
Christian Oliff 07f203bd1d Always load Google 404 Linkhelp script over HTTPS (#1829)
Also removed unneeded type
2018-09-16 18:10:13 -04:00
Michael Rose a95fae0155 Properly apply relative_url filter to internal links in header overlay actions array 2018-09-11 11:42:21 -04:00
Michael Rose 90f5a98406 Remove deprecated base_path include helper 2018-09-11 09:58:22 -04:00
Michael Rose 2f40bb6403 Release 4.13.0 💎 2018-09-10 19:38:50 -04:00
Michael Rose 98682985d7 Add Romanian localized UI text strings 2018-09-10 19:06:31 -04:00
Claudiu Constantin 5b2a699a11 Update ui-text.yml with Romanian translation (#1814)
* Update ui-text.yml with Romanian translation

Added the translations for Romanian

* Update ui-text.yml

Corrected „less_than” with a proper translation for the context where it is being used

* Update docs

Added Romanian to the languages list
2018-09-10 19:04:20 -04:00
Michael Rose f4bb3971e7 Add social icon colors for Reddit and Mastodon 2018-09-10 15:11:58 -04:00
Michael Rose 2ef2f27ab9 Update CHANGELOG and history 2018-09-10 15:11:45 -04:00
Michael Rose 1504379168 Improve footer link flexibility
Deprecate hardcoded footer links in favor or new `footer.links` array for any link and in any order. All of Font Awesome's icons are available for use.

```
footer:
  links:
    - label: "Twitter"
      icon: "fab fa-fw fa-twitter-square"
      url: "https://twitter.com/username"
    - label: "GitHub"
      icon: "fab fa-fw fa-github"
      url: "https://github.com/username"
    - label: "Instagram"
      icon: "fab fa-fw fa-instagram"
      url: "https://instagram.com/username"
```
2018-09-10 15:06:50 -04:00
Michael Rose 42de7a56fc Improve author link flexibility
Deprecate social networking links in `_config.yml` in favor or new `author.links` array for any link and in any order. All of Font Awesome's icons are available for use.

```
author:
  links:
    - label: "Your Website"
      icon: "fas fa-fw fa-link"
      url: "https://your-site.com"
    - label: "Twitter"
      icon: "fab fa-fw fa-twitter-square"
      url: "https://twitter.com/username"
    - label: "GitHub"
      icon: "fab fa-fw fa-github"
      url: "https://github.com/username"
    - label: "Instagram"
      icon: "fab fa-fw fa-instagram"
      url: "https://instagram.com/username"
```

Fixes #1581
2018-09-10 15:05:07 -04:00
Michael Rose 68df0b6b63 Add header actions array support for multiple call to action links
```
header:
  overlay_image: /assets/images/unsplash-image-1.jpg
  og_image: /assets/images/page-header-og-image.png
  caption: "Photo credit: [**Unsplash**](https://unsplash.com)"
  actions:
    - label: "Learn More"
      url: "https://unsplash.com"
```

Fixes #1461
2018-09-10 11:04:06 -04:00
Michael Rose 833ab3933d Add support to gallery helper for defining column layout
e.g. `{% include gallery id="gallery" layout="half" caption="2 column gallery caption" %}

Fixes #1821
2018-09-10 10:24:24 -04:00
Michael Rose d082dc2a39 Fix sidebar navigation list toggle.
Prettier managled `@include breakpoint` media queries causing the input/checkbox toggle hack styles to go missing.

Fixes #1819
2018-09-05 15:29:45 -04:00
Michael Rose d23a569eff Update CHANGELOG and history 2018-09-05 15:18:56 -04:00
Michael Rose 0fe7a7af2e Merge branch 'master' of https://github.com/mmistakes/minimal-mistakes 2018-09-05 15:17:43 -04:00
Michael Rose 192c22a637 Place :hover declarations after :visited to fix hover animation
Fixes #1820
2018-09-05 15:16:31 -04:00
Michael Rose 174dfd1ba0 Update CHANGELOG and history 2018-09-02 12:20:50 -04:00
179 changed files with 17773 additions and 3315 deletions
+16 -5
View File
@@ -1,15 +1,26 @@
# Contributing
Having trouble working with the theme? Found a typo in the documentation? Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)? Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new) or [pull request](https://help.github.com/articles/using-pull-requests/). If this is your first pull request, it may be helpful to read up on the [GitHub Flow](https://guides.github.com/introduction/flow/) first.
Having trouble working with the theme? Found a typo in the documentation?
Interested in adding a feature or [fixing a bug](https://github.com/mmistakes/minimal-mistakes/issues)?
Then by all means [submit an issue](https://github.com/mmistakes/minimal-mistakes/issues/new)
or [pull request](https://help.github.com/articles/using-pull-requests/).
If this is your first pull request, it may be helpful to read up on the
[GitHub Flow](https://guides.github.com/introduction/flow/) first.
Minimal Mistakes has been designed as a base for you to customize and fit your site's unique needs. Please keep this in mind when requesting features and/or submitting pull requests. If it's not something that most people will use, I probably won't consider it. When in doubt ask.
Minimal Mistakes has been designed as a base for you to customize and fit your
site's unique needs. Please keep this in mind when requesting features and/or
submitting pull requests. If it's not something that most people will use, I
probably won't consider it. When in doubt ask.
This goes for author sidebar links and "share button" additions -- I have no intention of merging in every possibly option, the essentials are there to get you started :smile:.
This goes for author sidebar links and "share button" additions -- I have no
intention of merging in every possibly option, the essentials are there to get
you started :smile:.
## Pull Requests
When submitting a pull request:
1. Clone the repo.
2. Create a branch off of `master` and give it a meaningful name (e.g. `my-awesome-new-feature`) and describe the feature or fix.
3. Open a pull request on GitHub.
2. Create a branch off of `master` and give it a meaningful name (e.g.
`my-awesome-new-feature`) and describe the feature or fix.
3. Open a pull request on GitHub.
+1
View File
@@ -0,0 +1 @@
custom: https://www.paypal.me/mmistakes
@@ -1,3 +1,8 @@
---
name: "Bug Report"
about: "Is something not working as expected?"
---
<!--
Before opening a new issue please:
@@ -7,17 +12,11 @@
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/
- Ask for help at http://talk.jekyllrb.com/
After exhausting these suggestions use the format below.
-->
## Description
<!--
Describe the issue or proposed feature enhancement.
-->
## Environment
<!--
@@ -34,15 +33,14 @@
- Ruby gem or remote theme version:
- Jekyll version:
- Git repository URL:
- Operating system:
- GitHub Pages hosted (if yes provide URL to site):
---
- Operating system:
## Expected behavior
<!--
Describe the intended output or what you expected to see.
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
@@ -61,3 +59,10 @@
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.
-->
+16
View File
@@ -0,0 +1,16 @@
---
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? -->
+32
View File
@@ -0,0 +1,32 @@
---
name: "Enhancement / Feature Request"
about: "What would make this theme better?"
---
<!--
Before opening a new issue please search all issues at
https://github.com/mmistakes/minimal-mistakes/issues to avoid duplication.
-->
## Summary
<!--
A short explanation of the enhancement or feature.
-->
## Motivation
<!--
Why do you want to see this feature in the theme?
What use cases does it support?
NOTE: This theme has been designed as a base for you to customize and fit
your site's unique needs. If a feature is not something most people will use,
it likely won't be considered. When in doubt ask.
-->
## Drawbacks
<!--
Why should this enhancement or feature **not** be considered?
-->
+22
View File
@@ -0,0 +1,22 @@
---
name: "Question"
about: "Having trouble working with the theme?"
---
<!--
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 ask your question below.
NOTE: Please provide a code repository, gist, code snippet, sample files, or
screenshots to triage your issue.
-->
+26
View File
@@ -0,0 +1,26 @@
<!--
Thanks for creating a Pull Request! Before you submit, please make sure
you've done the following:
- Read the contributing document at https://github.com/mmistakes/minimal-mistakes#contributing
-->
<!--
Choose one of the following by uncommenting it:
-->
<!-- This is a bug fix. -->
<!-- This is an enhancement or feature. -->
<!-- This is a documentation change. -->
## Summary
<!--
Provide a description of what your pull request changes.
-->
## Context
<!--
Is this related to any GitHub issue(s)?
-->
+21 -6
View File
@@ -1,14 +1,29 @@
*.gem
# Vim
*~
*.sw[p_]
# Sublime Text
*.sublime-project
*.sublime-workspace
# Ruby Gem
*.gem
.bundle
Gemfile.lock
**/vendor/bundle
# Node.js and NPM
node_modules
npm-debug.log*
package-lock.json
codekit-config.json
# macOS
.DS_Store
# Jekyll generated files
.jekyll-cache
.jekyll-metadata
.sass-cache
_asset_bundler_cache
_site
codekit-config.json
example/_site
Gemfile.lock
node_modules
npm-debug.log*
+577 -204
View File
File diff suppressed because it is too large Load Diff
+21
View File
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2013-2020 Michael Rose and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-63
View File
@@ -1,63 +0,0 @@
The MIT License (MIT)
Copyright (c) 2013-2018 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
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Minimal Mistakes incorporates icons from [The Noun Project](https://thenounproject.com/)
creators Garrett Knoll, Arthur Shlain, and Tracy Tam.
Icons are distributed under Creative Commons Attribution 3.0 United States (CC BY 3.0 US).
Minimal Mistakes incorporates [Font Awesome](http://fontawesome.io/),
Copyright (c) 2017 Dave Gandy.
Font Awesome is distributed under the terms of the [SIL OFL 1.1](http://scripts.sil.org/OFL)
and [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates photographs from [Unsplash](https://unsplash.com).
Minimal Mistakes incorporates [Susy](http://susy.oddbird.net/),
Copyright (c) 2017, Miriam Eric Suzanne.
Susy is distributed under the terms of the [BSD 3-clause "New" or "Revised" License](https://opensource.org/licenses/BSD-3-Clause).
Minimal Mistakes incorporates [Breakpoint](http://breakpoint-sass.com/).
Breakpoint is distributed under the terms of the [MIT/GPL Licenses](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [FitVids.js](https://github.com/davatron5000/FitVids.js/),
Copyright (c) 2013 Dave Rubert and Chris Coyier.
FitVids is distributed under the terms of the [WTFPL License](http://sam.zoy.org/wtfpl/).
Minimal Mistakes incorporates [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/),
Copyright (c) 2014-2016 Dmitry Semenov, http://dimsemenov.com.
Magnific Popup is distributed under the terms of the MIT License.
Minimal Mistakes incorporates [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll),
Copyright (c) 2017 Karl Swedberg.
jQuery Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [GreedyNav.js](https://github.com/lukejacksonn/GreedyNav),
Copyright (c) 2015 Luke Jackson.
GreedyNav.js is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [Jekyll Group-By-Array](https://github.com/mushishi78/jekyll-group-by-array),
Copyright (c) 2015 Max White <mushishi78@gmail.com>.
Jekyll Group-By-Array is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [Lunr](http://lunrjs.com),
Copyright (c) 2017 Oliver Nightingale.
Lunr is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
+56 -28
View File
@@ -1,14 +1,20 @@
# [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/)
# [Minimal Mistakes Jekyll theme](https://mmistakes.github.io/minimal-mistakes/)
[![LICENSE](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/mmistakes/minimal-mistakes/master/LICENSE.txt)
[![Jekyll](https://img.shields.io/badge/jekyll-%3E%3D%203.6-blue.svg)](https://jekyllrb.com/)
[![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 hosting your personal site, blog, or portfolio on GitHub or self-hosting on your own server. As the name implies --- styling is purposely minimalistic to be enhanced and customized by you :smile:.
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.
[![Minimal Mistakes live preview][2]][1]
[1]: https://mmistakes.github.io/minimal-mistakes/
@@ -16,36 +22,36 @@ Minimal Mistakes is a flexible two-column Jekyll theme. Perfect for hosting your
![layout examples](screenshot-layouts.png)
## Notable Features
## Notable features
- Bundled as a "theme gem" for easier install/upgrading.
- Bundled as a "theme gem" for easier installation/upgrading.
- Compatible with GitHub Pages.
- Support for Jekyll's built-in Sass/SCSS preprocessor.
- Nine different skins (color variations).
- 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
- 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 v1 and v2](https://staticman.net/), and custom).
- Commenting support (powered by [Disqus](https://disqus.com/), [Facebook](https://developers.facebook.com/docs/plugins/comments), Google+, [Discourse](https://www.discourse.org/), static-based via [Staticman](https://staticman.net/), and [utterances](https://utteranc.es/)).
- [Google Analytics](https://www.google.com/analytics/) support.
- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Chinese, Danish, Dutch, French (Français), German (Deutsch), Greek, Hungarian, Indonesian, Italian (Italiano), Japanese, Korean, Nepali (Nepalese), Polish, Russian, Slovak, Spanish (Español), Swedish, Turkish (Türkçe), and Vietnamese.
- UI localized text in English (default), Brazilian Portuguese (Português brasileiro), Catalan, Chinese, Danish, Dutch, Finnish, French (Français), German (Deutsch), Greek, Hindi (हिंदी), Hungarian, Indonesian, Irish (Gaeilge), Italian (Italiano), Japanese, Korean, Malayalam, Myanmar (Burmese), Nepali (Nepalese), Persian (فارسی), Polish, Punjabi (ਪੰਜਾਬੀ), Romanian, Russian, Slovak, Spanish (Español), Swedish, Thai, Turkish (Türkçe), and Vietnamese.
## Skins (Color Variations)
## Skins (color variations)
This theme comes in nine different skins (including the default one).
This theme comes in nine different skins (in addition to the default one).
| `air` | `contrast` | `dark` |
| --- | --- | --- |
| ![air skin](https://mmistakes.github.io/minimal-mistakes/assets/images/air-skin-archive.png) | ![contrast skin](https://mmistakes.github.io/minimal-mistakes/assets/images/contrast-skin-archive.png) | ![dark skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dark-skin-archive.png) |
| [![air skin](https://mmistakes.github.io/minimal-mistakes/assets/images/air-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/air-skin-archive-large.png) | [![contrast skin](https://mmistakes.github.io/minimal-mistakes/assets/images/contrast-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/contrast-skin-archive-large.png) | [![dark skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dark-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/dark-skin-archive-large.png) |
| `dirt` | `mint` | `sunrise` |
| --- | --- | --- |
| ![dirt skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dirt-skin-archive.png) | ![mint skin](https://mmistakes.github.io/minimal-mistakes/assets/images/mint-skin-archive.png) | ![sunrise skin](https://mmistakes.github.io/minimal-mistakes/assets/images/sunrise-skin-archive.png) |
| [![dirt skin](https://mmistakes.github.io/minimal-mistakes/assets/images/dirt-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/dirt-skin-archive-large.png) | [![mint skin](https://mmistakes.github.io/minimal-mistakes/assets/images/mint-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/mint-skin-archive-large.png) | [![sunrise skin](https://mmistakes.github.io/minimal-mistakes/assets/images/sunrise-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/sunrise-skin-archive-large.png) |
| `aqua` | `neon` | `plum` |
| --- | --- | --- |
| ![aqua skin](https://mmistakes.github.io/minimal-mistakes/assets/images/aqua-skin-archive.png) | ![neon skin](https://mmistakes.github.io/minimal-mistakes/assets/images/neon-skin-archive.png) | ![plum skin](https://mmistakes.github.io/minimal-mistakes/assets/images/plum-skin-archive.png) |
| [![aqua skin](https://mmistakes.github.io/minimal-mistakes/assets/images/aqua-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/aqua-skin-archive-large.png) | [![neon skin](https://mmistakes.github.io/minimal-mistakes/assets/images/neon-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/neon-skin-archive-large.png) | [![plum skin](https://mmistakes.github.io/minimal-mistakes/assets/images/plum-skin-archive.png)](https://mmistakes.github.io/minimal-mistakes/assets/images/plum-skin-archive-large.png) |
## Demo Pages
## Demo pages
| Name | Description |
| ------------------------------------------- | ----------------------------------------------------- |
@@ -70,11 +76,15 @@ Additional sample posts are available under [posts archive][year-archive] on the
## Installation
There are three ways to install the theme: as a Ruby gem (for self-hosted sites), as a Ruby gem + jekyll-remote-theme plugin (GitHub Pages hosted sites), or forking/directly copying all of the theme files into your project.
There are three ways to install: as a [gem-based theme](https://jekyllrb.com/docs/themes/#understanding-gem-based-themes), as a [remote theme](https://blog.github.com/2017-11-29-use-any-theme-with-github-pages/) (GitHub Pages compatible), or forking/directly copying all of the theme files into your project.
### Ruby Gem Method
### Gem-based method
1. Install the theme as a Ruby Gem by adding it to your `Gemfile` like so:
With Gem-based themes, directories such as the `assets`, `_layouts`, `_includes`, and `_sass` are stored in the theme’s gem, hidden from your immediate view. Yet all of the necessary directories will be read and processed during Jekyll’s build process.
This allows for easier installation and updating as you don't have to manage any of the theme files. To install:
1. Add the following to your `Gemfile`:
```ruby
gem "minimal-mistakes-jekyll"
@@ -94,7 +104,11 @@ There are three ways to install the theme: as a Ruby gem (for self-hosted sites)
To update the theme run `bundle update`.
### GitHub Pages Method
### Remote theme method
Remote themes are similar to Gem-based themes, but do not require `Gemfile` changes or whitelisting making them ideal for sites hosted with GitHub Pages.
To install:
1. Create/replace the contents of your `Gemfile` with the following:
@@ -104,13 +118,17 @@ To update the theme run `bundle update`.
gem "github-pages", group: :jekyll_plugins
```
2. Fetch and update bundled gems by running the following [Bundler](http://bundler.io/) command:
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:
```bash
bundle
```
3. Add `remote_theme: "mmistakes/minimal-mistakes"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
4. Add `remote_theme: "mmistakes/minimal-mistakes@4.20.1"` to your `_config.yml` file. Remove any other `theme:` or `remote_theme:` entry.
**Looking for an example?** Use the [Minimal Mistakes remote theme starter](https://github.com/mmistakes/mm-github-pages-starter/generate) for the quickest method of getting a GitHub Pages hosted site up and running. Generate a new repository from the starter, replace sample content with your own, and configure as needed.
## Usage
@@ -169,7 +187,9 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
- [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/)
- [FitVids.JS](http://fitvidsjs.com/)
- [GreedyNav.js](https://github.com/lukejacksonn/GreedyNav)
- [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll)
- [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
- [Gumshoe](https://github.com/cferdinandi/gumshoe)
- [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/)
- [Lunr](http://lunrjs.com)
---
@@ -178,7 +198,7 @@ To test the theme, run `bundle exec rake preview` and open your browser at `http
The MIT License (MIT)
Copyright (c) 2013-2018 Michael Rose and contributors
Copyright (c) 2013-2020 Michael Rose and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -218,15 +238,23 @@ Breakpoint is distributed under the terms of the [MIT/GPL Licenses](http://opens
Minimal Mistakes incorporates [FitVids.js](https://github.com/davatron5000/FitVids.js/),
Copyright (c) 2013 Dave Rubert and Chris Coyier.
FitVids is distributed under the terms of the [WTFPL License](http://sam.zoy.org/wtfpl/).
FitVids is distributed under the terms of the [WTFPL License](http://www.wtfpl.net/).
Minimal Mistakes incorporates [Magnific Popup](http://dimsemenov.com/plugins/magnific-popup/),
Copyright (c) 2014-2016 Dmitry Semenov, http://dimsemenov.com.
Magnific Popup is distributed under the terms of the MIT License.
Minimal Mistakes incorporates [jQuery Smooth Scroll](https://github.com/kswedberg/jquery-smooth-scroll),
Copyright (c) 2017 Karl Swedberg.
jQuery Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [Smooth Scroll](http://github.com/cferdinandi/smooth-scroll),
Copyright (c) 2019 Chris Ferdinandi.
Smooth Scroll is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
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).
Minimal Mistakes incorporates [jQuery throttle / debounce](http://benalman.com/projects/jquery-throttle-debounce-plugin/),
Copyright (c) 2010 "Cowboy" Ben Alman.
jQuery throttle / debounce is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [GreedyNav.js](https://github.com/lukejacksonn/GreedyNav),
Copyright (c) 2015 Luke Jackson.
@@ -241,5 +269,5 @@ Copyright (c) 2017 Vladimir Jimenez.
Pure Liquid Jekyll Table of Contents is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
Minimal Mistakes incorporates [Lunr](http://lunrjs.com),
Copyright (c) 2017 Oliver Nightingale.
Copyright (c) 2018 Oliver Nightingale.
Lunr is distributed under the terms of the [MIT License](http://opensource.org/licenses/MIT).
+60 -50
View File
@@ -18,16 +18,19 @@ minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt"
locale : "en-US"
title : "Site Title"
title_separator : "-"
subtitle : # site tagline that appears below site title in masthead
name : "Your Name"
description : "An amazing website."
url : # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
baseurl : # the subpath of your site, e.g. "/blog"
repository : # GitHub username/repo-name e.g. "mmistakes/minimal-mistakes"
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)
words_per_minute : 200
comments:
provider : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "staticman_v2" "custom"
provider : # false (default), "disqus", "discourse", "facebook", "staticman", "staticman_v2", "utterances", "custom"
disqus:
shortname : # https://help.disqus.com/customer/portal/articles/466208-what-s-a-shortname-
discourse:
@@ -37,22 +40,12 @@ comments:
appid :
num_posts : # 5 (default)
colorscheme : # "light" (default), "dark"
staticman:
allowedFields : # ['name', 'email', 'url', 'message']
branch : # "master"
commitMessage : # "New comment by {fields.name}"
filename : # comment-{@timestamp}
format : # "yml"
moderation : # true
path : # "/_data/comments/{options.slug}" (default)
requiredFields : # ['name', 'email', 'message']
transforms:
email : # "md5"
generatedFields:
date:
type : # "date"
options:
format : # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
utterances:
theme : # "github-light" (default), "github-dark"
issue_term : # "pathname" (default)
staticman:
branch : # "master"
endpoint : # "https://{your Staticman v3 API}/v3/entry/github/"
reCaptcha:
siteKey :
secret :
@@ -92,7 +85,7 @@ social:
# Analytics
analytics:
provider : false # false (default), "google", "google-universal", "custom"
provider : false # false (default), "google", "google-universal", "google-gtag", "custom"
google:
tracking_id :
anonymize_ip : # true, false (default)
@@ -102,34 +95,50 @@ analytics:
author:
name : "Your Name"
avatar : # path of avatar image, e.g. "/assets/images/bio-photo.jpg"
bio : "I am an amazing person."
bio : "I am an **amazing** person."
location : "Somewhere"
email :
uri :
home : # null (default), "absolute or relative url to link to author home"
bitbucket :
codepen :
dribbble :
flickr :
facebook :
foursquare :
github :
gitlab :
google_plus :
keybase :
instagram :
lastfm :
linkedin : # "john-doe-12345678" (the last part of your profile url, e.g. https://www.linkedin.com/in/john-doe-12345678)
pinterest :
soundcloud :
stackoverflow : # "123456/username" (the last part of your profile url, e.g. https://stackoverflow.com/users/123456/username)
steam : # "steamId" (the last part of your profile url, e.g. https://steamcommunity.com/id/steamId/)
tumblr :
twitter :
vine :
weibo :
xing :
youtube : # "https://youtube.com/c/MichaelRoseDesign"
links:
- label: "Email"
icon: "fas fa-fw fa-envelope-square"
# url: "mailto:your.name@email.com"
- label: "Website"
icon: "fas fa-fw fa-link"
# url: "https://your-website.com"
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
# url: "https://twitter.com/"
- label: "Facebook"
icon: "fab fa-fw fa-facebook-square"
# url: "https://facebook.com/"
- label: "GitHub"
icon: "fab fa-fw fa-github"
# url: "https://github.com/"
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
# url: "https://instagram.com/"
# Site Footer
footer:
links:
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
# url:
- label: "Facebook"
icon: "fab fa-fw fa-facebook-square"
# url:
- label: "GitHub"
icon: "fab fa-fw fa-github"
# url:
- label: "GitLab"
icon: "fab fa-fw fa-gitlab"
# url:
- label: "Bitbucket"
icon: "fab fa-fw fa-bitbucket"
# url:
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
# url:
# Reading Files
@@ -157,6 +166,7 @@ exclude:
- log
- node_modules
- package.json
- package-lock.json
- Rakefile
- README
- tmp
@@ -192,7 +202,7 @@ kramdown:
# Sass/SCSS
sass:
sass_dir: _sass
style: compressed # http://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
style: compressed # https://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style
# Outputting
@@ -208,7 +218,7 @@ plugins:
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jemoji
- jekyll-include-cache
# mimic GitHub Pages with --safe
whitelist:
@@ -216,7 +226,7 @@ whitelist:
- jekyll-sitemap
- jekyll-gist
- jekyll-feed
- jemoji
- jekyll-include-cache
# Archives
@@ -227,8 +237,8 @@ whitelist:
# - Archive page should exist at path when using Liquid method or you can
# expect broken links (especially with breadcrumbs enabled)
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path/my-awesome-category/index.html ~> path: /
# - <base_path>/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path>/my-awesome-category/index.html ~> path: /
category_archive:
type: liquid
path: /categories/
@@ -249,7 +259,7 @@ tag_archive:
# HTML Compression
# - http://jch.penibelst.de/
# - https://jch.penibelst.de/
compress_html:
clippings: all
ignore:
+770 -56
View File
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,7 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
ga('set', 'anonymizeIp', {{ site.analytics.google.anonymize_ip | default: false }})
ga('send', 'pageview');
window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
ga('create','{{ site.analytics.google.tracking_id }}','auto');
ga('set', 'anonymizeIp', {{ site.analytics.google.anonymize_ip | default: false }});
ga('send','pageview')
</script>
<script src="https://www.google-analytics.com/analytics.js" async></script>
+2 -2
View File
@@ -1,4 +1,4 @@
<script type="text/javascript">
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
{% if site.analytics.google.anonymize_ip == true %}
@@ -11,4 +11,4 @@
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</script>
+5 -13
View File
@@ -11,28 +11,20 @@
{% endif %}
<div class="{{ include.type | default: "list" }}__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">
{% if include.type == "grid" and teaser %}
<div class="archive__item-teaser">
<img src=
{% if teaser contains "://" %}
"{{ teaser }}"
{% else %}
"{{ teaser | relative_url }}"
{% endif %}
alt="">
<img src="{{ teaser | relative_url }}" alt="">
</div>
{% endif %}
<h2 class="archive__item-title" itemprop="headline">
<h2 class="archive__item-title no_toc" itemprop="headline">
{% if post.link %}
<a href="{{ post.link }}">{{ title }}</a> <a href="{{ post.url | relative_url }}" rel="permalink"><i class="fas fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
{% else %}
<a href="{{ post.url | relative_url }}" rel="permalink">{{ title }}</a>
{% endif %}
</h2>
{% if post.read_time %}
<p class="page__meta"><i class="far fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% include post__meta.html type=include.type %}
{% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify | strip_html | truncate: 160 }}</p>{% endif %}
</article>
</div>
</div>
+1 -1
View File
@@ -1,6 +1,6 @@
<!--
<li>
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs">
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
</a>
</li>
+66 -77
View File
@@ -1,41 +1,30 @@
{% assign author = page.author | default: page.authors[0] | default: site.author %}
{% assign author = site.data.authors[author] | default: author %}
<div itemscope itemtype="http://schema.org/Person">
<div itemscope itemtype="https://schema.org/Person">
{% if author.avatar %}
<div class="author__avatar">
{% if author.avatar contains "://" %}
{% assign author_src = author.avatar %}
{% else %}
{% assign author_src = author.avatar | relative_url %}
{% endif %}
{% if author.home %}
{% if author.home contains "://" %}
{% assign author_link = author.home %}
{% else %}
{% assign author_link = author.home | relative_url %}
{% endif %}
<a href="{{ author_link }}">
<img src="{{ author_src }}" alt="{{ author.name }}" itemprop="image">
<a href="{{ author.home | relative_url }}">
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
</a>
{% else %}
<img src="{{ author_src }}" alt="{{ author.name }}" itemprop="image">
<img src="{{ author.avatar | relative_url }}" alt="{{ author.name }}" itemprop="image">
{% endif %}
</div>
{% endif %}
<div class="author__content">
{% if author.home %}
<a href="{{ author_link }}"><h3 class="author__name" itemprop="name">{{ author.name }}</h3></a>
<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 %}
{% if author.bio %}
<p class="author__bio" itemprop="description">
{{ author.bio }}
</p>
<div class="author__bio" itemprop="description">
{{ author.bio | markdownify }}
</div>
{% endif %}
</div>
@@ -43,15 +32,23 @@
<button class="btn btn--inverse">{{ site.data.ui-text[site.locale].follow_label | remove: ":" | default: "Follow" }}</button>
<ul class="author__urls social-icons">
{% if author.location %}
<li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place">
<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>
</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>
{% endif %}
{% endfor %}
{% endif %}
{% if author.uri %}
<li>
<a href="{{ author.uri }}" itemprop="url">
<i class="fas fa-fw fa-link" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].website_label | default: "Website" }}
<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>
{% endif %}
@@ -60,143 +57,135 @@
<li>
<a href="mailto:{{ author.email }}">
<meta itemprop="email" content="{{ author.email }}" />
<i class="fas fa-fw fa-envelope-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].email_label | default: "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>
</li>
{% endif %}
{% if author.keybase %}
<li>
<a href="https://keybase.io/{{ author.keybase }}" itemprop="sameAs">
<i class="fas fa-fw fa-key" aria-hidden="true"></i> Keybase
<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>
</li>
{% endif %}
{% if author.twitter %}
<li>
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs">
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter
<a href="https://twitter.com/{{ author.twitter }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i><span class="label">Twitter</span>
</a>
</li>
{% endif %}
{% if author.facebook %}
<li>
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs">
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook
</a>
</li>
{% endif %}
{% if author.google_plus %}
<li>
<a href="https://plus.google.com/{{ author.google_plus }}" itemprop="sameAs">
<i class="fab fa-fw fa-google-plus-square" aria-hidden="true"></i> Google+
<a href="https://www.facebook.com/{{ author.facebook }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i><span class="label">Facebook</span>
</a>
</li>
{% endif %}
{% if author.linkedin %}
<li>
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs">
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i> LinkedIn
<a href="https://www.linkedin.com/in/{{ author.linkedin }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-linkedin" aria-hidden="true"></i><span class="label">LinkedIn</span>
</a>
</li>
{% endif %}
{% if author.xing %}
<li>
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs">
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i> XING
<a href="https://www.xing.com/profile/{{ author.xing }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-xing-square" aria-hidden="true"></i><span class="label">XING</span>
</a>
</li>
{% endif %}
{% if author.instagram %}
<li>
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs">
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i> Instagram
<a href="https://instagram.com/{{ author.instagram }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-instagram" aria-hidden="true"></i><span class="label">Instagram</span>
</a>
</li>
{% endif %}
{% if author.tumblr %}
<li>
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs">
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i> Tumblr
<a href="https://{{ author.tumblr }}.tumblr.com" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-tumblr-square" aria-hidden="true"></i><span class="label">Tumblr</span>
</a>
</li>
{% endif %}
{% if author.bitbucket %}
<li>
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs">
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket
<a href="https://bitbucket.org/{{ author.bitbucket }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i><span class="label">Bitbucket</span>
</a>
</li>
{% endif %}
{% if author.github %}
<li>
<a href="https://github.com/{{ author.github }}" itemprop="sameAs">
<i class="fab fa-fw fa-github" aria-hidden="true"></i> GitHub
<a href="https://github.com/{{ author.github }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-github" aria-hidden="true"></i><span class="label">GitHub</span>
</a>
</li>
{% endif %}
{% if author.gitlab %}
<li>
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs">
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i> GitLab
<a href="https://gitlab.com/{{ author.gitlab }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-gitlab" aria-hidden="true"></i><span class="label">GitLab</span>
</a>
</li>
{% endif %}
{% if author.stackoverflow %}
<li>
<a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs">
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i> Stack Overflow
<a href="https://stackoverflow.com/users/{{ author.stackoverflow }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-stack-overflow" aria-hidden="true"></i><span class="label">Stack Overflow</span>
</a>
</li>
{% endif %}
{% if author.lastfm %}
<li>
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs">
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i> Last.fm
<a href="https://last.fm/user/{{ author.lastfm }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-lastfm-square" aria-hidden="true"></i><span class="label">Last.fm</span>
</a>
</li>
{% endif %}
{% if author.dribbble %}
<li>
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs">
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i> Dribbble
<a href="https://dribbble.com/{{ author.dribbble }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-dribbble" aria-hidden="true"></i><span class="label">Dribbble</span>
</a>
</li>
{% endif %}
{% if author.pinterest %}
<li>
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs">
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i> Pinterest
<a href="https://www.pinterest.com/{{ author.pinterest }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-pinterest" aria-hidden="true"></i><span class="label">Pinterest</span>
</a>
</li>
{% endif %}
{% if author.foursquare %}
<li>
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs">
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i> Foursquare
<a href="https://foursquare.com/{{ author.foursquare }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-foursquare" aria-hidden="true"></i><span class="label">Foursquare</span>
</a>
</li>
{% endif %}
{% if author.steam %}
<li>
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs">
<i class="fab fa-fw fa-steam" aria-hidden="true"></i> Steam
<a href="https://steamcommunity.com/id/{{ author.steam }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-steam" aria-hidden="true"></i><span class="label">Steam</span>
</a>
</li>
{% endif %}
@@ -204,14 +193,14 @@
{% if author.youtube %}
{% if author.youtube contains "://" %}
<li>
<a href="{{ author.youtube }}" itemprop="sameAs">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube
<a href="{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
</a>
</li>
{% else author.youtube %}
{% elsif author.youtube %}
<li>
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube
<a href="https://www.youtube.com/user/{{ author.youtube }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span>
</a>
</li>
{% endif %}
@@ -219,40 +208,40 @@
{% if author.soundcloud %}
<li>
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs">
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i> SoundCloud
<a href="https://soundcloud.com/{{ author.soundcloud }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-soundcloud" aria-hidden="true"></i><span class="label">SoundCloud</span>
</a>
</li>
{% endif %}
{% if author.weibo %}
<li>
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs">
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i> Weibo
<a href="https://www.weibo.com/{{ author.weibo }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-weibo" aria-hidden="true"></i><span class="label">Weibo</span>
</a>
</li>
{% endif %}
{% if author.flickr %}
<li>
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs">
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i> Flickr
<a href="https://www.flickr.com/{{ author.flickr }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-flickr" aria-hidden="true"></i><span class="label">Flickr</span>
</a>
</li>
{% endif %}
{% if author.codepen %}
<li>
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs">
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i> CodePen
<a href="https://codepen.io/{{ author.codepen }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<i class="fab fa-fw fa-codepen" aria-hidden="true"></i><span class="label">CodePen</span>
</a>
</li>
{% endif %}
{% if author.vine %}
<li>
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs">
<i class="fab fa-fw fa-vine" aria-hidden="true"></i> Vine
<a href="https://vine.co/u/{{ author.vine }}" itemprop="sameAs" rel="nofollow noopener noreferrer">
<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>
{% endif %}
-5
View File
@@ -1,5 +0,0 @@
{% if site.url %}
{% assign base_path = site.url | append: site.baseurl %}
{% else %}
{% assign base_path = site.github.url %}
{% endif %}
+3 -3
View File
@@ -13,12 +13,12 @@
{% endif %}
<nav class="breadcrumbs">
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
{% assign crumbs = page.url | split: '/' %}
{% assign i = 1 %}
{% for crumb in crumbs offset: 1 %}
{% if forloop.first %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<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>
<meta itemprop="position" content="{{ i }}" />
</li>
@@ -28,7 +28,7 @@
<li class="current">{{ page.title }}</li>
{% else %}
{% assign i = i | plus: 1 %}
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<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>
<meta itemprop="position" content="{{ i }}" />
</li>
+2 -2
View File
@@ -10,14 +10,14 @@
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}|{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign category_hashes = page_categories | split: ',' | sort %}
<p class="page__taxonomy">
<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 hash in category_hashes %}
{% assign keyValue = hash | split: '#' %}
{% assign keyValue = hash | split: '|' %}
{% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<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 %}
{% endfor %}
+3 -3
View File
@@ -1,9 +1,9 @@
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="http://schema.org/Comment">
<article id="comment{{ include.index }}" class="js-comment comment" itemprop="comment" itemscope itemtype="https://schema.org/Comment">
<div class="comment__avatar-wrapper">
<img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80" alt="{{ include.name }}">
</div>
<div class="comment__content-wrapper">
<h3 class="comment__author" itemprop="author" itemscope itemtype="http://schema.org/Person">
<h3 class="comment__author" itemprop="author" itemscope itemtype="https://schema.org/Person">
{% unless include.url == blank %}
<span itemprop="name"><a rel="external nofollow" itemprop="url" href="{{ include.url }}">{{ include.name }}</a></span>
{% else %}
@@ -13,7 +13,7 @@
<p class="comment__date">
{% if include.date %}
{% if include.index %}<a href="#comment{{ include.index }}" itemprop="url">{% endif %}
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
<time datetime="{{ include.date | date_to_xmlschema }}" itemprop="datePublished">{{ include.date | date: "%B %-d, %Y at %I:%M %p" }}</time>
{% if include.index %}</a>{% endif %}
{% endif %}
</p>
@@ -0,0 +1,3 @@
<!-- start custom comments scripts -->
<!-- end custom comments scripts -->
+3 -3
View File
@@ -1,10 +1,10 @@
{% if site.comments.disqus.shortname %}
<script>
var disqus_config = function () {
this.page.url = "{{ page.url | absolute_url }}"; // Replace PAGE_URL with your page's canonical URL variable
this.page.identifier = "{{ page.id }}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
this.page.url = "{{ page.url | absolute_url }}"; /* Replace PAGE_URL with your page's canonical URL variable */
this.page.identifier = "{{ page.id }}"; /* Replace PAGE_IDENTIFIER with your page's unique identifier variable */
};
(function() { // DON'T EDIT BELOW THIS LINE
(function() { /* DON'T EDIT BELOW THIS LINE */
var d = document, s = d.createElement('script');
s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
@@ -1,2 +0,0 @@
<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script>
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>
+3 -3
View File
@@ -6,13 +6,13 @@
{% include /comments-providers/discourse.html %}
{% when "facebook" %}
{% include /comments-providers/facebook.html %}
{% when "google-plus" %}
{% include /comments-providers/google-plus.html %}
{% when "staticman" %}
{% include /comments-providers/staticman.html %}
{% when "staticman_v2" %}
{% include /comments-providers/staticman_v2.html %}
{% when "utterances" %}
{% include /comments-providers/utterances.html %}
{% when "custom" %}
{% include /comments-providers/custom.html %}
{% include /comments-providers/custom_scripts.html %}
{% endcase %}
{% endif %}
+1 -3
View File
@@ -1,8 +1,6 @@
{% if site.repository and site.staticman.branch %}
<script>
(function ($) {
var $comments = $('.js-comments');
$('#new_comment').submit(function () {
var form = this;
@@ -39,4 +37,4 @@
}
})(jQuery);
</script>
{% endif %}
{% endif %}
@@ -1,8 +1,6 @@
{% if site.repository and site.staticman.branch %}
{% if site.repository and site.comments.staticman.branch %}
<script>
(function ($) {
var $comments = $('.js-comments');
$('#new_comment').submit(function () {
var form = this;
@@ -39,4 +37,4 @@
}
})(jQuery);
</script>
{% endif %}
{% endif %}
@@ -0,0 +1,20 @@
<script>
'use strict';
(function() {
var commentContainer = document.querySelector('#utterances-comments');
if (!commentContainer) {
return;
}
var script = document.createElement('script');
script.setAttribute('src', 'https://utteranc.es/client.js');
script.setAttribute('repo', '{{ site.repository }}');
script.setAttribute('issue-term', '{{ site.comments.utterances.issue_term | default: "pathname" }}');
script.setAttribute('theme', '{{ site.comments.utterances.theme | default: "github-light" }}');
script.setAttribute('crossorigin', 'anonymous');
commentContainer.appendChild(script);
})();
</script>
+7 -19
View File
@@ -10,24 +10,9 @@
{% when "facebook" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section class="fb-comments" data-href="{{ page.url | absolute_url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
{% when "google-plus" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="g-comments" class="g-comments">Loading Google+ Comments ...</section>
<script>
function initComment() {
gapi.comments.render("g-comments", {
href: "{{ page.url | absolute_url }}",
width: "624",
first_party_property: "BLOGGER",
view_type: "FILTERED_POSTMOD"
})
}
</script>
<script async type="text/javascript" src="https://apis.google.com/js/plusone.js" onload="initComment()" />
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>-->
{% when "staticman_v2" %}
<section id="static-comments">
{% if site.repository and site.staticman.branch %}
{% if site.repository and site.comments.staticman.branch %}
<!-- Start static comments -->
<div class="js-comments">
{% if site.data.comments[page.slug] %}
@@ -50,7 +35,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="https://api.staticman.net/v2/entry/{{ site.repository }}/{{ site.staticman.branch }}/comments">
<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">
<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>
@@ -165,7 +150,10 @@
<!-- End new comment form -->
{% endif %}
</section>
{% when "utterances" %}
<h4 class="page__comments-title">{{ comments_label }}</h4>
<section id="utterances-comments"></section>
{% when "custom" %}
<section id="custom-comments"></section>
{% include /comments-providers/custom.html %}
{% endcase %}
</div>
</div>
+3 -1
View File
@@ -15,5 +15,7 @@
{% endif %}
{%- for post in entries -%}
{% include archive-single.html %}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{%- endfor -%}
+4 -16
View File
@@ -7,24 +7,12 @@
<div class="feature__wrapper">
{% for f in feature_row %}
{% if f.url contains "://" %}
{% capture f_url %}{{ f.url }}{% endcapture %}
{% else %}
{% capture f_url %}{{ f.url | relative_url }}{% endcapture %}
{% endif %}
<div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
<div class="archive__item">
{% if f.image_path %}
<div class="archive__item-teaser">
<img src=
{% if f.image_path contains "://" %}
"{{ f.image_path }}"
{% else %}
"{{ f.image_path | relative_url }}"
{% endif %}
alt="{% if f.alt %}{{ f.alt }}{% endif %}">
<img src="{{ f.image_path | relative_url }}"
alt="{% if f.alt %}{{ f.alt }}{% endif %}">
{% if f.image_caption %}
<span class="archive__item-caption">{{ f.image_caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
{% endif %}
@@ -43,11 +31,11 @@
{% endif %}
{% if f.url %}
<p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
<p><a href="{{ f.url | relative_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
{% endif %}
</div>
</div>
</div>
{% endfor %}
</div>
</div>
+5 -8
View File
@@ -1,12 +1,9 @@
<figure class="{{ include.class }}">
<img src=
{% if include.image_path contains "://" %}
"{{ include.image_path }}"
{% else %}
"{{ include.image_path | relative_url }}"
{% endif %}
alt="{% if include.alt %}{{ include.alt }}{% endif %}">
<img src="{{ include.image_path | relative_url }}"
alt="{% if include.alt %}{{ include.alt }}{% endif %}">
{% if include.caption %}
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
<figcaption>
{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}
</figcaption>
{% endif %}
</figure>
+8 -14
View File
@@ -3,21 +3,15 @@
{% if site.data.ui-text[site.locale].follow_label %}
<li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
{% endif %}
{% if site.twitter.username %}
<li><a href="https://twitter.com/{{ site.twitter.username }}"><i class="fab fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
{% endif %}
{% if site.facebook.username %}
<li><a href="https://www.facebook.com/{{ site.facebook.username }}"><i class="fab fa-fw fa-facebook-square" aria-hidden="true"></i> Facebook</a></li>
{% endif %}
{% if site.author.github %}
<li><a href="https://github.com/{{ site.author.github }}"><i class="fab fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
{% endif %}
{% if site.author.gitlab %}
<li><a href="https://gitlab.com/{{ site.author.gitlab }}"><i class="fab fa-fw fa-gitlab" aria-hidden="true"></i> Gitlab</a></li>
{% endif %}
{% if site.author.bitbucket %}
<li><a href="https://bitbucket.org/{{ site.author.bitbucket }}"><i class="fab fa-fw fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
{% if site.footer.links %}
{% for link in site.footer.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> {{ link.label }}</a></li>
{% endif %}
{% endfor %}
{% endif %}
<li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ '/feed.xml' | relative_url }}{% endif %}"><i class="fas fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
</ul>
</div>
+16 -28
View File
@@ -4,44 +4,32 @@
{% assign gallery = page.gallery %}
{% endif %}
{% if gallery.size == 2 %}
{% assign gallery_layout = 'half' %}
{% elsif gallery.size >= 3 %}
{% assign gallery_layout = 'third' %}
{% if include.layout %}
{% assign gallery_layout = include.layout %}
{% else %}
{% assign gallery_layout = '' %}
{% if gallery.size == 2 %}
{% assign gallery_layout = 'half' %}
{% elsif gallery.size >= 3 %}
{% assign gallery_layout = 'third' %}
{% else %}
{% assign gallery_layout = '' %}
{% endif %}
{% endif %}
<figure class="{{ gallery_layout }} {{ include.class }}">
{% for img in gallery %}
{% if img.url %}
<a href=
{% if img.url contains "://" %}
"{{ img.url }}"
{% else %}
"{{ img.url | relative_url }}"
{% endif %}
{% if img.title %}title="{{ img.title }}"{% endif %}
>
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | relative_url }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
<a href="{{ img.url | relative_url }}"
{% if img.title %}title="{{ img.title }}"{% endif %}>
<img src="{{ img.image_path | relative_url }}"
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
</a>
{% else %}
<img src=
{% if img.image_path contains "://" %}
"{{ img.image_path }}"
{% else %}
"{{ img.image_path | relative_url }}"
{% endif %}
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
<img src="{{ img.image_path | relative_url }}"
alt="{% if img.alt %}{{ img.alt }}{% endif %}">
{% endif %}
{% endfor %}
{% if include.caption %}
<figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
{% endif %}
</figure>
</figure>
+5 -11
View File
@@ -4,9 +4,7 @@
<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">
<!-- http://t.co/dKP3o1e -->
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<!-- https://t.co/dKP3o1e -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
@@ -15,8 +13,9 @@
<!-- 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 lte IE 9]>
<!--[if IE]>
<style>
/* old IE unsupported flexbox fixes */
.greedy-nav .site-title {
@@ -33,11 +32,6 @@
{% if site.head_scripts %}
{% for script in site.head_scripts %}
{% if script contains "://" %}
{% capture script_path %}{{ script }}{% endcapture %}
{% else %}
{% capture script_path %}{{ script | relative_url }}{% endcapture %}
{% endif %}
<script src="{{ script_path }}"></script>
<script src="{{ script | relative_url }}"></script>
{% endfor %}
{% endif %}
{% endif %}
+12 -8
View File
@@ -1,29 +1,33 @@
{% capture logo_path %}{{ site.logo }}{% endcapture %}
<div class="masthead">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav">
<a class="site-title" href="{{ '/' | relative_url }}">{{ site.title }}</a>
{% unless logo_path == empty %}
<a class="site-logo" href="{{ '/' | relative_url }}"><img src="{{ logo_path | relative_url }}" alt=""></a>
{% endunless %}
<a class="site-title" href="{{ '/' | relative_url }}">
{{ site.masthead_title | default: site.title }}
{% if site.subtitle %}<span class="site-subtitle">{{ site.subtitle }}</span>{% endif %}
</a>
<ul class="visible-links">
{%- for link in site.data.navigation.main -%}
{%- if link.url contains '://' -%}
{%- assign url = link.url -%}
{%- else -%}
{%- assign url = link.url | relative_url -%}
{%- endif -%}
<li class="masthead__menu-item">
<a href="{{ url }}" {% if link.description %}title="{{ link.description }}"{% endif %}>{{ link.title }}</a>
<a href="{{ link.url | relative_url }}"{% if link.description %} title="{{ link.description }}"{% 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>
</button>
{% endif %}
<button class="greedy-nav__toggle hidden" type="button">
<span class="visually-hidden">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle Menu" }}</span>
<span class="visually-hidden">{{ site.data.ui-text[site.locale].menu_label | default: "Toggle menu" }}</span>
<div class="navicon"></div>
</button>
<ul class="hidden-links hidden"></ul>
+3 -24
View File
@@ -8,14 +8,7 @@
{% for nav in navigation %}
<li>
{% if nav.url %}
{% comment %} internal/external URL check {% endcomment %}
{% if nav.url contains "://" %}
{% assign nav_url = nav.url %}
{% else %}
{% assign nav_url = nav.url | relative_url %}
{% endif %}
<a href="{{ nav_url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
<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 %}
@@ -23,25 +16,11 @@
{% if nav.children != null %}
<ul>
{% for child in nav.children %}
{% comment %} internal/external URL check {% endcomment %}
{% if child.url contains "://" %}
{% assign child_url = child.url %}
{% else %}
{% assign child_url = child.url | relative_url %}
{% endif %}
{% comment %} set "active" class on current page {% endcomment %}
{% if child.url == page.url %}
{% assign active = "active" %}
{% else %}
{% assign active = "" %}
{% endif %}
<li><a href="{{ child_url }}" class="{{ active }}">{{ child.title }}</a></li>
<li><a href="{{ child.url | relative_url }}"{% if child.url == page.url %} class="active"{% endif %}>{{ child.title }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
</nav>
+5
View File
@@ -0,0 +1,5 @@
{% 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>
{% 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 %}
+13 -23
View File
@@ -1,20 +1,4 @@
{% if page.header.image contains "://" %}
{% capture img_path %}{{ page.header.image }}{% endcapture %}
{% else %}
{% capture img_path %}{{ page.header.image | relative_url }}{% endcapture %}
{% endif %}
{% if page.header.cta_url contains "://" %}
{% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
{% else %}
{% capture cta_path %}{{ page.header.cta_url | relative_url }}{% endcapture %}
{% endif %}
{% if page.header.overlay_image contains "://" %}
{% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
{% elsif page.header.overlay_image %}
{% capture overlay_img_path %}{{ page.header.overlay_image | relative_url }}{% endcapture %}
{% endif %}
{% capture overlay_img_path %}{{ page.header.overlay_image | relative_url }}{% endcapture %}
{% if page.header.overlay_filter contains "rgba" %}
{% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
@@ -42,18 +26,24 @@
{{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
{% endif %}
</h1>
{% if page.header.show_overlay_excerpt != false and page.excerpt %}
{% if page.tagline %}
<p class="page__lead">{{ page.tagline | markdownify | remove: "<p>" | remove: "</p>" }}</p>
{% elsif page.header.show_overlay_excerpt != false and page.excerpt %}
<p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
{% endif %}
{% if page.read_time %}
<p class="page__meta"><i class="far fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% include post__meta.html %}
{% if page.header.cta_url %}
<p><a href="{{ cta_path }}" 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>
<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 %}
{% endif %}
</div>
{% else %}
<img src="{{ img_path }}" alt="{{ image_description }}" class="page__hero-image">
<img src="{{ page.header.image | relative_url }}" alt="{{ image_description }}" class="page__hero-image">
{% endif %}
{% if page.header.caption %}
<span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
+2 -4
View File
@@ -1,4 +1,2 @@
{% capture video_id %}{{ page.header.video.id }}{% endcapture %}
{% capture video_provider %}{{ page.header.video.provider }}{% endcapture %}
{% include video id=video_id provider=video_provider %}
{% assign video = page.header.video %}
{% include video id=video.id provider=video.provider danmaku=video.danmaku %}
+1 -1
View File
@@ -1,6 +1,6 @@
{% if paginator.total_pages > 1 %}
<nav class="pagination">
{% assign first_page_path = site.paginate_path | replace: 'page:num', '' | replace: '//', '/' | relative_url %}
{% 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 %}
+35
View File
@@ -0,0 +1,35 @@
{% assign page = post | default: page %}
{% if page.read_time or page.show_date %}
<p class="page__meta">
{% if page.show_date %}
{% assign date = page.date %}
<i class="far {% if include.type == 'grid' and page.read_time and page.show_date %}fa-fw {% endif %}fa-calendar-alt" aria-hidden="true"></i>
<time datetime="{{ date | date_to_xmlschema }}">{{ date | date: "%B %-d, %Y" }}</time>
{% endif %}
{% if page.read_time and page.show_date %}
{% if include.type == "grid" %}
<br \>
{% else %}
<span class="post__meta-sep"></span>
{% endif %}
{% endif %}
{% if page.read_time %}
{% assign words_per_minute = page.words_per_minute | default: site.words_per_minute | default: 200 %}
{% assign words = page.content | strip_html | number_of_words %}
<i class="far {% if include.type == 'grid' and page.read_time and page.show_date %}fa-fw {% endif %}fa-clock" aria-hidden="true"></i>
{% if words < words_per_minute %}
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% elsif words == words_per_minute %}
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% else %}
{{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% endif %}
{% endif %}
</p>
{% endif %}
+3 -1
View File
@@ -1,3 +1,5 @@
{%- for post in site.categories[include.taxonomy] -%}
{% include archive-single.html %}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{%- endfor -%}
+3 -1
View File
@@ -1,3 +1,5 @@
{%- for post in site.tags[include.taxonomy] -%}
{% include archive-single.html %}
{%- unless post.hidden -%}
{% include archive-single.html %}
{%- endunless -%}
{%- endfor -%}
-15
View File
@@ -1,15 +0,0 @@
{% assign words_per_minute = site.words_per_minute | default: 200 %}
{% if post.read_time %}
{% assign words = post.content | strip_html | number_of_words %}
{% elsif page.read_time %}
{% assign words = page.content | strip_html | number_of_words %}
{% endif %}
{% if words < words_per_minute %}
{{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% elsif words == words_per_minute %}
1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% else %}
{{ words | divided_by:words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
{% endif %}
+10 -10
View File
@@ -1,28 +1,28 @@
{% if site.footer_scripts %}
{% for script in site.footer_scripts %}
{% if script contains "://" %}
{% capture script_path %}{{ script }}{% endcapture %}
{% else %}
{% capture script_path %}{{ script | relative_url }}{% endcapture %}
{% endif %}
<script src="{{ script_path }}"></script>
<script src="{{ script | relative_url }}"></script>
{% endfor %}
{% else %}
<script src="{{ '/assets/js/main.min.js' | relative_url }}"></script>
<script src="https://use.fontawesome.com/releases/v5.2.0/js/all.js"></script>
{% endif %}
{% if site.search == true or page.layout == "search" %}
{%- assign search_provider = site.search_provider | default: "lunr" -%}
{%- case search_provider -%}
{%- when "lunr" -%}
{% include search/lunr-search-scripts.html %}
{% include_cached search/lunr-search-scripts.html %}
{%- when "google" -%}
{% include search/google-search-scripts.html %}
{% include_cached search/google-search-scripts.html %}
{%- when "algolia" -%}
{% include search/algolia-search-scripts.html %}
{% include_cached search/algolia-search-scripts.html %}
{%- endcase -%}
{% endif %}
{% include analytics.html %}
{% include /comments-providers/scripts.html %}
{% if site.after_footer_scripts %}
{% for script in site.after_footer_scripts %}
<script src="{{ script | relative_url }}"></script>
{% endfor %}
{% endif %}
+13 -6
View File
@@ -1,7 +1,7 @@
<!-- 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" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/instantsearch.js@2.3.3/dist/instantsearch-theme-algolia.min.css">
<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
@@ -24,7 +24,7 @@ const hitTemplate = function(hit) {
return `
<div class="list__item">
<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
<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>
@@ -44,11 +44,18 @@ search.addWidget(
instantsearch.widgets.hits({
container: '.search-hits',
templates: {
item: hitTemplate
item: hitTemplate,
empty: '{{ site.data.ui-text[site.locale].search_algolia_no_results | default: "No results" }}',
}
})
);
// Starting the search
search.start();
// Starting the search only when toggle is clicked
$(document).ready(function () {
$(".search__toggle").on("click", function() {
if(!search.started) {
search.start();
}
});
});
</script>
+22 -14
View File
@@ -1,18 +1,26 @@
<div class="search-content__inner-wrap">
{%- assign search_provider = site.search_provider | default: "lunr" -%}
{%- case search_provider -%}
{%- 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...' }}" />
<div id="results" class="results"></div>
<form class="search-content__form" onkeydown="return event.key != 'Enter';">
<label class="sr-only" for="search">
{{ site.data.ui-text[site.locale].search_label_text | default: 'Enter your search term...' }}
</label>
<input type="search" id="search" class="search-input" tabindex="-1" placeholder="{{ site.data.ui-text[site.locale].search_placeholder_text | default: 'Enter your search term...' }}" />
</form>
<div id="results" class="results"></div>
{%- when "google" -%}
<form onsubmit="return executeQuery();" 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...' }}" />
</form>
<div id="results" class="results">
<gcse:searchresults-only></gcse:searchresults-only>
</div>
<form onsubmit="return googleCustomSearchExecute();" id="cse-search-box-form-id">
<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>
<input type="search" 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...' }}" />
</form>
<div id="results" class="results">
<gcse:searchresults-only></gcse:searchresults-only>
</div>
{%- when "algolia" -%}
<div class="search-searchbar"></div>
<div class="search-hits"></div>
{%- endcase -%}
</div>
<div class="search-searchbar"></div>
<div class="search-hits"></div>
{%- endcase -%}
</div>
+24 -36
View File
@@ -14,36 +14,31 @@
{%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
{%- endif -%}
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
{% if page.canonical_url %}
{%- assign canonical_url = page.canonical_url %}
{% else %}
{%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
{% endif %}
{%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
{%- if seo_description -%}
{%- assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once -%}
{%- assign seo_description = seo_description | markdownify | strip_html | newline_to_br | strip_newlines | replace: '<br />', ' ' | escape_once | strip -%}
{%- endif -%}
{%- assign author = page.author | default: page.authors[0] | default: site:author -%}
{%- assign author = page.author | default: page.authors[0] | default: site.author -%}
{%- assign author = site.data.authors[author] | default: author -%}
{%- if author.twitter -%}
{%- assign author_twitter = author.twitter | replace: "@", "" -%}
{%- endif -%}
{%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image -%}
{%- unless page_large_image contains '://' -%}
{%- assign page_large_image = page_large_image | absolute_url -%}
{%- endunless -%}
{%- 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 -%}
{%- unless page_teaser_image contains '://' -%}
{%- assign page_teaser_image = page_teaser_image | absolute_url -%}
{%- endunless -%}
{%- 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 -%}
{%- unless site_og_image contains '://' -%}
{%- assign site_og_image = site_og_image | absolute_url -%}
{%- endunless -%}
{%- assign site_og_image = site.og_image | absolute_url -%}
{%- assign site_og_image = site_og_image | escape -%}
{%- if page.date -%}
@@ -65,7 +60,7 @@
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
<meta property="og:url" content="{{ canonical_url }}">
{% if page.excerpt %}
{% if seo_description %}
<meta property="og:description" content="{{ seo_description }}">
{% endif %}
@@ -123,28 +118,21 @@
<link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
{% endif %}
{% if site.og_image %}
<script type="application/ld+json">
{
"@context": "http://schema.org",
<script type="application/ld+json">
{
"@context": "https://schema.org",
{% if site.social.type == "Organization" %}
"@type": "Organization",
"url": {{ seo_url | jsonify }},
"logo": {{ site_og_image | jsonify }}
}
</script>
{% endif %}
{% if site.social %}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
"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": {{ seo_url | jsonify }},
"sameAs": {{ site.social.links | jsonify }}
}
</script>
{% endif %}
"url": {{ '/' | absolute_url |jsonify }}{% if site.social.links %},
"sameAs": {{ site.social.links | jsonify }}{% endif %}
{% endif %}
}
</script>
{% if site.google_site_verification %}
<meta name="google-site-verification" content="{{ site.google_site_verification }}" />
+4 -8
View File
@@ -4,20 +4,16 @@
{% if page.sidebar %}
{% for s in page.sidebar %}
{% if s.image %}
<img src=
{% if s.image contains "://" %}
"{{ s.image }}"
{% else %}
"{{ s.image | relative_url }}"
{% endif %}
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
<img src="{{ s.image | relative_url }}"
alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
{% endif %}
{% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
{% if s.text %}{{ s.text | markdownify }}{% endif %}
{% if s.nav %}{% include nav_list nav=s.nav %}{% endif %}
{% endfor %}
{% if page.sidebar.nav %}
{% include nav_list nav=page.sidebar.nav %}
{% endif %}
{% endif %}
</div>
{% endif %}
{% endif %}
+8
View File
@@ -0,0 +1,8 @@
<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>
<li><a href="#footer" class="screen-reader-shortcut">{{ site.data.ui-text[site.locale].skip_footer | default: 'Skip to footer' }}</a></li>
</ul>
</nav>
-2
View File
@@ -7,7 +7,5 @@
<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://plus.google.com/share?url={{ page.url | absolute_url | url_encode }}" class="btn btn--google-plus" 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' }} Google Plus"><i class="fab fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</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>
</section>
+2 -2
View File
@@ -10,14 +10,14 @@
<!-- Sort alphabetically regardless of case e.g. a B c d E -->
<!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
{% endcomment %}
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}|{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign tag_hashes = page_tags | split: ',' | sort %}
<p class="page__taxonomy">
<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 hash in tag_hashes %}
{% assign keyValue = hash | split: '#' %}
{% assign keyValue = hash | split: '|' %}
{% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
<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 %}
{% endfor %}
+25 -14
View File
@@ -1,6 +1,6 @@
{% capture tocWorkspace %}
{% comment %}
Version 1.0.5
Version 1.0.8
https://github.com/allejo/jekyll-toc
"...like all things liquid - where there's a will, and ~36 hours to spare, there's usually a/some way" ~jaybe
@@ -9,20 +9,22 @@
{% include toc.html html=content sanitize=true class="inline_toc" id="my_toc" h_min=2 h_max=3 %}
Parameters:
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
* html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
Optional Parameters:
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
* class (string) : '' - a CSS class assigned to the TOC
* id (string) : '' - an ID to assigned to the TOC
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
* item_class (string) : '' - add custom class for each list item; has support for '%level%' placeholder, which is the current heading level
* baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
* sanitize (bool) : false - when set to true, the headers will be stripped of any HTML in the TOC
* class (string) : '' - a CSS class assigned to the TOC
* id (string) : '' - an ID to assigned to the TOC
* h_min (int) : 1 - the minimum TOC header level to use; any header lower than this value will be ignored
* h_max (int) : 6 - the maximum TOC header level to use; any header greater than this value will be ignored
* ordered (bool) : false - when set to true, an ordered list will be outputted instead of an unordered list
* item_class (string) : '' - add custom class(es) for each list item; has support for '%level%' placeholder, which is the current heading level
* baseurl (string) : '' - add a base url to the TOC links for when your TOC is on another page than the actual content
* anchor_class (string) : '' - add custom class(es) for each anchor element
Output:
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only generate the table of contents and will NOT output the markdown given to it
An ordered or unordered list representing the table of contents of a markdown block. This snippet will only
generate the table of contents and will NOT output the markdown given to it
{% endcomment %}
{% capture my_toc %}{% endcapture %}
@@ -50,13 +52,21 @@
{% assign minHeader = headerLevel %}
{% endif %}
{% assign indentAmount = headerLevel | minus: minHeader | add: 1 %}
{% assign indentAmount = headerLevel | minus: minHeader %}
{% assign _workspace = node | split: '</h' %}
{% assign _idWorkspace = _workspace[0] | split: 'id="' %}
{% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
{% assign html_id = _idWorkspace[0] %}
{% assign _classWorkspace = _workspace[0] | split: 'class="' %}
{% assign _classWorkspace = _classWorkspace[1] | split: '"' %}
{% assign html_class = _classWorkspace[0] %}
{% if html_class contains "no_toc" %}
{% continue %}
{% endif %}
{% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
{% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
@@ -69,8 +79,9 @@
{% capture listItemClass %}{:.{{ include.item_class | replace: '%level%', headerLevel }}}{% endcapture %}
{% endunless %}
{% capture heading_body %}{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}{% endcapture %}
{% capture my_toc %}{{ my_toc }}
{{ space }}{{ listModifier }} {{ listItemClass }} [{% if include.sanitize %}{{ header | strip_html }}{% else %}{{ header }}{% endif %}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% endcapture %}
{{ space }}{{ listModifier }} {{ listItemClass }} [{{ heading_body | replace: "|", "\|" }}]({% if include.baseurl %}{{ include.baseurl }}{% endif %}#{{ html_id }}){% if include.anchor_class %}{:.{{ include.anchor_class }}}{% endif %}{% endcapture %}
{% endfor %}
{% if include.class %}
@@ -82,4 +93,4 @@
{% capture my_toc %}{: #{{ include.id }}}
{{ my_toc | lstrip }}{% endcapture %}
{% endif %}
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
{% endcapture %}{% assign tocWorkspace = '' %}{{ my_toc | markdownify | strip }}
+20 -7
View File
@@ -1,11 +1,24 @@
{% capture video_id %}{{ include.id }}{% endcapture %}
{% capture video_provider %}{{ include.provider }}{% endcapture %}
{% capture video_danmaku %}{{ include.danmaku | default: 0 }}{% endcapture %}
{% capture video_src %}
{% case video_provider %}
{% when "vimeo" %}
https://player.vimeo.com/video/{{ video_id }}?dnt=true
{% when "youtube" %}
https://www.youtube-nocookie.com/embed/{{ video_id }}
{% when "google-drive" %}
https://drive.google.com/file/d/{{ video_id }}/preview
{% when "bilibili" %}
https://player.bilibili.com/player.html?bvid={{ video_id }}&page=1&as_wide=1&high_quality=1&danmaku={{ video_danmaku }}
{% endcase %}
{% endcapture %}
{% assign video_src = video_src | strip %}
<!-- Courtesy of embedresponsively.com //-->
<div class="responsive-video-container">
{% if video_provider == "vimeo" %}
<iframe src="https://player.vimeo.com/video/{{ video_id }}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
{% elsif video_provider == "youtube" %}
<iframe src="https://www.youtube.com/embed/{{ video_id }}" frameborder="0" allowfullscreen></iframe>
{% endif %}
</div>
{% unless video_src == "" %}
<div class="responsive-video-container">
<iframe src="{{ video_src }}" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen></iframe>
</div>
{% endunless %}
+16 -2
View File
@@ -3,13 +3,27 @@ layout: default
author_profile: false
---
{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
{% elsif page.header.video.id and page.header.video.provider %}
{% include page__hero_video.html %}
{% endif %}
{% if page.url != "/" and site.breadcrumbs %}
{% unless paginator %}
{% include breadcrumbs.html %}
{% endunless %}
{% endif %}
<div id="main" role="main">
{% include sidebar.html %}
<div class="archive">
<h1 class="page__title">{{ page.title }}</h1>
{% unless page.header.overlay_color or page.header.overlay_image %}
<h1 id="page-title" class="page__title">{{ page.title }}</h1>
{% endunless %}
{% for post in page.posts %}
{% include archive-single.html %}
{% endfor %}
</div>
</div>
</div>
+2 -2
View File
@@ -1,10 +1,10 @@
---
# Jekyll layout that compresses HTML
# v3.0.2
# v3.1.0
# http://jch.penibelst.de/
# © 2014–2015 Anatol Broder
# MIT License
---
{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
+10 -10
View File
@@ -3,10 +3,10 @@
<!doctype html>
<!--
Minimal Mistakes Jekyll Theme 4.12.2 by Michael Rose
Copyright 2013-2018 Michael Rose - mademistakes.com | @mmistakes
Minimal Mistakes Jekyll Theme 4.20.1 by Michael Rose
Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
-->
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
<head>
@@ -15,9 +15,9 @@
</head>
<body class="layout--{{ page.layout | default: layout.layout }}{% if page.classes or layout.classes %}{{ page.classes | default: layout.classes | join: ' ' | prepend: ' ' }}{% endif %}">
{% include browser-upgrade.html %}
{% include masthead.html %}
{% include_cached skip-links.html %}
{% include_cached browser-upgrade.html %}
{% include_cached masthead.html %}
<div class="initial-content">
{{ content }}
@@ -25,18 +25,18 @@
{% if site.search == true %}
<div class="search-content">
{% include search/search_form.html %}
{% include_cached search/search_form.html %}
</div>
{% endif %}
<div class="page__footer">
<div id="footer" class="page__footer">
<footer>
{% include footer/custom.html %}
{% include footer.html %}
{% include_cached footer.html %}
</footer>
</div>
{% include scripts.html %}
</body>
</html>
</html>
+12 -3
View File
@@ -6,8 +6,17 @@ layout: archive
<h3 class="archive__subtitle">{{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}</h3>
{% for post in paginator.posts %}
{% include archive-single.html %}
{% endfor %}
{% if paginator %}
{% assign posts = paginator.posts %}
{% else %}
{% assign posts = site.posts %}
{% endif %}
{% 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 %}
</div>
{% include paginator.html %}
+2 -2
View File
@@ -5,7 +5,7 @@ layout: archive
{{ content }}
<ul class="taxonomy__index">
{% assign postsInYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% assign postsInYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% for year in postsInYear %}
<li>
<a href="#{{ year.name }}">
@@ -15,7 +15,7 @@ layout: archive
{% endfor %}
</ul>
{% assign postsByYear = site.posts | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% assign postsByYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
{% for year in postsByYear %}
<section id="{{ year.name }}" class="taxonomy__section">
<h2 class="archive__subtitle">{{ year.name }}</h2>
+2 -2
View File
@@ -28,7 +28,7 @@ layout: default
<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...' }}" />
<div id="results" class="results"></div>
{%- when "google" -%}
<form onsubmit="return executeQuery();" id="cse-search-box-form-id">
<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...' }}" />
</form>
<div id="results" class="results">
@@ -39,4 +39,4 @@ layout: default
<div class="search-hits"></div>
{%- endcase -%}
</div>
</div>
</div>
+10 -13
View File
@@ -17,19 +17,17 @@ layout: default
<div id="main" role="main">
{% include sidebar.html %}
<article class="page" itemscope itemtype="http://schema.org/CreativeWork">
<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 %}
{% 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: "%B %d, %Y" }}">{% endif %}
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date: "%B %d, %Y" }}">{% 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 %}
<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.read_time %}
<p class="page__meta"><i class="far fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
{% endif %}
{% include post__meta.html %}
</header>
{% endunless %}
@@ -37,7 +35,7 @@ layout: default
{% if page.toc %}
<aside class="sidebar__right {% if page.toc_sticky %}sticky{% endif %}">
<nav class="toc">
<header><h4 class="nav__title"><i class="fas fa-{{ page.toc_icon | default: 'file-alt' }}"></i> {{ page.toc_label | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
<header><h4 class="nav__title"><i class="fas fa-{{ page.toc_icon | default: 'file-alt' }}"></i> {{ page.toc_label | default: site.data.ui-text[site.locale].toc_label | default: "On this page" }}</h4></header>
{% include toc.html sanitize=true html=content h_min=1 h_max=6 class="toc__menu" %}
</nav>
</aside>
@@ -51,11 +49,7 @@ layout: default
<h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
{% endif %}
{% include page__taxonomy.html %}
{% 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>
{% 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 %}
{% include page__date.html %}
</footer>
{% if page.share %}{% include social-share.html %}{% endif %}
@@ -84,9 +78,12 @@ layout: default
<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>
{% endif %}
</div>
</div>
+4 -4
View File
@@ -9,14 +9,14 @@ layout: default
{% endif %}
<div id="main" role="main">
<article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
<article class="splash" itemscope itemtype="https://schema.org/CreativeWork">
{% 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: "%B %d, %Y" }}">{% endif %}
{% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date: "%B %d, %Y" }}">{% 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 %}
<section class="page__content" itemprop="text">
{{ content }}
</section>
</article>
</div>
</div>
+3 -3
View File
@@ -1,7 +1,7 @@
/*!
* Minimal Mistakes Jekyll Theme 4.12.2 by Michael Rose
* Copyright 2013-2018 Michael Rose - mademistakes.com | @mmistakes
* Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE.txt)
* Minimal Mistakes Jekyll Theme 4.20.1 by Michael Rose
* Copyright 2013-2019 Michael Rose - mademistakes.com | @mmistakes
* Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)
*/
/* Variables */
+89 -2
View File
@@ -18,8 +18,21 @@
}
}
.archive__item {
position: relative;
a {
position: relative;
z-index: 10;
}
a[rel="permalink"] {
position: static;
}
}
.archive__subtitle {
margin: 1.414em 0 0;
margin: 1.414em 0 0.5em;
padding-bottom: 0.5em;
font-size: $type-size-5;
color: $muted-text-color;
@@ -37,6 +50,15 @@
overflow: hidden;
text-overflow: ellipsis;
a[rel="permalink"]::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
a + a {
opacity: 0.5;
}
@@ -57,6 +79,10 @@
& + p {
text-indent: 0;
}
a {
position: relative;
}
}
.archive__item-teaser {
@@ -215,6 +241,7 @@
}
.feature__item {
position: relative;
margin-bottom: 2em;
font-size: 1.125em;
@@ -249,7 +276,17 @@
padding-right: gutter(1 of 12);
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
&--left {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
@@ -257,10 +294,23 @@
clear: both;
font-size: 1.125em;
.archive__item {
float: left;
}
.archive__item-teaser {
margin-bottom: 2em;
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
@include breakpoint($small) {
.archive__item-teaser {
float: left;
@@ -277,6 +327,7 @@
}
&--right {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
@@ -284,10 +335,23 @@
clear: both;
font-size: 1.125em;
.archive__item {
float: left;
}
.archive__item-teaser {
margin-bottom: 2em;
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
@include breakpoint($small) {
text-align: right;
@@ -306,6 +370,7 @@
}
&--center {
position: relative;
float: left;
margin-left: 0;
margin-right: 0;
@@ -313,10 +378,24 @@
clear: both;
font-size: 1.125em;
.archive__item {
float: left;
width: 100%;
}
.archive__item-teaser {
margin-bottom: 2em;
}
a.btn::before {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
@include breakpoint($small) {
text-align: center;
@@ -365,4 +444,12 @@
padding-right: 0;
}
}
}
}
/* Place inside a single layout */
.layout--single {
.feature__wrapper {
display: inline-block;
}
}
+12 -13
View File
@@ -35,27 +35,27 @@ h6 {
h1 {
margin-top: 0;
font-size: $type-size-3;
font-size: $h-size-1;
}
h2 {
font-size: $type-size-4;
font-size: $h-size-2;
}
h3 {
font-size: $type-size-5;
font-size: $h-size-3;
}
h4 {
font-size: $type-size-6;
font-size: $h-size-4;
}
h5 {
font-size: $type-size-6;
font-size: $h-size-5;
}
h6 {
font-size: $type-size-6;
font-size: $h-size-6;
}
small,
@@ -130,15 +130,14 @@ a {
@extend %tab-focus;
}
&:hover,
&:active {
color: $link-color-hover;
outline: 0;
}
&:visited {
color: $link-color-visited;
}
&:hover {
color: $link-color-hover;
outline: 0;
}
}
/* buttons */
@@ -168,7 +167,7 @@ figcaption > code,
td > code {
padding-top: 0.1rem;
padding-bottom: 0.1rem;
font-size: $type-size-6;
font-size: 0.8em;
background: $code-background-color;
border-radius: $border-radius;
+4 -5
View File
@@ -39,7 +39,6 @@
(info, $info-color),
(facebook, $facebook-color),
(twitter, $twitter-color),
(google-plus, $google-plus-color),
(linkedin, $linkedin-color);
@each $buttoncolor, $color in $buttoncolors {
@@ -52,13 +51,13 @@
border: 1px solid #fff;
}
&:hover {
@include yiq-contrasted(mix(#000, $color, 20%));
}
&:visited {
@include yiq-contrasted($color);
}
&:hover {
@include yiq-contrasted(mix(#000, $color, 20%));
}
}
}
-5
View File
@@ -9,11 +9,6 @@
margin-right: 0;
width: 100%;
clear: both;
/* sticky footer fix start */
position: absolute;
bottom: 0;
height: auto;
/* sticky footer fix end */
margin-top: 3em;
color: $muted-text-color;
-webkit-animation: $intro-transition;
+2 -2
View File
@@ -25,7 +25,7 @@ form {
}
p {
margin-bottom: 5px / 2;
margin-bottom: (5px / 2);
}
ul {
@@ -107,6 +107,7 @@ input[type="radio"] {
cursor: pointer;
border-radius: 0;
border: 0 \9;
box-shadow: none;
}
input[type="checkbox"],
@@ -119,7 +120,6 @@ input[type="radio"] {
input[type="image"] {
border: 0;
box-shadow: none;
}
input[type="file"] {
+11 -2
View File
@@ -26,7 +26,7 @@
font-family: $sans-serif-narrow;
@include breakpoint($x-large) {
max-width: $x-large;
max-width: $max-width;
}
nav {
@@ -39,6 +39,10 @@
}
}
.site-logo img {
max-height: 2rem;
}
.site-title {
display: -webkit-box;
display: -ms-flexbox;
@@ -46,7 +50,12 @@
-ms-flex-item-align: center;
align-self: center;
font-weight: bold;
z-index: 20;
// z-index: 20;
}
.site-subtitle {
display: block;
font-size: $type-size-8;
}
.masthead__menu {
+2 -2
View File
@@ -4,9 +4,9 @@
%tab-focus {
/* Default*/
outline: thin dotted $warning-color;
outline: thin dotted $focus-color;
/* Webkit*/
outline: 5px auto $warning-color;
outline: 5px auto $focus-color;
outline-offset: -2px;
}
+19 -15
View File
@@ -10,19 +10,14 @@
@include clearfix;
margin: 0 auto;
max-width: 100%;
padding-left: 2em;
padding-right: 2em;
padding-left: 1em;
padding-right: 1em;
font-family: $sans-serif;
-webkit-animation: $intro-transition;
animation: $intro-transition;
-webkit-animation-delay: 0.3s;
animation-delay: 0.3s;
@include breakpoint($large) {
padding-left: 1em;
padding-right: 1em;
}
@include breakpoint($x-large) {
max-width: $x-large;
}
@@ -34,11 +29,11 @@
@include breakpoint($large) {
float: right;
width: span(10 of 12);
width: calc(100% - #{$right-sidebar-width-narrow});
}
@include breakpoint($x-large) {
padding-left: gutter(0.5 of 12);
width: calc(100% - #{$right-sidebar-width});
}
}
@@ -194,6 +189,11 @@
color: $masthead-link-color-hover;
}
&.site-logo {
margin-left: 0;
margin-right: 0.5rem;
}
&.site-title {
margin-left: 0;
}
@@ -205,8 +205,7 @@
height: $nav-toggle-height;
border: 0;
outline: none;
color: #fff;
background-color: $primary-color;
background-color: transparent;
cursor: pointer;
}
@@ -340,7 +339,7 @@
display: none;
}
@include breakpoint(max-width($large - 1px)) {
@include breakpoint(max-width $large - 1px) {
label {
position: relative;
display: inline-block;
@@ -446,7 +445,7 @@
font-weight: bold;
}
@include breakpoint(max-width($large - 1px)) {
@include breakpoint(max-width $large - 1px) {
position: relative;
max-height: 0;
opacity: 0%;
@@ -460,7 +459,7 @@
}
}
@include breakpoint(max-width($large - 1px)) {
@include breakpoint(max-width $large - 1px) {
.nav__list input:checked ~ .nav__items {
-webkit-transition: 0.5s ease-in-out;
transition: 0.5s ease-in-out;
@@ -476,7 +475,7 @@
.nav__title {
margin: 0;
padding: 0.25rem 0.75rem;
padding: 0.5rem 0.75rem;
font-family: $sans-serif-narrow;
font-size: $type-size-5;
font-weight: bold;
@@ -513,6 +512,11 @@
border-top-left-radius: $border-radius;
border-top-right-radius: $border-radius;
}
// Scrollspy marks toc items as .active when they are in focus
.active a {
@include yiq-contrasted($active-color);
}
}
.toc__menu {
+6 -1
View File
@@ -24,6 +24,7 @@
h4 {
margin-top: 0 !important; /* override*/
margin-bottom: 0.75em;
line-height: inherit;
}
@at-root .page__content #{&} h4 {
@@ -56,6 +57,10 @@
background-color: mix(#fff, $notice-color, 95%)
}
pre code {
background-color: inherit;
}
ul {
&:last-child {
margin-bottom: 0; /* override*/
@@ -97,4 +102,4 @@
.notice--danger {
@include notice($danger-color);
}
}
+43 -4
View File
@@ -15,10 +15,26 @@
animation-delay: 0.15s;
@include breakpoint($x-large) {
max-width: $x-large;
max-width: $max-width;
}
}
body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
min-height: 100vh;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
.initial-content,
.search-content {
flex: 1 0 auto;
}
.page {
@include breakpoint($large) {
float: right;
@@ -72,6 +88,23 @@
border-bottom: 1px solid $border-color;
}
h1, h2, h3, h4, h5, h6 {
.header-link {
position: relative;
left: 0.5em;
opacity: 0;
font-size: 0.8em;
-webkit-transition: opacity 0.2s ease-in-out 0.1s;
-moz-transition: opacity 0.2s ease-in-out 0.1s;
-o-transition: opacity 0.2s ease-in-out 0.1s;
transition: opacity 0.2s ease-in-out 0.1s;
}
&:hover .header-link {
opacity: 1;
}
}
p,
li,
dl {
@@ -266,6 +299,12 @@
text-transform: uppercase;
}
.post__meta-sep::before {
content: "\2022";
padding-left: 0.5em;
padding-right: 0.5em;
}
/*
Page taxonomy
========================================================================== */
@@ -319,11 +358,11 @@
.taxonomy__title {
margin-bottom: 0.5em;
color: lighten($text-color, 60%);
color: $muted-text-color;
}
.taxonomy__count {
color: lighten($text-color, 50%);
color: $muted-text-color;
}
.taxonomy__index {
@@ -356,7 +395,7 @@
.back-to-top {
display: block;
clear: both;
color: lighten($text-color, 50%);
color: $muted-text-color;
font-size: 0.6em;
text-transform: uppercase;
text-align: right;
+12 -5
View File
@@ -11,16 +11,17 @@
.search__toggle {
margin-left: 1rem;
margin-right: 1rem;
height: $nav-toggle-height;
border: 0;
outline: none;
color: $muted-text-color;
color: $primary-color;
background-color: transparent;
cursor: pointer;
-webkit-transition: 0.2s;
transition: 0.2s;
&:hover {
color: $text-color;
color: mix(#000, $primary-color, 25%);
}
}
@@ -47,8 +48,13 @@
animation-delay: 0.15s;
@include breakpoint($x-large) {
max-width: $x-large;
max-width: $max-width;
}
}
&__form {
background-color: transparent;
}
.search-input {
@@ -114,12 +120,13 @@
}
.archive__item-title .ais-Highlight {
color: $link-color;
color: $primary-color;
font-style: normal;
text-decoration: underline;
}
.archive__item-excerpt .ais-Highlight {
color: $link-color;
color: $primary-color;
font-style: normal;
font-weight: bold;
}
+40 -11
View File
@@ -8,13 +8,13 @@
.sidebar {
@include clearfix();
@include breakpoint(max-width $large) {
/* fix z-index order of follow links */
position: relative;
z-index: 10;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
// @include breakpoint(max-width $large) {
// /* fix z-index order of follow links */
// position: relative;
// z-index: 10;
// -webkit-transform: translate3d(0, 0, 0);
// transform: translate3d(0, 0, 0);
// }
@include breakpoint($large) {
float: left;
@@ -32,7 +32,7 @@
/* calculate height of nav list
viewport height - nav height - masthead x-padding
*/
height: calc(100vh - #{$nav-height} - 2em);
max-height: calc(100vh - #{$nav-height} - 2em);
}
}
@@ -63,7 +63,7 @@
img {
width: 100%;
&.emoji {
width: 20px;
height: 20px;
@@ -184,7 +184,7 @@
display: table-cell;
vertical-align: middle;
font-family: $sans-serif;
z-index: 10;
z-index: 20;
position: relative;
cursor: pointer;
@@ -194,13 +194,38 @@
}
}
.author__urls {
span.label {
padding-left: 5px;
}
}
@include breakpoint($large) {
display: block;
}
button {
position: relative;
margin-bottom: 0;
&:before {
@supports (pointer-events: none) {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
}
&.open {
&:before {
pointer-events: auto;
}
}
@include breakpoint($large) {
display: none;
}
@@ -217,7 +242,6 @@
border: 1px solid $border-color;
border-radius: $border-radius;
background: $background-color;
z-index: -1;
box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12);
cursor: default;
@@ -269,6 +293,11 @@
}
}
ul {
padding: 10px;
list-style-type: none;
}
li {
white-space: nowrap;
}
+2
View File
@@ -3,11 +3,13 @@
========================================================================== */
table {
display: block;
margin-bottom: 1em;
width: 100%;
font-family: $global-font-family;
font-size: $type-size-6;
border-collapse: collapse;
overflow-x: auto;
& + table {
margin-top: 1em;
+77 -8
View File
@@ -103,6 +103,27 @@ body:hover .visually-hidden button {
white-space: nowrap;
}
/*
Task lists
========================================================================== */
.task-list {
padding:0;
li {
list-style-type: none;
}
.task-list-item-checkbox {
margin-right: 0.5em;
opacity: 1;
}
}
.task-list .task-list {
margin-left: 1em;
}
/*
Alignment
========================================================================== */
@@ -228,16 +249,14 @@ body:hover .visually-hidden button {
color: $gitlab-color;
}
.fa-google-plus,
.fa-google-plus-square,
.fa-google-plus-g {
color: $google-plus-color;
}
.fa-instagram {
color: $instagram-color;
}
.fa-keybase {
color: $keybase-color;
}
.fa-lastfm,
.fa-lastfm-square {
color: $lastfm-color;
@@ -248,12 +267,21 @@ body:hover .visually-hidden button {
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;
@@ -306,7 +334,7 @@ body:hover .visually-hidden button {
position: relative;
width: $navicon-width;
height: $navicon-height;
background: #fff;
background: $primary-color;
margin: auto;
-webkit-transition: 0.3s;
transition: 0.3s;
@@ -318,7 +346,7 @@ body:hover .visually-hidden button {
left: 0;
width: $navicon-width;
height: $navicon-height;
background: #fff;
background: $primary-color;
-webkit-transition: 0.3s;
transition: 0.3s;
}
@@ -357,6 +385,47 @@ body:hover .visually-hidden button {
}
}
.greedy-nav__toggle {
&:before {
@supports (pointer-events: none) {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
background-color: $background-color;
-webkit-transition: $global-transition;
transition: $global-transition;
pointer-events: none;
}
}
&.close {
&:before {
opacity: 0.9;
-webkit-transition: $global-transition;
transition: $global-transition;
pointer-events: auto;
}
}
}
.greedy-nav__toggle:hover {
.navicon,
.navicon:before,
.navicon:after {
background: mix(#000, $primary-color, 25%);
}
&.close {
.navicon {
background: transparent;
}
}
}
/*
Sticky, fixed to top content
========================================================================== */
+22 -9
View File
@@ -43,12 +43,20 @@ $type-size-6: 0.75em !default; // ~12px
$type-size-7: 0.6875em !default; // ~11px
$type-size-8: 0.625em !default; // ~10px
/* headline scale */
$h-size-1: 1.563em !default; // ~25.008px
$h-size-2: 1.25em !default; // ~20px
$h-size-3: 1.125em !default; // ~18px
$h-size-4: 1.0625em !default; // ~17px
$h-size-5: 1.03125em !default; // ~16.5px
$h-size-6: 1em !default; // ~16px
/*
Colors
========================================================================== */
$gray: #7a8288 !default;
$dark-gray: mix(#000, $gray, 40%) !default;
$dark-gray: mix(#000, $gray, 50%) !default;
$darker-gray: mix(#000, $gray, 60%) !default;
$light-gray: mix(#fff, $gray, 50%) !default;
$lighter-gray: mix(#fff, $gray, 90%) !default;
@@ -57,16 +65,18 @@ $background-color: #fff !default;
$code-background-color: #fafafa !default;
$code-background-color-dark: $light-gray !default;
$text-color: $dark-gray !default;
$muted-text-color: mix(#fff, $text-color, 35%) !default;
$muted-text-color: mix(#fff, $text-color, 20%) !default;
$border-color: $lighter-gray !default;
$form-background-color: $lighter-gray !default;
$footer-background-color: $lighter-gray !default;
$primary-color: #7a8288 !default;
$success-color: #62c462 !default;
$warning-color: #f89406 !default;
$primary-color: #6f777d !default;
$success-color: #3fa63f !default;
$warning-color: #d67f05 !default;
$danger-color: #ee5f5b !default;
$info-color: #52adc8 !default;
$info-color: #3b9cba !default;
$focus-color: $primary-color !default;
$active-color: mix(#fff, $primary-color, 80%) !default;
/* YIQ color contrast */
$yiq-contrasted-dark-default: $dark-gray !default;
@@ -83,11 +93,13 @@ $flickr-color: #ff0084 !default;
$foursquare-color: #0072b1 !default;
$github-color: #171516 !default;
$gitlab-color: #e24329 !default;
$google-plus-color: #dd4b39 !default;
$instagram-color: #517fa4 !default;
$keybase-color: #ef7639 !default;
$lastfm-color: #d51007 !default;
$linkedin-color: #007bb6 !default;
$mastodon-color: #2b90d9 !default;
$pinterest-color: #cb2027 !default;
$reddit-color: #ff4500 !default;
$rss-color: #fa9b39 !default;
$soundcloud-color: #ff3300 !default;
$stackoverflow-color: #fe7a15 !default;
@@ -99,9 +111,9 @@ $youtube-color: #bb0000 !default;
$xing-color: #006567 !default;
/* links */
$link-color: $info-color !default;
$link-color: mix(#000, $info-color, 20%) !default;
$link-color-hover: mix(#000, $link-color, 25%) !default;
$link-color-visited: mix(#fff, $link-color, 25%) !default;
$link-color-visited: mix(#fff, $link-color, 15%) !default;
$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;
@@ -133,6 +145,7 @@ $medium: 768px !default;
$medium-wide: 900px !default;
$large: 1024px !default;
$x-large: 1280px !default;
$max-width: $x-large !default;
/*
Grid
+4 -18
View File
@@ -18,25 +18,11 @@ $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;
/* dark syntax highlighting (base16) */
$base00: #ffffff !default;
$base01: #e0e0e0 !default;
$base02: #d0d0d0 !default;
$base03: #b0b0b0 !default;
$base04: #000000 !default;
$base05: #101010 !default;
$base06: #151515 !default;
$base07: #202020 !default;
$base08: #ff0086 !default;
$base09: #fd8900 !default;
$base0a: #aba800 !default;
$base0b: #00c918 !default;
$base0c: #1faaaa !default;
$base0d: #3777e6 !default;
$base0e: #ad00a1 !default;
$base0f: #cc6633 !default;
.author__urls.social-icons .svg-inline--fa,
.page__footer-follow .social-icons .svg-inline--fa {
color: inherit;
}
.ais-search-box .ais-search-box--input {
background-color: $form-background-color;
}
+4
View File
@@ -51,3 +51,7 @@ $base0f: #cc6633 !default;
color: $text-color;
}
}
.ais-search-box .ais-search-box--input {
background-color: $form-background-color;
}
+4
View File
@@ -58,3 +58,7 @@ $base0f: #cc6633 !default;
color: $text-color;
}
}
.ais-search-box .ais-search-box--input {
background-color: $form-background-color;
}
+50 -20
View File
@@ -3,24 +3,6 @@
========================================================================== */
$(document).ready(function() {
// Sticky footer
var bumpIt = function() {
$("body").css("margin-bottom", $(".page__footer").outerHeight(true));
},
didResize = false;
bumpIt();
$(window).resize(function() {
didResize = true;
});
setInterval(function() {
if (didResize) {
didResize = false;
bumpIt();
}
}, 250);
// FitVids init
$("#main").fitVids();
@@ -51,6 +33,16 @@ $(document).ready(function() {
$(".author__urls-wrapper button").toggleClass("open");
});
// Close search screen with Esc key
$(document).keyup(function(e) {
if (e.keyCode === 27) {
if ($(".initial-content").hasClass("is--hidden")) {
$(".search-content").toggleClass("is--visible");
$(".initial-content").toggleClass("is--hidden");
}
}
});
// Search toggle
$(".search__toggle").on("click", function() {
$(".search-content").toggleClass("is--visible");
@@ -61,8 +53,33 @@ $(document).ready(function() {
}, 400);
});
// init smooth scroll
$("a").smoothScroll({ offset: -20 });
// Smooth scrolling
var scroll = new SmoothScroll('a[href*="#"]', {
offset: 20,
speed: 400,
speedAsDuration: true,
durationMax: 500
});
// Gumshoe scroll spy init
if($("nav.toc").length > 0) {
var spy = new Gumshoe("nav.toc a", {
// Active classes
navClass: "active", // applied to the nav list item
contentClass: "active", // applied to the content
// Nested navigation
nested: false, // if true, add classes to parents of active link
nestedClass: "active", // applied to the parent items
// Offset & reflow
offset: 20, // how far from the top of the page to activate a content area
reflow: true, // if true, listen for reflows
// Event support
events: true // if true, emit custom events
});
}
// add lightbox class to all image links
$(
@@ -103,4 +120,17 @@ $(document).ready(function() {
closeOnContentClick: true,
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=\"fa fa-link\"></i>';
anchor.title = "Permalink";
$(this).append(anchor);
}
});
});
+3 -5
View File
@@ -1,5 +1,5 @@
---
layout: null
layout: none
---
var idx = lunr(function () {
@@ -22,8 +22,6 @@ var idx = lunr(function () {
}
});
console.log( jQuery.type(idx) );
$(document).ready(function() {
$('input#search').on('keyup', function () {
var resultdiv = $('#results');
@@ -47,7 +45,7 @@ $(document).ready(function() {
if(store[ref].teaser){
var searchitem =
'<div class="list__item">'+
'<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">'+
'<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
@@ -61,7 +59,7 @@ $(document).ready(function() {
else{
var searchitem =
'<div class="list__item">'+
'<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">'+
'<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
+3 -5
View File
@@ -1,5 +1,5 @@
---
layout: null
layout: none
---
step1list = new Array();
@@ -475,8 +475,6 @@ var idx = lunr(function () {
}
});
console.log( jQuery.type(idx) );
$(document).ready(function() {
$('input#search').on('keyup', function () {
var resultdiv = $('#results');
@@ -500,7 +498,7 @@ $(document).ready(function() {
if(store[ref].teaser){
var searchitem =
'<div class="list__item">'+
'<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">'+
'<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
@@ -514,7 +512,7 @@ $(document).ready(function() {
else{
var searchitem =
'<div class="list__item">'+
'<article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">'+
'<article class="archive__item" itemscope itemtype="https://schema.org/CreativeWork">'+
'<h2 class="archive__item-title" itemprop="headline">'+
'<a href="'+store[ref].url+'" rel="permalink">'+store[ref].title+'</a>'+
'</h2>'+
+6 -9
View File
@@ -1,5 +1,5 @@
---
layout: null
layout: none
---
var store = [
@@ -18,7 +18,8 @@ var store = [
"title": {{ doc.title | jsonify }},
"excerpt":
{%- if site.search_full_content == true -%}
{{ doc.content |
{{ doc.content | newline_to_br |
replace:"<br />", " " |
replace:"</p>", " " |
replace:"</h1>", " " |
replace:"</h2>", " " |
@@ -28,7 +29,8 @@ var store = [
replace:"</h6>", " "|
strip_html | strip_newlines | jsonify }},
{%- else -%}
{{ doc.content |
{{ doc.content | newline_to_br |
replace:"<br />", " " |
replace:"</p>", " " |
replace:"</h1>", " " |
replace:"</h2>", " " |
@@ -41,12 +43,7 @@ var store = [
"categories": {{ doc.categories | jsonify }},
"tags": {{ doc.tags | jsonify }},
"url": {{ doc.url | absolute_url | jsonify }},
"teaser":
{%- if teaser contains "://" -%}
{{ teaser | jsonify }}
{%- else -%}
{{ teaser | absolute_url | jsonify }}
{%- endif -%}
"teaser": {{ teaser | absolute_url | jsonify }}
}{%- unless forloop.last and l -%},{%- endunless -%}
{%- endfor -%}
{%- endfor -%}]
+597 -90
View File
File diff suppressed because it is too large Load Diff
+1 -6
View File
File diff suppressed because one or more lines are too long
Vendored Regular → Executable
+6 -6
View File
File diff suppressed because one or more lines are too long
+484
View File
@@ -0,0 +1,484 @@
/*!
* gumshoejs v5.1.1
* A simple, framework-agnostic scrollspy script.
* (c) 2019 Chris Ferdinandi
* MIT License
* http://github.com/cferdinandi/gumshoe
*/
(function (root, factory) {
if ( typeof define === 'function' && define.amd ) {
define([], (function () {
return factory(root);
}));
} else if ( typeof exports === 'object' ) {
module.exports = factory(root);
} else {
root.Gumshoe = factory(root);
}
})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, (function (window) {
'use strict';
//
// Defaults
//
var defaults = {
// Active classes
navClass: 'active',
contentClass: 'active',
// Nested navigation
nested: false,
nestedClass: 'active',
// Offset & reflow
offset: 0,
reflow: false,
// Event support
events: true
};
//
// Methods
//
/**
* Merge two or more objects together.
* @param {Object} objects The objects to merge together
* @returns {Object} Merged values of defaults and options
*/
var extend = function () {
var merged = {};
Array.prototype.forEach.call(arguments, (function (obj) {
for (var key in obj) {
if (!obj.hasOwnProperty(key)) return;
merged[key] = obj[key];
}
}));
return merged;
};
/**
* Emit a custom event
* @param {String} type The event type
* @param {Node} elem The element to attach the event to
* @param {Object} detail Any details to pass along with the event
*/
var emitEvent = function (type, elem, detail) {
// Make sure events are enabled
if (!detail.settings.events) return;
// Create a new event
var event = new CustomEvent(type, {
bubbles: true,
cancelable: true,
detail: detail
});
// Dispatch the event
elem.dispatchEvent(event);
};
/**
* Get an element's distance from the top of the Document.
* @param {Node} elem The element
* @return {Number} Distance from the top in pixels
*/
var getOffsetTop = function (elem) {
var location = 0;
if (elem.offsetParent) {
while (elem) {
location += elem.offsetTop;
elem = elem.offsetParent;
}
}
return location >= 0 ? location : 0;
};
/**
* Sort content from first to last in the DOM
* @param {Array} contents The content areas
*/
var sortContents = function (contents) {
if(contents) {
contents.sort((function (item1, item2) {
var offset1 = getOffsetTop(item1.content);
var offset2 = getOffsetTop(item2.content);
if (offset1 < offset2) return -1;
return 1;
}));
}
};
/**
* Get the offset to use for calculating position
* @param {Object} settings The settings for this instantiation
* @return {Float} The number of pixels to offset the calculations
*/
var getOffset = function (settings) {
// if the offset is a function run it
if (typeof settings.offset === 'function') {
return parseFloat(settings.offset());
}
// Otherwise, return it as-is
return parseFloat(settings.offset);
};
/**
* Get the document element's height
* @private
* @returns {Number}
*/
var getDocumentHeight = function () {
return Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
};
/**
* Determine if an element is in view
* @param {Node} elem The element
* @param {Object} settings The settings for this instantiation
* @param {Boolean} bottom If true, check if element is above bottom of viewport instead
* @return {Boolean} Returns true if element is in the viewport
*/
var isInView = function (elem, settings, bottom) {
var bounds = elem.getBoundingClientRect();
var offset = getOffset(settings);
if (bottom) {
return parseInt(bounds.bottom, 10) < (window.innerHeight || document.documentElement.clientHeight);
}
return parseInt(bounds.top, 10) <= offset;
};
/**
* Check if at the bottom of the viewport
* @return {Boolean} If true, page is at the bottom of the viewport
*/
var isAtBottom = function () {
if (window.innerHeight + window.pageYOffset >= getDocumentHeight()) return true;
return false;
};
/**
* Check if the last item should be used (even if not at the top of the page)
* @param {Object} item The last item
* @param {Object} settings The settings for this instantiation
* @return {Boolean} If true, use the last item
*/
var useLastItem = function (item, settings) {
if (isAtBottom() && isInView(item.content, settings, true)) return true;
return false;
};
/**
* Get the active content
* @param {Array} contents The content areas
* @param {Object} settings The settings for this instantiation
* @return {Object} The content area and matching navigation link
*/
var getActive = function (contents, settings) {
var last = contents[contents.length-1];
if (useLastItem(last, settings)) return last;
for (var i = contents.length - 1; i >= 0; i--) {
if (isInView(contents[i].content, settings)) return contents[i];
}
};
/**
* Deactivate parent navs in a nested navigation
* @param {Node} nav The starting navigation element
* @param {Object} settings The settings for this instantiation
*/
var deactivateNested = function (nav, settings) {
// If nesting isn't activated, bail
if (!settings.nested) return;
// Get the parent navigation
var li = nav.parentNode.closest('li');
if (!li) return;
// Remove the active class
li.classList.remove(settings.nestedClass);
// Apply recursively to any parent navigation elements
deactivateNested(li, settings);
};
/**
* Deactivate a nav and content area
* @param {Object} items The nav item and content to deactivate
* @param {Object} settings The settings for this instantiation
*/
var deactivate = function (items, settings) {
// Make sure their are items to deactivate
if (!items) return;
// Get the parent list item
var li = items.nav.closest('li');
if (!li) return;
// Remove the active class from the nav and content
li.classList.remove(settings.navClass);
items.content.classList.remove(settings.contentClass);
// Deactivate any parent navs in a nested navigation
deactivateNested(li, settings);
// Emit a custom event
emitEvent('gumshoeDeactivate', li, {
link: items.nav,
content: items.content,
settings: settings
});
};
/**
* Activate parent navs in a nested navigation
* @param {Node} nav The starting navigation element
* @param {Object} settings The settings for this instantiation
*/
var activateNested = function (nav, settings) {
// If nesting isn't activated, bail
if (!settings.nested) return;
// Get the parent navigation
var li = nav.parentNode.closest('li');
if (!li) return;
// Add the active class
li.classList.add(settings.nestedClass);
// Apply recursively to any parent navigation elements
activateNested(li, settings);
};
/**
* Activate a nav and content area
* @param {Object} items The nav item and content to activate
* @param {Object} settings The settings for this instantiation
*/
var activate = function (items, settings) {
// Make sure their are items to activate
if (!items) return;
// Get the parent list item
var li = items.nav.closest('li');
if (!li) return;
// Add the active class to the nav and content
li.classList.add(settings.navClass);
items.content.classList.add(settings.contentClass);
// Activate any parent navs in a nested navigation
activateNested(li, settings);
// Emit a custom event
emitEvent('gumshoeActivate', li, {
link: items.nav,
content: items.content,
settings: settings
});
};
/**
* Create the Constructor object
* @param {String} selector The selector to use for navigation items
* @param {Object} options User options and settings
*/
var Constructor = function (selector, options) {
//
// Variables
//
var publicAPIs = {};
var navItems, contents, current, timeout, settings;
//
// Methods
//
/**
* Set variables from DOM elements
*/
publicAPIs.setup = function () {
// Get all nav items
navItems = document.querySelectorAll(selector);
// Create contents array
contents = [];
// Loop through each item, get it's matching content, and push to the array
Array.prototype.forEach.call(navItems, (function (item) {
// Get the content for the nav item
var content = document.getElementById(decodeURIComponent(item.hash.substr(1)));
if (!content) return;
// Push to the contents array
contents.push({
nav: item,
content: content
});
}));
// Sort contents by the order they appear in the DOM
sortContents(contents);
};
/**
* Detect which content is currently active
*/
publicAPIs.detect = function () {
// Get the active content
var active = getActive(contents, settings);
// if there's no active content, deactivate and bail
if (!active) {
if (current) {
deactivate(current, settings);
current = null;
}
return;
}
// If the active content is the one currently active, do nothing
if (current && active.content === current.content) return;
// Deactivate the current content and activate the new content
deactivate(current, settings);
activate(active, settings);
// Update the currently active content
current = active;
};
/**
* Detect the active content on scroll
* Debounced for performance
*/
var scrollHandler = function (event) {
// If there's a timer, cancel it
if (timeout) {
window.cancelAnimationFrame(timeout);
}
// Setup debounce callback
timeout = window.requestAnimationFrame(publicAPIs.detect);
};
/**
* Update content sorting on resize
* Debounced for performance
*/
var resizeHandler = function (event) {
// If there's a timer, cancel it
if (timeout) {
window.cancelAnimationFrame(timeout);
}
// Setup debounce callback
timeout = window.requestAnimationFrame((function () {
sortContents(contents);
publicAPIs.detect();
}));
};
/**
* Destroy the current instantiation
*/
publicAPIs.destroy = function () {
// Undo DOM changes
if (current) {
deactivate(current, settings);
}
// Remove event listeners
window.removeEventListener('scroll', scrollHandler, false);
if (settings.reflow) {
window.removeEventListener('resize', resizeHandler, false);
}
// Reset variables
contents = null;
navItems = null;
current = null;
timeout = null;
settings = null;
};
/**
* Initialize the current instantiation
*/
var init = function () {
// Merge user options into defaults
settings = extend(defaults, options || {});
// Setup variables based on the current DOM
publicAPIs.setup();
// Find the currently active content
publicAPIs.detect();
// Setup event listeners
window.addEventListener('scroll', scrollHandler, false);
if (settings.reflow) {
window.addEventListener('resize', resizeHandler, false);
}
};
//
// Initialize and return the public APIs
//
init();
return publicAPIs;
};
//
// Return the Constructor
//
return Constructor;
}));
+252
View File
@@ -0,0 +1,252 @@
/*!
* jQuery throttle / debounce - v1.1 - 3/7/2010
* http://benalman.com/projects/jquery-throttle-debounce-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
// Script: jQuery throttle / debounce: Sometimes, less is more!
//
// *Version: 1.1, Last updated: 3/7/2010*
//
// Project Home - http://benalman.com/projects/jquery-throttle-debounce-plugin/
// GitHub - http://github.com/cowboy/jquery-throttle-debounce/
// Source - http://github.com/cowboy/jquery-throttle-debounce/raw/master/jquery.ba-throttle-debounce.js
// (Minified) - http://github.com/cowboy/jquery-throttle-debounce/raw/master/jquery.ba-throttle-debounce.min.js (0.7kb)
//
// About: License
//
// Copyright (c) 2010 "Cowboy" Ben Alman,
// Dual licensed under the MIT and GPL licenses.
// http://benalman.com/about/license/
//
// About: Examples
//
// These working examples, complete with fully commented code, illustrate a few
// ways in which this plugin can be used.
//
// Throttle - http://benalman.com/code/projects/jquery-throttle-debounce/examples/throttle/
// Debounce - http://benalman.com/code/projects/jquery-throttle-debounce/examples/debounce/
//
// About: Support and Testing
//
// Information about what version or versions of jQuery this plugin has been
// tested with, what browsers it has been tested in, and where the unit tests
// reside (so you can test it yourself).
//
// jQuery Versions - none, 1.3.2, 1.4.2
// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome 4-5, Opera 9.6-10.1.
// Unit Tests - http://benalman.com/code/projects/jquery-throttle-debounce/unit/
//
// About: Release History
//
// 1.1 - (3/7/2010) Fixed a bug in <jQuery.throttle> where trailing callbacks
// executed later than they should. Reworked a fair amount of internal
// logic as well.
// 1.0 - (3/6/2010) Initial release as a stand-alone project. Migrated over
// from jquery-misc repo v0.4 to jquery-throttle repo v1.0, added the
// no_trailing throttle parameter and debounce functionality.
//
// Topic: Note for non-jQuery users
//
// jQuery isn't actually required for this plugin, because nothing internal
// uses any jQuery methods or properties. jQuery is just used as a namespace
// under which these methods can exist.
//
// Since jQuery isn't actually required for this plugin, if jQuery doesn't exist
// when this plugin is loaded, the method described below will be created in
// the `Cowboy` namespace. Usage will be exactly the same, but instead of
// $.method() or jQuery.method(), you'll need to use Cowboy.method().
(function(window,undefined){
'$:nomunge'; // Used by YUI compressor.
// Since jQuery really isn't required for this plugin, use `jQuery` as the
// namespace only if it already exists, otherwise use the `Cowboy` namespace,
// creating it if necessary.
var $ = window.jQuery || window.Cowboy || ( window.Cowboy = {} ),
// Internal method reference.
jq_throttle;
// Method: jQuery.throttle
//
// Throttle execution of a function. Especially useful for rate limiting
// execution of handlers on events like resize and scroll. If you want to
// rate-limit execution of a function to a single time, see the
// <jQuery.debounce> method.
//
// In this visualization, | is a throttled-function call and X is the actual
// callback execution:
//
// > Throttled with `no_trailing` specified as false or unspecified:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X X X X X X X X X X X
// >
// > Throttled with `no_trailing` specified as true:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X X X X X X X X X
//
// Usage:
//
// > var throttled = jQuery.throttle( delay, [ no_trailing, ] callback );
// >
// > jQuery('selector').bind( 'someevent', throttled );
// > jQuery('selector').unbind( 'someevent', throttled );
//
// This also works in jQuery 1.4+:
//
// > jQuery('selector').bind( 'someevent', jQuery.throttle( delay, [ no_trailing, ] callback ) );
// > jQuery('selector').unbind( 'someevent', callback );
//
// Arguments:
//
// delay - (Number) A zero-or-greater delay in milliseconds. For event
// callbacks, values around 100 or 250 (or even higher) are most useful.
// no_trailing - (Boolean) Optional, defaults to false. If no_trailing is
// true, callback will only execute every `delay` milliseconds while the
// throttled-function is being called. If no_trailing is false or
// unspecified, callback will be executed one final time after the last
// throttled-function call. (After the throttled-function has not been
// called for `delay` milliseconds, the internal counter is reset)
// callback - (Function) A function to be executed after delay milliseconds.
// The `this` context and all arguments are passed through, as-is, to
// `callback` when the throttled-function is executed.
//
// Returns:
//
// (Function) A new, throttled, function.
$.throttle = jq_throttle = function( delay, no_trailing, callback, debounce_mode ) {
// After wrapper has stopped being called, this timeout ensures that
// `callback` is executed at the proper times in `throttle` and `end`
// debounce modes.
var timeout_id,
// Keep track of the last time `callback` was executed.
last_exec = 0;
// `no_trailing` defaults to falsy.
if ( typeof no_trailing !== 'boolean' ) {
debounce_mode = callback;
callback = no_trailing;
no_trailing = undefined;
}
// The `wrapper` function encapsulates all of the throttling / debouncing
// functionality and when executed will limit the rate at which `callback`
// is executed.
function wrapper() {
var that = this,
elapsed = +new Date() - last_exec,
args = arguments;
// Execute `callback` and update the `last_exec` timestamp.
function exec() {
last_exec = +new Date();
callback.apply( that, args );
};
// If `debounce_mode` is true (at_begin) this is used to clear the flag
// to allow future `callback` executions.
function clear() {
timeout_id = undefined;
};
if ( debounce_mode && !timeout_id ) {
// Since `wrapper` is being called for the first time and
// `debounce_mode` is true (at_begin), execute `callback`.
exec();
}
// Clear any existing timeout.
timeout_id && clearTimeout( timeout_id );
if ( debounce_mode === undefined && elapsed > delay ) {
// In throttle mode, if `delay` time has been exceeded, execute
// `callback`.
exec();
} else if ( no_trailing !== true ) {
// In trailing throttle mode, since `delay` time has not been
// exceeded, schedule `callback` to execute `delay` ms after most
// recent execution.
//
// If `debounce_mode` is true (at_begin), schedule `clear` to execute
// after `delay` ms.
//
// If `debounce_mode` is false (at end), schedule `callback` to
// execute after `delay` ms.
timeout_id = setTimeout( debounce_mode ? clear : exec, debounce_mode === undefined ? delay - elapsed : delay );
}
};
// Set the guid of `wrapper` function to the same of original callback, so
// it can be removed in jQuery 1.4+ .unbind or .die by using the original
// callback as a reference.
if ( $.guid ) {
wrapper.guid = callback.guid = callback.guid || $.guid++;
}
// Return the wrapper function.
return wrapper;
};
// Method: jQuery.debounce
//
// Debounce execution of a function. Debouncing, unlike throttling,
// guarantees that a function is only executed a single time, either at the
// very beginning of a series of calls, or at the very end. If you want to
// simply rate-limit execution of a function, see the <jQuery.throttle>
// method.
//
// In this visualization, | is a debounced-function call and X is the actual
// callback execution:
//
// > Debounced with `at_begin` specified as false or unspecified:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X
// >
// > Debounced with `at_begin` specified as true:
// > ||||||||||||||||||||||||| (pause) |||||||||||||||||||||||||
// > X X
//
// Usage:
//
// > var debounced = jQuery.debounce( delay, [ at_begin, ] callback );
// >
// > jQuery('selector').bind( 'someevent', debounced );
// > jQuery('selector').unbind( 'someevent', debounced );
//
// This also works in jQuery 1.4+:
//
// > jQuery('selector').bind( 'someevent', jQuery.debounce( delay, [ at_begin, ] callback ) );
// > jQuery('selector').unbind( 'someevent', callback );
//
// Arguments:
//
// delay - (Number) A zero-or-greater delay in milliseconds. For event
// callbacks, values around 100 or 250 (or even higher) are most useful.
// at_begin - (Boolean) Optional, defaults to false. If at_begin is false or
// unspecified, callback will only be executed `delay` milliseconds after
// the last debounced-function call. If at_begin is true, callback will be
// executed only at the first debounced-function call. (After the
// throttled-function has not been called for `delay` milliseconds, the
// internal counter is reset)
// callback - (Function) A function to be executed after delay milliseconds.
// The `this` context and all arguments are passed through, as-is, to
// `callback` when the debounced-function is executed.
//
// Returns:
//
// (Function) A new, debounced, function.
$.debounce = function( delay, at_begin, callback ) {
return callback === undefined
? jq_throttle( delay, at_begin, false )
: jq_throttle( delay, callback, at_begin !== false );
};
})(this);
+23 -32
View File
@@ -1,10 +1,11 @@
/*
GreedyNav.js - https://github.com/lukejacksonn/GreedyNav
GreedyNav.js - http://lukejacksonn.com/actuate
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2015 Luke Jackson
*/
$(document).ready(function() {
$(function() {
var $btn = $("nav.greedy-nav .greedy-nav__toggle");
var $vlinks = $("nav.greedy-nav .visible-links");
var $hlinks = $("nav.greedy-nav .hidden-links");
@@ -24,35 +25,28 @@ $(document).ready(function() {
var availableSpace, numOfVisibleItems, requiredSpace, timer;
function check() {
// Get instant state
availableSpace = $vlinks.width() - $btn.width();
availableSpace = $vlinks.width() - 10;
numOfVisibleItems = $vlinks.children().length;
requiredSpace = breakWidths[numOfVisibleItems - 1];
// There is not enough space
// There is not enought space
if (requiredSpace > availableSpace) {
$vlinks
.children()
.last()
.prependTo($hlinks);
$vlinks.children().last().prependTo($hlinks);
numOfVisibleItems -= 1;
check();
// There is more than enough space
} else if (availableSpace > breakWidths[numOfVisibleItems]) {
$hlinks
.children()
.first()
.appendTo($vlinks);
$hlinks.children().first().appendTo($vlinks);
numOfVisibleItems += 1;
check();
}
// Update the button accordingly
$btn.attr("count", numOfItems - numOfVisibleItems);
if (numOfVisibleItems === numOfItems) {
$btn.addClass("hidden");
} else {
$btn.removeClass("hidden");
}
$btn.addClass('hidden');
} else $btn.removeClass('hidden');
}
// Window listeners
@@ -60,24 +54,21 @@ $(document).ready(function() {
check();
});
$btn.on("click", function() {
$hlinks.toggleClass("hidden");
$(this).toggleClass("close");
$btn.on('click', function() {
$hlinks.toggleClass('hidden');
clearTimeout(timer);
});
$hlinks
.on("mouseleave", function() {
// Mouse has left, start the timer
timer = setTimeout(function() {
$hlinks.addClass("hidden");
$btn.toggleClass("close");
}, closingTime);
})
.on("mouseenter", function() {
// Mouse is back, cancel the timer
clearTimeout(timer);
});
$hlinks.on('mouseleave', function() {
// Mouse has left, start the timer
timer = setTimeout(function() {
$hlinks.addClass('hidden');
}, closingTime);
}).on('mouseenter', function() {
// Mouse is back, cancel the timer
clearTimeout(timer);
})
check();
});
});
-9
View File
@@ -1,9 +0,0 @@
/*!
* jQuery Smooth Scroll - v2.2.0 - 2017-05-05
* https://github.com/kswedberg/jquery-smooth-scroll
* Copyright (c) 2017 Karl Swedberg
* Licensed MIT
*/
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(a){var b={},c={exclude:[],excludeWithin:[],offset:0,direction:"top",delegateSelector:null,scrollElement:null,scrollTarget:null,autoFocus:!1,beforeScroll:function(){},afterScroll:function(){},easing:"swing",speed:400,autoCoefficient:2,preventDefault:!0},d=function(b){var c=[],d=!1,e=b.dir&&"left"===b.dir?"scrollLeft":"scrollTop";return this.each(function(){var b=a(this);if(this!==document&&this!==window)return!document.scrollingElement||this!==document.documentElement&&this!==document.body?void(b[e]()>0?c.push(this):(b[e](1),d=b[e]()>0,d&&c.push(this),b[e](0))):(c.push(document.scrollingElement),!1)}),c.length||this.each(function(){this===document.documentElement&&"smooth"===a(this).css("scrollBehavior")&&(c=[this]),c.length||"BODY"!==this.nodeName||(c=[this])}),"first"===b.el&&c.length>1&&(c=[c[0]]),c},e=/^([\-\+]=)(\d+)/;a.fn.extend({scrollable:function(a){var b=d.call(this,{dir:a});return this.pushStack(b)},firstScrollable:function(a){var b=d.call(this,{el:"first",dir:a});return this.pushStack(b)},smoothScroll:function(b,c){if("options"===(b=b||{}))return c?this.each(function(){var b=a(this),d=a.extend(b.data("ssOpts")||{},c);a(this).data("ssOpts",d)}):this.first().data("ssOpts");var d=a.extend({},a.fn.smoothScroll.defaults,b),e=function(b){var c=function(a){return a.replace(/(:|\.|\/)/g,"\\$1")},e=this,f=a(this),g=a.extend({},d,f.data("ssOpts")||{}),h=d.exclude,i=g.excludeWithin,j=0,k=0,l=!0,m={},n=a.smoothScroll.filterPath(location.pathname),o=a.smoothScroll.filterPath(e.pathname),p=location.hostname===e.hostname||!e.hostname,q=g.scrollTarget||o===n,r=c(e.hash);if(r&&!a(r).length&&(l=!1),g.scrollTarget||p&&q&&r){for(;l&&j<h.length;)f.is(c(h[j++]))&&(l=!1);for(;l&&k<i.length;)f.closest(i[k++]).length&&(l=!1)}else l=!1;l&&(g.preventDefault&&b.preventDefault(),a.extend(m,g,{scrollTarget:g.scrollTarget||r,link:e}),a.smoothScroll(m))};return null!==b.delegateSelector?this.off("click.smoothscroll",b.delegateSelector).on("click.smoothscroll",b.delegateSelector,e):this.off("click.smoothscroll").on("click.smoothscroll",e),this}});var f=function(a){var b={relative:""},c="string"==typeof a&&e.exec(a);return"number"==typeof a?b.px=a:c&&(b.relative=c[1],b.px=parseFloat(c[2])||0),b},g=function(b){var c=a(b.scrollTarget);b.autoFocus&&c.length&&(c[0].focus(),c.is(document.activeElement)||(c.prop({tabIndex:-1}),c[0].focus())),b.afterScroll.call(b.link,b)};a.smoothScroll=function(c,d){if("options"===c&&"object"==typeof d)return a.extend(b,d);var e,h,i,j,k=f(c),l={},m=0,n="offset",o="scrollTop",p={},q={};k.px?e=a.extend({link:null},a.fn.smoothScroll.defaults,b):(e=a.extend({link:null},a.fn.smoothScroll.defaults,c||{},b),e.scrollElement&&(n="position","static"===e.scrollElement.css("position")&&e.scrollElement.css("position","relative")),d&&(k=f(d))),o="left"===e.direction?"scrollLeft":o,e.scrollElement?(h=e.scrollElement,k.px||/^(?:HTML|BODY)$/.test(h[0].nodeName)||(m=h[o]())):h=a("html, body").firstScrollable(e.direction),e.beforeScroll.call(h,e),l=k.px?k:{relative:"",px:a(e.scrollTarget)[n]()&&a(e.scrollTarget)[n]()[e.direction]||0},p[o]=l.relative+(l.px+m+e.offset),i=e.speed,"auto"===i&&(j=Math.abs(p[o]-h[o]()),i=j/e.autoCoefficient),q={duration:i,easing:e.easing,complete:function(){g(e)}},e.step&&(q.step=e.step),h.length?h.stop().animate(p,q):g(e)},a.smoothScroll.version="2.2.0",a.smoothScroll.filterPath=function(a){return a=a||"",a.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},a.fn.smoothScroll.defaults=c});
+650
View File
@@ -0,0 +1,650 @@
/*!
* smooth-scroll v16.1.2
* Animate scrolling to anchor links
* (c) 2020 Chris Ferdinandi
* MIT License
* http://github.com/cferdinandi/smooth-scroll
*/
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
define([], (function () {
return factory(root);
}));
} else if (typeof exports === 'object') {
module.exports = factory(root);
} else {
root.SmoothScroll = factory(root);
}
})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, (function (window) {
'use strict';
//
// Default settings
//
var defaults = {
// Selectors
ignore: '[data-scroll-ignore]',
header: null,
topOnEmptyHash: true,
// Speed & Duration
speed: 500,
speedAsDuration: false,
durationMax: null,
durationMin: null,
clip: true,
offset: 0,
// Easing
easing: 'easeInOutCubic',
customEasing: null,
// History
updateURL: true,
popstate: true,
// Custom Events
emitEvents: true
};
//
// Utility Methods
//
/**
* Check if browser supports required methods
* @return {Boolean} Returns true if all required methods are supported
*/
var supports = function () {
return (
'querySelector' in document &&
'addEventListener' in window &&
'requestAnimationFrame' in window &&
'closest' in window.Element.prototype
);
};
/**
* Merge two or more objects together.
* @param {Object} objects The objects to merge together
* @returns {Object} Merged values of defaults and options
*/
var extend = function () {
var merged = {};
Array.prototype.forEach.call(arguments, (function (obj) {
for (var key in obj) {
if (!obj.hasOwnProperty(key)) return;
merged[key] = obj[key];
}
}));
return merged;
};
/**
* Check to see if user prefers reduced motion
* @param {Object} settings Script settings
*/
var reduceMotion = function () {
if ('matchMedia' in window && window.matchMedia('(prefers-reduced-motion)').matches) {
return true;
}
return false;
};
/**
* Get the height of an element.
* @param {Node} elem The element to get the height of
* @return {Number} The element's height in pixels
*/
var getHeight = function (elem) {
return parseInt(window.getComputedStyle(elem).height, 10);
};
/**
* Escape special characters for use with querySelector
* @author Mathias Bynens
* @link https://github.com/mathiasbynens/CSS.escape
* @param {String} id The anchor ID to escape
*/
var escapeCharacters = function (id) {
// Remove leading hash
if (id.charAt(0) === '#') {
id = id.substr(1);
}
var string = String(id);
var length = string.length;
var index = -1;
var codeUnit;
var result = '';
var firstCodeUnit = string.charCodeAt(0);
while (++index < length) {
codeUnit = string.charCodeAt(index);
// Note: there’s no need to special-case astral symbols, surrogate
// pairs, or lone surrogates.
// If the character is NULL (U+0000), then throw an
// `InvalidCharacterError` exception and terminate these steps.
if (codeUnit === 0x0000) {
throw new InvalidCharacterError(
'Invalid character: the input contains U+0000.'
);
}
if (
// If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
// U+007F, […]
(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
// If the character is the first character and is in the range [0-9]
// (U+0030 to U+0039), […]
(index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
// If the character is the second character and is in the range [0-9]
// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
(
index === 1 &&
codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
firstCodeUnit === 0x002D
)
) {
// http://dev.w3.org/csswg/cssom/#escape-a-character-as-code-point
result += '\\' + codeUnit.toString(16) + ' ';
continue;
}
// If the character is not handled by one of the above rules and is
// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
// U+005A), or [a-z] (U+0061 to U+007A), […]
if (
codeUnit >= 0x0080 ||
codeUnit === 0x002D ||
codeUnit === 0x005F ||
codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
codeUnit >= 0x0041 && codeUnit <= 0x005A ||
codeUnit >= 0x0061 && codeUnit <= 0x007A
) {
// the character itself
result += string.charAt(index);
continue;
}
// Otherwise, the escaped character.
// http://dev.w3.org/csswg/cssom/#escape-a-character
result += '\\' + string.charAt(index);
}
// Return sanitized hash
return '#' + result;
};
/**
* Calculate the easing pattern
* @link https://gist.github.com/gre/1650294
* @param {String} type Easing pattern
* @param {Number} time Time animation should take to complete
* @returns {Number}
*/
var easingPattern = function (settings, time) {
var pattern;
// Default Easing Patterns
if (settings.easing === 'easeInQuad') pattern = time * time; // accelerating from zero velocity
if (settings.easing === 'easeOutQuad') pattern = time * (2 - time); // decelerating to zero velocity
if (settings.easing === 'easeInOutQuad') pattern = time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time; // acceleration until halfway, then deceleration
if (settings.easing === 'easeInCubic') pattern = time * time * time; // accelerating from zero velocity
if (settings.easing === 'easeOutCubic') pattern = (--time) * time * time + 1; // decelerating to zero velocity
if (settings.easing === 'easeInOutCubic') pattern = time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1; // acceleration until halfway, then deceleration
if (settings.easing === 'easeInQuart') pattern = time * time * time * time; // accelerating from zero velocity
if (settings.easing === 'easeOutQuart') pattern = 1 - (--time) * time * time * time; // decelerating to zero velocity
if (settings.easing === 'easeInOutQuart') pattern = time < 0.5 ? 8 * time * time * time * time : 1 - 8 * (--time) * time * time * time; // acceleration until halfway, then deceleration
if (settings.easing === 'easeInQuint') pattern = time * time * time * time * time; // accelerating from zero velocity
if (settings.easing === 'easeOutQuint') pattern = 1 + (--time) * time * time * time * time; // decelerating to zero velocity
if (settings.easing === 'easeInOutQuint') pattern = time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * (--time) * time * time * time * time; // acceleration until halfway, then deceleration
// Custom Easing Patterns
if (!!settings.customEasing) pattern = settings.customEasing(time);
return pattern || time; // no easing, no acceleration
};
/**
* Determine the document's height
* @returns {Number}
*/
var getDocumentHeight = function () {
return Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);
};
/**
* Calculate how far to scroll
* Clip support added by robjtede - https://github.com/cferdinandi/smooth-scroll/issues/405
* @param {Element} anchor The anchor element to scroll to
* @param {Number} headerHeight Height of a fixed header, if any
* @param {Number} offset Number of pixels by which to offset scroll
* @param {Boolean} clip If true, adjust scroll distance to prevent abrupt stops near the bottom of the page
* @returns {Number}
*/
var getEndLocation = function (anchor, headerHeight, offset, clip) {
var location = 0;
if (anchor.offsetParent) {
do {
location += anchor.offsetTop;
anchor = anchor.offsetParent;
} while (anchor);
}
location = Math.max(location - headerHeight - offset, 0);
if (clip) {
location = Math.min(location, getDocumentHeight() - window.innerHeight);
}
return location;
};
/**
* Get the height of the fixed header
* @param {Node} header The header
* @return {Number} The height of the header
*/
var getHeaderHeight = function (header) {
return !header ? 0 : (getHeight(header) + header.offsetTop);
};
/**
* Calculate the speed to use for the animation
* @param {Number} distance The distance to travel
* @param {Object} settings The plugin settings
* @return {Number} How fast to animate
*/
var getSpeed = function (distance, settings) {
var speed = settings.speedAsDuration ? settings.speed : Math.abs(distance / 1000 * settings.speed);
if (settings.durationMax && speed > settings.durationMax) return settings.durationMax;
if (settings.durationMin && speed < settings.durationMin) return settings.durationMin;
return parseInt(speed, 10);
};
var setHistory = function (options) {
// Make sure this should run
if (!history.replaceState || !options.updateURL || history.state) return;
// Get the hash to use
var hash = window.location.hash;
hash = hash ? hash : '';
// Set a default history
history.replaceState(
{
smoothScroll: JSON.stringify(options),
anchor: hash ? hash : window.pageYOffset
},
document.title,
hash ? hash : window.location.href
);
};
/**
* Update the URL
* @param {Node} anchor The anchor that was scrolled to
* @param {Boolean} isNum If true, anchor is a number
* @param {Object} options Settings for Smooth Scroll
*/
var updateURL = function (anchor, isNum, options) {
// Bail if the anchor is a number
if (isNum) return;
// Verify that pushState is supported and the updateURL option is enabled
if (!history.pushState || !options.updateURL) return;
// Update URL
history.pushState(
{
smoothScroll: JSON.stringify(options),
anchor: anchor.id
},
document.title,
anchor === document.documentElement ? '#top' : '#' + anchor.id
);
};
/**
* Bring the anchored element into focus
* @param {Node} anchor The anchor element
* @param {Number} endLocation The end location to scroll to
* @param {Boolean} isNum If true, scroll is to a position rather than an element
*/
var adjustFocus = function (anchor, endLocation, isNum) {
// Is scrolling to top of page, blur
if (anchor === 0) {
document.body.focus();
}
// Don't run if scrolling to a number on the page
if (isNum) return;
// Otherwise, bring anchor element into focus
anchor.focus();
if (document.activeElement !== anchor) {
anchor.setAttribute('tabindex', '-1');
anchor.focus();
anchor.style.outline = 'none';
}
window.scrollTo(0 , endLocation);
};
/**
* Emit a custom event
* @param {String} type The event type
* @param {Object} options The settings object
* @param {Node} anchor The anchor element
* @param {Node} toggle The toggle element
*/
var emitEvent = function (type, options, anchor, toggle) {
if (!options.emitEvents || typeof window.CustomEvent !== 'function') return;
var event = new CustomEvent(type, {
bubbles: true,
detail: {
anchor: anchor,
toggle: toggle
}
});
document.dispatchEvent(event);
};
//
// SmoothScroll Constructor
//
var SmoothScroll = function (selector, options) {
//
// Variables
//
var smoothScroll = {}; // Object for public APIs
var settings, anchor, toggle, fixedHeader, eventTimeout, animationInterval;
//
// Methods
//
/**
* Cancel a scroll-in-progress
*/
smoothScroll.cancelScroll = function (noEvent) {
cancelAnimationFrame(animationInterval);
animationInterval = null;
if (noEvent) return;
emitEvent('scrollCancel', settings);
};
/**
* Start/stop the scrolling animation
* @param {Node|Number} anchor The element or position to scroll to
* @param {Element} toggle The element that toggled the scroll event
* @param {Object} options
*/
smoothScroll.animateScroll = function (anchor, toggle, options) {
// Cancel any in progress scrolls
smoothScroll.cancelScroll();
// Local settings
var _settings = extend(settings || defaults, options || {}); // Merge user options with defaults
// Selectors and variables
var isNum = Object.prototype.toString.call(anchor) === '[object Number]' ? true : false;
var anchorElem = isNum || !anchor.tagName ? null : anchor;
if (!isNum && !anchorElem) return;
var startLocation = window.pageYOffset; // Current location on the page
if (_settings.header && !fixedHeader) {
// Get the fixed header if not already set
fixedHeader = document.querySelector(_settings.header);
}
var headerHeight = getHeaderHeight(fixedHeader);
var endLocation = isNum ? anchor : getEndLocation(anchorElem, headerHeight, parseInt((typeof _settings.offset === 'function' ? _settings.offset(anchor, toggle) : _settings.offset), 10), _settings.clip); // Location to scroll to
var distance = endLocation - startLocation; // distance to travel
var documentHeight = getDocumentHeight();
var timeLapsed = 0;
var speed = getSpeed(distance, _settings);
var start, percentage, position;
/**
* Stop the scroll animation when it reaches its target (or the bottom/top of page)
* @param {Number} position Current position on the page
* @param {Number} endLocation Scroll to location
* @param {Number} animationInterval How much to scroll on this loop
*/
var stopAnimateScroll = function (position, endLocation) {
// Get the current location
var currentLocation = window.pageYOffset;
// Check if the end location has been reached yet (or we've hit the end of the document)
if (position == endLocation || currentLocation == endLocation || ((startLocation < endLocation && window.innerHeight + currentLocation) >= documentHeight)) {
// Clear the animation timer
smoothScroll.cancelScroll(true);
// Bring the anchored element into focus
adjustFocus(anchor, endLocation, isNum);
// Emit a custom event
emitEvent('scrollStop', _settings, anchor, toggle);
// Reset start
start = null;
animationInterval = null;
return true;
}
};
/**
* Loop scrolling animation
*/
var loopAnimateScroll = function (timestamp) {
if (!start) { start = timestamp; }
timeLapsed += timestamp - start;
percentage = speed === 0 ? 0 : (timeLapsed / speed);
percentage = (percentage > 1) ? 1 : percentage;
position = startLocation + (distance * easingPattern(_settings, percentage));
window.scrollTo(0, Math.floor(position));
if (!stopAnimateScroll(position, endLocation)) {
animationInterval = window.requestAnimationFrame(loopAnimateScroll);
start = timestamp;
}
};
/**
* Reset position to fix weird iOS bug
* @link https://github.com/cferdinandi/smooth-scroll/issues/45
*/
if (window.pageYOffset === 0) {
window.scrollTo(0, 0);
}
// Update the URL
updateURL(anchor, isNum, _settings);
// If the user prefers reduced motion, jump to location
if (reduceMotion()) {
window.scrollTo(0, Math.floor(endLocation));
return;
}
// Emit a custom event
emitEvent('scrollStart', _settings, anchor, toggle);
// Start scrolling animation
smoothScroll.cancelScroll(true);
window.requestAnimationFrame(loopAnimateScroll);
};
/**
* If smooth scroll element clicked, animate scroll
*/
var clickHandler = function (event) {
// Don't run if event was canceled but still bubbled up
// By @mgreter - https://github.com/cferdinandi/smooth-scroll/pull/462/
if (event.defaultPrevented) return;
// Don't run if right-click or command/control + click or shift + click
if (event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey) return;
// Check if event.target has closest() method
// By @totegi - https://github.com/cferdinandi/smooth-scroll/pull/401/
if (!('closest' in event.target)) return;
// Check if a smooth scroll link was clicked
toggle = event.target.closest(selector);
if (!toggle || toggle.tagName.toLowerCase() !== 'a' || event.target.closest(settings.ignore)) return;
// Only run if link is an anchor and points to the current page
if (toggle.hostname !== window.location.hostname || toggle.pathname !== window.location.pathname || !/#/.test(toggle.href)) return;
// Get an escaped version of the hash
var hash;
try {
hash = escapeCharacters(decodeURIComponent(toggle.hash));
} catch(e) {
hash = escapeCharacters(toggle.hash);
}
// Get the anchored element
var anchor;
if (hash === '#') {
if (!settings.topOnEmptyHash) return;
anchor = document.documentElement;
} else {
anchor = document.querySelector(hash);
}
anchor = !anchor && hash === '#top' ? document.documentElement : anchor;
// If anchored element exists, scroll to it
if (!anchor) return;
event.preventDefault();
setHistory(settings);
smoothScroll.animateScroll(anchor, toggle);
};
/**
* Animate scroll on popstate events
*/
var popstateHandler = function (event) {
// Stop if history.state doesn't exist (ex. if clicking on a broken anchor link).
// fixes `Cannot read property 'smoothScroll' of null` error getting thrown.
if (history.state === null) return;
// Only run if state is a popstate record for this instantiation
if (!history.state.smoothScroll || history.state.smoothScroll !== JSON.stringify(settings)) return;
// Only run if state includes an anchor
// if (!history.state.anchor && history.state.anchor !== 0) return;
// Get the anchor
var anchor = history.state.anchor;
if (typeof anchor === 'string' && anchor) {
anchor = document.querySelector(escapeCharacters(history.state.anchor));
if (!anchor) return;
}
// Animate scroll to anchor link
smoothScroll.animateScroll(anchor, null, {updateURL: false});
};
/**
* Destroy the current initialization.
*/
smoothScroll.destroy = function () {
// If plugin isn't already initialized, stop
if (!settings) return;
// Remove event listeners
document.removeEventListener('click', clickHandler, false);
window.removeEventListener('popstate', popstateHandler, false);
// Cancel any scrolls-in-progress
smoothScroll.cancelScroll();
// Reset variables
settings = null;
anchor = null;
toggle = null;
fixedHeader = null;
eventTimeout = null;
animationInterval = null;
};
/**
* Initialize Smooth Scroll
* @param {Object} options User settings
*/
var init = function () {
// feature test
if (!supports()) throw 'Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.';
// Destroy any existing initializations
smoothScroll.destroy();
// Selectors and variables
settings = extend(defaults, options || {}); // Merge user options with defaults
fixedHeader = settings.header ? document.querySelector(settings.header) : null; // Get the fixed header
// When a toggle is clicked, run the click handler
document.addEventListener('click', clickHandler, false);
// If updateURL and popState are enabled, listen for pop events
if (settings.updateURL && settings.popstate) {
window.addEventListener('popstate', popstateHandler, false);
}
};
//
// Initialize plugin
//
init();
//
// Public APIs
//
return smoothScroll;
};
return SmoothScroll;
}));
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+1
View File
@@ -12,5 +12,6 @@ group :jekyll_plugins do
gem "jekyll-gist"
gem "jekyll-feed"
gem "jemoji"
gem "jekyll-include-cache"
gem "jekyll-algolia"
end
+44 -51
View File
@@ -5,7 +5,7 @@
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `jekyll serve`. If you change this file, please restart the server process.
remote_theme : "mmistakes/minimal-mistakes"
remote_theme : "mmistakes/minimal-mistakes@4.20.0"
minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum", "sunrise"
@@ -13,16 +13,19 @@ minimal_mistakes_skin : "default" # "air", "aqua", "contrast", "dark", "dirt"
locale : "en-US"
title : "Minimal Mistakes"
title_separator : "-"
subtitle : "A Jekyll theme"
name : &name "Michael Rose" # &name is a YAML anchor which can be *referenced later
description : &description "A flexible Jekyll theme for your blog or site with a minimalist aesthetic."
url : https://mmistakes.github.io # the base hostname & protocol for your site e.g. "https://mmistakes.github.io"
baseurl : "/minimal-mistakes" # the subpath of your site, e.g. "/blog"
repository : "mmistakes/minimal-mistakes"
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)
words_per_minute : 200
comments:
provider : "staticman_v2" # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman_v2", "staticman" "custom"
provider : "false" # false (default), "disqus", "discourse", "facebook", "staticman_v2", "staticman", "utterances", "custom"
disqus:
shortname :
discourse:
@@ -32,25 +35,12 @@ comments:
appid :
num_posts : # 5 (default)
colorscheme : # "light" (default), "dark"
staticman:
allowedFields : # ['name', 'email', 'url', 'message']
branch : "master"
commitMessage : # "New comment by {fields.name}"
filename : # comment-{@timestamp}
format : # "yml"
moderation : # true
path : # "_data/comments/{options.slug}"
requiredFields : # ['name', 'email', 'message']
transforms:
email : # "md5"
generatedFields:
date:
type : # "date"
options:
format : # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
utterances:
theme : # "github-light" (default), "github-dark"
issue_term : # "pathname" (default)
reCaptcha:
siteKey : "6LdRBykTAAAAAFB46MnIu6ixuxwu9W1ihFF8G60Q"
secret : "PznnZGu3P6eTHRPLORniSq+J61YEf+A9zmColXDM5icqF49gbunH51B8+h+i2IvewpuxtA9TFoK68TuhUp/X3YKmmqhXasegHYabY50fqF9nJh9npWNhvITdkQHeaOqnFXUIwxfiEeUt49Yoa2waRR7a5LdRAP3SVM8hz0KIBT4="
siteKey : # "6LdRBykTAAAAAFB46MnIu6ixuxwu9W1ihFF8G60Q"
secret : # "PznnZGu3P6eTHRPLORniSq+J61YEf+A9zmColXDM5icqF49gbunH51B8+h+i2IvewpuxtA9TFoK68TuhUp/X3YKmmqhXasegHYabY50fqF9nJh9npWNhvITdkQHeaOqnFXUIwxfiEeUt49Yoa2waRR7a5LdRAP3SVM8hz0KIBT4="
atom_feed:
path : # blank (default) uses feed.xml
@@ -87,11 +77,11 @@ social:
name : # If the user or organization name differs from the site's name
links: # An array of links to social media profiles
- "https://twitter.com/mmistakes"
- "https://facebook.com/michaelrose"
- "https://www.facebook.com/michaelrose"
# Analytics
analytics:
provider : "google-universal" # false (default), "google", "google-universal", "custom"
provider : "google-universal" # false (default), "google", "google-universal", "google-gtag", "custom"
google:
tracking_id : "UA-2011187-3" # Replace this with your ID, or delete
anonymize_ip : true
@@ -101,34 +91,35 @@ analytics:
author:
name : *name # *name is a YAML reference pointing to the &anchor earlier
avatar : "/assets/images/michael-rose.jpg"
bio : "Just another boring, tattooed, time traveling, designer."
bio : "Just another *boring*, *tattooed*, *time traveling*, *designer*."
location : "Buffalo, NY"
email :
uri : "https://mademistakes.com"
home : "https://mademistakes.com"
bitbucket :
codepen :
dribbble :
flickr :
facebook : *facebook
foursquare :
github : "mmistakes"
gitlab :
google_plus :
keybase :
instagram : "mmistakes"
lastfm :
linkedin :
pinterest :
soundcloud :
stackoverflow : # https://stackoverflow.com/users/123456/username
steam :
tumblr :
twitter : *twitter
vine :
weibo :
xing :
youtube :
links:
- label: "Made Mistakes"
icon: "fas fa-fw fa-link"
url: "https://mademistakes.com"
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
url: "https://twitter.com/mmistakes"
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/mmistakes"
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
url: "https://instagram.com/mmistakes"
# Site Footer
footer:
links:
- label: "Twitter"
icon: "fab fa-fw fa-twitter-square"
url: "https://twitter.com/mmistakes"
- label: "GitHub"
icon: "fab fa-fw fa-github"
url: "https://github.com/mmistakes"
- label: "Instagram"
icon: "fab fa-fw fa-instagram"
url: "https://instagram.com/mmistakes"
# Reading Files
@@ -282,6 +273,7 @@ plugins:
- jekyll-gist
- jekyll-feed
- jemoji
- jekyll-include-cache
# mimic GitHub Pages with --safe
whitelist:
@@ -290,6 +282,7 @@ whitelist:
- jekyll-gist
- jekyll-feed
- jemoji
- jekyll-include-cache
# Archives
@@ -300,8 +293,8 @@ whitelist:
# - Archive page should exist at path when using Liquid method or you can
# expect broken links (especially with breadcrumbs enabled)
# - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
# - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path/my-awesome-category/index.html ~> path: /
# - <base_path>/categories/my-awesome-category/index.html ~> path: /categories/
# - <base_path>/my-awesome-category/index.html ~> path: /
category_archive:
type: liquid
path: /categories/

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