├── .gitignore ├── _config.yml ├── content ├── posts │ ├── _index.md │ ├── code_test.md │ ├── good_first_post.md │ ├── typography.md │ └── later_posts.md └── about.md ├── screenshot.png ├── static ├── favicon.ico ├── favicon-32x32.png └── js │ └── main.js ├── .travis.yml ├── theme.toml ├── sass ├── _predefined.scss ├── _icons.scss ├── _syntax.scss ├── _animate.scss ├── _normalize.scss └── style.scss ├── LICENSE ├── README.md ├── templates ├── tags │ ├── list.html │ └── single.html ├── section.html ├── 404.html ├── index.html ├── page.html └── macros.html └── config.toml /.gitignore: -------------------------------------------------------------------------------- 1 | public/ 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-midnight -------------------------------------------------------------------------------- /content/posts/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title= "Posts" 3 | sort_by="date" 4 | +++ 5 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VersBinarii/hermit_zola/HEAD/screenshot.png -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VersBinarii/hermit_zola/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VersBinarii/hermit_zola/HEAD/static/favicon-32x32.png -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: minimal 2 | 3 | before_script: 4 | # Download and unzip the zola executable 5 | # Replace the version numbers in the URL by the version you want to use 6 | - curl -s -L https://github.com/getzola/zola/releases/download/v0.13.0/zola-v0.13.0-x86_64-unknown-linux-gnu.tar.gz | sudo tar xvzf - -C /usr/local/bin 7 | 8 | script: 9 | - zola build 10 | -------------------------------------------------------------------------------- /content/posts/code_test.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Test code syntax highlight" 3 | date=2020-10-13 4 | draft=false 5 | 6 | [taxonomies] 7 | tags=["test", "code"] 8 | 9 | [extra] 10 | disable_comments = true 11 | +++ 12 | 13 | ```rust 14 | fn factorial(n: u64) -> u64 { 15 | match n { 16 | 0 => 1, 17 | _ => n * factorial(n-1) 18 | } 19 | } 20 | ``` 21 | 22 | ```typescript 23 | const sum = (n: number) => n * (n + 1) / 2 24 | ``` 25 | -------------------------------------------------------------------------------- /theme.toml: -------------------------------------------------------------------------------- 1 | name = "Hermit_Zola" 2 | description = "Minimal Zola theme" 3 | license = "MIT" 4 | homepage = "https://github.com/VersBinarii/hermit_zola" 5 | min_version = "0.4.0" 6 | demo = "https://versbinarii.gitlab.io/blog/" 7 | 8 | [extra] 9 | home_subtitle = "Some profound and catchy statement" 10 | 11 | footer_copyright = '' 12 | 13 | hermit_menu = [ 14 | { link = "/posts", name = "Posts" }, 15 | { link = "/about", name = "About" } 16 | ] 17 | 18 | hermit_social = [ 19 | { name = "twitter", link = "https://twitter.com" }, 20 | { name = "github", link = "https://github.com" }, 21 | { name = "email", link = "mailto:name@domain.com" } 22 | ] 23 | 24 | [author] 25 | name = "VersBinarii" 26 | homepage = "https://versbinarii.gitlab.io/blog/" 27 | repo = "https://github.com/VersBinarii/hermit_zola" 28 | 29 | [original] 30 | author = "Track3" 31 | repo = "https://github.com/Track3/hermit" -------------------------------------------------------------------------------- /content/posts/good_first_post.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="This is a good first post" 3 | date=2019-08-23 4 | draft=false 5 | [taxonomies] 6 | tags=["hello", "blog", "first"] 7 | +++ 8 | 9 | So i went there and did all that but as you know: 10 | * This point was important 11 | * This as well... 12 | * And not to mention this one 13 | 14 | 15 | So i did those other things but: 16 | 1. The first thing 17 | 2. And the second thing 18 | 3. But the third was the `best` 19 | 20 | And then the guy said: 21 | > Man, i'm not gonna be the part of the system 22 | 23 | And showed me this: 24 | 25 | 26 | 27 | 28 | I said factorial this... 29 | 30 | ```rust 31 | fn factorial(n: u64) -> u64 { 32 | match n { 33 | 0 => 1, 34 | _ => n * factorial(n-1) 35 | } 36 | } 37 | ``` 38 | 39 | Then i shouted 40 | 41 | # Hello 42 | 43 | ... and the echo answered: 44 | 45 | ## Hello 46 | 47 | ### Hello 48 | 49 | #### Hello 50 | [zola!!!][1] 51 | 52 | [1]: https://www.getzola.org/ 53 | -------------------------------------------------------------------------------- /sass/_predefined.scss: -------------------------------------------------------------------------------- 1 | // Colors 2 | // 3 | $theme: #018574; 4 | $text: #c6cddb; 5 | $light-grey: #494f5c; 6 | $dark-grey: #3b3e48; 7 | $highlight-grey: #7d828a; 8 | $midnightblue: #31333d; 9 | 10 | // Fonts 11 | // 12 | $fonts: "Trebuchet MS", Verdana, "Verdana Ref", "Segoe UI", Candara, 13 | "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif; 14 | $code-fonts: Consolas, "Andale Mono WT", "Andale Mono", Menlo, Monaco, 15 | "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", 16 | "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", "Courier New", 17 | Courier, "YaHei Consolas Hybrid", monospace, "Segoe UI Emoji", "PingFang SC", 18 | "Microsoft YaHei"; 19 | 20 | // Mixins 21 | // 22 | @mixin dimmed { 23 | opacity: 0.6; 24 | } 25 | 26 | @mixin aTag { 27 | a { 28 | word-break: break-all; 29 | border: none; 30 | box-shadow: inset 0 -4px 0 $theme; 31 | transition-property: background-color; 32 | 33 | &:hover { 34 | background-color: $theme; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2019 VersBinarii 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /sass/_icons.scss: -------------------------------------------------------------------------------- 1 | /* From: https://css.gg/app */ 2 | 3 | .gg-check { 4 | box-sizing: border-box; 5 | position: relative; 6 | display: block; 7 | transform: scale(var(--ggs, 1)); 8 | width: 22px; 9 | height: 22px; 10 | border: 2px solid transparent; 11 | border-radius: 100px; 12 | } 13 | .gg-check::after { 14 | content: ""; 15 | display: block; 16 | box-sizing: border-box; 17 | position: absolute; 18 | left: 3px; 19 | top: -1px; 20 | width: 6px; 21 | height: 10px; 22 | border-width: 0 2px 2px 0; 23 | border-style: solid; 24 | transform-origin: bottom left; 25 | transform: rotate(45deg); 26 | } 27 | 28 | .gg-clipboard { 29 | box-sizing: border-box; 30 | position: relative; 31 | display: block; 32 | transform: scale(var(--ggs, 1)); 33 | width: 18px; 34 | height: 18px; 35 | border: 2px solid; 36 | border-radius: 2px; 37 | } 38 | .gg-clipboard::after, 39 | .gg-clipboard::before { 40 | content: ""; 41 | display: block; 42 | box-sizing: border-box; 43 | position: absolute; 44 | border-radius: 2px; 45 | width: 10px; 46 | left: 2px; 47 | } 48 | .gg-clipboard::before { 49 | border: 2px solid; 50 | border-bottom-left-radius: 3px; 51 | border-bottom-right-radius: 3px; 52 | top: -2px; 53 | height: 6px; 54 | } 55 | .gg-clipboard::after { 56 | height: 2px; 57 | background: currentColor; 58 | box-shadow: 0 -4px 0 0; 59 | bottom: 2px; 60 | } 61 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/VersBinarii/hermit_zola.svg?branch=master)](https://travis-ci.org/VersBinarii/hermit_zola) 2 | 3 | # Hermit 4 | 5 | > this is a port of the [Hermit theme](https://github.com/Track3/hermit) for [Zola](https://www.getzola.org/) 6 | 7 | Hermit is a minimal & fast Zola theme for bloggers. 8 | 9 | ![screenshot](screenshot.png) 10 | 11 | [View demo](https://versbinarii.gitlab.io/blog/) 12 | 13 | ## Installation 14 | 15 | First download the theme to your `themes` directory: 16 | 17 | ```bash 18 | $ cd themes 19 | $ git clone https://github.com/VersBinarii/hermit_zola 20 | ``` 21 | and then enable it in your `config.toml`: 22 | 23 | ```toml 24 | theme = "hermit_zola" 25 | ``` 26 | 27 | ## Configuration 28 | 29 | ```toml 30 | [extra] 31 | home_subtitle = "Some profound and catchy statement" 32 | 33 | footer_copyright = ' · CC BY-NC 4.0' 34 | 35 | hermit_menu = [ 36 | { link = "/posts", name = "Posts" }, 37 | { link = "/about", name = "About" } 38 | ] 39 | 40 | hermit_social = [ 41 | { name = "twitter", link = "https://twitter.com" }, 42 | { name = "github", link = "https://github.com" }, 43 | { name = "email", link = "mailto:author@domain.com" } 44 | ] 45 | 46 | 47 | 48 | [extra.highlightjs] 49 | enable = true 50 | clipboard = true 51 | theme = "vs2015" 52 | 53 | [extra.disqus] 54 | enable = false 55 | # Take this from your Disqus account 56 | shortname = "my-supa-dupa-blog" 57 | 58 | [extra.author] 59 | name = "The Author" 60 | email = "author@domain.com" 61 | 62 | [extra.google_analytics] 63 | enable = false 64 | id = "UA-4XXXXXXX-X" 65 | ``` 66 | 67 | ### Table of content 68 | Table of content can be enabled by adding 69 | ``` 70 | +++ 71 | [extra] 72 | toc=true 73 | +++ 74 | ``` 75 | to the page front matter. Icon will then appear above the page title that will 76 | allow to toggle the ToC. 77 | 78 | ## License 79 | 80 | [MIT](LICENSE) 81 | 82 | Thanks to [Track3](https://github.com/Track3) for creating the original! 83 | -------------------------------------------------------------------------------- /templates/tags/list.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} {% import "macros.html" as macros %} {% block header 2 | %} 3 | 31 |
32 | 37 |
38 | {% endblock header %} {% block title %} {% endblock title %} {% block main %} 39 | 40 |
41 | {% block content %} 42 | {% for tag in terms %} 43 |
44 |

{{ tag.name }}

45 |

46 | {{ tag.pages | length }} post{{ tag.pages | length | pluralize }} 47 |

48 |
49 | {% endfor %} 50 | {% endblock content %} 51 |
52 | 53 | {% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer 54 | %} 55 | -------------------------------------------------------------------------------- /templates/tags/single.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} {% import "macros.html" as macros %} {% block header 2 | %} 3 | 40 |
41 | 46 |
47 | {% endblock header %} {% block title %} {% endblock title %} {% block main %} 48 | 49 |
50 |

{{ term.name }}

51 | {% for year, pages in term.pages | group_by(attribute="year") %} 52 |
53 |
{{ year }}
54 | 66 |
67 | {% endfor %} 68 |
69 | 70 | {% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer 71 | %} 72 | -------------------------------------------------------------------------------- /templates/section.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} {% import "macros.html" as macros %} {% block header 2 | %} 3 | 42 |
43 | 50 |
51 | {% endblock header %} {% block title %} {% endblock title %} {% block main %} 52 | 53 |
54 |

{{ section.title }}

55 | {% for year, pages in section.pages | group_by(attribute="year") %} 56 |
57 |
{{ year }}
58 | 68 |
69 | {% endfor %} 70 |
71 | 72 | {% endblock main %} {% block footer %} {{ macros::footer() }} {% endblock footer 73 | %} 74 | -------------------------------------------------------------------------------- /static/js/main.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Utils 3 | */ 4 | 5 | // Throttle 6 | // 7 | const throttle = (callback, limit) => { 8 | let timeoutHandler = null; 9 | return () => { 10 | if (timeoutHandler == null) { 11 | timeoutHandler = setTimeout(() => { 12 | callback(); 13 | timeoutHandler = null; 14 | }, limit); 15 | } 16 | }; 17 | }; 18 | 19 | // addEventListener Helper 20 | // 21 | const listen = (ele, e, callback) => { 22 | if (document.querySelector(ele) !== null) { 23 | document.querySelector(ele).addEventListener(e, callback); 24 | } 25 | }; 26 | 27 | /** 28 | * Functions 29 | */ 30 | 31 | // Auto Hide Header 32 | // 33 | let header = document.getElementById('site-header'); 34 | let lastScrollPosition = window.pageYOffset; 35 | 36 | const autoHideHeader = () => { 37 | let currentScrollPosition = window.pageYOffset; 38 | if (currentScrollPosition > lastScrollPosition) { 39 | header.classList.remove('slideInUp'); 40 | header.classList.add('slideOutDown'); 41 | } else { 42 | header.classList.remove('slideOutDown'); 43 | header.classList.add('slideInUp'); 44 | } 45 | lastScrollPosition = currentScrollPosition; 46 | }; 47 | 48 | // Mobile Menu Toggle 49 | // 50 | let mobileMenuVisible = false; 51 | 52 | const toggleMobileMenu = () => { 53 | let mobileMenu = document.getElementById('mobile-menu'); 54 | if (mobileMenuVisible == false) { 55 | mobileMenu.style.animationName = 'bounceInRight'; 56 | mobileMenu.style.webkitAnimationName = 'bounceInRight'; 57 | mobileMenu.style.display = 'block'; 58 | mobileMenuVisible = true; 59 | } else { 60 | mobileMenu.style.animationName = 'bounceOutRight'; 61 | mobileMenu.style.webkitAnimationName = 'bounceOutRight'; 62 | mobileMenuVisible = false; 63 | } 64 | }; 65 | 66 | // Featured Image Toggle 67 | // 68 | const showImg = () => { 69 | document.querySelector('.bg-img').classList.add('show-bg-img'); 70 | }; 71 | 72 | const hideImg = () => { 73 | document.querySelector('.bg-img').classList.remove('show-bg-img'); 74 | }; 75 | 76 | // ToC Toggle 77 | // 78 | const toggleToc = () => { 79 | document.getElementById('toc').classList.toggle('show-toc'); 80 | }; 81 | 82 | if (header !== null) { 83 | listen('#menu-btn', 'click', toggleMobileMenu); 84 | listen('#toc-btn', 'click', toggleToc); 85 | listen('#img-btn', 'click', showImg); 86 | listen('.bg-img', 'click', hideImg); 87 | 88 | window.addEventListener( 89 | 'scroll', 90 | throttle(() => { 91 | autoHideHeader(); 92 | 93 | if (mobileMenuVisible == true) { 94 | toggleMobileMenu(); 95 | } 96 | }, 250) 97 | ); 98 | } 99 | -------------------------------------------------------------------------------- /content/posts/typography.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Typography" 3 | date = 2018-09-29T11:36:33+08:00 4 | draft = false 5 | [taxonomies] 6 | tags=["test", "original_post"] 7 | [extra] 8 | toc=true 9 | +++ 10 | 11 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.[^1] 12 | 13 | > An apple is a sweet, edible fruit produced by an apple tree (Malus pumila). Apple trees are cultivated worldwide, and are the most widely grown species in the genus Malus. The tree originated in Central Asia, where its wild ancestor, Malus sieversii, is still found today. Apples have been grown for thousands of years in Asia and Europe, and were brought to North America by European colonists. Apples have religious and mythological significance in many cultures, including Norse, Greek and European Christian traditions.[^2] 14 | --- 15 | 16 | Inline styles: 17 | 18 | **strong**, *emphasis*, ***strong and emphasis***,`code`, underline, ~~strikethrough~~, :joy:🤣, $\LaTeX$, X^2^, H~2~O, ==highlight==, [Link](https://example.com), and image: 19 | 20 | ![img](https://picsum.photos/600/400/?random) 21 | 22 | --- 23 | 24 | Headings: 25 | 26 | # Heading 1 27 | 28 | ## Heading 2 29 | 30 | ### Heading 3 31 | 32 | #### Heading 4 33 | 34 | ##### Heading 5 35 | 36 | ###### Heading 6 37 | 38 | Table: 39 | 40 | | Left-Aligned | Center Aligned | Right Aligned | 41 | | :------------ | :-------------: | ------------: | 42 | | col 3 is | some wordy text | $1600 | 43 | | col 2 is | centered | $12 | 44 | | zebra stripes | are neat | $1 | 45 | 46 | Lists: 47 | 48 | * Unordered list item 1. 49 | * Unordered list item 2. 50 | 51 | 1. ordered list item 1. 52 | 2. ordered list item 2. 53 | + sub-unordered list item 1. 54 | + sub-unordered list item 2. 55 | + [x] something is DONE. 56 | + [ ] something is NOT DONE. 57 | 58 | Syntax Highlighting: 59 | 60 | ```javascript 61 | const num1 = prompt("Enter first number"); 62 | const num2 = prompt("Enter second number"); 63 | const sum = parseInt(num1, 10) + parseInt(num2, 10); // "+" means "add" 64 | alert("Sum = " + sum); // "+" means combine into a string 65 | ``` 66 | 67 | [^1]: From [https://www.lipsum.com/](https://www.lipsum.com/) 68 | 69 | [^2]: From [https://en.wikipedia.org/wiki/Apple](https://en.wikipedia.org/wiki/Apple) 70 | -------------------------------------------------------------------------------- /content/about.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="About" 3 | +++ 4 | 5 | 6 | 7 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus in urna interdum, semper ligula non, tempus felis. Etiam a lorem eros. Proin ultricies et felis non aliquam. Vivamus interdum egestas nulla et accumsan. Proin fringilla nisl id lectus vehicula elementum. In sed lacus rutrum, varius ipsum ac, suscipit ipsum. Donec facilisis efficitur dui eget suscipit. Praesent lobortis nisi in sapien interdum maximus. Phasellus pulvinar faucibus arcu, tristique egestas orci tincidunt id. Pellentesque malesuada maximus augue, ut pretium magna accumsan mattis. In tincidunt ex non diam convallis semper. Nulla eget turpis ac massa eleifend pellentesque at id lorem. 8 | 9 | Donec sit amet tincidunt mauris, at volutpat nibh. Vestibulum diam velit, sodales nec neque cursus, aliquam efficitur ante. Phasellus id fermentum eros. Praesent elementum nibh at nunc varius maximus. Donec imperdiet pulvinar lectus vulputate tempus. Mauris lacinia lorem consequat est viverra, vitae tristique leo tempor. Pellentesque ullamcorper porta ligula. Nulla convallis orci a ligula sagittis ornare. Ut eget sodales massa, id tincidunt diam. Cras eget ullamcorper nibh. Suspendisse bibendum aliquam justo quis dictum. Vestibulum porta facilisis tellus, nec placerat massa semper id. Integer ullamcorper nibh orci, ut sagittis purus hendrerit non. 10 | 11 | Phasellus et ornare risus. Curabitur nec rhoncus velit. Duis non nisl id nulla maximus commodo sit amet vitae orci. Cras facilisis viverra laoreet. In eros risus, auctor ut aliquam a, aliquet ut odio. Cras rutrum blandit luctus. Donec porttitor, turpis non tempor interdum, nunc orci cursus ex, eu porttitor lectus tellus vel nisl. Vivamus congue, sapien at tincidunt blandit, libero sapien malesuada nibh, id blandit sapien mauris vel sapien. 12 | 13 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas pulvinar nibh nec feugiat gravida. Pellentesque posuere nisi pretium quam vulputate, at iaculis nisi sollicitudin. Nam sit amet ultrices mauris. Suspendisse suscipit, nunc sit amet blandit auctor, eros lectus elementum orci, a cursus nunc elit eleifend nisl. Nunc porta mollis convallis. In hendrerit ultrices sem a porttitor. Aliquam erat volutpat. Sed hendrerit nulla id iaculis fermentum. Aliquam sit amet elementum tortor. Nulla dolor quam, blandit sit amet convallis vel, venenatis vitae turpis. Sed volutpat fermentum nisi et molestie. 14 | 15 | Cras id lectus laoreet, luctus augue eu, tristique lacus. Quisque feugiat ipsum vel consequat pharetra. Morbi fermentum nibh ornare egestas imperdiet. Vestibulum iaculis felis id turpis dictum, sit amet tincidunt velit consequat. Morbi facilisis erat id efficitur ultricies. Donec sollicitudin luctus justo at tincidunt. Etiam in vestibulum dolor. In vel velit elementum sapien rutrum laoreet. Aliquam pellentesque ornare blandit. Integer bibendum lacus sit amet nibh tempor, et dictum odio scelerisque. Vivamus suscipit lacus id felis condimentum, varius ornare nunc vulputate. Integer nec magna non dui consequat dignissim. Cras justo nibh, pretium eu arcu finibus, mattis porttitor nibh. Nulla ut euismod felis, id ultrices sapien. Suspendisse commodo est erat, ut faucibus nisi hendrerit eget. Maecenas urna diam, condimentum at vehicula vitae, tincidunt a ligula. 16 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | # Base URL of the site, the only required config argument 2 | base_url = "https://example.com/blog" 3 | 4 | # Used in RSS by default 5 | title = "Hermit Zola" 6 | description = "My blog" 7 | # The default language, used in RSS 8 | default_language = "en" 9 | 10 | # Theme name to use 11 | # theme = "" 12 | 13 | # Highlight all code blocks found 14 | # Or enable the highlight.js in the 'extra' config section 15 | highlight_code = false 16 | 17 | # Which theme to use for the code highlighting. 18 | # See below for list of accepted values 19 | highlight_theme = "agola-dark" 20 | 21 | # Whether to generate a RSS feed automatically 22 | generate_feed = true 23 | feed_filename = "rss.xml" 24 | 25 | # The number of articles to include in the RSS feed. Will include all items if 26 | # not set (the default). 27 | # rss_limit = 20 28 | 29 | # The taxonomies to be rendered for that site and their configuration 30 | # Example: 31 | # taxonomies = [ 32 | # {name = "tags", rss = true}, # each tag will have its own RSS feed 33 | # {name = "categories", paginate_by = 5}, # 5 items per page for a term 34 | # {name = "authors"}, # Basic definition: no RSS or pagination 35 | # ] 36 | # 37 | taxonomies = [ 38 | {name = "tags", rss = true} 39 | ] 40 | 41 | # Whether to compile the Sass files found in the `sass` directory 42 | compile_sass = true 43 | 44 | # Whether to build a search index out of the pages and section 45 | # content for the `default_language` 46 | build_search_index = false 47 | 48 | # A list of glob patterns specifying asset files to ignore when 49 | # processing the content directory. 50 | # Defaults to none, which means all asset files are copied over to the public folder. 51 | # Example: 52 | # ignored_content = ["*.{graphml,xlsx}", "temp.*"] 53 | ignored_content = [] 54 | 55 | # A list of directories to search for additional `.sublime-syntax` files in. 56 | extra_syntaxes = [] 57 | 58 | # Optional translation object. The key if present should be a language code 59 | [translations] 60 | 61 | # You can put any kind of data in there and it 62 | # will be accessible in all templates 63 | [extra] 64 | 65 | home_subtitle = "Some profound and catchy statement" 66 | 67 | footer_copyright = ' · CC BY-NC 4.0' 68 | 69 | hermit_menu = [ 70 | { link = "/posts", name = "Posts" }, 71 | { link = "/about", name = "About" } 72 | ] 73 | 74 | hermit_social = [ 75 | { name = "twitter", link = "https://twitter.com" }, 76 | { name = "github", link = "https://github.com" }, 77 | { name = "email", link = "mailto:author@domain.com" } 78 | ] 79 | 80 | 81 | # You can use highlight.js for code highlighting if you dont like the 82 | # default one 83 | [extra.highlightjs] 84 | enable = true 85 | clipboard = true 86 | theme = "railscasts" 87 | 88 | [extra.footer] 89 | index = true 90 | 91 | [extra.disqus] 92 | enable = false 93 | # Take this from your Disqus account 94 | shortname = "my-supa-dupa-blog" 95 | # Comments can be disabled per page by setting: 96 | # [extra] 97 | # disable_comments = true 98 | # 99 | # in the posts front-matter 100 | 101 | 102 | [extra.author] 103 | name = "The Author" 104 | email = "author@domain.com" 105 | 106 | [extra.google_analytics] 107 | enable = false 108 | id = "UA-4XXXXXXX-X" 109 | -------------------------------------------------------------------------------- /sass/_syntax.scss: -------------------------------------------------------------------------------- 1 | /* Background */ .chroma { color: #eee; background-color: $midnightblue } 2 | /* Error */ .chroma .err { color: #960050; background-color: #1e0010 } 3 | /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } 4 | /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } 5 | /* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } 6 | /* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } 7 | /* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } 8 | /* Keyword */ .chroma .k { color: #66d9ef } 9 | /* KeywordConstant */ .chroma .kc { color: #66d9ef } 10 | /* KeywordDeclaration */ .chroma .kd { color: #66d9ef } 11 | /* KeywordNamespace */ .chroma .kn { color: #f92672 } 12 | /* KeywordPseudo */ .chroma .kp { color: #66d9ef } 13 | /* KeywordReserved */ .chroma .kr { color: #66d9ef } 14 | /* KeywordType */ .chroma .kt { color: #66d9ef } 15 | /* NameAttribute */ .chroma .na { color: #a6e22e } 16 | /* NameClass */ .chroma .nc { color: #a6e22e } 17 | /* NameConstant */ .chroma .no { color: #66d9ef } 18 | /* NameDecorator */ .chroma .nd { color: #a6e22e } 19 | /* NameException */ .chroma .ne { color: #a6e22e } 20 | /* NameFunction */ .chroma .nf { color: #a6e22e } 21 | /* NameOther */ .chroma .nx { color: #a6e22e } 22 | /* NameTag */ .chroma .nt { color: #f92672 } 23 | /* Literal */ .chroma .l { color: #ae81ff } 24 | /* LiteralDate */ .chroma .ld { color: #e6db74 } 25 | /* LiteralString */ .chroma .s { color: #e6db74 } 26 | /* LiteralStringAffix */ .chroma .sa { color: #e6db74 } 27 | /* LiteralStringBacktick */ .chroma .sb { color: #e6db74 } 28 | /* LiteralStringChar */ .chroma .sc { color: #e6db74 } 29 | /* LiteralStringDelimiter */ .chroma .dl { color: #e6db74 } 30 | /* LiteralStringDoc */ .chroma .sd { color: #e6db74 } 31 | /* LiteralStringDouble */ .chroma .s2 { color: #e6db74 } 32 | /* LiteralStringEscape */ .chroma .se { color: #ae81ff } 33 | /* LiteralStringHeredoc */ .chroma .sh { color: #e6db74 } 34 | /* LiteralStringInterpol */ .chroma .si { color: #e6db74 } 35 | /* LiteralStringOther */ .chroma .sx { color: #e6db74 } 36 | /* LiteralStringRegex */ .chroma .sr { color: #e6db74 } 37 | /* LiteralStringSingle */ .chroma .s1 { color: #e6db74 } 38 | /* LiteralStringSymbol */ .chroma .ss { color: #e6db74 } 39 | /* LiteralNumber */ .chroma .m { color: #ae81ff } 40 | /* LiteralNumberBin */ .chroma .mb { color: #ae81ff } 41 | /* LiteralNumberFloat */ .chroma .mf { color: #ae81ff } 42 | /* LiteralNumberHex */ .chroma .mh { color: #ae81ff } 43 | /* LiteralNumberInteger */ .chroma .mi { color: #ae81ff } 44 | /* LiteralNumberIntegerLong */ .chroma .il { color: #ae81ff } 45 | /* LiteralNumberOct */ .chroma .mo { color: #ae81ff } 46 | /* Operator */ .chroma .o { color: #f92672 } 47 | /* OperatorWord */ .chroma .ow { color: #f92672 } 48 | /* Comment */ .chroma .c { color: #75715e } 49 | /* CommentHashbang */ .chroma .ch { color: #75715e } 50 | /* CommentMultiline */ .chroma .cm { color: #75715e } 51 | /* CommentSingle */ .chroma .c1 { color: #75715e } 52 | /* CommentSpecial */ .chroma .cs { color: #75715e } 53 | /* CommentPreproc */ .chroma .cp { color: #75715e } 54 | /* CommentPreprocFile */ .chroma .cpf { color: #75715e } 55 | /* GenericDeleted */ .chroma .gd { color: #f92672 } 56 | /* GenericEmph */ .chroma .ge { font-style: italic } 57 | /* GenericInserted */ .chroma .gi { color: #a6e22e } 58 | /* GenericStrong */ .chroma .gs { font-weight: bold } 59 | /* GenericSubheading */ .chroma .gu { color: #75715e } 60 | -------------------------------------------------------------------------------- /sass/_animate.scss: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * animate.css -https://daneden.github.io/animate.css/ 5 | * Version - 3.7.0 6 | * Licensed under the MIT license - http://opensource.org/licenses/MIT 7 | * 8 | * Copyright (c) 2018 Daniel Eden 9 | */ 10 | 11 | @-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}} -------------------------------------------------------------------------------- /content/posts/later_posts.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title="Latest Post" 3 | date=2019-08-25 4 | draft=false 5 | [taxonomies] 6 | tags=["hello", "blog", "later"] 7 | +++ 8 | 9 | 10 | # Lorem ipsum dolor 11 | 12 | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Aliquam ultrices sagittis orci a scelerisque purus semper. Orci eu lobortis elementum nibh tellus molestie. At tellus at urna condimentum mattis pellentesque id nibh. Viverra justo nec ultrices dui. Nibh tortor id aliquet lectus proin. Nulla pharetra diam sit amet nisl. Et egestas quis ipsum suspendisse. Sem viverra aliquet eget sit amet tellus cras. Nisl suscipit adipiscing bibendum est ultricies integer quis auctor. 13 | 14 | Quisque egestas diam in arcu cursus euismod quis viverra nibh. Non sodales neque sodales ut etiam sit amet nisl purus. Ultricies mi eget mauris pharetra et ultrices neque. Semper auctor neque vitae tempus quam pellentesque nec. Tellus mauris a diam maecenas sed enim. Bibendum enim facilisis gravida neque convallis a. Pretium lectus quam id leo in vitae turpis massa. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. In egestas erat imperdiet sed euismod nisi. Morbi tristique senectus et netus et malesuada fames ac. Neque viverra justo nec ultrices dui sapien. Mi bibendum neque egestas congue quisque egestas diam in. Ultrices tincidunt arcu non sodales neque sodales ut. Consectetur adipiscing elit duis tristique sollicitudin nibh. Egestas sed tempus urna et pharetra pharetra massa massa ultricies. Egestas pretium aenean pharetra magna ac placerat. Maecenas pharetra convallis posuere morbi leo urna molestie. 15 | 16 | Sit amet porttitor eget dolor morbi non arcu risus quis. Nisl rhoncus mattis rhoncus urna neque viverra justo nec. Facilisi cras fermentum odio eu. In ante metus dictum at tempor commodo ullamcorper a lacus. Nulla aliquet enim tortor at auctor. Mollis aliquam ut porttitor leo a diam sollicitudin. Risus viverra adipiscing at in tellus. Felis eget nunc lobortis mattis aliquam faucibus purus. Quisque sagittis purus sit amet volutpat. Mi in nulla posuere sollicitudin aliquam ultrices sagittis. Justo nec ultrices dui sapien. Nisl nisi scelerisque eu ultrices vitae. Id volutpat lacus laoreet non curabitur gravida. Nullam non nisi est sit amet facilisis magna etiam. Maecenas volutpat blandit aliquam etiam erat velit scelerisque. Dui vivamus arcu felis bibendum ut tristique et egestas quis. Morbi quis commodo odio aenean sed adipiscing diam donec adipiscing. Arcu felis bibendum ut tristique et egestas quis ipsum suspendisse. Cursus in hac habitasse platea dictumst quisque sagittis. Egestas quis ipsum suspendisse ultrices gravida dictum. 17 | 18 | Varius duis at consectetur lorem donec massa sapien. Fames ac turpis egestas sed tempus. Eu mi bibendum neque egestas congue. Suscipit adipiscing bibendum est ultricies integer quis auctor elit. Tincidunt vitae semper quis lectus nulla at volutpat diam. Neque gravida in fermentum et sollicitudin. Eget gravida cum sociis natoque penatibus et magnis dis parturient. Varius quam quisque id diam vel quam elementum. Imperdiet proin fermentum leo vel orci porta non. Porttitor leo a diam sollicitudin tempor. Elit scelerisque mauris pellentesque pulvinar. Cursus turpis massa tincidunt dui ut ornare. Leo vel fringilla est ullamcorper eget nulla facilisi. At auctor urna nunc id cursus metus aliquam eleifend. 19 | 20 | Tortor aliquam nulla facilisi cras fermentum odio eu feugiat pretium. Massa tempor nec feugiat nisl pretium fusce id. Id leo in vitae turpis massa sed elementum. A cras semper auctor neque. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi. Rhoncus urna neque viverra justo nec ultrices. Nunc faucibus a pellentesque sit amet porttitor eget. Neque volutpat ac tincidunt vitae. Cursus mattis molestie a iaculis at. Semper risus in hendrerit gravida. Sagittis nisl rhoncus mattis rhoncus urna neque viverra justo. Non arcu risus quis varius quam. Ultrices dui sapien eget mi proin sed libero enim sed. Platea dictumst quisque sagittis purus. Fringilla est ullamcorper eget nulla facilisi etiam dignissim. 21 | -------------------------------------------------------------------------------- /templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block header %} 4 | {% endblock header %} 5 | 6 | {% block title %} 7 | {% endblock title %} 8 | 9 | {% block main %} 10 |
11 |

12 | 404-lighthouse 13 |

14 |