commit
808dc96c6d
46 changed files with 939 additions and 377 deletions
16
README.md
16
README.md
|
@ -1,10 +1,10 @@
|
|||
# Hello Friend NG
|
||||
|
||||

|
||||

|
||||
|
||||
## General informations
|
||||
|
||||
This theme was highly inspired by the [hello-friend](https://github.com/panr/hugo-theme-hello-friend) and [hermit](https://github.com/Track3/hermit). A lot of kudos for theier great work.
|
||||
This theme was highly inspired by the [hello-friend](https://github.com/panr/hugo-theme-hello-friend) and [hermit](https://github.com/Track3/hermit). A lot of kudos for their great work.
|
||||
|
||||
---
|
||||
## Table of Contents
|
||||
|
@ -27,13 +27,14 @@ This theme was highly inspired by the [hello-friend](https://github.com/panr/hug
|
|||
---
|
||||
## Features
|
||||
|
||||
- Theming: **dark/light mode**, depending on your preferences (dark is default, but you can change it)
|
||||
- Theming: **dark/light mode**, depending on your system preferences
|
||||
- Great reading experience thanks to [**Inter UI font**](https://rsms.me/inter/), made by [Rasmus Andersson](https://rsms.me/about/)
|
||||
- Nice code highlighting thanks to [**PrismJS**](https://prismjs.com)
|
||||
- An easy way to modify the theme with Hugo tooling
|
||||
- Fully responsive
|
||||
- Support for social icons
|
||||
- Support for sharing buttons
|
||||
- Support for [Commento](https://commento.io)
|
||||
|
||||
|
||||
## How to start
|
||||
|
@ -69,7 +70,7 @@ paginate = 10
|
|||
dateform = "Jan 2, 2006"
|
||||
dateformShort = "Jan 2"
|
||||
dateformNum = "2006-01-02"
|
||||
dateformNumTime = "2006-01-02 15:04 -0700"
|
||||
dateformNumTime = "2006-01-02 15:04"
|
||||
|
||||
# Subtitle for home
|
||||
homeSubtitle = "A simple and beautiful blog"
|
||||
|
@ -85,9 +86,6 @@ paginate = 10
|
|||
keywords = "homepage, blog"
|
||||
images = [""]
|
||||
|
||||
# Default theme "light" or "dark"
|
||||
defaultTheme = "dark"
|
||||
|
||||
[taxonomies]
|
||||
category = "blog"
|
||||
tag = "tags"
|
||||
|
@ -139,8 +137,6 @@ Example:
|
|||
|
||||
### Code highlighting
|
||||
|
||||
Supported languages: [Take a look here](https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+actionscript+ada+apacheconf+apl+applescript+c+arff+asciidoc+asm6502+csharp+autohotkey+autoit+bash+basic+batch+bison+brainfuck+bro+cpp+aspnet+arduino+cil+coffeescript+clojure+ruby+csp+css-extras+d+dart+diff+markup-templating+docker+eiffel+elixir+elm+lua+erb+erlang+fsharp+flow+fortran+gcode+gedcom+gherkin+git+glsl+gml+go+graphql+groovy+less+handlebars+haskell+haxe+hcl+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+scala+php+javastacktrace+jolie+n4js+markdown+json+julia+keyman+kotlin+latex+crystal+scheme+liquid+lisp+livescript+lolcode+makefile+django+matlab+mel+mizar+monkey+n1ql+typescript+nand2tetris-hdl+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+perl+php-extras+sql+powershell+processing+prolog+properties+protobuf+scss+puppet+pure+python+q+qore+r+jsx+renpy+reason+vala+rest+rip+roboconf+textile+rust+plsql+sass+stylus+smalltalk+smarty+soy+sas+twig+swift+yaml+tcl+haml+toml+tt2+pug+tsx+visual-basic+vbnet+velocity+verilog+vhdl+vim+wasm+wiki+xeora+xojo+xquery+tap)
|
||||
|
||||
By default the theme is using PrismJS to color your code syntax. All you need to do is to wrap you code like this:
|
||||
|
||||
<pre>
|
||||
|
@ -183,6 +179,6 @@ If you like my work and if you think this project is worth to support it, just <
|
|||
|
||||
## Licence
|
||||
|
||||
Copyright © 2019-2020 Djordje Atlialp
|
||||
Copyright © 2019-2021 Djordje Atlialp
|
||||
|
||||
The theme is released under the MIT License. Check the [original theme license](https://github.com/rhazdon/hugo-theme-hello-friend-ng/blob/master/LICENSE.md) for additional licensing information.
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,25 +0,0 @@
|
|||
// Toggle theme
|
||||
|
||||
const theme = window.localStorage && window.localStorage.getItem("theme");
|
||||
const themeToggle = document.querySelector(".theme-toggle");
|
||||
const isDark = theme === "dark";
|
||||
var metaThemeColor = document.querySelector("meta[name=theme-color]");
|
||||
|
||||
if (theme !== null) {
|
||||
document.body.classList.toggle("dark-theme", isDark);
|
||||
isDark
|
||||
? metaThemeColor.setAttribute("content", "#252627")
|
||||
: metaThemeColor.setAttribute("content", "#fafafa");
|
||||
}
|
||||
|
||||
themeToggle.addEventListener("click", () => {
|
||||
document.body.classList.toggle("dark-theme");
|
||||
window.localStorage &&
|
||||
window.localStorage.setItem(
|
||||
"theme",
|
||||
document.body.classList.contains("dark-theme") ? "dark" : "light"
|
||||
);
|
||||
document.body.classList.contains("dark-theme")
|
||||
? metaThemeColor.setAttribute("content", "#252627")
|
||||
: metaThemeColor.setAttribute("content", "#fafafa");
|
||||
});
|
|
@ -23,20 +23,18 @@ a.button {
|
|||
cursor: pointer;
|
||||
outline: none;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-secondary;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* variants */
|
||||
|
||||
&.outline {
|
||||
background: transparent;
|
||||
border-color: $light-background-secondary;
|
||||
box-shadow: none;
|
||||
padding: 8px 18px;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: $dark-background-secondary;
|
||||
color: inherit;
|
||||
}
|
||||
|
@ -91,7 +89,7 @@ a.button {
|
|||
cursor: pointer;
|
||||
outline: none;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-secondary;
|
||||
color: inherit;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
.header {
|
||||
background: #fafafa;
|
||||
background: $light-background-header;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
|
||||
.dark-theme & {
|
||||
background: #252627;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-header;
|
||||
}
|
||||
|
||||
&__right {
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
&:not(:last-of-type) {
|
||||
border-bottom: 1px solid $light-border-color;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border-color: $dark-border-color;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
html {
|
||||
box-sizing: border-box;
|
||||
line-height: 1.6;
|
||||
letter-spacing: .06em;
|
||||
letter-spacing: 0.06em;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,8 @@ html {
|
|||
body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: 'Inter UI', -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", Helvetica, Arial, sans-serif;
|
||||
font-family: "Inter UI", -apple-system, BlinkMacSystemFont, "Roboto",
|
||||
"Segoe UI", Helvetica, Arial, sans-serif;
|
||||
font-display: auto;
|
||||
font-size: 1rem;
|
||||
line-height: 1.54;
|
||||
|
@ -34,13 +35,17 @@ body {
|
|||
font-size: 1rem;
|
||||
}
|
||||
|
||||
&.dark-theme {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background-color: $dark-background;
|
||||
color: $dark-color;
|
||||
}
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
line-height: 1.3;
|
||||
|
@ -52,6 +57,7 @@ h1 {
|
|||
|
||||
h2 {
|
||||
font-size: 1.625rem;
|
||||
margin-top: 2.5em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
|
@ -150,7 +156,7 @@ figure {
|
|||
figcaption {
|
||||
font-size: 14px;
|
||||
margin-top: 5px;
|
||||
opacity: .8;
|
||||
opacity: 0.8;
|
||||
|
||||
&.left {
|
||||
text-align: left;
|
||||
|
@ -166,17 +172,25 @@ figure {
|
|||
}
|
||||
}
|
||||
|
||||
em, i, strong {
|
||||
color: black;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;
|
||||
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
|
||||
font-display: auto;
|
||||
font-feature-settings: normal;
|
||||
background: $light-background-secondary;
|
||||
padding: 1px 6px;
|
||||
margin: 0 2px;
|
||||
border-radius: 5px;
|
||||
font-size: .95rem;
|
||||
font-size: 0.95rem;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-secondary;
|
||||
}
|
||||
}
|
||||
|
@ -185,7 +199,7 @@ pre {
|
|||
background: #212020;
|
||||
padding: 10px 10px 10px 20px;
|
||||
border-radius: 8px;
|
||||
font-size: .95rem;
|
||||
font-size: 0.95rem;
|
||||
overflow: auto;
|
||||
|
||||
@media #{$media-size-phone} {
|
||||
|
@ -200,14 +214,14 @@ pre {
|
|||
padding: 0;
|
||||
font-size: inherit;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 2px solid;
|
||||
border-left: 3px solid #3eb0ef;
|
||||
margin: 40px;
|
||||
padding: 10px 20px;
|
||||
|
||||
|
@ -217,7 +231,7 @@ blockquote {
|
|||
}
|
||||
|
||||
&:before {
|
||||
content: '”';
|
||||
content: "”";
|
||||
font-family: Georgia, serif;
|
||||
font-display: auto;
|
||||
font-size: 3.875rem;
|
||||
|
@ -235,7 +249,8 @@ blockquote {
|
|||
}
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
margin-left: 40px;
|
||||
padding: 0;
|
||||
|
||||
|
@ -275,7 +290,7 @@ hr {
|
|||
background: $light-border-color;
|
||||
height: 1px;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-border-color;
|
||||
}
|
||||
}
|
||||
|
@ -298,35 +313,47 @@ hr {
|
|||
|
||||
// Accessibility
|
||||
.screen-reader-text {
|
||||
border: 0;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip-path: inset(50%);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute !important;
|
||||
width: 1px;
|
||||
word-wrap: normal !important;
|
||||
border: 0;
|
||||
clip: rect(1px, 1px, 1px, 1px);
|
||||
clip-path: inset(50%);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute !important;
|
||||
width: 1px;
|
||||
word-wrap: normal !important;
|
||||
}
|
||||
|
||||
.screen-reader-text:focus {
|
||||
background-color: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
clip: auto !important;
|
||||
clip-path: none;
|
||||
color: #21759b;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: bold;
|
||||
height: auto;
|
||||
width: auto;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
line-height: normal;
|
||||
padding: 15px 23px 14px;
|
||||
text-decoration: none;
|
||||
z-index: 100000;
|
||||
background-color: #f1f1f1;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
clip: auto !important;
|
||||
clip-path: none;
|
||||
color: #21759b;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: bold;
|
||||
height: auto;
|
||||
width: auto;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
line-height: normal;
|
||||
padding: 15px 23px 14px;
|
||||
text-decoration: none;
|
||||
z-index: 100000;
|
||||
}
|
||||
|
||||
.background-image {
|
||||
background-repeat: no-repeat;
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
// Prism JS Additionals
|
||||
.highlight {
|
||||
margin: 30px auto;
|
||||
}
|
|
@ -1,11 +1,9 @@
|
|||
.menu {
|
||||
background: #fafafa;
|
||||
border-right: 1px solid;
|
||||
margin-right: 18px;
|
||||
background: $light-background-header;
|
||||
z-index: 9999;
|
||||
|
||||
.dark-theme & {
|
||||
background: #252627;
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-header;
|
||||
}
|
||||
|
||||
@media #{$media-size-phone} {
|
||||
|
@ -49,6 +47,11 @@
|
|||
fill: currentColor;
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
|
||||
@media #{$media-size-phone} {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
/* PrismJS 1.20.0
|
||||
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+actionscript+ada+apacheconf+apl+applescript+arduino+arff+asciidoc+asm6502+aspnet+autohotkey+autoit+bash+basic+batch+bison+brainfuck+bro+c+csharp+cpp+cil+coffeescript+clojure+crystal+csp+css-extras+d+dart+diff+django+docker+eiffel+elixir+elm+erb+erlang+fsharp+flow+fortran+gcode+gedcom+gherkin+git+glsl+gml+go+graphql+groovy+haml+handlebars+haskell+haxe+hcl+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+javastacktrace+jolie+json+julia+keyman+kotlin+latex+less+liquid+lisp+livescript+lolcode+lua+makefile+markdown+markup-templating+matlab+mel+mizar+monkey+n1ql+n4js+nand2tetris-hdl+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+perl+php+php-extras+plsql+powershell+processing+prolog+properties+protobuf+pug+puppet+pure+python+q+qore+r+jsx+tsx+renpy+reason+rest+rip+roboconf+ruby+rust+sas+sass+scss+scala+scheme+smalltalk+smarty+soy+sql+stylus+swift+tap+tcl+textile+toml+tt2+twig+typescript+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+wasm+wiki+xeora+xojo+xquery+yaml */
|
||||
/* PrismJS 1.23.0
|
||||
https://prismjs.com/download.html#themes=prism-twilight&languages=markup+css+clike+javascript+ada+apacheconf+bash+batch+c+csharp+cpp+coffeescript+css-extras+dart+django+dns-zone-file+docker+elixir+etlua+erlang+git+go+graphql+groovy+haml+handlebars+haskell+http+hpkp+hsts+ini+java+javadoc+javadoclike+jsdoc+js-extras+json+json5+jsonp+julia+kotlin+latex+less+lisp+lua+markup-templating+matlab+nginx+objectivec+perl+php+phpdoc+php-extras+powershell+promql+protobuf+puppet+purescript+python+r+jsx+tsx+regex+rest+ruby+rust+sass+scss+shell-session+sql+stylus+swift+toml+twig+typescript+typoscript+verilog+vhdl+vim+visual-basic+wasm+xml-doc+yaml&plugins=line-highlight+line-numbers+show-language+toolbar */
|
||||
/**
|
||||
* prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
|
||||
* Based on https://github.com/chriskempson/tomorrow-theme
|
||||
* @author Rose Pritchard
|
||||
* prism.js Twilight theme
|
||||
* Based (more or less) on the Twilight theme originally of Textmate fame.
|
||||
* @author Remy Bach
|
||||
*/
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #ccc;
|
||||
color: white;
|
||||
background: none;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
text-shadow: 0 -.1em .2em black;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
|
@ -27,84 +27,107 @@ pre[class*="language-"] {
|
|||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre[class*="language-"],
|
||||
:not(pre) > code[class*="language-"] {
|
||||
background: hsl(0, 0%, 8%); /* #141414 */
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
border-radius: .5em;
|
||||
border: .3em solid hsl(0, 0%, 33%); /* #282A2B */
|
||||
box-shadow: 1px 1px .5em black inset;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: #2d2d2d;
|
||||
pre[class*="language-"]::-moz-selection {
|
||||
/* Firefox */
|
||||
background: hsl(200, 4%, 16%); /* #282A2B */
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection {
|
||||
/* Safari */
|
||||
background: hsl(200, 4%, 16%); /* #282A2B */
|
||||
}
|
||||
|
||||
/* Text Selection colour */
|
||||
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
border: .13em solid hsl(0, 0%, 33%); /* #545454 */
|
||||
box-shadow: 1px 1px .3em -.1em black inset;
|
||||
padding: .15em .2em .05em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.block-comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: #999;
|
||||
color: hsl(0, 0%, 47%); /* #777777 */
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #ccc;
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.tag,
|
||||
.token.attr-name,
|
||||
.token.namespace,
|
||||
.token.deleted {
|
||||
color: #e2777a;
|
||||
}
|
||||
|
||||
.token.function-name {
|
||||
color: #6196cc;
|
||||
}
|
||||
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.function {
|
||||
color: #f08d49;
|
||||
.token.deleted {
|
||||
color: hsl(14, 58%, 55%); /* #CF6A4C */
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.symbol {
|
||||
color: #f8c555;
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.important,
|
||||
.token.atrule,
|
||||
.token.keyword,
|
||||
.token.property,
|
||||
.token.selector,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.builtin {
|
||||
color: #cc99cd;
|
||||
color: hsl(53, 89%, 79%); /* #F9EE98 */
|
||||
}
|
||||
|
||||
.token.attr-name,
|
||||
.token.attr-value,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.attr-value,
|
||||
.token.regex,
|
||||
.token.variable {
|
||||
color: #7ec699;
|
||||
}
|
||||
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url {
|
||||
color: #67cdcc;
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string,
|
||||
.token.variable,
|
||||
.token.inserted {
|
||||
color: hsl(76, 21%, 52%); /* #8F9D6A */
|
||||
}
|
||||
|
||||
.token.atrule {
|
||||
color: hsl(218, 22%, 55%); /* #7587A6 */
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important {
|
||||
color: hsl(42, 75%, 65%); /* #E9C062 */
|
||||
}
|
||||
|
||||
.token.important,
|
||||
|
@ -119,7 +142,237 @@ pre[class*="language-"] {
|
|||
cursor: help;
|
||||
}
|
||||
|
||||
.token.inserted {
|
||||
color: green;
|
||||
pre[data-line] {
|
||||
padding: 1em 0 1em 3em;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Markup */
|
||||
.language-markup .token.tag,
|
||||
.language-markup .token.attr-name,
|
||||
.language-markup .token.punctuation {
|
||||
color: hsl(33, 33%, 52%); /* #AC885B */
|
||||
}
|
||||
|
||||
/* Make the tokens sit above the line highlight so the colours don't look faded. */
|
||||
.token {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.line-highlight {
|
||||
background: hsla(0, 0%, 33%, 0.25); /* #545454 */
|
||||
background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */
|
||||
border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */
|
||||
border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */
|
||||
left: 0;
|
||||
line-height: inherit;
|
||||
margin-top: 0.75em; /* Same as .prism’s padding-top */
|
||||
padding: inherit 0;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
white-space: pre;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.line-highlight:before,
|
||||
.line-highlight[data-end]:after {
|
||||
background-color: hsl(215, 15%, 59%); /* #8794A6 */
|
||||
border-radius: 999px;
|
||||
box-shadow: 0 1px white;
|
||||
color: hsl(24, 20%, 95%); /* #F5F2F0 */
|
||||
content: attr(data-start);
|
||||
font: bold 65%/1.5 sans-serif;
|
||||
left: .6em;
|
||||
min-width: 1em;
|
||||
padding: 0 .5em;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
text-shadow: none;
|
||||
top: .4em;
|
||||
vertical-align: .3em;
|
||||
}
|
||||
|
||||
.line-highlight[data-end]:after {
|
||||
bottom: .4em;
|
||||
content: attr(data-end);
|
||||
top: auto;
|
||||
}
|
||||
|
||||
pre[data-line] {
|
||||
position: relative;
|
||||
padding: 1em 0 1em 3em;
|
||||
}
|
||||
|
||||
.line-highlight {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: inherit 0;
|
||||
margin-top: 1em; /* Same as .prism’s padding-top */
|
||||
|
||||
background: hsla(24, 20%, 50%,.08);
|
||||
background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
|
||||
|
||||
pointer-events: none;
|
||||
|
||||
line-height: inherit;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.line-highlight {
|
||||
/*
|
||||
* This will prevent browsers from replacing the background color with white.
|
||||
* It's necessary because the element is layered on top of the displayed code.
|
||||
*/
|
||||
-webkit-print-color-adjust: exact;
|
||||
color-adjust: exact;
|
||||
}
|
||||
}
|
||||
|
||||
.line-highlight:before,
|
||||
.line-highlight[data-end]:after {
|
||||
content: attr(data-start);
|
||||
position: absolute;
|
||||
top: .4em;
|
||||
left: .6em;
|
||||
min-width: 1em;
|
||||
padding: 0 .5em;
|
||||
background-color: hsla(24, 20%, 50%,.4);
|
||||
color: hsl(24, 20%, 95%);
|
||||
font: bold 65%/1.5 sans-serif;
|
||||
text-align: center;
|
||||
vertical-align: .3em;
|
||||
border-radius: 999px;
|
||||
text-shadow: none;
|
||||
box-shadow: 0 1px white;
|
||||
}
|
||||
|
||||
.line-highlight[data-end]:after {
|
||||
content: attr(data-end);
|
||||
top: auto;
|
||||
bottom: .4em;
|
||||
}
|
||||
|
||||
.line-numbers .line-highlight:before,
|
||||
.line-numbers .line-highlight:after {
|
||||
content: none;
|
||||
}
|
||||
|
||||
pre[id].linkable-line-numbers span.line-numbers-rows {
|
||||
pointer-events: all;
|
||||
}
|
||||
pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
|
||||
cursor: pointer;
|
||||
}
|
||||
pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
|
||||
background-color: rgba(128, 128, 128, .2);
|
||||
}
|
||||
|
||||
pre[class*="language-"].line-numbers {
|
||||
position: relative;
|
||||
padding-left: 3.8em;
|
||||
counter-reset: linenumber;
|
||||
}
|
||||
|
||||
pre[class*="language-"].line-numbers > code {
|
||||
position: relative;
|
||||
white-space: inherit;
|
||||
}
|
||||
|
||||
.line-numbers .line-numbers-rows {
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
top: 0;
|
||||
font-size: 100%;
|
||||
left: -3.8em;
|
||||
width: 3em; /* works for line-numbers below 1000 lines */
|
||||
letter-spacing: -1px;
|
||||
border-right: 1px solid #999;
|
||||
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
}
|
||||
|
||||
.line-numbers-rows > span {
|
||||
display: block;
|
||||
counter-increment: linenumber;
|
||||
}
|
||||
|
||||
.line-numbers-rows > span:before {
|
||||
content: counter(linenumber);
|
||||
color: #999;
|
||||
display: block;
|
||||
padding-right: 0.8em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
div.code-toolbar {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar {
|
||||
position: absolute;
|
||||
top: .3em;
|
||||
right: .2em;
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
div.code-toolbar:hover > .toolbar {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Separate line b/c rules are thrown out if selector is invalid.
|
||||
IE11 and old Edge versions don't support :focus-within. */
|
||||
div.code-toolbar:focus-within > .toolbar {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar .toolbar-item {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar button {
|
||||
background: none;
|
||||
border: 0;
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
line-height: normal;
|
||||
overflow: visible;
|
||||
padding: 0;
|
||||
-webkit-user-select: none; /* for button */
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar a,
|
||||
div.code-toolbar > .toolbar button,
|
||||
div.code-toolbar > .toolbar span {
|
||||
color: #bbb;
|
||||
font-size: .8em;
|
||||
padding: 0 .5em;
|
||||
background: #f5f2f0;
|
||||
background: rgba(224, 224, 224, 0.2);
|
||||
box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
|
||||
border-radius: .5em;
|
||||
}
|
||||
|
||||
div.code-toolbar > .toolbar a:hover,
|
||||
div.code-toolbar > .toolbar a:focus,
|
||||
div.code-toolbar > .toolbar button:hover,
|
||||
div.code-toolbar > .toolbar button:focus,
|
||||
div.code-toolbar > .toolbar span:hover,
|
||||
div.code-toolbar > .toolbar span:focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
|
|
@ -44,14 +44,19 @@
|
|||
&-cover {
|
||||
border-radius: 8px;
|
||||
margin: 40px -50px;
|
||||
width: 860px;
|
||||
max-width: 860px;
|
||||
width: $max-width;
|
||||
max-width: $max-width;
|
||||
@media #{$media-size-tablet} {
|
||||
margin: 20px 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
&-excerpt {
|
||||
color: grey;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
&-info {
|
||||
margin-top: 30px;
|
||||
font-size: 0.8rem;
|
||||
|
@ -113,7 +118,7 @@
|
|||
letter-spacing: 0.1em;
|
||||
z-index: 1;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background;
|
||||
color: $dark-color-secondary;
|
||||
}
|
||||
|
@ -155,7 +160,7 @@
|
|||
cursor: pointer;
|
||||
appearance: none;
|
||||
|
||||
.dark-theme & {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background: $dark-background-secondary;
|
||||
}
|
||||
|
||||
|
|
42
assets/scss/_tables.scss
Normal file
42
assets/scss/_tables.scss
Normal file
|
@ -0,0 +1,42 @@
|
|||
.post-content {
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: 25px auto;
|
||||
font-size: 0.9em;
|
||||
min-width: 400px;
|
||||
max-width: 100%;
|
||||
|
||||
th,
|
||||
td {
|
||||
padding: 12px 15px;
|
||||
border: 1px solid $light-table-color;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border: 1px solid $dark-table-color;
|
||||
}
|
||||
}
|
||||
|
||||
thead {
|
||||
tr {
|
||||
background-color: $light-table-color;
|
||||
color: $light-color;
|
||||
text-align: left;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background-color: $dark-table-color;
|
||||
color: $dark-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tbody {
|
||||
tr {
|
||||
border: 1px solid $light-table-color;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
border: 1px solid $dark-table-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,24 +1,31 @@
|
|||
@charset "UTF-8";
|
||||
|
||||
/* light theme color */
|
||||
/* Light theme color */
|
||||
$light-background: #fff;
|
||||
$light-background-secondary: #eaeaea;
|
||||
$light-background-header: #fafafa;
|
||||
$light-color: #222;
|
||||
$light-color-secondary: #999;
|
||||
$light-border-color: #dcdcdc;
|
||||
$light-table-color: #dcdcdc;
|
||||
|
||||
/* dark theme colors */
|
||||
$dark-background: #292a2d;
|
||||
/* Dark theme colors */
|
||||
$dark-background: #232425;
|
||||
$dark-background-secondary: #3b3d42;
|
||||
$dark-background-header: #1b1c1d;
|
||||
$dark-color: #a9a9b3;
|
||||
$dark-color-secondary: #73747b;
|
||||
$dark-border-color: #4a4b50;
|
||||
$dark-color-secondary: #b3b3bd;
|
||||
$dark-border-color: #4e4e57;
|
||||
$dark-table-color: #4e4e57;
|
||||
|
||||
$media-size-phone: "(max-width: 684px)";
|
||||
$media-size-tablet: "(max-width: 900px)";
|
||||
|
||||
/* variables for js, must be the same as these in @custom-media queries */
|
||||
/* Variables for js, must be the same as these in @custom-media queries */
|
||||
:root {
|
||||
--phoneWidth: (max-width: 684px);
|
||||
--tabletWidth: (max-width: 900px);
|
||||
}
|
||||
|
||||
/* Content */
|
||||
$max-width: 860px;
|
|
@ -15,3 +15,4 @@
|
|||
@import "single";
|
||||
@import "footer";
|
||||
@import "sharing-buttons";
|
||||
@import "tables";
|
||||
|
|
|
@ -2,10 +2,15 @@ de: de
|
|||
en: gb
|
||||
es: es
|
||||
fr: fr
|
||||
gl: es-ga
|
||||
hi: in
|
||||
it: it
|
||||
ja: jp
|
||||
ml: in
|
||||
nl: nl
|
||||
pt-br: br
|
||||
ru: ru
|
||||
tr: tr
|
||||
zh-cn: cn
|
||||
zh-hk: hk
|
||||
zh-tw: tw
|
||||
|
|
25
docs/svgs.md
25
docs/svgs.md
|
@ -1,6 +1,10 @@
|
|||
# Available Social Icons:
|
||||
|
||||
- [amazon](https://simpleicons.org/?q=amazon)
|
||||
- [box](https://simpleicons.org/?q=box)
|
||||
- [behance](https://simpleicons.org/?q=behance)
|
||||
- [bitbucket](https://simpleicons.org/?q=bitbucket)
|
||||
- [codesandbox](https://simpleicons.org/?q=codesandbox)
|
||||
- [codechef](https://simpleicons.org/?q=codechef)
|
||||
- [codepen](https://simpleicons.org/?q=codepen)
|
||||
- [dev](https://simpleicons.org/?q=devto)
|
||||
|
@ -11,36 +15,45 @@
|
|||
- [dribbble](https://simpleicons.org/?q=dribbble)
|
||||
- [email](https://feathericons.com/?query=mail)
|
||||
- [facebook](https://simpleicons.org/?q=facebook)
|
||||
- git
|
||||
- gitbook
|
||||
- [github](https://feathericons.com/?query=github)
|
||||
- [gitlab](https://feathericons.com/?query=gitlab)
|
||||
- [gitter](https://simpleicons.org/icons/gitter.svg)
|
||||
- [goodreads](https://simpleicons.org/?q=goodreads)
|
||||
- [googlescholar](https://simpleicons.org/?q=googlescholar)
|
||||
- [hackerone](https://simpleicons.org/?q=hackerone)
|
||||
- [hackerrank](https://simpleicons.org/?q=hackerrank)
|
||||
- [instagram](https://feathericons.com/?query=instagram)
|
||||
- [kaggle](https://simpleicons.org/?q=kaggle)
|
||||
- [keybase](https://simpleicons.org/?q=keybase)
|
||||
- [lastfm](https://simpleicons.org/?q=lastfm)
|
||||
- [leetcode](https://simpleicons.org/?q=leetcode)
|
||||
- [linkedin](https://feathericons.com/?query=linked)
|
||||
- [mastodon](https://simpleicons.org/?q=mastodon)
|
||||
- [matrix](https://simpleicons.org/?q=matrix)
|
||||
- [medium](https://simpleicons.org/?q=medium)
|
||||
- [mixcloud](https://simpleicons.org/?q=mixcloud)
|
||||
- [linkedin](https://feathericons.com/?query=linked)
|
||||
- [orcid](https://simpleicons.org/?q=orcid)
|
||||
- [pinterest](https://simpleicons.org/?q=pinterest)
|
||||
- [peertube](https://simpleicons.org/?q=peertube)
|
||||
- [podcasts-apple](https://simpleicons.org/?q=podcast)
|
||||
- [podcasts-google](https://simpleicons.org/?q=podcast)
|
||||
- [reddit](https://simpleicons.org/?q=reddit)
|
||||
- [researchgate](https://simpleicons.org/?q=researchgate)
|
||||
- [signal](https://simpleicons.org/?q=signal)
|
||||
- [slack](https://simpleicons.org/?q=slack)
|
||||
- [soundcloud](https://simpleicons.org/?q=soundcloud)
|
||||
- stackoverflow
|
||||
- [spotify](https://simpleicons.org/?q=spotify)
|
||||
- [stackoverflow](https://simpleicons.org/?q=stackoverflow)
|
||||
- [steam](https://simpleicons.org/?q=Steam)
|
||||
- telegram
|
||||
- [telegram](https://simpleicons.org/?q=telegram)
|
||||
- [tumblr](https://simpleicons.org/?q=tumblr)
|
||||
- twitch
|
||||
- twitter
|
||||
- [twitch](https://simpleicons.org/?q=twitch)
|
||||
- [twitter](https://simpleicons.org/?q=twitter)
|
||||
- [whatsapp](https://simpleicons.org/?q=whatsapp)
|
||||
- [xampp](https://simpleicons.org/?q=xampp)
|
||||
- [xing](https://simpleicons.org/?q=xing)
|
||||
- [xmpp](https://simpleicons.org/?q=xmpp)
|
||||
- [ycombinator](https://simpleicons.org/?q=ycombinator)
|
||||
- youtube
|
||||
- [youtube](https://simpleicons.org/?q=youtube)
|
||||
|
|
|
@ -51,46 +51,60 @@ disableHugoGeneratorInject = false
|
|||
dateform = "Jan 2, 2006"
|
||||
dateformShort = "Jan 2"
|
||||
dateformNum = "2006-01-02"
|
||||
dateformNumTime = "2006-01-02 15:04 -0700"
|
||||
dateformNumTime = "2006-01-02 15:04"
|
||||
|
||||
# Metadata mostly used in document's head
|
||||
#
|
||||
description = "Nice theme for homepages and blogs"
|
||||
keywords = ""
|
||||
images = [""]
|
||||
|
||||
homeSubtitle = "Hello Friend NG"
|
||||
|
||||
# Set a background for the homepage
|
||||
# backgroundImage = "assets/images/background.jpg"
|
||||
|
||||
# Prefix of link to the git commit detail page. GitInfo must be enabled.
|
||||
#
|
||||
# gitUrl = ""
|
||||
|
||||
# Set disableReadOtherPosts to true in order to hide the links to other posts.
|
||||
#
|
||||
disableReadOtherPosts = false
|
||||
|
||||
# Sharing buttons
|
||||
#
|
||||
# There are a lot of buttons preconfigured. If you want to change them,
|
||||
# generate the buttons here: https://sharingbuttons.io
|
||||
# and add them into your own `layouts/partials/sharing-buttons.html`
|
||||
#
|
||||
enableSharingButtons = true
|
||||
|
||||
# Integrate Javascript files or stylesheets by adding the url to the external assets or by
|
||||
# linking local files with their path relative to the static folder, e.g. "css/styles.css"
|
||||
#
|
||||
customCSS = []
|
||||
customJS = []
|
||||
|
||||
# Toggle this option need to rebuild SCSS, requires extended version of Hugo
|
||||
#
|
||||
justifyContent = false # Set "text-align: justify" to .post-content.
|
||||
|
||||
# Default theme "light" or "dark"
|
||||
defaultTheme = "dark"
|
||||
themeColor = "#252627"
|
||||
# Custom footer
|
||||
# If you want, you can easily override the default footer with your own content.
|
||||
#
|
||||
# footerLeft = "Powered by <a href=\"http://gohugo.io\">Hugo</a>"
|
||||
# footerRight = "Made with ❤ by <a href=\"https://github.com/rhazdon\">Djordje Atlialp</a>"
|
||||
|
||||
# Colors for favicons
|
||||
#
|
||||
[params.favicon.color]
|
||||
mask = "#252627"
|
||||
msapplication = "#252627"
|
||||
theme = "#252627"
|
||||
mask = "#1b1c1d"
|
||||
msapplication = "#1b1c1d"
|
||||
theme = "#1b1c1d"
|
||||
|
||||
[params.logo]
|
||||
logoMark = ">"
|
||||
logoText = "$ cd /home/"
|
||||
logoHomeLink = "/"
|
||||
# Set true to remove the logo cursor entirely.
|
||||
|
@ -100,7 +114,19 @@ disableHugoGeneratorInject = false
|
|||
# Set to a valid CSS time value to change the animation duration, "0s" to disable.
|
||||
# logoCursorAnimate = "2s"
|
||||
|
||||
# Commento is more than just a comments widget you can embed —
|
||||
# it’s a return to the roots of the internet.
|
||||
# An internet without the tracking and invasions of privacy.
|
||||
# An internet that is simple and lightweight.
|
||||
# An internet that is focused on interesting discussions, not ads.
|
||||
# A better internet.
|
||||
# Uncomment this to enable Commento.
|
||||
#
|
||||
# [params.commento]
|
||||
# url = ""
|
||||
|
||||
# Uncomment this if you want a portrait on your start page
|
||||
#
|
||||
# [params.portrait]
|
||||
# path = "/img/image.jpg"
|
||||
# alt = "Portrait"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Inhaltsverzeichnis"
|
|||
[wordCount]
|
||||
one = "Ein Wort"
|
||||
other = "{{ .Count }} Wörter"
|
||||
|
||||
[lastModified]
|
||||
other = "Letzte Aktualisierung"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Table of Contents"
|
|||
[wordCount]
|
||||
one = "One Word"
|
||||
other = "{{ .Count }} Words"
|
||||
|
||||
[lastModified]
|
||||
other = "Last updated"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Tabla de Contenido"
|
|||
[wordCount]
|
||||
one = "Una Palabra"
|
||||
other = "{{ .Count }} Palabras"
|
||||
|
||||
[lastModified]
|
||||
other = "Ultima actualización"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Table des matières"
|
|||
[wordCount]
|
||||
one = "Un Mot"
|
||||
other = "{{ .Count }} Mots"
|
||||
|
||||
[lastModified]
|
||||
other = "Mise à jour"
|
||||
|
|
36
i18n/gl.toml
Normal file
36
i18n/gl.toml
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Translations for Galician
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Generic
|
||||
#
|
||||
[translations]
|
||||
other = "Traducións"
|
||||
|
||||
[postAvailable]
|
||||
other = "Tamén dispoñible en"
|
||||
|
||||
|
||||
# 404.html
|
||||
#
|
||||
[archives]
|
||||
other = "Arquivos"
|
||||
|
||||
[home]
|
||||
other = "Inicio"
|
||||
|
||||
[notFound]
|
||||
other = "Vaia, non se atopou a páxina..."
|
||||
|
||||
|
||||
# posts/single.html
|
||||
#
|
||||
[readingTime]
|
||||
one = "Un minuto"
|
||||
other = "{{ .Count }} minutos"
|
||||
|
||||
[tableOfContents]
|
||||
other = "Táboa de contidos"
|
||||
|
||||
[wordCount]
|
||||
one = "Unha Palabra"
|
||||
other = "{{ .Count }} Palabras"
|
|
@ -34,3 +34,6 @@ other = "अनुक्रमणिका"
|
|||
[wordCount]
|
||||
one = "एक शब्द"
|
||||
other = "{{ .Count }} शब्द"
|
||||
|
||||
[lastModified]
|
||||
other = "आखरी अपडेट"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Contenuti"
|
|||
[wordCount]
|
||||
one = "Una parola"
|
||||
other = "{{ .Count }} parole"
|
||||
|
||||
[lastModified]
|
||||
other = "Ultimo aggiornamento"
|
||||
|
|
39
i18n/ja.toml
Normal file
39
i18n/ja.toml
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Translations for Japanese
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Generic
|
||||
#
|
||||
[translations]
|
||||
other = "翻訳"
|
||||
|
||||
[postAvailable]
|
||||
other = "他の言語"
|
||||
|
||||
|
||||
# 404.html
|
||||
#
|
||||
[archives]
|
||||
other = "アーカイブ"
|
||||
|
||||
[home]
|
||||
other = "ホームページ"
|
||||
|
||||
[notFound]
|
||||
other = "あっ、ページが見つかりません……"
|
||||
|
||||
# Please add hasCJKLanguage = true under [languages.ja] for the below to behave correctly
|
||||
# posts/single.html
|
||||
#
|
||||
[readingTime]
|
||||
one = "一分"
|
||||
other = "{{ .Count }}分"
|
||||
|
||||
[tableOfContents]
|
||||
other = "目次"
|
||||
|
||||
[wordCount]
|
||||
one = "一文字"
|
||||
other = "{{ .Count }}文字"
|
||||
|
||||
[lastModified]
|
||||
other = "最終更新"
|
|
@ -34,3 +34,6 @@ other = "Contegnuu"
|
|||
[wordCount]
|
||||
one = "Ona parolla"
|
||||
other = "{{ .Count }} paroll"
|
||||
|
||||
[lastModified]
|
||||
other = "Last update"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "ഉള്ളടക്ക പട്ടിക"
|
|||
[wordCount]
|
||||
one = "ഒരു വാക്ക്"
|
||||
other = "{{ .Count }} വാക്കുകൾ"
|
||||
|
||||
[lastModified]
|
||||
other = "അവസാനമായി പുതുക്കിയത്"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "Índice"
|
|||
[wordCount]
|
||||
one = "Uma Palavra"
|
||||
other = "{{ .Count }} Palavras"
|
||||
|
||||
[lastModified]
|
||||
other = "Última actualização"
|
||||
|
|
|
@ -38,3 +38,6 @@ one = "{{ .Count }} слово"
|
|||
few = "{{ .Count }} слова"
|
||||
many = "{{ .Count }} слов"
|
||||
other = "{{ .Count }} слов"
|
||||
|
||||
[lastModified]
|
||||
other = "Последнее обновление"
|
||||
|
|
|
@ -34,3 +34,6 @@ other = "İçindekiler"
|
|||
[wordCount]
|
||||
one = "One Kelime"
|
||||
other = "{{ .Count }} Kelime"
|
||||
|
||||
[lastModified]
|
||||
other = "Son güncelleme"
|
||||
|
|
39
i18n/zh-cn.toml
Normal file
39
i18n/zh-cn.toml
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Translations for Chinese (China)
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Generic
|
||||
#
|
||||
[translations]
|
||||
other = "译文"
|
||||
|
||||
[postAvailable]
|
||||
other = "其他语言"
|
||||
|
||||
|
||||
# 404.html
|
||||
#
|
||||
[archives]
|
||||
other = "档案"
|
||||
|
||||
[home]
|
||||
other = "主页"
|
||||
|
||||
[notFound]
|
||||
other = "噢,找不到页面……"
|
||||
|
||||
# Please add hasCJKLanguage = true under [languages.zh-cn] for the below to behave correctly
|
||||
# posts/single.html
|
||||
#
|
||||
[readingTime]
|
||||
one = "一分钟"
|
||||
other = "{{ .Count }}分钟"
|
||||
|
||||
[tableOfContents]
|
||||
other = "目录"
|
||||
|
||||
[wordCount]
|
||||
one = "一字"
|
||||
other = "{{ .Count }}字"
|
||||
|
||||
[lastModified]
|
||||
other = "最后修改"
|
39
i18n/zh-hk.toml
Normal file
39
i18n/zh-hk.toml
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Translations for Chinese (Hong Kong) [Cantonese]
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Generic
|
||||
#
|
||||
[translations]
|
||||
other = "譯文"
|
||||
|
||||
[postAvailable]
|
||||
other = "其他語言"
|
||||
|
||||
|
||||
# 404.html
|
||||
#
|
||||
[archives]
|
||||
other = "貼文"
|
||||
|
||||
[home]
|
||||
other = "主頁"
|
||||
|
||||
[notFound]
|
||||
other = "哎呀,揾唔到添……"
|
||||
|
||||
# Please add hasCJKLanguage = true under [languages.zh-hk] for the below to behave correctly
|
||||
# posts/single.html
|
||||
#
|
||||
[readingTime]
|
||||
one = "一分鐘"
|
||||
other = "{{ .Count }}分鐘"
|
||||
|
||||
[tableOfContents]
|
||||
other = "目錄"
|
||||
|
||||
[wordCount]
|
||||
one = "一粒字"
|
||||
other = "{{ .Count }}字"
|
||||
|
||||
[lastModified]
|
||||
other = "最後修改"
|
39
i18n/zh-tw.toml
Normal file
39
i18n/zh-tw.toml
Normal file
|
@ -0,0 +1,39 @@
|
|||
# Translations for Chinese (Taiwan)
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Generic
|
||||
#
|
||||
[translations]
|
||||
other = "譯文"
|
||||
|
||||
[postAvailable]
|
||||
other = "其他語言"
|
||||
|
||||
|
||||
# 404.html
|
||||
#
|
||||
[archives]
|
||||
other = "檔案"
|
||||
|
||||
[home]
|
||||
other = "主頁"
|
||||
|
||||
[notFound]
|
||||
other = "噢,找不到頁面……"
|
||||
|
||||
# Please add hasCJKLanguage = true under [languages.zh-tw] for the below to behave correctly
|
||||
# posts/single.html
|
||||
#
|
||||
[readingTime]
|
||||
one = "一分鐘"
|
||||
other = "{{ .Count }}分鐘"
|
||||
|
||||
[tableOfContents]
|
||||
other = "目錄"
|
||||
|
||||
[wordCount]
|
||||
one = "一字"
|
||||
other = "{{ .Count }}字"
|
||||
|
||||
[lastModified]
|
||||
other = "最後修改"
|
|
@ -4,7 +4,10 @@
|
|||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
|
||||
<body class="{{ if ne $.Site.Params.defaultTheme "light" -}} dark-theme {{- end -}}">
|
||||
{{ block "body" . }}
|
||||
<body>
|
||||
{{ end }}
|
||||
|
||||
<div class="container">
|
||||
{{ partial "header.html" . }}
|
||||
|
||||
|
|
|
@ -14,17 +14,23 @@
|
|||
<article>
|
||||
<h2 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
|
||||
|
||||
{{- if .Params.toc }}
|
||||
{{ if .Params.Cover }}
|
||||
<figure class="post-cover">
|
||||
<img src="{{ .Params.Cover | absURL }}" alt="{{ .Title }}" />
|
||||
|
||||
{{ if .Params.CoverCaption }}
|
||||
<figcaption class="center">{{ .Params.CoverCaption | markdownify }}</figcaption>
|
||||
{{ end }}
|
||||
</figure>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.toc }}
|
||||
<hr />
|
||||
<aside id="toc">
|
||||
<div class="toc-title">{{ i18n "tableOfContents" }}</div>
|
||||
{{ .TableOfContents }}
|
||||
</aside>
|
||||
<hr />
|
||||
{{- end }}
|
||||
|
||||
{{ with .Params.Cover }}
|
||||
<img src="/{{ . }}" class="post-cover" />
|
||||
{{ end }}
|
||||
|
||||
<div class="post-content">
|
||||
|
@ -35,14 +41,8 @@
|
|||
<hr />
|
||||
|
||||
<div class="post-info">
|
||||
{{- with .Params.tags }}
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line></svg>
|
||||
{{- range . -}}
|
||||
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}">{{.}}</a></span>
|
||||
{{- end }}
|
||||
</p>
|
||||
{{- end }}
|
||||
{{ partial "tags.html" . }}
|
||||
{{ partial "categories.html" . }}
|
||||
|
||||
{{- if .GitInfo }}
|
||||
<p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-git-commit"><circle cx="12" cy="12" r="4"></circle><line x1="1.05" y1="12" x2="7" y2="12"></line><line x1="17.01" y1="12" x2="22.96" y2="12"></line></svg><a href="{{ .Site.Params.gitUrl -}}{{ .GitInfo.Hash }}" target="_blank" rel="noopener">{{ .GitInfo.AbbreviatedHash }}</a> @ {{ if .Site.Params.dateformNum }}{{ dateFormat .Site.Params.dateformNum .GitInfo.AuthorDate.Local }}{{ else }}{{ dateFormat "2006-01-02" .GitInfo.AuthorDate.Local }}{{ end }}</p>
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
{{ define "body" }}
|
||||
<body class="{{ if .Site.Params.background_image }} background-image" style="background-image: url('{{ .Site.Params.backgroundImage }}');" {{ else }}"{{ end }}>
|
||||
{{ end }}
|
||||
|
||||
{{ define "main" }}
|
||||
<main aria-role="main">
|
||||
<div>
|
||||
|
|
9
layouts/partials/categories.html
Normal file
9
layouts/partials/categories.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{{ with .Params.categories }}
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-folder meta-icon"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path></svg>
|
||||
|
||||
{{ range . -}}
|
||||
<span class="tag"><a href="{{ "categories/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
|
||||
{{ end }}
|
||||
</p>
|
||||
{{ end }}
|
|
@ -2,19 +2,15 @@
|
|||
<div class="footer__inner">
|
||||
<div class="footer__content">
|
||||
<span>© {{ now.Format "2006" }}</span>
|
||||
{{ if .Site.Author.name }}
|
||||
<span><a href="{{ .Site.BaseURL }}">{{ .Site.Author.name }}</a></span>
|
||||
{{ end }}
|
||||
{{ if .Site.Copyright }}
|
||||
<span>{{ .Site.Copyright| safeHTML }}</span>
|
||||
{{ end }}
|
||||
<span>{{- with (not (in (.Site.Language.Get "disableKinds") "RSS")) }} <a href="{{ "posts/index.xml" | absLangURL }}" target="_blank" title="rss"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg></a>{{ end }}</span>
|
||||
{{ if .Site.Author.name }}<span><a href="{{ .Site.BaseURL }}">{{ .Site.Author.name }}</a></span>{{ end }}
|
||||
{{ if .Site.Copyright }}<span>{{ .Site.Copyright| safeHTML }}</span>{{ end }}
|
||||
{{- with (not (in (.Site.Language.Get "disableKinds") "RSS")) }}<span><a href="{{ "posts/index.xml" | absLangURL }}" target="_blank" title="rss"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg></a></span>{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer__inner">
|
||||
<div class="footer__content">
|
||||
<span>Powered by <a href="http://gohugo.io">Hugo</a></span>
|
||||
<span>Made with ❤ by <a href="https://github.com/rhazdon">Djordje Atlialp</a></span>
|
||||
</div>
|
||||
<span>{{ .Site.Params.footerLeft | default "Powered by <a href=\"http://gohugo.io\">Hugo</a>" | safeHTML }}</span>
|
||||
<span>{{ .Site.Params.footerRight | default "Made with ❤ by <a href=\"https://github.com/rhazdon\">Djordje Atlialp</a>" | safeHTML }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="author" content="{{ if .Params.author }}{{ .Params.author }}{{ else }}{{ range .Site.Author }}{{ . }} {{ end }}{{ end }}">
|
||||
<meta name="description" content="{{ if .IsHome }}{{ .Site.Params.homeSubtitle }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
|
||||
<meta name="description" content="{{ if .IsHome }}{{ .Site.Params.homeSubtitle }}{{ else }}{{ if .Params.Description }}{{ .Params.Description }}{{ else }}{{ .Summary | plainify }}{{ end }}{{ end }}" />
|
||||
<meta name="keywords" content="{{ .Site.Params.keywords }}{{ if .Params.tags }}{{ range .Params.tags }}, {{ . }}{{ end }}{{ end }}" />
|
||||
<meta name="robots" content="noodp" />
|
||||
<meta name="theme-color" content="{{ .Site.Params.themeColor }}" />
|
||||
|
@ -19,7 +19,7 @@
|
|||
{{ end }}
|
||||
|
||||
<!-- CSS -->
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/css/flag-icon.min.css" rel="stylesheet"
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.5.0/css/flag-icon.min.css" rel="stylesheet"
|
||||
type="text/css">
|
||||
|
||||
{{ $options := (dict "targetPath" "main.css" "outputStyle" "compressed" "enableSourceMap" true) }}
|
||||
|
@ -37,6 +37,7 @@
|
|||
|
||||
{{ template "_internal/schema.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
{{ template "_internal/google_news.html" . }}
|
||||
|
||||
{{ if isset .Site.Taxonomies "series" }}
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
|
|
|
@ -12,8 +12,6 @@
|
|||
</svg>
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
<span class="theme-toggle unselectable">{{ partial "theme-icon.html" . }}</span>
|
||||
</span>
|
||||
</span>
|
||||
</header>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{{ $main := resources.Get "js/main.js" }}
|
||||
{{ $menu := resources.Get "js/menu.js" }}
|
||||
{{ $prism := resources.Get "js/prism.js" }}
|
||||
{{ $theme := resources.Get "js/theme.js" }}
|
||||
{{ $secureJS := slice $main $menu $prism $theme | resources.Concat "bundle.js" | resources.Minify | resources.Fingerprint "sha512" }}
|
||||
{{ $secureJS := slice $main $menu $prism | resources.Concat "bundle.js" | resources.Minify | resources.Fingerprint "sha512" }}
|
||||
<script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}"></script>
|
||||
|
||||
{{- if .Site.GoogleAnalytics }}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<a href="{{ if .Site.Params.Logo.LogoHomeLink }}{{ .Site.Params.Logo.LogoHomeLink }}{{else}}{{ .Site.BaseURL }}{{ end }}" style="text-decoration: none;">
|
||||
<a href="{{ if .Site.Params.Logo.LogoHomeLink }}{{ .Site.Params.Logo.LogoHomeLink }}{{else}}{{ .Site.BaseURL | relLangURL }}{{ end }}" style="text-decoration: none;">
|
||||
<div class="logo">
|
||||
{{ if .Site.Params.Logo.path }}
|
||||
<img src="{{ .Site.Params.Logo.path }}" alt="{{ .Site.Params.Logo.alt }}" />
|
||||
{{ else }}
|
||||
<span class="logo__mark">></span>
|
||||
<span class="logo__mark">{{ with .Site.Params.Logo.logoMark }}{{ . }}{{ else }}>{{ end }}</span>
|
||||
<span class="logo__text">{{ with .Site.Params.Logo.logoText }}{{ . }}{{ else }}hello{{ end }}</span>
|
||||
<span class="logo__cursor" style=
|
||||
"{{ with.Site.Params.Logo.logoCursorDisabled }}visibility:hidden;{{ end }}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<ul class="menu__inner">
|
||||
{{- $currentPage := . -}}
|
||||
{{ range .Site.Menus.main -}}
|
||||
<li><a href="{{ .URL | absLangURL }}">{{ .Name }}</a></li>
|
||||
<li><a href="{{ .URL | relLangURL }}">{{ .Name }}</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
File diff suppressed because one or more lines are too long
9
layouts/partials/tags.html
Normal file
9
layouts/partials/tags.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
{{ with .Params.tags }}
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line></svg>
|
||||
|
||||
{{ range . -}}
|
||||
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
|
||||
{{ end }}
|
||||
</p>
|
||||
{{ end }}
|
|
@ -1,5 +0,0 @@
|
|||
<svg class="theme-toggler" width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M22 41C32.4934 41 41 32.4934 41 22C41 11.5066 32.4934 3 22
|
||||
3C11.5066 3 3 11.5066 3 22C3 32.4934 11.5066 41 22 41ZM7 22C7
|
||||
13.7157 13.7157 7 22 7V37C13.7157 37 7 30.2843 7 22Z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 317 B |
|
@ -22,6 +22,20 @@
|
|||
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
|
||||
</h1>
|
||||
|
||||
{{ with .Params.Description }}
|
||||
<div class="post-excerpt">{{ . }}</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if .Params.Cover }}
|
||||
<figure class="post-cover">
|
||||
<img src="{{ .Params.Cover | absURL }}" alt="{{ .Title }}" />
|
||||
|
||||
{{ if .Params.CoverCaption }}
|
||||
<figcaption class="center">{{ .Params.CoverCaption | markdownify }}</figcaption>
|
||||
{{ end }}
|
||||
</figure>
|
||||
{{ end }}
|
||||
|
||||
{{- if .Params.toc }}
|
||||
<hr />
|
||||
<aside id="toc">
|
||||
|
@ -31,10 +45,6 @@
|
|||
<hr />
|
||||
{{- end }}
|
||||
|
||||
{{ with .Params.Cover }}
|
||||
<img src="/{{ . }}" class="post-cover" />
|
||||
{{ end }}
|
||||
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
|
@ -43,18 +53,8 @@
|
|||
<hr />
|
||||
|
||||
<div class="post-info">
|
||||
{{- with .Params.tags }}
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon">
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path>
|
||||
<line x1="7" y1="7" x2="7" y2="7"></line>
|
||||
</svg>
|
||||
|
||||
{{- range . -}}
|
||||
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
|
||||
{{- end }}
|
||||
</p>
|
||||
{{- end }}
|
||||
{{ partial "tags.html" . }}
|
||||
{{ partial "categories.html" . }}
|
||||
|
||||
<p>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text">
|
||||
|
@ -74,7 +74,21 @@
|
|||
<line x1="8" y1="2" x2="8" y2="6"></line>
|
||||
<line x1="3" y1="10" x2="21" y2="10"></line>
|
||||
</svg>
|
||||
{{ if .Site.Params.dateformNumTime }}{{ dateFormat .Site.Params.dateformNumTime .Date.Local }}{{ else }}{{ dateFormat "2006-01-02 15:04 -0700" .Date.Local }}{{ end }}
|
||||
{{ if .Site.Params.dateformNumTime }}
|
||||
{{ dateFormat .Site.Params.dateformNumTime .Date.Local }}
|
||||
{{ else }}
|
||||
{{ dateFormat "2006-01-02 15:04" .Date.Local }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Lastmod }}
|
||||
{{ if not (eq .Lastmod .Date )}}
|
||||
{{ if .Site.Params.dateformNumTime }}
|
||||
({{ i18n "lastModified" }}: {{ dateFormat .Site.Params.dateformNumTime .Lastmod.Local }})
|
||||
{{ else }}
|
||||
({{ i18n "lastModified" }}: {{ dateFormat "2006-01-02 15:04" .Lastmod.Local }})
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</p>
|
||||
|
||||
{{- if .GitInfo }}
|
||||
|
@ -136,5 +150,10 @@
|
|||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.Commento.Url }}
|
||||
<script defer src={{ .Site.Params.Commento.Url }}></script>
|
||||
<div id="commento"></div>
|
||||
{{ end }}
|
||||
|
||||
</main>
|
||||
{{ end }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue