add zerm back

This commit is contained in:
Satya Benson 2024-03-03 18:25:46 -05:00
parent 283758fc64
commit e6355a852f
128 changed files with 2257 additions and 0 deletions

1
themes/zerm/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
public

22
themes/zerm/LICENSE.md Normal file
View File

@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2019 elias julian marko garcia
Copyright (c) 2019 Paweł Romanowski
Copyright (c) 2019 panr
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

61
themes/zerm/README.md Normal file
View File

@ -0,0 +1,61 @@
# zerm
a minimalist and dark theme for [Zola](https://getzola.org).
![Screenshot](../master/zerm-preview.png?raw=true)
[**Live Preview!**](https://zerm.ejmg.now.sh/)
Largely a port of Radek Kozieł's [Terminal
Theme](https://github.com/panr/hugo-theme-terminal) for Hugo. 4/5ths of my way
through porting this theme, I discovered Paweł Romanowski own independent fork
for Zola, [Terminimal](https://github.com/pawroman/zola-theme-terminimal),
which helped me get the PostCSS to Sass styling conversion done more
quickly. My sincerest thanks to both of you!
## differences
This theme is largely true to the original by Radek, but there are some mild
differences. They are almost all stylistic in nature and are intended to
emphasize minimalism even more. Some of them are as follows:
- tags are now included in a post's meta data.
- no post image previews.
- categories are included in the taxonomy.
- bullet points have slightly more margin and different symbols for nesting.
- no social media or comment support.
Some of these might be added later and [PR's are always
welcomed](https://github.com/ejmg/zerm/pulls).
## configuration
Please follow the Zola documentation for [how to use a
theme](https://www.getzola.org/documentation/themes/installing-and-using-themes/#installing-a-theme).
In `config.toml`, you will find all values for customization that are supported
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)!
## math
You can use KaTeX for mathematical typesetting.
Assets are only available if you opt-in on a per-page level through
a single line (`math=true`) on the extra section of the page frontmatter.
``` md
# index.md
+++
title="this page title"
...
[extra]
math=true
+++
Content
```
Pages wich doesn't opt-in are not affected in any way, so you doesn't have
to worry about any performance hit.
## license
MIT. See `LICENSE.md` for more details.

131
themes/zerm/config.toml Normal file
View File

@ -0,0 +1,131 @@
# The URL the site will be built for
base_url = "/"
# Used in RSS by default
title = "My blog!"
description = "placeholder description text for your blog!"
# The default language, used in RSS
# TODO: I would love to support more languages and make this easy to handle
# with other facets of the theme.
default_language = "en"
# Whether to generate a RSS feed automatically
generate_feed = true
# 'atom.xml' (default if unspecified) and 'rss.xml' are officially supported
# values for feed_filename in this theme. All other filenames will assume a
# link type of 'application/rss+xml'.
# feed_filename = "atom.xml"
# Theme name to use.
# NOTE: should not need to mess with this if you are using zerm directly, i.e. cloning the
# repository at root and not using as directed by the Zola docs via themes/ directory.
# theme = ""
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true
# Whether to do syntax highlighting
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
highlight_code = true
# Syntax highlighting theme. See:
# https://www.getzola.org/documentation/getting-started/configuration/#syntax-highlighting
# for more information and themes built into Zola.
highlight_theme = "axar" # Other dark themes that work: "1337", "agola-dark",
# "visual-studio-dark"
# Whether to build a search index to be used later on by a JavaScript library
build_search_index = false
# Built in taxonomies of zerm.
taxonomies = [
{name = "tags"},
{name = "categories"},
]
[extra]
# Put all your custom variables here
#
# Many configurations are taken directly from Terminal's config.toml
# ---------------------------------------------------------
# Author name to be added to posts, if enabled.
author = "you!"
# Show author's name in blog post meta data.
show_author = false
# Show categories a blog post is marked with in its meta data.
show_categories = true
# Show tags a blog post is marked with in its meta data.
show_tags = true
# Theme color. You can have any color you want, so long as it's...
# ["orange", "blue", "red", "green", "pink"]
theme_color = "orange"
# Custom css to style over the defaults. This is useful when you only have a
# few small tweaks to make rather than a major rehaul to the theme.
# It would be best to make this a proper .sass or .scss file in sass/ rather
# than placing in static/
# custom_css = "custom.css"
# How many menu items to show on desktop. if you set this to 0, only submenu
# button will be visible.
show_menu_items = 2
# set theme to full screen width.
full_width = false
# center theme with default width.
center = false
# set a custom favicon. Must be placed in root of static/ directory...
# favicon = ""
# Set a custom preview image for your website when posted as a link.
# Must be placed in root of static/ directory...
# og_preview_img = ""
# Copyright notice if desired. Defaults to
# copyright = "copyright notice here"
# What is displayed in the top left corner of the website. Default is zerm.
logo_text = "zerm"
# Link in logo. Default returns you to $BASE_URL.
logo_home_link = "/"
# Menu items to display. You define a url and the name of the menu item.
# NOTE: `$BASE_URL/` must be included in the url name.
main_menu = [
{url="/about/", name="about"},
{url="/contact/", name="contact"},
{url="https://google.com", name="Google", external=true},
]
# Displayed as title of drop-down menu when size of main_menu > show_menu_items.
menu_more = "show more"
# Displayed after teaser text for a blog post.
read_more = "read more"
# not currently used from previous theme, but leaving here for now in case I
# feel like adding it.
read_other_posts = "read other posts"
# Enable math typesetting with KaTeX
# Show math in pages with `math=true` in the TOML frontmatter
enable_katex = true
# Options for disqus
disqus = { enabled=false, short_name="" }
# generate Table of Contents for all articles
# Table of Contents can be generated for individual articles
# by adding `ToC = true` in [extra] section in frontmatter
# ToC = true

View File

@ -0,0 +1,6 @@
+++
sort_by = "date"
transparent = true
paginate_by = 3
insert_anchor_links = "right"
+++

View File

@ -0,0 +1,10 @@
+++
title = "about"
path = "about"
[extra]
date = 2019-03-21
+++
Yet another theme for yet another static site generator; that said, I hope you
like it.

View File

@ -0,0 +1,14 @@
+++
title="contact"
description="a basic demo of zola. Does it work?"
[extra]
date=2019-03-26
+++
# some links
- [zola, the static site generator written in rust](https://getzola.org)
- [source code for zerm](https://github.com/ejmg/zerm)
- [Terminal, the theme zerm was derived from](https://github.com/panr/hugo-theme-terminal)
- [Terminimal, another theme for zola based on Terminal](https://github.com/pawroman/zola-theme-terminimal)

View File

@ -0,0 +1,65 @@
+++
title="demo"
description="a basic demo of zola."
date=2019-08-06
[taxonomies]
tags = ["demo", "zola", "highlighting"]
categories = ["programming", "wu tang",]
[extra]
+++
Here's a general demo of Zola and how things look with zerm.
# Header I
Inline code: `println!("Wu Tang!");`
Zola has built in syntax highlighting. If there's not a theme you like, you can
easily add more.
zerm uses Fira Code fonts, which means we get ligatures in addition to
Zola's powerful syntax highlighting ✨.
```rs
fn foo(arg: String) -> Result<u32, Io::Error> {
println!("Nice!"); // TODO: the thingy
if 1 != 0 {
println!("How many ligatures can I contrive??");
println!("Turns out a lot! ==> -/-> <!-- <$> >>=");
}
Ok(42)
}
```
## Header II
Want block quotes? We got block quotes.
Remember the wise words of Ras Kass:
> In Hotel Rwanda, reminder to honor these street scholars who ask why
U.S. Defense is twenty percent of the tax dollar. Bush gave 6.46 billion to
Halliburton for troops support efforts in Iraq; meanwhile, the hood is hurting,
please believe that.
>
> -- "Verses", _Wu-Tang Meets The Indie Culture_
### Header III
| members | age | notable album | to be messed with? |
|------------------|-----|----------------------------------------------|-------------------------------------------------------------------------|
| GZA | 52 | Liquid Swords | no |
| ODB | 35 | Return to the 36 Chambers: The Dirty Version | absolutely not |
| Raekwon Da Chef | 49 | Only Built 4 Cuban Linx... | `"no"` that's spanish for "no" |
| Ghostface Killah | 49 | Fishscale | i swear you keep asking that question and the answer ain't gonna change |
| Inspectah Deck | 49 | CZARFACE | `protect ya neck, boy` |
#### Header IV
Here's a video of my rabbit, Smalls, loaf'n to lofi beats:
{{ youtube(id="UUpuz8IObcs") }}

View File

@ -0,0 +1,13 @@
+++
title="fiz"
description="a basic demo of zola. Does it work?"
date=2019-03-25
author="elias"
[taxonomies]
tags = ["rust", "test"]
# categories = ["misc."]
+++
Foo Bar Buzz Fizz Qux Fum

View File

@ -0,0 +1,21 @@
+++
title="technology is hell!"
description="Yet another blog post ranting about XYZ technology for ABC reasons"
date=2019-03-26
[taxonomies]
tags = ["rust", "test"]
categories = ["misc."]
+++
Nullam eu ante vel est convallis dignissim. Fusce suscipit, wisi nec facilisis
facilisis, est dui fermentum leo, quis tempor ligula erat quis odio. Nunc
porta vulputate tellus. Nunc rutrum turpis sed pede. Sed bibendum. Aliquam
posuere. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada
massa, quis varius mi purus non odio. Pellentesque condimentum, magna ut
suscipit hendrerit, ipsum augue ornare nulla, non luctus diam neque sit amet
urna. Curabitur vulputate vestibulum lorem. Fusce sagittis, libero non
molestie mollis, magna orci ultrices dolor, at vulputate neque nulla lacinia
eros. Sed id ligula quis est convallis tempor. Curabitur lacinia pulvinar
nibh. Nam a sapien.

View File

@ -0,0 +1,57 @@
+++
title="Using KaTeX for mathematical typesetting"
date=2021-06-16
[taxonomies]
categories=["test"]
tags=["math", "zola"]
[extra]
math=true
+++
The usual way to include LaTeX is to use `$$`, as shown in the examples below.
These examples are taken from <http://khan.github.io/KaTeX/>
### Example 1
If the text between `$$` contains newlines it will rendered in display mode:
```
$$
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
$$
```
$$
f(x) = \int_{-\infty}^\infty\hat f(\xi)\,e^{2 \pi i \xi x}\,d\xi
$$
### Example 2
```
$$
\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} } } }
$$
1(ϕ5ϕ)e25π=1+e2π1+e4π1+e6π1+e8π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} } } }
```
$$
\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} } } }
$$
1(ϕ5ϕ)e25π=1+e2π1+e4π1+e6π1+e8π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} } } }
### Example 3
```
$$
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.
$$
```
$$
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.
$$

View File

@ -0,0 +1,42 @@
+++
title="waz"
description="a basic demo of zola. Does it work? This old man, he played one. He played knick knack on my drum."
date=2019-03-27
[taxonomies]
tags = ["rust", "test", "zola"]
categories = ["programming", "misc.", "programming languages"]
[extra]
+++
# Hello Hello
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec hendrerit
tempor tellus. Donec pretium posuere tellus. Proin quam nisl, tincidunt et,
mattis eget, convallis nec, purus. Cum sociis natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Nulla posuere. Donec vitae dolor.
Nullam tristique diam non turpis. Cras placerat accumsan nulla. Nullam
rutrum. Nam vestibulum accumsan nisl.
```python
def foo(bar, **kwargs):
print("yo, this is nice!")
```
## a list
* Donec hendrerit tempor tellus.
* Nam a sapien.
* Phasellus at dui in ligula mollis ultricies.
* Mauris mollis tincidunt felis.
* Nullam rutrum.
### Yet another list
1. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada massa,
quis varius mi purus non odio.
2. Donec hendrerit tempor tellus.
3. Nunc aliquet, augue nec adipiscing interdum, lacus tellus malesuada massa,
quis varius mi purus non odio.

View File

@ -0,0 +1,69 @@
+++
title="what is zerm?"
description="a summary of what zerm is and why it is different."
date=2019-08-07
updated=2021-02-03
[taxonomies]
tags = ["rust", "test", "zola"]
categories = ["programming", "misc.",]
[extra]
ToC = true
+++
# hello
This is zerm, a minimalist theme for Zola based[^1] off of [panr's](https://twitter.com/panr)
theme for Hugo.
While it's largely faithful to the original, there are some changes:
- no prism.js integration, instead we use Zola's syntax highlighting to reduce overhead.
- removal of PostCSS and leveraging Zola's use of Sass for simple styling.
- much thanks to [Paweł
Romanowski's](https://github.com/pawroman/zola-theme-terminimal/)
independent fork of Terminal. Their Sass stylings saved me the overhead of
figuring it out myself.
- no preview images. I want a theme that is focused on content.
- support for anchor links.
- Other small, opinionated changes that I think lend to the minimalism and
aesthetic of zerm.
Things this theme does not have but either Terminal or Terminimal might:
- better short-codes for things like embedding videos or images, though I will
work on this over time.
- better support for things like comments and social media. As of now, I have
no plans to add this but [PR's are always
**welcomed**](https://github.com/ejmg/zerm/pulls).
## A quick demo
`println!("inline code");`
```rs
fn main(n: String) {
println!("hello, zola!");
}
```
### Header III
> a somewhat kinda maybe large quote that maybe spans
> more than one line but I mean really who even cares
> okay maybe I do but point being is yes nice.
#### Header IV
| hello | tables | nice |
|:-----:|:---------:|------|
| wow | much love | yes |
Like zerm? Then [install
Zola](https://www.getzola.org/documentation/getting-started/installation/) and
[get started](https://www.getzola.org/documentation/themes/installing-and-using-themes/#installing-a-theme)!
---
[^1]: fork? port? a little bit of the former, more of the latter?

7
themes/zerm/package.json Normal file
View File

@ -0,0 +1,7 @@
{
"scripts":
{
"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",
"build": "./zola build"
}
}

View File

@ -0,0 +1,29 @@
button,
.button,
a.button {
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 8px 18px;
margin-bottom: 5px;
text-decoration: none;
text-align: center;
border-radius: 8px;
border: 1px solid transparent;
appearance: none;
cursor: pointer;
outline: none;
}
a.read-more,
a.read-more:hover,
a.read-more:active {
display: inline-flex;
background: none;
box-shadow: none;
padding: 0;
margin: 20px 0;
max-width: 100%;
}

View File

@ -0,0 +1,15 @@
@font-face {
font-family: 'Fira Code';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("assets/fonts/FiraCode-Regular.woff2") format("woff2"), url("assets/fonts/FiraCode-Regular.woff") format("woff");
}
@font-face {
font-family: 'Fira Code';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("assets/fonts/FiraCode-Bold.woff2") format("woff2"), url("assets/fonts/FiraCode-Bold.woff") format("woff");
}

View File

@ -0,0 +1,67 @@
@import "variables";
.footer {
padding: 40px 0;
flex-grow: 0;
opacity: .5;
&__inner {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0;
width: 760px;
max-width: 100%;
@media (max-width: $tablet-max-width) {
flex-direction: column;
}
}
a {
color: inherit;
}
.copyright {
display: flex;
flex-direction: row;
align-items: center;
font-size: 1rem;
// so `--light-color-secondary` color exists no where else in the stylings
// color: var(--light-color-secondary);
// As a substitute, I'm going to use the alpha-70 version of accent.
color: var(--accent-alpha-70);
&--user {
margin: auto;
text-align: center;
}
& > *:first-child:not(:only-child) {
margin-right: 10px;
@media (max-width: $tablet-max-width) {
border: none;
padding: 0;
margin: 0;
}
}
@media (max-width: $tablet-max-width) {
flex-direction: column;
margin-top: 10px;
}
}
// .copyright-theme-sep {
// @media (max-width: $tablet-max-width) {
// display: none;
// }
// }
// .copyright-theme {
// @media (max-width: $tablet-max-width) {
// font-size: 0.75rem;
// }
// }
}

View File

@ -0,0 +1,139 @@
@import "variables";
@mixin menu {
background: var(--background);
box-shadow: var(--shadow);
color: var(--color);
border: 2px solid;
margin: 0;
padding: 10px;
list-style: none;
z-index: 99;
}
.header {
display: flex;
flex-direction: column;
position: relative;
&__inner {
display: flex;
align-items: center;
justify-content: space-between;
}
&__logo {
display: flex;
flex: 1;
&:after {
content: '';
background: repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, transparent 0, transparent 10px);
display: block;
width: 100%;
right: 10px;
}
a {
flex: 0 0 auto;
max-width: 100%;
text-decoration: none;
}
}
.menu {
margin: 20px 0;
--shadow-color: var(--accent-alpha-70);
--shadow: 0 10px var(--shadow-color), -10px 10px var(--shadow-color), 10px 10px var(--shadow-color);
@media (max-width: $phone-max-width) {
@include menu;
position: absolute;
top: 50px;
right: 0;
}
&__inner {
// @include menu;
display: flex;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
&--desktop {
@media (max-width: $phone-max-width) {
display: none;
}
}
&--mobile {
display: none;
@media (max-width: $phone-max-width) {
display: block;
}
}
li {
// &.active {
// color: var(--accent-alpha-70);
// }
&:not(:last-of-type) {
margin-right: 20px;
margin-bottom: 10px;
flex: 0 0 auto;
}
}
@media (max-width: $phone-max-width) {
flex-direction: column;
align-items: flex-start;
padding: 0;
li {
margin: 0;
padding: 5px;
}
}
}
&__sub-inner {
position: relative;
list-style: none;
padding: 0;
margin: 0;
&:not(:only-child) {
margin-left: 20px;
}
&-more {
@include menu;
top: 35px;
left: 0;
&-trigger {
color: var(--accent);
user-select: none;
cursor: pointer;
}
li {
margin: 0;
padding: 5px;
white-space: nowrap;
}
}
}
&-trigger {
color: var(--accent);
border: 2px solid;
margin-left: 10px;
height: 100%;
padding: 3px 8px;
position: relative;
}
}
}

View File

@ -0,0 +1,8 @@
.logo {
display: flex;
align-items: center;
text-decoration: none;
background: var(--accent);
color: black;
padding: 5px 10px;
}

335
themes/zerm/sass/_main.scss Normal file
View File

@ -0,0 +1,335 @@
@import "variables";
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace;
font-size: 1rem;
line-height: 1.54;
background-color: var(--background);
color: var(--color);
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-webkit-overflow-scrolling: touch;
-webkit-text-size-adjust: 100%;
font-feature-settings: "liga";
@media (max-width: $phone-max-width) {
font-size: 1rem;
}
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.3;
&:not(first-child) {
margin-top: 40px;
}
.zola-anchor {
font-size: 1.5rem;
visibility: hidden;
margin-left: 0.5rem;
vertical-align: 1%;
text-decoration: none;
border-bottom-color: transparent;
cursor: pointer;
@media(max-width: $phone-max-width){
visibility: visible;
}
}
&:hover {
.zola-anchor {
visibility: visible;
}
}
}
// Actually keeping Pawroman's stylings here for font-size over h1-h6.
// I prefer differentiated header height.
// OLD
// ---------------------
// h1, h2, h3 {
// font-size: 1.4rem;
// }
// h4, h5, h6 {
// font-size: 1.2rem;
// }
// Pawroman's
// ---------------------
h1 {
font-size: 1.4rem;
}
h2 {
font-size: 1.3rem;
}
h3 {
font-size: 1.2rem;
}
h4, h5, h6 {
font-size: 1.15rem;
}
a {
color: inherit;
}
img {
display: block;
max-width: 100%;
&.left {
margin-right: auto;
}
&.center {
margin-left: auto;
margin-right: auto;
}
&.right {
margin-left: auto;
}
}
p {
margin-bottom: 20px;
}
figure {
display: table;
max-width: 100%;
margin: 25px 0;
&.left {
// img {
margin-right: auto;
// }
}
&.center {
// img {
margin-left: auto;
margin-right: auto;
// }
}
&.right {
// img {
margin-left: auto;
// }
}
figcaption {
font-size: 14px;
padding: 5px 10px;
margin-top: 5px;
background: var(--accent);
color: var(--background);
&.left {
text-align: left;
}
&.center {
text-align: center;
}
&.right {
text-align: right;
}
}
}
code {
font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace;
font-feature-settings: normal;
background: var(--accent-alpha-20);
color: var(--accent);
padding: 1px 6px;
margin: 0 2px;
font-size: .95rem;
}
pre {
font-family: 'Fira Code', Menlo, DejaVu Sans Mono, Monaco, Consolas, Ubuntu Mono, monospace;
font-feature-settings: "liga";
padding: 20px 10px;
font-size: .95rem;
overflow: auto;
border-top: 1px solid rgba(255, 255, 255, .1);
border-bottom: 1px solid rgba(255, 255, 255, .1);
+ pre {
border-top: 0;
margin-top: -40px;
}
@media (max-width: $phone-max-width) {
white-space: pre-wrap;
word-wrap: break-word;
}
code {
background: none !important;
margin: 0;
padding: 0;
font-size: inherit;
border: none;
table {
table-layout: auto;
border-collapse: collapse;
box-sizing: border-box;
width: 100%;
margin: 00px 0;
}
table, th, td {
border: none;
padding: 0px;
}
table tr td:first-child {
padding-right: 10px;
}
}
}
blockquote {
border-top: 1px solid var(--accent);
border-bottom: 1px solid var(--accent);
margin: 40px 0;
padding: 25px;
@media (max-width: $phone-max-width) {
padding-right: 0;
}
&:before {
content: '';
font-family: Georgia, serif;
font-size: 3.875rem;
position: absolute;
left: -40px;
top: -20px;
}
p:first-of-type {
margin-top: 0;
}
p:last-of-type {
margin-bottom: 0;
}
p {
position: relative;
}
p:before {
content: '>';
display: block;
position: absolute;
left: -25px;
color: var(--accent);
}
}
table {
table-layout: fixed;
border-collapse: collapse;
width: 100%;
margin: 40px 0;
}
table, th, td {
border: 1px dashed var(--accent);
padding: 10px;
}
th {
color: var(--accent);
}
ul, ol {
margin-left: 30px;
padding: 0;
li {
position: relative;
margin-top: 5px;
margin-bottom: 5px;
}
@media (max-width: $phone-max-width) {
margin-left: 20px;
}
ul, ol {
margin-top: 10px;
margin-bottom: 10px;
}
}
ol ol {
list-style-type: lower-alpha;
}
.container {
display: flex;
flex-direction: column;
padding: 40px;
max-width: 864px;
min-height: 100vh;
border-right: 1px solid rgba(255, 255, 255, 0.1);
&.full,
&.center {
border: none;
margin: 0 auto;
}
&.full {
max-width: 100%;
}
@media (max-width: $phone-max-width) {
padding: 20px;
}
}
.content {
display: flex;
}
hr {
width: 100%;
border: none;
background: var(--border-color);
height: 1px;
}
.hidden {
display: none;
}

View File

@ -0,0 +1,63 @@
@import 'variables';
.pagination {
margin-top: 50px;
&__buttons {
display: flex;
align-items: center;
justify-content: center;
// @media (max-width: $phone-max-width) {
// flex-direction: column;
// }
a {
text-decoration: none;
}
}
}
.button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
font-size: 1rem;
border-radius: 8px;
max-width: 40%;
padding: 0;
cursor: pointer;
appearance: none;
+ .button {
margin-left: 10px;
}
// @media (max-width: $phone-max-width) {
// max-width: 80%;
// }
a {
display: flex;
padding: 8px 16px;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
&__text {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
&.next .button__icon {
margin-left: 8px;
}
&.previous .button__icon {
margin-right: 8px;
}
}

114
themes/zerm/sass/_post.scss Normal file
View File

@ -0,0 +1,114 @@
@import "variables";
// .posts {
// margin: 0 auto;
// }
.post {
width: 100%;
text-align: left;
margin: 20px auto;
padding: 20px 0;
@media (max-width: $tablet-max-width) {
max-width: 660px;
}
&:not(:last-of-type) {
border-bottom: 1px solid var(--border-color);
}
// %meta {
// font-size: 1rem;
// margin-bottom: 10px;
// color: var(--accent-alpha-70);
// }
// &-meta {
// @extend %meta;
// }
// &-meta-inline {
// @extend %meta;
// display: inline;
// }
&-meta {
font-size: 1rem;
margin-bottom: 10px;
color: var(--accent-alpha-70);
}
&-title {
--border: 3px dotted var(--accent);
position: relative;
color: var(--accent);
margin: 0 0 15px;
padding-bottom: 15px;
border-bottom: var(--border);
&:after {
content: '';
position: absolute;
bottom: 2px;
display: block;
width: 100%;
border-bottom: var(--border);
}
a {
text-decoration: none;
}
}
&-content {
margin-top: 30px;
}
ul {
list-style: none;
li:before {
content: '⦿';
position: absolute;
left: -20px;
color: var(--accent);
}
ul {
li:before {
content: '';
position: absolute;
left: -20px;
color: var(--accent);
}
ul {
li:before {
content: '';
position: absolute;
left: -20px;
color: var(--accent);
}
}
}
}
}
// TODO: try adapting this using a properly nested selector in the block above
// for ul items.
.tag-list {
@media(max-width: $phone-max-width) {
margin-left: 5%;
}
}
.footnote-definition {
color: var(--accent);
p {
display: inline;
color: var(--footnote-color);
}
}

View File

@ -0,0 +1,3 @@
section, article, aside, footer, header, nav {
display: block;
}

View File

@ -0,0 +1,6 @@
div.toc {
--shadow-color: var(--accent-alpha-70);
--shadow: 10px 10px var(--shadow-color);
@include menu;
margin: 20px 0;
}

View File

@ -0,0 +1,10 @@
:root {
// *NOTE*:
// ------------------------------------------------
//Keep the same as the values in variables.scss!!!!!
--phoneWidth: (max-width: 684px);
--tabletWidth: (max-width: 900px);
}
$phone-max-width: 683px;
$tablet-max-width: 899px;

View File

@ -0,0 +1,9 @@
:root {
--accent: rgb(35,176,255);
--accent-alpha-20: rgba(35,176,255,.2);
--accent-alpha-70: rgba(35,176,255,.7);
--background: #1D1E28;
--color: whitesmoke;
--border-color: rgba(255, 255, 255, .1);
--footnote-color: rgba(255, 255, 255, .5);
}

View File

@ -0,0 +1,12 @@
:root {
// --accent: rgb(120,226,160);
// --accent-alpha-20: rgba(120,226,160,.2);
// --accent-alpha-70: rgba(120,226,160,.7);
--accent: rgb(72, 251, 53);
--accent-alpha-20: rgba(72, 251, 53,.2);
--accent-alpha-70: rgba(72, 251, 53,.7);
--background: #1F222A;
--color: whitesmoke;
--border-color: rgba(255, 255, 255, .1);
--footnote-color: rgba(255, 255, 255, .5);
}

View File

@ -0,0 +1,9 @@
:root {
--accent: rgb(255,168,106);
--accent-alpha-20: rgba(255, 168, 106, .2);
--accent-alpha-70: rgba(255, 168, 106,.7);
--background: #211f1a;
--color: whitesmoke;
--border-color: rgba(255, 255, 255, .1);
--footnote-color: rgba(255, 255, 255, .5);
}

View File

@ -0,0 +1,9 @@
:root {
--accent: rgb(238,114,241);
--accent-alpha-20: rgba(238,114,241,.2);
--accent-alpha-70: rgba(238,114,241,.7);
--background: #21202C;
--color: whitesmoke;
--border-color: rgba(255, 255, 255, .1);
--footnote-color: rgba(255, 255, 255, .5);
}

View File

@ -0,0 +1,9 @@
:root {
--accent: rgb(255,98,102);
--accent-alpha-20: rgba(255,98,102,.2);
--accent-alpha-70: rgba(255,98,102,.7);
--background: #221F29;
--color: whitesmoke;
--border-color: rgba(255, 255, 255, .1);
--footnote-color: rgba(255, 255, 255, .5);
}

View File

@ -0,0 +1,10 @@
@import 'buttons';
@import 'font';
@import 'header';
@import 'logo';
@import 'main';
@import 'post';
@import 'pagination';
@import 'footer';
@import 'semantic';
@import 'toc';

BIN
themes/zerm/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,93 @@
Copyright (c) 2014, The Fira Code Project Authors (https://github.com/tonsky/FiraCode)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -0,0 +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)})}]);

View File

@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.length;n<t.length;){var i=t[n];if(o<=0&&t.slice(n,n+a)===e)return n;"\\"===i?n++:"{"===i?o++:"}"===i&&o--,n++}return-1},i=function(e,t,r,n){for(var o=[],i=0;i<e.length;i++)if("text"===e[i].type){var l=e[i].data,d=!0,s=0,f=void 0;for(-1!==(f=l.indexOf(t))&&(s=f,o.push({type:"text",data:l.slice(0,s)}),d=!1);;){if(d){if(-1===(f=l.indexOf(t,s)))break;o.push({type:"text",data:l.slice(s,f)}),s=f}else{if(-1===(f=a(r,l,s+t.length)))break;o.push({type:"math",data:l.slice(s+t.length,f),rawData:l.slice(s,f+r.length),display:n}),s=f+r.length}d=!d}o.push({type:"text",data:l.slice(s)})}else o.push(e[i]);return o},l=function(e,t){var r=function(e,t){for(var r=[{type:"text",data:e}],n=0;n<t.length;n++){var o=t[n];r=i(r,o.left,o.right,o.display||!1)}return r}(e,t.delimiters);if(1===r.length&&"text"===r[0].type)return null;for(var n=document.createDocumentFragment(),a=0;a<r.length;a++)if("text"===r[a].type)n.appendChild(document.createTextNode(r[a].data));else{var l=document.createElement("span"),d=r[a].data;t.displayMode=r[a].display;try{t.preProcess&&(d=t.preProcess(d)),o.a.render(d,l,t)}catch(e){if(!(e instanceof o.a.ParseError))throw e;t.errorCallback("KaTeX auto-render: Failed to parse `"+r[a].data+"` with ",e),n.appendChild(document.createTextNode(r[a].rawData));continue}n.appendChild(l)}return n};t.default=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code","option"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},function e(t,r){for(var n=0;n<t.childNodes.length;n++){var o=t.childNodes[n];if(3===o.nodeType){var a=l(o.textContent,r);a&&(n+=a.childNodes.length-1,t.replaceChild(a,o))}else 1===o.nodeType&&function(){var t=" "+o.className+" ";-1===r.ignoredTags.indexOf(o.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(o,r)}()}}(e,r)}}]).default});

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More