My personal blog hauleth.dev
blog
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: add Zerm as a directory instead of submodule

authored by

Łukasz Jan Niemier and committed by
Łukasz Niemier
7e43b605 8fc8ed8c

+2166 -9
-3
.gitmodules
··· 1 - [submodule "themes/zerm"] 2 - path = themes/zerm 3 - url = https://github.com/ejmg/zerm.git
+1 -1
config.toml
··· 12 12 minify_html = true 13 13 14 14 taxonomies = [ 15 - {name = "tags"}, 15 + {name = "tags", feed = true}, 16 16 ] 17 17 18 18 [markdown]
+2 -2
flake.lock
··· 21 21 "nixpkgs": { 22 22 "locked": { 23 23 "lastModified": 0, 24 - "narHash": "sha256-MmJvj6mlWzeRwKGLcwmZpKaOPZ5nJb/6al5CXqJsgjo=", 25 - "path": "/nix/store/ad1fkqvkbxhap0gpb688bgrad221lgwj-source", 24 + "narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", 25 + "path": "/nix/store/h15y13p2w17dhpiyh8pk42v1k4c38a0h-source", 26 26 "type": "path" 27 27 }, 28 28 "original": {
+2 -3
flake.nix
··· 13 13 14 14 nativeBuildInputs = [ 15 15 pkgs.zola 16 - pkgs.gitMinimal 17 16 ]; 18 17 19 18 buildPhase = '' 20 - git submodule update --init --recursive --depth=1 21 - zola build -o $out 19 + zola --version 20 + zola build --output-dir $out 22 21 ''; 23 22 24 23 dontInstall = true;
+1
themes/zerm/.gitignore
··· 1 + public
+22
themes/zerm/LICENSE.md
··· 1 + The MIT License (MIT) 2 + 3 + Copyright (c) 2019 elias julian marko garcia 4 + Copyright (c) 2019 Paweł Romanowski 5 + Copyright (c) 2019 panr 6 + 7 + Permission is hereby granted, free of charge, to any person obtaining a copy of 8 + this software and associated documentation files (the "Software"), to deal in 9 + the Software without restriction, including without limitation the rights to 10 + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 + the Software, and to permit persons to whom the Software is furnished to do so, 12 + subject to the following conditions: 13 + 14 + The above copyright notice and this permission notice shall be included in all 15 + copies or substantial portions of the Software. 16 + 17 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+61
themes/zerm/README.md
··· 1 + # zerm 2 + 3 + a minimalist and dark theme for [Zola](https://getzola.org). 4 + 5 + ![Screenshot](../master/zerm-preview.png?raw=true) 6 + 7 + [**Live Preview!**](https://zerm.ejmg.now.sh/) 8 + 9 + Largely a port of Radek Kozieł's [Terminal 10 + Theme](https://github.com/panr/hugo-theme-terminal) for Hugo. 4/5ths of my way 11 + through porting this theme, I discovered Paweł Romanowski own independent fork 12 + for Zola, [Terminimal](https://github.com/pawroman/zola-theme-terminimal), 13 + which helped me get the PostCSS to Sass styling conversion done more 14 + quickly. My sincerest thanks to both of you! 15 + 16 + ## differences 17 + 18 + This theme is largely true to the original by Radek, but there are some mild 19 + differences. They are almost all stylistic in nature and are intended to 20 + emphasize minimalism even more. Some of them are as follows: 21 + - tags are now included in a post's meta data. 22 + - no post image previews. 23 + - categories are included in the taxonomy. 24 + - bullet points have slightly more margin and different symbols for nesting. 25 + - no social media or comment support. 26 + 27 + Some of these might be added later and [PR's are always 28 + welcomed](https://github.com/ejmg/zerm/pulls). 29 + 30 + ## configuration 31 + 32 + Please follow the Zola documentation for [how to use a 33 + theme](https://www.getzola.org/documentation/themes/installing-and-using-themes/#installing-a-theme). 34 + 35 + In `config.toml`, you will find all values for customization that are supported 36 + thus far have documentation explaining how they are used. If there is any confusion or something is not working as intended, [please open an issue](https://github.com/ejmg/zerm/issues)! 37 + 38 + ## math 39 + You can use KaTeX for mathematical typesetting. 40 + Assets are only available if you opt-in on a per-page level through 41 + a single line (`math=true`) on the extra section of the page frontmatter. 42 + 43 + ``` md 44 + # index.md 45 + +++ 46 + title="this page title" 47 + ... 48 + 49 + [extra] 50 + math=true 51 + +++ 52 + 53 + Content 54 + ``` 55 + 56 + Pages wich doesn't opt-in are not affected in any way, so you doesn't have 57 + to worry about any performance hit. 58 + 59 + ## license 60 + 61 + MIT. See `LICENSE.md` for more details.
+131
themes/zerm/config.toml
··· 1 + # The URL the site will be built for 2 + base_url = "/" 3 + 4 + # Used in RSS by default 5 + title = "My blog!" 6 + description = "placeholder description text for your blog!" 7 + 8 + # The default language, used in RSS 9 + # TODO: I would love to support more languages and make this easy to handle 10 + # with other facets of the theme. 11 + default_language = "en" 12 + 13 + # Whether to generate a RSS feed automatically 14 + generate_feed = true 15 + # 'atom.xml' (default if unspecified) and 'rss.xml' are officially supported 16 + # values for feed_filename in this theme. All other filenames will assume a 17 + # link type of 'application/rss+xml'. 18 + # feed_filename = "atom.xml" 19 + 20 + # Theme name to use. 21 + # NOTE: should not need to mess with this if you are using zerm directly, i.e. cloning the 22 + # repository at root and not using as directed by the Zola docs via themes/ directory. 23 + # theme = "" 24 + 25 + # Whether to automatically compile all Sass files in the sass directory 26 + compile_sass = true 27 + 28 + # Whether to do syntax highlighting 29 + # Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola 30 + highlight_code = true 31 + 32 + # Syntax highlighting theme. See: 33 + # https://www.getzola.org/documentation/getting-started/configuration/#syntax-highlighting 34 + # for more information and themes built into Zola. 35 + highlight_theme = "axar" # Other dark themes that work: "1337", "agola-dark", 36 + # "visual-studio-dark" 37 + 38 + # Whether to build a search index to be used later on by a JavaScript library 39 + build_search_index = false 40 + 41 + # Built in taxonomies of zerm. 42 + taxonomies = [ 43 + {name = "tags"}, 44 + {name = "categories"}, 45 + ] 46 + 47 + [extra] 48 + # Put all your custom variables here 49 + # 50 + # Many configurations are taken directly from Terminal's config.toml 51 + # --------------------------------------------------------- 52 + 53 + # Author name to be added to posts, if enabled. 54 + author = "you!" 55 + 56 + # Show author's name in blog post meta data. 57 + show_author = false 58 + 59 + # Show categories a blog post is marked with in its meta data. 60 + show_categories = true 61 + 62 + # Show tags a blog post is marked with in its meta data. 63 + show_tags = true 64 + 65 + # Theme color. You can have any color you want, so long as it's... 66 + # ["orange", "blue", "red", "green", "pink"] 67 + theme_color = "orange" 68 + 69 + # Custom css to style over the defaults. This is useful when you only have a 70 + # few small tweaks to make rather than a major rehaul to the theme. 71 + # It would be best to make this a proper .sass or .scss file in sass/ rather 72 + # than placing in static/ 73 + # custom_css = "custom.css" 74 + 75 + # How many menu items to show on desktop. if you set this to 0, only submenu 76 + # button will be visible. 77 + show_menu_items = 2 78 + 79 + # set theme to full screen width. 80 + full_width = false 81 + 82 + # center theme with default width. 83 + center = false 84 + 85 + # set a custom favicon. Must be placed in root of static/ directory... 86 + # favicon = "" 87 + 88 + 89 + # Set a custom preview image for your website when posted as a link. 90 + # Must be placed in root of static/ directory... 91 + # og_preview_img = "" 92 + 93 + # Copyright notice if desired. Defaults to 94 + # copyright = "copyright notice here" 95 + 96 + # What is displayed in the top left corner of the website. Default is zerm. 97 + logo_text = "zerm" 98 + 99 + # Link in logo. Default returns you to $BASE_URL. 100 + logo_home_link = "/" 101 + 102 + # Menu items to display. You define a url and the name of the menu item. 103 + # NOTE: `$BASE_URL/` must be included in the url name. 104 + main_menu = [ 105 + {url="/about/", name="about"}, 106 + {url="/contact/", name="contact"}, 107 + {url="https://google.com", name="Google", external=true}, 108 + ] 109 + 110 + # Displayed as title of drop-down menu when size of main_menu > show_menu_items. 111 + menu_more = "show more" 112 + 113 + # Displayed after teaser text for a blog post. 114 + read_more = "read more" 115 + 116 + # not currently used from previous theme, but leaving here for now in case I 117 + # feel like adding it. 118 + read_other_posts = "read other posts" 119 + 120 + 121 + # Enable math typesetting with KaTeX 122 + # Show math in pages with `math=true` in the TOML frontmatter 123 + enable_katex = true 124 + 125 + # Options for disqus 126 + disqus = { enabled=false, short_name="" } 127 + 128 + # generate Table of Contents for all articles 129 + # Table of Contents can be generated for individual articles 130 + # by adding `ToC = true` in [extra] section in frontmatter 131 + # ToC = true
+6
themes/zerm/content/_index.md
··· 1 + +++ 2 + sort_by = "date" 3 + transparent = true 4 + paginate_by = 3 5 + insert_anchor_links = "right" 6 + +++
+10
themes/zerm/content/about/_index.md
··· 1 + +++ 2 + title = "about" 3 + path = "about" 4 + 5 + [extra] 6 + date = 2019-03-21 7 + +++ 8 + 9 + Yet another theme for yet another static site generator; that said, I hope you 10 + like it.
+14
themes/zerm/content/contact/_index.md
··· 1 + +++ 2 + title="contact" 3 + description="a basic demo of zola. Does it work?" 4 + 5 + [extra] 6 + date=2019-03-26 7 + +++ 8 + 9 + # some links 10 + 11 + - [zola, the static site generator written in rust](https://getzola.org) 12 + - [source code for zerm](https://github.com/ejmg/zerm) 13 + - [Terminal, the theme zerm was derived from](https://github.com/panr/hugo-theme-terminal) 14 + - [Terminimal, another theme for zola based on Terminal](https://github.com/pawroman/zola-theme-terminimal)
+65
themes/zerm/content/demo/index.md
··· 1 + +++ 2 + title="demo" 3 + description="a basic demo of zola." 4 + date=2019-08-06 5 + 6 + [taxonomies] 7 + tags = ["demo", "zola", "highlighting"] 8 + categories = ["programming", "wu tang",] 9 + 10 + [extra] 11 + +++ 12 + 13 + Here's a general demo of Zola and how things look with zerm. 14 + 15 + # Header I 16 + 17 + Inline code: `println!("Wu Tang!");` 18 + 19 + Zola has built in syntax highlighting. If there's not a theme you like, you can 20 + easily add more. 21 + 22 + zerm uses Fira Code fonts, which means we get ligatures in addition to 23 + Zola's powerful syntax highlighting ✨. 24 + 25 + ```rs 26 + fn foo(arg: String) -> Result<u32, Io::Error> { 27 + println!("Nice!"); // TODO: the thingy 28 + if 1 != 0 { 29 + println!("How many ligatures can I contrive??"); 30 + println!("Turns out a lot! ==> -/-> <!-- <$> >>="); 31 + } 32 + Ok(42) 33 + } 34 + ``` 35 + 36 + ## Header II 37 + 38 + Want block quotes? We got block quotes. 39 + 40 + Remember the wise words of Ras Kass: 41 + 42 + > In Hotel Rwanda, reminder to honor these street scholars who ask why 43 + U.S. Defense is twenty percent of the tax dollar. Bush gave 6.46 billion to 44 + Halliburton for troops support efforts in Iraq; meanwhile, the hood is hurting, 45 + please believe that. 46 + > 47 + > -- "Verses", _Wu-Tang Meets The Indie Culture_ 48 + 49 + ### Header III 50 + 51 + | members | age | notable album | to be messed with? | 52 + |------------------|-----|----------------------------------------------|-------------------------------------------------------------------------| 53 + | GZA | 52 | Liquid Swords | no | 54 + | ODB | 35 | Return to the 36 Chambers: The Dirty Version | absolutely not | 55 + | Raekwon Da Chef | 49 | Only Built 4 Cuban Linx... | `"no"` that's spanish for "no" | 56 + | Ghostface Killah | 49 | Fishscale | i swear you keep asking that question and the answer ain't gonna change | 57 + | Inspectah Deck | 49 | CZARFACE | `protect ya neck, boy` | 58 + 59 + 60 + #### Header IV 61 + 62 + Here's a video of my rabbit, Smalls, loaf'n to lofi beats: 63 + 64 + {{ youtube(id="UUpuz8IObcs") }} 65 +
+13
themes/zerm/content/fiz/index.md
··· 1 + +++ 2 + title="fiz" 3 + description="a basic demo of zola. Does it work?" 4 + date=2019-03-25 5 + author="elias" 6 + 7 + [taxonomies] 8 + tags = ["rust", "test"] 9 + # categories = ["misc."] 10 + +++ 11 + 12 + 13 + Foo Bar Buzz Fizz Qux Fum
+21
themes/zerm/content/technology_is_hell/index.md
··· 1 + +++ 2 + title="technology is hell!" 3 + description="Yet another blog post ranting about XYZ technology for ABC reasons" 4 + date=2019-03-26 5 + 6 + [taxonomies] 7 + tags = ["rust", "test"] 8 + categories = ["misc."] 9 + +++ 10 + 11 + 12 + Nullam eu ante vel est convallis dignissim. Fusce suscipit, wisi nec facilisis 13 + facilisis, est dui fermentum leo, quis tempor ligula erat quis odio. Nunc 14 + porta vulputate tellus. Nunc rutrum turpis sed pede. Sed bibendum. Aliquam 15 + posuere. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada 16 + massa, quis varius mi purus non odio. Pellentesque condimentum, magna ut 17 + suscipit hendrerit, ipsum augue ornare nulla, non luctus diam neque sit amet 18 + urna. Curabitur vulputate vestibulum lorem. Fusce sagittis, libero non 19 + molestie mollis, magna orci ultrices dolor, at vulputate neque nulla lacinia 20 + eros. Sed id ligula quis est convallis tempor. Curabitur lacinia pulvinar 21 + nibh. Nam a sapien.
+57
themes/zerm/content/using_katex/index.md
··· 1 + +++ 2 + title="Using KaTeX for mathematical typesetting" 3 + date=2021-06-16 4 + 5 + [taxonomies] 6 + categories=["test"] 7 + tags=["math", "zola"] 8 + 9 + [extra] 10 + math=true 11 + +++ 12 + 13 + The usual way to include LaTeX is to use `$$`, as shown in the examples below. 14 + 15 + These examples are taken from <http://khan.github.io/KaTeX/> 16 + 17 + ### Example 1 18 + If the text between `$$` contains newlines it will rendered in display mode: 19 + ``` 20 + $$ 21 + f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi 22 + $$ 23 + ``` 24 + 25 + $$ 26 + f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi 27 + $$ 28 + 29 + ### Example 2 30 + 31 + ``` 32 + $$ 33 + \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } } 34 + $$ 35 + 36 + 1(ϕ5−ϕ)e25π=1+e−2π1+e−4π1+e−6π1+e−8π1+⋯ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } } 37 + ``` 38 + 39 + $$ 40 + \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } } 41 + $$ 42 + 43 + 1(ϕ5−ϕ)e25π=1+e−2π1+e−4π1+e−6π1+e−8π1+⋯ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } } 44 + 45 + ### Example 3 46 + 47 + ``` 48 + $$ 49 + 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1. 50 + $$ 51 + ``` 52 + 53 + $$ 54 + 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \quad\quad \text{for }\lvert q\rvert<1. 55 + $$ 56 + 57 +
+42
themes/zerm/content/waz/index.md
··· 1 + +++ 2 + title="waz" 3 + description="a basic demo of zola. Does it work? This old man, he played one. He played knick knack on my drum." 4 + date=2019-03-27 5 + 6 + [taxonomies] 7 + tags = ["rust", "test", "zola"] 8 + categories = ["programming", "misc.", "programming languages"] 9 + 10 + [extra] 11 + +++ 12 + 13 + # Hello Hello 14 + 15 + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit 16 + tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et, 17 + mattis eget, convallis nec, purus. Cum sociis natoque penatibus et magnis dis 18 + parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae dolor. 19 + Nullam tristique diam non turpis. Cras placerat accumsan nulla. Nullam 20 + rutrum. Nam vestibulum accumsan nisl. 21 + 22 + 23 + ```python 24 + def foo(bar, **kwargs): 25 + print("yo, this is nice!") 26 + ``` 27 + 28 + ## a list 29 + 30 + * Donec hendrerit tempor tellus. 31 + * Nam a sapien. 32 + * Phasellus at dui in ligula mollis ultricies. 33 + * Mauris mollis tincidunt felis. 34 + * Nullam rutrum. 35 + 36 + ### Yet another list 37 + 1. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada massa, 38 + quis varius mi purus non odio. 39 + 2. Donec hendrerit tempor tellus. 40 + 3. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada massa, 41 + quis varius mi purus non odio. 42 +
+69
themes/zerm/content/zerm/index.md
··· 1 + +++ 2 + title="what is zerm?" 3 + description="a summary of what zerm is and why it is different." 4 + date=2019-08-07 5 + updated=2021-02-03 6 + 7 + [taxonomies] 8 + tags = ["rust", "test", "zola"] 9 + categories = ["programming", "misc.",] 10 + 11 + [extra] 12 + ToC = true 13 + +++ 14 + 15 + # hello 16 + 17 + This is zerm, a minimalist theme for Zola based[^1] off of [panr's](https://twitter.com/panr) 18 + theme for Hugo. 19 + 20 + While it's largely faithful to the original, there are some changes: 21 + - no prism.js integration, instead we use Zola's syntax highlighting to reduce overhead. 22 + - removal of PostCSS and leveraging Zola's use of Sass for simple styling. 23 + - much thanks to [Paweł 24 + Romanowski's](https://github.com/pawroman/zola-theme-terminimal/) 25 + independent fork of Terminal. Their Sass stylings saved me the overhead of 26 + figuring it out myself. 27 + - no preview images. I want a theme that is focused on content. 28 + - support for anchor links. 29 + - Other small, opinionated changes that I think lend to the minimalism and 30 + aesthetic of zerm. 31 + 32 + 33 + Things this theme does not have but either Terminal or Terminimal might: 34 + - better short-codes for things like embedding videos or images, though I will 35 + work on this over time. 36 + - better support for things like comments and social media. As of now, I have 37 + no plans to add this but [PR's are always 38 + **welcomed**](https://github.com/ejmg/zerm/pulls). 39 + 40 + ## A quick demo 41 + 42 + `println!("inline code");` 43 + 44 + ```rs 45 + fn main(n: String) { 46 + println!("hello, zola!"); 47 + } 48 + ``` 49 + 50 + ### Header III 51 + 52 + > a somewhat kinda maybe large quote that maybe spans 53 + > more than one line but I mean really who even cares 54 + > okay maybe I do but point being is yes nice. 55 + 56 + #### Header IV 57 + 58 + | hello | tables | nice | 59 + |:-----:|:---------:|------| 60 + | wow | much love | yes | 61 + 62 + 63 + Like zerm? Then [install 64 + Zola](https://www.getzola.org/documentation/getting-started/installation/) and 65 + [get started](https://www.getzola.org/documentation/themes/installing-and-using-themes/#installing-a-theme)! 66 + 67 + --- 68 + 69 + [^1]: fork? port? a little bit of the former, more of the latter?
+7
themes/zerm/package.json
··· 1 + { 2 + "scripts": 3 + { 4 + "install": "curl -L -O https://github.com/getzola/zola/releases/download/v0.13.0/zola-v0.13.0-x86_64-unknown-linux-gnu.tar.gz && tar -xzf zola-v0.13.0-x86_64-unknown-linux-gnu.tar.gz", 5 + "build": "./zola build" 6 + } 7 + }
+29
themes/zerm/sass/_buttons.scss
··· 1 + button, 2 + .button, 3 + a.button { 4 + position: relative; 5 + display: flex; 6 + align-items: center; 7 + justify-content: center; 8 + padding: 8px 18px; 9 + margin-bottom: 5px; 10 + text-decoration: none; 11 + text-align: center; 12 + border-radius: 8px; 13 + border: 1px solid transparent; 14 + appearance: none; 15 + cursor: pointer; 16 + outline: none; 17 + } 18 + 19 + a.read-more, 20 + a.read-more:hover, 21 + a.read-more:active { 22 + display: inline-flex; 23 + background: none; 24 + box-shadow: none; 25 + padding: 0; 26 + margin: 20px 0; 27 + max-width: 100%; 28 + } 29 +
+15
themes/zerm/sass/_font.scss
··· 1 + @font-face { 2 + font-family: 'Fira Code'; 3 + font-style: normal; 4 + font-weight: 400; 5 + font-display: swap; 6 + src: url("assets/fonts/FiraCode-Regular.woff2") format("woff2"), url("assets/fonts/FiraCode-Regular.woff") format("woff"); 7 + } 8 + 9 + @font-face { 10 + font-family: 'Fira Code'; 11 + font-style: normal; 12 + font-weight: 800; 13 + font-display: swap; 14 + src: url("assets/fonts/FiraCode-Bold.woff2") format("woff2"), url("assets/fonts/FiraCode-Bold.woff") format("woff"); 15 + }
+67
themes/zerm/sass/_footer.scss
··· 1 + @import "variables"; 2 + 3 + .footer { 4 + padding: 40px 0; 5 + flex-grow: 0; 6 + opacity: .5; 7 + 8 + &__inner { 9 + display: flex; 10 + align-items: center; 11 + justify-content: space-between; 12 + margin: 0; 13 + width: 760px; 14 + max-width: 100%; 15 + 16 + @media (max-width: $tablet-max-width) { 17 + flex-direction: column; 18 + } 19 + } 20 + 21 + a { 22 + color: inherit; 23 + } 24 + 25 + .copyright { 26 + display: flex; 27 + flex-direction: row; 28 + align-items: center; 29 + font-size: 1rem; 30 + // so `--light-color-secondary` color exists no where else in the stylings 31 + // color: var(--light-color-secondary); 32 + // As a substitute, I'm going to use the alpha-70 version of accent. 33 + color: var(--accent-alpha-70); 34 + 35 + &--user { 36 + margin: auto; 37 + text-align: center; 38 + } 39 + 40 + & > *:first-child:not(:only-child) { 41 + margin-right: 10px; 42 + 43 + @media (max-width: $tablet-max-width) { 44 + border: none; 45 + padding: 0; 46 + margin: 0; 47 + } 48 + } 49 + 50 + @media (max-width: $tablet-max-width) { 51 + flex-direction: column; 52 + margin-top: 10px; 53 + } 54 + } 55 + 56 + // .copyright-theme-sep { 57 + // @media (max-width: $tablet-max-width) { 58 + // display: none; 59 + // } 60 + // } 61 + 62 + // .copyright-theme { 63 + // @media (max-width: $tablet-max-width) { 64 + // font-size: 0.75rem; 65 + // } 66 + // } 67 + }
+139
themes/zerm/sass/_header.scss
··· 1 + @import "variables"; 2 + 3 + @mixin menu { 4 + background: var(--background); 5 + box-shadow: var(--shadow); 6 + color: var(--color); 7 + border: 2px solid; 8 + margin: 0; 9 + padding: 10px; 10 + list-style: none; 11 + z-index: 99; 12 + } 13 + 14 + .header { 15 + display: flex; 16 + flex-direction: column; 17 + position: relative; 18 + 19 + &__inner { 20 + display: flex; 21 + align-items: center; 22 + justify-content: space-between; 23 + } 24 + 25 + &__logo { 26 + display: flex; 27 + flex: 1; 28 + 29 + &:after { 30 + content: ''; 31 + background: repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, transparent 0, transparent 10px); 32 + display: block; 33 + width: 100%; 34 + right: 10px; 35 + } 36 + 37 + a { 38 + flex: 0 0 auto; 39 + max-width: 100%; 40 + text-decoration: none; 41 + } 42 + } 43 + 44 + .menu { 45 + margin: 20px 0; 46 + --shadow-color: var(--accent-alpha-70); 47 + --shadow: 0 10px var(--shadow-color), -10px 10px var(--shadow-color), 10px 10px var(--shadow-color); 48 + 49 + @media (max-width: $phone-max-width) { 50 + @include menu; 51 + position: absolute; 52 + top: 50px; 53 + right: 0; 54 + } 55 + 56 + &__inner { 57 + // @include menu; 58 + display: flex; 59 + flex-wrap: wrap; 60 + list-style: none; 61 + margin: 0; 62 + padding: 0; 63 + 64 + &--desktop { 65 + @media (max-width: $phone-max-width) { 66 + display: none; 67 + } 68 + } 69 + 70 + &--mobile { 71 + display: none; 72 + 73 + @media (max-width: $phone-max-width) { 74 + display: block; 75 + } 76 + } 77 + 78 + li { 79 + // &.active { 80 + // color: var(--accent-alpha-70); 81 + // } 82 + &:not(:last-of-type) { 83 + margin-right: 20px; 84 + margin-bottom: 10px; 85 + flex: 0 0 auto; 86 + } 87 + } 88 + 89 + @media (max-width: $phone-max-width) { 90 + flex-direction: column; 91 + align-items: flex-start; 92 + padding: 0; 93 + 94 + li { 95 + margin: 0; 96 + padding: 5px; 97 + } 98 + } 99 + } 100 + 101 + &__sub-inner { 102 + position: relative; 103 + list-style: none; 104 + padding: 0; 105 + margin: 0; 106 + 107 + &:not(:only-child) { 108 + margin-left: 20px; 109 + } 110 + 111 + &-more { 112 + @include menu; 113 + top: 35px; 114 + left: 0; 115 + 116 + &-trigger { 117 + color: var(--accent); 118 + user-select: none; 119 + cursor: pointer; 120 + } 121 + 122 + li { 123 + margin: 0; 124 + padding: 5px; 125 + white-space: nowrap; 126 + } 127 + } 128 + } 129 + 130 + &-trigger { 131 + color: var(--accent); 132 + border: 2px solid; 133 + margin-left: 10px; 134 + height: 100%; 135 + padding: 3px 8px; 136 + position: relative; 137 + } 138 + } 139 + }
+8
themes/zerm/sass/_logo.scss
··· 1 + .logo { 2 + display: flex; 3 + align-items: center; 4 + text-decoration: none; 5 + background: var(--accent); 6 + color: black; 7 + padding: 5px 10px; 8 + }
+335
themes/zerm/sass/_main.scss
··· 1 + @import "variables"; 2 + 3 + html { 4 + box-sizing: border-box; 5 + } 6 + 7 + *, 8 + *:before, 9 + *:after { 10 + box-sizing: inherit; 11 + } 12 + 13 + body { 14 + margin: 0; 15 + padding: 0; 16 + font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace; 17 + font-size: 1rem; 18 + line-height: 1.54; 19 + background-color: var(--background); 20 + color: var(--color); 21 + text-rendering: optimizeLegibility; 22 + -webkit-font-smoothing: antialiased; 23 + -webkit-overflow-scrolling: touch; 24 + -webkit-text-size-adjust: 100%; 25 + font-feature-settings: "liga"; 26 + 27 + @media (max-width: $phone-max-width) { 28 + font-size: 1rem; 29 + } 30 + } 31 + 32 + h1, h2, h3, h4, h5, h6 { 33 + line-height: 1.3; 34 + 35 + &:not(first-child) { 36 + margin-top: 40px; 37 + } 38 + 39 + .zola-anchor { 40 + font-size: 1.5rem; 41 + visibility: hidden; 42 + margin-left: 0.5rem; 43 + vertical-align: 1%; 44 + text-decoration: none; 45 + border-bottom-color: transparent; 46 + cursor: pointer; 47 + 48 + @media(max-width: $phone-max-width){ 49 + visibility: visible; 50 + } 51 + } 52 + 53 + &:hover { 54 + .zola-anchor { 55 + visibility: visible; 56 + } 57 + } 58 + } 59 + 60 + // Actually keeping Pawroman's stylings here for font-size over h1-h6. 61 + // I prefer differentiated header height. 62 + 63 + // OLD 64 + // --------------------- 65 + // h1, h2, h3 { 66 + // font-size: 1.4rem; 67 + // } 68 + 69 + // h4, h5, h6 { 70 + // font-size: 1.2rem; 71 + // } 72 + 73 + // Pawroman's 74 + // --------------------- 75 + h1 { 76 + font-size: 1.4rem; 77 + } 78 + 79 + h2 { 80 + font-size: 1.3rem; 81 + } 82 + 83 + h3 { 84 + font-size: 1.2rem; 85 + } 86 + 87 + h4, h5, h6 { 88 + font-size: 1.15rem; 89 + } 90 + 91 + 92 + a { 93 + color: inherit; 94 + } 95 + 96 + img { 97 + display: block; 98 + max-width: 100%; 99 + 100 + &.left { 101 + margin-right: auto; 102 + } 103 + 104 + &.center { 105 + margin-left: auto; 106 + margin-right: auto; 107 + } 108 + 109 + &.right { 110 + margin-left: auto; 111 + } 112 + } 113 + 114 + p { 115 + margin-bottom: 20px; 116 + } 117 + 118 + figure { 119 + display: table; 120 + max-width: 100%; 121 + margin: 25px 0; 122 + 123 + &.left { 124 + // img { 125 + margin-right: auto; 126 + // } 127 + } 128 + 129 + &.center { 130 + // img { 131 + margin-left: auto; 132 + margin-right: auto; 133 + // } 134 + } 135 + 136 + &.right { 137 + // img { 138 + margin-left: auto; 139 + // } 140 + } 141 + 142 + figcaption { 143 + font-size: 14px; 144 + padding: 5px 10px; 145 + margin-top: 5px; 146 + background: var(--accent); 147 + color: var(--background); 148 + 149 + &.left { 150 + text-align: left; 151 + } 152 + 153 + &.center { 154 + text-align: center; 155 + } 156 + 157 + &.right { 158 + text-align: right; 159 + } 160 + } 161 + } 162 + 163 + code { 164 + font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace; 165 + font-feature-settings: normal; 166 + background: var(--accent-alpha-20); 167 + color: var(--accent); 168 + padding: 1px 6px; 169 + margin: 0 2px; 170 + font-size: .95rem; 171 + } 172 + 173 + pre { 174 + font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace; 175 + font-feature-settings: "liga"; 176 + padding: 20px 10px; 177 + font-size: .95rem; 178 + overflow: auto; 179 + border-top: 1px solid rgba(255, 255, 255, .1); 180 + border-bottom: 1px solid rgba(255, 255, 255, .1); 181 + 182 + + pre { 183 + border-top: 0; 184 + margin-top: -40px; 185 + } 186 + 187 + @media (max-width: $phone-max-width) { 188 + white-space: pre-wrap; 189 + word-wrap: break-word; 190 + } 191 + 192 + code { 193 + background: none !important; 194 + margin: 0; 195 + padding: 0; 196 + font-size: inherit; 197 + border: none; 198 + 199 + table { 200 + table-layout: auto; 201 + border-collapse: collapse; 202 + box-sizing: border-box; 203 + width: 100%; 204 + margin: 00px 0; 205 + } 206 + 207 + table, th, td { 208 + border: none; 209 + padding: 0px; 210 + } 211 + 212 + table tr td:first-child { 213 + padding-right: 10px; 214 + } 215 + 216 + } 217 + } 218 + 219 + blockquote { 220 + border-top: 1px solid var(--accent); 221 + border-bottom: 1px solid var(--accent); 222 + margin: 40px 0; 223 + padding: 25px; 224 + 225 + @media (max-width: $phone-max-width) { 226 + padding-right: 0; 227 + } 228 + 229 + &:before { 230 + content: '”'; 231 + font-family: Georgia, serif; 232 + font-size: 3.875rem; 233 + position: absolute; 234 + left: -40px; 235 + top: -20px; 236 + } 237 + 238 + p:first-of-type { 239 + margin-top: 0; 240 + } 241 + 242 + p:last-of-type { 243 + margin-bottom: 0; 244 + } 245 + 246 + p { 247 + position: relative; 248 + } 249 + 250 + p:before { 251 + content: '>'; 252 + display: block; 253 + position: absolute; 254 + left: -25px; 255 + color: var(--accent); 256 + } 257 + } 258 + 259 + table { 260 + table-layout: fixed; 261 + border-collapse: collapse; 262 + width: 100%; 263 + margin: 40px 0; 264 + } 265 + 266 + table, th, td { 267 + border: 1px dashed var(--accent); 268 + padding: 10px; 269 + } 270 + 271 + th { 272 + color: var(--accent); 273 + } 274 + 275 + ul, ol { 276 + margin-left: 30px; 277 + padding: 0; 278 + 279 + li { 280 + position: relative; 281 + margin-top: 5px; 282 + margin-bottom: 5px; 283 + } 284 + 285 + @media (max-width: $phone-max-width) { 286 + margin-left: 20px; 287 + } 288 + 289 + ul, ol { 290 + margin-top: 10px; 291 + margin-bottom: 10px; 292 + } 293 + } 294 + 295 + ol ol { 296 + list-style-type: lower-alpha; 297 + } 298 + 299 + .container { 300 + display: flex; 301 + flex-direction: column; 302 + padding: 40px; 303 + max-width: 864px; 304 + min-height: 100vh; 305 + border-right: 1px solid rgba(255, 255, 255, 0.1); 306 + 307 + &.full, 308 + &.center { 309 + border: none; 310 + margin: 0 auto; 311 + } 312 + 313 + &.full { 314 + max-width: 100%; 315 + } 316 + 317 + @media (max-width: $phone-max-width) { 318 + padding: 20px; 319 + } 320 + } 321 + 322 + .content { 323 + display: flex; 324 + } 325 + 326 + hr { 327 + width: 100%; 328 + border: none; 329 + background: var(--border-color); 330 + height: 1px; 331 + } 332 + 333 + .hidden { 334 + display: none; 335 + }
+63
themes/zerm/sass/_pagination.scss
··· 1 + @import 'variables'; 2 + 3 + .pagination { 4 + margin-top: 50px; 5 + 6 + &__buttons { 7 + display: flex; 8 + align-items: center; 9 + justify-content: center; 10 + 11 + // @media (max-width: $phone-max-width) { 12 + // flex-direction: column; 13 + // } 14 + 15 + a { 16 + text-decoration: none; 17 + } 18 + } 19 + } 20 + 21 + .button { 22 + position: relative; 23 + display: inline-flex; 24 + align-items: center; 25 + justify-content: center; 26 + font-size: 1rem; 27 + border-radius: 8px; 28 + max-width: 40%; 29 + padding: 0; 30 + cursor: pointer; 31 + appearance: none; 32 + 33 + + .button { 34 + margin-left: 10px; 35 + } 36 + 37 + // @media (max-width: $phone-max-width) { 38 + // max-width: 80%; 39 + // } 40 + 41 + a { 42 + display: flex; 43 + padding: 8px 16px; 44 + text-decoration: none; 45 + text-overflow: ellipsis; 46 + white-space: nowrap; 47 + overflow: hidden; 48 + } 49 + 50 + &__text { 51 + text-overflow: ellipsis; 52 + white-space: nowrap; 53 + overflow: hidden; 54 + } 55 + 56 + &.next .button__icon { 57 + margin-left: 8px; 58 + } 59 + 60 + &.previous .button__icon { 61 + margin-right: 8px; 62 + } 63 + }
+114
themes/zerm/sass/_post.scss
··· 1 + @import "variables"; 2 + 3 + // .posts { 4 + // margin: 0 auto; 5 + // } 6 + 7 + .post { 8 + width: 100%; 9 + text-align: left; 10 + margin: 20px auto; 11 + padding: 20px 0; 12 + 13 + @media (max-width: $tablet-max-width) { 14 + max-width: 660px; 15 + } 16 + 17 + &:not(:last-of-type) { 18 + border-bottom: 1px solid var(--border-color); 19 + } 20 + 21 + // %meta { 22 + // font-size: 1rem; 23 + // margin-bottom: 10px; 24 + // color: var(--accent-alpha-70); 25 + // } 26 + 27 + // &-meta { 28 + // @extend %meta; 29 + // } 30 + // &-meta-inline { 31 + // @extend %meta; 32 + 33 + // display: inline; 34 + // } 35 + 36 + &-meta { 37 + font-size: 1rem; 38 + margin-bottom: 10px; 39 + color: var(--accent-alpha-70); 40 + } 41 + 42 + &-title { 43 + --border: 3px dotted var(--accent); 44 + position: relative; 45 + color: var(--accent); 46 + margin: 0 0 15px; 47 + padding-bottom: 15px; 48 + border-bottom: var(--border); 49 + 50 + &:after { 51 + content: ''; 52 + position: absolute; 53 + bottom: 2px; 54 + display: block; 55 + width: 100%; 56 + border-bottom: var(--border); 57 + } 58 + 59 + a { 60 + text-decoration: none; 61 + } 62 + } 63 + 64 + &-content { 65 + margin-top: 30px; 66 + } 67 + 68 + ul { 69 + list-style: none; 70 + 71 + li:before { 72 + content: '⦿'; 73 + position: absolute; 74 + left: -20px; 75 + color: var(--accent); 76 + } 77 + ul { 78 + 79 + li:before { 80 + content: '■'; 81 + position: absolute; 82 + left: -20px; 83 + color: var(--accent); 84 + } 85 + 86 + ul { 87 + 88 + li:before { 89 + content: '►'; 90 + position: absolute; 91 + left: -20px; 92 + color: var(--accent); 93 + } 94 + } 95 + } 96 + } 97 + } 98 + 99 + // TODO: try adapting this using a properly nested selector in the block above 100 + // for ul items. 101 + .tag-list { 102 + @media(max-width: $phone-max-width) { 103 + margin-left: 5%; 104 + } 105 + } 106 + 107 + .footnote-definition { 108 + color: var(--accent); 109 + 110 + p { 111 + display: inline; 112 + color: var(--footnote-color); 113 + } 114 + }
+3
themes/zerm/sass/_semantic.scss
··· 1 + section, article, aside, footer, header, nav { 2 + display: block; 3 + }
+6
themes/zerm/sass/_toc.scss
··· 1 + div.toc { 2 + --shadow-color: var(--accent-alpha-70); 3 + --shadow: 10px 10px var(--shadow-color); 4 + @include menu; 5 + margin: 20px 0; 6 + }
+10
themes/zerm/sass/_variables.scss
··· 1 + :root { 2 + // *NOTE*: 3 + // ------------------------------------------------ 4 + //Keep the same as the values in variables.scss!!!!! 5 + --phoneWidth: (max-width: 684px); 6 + --tabletWidth: (max-width: 900px); 7 + } 8 + 9 + $phone-max-width: 683px; 10 + $tablet-max-width: 899px;
+9
themes/zerm/sass/color/blue.scss
··· 1 + :root { 2 + --accent: rgb(35,176,255); 3 + --accent-alpha-20: rgba(35,176,255,.2); 4 + --accent-alpha-70: rgba(35,176,255,.7); 5 + --background: #1D1E28; 6 + --color: whitesmoke; 7 + --border-color: rgba(255, 255, 255, .1); 8 + --footnote-color: rgba(255, 255, 255, .5); 9 + }
+12
themes/zerm/sass/color/green.scss
··· 1 + :root { 2 + // --accent: rgb(120,226,160); 3 + // --accent-alpha-20: rgba(120,226,160,.2); 4 + // --accent-alpha-70: rgba(120,226,160,.7); 5 + --accent: rgb(72, 251, 53); 6 + --accent-alpha-20: rgba(72, 251, 53,.2); 7 + --accent-alpha-70: rgba(72, 251, 53,.7); 8 + --background: #1F222A; 9 + --color: whitesmoke; 10 + --border-color: rgba(255, 255, 255, .1); 11 + --footnote-color: rgba(255, 255, 255, .5); 12 + }
+9
themes/zerm/sass/color/orange.scss
··· 1 + :root { 2 + --accent: rgb(255,168,106); 3 + --accent-alpha-20: rgba(255, 168, 106, .2); 4 + --accent-alpha-70: rgba(255, 168, 106,.7); 5 + --background: #211f1a; 6 + --color: whitesmoke; 7 + --border-color: rgba(255, 255, 255, .1); 8 + --footnote-color: rgba(255, 255, 255, .5); 9 + }
+9
themes/zerm/sass/color/pink.scss
··· 1 + :root { 2 + --accent: rgb(238,114,241); 3 + --accent-alpha-20: rgba(238,114,241,.2); 4 + --accent-alpha-70: rgba(238,114,241,.7); 5 + --background: #21202C; 6 + --color: whitesmoke; 7 + --border-color: rgba(255, 255, 255, .1); 8 + --footnote-color: rgba(255, 255, 255, .5); 9 + }
+9
themes/zerm/sass/color/red.scss
··· 1 + :root { 2 + --accent: rgb(255,98,102); 3 + --accent-alpha-20: rgba(255,98,102,.2); 4 + --accent-alpha-70: rgba(255,98,102,.7); 5 + --background: #221F29; 6 + --color: whitesmoke; 7 + --border-color: rgba(255, 255, 255, .1); 8 + --footnote-color: rgba(255, 255, 255, .5); 9 + }
+10
themes/zerm/sass/style.scss
··· 1 + @import 'buttons'; 2 + @import 'font'; 3 + @import 'header'; 4 + @import 'logo'; 5 + @import 'main'; 6 + @import 'post'; 7 + @import 'pagination'; 8 + @import 'footer'; 9 + @import 'semantic'; 10 + @import 'toc';
themes/zerm/screenshot.png

This is a binary file and will not be displayed.

+1
themes/zerm/static/assets/js/main.js
··· 1 + !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){n(1),e.exports=n(2)},function(e,t){},function(e,t){var n=document.querySelector(".container"),o=document.querySelector(".menu"),r=document.querySelector(".menu-trigger"),i=(document.querySelector(".menu__inner--desktop"),document.querySelector(".menu__sub-inner-more-trigger")),u=document.querySelector(".menu__sub-inner-more"),c=getComputedStyle(document.body).getPropertyValue("--phoneWidth"),d=function(){return window.matchMedia(c).matches},s=function(){r&&r.classList.toggle("hidden",!d()),o&&o.classList.toggle("hidden",d()),u&&u.classList.toggle("hidden",!d())};o&&o.addEventListener("click",function(e){return e.stopPropagation()}),u&&u.addEventListener("click",function(e){return e.stopPropagation()}),s(),document.body.addEventListener("click",function(){d()||!u||u.classList.contains("hidden")?d()&&!o.classList.contains("hidden")&&o.classList.add("hidden"):u.classList.add("hidden")}),window.addEventListener("resize",s),r&&r.addEventListener("click",function(e){e.stopPropagation(),o&&o.classList.toggle("hidden")}),i&&i.addEventListener("click",function(e){e.stopPropagation(),u&&u.classList.toggle("hidden"),u.getBoundingClientRect().right>n.getBoundingClientRect().right&&(u.style.left="auto",u.style.right=0)})}]);
+1
themes/zerm/templates/.gitignore
··· 1 + !tags
+12
themes/zerm/templates/404.html
··· 1 + {% extends "index.html" -%} 2 + 3 + {%- block title %} 4 + <title>Page not found</title> 5 + {%- endblock title -%} 6 + 7 + {%- block main -%} 8 + 9 + Sorry, this page doesn't exist. 10 + 11 + Go back&nbsp<a href="{%- if config.extra.logo_home_link -%}{{ config.extra.logo_home_link }}{%- else -%}{{ config.base_url }}{%- endif -%}">home?</a> 12 + {%- endblock main -%}
+1
themes/zerm/templates/anchor-link.html
··· 1 + <a class="zola-anchor" href="#{{ id }}" aria-label="Anchor link for: {{ id }}">§</a>
+18
themes/zerm/templates/categories/list.html
··· 1 + {% extends "index.html" %} 2 + {%- block main -%} 3 + <div class="post"> 4 + 5 + <h1 class="post-title">{categories}</h1> 6 + <ul> 7 + {%- for cat in terms -%} 8 + <li class="tag-list"> 9 + <a href="{{ get_taxonomy_url(kind="categories", name=cat.name) }}">{{ "{" }}{{ cat.name }}{{ "}" }}</a> 10 + ({{ cat.pages | length }} post{{ cat.pages | length | pluralize }}) 11 + </li> 12 + {# End of pagination for-loop #} 13 + {%- endfor -%} 14 + {#- I don't put pagination here like Terminal does. I don't like how 15 + the buttons move with the size of post entries in the content div. -#} 16 + </ul> 17 + </div> 18 + {%- endblock main -%}
+30
themes/zerm/templates/categories/single.html
··· 1 + {%- extends "index.html"-%} 2 + {%- block main-%} 3 + <div class="post"> 4 + <h1 class="post-title"> 5 + categories ∋ {{ "{" }}{{ term.name }}{{ "}" }} 6 + ({{ term.pages | length }} post{{ term.pages | length | pluralize }}) 7 + </h1> 8 + 9 + <ul> 10 + {%- for post in term.pages -%} 11 + <li class="tag-list"> 12 + {{ post.date | date(format="%Y.%m.%d") }} 13 + :: <a href="{{ post.permalink }}">{{ post.title }}</a> 14 + :: {{ "{" }} 15 + {%- for cat in post.taxonomies["categories"] -%} 16 + {%- set _cat = get_taxonomy_url(kind="categories", name=cat) -%} 17 + {%- if loop.last -%} 18 + <a href="{{ _cat }}">{{ cat }}</a> 19 + {%- else -%} 20 + <a href="{{ _cat }}">{{ cat }}</a>,&nbsp; 21 + {%- endif -%} 22 + {% endfor %}{{ "}" }} 23 + </li> 24 + {# End of pagination for-loop #} 25 + {%- endfor -%} 26 + {#- I don't put pagination here like Terminal does. I don't like how 27 + the buttons move with the size of post entries in the content div. -#} 28 + </ul> 29 + </div> 30 + {%- endblock main-%}
+97
themes/zerm/templates/index.html
··· 1 + {% import "macros/head.html" as head -%} 2 + {% import "macros/logo.html" as logo -%} 3 + {% import "macros/header.html" as header -%} 4 + {% import "macros/extended_header.html" as extended_header -%} 5 + {% import "macros/lists.html" as lists -%} 6 + {% import "macros/posts.html" as posts -%} 7 + {% import "macros/social.html" as social -%} 8 + {% import "macros/utils.html" as utils -%} 9 + {% import "macros/menu.html" as menu -%} 10 + {% import "macros/pagination.html" as pagination -%} 11 + {% import "macros/footer.html" as footer -%} 12 + {% import "macros/extended_footer.html" as extended_footer -%} 13 + {% import "macros/comments.html" as comments -%} 14 + 15 + <!DOCTYPE html> 16 + <html lang="{{ lang }}"> 17 + <head> 18 + {%- block title -%} 19 + <title>{{ config.title }}</title> 20 + {%- endblock title -%} 21 + 22 + {%- block general_meta -%} 23 + {{ head::general_meta() }} 24 + {%- endblock general_meta -%} 25 + 26 + {%- block og_preview -%} 27 + {{ social::og_preview() }} 28 + {%- endblock og_preview -%} 29 + 30 + {%- block fonts -%} 31 + {{ head::fonts() }} 32 + {%- endblock fonts -%} 33 + 34 + {%- block css -%} 35 + {{ head::styling() }} 36 + {%- endblock css -%} 37 + 38 + {%- block favicon -%} 39 + {{ head::favicon() }} 40 + {%- endblock favicon -%} 41 + 42 + {%- block rss -%} 43 + {{ head::rss() }} 44 + {%- endblock rss -%} 45 + 46 + {%- block math -%} 47 + {%- endblock math -%} 48 + </head> 49 + <body> 50 + {# 51 + "container full" when width == True, regardless of center 52 + "container center" when only center == True 53 + "container" when both false. 54 + #} 55 + {%- if config.extra.full_width -%} 56 + {%- set container = "container full" -%} 57 + {%- elif config.extra.center -%} 58 + {%- set container = "container center" -%} 59 + {%- else -%} 60 + {%- set container = "container" -%} 61 + {%- endif -%} 62 + 63 + <div class="{{ container }}"> 64 + {%- block header -%} 65 + {{ header::header() }} 66 + {%- endblock header -%} 67 + <div class="content"> 68 + {%- block main -%} 69 + {{ lists::list_pages() }} 70 + {%- endblock main -%} 71 + </div> 72 + {#- 73 + I keep pagination out of list, unlike Terminal, because I don't 74 + like how the pagination buttons move with the width of the content 75 + div. 76 + -#} 77 + {%- block pagination -%} 78 + {{ pagination::paginate() }} 79 + {%- endblock pagination -%} 80 + 81 + {%- block footer -%} 82 + <footer class="footer"> 83 + <div class="footer__inner"> 84 + {%- block copyright -%} 85 + {{ footer::copyright() }} 86 + {%- endblock copyright -%} 87 + 88 + {%- block script -%} 89 + {{ footer::script() }} 90 + {%- endblock script -%} 91 + </div> 92 + {{ extended_footer::extended_footer() }} 93 + </footer> 94 + {%- endblock footer -%} 95 + </div> 96 + </body> 97 + </html>
+30
themes/zerm/templates/macros/comments.html
··· 1 + {% macro comments() %} 2 + {% if config.extra.disqus.enabled is defined and config.extra.disqus.enabled == true %} 3 + {{ comments::disqus() }} 4 + {% endif %} 5 + {% endmacro comments %} 6 + 7 + 8 + {% macro disqus() %} 9 + 10 + <div id="disqus_thread"></div> 11 + <script> 12 + /** 13 + * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. 14 + * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ 15 + 16 + var disqus_config = function () { 17 + this.page.url = '{{ page.permalink | safe }}'; // Replace PAGE_URL with your page's canonical URL variable 18 + this.page.identifier = '{{ page.permalink | safe }}'; // Replace PAGE_IDENTIFIER with your page's unique identifier variable 19 + }; 20 + 21 + (function() { // DON'T EDIT BELOW THIS LINE 22 + var d = document, s = d.createElement('script'); 23 + s.src = 'https://{{config.extra.disqus.short_name}}.disqus.com/embed.js'; 24 + s.setAttribute('data-timestamp', +new Date()); 25 + (d.head || d.body).appendChild(s); 26 + })(); 27 + </script> 28 + <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> 29 + 30 + {% endmacro disqus %}
+2
themes/zerm/templates/macros/extended_footer.html
··· 1 + {% macro extended_footer() %} 2 + {% endmacro extended_footer %}
+2
themes/zerm/templates/macros/extended_header.html
··· 1 + {% macro extended_header() %} 2 + {% endmacro extended_header %}
+14
themes/zerm/templates/macros/footer.html
··· 1 + {% macro copyright() %} 2 + {%- if config.extra.copyright -%} 3 + <div class="copyright copyright--user">{{ config.extra.copyright | safe }}</div> 4 + {%- else -%} 5 + <div class="copyright"> 6 + <span>© {{ now() | date(format="%Y") }} <a href="https://github.com/ejmg/zerm">zerm</a> :: Powered by <a href="https://www.getzola.org/">Zola</a></span> 7 + <span>:: Theme made by <a href="https://github.com/ejmg">ejmg</a></span> 8 + </div> 9 + {%- endif -%} 10 + {% endmacro copyright %} 11 + 12 + {% macro script() %} 13 + <script type="text/javascript" src="{{ get_url(path="assets/js/main.js") }}"></script> 14 + {% endmacro script %}
+84
themes/zerm/templates/macros/head.html
··· 1 + {#- TODO: 2 + - [x] add rss 3 + - [x] favicons 4 + - [x] media preview 5 + - [ ] twitter 6 + - [ ] maybe google adsense 7 + -#} 8 + 9 + {% macro fonts() %} 10 + <link rel="preload" href="{{ get_url(path="/assets/fonts/FiraCode-Regular.woff2") }}" as="font" type="font/woff2" crossorigin="anonymous"> 11 + <link rel="preload" href="{{ get_url(path="/assets/fonts/FiraCode-Bold.woff2") }}" as="font" type="font/woff2" crossorigin="anonymous"> 12 + {% endmacro fonts %} 13 + 14 + {% macro styling() %} 15 + <link rel="stylesheet" href="{{ get_url(path="style.css", cachebust=true) }}"> 16 + {% if config.extra.theme_color != "orange" -%} 17 + {% set color = "color/" ~ config.extra.theme_color ~ ".css" -%} 18 + <link rel="stylesheet" href="{{ get_url(path=color, cachebust=true) }}"> 19 + {%- else -%} 20 + <link rel="stylesheet" href=" {{ get_url(path="color/orange.css", cachebust=true) }}"> 21 + {% endif %} 22 + {%- if config.extra.custom_css is defined -%} 23 + <link rel="stylesheet" href="{{ get_url(path="custom.css", cachebust=true) }}"> 24 + {% endif %} 25 + {% endmacro styling %} 26 + 27 + {% macro favicon() %} 28 + {%- if config.extra.favicon is defined -%} 29 + <link rel="shortcut icon" href="{{ get_url(path=config.extra.favicon) }}" type="image/x-icon" /> 30 + {%- endif -%} 31 + {% endmacro favicon %} 32 + 33 + {% macro rss() %} 34 + {%- if config.generate_feed -%} 35 + <link rel="alternate" type={% if config.feed_filename == "atom.xml" %}"application/atom+xml"{% else %}"application/rss+xml"{% endif %} title="{{ config.title }} RSS" href="{{ get_url(path=config.feed_filename) }}"> 36 + {%- endif -%} 37 + {% endmacro rss %} 38 + 39 + {% macro general_meta() %} 40 + <meta http-equiv="content-type" content="text/html; charset=utf-8"> 41 + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> 42 + {%- if page.title -%} 43 + <meta name="description" content="{{ config.description }} {{ page.title }} {{ page.description }}"/> 44 + {%- else -%} 45 + <meta name="description" content="{{ config.description }}"/> 46 + {%- endif -%} 47 + 48 + {%- if page.taxonomies.tags or page.taxonomies.categories -%} 49 + <meta name="keywords" content=" 50 + {%- if page.taxonomies.categories -%} 51 + {%- for cat in page.taxonomies.categories -%} 52 + {{ cat }}, {% endfor -%} 53 + {%- endif -%} 54 + 55 + {%- if page.taxonomies.tags -%} 56 + {%- for tag in page.taxonomies.tags -%} 57 + {%- if loop.last -%} 58 + {{ tag }} 59 + {%- else -%} 60 + {{ tag }}, {% endif -%} 61 + {%- endfor -%} 62 + {%- endif -%} 63 + " /> 64 + {%- endif -%} 65 + {% endmacro general_meta %} 66 + 67 + {% macro katex() %} 68 + {% if config.extra.enable_katex %} 69 + <link rel="stylesheet" href="{{ get_url(path="assets/katex/katex.min.css") }}"> 70 + 71 + <script defer type="text/javascript" src="{{ get_url(path="assets/katex/katex.min.js") | safe }}"></script> 72 + <script defer type="text/javascript" src="{{ get_url(path="assets/katex/mathtex-script-type.min.js") | safe }}"></script> 73 + 74 + <script defer src="{{ get_url(path="assets/katex/auto-render.min.js") | safe }}" 75 + onload="renderMathInElement(document.body, { 76 + delimiters: [ 77 + {left: '$$', right: '$$', display: true}, 78 + {left: '$', right: '$', display: false}, 79 + {left: '\\(', right: '\\)', display: false}, 80 + {left: '\\[', right: '\\]', display: true} 81 + ] 82 + });"></script> 83 + {% endif %} 84 + {% endmacro katek %}
+16
themes/zerm/templates/macros/header.html
··· 1 + {% macro header() %} 2 + <header class="header"> 3 + <div class="header__inner"> 4 + <div class="header__logo"> 5 + {{ logo::logo() }} 6 + </div> 7 + <div class="menu-trigger">menu</div> 8 + </div> 9 + {# Check if there are menu items to render, yes if > 0 #} 10 + {%- set num = config.extra.main_menu | length -%} 11 + {% if num > 0 -%} 12 + {{ menu::menu() }} 13 + {% endif -%} 14 + </header> 15 + {% endmacro header %} 16 +
+39
themes/zerm/templates/macros/lists.html
··· 1 + {% macro list_pages() %} 2 + <section class="posts"> 3 + 4 + {%- for page in paginator.pages -%} 5 + 6 + <div class="post on-list"> 7 + <header> 8 + <h1 class="post-title"> 9 + <a href="{{ page.permalink }}">{{ page.title }}</a> 10 + </h1> 11 + </header> 12 + 13 + 14 + {{ posts::meta(page=page, author=config.extra.show_author) }} 15 + 16 + {#- NOTE -#} 17 + {#- -------------------------------- -#} 18 + {#- Skipping the Cover page implementation. Not included/covered for now. -#} 19 + 20 + <div class="post-content"> 21 + {% if page.description -%} 22 + {{ page.description }} 23 + {#- end if-check for description -#} 24 + {% elif page.summary -%} 25 + {{ page.summary | safe }} 26 + {% endif -%} 27 + </div> 28 + {% if page.description or page.summary -%} 29 + <div> 30 + <a class="read-more button" href="{{ page.permalink }}">{{ config.extra.read_more }} →</a> 31 + </div> 32 + {% endif -%} 33 + </div> 34 + {# End of pagination for-loop #} 35 + {%- endfor -%} 36 + {#- I don't put pagination here like Terminal does. I don't like how 37 + the buttons move with the size of post entries in the content div. -#} 38 + </section> 39 + {% endmacro list_pages %}
+7
themes/zerm/templates/macros/logo.html
··· 1 + {%- macro logo() -%} 2 + <a href="{%- if config.extra.logo_home_link -%}{{ config.extra.logo_home_link }}{%- else -%}{{ config.base_url }}{%- endif -%}"> 3 + <div class="logo"> 4 + {{config.extra.logo_text | default(value="Terminal") }} 5 + </div> 6 + </a> 7 + {%- endmacro logo -%}
+58
themes/zerm/templates/macros/menu.html
··· 1 + {% macro menu() %} 2 + <nav class="menu"> 3 + <ul class="menu__inner menu__inner--desktop"> 4 + {# 5 + I am almost certain this check isn't necessary, that it will always 6 + return true, but the only alternative I can think of is the case where 7 + this config value simply doesn't exist (null)? IDK, just copying from 8 + original implementation for now. 9 + #} 10 + {% if config.extra.show_menu_items is defined -%} 11 + {% for menu_item in config.extra.main_menu | slice(end=config.extra.show_menu_items) -%} 12 + {# 13 + Original theme has sub-children checks on main-menu, not worrying about that here. 14 + #} 15 + <li> 16 + <a href="{{ menu::get_link(item=menu_item) }}">{{ menu_item.name }}</a> 17 + </li> 18 + {% endfor -%} 19 + 20 + {%- set main_len = config.extra.main_menu | length -%} 21 + {%- set show_len = config.extra.show_menu_items -%} 22 + 23 + {%- if main_len > show_len -%} 24 + <ul class="menu__sub-inner"> 25 + <li class="menu__sub-inner-more-trigger">{{ config.extra.menu_more }} ▾</li> 26 + <ul class="menu__sub-inner-more hidden"> 27 + {{ menu::items(menu=config.extra.main_menu | slice(start=config.extra.show_menu_items)) }} 28 + </ul> 29 + </ul> 30 + {%- endif -%} 31 + {# Continues the original if-check at top of file for show_menu_items #} 32 + {% else -%} 33 + {{ menu::items(menu=config.extra.main_menu) }} 34 + {%- endif -%} 35 + </ul> 36 + 37 + <ul class="menu__inner menu__inner--mobile"> 38 + {{ menu::items(menu=config.extra.main_menu) }} 39 + </ul> 40 + </nav> 41 + {% endmacro menu %} 42 + 43 + {% macro items(menu) %} 44 + {%- for menu_item in menu -%} 45 + {# skipping sub-child check #} 46 + <li> 47 + <a href="{{ menu::get_link(item=menu_item) }}">{{ menu_item.name }}</a> 48 + </li> 49 + {%- endfor-%} 50 + {% endmacro items %} 51 + 52 + {% macro get_link(item) %} 53 + {% if item.external is defined and item.external == true %} 54 + {{ item.url }} 55 + {% else %} 56 + {{ get_url(path=item.url) }} 57 + {% endif %} 58 + {% endmacro get_link %}
+24
themes/zerm/templates/macros/pagination.html
··· 1 + {% macro paginate() %} 2 + <div class="pagination"> 3 + <div class="pagination__buttons"> 4 + {% if paginator.previous -%} 5 + <span class="button previous"> 6 + <a href="{{ paginator.previous }}"> 7 + <span class="button__icon">←</span> 8 + <span class="button__text">newer</span> 9 + </a> 10 + </span> 11 + {# end of if-check for page.previous #} 12 + {% endif -%} 13 + {% if paginator.next -%} 14 + {# end of if-check for page.next #} 15 + <span class="button next"> 16 + <a href="{{ paginator.next }}"> 17 + <span class="button__text">older</span> 18 + <span class="button__icon">→</span> 19 + </a> 20 + </span> 21 + {% endif-%} 22 + </div> 23 + </div> 24 + {% endmacro paginate %}
+100
themes/zerm/templates/macros/posts.html
··· 1 + {% macro section_meta(section, author) %} 2 + <div class="post-meta"> 3 + <span class="post-date"> 4 + 5 + {%- if section.extra["date"] -%} 6 + {{ section.extra["date"] | date(format="%Y.%m.%d") }} 7 + {# end of section.date if-check #} 8 + {%- endif -%} 9 + </span> 10 + 11 + <span class="post-author"> 12 + {%- if author -%} 13 + {{ utils::author(page=section) }} 14 + {%- endif -%} 15 + </span> 16 + </div> 17 + {% endmacro section_meta %} 18 + 19 + {% macro langs(page) %} 20 + {% if page.translations | length > 1 %} 21 + <div class="post-langs" style="opacity: .5;"> 22 + <span>Translations: </span>{# TODO translate the span content too #} 23 + {% for translated in page.translations %} 24 + <a href="{{ translated.permalink }}">{{ translated.lang }}</a> 25 + {% endfor %} 26 + </div> 27 + {% endif %} 28 + {% endmacro langs %} 29 + 30 + {% macro meta(page, author) %} 31 + <div class="post-meta"> 32 + <span class="post-date"> 33 + {%- if page.date -%} 34 + {{ page.date | date(format="%Y.%m.%d") }} 35 + {# end of page.date if-check #} 36 + {%- endif -%} 37 + 38 + {%- if page.updated -%} 39 + [Updated: {{ page.updated | date(format="%Y.%m.%d") }}] 40 + {# end of page.updated if-check #} 41 + {%- endif -%} 42 + </span> 43 + 44 + <span class="post-author"> 45 + {%- if author -%} 46 + {{ utils::author(page=page) }} 47 + {%- endif -%} 48 + </span> 49 + 50 + {{ posts::taxonomies(taxonomy=page.taxonomies, 51 + disp_cat=config.extra.show_categories, 52 + disp_tag=config.extra.show_tags) }} 53 + </div> 54 + {% endmacro meta %} 55 + 56 + {% macro taxonomies(taxonomy, disp_cat, disp_tag) %} 57 + 58 + {% if disp_cat and disp_tag -%} 59 + {% if taxonomy.categories -%} 60 + {{ posts::categories(categories=taxonomy.categories) }} 61 + {# end if-check for categories #} 62 + {%- endif -%} 63 + 64 + {% if taxonomy.tags -%} 65 + {{ posts::tags(tags=taxonomy.tags) }} 66 + {# end if-check for tags #} 67 + {% endif -%} 68 + {% elif disp_cat -%} 69 + {% if taxonomy.categories-%} 70 + {{ posts::categories(categories=taxonomy.categories) }} 71 + {# end if-check for categories #} 72 + {% endif -%} 73 + {% elif disp_tag -%} 74 + {% if taxonomy.tags -%} 75 + {{ posts::tags(tags=taxonomy.tags) }} 76 + {# end if-check for tags #} 77 + {% endif -%} 78 + {# end if-check for BOTH disp bools #} 79 + {% endif -%} 80 + {% endmacro taxonomies %} 81 + 82 + {% macro categories(categories) %} 83 + :: { 84 + {%- for cat in categories -%} 85 + {%- if loop.last -%} 86 + <a href="{{ get_taxonomy_url(kind="categories", name=cat ) }}">{{ cat }}</a> 87 + {%- else -%} 88 + <a href="{{ get_taxonomy_url(kind="categories", name=cat ) }}">{{ cat }}</a>, 89 + {# end of if-check for whether last item or not #} 90 + {%- endif -%} 91 + {%- endfor -%}} {# <--- NOTE: OPEN CURLY BRACE #} 92 + {% endmacro categories %} 93 + 94 + {% macro tags(tags) %} 95 + :: 96 + {% for tag in tags -%} 97 + #<a href="{{get_taxonomy_url(kind="tags", name=tag )}}">{{ tag }}</a> 98 + {# end of tags for-loop #} 99 + {% endfor -%} 100 + {% endmacro tags %}
+46
themes/zerm/templates/macros/social.html
··· 1 + {% macro og_preview() %} 2 + <meta property="og:title" content="{{ social::og_title() }}" /> 3 + <meta property="og:type" content="website"/> 4 + {%- if current_url -%} 5 + <meta property="og:url" content="{{ current_url }}"/> 6 + {%- endif -%} 7 + <meta property="og:description" content="{{ social::og_description() }}"/> 8 + {%- if config.extra.og_preview_img -%} 9 + <meta property="og:image" content="{{ get_url(path=config.extra.og_preview_img) }}"/> 10 + {%- endif -%} 11 + {% endmacro og_preview %} 12 + 13 + {% macro og_description() %} 14 + {%- if section -%} 15 + {%- if section.description -%} 16 + {{ section.description }} 17 + {%- else -%} 18 + {{ config.description }} 19 + {%- endif -%} 20 + {%- elif page -%} 21 + {%- if page.summary | string -%} 22 + {{ page.summary | striptags | truncate(length=200) }} 23 + {%- elif page.description -%} 24 + {{ page.description }} 25 + {%- else -%} 26 + {{ config.description }} 27 + {%- endif -%} 28 + {%- endif -%} 29 + {% endmacro og_description %} 30 + 31 + {% macro og_title() -%} 32 + {{ config.title }} -&nbsp; 33 + {%- if section -%} 34 + {%- if section.title -%} 35 + {{ section.title | striptags }} 36 + {%- else -%} 37 + {{ config.description }} 38 + {%- endif -%} 39 + {%- elif page -%} 40 + {%- if page.title -%} 41 + {{ page.title | striptags }} 42 + {%- else -%} 43 + {{ config.description }} 44 + {%- endif -%} 45 + {%- endif -%} 46 + {% endmacro og_title %}
+61
themes/zerm/templates/macros/toc.html
··· 1 + {% macro toc (t) %} 2 + {% if t %} 3 + <div class="toc" id="nav-container"> 4 + <p class="toc-head">Table of Contents</p> 5 + <div id="nav-content" > 6 + <ul> 7 + {% for h1 in page.toc %} 8 + <li> 9 + <a href="{{ h1.permalink | safe }}">{{ h1.title }}</a> 10 + {% if h1.children %} 11 + <ul> 12 + {% for h2 in h1.children %} 13 + <li> 14 + <a href="{{ h2.permalink | safe }}">{{ h2.title }}</a> 15 + </li> 16 + {% if h2.children %} 17 + <ul> 18 + {% for h3 in h2.children %} 19 + <li> 20 + <a href="{{ h3.permalink | safe }}">{{ h3.title }}</a> 21 + {% if h3.children %} 22 + <ul> 23 + {% for h4 in h3.children %} 24 + <li> 25 + <a href="{{ h4.permalink | safe }}">{{ h4.title }}</a> 26 + </li> 27 + {% if h4.children %} 28 + <ul> 29 + {% for h5 in h4.children %} 30 + <li> 31 + <a href="{{ h5.permalink | safe }}">{{ h5.title }}</a> 32 + {% if h5.children %} 33 + <ul> 34 + {% for h6 in h5.children %} 35 + <li> 36 + <a href="{{ h5.permalink | safe }}">{{ h6.title }}</a> 37 + </li> 38 + {% endfor %} 39 + </ul> 40 + {% endif %} 41 + </li> 42 + {% endfor %} 43 + </ul> 44 + {% endif %} 45 + {% endfor %} 46 + </ul> 47 + {% endif %} 48 + </li> 49 + {% endfor %} 50 + </ul> 51 + {% endif %} 52 + {% endfor %} 53 + </ul> 54 + {% endif %} 55 + </li> 56 + {% endfor %} 57 + </ul> 58 + </div> 59 + </div> 60 + {% endif %} 61 + {% endmacro %}
+8
themes/zerm/templates/macros/utils.html
··· 1 + {% macro author(page) %} 2 + :: 3 + {% if page.extra.author -%} 4 + {{ page.extra.author }} 5 + {%- else -%} 6 + {{ config.extra.author }} 7 + {%- endif -%} 8 + {%- endmacro author-%}
+41
themes/zerm/templates/page.html
··· 1 + {% import "macros/head.html" as head -%} 2 + {% import "macros/toc.html" as toc -%} 3 + {% extends "index.html" -%} 4 + 5 + {%- block math -%} 6 + {% if page.extra.math %} 7 + {{ head::katex() }} 8 + {% endif %} 9 + {%- endblock math -%} 10 + 11 + {%- block title %} 12 + <title>{{ page.title }} - {{ config.extra.author }}</title> 13 + {# TODO: make some kind of social media linking, i guess? #} 14 + {#%- include "snippets/social.html" %#} 15 + {%- endblock title -%} 16 + 17 + {%- block main -%} 18 + <article class="post"> 19 + <header> 20 + <h1 class="post-title"> 21 + <a href="{{ page.permalink }}">{{ page.title }}</a> 22 + </h1> 23 + {{ posts::meta(page=page, author=config.extra.show_author) }} 24 + {{ posts::langs(page=page) }} 25 + 26 + {%- block ToC -%} 27 + {%- if page.extra.ToC or config.extra.ToC -%} 28 + {{ toc::toc(t=page.toc) }} 29 + {%- endif -%} 30 + {%- endblock ToC -%} 31 + </header> 32 + 33 + {#- Skipping logic for cover as was in original Terminal theme -#} 34 + 35 + {{ page.content | safe }} 36 + 37 + {{ comments::comments() }} 38 + {# TODO: Decide if any sort of commenting functionality is desired? #} 39 + {#%- include "snippets/comments.html" -%#} 40 + </article> 41 + {%- endblock main -%}
+24
themes/zerm/templates/section.html
··· 1 + {% extends "index.html" -%} 2 + 3 + {%- block title %} 4 + <title>{{ section.title }} - {{ config.extra.author }}</title> 5 + {# TODO: make some kind of social media linking, i guess? #} 6 + {#%- include "snippets/social.html" %#} 7 + {%- endblock title -%} 8 + 9 + {%- block main -%} 10 + <article class="post"> 11 + <header> 12 + <h1 class="post-title"> 13 + <a href="{{ section.permalink }}">{{ section.title }}</a> 14 + </h1> 15 + {{ posts::section_meta(section=section, author=config.extra.show_author) }} 16 + </header> 17 + 18 + {#- Skipping logic for cover as was in original Terminal theme -#} 19 + 20 + {{ section.content | safe }} 21 + {# TODO: Decide if any sort of commenting functionality is desired? #} 22 + {#%- include "snippets/comments.html" -%#} 23 + </article> 24 + {%- endblock main -%}
+12
themes/zerm/templates/static.html
··· 1 + {% extends "index.html" %} 2 + 3 + {% block header %} 4 + <title>{{ page.title }} | elias </title> 5 + {% endblock header %} 6 + 7 + {% block content %} 8 + <article> 9 + <h1>{{ page.title }}</h1> 10 + {{ page.content | safe }} 11 + </article> 12 + {% endblock content %}
+18
themes/zerm/templates/tags/list.html
··· 1 + {% extends "index.html" %} 2 + {%- block main -%} 3 + <div class="post"> 4 + 5 + <h1 class="post-title">#tags</h1> 6 + <ul> 7 + {%- for term in terms -%} 8 + <li class="tag-list"> 9 + <a href="{{ get_taxonomy_url(kind="tags", name=term.name) }}">#{{ term.name }}</a> 10 + ({{ term.pages | length }} post{{ term.pages | length | pluralize}}) 11 + </li> 12 + {# End of pagination for-loop #} 13 + {%- endfor -%} 14 + {#- I don't put pagination here like Terminal does. I don't like how 15 + the buttons move with the size of post entries in the content div. -#} 16 + </ul> 17 + </div> 18 + {%- endblock main -%}
+23
themes/zerm/templates/tags/single.html
··· 1 + {%- extends "index.html"-%} 2 + {%- block main-%} 3 + <div class="post"> 4 + <h1 class="post-title"> 5 + tags ∋ #{{ term.name }} 6 + ({{ term.pages | length }} post{{ term.pages | length | pluralize}}) 7 + </h1> 8 + 9 + <ul> 10 + {%- for post in term.pages -%} 11 + <li class="tag-list"> 12 + {{ post.date | date(format="%Y.%m.%d") }} 13 + :: <a href="{{ post.permalink }}">{{ post.title }}</a> 14 + :: {% for tag in post.taxonomies["tags"] -%} <a href="{%- set _tag = get_taxonomy_url(kind="tags", name=tag) -%}{{ _tag }}">#{{ tag }}</a> {% endfor %} 15 + </li> 16 + {# End of pagination for-loop #} 17 + {%- endfor -%} 18 + {#- I don't put pagination here like Terminal does. I don't like how 19 + the buttons move with the size of post entries in the content div. -#} 20 + </ul> 21 + 22 + </div> 23 + {%- endblock main-%}
+26
themes/zerm/theme.toml
··· 1 + name = "zerm" 2 + description = "A minimalistic and dark theme based on Radek Kozieł's theme for Hugo" 3 + license = "MIT" 4 + homepage = "https://github.com/ejmg/zerm" 5 + # The minimum version of Zola required 6 + min_version = "0.8.0" 7 + # An optional live demo URL 8 + demo = "https://zerm.ejmg.now.sh/" 9 + 10 + # Any variable there can be overriden in the end user `config.toml` 11 + # You don't need to prefix variables by the theme name but as this will 12 + # be merged with user data, some kind of prefix or nesting is preferable 13 + # Use snake_casing to be consistent with the rest of Zola 14 + [extra] 15 + 16 + # The theme author info: you! 17 + [author] 18 + name = "elias julian marko garcia" 19 + homepage = "https://github.com/ejmg" 20 + 21 + # If this is porting a theme from another static site engine, provide 22 + # the info of the original author here 23 + [original] 24 + author = "Radek Kozieł" 25 + homepage = "https://radoslawkoziel.pl/" 26 + repo = "https://github.com/panr/hugo-theme-terminal"
themes/zerm/zerm-preview.png

This is a binary file and will not be displayed.