├── CNAME
├── _includes
├── after-content.html
├── before-related.html
├── footer
│ └── custom.html
├── comments-providers
│ ├── custom.html
│ ├── custom_scripts.html
│ ├── facebook.html
│ ├── scripts.html
│ ├── disqus.html
│ ├── utterances.html
│ ├── discourse.html
│ ├── giscus.html
│ ├── staticman.html
│ └── staticman_v2.html
├── page__hero_video.html
├── head
│ └── custom.html
├── posts-tag.html
├── posts-category.html
├── paginator.html
├── page__taxonomy.html
├── analytics-providers
│ ├── custom.html
│ ├── google-universal.html
│ ├── google-gtag.html
│ └── google.html
├── author-profile-custom-links.html
├── copyright.html
├── copyright.js
├── toc
├── documents-collection.html
├── search
│ ├── lunr-search-scripts.html
│ ├── google-search-scripts.html
│ ├── search_form.html
│ └── algolia-search-scripts.html
├── skip-links.html
├── analytics.html
├── page__related.html
├── figure
├── schema.html
├── page__date.html
├── sidebar.html
├── tag-list.html
├── category-list.html
├── post_pagination.html
├── video
├── nav_list
├── gallery
├── comment.html
├── group-by-array
├── head.html
├── posts-taxonomy.html
├── archive-single.html
├── scripts.html
├── feature_row
├── footer.html
├── page__meta.html
├── breadcrumbs.html
├── masthead.html
├── social-share.html
├── page__hero.html
├── paginator-v2.html
└── paginator-v1.html
├── Gemfile
├── _sass
├── minimal-mistakes
│ ├── vendor
│ │ ├── susy
│ │ │ ├── _su.scss
│ │ │ ├── _susy.scss
│ │ │ ├── plugins
│ │ │ │ ├── _svg-grid.scss
│ │ │ │ └── svg-grid
│ │ │ │ │ ├── _prefix.scss
│ │ │ │ │ ├── _svg-unprefix.scss
│ │ │ │ │ ├── _svg-settings.scss
│ │ │ │ │ ├── _svg-grid-math.scss
│ │ │ │ │ ├── _svg-api.scss
│ │ │ │ │ └── _svg-utilities.scss
│ │ │ ├── _susy-prefix.scss
│ │ │ └── susy
│ │ │ │ ├── _unprefix.scss
│ │ │ │ ├── _utilities.scss
│ │ │ │ └── _parse.scss
│ │ ├── breakpoint
│ │ │ ├── _no-query.scss
│ │ │ ├── parsers
│ │ │ │ ├── single
│ │ │ │ │ └── _default.scss
│ │ │ │ ├── double
│ │ │ │ │ ├── _default.scss
│ │ │ │ │ ├── _double-string.scss
│ │ │ │ │ └── _default-pair.scss
│ │ │ │ ├── triple
│ │ │ │ │ └── _default.scss
│ │ │ │ ├── _single.scss
│ │ │ │ ├── _triple.scss
│ │ │ │ ├── _resolution.scss
│ │ │ │ ├── _double.scss
│ │ │ │ ├── resolution
│ │ │ │ │ └── _resolution.scss
│ │ │ │ └── _query.scss
│ │ │ ├── _settings.scss
│ │ │ ├── _legacy-settings.scss
│ │ │ ├── _breakpoint.scss
│ │ │ ├── _respond-to.scss
│ │ │ ├── _context.scss
│ │ │ └── _helpers.scss
│ │ └── magnific-popup
│ │ │ └── _settings.scss
│ ├── skins
│ │ ├── _default.scss
│ │ ├── _air.scss
│ │ ├── _mint.scss
│ │ ├── _dirt.scss
│ │ ├── _dark.scss
│ │ ├── _aqua.scss
│ │ ├── _contrast.scss
│ │ ├── _sunrise.scss
│ │ ├── _neon.scss
│ │ └── _plum.scss
│ ├── _copyright.scss
│ ├── _animations.scss
│ ├── _tables.scss
│ ├── _footer.scss
│ ├── _masthead.scss
│ ├── _mixins.scss
│ ├── _buttons.scss
│ ├── _notices.scss
│ ├── _search.scss
│ ├── _reset.scss
│ └── _print.scss
└── minimal-mistakes.scss
├── favicon.ico
├── assets
├── images
│ ├── logo.png
│ ├── badusb.jpg
│ ├── bio-photo.png
│ ├── badusb-hero.jpg
│ ├── companyenum.jpg
│ ├── pentest-mag.png
│ ├── autopwn-suite.jpg
│ ├── splash-banner.png
│ ├── powershell-tools.jpg
│ ├── hands-on-security.png
│ ├── trophy-achievements.png
│ └── google-cybersecurity-professional-certificate-v2.png
└── js
│ ├── lunr
│ ├── lunr-en.js
│ └── lunr-store.js
│ └── plugins
│ └── jquery.fitvids.js
├── _layouts
├── tags.html
├── categories.html
├── tag.html
├── category.html
├── collection.html
├── home.html
├── archive.html
├── archive-taxonomy.html
├── splash.html
├── posts.html
├── default.html
├── search.html
├── single.html
└── compress.html
├── _data
└── navigation.yml
├── .gitignore
├── package.json
├── LICENSE
├── minimal-mistakes-jekyll.gemspec
├── .github
└── workflows
│ └── jekyll.yml
├── _pages
├── projects.md
└── projects
│ └── powershell-projects.md
└── staticman.yml
/CNAME:
--------------------------------------------------------------------------------
1 | kaangultekin.net
--------------------------------------------------------------------------------
/_includes/after-content.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_includes/before-related.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 | gemspec
3 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/_su.scss:
--------------------------------------------------------------------------------
1 | // Su
2 | // ==
3 |
4 | @import 'susy/su';
5 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/favicon.ico
--------------------------------------------------------------------------------
/_includes/footer/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/logo.png
--------------------------------------------------------------------------------
/assets/images/badusb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/badusb.jpg
--------------------------------------------------------------------------------
/assets/images/bio-photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/bio-photo.png
--------------------------------------------------------------------------------
/_includes/comments-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/assets/images/badusb-hero.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/badusb-hero.jpg
--------------------------------------------------------------------------------
/assets/images/companyenum.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/companyenum.jpg
--------------------------------------------------------------------------------
/assets/images/pentest-mag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/pentest-mag.png
--------------------------------------------------------------------------------
/_includes/comments-providers/custom_scripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/assets/images/autopwn-suite.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/autopwn-suite.jpg
--------------------------------------------------------------------------------
/assets/images/splash-banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/splash-banner.png
--------------------------------------------------------------------------------
/assets/images/powershell-tools.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/powershell-tools.jpg
--------------------------------------------------------------------------------
/_layouts/tags.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% include posts-taxonomy.html taxonomies=site.tags %}
8 |
--------------------------------------------------------------------------------
/assets/images/hands-on-security.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/hands-on-security.png
--------------------------------------------------------------------------------
/assets/images/trophy-achievements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/trophy-achievements.png
--------------------------------------------------------------------------------
/_layouts/categories.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% include posts-taxonomy.html taxonomies=site.categories %}
8 |
--------------------------------------------------------------------------------
/_includes/page__hero_video.html:
--------------------------------------------------------------------------------
1 | {% assign video = page.header.video %}
2 | {% include video id=video.id provider=video.provider danmaku=video.danmaku %}
3 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/_susy.scss:
--------------------------------------------------------------------------------
1 | // Susy (Un-Prefixed)
2 | // ==================
3 |
4 | @import 'susy-prefix';
5 | @import 'susy/unprefix';
6 |
--------------------------------------------------------------------------------
/_includes/head/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss:
--------------------------------------------------------------------------------
1 | // SVG Grid Background
2 | // ===================
3 |
4 | @import 'svg-grid/prefix';
5 | @import 'svg-grid/svg-unprefix';
6 |
--------------------------------------------------------------------------------
/assets/images/google-cybersecurity-professional-certificate-v2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GamehunterKaan/kaangultekin.net/master/assets/images/google-cybersecurity-professional-certificate-v2.png
--------------------------------------------------------------------------------
/_includes/posts-tag.html:
--------------------------------------------------------------------------------
1 | {% assign posts = site.tags[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
2 | {%- for post in posts -%}
3 | {% include archive-single.html %}
4 | {%- endfor -%}
5 |
--------------------------------------------------------------------------------
/_includes/posts-category.html:
--------------------------------------------------------------------------------
1 | {% assign posts = site.categories[include.taxonomy] | where_exp: "post", "post.hidden != true" %}
2 | {%- for post in posts -%}
3 | {% include archive-single.html %}
4 | {%- endfor -%}
5 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss:
--------------------------------------------------------------------------------
1 | // Prefixed SVG Plugin
2 | // ===================
3 |
4 | @import 'svg-settings';
5 | @import 'svg-utilities';
6 | @import 'svg-grid-math';
7 | @import 'svg-api';
8 |
--------------------------------------------------------------------------------
/_includes/paginator.html:
--------------------------------------------------------------------------------
1 | {% if paginator.total_pages > 1 %}
2 | {% if site.paginate %}
3 | {% include paginator-v1.html %}
4 | {% elsif site.pagination.enabled %}
5 | {% include paginator-v2.html %}
6 | {% endif %}
7 | {% endif %}
8 |
--------------------------------------------------------------------------------
/_includes/page__taxonomy.html:
--------------------------------------------------------------------------------
1 | {% if site.tag_archive.type and page.tags[0] %}
2 | {% include tag-list.html %}
3 | {% endif %}
4 |
5 | {% if site.category_archive.type and page.categories[0] %}
6 | {% include category-list.html %}
7 | {% endif %}
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_default.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Default skin
3 | ========================================================================== */
4 |
5 | // Intentionally left blank
6 |
--------------------------------------------------------------------------------
/_includes/analytics-providers/custom.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/_includes/author-profile-custom-links.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_layouts/tag.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% assign entries_layout = page.entries_layout | default: 'list' %}
8 |
9 | {% include posts-tag.html taxonomy=page.taxonomy type=entries_layout %}
10 |
11 |
--------------------------------------------------------------------------------
/_includes/copyright.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/_includes/copyright.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Minimal Mistakes Jekyll Theme 4.27.3 by Michael Rose
3 | * Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
4 | * Free for personal and commercial use under the MIT license
5 | * https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
6 | */
7 |
--------------------------------------------------------------------------------
/_layouts/category.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% assign entries_layout = page.entries_layout | default: 'list' %}
8 |
9 | {% include posts-category.html taxonomy=page.taxonomy type=entries_layout %}
10 |
11 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_copyright.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Minimal Mistakes Jekyll Theme 4.27.3 by Michael Rose
3 | * Copyright 2013-2025 Michael Rose - mademistakes.com | @mmistakes
4 | * Free for personal and commercial use under the MIT license
5 | * https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
6 | */
7 |
--------------------------------------------------------------------------------
/_includes/toc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_layouts/collection.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {% assign entries_layout = page.entries_layout | default: 'list' %}
8 |
9 | {% include documents-collection.html collection=page.collection sort_by=page.sort_by sort_order=page.sort_order type=entries_layout %}
10 |
11 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss:
--------------------------------------------------------------------------------
1 | // Susy (Prefixed)
2 | // ===============
3 |
4 | $susy-version: 3;
5 |
6 | @import 'susy/utilities';
7 | @import 'susy/su-validate';
8 | @import 'susy/su-math';
9 | @import 'susy/settings';
10 | @import 'susy/normalize';
11 | @import 'susy/parse';
12 | @import 'susy/syntax-helpers';
13 | @import 'susy/api';
14 |
--------------------------------------------------------------------------------
/_includes/analytics-providers/google-universal.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-no-query($query) {
2 | @if type-of($query) == 'list' {
3 | $keyword: nth($query, 1);
4 |
5 | @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
6 | @return nth($query, 2);
7 | }
8 | @else {
9 | @return false;
10 | }
11 | }
12 | @else {
13 | @return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_animations.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | ANIMATIONS
3 | ========================================================================== */
4 |
5 | @-webkit-keyframes intro {
6 | 0% {
7 | opacity: 0;
8 | }
9 | 100% {
10 | opacity: 1;
11 | }
12 | }
13 |
14 | @keyframes intro {
15 | 0% {
16 | opacity: 0;
17 | }
18 | 100% {
19 | opacity: 1;
20 | }
21 | }
--------------------------------------------------------------------------------
/_data/navigation.yml:
--------------------------------------------------------------------------------
1 | # main links
2 | main:
3 | - title: "GitHub"
4 | url: https://github.com/GamehunterKaan
5 | - title: "About Me"
6 | url: https://kaangultekin.net/aboutme/
7 | # - title: "About"
8 | # url: https://mmistakes.github.io/minimal-mistakes/about/
9 | # - title: "Sample Posts"
10 | # url: /year-archive/
11 | # - title: "Sample Collections"
12 | # url: /collection-archive/
13 | # - title: "Sitemap"
14 | # url: /sitemap/
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss:
--------------------------------------------------------------------------------
1 | // Unprefix Susy SVG Grid
2 | // ======================
3 |
4 |
5 |
6 | // SVG Grid
7 | // --------
8 | /// Un-prefixed alias for `susy-svg-grid`
9 | ///
10 | /// @group plugin_svg-grid
11 | /// @alias susy-svg-grid
12 | @function svg-grid(
13 | $grid: $susy,
14 | $colors: susy-get('svg-grid-colors'),
15 | $offset: null
16 | ) {
17 | @return susy-svg-grid($grid, $colors, $offset);
18 | }
19 |
--------------------------------------------------------------------------------
/_includes/comments-providers/facebook.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/_includes/documents-collection.html:
--------------------------------------------------------------------------------
1 | {% assign entries = include.entries | default: site[include.collection] | where_exp: "post", "post.hidden != true" %}
2 |
3 | {% if include.sort_by %}
4 | {% assign entries = entries | sort: include.sort_by %}
5 | {% endif %}
6 |
7 | {% if include.sort_order == 'reverse' %}
8 | {% assign entries = entries | reverse %}
9 | {% endif %}
10 |
11 | {%- for post in entries -%}
12 | {% include archive-single.html type=include.type %}
13 | {%- endfor -%}
14 |
--------------------------------------------------------------------------------
/_includes/search/lunr-search-scripts.html:
--------------------------------------------------------------------------------
1 | {% assign lang = site.locale | slice: 0,2 | default: "en" %}
2 | {% case lang %}
3 | {% when "gr" %}
4 | {% assign lang = "gr" %}
5 | {% else %}
6 | {% assign lang = "en" %}
7 | {% endcase %}
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Vim
2 | *~
3 | *.sw[p_]
4 |
5 | # IntelliJ IDEA
6 | *.idea
7 |
8 | # Sublime Text
9 | *.sublime-project
10 | *.sublime-workspace
11 |
12 | # Ruby Gem
13 | *.gem
14 | .bundle
15 | Gemfile.lock
16 | **/vendor/bundle
17 |
18 | # Node.js and NPM
19 | node_modules
20 | npm-debug.log*
21 | package-lock.json
22 | codekit-config.json
23 |
24 | # macOS
25 | .DS_Store
26 |
27 | # Jekyll generated files
28 | .jekyll-cache
29 | .jekyll-metadata
30 | .sass-cache
31 | _asset_bundler_cache
32 | _site
33 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-parse-default($feature) {
2 | $default: breakpoint-get('default feature');
3 |
4 | // Set Context
5 | $context-setter: private-breakpoint-set-context($default, $feature);
6 |
7 | @if (breakpoint-get('to ems') == true) and (type-of($feature) == 'number') {
8 | @return '#{$default}: #{breakpoint-to-base-em($feature)}';
9 | }
10 | @else {
11 | @return '#{$default}: #{$feature}';
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/_includes/analytics-providers/google-gtag.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/_includes/skip-links.html:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss:
--------------------------------------------------------------------------------
1 | // SVG Settings
2 | // ============
3 |
4 |
5 | // Susy SVG Defaults
6 | // =================
7 | /// This plugin adds the `svg-grid-colors` property
8 | /// and default value to `$_susy-defaults` —
9 | /// you can override that value in `$susy`
10 | /// or any other grid settings map.
11 | /// @group plugin_svg-grid
12 | $_susy-defaults: map-merge((
13 | 'svg-grid-colors': hsla(120, 50%, 50%, 0.5) hsla(120, 50%, 75%, 0.5),
14 | ), $_susy-defaults);
15 |
--------------------------------------------------------------------------------
/_includes/analytics.html:
--------------------------------------------------------------------------------
1 | {% if jekyll.environment == 'production' and site.analytics.provider and page.analytics != false %}
2 |
3 | {% case site.analytics.provider %}
4 | {% when "google" %}
5 | {% include /analytics-providers/google.html %}
6 | {% when "google-universal" %}
7 | {% include /analytics-providers/google-universal.html %}
8 | {% when "google-gtag" %}
9 | {% include /analytics-providers/google-gtag.html %}
10 | {% when "custom" %}
11 | {% include /analytics-providers/custom.html %}
12 | {% endcase %}
13 |
14 | {% endif %}
--------------------------------------------------------------------------------
/_includes/page__related.html:
--------------------------------------------------------------------------------
1 | {% assign posts = include.posts | where_exp: "post", "post.hidden != true" %}
2 |
3 | {% include before-related.html %}
4 |
{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}
5 |
6 | {% for post in posts limit:4 %}
7 | {% if post.id == page.id %}{% continue %}{% endif %}
8 | {% include archive-single.html type="grid" %}
9 | {% endfor %}
10 |
11 |
12 |
--------------------------------------------------------------------------------
/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 | {{ site.data.ui-text[site.locale].recent_posts | default: "Recent Posts" }}
8 |
9 | {% if paginator %}
10 | {% assign posts = paginator.posts %}
11 | {% else %}
12 | {% assign posts = site.posts %}
13 | {% endif %}
14 |
15 | {% assign entries_layout = page.entries_layout | default: 'list' %}
16 |
17 | {% include documents-collection.html entries=posts type=entries_layout %}
18 |
19 |
20 | {% include paginator.html %}
21 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-parse-double-default($first, $second) {
2 | $feature: '';
3 | $value: '';
4 |
5 | @if type-of($first) == 'string' {
6 | $feature: $first;
7 | $value: $second;
8 | }
9 | @else {
10 | $feature: $second;
11 | $value: $first;
12 | }
13 |
14 | // Set Context
15 | $context-setter: private-breakpoint-set-context($feature, $value);
16 |
17 | @if (breakpoint-get('to ems') == true) {
18 | $value: breakpoint-to-base-em($value);
19 | }
20 |
21 | @return '(#{$feature}: #{$value})'
22 | }
23 |
--------------------------------------------------------------------------------
/_includes/figure:
--------------------------------------------------------------------------------
1 |
2 | {%- if include.popup -%}{%- endif -%}
6 | {%- if include.caption -%}
7 |
8 | {{ include.caption | markdownify | remove: "" | remove: "
" }}
9 |
10 | {%- endif -%}
11 |
12 |
--------------------------------------------------------------------------------
/_includes/analytics-providers/google.html:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-parse-triple-default($feature, $first, $second) {
2 |
3 | // Sort into min and max
4 | $min: min($first, $second);
5 | $max: max($first, $second);
6 |
7 | // Set Context
8 | $context-setter: private-breakpoint-set-context(min-#{$feature}, $min);
9 | $context-setter: private-breakpoint-set-context(max-#{$feature}, $max);
10 |
11 | // Make them EMs if need be
12 | @if (breakpoint-get('to ems') == true) {
13 | $min: breakpoint-to-base-em($min);
14 | $max: breakpoint-to-base-em($max);
15 | }
16 |
17 | @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})';
18 | }
19 |
--------------------------------------------------------------------------------
/_includes/schema.html:
--------------------------------------------------------------------------------
1 |
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "minimal-mistakes",
3 | "private": true,
4 | "version": "4.27.3",
5 | "description": "Minimal Mistakes 2 column Jekyll theme.",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/mmistakes/minimal-mistakes.git"
9 | },
10 | "keywords": [
11 | "jekyll",
12 | "theme",
13 | "minimal"
14 | ],
15 | "author": "Michael Rose",
16 | "license": "MIT",
17 | "bugs": {
18 | "url": "https://github.com/mmistakes/minimal-mistakes/issues"
19 | },
20 | "homepage": "https://mmistakes.github.io/minimal-mistakes/",
21 | "engines": {
22 | "node": ">= 0.10.0"
23 | },
24 | "devDependencies": {
25 | "uglify-js": "^3.17.4"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-parse-double-string($first, $second) {
2 | $feature: '';
3 | $value: '';
4 |
5 | // Test to see which is the feature and which is the value
6 | @if (breakpoint-string-value($first) == true) {
7 | $feature: $first;
8 | $value: $second;
9 | }
10 | @else if (breakpoint-string-value($second) == true) {
11 | $feature: $second;
12 | $value: $first;
13 | }
14 | @else {
15 | @warn "Neither #{$first} nor #{$second} is a valid media query name.";
16 | }
17 |
18 | // Set Context
19 | $context-setter: private-breakpoint-set-context($feature, $value);
20 |
21 | @return '(#{$feature}: #{$value})';
22 | }
--------------------------------------------------------------------------------
/_includes/page__date.html:
--------------------------------------------------------------------------------
1 | {% assign date_format = site.date_format | default: "%B %-d, %Y" %}
2 | {% if page.last_modified_at %}
3 | {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}
4 | {% elsif page.date %}
5 | {{ site.data.ui-text[site.locale].date_label | default: "Updated:" }}
6 | {% endif %}
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-parse-default-pair($first, $second) {
2 | $default: breakpoint-get('default pair');
3 | $min: '';
4 | $max: '';
5 |
6 | // Sort into min and max
7 | $min: min($first, $second);
8 | $max: max($first, $second);
9 |
10 | // Set Context
11 | $context-setter: private-breakpoint-set-context(min-#{$default}, $min);
12 | $context-setter: private-breakpoint-set-context(max-#{$default}, $max);
13 |
14 | // Make them EMs if need be
15 | @if (breakpoint-get('to ems') == true) {
16 | $min: breakpoint-to-base-em($min);
17 | $max: breakpoint-to-base-em($max);
18 | }
19 |
20 | @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})';
21 | }
22 |
--------------------------------------------------------------------------------
/_includes/sidebar.html:
--------------------------------------------------------------------------------
1 | {% if page.author_profile or layout.author_profile or page.sidebar %}
2 |
19 | {% endif %}
20 |
--------------------------------------------------------------------------------
/_includes/comments-providers/scripts.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.provider and page.comments %}
2 | {% case site.comments.provider %}
3 | {% when "disqus" %}
4 | {% include /comments-providers/disqus.html %}
5 | {% when "discourse" %}
6 | {% include /comments-providers/discourse.html %}
7 | {% when "facebook" %}
8 | {% include /comments-providers/facebook.html %}
9 | {% when "staticman" %}
10 | {% include /comments-providers/staticman.html %}
11 | {% when "staticman_v2" %}
12 | {% include /comments-providers/staticman_v2.html %}
13 | {% when "utterances" %}
14 | {% include /comments-providers/utterances.html %}
15 | {% when "giscus" %}
16 | {% include /comments-providers/giscus.html %}
17 | {% when "custom" %}
18 | {% include /comments-providers/custom_scripts.html %}
19 | {% endcase %}
20 | {% endif %}
--------------------------------------------------------------------------------
/_layouts/archive.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
6 | {% include page__hero.html %}
7 | {% elsif page.header.video.id and page.header.video.provider %}
8 | {% include page__hero_video.html %}
9 | {% endif %}
10 |
11 | {% if page.url != "/" and site.breadcrumbs %}
12 | {% unless paginator %}
13 | {% include breadcrumbs.html %}
14 | {% endunless %}
15 | {% endif %}
16 |
17 |
18 | {% include sidebar.html %}
19 |
20 |
21 | {% unless page.header.overlay_color or page.header.overlay_image %}
22 |
{{ page.title }}
23 | {% endunless %}
24 | {{ content }}
25 |
26 |
27 |
--------------------------------------------------------------------------------
/_includes/comments-providers/disqus.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.disqus.shortname %}
2 |
14 |
15 | {% endif %}
16 |
--------------------------------------------------------------------------------
/_includes/tag-list.html:
--------------------------------------------------------------------------------
1 | {% case site.tag_archive.type %}
2 | {% when "liquid" %}
3 | {% assign path_type = "#" %}
4 | {% when "jekyll-archives" %}
5 | {% assign path_type = nil %}
6 | {% endcase %}
7 |
8 | {% if site.tag_archive.path %}
9 | {% assign tags_sorted = page.tags | sort_natural %}
10 |
11 |
12 | {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }}
13 |
14 | {% for tag_word in tags_sorted %}
15 | {{ tag_word }}{% unless forloop.last %}, {% endunless %}
16 | {% endfor %}
17 |
18 |
19 | {% endif %}
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_air.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Air skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #eeeeee !default;
7 | $text-color: #222831 !default;
8 | $muted-text-color: #393e46 !default;
9 | $primary-color: #0092ca !default;
10 | $border-color: mix(#fff, #393e46, 75%) !default;
11 | $footer-background-color: $primary-color !default;
12 | $link-color: #393e46 !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | .page__footer {
18 | color: #fff !important; // override
19 | }
20 |
21 | .page__footer-follow .social-icons .svg-inline--fa {
22 | color: inherit;
23 | }
24 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Import Pieces
3 | //////////////////////////////
4 | @import "single/default";
5 |
6 | @function breakpoint-parse-single($feature, $empty-media, $first) {
7 | $parsed: '';
8 | $leader: '';
9 | // If we're forcing
10 | @if not ($empty-media) or not ($first) {
11 | $leader: 'and ';
12 | }
13 |
14 | // If it's a single feature that can stand alone, we let it
15 | @if (breakpoint-single-string($feature)) {
16 | $parsed: $feature;
17 | // Set Context
18 | $context-setter: private-breakpoint-set-context($feature, $feature);
19 | }
20 | // If it's not a stand alone feature, we pass it off to the default handler.
21 | @else {
22 | $parsed: breakpoint-parse-default($feature);
23 | }
24 |
25 | @return $leader + '(' + $parsed + ')';
26 | }
27 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_tables.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | TABLES
3 | ========================================================================== */
4 |
5 | table {
6 | display: block;
7 | margin-bottom: 1em;
8 | width: 100%;
9 | font-family: $global-font-family;
10 | font-size: $type-size-6;
11 | border-collapse: collapse;
12 | overflow-x: auto;
13 |
14 | & + table {
15 | margin-top: 1em;
16 | }
17 | }
18 |
19 | thead {
20 | background-color: $border-color;
21 | border-bottom: 2px solid mix(#000, $border-color, 25%);
22 | }
23 |
24 | th {
25 | padding: 0.5em;
26 | font-weight: bold;
27 | text-align: start;
28 | }
29 |
30 | td {
31 | padding: 0.5em;
32 | border-bottom: 1px solid mix(#000, $border-color, 25%);
33 | }
34 |
35 | tr,
36 | td,
37 | th {
38 | vertical-align: middle;
39 | }
40 |
--------------------------------------------------------------------------------
/_includes/comments-providers/utterances.html:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_mint.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Mint skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #f3f6f6 !default;
7 | $text-color: #40514e !default;
8 | $muted-text-color: #40514e !default;
9 | $primary-color: #11999e !default;
10 | $border-color: mix(#fff, #40514e, 75%) !default;
11 | $footer-background-color: #30e3ca !default;
12 | $link-color: #11999e !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | .page__footer {
18 | color: #fff !important; // override
19 | }
20 |
21 | .page__footer-follow .social-icons i,
22 | .page__footer-follow .social-icons .svg-inline--fa {
23 | color: inherit;
24 | }
25 |
--------------------------------------------------------------------------------
/_includes/comments-providers/discourse.html:
--------------------------------------------------------------------------------
1 | {% if site.comments.discourse.server %}
2 | {% capture canonical %}{% if site.permalink contains '.html' %}{{ page.url | absolute_url }}{% else %}{{ page.url | absolute_url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
3 |
12 |
13 | {% endif %}
14 |
--------------------------------------------------------------------------------
/_includes/category-list.html:
--------------------------------------------------------------------------------
1 | {% case site.category_archive.type %}
2 | {% when "liquid" %}
3 | {% assign path_type = "#" %}
4 | {% when "jekyll-archives" %}
5 | {% assign path_type = nil %}
6 | {% endcase %}
7 |
8 | {% if site.category_archive.path %}
9 | {% assign categories_sorted = page.categories | sort_natural %}
10 |
11 |
12 | {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }}
13 |
14 | {% for category_word in categories_sorted %}
15 | {{ category_word }}{% unless forloop.last %}, {% endunless %}
16 | {% endfor %}
17 |
18 |
19 | {% endif %}
--------------------------------------------------------------------------------
/_layouts/archive-taxonomy.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | author_profile: false
4 | ---
5 |
6 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
7 | {% include page__hero.html %}
8 | {% elsif page.header.video.id and page.header.video.provider %}
9 | {% include page__hero_video.html %}
10 | {% endif %}
11 |
12 | {% if page.url != "/" and site.breadcrumbs %}
13 | {% unless paginator %}
14 | {% include breadcrumbs.html %}
15 | {% endunless %}
16 | {% endif %}
17 |
18 |
19 | {% include sidebar.html %}
20 |
21 |
22 | {% unless page.header.overlay_color or page.header.overlay_image %}
23 |
{{ page.title }}
24 | {% endunless %}
25 | {% for post in page.posts %}
26 | {% include archive-single.html %}
27 | {% endfor %}
28 |
29 |
30 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Import Pieces
3 | //////////////////////////////
4 | @import "triple/default";
5 |
6 | @function breakpoint-parse-triple($feature, $empty-media, $first) {
7 | $parsed: '';
8 | $leader: '';
9 |
10 | // If we're forcing
11 | @if not ($empty-media) or not ($first) {
12 | $leader: 'and ';
13 | }
14 |
15 | // separate the string features from the value numbers
16 | $string: null;
17 | $numbers: null;
18 | @each $val in $feature {
19 | @if type-of($val) == string {
20 | $string: $val;
21 | }
22 | @else {
23 | @if type-of($numbers) == 'null' {
24 | $numbers: $val;
25 | }
26 | @else {
27 | $numbers: append($numbers, $val);
28 | }
29 | }
30 | }
31 |
32 | $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2));
33 |
34 | @return $leader + $parsed;
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/_includes/post_pagination.html:
--------------------------------------------------------------------------------
1 | {% if page.previous or page.next %}
2 |
14 | {% endif %}
15 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss:
--------------------------------------------------------------------------------
1 | @import "resolution/resolution";
2 |
3 | @function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) {
4 | $leader: '';
5 | // If we're forcing
6 | @if not ($empty-media) or not ($first) {
7 | $leader: 'and ';
8 | }
9 |
10 | @if breakpoint-get('transform resolutions') and $query-resolution {
11 | $resolutions: breakpoint-make-resolutions($query-resolution);
12 | $length: length($resolutions);
13 | $query-holder: '';
14 |
15 | @for $i from 1 through $length {
16 | $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}';
17 | @if $i == 1 {
18 | $query-holder: $query;
19 | }
20 | @else {
21 | $query-holder: '#{$query-holder}, #{$query}';
22 | }
23 | }
24 |
25 | @return $query-holder;
26 | }
27 | @else {
28 | // Return with attached resolution
29 | @return $query-print;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/_includes/search/google-search-scripts.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/_includes/video:
--------------------------------------------------------------------------------
1 | {% capture video_id %}{{ include.id }}{% endcapture %}
2 | {% capture video_provider %}{{ include.provider }}{% endcapture %}
3 | {% capture video_danmaku %}{{ include.danmaku | default: 0 }}{% endcapture %}
4 |
5 | {% capture video_src %}
6 | {% case video_provider %}
7 | {% when "vimeo" %}
8 | https://player.vimeo.com/video/{{ video_id }}?dnt=true
9 | {% when "youtube" %}
10 | https://www.youtube-nocookie.com/embed/{{ video_id }}
11 | {% when "google-drive" %}
12 | https://drive.google.com/file/d/{{ video_id }}/preview
13 | {% when "bilibili" %}
14 | https://player.bilibili.com/player.html?bvid={{ video_id }}&page=1&as_wide=1&high_quality=1&danmaku={{ video_danmaku }}
15 | {% endcase %}
16 | {% endcapture %}
17 | {% assign video_src = video_src | strip %}
18 |
19 |
20 | {% unless video_src == "" %}
21 |
22 |
23 |
24 | {% endunless %}
25 |
--------------------------------------------------------------------------------
/_layouts/splash.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
6 | {% include page__hero.html %}
7 | {% elsif page.header.video.id and page.header.video.provider %}
8 | {% include page__hero_video.html %}
9 | {% endif %}
10 |
11 |
12 |
13 | {% if page.title %}{% endif %}
14 | {% if page.excerpt %}{% endif %}
15 | {% if page.date %}{% endif %}
16 | {% if page.last_modified_at %}{% endif %}
17 |
18 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013-2024 Michael Rose and contributors
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss:
--------------------------------------------------------------------------------
1 | // Unprefix Susy
2 | // =============
3 |
4 |
5 | // Span
6 | // ----
7 | /// Un-prefixed alias for `susy-span`
8 | /// (available by default)
9 | ///
10 | /// @group api
11 | /// @alias susy-span
12 | ///
13 | /// @param {list} $span
14 | /// @param {map} $config [()]
15 | @function span(
16 | $span,
17 | $config: ()
18 | ) {
19 | @return susy-span($span, $config);
20 | }
21 |
22 |
23 | // Gutter
24 | // ------
25 | /// Un-prefixed alias for `susy-gutter`
26 | /// (available by default)
27 | ///
28 | /// @group api
29 | /// @alias susy-gutter
30 | ///
31 | /// @param {integer | list} $context [null] -
32 | /// @param {map} $config [()]
33 | @function gutter(
34 | $context: susy-get('columns'),
35 | $config: ()
36 | ) {
37 | @return susy-gutter($context, $config);
38 | }
39 |
40 |
41 | // Slice
42 | // -----
43 | /// Un-prefixed alias for `susy-slice`
44 | /// (available by default)
45 | ///
46 | /// @group api
47 | /// @alias susy-slice
48 | ///
49 | /// @param {list} $span
50 | /// @param {map} $config [()]
51 | @function slice(
52 | $span,
53 | $config: ()
54 | ) {
55 | @return susy-slice($span, $config);
56 | }
57 |
--------------------------------------------------------------------------------
/_includes/nav_list:
--------------------------------------------------------------------------------
1 |
28 |
--------------------------------------------------------------------------------
/_layouts/posts.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: archive
3 | ---
4 |
5 | {{ content }}
6 |
7 |
8 | {% assign postsInYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
9 | {% for year in postsInYear %}
10 | -
11 |
12 | {{ year.name }} {{ year.items | size }}
13 |
14 |
15 | {% endfor %}
16 |
17 |
18 | {% assign entries_layout = page.entries_layout | default: 'list' %}
19 | {% assign postsByYear = site.posts | where_exp: "item", "item.hidden != true" | group_by_exp: 'post', 'post.date | date: "%Y"' %}
20 | {% for year in postsByYear %}
21 |
30 | {% endfor %}
31 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_dirt.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Dirt skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #f3f3f3 !default;
7 | $text-color: #343434 !default;
8 | $muted-text-color: #8e8b82 !default;
9 | $primary-color: #343434 !default;
10 | $border-color: #e9dcbe !default;
11 | $footer-background-color: #e9dcbe !default;
12 | $link-color: #343434 !default;
13 | $masthead-link-color: $text-color !default;
14 | $masthead-link-color-hover: $text-color !default;
15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
16 |
17 | /* dirt syntax highlighting (base16) */
18 | $base00: #231e18 !default;
19 | $base01: #302b25 !default;
20 | $base02: #48413a !default;
21 | $base03: #9d8b70 !default;
22 | $base04: #b4a490 !default;
23 | $base05: #cabcb1 !default;
24 | $base06: #d7c8bc !default;
25 | $base07: #e4d4c8 !default;
26 | $base08: #d35c5c !default;
27 | $base09: #ca7f32 !default;
28 | $base0a: #e0ac16 !default;
29 | $base0b: #b7ba53 !default;
30 | $base0c: #6eb958 !default;
31 | $base0d: #88a4d3 !default;
32 | $base0e: #bb90e2 !default;
33 | $base0f: #b49368 !default;
34 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes.scss:
--------------------------------------------------------------------------------
1 | /* Copyright comment */
2 | @import "minimal-mistakes/copyright";
3 |
4 | /* Variables */
5 | @import "minimal-mistakes/variables";
6 |
7 | /* Mixins and functions */
8 | @import "minimal-mistakes/vendor/breakpoint/breakpoint";
9 | @include breakpoint-set("to ems", true);
10 | @import "minimal-mistakes/vendor/magnific-popup/magnific-popup"; // Magnific Popup
11 | @import "minimal-mistakes/vendor/susy/susy";
12 | @import "minimal-mistakes/mixins";
13 |
14 | /* Core CSS */
15 | @import "minimal-mistakes/reset";
16 | @import "minimal-mistakes/base";
17 | @import "minimal-mistakes/forms";
18 | @import "minimal-mistakes/tables";
19 | @import "minimal-mistakes/animations";
20 |
21 | /* Components */
22 | @import "minimal-mistakes/buttons";
23 | @import "minimal-mistakes/notices";
24 | @import "minimal-mistakes/masthead";
25 | @import "minimal-mistakes/navigation";
26 | @import "minimal-mistakes/footer";
27 | @import "minimal-mistakes/search";
28 | @import "minimal-mistakes/syntax";
29 |
30 | /* Utility classes */
31 | @import "minimal-mistakes/utilities";
32 |
33 | /* Layout specific */
34 | @import "minimal-mistakes/page";
35 | @import "minimal-mistakes/archive";
36 | @import "minimal-mistakes/sidebar";
37 | @import "minimal-mistakes/print";
38 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Import Pieces
3 | //////////////////////////////
4 | @import "double/default-pair";
5 | @import "double/double-string";
6 | @import "double/default";
7 |
8 | @function breakpoint-parse-double($feature, $empty-media, $first) {
9 | $parsed: '';
10 | $leader: '';
11 | // If we're forcing
12 | @if not ($empty-media) or not ($first) {
13 | $leader: 'and ';
14 | }
15 |
16 | $first: nth($feature, 1);
17 | $second: nth($feature, 2);
18 |
19 | // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number
20 | @if type-of($first) == 'number' and type-of($second) == 'number' {
21 | $parsed: breakpoint-parse-default-pair($first, $second);
22 | }
23 | // If they are both strings, we send it through the string parser
24 | @else if type-of($first) == 'string' and type-of($second) == 'string' {
25 | $parsed: breakpoint-parse-double-string($first, $second);
26 | }
27 | // If it's a string/number pair, we parse it as a normal double
28 | @else {
29 | $parsed: breakpoint-parse-double-default($first, $second);
30 | }
31 |
32 | @return $leader + $parsed;
33 | }
34 |
--------------------------------------------------------------------------------
/_includes/gallery:
--------------------------------------------------------------------------------
1 | {% if include.id %}
2 | {% assign gallery = page[include.id] %}
3 | {% else %}
4 | {% assign gallery = page.gallery %}
5 | {% endif %}
6 |
7 | {% if include.layout %}
8 | {% assign gallery_layout = include.layout %}
9 | {% else %}
10 | {% if gallery.size == 2 %}
11 | {% assign gallery_layout = 'half' %}
12 | {% elsif gallery.size >= 3 %}
13 | {% assign gallery_layout = 'third' %}
14 | {% else %}
15 | {% assign gallery_layout = '' %}
16 | {% endif %}
17 | {% endif %}
18 |
19 |
20 | {% for img in gallery %}
21 | {% if img.url %}
22 |
24 |
26 |
27 | {% else %}
28 |
30 | {% endif %}
31 | {% endfor %}
32 | {% if include.caption %}
33 | {{ include.caption | markdownify | remove: "" | remove: "
" }}
34 | {% endif %}
35 |
36 |
--------------------------------------------------------------------------------
/_includes/comment.html:
--------------------------------------------------------------------------------
1 |
23 |
--------------------------------------------------------------------------------
/minimal-mistakes-jekyll.gemspec:
--------------------------------------------------------------------------------
1 | require "json"
2 |
3 | package_json = JSON.parse(File.read("package.json"))
4 |
5 | Gem::Specification.new do |spec|
6 | spec.name = "minimal-mistakes-jekyll"
7 | spec.version = package_json["version"]
8 | spec.authors = ["Michael Rose", "iBug"]
9 |
10 | spec.summary = %q{A flexible two-column Jekyll theme.}
11 | spec.homepage = "https://github.com/mmistakes/minimal-mistakes"
12 | spec.license = "MIT"
13 |
14 | spec.metadata["plugin_type"] = "theme"
15 |
16 | spec.files = `git ls-files -z`.split("\x0").select do |f|
17 | f.match(%r{^(assets|_(data|includes|layouts|sass)/|(LICENSE|README|CHANGELOG)((\.(txt|md|markdown)|$)))}i)
18 | end
19 |
20 | spec.add_runtime_dependency "jekyll", ">= 3.7", "< 5.0"
21 | spec.add_runtime_dependency "jekyll-paginate", "~> 1.1"
22 | spec.add_runtime_dependency "jekyll-sitemap", "~> 1.3"
23 | spec.add_runtime_dependency "jekyll-gist", "~> 1.5"
24 | spec.add_runtime_dependency "jekyll-feed", "~> 0.1"
25 | spec.add_runtime_dependency "jekyll-include-cache", "~> 0.1"
26 |
27 | spec.add_development_dependency "bundler"
28 | spec.add_development_dependency "rake", ">= 12.3.3"
29 | end
30 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 | {% include copyright.html %}
6 |
7 |
8 | {% include head.html %}
9 | {% include head/custom.html %}
10 |
11 |
12 |
13 | {% include_cached skip-links.html %}
14 | {% include_cached masthead.html %}
15 |
16 |
17 | {{ content }}
18 | {% include after-content.html %}
19 |
20 |
21 | {% if site.search == true %}
22 |
23 | {% include_cached search/search_form.html %}
24 |
25 | {% endif %}
26 |
27 |
33 |
34 | {% include scripts.html %}
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/_includes/group-by-array:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 | {% assign __empty_array = '' | split: ',' %}
10 | {% assign group_names = __empty_array %}
11 | {% assign group_items = __empty_array %}
12 |
13 |
14 | {% assign __names = include.collection | map: include.field %}
15 |
16 |
17 | {% assign __names = __names | join: ',' | join: ',' | split: ',' %}
18 |
19 |
20 | {% assign __names = __names | sort %}
21 | {% for name in __names %}
22 |
23 |
24 | {% unless name == previous %}
25 |
26 |
27 | {% assign group_names = group_names | push: name %}
28 | {% endunless %}
29 |
30 | {% assign previous = name %}
31 | {% endfor %}
32 |
33 |
34 |
35 | {% for name in group_names %}
36 |
37 |
38 | {% assign __item = __empty_array %}
39 | {% for __element in include.collection %}
40 | {% if __element[include.field] contains name %}
41 | {% assign __item = __item | push: __element %}
42 | {% endif %}
43 | {% endfor %}
44 |
45 |
46 | {% assign group_items = group_items | push: __item %}
47 | {% endfor %}
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% include seo.html %}
4 |
5 | {% unless site.atom_feed.hide %}
6 |
7 | {% endunless %}
8 |
9 | {%- comment %} https://docs.google.com/presentation/d/1rmxwWa9P6_xHqonmh5ONXRS-jPc5XKbnv99Rjkhe04s/present {% endcomment -%}
10 |
11 |
12 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | {% if site.head_scripts %}
25 | {% for script in site.head_scripts %}
26 |
27 | {% endfor %}
28 | {% endif %}
29 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_dark.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Dark skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #252a34 !default;
7 | $text-color: #eaeaea !default;
8 | $primary-color: #00adb5 !default;
9 | $border-color: mix(#fff, $background-color, 20%) !default;
10 | $code-background-color: mix(#000, $background-color, 15%) !default;
11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default;
12 | $form-background-color: mix(#000, $background-color, 15%) !default;
13 | $footer-background-color: mix(#000, $background-color, 30%) !default;
14 | $link-color: mix($primary-color, $text-color, 40%) !default;
15 | $link-color-hover: mix(#fff, $link-color, 25%) !default;
16 | $link-color-visited: mix(#000, $link-color, 25%) !default;
17 | $masthead-link-color: $text-color !default;
18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
20 |
21 | .author__urls.social-icons i,
22 | .author__urls.social-icons .svg-inline--fa,
23 | .page__footer-follow .social-icons i,
24 | .page__footer-follow .social-icons .svg-inline--fa {
25 | color: inherit;
26 | }
27 |
28 | .ais-search-box .ais-search-box--input {
29 | background-color: $form-background-color;
30 | }
31 |
--------------------------------------------------------------------------------
/_includes/posts-taxonomy.html:
--------------------------------------------------------------------------------
1 | {% assign items_max = 0 %}
2 | {% for item in include.taxonomies %}
3 | {% if item[1].size > items_max %}
4 | {% assign items_max = item[1].size %}
5 | {% endif %}
6 | {% endfor %}
7 |
8 |
9 | {% for i in (1..items_max) reversed %}
10 | {% for item in include.taxonomies %}
11 | {% if item[1].size == i %}
12 | -
13 |
14 | {{ item[0] }} {{ i }}
15 |
16 |
17 | {% endif %}
18 | {% endfor %}
19 | {% endfor %}
20 |
21 |
22 | {% assign entries_layout = page.entries_layout | default: 'list' %}
23 | {% for i in (1..items_max) reversed %}
24 | {% for taxonomy in include.taxonomies %}
25 | {% if taxonomy[1].size == i %}
26 |
35 | {% endif %}
36 | {% endfor %}
37 | {% endfor %}
38 |
--------------------------------------------------------------------------------
/_includes/archive-single.html:
--------------------------------------------------------------------------------
1 | {% if post.header.teaser %}
2 | {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
3 | {% else %}
4 | {% assign teaser = site.teaser %}
5 | {% endif %}
6 |
7 | {% if post.id %}
8 | {% assign title = post.title | markdownify | remove: "" | remove: "
" %}
9 | {% else %}
10 | {% assign title = post.title %}
11 | {% endif %}
12 |
13 |
14 |
15 | {% if include.type == "grid" and teaser %}
16 |
17 |

18 |
19 | {% endif %}
20 |
21 | {% if post.link %}
22 | {{ title }} Permalink
23 | {% else %}
24 | {{ title }}
25 | {% endif %}
26 |
27 | {% include page__meta.html type=include.type %}
28 | {% if post.excerpt %}{{ post.excerpt | markdownify | strip_html | truncate: 160 }}
{% endif %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/_includes/scripts.html:
--------------------------------------------------------------------------------
1 | {% if site.footer_scripts %}
2 | {% for script in site.footer_scripts %}
3 |
4 | {% endfor %}
5 | {% else %}
6 |
7 | {% endif %}
8 |
9 | {% if site.search == true or page.layout == "search" %}
10 | {%- assign search_provider = site.search_provider | default: "lunr" -%}
11 | {%- case search_provider -%}
12 | {%- when "lunr" -%}
13 | {% include_cached search/lunr-search-scripts.html %}
14 | {%- when "google" -%}
15 | {% include_cached search/google-search-scripts.html %}
16 | {%- when "algolia" -%}
17 | {% include_cached search/algolia-search-scripts.html %}
18 | {%- endcase -%}
19 | {% endif %}
20 |
21 | {% include analytics.html %}
22 | {% include /comments-providers/scripts.html %}
23 |
24 | {% if site.after_footer_scripts %}
25 | {% for script in site.after_footer_scripts %}
26 |
27 | {% endfor %}
28 | {% endif %}
29 |
30 | {% if page.use_mermaid %}
31 |
32 |
38 | {% endif %}
39 |
--------------------------------------------------------------------------------
/_includes/search/search_form.html:
--------------------------------------------------------------------------------
1 |
2 | {%- assign search_provider = site.search_provider | default: "lunr" -%}
3 | {%- case search_provider -%}
4 | {%- when "lunr" -%}
5 |
11 |
12 | {%- when "google" -%}
13 |
19 |
20 |
21 |
22 | {%- when "algolia" -%}
23 |
24 |
25 | {%- endcase -%}
26 |
27 |
--------------------------------------------------------------------------------
/_includes/feature_row:
--------------------------------------------------------------------------------
1 | {% if include.id %}
2 | {% assign feature_row = page[include.id] %}
3 | {% else %}
4 | {% assign feature_row = page.feature_row %}
5 | {% endif %}
6 |
7 |
8 |
9 | {% for f in feature_row %}
10 |
11 |
12 | {% if f.image_path %}
13 |
14 |

16 | {% if f.image_caption %}
17 |
{{ f.image_caption | markdownify | remove: "" | remove: "
" }}
18 | {% endif %}
19 |
20 | {% endif %}
21 |
22 |
23 | {% if f.title %}
24 |
{{ f.title }}
25 | {% endif %}
26 |
27 | {% if f.excerpt %}
28 |
29 | {{ f.excerpt | markdownify }}
30 |
31 | {% endif %}
32 |
33 | {% if f.url %}
34 |
{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}
35 | {% endif %}
36 |
37 |
38 |
39 | {% endfor %}
40 |
41 |
42 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_aqua.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Aqua skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $gray : #1976d2 !default;
7 | $dark-gray : mix(#000, $gray, 40%) !default;
8 | $darker-gray : mix(#000, $gray, 60%) !default;
9 | $light-gray : mix(#fff, $gray, 50%) !default;
10 | $lighter-gray : mix(#fff, $gray, 90%) !default;
11 |
12 | $body-color : #fff !default;
13 | $background-color : #f0fff0 !default;
14 | $code-background-color : $lighter-gray !default;
15 | $code-background-color-dark : $light-gray !default;
16 | $text-color : $dark-gray !default;
17 | $border-color : $lighter-gray !default;
18 |
19 | $primary-color : $gray !default;
20 | $success-color : #27ae60 !default;
21 | $warning-color : #e67e22 !default;
22 | $danger-color : #c0392b !default;
23 | $info-color : #03a9f4 !default;
24 |
25 | /* links */
26 | $link-color : $info-color !default;
27 | $link-color-hover : mix(#000, $link-color, 25%) !default;
28 | $link-color-visited : mix(#fff, $link-color, 25%) !default;
29 | $masthead-link-color : $primary-color !default;
30 | $masthead-link-color-hover : mix(#000, $primary-color, 25%) !default;
31 |
32 | /* notices */
33 | $notice-background-mix: 90% !default;
34 | $code-notice-background-mix: 95% !default;
35 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_contrast.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Contrast skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $text-color: #000 !default;
7 | $muted-text-color: $text-color !default;
8 | $primary-color: #b60000 !default;
9 | $border-color: mix(#fff, $text-color, 75%) !default;
10 | $footer-background-color: #000 !default;
11 | $link-color: #0000ff !default;
12 | $masthead-link-color: $text-color !default;
13 | $masthead-link-color-hover: $text-color !default;
14 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default;
15 |
16 | /* contrast syntax highlighting (base16) */
17 | $base00: #000000 !default;
18 | $base01: #242422 !default;
19 | $base02: #484844 !default;
20 | $base03: #6c6c66 !default;
21 | $base04: #918f88 !default;
22 | $base05: #b5b3aa !default;
23 | $base06: #d9d7cc !default;
24 | $base07: #fdfbee !default;
25 | $base08: #ff6c60 !default;
26 | $base09: #e9c062 !default;
27 | $base0a: #ffffb6 !default;
28 | $base0b: #a8ff60 !default;
29 | $base0c: #c6c5fe !default;
30 | $base0d: #96cbfe !default;
31 | $base0e: #ff73fd !default;
32 | $base0f: #b18a3d !default;
33 |
34 | .page__content {
35 | .notice,
36 | .notice--primary,
37 | .notice--info,
38 | .notice--warning,
39 | .notice--success,
40 | .notice--danger {
41 | color: $text-color;
42 | }
43 | }
44 |
45 | .page__footer {
46 | color: #fff !important; // override
47 | }
48 |
49 | .page__footer-follow .social-icons i,
50 | .page__footer-follow .social-icons .svg-inline--fa {
51 | color: inherit;
52 | }
53 |
--------------------------------------------------------------------------------
/_includes/comments-providers/giscus.html:
--------------------------------------------------------------------------------
1 |
35 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 | {% unless site.atom_feed.hide %}
2 | {% assign show_atom = true %}
3 | {% endunless %}
4 | {% if site.footer.links or show_atom %}
5 |
24 | {% endif %}
25 |
26 |
27 |
--------------------------------------------------------------------------------
/_layouts/search.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
6 | {% include page__hero.html %}
7 | {% endif %}
8 |
9 | {% if page.url != "/" and site.breadcrumbs %}
10 | {% unless paginator %}
11 | {% include breadcrumbs.html %}
12 | {% endunless %}
13 | {% endif %}
14 |
15 |
16 | {% include sidebar.html %}
17 |
18 |
19 | {% unless page.header.overlay_color or page.header.overlay_image %}
20 |
{{ page.title }}
21 | {% endunless %}
22 |
23 | {{ content }}
24 |
25 | {%- assign search_provider = site.search_provider | default: "lunr" -%}
26 | {%- case search_provider -%}
27 | {%- when "lunr" -%}
28 |
29 |
30 | {%- when "google" -%}
31 |
34 |
35 |
36 |
37 | {%- when "algolia" -%}
38 |
39 |
40 | {%- endcase -%}
41 |
42 |
43 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss:
--------------------------------------------------------------------------------
1 | // SVG Grid Math
2 | // =============
3 |
4 |
5 |
6 | // SVG Column Position
7 | // -------------------
8 | /// Determine the proper horizontal position
9 | /// for a column rectangle
10 | ///
11 | /// @access private
12 | ///
13 | /// @param {Integer} $column -
14 | /// 1-indexed column location on the grid
15 | /// @param {Map} $grid -
16 | /// Normalized settings map representing the current grid
17 | ///
18 | /// @return {Length} -
19 | /// Horizontal position of svg column rectangle,
20 | /// as distance from the grid edge
21 | @function _susy-svg-column-position(
22 | $column,
23 | $grid
24 | ) {
25 | $x: $column - 1;
26 |
27 | @if ($x > 0) {
28 | $x: susy-span(first $x wide, $grid);
29 | }
30 |
31 | @return $x;
32 | }
33 |
34 |
35 |
36 | // SVG Offset
37 | // ----------
38 | /// Determine if a grid image needs to be offset,
39 | /// to account for edge gutters.
40 | ///
41 | /// @access private
42 | ///
43 | /// @param {Map} $grid -
44 | /// Normalized settings map representing the current grid
45 | ///
46 | /// @return {Length | null} -
47 | /// Expected distance from container edge to first column,
48 | /// based on spread values and gutter-widths
49 | @function _susy-svg-offset(
50 | $grid
51 | ) {
52 | $columns: su-valid-columns(map-get($grid, 'columns'));
53 | $gutters: su-valid-gutters(map-get($grid, 'gutters'));
54 | $container: su-valid-spread(map-get($grid, 'container-spread')) + 1;
55 |
56 | @if ($container == 0) {
57 | @return null;
58 | }
59 |
60 | $gutter: su-call('su-gutter', $grid);
61 |
62 | @if (type-of($gutter) == 'string') {
63 | @return 'calc(#{$container} * #{$gutter} / 2)';
64 | }
65 |
66 | @return $container * $gutter / 2;
67 | }
68 |
--------------------------------------------------------------------------------
/_includes/page__meta.html:
--------------------------------------------------------------------------------
1 | {% assign document = post | default: page %}
2 | {% if document.read_time or document.show_date %}
3 |
4 | {% if document.show_date and document.date %}
5 | {% assign date = document.date %}
6 |
7 |
8 | {% assign date_format = site.date_format | default: "%B %-d, %Y" %}
9 |
10 |
11 | {% endif %}
12 |
13 | {% if document.read_time and document.show_date %}{% endif %}
14 |
15 | {% if document.read_time %}
16 | {% assign words_per_minute = document.words_per_minute | default: site.words_per_minute | default: 200 %}
17 | {% assign words = document.content | strip_html | number_of_words %}
18 |
19 |
20 |
21 | {% if words < words_per_minute %}
22 | {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
23 | {% elsif words == words_per_minute %}
24 | 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
25 | {% else %}
26 | {{ words | divided_by: words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
27 | {% endif %}
28 |
29 | {% endif %}
30 |
31 | {% endif %}
32 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_footer.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | FOOTER
3 | ========================================================================== */
4 |
5 | .page__footer {
6 | @include clearfix;
7 | float: inline-start;
8 | margin-inline: 0;
9 | width: 100%;
10 | margin-top: 3em;
11 | color: $muted-text-color;
12 | -webkit-animation: $intro-transition;
13 | animation: $intro-transition;
14 | -webkit-animation-delay: 0.45s;
15 | animation-delay: 0.45s;
16 | background-color: $footer-background-color;
17 |
18 | footer {
19 | @include clearfix;
20 | margin-inline: auto;
21 | margin-top: 2em;
22 | max-width: 100%;
23 | padding: 0 1em 2em;
24 |
25 | @include breakpoint($x-large) {
26 | max-width: $x-large;
27 | }
28 | }
29 |
30 | a {
31 | color: inherit;
32 | text-decoration: none;
33 |
34 | &:hover {
35 | text-decoration: underline;
36 | }
37 | }
38 |
39 | .fas,
40 | .fab,
41 | .far,
42 | .fal {
43 | color: $muted-text-color;
44 | }
45 | }
46 |
47 | .page__footer-copyright {
48 | font-family: $global-font-family;
49 | font-size: $type-size-7;
50 | }
51 |
52 | .page__footer-follow {
53 | ul {
54 | margin: 0;
55 | padding: 0;
56 | list-style-type: none;
57 | }
58 |
59 | li {
60 | display: inline-block;
61 | padding-top: 5px;
62 | padding-bottom: 5px;
63 | font-family: $sans-serif-narrow;
64 | font-size: $type-size-6;
65 | text-transform: uppercase;
66 | }
67 |
68 | li + li::before {
69 | content: "";
70 | padding-inline-end: 5px;
71 | }
72 |
73 | a {
74 | padding-inline-end: 10px;
75 | font-weight: bold;
76 | }
77 |
78 | .social-icons {
79 | a {
80 | white-space: nowrap;
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/_includes/breadcrumbs.html:
--------------------------------------------------------------------------------
1 | {% case site.category_archive.type %}
2 | {% when "liquid" %}
3 | {% assign path_type = "#" %}
4 | {% when "jekyll-archives" %}
5 | {% assign path_type = nil %}
6 | {% endcase %}
7 |
8 | {% if page.collection != 'posts' %}
9 | {% assign path_type = nil %}
10 | {% assign crumb_path = '/' %}
11 | {% else %}
12 | {% assign crumb_path = site.category_archive.path %}
13 | {% endif %}
14 |
15 |
41 |
--------------------------------------------------------------------------------
/_includes/masthead.html:
--------------------------------------------------------------------------------
1 | {% capture logo_path %}{{ site.logo }}{% endcapture %}
2 |
3 |
40 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_sunrise.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Sunrise skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $dark-gray: #0e2431 !default;
7 | $background-color: #e8d5b7 !default;
8 | $text-color: #000 !default;
9 | $muted-text-color: $dark-gray !default;
10 | $primary-color: #fc3a52 !default;
11 | $border-color: mix(#000, $background-color, 20%) !default;
12 | $code-background-color: mix(#fff, $background-color, 20%) !default;
13 | $code-background-color-dark: mix(#000, $background-color, 10%) !default;
14 | $form-background-color: mix(#fff, $background-color, 15%) !default;
15 | $footer-background-color: #f9b248 !default;
16 | $link-color: mix(#000, $primary-color, 10%) !default;
17 | $link-color-hover: mix(#fff, $link-color, 25%) !default;
18 | $link-color-visited: mix(#000, $link-color, 25%) !default;
19 | $masthead-link-color: $text-color !default;
20 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
21 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
22 |
23 | /* notices */
24 | $notice-background-mix: 75% !default;
25 |
26 | /* sunrise syntax highlighting (base16) */
27 | $base00: #1d1f21 !default;
28 | $base01: #282a2e !default;
29 | $base02: #373b41 !default;
30 | $base03: #969896 !default;
31 | $base04: #b4b7b4 !default;
32 | $base05: #c5c8c6 !default;
33 | $base06: #e0e0e0 !default;
34 | $base07: #ffffff !default;
35 | $base08: #cc6666 !default;
36 | $base09: #de935f !default;
37 | $base0a: #f0c674 !default;
38 | $base0b: #b5bd68 !default;
39 | $base0c: #8abeb7 !default;
40 | $base0d: #81a2be !default;
41 | $base0e: #b294bb !default;
42 | $base0f: #a3685a !default;
43 |
44 | .author__urls.social-icons i,
45 | .author__urls.social-icons .svg-inline--fa,
46 | .page__footer-follow .social-icons i,
47 | .page__footer-follow .social-icons .svg-inline--fa {
48 | color: inherit;
49 | }
50 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss:
--------------------------------------------------------------------------------
1 | @function breakpoint-make-resolutions($resolution) {
2 | $length: length($resolution);
3 |
4 | $output: ();
5 |
6 | @if $length == 2 {
7 | $feature: '';
8 | $value: '';
9 |
10 | // Find which is number
11 | @if type-of(nth($resolution, 1)) == 'number' {
12 | $value: nth($resolution, 1);
13 | }
14 | @else {
15 | $value: nth($resolution, 2);
16 | }
17 |
18 | // Determine min/max/standard
19 | @if index($resolution, 'min-resolution') {
20 | $feature: 'min-';
21 | }
22 | @else if index($resolution, 'max-resolution') {
23 | $feature: 'max-';
24 | }
25 |
26 | $standard: '(#{$feature}resolution: #{$value})';
27 |
28 | // If we're not dealing with dppx,
29 | @if unit($value) != 'dppx' {
30 | $base: 96dpi;
31 | @if unit($value) == 'dpcm' {
32 | $base: 243.84dpcm;
33 | }
34 | // Write out feature tests
35 | $webkit: '';
36 | $moz: '';
37 | $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})';
38 | $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})';
39 | // Append to output
40 | $output: append($output, $standard, space);
41 | $output: append($output, $webkit, space);
42 | $output: append($output, $moz, space);
43 | }
44 | @else {
45 | $webkit: '';
46 | $moz: '';
47 | $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})';
48 | $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})';
49 | $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})';
50 | // Append to output
51 | $output: append($output, $standard, space);
52 | $output: append($output, $webkit, space);
53 | $output: append($output, $moz, space);
54 | $output: append($output, $fallback, space);
55 | }
56 |
57 | }
58 |
59 | @return $output;
60 | }
61 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_masthead.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | MASTHEAD
3 | ========================================================================== */
4 |
5 | .masthead {
6 | position: relative;
7 | border-bottom: 1px solid $border-color;
8 | -webkit-animation: $intro-transition;
9 | animation: $intro-transition;
10 | -webkit-animation-delay: 0.15s;
11 | animation-delay: 0.15s;
12 | z-index: 20;
13 |
14 | &__inner-wrap {
15 | @include clearfix;
16 | margin-inline: auto;
17 | padding: 1em;
18 | max-width: 100%;
19 | display: -webkit-box;
20 | display: -ms-flexbox;
21 | display: flex;
22 | -webkit-box-pack: justify;
23 | -ms-flex-pack: justify;
24 | justify-content: space-between;
25 | font-family: $sans-serif-narrow;
26 |
27 | @include breakpoint($x-large) {
28 | max-width: $max-width;
29 | }
30 |
31 | nav {
32 | z-index: 10;
33 | }
34 |
35 | a {
36 | text-decoration: none;
37 | }
38 | }
39 | }
40 |
41 | .site-logo img {
42 | max-height: 2rem;
43 | }
44 |
45 | .site-title {
46 | display: -webkit-box;
47 | display: -ms-flexbox;
48 | display: flex;
49 | -ms-flex-item-align: center;
50 | align-self: center;
51 | font-weight: bold;
52 | // z-index: 20;
53 | }
54 |
55 | .site-subtitle {
56 | display: block;
57 | font-size: $type-size-8;
58 | }
59 |
60 | .masthead__menu {
61 | float: inline-start;
62 | margin-inline: 0;
63 | width: 100%;
64 | clear: both;
65 |
66 | .site-nav {
67 | margin-inline-start: 0;
68 |
69 | @include breakpoint($small) {
70 | float: inline-end;
71 | }
72 | }
73 |
74 | ul {
75 | margin: 0;
76 | padding: 0;
77 | clear: both;
78 | list-style-type: none;
79 | }
80 | }
81 |
82 | .masthead__menu-item {
83 | display: block;
84 | list-style-type: none;
85 | white-space: nowrap;
86 |
87 | &--lg {
88 | padding-inline-end: 2em;
89 | font-weight: 700;
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/_includes/comments-providers/staticman.html:
--------------------------------------------------------------------------------
1 | {% if site.repository and site.staticman.branch %}
2 |
40 | {% endif %}
41 |
--------------------------------------------------------------------------------
/_includes/comments-providers/staticman_v2.html:
--------------------------------------------------------------------------------
1 | {% if site.repository and site.comments.staticman.branch %}
2 |
40 | {% endif %}
41 |
--------------------------------------------------------------------------------
/_includes/social-share.html:
--------------------------------------------------------------------------------
1 |
2 | {{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}
3 |
4 |
5 | X
6 |
7 |
8 |
9 | Facebook
10 |
11 |
12 |
13 | LinkedIn
14 |
15 |
16 |
17 | Bluesky
18 |
19 |
20 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Has Setting
3 | //////////////////////////////
4 | @function breakpoint-has($setting) {
5 | @if map-has-key($breakpoint, $setting) {
6 | @return true;
7 | }
8 | @else {
9 | @return false;
10 | }
11 | }
12 |
13 | //////////////////////////////
14 | // Get Settings
15 | //////////////////////////////
16 | @function breakpoint-get($setting) {
17 | @if breakpoint-has($setting) {
18 | @return map-get($breakpoint, $setting);
19 | }
20 | @else {
21 | @return map-get($Breakpoint-Settings, $setting);
22 | }
23 | }
24 |
25 | //////////////////////////////
26 | // Set Settings
27 | //////////////////////////////
28 | @function breakpoint-set($setting, $value) {
29 | @if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {
30 | @warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.";
31 | }
32 | $breakpoint: map-merge($breakpoint, ($setting: $value)) !global;
33 | @return true;
34 | }
35 |
36 | @mixin breakpoint-change($setting, $value) {
37 | $breakpoint-change: breakpoint-set($setting, $value);
38 | }
39 |
40 | @mixin breakpoint-set($setting, $value) {
41 | @include breakpoint-change($setting, $value);
42 | }
43 |
44 | @mixin bkpt-change($setting, $value) {
45 | @include breakpoint-change($setting, $value);
46 | }
47 | @mixin bkpt-set($setting, $value) {
48 | @include breakpoint-change($setting, $value);
49 | }
50 |
51 | //////////////////////////////
52 | // Remove Setting
53 | //////////////////////////////
54 | @function breakpoint-reset($settings...) {
55 | @if length($settings) == 1 {
56 | $settings: nth($settings, 1);
57 | }
58 |
59 | @each $setting in $settings {
60 | $breakpoint: map-remove($breakpoint, $setting) !global;
61 | }
62 | @return true;
63 | }
64 |
65 | @mixin breakpoint-reset($settings...) {
66 | $breakpoint-reset: breakpoint-reset($settings);
67 | }
68 |
69 | @mixin bkpt-reset($settings...) {
70 | $breakpoint-reset: breakpoint-reset($settings);
71 | }
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_neon.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Neon skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #141010 !default;
7 | $text-color: #fff6fb !default;
8 | $primary-color: #f21368 !default;
9 | $border-color: mix(#fff, $background-color, 20%) !default;
10 | $code-background-color: mix(#000, $background-color, 15%) !default;
11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default;
12 | $form-background-color: mix(#000, $background-color, 15%) !default;
13 | $footer-background-color: mix($primary-color, #000, 10%) !default;
14 | $link-color: $primary-color !default;
15 | $link-color-hover: mix(#fff, $link-color, 25%) !default;
16 | $link-color-visited: mix(#000, $link-color, 25%) !default;
17 | $masthead-link-color: $text-color !default;
18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
20 |
21 | /* notices */
22 | $notice-background-mix: 90% !default;
23 | $code-notice-background-mix: 95% !default;
24 |
25 | /* neon syntax highlighting (base16) */
26 | $base00: #ffffff !default;
27 | $base01: #e0e0e0 !default;
28 | $base02: #d0d0d0 !default;
29 | $base03: #b0b0b0 !default;
30 | $base04: #000000 !default;
31 | $base05: #101010 !default;
32 | $base06: #151515 !default;
33 | $base07: #202020 !default;
34 | $base08: #ff0086 !default;
35 | $base09: #fd8900 !default;
36 | $base0a: #aba800 !default;
37 | $base0b: #00c918 !default;
38 | $base0c: #1faaaa !default;
39 | $base0d: #3777e6 !default;
40 | $base0e: #ad00a1 !default;
41 | $base0f: #cc6633 !default;
42 |
43 | .author__urls.social-icons i,
44 | .author__urls.social-icons .svg-inline--fa,
45 | .page__footer-follow .social-icons i,
46 | .page__footer-follow .social-icons .svg-inline--fa {
47 | color: inherit;
48 | }
49 |
50 | /* next/previous buttons */
51 | .pagination--pager {
52 | color: $text-color;
53 | background-color: $primary-color;
54 | border-color: transparent;
55 |
56 | &:visited {
57 | color: $text-color;
58 | }
59 | }
60 |
61 | .ais-search-box .ais-search-box--input {
62 | background-color: $form-background-color;
63 | }
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/skins/_plum.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | Plum skin
3 | ========================================================================== */
4 |
5 | /* Colors */
6 | $background-color: #521477 !default;
7 | $text-color: #fffd86 !default;
8 | $primary-color: #c327ab !default;
9 | $border-color: mix(#fff, $background-color, 20%) !default;
10 | $code-background-color: mix(#000, $background-color, 15%) !default;
11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default;
12 | $form-background-color: mix(#000, $background-color, 15%) !default;
13 | $footer-background-color: mix(#000, $background-color, 25%) !default;
14 | $link-color: $primary-color !default;
15 | $link-color-hover: mix(#fff, $link-color, 25%) !default;
16 | $link-color-visited: mix(#000, $link-color, 25%) !default;
17 | $masthead-link-color: $text-color !default;
18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default;
19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default;
20 |
21 | /* notices */
22 | $notice-background-mix: 70% !default;
23 | $code-notice-background-mix: 80% !default;
24 |
25 | /* plum syntax highlighting (base16) */
26 | $base00: #ffffff !default;
27 | $base01: #e0e0e0 !default;
28 | $base02: #d0d0d0 !default;
29 | $base03: #b0b0b0 !default;
30 | $base04: #000000 !default;
31 | $base05: #101010 !default;
32 | $base06: #151515 !default;
33 | $base07: #202020 !default;
34 | $base08: #ff0086 !default;
35 | $base09: #fd8900 !default;
36 | $base0a: #aba800 !default;
37 | $base0b: #00c918 !default;
38 | $base0c: #1faaaa !default;
39 | $base0d: #3777e6 !default;
40 | $base0e: #ad00a1 !default;
41 | $base0f: #cc6633 !default;
42 |
43 | .author__urls.social-icons i,
44 | .author__urls.social-icons .svg-inline--fa,
45 | .page__footer-follow .social-icons i,
46 | .page__footer-follow .social-icons .svg-inline--fa {
47 | color: inherit;
48 | }
49 |
50 | .page__content {
51 | a,
52 | a:visited {
53 | color: inherit;
54 | }
55 | }
56 |
57 | /* next/previous buttons */
58 | .pagination--pager {
59 | color: $text-color;
60 | background-color: $primary-color;
61 | border-color: transparent;
62 |
63 | &:visited {
64 | color: $text-color;
65 | }
66 | }
67 |
68 | .ais-search-box .ais-search-box--input {
69 | background-color: $form-background-color;
70 | }
--------------------------------------------------------------------------------
/.github/workflows/jekyll.yml:
--------------------------------------------------------------------------------
1 | # This workflow uses actions that are not certified by GitHub.
2 | # They are provided by a third-party and are governed by
3 | # separate terms of service, privacy policy, and support
4 | # documentation.
5 |
6 | # Sample workflow for building and deploying a Jekyll site to GitHub Pages
7 | name: Deploy Jekyll site to Pages
8 |
9 | on:
10 | # Runs on pushes targeting the default branch
11 | push:
12 | branches: ["master"]
13 |
14 | # Allows you to run this workflow manually from the Actions tab
15 | workflow_dispatch:
16 |
17 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
18 | permissions:
19 | contents: read
20 | pages: write
21 | id-token: write
22 |
23 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
24 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
25 | concurrency:
26 | group: "pages"
27 | cancel-in-progress: false
28 |
29 | jobs:
30 | # Build job
31 | build:
32 | runs-on: ubuntu-latest
33 | steps:
34 | - name: Checkout
35 | uses: actions/checkout@v4
36 | - name: Setup Ruby
37 | # https://github.com/ruby/setup-ruby/releases/tag/v1.207.0
38 | uses: ruby/setup-ruby@4a9ddd6f338a97768b8006bf671dfbad383215f4
39 | with:
40 | ruby-version: '3.0' # Not needed with a .ruby-version file
41 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically
42 | cache-version: 0 # Increment this number if you need to re-download cached gems
43 | - name: Setup Pages
44 | id: pages
45 | uses: actions/configure-pages@v5
46 | - name: Build with Jekyll
47 | # Outputs to the './_site' directory by default
48 | run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
49 | env:
50 | JEKYLL_ENV: production
51 | - name: Upload artifact
52 | # Automatically uploads an artifact from the './_site' directory by default
53 | uses: actions/upload-pages-artifact@v3
54 |
55 | # Deployment job
56 | deploy:
57 | environment:
58 | name: github-pages
59 | url: ${{ steps.deployment.outputs.page_url }}
60 | runs-on: ubuntu-latest
61 | needs: build
62 | steps:
63 | - name: Deploy to GitHub Pages
64 | id: deployment
65 | uses: actions/deploy-pages@v4
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_mixins.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | MIXINS
3 | ========================================================================== */
4 |
5 | %tab-focus {
6 | /* Default*/
7 | outline: thin dotted $focus-color;
8 | /* Webkit*/
9 | outline: 5px auto $focus-color;
10 | outline-offset: -2px;
11 | }
12 |
13 | /*
14 | em function
15 | ========================================================================== */
16 |
17 | @function em($target, $context: $doc-font-size) {
18 | @return ($target / $context) * 1em;
19 | }
20 |
21 |
22 | /*
23 | Bourbon clearfix
24 | ========================================================================== */
25 |
26 | /*
27 | * Provides an easy way to include a clearfix for containing floats.
28 | * link http://cssmojo.com/latest_new_clearfix_so_far/
29 | *
30 | * example scss - Usage
31 | *
32 | * .element {
33 | * @include clearfix;
34 | * }
35 | *
36 | * example css - CSS Output
37 | *
38 | * .element::after {
39 | * clear: both;
40 | * content: "";
41 | * display: table;
42 | * }
43 | */
44 |
45 | @mixin clearfix {
46 | clear: both;
47 |
48 | &::after {
49 | clear: both;
50 | content: "";
51 | display: table;
52 | }
53 | }
54 |
55 | /*
56 | Compass YIQ Color Contrast
57 | https://github.com/easy-designs/yiq-color-contrast
58 | ========================================================================== */
59 |
60 | @function yiq-is-light(
61 | $color,
62 | $threshold: $yiq-contrasted-threshold
63 | ) {
64 | $red: red($color);
65 | $green: green($color);
66 | $blue: blue($color);
67 |
68 | $yiq: (($red*299)+($green*587)+($blue*114))/1000;
69 |
70 | @if $yiq-debug { @debug $yiq, $threshold; }
71 |
72 | @return if($yiq >= $threshold, true, false);
73 | }
74 |
75 | @function yiq-contrast-color(
76 | $color,
77 | $dark: $yiq-contrasted-dark-default,
78 | $light: $yiq-contrasted-light-default,
79 | $threshold: $yiq-contrasted-threshold
80 | ) {
81 | @return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default);
82 | }
83 |
84 | @mixin yiq-contrasted(
85 | $background-color,
86 | $dark: $yiq-contrasted-dark-default,
87 | $light: $yiq-contrasted-light-default,
88 | $threshold: $yiq-contrasted-threshold
89 | ) {
90 | background-color: $background-color;
91 | color: yiq-contrast-color($background-color, $dark, $light, $threshold);
92 | }
--------------------------------------------------------------------------------
/_pages/projects.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: single
3 | permalink: /projects/
4 | hidden: true
5 | ---
6 |
7 |
8 |
9 |

10 |
11 |
AutoPWN-Suite
12 |
A comprehensive offensive automation framework that streamlines post-exploitation and red-team workflows.
13 |
17 |
18 |
19 |
20 |
21 |

22 |
23 |
BadUSB Attacks (PoCs)
24 |
Collection of BadUSB proof-of-concepts showcasing peripheral-based attack vectors — built for research and awareness.
25 |
29 |
30 |
31 |
32 |
33 |

34 |
35 |
PowerShell Projects
36 |
A set of PowerShell utilities and a public research-oriented fileless PoC focused on automation and defense testing.
37 |
41 |
42 |
43 |
44 |
45 |

46 |
47 |
CompanyEnum
48 |
An OSINT tool for gathering and visualizing public company data through an interactive Web UI.
49 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_buttons.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | BUTTONS
3 | ========================================================================== */
4 |
5 | /*
6 | Default button
7 | ========================================================================== */
8 |
9 | .btn {
10 | /* default */
11 | display: inline-block;
12 | margin-bottom: 0.25em;
13 | padding: 0.5em 1em;
14 | font-family: $sans-serif;
15 | font-size: $type-size-6;
16 | font-weight: bold;
17 | text-align: center;
18 | text-decoration: none;
19 | border-width: 0;
20 | border-radius: $border-radius;
21 | cursor: pointer;
22 |
23 | .icon {
24 | margin-inline-end: 0.5em;
25 | }
26 |
27 | .icon + .hidden {
28 | margin-inline-start: -0.5em; /* override for hidden text*/
29 | }
30 |
31 | /* button colors */
32 | $buttoncolors:
33 | (primary, $primary-color),
34 | (inverse, #fff),
35 | (light-outline, transparent),
36 | (success, $success-color),
37 | (warning, $warning-color),
38 | (danger, $danger-color),
39 | (info, $info-color),
40 | /* brands */
41 | (bluesky, $bluesky-color),
42 | (facebook, $facebook-color),
43 | (linkedin, $linkedin-color),
44 | (mastodon, $mastodon-color),
45 | (twitter, $twitter-color),
46 | (x, $x-color);
47 |
48 | @each $buttoncolor, $color in $buttoncolors {
49 | &--#{$buttoncolor} {
50 | @include yiq-contrasted($color);
51 | @if ($buttoncolor == inverse) {
52 | border: 1px solid $border-color;
53 | }
54 | @if ($buttoncolor == light-outline) {
55 | border: 1px solid #fff;
56 | }
57 |
58 | &:visited {
59 | @include yiq-contrasted($color);
60 | }
61 |
62 | &:hover {
63 | @include yiq-contrasted(mix(#000, $color, 20%));
64 | }
65 | }
66 | }
67 |
68 | /* fills width of parent container */
69 | &--block {
70 | display: block;
71 | width: 100%;
72 |
73 | + .btn--block {
74 | margin-top: 0.25em;
75 | }
76 | }
77 |
78 | /* disabled */
79 | &--disabled {
80 | pointer-events: none;
81 | cursor: not-allowed;
82 | filter: alpha(opacity=65);
83 | box-shadow: none;
84 | opacity: 0.65;
85 | }
86 |
87 | /* extra large button */
88 | &--x-large {
89 | font-size: $type-size-4;
90 | }
91 |
92 | /* large button */
93 | &--large {
94 | font-size: $type-size-5;
95 | }
96 |
97 | /* small button */
98 | &--small {
99 | font-size: $type-size-7;
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/assets/js/lunr/lunr-en.js:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 |
5 | var idx = lunr(function () {
6 | this.field('title')
7 | this.field('excerpt')
8 | this.field('categories')
9 | this.field('tags')
10 | this.ref('id')
11 |
12 | this.pipeline.remove(lunr.trimmer)
13 |
14 | for (var item in store) {
15 | this.add({
16 | title: store[item].title,
17 | excerpt: store[item].excerpt,
18 | categories: store[item].categories,
19 | tags: store[item].tags,
20 | id: item
21 | })
22 | }
23 | });
24 |
25 | $(document).ready(function() {
26 | $('input#search').on('keyup', function () {
27 | var resultdiv = $('#results');
28 | var query = $(this).val().toLowerCase();
29 | var result =
30 | idx.query(function (q) {
31 | query.split(lunr.tokenizer.separator).forEach(function (term) {
32 | q.term(term, { boost: 100 })
33 | if(query.lastIndexOf(" ") != query.length-1){
34 | q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 })
35 | }
36 | if (term != ""){
37 | q.term(term, { usePipeline: false, editDistance: 1, boost: 1 })
38 | }
39 | })
40 | });
41 | resultdiv.empty();
42 | resultdiv.prepend(''+result.length+' {{ site.data.ui-text[site.locale].results_found | default: "Result(s) found" }}
');
43 | for (var item in result) {
44 | var ref = result[item].ref;
45 | if(store[ref].teaser){
46 | var searchitem =
47 | ''+
48 | '
'+
49 | ''+
52 | ''+
53 | '

'+
54 | '
'+
55 | ''+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...
'+
56 | ''+
57 | '
';
58 | }
59 | else{
60 | var searchitem =
61 | ''+
62 | '
'+
63 | ''+
66 | ''+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...
'+
67 | ''+
68 | '
';
69 | }
70 | resultdiv.append(searchitem);
71 | }
72 | });
73 | });
74 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_notices.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | NOTICE TEXT BLOCKS
3 | ========================================================================== */
4 |
5 | /**
6 | * Default Kramdown usage (no indents!):
7 | *
8 | * #### Headline for the Notice
9 | * Text for the notice
10 | *
11 | */
12 |
13 | @mixin notice($notice-color) {
14 | margin: 2em 0 !important; /* override*/
15 | padding: 1em;
16 | color: $text-color;
17 | font-family: $global-font-family;
18 | font-size: $type-size-6 !important;
19 | text-indent: initial; /* override*/
20 | background-color: mix($background-color, $notice-color, $notice-background-mix);
21 | border-radius: $border-radius;
22 | box-shadow: 0 1px 1px rgba($notice-color, 0.25);
23 |
24 | h4 {
25 | margin-top: 0 !important; /* override*/
26 | margin-bottom: 0.75em;
27 | line-height: inherit;
28 | }
29 |
30 | @at-root .page__content #{&} h4 {
31 | /* using at-root to override .page-content h4 font size*/
32 | margin-bottom: 0;
33 | font-size: 1em;
34 | }
35 |
36 | p {
37 | &:last-child {
38 | margin-bottom: 0 !important; /* override*/
39 | }
40 | }
41 |
42 | h4 + p {
43 | /* remove space above paragraphs that appear directly after notice headline*/
44 | margin-top: 0;
45 | padding-top: 0;
46 | }
47 |
48 | a {
49 | color: mix(#000, $notice-color, 10%);
50 |
51 | &:hover {
52 | color: mix(#000, $notice-color, 50%);
53 | }
54 | }
55 |
56 | @at-root #{selector-unify(&, "blockquote")} {
57 | border-inline-start-color: mix(#000, $notice-color, 10%);
58 | }
59 |
60 | code {
61 | background-color: mix($background-color, $notice-color, $code-notice-background-mix)
62 | }
63 |
64 | pre code {
65 | background-color: inherit;
66 | }
67 |
68 | ul {
69 | &:last-child {
70 | margin-bottom: 0; /* override*/
71 | }
72 | }
73 | }
74 |
75 | /* Default notice */
76 |
77 | .notice,
78 | .markdown-alert {
79 | @include notice($light-gray);
80 | }
81 |
82 | /* Primary notice */
83 |
84 | .notice--primary,
85 | .markdown-alert-important {
86 | @include notice($primary-color);
87 | }
88 |
89 | /* Info notice */
90 |
91 | .notice--info,
92 | .markdown-alert-note {
93 | @include notice($info-color);
94 | }
95 |
96 | /* Warning notice */
97 |
98 | .notice--warning,
99 | .markdown-alert-warning {
100 | @include notice($warning-color);
101 | }
102 |
103 | /* Success notice */
104 |
105 | .notice--success,
106 | .markdown-alert-tip {
107 | @include notice($success-color);
108 | }
109 |
110 | /* Danger notice */
111 |
112 | .notice--danger,
113 | .markdown-alert-caution {
114 | @include notice($danger-color);
115 | }
116 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/_search.scss:
--------------------------------------------------------------------------------
1 | /* ==========================================================================
2 | SEARCH
3 | ========================================================================== */
4 |
5 | .layout--search {
6 | .archive__item-teaser {
7 | margin-bottom: 0.25em;
8 | }
9 | }
10 |
11 | .search__toggle {
12 | margin-inline: 1rem;
13 | height: $nav-toggle-height;
14 | border: 0;
15 | outline: none;
16 | color: $primary-color;
17 | background-color: transparent;
18 | cursor: pointer;
19 | -webkit-transition: 0.2s;
20 | transition: 0.2s;
21 |
22 | &:hover {
23 | color: mix(#000, $primary-color, 25%);
24 | }
25 | }
26 |
27 | .search-icon {
28 | width: 100%;
29 | height: 100%;
30 | }
31 |
32 | .search-content {
33 | display: none;
34 | visibility: hidden;
35 | padding-top: 1em;
36 | padding-bottom: 1em;
37 |
38 | &__inner-wrap {
39 | width: 100%;
40 | margin-inline: auto;
41 | padding-inline: 1em;
42 | -webkit-animation: $intro-transition;
43 | animation: $intro-transition;
44 | -webkit-animation-delay: 0.15s;
45 | animation-delay: 0.15s;
46 |
47 | @include breakpoint($x-large) {
48 | max-width: $max-width;
49 | }
50 |
51 | }
52 |
53 | &__form {
54 | background-color: transparent;
55 | }
56 |
57 | .search-input {
58 | display: block;
59 | margin-bottom: 0;
60 | padding: 0;
61 | border: none;
62 | outline: none;
63 | box-shadow: none;
64 | background-color: transparent;
65 | font-size: $type-size-3;
66 |
67 | @include breakpoint($large) {
68 | font-size: $type-size-2;
69 | }
70 |
71 | @include breakpoint($x-large) {
72 | font-size: $type-size-1;
73 | }
74 | }
75 |
76 | &.is--visible {
77 | display: block;
78 | visibility: visible;
79 |
80 | &::after {
81 | content: "";
82 | display: block;
83 | }
84 | }
85 |
86 | .results__found {
87 | margin-top: 0.5em;
88 | font-size: $type-size-6;
89 | }
90 |
91 | .archive__item {
92 | margin-bottom: 2em;
93 |
94 | @include breakpoint($large) {
95 | width: 75%;
96 | }
97 |
98 | @include breakpoint($x-large) {
99 | width: 50%;
100 | }
101 | }
102 |
103 | .archive__item-title {
104 | margin-top: 0;
105 | }
106 |
107 | .archive__item-excerpt {
108 | margin-bottom: 0;
109 | }
110 | }
111 |
112 | /* Algolia search */
113 |
114 | .ais-search-box {
115 | max-width: 100% !important;
116 | margin-bottom: 2em;
117 | }
118 |
119 | .archive__item-title .ais-Highlight {
120 | color: $primary-color;
121 | font-style: normal;
122 | text-decoration: underline;
123 | }
124 |
125 | .archive__item-excerpt .ais-Highlight {
126 | color: $primary-color;
127 | font-style: normal;
128 | font-weight: bold;
129 | }
130 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss:
--------------------------------------------------------------------------------
1 | @mixin legacy-settings-warning {
2 | $legacyVars: (
3 | 'default-media': 'default media',
4 | 'default-feature': 'default feature',
5 | 'force-media-all': 'force all media type',
6 | 'to-ems': 'to ems',
7 | 'resolutions': 'transform resolutions',
8 | 'no-queries': 'no queries',
9 | 'no-query-fallbacks': 'no query fallbacks',
10 | 'base-font-size': 'base font size',
11 | 'legacy-syntax': 'legacy syntax'
12 | );
13 |
14 | @each $legacy, $new in $legacyVars {
15 | @if global-variable-exists('breakpoint-' + $legacy) {
16 | @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
17 | }
18 | };
19 |
20 | //////////////////////////////
21 | // Hand correct each setting
22 | //////////////////////////////
23 | @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
24 | @include breakpoint-set('default media', $breakpoint-default-media);
25 | }
26 | @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
27 | @include breakpoint-set('default feature', $breakpoint-default-feature);
28 | }
29 | @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
30 | @include breakpoint-set('force all media type', $breakpoint-force-media-all);
31 | }
32 | @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
33 | @include breakpoint-set('to ems', $breakpoint-to-ems);
34 | }
35 | @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
36 | @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
37 | }
38 | @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
39 | @include breakpoint-set('no queries', $breakpoint-no-queries);
40 | }
41 | @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
42 | @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
43 | }
44 | @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
45 | @include breakpoint-set('base font size', $breakpoint-base-font-size);
46 | }
47 | @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
48 | @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
49 | }
50 | }
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss:
--------------------------------------------------------------------------------
1 | ////////////////////////
2 | // Settings //
3 | ////////////////////////
4 |
5 | // overlay
6 | $mfp-overlay-color: #000; // Color of overlay screen
7 | $mfp-overlay-opacity: 0.8; // Opacity of overlay screen
8 | $mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe
9 |
10 | // spacing
11 | $mfp-popup-padding-left: 8px; // Padding from left and from right side
12 | $mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px
13 |
14 | $mfp-z-index-base: 1040; // Base z-index of popup
15 |
16 | // controls
17 | $mfp-include-arrows: true; // Include styles for nav arrows
18 | $mfp-controls-opacity: 1; // Opacity of controls
19 | $mfp-controls-color: #fff; // Color of controls
20 | $mfp-controls-border-color: #fff; // Border color of controls
21 | $mfp-inner-close-icon-color: #fff; // Color of close button when inside
22 | $mfp-controls-text-color: #ccc; // Color of preloader and "1 of X" indicator
23 | $mfp-controls-text-color-hover: #fff; // Hover color of preloader and "1 of X" indicator
24 | $mfp-IE7support: true; // Very basic IE7 support
25 |
26 | // Iframe-type options
27 | $mfp-include-iframe-type: true; // Enable Iframe-type popups
28 | $mfp-iframe-padding-top: 40px; // Iframe padding top
29 | $mfp-iframe-background: #000; // Background color of iframes
30 | $mfp-iframe-max-width: 900px; // Maximum width of iframes
31 | $mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
32 |
33 | // Image-type options
34 | $mfp-include-image-type: true; // Enable Image-type popups
35 | $mfp-image-background: #444 !default;
36 | $mfp-image-padding-top: 40px; // Image padding top
37 | $mfp-image-padding-bottom: 40px; // Image padding bottom
38 | $mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom
39 |
40 | // Image caption options
41 | $mfp-caption-title-color: #f3f3f3; // Caption title color
42 | $mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color
43 | .mfp-counter { font-family: $serif; } // Caption font family
44 |
45 | // A11y
46 | $mfp-use-visuallyhidden: false;
--------------------------------------------------------------------------------
/_includes/page__hero.html:
--------------------------------------------------------------------------------
1 | {% capture overlay_img_path %}{{ page.header.overlay_image | relative_url }}{% endcapture %}
2 |
3 | {% if page.header.overlay_filter contains "gradient" %}
4 | {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
5 | {% elsif page.header.overlay_filter contains "rgba" %}
6 | {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
7 | {% capture overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}){% endcapture %}
8 | {% elsif page.header.overlay_filter %}
9 | {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
10 | {% capture overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}){% endcapture %}
11 | {% endif %}
12 |
13 | {% if page.header.image_description %}
14 | {% assign image_description = page.header.image_description %}
15 | {% else %}
16 | {% assign image_description = page.title %}
17 | {% endif %}
18 |
19 | {% assign image_description = image_description | markdownify | strip_html | strip_newlines | escape_once %}
20 |
21 |
54 |
--------------------------------------------------------------------------------
/_includes/search/algolia-search-scripts.html:
--------------------------------------------------------------------------------
1 |
83 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Default Variables
3 | //////////////////////////////
4 | $Breakpoint-Settings: (
5 | 'default media': all,
6 | 'default feature': min-width,
7 | 'default pair': width,
8 |
9 | 'force all media type': false,
10 | 'to ems': false,
11 | 'transform resolutions': true,
12 |
13 | 'no queries': false,
14 | 'no query fallbacks': false,
15 |
16 | 'base font size': 16px,
17 |
18 | 'legacy syntax': false
19 | );
20 |
21 | $breakpoint: () !default;
22 |
23 | //////////////////////////////
24 | // Imports
25 | //////////////////////////////
26 | @import "settings";
27 | @import "context";
28 | @import "helpers";
29 | @import "parsers";
30 | @import "no-query";
31 |
32 | @import "respond-to";
33 |
34 | @import "legacy-settings";
35 |
36 | //////////////////////////////
37 | // Breakpoint Mixin
38 | //////////////////////////////
39 |
40 | @mixin breakpoint($query, $no-query: false) {
41 | @include legacy-settings-warning;
42 |
43 | // Reset contexts
44 | @include private-breakpoint-reset-contexts();
45 |
46 | $breakpoint: breakpoint($query, false);
47 |
48 | $query-string: map-get($breakpoint, 'query');
49 | $query-fallback: map-get($breakpoint, 'fallback');
50 |
51 | $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;
52 | $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;
53 |
54 | // Allow for an as-needed override or usage of no query fallback.
55 | @if $no-query != false {
56 | $query-fallback: $no-query;
57 | }
58 |
59 | @if $query-fallback != false {
60 | $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
61 | }
62 |
63 | // Print Out Query String
64 | @if not breakpoint-get('no queries') {
65 | @media #{$query-string} {
66 | @content;
67 | }
68 | }
69 |
70 | @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {
71 |
72 | $type: type-of(breakpoint-get('no query fallbacks'));
73 | $print: false;
74 |
75 | @if ($type == 'bool') {
76 | $print: true;
77 | }
78 | @else if ($type == 'string') {
79 | @if $query-fallback == breakpoint-get('no query fallbacks') {
80 | $print: true;
81 | }
82 | }
83 | @else if ($type == 'list') {
84 | @each $wrapper in breakpoint-get('no query fallbacks') {
85 | @if $query-fallback == $wrapper {
86 | $print: true;
87 | }
88 | }
89 | }
90 |
91 | // Write Fallback
92 | @if ($query-fallback != false) and ($print == true) {
93 | $type-fallback: type-of($query-fallback);
94 |
95 | @if ($type-fallback != 'bool') {
96 | #{$query-fallback} & {
97 | @content;
98 | }
99 | }
100 | @else {
101 | @content;
102 | }
103 | }
104 | }
105 |
106 | @include private-breakpoint-reset-contexts();
107 | }
108 |
109 |
110 | @mixin mq($query, $no-query: false) {
111 | @include breakpoint($query, $no-query) {
112 | @content;
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss:
--------------------------------------------------------------------------------
1 | ////////////////////////
2 | // Default the Breakpoints variable
3 | ////////////////////////
4 | $breakpoints: () !default;
5 | $BREAKPOINTS: () !default;
6 |
7 | ////////////////////////
8 | // Respond-to API Mixin
9 | ////////////////////////
10 | @mixin respond-to($context, $no-query: false) {
11 | @if length($breakpoints) > 0 and length($BREAKPOINTS) == 0 {
12 | @warn "In order to avoid variable namespace collisions, we have updated the way to add breakpoints for respond-to. Please change all instances of `$breakpoints: add-breakpoint()` to `@include add-breakpoint()`. The `add-breakpoint()` function will be deprecated in a future release.";
13 | $BREAKPOINTS: $breakpoints !global;
14 | $breakpoints: () !global;
15 | }
16 |
17 | @if type-of($BREAKPOINTS) != 'map' {
18 | // Just in case someone writes gibberish to the $breakpoints variable.
19 | @warn "Your breakpoints aren't a map! `respond-to` expects a map. Please check the value of $BREAKPOINTS variable.";
20 | @content;
21 | }
22 | @else if map-has-key($BREAKPOINTS, $context) {
23 | @include breakpoint(map-get($BREAKPOINTS, $context), $no-query) {
24 | @content;
25 | }
26 | }
27 | @else if not map-has-key($BREAKPOINTS, $context) {
28 | @warn "`#{$context}` isn't a defined breakpoint! Please add it using `$breakpoints: add-breakpoint(`#{$context}`, $value);`";
29 | @content;
30 | }
31 | @else {
32 | @warn "You haven't created any breakpoints yet! Make some already! `@include add-breakpoint($name, $bkpt)`";
33 | @content;
34 | }
35 | }
36 |
37 | //////////////////////////////
38 | // Add Breakpoint to Breakpoints
39 | // TODO: Remove function in next release
40 | //////////////////////////////
41 | @function add-breakpoint($name, $bkpt, $overwrite: false) {
42 | $output: ($name: $bkpt);
43 |
44 | @if length($breakpoints) == 0 {
45 | @return $output;
46 | }
47 | @else {
48 | @if map-has-key($breakpoints, $name) and $overwrite != true {
49 | @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
50 | @return $breakpoints;
51 | }
52 | @else if not map-has-key($breakpoints, $name) or $overwrite == true {
53 | @return map-merge($breakpoints, $output);
54 | }
55 | }
56 | }
57 |
58 | @mixin add-breakpoint($name, $bkpt, $overwrite: false) {
59 | $output: ($name: $bkpt);
60 |
61 | @if length($BREAKPOINTS) == 0 {
62 | $BREAKPOINTS: $output !global;
63 | }
64 | @else {
65 | @if map-has-key($BREAKPOINTS, $name) and $overwrite != true {
66 | @warn "You already have a breakpoint named `#{$name}`, please choose another breakpoint name, or pass in `$overwrite: true` to overwrite the previous breakpoint.";
67 | $BREAKPOINTS: $BREAKPOINTS !global;
68 | }
69 | @else if not map-has-key($BREAKPOINTS, $name) or $overwrite == true {
70 | $BREAKPOINTS: map-merge($BREAKPOINTS, $output) !global;
71 | }
72 | }
73 | }
74 |
75 | @function get-breakpoint($name: false) {
76 | @if $name == false {
77 | @return $BREAKPOINTS;
78 | }
79 | @else {
80 | @return map-get($BREAKPOINTS, $name);
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/assets/js/lunr/lunr-store.js:
--------------------------------------------------------------------------------
1 | ---
2 | layout: none
3 | ---
4 |
5 | var store = [
6 | {%- for c in site.collections -%}
7 | {%- if forloop.last -%}
8 | {%- assign l = true -%}
9 | {%- endif -%}
10 | {%- assign docs = c.docs | where_exp:'doc','doc.search != false' -%}
11 | {%- for doc in docs -%}
12 | {%- if doc.header.teaser -%}
13 | {%- capture teaser -%}{{ doc.header.teaser }}{%- endcapture -%}
14 | {%- else -%}
15 | {%- assign teaser = site.teaser -%}
16 | {%- endif -%}
17 | {
18 | "title": {{ doc.title | jsonify }},
19 | "excerpt":
20 | {%- if site.search_full_content == true -%}
21 | {{ doc.content | newline_to_br |
22 | replace:"
", " " |
23 | replace:"", " " |
24 | replace:"", " " |
25 | replace:"", " " |
26 | replace:"", " " |
27 | replace:"", " " |
28 | replace:"", " " |
29 | replace:"", " "|
30 | strip_html | strip_newlines | jsonify }},
31 | {%- else -%}
32 | {{ doc.content | newline_to_br |
33 | replace:"
", " " |
34 | replace:"", " " |
35 | replace:"", " " |
36 | replace:"", " " |
37 | replace:"", " " |
38 | replace:"", " " |
39 | replace:"", " " |
40 | replace:"", " "|
41 | strip_html | strip_newlines | truncatewords: 50 | jsonify }},
42 | {%- endif -%}
43 | "categories": {{ doc.categories | jsonify }},
44 | "tags": {{ doc.tags | jsonify }},
45 | "url": {{ doc.url | relative_url | jsonify }},
46 | "teaser": {{ teaser | relative_url | jsonify }}
47 | }{%- unless forloop.last and l -%},{%- endunless -%}
48 | {%- endfor -%}
49 | {%- endfor -%}{%- if site.lunr.search_within_pages -%},
50 | {%- assign pages = site.pages | where_exp: 'doc', 'doc.search != false' | where_exp: 'doc', 'doc.title != null' -%}
51 | {%- for doc in pages -%}
52 | {%- if forloop.last -%}
53 | {%- assign l = true -%}
54 | {%- endif -%}
55 | {
56 | "title": {{ doc.title | jsonify }},
57 | "excerpt":
58 | {%- if site.search_full_content == true -%}
59 | {{ doc.content | newline_to_br |
60 | replace:"
", " " |
61 | replace:"", " " |
62 | replace:"", " " |
63 | replace:"", " " |
64 | replace:"", " " |
65 | replace:"", " " |
66 | replace:"", " " |
67 | replace:"", " "|
68 | strip_html | strip_newlines | jsonify }},
69 | {%- else -%}
70 | {{ doc.content | newline_to_br |
71 | replace:"
", " " |
72 | replace:"", " " |
73 | replace:"", " " |
74 | replace:"", " " |
75 | replace:"", " " |
76 | replace:"", " " |
77 | replace:"", " " |
78 | replace:"", " "|
79 | strip_html | strip_newlines | truncatewords: 50 | jsonify }},
80 | {%- endif -%}
81 | "url": {{ doc.url | absolute_url | jsonify }}
82 | }{%- unless forloop.last and l -%},{%- endunless -%}
83 | {%- endfor -%}
84 | {%- endif -%}]
85 |
--------------------------------------------------------------------------------
/_includes/paginator-v2.html:
--------------------------------------------------------------------------------
1 |
69 |
--------------------------------------------------------------------------------
/assets/js/plugins/jquery.fitvids.js:
--------------------------------------------------------------------------------
1 | /*jshint browser:true */
2 | /*!
3 | * FitVids 1.1
4 | *
5 | * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
6 | * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
7 | * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
8 | *
9 | */
10 |
11 | ;(function( $ ){
12 |
13 | 'use strict';
14 |
15 | $.fn.fitVids = function( options ) {
16 | var settings = {
17 | customSelector: null,
18 | ignore: null
19 | };
20 |
21 | if(!document.getElementById('fit-vids-style')) {
22 | // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
23 | var head = document.head || document.getElementsByTagName('head')[0];
24 | var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
25 | var div = document.createElement("div");
26 | div.innerHTML = 'x
';
27 | head.appendChild(div.childNodes[1]);
28 | }
29 |
30 | if ( options ) {
31 | $.extend( settings, options );
32 | }
33 |
34 | return this.each(function(){
35 | var selectors = [
36 | 'iframe[src*="player.vimeo.com"]',
37 | 'iframe[src*="youtube.com"]',
38 | 'iframe[src*="youtube-nocookie.com"]',
39 | 'iframe[src*="kickstarter.com"][src*="video.html"]',
40 | 'object',
41 | 'embed'
42 | ];
43 |
44 | if (settings.customSelector) {
45 | selectors.push(settings.customSelector);
46 | }
47 |
48 | var ignoreList = '.fitvidsignore';
49 |
50 | if(settings.ignore) {
51 | ignoreList = ignoreList + ', ' + settings.ignore;
52 | }
53 |
54 | var $allVideos = $(this).find(selectors.join(','));
55 | $allVideos = $allVideos.not('object object'); // SwfObj conflict patch
56 | $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.
57 |
58 | $allVideos.each(function(count){
59 | var $this = $(this);
60 | if($this.parents(ignoreList).length > 0) {
61 | return; // Disable FitVids on this video.
62 | }
63 | if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
64 | if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))
65 | {
66 | $this.attr('height', 9);
67 | $this.attr('width', 16);
68 | }
69 | var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
70 | width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
71 | aspectRatio = height / width;
72 | if(!$this.attr('id')){
73 | var videoID = 'fitvid' + count;
74 | $this.attr('id', videoID);
75 | }
76 | $this.wrap('').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%');
77 | $this.removeAttr('height').removeAttr('width');
78 | });
79 | });
80 | };
81 | // Works with either jQuery or Zepto
82 | })( window.jQuery || window.Zepto );
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/breakpoint/_context.scss:
--------------------------------------------------------------------------------
1 | //////////////////////////////
2 | // Private Breakpoint Variables
3 | //////////////////////////////
4 | $private-breakpoint-context-holder: ();
5 | $private-breakpoint-query-count: 0 !default;
6 |
7 | //////////////////////////////
8 | // Breakpoint Has Context
9 | // Returns whether or not you are inside a Breakpoint query
10 | //////////////////////////////
11 | @function breakpoint-has-context() {
12 | @if length($private-breakpoint-query-count) {
13 | @return true;
14 | }
15 | @else {
16 | @return false;
17 | }
18 | }
19 |
20 | //////////////////////////////
21 | // Breakpoint Get Context
22 | // $feature: Input feature to get it's current MQ context. Returns false if no context
23 | //////////////////////////////
24 | @function breakpoint-get-context($feature) {
25 | @if map-has-key($private-breakpoint-context-holder, $feature) {
26 | $get: map-get($private-breakpoint-context-holder, $feature);
27 | // Special handling of no-query from get side so /false/ prepends aren't returned
28 | @if $feature == 'no-query' {
29 | @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {
30 | $get: nth($get, length($get));
31 | }
32 | }
33 | @return $get;
34 | }
35 | @else {
36 | @if breakpoint-has-context() and $feature == 'media' {
37 | @return breakpoint-get('default media');
38 | }
39 | @else {
40 | @return false;
41 | }
42 | }
43 | }
44 |
45 | //////////////////////////////
46 | // Private function to set context
47 | //////////////////////////////
48 | @function private-breakpoint-set-context($feature, $value) {
49 | @if $value == 'monochrome' {
50 | $feature: 'monochrome';
51 | }
52 |
53 | $current: map-get($private-breakpoint-context-holder, $feature);
54 | @if $current and length($current) == $private-breakpoint-query-count {
55 | @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`";
56 | }
57 |
58 | @if not map-has-key($private-breakpoint-context-holder, $feature) {
59 | $v-holder: ();
60 | @for $i from 1 to $private-breakpoint-query-count {
61 | @if $feature == 'media' {
62 | $v-holder: append($v-holder, breakpoint-get('default media'));
63 | }
64 | @else {
65 | $v-holder: append($v-holder, false);
66 | }
67 | }
68 | $v-holder: append($v-holder, $value);
69 | $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
70 | }
71 | @else {
72 | $v-holder: map-get($private-breakpoint-context-holder, $feature);
73 | $length: length($v-holder);
74 | @for $i from $length to $private-breakpoint-query-count - 1 {
75 | @if $feature == 'media' {
76 | $v-holder: append($v-holder, breakpoint-get('default media'));
77 | }
78 | @else {
79 | $v-holder: append($v-holder, false);
80 | }
81 | }
82 | $v-holder: append($v-holder, $value);
83 | $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
84 | }
85 |
86 | @return true;
87 | }
88 |
89 | //////////////////////////////
90 | // Private function to reset context
91 | //////////////////////////////
92 | @mixin private-breakpoint-reset-contexts {
93 | $private-breakpoint-context-holder: () !global;
94 | $private-breakpoint-query-count: 0 !global;
95 | }
--------------------------------------------------------------------------------
/_includes/paginator-v1.html:
--------------------------------------------------------------------------------
1 | {% if paginator.total_pages > 1 %}
2 |
70 | {% endif %}
71 |
--------------------------------------------------------------------------------
/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss:
--------------------------------------------------------------------------------
1 | /// Plugin: SVG Grid Image
2 | /// ======================
3 | /// @group plugin_svg-grid
4 | /// @see susy-svg-grid
5 |
6 |
7 |
8 | /// ## Overview
9 | /// If you want to generate svg-backgrounds
10 | /// for help visualizing and debugging your grids,
11 | /// import the SVG Grid Plugin.
12 | ///
13 | /// The plugin adds `svg-grid-colors` setting
14 | /// to your global defaults,
15 | /// which you can override in `$susy`.
16 | /// It also provides you with a new function,
17 | /// `susy-svg-grid()`,
18 | /// which will return inline svg for use in
19 | /// backgrounds or generated content.
20 | ///
21 | /// This function come with an unprefixed alias by default,
22 | /// using the `svg-grid` import.
23 | /// If you only only want prefixed versions of the API,
24 | /// import the `svg-grid/prefix` partial instead.
25 | ///
26 | /// @group plugin_svg-grid
27 | ///
28 | /// @example scss - importing the plugin
29 | /// // The full path to import Susy will depend on your setup…
30 | ///
31 | /// // unprefixed
32 | /// @import 'plugins/svg-grid';
33 | ///
34 | /// // prefixed
35 | /// @import 'plugins/svg-grid/prefix';
36 | ///
37 | /// @example scss - generating background grids
38 | /// .grid {
39 | /// background: susy-svg-grid() no-repeat scroll;
40 | /// }
41 |
42 |
43 |
44 | // SVG Grid
45 | // --------
46 | /// Return inline svg-data in to display the grid.
47 | ///
48 | /// @group plugin_svg-grid
49 | ///
50 | /// @param {Map | List} $grid [$susy] -
51 | /// Map or shorthand defining the current grid
52 | /// @param {Color | List | null} $colors [null] -
53 | /// Column color, or list of colors for column-gradient,
54 | /// used to override the global `svg-grid-colors` setting
55 | /// @param {Length | null} $offset [null] -
56 | /// Manually override the default grid-image offset,
57 | /// to account for grid edges
58 | ///
59 | /// @return {String} -
60 | /// CSS inline-data SVG string, in `url(