Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/rmaguiar/hugo-theme-color-your-world.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrmaguiar <rmaguiar@tuta.io>2020-07-18 22:50:17 +0300
committerrmaguiar <rmaguiar@tuta.io>2020-07-18 22:50:17 +0300
commit2bb302af15de5877cec0b113ddd46050bb4721cd (patch)
treef4e88caf6701f3a6ebd9e26b441aab61f3642b5d
parente48e3b4f03e5af5675099c7136633e49012169a8 (diff)
Use SVG files as inline elements and minor changes
* Change: Use SVG files as inline elements * Improve assets organization * Improve accessibility on search layout * Reduce Scratch usage by using a data file and dict function * Other minor changes
-rw-r--r--README.md10
-rw-r--r--assets/bundle.svg54
-rw-r--r--assets/img/pixel.gif (renamed from assets/pixel.gif)bin35 -> 35 bytes
-rw-r--r--assets/js/postpone.js35
-rw-r--r--assets/js/prepone.js14
-rw-r--r--assets/libs/fuse.js@6.4.0/dist/fuse.basic.min.js (renamed from assets/fuse.js@6.4.0/dist/fuse.basic.min.js)0
-rw-r--r--assets/libs/lazysizes@5.2.2/lazysizes.min.js (renamed from assets/lazysizes@5.2.2/lazysizes.min.js)0
-rw-r--r--assets/scss/exclusive/contact-form.scss5
-rw-r--r--assets/scss/main.scss8
-rw-r--r--assets/svg/facebook.svg1
-rw-r--r--assets/svg/flickr.svg1
-rw-r--r--assets/svg/funkwhale.svg3
-rw-r--r--assets/svg/github.svg1
-rw-r--r--assets/svg/gitlab.svg1
-rw-r--r--assets/svg/instagram.svg1
-rw-r--r--assets/svg/keybase.svg1
-rw-r--r--assets/svg/linkedin.svg1
-rw-r--r--assets/svg/mastodon.svg1
-rw-r--r--assets/svg/matrix-org.svg3
-rw-r--r--assets/svg/medium.svg1
-rw-r--r--assets/svg/peertube.svg3
-rw-r--r--assets/svg/pixelfed.svg3
-rw-r--r--assets/svg/reddit.svg1
-rw-r--r--assets/svg/riot.svg3
-rw-r--r--assets/svg/soundcloud.svg1
-rw-r--r--assets/svg/stack-overflow.svg1
-rw-r--r--assets/svg/strava.svg1
-rw-r--r--assets/svg/telegram.svg1
-rw-r--r--assets/svg/twitch.svg1
-rw-r--r--assets/svg/twitter.svg1
-rw-r--r--assets/svg/vimeo.svg1
-rw-r--r--assets/svg/whatsapp.svg1
-rw-r--r--assets/svg/youtube.svg1
-rw-r--r--data/default.toml21
-rw-r--r--data/social.json50
-rw-r--r--exampleSite/config.toml13
-rw-r--r--exampleSite/resources/_gen/assets/scss/scss/exclusive/contact-form.scss_1b2bf5373d097200b186ddaf7c11814c.content2
-rw-r--r--exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.content2
-rw-r--r--exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.json2
-rw-r--r--exampleSite/resources/_gen/images/pixel_hu056d3b950fd68420b71ffba971f06775_35_960x1027_resize_box.pngbin0 -> 222 bytes
-rw-r--r--exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_1280x0_resize_box_2.pngbin0 -> 135176 bytes
-rw-r--r--exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_640x0_resize_q90_box_2.pngbin0 -> 113840 bytes
-rw-r--r--exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_960x0_resize_box_2.pngbin0 -> 125425 bytes
-rw-r--r--i18n/en.toml5
-rw-r--r--i18n/pt.toml5
-rw-r--r--layouts/404.html4
-rw-r--r--layouts/_default/_markup/render-heading.html4
-rw-r--r--layouts/_default/_markup/render-image.html20
-rw-r--r--layouts/_default/baseof.html55
-rw-r--r--layouts/_default/config.toml5
-rw-r--r--layouts/_default/list.html12
-rw-r--r--layouts/_default/search.html1
-rw-r--r--layouts/_default/single.html64
-rw-r--r--layouts/index.html3
-rw-r--r--layouts/partials/.katex.html.kate-swpbin0 -> 61 bytes
-rw-r--r--layouts/partials/cover.html25
-rw-r--r--layouts/partials/footer.html9
-rw-r--r--layouts/partials/head.html29
-rw-r--r--layouts/partials/header.html4
-rw-r--r--layouts/partials/pagination.html10
-rw-r--r--layouts/partials/processed-content.html52
-rw-r--r--layouts/partials/search-form.html7
-rw-r--r--layouts/shortcodes/figure.html23
-rw-r--r--layouts/shortcodes/img.html23
-rw-r--r--layouts/shortcodes/social.html6
65 files changed, 316 insertions, 300 deletions
diff --git a/README.md b/README.md
index 88515d5..472be03 100644
--- a/README.md
+++ b/README.md
@@ -239,10 +239,10 @@ A **really** basic 404 page can be generated via config file by using:
### Custom partials
-* The site title can be replaced by creating a file named `layouts/partials/custom/header.html`;
+* The site title can be replaced by creating a file named `layouts/partials/custom/site-title.html`;
* Custom favicons can be used by creating a file named `layouts/partials/custom/head.html`;
* Custom CSS can be imported into the main CSS file by creating a file named `static/css/custom.css` or `assets/scss/custom.scss`;
-* The `copyright` param can be replaced by creating a file named `layouts/partials/custom/footer.html`.
+* The `copyright` param can be replaced by creating a file named `layouts/partials/custom/copyright.html`.
### More config
@@ -259,7 +259,7 @@ More possible params for your config file:
authorDesc = "Some indescribable horror."
# Site cover, for Open Graph, Twitter Cards and Schema.org
- # It will be used if the current page doesn't have a image cover
+ # It will be used if the current page doesn't have an image cover
# File will be picked from the "assets" directory
# Comment the lines if you don't want to use it
cover = "img/cover.jpg"
@@ -299,6 +299,10 @@ More possible params for your config file:
# The default value is 30
maxResults = 15
+ # Limit seach field input and pattern matching
+ minLength = 2 # Default is 3
+ maxLength = 42 # Default is 32
+
# Optional placeholder for search field
placeholder = "ie.: lorem ipsum"
diff --git a/assets/bundle.svg b/assets/bundle.svg
deleted file mode 100644
index d299238..0000000
--- a/assets/bundle.svg
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--
- From FontAwesome 5:
- adjust, angle-right, angle-double-right, caret-down, hashtag and search.
--->
-
-<!-- Reduce repetition... -->
-{{ $centralizedOnPage := $.Page.Params.Social.Centralized }}
-{{ $centralizedOnSite := $.Site.Params.Social.Centralized }}
-{{ $decentralizedOnPage := $.Page.Params.Social.Decentralized }}
-{{ $decentralizedOnSite := $.Site.Params.Social.Decentralized }}
-
-<svg xmlns="http://www.w3.org/2000/svg">
-
- <symbol viewBox="0 0 256 512" id="angle-right">
- <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/>
- </symbol>
-
- <symbol viewBox="0 0 448 512" id="angle-double-right">
- <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"/>
- </symbol>
-
-
- <symbol viewBox="0 0 448 512" id="hashtag">
- <path d="M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"/>
- </symbol>
-
-
- <symbol viewBox="0 0 512 512" id="adjust">
- <path d="M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"/>
- </symbol>
-
-
- <symbol viewBox="0 0 512 512" id="search">
- <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/>
- </symbol>
-
-
- {{ if .Site.Params.Style.hasIconAsFootnoteReturnLink }}
- <symbol viewBox="0 0 320 512" id="caret-down">
- <path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"/>
- </symbol>
- {{ end }}
-
-
- <!-- Get icon data from "social.json" -->
- {{ range .Site.Data.social }}
- {{ if and (or (index (or $centralizedOnPage $centralizedOnSite) .entry) (index (or $decentralizedOnPage $decentralizedOnSite) .entry)) .icon }}
- <symbol viewBox="{{ .icon.viewBox }}" id="{{ .icon.id }}">
- <path d="{{ .icon.path }}"/>
- </symbol>
- {{ end }}
- {{ end }}
-
-</svg> \ No newline at end of file
diff --git a/assets/pixel.gif b/assets/img/pixel.gif
index 4097a90..4097a90 100644
--- a/assets/pixel.gif
+++ b/assets/img/pixel.gif
Binary files differ
diff --git a/assets/js/postpone.js b/assets/js/postpone.js
index dd461e6..e70df58 100644
--- a/assets/js/postpone.js
+++ b/assets/js/postpone.js
@@ -1,8 +1,8 @@
'use strict';
-/******************************
-/ Accent color palette
-******************************/
+// =================================================
+// Accent color palette
+// =================================================
const PALETTE = document.querySelector('footer input');
@@ -21,23 +21,22 @@ PALETTE.onchange = function () {
updateAccent()
};
-/******************************
-/ Basic search via Fuse.js
-******************************/
-
-{{ $fuseJS := resources.Get "/fuse.js@6.4.0/dist/fuse.basic.min.js" }}
+// =================================================
+// Basic search functionality via Fuse.js
+// Based on: https://gist.github.com/eddiewebb/735feb48f50f0ddd65ae5606a1cb41ae#gistcomment-2987774
+// =================================================
{{ if eq .Layout "search" }}
// Get Fuse.js
- {{ $fuseJS.Content | safeJS }}
-
+ {{ (resources.Get "libs/fuse.js@6.4.0/dist/fuse.basic.min.js").Content | safeJS }}
+
const fuseOptions = {
shouldSort: true,
threshold: 0,
- distance: -1,
- maxPatternLength: 32,
- minMatchCharLength: 3,
+ ignoreLocation: true,
+ maxPatternLength: {{ .Site.Params.Search.maxLength | default .Site.Data.default.search.maxLength }},
+ minMatchCharLength: {{ .Site.Params.Search.minLength | default .Site.Data.default.search.minLength }},
keys: [
{ name: 'title', weight: .4 },
{ name: 'tags', weight: .3 },
@@ -82,7 +81,6 @@ PALETTE.onchange = function () {
};
function executeSearch(searchQuery) {
-
getJSON('index.json', function (data) {
// Limit results and throw an error if too many pages are found
@@ -100,25 +98,18 @@ PALETTE.onchange = function () {
if (result.length > 0) {
if (result.length == 1) {
info.innerHTML += '<p>{{ T "search_one_page_found" }}.</p>'
-
} else if (1 < result.length && result.length < limit + 1) {
-
info.innerHTML += '<p>' + result.length + ' {{ T "search_pages_found" }}.</p>'
-
} else {
-
info.innerHTML += '<p class=error>{{ T "search_too_many" }}</p>'
}
-
} else {
-
info.innerHTML += '<p class=error>{{ T "search_no_page_found" }}</p>'
};
if (0 < result.length && result.length < limit + 1) {
populateResults(result)
}
-
})
};
@@ -170,7 +161,7 @@ PALETTE.onchange = function () {
return templateString
};
-
+
function htmlToElement(html) {
const template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result
diff --git a/assets/js/prepone.js b/assets/js/prepone.js
index ac3e408..df24bcf 100644
--- a/assets/js/prepone.js
+++ b/assets/js/prepone.js
@@ -1,16 +1,16 @@
'use strict';
// Get default accent colors
-{{ $darkAccent := .Scratch.Get "darkAccent" }}
-{{ $lightAccent := .Scratch.Get "lightAccent" }}
+{{ $darkAccent := .Site.Params.Style.darkAccent | default .Site.Data.default.style.darkAccent }}
+{{ $lightAccent := .Site.Params.Style.lightAccent | default .Site.Data.default.style.lightAccent }}
// Get CSS transition
-{{ $changeTransition := .Scratch.Get "changeTransition" }}
+{{ $changeTransition := .Site.Params.Style.changeTransition | default .Site.Data.default.style.changeTransition }}
-/******************************
-/ Mode switcher + Custom accent color
-/ Based on: https://gist.github.com/regpaq/04c67e8aceecbf0fd819945835412d1f
-******************************/
+// =================================================
+// Mode switcher + Custom accent color
+// Based on: https://gist.github.com/regpaq/04c67e8aceecbf0fd819945835412d1f
+// =================================================
// New prefers-color-scheme media query to detect OS light/dark mode setting
const PREFERS_LIGHT = window.matchMedia('(prefers-color-scheme: light)');
diff --git a/assets/fuse.js@6.4.0/dist/fuse.basic.min.js b/assets/libs/fuse.js@6.4.0/dist/fuse.basic.min.js
index c8ee330..c8ee330 100644
--- a/assets/fuse.js@6.4.0/dist/fuse.basic.min.js
+++ b/assets/libs/fuse.js@6.4.0/dist/fuse.basic.min.js
diff --git a/assets/lazysizes@5.2.2/lazysizes.min.js b/assets/libs/lazysizes@5.2.2/lazysizes.min.js
index ca34f12..ca34f12 100644
--- a/assets/lazysizes@5.2.2/lazysizes.min.js
+++ b/assets/libs/lazysizes@5.2.2/lazysizes.min.js
diff --git a/assets/scss/exclusive/contact-form.scss b/assets/scss/exclusive/contact-form.scss
index d19e654..65e3d07 100644
--- a/assets/scss/exclusive/contact-form.scss
+++ b/assets/scss/exclusive/contact-form.scss
@@ -3,6 +3,10 @@
'../fonts/variables';
+// Get transition for color changes
+$change-transition: {{ .Site.Params.Style.changeTransition | default .Site.Data.default.style.changeTransition }};
+
+
#contact {
@@ -83,6 +87,7 @@
outline-offset: 2px;
transition:
+ background-color $change-transition,
border .2s ease-in-out,
outline .2s ease-in-out,
opacity .2s ease-in-out;
diff --git a/assets/scss/main.scss b/assets/scss/main.scss
index 225298b..a9f07a8 100644
--- a/assets/scss/main.scss
+++ b/assets/scss/main.scss
@@ -7,7 +7,7 @@
// Get transition for color changes
-$change-transition: {{ .Scratch.Get "changeTransition" }};
+$change-transition: {{ .Site.Params.Style.changeTransition | default .Site.Data.default.style.changeTransition }};
@@ -1267,12 +1267,6 @@ section.search-box {
#search-info {
margin: 1rem 0 2rem;
- p:first-of-type {
- font-family: $heading-font;
- font-size: 1.5rem;
- font-weight: $heading-weight;
- }
-
+ ul {
margin: 0 0 6rem;
}
diff --git a/assets/svg/facebook.svg b/assets/svg/facebook.svg
new file mode 100644
index 0000000..6e23a94
--- /dev/null
+++ b/assets/svg/facebook.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"/></svg> \ No newline at end of file
diff --git a/assets/svg/flickr.svg b/assets/svg/flickr.svg
new file mode 100644
index 0000000..15dcfc6
--- /dev/null
+++ b/assets/svg/flickr.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"/></svg> \ No newline at end of file
diff --git a/assets/svg/funkwhale.svg b/assets/svg/funkwhale.svg
new file mode 100644
index 0000000..3ad58df
--- /dev/null
+++ b/assets/svg/funkwhale.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1536 1792" height="1792" width="1536">
+ <path d="M330.695 200.717c-25.662-1.107-51.021-.888-75.451.354l-2.785.145-.917 2.623c-19.498 56.798-2.537 119.88 31.85 168.526l.05.065.032.048c36.788 48.495 87.602 82.592 139.008 108.3 51.975 26.826 107.075 31.784 155.538 60.05 31.676 18.68 51.615 38.6 71.138 69.512l.016.048.033.032c30.389 45.583 28.97 103.907 28.97 103.907v.193l4.17 65.907.224.58s6.368 16.843 19.893 33.67c13.525 16.825 34.67 34.087 63.895 34.087 30.782 0 52.01-17.255 65.151-34.136 13.142-16.881 18.686-33.799 18.686-33.799l.16-.5 4.17-65.81v-.193s-1.447-57.472 28.985-103.922l.033-.032.017-.032c19.585-31.01 38.67-52.472 70.945-69.416l.082-.049.082-.048c48.467-28.273 103.575-33.221 155.554-60.05 51.403-26.53 101.423-60.623 135.774-108.38 34.447-47.89 50.52-111.738 31.883-168.494l-.885-2.688-2.816-.145c-97.715-4.968-210.389 6.496-297.154 53.21-59.262 31.47-106.796 41.626-143.08 56.056-33.595 13.36-57.13 32.338-69.207 73.36-12.04-41.393-35.437-60.39-68.965-73.665-36.185-14.328-83.697-24.278-143.355-55.736l-.033-.016c-65.07-35.03-144.714-50.243-221.686-53.563zm-.37 8.256c76.132 3.324 154.703 18.403 218.177 52.581h.017l.016.017c60.636 31.98 109.104 42.228 144.191 56.122 35.088 13.893 56.648 30.324 67.13 77.092l.725 3.22h8.24l.725-3.203c10.477-46.34 32.251-62.804 67.452-76.804C872.2 304 920.66 293.536 980.884 261.555h.033c83.725-45.083 193.615-56.79 289.637-52.275 16.225 53.003 1.305 113.04-31.255 158.306-33.22 46.183-82.082 79.661-132.861 105.87-50.15 25.883-105.387 30.849-155.763 60.177-.008.006-.025.01-.033.017-33.628 17.663-54.09 40.69-74.051 72.296-32.153 49.127-30.307 108.606-30.307 108.606l-4.056 64.056c-.184.55-5.244 15.564-17.221 30.95-12.198 15.668-30.923 30.966-58.649 30.966-25.986 0-44.819-15.291-57.457-31.014-12.349-15.363-18.144-30.286-18.412-30.982l-4.072-64.346v.37s1.867-60.264-30.306-108.607c-20.032-31.715-41.307-52.99-73.907-72.216v-.016h-.016c-50.419-29.411-105.722-34.348-155.924-60.258l-.017-.017h-.032C375.478 448.07 325.8 414.603 290.088 367.553c-32.601-46.15-48.222-105.347-31.255-158.274 23.234-1.093 47.192-1.366 71.492-.306zm94.05 268.145c51.09 26.37 106.301 31.314 155.744 60.155 32.137 18.953 52.738 39.554 72.515 70.868 31.314 46.97 29.666 106.301 29.666 106.301l4.12 65.1s24.721 65.099 79.932 65.099c58.507 0 79.932-65.1 79.932-65.1l4.12-65.099s-1.648-58.507 29.666-106.301c19.777-31.314 39.554-53.563 72.515-70.868 49.443-28.841 104.653-33.785 155.744-60.155 51.09-26.369 100.533-60.155 134.319-107.125 33.785-46.97 49.442-109.597 31.313-164.808-97.237-4.944-209.306 6.592-295.006 52.738-119.486 63.452-192.002 41.202-213.427 135.967h-1.648c-21.425-95.589-93.117-72.515-213.427-135.967-85.7-46.146-197.77-57.682-295.007-52.738-18.953 55.21-2.472 117.014 31.314 164.808 36.258 47.794 86.524 81.58 137.615 107.125zM18.122 803.442C8.264 803.442 0 811.706 0 821.564c0 423.322 344.679 768.016 768 768.016s768-344.694 768-768.016c0-9.858-8.264-18.122-18.122-18.122h-99.706c-9.858 0-18.139 8.264-18.139 18.122 0 348.798-284.879 632.87-632.854 632.87-348.81 0-632.87-283.236-632.87-632.87 0-9.858-8.264-18.122-18.122-18.122zm0 8.24h98.065c4.974 0 9.882 4.908 9.882 9.882 0 354.098 287.838 641.11 641.11 641.11 352.46 0 641.095-287.824 641.095-641.11 0-4.974 4.923-9.882 9.898-9.882h99.706c4.974 0 9.882 4.908 9.882 9.882 0 418.85-340.911 759.776-759.76 759.776S8.24 1240.413 8.24 821.564c0-4.974 4.908-9.882 9.882-9.882zm1499.756-4.123h-99.71c-7.416 0-14.008 6.592-14.008 14.009 0 351.041-286.767 636.983-636.984 636.983-351.042 0-636.984-285.118-636.984-636.983 0-7.417-6.592-14.01-14.009-14.01h-98.06c-7.417 0-14.01 6.593-14.01 14.01 0 421.085 342.802 763.886 763.887 763.886 421.085 0 763.886-342.801 763.886-763.886 0-7.417-6.592-14.01-14.008-14.01zm-1249.244-4.117c-9.852 0-18.13 8.255-18.138 18.106-1.662 284.902 230.98 517.52 517.504 517.52 284.888 0 517.504-232.615 517.504-517.504 0-9.858-8.28-18.122-18.138-18.122h-99.706c-9.858 0-18.122 8.264-18.122 18.122 0 211.2-171.16 382.359-382.359 382.359-211.2 0-382.358-171.16-382.358-382.359 0-9.858-8.265-18.122-18.123-18.122zm0 8.24h98.064c4.975 0 9.882 4.908 9.882 9.882 0 215.654 174.945 390.6 390.6 390.6 215.653 0 390.598-174.946 390.598-390.6 0-4.974 4.907-9.882 9.882-9.882h99.706c4.975 0 9.898 4.908 9.898 9.882 0 280.404-228.86 509.264-509.264 509.264-282.065 0-510.899-228.84-509.264-509.231v-.033c0-4.975 4.923-9.882 9.898-9.882zM768 1334.945c282.646 0 513.378-230.731 513.378-513.377 0-7.417-6.593-14.01-14.009-14.01h-99.709c-7.416 0-14.009 6.593-14.009 14.01 0 213.426-173.048 386.475-386.475 386.475-213.427 0-386.475-173.049-386.475-386.475 0-7.417-6.593-14.01-14.01-14.01h-98.06c-7.416 0-14.009 6.593-14.009 14.01-1.648 282.646 229.084 513.377 513.378 513.377zM517.488 802.621c-9.858 0-18.122 8.265-18.122 18.123 0 148.901 120.56 268.634 268.634 268.634 148.09 0 268.634-120.544 268.634-268.634 0-9.858-8.264-18.123-18.122-18.123h-99.706c-9.858 0-18.139 8.265-18.139 18.123 0 72.754-59.094 132.667-132.667 132.667-72.754 0-132.667-59.095-132.667-132.667 0-9.858-8.281-18.123-18.139-18.123zm0 8.24h99.706c4.975 0 9.898 4.908 9.898 9.883 0 78.05 63.687 140.907 140.908 140.907 78.051 0 140.908-63.686 140.908-140.907 0-4.975 4.923-9.882 9.898-9.882h99.706c4.974 0 9.882 4.907 9.882 9.882 0 143.62-116.773 260.393-260.394 260.393-143.636 0-260.394-115.936-260.394-260.393 0-4.975 4.907-9.882 9.882-9.882zM768 1085.262c145.855 0 264.517-118.662 264.517-264.517 0-7.417-6.592-14.01-14.008-14.01h-99.71c-7.416 0-14.008 6.593-14.008 14.01 0 74.987-60.98 136.79-136.791 136.79-74.988 0-136.79-60.979-136.79-136.79 0-7.417-6.593-14.01-14.01-14.01h-99.709c-7.416 0-14.008 6.593-14.008 14.01 0 146.679 118.662 264.517 264.517 264.517z"/>
+</svg>
diff --git a/assets/svg/github.svg b/assets/svg/github.svg
new file mode 100644
index 0000000..53bd7b2
--- /dev/null
+++ b/assets/svg/github.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg> \ No newline at end of file
diff --git a/assets/svg/gitlab.svg b/assets/svg/gitlab.svg
new file mode 100644
index 0000000..ae4efce
--- /dev/null
+++ b/assets/svg/gitlab.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z"/></svg> \ No newline at end of file
diff --git a/assets/svg/instagram.svg b/assets/svg/instagram.svg
new file mode 100644
index 0000000..89c89b7
--- /dev/null
+++ b/assets/svg/instagram.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg> \ No newline at end of file
diff --git a/assets/svg/keybase.svg b/assets/svg/keybase.svg
new file mode 100644
index 0000000..607d6ba
--- /dev/null
+++ b/assets/svg/keybase.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z"></path></svg> \ No newline at end of file
diff --git a/assets/svg/linkedin.svg b/assets/svg/linkedin.svg
new file mode 100644
index 0000000..69d8e97
--- /dev/null
+++ b/assets/svg/linkedin.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"/></svg> \ No newline at end of file
diff --git a/assets/svg/mastodon.svg b/assets/svg/mastodon.svg
new file mode 100644
index 0000000..bb7c428
--- /dev/null
+++ b/assets/svg/mastodon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg> \ No newline at end of file
diff --git a/assets/svg/matrix-org.svg b/assets/svg/matrix-org.svg
new file mode 100644
index 0000000..a178912
--- /dev/null
+++ b/assets/svg/matrix-org.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1536" height="1792" viewBox="0 0 1536 1792">
+ <path d="M40.467 163.152v1465.696H145.92V1664H0V128h145.92v35.152zm450.757 464.64v74.14h2.069c19.79-28.356 43.717-50.215 71.483-65.575 27.765-15.656 59.963-23.336 96-23.336 34.56 0 66.165 6.795 94.818 20.086 28.652 13.293 50.216 37.22 65.28 70.893 16.246-23.926 38.4-45.194 66.166-63.507 27.766-18.314 60.848-27.472 98.954-27.472 28.948 0 55.828 3.545 80.64 10.635 24.812 7.088 45.785 18.314 63.508 33.968 17.722 15.656 31.31 35.742 41.354 60.85 9.747 25.107 14.768 55.236 14.768 90.683v366.573h-150.35V865.28c0-18.314-.59-35.741-2.068-51.987-1.476-16.247-5.316-30.426-11.52-42.24-6.499-12.112-15.656-21.563-28.062-28.653-12.405-7.088-29.242-10.634-50.214-10.634-21.268 0-38.4 4.135-51.397 12.112-12.997 8.27-23.336 18.608-30.72 31.901-7.386 12.997-12.407 27.765-14.77 44.602-2.363 16.542-3.84 33.379-3.84 50.216v305.133H692.971v-307.2c0-16.247-.294-32.197-1.18-48.149-.591-15.95-3.84-30.424-9.157-44.011-5.317-13.293-14.178-24.223-26.585-32.197-12.406-7.976-30.425-12.112-54.646-12.112-7.088 0-16.542 1.478-28.062 4.726-11.52 3.25-23.04 9.157-33.968 18.02-10.93 8.86-20.383 21.563-28.063 38.103-7.68 16.543-11.52 38.4-11.52 65.28v317.834H349.44V627.792zm1004.309 1001.056V163.152H1390.08V128H1536v1536h-145.92v-35.152z"/>
+</svg>
diff --git a/assets/svg/medium.svg b/assets/svg/medium.svg
new file mode 100644
index 0000000..f370e1e
--- /dev/null
+++ b/assets/svg/medium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z"/></svg> \ No newline at end of file
diff --git a/assets/svg/peertube.svg b/assets/svg/peertube.svg
new file mode 100644
index 0000000..53170f5
--- /dev/null
+++ b/assets/svg/peertube.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1920">
+ <path d="M93.02 0v900.082L768 450.042 93.02 0zM768 450.042v899.916l674.98-449.876L768 450.042zM93.02 900.082V1800L768 1350.124 93.02 900.082z"/>
+</svg>
diff --git a/assets/svg/pixelfed.svg b/assets/svg/pixelfed.svg
new file mode 100644
index 0000000..660f1f9
--- /dev/null
+++ b/assets/svg/pixelfed.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1536" height="1792" viewBox="0 0 1536 1792">
+ <path d="M768 1664C343.845 1664 0 1320.155 0 896s343.845-768 768-768 768 343.845 768 768-343.845 768-768 768zm-60.97-600.33h140.887c132.72 0 240.312-104.74 240.312-233.944S980.638 595.782 847.917 595.782H644.576c-76.57 0-138.642 60.427-138.642 134.968v525.312z" fill-rule="evenodd"/>
+</svg>
diff --git a/assets/svg/reddit.svg b/assets/svg/reddit.svg
new file mode 100644
index 0000000..262d0a7
--- /dev/null
+++ b/assets/svg/reddit.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z"/></svg> \ No newline at end of file
diff --git a/assets/svg/riot.svg b/assets/svg/riot.svg
new file mode 100644
index 0000000..105481e
--- /dev/null
+++ b/assets/svg/riot.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="1536" height="1536" viewBox="0 0 1536 1536">
+ <path d="M238.688 0C108.02 0 1.213 103.937 1.213 232.215V851.98C.42 859.726-.012 867.565 0 875.506v.033c.001 7.822.446 15.521 1.213 23.084v405.174c0 121.913 96.492 221.758 218.23 231.373v.832h19.244c130.678 0 237.473-103.93 237.473-232.205v-196.522l124.947-.12 228.858 318.712c42.47 59.138 110.135 90.768 178.91 90.768 43.246 0 86.931-12.514 125.05-38.586 98.695-67.48 122.649-200.282 53.473-296.606l-146.261-203.687c124.471-102.013 203.428-254.965 203.428-424.211C1244.564 248.234 989.886 0 677.794 0H238.688zm91.437 38.484h347.67c291.722 0 528.283 231.14 528.283 515.06 0 156.394-72.552 298.005-187.371 392.976l-103.34-143.915c68.217-62.164 110.955-150.744 110.955-249.064 0-188.12-156.522-340.572-348.525-340.572h-220.6c-3.35-36.636-16.467-71.958-38.685-102.895-23.193-32.296-53.986-56.378-88.387-71.59zm126.994 212.97h220.678c171.706 0 310.039 135.282 310.039 302.087 0 85.529-36.396 162.746-94.986 217.705l-13.88-19.328c-33.915-47.235-83.93-76.917-137.732-86.953 39.884-21.929 66.852-63.84 66.852-111.416 0-70.458-58.868-127.613-130.295-127.613l-240.121-.004v255.461l170.08-.174a220.873 220.873 0 0 0-32.73 18.517c-55.009 37.61-86.786 95.515-92.176 156.084l-224.916.221v-411.7c37.252-2.997 74.188-15.338 106.953-37.71 47.778-32.625 79.674-81.43 89.81-137.455a211.822 211.822 0 0 0 2.424-17.723zM39.7 318.081c5.72 12.591 12.735 24.733 21.018 36.266 38.219 53.22 97.07 84.16 158.728 89.783v423.775a19.245 19.245 0 0 0 0 14.774v421.113a19.245 19.245 0 1 0 38.487 0V894.527l225.052-.22c3.43 35.535 16.064 70.715 38.553 102.037l51.953 72.35-135.816.132v234.969c0 106.937-88.561 193.674-198.906 193.717h-.08c-110.37 0-198.989-86.754-198.989-193.717V896.896l-.11-1.021a191.415 191.415 0 0 1-1.105-20.37v-.03a189.321 189.321 0 0 1 1.102-20.729l.113-1.033V318.082zm436.46 146.337l201.635.004c51.066 0 91.809 40.05 91.809 89.127 0 46.553-37.132 85.723-85.356 88.914-2.091.134-4.207.197-6.672.197h-.01l-201.406.207V464.418z"/>
+</svg>
diff --git a/assets/svg/soundcloud.svg b/assets/svg/soundcloud.svg
new file mode 100644
index 0000000..0d9b061
--- /dev/null
+++ b/assets/svg/soundcloud.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z"/></svg> \ No newline at end of file
diff --git a/assets/svg/stack-overflow.svg b/assets/svg/stack-overflow.svg
new file mode 100644
index 0000000..e8560a3
--- /dev/null
+++ b/assets/svg/stack-overflow.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg> \ No newline at end of file
diff --git a/assets/svg/strava.svg b/assets/svg/strava.svg
new file mode 100644
index 0000000..40102da
--- /dev/null
+++ b/assets/svg/strava.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z"/></svg> \ No newline at end of file
diff --git a/assets/svg/telegram.svg b/assets/svg/telegram.svg
new file mode 100644
index 0000000..fc5492c
--- /dev/null
+++ b/assets/svg/telegram.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path d="M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z"/></svg> \ No newline at end of file
diff --git a/assets/svg/twitch.svg b/assets/svg/twitch.svg
new file mode 100644
index 0000000..c8d2974
--- /dev/null
+++ b/assets/svg/twitch.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z"/></svg> \ No newline at end of file
diff --git a/assets/svg/twitter.svg b/assets/svg/twitter.svg
new file mode 100644
index 0000000..f0ed9c5
--- /dev/null
+++ b/assets/svg/twitter.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/></svg> \ No newline at end of file
diff --git a/assets/svg/vimeo.svg b/assets/svg/vimeo.svg
new file mode 100644
index 0000000..3a0c527
--- /dev/null
+++ b/assets/svg/vimeo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z"/></svg> \ No newline at end of file
diff --git a/assets/svg/whatsapp.svg b/assets/svg/whatsapp.svg
new file mode 100644
index 0000000..6ca3eb3
--- /dev/null
+++ b/assets/svg/whatsapp.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"/></svg> \ No newline at end of file
diff --git a/assets/svg/youtube.svg b/assets/svg/youtube.svg
new file mode 100644
index 0000000..e831b88
--- /dev/null
+++ b/assets/svg/youtube.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"/></svg> \ No newline at end of file
diff --git a/data/default.toml b/data/default.toml
new file mode 100644
index 0000000..47e6339
--- /dev/null
+++ b/data/default.toml
@@ -0,0 +1,21 @@
+# File dedicated to storing some default values
+
+[search]
+ minLength = 3
+ maxLength = 32
+
+[imageProc]
+ highRes = [ "1280x", "1280w" ]
+ mediumRes = [ "960x", "960w" ]
+ lowRes = [ "640x q90", "640w" ]
+
+[style]
+ lightAccent = "#225670"
+ darkAccent = "#dd587c"
+
+ changeTransition = ".3s ease"
+
+[notFound]
+ title = "Page not found"
+ description = "This page was not found."
+ paragraph = "Nothing to see here, buddy."
diff --git a/data/social.json b/data/social.json
index 39f4508..7902feb 100644
--- a/data/social.json
+++ b/data/social.json
@@ -5,8 +5,6 @@
"base": "https://facebook.com/",
"icon": {
"id": "facebook",
- "viewBox": "0 0 512 512",
- "path": "M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z",
"source": "Font-Awesome"
}
},
@@ -16,8 +14,6 @@
"base": "https://www.flickr.com/",
"icon": {
"id": "flickr",
- "viewBox": "0 0 448 512",
- "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z",
"source": "Font-Awesome"
}
},
@@ -27,8 +23,6 @@
"decentralized": true,
"icon": {
"id": "funkwhale",
- "viewBox": "0 0 1536 1792",
- "path": "M330.695 200.717c-25.662-1.107-51.021-.888-75.451.354l-2.785.145-.917 2.623c-19.498 56.798-2.537 119.88 31.85 168.526l.05.065.032.048c36.788 48.495 87.602 82.592 139.008 108.3 51.975 26.826 107.075 31.784 155.538 60.05 31.676 18.68 51.615 38.6 71.138 69.512l.016.048.033.032c30.389 45.583 28.97 103.907 28.97 103.907v.193l4.17 65.907.224.58s6.368 16.843 19.893 33.67c13.525 16.825 34.67 34.087 63.895 34.087 30.782 0 52.01-17.255 65.151-34.136 13.142-16.881 18.686-33.799 18.686-33.799l.16-.5 4.17-65.81v-.193s-1.447-57.472 28.985-103.922l.033-.032.017-.032c19.585-31.01 38.67-52.472 70.945-69.416l.082-.049.082-.048c48.467-28.273 103.575-33.221 155.554-60.05 51.403-26.53 101.423-60.623 135.774-108.38 34.447-47.89 50.52-111.738 31.883-168.494l-.885-2.688-2.816-.145c-97.715-4.968-210.389 6.496-297.154 53.21-59.262 31.47-106.796 41.626-143.08 56.056-33.595 13.36-57.13 32.338-69.207 73.36-12.04-41.393-35.437-60.39-68.965-73.665-36.185-14.328-83.697-24.278-143.355-55.736l-.033-.016c-65.07-35.03-144.714-50.243-221.686-53.563zm-.37 8.256c76.132 3.324 154.703 18.403 218.177 52.581h.017l.016.017c60.636 31.98 109.104 42.228 144.191 56.122 35.088 13.893 56.648 30.324 67.13 77.092l.725 3.22h8.24l.725-3.203c10.477-46.34 32.251-62.804 67.452-76.804C872.2 304 920.66 293.536 980.884 261.555h.033c83.725-45.083 193.615-56.79 289.637-52.275 16.225 53.003 1.305 113.04-31.255 158.306-33.22 46.183-82.082 79.661-132.861 105.87-50.15 25.883-105.387 30.849-155.763 60.177-.008.006-.025.01-.033.017-33.628 17.663-54.09 40.69-74.051 72.296-32.153 49.127-30.307 108.606-30.307 108.606l-4.056 64.056c-.184.55-5.244 15.564-17.221 30.95-12.198 15.668-30.923 30.966-58.649 30.966-25.986 0-44.819-15.291-57.457-31.014-12.349-15.363-18.144-30.286-18.412-30.982l-4.072-64.346v.37s1.867-60.264-30.306-108.607c-20.032-31.715-41.307-52.99-73.907-72.216v-.016h-.016c-50.419-29.411-105.722-34.348-155.924-60.258l-.017-.017h-.032C375.478 448.07 325.8 414.603 290.088 367.553c-32.601-46.15-48.222-105.347-31.255-158.274 23.234-1.093 47.192-1.366 71.492-.306zm94.05 268.145c51.09 26.37 106.301 31.314 155.744 60.155 32.137 18.953 52.738 39.554 72.515 70.868 31.314 46.97 29.666 106.301 29.666 106.301l4.12 65.1s24.721 65.099 79.932 65.099c58.507 0 79.932-65.1 79.932-65.1l4.12-65.099s-1.648-58.507 29.666-106.301c19.777-31.314 39.554-53.563 72.515-70.868 49.443-28.841 104.653-33.785 155.744-60.155 51.09-26.369 100.533-60.155 134.319-107.125 33.785-46.97 49.442-109.597 31.313-164.808-97.237-4.944-209.306 6.592-295.006 52.738-119.486 63.452-192.002 41.202-213.427 135.967h-1.648c-21.425-95.589-93.117-72.515-213.427-135.967-85.7-46.146-197.77-57.682-295.007-52.738-18.953 55.21-2.472 117.014 31.314 164.808 36.258 47.794 86.524 81.58 137.615 107.125zM18.122 803.442C8.264 803.442 0 811.706 0 821.564c0 423.322 344.679 768.016 768 768.016s768-344.694 768-768.016c0-9.858-8.264-18.122-18.122-18.122h-99.706c-9.858 0-18.139 8.264-18.139 18.122 0 348.798-284.879 632.87-632.854 632.87-348.81 0-632.87-283.236-632.87-632.87 0-9.858-8.264-18.122-18.122-18.122zm0 8.24h98.065c4.974 0 9.882 4.908 9.882 9.882 0 354.098 287.838 641.11 641.11 641.11 352.46 0 641.095-287.824 641.095-641.11 0-4.974 4.923-9.882 9.898-9.882h99.706c4.974 0 9.882 4.908 9.882 9.882 0 418.85-340.911 759.776-759.76 759.776S8.24 1240.413 8.24 821.564c0-4.974 4.908-9.882 9.882-9.882zm1499.756-4.123h-99.71c-7.416 0-14.008 6.592-14.008 14.009 0 351.041-286.767 636.983-636.984 636.983-351.042 0-636.984-285.118-636.984-636.983 0-7.417-6.592-14.01-14.009-14.01h-98.06c-7.417 0-14.01 6.593-14.01 14.01 0 421.085 342.802 763.886 763.887 763.886 421.085 0 763.886-342.801 763.886-763.886 0-7.417-6.592-14.01-14.008-14.01zm-1249.244-4.117c-9.852 0-18.13 8.255-18.138 18.106-1.662 284.902 230.98 517.52 517.504 517.52 284.888 0 517.504-232.615 517.504-517.504 0-9.858-8.28-18.122-18.138-18.122h-99.706c-9.858 0-18.122 8.264-18.122 18.122 0 211.2-171.16 382.359-382.359 382.359-211.2 0-382.358-171.16-382.358-382.359 0-9.858-8.265-18.122-18.123-18.122zm0 8.24h98.064c4.975 0 9.882 4.908 9.882 9.882 0 215.654 174.945 390.6 390.6 390.6 215.653 0 390.598-174.946 390.598-390.6 0-4.974 4.907-9.882 9.882-9.882h99.706c4.975 0 9.898 4.908 9.898 9.882 0 280.404-228.86 509.264-509.264 509.264-282.065 0-510.899-228.84-509.264-509.231v-.033c0-4.975 4.923-9.882 9.898-9.882zM768 1334.945c282.646 0 513.378-230.731 513.378-513.377 0-7.417-6.593-14.01-14.009-14.01h-99.709c-7.416 0-14.009 6.593-14.009 14.01 0 213.426-173.048 386.475-386.475 386.475-213.427 0-386.475-173.049-386.475-386.475 0-7.417-6.593-14.01-14.01-14.01h-98.06c-7.416 0-14.009 6.593-14.009 14.01-1.648 282.646 229.084 513.377 513.378 513.377zM517.488 802.621c-9.858 0-18.122 8.265-18.122 18.123 0 148.901 120.56 268.634 268.634 268.634 148.09 0 268.634-120.544 268.634-268.634 0-9.858-8.264-18.123-18.122-18.123h-99.706c-9.858 0-18.139 8.265-18.139 18.123 0 72.754-59.094 132.667-132.667 132.667-72.754 0-132.667-59.095-132.667-132.667 0-9.858-8.281-18.123-18.139-18.123zm0 8.24h99.706c4.975 0 9.898 4.908 9.898 9.883 0 78.05 63.687 140.907 140.908 140.907 78.051 0 140.908-63.686 140.908-140.907 0-4.975 4.923-9.882 9.898-9.882h99.706c4.974 0 9.882 4.907 9.882 9.882 0 143.62-116.773 260.393-260.394 260.393-143.636 0-260.394-115.936-260.394-260.393 0-4.975 4.907-9.882 9.882-9.882zM768 1085.262c145.855 0 264.517-118.662 264.517-264.517 0-7.417-6.592-14.01-14.008-14.01h-99.71c-7.416 0-14.008 6.593-14.008 14.01 0 74.987-60.98 136.79-136.791 136.79-74.988 0-136.79-60.979-136.79-136.79 0-7.417-6.593-14.01-14.01-14.01h-99.709c-7.416 0-14.008 6.593-14.008 14.01 0 146.679 118.662 264.517 264.517 264.517z",
"source": "Fork-Awesome"
}
},
@@ -38,8 +32,6 @@
"base": "https://github.com/",
"icon": {
"id": "github",
- "viewBox": "0 0 496 512",
- "path": "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z",
"source": "Font-Awesome"
}
},
@@ -49,8 +41,6 @@
"base": "https://gitlab.com/",
"icon": {
"id": "gitlab",
- "viewBox": "0 0 512 512",
- "path": "M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z",
"source": "Font-Awesome"
}
},
@@ -60,8 +50,6 @@
"base": "https://www.instagram.com/",
"icon": {
"id": "instagram",
- "viewBox": "0 0 448 512",
- "path": "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z",
"source": "Font-Awesome"
}
},
@@ -71,8 +59,6 @@
"base": "https://keybase.io/",
"icon": {
"id": "keybase",
- "viewBox": "0 0 448 512",
- "path": "M195.21 430.7a17.8 17.8 0 1 1-17.8-17.8 17.84 17.84 0 0 1 17.8 17.8zM288 412.8a17.8 17.8 0 1 0 17.8 17.8 17.84 17.84 0 0 0-17.8-17.8zm142.3-36c0 38.9-7.6 73.9-22.2 103h-27.3c23.5-38.7 30.5-94.8 22.4-134.3-16.1 29.5-52.1 38.6-85.9 28.8-127.8-37.5-192.5 19.7-234.6 50.3l18.9-59.3-39.9 42.3a173.31 173.31 0 0 0 31.2 72.3H64.11a197.27 197.27 0 0 1-22.2-51.3l-23.8 25.2c0-74.9-5.5-147.6 61.5-215.2a210.67 210.67 0 0 1 69.1-46.7c-6.8-13.5-9.5-29.2-7.8-46L121 144.7a32.68 32.68 0 0 1-30.6-34.4v-.1L92 84a32.75 32.75 0 0 1 32.5-30.6c1.3 0-.3-.1 28.2 1.7a32 32 0 0 1 22.8 11.4C182.61 56.1 190 46 200.11 32l20.6 12.1c-13.6 29-9.1 36.2-9 36.3 3.9 0 13.9-.5 32.4 5.7a76.19 76.19 0 0 1 46.1 102.3c19 6.1 51.3 19.9 82.4 51.8 36.6 37.6 57.7 87.4 57.7 136.6zM146 122.1a162.36 162.36 0 0 1 13.1-29.4c.1-2 2.2-13.1-7.8-13.8-28.5-1.8-26.3-1.6-26.7-1.6a8.57 8.57 0 0 0-8.6 8.1l-1.6 26.2a8.68 8.68 0 0 0 8.1 9.1zm25.8 61.8a52.3 52.3 0 0 0 22.3 20c0-21.2 28.5-41.9 52.8-17.5l8.4 10.3c20.8-18.8 19.4-45.3 12.1-60.9-13.8-29.1-46.9-32-54.3-31.7a24.24 24.24 0 0 1-23.7-15.3c-13.69 21.2-37.19 62.5-17.59 95.1zm82.9 68.4L235 268.4a4.46 4.46 0 0 0-.6 6.3l8.9 10.9a4.48 4.48 0 0 0 6.3.6l19.6-16 5.5 6.8c4.9 6 13.8-1.4 9-7.3-63.6-78.3-41.5-51.1-55.3-68.1-4.7-6-13.9 1.4-9 7.3 1.9 2.3 18.4 22.6 19.8 24.3l-9.6 7.9c-4.6 3.8 2.6 13.3 7.4 9.4l9.7-8 8 9.8zM373.11 278c-16.9-23.7-42.6-46.7-73.4-60.4a213.21 213.21 0 0 0-22.9-8.6 62.47 62.47 0 0 1-6.4 6.2l31.9 39.2a29.81 29.81 0 0 1-4.2 41.9c-1.3 1.1-13.1 10.7-29 4.9-2.9 2.3-10.1 9.9-22.2 9.9a28.42 28.42 0 0 1-22.1-10.5l-8.9-10.9a28.52 28.52 0 0 1-5-26.8 28.56 28.56 0 0 1-4.6-30c-7.2-1.3-26.7-6.2-42.7-21.4-55.8 20.7-88 64.4-101.3 91.2-14.9 30.2-18.8 60.9-19.9 90.2 8.2-8.7-3.9 4.1 114-120.9l-29.9 93.6c57.8-31.1 124-36 197.4-14.4 23.6 6.9 45.1 1.6 56-13.9 11.1-15.6 8.5-37.7-6.8-59.3zm-244.5-170.9l15.6 1 1-15.6-15.6-1z",
"source": "Font-Awesome"
}
},
@@ -82,8 +68,6 @@
"base": "https://www.linkedin.com/in/",
"icon": {
"id": "linkedin",
- "viewBox": "0 0 448 512",
- "path": "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z",
"source": "Font-Awesome"
}
},
@@ -93,8 +77,6 @@
"decentralized": true,
"icon": {
"id": "mastodon",
- "viewBox": "0 0 448 512",
- "path": "M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z",
"source": "Font-Awesome"
}
},
@@ -103,9 +85,7 @@
"label": "Matrix",
"decentralized": true,
"icon": {
- "id": "matrix",
- "viewBox": "0 0 1536 1792",
- "path": "M40.467 163.152v1465.696H145.92V1664H0V128h145.92v35.152zm450.757 464.64v74.14h2.069c19.79-28.356 43.717-50.215 71.483-65.575 27.765-15.656 59.963-23.336 96-23.336 34.56 0 66.165 6.795 94.818 20.086 28.652 13.293 50.216 37.22 65.28 70.893 16.246-23.926 38.4-45.194 66.166-63.507 27.766-18.314 60.848-27.472 98.954-27.472 28.948 0 55.828 3.545 80.64 10.635 24.812 7.088 45.785 18.314 63.508 33.968 17.722 15.656 31.31 35.742 41.354 60.85 9.747 25.107 14.768 55.236 14.768 90.683v366.573h-150.35V865.28c0-18.314-.59-35.741-2.068-51.987-1.476-16.247-5.316-30.426-11.52-42.24-6.499-12.112-15.656-21.563-28.062-28.653-12.405-7.088-29.242-10.634-50.214-10.634-21.268 0-38.4 4.135-51.397 12.112-12.997 8.27-23.336 18.608-30.72 31.901-7.386 12.997-12.407 27.765-14.77 44.602-2.363 16.542-3.84 33.379-3.84 50.216v305.133H692.971v-307.2c0-16.247-.294-32.197-1.18-48.149-.591-15.95-3.84-30.424-9.157-44.011-5.317-13.293-14.178-24.223-26.585-32.197-12.406-7.976-30.425-12.112-54.646-12.112-7.088 0-16.542 1.478-28.062 4.726-11.52 3.25-23.04 9.157-33.968 18.02-10.93 8.86-20.383 21.563-28.063 38.103-7.68 16.543-11.52 38.4-11.52 65.28v317.834H349.44V627.792zm1004.309 1001.056V163.152H1390.08V128H1536v1536h-145.92v-35.152z",
+ "id": "matrix-org",
"source": "Fork-Awesome"
}
},
@@ -115,8 +95,6 @@
"base": "https://medium.com/",
"icon": {
"id": "medium",
- "viewBox": "0 0 448 512",
- "path": "M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z",
"source": "Font-Awesome"
}
},
@@ -126,8 +104,6 @@
"decentralized": true,
"icon": {
"id": "peertube",
- "viewBox": "0 0 2048 1536",
- "path": "M93.02 0v900.082L768 450.042 93.02 0zM768 450.042v899.916l674.98-449.876L768 450.042zM93.02 900.082V1800L768 1350.124 93.02 900.082z",
"source": "Fork-Awesome"
}
},
@@ -137,8 +113,6 @@
"decentralized": true,
"icon": {
"id": "pixelfed",
- "viewBox":"0 0 1536 1792",
- "path": "M768 1664C343.845 1664 0 1320.155 0 896s343.845-768 768-768 768 343.845 768 768-343.845 768-768 768zm-60.97-600.33h140.887c132.72 0 240.312-104.74 240.312-233.944S980.638 595.782 847.917 595.782H644.576c-76.57 0-138.642 60.427-138.642 134.968v525.312z",
"source": "Fork-Awesome"
}
},
@@ -148,8 +122,6 @@
"base": "https://www.reddit.com/user/",
"icon": {
"id": "reddit",
- "viewBox": "0 0 512 512",
- "path": "M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z",
"source": "Font-Awesome"
}
},
@@ -159,8 +131,6 @@
"decentralized": true,
"icon": {
"id": "riot",
- "viewBox":"0 0 1536 1536",
- "path": "M238.688 0C108.02 0 1.213 103.937 1.213 232.215V851.98C.42 859.726-.012 867.565 0 875.506v.033c.001 7.822.446 15.521 1.213 23.084v405.174c0 121.913 96.492 221.758 218.23 231.373v.832h19.244c130.678 0 237.473-103.93 237.473-232.205v-196.522l124.947-.12 228.858 318.712c42.47 59.138 110.135 90.768 178.91 90.768 43.246 0 86.931-12.514 125.05-38.586 98.695-67.48 122.649-200.282 53.473-296.606l-146.261-203.687c124.471-102.013 203.428-254.965 203.428-424.211C1244.564 248.234 989.886 0 677.794 0H238.688zm91.437 38.484h347.67c291.722 0 528.283 231.14 528.283 515.06 0 156.394-72.552 298.005-187.371 392.976l-103.34-143.915c68.217-62.164 110.955-150.744 110.955-249.064 0-188.12-156.522-340.572-348.525-340.572h-220.6c-3.35-36.636-16.467-71.958-38.685-102.895-23.193-32.296-53.986-56.378-88.387-71.59zm126.994 212.97h220.678c171.706 0 310.039 135.282 310.039 302.087 0 85.529-36.396 162.746-94.986 217.705l-13.88-19.328c-33.915-47.235-83.93-76.917-137.732-86.953 39.884-21.929 66.852-63.84 66.852-111.416 0-70.458-58.868-127.613-130.295-127.613l-240.121-.004v255.461l170.08-.174a220.873 220.873 0 0 0-32.73 18.517c-55.009 37.61-86.786 95.515-92.176 156.084l-224.916.221v-411.7c37.252-2.997 74.188-15.338 106.953-37.71 47.778-32.625 79.674-81.43 89.81-137.455a211.822 211.822 0 0 0 2.424-17.723zM39.7 318.081c5.72 12.591 12.735 24.733 21.018 36.266 38.219 53.22 97.07 84.16 158.728 89.783v423.775a19.245 19.245 0 0 0 0 14.774v421.113a19.245 19.245 0 1 0 38.487 0V894.527l225.052-.22c3.43 35.535 16.064 70.715 38.553 102.037l51.953 72.35-135.816.132v234.969c0 106.937-88.561 193.674-198.906 193.717h-.08c-110.37 0-198.989-86.754-198.989-193.717V896.896l-.11-1.021a191.415 191.415 0 0 1-1.105-20.37v-.03a189.321 189.321 0 0 1 1.102-20.729l.113-1.033V318.082zm436.46 146.337l201.635.004c51.066 0 91.809 40.05 91.809 89.127 0 46.553-37.132 85.723-85.356 88.914-2.091.134-4.207.197-6.672.197h-.01l-201.406.207V464.418z",
"source": "Fork-Awesome"
}
},
@@ -170,8 +140,6 @@
"base": "https://soundcloud.com/",
"icon": {
"id": "soundcloud",
- "viewBox": "0 0 640 512",
- "path": "M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z",
"source": "Font-Awesome"
}
},
@@ -181,8 +149,6 @@
"base": "https://stackoverflow.com/users/",
"icon": {
"id": "stack-overflow",
- "viewBox": "0 0 384 512",
- "path": "M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z",
"source": "Font-Awesome"
}
},
@@ -192,8 +158,6 @@
"base": "https://www.strava.com/athletes/",
"icon": {
"id": "strava",
- "viewBox": "0 0 384 512",
- "path": "M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z",
"source": "Font-Awesome"
}
},
@@ -203,8 +167,6 @@
"base": "https://t.me/",
"icon": {
"id": "telegram",
- "viewBox": "0 0 448 512",
- "path": "M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z",
"source": "Font-Awesome"
}
},
@@ -214,8 +176,6 @@
"base": "https://www.twitch.tv/",
"icon": {
"id": "twitch",
- "viewBox": "0 0 512 512",
- "path": "M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z",
"source": "Font-Awesome"
}
},
@@ -225,8 +185,6 @@
"base": "https://twitter.com/",
"icon": {
"id": "twitter",
- "viewBox": "0 0 512 512",
- "path": "M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z",
"source": "Font-Awesome"
}
},
@@ -236,8 +194,6 @@
"base": "https://vimeo.com/",
"icon": {
"id": "vimeo",
- "viewBox": "0 0 448 512",
- "path": "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z",
"source": "Font-Awesome"
}
},
@@ -247,8 +203,6 @@
"base": "https://wa.me/",
"icon": {
"id": "whatsapp",
- "viewBox": "0 0 448 512",
- "path": "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z",
"source": "Font-Awesome"
}
},
@@ -258,8 +212,6 @@
"base": "https://youtube.com/channel/",
"icon": {
"id": "youtube",
- "viewBox": "0 0 576 512",
- "path": "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z",
"source": "Font-Awesome"
}
}
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index e46f9ea..e83bcad 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -98,6 +98,10 @@ paginate = 5
# The default value is 30
maxResults = 15
+ # Limit seach field input and pattern matching
+ minLength = 2 # Default is 3
+ maxLength = 42 # Default is 32
+
# Optional placeholder for search field
placeholder = "ie.: lorem ipsum"
@@ -145,7 +149,7 @@ paginate = 5
[params.notFound]
title = "Page not found"
description = "This page was not found."
- text = "Nothing to see here, buddy."
+ paragraph = "Nothing to see here, buddy."
[params.social.centralized]
facebook = [ "<username>", "Zuckerburg" ]
@@ -225,11 +229,6 @@ paginate = 5
-[_build]
- publishResources = false
-
-
-
[languages]
[languages.en]
@@ -268,7 +267,7 @@ paginate = 5
[languages.pt.params.notFound]
title = "Página não encontrada"
description = "Essa página não foi encontrada."
- text = "Nada a se ver aqui, colega."
+ paragraph = "Nada a se ver aqui, colega."
[languages.pt.params.search]
enable = true
diff --git a/exampleSite/resources/_gen/assets/scss/scss/exclusive/contact-form.scss_1b2bf5373d097200b186ddaf7c11814c.content b/exampleSite/resources/_gen/assets/scss/scss/exclusive/contact-form.scss_1b2bf5373d097200b186ddaf7c11814c.content
index 1cd10ee..d75c8bb 100644
--- a/exampleSite/resources/_gen/assets/scss/scss/exclusive/contact-form.scss_1b2bf5373d097200b186ddaf7c11814c.content
+++ b/exampleSite/resources/_gen/assets/scss/scss/exclusive/contact-form.scss_1b2bf5373d097200b186ddaf7c11814c.content
@@ -1 +1 @@
-#contact{margin:1.5rem 0}#contact label{display:block;margin-top:1rem;font-family:oswald,sans-serif;font-size:.9rem;letter-spacing:.5px;line-height:1.8rem;text-transform:uppercase;user-select:none}#contact input[name=name],#contact input[name=_replyto],#contact input[name=_subject],#contact select,#contact textarea{background:var(--input-bg);border:1px solid var(--input-bd);color:var(--input-fg);font-family:open sans,sans-serif;font-size:.9rem;line-height:1.5rem;display:block;margin:3px 0;max-width:100%;transition:outline .2s ease-in-out;outline:2px solid transparent}#contact input[name=name]:focus,#contact input[name=_replyto]:focus,#contact input[name=_subject]:focus,#contact select:focus,#contact textarea:focus{outline-color:var(--accent)}#contact input[name=name],#contact input[name=_replyto],#contact input[name=_subject]{min-width:240px;padding:6px 12px}#contact select{min-width:210px;padding:6px}#contact textarea{padding:9px 15px;width:90%;height:auto}#contact input[type=submit]{cursor:pointer;font-family:oswald,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.05rem;margin-top:1.2rem;padding:12px 42px 15px;outline:2px dashed transparent;outline-offset:2px;transition:border .2s ease-in-out,outline .2s ease-in-out,opacity .2s ease-in-out}#contact input[type=submit]:focus{outline-color:var(--accent)}#contact input[type=submit]:hover{opacity:.75}#contact input[type=submit]::-moz-focus-inner{border:0}@supports(-moz-appearance:meterbar){#contact select{color:var(--fg);color:transparent;text-shadow:0 0 0 var(--fg)}} \ No newline at end of file
+#contact{margin:1.5rem 0}#contact label{display:block;margin-top:1rem;font-family:oswald,sans-serif;font-size:.9rem;letter-spacing:.5px;line-height:1.8rem;text-transform:uppercase;user-select:none}#contact input[name=name],#contact input[name=_replyto],#contact input[name=_subject],#contact select,#contact textarea{background:var(--input-bg);border:1px solid var(--input-bd);color:var(--input-fg);font-family:open sans,sans-serif;font-size:.9rem;line-height:1.5rem;display:block;margin:3px 0;max-width:100%;transition:outline .2s ease-in-out;outline:2px solid transparent}#contact input[name=name]:focus,#contact input[name=_replyto]:focus,#contact input[name=_subject]:focus,#contact select:focus,#contact textarea:focus{outline-color:var(--accent)}#contact input[name=name],#contact input[name=_replyto],#contact input[name=_subject]{min-width:240px;padding:6px 12px}#contact select{min-width:210px;padding:6px}#contact textarea{padding:9px 15px;width:90%;height:auto}#contact input[type=submit]{cursor:pointer;font-family:oswald,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.05rem;margin-top:1.2rem;padding:12px 42px 15px;outline:2px dashed transparent;outline-offset:2px;transition:background-color .3s ease,border .2s ease-in-out,outline .2s ease-in-out,opacity .2s ease-in-out}#contact input[type=submit]:focus{outline-color:var(--accent)}#contact input[type=submit]:hover{opacity:.75}#contact input[type=submit]::-moz-focus-inner{border:0}@supports(-moz-appearance:meterbar){#contact select{color:var(--fg);color:transparent;text-shadow:0 0 0 var(--fg)}} \ No newline at end of file
diff --git a/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.content b/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.content
index 6163cef..f4d5f0b 100644
--- a/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.content
+++ b/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.content
@@ -1 +1 @@
-@font-face{font-family:oswald;font-style:normal;font-weight:700;font-display:swap;src:local("Oswald"),url(../fonts/oswald-v29-latin-700.woff2)format("woff2"),url(../fonts/oswald-v29-latin-700.woff)format("woff")}@font-face{font-family:open sans;font-style:normal;font-weight:400;font-display:swap;src:local("Open Sans Regular"),local("OpenSans-Regular"),url(../fonts/open-sans-v17-latin-regular.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-regular.woff)format("woff")}@font-face{font-family:open sans;font-style:normal;font-weight:700;font-display:swap;src:local("Open Sans Bold"),local("OpenSans-Bold"),url(../fonts/open-sans-v17-latin-700.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-700.woff)format("woff")}@font-face{font-family:open sans;font-style:italic;font-weight:400;font-display:swap;src:local("Open Sans Italic"),local("OpenSans-Italic"),url(../fonts/open-sans-v17-latin-italic.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-italic.woff)format("woff")}:root{font-size:18px}html{scroll-behavior:smooth}html[data-mode=light]{--bg: #ddd;--fg: #444;--alt-bg: #d6d6d6;--alt-fg: #333;--dtl: #fdfdfd;--err: #c70000;--bgmod: rgba(0, 0, 0, 0.3);--input-bg: #fefefe;--input-fg: #111;--input-bd: #ccc;--lpress: rgba(0, 0, 0, 0.2);--rlpress: rgba(255, 255, 255, 0.2)}html[data-mode=light] .chroma,html[data-mode=light] pre,html[data-mode=light] p code,html[data-mode=light] li code{color:#93a1a1;background-color:#002b36}html[data-mode=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}html[data-mode=light] .chroma .lntable{border-spacing:0;margin:0;border:0;width:auto;display:block}html[data-mode=light] .chroma .hl{display:block;width:100%;background-color:rgba(0,0,0,.3)}html[data-mode=light] .chroma .nb{color:#b58900}html[data-mode=light] .chroma .ge{font-style:italic}html[data-mode=light] .chroma .gr{color:#e8625f;font-weight:700}html[data-mode=light] .chroma .gs{font-weight:700}html[data-mode=light] .chroma .x,html[data-mode=light] .chroma .kc,html[data-mode=light] .chroma .no,html[data-mode=light] .chroma .ni,html[data-mode=light] .chroma .ne,html[data-mode=light] .chroma .se,html[data-mode=light] .chroma .gh{color:#e9662f}html[data-mode=light] .chroma .lnt,html[data-mode=light] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#848f8f}html[data-mode=light] .chroma .k,html[data-mode=light] .chroma .kn,html[data-mode=light] .chroma .kp,html[data-mode=light] .chroma .o,html[data-mode=light] .chroma .ow,html[data-mode=light] .chroma .cs,html[data-mode=light] .chroma .cp,html[data-mode=light] .chroma .cpf,html[data-mode=light] .chroma .gi{color:#859900}html[data-mode=light] .chroma .kd,html[data-mode=light] .chroma .kr,html[data-mode=light] .chroma .bp,html[data-mode=light] .chroma .nc,html[data-mode=light] .chroma .nd,html[data-mode=light] .chroma .nf,html[data-mode=light] .chroma .nt,html[data-mode=light] .chroma .nv,html[data-mode=light] .chroma .gu{color:#3294da}html[data-mode=light] .chroma .kt,html[data-mode=light] .chroma .sr,html[data-mode=light] .chroma .gd{color:#e8625f}html[data-mode=light] .chroma .s,html[data-mode=light] .chroma .sa,html[data-mode=light] .chroma .sc,html[data-mode=light] .chroma .dl,html[data-mode=light] .chroma .s2,html[data-mode=light] .chroma .si,html[data-mode=light] .chroma .sx,html[data-mode=light] .chroma .s1,html[data-mode=light] .chroma .ss,html[data-mode=light] .chroma .m,html[data-mode=light] .chroma .mb,html[data-mode=light] .chroma .mf,html[data-mode=light] .chroma .mh,html[data-mode=light] .chroma .mi,html[data-mode=light] .chroma .il,html[data-mode=light] .chroma .mo{color:#2aa198}html[data-mode=light] .chroma .sb,html[data-mode=light] .chroma .c,html[data-mode=light] .chroma .ch,html[data-mode=light] .chroma .cm,html[data-mode=light] .chroma .c1{color:#759299}html[data-mode=dark]{--bg: #1f1f1f;--fg: #bbb;--alt-bg: #1c1c1c;--alt-fg: #ddd;--dtl: #1a1a1a;--err: #ff3131;--bgmod: rgba(255, 255, 255, 0.3);--input-bg: #222;--input-fg: #f0f0f0;--input-bd: #262626;--lpress: rgba(255, 255, 255, 0.2);--rlpress: rgba(0, 0, 0, 0.2)}html[data-mode=dark] img{filter:contrast(0.85)grayscale(0.3)}html[data-mode=dark] .chroma,html[data-mode=dark] pre,html[data-mode=dark] p code,html[data-mode=dark] li code{color:#f8f8f2;background:#272822}html[data-mode=dark] .chroma .err{color:#eb0083;background-color:#1e0010}html[data-mode=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}html[data-mode=dark] .chroma .lntable{border-spacing:0;margin:0;border:0;width:auto;display:block}html[data-mode=dark] .chroma .hl{display:block;width:100%;background-color:rgba(0,0,0,.3)}html[data-mode=dark] .chroma .ge{font-style:italic}html[data-mode=dark] .chroma .gs{font-weight:700}html[data-mode=dark] .chroma .lnt,html[data-mode=dark] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#8e8e8e}html[data-mode=dark] .chroma .k,html[data-mode=dark] .chroma .kc,html[data-mode=dark] .chroma .kd,html[data-mode=dark] .chroma .kp,html[data-mode=dark] .chroma .kr,html[data-mode=dark] .chroma .kt,html[data-mode=dark] .chroma .no{color:#66d9ef}html[data-mode=dark] .chroma .kn,html[data-mode=dark] .chroma .nt,html[data-mode=dark] .chroma .o,html[data-mode=dark] .chroma .ow,html[data-mode=dark] .chroma .gd{color:#f94e8a}html[data-mode=dark] .chroma .na,html[data-mode=dark] .chroma .nc,html[data-mode=dark] .chroma .nd,html[data-mode=dark] .chroma .ne,html[data-mode=dark] .chroma .nf,html[data-mode=dark] .chroma .nx,html[data-mode=dark] .chroma .gi{color:#a6e22e}html[data-mode=dark] .chroma .l,html[data-mode=dark] .chroma .se,html[data-mode=dark] .chroma .m,html[data-mode=dark] .chroma .mb,html[data-mode=dark] .chroma .mf,html[data-mode=dark] .chroma .mh,html[data-mode=dark] .chroma .mi,html[data-mode=dark] .chroma .il,html[data-mode=dark] .chroma .mo{color:#ae81ff}html[data-mode=dark] .chroma .ld,html[data-mode=dark] .chroma .s,html[data-mode=dark] .chroma .sa,html[data-mode=dark] .chroma .sb,html[data-mode=dark] .chroma .sc,html[data-mode=dark] .chroma .dl,html[data-mode=dark] .chroma .sd,html[data-mode=dark] .chroma .s2,html[data-mode=dark] .chroma .sh,html[data-mode=dark] .chroma .si,html[data-mode=dark] .chroma .sx,html[data-mode=dark] .chroma .sr,html[data-mode=dark] .chroma .s1,html[data-mode=dark] .chroma .ss{color:#e6db74}html[data-mode=dark] .chroma .c,html[data-mode=dark] .chroma .ch,html[data-mode=dark] .chroma .cm,html[data-mode=dark] .chroma .c1,html[data-mode=dark] .chroma .cs,html[data-mode=dark] .chroma .cp,html[data-mode=dark] .chroma .cpf,html[data-mode=dark] .chroma .gu{color:#949076}body{margin:0;padding:0;font-family:open sans,sans-serif;background:var(--bg);color:var(--fg);display:flex;min-height:100vh;flex-direction:column}body a{color:var(--accent);outline:2px dashed transparent;outline-offset:2px;transition:opacity .2s ease-in-out,outline .2s ease-in-out,padding .2s ease-in-out;word-break:break-word}body a:focus{outline-color:var(--accent)}body a:hover{opacity:.75}body>header,body>footer{background:var(--alt-bg);color:var(--alt-fg);text-align:center}body>header{padding:0 2rem 1rem}body>header nav{margin:.5rem 0 0}body>header nav ul{margin:0;display:flex;flex-wrap:wrap;justify-content:center;padding:0}body>header nav ul a{display:block;word-break:keep-all;margin:0 7.5px 15px;padding:9px 21px 12px;font-size:.75rem;font-weight:700;text-transform:uppercase}body>footer{padding:18px 45px}body>footer p{line-height:1.8rem;margin:15px 0;white-space:pre-wrap}body>footer a{transition:opacity .2s ease-in-out,padding .2s ease-in-out,outline-color .3s ease}body>footer a:hover{opacity:.75}body>footer section{padding:6px 0 12px}body>footer section input{border:1px solid var(--fg);outline-offset:3px;padding:0}body>footer section input::-webkit-color-swatch{border:none}body>footer section input::-webkit-color-swatch-wrapper{padding:0}body>footer section button{background:0;border:0;padding:3px 3px 0}body>footer section button svg{fill:var(--fg);stroke:var(--fg);stroke-width:.6rem}body>footer section input,body>footer section button{margin:0 7.5px;outline:2px dashed transparent;transition:outline .2s ease-in-out,transform .2s ease-in-out}body>footer section input:focus,body>footer section button:focus{outline-color:var(--accent)}body>footer section input:hover,body>footer section button:hover{transform:scale(1.2)}body>footer section input::-moz-focus-inner,body>footer section button::-moz-focus-inner{border:0}body>footer section input,body>footer section button svg{width:42px;height:42px}ol,ul{list-style:none}h1{text-shadow:0 1px 0 var(--rlpress),1px 0 0 var(--rlpress)}hr{border:1px solid var(--lpress);margin:2.4rem 0 1.2rem}::selection{background:var(--accent);color:#f0f0f0;text-shadow:none}div.filler{flex:1;align-items:center;justify-content:center}article>header h1{line-height:3rem}article>header img{margin:1rem 0 0}article>header p{font-size:.9rem;font-style:italic}h6,h5,h4,h3,h2,h1{font-family:oswald,sans-serif;font-weight:700}h1{font-size:2.25rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}main p{line-height:1.65rem}code{font-family:monospace}body>header>a{font-family:oswald,sans-serif;font-size:2.1rem;font-weight:700;transition:color .3s ease,opacity .2s ease-in-out,outline-color .3s ease;text-shadow:0 1px 0 var(--rlpress),1px 0 0 var(--rlpress);display:inline-block;margin:1.5rem 0 .75rem}article>header{margin:0 0 2rem}article>header h1{margin:9px 0}article>header p{margin:0}article h2,article h3,main.index h2,main.index h3{margin:2rem 0 1rem}article p,main.index p{margin:1.5rem 0}h6+p,h5+p,h4+p,h3+p,h2+p,h1+p{margin-top:0}h6,h5,h4,h3,h2{padding-top:1rem}audio,img,video{margin:1.8rem auto}a.anchor{background-image:none}a.anchor svg{fill:var(--accent);vertical-align:middle;width:24px;height:24px}h2 a.anchor{margin:0 0 0 .65rem}h2 a.anchor svg{transform:scale(1.7)}h3 a.anchor{margin:0 0 0 .55rem}h3 a.anchor svg{transform:scale(1.525)}h4 a.anchor{margin:0 0 0 .45rem}h4 a.anchor svg{transform:scale(1.35)}h5 a.anchor{margin:0 0 0 .35rem}h5 a.anchor svg{transform:scale(1.175)}h6 a.anchor{margin:0 0 0 .25rem}h6 a.anchor svg{transform:scale(1)}label,span.lnt,summary,sup.footnote-ref{user-select:none}article ol li,article ul li,main.index ol li,main.index ul li{margin-bottom:.45rem}ol{counter-reset:a-counter}ol li{counter-increment:a-counter}ol li::before{content:counter(a-counter)"";font-size:.85rem;font-weight:700;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress);background:var(--fg);border:1px solid var(--lpress);border-radius:2px;color:var(--bg);margin-right:12px;padding:2px 7.5px}section.footnotes{border-top:2px solid var(--fg);display:block;margin-top:2.4rem;padding:1rem 1rem 1.8rem}section.footnotes h2{margin:0 0 2rem}section.footnotes a{word-break:break-word}section.footnotes ol li p:first-of-type{display:inline;margin-left:-6px}section.footnotes a.footnote-backref{margin:0 0 0 9px;padding:0 9px;vertical-align:middle}section.footnotes a.footnote-backref svg{fill:var(--dtl);stroke:var(--lpress);stroke-width:.6rem;width:18px;height:18px}section.footnotes hr{display:none}sup{line-height:0}sup a.footnote-ref{text-decoration:none}sup a.footnote-ref::before{content:'['}sup a.footnote-ref::after{content:']'}code,.chroma,.chroma span{transition:background-color .3s ease,color .3s ease}article>pre,section.scroll,span.katex-display,div.highlight>pre,div.highlight>div{overflow-x:auto;transition:background-color .3s ease,color .3s ease,outline-color .3s ease;outline:3px solid transparent}article>pre:focus,section.scroll:focus,span.katex-display:focus,div.highlight>pre:focus,div.highlight>div:focus{outline-color:var(--accent)}section.scroll{border:1px solid var(--fg)}section.scroll>table{border-collapse:collapse;color:var(--fg);font-family:open sans,sans-serif;min-width:600px;width:100%}section.scroll>table td+td{border-left:1px solid var(--fg)}section.scroll>table tr+tr{border-top:1px solid var(--fg)}section.scroll>table tr:not(:first-child):last-of-type{border-bottom:1px solid var(--fg)}section.scroll>table td,section.scroll>table th{padding:9px}section.scroll>table th{background:var(--fg);color:var(--bg)}section.scroll>table tr{transition:background .2s ease-in-out,color .2s ease-in-out}section.scroll>table tr:nth-child(even){background:var(--alt-bg)}section.scroll>table tr:nth-child(odd){background:var(--bg)}section.scroll>table tr:hover{background:var(--accent);color:var(--dtl)}div.highlight>div table{padding:0 24px;max-height:75vh}div.chroma td:first-of-type{padding:0 18px 0 0}article>pre,span.katex-display,div.highlight>pre{padding:var(--hl-pad)}article>pre,span.katex-display,div.highlight>pre,div.highlight>div.chroma{border:1px solid #222;line-height:1.5rem;max-height:75vh}mark,p code,li code{border-radius:2px;padding:1px 3px;word-break:break-all}p code{word-break:break-word}li a{word-break:break-all}article>header section.tags{margin:.9rem 0 .6rem}article>header section.tags ul{padding:0}article>header section.tags li{display:inline}article>header section.tags a{display:inline-block;margin:0 7.5px 9px 0;padding:6px 15px 9px}ul.posts{padding:0}ul.posts li{margin:.5rem 0}ul.posts a{background:var(--accent);color:var(--dtl);display:flex;margin:15px auto;padding:15px 30px 18px;text-decoration:none;align-items:center;word-break:break-word}ul.posts a p{flex:1;margin:0}ul.posts a time{background-image:linear-gradient(0deg,var(--bgmod),100%,transparent);border-radius:2px;font-size:.85rem;margin-left:1.8rem;padding:0 9px 2px}@media(max-width:768px){ul.posts a{flex-direction:column-reverse;align-items:unset}ul.posts a time{margin:.3rem 0}}span.katex-display{border:1px dashed var(--alt-fg);overflow-x:auto;padding:15px 30px}span.katex-display:focus{border:1px solid #222}img{display:block;max-width:100%;max-height:75vh;outline:3px solid transparent;transition:border-color .3s ease,outline-color .3s ease,filter .3s ease}img.cover{border:1px solid var(--fg);object-fit:cover;width:100%}article p>img{display:block;margin:2rem auto;max-width:100%}figure{margin:1.8rem auto}figure img{display:block;margin:0 auto;max-width:90%}figure figcaption{font-size:.85rem;text-align:center;margin:.75rem;line-height:1.5rem}video{display:block;max-width:91%;max-height:75vh;outline:3px solid transparent;transition:border-color .3s ease,outline-color .3s ease}video:focus,video:hover{border-color:var(--accent);outline-color:var(--accent)}video.gifoid{margin:3rem auto;max-width:90%}audio{display:block;width:90%}img.border,video.border{border:1px solid var(--fg)}img.borderless,video.borderless{border:0}details.toc{background:var(--alt-bg);color:var(--dtl);transition:background-color .3s ease,border .3s ease,linear-gradient .3s ease}details.toc summary{background:var(--accent);border:1px solid rgba(0,0,0,.3);border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);font-family:oswald,sans-serif;padding:15px 30px 18.5px;outline:2px dashed transparent;outline-offset:3px;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress);transition:color .3s ease,opacity .2s ease,outline-color .2s ease,padding .2s ease}details.toc summary:hover{opacity:.75}details.toc summary:focus{outline-color:var(--accent)}details.toc[open] summary{border-radius:2px 2px 0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:15px 30px}details.toc[open] summary~*{animation:smoothReveal .3s ease-in-out}details.toc nav#TableOfContents{border-style:solid;border-color:rgba(0,0,0,.3);border-width:0 1px 1px;border-radius:0 0 2px 2px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.3);padding:6px 15px 15px 9px}details.toc nav#TableOfContents li:first-of-type{margin-top:.3rem}details.toc nav#TableOfContents ul li:not(:last-of-type),details.toc nav#TableOfContents ul li ul li:first-of-type,details.toc nav#TableOfContents ul li ol li:first-of-type,details.toc nav#TableOfContents ol li:not(:last-of-type),details.toc nav#TableOfContents ol li ul li:first-of-type,details.toc nav#TableOfContents ol li ol li:first-of-type{margin-bottom:.3rem}#TableOfContents,section.footnotes ol,article>ul,article>ol{line-height:1.5rem}#TableOfContents ul,section.footnotes ol{padding-left:24px}article>ul,article>ul ul,article>ol,article>ol ol{padding:0 24px}#TableOfContents ul li:before,article>ul li:before{content:'';margin-right:12px;background:var(--fg);border-radius:2px;width:18px;height:18px;display:inline-block;margin-bottom:-3px}@keyframes smoothReveal{0%{opacity:0}100%{opacity:1}}a.btn,a.footnote-backref,section.search-box button,section.social a,input[type=submit]{background:var(--accent);border:1px solid rgba(0,0,0,.3);color:var(--dtl);transition:background-color .3s ease,color .3s ease,opacity .2s ease-in-out,outline-color .3s ease;border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);text-decoration:none;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress)}a.btn:hover,a.footnote-backref:hover,section.search-box button:hover,section.social a:hover,input[type=submit]:hover{opacity:.75}button,input[type=color],summary{cursor:pointer}li.cats a{font-weight:700}ul.tags{display:flex;flex-wrap:wrap;padding:0}ul.tags a{display:flex;flex:1;align-items:center;margin:0 9px 9px 0;padding:7.5px 18px 10.5px;word-break:keep-all}ul.tags a span{background-image:linear-gradient(0deg,var(--bgmod),100%,transparent);margin-left:.45rem;padding:0 6px 1px;font-size:.85rem;border-radius:2px}ul.pagination{font-family:open sans,sans-serif;font-weight:700;text-align:center;margin:3rem auto 1rem;padding:0;display:flex;flex-wrap:wrap;justify-content:center}ul.pagination li{display:inline-block;transition:background .2s ease-in-out,border .2s ease-in-out}ul.pagination li a,ul.pagination li.current p{display:block;margin:0 9px 9px 0;padding:7.5px 12px 10.5px;width:21px}ul.pagination li a{color:var(--dtl)}ul.pagination li.current p{background:var(--alt-bg);border:1px solid rgba(0,0,0,.45);color:var(--alt-fg);line-height:inherit;user-select:none;border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress)}ul.pagination svg{fill:currentColor;width:18px;height:18px;display:inline-block;margin:auto auto -2px}section.search-box form{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch}section.search-box label{color:var(--fg);font-family:oswald,sans-serif;font-weight:700;flex-basis:100%;text-align:left;font-size:.9rem;letter-spacing:.5px;line-height:2rem;text-transform:uppercase}section.search-box input[name=q]{background:var(--input-bg);border:1px solid var(--input-bd);color:var(--input-fg);font-family:open sans,sans-serif;font-size:.9rem;line-height:1.5rem;padding:6px 12px;flex:1;transition:background-color .3s ease,border .3s ease,outline .2s ease-in-out;border-radius:2px 0 0 2px;outline:2px solid transparent}section.search-box input[name=q]:focus{outline-color:var(--accent)}section.search-box button{border-radius:0 2px 2px 0;padding:6px 30px;outline:2px dashed transparent;outline-offset:2px}section.search-box button:focus{outline-color:var(--accent)}section.search-box button:hover{opacity:.75}section.search-box button svg{width:15px;height:15px;fill:currentColor;stroke:var(--lpress);stroke-width:9px}#search-info{margin:1rem 0 2rem}#search-info p:first-of-type{font-family:oswald,sans-serif;font-size:1.5rem;font-weight:700}#search-info+ul{margin:0 0 6rem}p.error{color:var(--err)}mark{background:var(--accent);filter:contrast(1.2)invert(1)}abbr{text-decoration-style:solid}blockquote{background:var(--alt-bg);border-style:solid;border-width:1px 1px 1px 12px;color:var(--alt-fg);margin:var(--blk-mg);padding:0 30px}blockquote p{margin:1.2rem 0}kbd{background-color:#eee;border-radius:2px;border:1px solid #b4b4b4;box-shadow:0 1px 1px rgba(0,0,0,.2),0 2px 0 0 rgba(255,255,255,.7)inset;color:#333;display:inline-block;font-size:.85em;font-weight:700;line-height:1;padding:2px;white-space:nowrap}kbd>kbd{margin:0 2px}main{margin:90px auto;max-width:660px;padding:0 15px}article{margin:90px auto 120px}html{--blk-mg: 1.05rem .75rem;--il-pad: 0 12px;--hl-pad: 15.75px 18px}@media(min-width:769px){html{--blk-mg: 2.1rem 1.5rem;--il-pad: 6px 24px;--hl-pad: 21px 24px}}@media(min-width:769px){a.anchor:not(:focus){opacity:0}h6>a:focus+a.anchor,h6:hover>a.anchor,h5>a:focus+a.anchor,h5:hover>a.anchor,h4>a:focus+a.anchor,h4:hover>a.anchor,h3>a:focus+a.anchor,h3:hover>a.anchor,h2>a:focus+a.anchor,h2:hover>a.anchor{opacity:1}}p.noscript{font-weight:700}blockquote.twitter-tweet{border-color:#1da0f1;padding:0 30px 27px}div.__h_instagram{margin:2rem auto}div.__h_instagram a:nth-child(2){display:block;margin:.6rem 0;line-height:0}div.__h_instagram a:nth-child(2):hover{opacity:.75}div.__h_instagram img{border:1px solid var(--fg);max-width:100%;object-fit:cover}h2#vimeo-simple-shortcode{margin-bottom:1rem}div.s_video_simple{margin:0 auto;width:96%}div.s_video_simple a{border:1px solid var(--fg);display:block;margin:6px;line-height:0}div.s_video_simple a:hover{opacity:.75}section.youtube{border:1px solid var(--fg);margin:2rem 0;padding-bottom:56.25%;position:relative;overflow:hidden;height:0}section.info img{border:3px solid var(--fg);border-radius:9px} \ No newline at end of file
+@font-face{font-family:oswald;font-style:normal;font-weight:700;font-display:swap;src:local("Oswald"),url(../fonts/oswald-v29-latin-700.woff2)format("woff2"),url(../fonts/oswald-v29-latin-700.woff)format("woff")}@font-face{font-family:open sans;font-style:normal;font-weight:400;font-display:swap;src:local("Open Sans Regular"),local("OpenSans-Regular"),url(../fonts/open-sans-v17-latin-regular.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-regular.woff)format("woff")}@font-face{font-family:open sans;font-style:normal;font-weight:700;font-display:swap;src:local("Open Sans Bold"),local("OpenSans-Bold"),url(../fonts/open-sans-v17-latin-700.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-700.woff)format("woff")}@font-face{font-family:open sans;font-style:italic;font-weight:400;font-display:swap;src:local("Open Sans Italic"),local("OpenSans-Italic"),url(../fonts/open-sans-v17-latin-italic.woff2)format("woff2"),url(../fonts/open-sans-v17-latin-italic.woff)format("woff")}:root{font-size:18px}html{scroll-behavior:smooth}html[data-mode=light]{--bg: #ddd;--fg: #444;--alt-bg: #d6d6d6;--alt-fg: #333;--dtl: #fdfdfd;--err: #c70000;--bgmod: rgba(0, 0, 0, 0.3);--input-bg: #fefefe;--input-fg: #111;--input-bd: #ccc;--lpress: rgba(0, 0, 0, 0.2);--rlpress: rgba(255, 255, 255, 0.2)}html[data-mode=light] .chroma,html[data-mode=light] pre,html[data-mode=light] p code,html[data-mode=light] li code{color:#93a1a1;background-color:#002b36}html[data-mode=light] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}html[data-mode=light] .chroma .lntable{border-spacing:0;margin:0;border:0;width:auto;display:block}html[data-mode=light] .chroma .hl{display:block;width:100%;background-color:rgba(0,0,0,.3)}html[data-mode=light] .chroma .nb{color:#b58900}html[data-mode=light] .chroma .ge{font-style:italic}html[data-mode=light] .chroma .gr{color:#e8625f;font-weight:700}html[data-mode=light] .chroma .gs{font-weight:700}html[data-mode=light] .chroma .x,html[data-mode=light] .chroma .kc,html[data-mode=light] .chroma .no,html[data-mode=light] .chroma .ni,html[data-mode=light] .chroma .ne,html[data-mode=light] .chroma .se,html[data-mode=light] .chroma .gh{color:#e9662f}html[data-mode=light] .chroma .lnt,html[data-mode=light] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#848f8f}html[data-mode=light] .chroma .k,html[data-mode=light] .chroma .kn,html[data-mode=light] .chroma .kp,html[data-mode=light] .chroma .o,html[data-mode=light] .chroma .ow,html[data-mode=light] .chroma .cs,html[data-mode=light] .chroma .cp,html[data-mode=light] .chroma .cpf,html[data-mode=light] .chroma .gi{color:#859900}html[data-mode=light] .chroma .kd,html[data-mode=light] .chroma .kr,html[data-mode=light] .chroma .bp,html[data-mode=light] .chroma .nc,html[data-mode=light] .chroma .nd,html[data-mode=light] .chroma .nf,html[data-mode=light] .chroma .nt,html[data-mode=light] .chroma .nv,html[data-mode=light] .chroma .gu{color:#3294da}html[data-mode=light] .chroma .kt,html[data-mode=light] .chroma .sr,html[data-mode=light] .chroma .gd{color:#e8625f}html[data-mode=light] .chroma .s,html[data-mode=light] .chroma .sa,html[data-mode=light] .chroma .sc,html[data-mode=light] .chroma .dl,html[data-mode=light] .chroma .s2,html[data-mode=light] .chroma .si,html[data-mode=light] .chroma .sx,html[data-mode=light] .chroma .s1,html[data-mode=light] .chroma .ss,html[data-mode=light] .chroma .m,html[data-mode=light] .chroma .mb,html[data-mode=light] .chroma .mf,html[data-mode=light] .chroma .mh,html[data-mode=light] .chroma .mi,html[data-mode=light] .chroma .il,html[data-mode=light] .chroma .mo{color:#2aa198}html[data-mode=light] .chroma .sb,html[data-mode=light] .chroma .c,html[data-mode=light] .chroma .ch,html[data-mode=light] .chroma .cm,html[data-mode=light] .chroma .c1{color:#759299}html[data-mode=dark]{--bg: #1f1f1f;--fg: #bbb;--alt-bg: #1c1c1c;--alt-fg: #ddd;--dtl: #1a1a1a;--err: #ff3131;--bgmod: rgba(255, 255, 255, 0.3);--input-bg: #222;--input-fg: #f0f0f0;--input-bd: #262626;--lpress: rgba(255, 255, 255, 0.2);--rlpress: rgba(0, 0, 0, 0.2)}html[data-mode=dark] img{filter:contrast(0.85)grayscale(0.3)}html[data-mode=dark] .chroma,html[data-mode=dark] pre,html[data-mode=dark] p code,html[data-mode=dark] li code{color:#f8f8f2;background:#272822}html[data-mode=dark] .chroma .err{color:#eb0083;background-color:#1e0010}html[data-mode=dark] .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}html[data-mode=dark] .chroma .lntable{border-spacing:0;margin:0;border:0;width:auto;display:block}html[data-mode=dark] .chroma .hl{display:block;width:100%;background-color:rgba(0,0,0,.3)}html[data-mode=dark] .chroma .ge{font-style:italic}html[data-mode=dark] .chroma .gs{font-weight:700}html[data-mode=dark] .chroma .lnt,html[data-mode=dark] .chroma .ln{margin-right:.4em;padding:0 .4em;color:#8e8e8e}html[data-mode=dark] .chroma .k,html[data-mode=dark] .chroma .kc,html[data-mode=dark] .chroma .kd,html[data-mode=dark] .chroma .kp,html[data-mode=dark] .chroma .kr,html[data-mode=dark] .chroma .kt,html[data-mode=dark] .chroma .no{color:#66d9ef}html[data-mode=dark] .chroma .kn,html[data-mode=dark] .chroma .nt,html[data-mode=dark] .chroma .o,html[data-mode=dark] .chroma .ow,html[data-mode=dark] .chroma .gd{color:#f94e8a}html[data-mode=dark] .chroma .na,html[data-mode=dark] .chroma .nc,html[data-mode=dark] .chroma .nd,html[data-mode=dark] .chroma .ne,html[data-mode=dark] .chroma .nf,html[data-mode=dark] .chroma .nx,html[data-mode=dark] .chroma .gi{color:#a6e22e}html[data-mode=dark] .chroma .l,html[data-mode=dark] .chroma .se,html[data-mode=dark] .chroma .m,html[data-mode=dark] .chroma .mb,html[data-mode=dark] .chroma .mf,html[data-mode=dark] .chroma .mh,html[data-mode=dark] .chroma .mi,html[data-mode=dark] .chroma .il,html[data-mode=dark] .chroma .mo{color:#ae81ff}html[data-mode=dark] .chroma .ld,html[data-mode=dark] .chroma .s,html[data-mode=dark] .chroma .sa,html[data-mode=dark] .chroma .sb,html[data-mode=dark] .chroma .sc,html[data-mode=dark] .chroma .dl,html[data-mode=dark] .chroma .sd,html[data-mode=dark] .chroma .s2,html[data-mode=dark] .chroma .sh,html[data-mode=dark] .chroma .si,html[data-mode=dark] .chroma .sx,html[data-mode=dark] .chroma .sr,html[data-mode=dark] .chroma .s1,html[data-mode=dark] .chroma .ss{color:#e6db74}html[data-mode=dark] .chroma .c,html[data-mode=dark] .chroma .ch,html[data-mode=dark] .chroma .cm,html[data-mode=dark] .chroma .c1,html[data-mode=dark] .chroma .cs,html[data-mode=dark] .chroma .cp,html[data-mode=dark] .chroma .cpf,html[data-mode=dark] .chroma .gu{color:#949076}body{margin:0;padding:0;font-family:open sans,sans-serif;background:var(--bg);color:var(--fg);display:flex;min-height:100vh;flex-direction:column}body a{color:var(--accent);outline:2px dashed transparent;outline-offset:2px;transition:opacity .2s ease-in-out,outline .2s ease-in-out,padding .2s ease-in-out;word-break:break-word}body a:focus{outline-color:var(--accent)}body a:hover{opacity:.75}body>header,body>footer{background:var(--alt-bg);color:var(--alt-fg);text-align:center}body>header{padding:0 2rem 1rem}body>header nav{margin:.5rem 0 0}body>header nav ul{margin:0;display:flex;flex-wrap:wrap;justify-content:center;padding:0}body>header nav ul a{display:block;word-break:keep-all;margin:0 7.5px 15px;padding:9px 21px 12px;font-size:.75rem;font-weight:700;text-transform:uppercase}body>footer{padding:18px 45px}body>footer p{line-height:1.8rem;margin:15px 0;white-space:pre-wrap}body>footer a{transition:opacity .2s ease-in-out,padding .2s ease-in-out,outline-color .3s ease}body>footer a:hover{opacity:.75}body>footer section{padding:6px 0 12px}body>footer section input{border:1px solid var(--fg);outline-offset:3px;padding:0}body>footer section input::-webkit-color-swatch{border:none}body>footer section input::-webkit-color-swatch-wrapper{padding:0}body>footer section button{background:0;border:0;padding:3px 3px 0}body>footer section button svg{fill:var(--fg);stroke:var(--fg);stroke-width:.6rem}body>footer section input,body>footer section button{margin:0 7.5px;outline:2px dashed transparent;transition:outline .2s ease-in-out,transform .2s ease-in-out}body>footer section input:focus,body>footer section button:focus{outline-color:var(--accent)}body>footer section input:hover,body>footer section button:hover{transform:scale(1.2)}body>footer section input::-moz-focus-inner,body>footer section button::-moz-focus-inner{border:0}body>footer section input,body>footer section button svg{width:42px;height:42px}ol,ul{list-style:none}h1{text-shadow:0 1px 0 var(--rlpress),1px 0 0 var(--rlpress)}hr{border:1px solid var(--lpress);margin:2.4rem 0 1.2rem}::selection{background:var(--accent);color:#f0f0f0;text-shadow:none}div.filler{flex:1;align-items:center;justify-content:center}article>header h1{line-height:3rem}article>header img{margin:1rem 0 0}article>header p{font-size:.9rem;font-style:italic}h6,h5,h4,h3,h2,h1{font-family:oswald,sans-serif;font-weight:700}h1{font-size:2.25rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}main p{line-height:1.65rem}code{font-family:monospace}body>header>a{font-family:oswald,sans-serif;font-size:2.1rem;font-weight:700;transition:color .3s ease,opacity .2s ease-in-out,outline-color .3s ease;text-shadow:0 1px 0 var(--rlpress),1px 0 0 var(--rlpress);display:inline-block;margin:1.5rem 0 .75rem}article>header{margin:0 0 2rem}article>header h1{margin:9px 0}article>header p{margin:0}article h2,article h3,main.index h2,main.index h3{margin:2rem 0 1rem}article p,main.index p{margin:1.5rem 0}h6+p,h5+p,h4+p,h3+p,h2+p,h1+p{margin-top:0}h6,h5,h4,h3,h2{padding-top:1rem}audio,img,video{margin:1.8rem auto}a.anchor{background-image:none}a.anchor svg{fill:var(--accent);vertical-align:middle;width:24px;height:24px}h2 a.anchor{margin:0 0 0 .65rem}h2 a.anchor svg{transform:scale(1.7)}h3 a.anchor{margin:0 0 0 .55rem}h3 a.anchor svg{transform:scale(1.525)}h4 a.anchor{margin:0 0 0 .45rem}h4 a.anchor svg{transform:scale(1.35)}h5 a.anchor{margin:0 0 0 .35rem}h5 a.anchor svg{transform:scale(1.175)}h6 a.anchor{margin:0 0 0 .25rem}h6 a.anchor svg{transform:scale(1)}label,span.lnt,summary,sup.footnote-ref{user-select:none}article ol li,article ul li,main.index ol li,main.index ul li{margin-bottom:.45rem}ol{counter-reset:a-counter}ol li{counter-increment:a-counter}ol li::before{content:counter(a-counter)"";font-size:.85rem;font-weight:700;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress);background:var(--fg);border:1px solid var(--lpress);border-radius:2px;color:var(--bg);margin-right:12px;padding:2px 7.5px}section.footnotes{border-top:2px solid var(--fg);display:block;margin-top:2.4rem;padding:1rem 1rem 1.8rem}section.footnotes h2{margin:0 0 2rem}section.footnotes a{word-break:break-word}section.footnotes ol li p:first-of-type{display:inline;margin-left:-6px}section.footnotes a.footnote-backref{margin:0 0 0 9px;padding:0 9px;vertical-align:middle}section.footnotes a.footnote-backref svg{fill:var(--dtl);stroke:var(--lpress);stroke-width:.6rem;width:18px;height:18px}section.footnotes hr{display:none}sup{line-height:0}sup a.footnote-ref{text-decoration:none}sup a.footnote-ref::before{content:'['}sup a.footnote-ref::after{content:']'}code,.chroma,.chroma span{transition:background-color .3s ease,color .3s ease}article>pre,section.scroll,span.katex-display,div.highlight>pre,div.highlight>div{overflow-x:auto;transition:background-color .3s ease,color .3s ease,outline-color .3s ease;outline:3px solid transparent}article>pre:focus,section.scroll:focus,span.katex-display:focus,div.highlight>pre:focus,div.highlight>div:focus{outline-color:var(--accent)}section.scroll{border:1px solid var(--fg)}section.scroll>table{border-collapse:collapse;color:var(--fg);font-family:open sans,sans-serif;min-width:600px;width:100%}section.scroll>table td+td{border-left:1px solid var(--fg)}section.scroll>table tr+tr{border-top:1px solid var(--fg)}section.scroll>table tr:not(:first-child):last-of-type{border-bottom:1px solid var(--fg)}section.scroll>table td,section.scroll>table th{padding:9px}section.scroll>table th{background:var(--fg);color:var(--bg)}section.scroll>table tr{transition:background .2s ease-in-out,color .2s ease-in-out}section.scroll>table tr:nth-child(even){background:var(--alt-bg)}section.scroll>table tr:nth-child(odd){background:var(--bg)}section.scroll>table tr:hover{background:var(--accent);color:var(--dtl)}div.highlight>div table{padding:0 24px;max-height:75vh}div.chroma td:first-of-type{padding:0 18px 0 0}article>pre,span.katex-display,div.highlight>pre{padding:var(--hl-pad)}article>pre,span.katex-display,div.highlight>pre,div.highlight>div.chroma{border:1px solid #222;line-height:1.5rem;max-height:75vh}mark,p code,li code{border-radius:2px;padding:1px 3px;word-break:break-all}p code{word-break:break-word}li a{word-break:break-all}article>header section.tags{margin:.9rem 0 .6rem}article>header section.tags ul{padding:0}article>header section.tags li{display:inline}article>header section.tags a{display:inline-block;margin:0 7.5px 9px 0;padding:6px 15px 9px}ul.posts{padding:0}ul.posts li{margin:.5rem 0}ul.posts a{background:var(--accent);color:var(--dtl);display:flex;margin:15px auto;padding:15px 30px 18px;text-decoration:none;align-items:center;word-break:break-word}ul.posts a p{flex:1;margin:0}ul.posts a time{background-image:linear-gradient(0deg,var(--bgmod),100%,transparent);border-radius:2px;font-size:.85rem;margin-left:1.8rem;padding:0 9px 2px}@media(max-width:768px){ul.posts a{flex-direction:column-reverse;align-items:unset}ul.posts a time{margin:.3rem 0}}span.katex-display{border:1px dashed var(--alt-fg);overflow-x:auto;padding:15px 30px}span.katex-display:focus{border:1px solid #222}img{display:block;max-width:100%;max-height:75vh;outline:3px solid transparent;transition:border-color .3s ease,outline-color .3s ease,filter .3s ease}img.cover{border:1px solid var(--fg);object-fit:cover;width:100%}article p>img{display:block;margin:2rem auto;max-width:100%}figure{margin:1.8rem auto}figure img{display:block;margin:0 auto;max-width:90%}figure figcaption{font-size:.85rem;text-align:center;margin:.75rem;line-height:1.5rem}video{display:block;max-width:91%;max-height:75vh;outline:3px solid transparent;transition:border-color .3s ease,outline-color .3s ease}video:focus,video:hover{border-color:var(--accent);outline-color:var(--accent)}video.gifoid{margin:3rem auto;max-width:90%}audio{display:block;width:90%}img.border,video.border{border:1px solid var(--fg)}img.borderless,video.borderless{border:0}details.toc{background:var(--alt-bg);color:var(--dtl);transition:background-color .3s ease,border .3s ease,linear-gradient .3s ease}details.toc summary{background:var(--accent);border:1px solid rgba(0,0,0,.3);border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);font-family:oswald,sans-serif;padding:15px 30px 18.5px;outline:2px dashed transparent;outline-offset:3px;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress);transition:color .3s ease,opacity .2s ease,outline-color .2s ease,padding .2s ease}details.toc summary:hover{opacity:.75}details.toc summary:focus{outline-color:var(--accent)}details.toc[open] summary{border-radius:2px 2px 0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:15px 30px}details.toc[open] summary~*{animation:smoothReveal .3s ease-in-out}details.toc nav#TableOfContents{border-style:solid;border-color:rgba(0,0,0,.3);border-width:0 1px 1px;border-radius:0 0 2px 2px;box-shadow:inset 0 -3px 0 rgba(0,0,0,.3);padding:6px 15px 15px 9px}details.toc nav#TableOfContents li:first-of-type{margin-top:.3rem}details.toc nav#TableOfContents ul li:not(:last-of-type),details.toc nav#TableOfContents ul li ul li:first-of-type,details.toc nav#TableOfContents ul li ol li:first-of-type,details.toc nav#TableOfContents ol li:not(:last-of-type),details.toc nav#TableOfContents ol li ul li:first-of-type,details.toc nav#TableOfContents ol li ol li:first-of-type{margin-bottom:.3rem}#TableOfContents,section.footnotes ol,article>ul,article>ol{line-height:1.5rem}#TableOfContents ul,section.footnotes ol{padding-left:24px}article>ul,article>ul ul,article>ol,article>ol ol{padding:0 24px}#TableOfContents ul li:before,article>ul li:before{content:'';margin-right:12px;background:var(--fg);border-radius:2px;width:18px;height:18px;display:inline-block;margin-bottom:-3px}@keyframes smoothReveal{0%{opacity:0}100%{opacity:1}}a.btn,a.footnote-backref,section.search-box button,section.social a,input[type=submit]{background:var(--accent);border:1px solid rgba(0,0,0,.3);color:var(--dtl);transition:background-color .3s ease,color .3s ease,opacity .2s ease-in-out,outline-color .3s ease;border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);text-decoration:none;text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress)}a.btn:hover,a.footnote-backref:hover,section.search-box button:hover,section.social a:hover,input[type=submit]:hover{opacity:.75}button,input[type=color],summary{cursor:pointer}li.cats a{font-weight:700}ul.tags{display:flex;flex-wrap:wrap;padding:0}ul.tags a{display:flex;flex:1;align-items:center;margin:0 9px 9px 0;padding:7.5px 18px 10.5px;word-break:keep-all}ul.tags a span{background-image:linear-gradient(0deg,var(--bgmod),100%,transparent);margin-left:.45rem;padding:0 6px 1px;font-size:.85rem;border-radius:2px}ul.pagination{font-family:open sans,sans-serif;font-weight:700;text-align:center;margin:3rem auto 1rem;padding:0;display:flex;flex-wrap:wrap;justify-content:center}ul.pagination li{display:inline-block;transition:background .2s ease-in-out,border .2s ease-in-out}ul.pagination li a,ul.pagination li.current p{display:block;margin:0 9px 9px 0;padding:7.5px 12px 10.5px;width:21px}ul.pagination li a{color:var(--dtl)}ul.pagination li.current p{background:var(--alt-bg);border:1px solid rgba(0,0,0,.45);color:var(--alt-fg);line-height:inherit;user-select:none;border-radius:2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -3px 0 rgba(0,0,0,.3);text-shadow:0 1px 0 var(--lpress),1px 0 0 var(--lpress)}ul.pagination svg{fill:currentColor;width:18px;height:18px;display:inline-block;margin:auto auto -2px}section.search-box form{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch}section.search-box label{color:var(--fg);font-family:oswald,sans-serif;font-weight:700;flex-basis:100%;text-align:left;font-size:.9rem;letter-spacing:.5px;line-height:2rem;text-transform:uppercase}section.search-box input[name=q]{background:var(--input-bg);border:1px solid var(--input-bd);color:var(--input-fg);font-family:open sans,sans-serif;font-size:.9rem;line-height:1.5rem;padding:6px 12px;flex:1;transition:background-color .3s ease,border .3s ease,outline .2s ease-in-out;border-radius:2px 0 0 2px;outline:2px solid transparent}section.search-box input[name=q]:focus{outline-color:var(--accent)}section.search-box button{border-radius:0 2px 2px 0;padding:6px 30px;outline:2px dashed transparent;outline-offset:2px}section.search-box button:focus{outline-color:var(--accent)}section.search-box button:hover{opacity:.75}section.search-box button svg{width:15px;height:15px;fill:currentColor;stroke:var(--lpress);stroke-width:9px}#search-info{margin:1rem 0 2rem}#search-info+ul{margin:0 0 6rem}p.error{color:var(--err)}mark{background:var(--accent);filter:contrast(1.2)invert(1)}abbr{text-decoration-style:solid}blockquote{background:var(--alt-bg);border-style:solid;border-width:1px 1px 1px 12px;color:var(--alt-fg);margin:var(--blk-mg);padding:0 30px}blockquote p{margin:1.2rem 0}kbd{background-color:#eee;border-radius:2px;border:1px solid #b4b4b4;box-shadow:0 1px 1px rgba(0,0,0,.2),0 2px 0 0 rgba(255,255,255,.7)inset;color:#333;display:inline-block;font-size:.85em;font-weight:700;line-height:1;padding:2px;white-space:nowrap}kbd>kbd{margin:0 2px}main{margin:90px auto;max-width:660px;padding:0 15px}article{margin:90px auto 120px}html{--blk-mg: 1.05rem .75rem;--il-pad: 0 12px;--hl-pad: 15.75px 18px}@media(min-width:769px){html{--blk-mg: 2.1rem 1.5rem;--il-pad: 6px 24px;--hl-pad: 21px 24px}}@media(min-width:769px){a.anchor:not(:focus){opacity:0}h6>a:focus+a.anchor,h6:hover>a.anchor,h5>a:focus+a.anchor,h5:hover>a.anchor,h4>a:focus+a.anchor,h4:hover>a.anchor,h3>a:focus+a.anchor,h3:hover>a.anchor,h2>a:focus+a.anchor,h2:hover>a.anchor{opacity:1}}p.noscript{font-weight:700}blockquote.twitter-tweet{border-color:#1da0f1;padding:0 30px 27px}div.__h_instagram{margin:2rem auto}div.__h_instagram a:nth-child(2){display:block;margin:.6rem 0;line-height:0}div.__h_instagram a:nth-child(2):hover{opacity:.75}div.__h_instagram img{border:1px solid var(--fg);max-width:100%;object-fit:cover}h2#vimeo-simple-shortcode{margin-bottom:1rem}div.s_video_simple{margin:0 auto;width:96%}div.s_video_simple a{border:1px solid var(--fg);display:block;margin:6px;line-height:0}div.s_video_simple a:hover{opacity:.75}section.youtube{border:1px solid var(--fg);margin:2rem 0;padding-bottom:56.25%;position:relative;overflow:hidden;height:0}section.info img{border:3px solid var(--fg);border-radius:9px} \ No newline at end of file
diff --git a/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.json b/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.json
index 6e0d898..e2790ac 100644
--- a/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.json
+++ b/exampleSite/resources/_gen/assets/scss/scss/main.scss_694b6a5caed62875bf9278dff98b7f5e.json
@@ -1 +1 @@
-{"Target":"css/main.min.f7648dee97b55d85c175a47b7723444b3124207b196ddbb75d74b1fcba83ae2f3b3fc287dec1a6c4a126c9b87c026b721a22dfcfe45e9a4deb3a47b538e102d7.css","MediaType":"text/css","Data":{"Integrity":"sha512-92SN7pe1XYXBdaR7dyNESzEkIHsZbdu3XXSx/LqDri87P8KH3sGmxKEmybh8AmtyGiLfz+Remk3rOke1OOEC1w=="}} \ No newline at end of file
+{"Target":"css/main.min.420184f7e299360aabca4deaf6962cb3a367fb3cd3ea0e7d0b0eaf59998aa33bf1acf5fd268cb13ca0ba97fb56e3484b3a63659bb08ea59b0577984d8466ce65.css","MediaType":"text/css","Data":{"Integrity":"sha512-QgGE9+KZNgqryk3q9pYss6Nn+zzT6g59Cw6vWZmKozvxrPX9JoyxPKC6l/tW40hLOmNlm7COpZsFd5hNhGbOZQ=="}} \ No newline at end of file
diff --git a/exampleSite/resources/_gen/images/pixel_hu056d3b950fd68420b71ffba971f06775_35_960x1027_resize_box.png b/exampleSite/resources/_gen/images/pixel_hu056d3b950fd68420b71ffba971f06775_35_960x1027_resize_box.png
new file mode 100644
index 0000000..1def4ce
--- /dev/null
+++ b/exampleSite/resources/_gen/images/pixel_hu056d3b950fd68420b71ffba971f06775_35_960x1027_resize_box.png
Binary files differ
diff --git a/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_1280x0_resize_box_2.png b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_1280x0_resize_box_2.png
new file mode 100644
index 0000000..1456dff
--- /dev/null
+++ b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_1280x0_resize_box_2.png
Binary files differ
diff --git a/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_640x0_resize_q90_box_2.png b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_640x0_resize_q90_box_2.png
new file mode 100644
index 0000000..7aa5ca7
--- /dev/null
+++ b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_640x0_resize_q90_box_2.png
Binary files differ
diff --git a/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_960x0_resize_box_2.png b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_960x0_resize_box_2.png
new file mode 100644
index 0000000..07799ec
--- /dev/null
+++ b/exampleSite/resources/_gen/images/posts/lorem-ipsum/img/golden-lion-tamarin-drawing_hu171843260861e7577b1a2258aa9b8103_103752_960x0_resize_box_2.png
Binary files differ
diff --git a/i18n/en.toml b/i18n/en.toml
index 32a571c..f4acab3 100644
--- a/i18n/en.toml
+++ b/i18n/en.toml
@@ -106,6 +106,9 @@ other = "Categories"
[search_label]
other = "Search"
+[search_title]
+other = "Results"
+
[search_no_page_found]
other = "No pages found."
@@ -128,4 +131,4 @@ other = "Too many pages found. Please try to repeat the search using another ter
other = "Run search."
[search_input_title]
-other = "Search field. Accepts from 3 to 32 characters." \ No newline at end of file
+other = "Search field. Accepts from {{ .minLength }} to {{ .maxLength }} characters." \ No newline at end of file
diff --git a/i18n/pt.toml b/i18n/pt.toml
index 20b6c48..473a80d 100644
--- a/i18n/pt.toml
+++ b/i18n/pt.toml
@@ -106,6 +106,9 @@ other = "Categorias"
[search_label]
other = "Busca"
+[search_title]
+other = "Resultados"
+
[search_no_page_found]
other = "Nenhuma página encontrada."
@@ -128,4 +131,4 @@ other = "Muitas páginas encontradas. Por favor, tente repetir a busca usando ou
other = "Executar busca."
[search_input_title]
-other = "Campo de busca. Aceita de 3 até 32 caracteres." \ No newline at end of file
+other = "Campo de busca. Aceita de {{ .minLength }} até {{ .maxLength }} caracteres." \ No newline at end of file
diff --git a/layouts/404.html b/layouts/404.html
index 44e7d29..9de2956 100644
--- a/layouts/404.html
+++ b/layouts/404.html
@@ -1,8 +1,8 @@
{{ define "main" }}
<main>
- <h1>{{ .Site.Params.notFound.title }}</h1>
- <p>{{ .Site.Params.notFound.text }}</p>
+ <h1>{{ .Site.Params.notFound.title | default .Site.Data.default.notFound.title }}</h1>
+ <p>{{ .Site.Params.notFound.paragraph | default .Site.Data.default.notFound.paragraph }}</p>
</main>
{{ end }}
diff --git a/layouts/_default/_markup/render-heading.html b/layouts/_default/_markup/render-heading.html
index 629153c..768e3f3 100644
--- a/layouts/_default/_markup/render-heading.html
+++ b/layouts/_default/_markup/render-heading.html
@@ -8,12 +8,10 @@
Would like to test a few more things
-->
-{{ $icons := (.Page.Scratch.Get "svgBundle").RelPermalink }}
-
{{ $anchoredLinkLevels := seq 2 6 }}
{{ if in $anchoredLinkLevels .Level }}
- <h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }} {{ printf "<a class=\"anchor\" href=\"#%s\" title='%s \"%s\".'><svg aria-hidden=\"true\"><use xlink:href=\"%s#hashtag\"/></svg></a>" (.Anchor | safeURL) (T "anchor_for") (.Text | plainify | safeHTML) $icons | safeHTML }}</h{{ .Level }}>
+ <h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }} {{ printf "<a class=\"anchor\" href=\"#%s\" title='%s \"%s\".'><svg aria-hidden=\"true\"><use xlink:href=\"#hashtag\"/></svg></a>" (.Anchor | safeURL) (T "anchor_for") (.Text | plainify | safeHTML) | safeHTML }}</h{{ .Level }}>
{{ else }}
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}</h{{ .Level }}>
{{ end }}
diff --git a/layouts/_default/_markup/render-image.html b/layouts/_default/_markup/render-image.html
index 11ec7ea..f264cde 100644
--- a/layouts/_default/_markup/render-image.html
+++ b/layouts/_default/_markup/render-image.html
@@ -2,12 +2,8 @@
{{ $altText := .Text }}
{{ $class := .Page.Param "markupImgClass" }}
-<!-- Image processing resolutions -->
-{{ $highRes := .Page.Scratch.Get "highRes" }}
-{{ $mediumRes := .Page.Scratch.Get "mediumRes" }}
-{{ $lowRes := .Page.Scratch.Get "lowRes" }}
-
-{{ $markupAutoResizeWidth := .Page.Scratch.Get "markupAutoResizeWidth" }}
+<!-- Get image processing options -->
+{{ $imageProc := .Page.Scratch.Get "imageProc" }}
<!-- Default image path -->
{{ $imgPath := .Page.Param "imgPath" }}
@@ -16,27 +12,27 @@
{{ $file = path.Join $imgPath $file }}
{{ end }}
-{{ $encodedPixel := (printf "data:image/gif;base64,%s" ((resources.Get "pixel.gif").Content | base64Encode)) | safeURL }}
+{{ $encodedPixel := (printf "data:image/gif;base64,%s" ((resources.Get "img/pixel.gif").Content | base64Encode)) | safeURL }}
<!-- Assume file is local if found -->
{{ with $.Page.Resources.GetMatch $file }}
<!-- If image width is equal or greater than X, process it -->
- {{ if ge .Width $markupAutoResizeWidth }}
+ {{ if ge .Width $imageProc.markupAutoResizeWidth }}
<!--
HACK
Reduce reflow by generating a placeholder with similar size
-->
- {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "pixel.gif").Resize (printf "%vx%v %s" (.Resize (index $mediumRes 0)).Width (.Resize (index $mediumRes 0)).Height "png")).Content | base64Encode)) | safeURL }}
+ {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "img/pixel.gif").Resize (printf "%vx%v %s" (.Resize (index $imageProc.mediumRes 0)).Width (.Resize (index $imageProc.mediumRes 0)).Height "png")).Content | base64Encode)) | safeURL }}
<img
class="lazyload {{ $class }}"
loading="lazy"
- data-srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ data-srcset="{{ (.Resize (index $imageProc.highRes 0)).RelPermalink }} {{ index $imageProc.highRes 1 }}, {{ (.Resize (index $imageProc.mediumRes 0)).RelPermalink }} {{ index $imageProc.mediumRes 1 }}, {{ (.Resize (index $imageProc.lowRes 0)).RelPermalink }} {{ index $imageProc.lowRes 1 }}"
src="{{ $encodedPlaceholder }}"
- data-src="{{ (.Resize (index $mediumRes 0)).RelPermalink }}"
+ data-src="{{ (.Resize (index $imageProc.mediumRes 0)).RelPermalink }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
@@ -44,7 +40,7 @@
<img
{{ with $class }}class="{{ . }}"{{ end }}
loading="lazy"
- srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ srcset="{{ (.Resize (index $imageProc.highRes 0)).RelPermalink }} {{ index $imageProc.highRes 1 }}, {{ (.Resize (index $imageProc.mediumRes 0)).RelPermalink }} {{ index $imageProc.mediumRes 1 }}, {{ (.Resize (index $imageProc.lowRes 0)).RelPermalink }} {{ index $imageProc.lowRes 1 }}"
src="{{ $encodedPlaceholder }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 97a0104..7c73289 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -1,17 +1,10 @@
<!--
- Generate and set SVG bundle
- Also set image processing options
+ HACK
+ Set image processing options for render hooks
Currently here to avoid certain priority issues...
-->
-{{- $svgBundle := resources.Get "bundle.svg" | resources.ExecuteAsTemplate "img/bundle.svg" . | minify | resources.Fingerprint "md5" -}}
-{{- .Scratch.Set "svgBundle" $svgBundle -}}
-
-{{- .Scratch.Set "highRes" (.Site.Params.imageProc.highRes | default (slice "1280x" "1280w")) -}}
-{{- .Scratch.Set "mediumRes" (.Site.Params.imageProc.mediumRes | default (slice "960x" "960w")) -}}
-{{- .Scratch.Set "lowRes" (.Site.Params.imageProc.lowRes | default (slice "640x q90" "640w")) -}}
-
-{{- .Scratch.Set "markupAutoResizeWidth" (.Site.Params.imageProc.markupAutoResizeWidth | default 1280) -}}
+{{- .Scratch.Set "imageProc" (dict "highRes" (.Site.Params.imageProc.highRes | default .Site.Data.default.imageProc.highRes) "mediumRes" (.Site.Params.imageProc.mediumRes | default .Site.Data.default.imageProc.mediumRes) "lowRes" (.Site.Params.imageProc.lowRes | default .Site.Data.default.imageProc.lowRes) "markupAutoResizeWidth" (.Site.Params.imageProc.markupAutoResizeWidth | default .Site.Data.default.imageProc.markupAutoResizeWidth)) }}
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}" data-mode="{{ if .Site.Params.Style.isDark }}dark{{ else }}light{{ end }}">
@@ -34,6 +27,48 @@
<footer>
{{ partial "footer" . }}
</footer>
+
+ <svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" aria-hidden="true">
+
+ <symbol viewBox="0 0 512 512" id="adjust">
+ <path d="M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"/>
+ </symbol>
+
+ {{ if or (eq .Kind "section") (eq .Layout "search") }}
+ <symbol viewBox="0 0 512 512" id="search">
+ <path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"/>
+ </symbol>
+ {{ end }}
+
+ {{ block "svg-extra" . }}
+ <!-- Additional symbols -->
+ {{ end }}
+
+ {{ if .HasShortcode "social" }}
+
+ <!-- Reduce repetition... -->
+ {{ $centralizedOnPage := $.Page.Params.Social.Centralized }}
+ {{ $centralizedOnSite := $.Site.Params.Social.Centralized }}
+ {{ $decentralizedOnPage := $.Page.Params.Social.Decentralized }}
+ {{ $decentralizedOnSite := $.Site.Params.Social.Decentralized }}
+
+ <!-- Get info about social platform and icon id from "social.json" -->
+ {{ range .Site.Data.social }}
+ {{ if and (or (index (or $centralizedOnPage $centralizedOnSite) .entry) (index (or $decentralizedOnPage $decentralizedOnSite) .entry)) .icon }}
+ {{ $iconId := .icon.id }}
+ {{ $svgEssential := `(?:<svg (?:.*?)(viewBox="(?:.*?)")(?:.*?)>((?:.|\n)+?)(?:</svg>))` }}
+ {{ $asSymbol := printf `<symbol ${1} id="%s">${2}</symbol>` $iconId }}
+
+ <!-- Get the required SVG file and insert here as a symbol -->
+ {{ with (resources.Get (printf "svg/%s.svg" $iconId)) }}
+ {{ .Content | replaceRE $svgEssential $asSymbol | safeHTML }}
+ {{ end }}
+ {{ end }}
+ {{ end }}
+
+ {{ end }}
+
+ </svg>
<!--
Remnant JavaScript
diff --git a/layouts/_default/config.toml b/layouts/_default/config.toml
new file mode 100644
index 0000000..ffa7d3a
--- /dev/null
+++ b/layouts/_default/config.toml
@@ -0,0 +1,5 @@
+ # For a simple 404
+ [params.notFound]
+ title = "Page not found"
+ description = "This page was not found."
+ text = "Nothing to see here, buddy."
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index cf16257..fcbfef4 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -47,4 +47,14 @@
</main>
-{{ end }} \ No newline at end of file
+{{ end }}
+
+{{ define "svg-extra" }}
+ <symbol viewBox="0 0 256 512" id="angle-right">
+ <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"/>
+ </symbol>
+
+ <symbol viewBox="0 0 448 512" id="angle-double-right">
+ <path d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"/>
+ </symbol>
+{{ end }}
diff --git a/layouts/_default/search.html b/layouts/_default/search.html
index 851f6bf..d8f954d 100644
--- a/layouts/_default/search.html
+++ b/layouts/_default/search.html
@@ -4,6 +4,7 @@
{{ partial "search-form" . }}
+ <h1>{{ T "search_title" }}</h1>
<section id="search-info">
<!-- Info -->
</section>
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index 39d48d0..9f7593b 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -47,58 +47,22 @@
</details>
{{ end }}
- <!--
- For some reason, Chrome will ignore some elements when using TAB
- (while Firefox will not). Since Chrome is used by the majority,
- I feel like I need to "fix" this.
-
- For now, I'll be using "tabindex=0" (but then it makes Firefox
- complain about accessibility). OH, THIS GONNA BE GREAT.
-
- Also, sorry for my REGEX skills.
- -->
-
- <!-- i18n -->
- {{ $references := (printf "${1}<h2>%s</h2>" (T "references")) }}
- {{ $seeFootnotes := (printf "${1} title=\"%s\"" (T "see_footnotes")) }}
- {{ $returnToText := (printf "${1} title=\"%s\"" (T "return_to_text")) }}
-
- <!-- More i18n and also a11y, kind of -->
- {{ $highlightCodeBlockLabel := (printf "${1} aria-label=\"%s\" tabindex=0${2}" (T "box_containing_code")) }}
- {{ $indentedCodeBlockLabel := (printf "${1} aria-label=\"%s\" tabindex=0>${2}" (T "box_containing_code")) }}
-
- <!-- Wrap tables to make use of overflow-x property (plus the tabindex thing) -->
- {{ $improvedTable := printf "<section class=scroll tabindex=0> ${1} </section>" }}
-
- <!-- Replace the footnote return links with a text label -->
- {{ $footnoteReturnLink := (printf "${1}%s${2}" (T "return")) }}
-
- <!-- Replace the inline "padding:0" if not using the custom Chroma -->
- {{ $highlightPadding := (printf "${1}padding: var(--il-pad)") }}
-
- <!-- OR replace the footnote return links with a SVG icon -->
- {{ if .Site.Params.Style.hasIconAsFootnoteReturnLink }}
- {{ $footnoteReturnLink = (printf "${1}<svg transform=\"rotate(180) translate(0 -1)\" aria-hidden=\"true\" ><use xlink:href=\"%s#caret-down\"/></svg>${2}" $icons) }}
- {{ end }}
-
- <!--
- This is doing 4 things right now (or is it):
-
- * Adding "tabindex=0" to native table and code fences;
- * Making tables scrollable;
- * Localizing some text;
- * Adding a "h2" to footnotes;
- * Changing the default inline style for default Chroma.
- -->
-
- <!--
- For some reason, I don't seem to be able to capture the "↩" (not even using \x{21A9}).
- To bypass this, I basically captured everything but the "↩"...
- -->
-
- {{ .Content | replaceRE "(<table>(?:.|\n)+?</table>)" $improvedTable | replaceRE "(<div class=\"highlight\"><(?:pre|div) class=\"chroma\")(>)" $highlightCodeBlockLabel | replaceRE "(<pre)>(<code>)" $indentedCodeBlockLabel | replaceRE "(class=\"footnote-ref\")" $seeFootnotes | replaceRE "(class=\"footnote-backref\")" $returnToText | replaceRE "(<section class=\"footnotes\" role=\"doc-endnotes\">)" $references | replaceRE "(<a (?:.*) class=\"footnote-backref\" (?:.*)>)(?:.*)(</a>)" $footnoteReturnLink | replaceRE "(?:(<div class=\"highlight\">(?:.|\n)+?<table (?:.*?))(?:padding:0))" $highlightPadding | safeHTML }}
+ {{ partial "processed-content" . }}
</article>
</main>
{{ end }}
+
+{{ define "svg-extra" }}
+ <symbol viewBox="0 0 448 512" id="hashtag">
+ <path d="M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"/>
+ </symbol>
+
+ {{ if .Site.Params.Style.hasIconAsFootnoteReturnLink }}
+ <symbol viewBox="0 0 320 512" id="caret-down">
+ <path d="M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"/>
+ </symbol>
+ {{ end }}
+
+{{ end }} \ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
index 68d9ff0..a85e73e 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -6,7 +6,8 @@
{{ if .Content }}
<article>
<h1>{{ .Title | emojify }}</h1>
- {{ .Content }}
+
+ {{ partial "processed-content" . }}
</article>
{{ else }}
diff --git a/layouts/partials/.katex.html.kate-swp b/layouts/partials/.katex.html.kate-swp
new file mode 100644
index 0000000..77a0862
--- /dev/null
+++ b/layouts/partials/.katex.html.kate-swp
Binary files differ
diff --git a/layouts/partials/cover.html b/layouts/partials/cover.html
index 877b321..f48379e 100644
--- a/layouts/partials/cover.html
+++ b/layouts/partials/cover.html
@@ -1,10 +1,8 @@
{{ $file := .Params.cover }}
{{ $altText := .Params.coverAlt }}
-<!-- Image processing resolutions -->
-{{ $highRes := .Scratch.Get "highRes" }}
-{{ $mediumRes := .Scratch.Get "mediumRes" }}
-{{ $lowRes := .Scratch.Get "lowRes" }}
+<!-- Image processing options -->
+{{ $imageProc := (dict "highRes" (.Site.Params.imageProc.highRes | default .Site.Data.default.imageProc.highRes) "mediumRes" (.Site.Params.imageProc.mediumRes | default .Site.Data.default.imageProc.mediumRes) "lowRes" (.Site.Params.imageProc.lowRes | default .Site.Data.default.imageProc.lowRes)) }}
<!-- Default image path -->
{{ $imgPath := .Page.Param "imgPath" }}
@@ -19,15 +17,24 @@
HACK
Reduce reflow by generating a placeholder with similar size
-->
-
- {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "pixel.gif").Resize (printf "%vx%v %s" (.Resize (index $mediumRes 0)).Width (.Resize (index $mediumRes 0)).Height "png")).Content | base64Encode)) | safeURL }}
+
+ {{ $mediumRes := (index $imageProc.mediumRes 0) }}
+
+ {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "img/pixel.gif").Resize (printf "%vx%v %s" (.Resize $mediumRes).Width (.Resize $mediumRes).Height "png")).Content | base64Encode)) | safeURL }}
+
+ {{ $outputSet := slice }}
+ {{ $inputFile := . }}
+
+ {{ range $imageProc }}
+ {{ $outputSet = $outputSet | append (printf "%s %s" (($inputFile.Resize (index . 0)).RelPermalink) (index . 1)) }}
+ {{ end }}
<img
class="lazyload cover"
loading="lazy"
- data-srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ data-srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
- data-src="{{ (.Resize (index $mediumRes 0)).RelPermalink }}"
+ data-src="{{ (.Resize $mediumRes).RelPermalink }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
@@ -35,7 +42,7 @@
<img
class="cover"
loading="lazy"
- srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
index 75eecde..d737550 100644
--- a/layouts/partials/footer.html
+++ b/layouts/partials/footer.html
@@ -1,9 +1,6 @@
-<!-- Get SVG bundle -->
-{{ $icons := (.Scratch.Get "svgBundle").RelPermalink }}
-
<!-- Get default accent colors -->
-{{ $darkAccent := .Scratch.Get "darkAccent" }}
-{{ $lightAccent := .Scratch.Get "lightAccent" }}
+{{ $darkAccent := .Site.Params.Style.darkAccent | default .Site.Data.default.style.darkAccent }}
+{{ $lightAccent := .Site.Params.Style.lightAccent | default .Site.Data.default.style.lightAccent }}
<!-- Custom footer or default copyright -->
{{ if or (templates.Exists "partials/custom/footer") (templates.Exists "partials/custom/footer.html") }}
@@ -33,7 +30,7 @@
<!-- Footer button and color picker -->
<section class="req-js">
- <button title="{{ T "change_mode" }}"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><use xlink:href="{{ $icons }}#adjust"/></svg></button><input type="color" list="presets" value="{{ if .Site.Params.Style.isDark }}{{ $darkAccent }}{{ else }}{{ $lightAccent }}{{ end }}" title="{{ T "change_accent" }}" aria-label="{{ T "change_accent" }}"><datalist id="presets"><option value="{{ $lightAccent }}"><option value="{{ $darkAccent }}"><!-- Extra colors -->{{- range .Site.Params.style.presets -}}<option value="{{ . }}">{{ end }}</datalist>
+ <button title="{{ T "change_mode" }}"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><use xlink:href="#adjust"/></svg></button><input type="color" list="presets" value="{{ if .Site.Params.Style.isDark }}{{ $darkAccent }}{{ else }}{{ $lightAccent }}{{ end }}" title="{{ T "change_accent" }}" aria-label="{{ T "change_accent" }}"><datalist id="presets"><option value="{{ $lightAccent }}"><option value="{{ $darkAccent }}"><!-- Extra colors -->{{- range .Site.Params.style.presets -}}<option value="{{ . }}">{{ end }}</datalist>
</section>
<!-- noscript notice -->
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 8b77859..5ede204 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -12,7 +12,7 @@
{{ if (eq .Kind "404") }}
<!-- If 404 page -->
- {{ $currentTitle = .Site.Params.notFound.title }}
+ {{ $currentTitle = .Site.Params.notFound.title | default .Site.Data.default.notFound.title }}
{{ else if (eq .Kind "section") }}
@@ -61,7 +61,7 @@
{{ else if eq .Kind "taxonomyTerm" }}
{{ $currentDesc = printf "%s %s." (T "page_containing") ($currentTitle | lower) }}
{{ else if (eq .Kind "404") }}
- {{ $currentDesc = .Site.Params.notFound.description }}
+ {{ $currentDesc = .Site.Params.notFound.description | default .Site.Data.default.notFound.description }}
{{ end }}
@@ -134,10 +134,8 @@
-<!-- Image processing resolutions -->
-{{ $highRes := .Scratch.Get "highRes" }}
-{{ $mediumRes := .Scratch.Get "mediumRes" }}
-{{ $lowRes := .Scratch.Get "lowRes" }}
+<!-- Image processing options -->
+{{ $highRes := .Site.Params.imageProc.highRes | default .Site.Data.default.imageProc.highRes }}
<!-- Default image path -->
{{ $imgPath := .Page.Param "imgPath" }}
@@ -328,11 +326,6 @@
{{ end }}
-<!-- Set as scratch to be used in CSS and JS -->
-{{ $changeTransition := .Site.Params.Style.changeTransition | default ".5s ease" }}
-{{ .Scratch.Set "changeTransition" $changeTransition }}
-
-
<!-- Main CSS -->
{{ $main := resources.Get "scss/main.scss" | resources.ExecuteAsTemplate "css/main.scss" . | toCSS | minify | resources.Fingerprint "sha512" }}
<link rel="stylesheet" href="{{ $main.RelPermalink }}" integrity="{{ $main.Data.Integrity }}">
@@ -341,12 +334,8 @@
<!-- If JS is disabled -->
<noscript>
- {{ $darkAccent := .Site.Params.Style.darkAccent | default "#dd587c" }}
- {{ $lightAccent := .Site.Params.Style.lightAccent | default "#225670" }}
-
- <!-- Set default accent colors -->
- {{ .Scratch.Set "darkAccent" $darkAccent }}
- {{ .Scratch.Set "lightAccent" $lightAccent }}
+ {{ $darkAccent := .Site.Params.Style.darkAccent | default .Site.Data.default.style.darkAccent }}
+ {{ $lightAccent := .Site.Params.Style.lightAccent | default .Site.Data.default.style.lightAccent }}
<!-- Not properly tested? -->
<meta name="theme-color" content="{{ $darkAccent }}" {{ if not .Site.Params.Style.isDark }}media="(prefers-color-scheme: dark)"{{ end }}>
@@ -386,13 +375,12 @@
<!-- Should be loaded even if browser has native lazy load support -->
-{{ $lazysizes := resources.Get "lazysizes@5.2.2/lazysizes.min.js" | resources.ExecuteAsTemplate "js/lazysizes.min.js" . | minify | resources.Fingerprint "sha512" }}
+{{ $lazysizes := resources.Get "libs/lazysizes@5.2.2/lazysizes.min.js" | resources.ExecuteAsTemplate "js/lazysizes.min.js" . | minify | resources.Fingerprint "sha512" }}
<script defer src="{{ $lazysizes.RelPermalink }}" integrity="{{ $lazysizes.Data.Integrity }}" crossorigin="anonymous"></script>
-<!-- KaTeX -->
+<!-- Preconnect for KaTeX -->
{{ if or .Params.katex .Site.Params.katex .Params.math .Site.Params.math }}
- <!-- Preconnect -->
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
{{ end }}
@@ -408,7 +396,6 @@
{{ end }}
-
<!--
Priority JavaScript
If not using Hugo server, remove every "console.log()"
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
index de14d33..c4a803f 100644
--- a/layouts/partials/header.html
+++ b/layouts/partials/header.html
@@ -1,6 +1,6 @@
<!-- Site title -->
-{{ if or (templates.Exists "partials/custom/header") (templates.Exists "partials/custom/header.html") }}
- {{ partialCached "custom/header" . }}
+{{ if or (templates.Exists "partials/custom/site-title") (templates.Exists "partials/custom/site-title.html") }}
+ {{ partialCached "custom/site-title" . }}
{{ else }}
<a href="{{ .Site.BaseURL | relLangURL }}">{{ .Site.Title }}</a>
{{ end }}
diff --git a/layouts/partials/pagination.html b/layouts/partials/pagination.html
index 3321ceb..c349689 100644
--- a/layouts/partials/pagination.html
+++ b/layouts/partials/pagination.html
@@ -1,5 +1,3 @@
-{{ $icons := (.Scratch.Get "svgBundle").RelPermalink }}
-
{{ $pag := $.Paginator }}
@@ -26,7 +24,7 @@
<li>
<a class="btn" href="{{ $pag.First.URL }}" aria-label="{{ T "go_to_first" }}">
<svg aria-hidden="true">
- <use transform="rotate(180) translate(-18 -18)" xlink:href="{{ $icons }}#angle-double-right"/>
+ <use transform="rotate(180) translate(-18 -18)" xlink:href="#angle-double-right"/>
</svg>
</a>
</li>
@@ -37,7 +35,7 @@
<li>
<a class="btn" href="{{ $pag.Prev.URL }}" aria-label="{{ T "go_to_prev" }}">
<svg transform="rotate(180)" aria-hidden="true">
- <use xlink:href="{{ $icons }}#angle-right"/>
+ <use xlink:href="#angle-right"/>
</svg>
</a>
</li>
@@ -106,7 +104,7 @@
<li>
<a class="btn" href="{{ $pag.Next.URL }}" aria-label="{{ T "go_to_next" }}">
<svg aria-hidden="true">
- <use xlink:href="{{ $icons }}#angle-right"/>
+ <use xlink:href="#angle-right"/>
</svg>
</a>
</li>
@@ -117,7 +115,7 @@
<li>
<a class="btn" href="{{ $pag.Last.URL }}" aria-label="{{ T "go_to_last" }}">
<svg aria-hidden="true">
- <use xlink:href="{{ $icons }}#angle-double-right"/>
+ <use xlink:href="#angle-double-right"/>
</svg>
</a>
</li>
diff --git a/layouts/partials/processed-content.html b/layouts/partials/processed-content.html
new file mode 100644
index 0000000..fbbe353
--- /dev/null
+++ b/layouts/partials/processed-content.html
@@ -0,0 +1,52 @@
+<!--
+ HACK
+ For some reason, Chrome will ignore some elements when using TAB
+ (while Firefox will not). Since Chrome is used by the majority,
+ I feel like I need to "fix" this.
+
+ For now, I'll be using "tabindex=0" (even if it makes Firefox
+ complain about accessibility).
+
+ I'm also taking this as an opportunity to fix other minor details
+ like i18n and responsiveness.
+
+ Hopefully, most of the mess below can be removed in the future
+ as Hugo evolves and more render hooks are implemented. (It used
+ to also add anchor links to headings before render hooks were
+ implemented.)
+-->
+
+<!-- i18n -->
+{{ $references := (printf "${1}<h2>%s</h2>" (T "references")) }}
+{{ $seeFootnotes := (printf "${1} title=\"%s\"" (T "see_footnotes")) }}
+{{ $returnToText := (printf "${1} title=\"%s\"" (T "return_to_text")) }}
+
+<!-- More i18n and also a11y, kind of -->
+{{ $highlightCodeBlockLabel := (printf "${1} aria-label=\"%s\" tabindex=0${2}" (T "box_containing_code")) }}
+{{ $indentedCodeBlockLabel := (printf "${1} aria-label=\"%s\" tabindex=0>${2}" (T "box_containing_code")) }}
+
+<!-- Wrap tables to make use of overflow-x property (plus the tabindex thing) -->
+{{ $improvedTable := printf "<section class=scroll tabindex=0> ${1} </section>" }}
+
+<!-- Replace the footnote return links with a text label -->
+{{ $footnoteReturnLink := (printf "${1}%s${2}" (T "return")) }}
+
+<!-- Replace the inline "padding:0" present if using the default Chroma -->
+{{ $highlightPadding := (printf "${1}padding: var(--il-pad)") }}
+
+<!-- OR replace the footnote return links with a SVG icon -->
+{{ if .Site.Params.Style.hasIconAsFootnoteReturnLink }}
+ {{ $footnoteReturnLink = (printf "${1}<svg transform=\"rotate(180) translate(0 -1)\" aria-hidden=\"true\" ><use xlink:href=\"#caret-down\"/></svg>${2}") }}
+{{ end }}
+
+<!--
+ This is doing 4 things right now (or is it):
+
+ * Adding "tabindex=0" to native table and code fences;
+ * Making tables scrollable;
+ * Localizing some text;
+ * Adding a "h2" to footnotes;
+ * Changing the default inline style for default Chroma.
+-->
+
+{{ .Content | replaceRE "(<table>(?:.|\n)+?</table>)" $improvedTable | replaceRE "(<div class=\"highlight\"><(?:pre|div) class=\"chroma\")(>)" $highlightCodeBlockLabel | replaceRE "(<pre)>(<code>)" $indentedCodeBlockLabel | replaceRE "(class=\"footnote-ref\")" $seeFootnotes | replaceRE "(class=\"footnote-backref\")" $returnToText | replaceRE "(<section class=\"footnotes\" role=\"doc-endnotes\">)" $references | replaceRE "(<a (?:.*) class=\"footnote-backref\" (?:.*)>)(?:.*)(</a>)" $footnoteReturnLink | replaceRE "(?:(<div class=\"highlight\">(?:.|\n)+?<table (?:.*?))(?:padding:0))" $highlightPadding | safeHTML }}
diff --git a/layouts/partials/search-form.html b/layouts/partials/search-form.html
index cea29c8..8f3813d 100644
--- a/layouts/partials/search-form.html
+++ b/layouts/partials/search-form.html
@@ -1,18 +1,19 @@
-{{ $icons := (.Scratch.Get "svgBundle").RelPermalink }}
-
<!--
Assume that the first page in a collection with pages
using the "search" layout is the main search page
-->
{{ $searchPage := index (where .Site.RegularPages "Layout" "eq" "search") 0 }}
+{{ $minLength := .Site.Params.Search.minLength | default .Site.Data.default.search.minLength }}
+{{ $maxLength := .Site.Params.Search.maxLength | default .Site.Data.default.search.maxLength }}
+
<section class="req-js search-box">
{{ if eq .Layout "search" }}
<form role="search">
{{ else }}
<form role="search" action="{{ $searchPage.RelPermalink }}">
{{ end }}
- <label for="search">{{ T "search_label" }}</label><input type="search" id="search" title='{{ T "search_input_title" }}' name="q" {{ with .Site.Params.Search.placeholder }}placeholder="{{ . }}"{{ end }} minlength="3" maxlength="32" pattern="^[\S].*" required><button aria-label='{{ T "search_button_aria_label" }}' type="submit"><svg aria-hidden="true"><use xlink:href="{{ $icons }}#search"/></svg></button>
+ <label for="search-input">{{ T "search_label" }}</label><input type="search" id="search-input" title='{{ T "search_input_title" (dict "minLength" $minLength "maxLength" $maxLength) }}' name="q" {{ with .Site.Params.Search.placeholder }}placeholder="{{ . }}"{{ end }} minlength="{{ $minLength }}" maxlength="{{ $maxLength }}" pattern="^[\S].*" required><button aria-label='{{ T "search_button_aria_label" }}' type="submit"><svg aria-hidden="true"><use xlink:href="#search"/></svg></button>
</form>
<hr>
</section>
diff --git a/layouts/shortcodes/figure.html b/layouts/shortcodes/figure.html
index f9d6c9a..969e7c2 100644
--- a/layouts/shortcodes/figure.html
+++ b/layouts/shortcodes/figure.html
@@ -16,10 +16,8 @@
{{ $class := .Get "class" | default (.Get 2) }}
{{ $alt := .Get "alt" | default $caption }}
-<!-- Image processing resolutions -->
-{{ $highRes := .Page.Scratch.Get "highRes" }}
-{{ $mediumRes := .Page.Scratch.Get "mediumRes" }}
-{{ $lowRes := .Page.Scratch.Get "lowRes" }}
+<!-- Image processing options -->
+{{ $imageProc := (dict "highRes" (.Site.Params.imageProc.highRes | default .Site.Data.default.imageProc.highRes) "mediumRes" (.Site.Params.imageProc.mediumRes | default .Site.Data.default.imageProc.mediumRes) "lowRes" (.Site.Params.imageProc.lowRes | default .Site.Data.default.imageProc.lowRes)) }}
<!-- Default image path -->
{{ $imgPath := .Page.Param "imgPath" }}
@@ -35,15 +33,24 @@
Reduce reflow by generating a placeholder with similar size
-->
- {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "pixel.gif").Resize (printf "%vx%v %s" (.Resize (index $mediumRes 0)).Width (.Resize (index $mediumRes 0)).Height "png")).Content | base64Encode)) | safeURL }}
+ {{ $mediumRes := (index $imageProc.mediumRes 0) }}
+
+ {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "img/pixel.gif").Resize (printf "%vx%v %s" (.Resize $mediumRes).Width (.Resize $mediumRes).Height "png")).Content | base64Encode)) | safeURL }}
+
+ {{ $outputSet := slice }}
+ {{ $inputFile := . }}
+
+ {{ range $imageProc }}
+ {{ $outputSet = $outputSet | append (printf "%s %s" (($inputFile.Resize (index . 0)).RelPermalink) (index . 1)) }}
+ {{ end }}
<figure>
<img
class="lazyload {{ $class }}"
loading="lazy"
- data-srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ data-srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
- data-src="{{ (.Resize (index $mediumRes 0)).RelPermalink }}"
+ data-src="{{ (.Resize $mediumRes).RelPermalink }}"
{{ with $alt }}alt="{{ . }}"{{ end }}
/>
@@ -51,7 +58,7 @@
<img
{{ with $class }}class="{{ . }}"{{ end }}
loading="lazy"
- srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
{{ with $alt }}alt="{{ . }}"{{ end }}
/>
diff --git a/layouts/shortcodes/img.html b/layouts/shortcodes/img.html
index c651ff6..f50dc8b 100644
--- a/layouts/shortcodes/img.html
+++ b/layouts/shortcodes/img.html
@@ -14,10 +14,8 @@
{{ $altText := .Get "alt" | default (.Get 1) }}
{{ $class := .Get "class" | default (.Get 2) }}
-<!-- Image processing resolutions -->
-{{ $highRes := .Page.Scratch.Get "highRes" }}
-{{ $mediumRes := .Page.Scratch.Get "mediumRes" }}
-{{ $lowRes := .Page.Scratch.Get "lowRes" }}
+<!-- Image processing options -->
+{{ $imageProc := (dict "highRes" (.Site.Params.imageProc.highRes | default .Site.Data.default.imageProc.highRes) "mediumRes" (.Site.Params.imageProc.mediumRes | default .Site.Data.default.imageProc.mediumRes) "lowRes" (.Site.Params.imageProc.lowRes | default .Site.Data.default.imageProc.lowRes)) }}
<!-- Default image path -->
{{ $imgPath := .Page.Param "imgPath" }}
@@ -33,14 +31,23 @@
Reduce reflow by generating a placeholder with similar size
-->
- {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "pixel.gif").Resize (printf "%vx%v %s" (.Resize (index $mediumRes 0)).Width (.Resize (index $mediumRes 0)).Height "png")).Content | base64Encode)) | safeURL }}
+ {{ $mediumRes := (index $imageProc.mediumRes 0) }}
+
+ {{ $encodedPlaceholder := (printf "data:image/png;base64,%s" (((resources.Get "img/pixel.gif").Resize (printf "%vx%v %s" (.Resize $mediumRes).Width (.Resize $mediumRes).Height "png")).Content | base64Encode)) | safeURL }}
+
+ {{ $outputSet := slice }}
+ {{ $inputFile := . }}
+
+ {{ range $imageProc }}
+ {{ $outputSet = $outputSet | append (printf "%s %s" (($inputFile.Resize (index . 0)).RelPermalink) (index . 1)) }}
+ {{ end }}
<img
class="lazyload {{ $class }}"
loading="lazy"
- data-srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ data-srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
- data-src="{{ (.Resize (index $mediumRes 0)).RelPermalink }}"
+ data-src="{{ (.Resize $mediumRes).RelPermalink }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
@@ -48,7 +55,7 @@
<img
{{ with $class }}class="{{ . }}"{{ end }}
loading="lazy"
- srcset="{{ (.Resize (index $highRes 0)).RelPermalink }} {{ index $highRes 1 }}, {{ (.Resize (index $mediumRes 0)).RelPermalink }} {{ index $mediumRes 1 }}, {{ (.Resize (index $lowRes 0)).RelPermalink }} {{ index $lowRes 1 }}"
+ srcset='{{ delimit $outputSet ", " }}'
src="{{ $encodedPlaceholder }}"
{{ with $altText }}alt="{{ . }}"{{ end }}
/>
diff --git a/layouts/shortcodes/social.html b/layouts/shortcodes/social.html
index 733c184..6add002 100644
--- a/layouts/shortcodes/social.html
+++ b/layouts/shortcodes/social.html
@@ -1,5 +1,3 @@
-{{ $icons := (.Page.Scratch.Get "svgBundle").RelPermalink }}
-
<!-- Reduce repetition... -->
{{ $centralizedOnPage := $.Page.Params.Social.Centralized }}
{{ $centralizedOnSite := $.Site.Params.Social.Centralized }}
@@ -28,7 +26,7 @@
<a rel="me nofollow" href="{{ $url }}" title="{{ $label }}">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
- <use xlink:href="{{ printf "%s#%s" $icons $currentIcon }}"/>
+ <use xlink:href="#{{ $currentIcon }}"/>
</svg>
<p>{{ $label }}</p>
@@ -43,7 +41,7 @@
{{ range (index (or $decentralizedOnPage $decentralizedOnSite) $currentEntry) }}
<a rel="me nofollow" href="{{ index . 0 }}" title="{{ printf "%s (%s)" (index . 1) $currentLabel }}">
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
- <use xlink:href="{{ printf "%s#%s" $icons $currentIcon }}"/>
+ <use xlink:href="#{{ $currentIcon }}"/>
</svg>
<p>{{ index . 1 | truncate 15 }}</p>