Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CaiJimmy/hugo-theme-stack.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy Cai <github@jimmycai.com>2022-10-29 16:51:05 +0300
committerJimmy Cai <github@jimmycai.com>2022-10-29 16:51:05 +0300
commitb0ab8e8ef005e6f46c57a6cbb4c9e71fd728d363 (patch)
treeaa4d68efec6db197b9bb22479177aafe6fc4f91c
parent7f94ce9847eae9e8d27e90a466c8b96f6b6f7c22 (diff)
parent5d34c3de440fefd846fc3f36de991cd284b890f5 (diff)
Merge branch 'master' into canary
-rw-r--r--README.md76
-rw-r--r--assets/scss/grid.scss3
-rw-r--r--assets/scss/partials/highlight/common.scss427
-rw-r--r--assets/scss/partials/highlight/dark.scss389
-rw-r--r--assets/scss/partials/highlight/light.scss414
-rw-r--r--assets/scss/partials/layout/article.scss6
-rw-r--r--assets/ts/smoothAnchors.ts11
-rw-r--r--i18n/ar.yaml4
-rw-r--r--i18n/bn.yaml25
-rw-r--r--i18n/ko.yaml4
-rw-r--r--i18n/pt-br.yaml4
-rw-r--r--i18n/pt-pt.yaml67
-rw-r--r--layouts/_default/baseof.html2
-rw-r--r--layouts/partials/article/components/details.html11
-rw-r--r--layouts/partials/comments/provider/giscus.html2
-rw-r--r--layouts/partials/comments/provider/remark42.html18
-rw-r--r--layouts/partials/data/description.html5
-rw-r--r--layouts/partials/head/head.html1
-rw-r--r--layouts/partials/sidebar/left.html1
19 files changed, 591 insertions, 879 deletions
diff --git a/README.md b/README.md
index 4289b30..121ea55 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,10 @@
-![Stack](https://i.imgur.com/cCiHOGS.jpg)
+![image](https://user-images.githubusercontent.com/5889006/190859441-141b5f81-8483-40d2-bd96-ebf85616a46d.png)
+
# Hugo Theme Stack
-> Card-style Hugo theme designed for bloggers.
+<img align="right" width="150" alt="logo" src="https://user-images.githubusercontent.com/5889006/190859553-5b229b4f-c476-4cbd-928f-890f5265ca4c.png">
+
+Card-style Hugo theme designed for bloggers.
## Quickstart
@@ -9,45 +12,12 @@ Use this template: [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJim
## Demo
-[Example Site](https://demo.stack.jimmycai.com/)
-
-[![Netlify Status](https://api.netlify.com/api/v1/badges/a2d2807a-a905-4bcb-97da-8da8d847da3d/deploy-status)](https://app.netlify.com/sites/hugo-theme-stack/deploys)
+* Stater template demo: [demo.stack.jimmycai.com](https://demo.stack.jimmycai.com)
+* Dev build: [dev.stack.jimmycai.com](https://dev.stack.jimmycai.com)
## Documentation
-[Documentation](https://docs.stack.jimmycai.com/) | [中文文档](https://docs.stack.jimmycai.com/zh/)
-
-## Introduction
-
-Stack is a simple card-style Hugo theme designed for bloggers, some of its features are:
-
-- Responsive images support
-- Lazy load images
-- Dark mode
-- Local search
-- [PhotoSwipe](https://photoswipe.com/) integration
-- Archive page template
-- Full native JavaScript, no jQuery or any other frameworks are used
-- No CSS framework, keep it simple and minimal
-- Properly cropped thumbnails
-- Subsection support
-- Table of contents
-- Multilingual mode and RTL support
-
-## Requirements
-
-It's necessary to use **Hugo Extended ≥ 0.87.0**.
-
-## Installation
-
-* Route 1: Clone / Download this repository to `themes` folder
-* Route 2: Turn your site into a hugo module and add this theme as a module dependency
-
- Edit your site config following `exampleSite/config.yaml`.
-
-*Note: Remove `config.toml` if there is one in the site folder.*
-
-Check [documentation](https://docs.stack.jimmycai.com/) for more details.
+Visit [stack.jimmycai.com](https://stack.jimmycai.com)
## Copyright
@@ -56,33 +26,3 @@ Check [documentation](https://docs.stack.jimmycai.com/) for more details.
Please do not remove the "*Theme Stack designed by Jimmy*" text and link.
If you want to port this theme to another blogging platform, please let me know🙏.
-
-## Sponsoring
-
-If you like this theme, give it a star, and consider supporting its development:
-
-[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/C0C530AXX)
-
-Your support is greatly appreciated :)
-
-## Thanks to
-
-| Project | Description | Licence |
-| ------- | ----------- | ------- |
-| [PhotoSwipe](https://photoswipe.com/) | For the lightbox effect | [MIT](https://github.com/dimsemenov/PhotoSwipe/blob/master/LICENSE) |
-| [Normalize.css](https://github.com/necolas/normalize.css) | - | [MIT](https://github.com/necolas/normalize.css/blob/master/LICENSE.md) |
-| [Node Vibrant](https://github.com/Vibrant-Colors/node-vibrant) | To extract the color from images | [MIT](https://github.com/Vibrant-Colors/node-vibrant/blob/master/LICENSE.md)
-| [Tabler icons](https://github.com/tabler/tabler-icons) | Default menu icons | [MIT](https://github.com/tabler/tabler-icons/blob/master/LICENSE) |
-| [jonsuh/hamburgers](https://github.com/jonsuh/hamburgers) | Hamburger icon of menu | [MIT](https://github.com/jonsuh/hamburgers/blob/master/LICENSE) |
-| [lepture/yue.css](https://github.com/lepture/yue.css) | Part of it is used for styling article content | MIT |
-| [Typlog](https://typlog.com/) | Where the markdown gallery syntax is borrowed from | The author gave me the permission |
-| [Pure CSS implementation of Google Photos / 500px image layout](https://github.com/xieranmaya/blog/issues/6) | Used for image gallery | - |
-
-### References
-
-Some references that I took while building this theme:
-
-| Project | Licence|
-| ------- | ------|
-| [artchen/hexo-theme-element](https://github.com/artchen/hexo-theme-element) | [MIT](https://github.com/artchen/hexo-theme-element/blob/master/LICENSE) |
-| [MunifTanjim/minimo](https://github.com/MunifTanjim/minimo) | [MIT](https://github.com/MunifTanjim/minimo/blob/master/LICENSE) |
diff --git a/assets/scss/grid.scss b/assets/scss/grid.scss
index 84967ef..9284da9 100644
--- a/assets/scss/grid.scss
+++ b/assets/scss/grid.scss
@@ -3,10 +3,12 @@
margin-right: auto;
.left-sidebar {
+ order: -3;
max-width: var(--left-sidebar-max-width);
}
.right-sidebar {
+ order: -1;
max-width: var(--right-sidebar-max-width);
/// Display right sidebar when min-width: lg
@@ -73,6 +75,7 @@
}
main.main {
+ order: -2;
min-width: 0;
max-width: 100%;
flex-grow: 1;
diff --git a/assets/scss/partials/highlight/common.scss b/assets/scss/partials/highlight/common.scss
new file mode 100644
index 0000000..c9b70bb
--- /dev/null
+++ b/assets/scss/partials/highlight/common.scss
@@ -0,0 +1,427 @@
+/* Background */
+.chroma {
+ color: $color;
+ background-color: $background-color;
+}
+
+/* Other */
+.chroma .x {
+}
+
+/* Error */
+.chroma .err {
+ color: $error-color;
+}
+
+/* LineTableTD */
+.chroma .lntd {
+ vertical-align: top;
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+/* LineTable */
+.chroma .lntable {
+ border-spacing: 0;
+ padding: 0;
+ margin: 0;
+ border: 0;
+ width: 100%;
+ display: block;
+
+ > tbody {
+ display: block;
+ width: 100%;
+ > tr {
+ display: flex;
+ width: 100%;
+ > td:last-child {
+ overflow-x: auto;
+ }
+ }
+ }
+}
+
+/* LineHighlight */
+.chroma .hl {
+ display: block;
+ width: 100%;
+ background-color: #ffffcc;
+}
+
+/* LineNumbersTable */
+.chroma .lnt {
+ margin-right: 0.4em;
+ padding: 0 0.4em 0 0.4em;
+ color: #7f7f7f;
+}
+
+/* LineNumbers */
+.chroma .ln {
+ margin-right: 0.4em;
+ padding: 0 0.4em 0 0.4em;
+ color: #7f7f7f;
+}
+
+/* Keyword */
+.chroma .k {
+ color: $keyword-color;
+}
+
+/* KeywordConstant */
+.chroma .kc {
+ color: $keyword-color;
+}
+
+/* KeywordDeclaration */
+.chroma .kd {
+ color: $keyword-color;
+}
+
+/* KeywordNamespace */
+.chroma .kn {
+ color: #f92672;
+}
+
+/* KeywordPseudo */
+.chroma .kp {
+ color: $keyword-color;
+}
+
+/* KeywordReserved */
+.chroma .kr {
+ color: $keyword-color;
+}
+
+/* KeywordType */
+.chroma .kt {
+ color: $keyword-color;
+}
+
+/* Name */
+.chroma .n {
+ color: $text-color;
+}
+
+/* NameAttribute */
+.chroma .na {
+ color: $name-color;
+}
+
+/* NameBuiltin */
+.chroma .nb {
+ color: $text-color;
+}
+
+/* NameBuiltinPseudo */
+.chroma .bp {
+ color: $text-color;
+}
+
+/* NameClass */
+.chroma .nc {
+ color: $name-color;
+}
+
+/* NameConstant */
+.chroma .no {
+ color: $keyword-color;
+}
+
+/* NameDecorator */
+.chroma .nd {
+ color: $name-color;
+}
+
+/* NameEntity */
+.chroma .ni {
+ color: $text-color;
+}
+
+/* NameException */
+.chroma .ne {
+ color: $name-color;
+}
+
+/* NameFunction */
+.chroma .nf {
+ color: $name-color;
+}
+
+/* NameFunctionMagic */
+.chroma .fm {
+ color: $text-color;
+}
+
+/* NameLabel */
+.chroma .nl {
+ color: $text-color;
+}
+
+/* NameNamespace */
+.chroma .nn {
+ color: $text-color;
+}
+
+/* NameOther */
+.chroma .nx {
+ color: $name-color;
+}
+
+/* NameProperty */
+.chroma .py {
+ color: $text-color;
+}
+
+/* NameTag */
+.chroma .nt {
+ color: #f92672;
+}
+
+/* NameVariable */
+.chroma .nv {
+ color: $text-color;
+}
+
+/* NameVariableClass */
+.chroma .vc {
+ color: $text-color;
+}
+
+/* NameVariableGlobal */
+.chroma .vg {
+ color: $text-color;
+}
+
+/* NameVariableInstance */
+.chroma .vi {
+ color: $text-color;
+}
+
+/* NameVariableMagic */
+.chroma .vm {
+ color: $text-color;
+}
+
+/* Literal */
+.chroma .l {
+ color: #ae81ff;
+}
+
+/* LiteralDate */
+.chroma .ld {
+ color: $literal-color;
+}
+
+/* LiteralString */
+.chroma .s {
+ color: $literal-color;
+}
+
+/* LiteralStringAffix */
+.chroma .sa {
+ color: $literal-color;
+}
+
+/* LiteralStringBacktick */
+.chroma .sb {
+ color: $literal-color;
+}
+
+/* LiteralStringChar */
+.chroma .sc {
+ color: $literal-color;
+}
+
+/* LiteralStringDelimiter */
+.chroma .dl {
+ color: $literal-color;
+}
+
+/* LiteralStringDoc */
+.chroma .sd {
+ color: $literal-color;
+}
+
+/* LiteralStringDouble */
+.chroma .s2 {
+ color: $literal-color;
+}
+
+/* LiteralStringEscape */
+.chroma .se {
+ color: #ae81ff;
+}
+
+/* LiteralStringHeredoc */
+.chroma .sh {
+ color: $literal-color;
+}
+
+/* LiteralStringInterpol */
+.chroma .si {
+ color: $literal-color;
+}
+
+/* LiteralStringOther */
+.chroma .sx {
+ color: $literal-color;
+}
+
+/* LiteralStringRegex */
+.chroma .sr {
+ color: $literal-color;
+}
+
+/* LiteralStringSingle */
+.chroma .s1 {
+ color: $literal-color;
+}
+
+/* LiteralStringSymbol */
+.chroma .ss {
+ color: $literal-color;
+}
+
+/* LiteralNumber */
+.chroma .m {
+ color: #ae81ff;
+}
+
+/* LiteralNumberBin */
+.chroma .mb {
+ color: #ae81ff;
+}
+
+/* LiteralNumberFloat */
+.chroma .mf {
+ color: #ae81ff;
+}
+
+/* LiteralNumberHex */
+.chroma .mh {
+ color: #ae81ff;
+}
+
+/* LiteralNumberInteger */
+.chroma .mi {
+ color: #ae81ff;
+}
+
+/* LiteralNumberIntegerLong */
+.chroma .il {
+ color: #ae81ff;
+}
+
+/* LiteralNumberOct */
+.chroma .mo {
+ color: #ae81ff;
+}
+
+/* Operator */
+.chroma .o {
+ color: #f92672;
+}
+
+/* OperatorWord */
+.chroma .ow {
+ color: #f92672;
+}
+
+/* Punctuation */
+.chroma .p {
+ color: $text-color;
+}
+
+/* Comment */
+.chroma .c {
+ color: #75715e;
+}
+
+/* CommentHashbang */
+.chroma .ch {
+ color: #75715e;
+}
+
+/* CommentMultiline */
+.chroma .cm {
+ color: #75715e;
+}
+
+/* CommentSingle */
+.chroma .c1 {
+ color: #75715e;
+}
+
+/* CommentSpecial */
+.chroma .cs {
+ color: #75715e;
+}
+
+/* CommentPreproc */
+.chroma .cp {
+ color: #75715e;
+}
+
+/* CommentPreprocFile */
+.chroma .cpf {
+ color: #75715e;
+}
+
+/* Generic */
+.chroma .g {
+}
+
+/* GenericDeleted */
+.chroma .gd {
+ color: #f92672;
+}
+
+/* GenericEmph */
+.chroma .ge {
+ font-style: italic;
+}
+
+/* GenericError */
+.chroma .gr {
+}
+
+/* GenericHeading */
+.chroma .gh {
+}
+
+/* GenericInserted */
+.chroma .gi {
+ color: $name-color;
+}
+
+/* GenericOutput */
+.chroma .go {
+}
+
+/* GenericPrompt */
+.chroma .gp {
+}
+
+/* GenericStrong */
+.chroma .gs {
+ font-weight: bold;
+}
+
+/* GenericSubheading */
+.chroma .gu {
+ color: #75715e;
+}
+
+/* GenericTraceback */
+.chroma .gt {
+}
+
+/* GenericUnderline */
+.chroma .gl {
+}
+
+/* TextWhitespace */
+.chroma .w {
+}
diff --git a/assets/scss/partials/highlight/dark.scss b/assets/scss/partials/highlight/dark.scss
index 489f1e5..3ea6c56 100644
--- a/assets/scss/partials/highlight/dark.scss
+++ b/assets/scss/partials/highlight/dark.scss
@@ -3,383 +3,12 @@
* https://xyproto.github.io/splash/docs/monokai.html
*/
-/* Background */
-.chroma {
- color: #f8f8f2;
- background-color: #272822
-}
-
-/* Other */
-.chroma .x {}
-
-/* Error */
-.chroma .err {
- color: #bb0064;
-}
-
-/* LineTableTD */
-.chroma .lntd {
- vertical-align: top;
- padding: 0;
- margin: 0;
- border: 0;
-}
-
-/* LineTable */
-.chroma .lntable {
- border-spacing: 0;
- padding: 0;
- margin: 0;
- border: 0;
- width: auto;
- overflow: auto;
- display: block;
-}
-
-/* LineHighlight */
-.chroma .hl {
- display: block;
- width: 100%;
- background-color: #ffffcc
-}
-
-/* LineNumbersTable */
-.chroma .lnt {
- margin-right: 0.4em;
- padding: 0 0.4em 0 0.4em;
- color: #7f7f7f;
- display: block;
-}
-
-/* LineNumbers */
-.chroma .ln {
- margin-right: 0.4em;
- padding: 0 0.4em 0 0.4em;
- color: #7f7f7f
-}
-
-/* Keyword */
-.chroma .k {
- color: #66d9ef
-}
-
-/* KeywordConstant */
-.chroma .kc {
- color: #66d9ef
-}
-
-/* KeywordDeclaration */
-.chroma .kd {
- color: #66d9ef
-}
-
-/* KeywordNamespace */
-.chroma .kn {
- color: #f92672
-}
-
-/* KeywordPseudo */
-.chroma .kp {
- color: #66d9ef
-}
-
-/* KeywordReserved */
-.chroma .kr {
- color: #66d9ef
-}
-
-/* KeywordType */
-.chroma .kt {
- color: #66d9ef
-}
-
-/* Name */
-.chroma .n {}
-
-/* NameAttribute */
-.chroma .na {
- color: #a6e22e
-}
-
-/* NameBuiltin */
-.chroma .nb {}
-
-/* NameBuiltinPseudo */
-.chroma .bp {}
-
-/* NameClass */
-.chroma .nc {
- color: #a6e22e
-}
-
-/* NameConstant */
-.chroma .no {
- color: #66d9ef
-}
-
-/* NameDecorator */
-.chroma .nd {
- color: #a6e22e
-}
-
-/* NameEntity */
-.chroma .ni {}
-
-/* NameException */
-.chroma .ne {
- color: #a6e22e
-}
-
-/* NameFunction */
-.chroma .nf {
- color: #a6e22e
-}
-
-/* NameFunctionMagic */
-.chroma .fm {}
-
-/* NameLabel */
-.chroma .nl {}
-
-/* NameNamespace */
-.chroma .nn {}
-
-/* NameOther */
-.chroma .nx {
- color: #a6e22e
-}
-
-/* NameProperty */
-.chroma .py {}
-
-/* NameTag */
-.chroma .nt {
- color: #f92672
-}
-
-/* NameVariable */
-.chroma .nv {}
-
-/* NameVariableClass */
-.chroma .vc {}
-
-/* NameVariableGlobal */
-.chroma .vg {}
-
-/* NameVariableInstance */
-.chroma .vi {}
-
-/* NameVariableMagic */
-.chroma .vm {}
-
-/* Literal */
-.chroma .l {
- color: #ae81ff
-}
-
-/* LiteralDate */
-.chroma .ld {
- color: #e6db74
-}
-
-/* LiteralString */
-.chroma .s {
- color: #e6db74
-}
-
-/* LiteralStringAffix */
-.chroma .sa {
- color: #e6db74
-}
-
-/* LiteralStringBacktick */
-.chroma .sb {
- color: #e6db74
-}
-
-/* LiteralStringChar */
-.chroma .sc {
- color: #e6db74
-}
-
-/* LiteralStringDelimiter */
-.chroma .dl {
- color: #e6db74
-}
-
-/* LiteralStringDoc */
-.chroma .sd {
- color: #e6db74
-}
-
-/* LiteralStringDouble */
-.chroma .s2 {
- color: #e6db74
-}
-
-/* LiteralStringEscape */
-.chroma .se {
- color: #ae81ff
-}
-
-/* LiteralStringHeredoc */
-.chroma .sh {
- color: #e6db74
-}
-
-/* LiteralStringInterpol */
-.chroma .si {
- color: #e6db74
-}
-
-/* LiteralStringOther */
-.chroma .sx {
- color: #e6db74
-}
-
-/* LiteralStringRegex */
-.chroma .sr {
- color: #e6db74
-}
-
-/* LiteralStringSingle */
-.chroma .s1 {
- color: #e6db74
-}
-
-/* LiteralStringSymbol */
-.chroma .ss {
- color: #e6db74
-}
-
-/* LiteralNumber */
-.chroma .m {
- color: #ae81ff
-}
-
-/* LiteralNumberBin */
-.chroma .mb {
- color: #ae81ff
-}
-
-/* LiteralNumberFloat */
-.chroma .mf {
- color: #ae81ff
-}
-
-/* LiteralNumberHex */
-.chroma .mh {
- color: #ae81ff
-}
-
-/* LiteralNumberInteger */
-.chroma .mi {
- color: #ae81ff
-}
-
-/* LiteralNumberIntegerLong */
-.chroma .il {
- color: #ae81ff
-}
-
-/* LiteralNumberOct */
-.chroma .mo {
- color: #ae81ff
-}
-
-/* Operator */
-.chroma .o {
- color: #f92672
-}
-
-/* OperatorWord */
-.chroma .ow {
- color: #f92672
-}
-
-/* Punctuation */
-.chroma .p {}
-
-/* Comment */
-.chroma .c {
- color: #75715e
-}
-
-/* CommentHashbang */
-.chroma .ch {
- color: #75715e
-}
-
-/* CommentMultiline */
-.chroma .cm {
- color: #75715e
-}
-
-/* CommentSingle */
-.chroma .c1 {
- color: #75715e
-}
-
-/* CommentSpecial */
-.chroma .cs {
- color: #75715e
-}
-
-/* CommentPreproc */
-.chroma .cp {
- color: #75715e
-}
-
-/* CommentPreprocFile */
-.chroma .cpf {
- color: #75715e
-}
-
-/* Generic */
-.chroma .g {}
-
-/* GenericDeleted */
-.chroma .gd {
- color: #f92672
-}
-
-/* GenericEmph */
-.chroma .ge {
- font-style: italic
-}
-
-/* GenericError */
-.chroma .gr {}
-
-/* GenericHeading */
-.chroma .gh {}
-
-/* GenericInserted */
-.chroma .gi {
- color: #a6e22e
-}
-
-/* GenericOutput */
-.chroma .go {}
-
-/* GenericPrompt */
-.chroma .gp {}
-
-/* GenericStrong */
-.chroma .gs {
- font-weight: bold
-}
-
-/* GenericSubheading */
-.chroma .gu {
- color: #75715e
-}
-
-/* GenericTraceback */
-.chroma .gt {}
-
-/* GenericUnderline */
-.chroma .gl {}
-
-/* TextWhitespace */
-.chroma .w {} \ No newline at end of file
+$color: #f8f8f2;
+$background-color: #272822;
+$error-color: #bb0064;
+$keyword-color: #66d9ef;
+$text-color: $color;
+$name-color: #a6e22e;
+$literal-color: #e6db74;
+
+@import "common.scss"; \ No newline at end of file
diff --git a/assets/scss/partials/highlight/light.scss b/assets/scss/partials/highlight/light.scss
index d904571..174b649 100644
--- a/assets/scss/partials/highlight/light.scss
+++ b/assets/scss/partials/highlight/light.scss
@@ -3,408 +3,12 @@
* https://xyproto.github.io/splash/docs/monokailight.html
*/
-/* Background */
-.chroma {
- color: #272822;
- background-color: #fafafa;
-}
-
-/* Other */
-.chroma .x {
-}
-
-/* Error */
-.chroma .err {
- color: #960050;
-}
-
-/* LineTableTD */
-.chroma .lntd {
- vertical-align: top;
- padding: 0;
- margin: 0;
- border: 0;
-}
-
-/* LineTable */
-.chroma .lntable {
- border-spacing: 0;
- padding: 0;
- margin: 0;
- border: 0;
- width: auto;
- overflow: auto;
- display: block;
-}
-
-/* LineHighlight */
-.chroma .hl {
- display: block;
- width: 100%;
- background-color: #ffffcc;
-}
-
-/* LineNumbersTable */
-.chroma .lnt {
- margin-right: 0.4em;
- padding: 0 0.4em 0 0.4em;
- color: #7f7f7f;
- display: block;
-}
-
-/* LineNumbers */
-.chroma .ln {
- margin-right: 0.4em;
- padding: 0 0.4em 0 0.4em;
- color: #7f7f7f;
-}
-
-/* Keyword */
-.chroma .k {
- color: #00a8c8;
-}
-
-/* KeywordConstant */
-.chroma .kc {
- color: #00a8c8;
-}
-
-/* KeywordDeclaration */
-.chroma .kd {
- color: #00a8c8;
-}
-
-/* KeywordNamespace */
-.chroma .kn {
- color: #f92672;
-}
-
-/* KeywordPseudo */
-.chroma .kp {
- color: #00a8c8;
-}
-
-/* KeywordReserved */
-.chroma .kr {
- color: #00a8c8;
-}
-
-/* KeywordType */
-.chroma .kt {
- color: #00a8c8;
-}
-
-/* Name */
-.chroma .n {
- color: #111111;
-}
-
-/* NameAttribute */
-.chroma .na {
- color: #75af00;
-}
-
-/* NameBuiltin */
-.chroma .nb {
- color: #111111;
-}
-
-/* NameBuiltinPseudo */
-.chroma .bp {
- color: #111111;
-}
-
-/* NameClass */
-.chroma .nc {
- color: #75af00;
-}
-
-/* NameConstant */
-.chroma .no {
- color: #00a8c8;
-}
-
-/* NameDecorator */
-.chroma .nd {
- color: #75af00;
-}
-
-/* NameEntity */
-.chroma .ni {
- color: #111111;
-}
-
-/* NameException */
-.chroma .ne {
- color: #75af00;
-}
-
-/* NameFunction */
-.chroma .nf {
- color: #75af00;
-}
-
-/* NameFunctionMagic */
-.chroma .fm {
- color: #111111;
-}
-
-/* NameLabel */
-.chroma .nl {
- color: #111111;
-}
-
-/* NameNamespace */
-.chroma .nn {
- color: #111111;
-}
-
-/* NameOther */
-.chroma .nx {
- color: #75af00;
-}
-
-/* NameProperty */
-.chroma .py {
- color: #111111;
-}
-
-/* NameTag */
-.chroma .nt {
- color: #f92672;
-}
-
-/* NameVariable */
-.chroma .nv {
- color: #111111;
-}
-
-/* NameVariableClass */
-.chroma .vc {
- color: #111111;
-}
-
-/* NameVariableGlobal */
-.chroma .vg {
- color: #111111;
-}
-
-/* NameVariableInstance */
-.chroma .vi {
- color: #111111;
-}
-
-/* NameVariableMagic */
-.chroma .vm {
- color: #111111;
-}
-
-/* Literal */
-.chroma .l {
- color: #ae81ff;
-}
-
-/* LiteralDate */
-.chroma .ld {
- color: #d88200;
-}
-
-/* LiteralString */
-.chroma .s {
- color: #d88200;
-}
-
-/* LiteralStringAffix */
-.chroma .sa {
- color: #d88200;
-}
-
-/* LiteralStringBacktick */
-.chroma .sb {
- color: #d88200;
-}
-
-/* LiteralStringChar */
-.chroma .sc {
- color: #d88200;
-}
-
-/* LiteralStringDelimiter */
-.chroma .dl {
- color: #d88200;
-}
-
-/* LiteralStringDoc */
-.chroma .sd {
- color: #d88200;
-}
-
-/* LiteralStringDouble */
-.chroma .s2 {
- color: #d88200;
-}
-
-/* LiteralStringEscape */
-.chroma .se {
- color: #8045ff;
-}
-
-/* LiteralStringHeredoc */
-.chroma .sh {
- color: #d88200;
-}
-
-/* LiteralStringInterpol */
-.chroma .si {
- color: #d88200;
-}
-
-/* LiteralStringOther */
-.chroma .sx {
- color: #d88200;
-}
-
-/* LiteralStringRegex */
-.chroma .sr {
- color: #d88200;
-}
-
-/* LiteralStringSingle */
-.chroma .s1 {
- color: #d88200;
-}
-
-/* LiteralStringSymbol */
-.chroma .ss {
- color: #d88200;
-}
-
-/* LiteralNumber */
-.chroma .m {
- color: #ae81ff;
-}
-
-/* LiteralNumberBin */
-.chroma .mb {
- color: #ae81ff;
-}
-
-/* LiteralNumberFloat */
-.chroma .mf {
- color: #ae81ff;
-}
-
-/* LiteralNumberHex */
-.chroma .mh {
- color: #ae81ff;
-}
-
-/* LiteralNumberInteger */
-.chroma .mi {
- color: #ae81ff;
-}
-
-/* LiteralNumberIntegerLong */
-.chroma .il {
- color: #ae81ff;
-}
-
-/* LiteralNumberOct */
-.chroma .mo {
- color: #ae81ff;
-}
-
-/* Operator */
-.chroma .o {
- color: #f92672;
-}
-
-/* OperatorWord */
-.chroma .ow {
- color: #f92672;
-}
-
-/* Punctuation */
-.chroma .p {
- color: #111111;
-}
-
-/* Comment */
-.chroma .c {
- color: #75715e;
-}
-
-/* CommentHashbang */
-.chroma .ch {
- color: #75715e;
-}
-
-/* CommentMultiline */
-.chroma .cm {
- color: #75715e;
-}
-
-/* CommentSingle */
-.chroma .c1 {
- color: #75715e;
-}
-
-/* CommentSpecial */
-.chroma .cs {
- color: #75715e;
-}
-
-/* CommentPreproc */
-.chroma .cp {
- color: #75715e;
-}
-
-/* CommentPreprocFile */
-.chroma .cpf {
- color: #75715e;
-}
-
-/* Generic */
-.chroma .g {
-}
-/* GenericDeleted */
-.chroma .gd {
- color: #f92672;
-}
-/* GenericEmph */
-.chroma .ge {
- font-style: italic;
-}
-/* GenericError */
-.chroma .gr {
-}
-/* GenericHeading */
-.chroma .gh {
-}
-/* GenericInserted */
-.chroma .gi {
- color: #7ca727;
-}
-/* GenericOutput */
-.chroma .go {
-}
-/* GenericPrompt */
-.chroma .gp {
-}
-/* GenericStrong */
-.chroma .gs {
- font-weight: bold;
-}
-/* GenericSubheading */
-.chroma .gu {
- color: #75715e;
-}
-/* GenericTraceback */
-.chroma .gt {
-}
-/* GenericUnderline */
-.chroma .gl {
-}
-/* TextWhitespace */
-.chroma .w {
-}
+$color: #272822;
+$background-color: #fafafa;
+$error-color: #960050;
+$keyword-color: #00a8c8;
+$text-color: #111111;
+$name-color: #75af00;
+$literal-color: #d88200;
+
+@import "common.scss";
diff --git a/assets/scss/partials/layout/article.scss b/assets/scss/partials/layout/article.scss
index 90d0ce8..ba06c11 100644
--- a/assets/scss/partials/layout/article.scss
+++ b/assets/scss/partials/layout/article.scss
@@ -420,4 +420,10 @@
margin-right: calc((var(--card-padding)) * -1);
width: calc(100% + var(--card-padding) * 2);
}
+
+ /// Make long KaTeX equations scrollable in the x-axis
+ .katex-display > .katex {
+ overflow-x: auto;
+ overflow-y: hidden;
+ }
}
diff --git a/assets/ts/smoothAnchors.ts b/assets/ts/smoothAnchors.ts
index 379eb39..46a4a03 100644
--- a/assets/ts/smoothAnchors.ts
+++ b/assets/ts/smoothAnchors.ts
@@ -21,12 +21,15 @@ function setupSmoothAnchors() {
aElement.addEventListener("click", clickEvent => {
clickEvent.preventDefault();
- let targetId = aElement.getAttribute("href").substring(1);
- // The replace done on ':' is here for footnotes, as this character would otherwise interfere when used as a CSS selector.
- let target = document.getElementById(targetId.replace(":", "\\:")) as HTMLElement;
+ const targetId = aElement.getAttribute("href").substring(1),
+ target = document.getElementById(targetId) as HTMLElement,
+ offset = target.getBoundingClientRect().top - document.documentElement.getBoundingClientRect().top;
window.history.pushState({}, "", aElement.getAttribute("href"));
- scrollTo({ top: target.offsetTop, behavior: "smooth" });
+ scrollTo({
+ top: offset,
+ behavior: "smooth"
+ });
});
});
}
diff --git a/i18n/ar.yaml b/i18n/ar.yaml
index bb867d7..61e0262 100644
--- a/i18n/ar.yaml
+++ b/i18n/ar.yaml
@@ -28,9 +28,13 @@ widget:
archives:
title: الارشيفات
more: اكثر
+
tagCloud:
title: وسوم
+ categoriesCloud:
+ title: التصنيفات
+
search:
title: بحث
placeholder: اكتب...
diff --git a/i18n/bn.yaml b/i18n/bn.yaml
index 1108ad8..0e3e511 100644
--- a/i18n/bn.yaml
+++ b/i18n/bn.yaml
@@ -4,25 +4,32 @@ darkMode: ডার্ক মোড
list:
page:
- one: "{{ .Count }} পৃষ্ঠা"
- other: "{{ .Count }} পৃষ্ঠা"
+ one: "{{ .Count }} পাতা"
+ other: "{{ .Count }} পাতা"
+
section: অনুচ্ছেদ
+
subsection:
- one: উপঅনুচ্ছেদ
- other: উপঅনুচ্ছেদ
+ one: উপ-অনুচ্ছেদ
+ other: উপ-অনুচ্ছেদ
article:
- back: পেছনে যান
+ back: পেছনে
+
tableOfContents: সূচিপত্র
+
relatedContent: সম্পর্কিত বিষয়বস্তু
- lastUpdatedOn: শেষ হালনাগাদ করা হয়েছে
+
+ lastUpdatedOn: সর্বশেষ আপডেট করা হয়েছে
+
readingTime:
one: "{{ .Count }} মিনিটে পড়া যাবে"
other: "{{ .Count }} মিনিটে পড়া যাবে"
notFound:
title: পাওয়া যায়নি
- subtitle: এই পৃষ্ঠাটি বিদ্যমান নেই
+
+ subtitle: এই পাতাটি বিদ্যমান নেই
widget:
archives:
@@ -35,8 +42,10 @@ widget:
search:
title: অনুসন্ধান
+
placeholder: কিছু টাইপ করুন...
- resultTitle: "#PAGES_COUNT পৃষ্ঠা (#TIME_SECONDS সেকেন্ড)"
+
+ resultTitle: "#PAGES_COUNT পাতা (#TIME_SECONDS সেকেন্ড)"
footer:
builtWith: "{{ .Generator }} দিয়ে নির্মিত"
diff --git a/i18n/ko.yaml b/i18n/ko.yaml
index 6589568..05c0530 100644
--- a/i18n/ko.yaml
+++ b/i18n/ko.yaml
@@ -28,6 +28,10 @@ widget:
archives:
title: 보관함
more: 더보기
+
+ categoriesCloud:
+ title: 카테고리
+
tagCloud:
title: 태그
diff --git a/i18n/pt-br.yaml b/i18n/pt-br.yaml
index 6ec29e3..b1235cb 100644
--- a/i18n/pt-br.yaml
+++ b/i18n/pt-br.yaml
@@ -28,9 +28,13 @@ widget:
archives:
title: Arquivos
more: Mais
+
tagCloud:
title: Tags
+ categoriesCloud:
+ title: Categorias
+
search:
title: Busca
placeholder: Digite algo...
diff --git a/i18n/pt-pt.yaml b/i18n/pt-pt.yaml
new file mode 100644
index 0000000..f524969
--- /dev/null
+++ b/i18n/pt-pt.yaml
@@ -0,0 +1,67 @@
+toggleMenu:
+ other: Alternar Menu
+
+darkMode:
+ other: Modo Escuro
+
+list:
+ page:
+ one: "{{ .Count }} página"
+ other: "{{ .Count }} páginas"
+
+ section:
+ other: Secção
+
+ subsection:
+ one: Subsecção
+ other: Subsecções
+
+article:
+ back:
+ other: Voltar
+
+ tableOfContents:
+ other: Índice
+
+ relatedContent:
+ other: Conteúdo relacionado
+
+ lastUpdatedOn:
+ other: Última atualização a
+
+ readingTime:
+ one: "{{ .Count }} minuto de leitura"
+ other: "{{ .Count }} minutos de leitura"
+
+notFound:
+ title:
+ other: Não Encontrado
+ subtitle:
+ other: Esta página não existe.
+
+widget:
+ archives:
+ title:
+ other: Arquivos
+ more:
+ other: Mais
+ tagCloud:
+ title:
+ other: Tags
+ categoriesCloud:
+ title:
+ other: Categorias
+
+search:
+ title:
+ other: Pesquisa
+ placeholder:
+ other: Escreva algo...
+ resultTitle:
+ other: "#PAGES_COUNT páginas (#TIME_SECONDS segundos)"
+
+footer:
+ builtWith:
+ other: Criado com {{ .Generator }}
+ designedBy:
+ other: Tema {{ .Theme }} desenvolvido por {{ .DesignedBy }}
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 081277b..83fdaa3 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -18,10 +18,10 @@
{{- block "left-sidebar" . -}}
{{ partial "sidebar/left.html" . }}
{{- end -}}
+ {{- block "right-sidebar" . -}}{{ end }}
<main class="main full-width">
{{- block "main" . }}{{- end }}
</main>
- {{- block "right-sidebar" . -}}{{ end }}
</div>
{{ partial "footer/include.html" . }}
</body>
diff --git a/layouts/partials/article/components/details.html b/layouts/partials/article/components/details.html
index 4cd26e3..cc0a0fc 100644
--- a/layouts/partials/article/components/details.html
+++ b/layouts/partials/article/components/details.html
@@ -23,9 +23,12 @@
{{ end }}
</div>
- {{ if or (not .Date.IsZero) (.Site.Params.article.readingTime) }}
+ {{ $showReadingTime := .Params.readingTime | default (.Site.Params.article.readingTime) }}
+ {{ $showDate := not .Date.IsZero }}
+ {{ $showFooter := or $showDate $showReadingTime }}
+ {{ if $showFooter }}
<footer class="article-time">
- {{ if not .Date.IsZero }}
+ {{ if $showDate }}
<div>
{{ partial "helper/icon" "date" }}
<time class="article-time--published">
@@ -34,7 +37,7 @@
</div>
{{ end }}
- {{ if .Site.Params.article.readingTime }}
+ {{ if $showReadingTime }}
<div>
{{ partial "helper/icon" "clock" }}
<time class="article-time--reading">
@@ -55,4 +58,4 @@
</div>
</footer>
{{ end }}
-</div> \ No newline at end of file
+</div>
diff --git a/layouts/partials/comments/provider/giscus.html b/layouts/partials/comments/provider/giscus.html
index abe345f..f7f435d 100644
--- a/layouts/partials/comments/provider/giscus.html
+++ b/layouts/partials/comments/provider/giscus.html
@@ -6,8 +6,10 @@
data-category="{{- .category -}}"
data-category-id="{{- .categoryID -}}"
data-mapping="{{- default `title` .mapping -}}"
+ data-strict="{{- default 0 .strict -}}"
data-reactions-enabled="{{- default 1 .reactionsEnabled -}}"
data-emit-metadata="{{- default 0 .emitMetadata -}}"
+ data-input-position="{{- default `top` .inputPosition -}}"
data-theme="{{- default `light` .lightTheme -}}"
data-lang="{{- default `en` .lang -}}"
crossorigin="anonymous"
diff --git a/layouts/partials/comments/provider/remark42.html b/layouts/partials/comments/provider/remark42.html
index 97196c8..fa284eb 100644
--- a/layouts/partials/comments/provider/remark42.html
+++ b/layouts/partials/comments/provider/remark42.html
@@ -2,10 +2,10 @@
<div id="remark42"></div>
<script>
var remark_config = {
- host: "{{ .host }}",
+ host: '{{ .host }}',
site_id: '{{ .site }}',
components: ['embed'],
- url: "{{ $.Permalink }}",
+ url: '{{ $.Permalink }}',
max_shown_comments: {{ default 15 .max_shown_comments }},
theme: document.documentElement.dataset.scheme,
page_title: '{{ $.Title }}',
@@ -13,14 +13,14 @@
show_email_subscription: {{ default true .show_email_subscription }}
};
- (function (c) {
- for (var i = 0; i < c.length; i++) {
- var d = document, s = d.createElement('script');
- s.src = remark_config.host + '/web/' + c[i] + '.js';
- s.defer = true;
- (d.head || d.body).appendChild(s);
+ function(e, n) {
+ for (var o = 0; o < e.length; o++) {
+ var r = n.createElement('script'),
+ c = '.js',
+ d = n.head || n.body;
+ 'noModule' in r ? (r.type = 'module', c = '.mjs') : r.async = !0, r.defer = !0, r.src = remark_config.host + '/web/' + e[o] + c, d.appendChild(r)
}
- })(remark_config.components || ['embed']);
+ }(remark_config.components || ['embed'], document);
window.addEventListener('onColorSchemeChange', (e) => {
window.REMARK42.changeTheme(e.detail);
diff --git a/layouts/partials/data/description.html b/layouts/partials/data/description.html
index f63d603..4f54e5c 100644
--- a/layouts/partials/data/description.html
+++ b/layouts/partials/data/description.html
@@ -1,6 +1,11 @@
<!-- Use site subtitle by default -->
{{ $description := .Site.Params.sidebar.subtitle }}
+<!-- Seprate description exists -->
+{{ if .Site.Params.description }}
+ {{ $description = .Site.Params.description }}
+{{ end }}
+
{{ if .Description }}
<!-- Page description exists -->
{{ $description = .Description }}
diff --git a/layouts/partials/head/head.html b/layouts/partials/head/head.html
index 826ef3c..5de6071 100644
--- a/layouts/partials/head/head.html
+++ b/layouts/partials/head/head.html
@@ -3,6 +3,7 @@
{{- $description := partialCached "data/description" . .RelPermalink -}}
<meta name='description' content='{{ $description }}'>
+{{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }}
{{- $title := partialCached "data/title" . .RelPermalink -}}
<title>{{ $title }}</title>
diff --git a/layouts/partials/sidebar/left.html b/layouts/partials/sidebar/left.html
index 321e1a6..2dfa1d4 100644
--- a/layouts/partials/sidebar/left.html
+++ b/layouts/partials/sidebar/left.html
@@ -45,6 +45,7 @@
href='{{ .URL }}'
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
{{ with .Name }}title="{{ . }}"{{ end }}
+ rel="me"
>
{{ $icon := default "link" .Params.Icon }}
{{ with $icon }}