Compare commits
	
		
			No commits in common. "master" and "webpack" have entirely different histories.
		
	
	
		
	
		
| @ -18,7 +18,7 @@ rules: | |||||||
|     - as-needed |     - as-needed | ||||||
|   semi: |   semi: | ||||||
|     - 2 |     - 2 | ||||||
|     - always |     - never | ||||||
|   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 | ||||||
|     - double |     - single | ||||||
|     - allowTemplateLiterals: true |     - allowTemplateLiterals: true | ||||||
|   no-underscore-dangle: 0 |   no-underscore-dangle: 0 | ||||||
|   object-curly-newline: 0 |   object-curly-newline: 0 | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @ -88,6 +88,3 @@ typings/ | |||||||
| .dynamodb/ | .dynamodb/ | ||||||
| 
 | 
 | ||||||
| # End of https://www.gitignore.io/api/node | # End of https://www.gitignore.io/api/node | ||||||
| public |  | ||||||
| resources |  | ||||||
| .hugo_build.lock |  | ||||||
|  | |||||||
							
								
								
									
										27
									
								
								.postcssrc.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,27 @@ | |||||||
|  | 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,7 +2,6 @@ | |||||||
|   "parser": "babel", |   "parser": "babel", | ||||||
|   "printWidth": 100, |   "printWidth": 100, | ||||||
|   "trailingComma": "all", |   "trailingComma": "all", | ||||||
|   "arrowParens": "avoid", |  | ||||||
|   "overrides": [{ |   "overrides": [{ | ||||||
|     "files": ".html", |     "files": ".html", | ||||||
|     "options": { |     "options": { | ||||||
|  | |||||||
| @ -1,10 +0,0 @@ | |||||||
| { |  | ||||||
|   "extends": [ |  | ||||||
|     "stylelint-config-standard-scss", |  | ||||||
|     "stylelint-config-prettier-scss" |  | ||||||
|   ], |  | ||||||
|   "rules": { |  | ||||||
|     "max-empty-lines": 1  |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
							
								
								
									
										122
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @ -1,20 +1,9 @@ | |||||||
| # Terminal | # Terminal | ||||||
| 
 | 
 | ||||||
| ## The theme is no longer maintained, but can still be used |  | ||||||
| 
 |  | ||||||
| Even if the repository is archived you can still use the theme, fork it, download it, expand it, etc. Remember that each Hugo theme is a module that can be modified to match your needs. The theme is fully "open" and it depends only on the internal engines implemented in Hugo. |  | ||||||
| 
 |  | ||||||
| The theme brings many useful features thanks to [all people that contributed to it](https://github.com/panr/hugo-theme-terminal/graphs/contributors) (I want to thank you all!). At the time of archiving the theme has reached 9th place on the [official Hugo Themes list](https://themes.gohugo.io/). This is huge! Thanks to you! |  | ||||||
| 
 |  | ||||||
| ---- |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| ### DEMO - https://hugo-terminal.now.sh/ | ### DEMO - https://hugo-terminal.now.sh/ | ||||||
| 
 | 
 | ||||||
| ### ⚠️ The theme needs at least Hugo **Extended** v0.90.x. |  | ||||||
| 
 |  | ||||||
| --- | --- | ||||||
| 
 | 
 | ||||||
| - [Features](#features) | - [Features](#features) | ||||||
| @ -25,11 +14,11 @@ The theme brings many useful features thanks to [all people that contributed to | |||||||
| - [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 edit the theme](#how-to-edit) | - [How to (safely) 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) | ||||||
| - [License](#license) | - [Licence](#licence) | ||||||
| 
 | 
 | ||||||
| ## Features | ## Features | ||||||
| 
 | 
 | ||||||
| @ -37,7 +26,6 @@ The theme brings many useful features thanks to [all people that contributed to | |||||||
| - [**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 | ||||||
| 
 | 
 | ||||||
| @ -93,64 +81,25 @@ 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 choose **one of the 3 possibilities** to install the theme: | You can also clone it directly to your Hugo folder: | ||||||
| 
 | 
 | ||||||
| 1. as Hugo Module | ``` | ||||||
| 2. as a standalone local directory | git clone -b webpack https://github.com/panr/hugo-theme-terminal.git themes/terminal | ||||||
| 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/v3 |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| and in your config file add: | 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: | ||||||
| 
 | 
 | ||||||
| ```toml | ``` | ||||||
| [module] | git submodule add -b webpack -f https://github.com/panr/hugo-theme-terminal.git themes/terminal | ||||||
|   # this is needed when you fetch the theme as a submodule to your repo. |  | ||||||
|   # replacements = "github.com/panr/hugo-theme-terminal -> themes/terminal" |  | ||||||
| [[module.imports]] |  | ||||||
|   path = 'github.com/panr/hugo-theme-terminal/v3' |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| 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/). | ⚠️ **The theme needs at least Hugo version 0.74.x**. | ||||||
| 
 |  | ||||||
| ### Install theme locally |  | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
| git clone https://github.com/panr/hugo-theme-terminal.git themes/terminal |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| 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 |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| 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 | ||||||
| 
 | 
 | ||||||
| ```bash | If you installed all needed `npm` dependencies, then you can run: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
| hugo server -t terminal | hugo server -t terminal | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| @ -163,8 +112,6 @@ 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 | ||||||
| 
 | 
 | ||||||
| @ -240,8 +187,6 @@ paginate = 5 | |||||||
|     olderPosts = "Older posts" |     olderPosts = "Older posts" | ||||||
|     missingContentMessage = "Page not found..." |     missingContentMessage = "Page not found..." | ||||||
|     missingBackButtonLabel = "Back to home page" |     missingBackButtonLabel = "Back to home page" | ||||||
|     minuteReadingTime = "min read" |  | ||||||
|     words = "words" |  | ||||||
| 
 | 
 | ||||||
|     [languages.en.params.logo] |     [languages.en.params.logo] | ||||||
|       logoText = "Terminal" |       logoText = "Terminal" | ||||||
| @ -256,14 +201,6 @@ paginate = 5 | |||||||
|         identifier = "showcase" |         identifier = "showcase" | ||||||
|         name = "Showcase" |         name = "Showcase" | ||||||
|         url = "/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 -> themes/terminal" |  | ||||||
| [[module.imports]] |  | ||||||
|   path = 'github.com/panr/hugo-theme-terminal' |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| 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). | 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). | ||||||
| @ -280,11 +217,39 @@ 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 edit the theme <a id="how-to-edit" /> | ## How to (safely) edit the theme <a id="how-to-edit" /> | ||||||
| 
 | 
 | ||||||
| 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. | 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 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. | To change something directly in the theme, you have to go to `themes/terminal` and modify the files. | ||||||
|  | 
 | ||||||
|  | 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" /> | ||||||
| 
 | 
 | ||||||
| @ -311,7 +276,6 @@ 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)! 🤗 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| ## License | ## License | ||||||
| 
 | 
 | ||||||
| Copyright © 2019-2022 Radosław Kozieł ([@panr](https://twitter.com/panr)) | Copyright © 2019-2022 Radosław Kozieł ([@panr](https://twitter.com/panr)) | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								USERS.md
									
									
									
									
									
								
							
							
						
						| @ -1,20 +1,27 @@ | |||||||
| # 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) | ||||||
| @ -23,9 +30,12 @@ | |||||||
| - 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://erisianrite.com/ **ErisianRite** (Coding, Engineering, Tools for Thought) | - https://wjdevschool.com/ **Wojciech Bogócki** (Making Things & Teaching / W&J Dev School) | ||||||
|  | - 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) | ||||||
| @ -33,6 +43,8 @@ | |||||||
| - 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) | ||||||
| @ -42,20 +54,16 @@ | |||||||
| - 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://undemalum.github.io/portfolio/ **Mateusz Konat** (Student) | ||||||
| - https://ku0hn.radio **Ben Kuhn** (Ham Radio Operator, InfoSec Engineer, Tinkerer) | - https://ku0hn.radio **Ben Kuhn** (Ham Radio Operator, InfoSec Engineer, Tinkerer) | ||||||
|  | - https://bg117.xyz/projects **bg117** (Student and Hobby Programmer) | ||||||
| - https://www.grumpymetalguy.com **GrumpyMetalGuy** (General Grumper and Developer) | - https://www.grumpymetalguy.com **GrumpyMetalGuy** (General Grumper and Developer) | ||||||
| - https://blog.jontes.page **Jonte** (general tech geek) | - https://blog.jontes.page **Jonte** (general tech geek) | ||||||
| - https://nazdarthegame.com/ **Michal Skoula** (Software Developer) | - 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: | ||||||
| @ -63,4 +71,3 @@ | |||||||
|  - https://radoslawkoziel.pl **Radek Kozieł** (Software Designer and Developer) |  - https://radoslawkoziel.pl **Radek Kozieł** (Software Designer and Developer) | ||||||
| 
 | 
 | ||||||
|  --> |  --> | ||||||
| 
 |  | ||||||
|  | |||||||
| @ -10,5 +10,4 @@ description = "" | |||||||
| showFullContent = false | showFullContent = false | ||||||
| readingTime = false | readingTime = false | ||||||
| hideComments = false | hideComments = false | ||||||
| color = "" #color from the theme settings |  | ||||||
| +++ | +++ | ||||||
|  | |||||||
| @ -12,13 +12,12 @@ a.button { | |||||||
|   align-items: center; |   align-items: center; | ||||||
|   justify-content: center; |   justify-content: center; | ||||||
|   padding: 8px 18px; |   padding: 8px 18px; | ||||||
|   margin: 5px 0; |   margin-bottom: 5px; | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|   text-align: center; |   text-align: center; | ||||||
|   border-radius: 8; |   border-radius: 0; | ||||||
|   border: 1px solid $accent; |   border: 1px solid var(--accent); | ||||||
|   background: $accent; |   background: var(--accent); | ||||||
|   color: $background; |  | ||||||
|   font: inherit; |   font: inherit; | ||||||
|   font-weight: bold; |   font-weight: bold; | ||||||
|   appearance: none; |   appearance: none; | ||||||
| @ -26,7 +25,7 @@ a.button { | |||||||
|   outline: none; |   outline: none; | ||||||
| 
 | 
 | ||||||
|   &:hover { |   &:hover { | ||||||
|     background: transparentize($accent, .1); |     background: color-mod(var(--accent) a(90%)); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /* variants */ |   /* variants */ | ||||||
| @ -64,7 +63,7 @@ a.read-more:hover, | |||||||
| a.read-more:active { | a.read-more:active { | ||||||
|   display: inline-flex; |   display: inline-flex; | ||||||
|   border: none; |   border: none; | ||||||
|   color: $accent; |   color: var(--accent); | ||||||
|   background: none; |   background: none; | ||||||
|   box-shadow: none; |   box-shadow: none; | ||||||
|   padding: 0; |   padding: 0; | ||||||
| @ -1,5 +1,5 @@ | |||||||
| .collapsable-code { | .collapsable-code { | ||||||
|   $border-color: mix($accent, #999, 90%); |   --border-color: color-mod(var(--accent) blend(#999 90%)); | ||||||
| 
 | 
 | ||||||
|   position: relative; |   position: relative; | ||||||
|   width: 100%; |   width: 100%; | ||||||
| @ -39,13 +39,13 @@ | |||||||
|     min-width: 30px; |     min-width: 30px; | ||||||
|     min-height: 30px; |     min-height: 30px; | ||||||
|     margin: 0; |     margin: 0; | ||||||
|     border-bottom: 1px solid $border-color; |     border-bottom: 1px solid var(--border-color); | ||||||
|     cursor: pointer; |     cursor: pointer; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &__title { |   &__title { | ||||||
|     flex: 1; |     flex: 1; | ||||||
|     color: $accent; |     color: var(--accent); | ||||||
|     padding: 3px 10px; |     padding: 3px 10px; | ||||||
|     text-overflow: ellipsis; |     text-overflow: ellipsis; | ||||||
|     white-space: nowrap; |     white-space: nowrap; | ||||||
| @ -53,15 +53,15 @@ | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &__language { |   &__language { | ||||||
|     color: $accent; |     color: var(--accent); | ||||||
|     border: 1px solid $border-color; |     border: 1px solid var(--border-color); | ||||||
|     border-bottom: none; |     border-bottom: none; | ||||||
|     text-transform: uppercase; |     text-transform: uppercase; | ||||||
|     padding: 3px 10px; |     padding: 3px 10px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &__toggle { |   &__toggle { | ||||||
|     color: $accent; |     color: var(--accent); | ||||||
|     font-size: 16px; |     font-size: 16px; | ||||||
|     padding: 3px 10px; |     padding: 3px 10px; | ||||||
| 
 | 
 | ||||||
							
								
								
									
										14
									
								
								assets/css/color/blue.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,14 @@ | |||||||
|  | @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 +0,0 @@ | |||||||
| $accent: #23B0FF; |  | ||||||
							
								
								
									
										14
									
								
								assets/css/color/green.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,14 @@ | |||||||
|  | @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 +0,0 @@ | |||||||
| $accent: #78E2A0; |  | ||||||
| @ -1 +0,0 @@ | |||||||
| $accent: #FFA86A; |  | ||||||
							
								
								
									
										14
									
								
								assets/css/color/pink.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,14 @@ | |||||||
|  | @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 +0,0 @@ | |||||||
| $accent: #EE72F1; |  | ||||||
							
								
								
									
										14
									
								
								assets/css/color/red.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,14 @@ | |||||||
|  | @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 +0,0 @@ | |||||||
| $accent: #FF6266; |  | ||||||
| @ -4,6 +4,7 @@ | |||||||
|   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 { | ||||||
| @ -12,4 +13,5 @@ | |||||||
|   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; | ||||||
| } | } | ||||||
| @ -11,7 +11,7 @@ | |||||||
|     width: 760px; |     width: 760px; | ||||||
|     max-width: 100%; |     max-width: 100%; | ||||||
| 
 | 
 | ||||||
|     @media ($tablet) { |     @media (--tablet) { | ||||||
|       flex-direction: column; |       flex-direction: column; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| @ -22,11 +22,10 @@ | |||||||
| 
 | 
 | ||||||
|   .copyright { |   .copyright { | ||||||
|     display: flex; |     display: flex; | ||||||
|     flex-flow: row wrap; |     flex-direction: row; | ||||||
|     flex: 1; |  | ||||||
|     align-items: center; |     align-items: center; | ||||||
|     font-size: 1rem; |     font-size: 1rem; | ||||||
|     justify-content: center; |     color: var(--light-color-secondary); | ||||||
| 
 | 
 | ||||||
|     &--user { |     &--user { | ||||||
|       margin: auto; |       margin: auto; | ||||||
| @ -35,10 +34,17 @@ | |||||||
| 
 | 
 | ||||||
|     & > *:first-child:not(:only-child) { |     & > *:first-child:not(:only-child) { | ||||||
|       margin-right: 10px; |       margin-right: 10px; | ||||||
|  | 
 | ||||||
|  |        @media (--tablet) { | ||||||
|  |         border: none; | ||||||
|  |         padding: 0; | ||||||
|  |         margin: 0; | ||||||
|  |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     span { |     @media (--tablet) { | ||||||
|       white-space: nowrap; |       flex-direction: column; | ||||||
|  |       margin-top: 10px; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
							
								
								
									
										30
									
								
								assets/css/form.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,30 @@ | |||||||
|  | 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,43 +0,0 @@ | |||||||
| input, textarea, select { |  | ||||||
|   background: transparent; |  | ||||||
|   color: $accent; |  | ||||||
|   border: 1px solid $accent; |  | ||||||
|   border-radius: 0; |  | ||||||
|   padding: 10px; |  | ||||||
|   margin: 5px 0; |  | ||||||
|   font: inherit; |  | ||||||
|   appearance: none; |  | ||||||
| 
 |  | ||||||
|   &:focus, :active { |  | ||||||
|     border-color: $color; |  | ||||||
|     outline: 1px solid $color; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &:active { |  | ||||||
|     box-shadow: none; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| select { |  | ||||||
|   background: $background; |  | ||||||
| 
 |  | ||||||
|   option { |  | ||||||
|     background: $background; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ::placeholder { |  | ||||||
|   color: transparentize($accent, .5); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| input { |  | ||||||
|   &[type="checkbox"] { |  | ||||||
|     vertical-align: middle; |  | ||||||
|     padding: 10px; |  | ||||||
|     box-shadow: inset 0 0 0 3px $background; |  | ||||||
| 
 |  | ||||||
|     &:checked { |  | ||||||
|       background: $accent; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
							
								
								
									
										162
									
								
								assets/css/header.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,162 @@ | |||||||
|  | @define-mixin menu { | ||||||
|  |   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 { | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   position: relative; | ||||||
|  | 
 | ||||||
|  |   @media print { | ||||||
|  |     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,34 +0,0 @@ | |||||||
| .header { |  | ||||||
|   display: flex; |  | ||||||
|   flex-direction: column; |  | ||||||
|   position: relative; |  | ||||||
| 
 |  | ||||||
|   @media print { |  | ||||||
|     display: none; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &__inner { |  | ||||||
|     display: flex; |  | ||||||
|     align-items: center; |  | ||||||
|     justify-content: space-between; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &__logo { |  | ||||||
|     display: flex; |  | ||||||
|     flex: 1; |  | ||||||
| 
 |  | ||||||
|     &:after { |  | ||||||
|       content: ''; |  | ||||||
|       background: repeating-linear-gradient(90deg, $accent, $accent 2px, transparent 0, transparent 10px); |  | ||||||
|       display: block; |  | ||||||
|       width: 100%; |  | ||||||
|       right: 10px; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     a { |  | ||||||
|       flex: 0 0 auto; |  | ||||||
|       max-width: 100%; |  | ||||||
|       text-decoration: none; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -2,7 +2,7 @@ | |||||||
|   display: flex; |   display: flex; | ||||||
|   align-items: center; |   align-items: center; | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|   background: $accent; |   background: var(--accent); | ||||||
|   color: black; |   color: black; | ||||||
|   padding: 5px 10px; |   padding: 5px 10px; | ||||||
| } | } | ||||||
| @ -15,8 +15,8 @@ body { | |||||||
|   font-size: 1rem; |   font-size: 1rem; | ||||||
|   line-height: 1.54; |   line-height: 1.54; | ||||||
|   letter-spacing: -0.02em; |   letter-spacing: -0.02em; | ||||||
|   background-color: $background; |   background-color: color-mod(var(--accent) blend(#1D1E28 98%)); | ||||||
|   color: $color; |   color: var(--color); | ||||||
|   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"; | ||||||
| @ -24,7 +24,7 @@ body { | |||||||
|   -webkit-overflow-scrolling: touch; |   -webkit-overflow-scrolling: touch; | ||||||
|   -webkit-text-size-adjust: 100%; |   -webkit-text-size-adjust: 100%; | ||||||
| 
 | 
 | ||||||
|   @media ($phone) { |   @media (--phone) { | ||||||
|     font-size: 1rem; |     font-size: 1rem; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -61,7 +61,7 @@ a { | |||||||
| 
 | 
 | ||||||
|   /* Waiting for a better times... */ |   /* Waiting for a better times... */ | ||||||
|   /* &:has(code) { |   /* &:has(code) { | ||||||
|     text-decoration-color: $accent; |     text-decoration-color: var(--accent); | ||||||
|   } */ |   } */ | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -109,8 +109,8 @@ figure { | |||||||
|     font-size: 14px; |     font-size: 14px; | ||||||
|     padding: 5px 10px; |     padding: 5px 10px; | ||||||
|     margin-top: 5px; |     margin-top: 5px; | ||||||
|     background: $accent; |     background: var(--accent); | ||||||
|     color: $background; |     color: var(--background); | ||||||
|     /* opacity: .8; */ |     /* opacity: .8; */ | ||||||
| 
 | 
 | ||||||
|     &.left { |     &.left { | ||||||
| @ -130,8 +130,8 @@ figure { | |||||||
| code, kbd { | code, kbd { | ||||||
|   font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace !important; |   font-family: 'Fira Code', Monaco, Consolas, Ubuntu Mono, monospace !important; | ||||||
|   font-feature-settings: normal; |   font-feature-settings: normal; | ||||||
|   background: transparentize($accent, .8); |   background: color-mod(var(--accent) a(20%)); | ||||||
|   color: $accent; |   color: var(--accent); | ||||||
|   padding: 1px 6px; |   padding: 1px 6px; | ||||||
|   margin: 0 2px; |   margin: 0 2px; | ||||||
|   font-size: .95rem; |   font-size: .95rem; | ||||||
| @ -157,7 +157,7 @@ pre { | |||||||
|     margin-top: -40px; |     margin-top: -40px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @media ($phone) { |   @media (--phone) { | ||||||
|     white-space: pre-wrap; |     white-space: pre-wrap; | ||||||
|     word-wrap: break-word; |     word-wrap: break-word; | ||||||
|   } |   } | ||||||
| @ -172,12 +172,12 @@ pre { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| blockquote { | blockquote { | ||||||
|   border-top: 1px solid $accent; |   border-top: 1px solid var(--accent); | ||||||
|   border-bottom: 1px solid $accent; |   border-bottom: 1px solid var(--accent); | ||||||
|   margin: 40px 0; |   margin: 40px 0; | ||||||
|   padding: 25px; |   padding: 25px; | ||||||
| 
 | 
 | ||||||
|   @media ($phone) { |   @media (--phone) { | ||||||
|     padding-right: 0; |     padding-right: 0; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -198,15 +198,15 @@ blockquote { | |||||||
|     display: block; |     display: block; | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     left: -25px; |     left: -25px; | ||||||
|     color: $accent; |     color: var(--accent); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &.twitter-tweet { |   &.twitter-tweet { | ||||||
|     position: relative; |     position: relative; | ||||||
|     background: transparentize($accent, .9); |     background: color-mod(var(--accent) a(10%)); | ||||||
|     font: inherit; |     font: inherit; | ||||||
|     color: inherit; |     color: inherit; | ||||||
|     border: 1px solid $accent; |     border: 1px solid var(--accent); | ||||||
|     padding-top: 60px; |     padding-top: 60px; | ||||||
| 
 | 
 | ||||||
|     p:before { |     p:before { | ||||||
| @ -217,12 +217,12 @@ blockquote { | |||||||
|       content: '> From Twitter:'; |       content: '> From Twitter:'; | ||||||
|       position: absolute; |       position: absolute; | ||||||
|       top: 20px; |       top: 20px; | ||||||
|       color: $accent; |       color: var(--accent); | ||||||
|       font-weight: bold; |       font-weight: bold; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     a { |     a { | ||||||
|       color: $accent; |       color: var(--accent); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -237,12 +237,12 @@ table { | |||||||
| table, | table, | ||||||
| th, | th, | ||||||
| td { | td { | ||||||
|   border: 1px dashed $accent; |   border: 1px dashed var(--accent); | ||||||
|   padding: 10px; |   padding: 10px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| th { | th { | ||||||
|   color: $accent; |   color: var(--accent); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ul, | ul, | ||||||
| @ -254,7 +254,7 @@ ol { | |||||||
|     position: relative; |     position: relative; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @media ($phone) { |   @media (--phone) { | ||||||
|     margin-left: 20px; |     margin-left: 20px; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -263,35 +263,35 @@ ol { | |||||||
|   list-style: none; |   list-style: none; | ||||||
|   counter-reset: li; |   counter-reset: li; | ||||||
| 
 | 
 | ||||||
|   > li { |   li { | ||||||
|     counter-increment: li; |     counter-increment: li; | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
|     &:before { |   li:before { | ||||||
|       content: counter(li); |     content: counter(li); | ||||||
|       position: absolute; |     position: absolute; | ||||||
|       right: calc(100% + 10px); |     right: calc(100% + 10px); | ||||||
|       color: $accent; |     color: var(--accent); | ||||||
|       display: inline-block; |     display: inline-block; | ||||||
|       text-align: right; |     text-align: right; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   ol { | ||||||
|  |     margin-left: 38px; | ||||||
|  | 
 | ||||||
|  |     li { | ||||||
|  |       counter-increment: li; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     > ol { |     li:before { | ||||||
|       margin-left: 38px; |       content: counters(li, ".") " "; | ||||||
| 
 |  | ||||||
|       > li { |  | ||||||
|         counter-increment: li; |  | ||||||
| 
 |  | ||||||
|         &:before { |  | ||||||
|           content: counters(li, ".") " "; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| mark { | mark { | ||||||
|   background: $accent; |   background: var(--accent); | ||||||
|   color: $background; |   color: var(--background); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .container { | .container { | ||||||
| @ -312,7 +312,7 @@ mark { | |||||||
|     max-width: 100%; |     max-width: 100%; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @media ($phone) { |   @media (--phone) { | ||||||
|     padding: 20px; |     padding: 20px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -333,7 +333,7 @@ mark { | |||||||
| hr { | hr { | ||||||
|   width: 100%; |   width: 100%; | ||||||
|   border: none; |   border: none; | ||||||
|   background: $border-color; |   background: var(--border-color); | ||||||
|   height: 1px; |   height: 1px; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -1,157 +0,0 @@ | |||||||
| @mixin menu { |  | ||||||
|   display: none; |  | ||||||
|   flex-direction: column; |  | ||||||
|   $shadow-color: transparentize($background, .2); |  | ||||||
|   $shadow: 0 10px $shadow-color, -10px 10px $shadow-color, 10px 10px $shadow-color; |  | ||||||
|   position: absolute; |  | ||||||
|   background: $background; |  | ||||||
|   box-shadow: $shadow; |  | ||||||
|   color: white; |  | ||||||
|   border: 2px solid; |  | ||||||
|   margin: 0; |  | ||||||
|   padding: 10px; |  | ||||||
|   top: 10px; |  | ||||||
|   left: 0; |  | ||||||
|   list-style: none; |  | ||||||
|   z-index: 99; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| @mixin header-menu-trigger { |  | ||||||
|   color: $accent; |  | ||||||
|   border: 2px solid; |  | ||||||
|   margin-left: 10px; |  | ||||||
|   height: 100%; |  | ||||||
|   padding: 3px 8px; |  | ||||||
|   margin-bottom: 0 !important; |  | ||||||
|   position: relative; |  | ||||||
|   cursor: pointer; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .navigation-menu { |  | ||||||
|   display: flex; |  | ||||||
|   align-items: flex-start; |  | ||||||
|   justify-content: space-between; |  | ||||||
|   margin: 20px 1px; |  | ||||||
| 
 |  | ||||||
|   @media ($phone) { |  | ||||||
|     margin: 0; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &__inner { |  | ||||||
|     display: flex; |  | ||||||
|     flex: 1; |  | ||||||
|     flex-wrap: wrap; |  | ||||||
|     list-style: none; |  | ||||||
|     margin: 0; |  | ||||||
|     padding: 0; |  | ||||||
| 
 |  | ||||||
|     > li { |  | ||||||
|       flex: 0 0 auto; |  | ||||||
|       margin-bottom: 10px; |  | ||||||
|       white-space: nowrap; |  | ||||||
| 
 |  | ||||||
|       &:not(:last-of-type) { |  | ||||||
|         margin-right: 20px; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     @media ($phone) { |  | ||||||
|       flex-direction: column; |  | ||||||
|       align-items: flex-start; |  | ||||||
|       padding: 0; |  | ||||||
| 
 |  | ||||||
|       li { |  | ||||||
|         margin: 0; |  | ||||||
|         padding: 5px; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   .spacer { |  | ||||||
|     flex-grow: 1 !important; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| .menu { |  | ||||||
|   display: flex; |  | ||||||
|   flex-direction: column; |  | ||||||
|   position: relative; |  | ||||||
|   list-style: none; |  | ||||||
|   padding: 0; |  | ||||||
|   margin: 0; |  | ||||||
| 
 |  | ||||||
|   &__trigger { |  | ||||||
|     margin-right: 0 !important; |  | ||||||
|     color: $accent; |  | ||||||
|     user-select: none; |  | ||||||
|     cursor: pointer; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &__dropdown { |  | ||||||
|     @include menu; |  | ||||||
| 
 |  | ||||||
|     .open & { |  | ||||||
|       display: flex; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     > li { |  | ||||||
|       flex: 0 0 auto; |  | ||||||
| 
 |  | ||||||
|       &:not(:last-of-type) { |  | ||||||
|         margin-bottom: 10px; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       a { |  | ||||||
|         display: flex; |  | ||||||
|         padding: 5px; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &--desktop { |  | ||||||
|     @media ($phone) { |  | ||||||
|       display: none |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &--mobile { |  | ||||||
|     .menu__trigger { |  | ||||||
|       @include header-menu-trigger; |  | ||||||
|       display: none; |  | ||||||
| 
 |  | ||||||
|       @media ($phone) { |  | ||||||
|         display: block; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     .menu__dropdown { |  | ||||||
|       @media ($phone) { |  | ||||||
|         left: auto; |  | ||||||
|         right: 0; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     li { |  | ||||||
|       flex: 0 0 auto; |  | ||||||
| 
 |  | ||||||
|       &:not(:last-of-type) { |  | ||||||
|         margin-bottom: 10px; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   &--language-selector { |  | ||||||
|     .menu__trigger { |  | ||||||
|       @include header-menu-trigger; |  | ||||||
| 
 |  | ||||||
|       @media ($phone) { |  | ||||||
|         display: none; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     .menu__dropdown { |  | ||||||
|       left: auto; |  | ||||||
|       right: 0; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -15,8 +15,7 @@ | |||||||
|       text-align: center; |       text-align: center; | ||||||
|       margin: 0 auto; |       margin: 0 auto; | ||||||
|       padding: 5px 10px; |       padding: 5px 10px; | ||||||
|       background: $background; |       background: color-mod(var(--accent) blend(#1D1E28 98%)); | ||||||
|       color: transparentize($color, .7); |  | ||||||
|       font-size: .8rem; |       font-size: .8rem; | ||||||
|       text-transform: uppercase; |       text-transform: uppercase; | ||||||
|       text-decoration: none; |       text-decoration: none; | ||||||
| @ -38,8 +37,6 @@ | |||||||
|     display: flex; |     display: flex; | ||||||
|     align-items: center; |     align-items: center; | ||||||
|     justify-content: center; |     justify-content: center; | ||||||
|     flex-flow: row wrap; |  | ||||||
|     gap: 10px; |  | ||||||
| 
 | 
 | ||||||
|     a { |     a { | ||||||
|       text-decoration: none; |       text-decoration: none; | ||||||
| @ -50,20 +47,22 @@ | |||||||
| .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; | ||||||
|  |   overflow: hidden; | ||||||
| 
 | 
 | ||||||
|   @media($phone) { |   + .button { | ||||||
|     flex: 1; |     margin-left: 10px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   a { |   a { | ||||||
|     display: flex; |     display: flex; | ||||||
|     justify-content: center; |  | ||||||
|     flex: 1; |  | ||||||
|     padding: 8px 16px; |     padding: 8px 16px; | ||||||
|     text-decoration: none; |     text-decoration: none; | ||||||
|     text-overflow: ellipsis; |     text-overflow: ellipsis; | ||||||
| @ -3,7 +3,7 @@ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .framed { | .framed { | ||||||
|   border: 1px solid $accent; |   border: 1px solid var(--accent); | ||||||
|   padding: 20px; |   padding: 20px; | ||||||
| 
 | 
 | ||||||
|   *:first-child { |   *:first-child { | ||||||
| @ -25,31 +25,27 @@ | |||||||
|   margin: 20px auto; |   margin: 20px auto; | ||||||
|   padding: 20px 0; |   padding: 20px 0; | ||||||
| 
 | 
 | ||||||
|  |   @media (--tablet) { | ||||||
|  |     max-width: 660px; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   &:not(:last-of-type) { |   &:not(:last-of-type) { | ||||||
|     border-bottom: 1px solid $border-color; |     border-bottom: 1px solid var(--border-color); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &-meta { |   &-meta { | ||||||
|     font-size: 1rem; |     font-size: 1rem; | ||||||
|     margin-bottom: 10px; |     margin-bottom: 10px; | ||||||
|     color: transparentize($accent, .3); |     color: color-mod(var(--accent) a(70%)); | ||||||
| 
 |  | ||||||
|     & > *:not(:first-child) { |  | ||||||
|       &::before { |  | ||||||
|         content: "::"; |  | ||||||
|         display: inline-block; |  | ||||||
|         margin: 0 8px; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &-title { |   &-title { | ||||||
|     $border: 3px dotted $accent; |     --border: 3px dotted var(--accent); | ||||||
|     position: relative; |     position: relative; | ||||||
|     color: $accent; |     color: var(--accent); | ||||||
|     margin: 0 0 15px; |     margin: 0 0 15px; | ||||||
|     padding-bottom: 15px; |     padding-bottom: 15px; | ||||||
|     border-bottom: $border; |     border-bottom: var(--border); | ||||||
| 
 | 
 | ||||||
|     &:after { |     &:after { | ||||||
|       content: ''; |       content: ''; | ||||||
| @ -57,7 +53,7 @@ | |||||||
|       bottom: 2px; |       bottom: 2px; | ||||||
|       display: block; |       display: block; | ||||||
|       width: 100%; |       width: 100%; | ||||||
|       border-bottom: $border; |       border-bottom: var(--border); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     a { |     a { | ||||||
| @ -81,12 +77,12 @@ | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   &-cover { |   &-cover { | ||||||
|     border: 20px solid $accent; |     border: 20px solid var(--accent); | ||||||
|     background: transparent; |     background: transparent; | ||||||
|     margin: 40px 0; |     margin: 40px 0; | ||||||
|     padding: 20px; |     padding: 20px; | ||||||
| 
 | 
 | ||||||
|     @media ($phone) { |     @media (--phone) { | ||||||
|       padding: 10px; |       padding: 10px; | ||||||
|       border-width: 10px; |       border-width: 10px; | ||||||
|     } |     } | ||||||
| @ -99,7 +95,7 @@ | |||||||
|       content: '-'; |       content: '-'; | ||||||
|       position: absolute; |       position: absolute; | ||||||
|       left: -20px; |       left: -20px; | ||||||
|       color: $accent; |       color: var(--accent); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -121,7 +117,7 @@ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .hanchor { | .hanchor { | ||||||
|   color: transparentize($accent, .1); |   color: color-mod(var(--accent) alpha(90%)); | ||||||
|   text-decoration: none; |   text-decoration: none; | ||||||
|   margin-left: 10px; |   margin-left: 10px; | ||||||
|   visibility: hidden; |   visibility: hidden; | ||||||
| @ -132,5 +128,5 @@ h1:hover a, h2:hover a, h3:hover a, h4:hover a { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .footnotes { | .footnotes { | ||||||
|   color: transparentize($color, .5); |   color: color-mod(var(--color) alpha(50%)); | ||||||
| } | } | ||||||
							
								
								
									
										18
									
								
								assets/css/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,18 @@ | |||||||
|  | @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,19 +0,0 @@ | |||||||
| @import "variables"; |  | ||||||
| 
 |  | ||||||
| @import "font"; |  | ||||||
| @import "buttons"; |  | ||||||
| @import "form"; |  | ||||||
| 
 |  | ||||||
| @import "header"; |  | ||||||
| @import "menu"; |  | ||||||
| @import "logo"; |  | ||||||
| @import "main"; |  | ||||||
| @import "post"; |  | ||||||
| @import "pagination"; |  | ||||||
| @import "footer"; |  | ||||||
| 
 |  | ||||||
| @import "prism"; |  | ||||||
| @import "syntax"; |  | ||||||
| @import "code"; |  | ||||||
| @import "terms"; |  | ||||||
| @import "gist"; |  | ||||||
| @ -17,7 +17,7 @@ code.language-scss, | |||||||
| .token.number, | .token.number, | ||||||
| .token.inserted, | .token.inserted, | ||||||
| .token.important { | .token.important { | ||||||
|   color: $accent !important; |   color: var(--accent) !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .token.tag-id, | .token.tag-id, | ||||||
| @ -34,7 +34,7 @@ code.language-scss, | |||||||
| .token.class-name, | .token.class-name, | ||||||
| .token.constant, | .token.constant, | ||||||
| .token.symbol { | .token.symbol { | ||||||
|   color: transparentize($accent, .3) !important; |   color: color-mod(var(--accent) a(70%)) !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .token.property, | .token.property, | ||||||
| @ -44,7 +44,7 @@ code.language-scss, | |||||||
| code.language-javascript, | code.language-javascript, | ||||||
| code.language-html, | code.language-html, | ||||||
| .command-line-prompt > span:before { | .command-line-prompt > span:before { | ||||||
|   color: mix($accent, #999, .9) !important; |   color: color-mod(var(--accent) blend(#999 90%)) !important; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .token.selector, | .token.selector, | ||||||
| @ -80,7 +80,7 @@ pre[class*="language-"] { | |||||||
|   right: 0; |   right: 0; | ||||||
|   padding: 0; |   padding: 0; | ||||||
|   margin: 0; |   margin: 0; | ||||||
|   background: transparentize(mix($accent, #999, 90%), .92); |   background: color-mod(var(--accent) blend(#999 90%) a(8%)); | ||||||
|   pointer-events: none; |   pointer-events: none; | ||||||
|   line-height: inherit; |   line-height: inherit; | ||||||
|   white-space: pre; |   white-space: pre; | ||||||
| @ -115,10 +115,13 @@ pre[class*="language-"] { | |||||||
|   content: none; |   content: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | :root { | ||||||
|  | 	--code-margin: 40px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .code-toolbar { | .code-toolbar { | ||||||
|   $code-margin: 40px; |  | ||||||
| 	position: relative; | 	position: relative; | ||||||
| 	margin: $code-margin 0; | 	margin: var(--code-margin) 0; | ||||||
| 	padding: 20px; | 	padding: 20px; | ||||||
| 	border: 1px solid rgba(255, 255, 255, .1); | 	border: 1px solid rgba(255, 255, 255, .1); | ||||||
| 
 | 
 | ||||||
| @ -126,7 +129,7 @@ pre[class*="language-"] { | |||||||
| 	+ .highlight, | 	+ .highlight, | ||||||
| 	+ .highlight .code-toolbar { | 	+ .highlight .code-toolbar { | ||||||
| 		border-top: 0; | 		border-top: 0; | ||||||
| 		margin-top: calc(-1 * $code-margin); | 		margin-top: calc(-1 * var(--code-margin)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	pre, code { | 	pre, code { | ||||||
							
								
								
									
										9
									
								
								assets/css/terms.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,9 @@ | |||||||
|  | .terms { | ||||||
|  |   h1 { | ||||||
|  |     color: var(--accent); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   h3 { | ||||||
|  |     font-size: initial; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -1,22 +0,0 @@ | |||||||
| .terms { |  | ||||||
|   h3 { |  | ||||||
|     font-size: initial; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   ul { |  | ||||||
|     list-style: none; |  | ||||||
| 
 |  | ||||||
|     li { |  | ||||||
|       a { |  | ||||||
|         color: $accent; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     li:not(:empty):before { |  | ||||||
|       content: '-'; |  | ||||||
|       position: absolute; |  | ||||||
|       left: -20px; |  | ||||||
|       color: $accent; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
							
								
								
									
										13
									
								
								assets/css/variables.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,13 @@ | |||||||
|  | :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,8 +0,0 @@ | |||||||
| /* COLOR VARIABLES */ |  | ||||||
| $background: mix($accent, #1D1E28, 2%); |  | ||||||
| $color: white; |  | ||||||
| $border-color: rgba(255, 255, 255, .1); |  | ||||||
| 
 |  | ||||||
| /* MEDIA QUERIES */ |  | ||||||
| $phone: "max-width: 684px"; |  | ||||||
| $tablet: "max-width: 900px"; |  | ||||||
							
								
								
									
										23
									
								
								assets/js/languageSelector.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,23 @@ | |||||||
|  | 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,44 +1,51 @@ | |||||||
| const container = document.querySelector(".container"); | const container = document.querySelector(".container"); | ||||||
| const allMenus = document.querySelectorAll(".menu"); | const menu = document.querySelector(".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", () => { | ||||||
|   allMenus.forEach(menu => { |   if (!isMobile() && menuMore && !menuMore.classList.contains("hidden")) { | ||||||
|     if (menu.classList.contains("open")) { |     menuMore.classList.add("hidden"); | ||||||
|       menu.classList.remove("open"); |   } else if (isMobile() && !menu.classList.contains("hidden")) { | ||||||
|     } |     menu.classList.add("hidden"); | ||||||
|   }); |   } | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| // Reset menus on resize
 | window.addEventListener("resize", handleMenuClasses); | ||||||
| window.addEventListener("resize", () => { |  | ||||||
|   allMenus.forEach(menu => { |  | ||||||
|     menu.classList.remove("open"); |  | ||||||
|   }); |  | ||||||
| }); |  | ||||||
| 
 | 
 | ||||||
| // Handle desktop menu
 | // Mobile menu
 | ||||||
| allMenus.forEach(menu => { |  | ||||||
|   const trigger = menu.querySelector(".menu__trigger"); |  | ||||||
|   const dropdown = menu.querySelector(".menu__dropdown"); |  | ||||||
| 
 | 
 | ||||||
|   trigger.addEventListener("click", e => { | mobileMenuTrigger && | ||||||
|  |   mobileMenuTrigger.addEventListener("click", e => { | ||||||
|     e.stopPropagation(); |     e.stopPropagation(); | ||||||
| 
 |     menu && menu.classList.toggle("hidden"); | ||||||
|     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()); | // 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; | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | |||||||
| @ -1,4 +0,0 @@ | |||||||
| [module] |  | ||||||
|   [module.hugoVersion] |  | ||||||
|     extended = true |  | ||||||
|     min = '0.90.0' |  | ||||||
| @ -19,16 +19,15 @@ | |||||||
|         <h1 class="post-title"> |         <h1 class="post-title"> | ||||||
|           <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> |           <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|         </h1> |         </h1> | ||||||
| 
 |  | ||||||
|         <div class="post-meta"> |         <div class="post-meta"> | ||||||
|           {{- if .Date -}} |           {{- with .Date }} | ||||||
|             <time class="post-date"> |             <time class="post-date"> | ||||||
|               {{- .Date.Format "2006-01-02" -}} |               {{ .Format "2006-01-02" }} | ||||||
|             </time> |             </time> | ||||||
|           {{- end -}} |           {{- end }} | ||||||
|           {{- with .Params.Author -}} |           {{ with .Params.Author }} | ||||||
|             <span class="post-author">{{ . }}</span> |             <span class="post-author">:: {{ . }}</span> | ||||||
|           {{- end -}} |           {{ end }} | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         {{ if .Params.tags }} |         {{ if .Params.tags }} | ||||||
| @ -41,26 +40,28 @@ | |||||||
|           </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 }} |             {{ .Description | markdownify }} | ||||||
|           {{ else }} |           {{ else }} | ||||||
|             {{ .Summary }} |             {{ .Summary | markdownify }} | ||||||
|           {{ end }} |           {{ end }} | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         {{ if not .Params.showFullContent }} |         {{ if not .Params.showFullContent }} | ||||||
|           <div> |         <div> | ||||||
|             <a class="read-more button" href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a> |           <a class="read-more button" | ||||||
|           </div> |             href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a> | ||||||
|  |         </div> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|       </article> |       </article> | ||||||
|     {{ end }} |     {{ end }} | ||||||
| 
 |  | ||||||
|     {{ partial "pagination.html" . }} |     {{ partial "pagination.html" . }} | ||||||
|   </div> |   </div> | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
| @ -11,14 +11,14 @@ | |||||||
|           <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> |           <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> | ||||||
|         </h1> |         </h1> | ||||||
|         <div class="post-meta"> |         <div class="post-meta"> | ||||||
|           {{- if .Date -}} |           {{- with .Date }} | ||||||
|             <time class="post-date"> |             <time class="post-date"> | ||||||
|               {{- .Date.Format "2006-01-02" -}} |               {{ .Format "2006-01-02" }} | ||||||
|             </time> |             </time> | ||||||
|           {{- end -}} |           {{- end }} | ||||||
|           {{- with .Params.Author -}} |           {{ with .Params.Author }} | ||||||
|             <span class="post-author">{{- . -}}</span> |             <span class="post-author">:: {{ . }}</span> | ||||||
|           {{- end -}} |           {{ end }} | ||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         {{ if .Params.tags }} |         {{ if .Params.tags }} | ||||||
| @ -33,6 +33,7 @@ | |||||||
| 
 | 
 | ||||||
|         {{ partial "cover.html" . }} |         {{ partial "cover.html" . }} | ||||||
| 
 | 
 | ||||||
|  |        | ||||||
|         <div class="post-content"> |         <div class="post-content"> | ||||||
|           {{ if .Params.showFullContent }} |           {{ if .Params.showFullContent }} | ||||||
|             {{ .Content }} |             {{ .Content }} | ||||||
| @ -44,13 +45,13 @@ | |||||||
|         </div> |         </div> | ||||||
| 
 | 
 | ||||||
|         {{ if not .Params.showFullContent }} |         {{ if not .Params.showFullContent }} | ||||||
|           <div> |         <div> | ||||||
|             <a class="read-more button" href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a> |           <a class="read-more button" | ||||||
|           </div> |             href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a> | ||||||
|  |         </div> | ||||||
|         {{ end }} |         {{ end }} | ||||||
|       </article> |       </article> | ||||||
|     {{ end }} |     {{ end }} | ||||||
| 
 |  | ||||||
|     {{ partial "pagination.html" . }} |     {{ partial "pagination.html" . }} | ||||||
|   </div> |   </div> | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
| @ -1,31 +1,30 @@ | |||||||
| {{ define "main" }} | {{ define "main" }} | ||||||
| <article class="post"> | <article class="post"> | ||||||
|   <h1 class="post-title"> |   <h1 class="post-title"> | ||||||
|     <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a> |     <a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1> | ||||||
|   </h1> |  | ||||||
|   <div class="post-meta"> |   <div class="post-meta"> | ||||||
|     {{- if .Date -}} |     {{ if .Params.Date }} | ||||||
|       <time class="post-date"> |       <span class="post-date"> | ||||||
|         {{- .Date.Format "2006-01-02" -}} |         <time>{{ .Date.Format "2006-01-02" }}</time> | ||||||
|         {{- if $.Site.Params.showLastUpdated -}} |         {{ if $.Site.Params.showLastUpdated }} | ||||||
|           [{{- or $.Site.Params.updatedDatePrefix "Updated" -}} :: {{- .Lastmod.Format "2006-01-02" -}}] |           [{{or $.Site.Params.updatedDatePrefix "Updated"}}: <time>{{ .Lastmod.Format "2006-01-02" }}</time>] | ||||||
|         {{- end -}} |         {{ end }} | ||||||
|       </time> |       </span> | ||||||
|     {{- 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 }} {{ $.Site.Params.minuteReadingTime | default "min read" }} ({{ .WordCount }} {{ $.Site.Params.words | default "words" }})</span> |       <span class="post-reading-time">:: {{ .ReadingTime }} min read ({{ .WordCount }} 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" . }} | ||||||
| 
 | 
 | ||||||
| @ -41,17 +40,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" aria-label="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 }} | ||||||
| </article> | </article> | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
| @ -1,57 +0,0 @@ | |||||||
| {{ 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 }} |  | ||||||
|             {{ .Description | markdownify }} |  | ||||||
|           {{ else }} |  | ||||||
|             {{ .Summary }} |  | ||||||
|           {{ end }} |  | ||||||
|         </div> |  | ||||||
| 
 |  | ||||||
|         {{ if not .Params.showFullContent }} |  | ||||||
|           <div> |  | ||||||
|             <a class="read-more button" href="{{.RelPermalink}}">{{ $.Site.Params.ReadMore }} →</a> |  | ||||||
|           </div> |  | ||||||
|         {{ end }} |  | ||||||
|       </article> |  | ||||||
|     {{ end }} |  | ||||||
| 
 |  | ||||||
|     {{ partial "pagination.html" . }} |  | ||||||
|   </div> |  | ||||||
| {{ end }} |  | ||||||
| @ -1,11 +1,6 @@ | |||||||
| {{ 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 }} | ||||||
| @ -13,7 +8,7 @@ | |||||||
|       {{ $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 }} | ||||||
|  | |||||||
| @ -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="https://gohugo.io">Hugo</a></span> |         <span>© {{ now.Year }} Powered by <a href="http://gohugo.io">Hugo</a></span> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|       <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> |         <span>:: Theme made by <a href="https://twitter.com/panr">panr</a></span> | ||||||
|       </div> |       </div> | ||||||
|   </div> |   </div> | ||||||
| </footer> | </footer> | ||||||
| 
 | 
 | ||||||
| {{ $menu := resources.Get "js/menu.js" | js.Build }} | <script src="{{ "assets/main.js" | absURL }}"></script> | ||||||
| {{ $prism := resources.Get "js/prism.js" | js.Build }} | <script src="{{ "assets/prism.js" | absURL }}"></script> | ||||||
| 
 | 
 | ||||||
| {{ $bundle := slice $menu $prism | resources.Concat "bundle.js" | resources.Minify }} | {{ if $.Site.Params.showLanguageSelector }} | ||||||
| 
 |   <script src="{{ "assets/languageSelector.js" | absURL }}"></script> | ||||||
| <script type="text/javascript" src="{{ $bundle.RelPermalink }}"></script> | {{ end }} | ||||||
| 
 | 
 | ||||||
| <!-- Extended footer section--> | <!-- Extended footer section--> | ||||||
| {{ partial "extended_footer.html" . }} | {{ partial "extended_footer.html" . }} | ||||||
|  | |||||||
| @ -2,31 +2,17 @@ | |||||||
| <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 }}" /> | ||||||
| {{ if .Params.noindex }} | <meta name="robots" content="noodp" /> | ||||||
|   {{ 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" . }} | ||||||
| 
 | 
 | ||||||
| {{ $defaultStyles := resources.Get "css/style.scss" }} | <!-- Theme CSS --> | ||||||
| <!-- Local Theme Variables --> | <link rel="stylesheet" href="{{ "assets/style.css" | absURL }}"> | ||||||
| {{ if and (isset .Params "color") (not (eq .Params.color "")) }} | {{ if (isset .Params "color") }} | ||||||
|   {{ $localColorCss := resources.Get (printf "css/color/%s.scss" .Params.color) }} |   <link rel="stylesheet" href="{{ (printf "assets/%s.css" .Params.color) | absURL }}"> | ||||||
|   {{ $localCss := slice $localColorCss $defaultStyles | resources.Concat (printf "css/%s-local.scss" .Params.color) }} | {{ else if and (ne $.Site.Params.ThemeColor "orange") (ne $.Site.Params.ThemeColor "color" "") }} | ||||||
|   {{ $localColorStyles := $localCss | resources.ToCSS }} |   <link rel="stylesheet" href="{{ (printf "assets/%s.css" $.Site.Params.ThemeColor) | absURL }}"> | ||||||
|   <link rel="stylesheet" href="{{ $localColorStyles.Permalink }}"> |  | ||||||
| {{ else }} |  | ||||||
|   <!-- Theme Variables --> |  | ||||||
|   {{ $colorCss := resources.Get (printf "css/color/%s.scss" ($.Site.Params.ThemeColor | default "orange")) }} |  | ||||||
|   {{ $css := slice $colorCss $defaultStyles | resources.Concat "css/base.scss" }} |  | ||||||
|   {{ $options := (dict "targetPath" "styles.css" "outputStyle" "compressed" "enableSourceMap" true "precision" 6 "includePaths" (slice "node_modules")) }} |  | ||||||
|   {{ $styles := $css | resources.ToCSS $options }} |  | ||||||
|   <link rel="stylesheet" href="{{ $styles.Permalink }}"> |  | ||||||
| {{ end }} | {{ end }} | ||||||
| 
 | 
 | ||||||
| <!-- Custom CSS to override theme properties (/static/style.css) --> | <!-- Custom CSS to override theme properties (/static/style.css) --> | ||||||
| @ -35,11 +21,11 @@ | |||||||
| {{- end }} | {{- end }} | ||||||
| 
 | 
 | ||||||
| <!-- Icons --> | <!-- Icons --> | ||||||
|  | <link rel="apple-touch-icon" href="{{ "img/apple-touch-icon-192x192.png" | absURL }}"> | ||||||
| {{ if isset $.Site.Params "favicon" }} | {{ if isset $.Site.Params "favicon" }} | ||||||
|   <link rel="shortcut icon" href="{{ $.Site.Params.favicon | absURL }}"> |   <link rel="shortcut icon" href="{{ $.Site.Params.favicon | absURL }}"> | ||||||
| {{ else }} | {{ else }} | ||||||
|   <link rel="shortcut icon" href="{{ printf "img/theme-colors/%s.png" (or .Params.color $.Site.Params.ThemeColor | default "orange") | absURL }}"> |   <link rel="shortcut icon" href="{{ printf "img/favicon/%s.png" ($.Site.Params.ThemeColor | default "orange") | absURL }}"> | ||||||
|   <link rel="apple-touch-icon" href="{{ printf "img/theme-colors/%s.png" (or .Params.color $.Site.Params.ThemeColor | default "orange") | absURL }}"> |  | ||||||
| {{ end }} | {{ end }} | ||||||
| 
 | 
 | ||||||
| <!-- Twitter Card --> | <!-- Twitter Card --> | ||||||
| @ -58,12 +44,8 @@ | |||||||
| <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 (isset .Params "cover") }} | {{ if and (not .IsHome) (isset .Params "cover") }} | ||||||
|   {{ $pageCover := .Param "cover" }} |   <meta property="og:image" content="{{ .Param "cover" | absURL }}"> | ||||||
|   {{ with (.Resources.GetMatch (.Param "cover")) }} |  | ||||||
|     {{ $pageCover = .RelPermalink }} |  | ||||||
|   {{ end }} |  | ||||||
|   <meta property="og:image" content="{{ $pageCover | absURL }}"> |  | ||||||
| {{ else }} | {{ else }} | ||||||
|   {{ if isset $.Site.Params "favicon" }} |   {{ if isset $.Site.Params "favicon" }} | ||||||
|     <meta property="og:image" content="{{ $.Site.Params.favicon | absURL }}"> |     <meta property="og:image" content="{{ $.Site.Params.favicon | absURL }}"> | ||||||
| @ -71,8 +53,8 @@ | |||||||
|     <meta property="og:image" content="{{ printf "img/favicon/%s.png" $.Site.Params.ThemeColor | absURL }}"> |     <meta property="og:image" content="{{ printf "img/favicon/%s.png" $.Site.Params.ThemeColor | absURL }}"> | ||||||
|   {{ end }} |   {{ end }} | ||||||
| {{ end }} | {{ end }} | ||||||
| <meta property="og:image:width" content="1200"> | <meta property="og:image:width" content="2048"> | ||||||
| <meta property="og:image:height" content="627"> | <meta property="og:image:height" content="1024"> | ||||||
| {{ range .Params.categories }} | {{ range .Params.categories }} | ||||||
|   <meta property="article:section" content="{{ . }}" /> |   <meta property="article:section" content="{{ . }}" /> | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
| @ -4,10 +4,7 @@ | |||||||
|       {{ partial "logo.html" . }} |       {{ partial "logo.html" . }} | ||||||
|     </div> |     </div> | ||||||
|     {{ if len $.Site.Menus }} |     {{ if len $.Site.Menus }} | ||||||
|       {{ partial "mobile-menu.html" . }} |       <div class="menu-trigger">menu</div> | ||||||
|     {{ 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 }} | ||||||
|  | |||||||
| @ -1,10 +0,0 @@ | |||||||
| <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,33 +1,60 @@ | |||||||
| <nav class="navigation-menu"> | <nav class="menu"> | ||||||
|   <ul class="navigation-menu__inner menu--desktop"> |   <ul class="menu__inner menu__inner--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 }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .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 }} | ||||||
|         <li> |         <ul class="menu__sub-inner"> | ||||||
|           <ul class="menu"> |           <li class="menu__sub-inner-more-trigger">{{ $.Site.Params.MenuMore }} ▾</li> | ||||||
|             <li class="menu__trigger">{{ $.Site.Params.MenuMore }} ▾</li> | 
 | ||||||
|             <li> |           <ul class="menu__sub-inner-more hidden"> | ||||||
|               <ul class="menu__dropdown"> |             {{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }} | ||||||
|                 {{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }} |               {{ if not .HasChildren }} | ||||||
|                   {{ if not .HasChildren }} |                 <li><a href="{{ .URL }}" {{ if .Params.NewTab }} target="_blank" {{ end }}>{{ .Name }}</a></li> | ||||||
|                     <li><a href="{{ .URL }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .Name }}</a></li> |               {{ end }} | ||||||
|                   {{ end }} |             {{ end }} | ||||||
|                 {{ end }} |  | ||||||
|               </ul> |  | ||||||
|             </li> |  | ||||||
|           </ul> |           </ul> | ||||||
|         </li> |         </ul> | ||||||
|       {{ end }} |       {{ end }} | ||||||
|     {{ else }} |     {{ else }} | ||||||
|       {{ range $.Site.Menus.main }} |       {{ range $.Site.Menus.main }} | ||||||
|         {{ if not .HasChildren }} |         {{ if not .HasChildren }} | ||||||
|           <li><a href="{{ .URL }}" {{ if .Params.NewTab -}} target="_blank" {{- end }}>{{ .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 }}" {{ if .Params.NewTab }} target="_blank" {{ end }}>{{ .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> | ||||||
|  | |||||||
| @ -1,20 +0,0 @@ | |||||||
| <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,16 +1,20 @@ | |||||||
| <div class="pagination"> | <div class="pagination"> | ||||||
|   <div class="pagination__buttons"> |   <div class="pagination__buttons"> | ||||||
|     {{ if .Paginator.HasPrev }} |     {{ if .Paginator.HasPrev }} | ||||||
|       <a href="{{ .Paginator.Prev.URL }}" class="button previous"> |       <span class="button previous"> | ||||||
|         <span class="button__icon">←</span> |         <a href="{{ .Paginator.Prev.URL }}"> | ||||||
|         <span class="button__text">{{ $.Site.Params.newerPosts | default "Newer posts" }}</span> |           <span class="button__icon">←</span> | ||||||
|       </a> |           <span class="button__text">{{ $.Site.Params.newerPosts | default "Newer posts" }}</span> | ||||||
|  |         </a> | ||||||
|  |       </span> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|     {{ if .Paginator.HasNext }} |     {{ if .Paginator.HasNext }} | ||||||
|       <a href="{{ .Paginator.Next.URL }}" class="button next"> |       <span class="button next"> | ||||||
|         <span class="button__text">{{ $.Site.Params.olderPosts | default "Older posts" }}</span> |         <a href="{{ .Paginator.Next.URL }}"> | ||||||
|         <span class="button__icon">→</span> |           <span class="button__text">{{ $.Site.Params.olderPosts | default "Older posts" }}</span> | ||||||
|       </a> |           <span class="button__icon">→</span> | ||||||
|  |         </a> | ||||||
|  |       </span> | ||||||
|     {{ end }} |     {{ end }} | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  | |||||||
| @ -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 }} {{ with .Get "width" }} width="{{ . | plainify }}" {{ end }} {{ with .Get "height" }} height="{{ . | plainify }}" {{ 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 }} /> | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
| @ -20,7 +20,6 @@ | |||||||
|       >{{ $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> |       <code class="language-{{ .Get 0 }}">{{ $inner }}</code></pre> | ||||||
|     </pre> |  | ||||||
|   {{ end }} |   {{ end }} | ||||||
| {{ end }} | {{ end }} | ||||||
|  | |||||||
							
								
								
									
										6743
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						| @ -1,39 +0,0 @@ | |||||||
| { |  | ||||||
|   "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" |  | ||||||
| } |  | ||||||
							
								
								
									
										65
									
								
								package.json
									
									
									
									
									
								
							
							
						
						| @ -1,43 +1,60 @@ | |||||||
| { | { | ||||||
|   "name": "terminal", |   "name": "terminal", | ||||||
|   "version": "3.1.0", |   "version": "2.1.0", | ||||||
|   "author": "Radosław Kozieł <@panr> <radoslaw.koziel@gmail.com>", |  | ||||||
|   "main": "index.js", |   "main": "index.js", | ||||||
|  |   "author": "Radosław Kozieł <@panr> <radoslaw.koziel@gmail.com>", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "scripts": { |  | ||||||
|     "test": "echo 'Test'" |  | ||||||
|   }, |  | ||||||
|   "browserslist": [ |   "browserslist": [ | ||||||
|     "last 2 versions", |     "last 2 versions", | ||||||
|     ">1%", |     ">1%", | ||||||
|     "not dead" |     "not dead" | ||||||
|   ], |   ], | ||||||
|   "comments": { |   "scripts": { | ||||||
|     "dependencies": { |     "dev": "webpack --mode=development --watch", | ||||||
|       "yarn": "project" |     "build": "webpack --mode=production" | ||||||
|     }, |  | ||||||
|     "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": { |   "devDependencies": { | ||||||
|  |     "@babel/cli": "^7.2.3", | ||||||
|  |     "@babel/core": "^7.2.2", | ||||||
|  |     "@babel/parser": "^7.4.2", | ||||||
|  |     "@babel/plugin-transform-runtime": "^7.2.0", | ||||||
|  |     "@babel/preset-env": "^7.3.1", | ||||||
|  |     "@babel/preset-stage-2": "^7.0.0", | ||||||
|  |     "angular-html-parser": "^1.2.0", | ||||||
|  |     "babel-eslint": "^10.1.0", | ||||||
|  |     "babel-loader": "^8.0.5", | ||||||
|     "browserslist": "^4.16.5", |     "browserslist": "^4.16.5", | ||||||
|  |     "clean-webpack-plugin": "^3.0.0", | ||||||
|     "clipboard": "^2.0.4", |     "clipboard": "^2.0.4", | ||||||
|     "eslint": "^7.32.0", |     "css-loader": "^5.1.3", | ||||||
|  |     "cssnano": "^5.0.8", | ||||||
|     "eslint-config-airbnb": "^18.2.0", |     "eslint-config-airbnb": "^18.2.0", | ||||||
|     "eslint-config-prettier": "^8.1.0", |     "eslint-config-prettier": "^8.1.0", | ||||||
|     "eslint-plugin-jsx-a11y": "^6.2.1", |     "eslint-plugin-jsx-a11y": "^6.2.1", | ||||||
|  |     "file-loader": "^6.1.0", | ||||||
|     "husky": "^5.1.3", |     "husky": "^5.1.3", | ||||||
|     "stylelint": "^14.14.1", |     "mini-css-extract-plugin": "^1.3.9", | ||||||
|     "stylelint-config-prettier-scss": "^0.0.1", |     "postcss": "^8.2.10", | ||||||
|     "stylelint-config-standard-scss": "^6.1.0" |     "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": { | ||||||
|  |     "yarn": "^1.22.10" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								static/assets/2078a57b79d547bf1e2502f8d249b867.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/assets/58cebbe9a6bdcba6d4bb56a22a9e812f.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								static/assets/blue.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								static/assets/green.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								static/assets/languageSelector.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,4 @@ | |||||||
|  | (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"]()})();
 | ||||||
							
								
								
									
										4
									
								
								static/assets/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,4 @@ | |||||||
|  | (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"]()})();
 | ||||||
							
								
								
									
										1
									
								
								static/assets/pink.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										4
									
								
								static/assets/prism.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								static/assets/red.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								static/assets/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 189 B | 
| Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B | 
| Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B | 
| Before Width: | Height: | Size: 190 B After Width: | Height: | Size: 190 B | 
| Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 189 B | 
| @ -5,7 +5,7 @@ description = "A simple, retro theme for Hugo." | |||||||
| homepage = "https://github.com/panr/hugo-theme-terminal/" | homepage = "https://github.com/panr/hugo-theme-terminal/" | ||||||
| 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.90 | min_version = 0.74 | ||||||
| 
 | 
 | ||||||
| [author] | [author] | ||||||
|   name = "panr" |   name = "panr" | ||||||
|  | |||||||
							
								
								
									
										104
									
								
								webpack.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @ -0,0 +1,104 @@ | |||||||
|  | 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", | ||||||
|  |     }), | ||||||
|  |   ], | ||||||
|  | }); | ||||||