From 4eba454a905c784e68f259222288c96f3b65c0bd Mon Sep 17 00:00:00 2001 From: Pavel Kirilin Date: Fri, 25 Jul 2025 09:08:30 +0200 Subject: [PATCH] Fixed theme. --- themes/hermit_zola/.gitignore | 1 + themes/hermit_zola/LICENSE | 20 + themes/hermit_zola/README.md | 82 ++ themes/hermit_zola/_config.yml | 1 + themes/hermit_zola/config.toml | 108 +++ themes/hermit_zola/sass/_animate.scss | 11 + themes/hermit_zola/sass/_icons.scss | 60 ++ themes/hermit_zola/sass/_normalize.scss | 341 +++++++ themes/hermit_zola/sass/_predefined.scss | 37 + themes/hermit_zola/sass/_syntax.scss | 59 ++ themes/hermit_zola/sass/style.scss | 867 ++++++++++++++++++ themes/hermit_zola/screenshot.png | Bin 0 -> 132513 bytes themes/hermit_zola/static/favicon-32x32.png | Bin 0 -> 4575 bytes themes/hermit_zola/static/favicon.ico | Bin 0 -> 4575 bytes themes/hermit_zola/static/js/main.js | 98 ++ themes/hermit_zola/templates/404.html | 24 + themes/hermit_zola/templates/index.html | 123 +++ themes/hermit_zola/templates/macros.html | 87 ++ themes/hermit_zola/templates/page.html | 176 ++++ themes/hermit_zola/templates/section.html | 73 ++ themes/hermit_zola/templates/tags/list.html | 54 ++ themes/hermit_zola/templates/tags/single.html | 71 ++ themes/hermit_zola/theme.toml | 31 + 23 files changed, 2324 insertions(+) create mode 100644 themes/hermit_zola/.gitignore create mode 100644 themes/hermit_zola/LICENSE create mode 100644 themes/hermit_zola/README.md create mode 100644 themes/hermit_zola/_config.yml create mode 100644 themes/hermit_zola/config.toml create mode 100644 themes/hermit_zola/sass/_animate.scss create mode 100644 themes/hermit_zola/sass/_icons.scss create mode 100644 themes/hermit_zola/sass/_normalize.scss create mode 100644 themes/hermit_zola/sass/_predefined.scss create mode 100644 themes/hermit_zola/sass/_syntax.scss create mode 100644 themes/hermit_zola/sass/style.scss create mode 100644 themes/hermit_zola/screenshot.png create mode 100644 themes/hermit_zola/static/favicon-32x32.png create mode 100644 themes/hermit_zola/static/favicon.ico create mode 100644 themes/hermit_zola/static/js/main.js create mode 100644 themes/hermit_zola/templates/404.html create mode 100644 themes/hermit_zola/templates/index.html create mode 100644 themes/hermit_zola/templates/macros.html create mode 100644 themes/hermit_zola/templates/page.html create mode 100644 themes/hermit_zola/templates/section.html create mode 100644 themes/hermit_zola/templates/tags/list.html create mode 100644 themes/hermit_zola/templates/tags/single.html create mode 100644 themes/hermit_zola/theme.toml diff --git a/themes/hermit_zola/.gitignore b/themes/hermit_zola/.gitignore new file mode 100644 index 0000000..364fdec --- /dev/null +++ b/themes/hermit_zola/.gitignore @@ -0,0 +1 @@ +public/ diff --git a/themes/hermit_zola/LICENSE b/themes/hermit_zola/LICENSE new file mode 100644 index 0000000..412046c --- /dev/null +++ b/themes/hermit_zola/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2019 VersBinarii + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/themes/hermit_zola/README.md b/themes/hermit_zola/README.md new file mode 100644 index 0000000..b1ccfcc --- /dev/null +++ b/themes/hermit_zola/README.md @@ -0,0 +1,82 @@ +[![Build Status](https://travis-ci.org/VersBinarii/hermit_zola.svg?branch=master)](https://travis-ci.org/VersBinarii/hermit_zola) + +# Hermit + +> this is a port of the [Hermit theme](https://github.com/Track3/hermit) for [Zola](https://www.getzola.org/) + +Hermit is a minimal & fast Zola theme for bloggers. + +![screenshot](screenshot.png) + +[View demo](https://versbinarii.gitlab.io/blog/) + +## Installation + +First download the theme to your `themes` directory: + +```bash +$ cd themes +$ git clone https://github.com/VersBinarii/hermit_zola +``` +and then enable it in your `config.toml`: + +```toml +theme = "hermit_zola" +``` + +## Configuration + +```toml +[extra] +home_subtitle = "Some profound and catchy statement" + +footer_copyright = ' · CC BY-NC 4.0' + +hermit_menu = [ + { link = "/posts", name = "Posts" }, + { link = "/about", name = "About" } +] + +hermit_social = [ + { name = "twitter", link = "https://twitter.com" }, + { name = "github", link = "https://github.com" }, + { name = "email", link = "mailto:author@domain.com" } +] + + + +[extra.highlightjs] +enable = true +clipboard = true +theme = "vs2015" + +[extra.disqus] +enable = false +# Take this from your Disqus account +shortname = "my-supa-dupa-blog" + +[extra.author] +name = "The Author" +email = "author@domain.com" + +[extra.google_analytics] +enable = false +id = "UA-4XXXXXXX-X" +``` + +### Table of content +Table of content can be enabled by adding +``` ++++ +[extra] +toc=true ++++ +``` +to the page front matter. Icon will then appear above the page title that will +allow to toggle the ToC. + +## License + +[MIT](LICENSE) + +Thanks to [Track3](https://github.com/Track3) for creating the original! diff --git a/themes/hermit_zola/_config.yml b/themes/hermit_zola/_config.yml new file mode 100644 index 0000000..1885487 --- /dev/null +++ b/themes/hermit_zola/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-midnight \ No newline at end of file diff --git a/themes/hermit_zola/config.toml b/themes/hermit_zola/config.toml new file mode 100644 index 0000000..33da82e --- /dev/null +++ b/themes/hermit_zola/config.toml @@ -0,0 +1,108 @@ +# Base URL of the site, the only required config argument +base_url = "https://example.com/blog" + +# Used in RSS by default +title = "Hermit Zola" +description = "My blog" +# The default language, used in RSS +default_language = "en" + +# Theme name to use +# theme = "" + +# Highlight all code blocks found +# Or enable the highlight.js in the 'extra' config section +highlight_code = false + +# Which theme to use for the code highlighting. +# See below for list of accepted values +highlight_theme = "agola-dark" + +# Whether to generate a RSS feed automatically +generate_feed = true +feed_filename = "rss.xml" + +# The number of articles to include in the RSS feed. Will include all items if +# not set (the default). +# rss_limit = 20 + +# The taxonomies to be rendered for that site and their configuration +# Example: +# taxonomies = [ +# {name = "tags", rss = true}, # each tag will have its own RSS feed +# {name = "categories", paginate_by = 5}, # 5 items per page for a term +# {name = "authors"}, # Basic definition: no RSS or pagination +# ] +# +taxonomies = [ + {name = "tags", rss = true} +] + +# Whether to compile the Sass files found in the `sass` directory +compile_sass = true + +# Whether to build a search index out of the pages and section +# content for the `default_language` +build_search_index = false + +# A list of glob patterns specifying asset files to ignore when +# processing the content directory. +# Defaults to none, which means all asset files are copied over to the public folder. +# Example: +# ignored_content = ["*.{graphml,xlsx}", "temp.*"] +ignored_content = [] + +# A list of directories to search for additional `.sublime-syntax` files in. +extra_syntaxes = [] + +# Optional translation object. The key if present should be a language code +[translations] + +# You can put any kind of data in there and it +# will be accessible in all templates +[extra] + +home_subtitle = "Some profound and catchy statement" + +footer_copyright = ' · CC BY-NC 4.0' + +hermit_menu = [ + { link = "/posts", name = "Posts" }, + { link = "/about", name = "About" } +] + +hermit_social = [ + { name = "twitter", link = "https://twitter.com" }, + { name = "github", link = "https://github.com" }, + { name = "email", link = "mailto:author@domain.com" } +] + + +# You can use highlight.js for code highlighting if you dont like the +# default one +[extra.highlightjs] +enable = true +clipboard = true +theme = "railscasts" + +[extra.footer] +index = true + +[extra.disqus] +enable = false +# Take this from your Disqus account +shortname = "my-supa-dupa-blog" +# Comments can be disabled per page by setting: +# [extra] +# disable_comments = true +# +# in the posts front-matter + + +[extra.author] +name = "The Author" +email = "author@domain.com" + +[extra.google_analytics] +enable = false +id = "UA-4XXXXXXX-X" diff --git a/themes/hermit_zola/sass/_animate.scss b/themes/hermit_zola/sass/_animate.scss new file mode 100644 index 0000000..2f47ef4 --- /dev/null +++ b/themes/hermit_zola/sass/_animate.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/*! + * animate.css -https://daneden.github.io/animate.css/ + * Version - 3.7.0 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2018 Daniel Eden + */ + +@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.delay-1s{-webkit-animation-delay:1s;animation-delay:1s}.animated.delay-2s{-webkit-animation-delay:2s;animation-delay:2s}.animated.delay-3s{-webkit-animation-delay:3s;animation-delay:3s}.animated.delay-4s{-webkit-animation-delay:4s;animation-delay:4s}.animated.delay-5s{-webkit-animation-delay:5s;animation-delay:5s}.animated.fast{-webkit-animation-duration:.8s;animation-duration:.8s}.animated.faster{-webkit-animation-duration:.5s;animation-duration:.5s}.animated.slow{-webkit-animation-duration:2s;animation-duration:2s}.animated.slower{-webkit-animation-duration:3s;animation-duration:3s}@media (prefers-reduced-motion){.animated{-webkit-animation:unset!important;animation:unset!important;-webkit-transition:none!important;transition:none!important}} \ No newline at end of file diff --git a/themes/hermit_zola/sass/_icons.scss b/themes/hermit_zola/sass/_icons.scss new file mode 100644 index 0000000..6722894 --- /dev/null +++ b/themes/hermit_zola/sass/_icons.scss @@ -0,0 +1,60 @@ +/* From: https://css.gg/app */ + +.gg-check { + box-sizing: border-box; + position: relative; + display: block; + transform: scale(var(--ggs, 1)); + width: 22px; + height: 22px; + border: 2px solid transparent; + border-radius: 100px; +} +.gg-check::after { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + left: 3px; + top: -1px; + width: 6px; + height: 10px; + border-width: 0 2px 2px 0; + border-style: solid; + transform-origin: bottom left; + transform: rotate(45deg); +} + +.gg-clipboard { + box-sizing: border-box; + position: relative; + display: block; + transform: scale(var(--ggs, 1)); + width: 18px; + height: 18px; + border: 2px solid; + border-radius: 2px; +} +.gg-clipboard::after, +.gg-clipboard::before { + content: ""; + display: block; + box-sizing: border-box; + position: absolute; + border-radius: 2px; + width: 10px; + left: 2px; +} +.gg-clipboard::before { + border: 2px solid; + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; + top: -2px; + height: 6px; +} +.gg-clipboard::after { + height: 2px; + background: currentColor; + box-shadow: 0 -4px 0 0; + bottom: 2px; +} diff --git a/themes/hermit_zola/sass/_normalize.scss b/themes/hermit_zola/sass/_normalize.scss new file mode 100644 index 0000000..3d6624c --- /dev/null +++ b/themes/hermit_zola/sass/_normalize.scss @@ -0,0 +1,341 @@ +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} \ No newline at end of file diff --git a/themes/hermit_zola/sass/_predefined.scss b/themes/hermit_zola/sass/_predefined.scss new file mode 100644 index 0000000..ec3c6c7 --- /dev/null +++ b/themes/hermit_zola/sass/_predefined.scss @@ -0,0 +1,37 @@ +// Colors +// +$theme: #018574; +$text: #c6cddb; +$light-grey: #494f5c; +$dark-grey: #3b3e48; +$highlight-grey: #7d828a; +$midnightblue: #31333d; + +// Fonts +// +$fonts: "Trebuchet MS", Verdana, "Verdana Ref", "Segoe UI", Candara, + "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; +$code-fonts: Consolas, "Andale Mono WT", "Andale Mono", Menlo, Monaco, + "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", + "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", "Courier New", + Courier, "YaHei Consolas Hybrid", monospace, "Segoe UI Emoji", "PingFang SC", + "Microsoft YaHei"; + +// Mixins +// +@mixin dimmed { + opacity: 0.6; +} + +@mixin aTag { + a { + word-break: break-all; + border: none; + box-shadow: inset 0 -4px 0 $theme; + transition-property: background-color; + + &:hover { + background-color: $theme; + } + } +} diff --git a/themes/hermit_zola/sass/_syntax.scss b/themes/hermit_zola/sass/_syntax.scss new file mode 100644 index 0000000..efcf550 --- /dev/null +++ b/themes/hermit_zola/sass/_syntax.scss @@ -0,0 +1,59 @@ +/* Background */ .chroma { color: #eee; background-color: $midnightblue } +/* Error */ .chroma .err { color: #960050; background-color: #1e0010 } +/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } +/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } +/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } +/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } +/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } +/* Keyword */ .chroma .k { color: #66d9ef } +/* KeywordConstant */ .chroma .kc { color: #66d9ef } +/* KeywordDeclaration */ .chroma .kd { color: #66d9ef } +/* KeywordNamespace */ .chroma .kn { color: #f92672 } +/* KeywordPseudo */ .chroma .kp { color: #66d9ef } +/* KeywordReserved */ .chroma .kr { color: #66d9ef } +/* KeywordType */ .chroma .kt { color: #66d9ef } +/* NameAttribute */ .chroma .na { color: #a6e22e } +/* NameClass */ .chroma .nc { color: #a6e22e } +/* NameConstant */ .chroma .no { color: #66d9ef } +/* NameDecorator */ .chroma .nd { color: #a6e22e } +/* NameException */ .chroma .ne { color: #a6e22e } +/* NameFunction */ .chroma .nf { color: #a6e22e } +/* NameOther */ .chroma .nx { color: #a6e22e } +/* NameTag */ .chroma .nt { color: #f92672 } +/* Literal */ .chroma .l { color: #ae81ff } +/* LiteralDate */ .chroma .ld { color: #e6db74 } +/* LiteralString */ .chroma .s { color: #e6db74 } +/* LiteralStringAffix */ .chroma .sa { color: #e6db74 } +/* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } +/* LiteralStringChar */ .chroma .sc { color: #e6db74 } +/* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } +/* LiteralStringDoc */ .chroma .sd { color: #e6db74 } +/* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } +/* LiteralStringEscape */ .chroma .se { color: #ae81ff } +/* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } +/* LiteralStringInterpol */ .chroma .si { color: #e6db74 } +/* LiteralStringOther */ .chroma .sx { color: #e6db74 } +/* LiteralStringRegex */ .chroma .sr { color: #e6db74 } +/* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } +/* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } +/* LiteralNumber */ .chroma .m { color: #ae81ff } +/* LiteralNumberBin */ .chroma .mb { color: #ae81ff } +/* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } +/* LiteralNumberHex */ .chroma .mh { color: #ae81ff } +/* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } +/* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } +/* LiteralNumberOct */ .chroma .mo { color: #ae81ff } +/* Operator */ .chroma .o { color: #f92672 } +/* OperatorWord */ .chroma .ow { color: #f92672 } +/* Comment */ .chroma .c { color: #75715e } +/* CommentHashbang */ .chroma .ch { color: #75715e } +/* CommentMultiline */ .chroma .cm { color: #75715e } +/* CommentSingle */ .chroma .c1 { color: #75715e } +/* CommentSpecial */ .chroma .cs { color: #75715e } +/* CommentPreproc */ .chroma .cp { color: #75715e } +/* CommentPreprocFile */ .chroma .cpf { color: #75715e } +/* GenericDeleted */ .chroma .gd { color: #f92672 } +/* GenericEmph */ .chroma .ge { font-style: italic } +/* GenericInserted */ .chroma .gi { color: #a6e22e } +/* GenericStrong */ .chroma .gs { font-weight: bold } +/* GenericSubheading */ .chroma .gu { color: #75715e } diff --git a/themes/hermit_zola/sass/style.scss b/themes/hermit_zola/sass/style.scss new file mode 100644 index 0000000..d9824ac --- /dev/null +++ b/themes/hermit_zola/sass/style.scss @@ -0,0 +1,867 @@ +@import "predefined.scss"; +@import "normalize.scss"; +@import "syntax.scss"; +@import "animate.scss"; +@import "icons.scss"; + +/* Webkit Scrollbar Customize */ +::-webkit-scrollbar { + width: 8px; + height: 8px; + background: $midnightblue; +} + +::-webkit-scrollbar-thumb { + background: #888; + + &:hover { + background: $text; + } +} + +html { + background: $light-grey; + line-height: 1.6; + letter-spacing: 0.06em; +} + +body, +button, +input, +select, +textarea { + color: $text; + font-family: $fonts; +} + +pre, +code, +pre tt { + font-family: $code-fonts; +} + +pre { + max-height: 40em; + padding: 0.7em 1.1em; + overflow: auto; + overflow-y: auto; + overflow-x: scroll; + font-size: 0.9em; + line-height: 1.5; + letter-spacing: normal; + white-space: pre-wrap; + word-wrap: break-word; + color: #eee; + border-radius: 4px; + // -webkit-overflow-scrolling: touch; + + .code-badge { + position: absolute !important; + right: 0; + top: 0; + z-index: 10; + + .code-badge-language { + display: none; + } + } + + code { + padding: 0; + margin: 0; + + table { + td { + padding: 0; + border: none; + word-break: keep-all; + padding-right: 0.5em; + } + } + } + + code[data-name] { + display: block; + padding-top: 2em !important; + + &::before { + content: attr(data-name); + position: absolute; + font-weight: bold; + top: 0; + left: 0; + padding-left: 1em; + padding-top: 0.7em; + width: 100%; + background-color: $midnightblue; + z-index: 1; + color: $text; + } + } +} + +code { + color: #eee; + border-radius: 3px; + padding: 0 3px; + margin: 0 4px; + word-break: break-all; + letter-spacing: normal; +} + +blockquote { + border-left: 0.25em solid; + margin: 1em; + padding: 0 1em; + font-style: italic; + + cite { + font-weight: bold; + font-style: normal; + + &::before { + content: "—— "; + } + } +} + +a { + color: $text; + text-decoration: none; + border: none; + transition-property: color; + transition-duration: 0.4s; + transition-timing-function: ease-out; + + &:hover { + color: #fff; + } + + &:focus { + outline: none; + } +} + +hr { + opacity: 0.2; + border-width: 0 0 5px 0; + border-style: dashed; + background: transparent; + width: 50%; + margin: 1.8em auto; +} + +table { + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + width: 100%; + max-width: 100%; + + th, + td { + padding: 1.5%; + border: 1px solid; + } + + th { + font-weight: 700; + vertical-align: bottom; + } +} + +.section-inner { + margin: 0 auto; + max-width: 1200px; + width: 93%; +} + +.thin { + max-width: 720px; + margin: auto; +} + +.feather { + display: inline-block; + vertical-align: -0.125em; + width: 1em; + height: 1em; +} + +.desktop-only, +.desktop-only-ib { + display: none; +} + +// Accessibility +// +.screen-reader-text { + border: 0; + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute !important; + width: 1px; + word-wrap: normal !important; +} + +.screen-reader-text:focus { + background-color: #f1f1f1; + border-radius: 3px; + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto !important; + clip-path: none; + color: #21759b; + display: block; + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + height: auto; + left: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; +} + +// Header & Footer +// +#site-header { + position: fixed; + z-index: 1; + bottom: 0; + width: 100%; + box-sizing: border-box; + box-shadow: -1px -2px 3px rgba(0, 0, 0, 0.45); + background-color: $dark-grey; +} + +.hdr-wrapper { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.5em 0; + font-size: 1.2rem; + + .site-branding { + display: inline-block; + margin-right: 0.8em; + font-size: 1.2em; + } + + .site-nav { + display: inline-block; + font-size: 1.1em; + opacity: 0.8; + + a { + margin-left: 0.8em; + } + } +} + +.hdr-icons { + font-size: 1.2em; +} + +.hdr-social { + display: inline-block; + margin-left: 0.6em; + + & > a { + margin-left: 0.4em; + } +} + +.hdr-btn { + border: none; + background: none; + padding: 0; + margin-left: 0.4em; + cursor: pointer; +} + +#menu-btn { + display: none; + margin-left: 0.6em; + cursor: pointer; +} + +#mobile-menu { + position: fixed; + bottom: 4.8em; + right: 1.5em; + display: none; + padding: 0.6em 1.8em; + z-index: 1; + box-sizing: border-box; + box-shadow: -1px -2px 3px 0px rgba(0, 0, 0, 0.45); + background-color: $dark-grey; + + ul { + list-style: none; + margin: 0; + padding: 0; + line-height: 2; + font-size: 1.2em; + } +} + +#site-footer { + text-align: center; + font-size: 0.9em; + margin-bottom: 96px; + margin-top: 64px; + + p { + margin: 0; + } +} + +// Spotlight +// +#spotlight { + display: flex; + height: 100vh; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 93%; + margin: auto; + font-size: 1.5rem; + + &.error-404 { + flex-direction: row; + line-height: normal; + } +} + +p.img-404 { + margin: 0; + + svg { + width: 180px; + max-width: 100%; + height: auto; + } +} + +.banner-404 { + margin-left: 2em; + + h1 { + font-size: 3em; + margin: 0.5rem 0; + } + + p { + margin-top: 0; + margin-bottom: 0.6em; + } + + .btn-404 { + font-size: 0.8em; + + a { + display: inline-block; + border: 2px solid $text; + border-radius: 5px; + padding: 5px; + transition-property: color, border-color; + word-break: break-all; + + &:first-child { + margin-right: 1em; + } + + &:hover { + border-color: #fff; + } + + svg { + margin-right: 0.5em; + } + } + } +} + +#home-center { + display: flex; + flex-grow: 1; + flex-direction: column; + justify-content: center; +} + +#home-title { + margin: 0; + text-align: center; +} + +#home-subtitle { + margin-top: 0; + margin-bottom: 1.5em; + text-align: center; + line-height: normal; + font-size: 0.7em; + font-style: italic; + opacity: 0.9; +} + +#home-social { + font-size: 1.4em; + text-align: center; + opacity: 0.8; + + a { + margin: 0 0.2em; + } +} + +#home-nav { + opacity: 0.8; + + a { + display: block; + text-align: center; + margin-top: 0.5em; + } +} + +#home-footer { + text-align: center; + font-size: 0.6em; + line-height: normal; + @include dimmed; + + p { + margin-top: 0; + } +} + +// list.html +// +.posts-group { + display: flex; + margin-bottom: 1.9em; + line-height: normal; + + .post-year { + padding-top: 6px; + margin-right: 1.8em; + font-size: 1.6em; + @include dimmed; + } + + .posts-list { + flex-grow: 1; + margin: 0; + padding: 0; + list-style: none; + } + + .post-item { + border-bottom: 1px $highlight-grey dashed; + + a { + display: flex; + justify-content: space-between; + align-items: baseline; + padding: 12px 0; + } + } + + .post-day { + flex-shrink: 0; + margin-left: 1em; + @include dimmed; + } +} + +// single.html +// +.bg-img { + width: 100vw; + height: 100vh; + opacity: 0.03; + z-index: -1; + position: fixed; + top: 0; + background-attachment: fixed; + background-repeat: no-repeat; + background-size: cover; + background-position: center; + transition: opacity 0.5s; +} + +.show-bg-img { + z-index: 100; + opacity: 1; + cursor: pointer; +} + +.post-header { + margin-top: 1.2em; + line-height: normal; + + .post-meta { + font-size: 0.9em; + letter-spacing: normal; + @include dimmed; + } + + h1 { + margin-top: 0.1em; + } +} + +hr.post-end { + width: 50%; + margin-top: 1.6em; + margin-bottom: 0.8em; + margin-left: 0; + border-style: solid; + border-bottom-width: 4px; +} + +.content { + text-align: justify; + text-justify: inter-ideograph; //For IE/Edge + + @include aTag; + + figure { + max-width: 100%; + height: auto; + margin: 0; + text-align: center; + + p { + font-size: 0.8em; + font-style: italic; + @include dimmed; + } + } + + figure.left { + float: left; + margin-right: 1.5em; + max-width: 50%; + } + + figure.right { + float: right; + margin-left: 1.5em; + max-width: 50%; + } + + figure.big { + max-width: 100vw; + } + + img { + display: block; + max-width: 100%; + height: auto; + margin: auto; + border-radius: 4px; + } + + ul, + ol { + padding: 0; + margin-left: 1.8em; + } +} + +.footnote-definition { + font-size: 0.85em; + + a { + box-shadow: none; + text-decoration: underline; + transition-property: color; + + &:hover { + background: transparent; + } + + &.footnote-return { + text-decoration: none; + } + } + + ol { + line-height: 1.8; + } + p { + display: inline; + } +} + +.footnote-ref a { + box-shadow: none; + text-decoration: none; + padding: 2px; + border-radius: 2px; + background-color: $midnightblue; +} + +.post-info { + font-size: 0.8rem; + line-height: normal; + @include dimmed; + + p { + margin: 0.8em 0; + } + + a:hover { + border-bottom: 1px solid $theme; + } + + svg { + margin-right: 0.8em; + } + + .tag { + margin-right: 0.5em; + + &::before { + content: "#"; + } + } +} + +#toc { + position: fixed; + left: 50%; + top: 0; + display: none; +} + +.toc-title { + margin-left: 1em; + margin-bottom: 0.5em; + font-size: 0.8em; + font-weight: bold; +} + +#TableOfContents { + font-size: 0.8em; + @include dimmed; + + ul { + padding-left: 1em; + margin: 0; + } + + & > ul { + list-style-type: none; + + ul ul { + font-size: 0.9em; + } + } + + a:hover { + border-bottom: $theme 1px solid; + } +} + +.post-nav { + display: flex; + justify-content: space-between; + margin-top: 1.5em; + margin-bottom: 2.5em; + font-size: 1.2em; + + a { + flex-basis: 50%; + flex-grow: 1; + } + + .next-post { + text-align: left; + padding-right: 5px; + } + .prev-post { + text-align: right; + padding-left: 5px; + } + + .post-nav-label { + font-size: 0.8em; + opacity: 0.8; + text-transform: uppercase; + } +} + +// Media Queries +// +@media (min-width: 800px) { + .site-main { + margin-top: 3em; + } + + hr.post-end { + width: 40%; + } +} + +@media (min-width: 960px) { + .site-main { + margin-top: 6em; + } +} + +@media (min-width: 1300px) { + .site-main { + margin-top: 8em; + } + + .desktop-only, + #toc.show-toc { + display: block; + } + + .desktop-only-ib { + display: inline-block; + } + + figure.left { + margin-left: -240px; + p { + text-align: left; + } + } + + figure.right { + margin-right: -240px; + p { + text-align: right; + } + } + + figure.big { + width: 1200px; + margin-left: -240px; + } + + hr.post-end { + width: 30%; + } + + #toc { + top: 13em; + margin-left: 370px; + max-width: 220px; + } +} + +@media (min-width: 1800px) { + .site-main { + margin-top: 10em; + } + + .section-inner { + max-width: 1600px; + } + + .thin { + max-width: 960px; + } + + figure.left { + max-width: 75%; + margin-left: -320px; + } + + figure.right { + max-width: 75%; + margin-right: -320px; + } + + figure.big { + width: 1600px; + margin-left: -320px; + } + + hr.post-end { + width: 30%; + } + + #toc { + top: 15em; + margin-left: 490px; + max-width: 300px; + } +} + +@media (max-width: 760px) { + .hide-in-mobile, + .site-nav.hide-in-mobile { + display: none; + } + + #menu-btn { + display: inline-block; + } + + .posts-group { + display: block; + + .post-year { + margin: -6px 0 4px; + } + } + + #spotlight.error-404 { + flex-direction: column; + text-align: center; + + .banner-404 { + margin: 0; + } + } +} + +@media (max-width: 520px) { + .content figure.left, + .content figure.right { + float: unset; + max-width: 100%; + margin: 0; + } + + hr.post-end { + width: 60%; + } + + #mobile-menu { + right: 1.2em; + } +} + +.code-badge { + margin: 0.4em 0em; +} + +.highlight-copy-btn { + margin-right: 7px; + float: right; + border: 0; + border-radius: 4px; + padding: 1px; + font-size: 0.7em; + line-height: 1.8; + color: #fff; + background-color: #777; + opacity: 0.6; + min-width: 55px; + text-align: center; +} diff --git a/themes/hermit_zola/screenshot.png b/themes/hermit_zola/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..cfe7e726ff46da45f0da2fdfafcff1cc22701d72 GIT binary patch literal 132513 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%0Atxrj2IDNL+|N` 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.(&Gsim5S0bI!jtR`5Q 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 F{u>VQCB}aC(Fg6^OMQP&;Gu|+=ffkR z-1k7f)I5*ICUaM&;x3wSiF-gcanE`Y?xFF*GK_`PxY*W8Z{sTNB*=jc+dU#1xfi`a zZbQpjTGHilN8nHF4n~aD%w0|5y|Q})+&z^%U&s6Uecl_s$+~ctsq=h^Y3}apTvucZ ej`y9poAuQ=E^yiI!ViXwy-luTa;sYc_see=d`4OT literal 0 HcmV?d00001 diff --git a/themes/hermit_zola/static/favicon.ico b/themes/hermit_zola/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b57e2b8f5e66bbf5cecfa74205905c6136b282ce GIT binary patch literal 4575 zcmd^CJ5Izf5FG~>VQCB}aC(Fg6^OMQP&;Gu|+=ffkR z-1k7f)I5*ICUaM&;x3wSiF-gcanE`Y?xFF*GK_`PxY*W8Z{sTNB*=jc+dU#1xfi`a zZbQpjTGHilN8nHF4n~aD%w0|5y|Q})+&z^%U&s6Uecl_s$+~ctsq=h^Y3}apTvucZ ej`y9poAuQ=E^yiI!ViXwy-luTa;sYc_see=d`4OT literal 0 HcmV?d00001 diff --git a/themes/hermit_zola/static/js/main.js b/themes/hermit_zola/static/js/main.js new file mode 100644 index 0000000..a40c504 --- /dev/null +++ b/themes/hermit_zola/static/js/main.js @@ -0,0 +1,98 @@ +/** + * Utils + */ + +// Throttle +// +const throttle = (callback, limit) => { + let timeoutHandler = null; + return () => { + if (timeoutHandler == null) { + timeoutHandler = setTimeout(() => { + callback(); + timeoutHandler = null; + }, limit); + } + }; +}; + +// addEventListener Helper +// +const listen = (ele, e, callback) => { + if (document.querySelector(ele) !== null) { + document.querySelector(ele).addEventListener(e, callback); + } +}; + +/** + * Functions + */ + +// Auto Hide Header +// +let header = document.getElementById('site-header'); +let lastScrollPosition = window.pageYOffset; + +const autoHideHeader = () => { + let currentScrollPosition = window.pageYOffset; + if (currentScrollPosition > lastScrollPosition) { + header.classList.remove('slideInUp'); + header.classList.add('slideOutDown'); + } else { + header.classList.remove('slideOutDown'); + header.classList.add('slideInUp'); + } + lastScrollPosition = currentScrollPosition; +}; + +// Mobile Menu Toggle +// +let mobileMenuVisible = false; + +const toggleMobileMenu = () => { + let mobileMenu = document.getElementById('mobile-menu'); + if (mobileMenuVisible == false) { + mobileMenu.style.animationName = 'bounceInRight'; + mobileMenu.style.webkitAnimationName = 'bounceInRight'; + mobileMenu.style.display = 'block'; + mobileMenuVisible = true; + } else { + mobileMenu.style.animationName = 'bounceOutRight'; + mobileMenu.style.webkitAnimationName = 'bounceOutRight'; + mobileMenuVisible = false; + } +}; + +// Featured Image Toggle +// +const showImg = () => { + document.querySelector('.bg-img').classList.add('show-bg-img'); +}; + +const hideImg = () => { + document.querySelector('.bg-img').classList.remove('show-bg-img'); +}; + +// ToC Toggle +// +const toggleToc = () => { + document.getElementById('toc').classList.toggle('show-toc'); +}; + +if (header !== null) { + listen('#menu-btn', 'click', toggleMobileMenu); + listen('#toc-btn', 'click', toggleToc); + listen('#img-btn', 'click', showImg); + listen('.bg-img', 'click', hideImg); + + window.addEventListener( + 'scroll', + throttle(() => { + autoHideHeader(); + + if (mobileMenuVisible == true) { + toggleMobileMenu(); + } + }, 250) + ); +} diff --git a/themes/hermit_zola/templates/404.html b/themes/hermit_zola/templates/404.html new file mode 100644 index 0000000..90464ca --- /dev/null +++ b/themes/hermit_zola/templates/404.html @@ -0,0 +1,24 @@ +{% extends "index.html" %} + +{% block header %} +{% endblock header %} + +{% block title %} +{% endblock title %} + +{% block main %} +

+

+ 404-lighthouse +

+