update terminal to b6c2bafbdc30a43ff69b4e00d1aefcc49d7e4aaa
|
|
@ -8,7 +8,6 @@ name = "Noratrieb"
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
contentTypeName = "posts"
|
contentTypeName = "posts"
|
||||||
themeColor = "orange"
|
|
||||||
centerTheme = true
|
centerTheme = true
|
||||||
|
|
||||||
[params.logo]
|
[params.logo]
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ rules:
|
||||||
- as-needed
|
- as-needed
|
||||||
semi:
|
semi:
|
||||||
- 2
|
- 2
|
||||||
- never
|
- always
|
||||||
class-methods-use-this: 0
|
class-methods-use-this: 0
|
||||||
comma-dangle:
|
comma-dangle:
|
||||||
- 2
|
- 2
|
||||||
|
|
@ -33,7 +33,7 @@ rules:
|
||||||
func-names: 0
|
func-names: 0
|
||||||
quotes:
|
quotes:
|
||||||
- 2
|
- 2
|
||||||
- single
|
- double
|
||||||
- allowTemplateLiterals: true
|
- allowTemplateLiterals: true
|
||||||
no-underscore-dangle: 0
|
no-underscore-dangle: 0
|
||||||
object-curly-newline: 0
|
object-curly-newline: 0
|
||||||
|
|
|
||||||
3
themes/terminal/.gitignore
vendored
|
|
@ -88,3 +88,6 @@ typings/
|
||||||
.dynamodb/
|
.dynamodb/
|
||||||
|
|
||||||
# End of https://www.gitignore.io/api/node
|
# End of https://www.gitignore.io/api/node
|
||||||
|
public
|
||||||
|
resources
|
||||||
|
.hugo_build.lock
|
||||||
|
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
const url = require("postcss-url");
|
|
||||||
const imports = require("postcss-import");
|
|
||||||
const nested = require("postcss-nested");
|
|
||||||
const postCSSPresetEnv = require("postcss-preset-env");
|
|
||||||
const cssnano = require("cssnano");
|
|
||||||
const color = require("postcss-color-mod-function");
|
|
||||||
const mixins = require("postcss-mixins");
|
|
||||||
|
|
||||||
module.exports = () => ({
|
|
||||||
plugins: [
|
|
||||||
url,
|
|
||||||
imports,
|
|
||||||
mixins,
|
|
||||||
nested,
|
|
||||||
postCSSPresetEnv({
|
|
||||||
stage: 1,
|
|
||||||
preserve: true,
|
|
||||||
features: {
|
|
||||||
"custom-properties": true,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
cssnano({
|
|
||||||
preset: "default",
|
|
||||||
}),
|
|
||||||
color,
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
"parser": "babel",
|
"parser": "babel",
|
||||||
"printWidth": 100,
|
"printWidth": 100,
|
||||||
"trailingComma": "all",
|
"trailingComma": "all",
|
||||||
|
"arrowParens": "avoid",
|
||||||
"overrides": [{
|
"overrides": [{
|
||||||
"files": ".html",
|
"files": ".html",
|
||||||
"options": {
|
"options": {
|
||||||
|
|
|
||||||
12
themes/terminal/.stylelintrc.json
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
"extends": [
|
||||||
|
"stylelint-config-standard-scss",
|
||||||
|
"stylelint-config-prettier-scss"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"max-empty-lines": 1,
|
||||||
|
"color-function-notation": null,
|
||||||
|
"no-descending-specificity": null,
|
||||||
|
"selector-class-pattern": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -23,3 +23,7 @@ eg:
|
||||||
- **Single Page Website** (https://github.com/justinnuwin/hugo-theme-terminal)
|
- **Single Page Website** (https://github.com/justinnuwin/hugo-theme-terminal)
|
||||||
- A layout where the homepage can render lists of pages and the navigation menu can link to sections on the homepage.
|
- A layout where the homepage can render lists of pages and the navigation menu can link to sections on the homepage.
|
||||||
- Justin Nguyen, software and hardware developer.
|
- Justin Nguyen, software and hardware developer.
|
||||||
|
|
||||||
|
- **Support for beautiful *KaTeX* formulae** ([amtoine/hugo-theme-terminal-katex](https://github.com/amtoine/hugo-theme-terminal-katex))
|
||||||
|
- SHORT DESCRIPTION
|
||||||
|
- Antoine Stevan ([@amtoine](https://github.com/amtoine)), software engineer into open source
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,14 @@
|
||||||
# Terminal
|
# Terminal
|
||||||
|
|
||||||

|
**Demo: https://panr.github.io/hugo-theme-terminal-demo/**
|
||||||
|
|
||||||
### DEMO - https://hugo-terminal.now.sh/
|
**Create your own color scheme: https://panr.github.io/terminal-css/**
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
⚠️ The theme needs at least Hugo **Extended** v0.90.x.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -14,19 +20,19 @@
|
||||||
- [How to configure](#how-to-configure)
|
- [How to configure](#how-to-configure)
|
||||||
- [Post archetype](#post-archetype)
|
- [Post archetype](#post-archetype)
|
||||||
- [Add-ons](#add-ons)
|
- [Add-ons](#add-ons)
|
||||||
- [How to (safely) edit the theme](#how-to-edit)
|
- [How to edit the theme](#how-to-edit)
|
||||||
- [Found a bug?](#bug)
|
- [Found a bug?](#bug)
|
||||||
- [New cool idea or feature](#feature)
|
- [New cool idea or feature](#feature)
|
||||||
- [Terminal theme user?](#terminal-theme-user)
|
- [Terminal theme user?](#terminal-theme-user)
|
||||||
- [Sponsoring](#sponsoring)
|
- [License](#license)
|
||||||
- [Licence](#licence)
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **5 duotone themes**, depending on your preferences (orange is default, red, blue, green, pink)
|
- fully customizable color schemes generated by [**Terminal.css**](https://panr.github.io/terminal-css/).
|
||||||
- [**Fira Code**](https://github.com/tonsky/FiraCode) as default monospaced font. It's gorgeous!
|
- [**Fira Code**](https://github.com/tonsky/FiraCode) as default monospaced font. It's gorgeous!
|
||||||
- **really nice duotone**, custom syntax highlighting based on [**PrismJS**](https://prismjs.com)
|
- **really nice duotone**, custom syntax highlighting based on [**PrismJS**](https://prismjs.com)
|
||||||
- fully responsive
|
- fully responsive
|
||||||
|
- fully based on Hugo ecosystem (Pipes and Modules)
|
||||||
|
|
||||||
#### Built-in shortcodes
|
#### Built-in shortcodes
|
||||||
|
|
||||||
|
|
@ -82,25 +88,64 @@ A custom syntax highlighting based on PrismJS. All you need to do is to wrap you
|
||||||
|
|
||||||
You can download the theme manually by going to [https://github.com/panr/hugo-theme-terminal.git](https://github.com/panr/hugo-theme-terminal.git) and pasting it to `themes/terminal` in your root directory.
|
You can download the theme manually by going to [https://github.com/panr/hugo-theme-terminal.git](https://github.com/panr/hugo-theme-terminal.git) and pasting it to `themes/terminal` in your root directory.
|
||||||
|
|
||||||
You can also clone it directly to your Hugo folder:
|
You can also choose **one of the 3 possibilities** to install the theme:
|
||||||
|
|
||||||
|
1. as Hugo Module
|
||||||
|
2. as a standalone local directory
|
||||||
|
3. as a git submodule
|
||||||
|
|
||||||
|
⚠️ The theme needs at least Hugo **Extended** v0.90.x.
|
||||||
|
|
||||||
|
### Install theme as Hugo Module
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# If this is the first time you're using Hugo Modules
|
||||||
|
# in your project. You have to initiate your own module before
|
||||||
|
# you fetch the theme module.
|
||||||
|
#
|
||||||
|
# hugo mod init [your website/module name]
|
||||||
|
hugo mod get github.com/panr/hugo-theme-terminal/v4
|
||||||
```
|
```
|
||||||
|
|
||||||
|
and in your config file add:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[module]
|
||||||
|
# this is needed when you fetch the theme as a submodule to your repo.
|
||||||
|
# replacements = "github.com/panr/hugo-theme-terminal/4 -> themes/terminal"
|
||||||
|
[[module.imports]]
|
||||||
|
path = 'github.com/panr/hugo-theme-terminal/v4'
|
||||||
|
```
|
||||||
|
|
||||||
|
Keep in mind that the theme by default won't show up in the `themes` directory. This means that you are using the theme as it was on the repository at the moment you fetched it. Your local `go.sum` file keeps all the references. Read more about Hugo Modules in the [official documentation](https://gohugo.io/hugo-modules/).
|
||||||
|
|
||||||
|
### Install theme locally
|
||||||
|
|
||||||
|
```bash
|
||||||
git clone https://github.com/panr/hugo-theme-terminal.git themes/terminal
|
git clone https://github.com/panr/hugo-theme-terminal.git themes/terminal
|
||||||
```
|
```
|
||||||
|
|
||||||
If you don't want to make any radical changes, it's the best option, because you can get new updates when they are available. You can also include it as a git submodule:
|
This will clone the repository directly to the `themes/terminal` directory.
|
||||||
|
|
||||||
```
|
### Install theme as a submodule
|
||||||
|
|
||||||
|
```bash
|
||||||
git submodule add -f https://github.com/panr/hugo-theme-terminal.git themes/terminal
|
git submodule add -f https://github.com/panr/hugo-theme-terminal.git themes/terminal
|
||||||
```
|
```
|
||||||
|
|
||||||
⚠️ **The theme needs at least Hugo version 0.74.x**.
|
This will install the repository as a sumbodule in the `themes/terminal` directory.
|
||||||
|
|
||||||
|
⚠️ If you encounter any issues with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
Error: module "terminal" not found; either add it as a Hugo Module or store it in "[...your custom path]/themes".: module does not exist
|
||||||
|
```
|
||||||
|
|
||||||
|
then please try to remove `theme = "terminal"` from your config file.
|
||||||
|
|
||||||
## How to run your site
|
## How to run your site
|
||||||
|
|
||||||
If you installed all needed `npm` dependencies, then you can run:
|
```bash
|
||||||
|
|
||||||
```
|
|
||||||
hugo server -t terminal
|
hugo server -t terminal
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -113,6 +158,8 @@ The theme doesn't require any advanced configuration. Just copy:
|
||||||
```toml
|
```toml
|
||||||
baseurl = "/"
|
baseurl = "/"
|
||||||
languageCode = "en-us"
|
languageCode = "en-us"
|
||||||
|
# Add it only if you keep the theme in the `themes` directory.
|
||||||
|
# Remove it if you use the theme as a remote Hugo Module.
|
||||||
theme = "terminal"
|
theme = "terminal"
|
||||||
paginate = 5
|
paginate = 5
|
||||||
|
|
||||||
|
|
@ -121,9 +168,6 @@ paginate = 5
|
||||||
# the list of set content will show up on your index page (baseurl).
|
# the list of set content will show up on your index page (baseurl).
|
||||||
contentTypeName = "posts"
|
contentTypeName = "posts"
|
||||||
|
|
||||||
# ["orange", "blue", "red", "green", "pink"]
|
|
||||||
themeColor = "orange"
|
|
||||||
|
|
||||||
# if you set this to 0, only submenu trigger will be visible
|
# if you set this to 0, only submenu trigger will be visible
|
||||||
showMenuItems = 2
|
showMenuItems = 2
|
||||||
|
|
||||||
|
|
@ -145,15 +189,9 @@ paginate = 5
|
||||||
# If you use git, you can set `enableGitInfo` to `true` and then post will automatically get the last updated
|
# If you use git, you can set `enableGitInfo` to `true` and then post will automatically get the last updated
|
||||||
showLastUpdated = false
|
showLastUpdated = false
|
||||||
|
|
||||||
# set a custom favicon (default is a `themeColor` square)
|
|
||||||
# favicon = "favicon.ico"
|
|
||||||
|
|
||||||
# Provide a string as a prefix for the last update date. By default, it looks like this: 2020-xx-xx [Updated: 2020-xx-xx] :: Author
|
# Provide a string as a prefix for the last update date. By default, it looks like this: 2020-xx-xx [Updated: 2020-xx-xx] :: Author
|
||||||
# updatedDatePrefix = "Updated"
|
# updatedDatePrefix = "Updated"
|
||||||
|
|
||||||
# set all headings to their default size (depending on browser settings)
|
|
||||||
# oneHeadingSize = true # default
|
|
||||||
|
|
||||||
# whether to show a page's estimated reading time
|
# whether to show a page's estimated reading time
|
||||||
# readingTime = false # default
|
# readingTime = false # default
|
||||||
|
|
||||||
|
|
@ -177,35 +215,45 @@ paginate = 5
|
||||||
[languages.en]
|
[languages.en]
|
||||||
languageName = "English"
|
languageName = "English"
|
||||||
title = "Terminal"
|
title = "Terminal"
|
||||||
subtitle = "A simple, retro theme for Hugo"
|
|
||||||
owner = ""
|
|
||||||
keywords = ""
|
|
||||||
copyright = ""
|
|
||||||
menuMore = "Show more"
|
|
||||||
readMore = "Read more"
|
|
||||||
readOtherPosts = "Read other posts"
|
|
||||||
newerPosts = "Newer posts"
|
|
||||||
olderPosts = "Older posts"
|
|
||||||
missingContentMessage = "Page not found..."
|
|
||||||
missingBackButtonLabel = "Back to home page"
|
|
||||||
|
|
||||||
[languages.en.params.logo]
|
[languages.en.params]
|
||||||
logoText = "Terminal"
|
subtitle = "A simple, retro theme for Hugo"
|
||||||
logoHomeLink = "/"
|
owner = ""
|
||||||
|
keywords = ""
|
||||||
|
copyright = ""
|
||||||
|
menuMore = "Show more"
|
||||||
|
readMore = "Read more"
|
||||||
|
readOtherPosts = "Read other posts"
|
||||||
|
newerPosts = "Newer posts"
|
||||||
|
olderPosts = "Older posts"
|
||||||
|
missingContentMessage = "Page not found..."
|
||||||
|
missingBackButtonLabel = "Back to home page"
|
||||||
|
minuteReadingTime = "min read"
|
||||||
|
words = "words"
|
||||||
|
|
||||||
[languages.en.menu]
|
[languages.en.params.logo]
|
||||||
[[languages.en.menu.main]]
|
logoText = "Terminal"
|
||||||
identifier = "about"
|
logoHomeLink = "/"
|
||||||
name = "About"
|
|
||||||
url = "/about"
|
[languages.en.menu]
|
||||||
[[languages.en.menu.main]]
|
[[languages.en.menu.main]]
|
||||||
identifier = "showcase"
|
identifier = "about"
|
||||||
name = "Showcase"
|
name = "About"
|
||||||
url = "/showcase"
|
url = "/about"
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "showcase"
|
||||||
|
name = "Showcase"
|
||||||
|
url = "/showcase"
|
||||||
|
|
||||||
|
[module]
|
||||||
|
# In case you would like to make changes to the theme and keep it locally in you repository,
|
||||||
|
# uncomment the line below (and correct the local path if necessary).
|
||||||
|
# --
|
||||||
|
# replacements = "github.com/panr/hugo-theme-terminal/v4 -> themes/terminal"
|
||||||
|
[[module.imports]]
|
||||||
|
path = 'github.com/panr/hugo-theme-terminal/v4'
|
||||||
```
|
```
|
||||||
|
|
||||||
to `config.toml` file in your Hugo root directory and change params fields. In case you need, here's [a YAML version](https://gist.github.com/panr/9eeea6f595c257febdadc11763e3a6d1).
|
|
||||||
|
|
||||||
**NOTE:** Please keep in mind that currently `main menu` doesn't support nesting.
|
**NOTE:** Please keep in mind that currently `main menu` doesn't support nesting.
|
||||||
|
|
||||||
## Post archetype
|
## Post archetype
|
||||||
|
|
@ -218,39 +266,11 @@ See the default `post` file params supported by the theme — https://github.com
|
||||||
- **Extended Head** — please take a look at `layouts/partials/extended_head.html` https://github.com/panr/hugo-theme-terminal/blob/master/layouts/partials/extended_head.html
|
- **Extended Head** — please take a look at `layouts/partials/extended_head.html` https://github.com/panr/hugo-theme-terminal/blob/master/layouts/partials/extended_head.html
|
||||||
- **Extended Footer** — please take a look at `layouts/partials/extended_footer.html` https://github.com/panr/hugo-theme-terminal/blob/master/layouts/partials/extended_footer.html
|
- **Extended Footer** — please take a look at `layouts/partials/extended_footer.html` https://github.com/panr/hugo-theme-terminal/blob/master/layouts/partials/extended_footer.html
|
||||||
|
|
||||||
## How to (safely) edit the theme <a id="how-to-edit" />
|
## How to edit the theme <a id="how-to-edit" />
|
||||||
|
|
||||||
If you have to override only some of the styles, you can do this easily by adding `static/style.css` in your root directory and point things you want to change.
|
If you are using as a remote Hugo Module (you don't have the theme files in the `theme/terminal`) and you have to override only some of the styles, you can do this easily by adding `static/style.css` in your root directory and point things you want to change.
|
||||||
|
|
||||||
To change something directly in the theme, you have to go to `themes/terminal` and modify the files.
|
If you have the theme files in the theme directory, then you can directly edit anything in the theme, you just have to go to `themes/terminal` and modify the files. No compilation step needed.
|
||||||
|
|
||||||
First, you need to install Node dependencies. To do so, go to the theme directory (from your Hugo root directory):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd themes/terminal
|
|
||||||
```
|
|
||||||
|
|
||||||
then run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install
|
|
||||||
npm i yarn
|
|
||||||
yarn
|
|
||||||
```
|
|
||||||
|
|
||||||
After you modified the files you can run webpack in watch mode:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn dev
|
|
||||||
```
|
|
||||||
|
|
||||||
or rebuild theme
|
|
||||||
|
|
||||||
```bash
|
|
||||||
yarn build
|
|
||||||
```
|
|
||||||
|
|
||||||
To see the changes (remember to restart `hugo server`).
|
|
||||||
|
|
||||||
## Found a bug? <a id="bug" />
|
## Found a bug? <a id="bug" />
|
||||||
|
|
||||||
|
|
@ -277,14 +297,9 @@ Sounds OK? Cool, let's rock! 🤘
|
||||||
|
|
||||||
I'd be happy to know more about you and what you are doing. If you want to share it, please make a contribution and [add your site to the list](https://github.com/panr/hugo-theme-terminal/blob/master/USERS.md)! 🤗
|
I'd be happy to know more about you and what you are doing. If you want to share it, please make a contribution and [add your site to the list](https://github.com/panr/hugo-theme-terminal/blob/master/USERS.md)! 🤗
|
||||||
|
|
||||||
## Sponsoring
|
|
||||||
|
|
||||||
If you like my work and want to support the development of the project, now you can! Just:
|
|
||||||
|
|
||||||
<a href="https://www.buymeacoffee.com/panr" target="_blank"><img src="https://res.cloudinary.com/panr/image/upload/v1579374705/buymeacoffee_y6yvov.svg" alt="Buy Me A Coffee" ></a>
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Copyright © 2019-2020 Radosław Kozieł ([@panr](https://twitter.com/panr))
|
Copyright © 2019-2024 Radosław Kozieł ([@panr](https://twitter.com/panr))
|
||||||
|
|
||||||
The theme is released under the MIT License. Check the [original theme license](https://github.com/panr/hugo-theme-terminal/blob/master/LICENSE.md) for additional licensing information.
|
The theme is released under the MIT License. Check the [original theme license](https://github.com/panr/hugo-theme-terminal/blob/master/LICENSE.md) for additional licensing information.
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,20 @@
|
||||||
# Meet the users of Terminal theme!
|
# Meet the users of Terminal theme!
|
||||||
|
|
||||||
- https://xicode.se **magistern** (Teacher)
|
- https://xicode.se **magistern** (Teacher)
|
||||||
- https://devmaster64.com **devmaster64** (Software Developer)
|
- https://devmaster64.com **devmaster64** (Software Developer)
|
||||||
- https://mickie1.gitlab.io/blog/ **mickie** (Engineer)
|
|
||||||
- https://calloc.net **Vaibhav Yenamandra** (Software Engineer)
|
- https://calloc.net **Vaibhav Yenamandra** (Software Engineer)
|
||||||
- https://potatofrom.space **Kevin Liu** (Software)
|
- https://potatofrom.space **Kevin Liu** (Software)
|
||||||
- https://horochx.org **horochx** (Software Developer)
|
- https://horochx.org **horochx** (Software Developer)
|
||||||
- https://feng.si **Si Feng** (Software Engineer)
|
- https://feng.si **Si Feng** (Software Engineer)
|
||||||
- https://ben-on-vms.com **Benedikt Frenzel** (Technical Support Engineer)
|
- https://ben-on-vms.com **Benedikt Frenzel** (Technical Support Engineer)
|
||||||
- https://johngazzini.com **John Gazzini** (Software Engineer)
|
- https://johngazzini.com **John Gazzini** (Software Engineer)
|
||||||
- https://geekx.tech/ **Sagar Ladla** (Student Developer & Cyber Security Specialist)
|
|
||||||
- https://tears.io/ **Alex** (SRE)
|
- https://tears.io/ **Alex** (SRE)
|
||||||
- https://ayushkarn.me/ **Ayush Karn** (Student Developer)
|
- https://ayushkarn.me/ **Ayush Karn** (Student Developer)
|
||||||
- https://ssgram.dev **Ramaseshan Parthasarathy** (Software Developer)
|
|
||||||
- https://zaine.me **Amine Zaine** (Cloud Engineer)
|
- https://zaine.me **Amine Zaine** (Cloud Engineer)
|
||||||
- https://notes.dmaitre.phyip3.dur.ac.uk/computing-club/ **Ryan Moodie** (Physics PhD student)
|
- https://notes.dmaitre.phyip3.dur.ac.uk/computing-club/ **Ryan Moodie** (Physics PhD student)
|
||||||
- https://thecodecousins.com **Stanley Nguyen** (Software Engineer) & **Hoang Do** (Software & IoT Engineer)
|
|
||||||
- https://schacherbauer.dev **Markus Schacherbauer** (Student Developer)
|
|
||||||
- https://rinma.dev **Marvin Dalheimer** (Software Developer)
|
|
||||||
- https://lunar.computer **Lunar Computer** (DevOps Engineer)
|
- https://lunar.computer **Lunar Computer** (DevOps Engineer)
|
||||||
- https://naxxfish.net **Chris Roberts** (Broadcast Systems Engineer)
|
- https://naxxfish.net **Chris Roberts** (Broadcast Systems Engineer)
|
||||||
- https://security.jtang.dev **Jonathan Tang** (Student & Software Engineer)
|
|
||||||
- https://andreacaravano.net **Andrea Caravano** (Student)
|
- https://andreacaravano.net **Andrea Caravano** (Student)
|
||||||
- https://dawsonverboven.com/ **Dawson Verboven** (Student & Software Developer)
|
|
||||||
- https://qbunt.com **Jeremy Bunting** (Software Engineer)
|
- https://qbunt.com **Jeremy Bunting** (Software Engineer)
|
||||||
- https://smeik.org **Smeik** (Embedded Developer)
|
- https://smeik.org **Smeik** (Embedded Developer)
|
||||||
- https://code.willstocks.co.uk **Will Stocks** (Blogger & Developer)
|
- https://code.willstocks.co.uk **Will Stocks** (Blogger & Developer)
|
||||||
|
|
@ -30,12 +23,9 @@
|
||||||
- https://bgameiro.me/ **Bernardo Gameiro** (Engineer Physicist student)
|
- https://bgameiro.me/ **Bernardo Gameiro** (Engineer Physicist student)
|
||||||
- https://return-to-libc.com/ **elraro** (Cyber Security Specialist)
|
- https://return-to-libc.com/ **elraro** (Cyber Security Specialist)
|
||||||
- https://pablart.com/ **Pablo Diaz-Gutierrez** (Software Engineer, General Tinkerer)
|
- https://pablart.com/ **Pablo Diaz-Gutierrez** (Software Engineer, General Tinkerer)
|
||||||
- https://waterloos.niflheimr.blue/ **cindrmon** (Student and Aspiring Software Engineer)
|
|
||||||
- https://monocle.rpod.club/ **classx** (DevOps Engineer)
|
- https://monocle.rpod.club/ **classx** (DevOps Engineer)
|
||||||
- https://wjdevschool.com/ **Wojciech Bogócki** (Making Things & Teaching / W&J Dev School)
|
- https://erisianrite.com/ **ErisianRite** (Coding, Engineering, Tools for Thought)
|
||||||
- https://dongzhi.me **Joe** (Software Developer)
|
|
||||||
- https://isaes.com.tr/ **Isa Es** (Software Engineer)
|
- https://isaes.com.tr/ **Isa Es** (Software Engineer)
|
||||||
- https://conight.com **Conight Wang** (Software Engineer)
|
|
||||||
- https://blog.m5e.de/ **Christoph Miksche** (Software Developer)
|
- https://blog.m5e.de/ **Christoph Miksche** (Software Developer)
|
||||||
- https://mpostument.com/ **Maksym Postument** (DevOps Engineer)
|
- https://mpostument.com/ **Maksym Postument** (DevOps Engineer)
|
||||||
- https://mathiejosh.xyz **Josh Mathie** (Electrical Engineering Technology Student/Sales and Engineering Tech)
|
- https://mathiejosh.xyz **Josh Mathie** (Electrical Engineering Technology Student/Sales and Engineering Tech)
|
||||||
|
|
@ -43,8 +33,6 @@
|
||||||
- https://blog.puvvadi.me **KD Puvvadi** (Software Dev & Cloud Orchestrator)
|
- https://blog.puvvadi.me **KD Puvvadi** (Software Dev & Cloud Orchestrator)
|
||||||
- https://hidden.land/ **Louisload** (Game Developer & Musician)
|
- https://hidden.land/ **Louisload** (Game Developer & Musician)
|
||||||
- https://linuxbase.nl **Michael Trip** (DevOps Engineer)
|
- https://linuxbase.nl **Michael Trip** (DevOps Engineer)
|
||||||
- https://markopolo123.github.io **Markopolo** (DevOps Engineer)
|
|
||||||
- https://openfoxblog.leven.dev/ **Damon Leven** (Student & Software Developer)
|
|
||||||
- https://blog.sethforprivacy.com **Seth For Privacy** (Security, privacy, and cryptocurrency writer, podcaster)
|
- https://blog.sethforprivacy.com **Seth For Privacy** (Security, privacy, and cryptocurrency writer, podcaster)
|
||||||
- https://thesprawl.city **crish** (Software and stuff)
|
- https://thesprawl.city **crish** (Software and stuff)
|
||||||
- https://justinnuwin.com **Justin Nguyen** (Software & Hardware Developer)
|
- https://justinnuwin.com **Justin Nguyen** (Software & Hardware Developer)
|
||||||
|
|
@ -54,10 +42,20 @@
|
||||||
- https://biplav.xyz **Biplav's Blog** (Student)
|
- https://biplav.xyz **Biplav's Blog** (Student)
|
||||||
- https://santiago.wtf **Nicholas Santiago** (DevOps Engineer)
|
- https://santiago.wtf **Nicholas Santiago** (DevOps Engineer)
|
||||||
- https://2200g.github.io/ **2200g** (Blogger/Student)
|
- https://2200g.github.io/ **2200g** (Blogger/Student)
|
||||||
- https://cristiioan.me **Cristian Margine** (Student)
|
|
||||||
- https://they.mint.lgbt **Joey Aliaga** (Software Developer & Student)
|
- https://they.mint.lgbt **Joey Aliaga** (Software Developer & Student)
|
||||||
- https://tatewilhelm.me **Tate Wilhelm** (Student, Programmer & Tinkerer)
|
- https://tatewilhelm.me **Tate Wilhelm** (Student, Programmer & Tinkerer)
|
||||||
- https://mikefoden.com **Mike Foden** (Software Developer)
|
- https://mikefoden.com **Mike Foden** (Software Developer)
|
||||||
|
- https://undemalum.github.io/portfolio/ **Mateusz Konat** (Student)
|
||||||
|
- https://ku0hn.radio **Ben Kuhn** (Ham Radio Operator, InfoSec Engineer, Tinkerer)
|
||||||
|
- https://www.grumpymetalguy.com **GrumpyMetalGuy** (General Grumper and Developer)
|
||||||
|
- https://blog.jontes.page **Jonte** (general tech geek)
|
||||||
|
- https://nazdarthegame.com/ **Michal Skoula** (Software Developer)
|
||||||
|
- https://1mup.myorange.house **Antonio Garosi** (Street art gallery)
|
||||||
|
- https://kitchvx.github.io **Nathan Kitching** (IT Student)
|
||||||
|
- https://dgood.win **Dom Goodwin** (Platform Engineer)
|
||||||
|
- https://sir-photch.xyz **Sir-Photch** (ComSci-student. German Blog)
|
||||||
|
- https://drewmorris.info **Drew Morris** (Mathematician && Computer Scientist)
|
||||||
|
- https://blog.darkiiiiiice.com **MarioMang** (Software Developer)
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
TEMPLATE:
|
TEMPLATE:
|
||||||
|
|
@ -65,3 +63,4 @@
|
||||||
- https://radoslawkoziel.pl **Radek Kozieł** (Software Designer and Developer)
|
- https://radoslawkoziel.pl **Radek Kozieł** (Software Designer and Developer)
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,54 +8,84 @@ button,
|
||||||
.button,
|
.button,
|
||||||
a.button {
|
a.button {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 8px 18px;
|
padding: 8px 18px;
|
||||||
margin-bottom: 5px;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 0;
|
border-radius: 8;
|
||||||
border: 1px solid var(--accent);
|
|
||||||
background: var(--accent);
|
|
||||||
font: inherit;
|
font: inherit;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
button.outline,
|
||||||
background: color-mod(var(--accent) a(90%));
|
.button.outline,
|
||||||
}
|
a.button.outline {
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
padding: 8px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
/* variants */
|
button.outline :hover,
|
||||||
|
.button.outline :hover,
|
||||||
|
a.button.outline :hover {
|
||||||
|
transform: none;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
&.outline {
|
button.link,
|
||||||
background: transparent;
|
.button.link,
|
||||||
box-shadow: none;
|
a.button.link {
|
||||||
padding: 8px 18px;
|
background: none;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
:hover {
|
button.small,
|
||||||
transform: none;
|
.button.small,
|
||||||
box-shadow: none;
|
a.button.small {
|
||||||
}
|
font-size: 0.8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.link {
|
button.wide,
|
||||||
background: none;
|
.button.wide,
|
||||||
font-size: 1rem;
|
a.button.wide {
|
||||||
}
|
min-width: 200px;
|
||||||
|
padding: 14px 24px;
|
||||||
|
}
|
||||||
|
|
||||||
/* sizes */
|
a.button.inline {
|
||||||
|
background: none;
|
||||||
|
color: var(--accent);
|
||||||
|
padding: initial;
|
||||||
|
margin: initial;
|
||||||
|
border: initial;
|
||||||
|
font-weight: initial;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
&.small {
|
a.button.inline:active,
|
||||||
font-size: .8rem;
|
a.button.inline:hover {
|
||||||
}
|
background: none;
|
||||||
|
}
|
||||||
|
|
||||||
&.wide {
|
a.button.inline::before {
|
||||||
min-width: 200px;
|
content: "["
|
||||||
padding: 14px 24px;
|
}
|
||||||
}
|
|
||||||
|
a.button.inline::after {
|
||||||
|
content: "]"
|
||||||
|
}
|
||||||
|
|
||||||
|
a.button.inline.prev::before {
|
||||||
|
content: "← ["
|
||||||
|
}
|
||||||
|
|
||||||
|
a.button.inline.next::after {
|
||||||
|
content: "] →"
|
||||||
}
|
}
|
||||||
|
|
||||||
a.read-more,
|
a.read-more,
|
||||||
|
|
@ -63,32 +93,31 @@ a.read-more:hover,
|
||||||
a.read-more:active {
|
a.read-more:active {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
border: none;
|
border: none;
|
||||||
color: var(--accent);
|
|
||||||
background: none;
|
background: none;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 20px 0;
|
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code-toolbar {
|
.code-toolbar {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
.toolbar-item a {
|
|
||||||
position: relative;
|
.code-toolbar .toolbar-item a {
|
||||||
display: inline-flex;
|
position: relative;
|
||||||
align-items: center;
|
display: inline-flex;
|
||||||
justify-content: center;
|
align-items: center;
|
||||||
padding: 3px 8px;
|
justify-content: center;
|
||||||
margin-bottom: 5px;
|
padding: 3px 8px;
|
||||||
text-decoration: none;
|
margin-bottom: 5px;
|
||||||
text-align: center;
|
text-decoration: none;
|
||||||
font-size: 13px;
|
text-align: center;
|
||||||
font-weight: 500;
|
font-size: 13px;
|
||||||
border-radius: 8px;
|
font-weight: 500;
|
||||||
border: 1px solid transparent;
|
border-radius: 8px;
|
||||||
appearance: none;
|
border: 1px solid transparent;
|
||||||
cursor: pointer;
|
appearance: none;
|
||||||
outline: none;
|
cursor: pointer;
|
||||||
}
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,84 +1,118 @@
|
||||||
.collapsable-code {
|
/* _code.scss */
|
||||||
--border-color: color-mod(var(--accent) blend(#999 90%));
|
pre {
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-toolbar {
|
||||||
|
position: relative;
|
||||||
|
margin: 20px 0;
|
||||||
|
border: 1px solid color-mix(in srgb, var(--accent) 10%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-toolbar + .code-toolbar,
|
||||||
|
.code-toolbar + .highlight,
|
||||||
|
.code-toolbar + .highlight .code-toolbar {
|
||||||
|
border-top: 0;
|
||||||
|
margin-top: -20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-toolbar pre, .code-toolbar code {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-toolbar code {
|
||||||
|
display: block;
|
||||||
|
color: color-mix(in srgb, var(--accent) 50%, var(--foreground));
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-toolbar > .toolbar button {
|
||||||
|
font-size: 0.8em !important;
|
||||||
|
font-weight: bold !important;
|
||||||
|
background: var(--accent) !important;
|
||||||
|
color: var(--background) !important;
|
||||||
|
border-radius: var(--radius) !important;
|
||||||
|
box-shadow: none !important;
|
||||||
|
border: 1px solid var(--background) !important;
|
||||||
|
margin: 6px !important;
|
||||||
|
padding: 10px !important;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsable-code {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 40px 0;
|
margin: 40px 0;
|
||||||
|
}
|
||||||
input[type="checkbox"] {
|
|
||||||
position: absolute;
|
.collapsable-code input[type=checkbox] {
|
||||||
visibility: hidden;
|
position: absolute;
|
||||||
}
|
visibility: hidden;
|
||||||
|
}
|
||||||
input[type="checkbox"]:checked {
|
|
||||||
~ pre,
|
.collapsable-code input[type=checkbox]:checked ~ pre,
|
||||||
~ .code-toolbar pre {
|
.collapsable-code input[type=checkbox]:checked ~ .code-toolbar pre {
|
||||||
height: 0;
|
display: none;
|
||||||
padding: 0;
|
}
|
||||||
border-top: none;
|
|
||||||
}
|
.collapsable-code input[type=checkbox]:checked ~ .code-toolbar {
|
||||||
|
padding: 0;
|
||||||
~ .code-toolbar {
|
border-top: none;
|
||||||
padding: 0;
|
}
|
||||||
border-top: none;
|
|
||||||
|
.collapsable-code input[type=checkbox]:checked ~ .code-toolbar .toolbar {
|
||||||
.toolbar {
|
display: none;
|
||||||
display: none;
|
}
|
||||||
}
|
|
||||||
}
|
.collapsable-code input[type=checkbox]:checked ~ label .collapsable-code__toggle::after {
|
||||||
|
content: attr(data-label-expand);
|
||||||
~ label .collapsable-code__toggle:after {
|
}
|
||||||
content: attr(data-label-expand);
|
|
||||||
}
|
.collapsable-code label {
|
||||||
}
|
position: relative;
|
||||||
|
display: flex;
|
||||||
label {
|
justify-content: space-between;
|
||||||
position: relative;
|
min-width: 30px;
|
||||||
display: flex;
|
min-height: 30px;
|
||||||
justify-content: space-between;
|
margin: 0;
|
||||||
min-width: 30px;
|
border-bottom: 1px solid var(--accent);
|
||||||
min-height: 30px;
|
cursor: pointer;
|
||||||
margin: 0;
|
}
|
||||||
border-bottom: 1px solid var(--border-color);
|
|
||||||
cursor: pointer;
|
.collapsable-code__title {
|
||||||
}
|
flex: 1;
|
||||||
|
color: var(--accent);
|
||||||
&__title {
|
padding: 3px 10px;
|
||||||
flex: 1;
|
text-overflow: ellipsis;
|
||||||
color: var(--accent);
|
white-space: nowrap;
|
||||||
padding: 3px 10px;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
}
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
.collapsable-code__language {
|
||||||
}
|
color: var(--accent);
|
||||||
|
border: 1px solid var(--accent);
|
||||||
&__language {
|
border-bottom: none;
|
||||||
color: var(--accent);
|
text-transform: uppercase;
|
||||||
border: 1px solid var(--border-color);
|
padding: 3px 10px;
|
||||||
border-bottom: none;
|
}
|
||||||
text-transform: uppercase;
|
|
||||||
padding: 3px 10px;
|
.collapsable-code__toggle {
|
||||||
}
|
color: var(--accent);
|
||||||
|
font-size: 16px;
|
||||||
&__toggle {
|
padding: 3px 10px;
|
||||||
color: var(--accent);
|
}
|
||||||
font-size: 16px;
|
|
||||||
padding: 3px 10px;
|
.collapsable-code__toggle::after {
|
||||||
|
content: attr(data-label-collapse);
|
||||||
&:after {
|
}
|
||||||
content: attr(data-label-collapse);
|
|
||||||
}
|
.collapsable-code pre {
|
||||||
}
|
margin-top: 0;
|
||||||
|
}
|
||||||
pre {
|
|
||||||
margin-top: 0;
|
.collapsable-code pre::first-line {
|
||||||
|
line-height: 0;
|
||||||
&::first-line {
|
}
|
||||||
line-height: 0;
|
|
||||||
}
|
.collapsable-code .code-toolbar {
|
||||||
}
|
margin: 0;
|
||||||
|
|
||||||
.code-toolbar {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
@import '../main.css';
|
|
||||||
@import '../header.css';
|
|
||||||
@import '../logo.css';
|
|
||||||
@import '../pagination.css';
|
|
||||||
@import '../post.css';
|
|
||||||
@import '../syntax.css';
|
|
||||||
@import '../variables.css';
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--accent: #23B0FF;
|
|
||||||
--background: color-mod(var(--accent) blend(#1D1E28 98%));
|
|
||||||
--color: white;
|
|
||||||
--border-color: rgba(255, 255, 255, .1);
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
@import '../main.css';
|
|
||||||
@import '../header.css';
|
|
||||||
@import '../logo.css';
|
|
||||||
@import '../pagination.css';
|
|
||||||
@import '../post.css';
|
|
||||||
@import '../syntax.css';
|
|
||||||
@import '../variables.css';
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--accent: #78E2A0;
|
|
||||||
--background: color-mod(var(--accent) blend(#1D1E28 98%));
|
|
||||||
--color: white;
|
|
||||||
--border-color: rgba(255, 255, 255, .1);
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
@import '../main.css';
|
|
||||||
@import '../header.css';
|
|
||||||
@import '../logo.css';
|
|
||||||
@import '../pagination.css';
|
|
||||||
@import '../post.css';
|
|
||||||
@import '../syntax.css';
|
|
||||||
@import '../variables.css';
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--accent: #EE72F1;
|
|
||||||
--background: color-mod(var(--accent) blend(#1D1E28 98%));
|
|
||||||
--color: white;
|
|
||||||
--border-color: rgba(255, 255, 255, .1);
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
@import '../main.css';
|
|
||||||
@import '../header.css';
|
|
||||||
@import '../logo.css';
|
|
||||||
@import '../pagination.css';
|
|
||||||
@import '../post.css';
|
|
||||||
@import '../syntax.css';
|
|
||||||
@import '../variables.css';
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--accent: #FF6266;
|
|
||||||
--background: color-mod(var(--accent) blend(#1D1E28 98%));
|
|
||||||
--color: white;
|
|
||||||
--border-color: rgba(255, 255, 255, .1);
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +1,15 @@
|
||||||
|
/* _font.scss */
|
||||||
@font-face {
|
@font-face {
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
font-family: 'Fira Code';
|
font-family: "Fira Code";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
src: url("../fonts/FiraCode-Regular.woff") format("woff");
|
src: url("../fonts/FiraCode-Regular.woff") format("woff");
|
||||||
font-display: swap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
font-family: 'Fira Code';
|
font-family: "Fira Code";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
src: url("../fonts/FiraCode-Bold.woff") format("woff");
|
src: url("../fonts/FiraCode-Bold.woff") format("woff");
|
||||||
font-display: swap;
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,50 +1,47 @@
|
||||||
|
/* _footer.scss */
|
||||||
.footer {
|
.footer {
|
||||||
padding: 40px 0;
|
padding: 40px 0;
|
||||||
flex-grow: 0;
|
flex-grow: 0;
|
||||||
opacity: .5;
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
&__inner {
|
.footer__inner {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
width: 760px;
|
width: 760px;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
.footer a {
|
||||||
flex-direction: column;
|
color: inherit;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
.footer .copyright {
|
||||||
color: inherit;
|
display: flex;
|
||||||
}
|
flex-flow: row wrap;
|
||||||
|
flex: 1;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 1rem;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
.copyright {
|
.footer .copyright--user {
|
||||||
display: flex;
|
margin: auto;
|
||||||
flex-direction: row;
|
text-align: center;
|
||||||
align-items: center;
|
}
|
||||||
font-size: 1rem;
|
|
||||||
color: var(--light-color-secondary);
|
|
||||||
|
|
||||||
&--user {
|
.footer .copyright > *:first-child:not(:only-child) {
|
||||||
margin: auto;
|
margin-right: 10px;
|
||||||
text-align: center;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
& > *:first-child:not(:only-child) {
|
.footer .copyright span {
|
||||||
margin-right: 10px;
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
@media (--tablet) {
|
@media (max-width: 900px) {
|
||||||
border: none;
|
.footer__inner {
|
||||||
padding: 0;
|
flex-direction: column;
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (--tablet) {
|
|
||||||
flex-direction: column;
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
input, textarea, select {
|
|
||||||
background: transparent;
|
|
||||||
color: var(--accent);
|
|
||||||
border: 1px solid var(--accent);
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 10px;
|
|
||||||
font: inherit;
|
|
||||||
appearance: none;
|
|
||||||
|
|
||||||
&:focus, :active {
|
|
||||||
border-color: var(--color);
|
|
||||||
outline: 1px solid var(--color);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
background: var(--background);
|
|
||||||
|
|
||||||
option {
|
|
||||||
background: var(--background);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
::placeholder {
|
|
||||||
color: color-mod(var(--accent) a(50%));
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
body .gist .blob-num /* line numbers */,
|
/* _gist.scss */
|
||||||
body .gist .blob-code-inner
|
body .gist .blob-num,
|
||||||
{
|
body .gist .blob-code-inner {
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,162 +1,46 @@
|
||||||
@define-mixin menu {
|
/* _header.scss */
|
||||||
position: absolute;
|
|
||||||
background: var(--background);
|
|
||||||
box-shadow: var(--shadow);
|
|
||||||
color: white;
|
|
||||||
border: 2px solid;
|
|
||||||
margin: 0;
|
|
||||||
padding: 10px;
|
|
||||||
list-style: none;
|
|
||||||
z-index: 99;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
@media print {
|
.header__inner {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header__logo {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header__logo::after {
|
||||||
|
content: "";
|
||||||
|
background: repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, transparent 0, transparent 10px);
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header__logo a {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
max-width: 100%;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
text-decoration: none;
|
||||||
|
background: var(--accent);
|
||||||
|
color: var(--background);
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.header {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__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 {
|
|
||||||
--shadow-color: color-mod(var(--background) a(80%));
|
|
||||||
--shadow: 0 10px var(--shadow-color), -10px 10px var(--shadow-color), 10px 10px var(--shadow-color);
|
|
||||||
margin: 20px 1px;
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
@mixin menu;
|
|
||||||
top: 50px;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__inner {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
&--desktop {
|
|
||||||
@media (--phone) {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&--mobile {
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
&:not(:last-of-type) {
|
|
||||||
margin-right: 20px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
flex: 0 0 auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
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 {
|
|
||||||
@mixin menu;
|
|
||||||
top: 35px;
|
|
||||||
left: 0;
|
|
||||||
|
|
||||||
&-trigger {
|
|
||||||
color: var(--accent);
|
|
||||||
user-select: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
margin: 0;
|
|
||||||
padding: 5px;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.spacer {
|
|
||||||
flex-grow: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.language-selector {
|
|
||||||
position: relative;
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
&-current {
|
|
||||||
list-style-type: none;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
color: var(--accent);
|
|
||||||
cursor: pointer;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__more {
|
|
||||||
@mixin menu;
|
|
||||||
top: 35px;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-trigger {
|
|
||||||
color: var(--accent);
|
|
||||||
border: 2px solid;
|
|
||||||
margin-left: 10px;
|
|
||||||
height: 100%;
|
|
||||||
padding: 3px 8px;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
.logo {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
text-decoration: none;
|
|
||||||
background: var(--accent);
|
|
||||||
color: black;
|
|
||||||
padding: 5px 10px;
|
|
||||||
}
|
|
||||||
|
|
@ -1,297 +1,110 @@
|
||||||
|
/* _main.scss */
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
*,
|
*,
|
||||||
*:before,
|
*::before,
|
||||||
*:after {
|
*::after {
|
||||||
box-sizing: inherit;
|
box-sizing: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace;
|
font-family: "Fira Code", Monaco, Consolas, "Ubuntu Mono", monospace;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
line-height: 1.54;
|
line-height: 1.54;
|
||||||
letter-spacing: -0.02em;
|
letter-spacing: -0.02em;
|
||||||
background-color: color-mod(var(--accent) blend(#1D1E28 98%));
|
background-color: var(--background);
|
||||||
color: var(--color);
|
color: var(--foreground);
|
||||||
text-rendering: optimizeLegibility;
|
text-rendering: optimizelegibility;
|
||||||
-webkit-font-smoothing: antialiased;
|
-webkit-font-smoothing: antialiased;
|
||||||
font-feature-settings: "liga", "tnum", "zero", "ss01", "locl";
|
font-feature-settings: "liga", "tnum", "zero", "ss01", "locl";
|
||||||
font-variant-ligatures: contextual;
|
font-variant-ligatures: contextual;
|
||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
-webkit-text-size-adjust: 100%;
|
text-size-adjust: 100%;
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.headings--one-size {
|
.headings--one-size h1,
|
||||||
h1,
|
.headings--one-size h2,
|
||||||
h2,
|
.headings--one-size h3,
|
||||||
h3,
|
.headings--one-size h4,
|
||||||
h4,
|
.headings--one-size h5,
|
||||||
h5,
|
.headings--one-size h6 {
|
||||||
h6 {
|
font-size: 1.4rem;
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
|
margin: 20px 0;
|
||||||
&:not(first-child) {
|
|
||||||
margin-top: 40px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3 {
|
|
||||||
font-size: 1.4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
.headings--one-size ~ h1:first-child,
|
||||||
|
.headings--one-size ~ h2:first-child,
|
||||||
|
.headings--one-size ~ h3:first-child,
|
||||||
|
.headings--one-size ~ h4:first-child,
|
||||||
|
.headings--one-size ~ h5:first-child,
|
||||||
|
.headings--one-size ~ h6:first-child {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.left {
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.center {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.right {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure.left {
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure.center {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure.right {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure figcaption.left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure figcaption.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure figcaption.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote.twitter-tweet {
|
||||||
|
position: relative;
|
||||||
|
background: var(--background);
|
||||||
|
font: inherit;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
border: 1px solid var(--accent);
|
||||||
/* Waiting for a better times... */
|
padding-top: 60px;
|
||||||
/* &:has(code) {
|
|
||||||
text-decoration-color: var(--accent);
|
|
||||||
} */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
blockquote.twitter-tweet a {
|
||||||
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 {
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.center {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.right {
|
|
||||||
margin-left: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
figcaption {
|
|
||||||
font-size: 14px;
|
|
||||||
padding: 5px 10px;
|
|
||||||
margin-top: 5px;
|
|
||||||
background: var(--accent);
|
|
||||||
color: var(--background);
|
|
||||||
/* opacity: .8; */
|
|
||||||
|
|
||||||
&.left {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
code, kbd {
|
|
||||||
font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace !important;
|
|
||||||
font-feature-settings: normal;
|
|
||||||
background: color-mod(var(--accent) a(20%));
|
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
padding: 1px 6px;
|
text-decoration: underline;
|
||||||
margin: 0 2px;
|
|
||||||
font-size: .95rem;
|
|
||||||
|
|
||||||
code, kbd {
|
|
||||||
background: transparent;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
blockquote.twitter-tweet::before {
|
||||||
background: transparent !important;
|
content: "> From X:";
|
||||||
padding: 20px 10px;
|
position: absolute;
|
||||||
margin: 40px 0;
|
top: 20px;
|
||||||
font-size: .95rem !important;
|
left: 20px;
|
||||||
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 (--phone) {
|
|
||||||
white-space: pre-wrap;
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
background: none !important;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-size: inherit;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
blockquote {
|
|
||||||
border-top: 1px solid var(--accent);
|
|
||||||
border-bottom: 1px solid var(--accent);
|
|
||||||
margin: 40px 0;
|
|
||||||
padding: 25px;
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
p:first-of-type {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
p:last-of-type {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
p:first-of-type:before {
|
|
||||||
content: '>';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
left: -25px;
|
|
||||||
color: var(--accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.twitter-tweet {
|
|
||||||
position: relative;
|
|
||||||
background: color-mod(var(--accent) a(10%));
|
|
||||||
font: inherit;
|
|
||||||
color: inherit;
|
|
||||||
border: 1px solid var(--accent);
|
|
||||||
padding-top: 60px;
|
|
||||||
|
|
||||||
p:before {
|
|
||||||
content: '';
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before {
|
|
||||||
content: '> From Twitter:';
|
|
||||||
position: absolute;
|
|
||||||
top: 20px;
|
|
||||||
color: var(--accent);
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: var(--accent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
table-layout: auto;
|
|
||||||
border-collapse: collapse;
|
|
||||||
width: 100%;
|
|
||||||
margin: 40px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
table,
|
|
||||||
th,
|
|
||||||
td {
|
|
||||||
border: 1px dashed var(--accent);
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
}
|
font-weight: bold;
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
margin-left: 22px;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
li {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ol {
|
|
||||||
list-style: none;
|
|
||||||
counter-reset: li;
|
|
||||||
|
|
||||||
li {
|
|
||||||
counter-increment: li;
|
|
||||||
}
|
|
||||||
|
|
||||||
li:before {
|
|
||||||
content: counter(li);
|
|
||||||
position: absolute;
|
|
||||||
right: calc(100% + 10px);
|
|
||||||
color: var(--accent);
|
|
||||||
display: inline-block;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
ol {
|
|
||||||
margin-left: 38px;
|
|
||||||
|
|
||||||
li {
|
|
||||||
counter-increment: li;
|
|
||||||
}
|
|
||||||
|
|
||||||
li:before {
|
|
||||||
content: counters(li, ".") " ";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mark {
|
|
||||||
background: var(--accent);
|
|
||||||
color: var(--background);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
|
|
@ -300,47 +113,58 @@ mark {
|
||||||
padding: 40px;
|
padding: 40px;
|
||||||
max-width: 864px;
|
max-width: 864px;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
border-right: 1px solid rgba(255, 255, 255, 0.1);
|
border-right: 1px solid color-mix(in srgb, var(--accent) 10%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
&.full,
|
.container.full, .container.center {
|
||||||
&.center {
|
border: none;
|
||||||
border: none;
|
margin: 0 auto;
|
||||||
margin: 0 auto;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
&.full {
|
.container.full {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
padding: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
display: initial;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
@media print {
|
|
||||||
display: initial;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
width: 100%;
|
|
||||||
border: none;
|
|
||||||
background: var(--border-color);
|
|
||||||
height: 1px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hidden {
|
.hidden {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
sup {
|
.__h_video {
|
||||||
line-height: 0;
|
padding-bottom: 58.23% !important;
|
||||||
|
overflow: visible !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe[src*="youtube.com"] {
|
||||||
|
border: 8px solid var(--accent) !important;
|
||||||
|
padding: 8px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 684px) {
|
||||||
|
body {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
.container {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
149
themes/terminal/assets/css/menu.css
Normal file
|
|
@ -0,0 +1,149 @@
|
||||||
|
/* _menu.scss */
|
||||||
|
.navigation-menu {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: space-between;
|
||||||
|
margin: 20px 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu__inner {
|
||||||
|
display: flex;
|
||||||
|
flex: 1;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu__inner > li {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu__inner > li:not(:last-of-type) {
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu .spacer {
|
||||||
|
flex-grow: 1 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
position: relative;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu__trigger {
|
||||||
|
margin-right: 0 !important;
|
||||||
|
color: var(--accent);
|
||||||
|
user-select: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu__dropdown {
|
||||||
|
display: none;
|
||||||
|
flex-direction: column;
|
||||||
|
position: absolute;
|
||||||
|
background: var(--background);
|
||||||
|
box-shadow: 0 10px var(--background), -10px 10px var(--background), 10px 10px var(--background);
|
||||||
|
color: var(--accent);
|
||||||
|
border: 2px solid var(--accent);
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
top: 10px;
|
||||||
|
left: 0;
|
||||||
|
list-style: none;
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
|
|
||||||
|
.open .menu__dropdown {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu__dropdown > li {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu__dropdown > li:not(:last-of-type) {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu__dropdown > li a {
|
||||||
|
display: flex;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--mobile .menu__trigger {
|
||||||
|
color: var(--accent);
|
||||||
|
border: 2px solid;
|
||||||
|
margin-left: 10px;
|
||||||
|
height: 100%;
|
||||||
|
padding: 3px 8px;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--mobile li {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--mobile li:not(:last-of-type) {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--language-selector .menu__trigger {
|
||||||
|
color: var(--accent);
|
||||||
|
border: 2px solid;
|
||||||
|
margin-left: 10px;
|
||||||
|
height: 100%;
|
||||||
|
padding: 3px 8px;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--language-selector .menu__dropdown {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 684px) {
|
||||||
|
.navigation-menu {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu__inner {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navigation-menu__inner li {
|
||||||
|
margin: 0;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--desktop {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--mobile .menu__trigger {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--mobile .menu__dropdown {
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu--language-selector .menu__trigger {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,86 +1,97 @@
|
||||||
|
/* _pagination.scss */
|
||||||
.pagination {
|
.pagination {
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
@media print {
|
.pagination__title {
|
||||||
display: none;
|
display: flex;
|
||||||
}
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
margin: 100px 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
&__title {
|
.pagination__title-h {
|
||||||
display: flex;
|
text-align: center;
|
||||||
text-align: center;
|
margin: 0 auto;
|
||||||
position: relative;
|
padding: 5px 10px;
|
||||||
margin: 100px 0 20px;
|
background: var(--background);
|
||||||
|
color: color-mix(in srgb var(--foreground) 30%, transparent);
|
||||||
|
font-size: 0.8rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
text-decoration: none;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
&-h {
|
.pagination__title hr {
|
||||||
text-align: center;
|
position: absolute;
|
||||||
margin: 0 auto;
|
left: 0;
|
||||||
padding: 5px 10px;
|
right: 0;
|
||||||
background: color-mod(var(--accent) blend(#1D1E28 98%));
|
width: 100%;
|
||||||
font-size: .8rem;
|
margin-top: 15px;
|
||||||
text-transform: uppercase;
|
z-index: 0;
|
||||||
text-decoration: none;
|
}
|
||||||
letter-spacing: .1em;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
.pagination__buttons {
|
||||||
position: absolute;
|
display: flex;
|
||||||
left: 0;
|
align-items: center;
|
||||||
right: 0;
|
justify-content: center;
|
||||||
width: 100%;
|
flex-flow: row wrap;
|
||||||
margin-top: 15px;
|
gap: 10px;
|
||||||
z-index: 0;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&__buttons {
|
.pagination__buttons a {
|
||||||
display: flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
max-width: 100%;
|
||||||
justify-content: center;
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
a {
|
overflow: hidden;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.button {
|
.button {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
flex: 1;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
border-radius: 8px;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
cursor: pointer;
|
|
||||||
appearance: none;
|
appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button a {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex: 1;
|
||||||
|
padding: 8px 16px;
|
||||||
|
text-decoration: none;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
+ .button {
|
.button__text {
|
||||||
margin-left: 10px;
|
text-overflow: ellipsis;
|
||||||
}
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
.next .button__icon {
|
||||||
display: flex;
|
margin-left: 8px;
|
||||||
padding: 8px 16px;
|
}
|
||||||
text-decoration: none;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
&__text {
|
.prev .button__icon {
|
||||||
text-overflow: ellipsis;
|
margin-right: 8px;
|
||||||
white-space: nowrap;
|
}
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.next .button__icon {
|
@media (max-width: 684px) {
|
||||||
margin-left: 8px;
|
.button {
|
||||||
}
|
flex: 1;
|
||||||
|
}
|
||||||
&.previous .button__icon {
|
}
|
||||||
margin-right: 8px;
|
|
||||||
|
@media print {
|
||||||
|
.pagination {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* _post.scss */
|
||||||
.index-content {
|
.index-content {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
@ -5,14 +6,14 @@
|
||||||
.framed {
|
.framed {
|
||||||
border: 1px solid var(--accent);
|
border: 1px solid var(--accent);
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
*:first-child {
|
.framed *:first-child {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
*:last-child {
|
.framed *:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.posts {
|
.posts {
|
||||||
|
|
@ -22,111 +23,120 @@
|
||||||
.post {
|
.post {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
margin: 20px auto;
|
padding: 40px 0;
|
||||||
padding: 20px 0;
|
|
||||||
|
|
||||||
@media (--tablet) {
|
|
||||||
max-width: 660px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not(:last-of-type) {
|
|
||||||
border-bottom: 1px solid var(--border-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
&-meta {
|
|
||||||
font-size: 1rem;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
color: color-mod(var(--accent) a(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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-tags {
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
font-size: 1rem;
|
|
||||||
opacity: .5;
|
|
||||||
|
|
||||||
a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-content {
|
|
||||||
margin-top: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-cover {
|
|
||||||
border: 20px solid var(--accent);
|
|
||||||
background: transparent;
|
|
||||||
margin: 40px 0;
|
|
||||||
padding: 20px;
|
|
||||||
|
|
||||||
@media (--phone) {
|
|
||||||
padding: 10px;
|
|
||||||
border-width: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
li:not(:empty):before {
|
|
||||||
content: '-';
|
|
||||||
position: absolute;
|
|
||||||
left: -20px;
|
|
||||||
color: var(--accent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.post--regulation {
|
.post:not(:last-of-type) {
|
||||||
h1 {
|
border-bottom: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
|
||||||
justify-content: center;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
.post-meta {
|
||||||
justify-content: center;
|
font-size: 1rem;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
|
color: color-mix(in srgb, var(--foreground) 50%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
& + h2 {
|
.post-meta > *:not(:first-child)::before {
|
||||||
margin-top: -10px;
|
content: "::";
|
||||||
margin-bottom: 20px;
|
display: inline-block;
|
||||||
}
|
margin: 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.post-title {
|
||||||
|
position: relative;
|
||||||
|
color: var(--accent);
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 15px !important;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
border-bottom: 3px dotted var(--accent);
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-title::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 2px;
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
border-bottom: 3px dotted var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-title a {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-tags {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents {
|
||||||
|
margin: 40px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-content {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post-cover {
|
||||||
|
margin: 40px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post ul {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post ul li:not(:empty)::before {
|
||||||
|
content: "-";
|
||||||
|
position: absolute;
|
||||||
|
left: -20px;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.post--regulation h1 {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post--regulation h2 {
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.post--regulation h2 + h2 {
|
||||||
|
margin-top: -10px;
|
||||||
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hanchor {
|
.hanchor {
|
||||||
color: color-mod(var(--accent) alpha(90%));
|
position: absolute;
|
||||||
|
color: var(--accent);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1:hover a, h2:hover a, h3:hover a, h4:hover a {
|
h1:hover .hanchor,
|
||||||
|
h2:hover .hanchor,
|
||||||
|
h3:hover .hanchor,
|
||||||
|
h4:hover .hanchor,
|
||||||
|
h5:hover .hanchor,
|
||||||
|
h6:hover .hanchor {
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footnotes {
|
.footnotes {
|
||||||
color: color-mod(var(--color) alpha(50%));
|
color: color-mix(in srgb, var(--foreground) 50%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.footnotes hr {
|
||||||
|
background: color-mix(in srgb, var(--foreground) 50%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 684px) {
|
||||||
|
.post-cover {
|
||||||
|
padding: 10px;
|
||||||
|
border-width: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,52 +1,46 @@
|
||||||
|
/* _prism.scss */
|
||||||
|
|
||||||
/* PrismJS 1.24.1
|
/* PrismJS 1.24.1
|
||||||
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+actionscript+apacheconf+applescript+bash+c+csharp+cpp+cmake+coffeescript+csp+css-extras+diff+django+docker+elixir+elm+erlang+fsharp+flow+git+go+graphql+haml+handlebars+haskell+http+java+json+kotlin+latex+less+llvm+makefile+markdown+markup-templating+nasm+objectivec+ocaml+perl+php+php-extras+powershell+processing+pug+python+r+jsx+tsx+reason+ruby+rust+sass+scss+scala+scheme+sql+stylus+swift+textile+toml+twig+typescript+vim+visual-basic+wasm+yaml&plugins=line-highlight+line-numbers+jsonp-highlight+highlight-keywords+command-line+toolbar+copy-to-clipboard */
|
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+actionscript+apacheconf+applescript+bash+c+csharp+cpp+cmake+coffeescript+csp+css-extras+diff+django+docker+elixir+elm+erlang+fsharp+flow+git+go+graphql+haml+handlebars+haskell+http+java+json+kotlin+latex+less+llvm+makefile+markdown+markup-templating+nasm+objectivec+ocaml+perl+php+php-extras+powershell+processing+pug+python+r+jsx+tsx+reason+ruby+rust+sass+scss+scala+scheme+sql+stylus+swift+textile+toml+twig+typescript+vim+visual-basic+wasm+yaml&plugins=line-highlight+line-numbers+jsonp-highlight+highlight-keywords+command-line+toolbar+copy-to-clipboard */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
|
* prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
|
||||||
* Based on https://github.com/chriskempson/tomorrow-theme
|
* Based on https://github.com/chriskempson/tomorrow-theme
|
||||||
* @author Rose Pritchard
|
* @author Rose Pritchard
|
||||||
*/
|
*/
|
||||||
|
code[class*=language-],
|
||||||
code[class*="language-"],
|
pre[class*=language-] {
|
||||||
pre[class*="language-"] {
|
color: #ccc;
|
||||||
color: #ccc;
|
background: none;
|
||||||
background: none;
|
font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
|
||||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
font-size: 1em;
|
||||||
font-size: 1em;
|
text-align: left;
|
||||||
text-align: left;
|
white-space: pre;
|
||||||
white-space: pre;
|
word-spacing: normal;
|
||||||
word-spacing: normal;
|
word-break: normal;
|
||||||
word-break: normal;
|
word-wrap: normal;
|
||||||
word-wrap: normal;
|
line-height: 1.5;
|
||||||
line-height: 1.5;
|
tab-size: 4;
|
||||||
|
hyphens: none;
|
||||||
-moz-tab-size: 4;
|
|
||||||
-o-tab-size: 4;
|
|
||||||
tab-size: 4;
|
|
||||||
|
|
||||||
-webkit-hyphens: none;
|
|
||||||
-moz-hyphens: none;
|
|
||||||
-ms-hyphens: none;
|
|
||||||
hyphens: none;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Code blocks */
|
/* Code blocks */
|
||||||
pre[class*="language-"] {
|
pre[class*=language-] {
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
margin: .5em 0;
|
margin: 0.5em 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
:not(pre) > code[class*="language-"],
|
:not(pre) > code[class*=language-],
|
||||||
pre[class*="language-"] {
|
pre[class*=language-] {
|
||||||
background: #2d2d2d;
|
background: #2d2d2d;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Inline code */
|
/* Inline code */
|
||||||
:not(pre) > code[class*="language-"] {
|
:not(pre) > code[class*=language-] {
|
||||||
padding: .1em;
|
padding: 0.1em;
|
||||||
border-radius: .3em;
|
border-radius: 0.3em;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.comment,
|
.token.comment,
|
||||||
|
|
@ -54,35 +48,35 @@ pre[class*="language-"] {
|
||||||
.token.prolog,
|
.token.prolog,
|
||||||
.token.doctype,
|
.token.doctype,
|
||||||
.token.cdata {
|
.token.cdata {
|
||||||
color: #999;
|
color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.punctuation {
|
.token.punctuation {
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.tag,
|
.token.tag,
|
||||||
.token.attr-name,
|
.token.attr-name,
|
||||||
.token.namespace,
|
.token.namespace,
|
||||||
.token.deleted {
|
.token.deleted {
|
||||||
color: #e2777a;
|
color: #e2777a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.function-name {
|
.token.function-name {
|
||||||
color: #6196cc;
|
color: #6196cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.boolean,
|
.token.boolean,
|
||||||
.token.number,
|
.token.number,
|
||||||
.token.function {
|
.token.function {
|
||||||
color: #f08d49;
|
color: #f08d49;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.property,
|
.token.property,
|
||||||
.token.class-name,
|
.token.class-name,
|
||||||
.token.constant,
|
.token.constant,
|
||||||
.token.symbol {
|
.token.symbol {
|
||||||
color: #f8c555;
|
color: #f8c555;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.selector,
|
.token.selector,
|
||||||
|
|
@ -90,7 +84,7 @@ pre[class*="language-"] {
|
||||||
.token.atrule,
|
.token.atrule,
|
||||||
.token.keyword,
|
.token.keyword,
|
||||||
.token.builtin {
|
.token.builtin {
|
||||||
color: #cc99cd;
|
color: #cc99cd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.string,
|
.token.string,
|
||||||
|
|
@ -98,230 +92,225 @@ pre[class*="language-"] {
|
||||||
.token.attr-value,
|
.token.attr-value,
|
||||||
.token.regex,
|
.token.regex,
|
||||||
.token.variable {
|
.token.variable {
|
||||||
color: #7ec699;
|
color: #7ec699;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.operator,
|
.token.operator,
|
||||||
.token.entity,
|
.token.entity,
|
||||||
.token.url {
|
.token.url {
|
||||||
color: #67cdcc;
|
color: #67cdcc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.important,
|
.token.important,
|
||||||
.token.bold {
|
.token.bold {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.italic {
|
.token.italic {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.entity {
|
.token.entity {
|
||||||
cursor: help;
|
cursor: help;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.inserted {
|
.token.inserted {
|
||||||
color: green;
|
color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[data-line] {
|
pre[data-line] {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 1em 0 1em 3em;
|
padding: 1em 0 1em 3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-highlight {
|
.line-highlight {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
padding: inherit 0;
|
padding: inherit 0;
|
||||||
margin-top: 1em; /* Same as .prism’s padding-top */
|
margin-top: 1em;
|
||||||
|
|
||||||
background: hsla(24, 20%, 50%,.08);
|
/* Same as .prism’s padding-top */
|
||||||
background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
background: hsla(24deg, 20%, 50%, 8%);
|
||||||
|
background: linear-gradient(to right, hsla(24deg, 20%, 50%, 10%) 70%, hsla(24deg, 20%, 50%, 0%));
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
line-height: inherit;
|
||||||
line-height: inherit;
|
white-space: pre;
|
||||||
white-space: pre;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@media print {
|
@media print {
|
||||||
.line-highlight {
|
.line-highlight {
|
||||||
/*
|
/*
|
||||||
* This will prevent browsers from replacing the background color with white.
|
* This will prevent browsers from replacing the background color with white.
|
||||||
* It's necessary because the element is layered on top of the displayed code.
|
* It's necessary because the element is layered on top of the displayed code.
|
||||||
*/
|
*/
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
color-adjust: exact;
|
color-adjust: exact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-highlight:before,
|
.line-highlight::before,
|
||||||
.line-highlight[data-end]:after {
|
.line-highlight[data-end]::after {
|
||||||
content: attr(data-start);
|
content: attr(data-start);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: .4em;
|
top: 0.4em;
|
||||||
left: .6em;
|
left: 0.6em;
|
||||||
min-width: 1em;
|
min-width: 1em;
|
||||||
padding: 0 .5em;
|
padding: 0 0.5em;
|
||||||
background-color: hsla(24, 20%, 50%,.4);
|
background-color: hsla(24deg, 20%, 50%, 40%);
|
||||||
color: hsl(24, 20%, 95%);
|
color: hsl(24deg, 20%, 95%);
|
||||||
font: bold 65%/1.5 sans-serif;
|
font: bold 65%/1.5 sans-serif;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: .3em;
|
vertical-align: 0.3em;
|
||||||
border-radius: 999px;
|
border-radius: 999px;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
box-shadow: 0 1px white;
|
box-shadow: 0 1px white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-highlight[data-end]:after {
|
.line-highlight[data-end]::after {
|
||||||
content: attr(data-end);
|
content: attr(data-end);
|
||||||
top: auto;
|
top: auto;
|
||||||
bottom: .4em;
|
bottom: 0.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers .line-highlight:before,
|
.line-numbers .line-highlight::before,
|
||||||
.line-numbers .line-highlight:after {
|
.line-numbers .line-highlight::after {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[id].linkable-line-numbers span.line-numbers-rows {
|
pre[id].linkable-line-numbers span.line-numbers-rows {
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
}
|
|
||||||
pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
|
|
||||||
background-color: rgba(128, 128, 128, .2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[class*="language-"].line-numbers {
|
pre[id].linkable-line-numbers span.line-numbers-rows > span::before {
|
||||||
position: relative;
|
cursor: pointer;
|
||||||
padding-left: 3.8em;
|
|
||||||
counter-reset: linenumber;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[class*="language-"].line-numbers > code {
|
pre[id].linkable-line-numbers span.line-numbers-rows > span:hover::before {
|
||||||
position: relative;
|
background-color: rgba(128, 128, 128, 20%);
|
||||||
white-space: inherit;
|
}
|
||||||
|
|
||||||
|
pre[class*=language-].line-numbers {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 3.8em;
|
||||||
|
counter-reset: linenumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre[class*=language-].line-numbers > code {
|
||||||
|
position: relative;
|
||||||
|
white-space: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers .line-numbers-rows {
|
.line-numbers .line-numbers-rows {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
top: 0;
|
top: 0;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
left: -3.8em;
|
left: -3.8em;
|
||||||
width: 3em; /* works for line-numbers below 1000 lines */
|
width: 3em;
|
||||||
letter-spacing: -1px;
|
|
||||||
border-right: 1px solid #999;
|
|
||||||
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
|
|
||||||
|
/* works for line-numbers below 1000 lines */
|
||||||
|
letter-spacing: -1px;
|
||||||
|
border-right: 1px solid #999;
|
||||||
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers-rows > span {
|
.line-numbers-rows > span {
|
||||||
display: block;
|
display: block;
|
||||||
counter-increment: linenumber;
|
counter-increment: linenumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers-rows > span:before {
|
.line-numbers-rows > span::before {
|
||||||
content: counter(linenumber);
|
content: counter(linenumber);
|
||||||
color: #999;
|
color: #999;
|
||||||
display: block;
|
display: block;
|
||||||
padding-right: 0.8em;
|
padding-right: 0.8em;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.command-line-prompt {
|
.command-line-prompt {
|
||||||
border-right: 1px solid #999;
|
border-right: 1px solid #999;
|
||||||
display: block;
|
display: block;
|
||||||
float: left;
|
float: left;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
letter-spacing: -1px;
|
letter-spacing: -1px;
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
user-select: none;
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.command-line-prompt > span:before {
|
.command-line-prompt > span::before {
|
||||||
color: #999;
|
color: #999;
|
||||||
content: ' ';
|
content: " ";
|
||||||
display: block;
|
display: block;
|
||||||
padding-right: 0.8em;
|
padding-right: 0.8em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.command-line-prompt > span[data-user]:before {
|
.command-line-prompt > span[data-user]::before {
|
||||||
content: "[" attr(data-user) "@" attr(data-host) "] $";
|
content: "["attr(data-user) "@"attr(data-host) "] $";
|
||||||
}
|
}
|
||||||
|
|
||||||
.command-line-prompt > span[data-user="root"]:before {
|
.command-line-prompt > span[data-user=root]::before {
|
||||||
content: "[" attr(data-user) "@" attr(data-host) "] #";
|
content: "["attr(data-user) "@"attr(data-host) "] #";
|
||||||
}
|
}
|
||||||
|
|
||||||
.command-line-prompt > span[data-prompt]:before {
|
.command-line-prompt > span[data-prompt]::before {
|
||||||
content: attr(data-prompt);
|
content: attr(data-prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar {
|
div.code-toolbar {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar {
|
div.code-toolbar > .toolbar {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: .3em;
|
top: 0.3em;
|
||||||
right: .2em;
|
right: 0.2em;
|
||||||
transition: opacity 0.3s ease-in-out;
|
transition: opacity 0.3s ease-in-out;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar:hover > .toolbar {
|
div.code-toolbar:hover > .toolbar {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Separate line b/c rules are thrown out if selector is invalid.
|
/* Separate line b/c rules are thrown out if selector is invalid.
|
||||||
IE11 and old Edge versions don't support :focus-within. */
|
IE11 and old Edge versions don't support :focus-within. */
|
||||||
div.code-toolbar:focus-within > .toolbar {
|
div.code-toolbar:focus-within > .toolbar {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar > .toolbar-item {
|
div.code-toolbar > .toolbar > .toolbar-item {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > a {
|
div.code-toolbar > .toolbar > .toolbar-item > a {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > button {
|
div.code-toolbar > .toolbar > .toolbar-item > button {
|
||||||
background: none;
|
background: none;
|
||||||
border: 0;
|
border: 0;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
font: inherit;
|
font: inherit;
|
||||||
line-height: normal;
|
line-height: normal;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
-webkit-user-select: none; /* for button */
|
|
||||||
-moz-user-select: none;
|
/* for button */
|
||||||
-ms-user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > a,
|
div.code-toolbar > .toolbar > .toolbar-item > a,
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > button,
|
div.code-toolbar > .toolbar > .toolbar-item > button,
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > span {
|
div.code-toolbar > .toolbar > .toolbar-item > span {
|
||||||
color: #bbb;
|
color: #bbb;
|
||||||
font-size: .8em;
|
font-size: 0.8em;
|
||||||
padding: 0 .5em;
|
padding: 0 0.5em;
|
||||||
background: #f5f2f0;
|
background: #f5f2f0;
|
||||||
background: rgba(224, 224, 224, 0.2);
|
background: rgba(224, 224, 224, 20%);
|
||||||
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
|
box-shadow: 0 2px 0 0 rgba(0, 0, 0, 20%);
|
||||||
border-radius: .5em;
|
border-radius: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
|
div.code-toolbar > .toolbar > .toolbar-item > a:hover,
|
||||||
|
|
@ -330,7 +319,6 @@ div.code-toolbar > .toolbar > .toolbar-item > button:hover,
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
|
div.code-toolbar > .toolbar > .toolbar-item > button:focus,
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
|
div.code-toolbar > .toolbar > .toolbar-item > span:hover,
|
||||||
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
|
div.code-toolbar > .toolbar > .toolbar-item > span:focus {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
@import 'variables.css';
|
|
||||||
|
|
||||||
@import 'font.css';
|
|
||||||
@import 'buttons.css';
|
|
||||||
@import 'form.css';
|
|
||||||
|
|
||||||
@import 'header.css';
|
|
||||||
@import 'logo.css';
|
|
||||||
@import 'main.css';
|
|
||||||
@import 'post.css';
|
|
||||||
@import 'pagination.css';
|
|
||||||
@import 'footer.css';
|
|
||||||
|
|
||||||
@import 'prism.css';
|
|
||||||
@import 'syntax.css';
|
|
||||||
@import 'code.css';
|
|
||||||
@import 'terms.css';
|
|
||||||
@import 'gist.css';
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* _syntax.scss */
|
||||||
code.language-css,
|
code.language-css,
|
||||||
code.language-scss,
|
code.language-scss,
|
||||||
.token.boolean,
|
.token.boolean,
|
||||||
|
|
@ -26,7 +27,6 @@ code.language-scss,
|
||||||
.token.unit,
|
.token.unit,
|
||||||
.token.placeholder,
|
.token.placeholder,
|
||||||
.token.variable,
|
.token.variable,
|
||||||
.token.tag,
|
|
||||||
.token.attr-name,
|
.token.attr-name,
|
||||||
.token.namespace,
|
.token.namespace,
|
||||||
.token.deleted,
|
.token.deleted,
|
||||||
|
|
@ -34,7 +34,7 @@ code.language-scss,
|
||||||
.token.class-name,
|
.token.class-name,
|
||||||
.token.constant,
|
.token.constant,
|
||||||
.token.symbol {
|
.token.symbol {
|
||||||
color: color-mod(var(--accent) a(70%)) !important;
|
color: color-mix(in srgb, var(--accent) 70%, transparent) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.property,
|
.token.property,
|
||||||
|
|
@ -43,34 +43,33 @@ code.language-scss,
|
||||||
.token.deleted,
|
.token.deleted,
|
||||||
code.language-javascript,
|
code.language-javascript,
|
||||||
code.language-html,
|
code.language-html,
|
||||||
.command-line-prompt > span:before {
|
.command-line-prompt > span::before {
|
||||||
color: color-mod(var(--accent) blend(#999 90%)) !important;
|
color: var(--accent) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.selector,
|
.token.selector,
|
||||||
.token.tag,
|
.token.tag,
|
||||||
.token.punctuation {
|
.token.punctuation {
|
||||||
color: white;
|
color: color-mix(in srgb, var(--accent) 50%, var(--foreground)) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.comment,
|
.token.comment,
|
||||||
.token.prolog,
|
.token.prolog,
|
||||||
.token.doctype,
|
.token.doctype,
|
||||||
.token.cdata {
|
.token.cdata {
|
||||||
color: rgba(255, 255, 255, .3) !important;
|
color: color-mix(in srgb, var(--foreground) 30%, transparent) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.token.namespace {
|
.token.namespace {
|
||||||
opacity: .7 !important;
|
opacity: 0.7 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[data-line] {
|
pre[data-line] {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre[class*="language-"] {
|
pre[class*=language-] {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,77 +79,38 @@ pre[class*="language-"] {
|
||||||
right: 0;
|
right: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background: color-mod(var(--accent) blend(#999 90%) a(8%));
|
background: color-mix(in srgb, var(--foreground) 7%, transparent);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
line-height: inherit;
|
line-height: inherit;
|
||||||
white-space: pre;
|
white-space: pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-highlight:before,
|
.line-highlight::before,
|
||||||
.line-highlight[data-end]:after {
|
.line-highlight[data-end]::after {
|
||||||
content: attr(data-start);
|
content: attr(data-start);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
/* top: .4em; */
|
/* top: .4em; */
|
||||||
left: .6em;
|
left: 0.6em;
|
||||||
min-width: 1em;
|
min-width: 1em;
|
||||||
padding: 0 .5em;
|
padding: 0 0.5em;
|
||||||
background-color: hsla(24, 20%, 50%, .4);
|
background-color: color-mix(in srgb, var(--foreground) 40%, transparent);
|
||||||
color: hsl(24, 20%, 95%);
|
color: var(--foreground);
|
||||||
font: bold 65%/1.5 sans-serif;
|
font: bold 65%/1.5 sans-serif;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
vertical-align: .3em;
|
vertical-align: 0.3em;
|
||||||
border-radius: 999px;
|
border-radius: 999px;
|
||||||
text-shadow: none;
|
text-shadow: none;
|
||||||
box-shadow: 0 1px white;
|
box-shadow: 0 1px var(--foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-highlight[data-end]:after {
|
.line-highlight[data-end]::after {
|
||||||
content: attr(data-end);
|
content: attr(data-end);
|
||||||
top: auto;
|
top: auto;
|
||||||
bottom: .4em;
|
bottom: 0.4em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.line-numbers .line-highlight:before,
|
.line-numbers .line-highlight::before,
|
||||||
.line-numbers .line-highlight:after {
|
.line-numbers .line-highlight::after {
|
||||||
content: none;
|
content: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
|
||||||
--code-margin: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-toolbar {
|
|
||||||
position: relative;
|
|
||||||
margin: var(--code-margin) 0;
|
|
||||||
padding: 20px;
|
|
||||||
border: 1px solid rgba(255, 255, 255, .1);
|
|
||||||
|
|
||||||
+ .code-toolbar,
|
|
||||||
+ .highlight,
|
|
||||||
+ .highlight .code-toolbar {
|
|
||||||
border-top: 0;
|
|
||||||
margin-top: calc(-1 * var(--code-margin));
|
|
||||||
}
|
|
||||||
|
|
||||||
pre, code {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
display: block;
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .toolbar {
|
|
||||||
button {
|
|
||||||
font-size: .8em !important;
|
|
||||||
background: hsla(0,0%,87.8%,.2) !important;
|
|
||||||
color: #bbb !important;
|
|
||||||
box-shadow: 0 2px 0 0 rgba(0,0,0,.2) !important;
|
|
||||||
border-radius: 0 !important;
|
|
||||||
margin: 6px !important;
|
|
||||||
padding: 10px !important;
|
|
||||||
user-select:none
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
377
themes/terminal/assets/css/terminal.css
Normal file
|
|
@ -0,0 +1,377 @@
|
||||||
|
@import url("https://fonts.googleapis.com/css2?family=Fira+Code&family=Fira+Code:wght@400;700&display=swap");
|
||||||
|
|
||||||
|
:root {
|
||||||
|
--background: #1a170f;
|
||||||
|
--foreground: #eceae5;
|
||||||
|
--accent: #eec35e;
|
||||||
|
--font-size: 1rem;
|
||||||
|
--line-height: 1.54rem;
|
||||||
|
--radius: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*:before,
|
||||||
|
*:after {
|
||||||
|
box-sizing: inherit;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-family:
|
||||||
|
"Fira Code",
|
||||||
|
Monaco,
|
||||||
|
Consolas,
|
||||||
|
"Ubuntu Mono",
|
||||||
|
monospace;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: var(--line-height);
|
||||||
|
letter-spacing: -0.02em;
|
||||||
|
background-color: var(--background);
|
||||||
|
color: var(--foreground);
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
font-feature-settings: "liga", "tnum", "zero", "ss01", "locl";
|
||||||
|
font-variant-ligatures: contextual;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
::placeholder {
|
||||||
|
color: color-mix(in srgb var(--foreground) 50%, black);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2 {
|
||||||
|
font-size: calc(var(--font-size) * 1.1);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-decoration: underline;
|
||||||
|
text-decoration-thickness: 2px;
|
||||||
|
text-underline-offset: calc(var(--font-size) * 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
font-size: calc(var(--font-size) * 1.1);
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6,
|
||||||
|
p,
|
||||||
|
ul,
|
||||||
|
ol,
|
||||||
|
img,
|
||||||
|
figure,
|
||||||
|
video,
|
||||||
|
table {
|
||||||
|
margin: calc(var(--line-height) * 1.2) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
position: relative;
|
||||||
|
font: inherit;
|
||||||
|
font-weight: bold;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
background: transparent;
|
||||||
|
color: var(--accent);
|
||||||
|
padding: 5px 18px;
|
||||||
|
border: 4px solid var(--accent);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
transition: background 0.15s linear;
|
||||||
|
appearance: none;
|
||||||
|
cursor: pointer;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background: color-mix(in srgb, var(--accent) 15%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus-visible,
|
||||||
|
a:focus-visible {
|
||||||
|
outline: 1px solid var(--accent);
|
||||||
|
outline-offset: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
display: inline-block;
|
||||||
|
border: 2px solid var(--foreground);
|
||||||
|
border-radius: calc(var(--radius) * 1.6);
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset *:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset input,
|
||||||
|
fieldset select,
|
||||||
|
fieldset textarea,
|
||||||
|
fieldset label,
|
||||||
|
fieldset button {
|
||||||
|
margin-top: calc(var(--line-height) * 0.5);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
label input {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
textarea,
|
||||||
|
select {
|
||||||
|
background: transparent;
|
||||||
|
color: var(--foreground);
|
||||||
|
border: 1px solid var(--foreground);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 10px;
|
||||||
|
font: inherit;
|
||||||
|
appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus-visible,
|
||||||
|
input:active,
|
||||||
|
textarea:focus-visible,
|
||||||
|
textarea:active,
|
||||||
|
select:focus-visible,
|
||||||
|
select:active {
|
||||||
|
border-color: var(--accent);
|
||||||
|
outline: 1px solid var(--accent);
|
||||||
|
outline-offset: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:active,
|
||||||
|
textarea:active,
|
||||||
|
select:active {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
45deg,
|
||||||
|
transparent 50%,
|
||||||
|
var(--foreground) 50%
|
||||||
|
),
|
||||||
|
linear-gradient(135deg, var(--foreground) 50%, transparent 50%);
|
||||||
|
background-position: calc(100% - 20px), calc(100% - 1em);
|
||||||
|
background-size:
|
||||||
|
5px 5px,
|
||||||
|
5px 5px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
padding-right: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
select option {
|
||||||
|
background: var(--background);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 10px;
|
||||||
|
box-shadow: inset 0 0 0 3px var(--background);
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"]:checked {
|
||||||
|
background: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
display: block;
|
||||||
|
max-width: 100%;
|
||||||
|
border: 8px solid var(--accent);
|
||||||
|
border-radius: var(--radius);
|
||||||
|
padding: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure img,
|
||||||
|
figure video {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure figcaption {
|
||||||
|
background: var(--accent);
|
||||||
|
color: var(--background);
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: normal;
|
||||||
|
margin-top: -8px;
|
||||||
|
border-radius: 0 0 var(--radius) var(--radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul,
|
||||||
|
ol {
|
||||||
|
margin-left: 4ch;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul ul,
|
||||||
|
ul ol,
|
||||||
|
ol ul,
|
||||||
|
ol ol {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li::marker {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li,
|
||||||
|
ol li {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd {
|
||||||
|
font-family:
|
||||||
|
"Fira Code",
|
||||||
|
Monaco,
|
||||||
|
Consolas,
|
||||||
|
Ubuntu Mono,
|
||||||
|
monospace !important;
|
||||||
|
font-feature-settings: normal;
|
||||||
|
background: color-mix(in srgb, var(--foreground) 5%, transparent);
|
||||||
|
color: var(--accent);
|
||||||
|
padding: 1px 6px;
|
||||||
|
margin: 0 2px;
|
||||||
|
font-size: 0.95rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
border-top: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
|
||||||
|
border-left: 1px solid var(--accent);
|
||||||
|
border-right: 1px solid var(--accent);
|
||||||
|
border-bottom: 4px solid var(--accent);
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
code code {
|
||||||
|
background: transparent;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
tab-size: 4;
|
||||||
|
background: color-mix(in srgb, var(--foreground) 5%, transparent) !important;
|
||||||
|
color: var(--foreground);
|
||||||
|
padding: 20px 10px;
|
||||||
|
font-size: 0.95rem !important;
|
||||||
|
overflow: auto;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code {
|
||||||
|
background: none !important;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: inherit;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr {
|
||||||
|
position: relative;
|
||||||
|
text-decoration-style: wavy;
|
||||||
|
text-decoration-color: var(--accent);
|
||||||
|
cursor: help;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background: color-mix(in srgb, var(--accent) 45%, transparent);
|
||||||
|
color: var(--foreground);
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
position: relative;
|
||||||
|
border-top: 1px solid var(--accent);
|
||||||
|
border-bottom: 1px solid var(--accent);
|
||||||
|
margin: 0;
|
||||||
|
padding: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote:before {
|
||||||
|
content: ">";
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
table-layout: auto;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
table,
|
||||||
|
th,
|
||||||
|
td {
|
||||||
|
border: 2px solid var(--foreground);
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
border-style: solid;
|
||||||
|
color: var(--foreground);
|
||||||
|
text-align: left;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
background: var(--accent);
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,19 @@
|
||||||
.terms {
|
/* _terms.scss */
|
||||||
h1 {
|
.terms h3 {
|
||||||
color: var(--accent);
|
font-size: initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
.terms ul {
|
||||||
font-size: initial;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.terms ul li a {
|
||||||
|
color: var(--accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
.terms ul li:not(:empty)::before {
|
||||||
|
content: "-";
|
||||||
|
position: absolute;
|
||||||
|
left: -20px;
|
||||||
|
color: var(--accent);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
:root {
|
|
||||||
--accent: #FFA86A;
|
|
||||||
--background: color-mod(var(--accent) blend(#1D1E28 98%));
|
|
||||||
--color: white;
|
|
||||||
--border-color: rgba(255, 255, 255, .1);
|
|
||||||
|
|
||||||
/* variables for js, must be the same as these in @custom-media queries */
|
|
||||||
--phoneWidth: (max-width: 684px);
|
|
||||||
--tabletWidth: (max-width: 900px);
|
|
||||||
}
|
|
||||||
|
|
||||||
@custom-media --phone (max-width: 684px);
|
|
||||||
@custom-media --tablet (max-width: 900px);
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
const mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");
|
|
||||||
const isMobile = () => window.matchMedia(mobileQuery).matches;
|
|
||||||
|
|
||||||
const languageSelector = document.querySelector(".language-selector-current");
|
|
||||||
const moreLanguagesContainer = document.querySelector(".language-selector__more");
|
|
||||||
|
|
||||||
document.body.addEventListener("click", () => {
|
|
||||||
if (
|
|
||||||
!isMobile() &&
|
|
||||||
moreLanguagesContainer &&
|
|
||||||
!moreLanguagesContainer.classList.contains("hidden")
|
|
||||||
) {
|
|
||||||
moreLanguagesContainer.classList.add("hidden");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
languageSelector &&
|
|
||||||
languageSelector.addEventListener("click", (e) => {
|
|
||||||
if (!isMobile()) {
|
|
||||||
e.stopPropagation();
|
|
||||||
moreLanguagesContainer.classList.toggle("hidden");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
@ -1,51 +1,44 @@
|
||||||
const container = document.querySelector(".container");
|
const container = document.querySelector(".container");
|
||||||
const menu = document.querySelector(".menu");
|
const allMenus = document.querySelectorAll(".menu");
|
||||||
const mobileMenuTrigger = document.querySelector(".menu-trigger");
|
|
||||||
const desktopMenu = document.querySelector(".menu__inner--desktop");
|
|
||||||
const desktopMenuTrigger = document.querySelector(".menu__sub-inner-more-trigger");
|
|
||||||
const menuMore = document.querySelector(".menu__sub-inner-more");
|
|
||||||
const mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");
|
|
||||||
const isMobile = () => window.matchMedia(mobileQuery).matches;
|
|
||||||
const handleMenuClasses = () => {
|
|
||||||
mobileMenuTrigger && mobileMenuTrigger.classList.toggle("hidden", !isMobile());
|
|
||||||
menu && menu.classList.toggle("hidden", isMobile());
|
|
||||||
menuMore && menuMore.classList.toggle("hidden", !isMobile());
|
|
||||||
};
|
|
||||||
|
|
||||||
// Common
|
|
||||||
|
|
||||||
menu && menu.addEventListener("click", e => e.stopPropagation());
|
|
||||||
menuMore && menuMore.addEventListener("click", e => e.stopPropagation());
|
|
||||||
|
|
||||||
handleMenuClasses();
|
|
||||||
|
|
||||||
|
// Hide menus on body click
|
||||||
document.body.addEventListener("click", () => {
|
document.body.addEventListener("click", () => {
|
||||||
if (!isMobile() && menuMore && !menuMore.classList.contains("hidden")) {
|
allMenus.forEach(menu => {
|
||||||
menuMore.classList.add("hidden");
|
if (menu.classList.contains("open")) {
|
||||||
} else if (isMobile() && !menu.classList.contains("hidden")) {
|
menu.classList.remove("open");
|
||||||
menu.classList.add("hidden");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener("resize", handleMenuClasses);
|
|
||||||
|
|
||||||
// Mobile menu
|
|
||||||
|
|
||||||
mobileMenuTrigger &&
|
|
||||||
mobileMenuTrigger.addEventListener("click", e => {
|
|
||||||
e.stopPropagation();
|
|
||||||
menu && menu.classList.toggle("hidden");
|
|
||||||
});
|
|
||||||
|
|
||||||
// Desktop menu
|
|
||||||
|
|
||||||
desktopMenuTrigger &&
|
|
||||||
desktopMenuTrigger.addEventListener("click", e => {
|
|
||||||
e.stopPropagation();
|
|
||||||
menuMore && menuMore.classList.toggle("hidden");
|
|
||||||
|
|
||||||
if (menuMore.getBoundingClientRect().right > container.getBoundingClientRect().right) {
|
|
||||||
menuMore.style.left = "auto";
|
|
||||||
menuMore.style.right = 0;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Reset menus on resize
|
||||||
|
window.addEventListener("resize", () => {
|
||||||
|
allMenus.forEach(menu => {
|
||||||
|
menu.classList.remove("open");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Handle desktop menu
|
||||||
|
allMenus.forEach(menu => {
|
||||||
|
const trigger = menu.querySelector(".menu__trigger");
|
||||||
|
const dropdown = menu.querySelector(".menu__dropdown");
|
||||||
|
|
||||||
|
trigger.addEventListener("click", e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
if (menu.classList.contains("open")) {
|
||||||
|
menu.classList.remove("open");
|
||||||
|
} else {
|
||||||
|
// Close all menus...
|
||||||
|
allMenus.forEach(m => m.classList.remove("open"));
|
||||||
|
// ...before opening the current one
|
||||||
|
menu.classList.add("open");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dropdown.getBoundingClientRect().right > container.getBoundingClientRect().right) {
|
||||||
|
dropdown.style.left = "auto";
|
||||||
|
dropdown.style.right = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
dropdown.addEventListener("click", e => e.stopPropagation());
|
||||||
|
});
|
||||||
|
|
|
||||||
4
themes/terminal/config.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
[module]
|
||||||
|
[module.hugoVersion]
|
||||||
|
extended = true
|
||||||
|
min = '0.90.0'
|
||||||
|
|
@ -3,9 +3,11 @@ languageCode = "en-us"
|
||||||
theme = "hugo-theme-terminal"
|
theme = "hugo-theme-terminal"
|
||||||
paginate = 5
|
paginate = 5
|
||||||
|
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
contentTypeName = "posts"
|
contentTypeName = "posts"
|
||||||
themeColor = "orange"
|
|
||||||
showMenuItems = 2
|
showMenuItems = 2
|
||||||
fullWidthTheme = false
|
fullWidthTheme = false
|
||||||
centerTheme = false
|
centerTheme = false
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,8 @@ This theme is pretty basic and covers all of the essentials. All you have to do
|
||||||
|
|
||||||
The theme includes:
|
The theme includes:
|
||||||
|
|
||||||
- **5 duotone themes**, depending on your preferences (orange, red, blue, green, pink)
|
- fully customizable color schemes generated by [**terminal.css**](https://panr.github.io/terminal-css/).
|
||||||
- [**Fira Code**](https://github.com/tonsky/FiraCode) as default monospaced font. It's gorgeous!
|
- great reading experience thanks to [**Fira Code**](https://github.com/tonsky/FiraCode).
|
||||||
- **really nice, custom duotone** syntax highlighting based on [**PrismJS**](https://prismjs.com)
|
- nice code highlighting thanks to [**PrismJS**](https://prismjs.com) that matches the theme's color scheme.
|
||||||
- mobile friendly layout
|
|
||||||
|
|
||||||
So, there you have it... enjoy!
|
So, there you have it... enjoy!
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,139 @@
|
||||||
---
|
+++
|
||||||
title: "Showcase"
|
author = "Hugo Authors & Radek"
|
||||||
date: "2018-07-18"
|
title = "Showcase"
|
||||||
author: "Hello Robot"
|
date = "2019-03-11"
|
||||||
---
|
description = "Sample article showcasing basic styling and formatting for HTML elements."
|
||||||
|
+++
|
||||||
|
|
||||||
## Header 2
|
This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nec interdum metus. Aenean rutrum ligula sodales ex auctor, sed tempus dui mollis. Curabitur ipsum dui, aliquet nec commodo at, tristique eget ante. **Donec quis dolor nec nunc mollis interdum vel in purus**. Sed vitae leo scelerisque, sollicitudin elit sed, congue ante. In augue nisl, vestibulum commodo est a, tristique porttitor est. Proin laoreet iaculis ornare. Nullam ut neque quam.
|
## Headings
|
||||||
|
|
||||||
> Fusce pharetra suscipit orci nec tempor. Quisque vitae sem sit amet sem mollis consequat. Sed at imperdiet lorem. Vestibulum pharetra faucibus odio, ac feugiat tellus sollicitudin at. Pellentesque varius tristique mi imperdiet dapibus. Duis orci odio, sodales lacinia venenatis sit amet, feugiat et diam.
|
The following HTML `<h1>`—`<h6>` elements represent six levels of section headings. `<h1>` is the highest section level while `<h6>` is the lowest.
|
||||||
|
|
||||||
### Header 3
|
# H1
|
||||||
|
## H2
|
||||||
|
### H3
|
||||||
|
### H4
|
||||||
|
#### H5
|
||||||
|
##### H6
|
||||||
|
|
||||||
Nulla libero turpis, lacinia vitae cursus ut, auctor dictum nisl. Fusce varius felis nec sem ullamcorper, at convallis nisi vestibulum. Duis risus odio, porta sit amet placerat mollis, tincidunt non mauris. Suspendisse fringilla, `odio a dignissim pharetra`, est urna sollicitudin urna, eu scelerisque magna ex vitae tellus.
|
## Paragraph
|
||||||
|
|
||||||
```css
|
Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.
|
||||||
/* PostCSS code */
|
|
||||||
|
|
||||||
|
Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.
|
||||||
|
|
||||||
|
## Images
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Figure with a caption
|
||||||
|
|
||||||
|
{{< figure src="/img/terminal-theme.png" alt="Terminal Theme Preview" position="center" caption="Terminal Theme Preview" captionPosition="center" >}}
|
||||||
|
|
||||||
|
## Blockquotes
|
||||||
|
|
||||||
|
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
|
||||||
|
|
||||||
|
### Blockquote without attribution
|
||||||
|
|
||||||
|
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
||||||
|
> **Note** that you can use *Markdown syntax* within a blockquote.
|
||||||
|
|
||||||
|
### Blockquote with attribution
|
||||||
|
|
||||||
|
> Don't communicate by sharing memory, share memory by communicating.<br>
|
||||||
|
> — <cite>Rob Pike[^1]</cite>
|
||||||
|
|
||||||
|
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
|
||||||
|
|
||||||
|
## Buttons and links
|
||||||
|
|
||||||
|
<button>Button</button>
|
||||||
|
<a href="">Link</a>
|
||||||
|
<a href="" class="button inline">Link</a>
|
||||||
|
|
||||||
|
## Tables
|
||||||
|
|
||||||
|
Tables aren't part of the core Markdown spec, but Hugo supports supports them out-of-the-box.
|
||||||
|
|
||||||
|
Name | Age
|
||||||
|
--------|------
|
||||||
|
Bob | 27
|
||||||
|
Alice | 23
|
||||||
|
|
||||||
|
### Inline Markdown within tables
|
||||||
|
|
||||||
|
| Italics | Bold | Code |
|
||||||
|
| -------- | -------- | ------ |
|
||||||
|
| *italics* | **bold** | `code` |
|
||||||
|
|
||||||
|
## Forms
|
||||||
|
|
||||||
|
<fieldset>
|
||||||
|
<input type="text" placeholder="Type something" /><br />
|
||||||
|
<input type="number" placeholder="Insert number" /><br />
|
||||||
|
<input type="text" value="Input value" /><br />
|
||||||
|
<select>
|
||||||
|
<option value="1">Option 1</option>
|
||||||
|
<option value="2">Option 2</option>
|
||||||
|
<option value="3">Option 3</option>
|
||||||
|
</select><br />
|
||||||
|
<textarea placeholder="Insert a comment..."></textarea><br />
|
||||||
|
<input type="checkbox" /> I understand<br />
|
||||||
|
<button type="submi">Submit</button>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
## Code Blocks
|
||||||
|
|
||||||
|
### Code block with backticks
|
||||||
|
|
||||||
|
```html
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Example HTML5 Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Test</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Code block indented with four spaces
|
||||||
|
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Example HTML5 Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Test</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
### Code block with Hugo's internal highlight shortcode
|
||||||
|
|
||||||
|
{{< highlight html >}}
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Example HTML5 Document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Test</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
{{< /highlight >}}
|
||||||
|
|
||||||
|
### Code block with custom built-in `{{ < code > }}` shortcode
|
||||||
|
|
||||||
|
{{< code title="Hey, this is a code block title" language="css" >}}
|
||||||
pre {
|
pre {
|
||||||
background: #1a1a1d;
|
background: #1a1a1d;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
|
@ -36,49 +153,40 @@ pre {
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
{{< /code >}}
|
||||||
|
|
||||||
```js
|
## List Types
|
||||||
// JS code
|
|
||||||
|
|
||||||
const menuTrigger = document.querySelector('.menu-trigger')
|
### Ordered List
|
||||||
const menu = document.querySelector('.menu')
|
|
||||||
const mobileQuery = getComputedStyle(document.body).getPropertyValue('--phoneWidth')
|
|
||||||
const isMobile = () => window.matchMedia(mobileQuery).matches
|
|
||||||
const isMobileMenu = () => {
|
|
||||||
menuTrigger.classList.toggle('hidden', !isMobile())
|
|
||||||
menu.classList.toggle('hidden', isMobile())
|
|
||||||
}
|
|
||||||
|
|
||||||
isMobileMenu()
|
1. First item
|
||||||
|
2. Second item
|
||||||
|
3. Third item
|
||||||
|
|
||||||
menuTrigger.addEventListener('click', () => menu.classList.toggle('hidden'))
|
### Unordered List
|
||||||
|
|
||||||
window.addEventListener('resize', isMobileMenu)
|
* List item
|
||||||
```
|
* Another item
|
||||||
|
* And another item
|
||||||
|
|
||||||
```html
|
### Nested list
|
||||||
<!-- HTML code -->
|
|
||||||
|
|
||||||
<section id="main">
|
* Fruit
|
||||||
<div>
|
* Apple
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
* Orange
|
||||||
{{ range .Pages }}
|
* Banana
|
||||||
{{ .Render "summary"}}
|
* Dairy
|
||||||
{{ end }}
|
* Milk
|
||||||
</div>
|
* Cheese
|
||||||
</section>
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Header 4
|
## Other Elements — abbr, sub, sup, kbd, mark
|
||||||
|
|
||||||
Curabitur scelerisque felis viverra varius scelerisque. Ut enim libero, molestie gravida blandit at, mollis ornare tellus. Cras arcu mi, ultrices vel pulvinar vel, volutpat eu tortor. Nullam nec eros quis massa ultrices iaculis sed in metus. Praesent sollicitudin sem sit amet orci tempor gravida.
|
<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.
|
||||||
|
|
||||||
- Maecenas elementum vitae nibh vitae porttitor.
|
H<sub>2</sub>O
|
||||||
- Aenean consequat, risus ut cursus placerat, arcu nulla sodales risus, ut molestie tellus tellus et dui.
|
|
||||||
- Integer imperdiet turpis vitae lacus imperdiet, ut ornare ligula auctor. Integer in mi eu velit vehicula suscipit eget vulputate nulla.
|
|
||||||
- Etiam vitae enim quis velit lobortis placerat a ut sem.
|
|
||||||
- Curabitur lobortis ante sit amet orci pulvinar, sollicitudin viverra nunc accumsan.
|
|
||||||
- Praesent fermentum orci quis leo facilisis posuere.
|
|
||||||
|
|
||||||
Aliquam erat volutpat. In hac habitasse platea dictumst. Nunc ut tincidunt mauris. Sed at gravida risus, id semper magna. Nullam vitae enim mattis, sodales neque non, pharetra elit. Cras sit amet sagittis augue, et finibus turpis. Ut tempus tincidunt diam vel pharetra. Nulla porttitor odio sit amet nulla scelerisque, quis aliquam mi imperdiet. Sed tincidunt dui vel tellus vestibulum rhoncus. Donec tempus ultrices velit.
|
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
||||||
|
|
||||||
|
Press <kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd> to end the session.
|
||||||
|
|
||||||
|
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
||||||
|
|
|
||||||
3
themes/terminal/go.mod
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
module github.com/panr/hugo-theme-terminal/v4
|
||||||
|
|
||||||
|
go 1.19
|
||||||
|
Before Width: | Height: | Size: 438 KiB After Width: | Height: | Size: 84 KiB |
BIN
themes/terminal/images/terminal-css.png
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
themes/terminal/images/terminal-theme-old.png
Normal file
|
After Width: | Height: | Size: 438 KiB |
BIN
themes/terminal/images/terminal-theme.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 23 KiB |
|
|
@ -6,10 +6,10 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ partial "head.html" . }}
|
{{ partial "head.html" . }}
|
||||||
</head>
|
</head>
|
||||||
<body class="{{- ( or .Params.color $.Site.Params.ThemeColor ) -}}">
|
<body>
|
||||||
{{ $container := cond ($.Site.Params.FullWidthTheme | default false) "container full" (cond ($.Site.Params.CenterTheme | default false) "container center" "container") }}
|
{{ $container := cond ($.Site.Params.FullWidthTheme | default false) "container full" (cond ($.Site.Params.CenterTheme | default false) "container center" "container") }}
|
||||||
|
|
||||||
<div class="{{- $container -}}{{- cond ($.Site.Params.oneHeadingSize | default true) " headings--one-size" "" }}">
|
<div class="{{- $container -}}{{- cond ($.Site.Params.oneHeadingSize | default false) " headings--one-size" "" }}">
|
||||||
|
|
||||||
{{ partial "header.html" . }}
|
{{ partial "header.html" . }}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,17 +15,20 @@
|
||||||
{{ $paginator := .Paginate (where $PageContext.RegularPages "Type" $contentTypeName) }}
|
{{ $paginator := .Paginate (where $PageContext.RegularPages "Type" $contentTypeName) }}
|
||||||
|
|
||||||
{{ range $paginator.Pages }}
|
{{ range $paginator.Pages }}
|
||||||
<div class="post on-list">
|
<article class="post on-list">
|
||||||
<h1 class="post-title">
|
<h2 class="post-title">
|
||||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||||
</h1>
|
</h2>
|
||||||
|
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
<span class="post-date">
|
{{- if .Date -}}
|
||||||
{{ .Date.Format "2006-01-02" }}
|
<time class="post-date">
|
||||||
</span>
|
{{- .Date.Format "2006-01-02" -}}
|
||||||
{{ with .Params.Author }}
|
</time>
|
||||||
<span class="post-author">:: {{ . }}</span>
|
{{- end -}}
|
||||||
{{ end }}
|
{{- with .Params.Author -}}
|
||||||
|
<span class="post-author">{{ . }}</span>
|
||||||
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if .Params.tags }}
|
{{ if .Params.tags }}
|
||||||
|
|
@ -38,28 +41,26 @@
|
||||||
</span>
|
</span>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
{{ partial "cover.html" . }}
|
{{ partial "cover.html" . }}
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
<div class="post-content">
|
||||||
{{ if .Params.showFullContent }}
|
{{ if .Params.showFullContent }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ else if .Description }}
|
{{ else if .Description }}
|
||||||
{{ .Description | markdownify }}
|
<p>{{ .Description | markdownify }}</p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ .Summary | markdownify }}
|
{{ .Summary }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if not .Params.showFullContent }}
|
{{ if not .Params.showFullContent }}
|
||||||
<div>
|
<div>
|
||||||
<a class="read-more button"
|
<a class="read-more button inline" href="{{ .RelPermalink }}">{{ $.Site.Params.ReadMore }}</a>
|
||||||
href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a>
|
</div>
|
||||||
</div>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</article>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ partial "pagination.html" . }}
|
{{ partial "pagination.html" . }}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,19 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="posts">
|
<div class="posts">
|
||||||
{{ range .Paginator.Pages }}
|
{{ range .Paginator.Pages }}
|
||||||
<div class="post on-list">
|
<article class="post on-list">
|
||||||
<h1 class="post-title">
|
<h2 class="post-title">
|
||||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||||
</h1>
|
</h2>
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
<span class="post-date">
|
{{- if .Date -}}
|
||||||
{{ .Date.Format "2006-01-02" }}
|
<time class="post-date">
|
||||||
</span>
|
{{- .Date.Format "2006-01-02" -}}
|
||||||
{{ with .Params.Author }}
|
</time>
|
||||||
<span class="post-author">:: {{ . }}</span>
|
{{- end -}}
|
||||||
{{ end }}
|
{{- with .Params.Author -}}
|
||||||
|
<span class="post-author">{{- . -}}</span>
|
||||||
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if .Params.tags }}
|
{{ if .Params.tags }}
|
||||||
|
|
@ -31,25 +33,24 @@
|
||||||
|
|
||||||
{{ partial "cover.html" . }}
|
{{ partial "cover.html" . }}
|
||||||
|
|
||||||
|
|
||||||
<div class="post-content">
|
<div class="post-content">
|
||||||
{{ if .Params.showFullContent }}
|
{{ if .Params.showFullContent }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ else if .Description }}
|
{{ else if .Description }}
|
||||||
{{ .Description | markdownify }}
|
<p>{{ .Description | markdownify }}</p>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ .Summary | markdownify }}
|
{{ .Summary }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if not .Params.showFullContent }}
|
{{ if not .Params.showFullContent }}
|
||||||
<div>
|
<div>
|
||||||
<a class="read-more button"
|
<a class="read-more button inline" href="{{ .RelPermalink }}">{{ $.Site.Params.ReadMore }}</a>
|
||||||
href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a>
|
</div>
|
||||||
</div>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</article>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ partial "pagination.html" . }}
|
{{ partial "pagination.html" . }}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,31 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<div class="post">
|
<article class="post">
|
||||||
<h1 class="post-title">
|
<h1 class="post-title">
|
||||||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
|
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||||
|
</h1>
|
||||||
<div class="post-meta">
|
<div class="post-meta">
|
||||||
{{ if .Params.Date }}
|
{{- if .Date -}}
|
||||||
<span class="post-date">
|
<time class="post-date">
|
||||||
{{ .Date.Format "2006-01-02" }}
|
{{- .Date.Format "2006-01-02" -}}
|
||||||
{{ if $.Site.Params.showLastUpdated }}
|
{{- if $.Site.Params.showLastUpdated -}}
|
||||||
[{{or $.Site.Params.updatedDatePrefix "Updated"}}: {{ .Lastmod.Format "2006-01-02" }}]
|
[{{- or $.Site.Params.updatedDatePrefix "Updated" -}} :: {{- .Lastmod.Format "2006-01-02" -}}]
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
</span>
|
</time>
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
{{ with .Params.Author }}
|
{{- with .Params.Author -}}
|
||||||
<span class="post-author">:: {{ . }}</span>
|
<span class="post-author">{{ . }}</span>
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
{{ if and (.Param "readingTime") (eq (.Param "readingTime") true) }}
|
{{- if and (.Param "readingTime") (eq (.Param "readingTime") true) -}}
|
||||||
<span class="post-reading-time">:: {{ .ReadingTime }} min read ({{ .WordCount }} words)</span>
|
<span class="post-reading-time">{{ .ReadingTime }} {{ $.Site.Params.minuteReadingTime | default "min read" }} ({{ .WordCount }} {{ $.Site.Params.words | default "words" }})</span>
|
||||||
{{ end }}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if .Params.tags }}
|
{{ if .Params.tags }}
|
||||||
<span class="post-tags">
|
<span class="post-tags">
|
||||||
{{ range .Params.tags }}
|
{{ range .Params.tags }}
|
||||||
#<a href="{{ (urlize (printf "tags/%s/" .)) | absLangURL }}">{{ . }}</a>
|
#<a href="{{ (urlize (printf "tags/%s/" .)) | absLangURL }}">{{ . }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</span>
|
</span>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ partial "cover.html" . }}
|
{{ partial "cover.html" . }}
|
||||||
|
|
||||||
|
|
@ -40,17 +41,17 @@
|
||||||
<div class="post-content">
|
<div class="post-content">
|
||||||
{{- with .Content -}}
|
{{- with .Content -}}
|
||||||
<div>
|
<div>
|
||||||
{{ . | replaceRE "(<h[1-9] id=\"([^\"]+)\".+)(</h[1-9]+>)" `${1}<a href="#${2}" class="hanchor" ariaLabel="Anchor">⌗</a> ${3}` | safeHTML }}
|
{{ . | replaceRE "(<h[1-9] id=\"([^\"]+)\".+)(</h[1-9]+>)" `${1}<a href="#${2}" class="hanchor" ariaLabel="Anchor">#</a> ${3}` | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ if eq .Type $.Site.Params.contentTypeName }}
|
{{ if eq .Type $.Site.Params.contentTypeName }}
|
||||||
{{ partial "posts_pagination.html" . }}
|
{{ partial "posts_pagination.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if not (.Params.hideComments | default false) }}
|
{{ if not (.Params.hideComments | default false) }}
|
||||||
{{ partial "comments.html" . }}
|
{{ partial "comments.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</article>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
57
themes/terminal/layouts/_default/term.html
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<h1>Posts for: #{{ .Title }}</h1>
|
||||||
|
{{ with .Content }}
|
||||||
|
<div class="index-content">
|
||||||
|
{{ . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
<div class="posts">
|
||||||
|
{{ range .Paginator.Pages }}
|
||||||
|
<article class="post on-list">
|
||||||
|
<h1 class="post-title">
|
||||||
|
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||||
|
</h1>
|
||||||
|
<div class="post-meta">
|
||||||
|
{{- if .Date -}}
|
||||||
|
<time class="post-date">
|
||||||
|
{{- .Date.Format "2006-01-02" -}}
|
||||||
|
</time>
|
||||||
|
{{- end -}}
|
||||||
|
{{- with .Params.Author -}}
|
||||||
|
<span class="post-author">{{- . -}}</span>
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if .Params.tags }}
|
||||||
|
<span class="post-tags">
|
||||||
|
{{ range .Params.tags }}
|
||||||
|
#<a href="{{ (urlize (printf "tags/%s/" . )) | absLangURL }}">
|
||||||
|
{{- . -}}
|
||||||
|
</a>
|
||||||
|
{{ end }}
|
||||||
|
</span>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ partial "cover.html" . }}
|
||||||
|
|
||||||
|
<div class="post-content">
|
||||||
|
{{ if .Params.showFullContent }}
|
||||||
|
{{ .Content }}
|
||||||
|
{{ else if .Description }}
|
||||||
|
<p>{{ .Description | markdownify }}</p>
|
||||||
|
{{ else }}
|
||||||
|
{{ .Summary }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if not .Params.showFullContent }}
|
||||||
|
<div>
|
||||||
|
<a class="read-more button inline" href="{{ .RelPermalink }}">{{ $.Site.Params.ReadMore }}</a>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ partial "pagination.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
@ -1,16 +1,21 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<div class="terms">
|
<div class="terms">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
|
{{ with .Content }}
|
||||||
|
<div class="index-content">
|
||||||
|
{{ . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
<ul>
|
<ul>
|
||||||
{{ $type := .Type }}
|
{{ $type := .Type }}
|
||||||
{{ range $key, $value := .Data.Terms.Alphabetical }}
|
{{ range $key, $value := .Data.Terms.Alphabetical }}
|
||||||
{{ $name := .Name }}
|
{{ $name := .Name }}
|
||||||
{{ $count := .Count }}
|
{{ $count := .Count }}
|
||||||
{{ with $.Site.GetPage (printf "/%s/%s" $type $name) }}
|
{{ with $.Site.GetPage (printf "/%s/%s" $type $name) }}
|
||||||
<li>
|
<li>
|
||||||
<a class="terms-title" href="{{ .Permalink }}">{{ .Name }} ({{ $count }})</a>
|
<a class="terms-title" href="{{ .Permalink }}">{{ .Name }} [{{ $count }}]</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -5,19 +5,19 @@
|
||||||
<span>{{ $.Site.Copyright | safeHTML }}</span>
|
<span>{{ $.Site.Copyright | safeHTML }}</span>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<div class="copyright">
|
<div class="copyright">
|
||||||
<span>© {{ now.Year }} Powered by <a href="http://gohugo.io">Hugo</a></span>
|
<span>© {{ now.Year }} Powered by <a href="https://gohugo.io">Hugo</a></span>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<span>:: Theme made by <a href="https://twitter.com/panr">panr</a></span>
|
<span>:: <a href="https://github.com/panr/hugo-theme-terminal" target="_blank">Theme</a> made by <a href="https://github.com/panr" target="_blank">panr</a></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script src="{{ "assets/main.js" | absURL }}"></script>
|
{{ $menu := resources.Get "js/menu.js" | js.Build }}
|
||||||
<script src="{{ "assets/prism.js" | absURL }}"></script>
|
{{ $prism := resources.Get "js/prism.js" | js.Build }}
|
||||||
|
|
||||||
{{ if $.Site.Params.showLanguageSelector }}
|
{{ $bundle := slice $menu $prism | resources.Concat "bundle.js" | resources.Minify }}
|
||||||
<script src="{{ "assets/languageSelector.js" | absURL }}"></script>
|
|
||||||
{{ end }}
|
<script type="text/javascript" src="{{ $bundle.RelPermalink }}"></script>
|
||||||
|
|
||||||
<!-- Extended footer section-->
|
<!-- Extended footer section-->
|
||||||
{{ partial "extended_footer.html" . }}
|
{{ partial "extended_footer.html" . }}
|
||||||
|
|
|
||||||
|
|
@ -2,31 +2,34 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.Subtitle }}{{ else if .Description}}{{ .Description | plainify }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
|
<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.Subtitle }}{{ else if .Description}}{{ .Description | plainify }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
|
||||||
<meta name="keywords" content="{{ with .Params.Keywords }}{{ delimit . ", " }}{{ else }}{{ $.Site.Params.Keywords }}{{ end }}" />
|
<meta name="keywords" content="{{ with .Params.Keywords }}{{ delimit . ", " }}{{ else }}{{ $.Site.Params.Keywords }}{{ end }}" />
|
||||||
<meta name="robots" content="noodp" />
|
{{ if .Params.noindex }}
|
||||||
|
{{ if or (eq (.Param "noindex") true) (eq (.Param "noindex") "true") }}
|
||||||
|
<meta name="robots" content="noindex" />
|
||||||
|
{{ end }}
|
||||||
|
{{ else }}
|
||||||
|
<meta name="robots" content="noodp" />
|
||||||
|
{{ end }}
|
||||||
<link rel="canonical" href="{{ .Permalink }}" />
|
<link rel="canonical" href="{{ .Permalink }}" />
|
||||||
|
|
||||||
{{ template "_internal/google_analytics.html" . }}
|
{{ template "_internal/google_analytics.html" . }}
|
||||||
|
|
||||||
<!-- Theme CSS -->
|
{{ $css := resources.Match "css/*.css" }}
|
||||||
<link rel="stylesheet" href="{{ "assets/style.css" | absURL }}">
|
{{ range $css }}
|
||||||
{{ if (isset .Params "color") }}
|
{{ $styles := . | minify | fingerprint }}
|
||||||
<link rel="stylesheet" href="{{ (printf "assets/%s.css" .Params.color) | absURL }}">
|
<link rel="stylesheet" href="{{ $styles.Permalink }}">
|
||||||
{{ else if and (ne $.Site.Params.ThemeColor "orange") (ne $.Site.Params.ThemeColor "color" "") }}
|
|
||||||
<link rel="stylesheet" href="{{ (printf "assets/%s.css" $.Site.Params.ThemeColor) | absURL }}">
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<!-- Custom Terminal.css styles -->
|
||||||
|
{{ if (fileExists "static/terminal.css") -}}
|
||||||
|
<link rel="stylesheet" href="{{ "terminal.css" | absURL }}">
|
||||||
|
{{- end }}
|
||||||
<!-- Custom CSS to override theme properties (/static/style.css) -->
|
<!-- Custom CSS to override theme properties (/static/style.css) -->
|
||||||
{{ if (fileExists "static/style.css") -}}
|
{{ if (fileExists "static/style.css") -}}
|
||||||
<link rel="stylesheet" href="{{ "style.css" | absURL }}">
|
<link rel="stylesheet" href="{{ "style.css" | absURL }}">
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
<!-- Icons -->
|
<!-- Icons -->
|
||||||
<link rel="apple-touch-icon" href="{{ "img/apple-touch-icon-192x192.png" | absURL }}">
|
<link rel="shortcut icon" href="{{ "favicon.png" | absURL }}">
|
||||||
{{ if isset $.Site.Params "favicon" }}
|
<link rel="apple-touch-icon" href="{{ "apple-touch-icon.png" | absURL }}">
|
||||||
<link rel="shortcut icon" href="{{ $.Site.Params.favicon | absURL }}">
|
|
||||||
{{ else }}
|
|
||||||
<link rel="shortcut icon" href="{{ printf "img/favicon/%s.png" ($.Site.Params.ThemeColor | default "orange") | absURL }}">
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- Twitter Card -->
|
<!-- Twitter Card -->
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
|
|
@ -44,17 +47,17 @@
|
||||||
<meta property="og:description" content="{{ if .IsHome }}{{ $.Site.Params.Subtitle }}{{ else if .Description}}{{ .Description | plainify }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
|
<meta property="og:description" content="{{ if .IsHome }}{{ $.Site.Params.Subtitle }}{{ else if .Description}}{{ .Description | plainify }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
|
||||||
<meta property="og:url" content="{{ .Permalink }}" />
|
<meta property="og:url" content="{{ .Permalink }}" />
|
||||||
<meta property="og:site_name" content="{{ $.Site.Title }}" />
|
<meta property="og:site_name" content="{{ $.Site.Title }}" />
|
||||||
{{ if and (not .IsHome) (isset .Params "cover") }}
|
{{ if (isset .Params "cover") }}
|
||||||
<meta property="og:image" content="{{ .Param "cover" | absURL }}">
|
{{ $pageCover := .Param "cover" }}
|
||||||
{{ else }}
|
{{ with (.Resources.GetMatch (.Param "cover")) }}
|
||||||
{{ if isset $.Site.Params "favicon" }}
|
{{ $pageCover = .RelPermalink }}
|
||||||
<meta property="og:image" content="{{ $.Site.Params.favicon | absURL }}">
|
|
||||||
{{ else }}
|
|
||||||
<meta property="og:image" content="{{ printf "img/favicon/%s.png" $.Site.Params.ThemeColor | absURL }}">
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<meta property="og:image" content="{{ $pageCover | absURL }}">
|
||||||
|
{{ else }}
|
||||||
|
<meta property="og:image" content="{{ "og-image.png" | absURL }}">
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<meta property="og:image:width" content="2048">
|
<meta property="og:image:width" content="1200">
|
||||||
<meta property="og:image:height" content="1024">
|
<meta property="og:image:height" content="627">
|
||||||
{{ range .Params.categories }}
|
{{ range .Params.categories }}
|
||||||
<meta property="article:section" content="{{ . }}" />
|
<meta property="article:section" content="{{ . }}" />
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,10 @@
|
||||||
{{ partial "logo.html" . }}
|
{{ partial "logo.html" . }}
|
||||||
</div>
|
</div>
|
||||||
{{ if len $.Site.Menus }}
|
{{ if len $.Site.Menus }}
|
||||||
<div class="menu-trigger">menu</div>
|
{{ partial "mobile-menu.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if and $.Site.Params.showLanguageSelector (len $.Site.Home.AllTranslations) }}
|
||||||
|
{{ partial "language-menu.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
{{ if len $.Site.Menus }}
|
{{ if len $.Site.Menus }}
|
||||||
|
|
|
||||||
10
themes/terminal/layouts/partials/language-menu.html
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<ul class="menu menu--desktop menu--language-selector">
|
||||||
|
<li class="menu__trigger">{{ .Language.LanguageName }} ▾</li>
|
||||||
|
<li>
|
||||||
|
<ul class="menu__dropdown">
|
||||||
|
{{ range $.Site.Home.AllTranslations }}
|
||||||
|
<li><a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
@ -1,60 +1,33 @@
|
||||||
<nav class="menu">
|
<nav class="navigation-menu">
|
||||||
<ul class="menu__inner menu__inner--desktop">
|
<ul class="navigation-menu__inner menu--desktop">
|
||||||
{{ if or $.Site.Params.showMenuItems ( eq .Site.Params.showMenuItems 0 ) }}
|
{{ if or $.Site.Params.showMenuItems ( eq .Site.Params.showMenuItems 0 ) }}
|
||||||
{{ range first $.Site.Params.showMenuItems $.Site.Menus.main }}
|
{{ range first $.Site.Params.showMenuItems $.Site.Menus.main }}
|
||||||
{{ if not .HasChildren }}
|
{{ if not .HasChildren }}
|
||||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
<li><a href="{{ .URL }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .Name }}</a></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if gt (len $.Site.Menus.main) $.Site.Params.showMenuItems }}
|
{{ if gt (len $.Site.Menus.main) $.Site.Params.showMenuItems }}
|
||||||
<ul class="menu__sub-inner">
|
<li>
|
||||||
<li class="menu__sub-inner-more-trigger">{{ $.Site.Params.MenuMore }} ▾</li>
|
<ul class="menu">
|
||||||
|
<li class="menu__trigger">{{ $.Site.Params.menuMore }} ▾</li>
|
||||||
<ul class="menu__sub-inner-more hidden">
|
<li>
|
||||||
{{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }}
|
<ul class="menu__dropdown">
|
||||||
{{ if not .HasChildren }}
|
{{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }}
|
||||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
{{ if not .HasChildren }}
|
||||||
{{ end }}
|
<li><a href="{{ .URL }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .Name }}</a></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ range $.Site.Menus.main }}
|
{{ range $.Site.Menus.main }}
|
||||||
{{ if not .HasChildren }}
|
{{ if not .HasChildren }}
|
||||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
<li><a href="{{ .URL }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .Name }}</a></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if and $.Site.Params.showLanguageSelector (len $.Site.Home.AllTranslations) }}
|
|
||||||
<div class="spacer"></div>
|
|
||||||
<ul class="language-selector">
|
|
||||||
<ul class="language-selector-current">
|
|
||||||
<li>{{ .Language.LanguageName }} ▾</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="language-selector__more hidden">
|
|
||||||
{{ range $.Site.Home.AllTranslations }}
|
|
||||||
<li><a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a></li>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<ul class="menu__inner menu__inner--mobile">
|
|
||||||
{{ range $.Site.Menus.main }}
|
|
||||||
{{ if not .HasChildren }}
|
|
||||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
{{ if and $.Site.Params.showLanguageSelector (len $.Site.Home.AllTranslations) }}
|
|
||||||
<hr />
|
|
||||||
{{ range $.Site.Home.AllTranslations }}
|
|
||||||
<li>
|
|
||||||
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
||||||
20
themes/terminal/layouts/partials/mobile-menu.html
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
<ul class="menu menu--mobile">
|
||||||
|
<li class="menu__trigger">Menu ▾</li>
|
||||||
|
<li>
|
||||||
|
<ul class="menu__dropdown">
|
||||||
|
{{ range $.Site.Menus.main }}
|
||||||
|
{{ if not .HasChildren }}
|
||||||
|
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ if and $.Site.Params.showLanguageSelector (len $.Site.Home.AllTranslations) }}
|
||||||
|
<hr />
|
||||||
|
{{ range $.Site.Home.AllTranslations }}
|
||||||
|
<li>
|
||||||
|
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
@ -1,20 +1,16 @@
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<div class="pagination__buttons">
|
<div class="pagination__buttons">
|
||||||
{{ if .Paginator.HasPrev }}
|
{{ if .Paginator.HasPrev }}
|
||||||
<span class="button previous">
|
<a href="{{ .Paginator.Prev.URL }}" class="button prev">
|
||||||
<a href="{{ .Paginator.Prev.URL }}">
|
<span class="button__icon">←</span>
|
||||||
<span class="button__icon">←</span>
|
<span class="button__text">{{ $.Site.Params.newerPosts | default "Newer posts" }}</span>
|
||||||
<span class="button__text">{{ $.Site.Params.newerPosts | default "Newer posts" }}</span>
|
</a>
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if .Paginator.HasNext }}
|
{{ if .Paginator.HasNext }}
|
||||||
<span class="button next">
|
<a href="{{ .Paginator.Next.URL }}" class="button next">
|
||||||
<a href="{{ .Paginator.Next.URL }}">
|
<span class="button__text">{{ $.Site.Params.olderPosts | default "Older posts" }}</span>
|
||||||
<span class="button__text">{{ $.Site.Params.olderPosts | default "Older posts" }}</span>
|
<span class="button__icon">→</span>
|
||||||
<span class="button__icon">→</span>
|
</a>
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,23 @@
|
||||||
{{ if or .NextInSection .PrevInSection }}
|
{{ if or .NextInSection .PrevInSection }}
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
<div class="pagination__title">
|
<div class="pagination__title">
|
||||||
<span class="pagination__title-h">{{ $.Site.Params.ReadOtherPosts }}</span>
|
<span class="pagination__title-h">{{ $.Site.Params.ReadOtherPosts }}</span>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div class="pagination__buttons">
|
<div class="pagination__buttons">
|
||||||
{{ if .NextInSection }}
|
{{ if .NextInSection }}
|
||||||
<span class="button previous">
|
<a href="{{ .NextInSection.Permalink }}" class="button inline prev">
|
||||||
<a href="{{ .NextInSection.Permalink }}">
|
{{ .NextInSection.Title }}
|
||||||
<span class="button__icon">←</span>
|
</a>
|
||||||
<span class="button__text">{{ .NextInSection.Title }}</span>
|
{{ end }}
|
||||||
</a>
|
{{ if and .NextInSection .PrevInSection }}
|
||||||
</span>
|
::
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if .PrevInSection }}
|
{{ if .PrevInSection }}
|
||||||
<span class="button next">
|
<a href="{{ .PrevInSection.Permalink }}" class="button inline next">
|
||||||
<a href="{{ .PrevInSection.Permalink }}">
|
{{ .PrevInSection.Title }}
|
||||||
<span class="button__text">{{ .PrevInSection.Title }}</span>
|
</a>
|
||||||
<span class="button__icon">→</span>
|
{{ end }}
|
||||||
</a>
|
</div>
|
||||||
</span>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
{{ if .Get "src" }}
|
{{ if .Get "src" }}
|
||||||
<img src="{{ .Get "src" | safeURL }}" {{ with .Get "alt" }} alt="{{ . | plainify }}" {{ end }} class="{{ with .Get "position"}}{{ . }}{{ else -}} left {{- end }}" {{ with .Get "style" }} style="{{ . | safeCSS }}" {{ end }} />
|
<img src="{{ .Get "src" | safeURL }}" {{ with .Get "alt" }} alt="{{ . | plainify }}" {{ end }} class="{{ with .Get "position"}}{{ . }}{{ else -}} left {{- end }}" {{ with .Get "style" }} style="{{ . | safeCSS }}" {{ end }} {{ with .Get "width" }} width="{{ . | plainify }}" {{ end }} {{ with .Get "height" }} height="{{ . | plainify }}" {{ end }} />
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@
|
||||||
>{{ $inner }}</code></pre>
|
>{{ $inner }}</code></pre>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<pre class="language-{{ .Get 0 }}">
|
<pre class="language-{{ .Get 0 }}">
|
||||||
<code class="language-{{ .Get 0 }}">{{ $inner }}</code></pre>
|
<code class="language-{{ .Get 0 }}">{{ $inner }}</code>
|
||||||
|
</pre>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
||||||
6743
themes/terminal/package-lock.json
generated
Normal file
39
themes/terminal/package.hugo.json
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"author": "Radosław Kozieł <@panr> <radoslaw.koziel@gmail.com>",
|
||||||
|
"browserslist": [
|
||||||
|
"last 2 versions",
|
||||||
|
">1%",
|
||||||
|
"not dead"
|
||||||
|
],
|
||||||
|
"comments": {
|
||||||
|
"dependencies": {
|
||||||
|
"yarn": "project"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"browserslist": "project",
|
||||||
|
"clipboard": "project",
|
||||||
|
"eslint-config-airbnb": "project",
|
||||||
|
"eslint-config-prettier": "project",
|
||||||
|
"eslint-plugin-jsx-a11y": "project",
|
||||||
|
"husky": "project"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"yarn": "^1.22.10"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"browserslist": "^4.16.5",
|
||||||
|
"clipboard": "^2.0.4",
|
||||||
|
"eslint-config-airbnb": "^18.2.0",
|
||||||
|
"eslint-config-prettier": "^8.1.0",
|
||||||
|
"eslint-plugin-jsx-a11y": "^6.2.1",
|
||||||
|
"husky": "^5.1.3"
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "index.js",
|
||||||
|
"name": "terminal",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo 'Test'"
|
||||||
|
},
|
||||||
|
"version": "2.1.0"
|
||||||
|
}
|
||||||
|
|
@ -1,60 +1,43 @@
|
||||||
{
|
{
|
||||||
"name": "terminal",
|
"name": "terminal",
|
||||||
"version": "2.1.0",
|
"version": "3.1.0",
|
||||||
"main": "index.js",
|
|
||||||
"author": "Radosław Kozieł <@panr> <radoslaw.koziel@gmail.com>",
|
"author": "Radosław Kozieł <@panr> <radoslaw.koziel@gmail.com>",
|
||||||
|
"main": "index.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo 'Test'"
|
||||||
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"last 2 versions",
|
"last 2 versions",
|
||||||
">1%",
|
">1%",
|
||||||
"not dead"
|
"not dead"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"comments": {
|
||||||
"dev": "webpack --mode=development --watch",
|
"dependencies": {
|
||||||
"build": "webpack --mode=production"
|
"yarn": "project"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.2.3",
|
"browserslist": "project",
|
||||||
"@babel/core": "^7.2.2",
|
"clipboard": "project",
|
||||||
"@babel/parser": "^7.4.2",
|
"eslint-config-airbnb": "project",
|
||||||
"@babel/plugin-transform-runtime": "^7.2.0",
|
"eslint-config-prettier": "project",
|
||||||
"@babel/preset-env": "^7.3.1",
|
"eslint-plugin-jsx-a11y": "project",
|
||||||
"@babel/preset-stage-2": "^7.0.0",
|
"husky": "project"
|
||||||
"angular-html-parser": "^1.2.0",
|
}
|
||||||
"babel-eslint": "^10.1.0",
|
|
||||||
"babel-loader": "^8.0.5",
|
|
||||||
"browserslist": "^4.16.5",
|
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
|
||||||
"clipboard": "^2.0.4",
|
|
||||||
"css-loader": "^5.1.3",
|
|
||||||
"cssnano": "^5.0.8",
|
|
||||||
"eslint-config-airbnb": "^18.2.0",
|
|
||||||
"eslint-config-prettier": "^8.1.0",
|
|
||||||
"eslint-plugin-jsx-a11y": "^6.2.1",
|
|
||||||
"file-loader": "^6.1.0",
|
|
||||||
"husky": "^5.1.3",
|
|
||||||
"mini-css-extract-plugin": "^1.3.9",
|
|
||||||
"postcss": "^8.2.10",
|
|
||||||
"postcss-browser-reporter": "^0.6.0",
|
|
||||||
"postcss-cli": "^8.3.1",
|
|
||||||
"postcss-color-function": "^4.0.1",
|
|
||||||
"postcss-color-mod-function": "^3.0.3",
|
|
||||||
"postcss-import": "^14.0.0",
|
|
||||||
"postcss-loader": "^5.2.0",
|
|
||||||
"postcss-mixins": "^7.0.3",
|
|
||||||
"postcss-nested": "^5.0.5",
|
|
||||||
"postcss-preset-env": "^6.7.0",
|
|
||||||
"postcss-reporter": "^7.0.2",
|
|
||||||
"postcss-url": "^10.1.3",
|
|
||||||
"prettier-eslint-cli": "^5.0.0",
|
|
||||||
"ramda": "^0.27.1",
|
|
||||||
"style-loader": "^2.0.0",
|
|
||||||
"terser-webpack-plugin": "^5.1.1",
|
|
||||||
"url-loader": "^4.1.0",
|
|
||||||
"webpack": "^5.27.1",
|
|
||||||
"webpack-cli": "^4.5.0"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"yarn": "^1.22.10"
|
"yarn": "^1.22.10"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"browserslist": "^4.16.5",
|
||||||
|
"clipboard": "^2.0.4",
|
||||||
|
"eslint": "^7.32.0",
|
||||||
|
"eslint-config-airbnb": "^18.2.0",
|
||||||
|
"eslint-config-prettier": "^8.1.0",
|
||||||
|
"eslint-plugin-jsx-a11y": "^6.2.1",
|
||||||
|
"husky": "^5.1.3",
|
||||||
|
"stylelint": "^14.14.1",
|
||||||
|
"stylelint-config-prettier-scss": "^0.0.1",
|
||||||
|
"stylelint-config-standard-scss": "^6.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B |
|
|
@ -1,4 +0,0 @@
|
||||||
(function(){var __webpack_modules__={"./assets/js/languageSelector.js":
|
|
||||||
/*!***************************************!*\
|
|
||||||
!*** ./assets/js/languageSelector.js ***!
|
|
||||||
\***************************************/function(){eval('var mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");\n\nvar isMobile = function isMobile() {\n return window.matchMedia(mobileQuery).matches;\n};\n\nvar languageSelector = document.querySelector(".language-selector-current");\nvar moreLanguagesContainer = document.querySelector(".language-selector__more");\ndocument.body.addEventListener("click", function () {\n if (!isMobile() && moreLanguagesContainer && !moreLanguagesContainer.classList.contains("hidden")) {\n moreLanguagesContainer.classList.add("hidden");\n }\n});\nlanguageSelector && languageSelector.addEventListener("click", function (e) {\n if (!isMobile()) {\n e.stopPropagation();\n moreLanguagesContainer.classList.toggle("hidden");\n }\n});\n\n//# sourceURL=webpack://terminal/./assets/js/languageSelector.js?')}},__webpack_exports__={};__webpack_modules__["./assets/js/languageSelector.js"]()})();
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
(function(){var __webpack_modules__={"./assets/js/menu.js":
|
|
||||||
/*!***************************!*\
|
|
||||||
!*** ./assets/js/menu.js ***!
|
|
||||||
\***************************/function(){eval('var container = document.querySelector(".container");\nvar menu = document.querySelector(".menu");\nvar mobileMenuTrigger = document.querySelector(".menu-trigger");\nvar desktopMenu = document.querySelector(".menu__inner--desktop");\nvar desktopMenuTrigger = document.querySelector(".menu__sub-inner-more-trigger");\nvar menuMore = document.querySelector(".menu__sub-inner-more");\nvar mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");\n\nvar isMobile = function isMobile() {\n return window.matchMedia(mobileQuery).matches;\n};\n\nvar handleMenuClasses = function handleMenuClasses() {\n mobileMenuTrigger && mobileMenuTrigger.classList.toggle("hidden", !isMobile());\n menu && menu.classList.toggle("hidden", isMobile());\n menuMore && menuMore.classList.toggle("hidden", !isMobile());\n}; // Common\n\n\nmenu && menu.addEventListener("click", function (e) {\n return e.stopPropagation();\n});\nmenuMore && menuMore.addEventListener("click", function (e) {\n return e.stopPropagation();\n});\nhandleMenuClasses();\ndocument.body.addEventListener("click", function () {\n if (!isMobile() && menuMore && !menuMore.classList.contains("hidden")) {\n menuMore.classList.add("hidden");\n } else if (isMobile() && !menu.classList.contains("hidden")) {\n menu.classList.add("hidden");\n }\n});\nwindow.addEventListener("resize", handleMenuClasses); // Mobile menu\n\nmobileMenuTrigger && mobileMenuTrigger.addEventListener("click", function (e) {\n e.stopPropagation();\n menu && menu.classList.toggle("hidden");\n}); // Desktop menu\n\ndesktopMenuTrigger && desktopMenuTrigger.addEventListener("click", function (e) {\n e.stopPropagation();\n menuMore && menuMore.classList.toggle("hidden");\n\n if (menuMore.getBoundingClientRect().right > container.getBoundingClientRect().right) {\n menuMore.style.left = "auto";\n menuMore.style.right = 0;\n }\n});\n\n//# sourceURL=webpack://terminal/./assets/js/menu.js?')}},__webpack_exports__={};__webpack_modules__["./assets/js/menu.js"]()})();
|
|
||||||
BIN
themes/terminal/static/favicon.png
Normal file
|
After Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 189 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 189 B |
BIN
themes/terminal/static/og-image.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
|
|
@ -1,11 +1,12 @@
|
||||||
name = "terminal"
|
name = "Terminal"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
licenselink = "https://github.com/panr/hugo-theme-terminal/blob/master/LICENSE.md"
|
licenselink = "https://github.com/panr/hugo-theme-terminal/blob/master/LICENSE.md"
|
||||||
description = "A simple, retro theme for Hugo."
|
description = "A simple, retro theme for Hugo."
|
||||||
homepage = "https://github.com/panr/hugo-theme-terminal/"
|
homepage = "https://github.com/panr/hugo-theme-terminal/"
|
||||||
|
demosite = "https://panr.github.io/hugo-theme-terminal-demo/"
|
||||||
tags = ["blog", "clean", "customizable", "dark", "highlighting", "minimal", "monotone", "multilingual", "personal", "responsive", "simple", "technical", "retro"]
|
tags = ["blog", "clean", "customizable", "dark", "highlighting", "minimal", "monotone", "multilingual", "personal", "responsive", "simple", "technical", "retro"]
|
||||||
features = ["blog", "shortcode", "syntax highlighting"]
|
features = ["blog", "shortcode", "syntax highlighting"]
|
||||||
min_version = 0.74
|
min_version = 0.90
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "panr"
|
name = "panr"
|
||||||
|
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
||||||
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
|
|
||||||
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
||||||
const TerserPlugin = require("terser-webpack-plugin");
|
|
||||||
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
const join = (...paths) => path.join(__dirname, ...paths);
|
|
||||||
|
|
||||||
module.exports = (env, { mode }) => ({
|
|
||||||
resolve: {
|
|
||||||
extensions: [".js", ".css"],
|
|
||||||
modules: ["assets", "node_modules"],
|
|
||||||
},
|
|
||||||
entry: {
|
|
||||||
main: join("assets", "js", "menu.js"),
|
|
||||||
languageSelector: join("assets", "js", "languageSelector.js"),
|
|
||||||
prism: join("assets", "js", "prism.js"),
|
|
||||||
style: join("assets", "css", "style.css"),
|
|
||||||
red: join("assets", "css", "color", "red.css"),
|
|
||||||
blue: join("assets", "css", "color", "blue.css"),
|
|
||||||
green: join("assets", "css", "color", "green.css"),
|
|
||||||
pink: join("assets", "css", "color", "pink.css"),
|
|
||||||
},
|
|
||||||
output: {
|
|
||||||
filename: "[name].js",
|
|
||||||
path: join("static/assets"),
|
|
||||||
publicPath: "",
|
|
||||||
},
|
|
||||||
performance: {
|
|
||||||
hints: false,
|
|
||||||
},
|
|
||||||
module: {
|
|
||||||
rules: [
|
|
||||||
{
|
|
||||||
test: /\.js$/,
|
|
||||||
exclude: /node_modules/,
|
|
||||||
use: {
|
|
||||||
loader: "babel-loader",
|
|
||||||
options: {
|
|
||||||
presets: ["@babel/preset-env"],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(png|jpg|woff|woff2|ttf|eot|svg)$/,
|
|
||||||
use: [
|
|
||||||
{
|
|
||||||
loader: "url-loader",
|
|
||||||
options: {
|
|
||||||
limit: 8192,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.css$/,
|
|
||||||
use: [
|
|
||||||
MiniCssExtractPlugin.loader,
|
|
||||||
{
|
|
||||||
loader: "css-loader",
|
|
||||||
options: {
|
|
||||||
modules: {
|
|
||||||
localIdentName: "[local]",
|
|
||||||
},
|
|
||||||
import: true,
|
|
||||||
importLoaders: 1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
"postcss-loader",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
optimization: {
|
|
||||||
splitChunks: {
|
|
||||||
name: "vendor",
|
|
||||||
minChunks: 2,
|
|
||||||
},
|
|
||||||
minimize: true,
|
|
||||||
minimizer: [
|
|
||||||
new TerserPlugin({
|
|
||||||
parallel: true,
|
|
||||||
extractComments: false,
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new CleanWebpackPlugin({
|
|
||||||
cleanOnceBeforeBuildPatterns: [join("static/assets")],
|
|
||||||
cleanAfterEveryBuildPatterns: [
|
|
||||||
join("static/assets/style.js"),
|
|
||||||
join("static/assets/blue.js"),
|
|
||||||
join("static/assets/green.js"),
|
|
||||||
join("static/assets/red.js"),
|
|
||||||
join("static/assets/pink.js"),
|
|
||||||
],
|
|
||||||
verbose: true,
|
|
||||||
}),
|
|
||||||
new MiniCssExtractPlugin({
|
|
||||||
filename: "[name].css",
|
|
||||||
chunkFilename: "[id].css",
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
});
|
|
||||||