mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 03:53:30 +08:00
Compare commits
124 Commits
v4.0.0-alp
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
9e6b7b22a9 | ||
|
f1ab6c6aba | ||
|
087989e427 | ||
|
0991f61d49 | ||
|
839fbd0ecb | ||
|
5175ac5ae3 | ||
|
37f1541c20 | ||
|
f4eb5d3e99 | ||
|
788dd497b3 | ||
|
8a7fb33163 | ||
|
2a18a92901 | ||
|
245b0f2810 | ||
|
0fb25c808b | ||
|
048a000f17 | ||
|
5f157478aa | ||
|
8556681b7c | ||
|
fa760d70cb | ||
|
bdcab89d86 | ||
|
b3907acdae | ||
|
23ff70d41a | ||
|
41a3e5ee13 | ||
|
0558108e30 | ||
|
12f31dfd8a | ||
|
374b25a60f | ||
|
fcd56dd21c | ||
|
fddab05362 | ||
|
f3783856ad | ||
|
130e2f6607 | ||
|
ce798a32a9 | ||
|
609d43b088 | ||
|
797949b37f | ||
|
539c39d69a | ||
|
f8466d94d2 | ||
|
43e074364c | ||
|
b2157bdf78 | ||
|
23607527e4 | ||
|
54a8ace564 | ||
|
b3fbe78ca5 | ||
|
2cb5ba683b | ||
|
5a8607e4a8 | ||
|
eafcf894c8 | ||
|
0b9f6c36ad | ||
|
04bf1956b9 | ||
|
6c7d42d45a | ||
|
2cda779706 | ||
|
4948a3723e | ||
|
43224bd39a | ||
|
4e7865c185 | ||
|
2f9306502d | ||
|
5b0d6fdf7d | ||
|
65cd7f586f | ||
|
f398fb9dd1 | ||
|
9bb3165ff0 | ||
|
405e84291a | ||
|
800f815988 | ||
|
255abd5c88 | ||
|
f53fc128bd | ||
|
188e49ef41 | ||
|
76dc61f0d5 | ||
|
03ee3369e1 | ||
|
21da06e448 | ||
|
20bf719411 | ||
|
bdb9e7fc00 | ||
|
5c98a38a80 | ||
|
bda734fb23 | ||
|
70bcf9cbe0 | ||
|
6f1d676948 | ||
|
d84d0a8522 | ||
|
418d5677b1 | ||
|
be4fd55095 | ||
|
d3682b3567 | ||
|
ce0a252bfa | ||
|
d11923f32b | ||
|
40712eb781 | ||
|
d197d9b249 | ||
|
c6d1d73dd2 | ||
|
5d90624441 | ||
|
5edd4afaf3 | ||
|
41c3033d1a | ||
|
4e2e90da4c | ||
|
eefa686661 | ||
|
1668ebc3e4 | ||
|
f7e442cabb | ||
|
cabaf06ef2 | ||
|
26d2859f70 | ||
|
51e0ec7f99 | ||
|
13568d8ff0 | ||
|
2fb534f9a6 | ||
|
58559c5b3f | ||
|
0bc942bb12 | ||
|
a88fe3f5a7 | ||
|
1bd4dcd415 | ||
|
aae9cf67db | ||
|
cb42d2041f | ||
|
4272da7ee4 | ||
|
d382ca993d | ||
|
3ff06fe033 | ||
|
ff7a56a7ac | ||
|
196116f20d | ||
|
b03390d237 | ||
|
8a597a5c9c | ||
|
d60083e055 | ||
|
5d34c3de44 | ||
|
30e033c660 | ||
|
86314608e3 | ||
|
8611363549 | ||
|
73437f24ea | ||
|
9b464bd9fc | ||
|
70f431ea18 | ||
|
30fdd000f9 | ||
|
ae497c4789 | ||
|
299b80c5f8 | ||
|
414a9915e5 | ||
|
378370f6db | ||
|
e1a85aa5cd | ||
|
b1e8472bcf | ||
|
22d8a396ab | ||
|
94a1f4ade0 | ||
|
8826674b1f | ||
|
efd6f1de37 | ||
|
72c5f4ea24 | ||
|
5869a7ab83 | ||
|
d00dbc17bc | ||
|
655b5102c4 |
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
26
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,17 +1,15 @@
|
|||||||
name: Bug Report
|
name: Bug Report
|
||||||
description: File a bug report
|
description: File a bug report
|
||||||
title: "[Bug]: "
|
|
||||||
labels: ["bug"]
|
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Thanks for taking the time to fill out this bug report! Please provide as much information as possible and make sure you have checked the [documentation](https://docs.stack.jimmycai.com/).
|
Thanks for taking the time to fill out this bug report! Please provide as much information as possible and make sure you have checked the [documentation](https://stack.jimmycai.com/guide/).
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: what-happened
|
id: what-happened
|
||||||
attributes:
|
attributes:
|
||||||
label: What happened?
|
label: What happened?
|
||||||
description: Also tell us, what did you expect to happen? Please be as detailed as possible, include screenshots and any other information that might help us reproduce the problem.
|
description: Also tell us, what did you expect to happen? Please be as detailed as possible, including screenshots and any other information that might help us reproduce the problem.
|
||||||
placeholder: Tell us what you see!
|
placeholder: Tell us what you see!
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
@ -55,21 +53,13 @@ body:
|
|||||||
label: Relevant log output
|
label: Relevant log output
|
||||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||||
render: shell
|
render: shell
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
If the issue is not present on the [demo site](https://demo.stack.jimmycai.com), in order to better understand the problem, please provide the link to the source code of your website (not the generated HTML).
|
|
||||||
Or link to a minimal reproduction of the problem if there are sensible data.
|
|
||||||
- type: input
|
- type: input
|
||||||
id: bug-url
|
id: minimal-reproduction-url
|
||||||
attributes:
|
attributes:
|
||||||
label: Link to the page with bug
|
label: Link to Minimal Reproducible Example
|
||||||
placeholder: https://demo.stack.jimmycai.com
|
description: |
|
||||||
value: https://demo.stack.jimmycai.com
|
Use [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJimmy/hugo-theme-stack-starter) to create a minimal reproduction of the problem.
|
||||||
|
A minimal reproduction is required so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be auto-closed.
|
||||||
|
placeholder: https://github.com/username/your-repository
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
|
||||||
id: source-repo
|
|
||||||
attributes:
|
|
||||||
label: Link to the source repository
|
|
||||||
placeholder: https://github.com/CaiJimmy/hugo-theme-stack
|
|
||||||
|
76
README.md
76
README.md
@ -1,7 +1,10 @@
|
|||||||

|

|
||||||
|
|
||||||
# Hugo Theme Stack
|
# 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
|
## Quickstart
|
||||||
|
|
||||||
@ -9,45 +12,12 @@ Use this template: [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJim
|
|||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
[Example Site](https://demo.stack.jimmycai.com/)
|
* Starter template demo: [demo.stack.jimmycai.com](https://demo.stack.jimmycai.com)
|
||||||
|
* Dev build: [dev.stack.jimmycai.com](https://dev.stack.jimmycai.com)
|
||||||
[](https://app.netlify.com/sites/hugo-theme-stack/deploys)
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
[Documentation](https://docs.stack.jimmycai.com/) | [中文文档](https://docs.stack.jimmycai.com/zh/)
|
Visit [stack.jimmycai.com](https://stack.jimmycai.com)
|
||||||
|
|
||||||
## 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.
|
|
||||||
|
|
||||||
## Copyright
|
## 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.
|
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🙏.
|
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:
|
|
||||||
|
|
||||||
[](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) |
|
|
||||||
|
@ -3,10 +3,12 @@
|
|||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
||||||
.left-sidebar {
|
.left-sidebar {
|
||||||
|
order: -3;
|
||||||
max-width: var(--left-sidebar-max-width);
|
max-width: var(--left-sidebar-max-width);
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-sidebar {
|
.right-sidebar {
|
||||||
|
order: -1;
|
||||||
max-width: var(--right-sidebar-max-width);
|
max-width: var(--right-sidebar-max-width);
|
||||||
|
|
||||||
/// Display right sidebar when min-width: lg
|
/// Display right sidebar when min-width: lg
|
||||||
@ -73,6 +75,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
main.main {
|
main.main {
|
||||||
|
order: -2;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.article-title {
|
.article-title {
|
||||||
|
font-family: var(--article-font-family);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
color: var(--card-text-color-main);
|
color: var(--card-text-color-main);
|
||||||
@ -92,16 +93,15 @@
|
|||||||
.article-time,
|
.article-time,
|
||||||
.article-translations {
|
.article-translations {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
color: var(--card-text-color-tertiary);
|
color: var(--card-text-color-tertiary);
|
||||||
gap: 15px;
|
gap: 15px;
|
||||||
flex-wrap: wrap;
|
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
stroke-width: 1.33;
|
stroke-width: 1.33;
|
||||||
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
time,
|
time,
|
||||||
@ -117,10 +117,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.article-time {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-translations {
|
||||||
|
& > div {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.article-category,
|
.article-category,
|
||||||
.article-tags {
|
.article-tags {
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: var(--accent-color-text);
|
color: var(--accent-color-text);
|
||||||
|
428
assets/scss/partials/highlight/common.scss
Normal file
428
assets/scss/partials/highlight/common.scss
Normal file
@ -0,0 +1,428 @@
|
|||||||
|
/* 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;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 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 {
|
||||||
|
}
|
@ -3,382 +3,12 @@
|
|||||||
* https://xyproto.github.io/splash/docs/monokai.html
|
* https://xyproto.github.io/splash/docs/monokai.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Background */
|
$color: #f8f8f2;
|
||||||
.chroma {
|
$background-color: #272822;
|
||||||
color: #f8f8f2;
|
$error-color: #bb0064;
|
||||||
background-color: #272822
|
$keyword-color: #66d9ef;
|
||||||
}
|
$text-color: $color;
|
||||||
|
$name-color: #a6e22e;
|
||||||
/* Other */
|
$literal-color: #e6db74;
|
||||||
.chroma .x {}
|
|
||||||
|
@import "common.scss";
|
||||||
/* 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
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 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 {}
|
|
||||||
|
@ -3,407 +3,12 @@
|
|||||||
* https://xyproto.github.io/splash/docs/monokailight.html
|
* https://xyproto.github.io/splash/docs/monokailight.html
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Background */
|
$color: #272822;
|
||||||
.chroma {
|
$background-color: #fafafa;
|
||||||
color: #272822;
|
$error-color: #960050;
|
||||||
background-color: #fafafa;
|
$keyword-color: #00a8c8;
|
||||||
}
|
$text-color: #111111;
|
||||||
|
$name-color: #75af00;
|
||||||
/* Other */
|
$literal-color: #d88200;
|
||||||
.chroma .x {
|
|
||||||
}
|
@import "common.scss";
|
||||||
|
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 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 {
|
|
||||||
}
|
|
||||||
|
@ -33,6 +33,10 @@
|
|||||||
margin: var(--card-padding) 0;
|
margin: var(--card-padding) 0;
|
||||||
color: var(--card-text-color-main);
|
color: var(--card-text-color-main);
|
||||||
|
|
||||||
|
.footnotes {
|
||||||
|
font-family: var(--base-font-family);
|
||||||
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
@ -63,7 +67,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.article-tags {
|
.article-tags {
|
||||||
flex-wrap: wrap;
|
|
||||||
text-transform: unset;
|
text-transform: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,6 +221,28 @@
|
|||||||
margin-inline-start: calc((var(--card-padding)) * -1);
|
margin-inline-start: calc((var(--card-padding)) * -1);
|
||||||
padding-inline-start: calc(var(--card-padding) - var(--heading-border-size));
|
padding-inline-start: calc(var(--card-padding) - var(--heading-border-size));
|
||||||
border-inline-start: var(--heading-border-size) solid var(--accent-color);
|
border-inline-start: var(--heading-border-size) solid var(--accent-color);
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
a.header-anchor {
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
width: var(--card-padding);
|
||||||
|
text-align: center;
|
||||||
|
color: var(--accent-color);
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "#";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
a.header-anchor {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
figure {
|
figure {
|
||||||
@ -264,6 +289,11 @@
|
|||||||
font-family: var(--code-font-family);
|
font-family: var(--code-font-family);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
code {
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
.gallery {
|
.gallery {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -412,4 +442,20 @@
|
|||||||
margin-right: calc((var(--card-padding)) * -1);
|
margin-right: calc((var(--card-padding)) * -1);
|
||||||
width: calc(100% + var(--card-padding) * 2);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
border: 1px solid var(--kbd-border-color);
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 0.9em;
|
||||||
|
line-height: 1;
|
||||||
|
padding: 2px 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -127,10 +127,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Menu style */
|
/* Menu style */
|
||||||
.menu {
|
#main-menu {
|
||||||
padding-left: 0;
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
flex-direction: column;
|
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
@ -141,13 +139,15 @@
|
|||||||
margin: 0 calc(var(--container-padding) * -1);
|
margin: 0 calc(var(--container-padding) * -1);
|
||||||
|
|
||||||
padding: 30px 30px;
|
padding: 30px 30px;
|
||||||
|
|
||||||
@include respond(xl) {
|
@include respond(xl) {
|
||||||
padding: 15px 0;
|
padding: 15px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&,
|
&, .menu-bottom-section ol {
|
||||||
.menu-bottom-section {
|
flex-direction: column;
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
|
|
||||||
@include respond(xl) {
|
@include respond(xl) {
|
||||||
gap: 25px;
|
gap: 25px;
|
||||||
}
|
}
|
||||||
@ -176,8 +176,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
|
stroke: currentColor;
|
||||||
stroke-width: 1.33;
|
stroke-width: 1.33;
|
||||||
|
|
||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
@ -200,17 +200,19 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.menu-bottom-section {
|
&.menu-bottom-section {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
ol {
|
||||||
width: 100%;
|
display: flex;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.social-menu {
|
.menu-social {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
@ -79,6 +79,7 @@
|
|||||||
|
|
||||||
@include respond(lg) {
|
@include respond(lg) {
|
||||||
padding-top: var(--main-top-padding);
|
padding-top: var(--main-top-padding);
|
||||||
|
padding-bottom: var(--main-top-padding);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
|
|||||||
--accent-color: #34495e;
|
--accent-color: #34495e;
|
||||||
--accent-color-darker: #2c3e50;
|
--accent-color-darker: #2c3e50;
|
||||||
--accent-color-text: #fff;
|
--accent-color-text: #fff;
|
||||||
--body-text-color: #bababa;
|
--body-text-color: #707070;
|
||||||
|
|
||||||
--tag-border-radius: 4px;
|
--tag-border-radius: 4px;
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
|
|||||||
--zh-font-family: "PingFang SC", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei";
|
--zh-font-family: "PingFang SC", "Hiragino Sans GB", "Droid Sans Fallback", "Microsoft YaHei";
|
||||||
|
|
||||||
--base-font-family: "Lato", var(--sys-font-family), var(--zh-font-family), sans-serif;
|
--base-font-family: "Lato", var(--sys-font-family), var(--zh-font-family), sans-serif;
|
||||||
--code-font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
--code-font-family: Menlo, Monaco, Consolas, "Courier New", var(--zh-font-family), monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -56,7 +56,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
|
|||||||
|
|
||||||
--card-text-color-main: #000;
|
--card-text-color-main: #000;
|
||||||
--card-text-color-secondary: #747474;
|
--card-text-color-secondary: #747474;
|
||||||
--card-text-color-tertiary: #bababa;
|
--card-text-color-tertiary: #767676;
|
||||||
--card-separator-color: rgba(218, 218, 218, 0.5);
|
--card-separator-color: rgba(218, 218, 218, 0.5);
|
||||||
|
|
||||||
--card-border-radius: 10px;
|
--card-border-radius: 10px;
|
||||||
@ -123,6 +123,8 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
|
|||||||
--table-border-color: #dadada;
|
--table-border-color: #dadada;
|
||||||
--tr-even-background-color: #efefee;
|
--tr-even-background-color: #efefee;
|
||||||
|
|
||||||
|
--kbd-border-color: #dadada;
|
||||||
|
|
||||||
&[data-scheme="dark"] {
|
&[data-scheme="dark"] {
|
||||||
--code-background-color: #272822;
|
--code-background-color: #272822;
|
||||||
--code-text-color: rgba(255, 255, 255, 0.9);
|
--code-text-color: rgba(255, 255, 255, 0.9);
|
||||||
|
@ -8,6 +8,10 @@ class StackColorScheme {
|
|||||||
constructor(toggleEl: HTMLElement) {
|
constructor(toggleEl: HTMLElement) {
|
||||||
this.bindMatchMedia();
|
this.bindMatchMedia();
|
||||||
this.currentScheme = this.getSavedScheme();
|
this.currentScheme = this.getSavedScheme();
|
||||||
|
if (window.matchMedia('(prefers-color-scheme: dark)').matches === true)
|
||||||
|
this.systemPreferScheme = 'dark'
|
||||||
|
else
|
||||||
|
this.systemPreferScheme = 'light';
|
||||||
|
|
||||||
this.dispatchEvent(document.documentElement.dataset.scheme as colorScheme);
|
this.dispatchEvent(document.documentElement.dataset.scheme as colorScheme);
|
||||||
|
|
||||||
|
@ -53,7 +53,14 @@ class Search {
|
|||||||
this.resultTitle = resultTitle;
|
this.resultTitle = resultTitle;
|
||||||
this.resultTitleTemplate = resultTitleTemplate;
|
this.resultTitleTemplate = resultTitleTemplate;
|
||||||
|
|
||||||
this.handleQueryString();
|
/// Check if there's already value in the search input
|
||||||
|
if (this.input.value.trim() !== '') {
|
||||||
|
this.doSearch(this.input.value.split(' '));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.handleQueryString();
|
||||||
|
}
|
||||||
|
|
||||||
this.bindQueryStringChange();
|
this.bindQueryStringChange();
|
||||||
this.bindSearchForm();
|
this.bindSearchForm();
|
||||||
}
|
}
|
||||||
@ -227,6 +234,7 @@ class Search {
|
|||||||
Search.updateQueryString(keywords, true);
|
Search.updateQueryString(keywords, true);
|
||||||
|
|
||||||
if (keywords === '') {
|
if (keywords === '') {
|
||||||
|
lastSearch = '';
|
||||||
return this.clear();
|
return this.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,12 +21,15 @@ function setupSmoothAnchors() {
|
|||||||
aElement.addEventListener("click", clickEvent => {
|
aElement.addEventListener("click", clickEvent => {
|
||||||
clickEvent.preventDefault();
|
clickEvent.preventDefault();
|
||||||
|
|
||||||
let targetId = aElement.getAttribute("href").substring(1);
|
const targetId = decodeURI(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.
|
target = document.getElementById(targetId) as HTMLElement,
|
||||||
let target = document.getElementById(targetId.replace(":", "\\:")) as HTMLElement;
|
offset = target.getBoundingClientRect().top - document.documentElement.getBoundingClientRect().top;
|
||||||
|
|
||||||
window.history.pushState({}, "", aElement.getAttribute("href"));
|
window.history.pushState({}, "", aElement.getAttribute("href"));
|
||||||
scrollTo({ top: target.offsetTop, behavior: "smooth" });
|
scrollTo({
|
||||||
|
top: offset,
|
||||||
|
behavior: "smooth"
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
18
config.yaml
18
config.yaml
@ -28,6 +28,7 @@ params:
|
|||||||
src: img/avatar.png
|
src: img/avatar.png
|
||||||
|
|
||||||
article:
|
article:
|
||||||
|
headingAnchor: false
|
||||||
math: false
|
math: false
|
||||||
toc: true
|
toc: true
|
||||||
readingTime: true
|
readingTime: true
|
||||||
@ -51,6 +52,12 @@ params:
|
|||||||
issueTerm: pathname
|
issueTerm: pathname
|
||||||
label:
|
label:
|
||||||
|
|
||||||
|
beaudar:
|
||||||
|
repo:
|
||||||
|
issueTerm: pathname
|
||||||
|
label:
|
||||||
|
theme:
|
||||||
|
|
||||||
remark42:
|
remark42:
|
||||||
host:
|
host:
|
||||||
site:
|
site:
|
||||||
@ -64,7 +71,7 @@ params:
|
|||||||
clientSecret:
|
clientSecret:
|
||||||
autoCreateIssue: false
|
autoCreateIssue: false
|
||||||
|
|
||||||
# Waline client configuration see: https://waline.js.org/en/reference/client.html
|
# Waline client configuration see: https://waline.js.org/en/reference/client/props.html
|
||||||
waline:
|
waline:
|
||||||
serverURL:
|
serverURL:
|
||||||
lang:
|
lang:
|
||||||
@ -73,12 +80,11 @@ params:
|
|||||||
emoji:
|
emoji:
|
||||||
- https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo
|
- https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo
|
||||||
requiredMeta:
|
requiredMeta:
|
||||||
- name
|
- nick
|
||||||
- email
|
- mail
|
||||||
- url
|
|
||||||
placeholder:
|
|
||||||
locale:
|
locale:
|
||||||
admin: Admin
|
admin: Admin
|
||||||
|
placeholder:
|
||||||
|
|
||||||
twikoo:
|
twikoo:
|
||||||
envId:
|
envId:
|
||||||
@ -92,10 +98,12 @@ params:
|
|||||||
category:
|
category:
|
||||||
categoryID:
|
categoryID:
|
||||||
mapping:
|
mapping:
|
||||||
|
strict:
|
||||||
lightTheme:
|
lightTheme:
|
||||||
darkTheme:
|
darkTheme:
|
||||||
reactionsEnabled: 1
|
reactionsEnabled: 1
|
||||||
emitMetadata: 0
|
emitMetadata: 0
|
||||||
|
inputPosition:
|
||||||
lang:
|
lang:
|
||||||
|
|
||||||
gitalk:
|
gitalk:
|
||||||
|
@ -21,17 +21,17 @@ PhotoSwipe:
|
|||||||
type: style
|
type: style
|
||||||
|
|
||||||
KaTeX:
|
KaTeX:
|
||||||
- src: https://cdn.jsdelivr.net/npm/katex@0.15.6/dist/katex.min.css
|
- src: https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css
|
||||||
integrity: sha256-J+iAE0sgH8QSz9hpcDxXIftnj65JEZgNhGcgReTTK9s=
|
integrity: sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV
|
||||||
type: style
|
type: style
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/katex@0.15.6/dist/katex.min.js
|
- src: https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js
|
||||||
integrity: sha256-InsNdER1b2xUewP+pKCUJpkhiqwHgqiPXDlIk7GzBu4=
|
integrity: sha384-XjKyOOlGwcjNTAIQHIpgOno0Hl1YQqzUOEleOLALmuqehneUG+vnGctmUb0ZY0l8
|
||||||
type: script
|
type: script
|
||||||
defer: true
|
defer: true
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/katex@0.15.6/dist/contrib/auto-render.min.js
|
- src: https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js
|
||||||
integrity: sha256-y39Mpg7V3D4lhBX4x6O0bUqTV4pSrfgwEfGKfxkOdgI=
|
integrity: sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05
|
||||||
type: script
|
type: script
|
||||||
defer: true
|
defer: true
|
||||||
|
|
||||||
|
@ -1 +1,3 @@
|
|||||||
Example site modified from https://github.com/gohugoio/hugoBasicExample
|
This is an example site used for solely for testing purposes. **It is not meant to be used as a template for your site**.
|
||||||
|
|
||||||
|
To create a new site, please use the starter template: [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJimmy/hugo-theme-stack-starter/)
|
@ -15,7 +15,7 @@ menu:
|
|||||||
icon: user
|
icon: user
|
||||||
---
|
---
|
||||||
|
|
||||||
Written in Go, Hugo is an open source static site generator available under the [Apache Licence 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.
|
Written in Go, Hugo is an open source static site generator available under the [Apache License 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.
|
||||||
|
|
||||||
Hugo makes use of a variety of open source projects including:
|
Hugo makes use of a variety of open source projects including:
|
||||||
|
|
||||||
@ -29,6 +29,6 @@ Hugo is ideal for blogs, corporate websites, creative portfolios, online magazin
|
|||||||
|
|
||||||
Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
|
Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
|
||||||
|
|
||||||
Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
|
Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
|
||||||
|
|
||||||
Learn more and contribute on [GitHub](https://github.com/gohugoio).
|
Learn more and contribute on [GitHub](https://github.com/gohugoio).
|
||||||
|
@ -159,7 +159,7 @@ H<sub>2</sub>O
|
|||||||
|
|
||||||
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
|
||||||
|
|
||||||
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session.
|
Press <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>Delete</kbd> to end the session.
|
||||||
|
|
||||||
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
|
||||||
|
|
||||||
|
@ -21,27 +21,23 @@ In this example we will be using [KaTeX](https://katex.org/)
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
- To enable KaTex globally set the parameter `math` to `true` in a project's configuration
|
- To enable KaTeX globally set the parameter `math` to `true` in a project's configuration
|
||||||
- To enable KaTex on a per page basis include the parameter `math: true` in content files
|
- To enable KaTeX on a per page basis include the parameter `math: true` in content files
|
||||||
|
|
||||||
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
|
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
|
||||||
|
|
||||||
{{< math.inline >}}
|
{{< math.inline >}}
|
||||||
{{ if or .Page.Params.math .Site.Params.math }}
|
{{ if or .Page.Params.math .Site.Params.math }}
|
||||||
<!-- KaTeX -->
|
<!-- KaTeX -->
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css" integrity="sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV" crossorigin="anonymous">
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js" integrity="sha384-XjKyOOlGwcjNTAIQHIpgOno0Hl1YQqzUOEleOLALmuqehneUG+vnGctmUb0ZY0l8" crossorigin="anonymous"></script>
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js" integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{</ math.inline >}}
|
{{</ math.inline >}}
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
{{< math.inline >}}
|
Inline math: $\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…$
|
||||||
<p>
|
|
||||||
Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\)
|
|
||||||
</p>
|
|
||||||
{{</ math.inline >}}
|
|
||||||
|
|
||||||
Block math:
|
Block math:
|
||||||
$$
|
$$
|
||||||
|
@ -1,29 +1,8 @@
|
|||||||
baseurl: https://example.com
|
baseurl: https://example.com/
|
||||||
languageCode: en-us
|
languageCode: en-us
|
||||||
theme: hugo-theme-stack
|
theme: hugo-theme-stack
|
||||||
paginate: 5
|
|
||||||
title: Example Site
|
title: Example Site
|
||||||
|
copyright: Example Person
|
||||||
languages:
|
|
||||||
en:
|
|
||||||
languageName: English
|
|
||||||
title: Example Site
|
|
||||||
weight: 1
|
|
||||||
zh-cn:
|
|
||||||
languageName: 中文
|
|
||||||
title: 演示站点
|
|
||||||
weight: 2
|
|
||||||
ar:
|
|
||||||
languageName: عربي
|
|
||||||
languagedirection: rtl
|
|
||||||
title: موقع تجريبي
|
|
||||||
weight: 3
|
|
||||||
|
|
||||||
# Change it to your Disqus shortname before using
|
|
||||||
disqusShortname: hugo-theme-stack
|
|
||||||
|
|
||||||
# GA Tracking ID
|
|
||||||
googleAnalytics:
|
|
||||||
|
|
||||||
# Theme i18n support
|
# Theme i18n support
|
||||||
# Available values: ar, bn, ca, de, el, en, es, fr, hu, id, it, ja, ko, nl, pt-br, th, uk, zh-cn, zh-hk, zh-tw
|
# Available values: ar, bn, ca, de, el, en, es, fr, hu, id, it, ja, ko, nl, pt-br, th, uk, zh-cn, zh-hk, zh-tw
|
||||||
@ -33,6 +12,41 @@ DefaultContentLanguage: en
|
|||||||
# This will make .Summary and .WordCount behave correctly for CJK languages.
|
# This will make .Summary and .WordCount behave correctly for CJK languages.
|
||||||
hasCJKLanguage: false
|
hasCJKLanguage: false
|
||||||
|
|
||||||
|
languages:
|
||||||
|
en:
|
||||||
|
languageName: English
|
||||||
|
title: Example Site
|
||||||
|
weight: 1
|
||||||
|
params:
|
||||||
|
sidebar:
|
||||||
|
subtitle: Example description
|
||||||
|
zh-cn:
|
||||||
|
languageName: 中文
|
||||||
|
title: 演示站点
|
||||||
|
weight: 2
|
||||||
|
params:
|
||||||
|
sidebar:
|
||||||
|
subtitle: 演示说明
|
||||||
|
ar:
|
||||||
|
languageName: عربي
|
||||||
|
languagedirection: rtl
|
||||||
|
title: موقع تجريبي
|
||||||
|
weight: 3
|
||||||
|
params:
|
||||||
|
sidebar:
|
||||||
|
subtitle: وصف تجريبي
|
||||||
|
|
||||||
|
services:
|
||||||
|
# Change it to your Disqus shortname before using
|
||||||
|
disqus:
|
||||||
|
shortname: "hugo-theme-stack"
|
||||||
|
# GA Tracking ID
|
||||||
|
googleAnalytics:
|
||||||
|
id:
|
||||||
|
|
||||||
|
pagination:
|
||||||
|
pagerSize: 3
|
||||||
|
|
||||||
permalinks:
|
permalinks:
|
||||||
post: /p/:slug/
|
post: /p/:slug/
|
||||||
page: /:slug/
|
page: /:slug/
|
||||||
@ -42,7 +56,7 @@ params:
|
|||||||
- post
|
- post
|
||||||
featuredImageField: image
|
featuredImageField: image
|
||||||
rssFullContent: true
|
rssFullContent: true
|
||||||
favicon:
|
favicon: # e.g.: favicon placed in `static/favicon.ico` of your site folder, then set this field to `/favicon.ico` (`/` is necessary)
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
since: 2020
|
since: 2020
|
||||||
@ -84,6 +98,12 @@ params:
|
|||||||
issueTerm: pathname
|
issueTerm: pathname
|
||||||
label:
|
label:
|
||||||
|
|
||||||
|
beaudar:
|
||||||
|
repo:
|
||||||
|
issueTerm: pathname
|
||||||
|
label:
|
||||||
|
theme:
|
||||||
|
|
||||||
remark42:
|
remark42:
|
||||||
host:
|
host:
|
||||||
site:
|
site:
|
||||||
@ -141,6 +161,7 @@ params:
|
|||||||
repo:
|
repo:
|
||||||
clientID:
|
clientID:
|
||||||
clientSecret:
|
clientSecret:
|
||||||
|
proxy:
|
||||||
|
|
||||||
cusdis:
|
cusdis:
|
||||||
host:
|
host:
|
||||||
@ -188,7 +209,7 @@ params:
|
|||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
### Custom menu
|
### Custom menu
|
||||||
### See https://docs.stack.jimmycai.com/configuration/custom-menu.html
|
### See https://stack.jimmycai.com/config/menu
|
||||||
### To remove about, archive and search page menu item, remove `menu` field from their FrontMatter
|
### To remove about, archive and search page menu item, remove `menu` field from their FrontMatter
|
||||||
menu:
|
menu:
|
||||||
main: []
|
main: []
|
||||||
@ -219,9 +240,21 @@ related:
|
|||||||
|
|
||||||
markup:
|
markup:
|
||||||
goldmark:
|
goldmark:
|
||||||
|
extensions:
|
||||||
|
passthrough:
|
||||||
|
enable: true
|
||||||
|
delimiters:
|
||||||
|
block:
|
||||||
|
- - \[
|
||||||
|
- \]
|
||||||
|
- - $$
|
||||||
|
- $$
|
||||||
|
inline:
|
||||||
|
- - \(
|
||||||
|
- \)
|
||||||
renderer:
|
renderer:
|
||||||
## Set to true if you have HTML content inside Markdown
|
## Set to true if you have HTML content inside Markdown
|
||||||
unsafe: false
|
unsafe: true
|
||||||
tableOfContents:
|
tableOfContents:
|
||||||
endLevel: 4
|
endLevel: 4
|
||||||
ordered: true
|
ordered: true
|
@ -52,6 +52,10 @@ widget:
|
|||||||
title:
|
title:
|
||||||
other: وسوم
|
other: وسوم
|
||||||
|
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: التصنيفات
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title:
|
||||||
other: بحث
|
other: بحث
|
||||||
@ -64,7 +68,7 @@ search:
|
|||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
other: "مبني بستخدام {{ .Generator }}"
|
other: "مبني باستخدام {{ .Generator }}"
|
||||||
|
|
||||||
designedBy:
|
designedBy:
|
||||||
other: "قالب {{ .Theme }} مصمم من {{ .DesignedBy }}"
|
other: "قالب {{ .Theme }} مصمم من {{ .DesignedBy }}"
|
||||||
|
72
i18n/be.yaml
Normal file
72
i18n/be.yaml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Паказаць/схаваць меню
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Цёмны рэжым
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} старонка"
|
||||||
|
few: "{{ .Count }} старонкі"
|
||||||
|
many: "{{ .Count }} старонак"
|
||||||
|
other: "{{ .Count }} старонкі"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Раздзел
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Падраздзел
|
||||||
|
few: Падраздзелы
|
||||||
|
many: Падраздзелы
|
||||||
|
other: Падраздзелы
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Назад
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Таксама рэкамендуем
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Абноўлена
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Змест
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
other: "Час чытання: {{ .Count }} хв."
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Не знойдзена
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Запытваемая старонка не існуе
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Архівы
|
||||||
|
more:
|
||||||
|
other: Яшчэ
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Тэгі
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Пошук
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Увядзіце нешта...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "Знайдзена #PAGES_COUNT старонак (за #TIME_SECONDS с.)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Створана пры дапамозе {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Тэма {{ .Theme }}, дызайн {{ .DesignedBy }}
|
73
i18n/bg.yaml
Normal file
73
i18n/bg.yaml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Покажи Меню
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Тъмен Режим
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} страница"
|
||||||
|
other: "{{ .Count }} страници"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Секция
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Подсекция
|
||||||
|
other: Подсекции
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Назад
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Съдържание
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Свързано Съдържание
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Последна промяна на
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} minute read"
|
||||||
|
other: "{{ .Count }} minute read"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Не е намерено
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Страницата която търсите не е открита
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Архиви
|
||||||
|
|
||||||
|
more:
|
||||||
|
other: Повече
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Тагове
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Категории
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Търсене
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Напишете нещо...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT страници (#TIME_SECONDS секунди)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Създадено с {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Тема {{ .Theme }} създадена от {{ .DesignedBy }}
|
16
i18n/bn.yaml
16
i18n/bn.yaml
@ -6,19 +6,19 @@ darkMode:
|
|||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} পৃষ্ঠা"
|
one: "{{ .Count }} পাতা"
|
||||||
other: "{{ .Count }} পৃষ্ঠা"
|
other: "{{ .Count }} পাতা"
|
||||||
|
|
||||||
section:
|
section:
|
||||||
other: অনুচ্ছেদ
|
other: অনুচ্ছেদ
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: উপঅনুচ্ছেদ
|
one: উপ-অনুচ্ছেদ
|
||||||
other: উপঅনুচ্ছেদ
|
other: উপ-অনুচ্ছেদ
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: পেছনে যান
|
other: পেছনে
|
||||||
|
|
||||||
tableOfContents:
|
tableOfContents:
|
||||||
other: সূচিপত্র
|
other: সূচিপত্র
|
||||||
@ -27,7 +27,7 @@ article:
|
|||||||
other: সম্পর্কিত বিষয়বস্তু
|
other: সম্পর্কিত বিষয়বস্তু
|
||||||
|
|
||||||
lastUpdatedOn:
|
lastUpdatedOn:
|
||||||
other: শেষ হালনাগাদ করা হয়েছে
|
other: সর্বশেষ আপডেট করা হয়েছে
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} মিনিটে পড়া যাবে"
|
one: "{{ .Count }} মিনিটে পড়া যাবে"
|
||||||
@ -38,7 +38,7 @@ notFound:
|
|||||||
other: পাওয়া যায়নি
|
other: পাওয়া যায়নি
|
||||||
|
|
||||||
subtitle:
|
subtitle:
|
||||||
other: এই পৃষ্ঠাটি বিদ্যমান নেই
|
other: এই পাতাটি বিদ্যমান নেই
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
@ -63,7 +63,7 @@ search:
|
|||||||
other: কিছু টাইপ করুন...
|
other: কিছু টাইপ করুন...
|
||||||
|
|
||||||
resultTitle:
|
resultTitle:
|
||||||
other: "#PAGES_COUNT পৃষ্ঠা (#TIME_SECONDS সেকেন্ড)"
|
other: "#PAGES_COUNT পাতা (#TIME_SECONDS সেকেন্ড)"
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
|
73
i18n/cs.yaml
Normal file
73
i18n/cs.yaml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Skrýt menu
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Tmavý režim
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} stránka"
|
||||||
|
other: "{{ .Count }} stránek"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Kategorie
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Podkategorie
|
||||||
|
other: Podkategorie
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Zpět
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Obsah
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Související
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Naposledy aktualizováno
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} minuta"
|
||||||
|
other: "{{ .Count }} minut"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Nenalezeno
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Tato stránka neexistuje
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Archivy
|
||||||
|
|
||||||
|
more:
|
||||||
|
other: Více
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Štítky
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Kategorie
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Hledat
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Zadejte něco...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT stránek (#TIME_SECONDS sekund)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Vytvořeno pomocí {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Šablona {{ .Theme }} od {{ .DesignedBy }}
|
10
i18n/es.yaml
10
i18n/es.yaml
@ -1,5 +1,5 @@
|
|||||||
toggleMenu:
|
toggleMenu:
|
||||||
other: Toggle Menu
|
other: Ocultar menú
|
||||||
|
|
||||||
darkMode:
|
darkMode:
|
||||||
other: Modo oscuro
|
other: Modo oscuro
|
||||||
@ -27,11 +27,11 @@ article:
|
|||||||
other: Contenidos relacionados
|
other: Contenidos relacionados
|
||||||
|
|
||||||
lastUpdatedOn:
|
lastUpdatedOn:
|
||||||
other: Última vez actualizado
|
other: Última actualización
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minuto a leer"
|
one: "Tiempo de lectura {{ .Count }} minuto"
|
||||||
other: "{{ .Count }} minutos a leer"
|
other: "Tiempo de lectura {{ .Count }} minutos"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title:
|
||||||
@ -60,7 +60,7 @@ search:
|
|||||||
other: Búsqueda
|
other: Búsqueda
|
||||||
|
|
||||||
placeholder:
|
placeholder:
|
||||||
other: Teclea algo...
|
other: Escribe algo...
|
||||||
|
|
||||||
resultTitle:
|
resultTitle:
|
||||||
other: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
other: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
||||||
|
@ -50,6 +50,9 @@ widget:
|
|||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title:
|
||||||
other: Mots clés
|
other: Mots clés
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Catégories
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title:
|
||||||
|
73
i18n/hi.yaml
Normal file
73
i18n/hi.yaml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: मेनू टॉगल करें
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: डार्क मोड
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} पेज"
|
||||||
|
other: "{{ .Count }} पेज"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: अनुभाग
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: उपधारा
|
||||||
|
other: उपखंड
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: पीछे
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: विषयसूची
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: संबंधित सामग्री
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: अंतिम बार अपडेट किया गया
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} मिनट पढ़ें"
|
||||||
|
other: "{{ .Count }} मिनट पढ़ें"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: 404 नहीं मिला।
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: यह पृष्ठ मौजूद नहीं है।
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: अभिलेखागार
|
||||||
|
|
||||||
|
more:
|
||||||
|
other: अधिक
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: टैग
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: श्रेणियाँ
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: खोज
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: कुछ लिखें...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT पेज (#TIME_SECONDS सेकंड)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: निर्मित {{ .Generator }} के साथ
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: थीम {{ .Theme }} द्वारा डिज़ाइन किया गया {{ .DesignedBy }}
|
12
i18n/ja.yaml
12
i18n/ja.yaml
@ -4,6 +4,16 @@ toggleMenu:
|
|||||||
darkMode:
|
darkMode:
|
||||||
other: ダークモード
|
other: ダークモード
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
other: "{{ .Count }} ページ目"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: セクション
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
other: サブセクション
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: 前のページ
|
other: 前のページ
|
||||||
@ -54,7 +64,7 @@ search:
|
|||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
other: Built with {{ .Generator }}
|
other: "{{ .Generator }} で構築されています。"
|
||||||
|
|
||||||
designedBy:
|
designedBy:
|
||||||
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
||||||
|
@ -47,6 +47,10 @@ widget:
|
|||||||
more:
|
more:
|
||||||
other: 더보기
|
other: 더보기
|
||||||
|
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: 카테고리
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title:
|
||||||
other: 태그
|
other: 태그
|
||||||
|
@ -21,6 +21,8 @@ article:
|
|||||||
other: Gerelateerde inhoud
|
other: Gerelateerde inhoud
|
||||||
lastUpdatedOn:
|
lastUpdatedOn:
|
||||||
other: Laatst bijgewerkt op
|
other: Laatst bijgewerkt op
|
||||||
|
readingTime:
|
||||||
|
other: "{{ .Count }} leestijd"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title:
|
||||||
|
72
i18n/oc.yaml
Normal file
72
i18n/oc.yaml
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Alternar menú
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Mòde fosc
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} pagina"
|
||||||
|
other: "{{ .Count }} paginas"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Seccion
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Josseccion
|
||||||
|
other: Josseccions
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Tornar
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Taula de contengut
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Contenguts relacionats
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Darrièra actualizacion
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} minuta de lectura"
|
||||||
|
other: "{{ .Count }} minutas de lectura"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Non trobat
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Aquesta pagina existís pas
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Archiu
|
||||||
|
|
||||||
|
more:
|
||||||
|
other: Mai
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Etiquetas
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Categorias
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Cercar
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Picatz quicòm...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT paginas dins (#TIME_SECONDS segons)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Creat amb {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Tàma {{ .Theme }} concebut per {{ .DesignedBy }}
|
11
i18n/pl.yaml
11
i18n/pl.yaml
@ -7,6 +7,8 @@ darkMode:
|
|||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} strona"
|
one: "{{ .Count }} strona"
|
||||||
|
few: "{{ .Count }} strony"
|
||||||
|
many: "{{ .Count }} stron"
|
||||||
other: "{{ .Count }} stron"
|
other: "{{ .Count }} stron"
|
||||||
|
|
||||||
section:
|
section:
|
||||||
@ -14,7 +16,9 @@ list:
|
|||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Podsekcja
|
one: Podsekcja
|
||||||
other: Podsekcje
|
few: Podsekcje
|
||||||
|
many: Podsekcji
|
||||||
|
other: Podsekcji
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
@ -31,6 +35,8 @@ article:
|
|||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "Przeczytasz w {{ .Count }} minutę"
|
one: "Przeczytasz w {{ .Count }} minutę"
|
||||||
|
few: "Przeczytasz w {{ .Count }} minuty"
|
||||||
|
many: "Przeczytasz w {{ .Count }} minut"
|
||||||
other: "Przeczytasz w {{ .Count }} minut"
|
other: "Przeczytasz w {{ .Count }} minut"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
@ -63,6 +69,9 @@ search:
|
|||||||
other: Wpisz coś...
|
other: Wpisz coś...
|
||||||
|
|
||||||
resultTitle:
|
resultTitle:
|
||||||
|
one: "#PAGES_COUNT strona (#TIME_SECONDS sekund)"
|
||||||
|
few: "#PAGES_COUNT strony (#TIME_SECONDS sekund)"
|
||||||
|
many: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
|
||||||
other: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
|
other: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
|
@ -48,6 +48,9 @@ widget:
|
|||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title:
|
||||||
other: Tags
|
other: Tags
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Categorias
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title:
|
||||||
|
67
i18n/pt-pt.yaml
Normal file
67
i18n/pt-pt.yaml
Normal file
@ -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 }}
|
71
i18n/sk.yaml
Normal file
71
i18n/sk.yaml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Skryť menu
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Tmavý režim
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} stránka"
|
||||||
|
other: "{{ .Count }} stránok"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Kategórie
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Podkategória
|
||||||
|
other: Podkategórie
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Späť
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Obsah
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Súvisiace
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Naposledy aktualizované
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} minúta"
|
||||||
|
other: "{{ .Count }} minút"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Nenájdené
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Tato stránka neexistuje
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Archívy
|
||||||
|
more:
|
||||||
|
other: Viac
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Štítky
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Kategórie
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Hladať
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Zadajte niečo...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT stránok (#TIME_SECONDS sekúnd)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Vytvorené pomocou {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Šablóna {{ .Theme }} od {{ .DesignedBy }}
|
74
i18n/vi.yaml
Normal file
74
i18n/vi.yaml
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Hiển thị Menu
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Chế độ nền tối
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} trang"
|
||||||
|
other: "{{ .Count }} trang"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Section
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Subsection
|
||||||
|
other: Subsections
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Trở lại
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Mục lục
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Bài viết liên quan
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Cập nhật lần cuối
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} phút đọc"
|
||||||
|
other: "{{ .Count }} phút đọc"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Không tìm thấy
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Trang này không tồn tại
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Lưu trữ
|
||||||
|
|
||||||
|
more:
|
||||||
|
other: Còn nữa
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Nhãn dán
|
||||||
|
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Chuỗi bài
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Tìm kiếm
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Nhập từ khoá ...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT trang (#TIME_SECONDS giây)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Built with {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Theme {{ .Theme }} thiết kế bởi {{ .DesignedBy }}
|
@ -4,6 +4,13 @@ toggleMenu:
|
|||||||
darkMode:
|
darkMode:
|
||||||
other: 暗色模式
|
other: 暗色模式
|
||||||
|
|
||||||
|
list:
|
||||||
|
page: "{{ .Count }} 个页面"
|
||||||
|
|
||||||
|
section: 章节
|
||||||
|
|
||||||
|
subsection: 子章节
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: 返回
|
other: 返回
|
||||||
@ -54,7 +61,7 @@ search:
|
|||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
other: Built with {{ .Generator }}
|
other: 使用 {{ .Generator }} 构建
|
||||||
|
|
||||||
designedBy:
|
designedBy:
|
||||||
other: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
other: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
||||||
|
@ -4,6 +4,18 @@ toggleMenu:
|
|||||||
darkMode:
|
darkMode:
|
||||||
other: 夜晚模式
|
other: 夜晚模式
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "第 {{ .Count }} 頁"
|
||||||
|
other: "第 {{ .Count }} 頁"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: 段落
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: 小節
|
||||||
|
other: 小節
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: 返回
|
other: 返回
|
||||||
@ -18,11 +30,13 @@ article:
|
|||||||
other: 最後更新
|
other: 最後更新
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
|
one: "閱讀時間: {{ .Count }} 分鐘"
|
||||||
other: "閱讀時間: {{ .Count }} 分鐘"
|
other: "閱讀時間: {{ .Count }} 分鐘"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title:
|
||||||
other: 404 錯誤
|
other: 404 錯誤
|
||||||
|
|
||||||
subtitle:
|
subtitle:
|
||||||
other: 頁面不存在
|
other: 頁面不存在
|
||||||
|
|
||||||
@ -37,6 +51,9 @@ widget:
|
|||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title:
|
||||||
other: 標籤雲
|
other: 標籤雲
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: 分類
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title:
|
||||||
@ -47,3 +64,10 @@ search:
|
|||||||
|
|
||||||
resultTitle:
|
resultTitle:
|
||||||
other: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)"
|
other: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: 使用 {{ .Generator }} 建立
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: 主題 {{ .Theme }} 由 {{ .DesignedBy }} 設計
|
||||||
|
@ -3,5 +3,43 @@
|
|||||||
<h1 class="article-title">{{ T "notFound.title" }}</h1>
|
<h1 class="article-title">{{ T "notFound.title" }}</h1>
|
||||||
<h2 class="article-subtitle">{{ T "notFound.subtitle" }}</h2>
|
<h2 class="article-subtitle">{{ T "notFound.subtitle" }}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{- $query := first 1 (where .Site.Pages "Layout" "==" "search") -}}
|
||||||
|
{{- $searchPage := index $query 0 -}}
|
||||||
|
|
||||||
|
{{- with $searchPage -}}
|
||||||
|
<form action="{{ $searchPage.RelPermalink }}" class="search-form widget" {{ with .OutputFormats.Get "json" -}}data-json="{{ .Permalink }}" {{- end }}>
|
||||||
|
<p>
|
||||||
|
<label>{{ T "search.title" }}</label>
|
||||||
|
<input id="searchInput" name="keyword" required placeholder="{{ T `search.placeholder` }}" />
|
||||||
|
|
||||||
|
<button title="{{ T `search.title` }}">
|
||||||
|
{{ partial "helper/icon" "search" }}
|
||||||
|
</button>
|
||||||
|
</p>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="search-result">
|
||||||
|
<h3 class="search-result--title section-title"></h3>
|
||||||
|
<div class="search-result--list article-list--compact"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.searchResultTitleTemplate = "{{ T `search.resultTitle` }}"
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{{- $opts := dict "minify" hugo.IsProduction "JSXFactory" "createElement" -}}
|
||||||
|
{{- $searchScript := resources.Get "ts/search.tsx" | js.Build $opts -}}
|
||||||
|
<script type="text/javascript" src="{{ $searchScript.RelPermalink }}" defer></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const wrongUrl = new URL(window.location.href);
|
||||||
|
|
||||||
|
/// Get the search keyword from the wrong URL by removing all slashes and dashes
|
||||||
|
const searchKeyword = wrongUrl.pathname.split(/[/|-]/).join(' ').trim();
|
||||||
|
|
||||||
|
document.getElementById('searchInput').setAttribute('value', searchKeyword);
|
||||||
|
</script>
|
||||||
|
{{- end -}}
|
||||||
{{ partialCached "footer/footer" . }}
|
{{ partialCached "footer/footer" . }}
|
||||||
{{ end }}
|
{{ end }}
|
6
layouts/_default/_markup/render-heading.html
Normal file
6
layouts/_default/_markup/render-heading.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<h{{ .Level }} id="{{ .Anchor }}">
|
||||||
|
{{- if site.Params.Article.HeadingAnchor -}}
|
||||||
|
<a href="#{{ .Anchor }}" class="header-anchor"></a>
|
||||||
|
{{- end -}}
|
||||||
|
{{ .Text | safeHTML }}
|
||||||
|
</h{{ .Level }}>
|
@ -18,10 +18,10 @@
|
|||||||
{{- block "left-sidebar" . -}}
|
{{- block "left-sidebar" . -}}
|
||||||
{{ partial "sidebar/left.html" . }}
|
{{ partial "sidebar/left.html" . }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- block "right-sidebar" . -}}{{ end }}
|
||||||
<main class="main full-width">
|
<main class="main full-width">
|
||||||
{{- block "main" . }}{{- end }}
|
{{- block "main" . }}{{- end }}
|
||||||
</main>
|
</main>
|
||||||
{{- block "right-sidebar" . -}}{{ end }}
|
|
||||||
</div>
|
</div>
|
||||||
{{ partial "footer/include.html" . }}
|
{{ partial "footer/include.html" . }}
|
||||||
</body>
|
</body>
|
||||||
|
@ -18,11 +18,11 @@
|
|||||||
<link>{{ .Permalink }}</link>
|
<link>{{ .Permalink }}</link>
|
||||||
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
||||||
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
|
<language>{{.}}</language>{{end}}{{ with .Site.Params.Author.email }}
|
||||||
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
|
<managingEditor>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Params.Author.email }}
|
||||||
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
<webMaster>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
||||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||||
{{- with .OutputFormats.Get "RSS" -}}
|
{{- with .OutputFormats.Get "RSS" -}}
|
||||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@ -35,7 +35,7 @@
|
|||||||
<title>{{ .Title }}</title>
|
<title>{{ .Title }}</title>
|
||||||
<link>{{ .Permalink }}</link>
|
<link>{{ .Permalink }}</link>
|
||||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||||
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
{{ with .Site.Params.Author.email }}<author>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||||
<guid>{{ .Permalink }}</guid>
|
<guid>{{ .Permalink }}</guid>
|
||||||
<description>
|
<description>
|
||||||
{{- $image := partial "helper/image" (dict "Context" . "Type" "rss") -}}
|
{{- $image := partial "helper/image" (dict "Context" . "Type" "rss") -}}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{{ define "body-class" }}template-search{{ end }}
|
{{ define "body-class" }}template-search{{ end }}
|
||||||
{{ define "head" }}
|
{{ define "head" }}
|
||||||
{{- with .OutputFormats.Get "json" -}}
|
{{- with .OutputFormats.Get "json" -}}
|
||||||
<link rel="preload" href="{{ .Permalink }}" as="fetch" crossorigin="anonymous">
|
<link rel="preload" href="{{ .RelPermalink }}" as="fetch" crossorigin="anonymous">
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<form action="{{ .Permalink }}" class="search-form"{{ with .OutputFormats.Get "json" -}} data-json="{{ .Permalink }}"{{- end }}>
|
<form action="{{ .RelPermalink }}" class="search-form"{{ with .OutputFormats.Get "json" -}} data-json="{{ .RelPermalink }}"{{- end }}>
|
||||||
<p>
|
<p>
|
||||||
<label>{{ T "search.title" }}</label>
|
<label>{{ T "search.title" }}</label>
|
||||||
<input name="keyword" placeholder="{{ T `search.placeholder` }}" />
|
<input name="keyword" placeholder="{{ T `search.placeholder` }}" />
|
||||||
|
@ -23,18 +23,21 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</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">
|
<footer class="article-time">
|
||||||
{{ if not .Date.IsZero }}
|
{{ if $showDate }}
|
||||||
<div>
|
<div>
|
||||||
{{ partial "helper/icon" "date" }}
|
{{ partial "helper/icon" "date" }}
|
||||||
<time class="article-time--published">
|
<time class="article-time--published">
|
||||||
{{- .Date.Format (or .Site.Params.dateFormat.published "Jan 02, 2006") -}}
|
{{- .Date | time.Format (or .Site.Params.dateFormat.published "Jan 02, 2006") -}}
|
||||||
</time>
|
</time>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Site.Params.article.readingTime }}
|
{{ if $showReadingTime }}
|
||||||
<div>
|
<div>
|
||||||
{{ partial "helper/icon" "clock" }}
|
{{ partial "helper/icon" "clock" }}
|
||||||
<time class="article-time--reading">
|
<time class="article-time--reading">
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<section class="article-lastmod">
|
<section class="article-lastmod">
|
||||||
{{ partial "helper/icon" "clock" }}
|
{{ partial "helper/icon" "clock" }}
|
||||||
<span>
|
<span>
|
||||||
{{ T "article.lastUpdatedOn" }} {{ .Lastmod.Format ( or .Site.Params.dateFormat.lastUpdated "Jan 02, 2006 15:04 MST" ) }}
|
{{ T "article.lastUpdatedOn" }} {{ .Lastmod | time.Format ( or .Site.Params.dateFormat.lastUpdated "Jan 02, 2006 15:04 MST" ) }}
|
||||||
</span>
|
</span>
|
||||||
</section>
|
</section>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
@ -16,8 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ with $link.image }}
|
{{ with $link.image }}
|
||||||
|
{{ $permalink := . }}
|
||||||
|
{{ with ($.Resources.GetMatch (printf "%s" (. | safeURL))) }}
|
||||||
|
{{ $permalink = .RelPermalink }}
|
||||||
|
{{ end }}
|
||||||
<div class="article-image">
|
<div class="article-image">
|
||||||
<img src="{{ . }}" loading="lazy">
|
<img src="{{ $permalink }}" loading="lazy">
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
{{- partial "helper/external" (dict "Context" . "Namespace" "KaTeX") -}}
|
{{- partial "helper/external" (dict "Context" . "Namespace" "KaTeX") -}}
|
||||||
<script>
|
<script>
|
||||||
window.addEventListener("DOMContentLoaded", () => {
|
window.addEventListener("DOMContentLoaded", () => {
|
||||||
renderMathInElement(document.querySelector(`.article-content`), {
|
const mainArticleElement = document.querySelector(".main-article");
|
||||||
|
renderMathInElement(mainArticleElement, {
|
||||||
delimiters: [
|
delimiters: [
|
||||||
{ left: "$$", right: "$$", display: true },
|
{ left: "$$", right: "$$", display: true },
|
||||||
{ left: "$", right: "$", display: false },
|
{ left: "$", right: "$", display: false },
|
||||||
{ left: "\\(", right: "\\)", display: false },
|
{ left: "\\(", right: "\\)", display: false },
|
||||||
{ left: "\\[", right: "\\]", display: true }
|
{ left: "\\[", right: "\\]", display: true }
|
||||||
]
|
],
|
||||||
|
ignoredClasses: ["gist"]
|
||||||
});})
|
});})
|
||||||
</script>
|
</script>
|
46
layouts/partials/comments/provider/beaudar.html
Normal file
46
layouts/partials/comments/provider/beaudar.html
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<script
|
||||||
|
src="https://beaudar.lipk.org/client.js"
|
||||||
|
repo="{{ .Site.Params.comments.beaudar.repo }}"
|
||||||
|
issue-term="{{ .Site.Params.comments.beaudar.issueTerm }}"
|
||||||
|
{{ with .Site.Params.comments.beaudar.label }}
|
||||||
|
label="{{ . }}"
|
||||||
|
{{ end }}
|
||||||
|
theme="{{ .Site.Params.comments.beaudar.theme }}"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
async
|
||||||
|
></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.beaudar {
|
||||||
|
max-width: unset;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let beaudarLoaded = false;
|
||||||
|
|
||||||
|
function setBeaudarTheme(theme) {
|
||||||
|
let beaudar = document.querySelector(".beaudar iframe");
|
||||||
|
if (beaudar) {
|
||||||
|
beaudar.contentWindow.postMessage(
|
||||||
|
{
|
||||||
|
type: "set-theme",
|
||||||
|
theme: `github-${theme}`,
|
||||||
|
},
|
||||||
|
"https://beaudar.lipk.org"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addEventListener("message", (event) => {
|
||||||
|
if (event.origin !== "https://beaudar.lipk.org") return;
|
||||||
|
/// Called when Beaudar is ready
|
||||||
|
beaudarLoaded = true;
|
||||||
|
setBeaudarTheme(document.documentElement.dataset.scheme);
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("onColorSchemeChange", (e) => {
|
||||||
|
if (!beaudarLoaded) return;
|
||||||
|
setBeaudarTheme(e.detail);
|
||||||
|
});
|
||||||
|
</script>
|
@ -2,7 +2,7 @@
|
|||||||
{{- $disqusjs := .Site.Params.Comments.disqusjs -}}
|
{{- $disqusjs := .Site.Params.Comments.disqusjs -}}
|
||||||
{{- if and (not $pc.Disable) (and $disqusjs.Shortname $disqusjs.ApiKey) -}}
|
{{- if and (not $pc.Disable) (and $disqusjs.Shortname $disqusjs.ApiKey) -}}
|
||||||
|
|
||||||
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | resources.ToCSS | minify -}}
|
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | toCSS | minify -}}
|
||||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
||||||
|
|
||||||
<div class="disqus-container">
|
<div class="disqus-container">
|
||||||
|
@ -6,10 +6,13 @@
|
|||||||
data-category="{{- .category -}}"
|
data-category="{{- .category -}}"
|
||||||
data-category-id="{{- .categoryID -}}"
|
data-category-id="{{- .categoryID -}}"
|
||||||
data-mapping="{{- default `title` .mapping -}}"
|
data-mapping="{{- default `title` .mapping -}}"
|
||||||
|
data-strict="{{- default 0 .strict -}}"
|
||||||
data-reactions-enabled="{{- default 1 .reactionsEnabled -}}"
|
data-reactions-enabled="{{- default 1 .reactionsEnabled -}}"
|
||||||
data-emit-metadata="{{- default 0 .emitMetadata -}}"
|
data-emit-metadata="{{- default 0 .emitMetadata -}}"
|
||||||
|
data-input-position="{{- default `top` .inputPosition -}}"
|
||||||
data-theme="{{- default `light` .lightTheme -}}"
|
data-theme="{{- default `light` .lightTheme -}}"
|
||||||
data-lang="{{- default `en` .lang -}}"
|
data-lang="{{- default `en` .lang -}}"
|
||||||
|
data-loading="{{- .loading -}}"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
async
|
async
|
||||||
></script>
|
></script>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
admin: ["{{- .admin -}}"],
|
admin: ["{{- .admin -}}"],
|
||||||
distractionFreeMode: false, // Facebook-like distraction free mode
|
distractionFreeMode: false, // Facebook-like distraction free mode
|
||||||
id: md5(location.pathname), // Max Location.pathname Legth:75 https://github.com/gitalk/gitalk/issues/102
|
id: md5(location.pathname), // Max Location.pathname Legth:75 https://github.com/gitalk/gitalk/issues/102
|
||||||
|
proxy: {{- .proxy -}},
|
||||||
});
|
});
|
||||||
(function () {
|
(function () {
|
||||||
if (
|
if (
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
<div id="remark42"></div>
|
<div id="remark42"></div>
|
||||||
<script>
|
<script>
|
||||||
var remark_config = {
|
var remark_config = {
|
||||||
host: "{{ .host }}",
|
host: '{{ .host }}',
|
||||||
site_id: '{{ .site }}',
|
site_id: '{{ .site }}',
|
||||||
components: ['embed'],
|
components: ['embed'],
|
||||||
url: "{{ $.Permalink }}",
|
url: '{{ $.Permalink }}',
|
||||||
max_shown_comments: {{ default 15 .max_shown_comments }},
|
max_shown_comments: {{ default 15 .max_shown_comments }},
|
||||||
theme: document.documentElement.dataset.scheme,
|
theme: document.documentElement.dataset.scheme,
|
||||||
page_title: '{{ $.Title }}',
|
page_title: '{{ $.Title }}',
|
||||||
@ -13,14 +13,14 @@
|
|||||||
show_email_subscription: {{ default true .show_email_subscription }}
|
show_email_subscription: {{ default true .show_email_subscription }}
|
||||||
};
|
};
|
||||||
|
|
||||||
(function (c) {
|
!function(e, n) {
|
||||||
for (var i = 0; i < c.length; i++) {
|
for (var o = 0; o < e.length; o++) {
|
||||||
var d = document, s = d.createElement('script');
|
var r = n.createElement('script'),
|
||||||
s.src = remark_config.host + '/web/' + c[i] + '.js';
|
c = '.js',
|
||||||
s.defer = true;
|
d = n.head || n.body;
|
||||||
(d.head || d.body).appendChild(s);
|
'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.addEventListener('onColorSchemeChange', (e) => {
|
||||||
window.REMARK42.changeTheme(e.detail);
|
window.REMARK42.changeTheme(e.detail);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<script src="//cdn.jsdelivr.net/npm/twikoo@1.5.11/dist/twikoo.all.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/twikoo@1.6.39/dist/twikoo.all.min.js"></script>
|
||||||
<div id="tcomment"></div>
|
<div id="tcomment"></div>
|
||||||
<style>
|
<style>
|
||||||
.twikoo {
|
.twikoo {
|
||||||
@ -13,7 +13,9 @@
|
|||||||
}
|
}
|
||||||
.twikoo .el-input-group__prepend,
|
.twikoo .el-input-group__prepend,
|
||||||
.twikoo .tk-action-icon,
|
.twikoo .tk-action-icon,
|
||||||
|
.twikoo .tk-submit-action-icon,
|
||||||
.twikoo .tk-time,
|
.twikoo .tk-time,
|
||||||
|
.twikoo .tk-comments-no,
|
||||||
.twikoo .tk-comments-count {
|
.twikoo .tk-comments-count {
|
||||||
color: var(--twikoo-body-text-color);
|
color: var(--twikoo-body-text-color);
|
||||||
}
|
}
|
||||||
@ -28,6 +30,9 @@
|
|||||||
.twikoo .el-button{
|
.twikoo .el-button{
|
||||||
color: var(--twikoo-body-text-color)!important;
|
color: var(--twikoo-body-text-color)!important;
|
||||||
}
|
}
|
||||||
|
.twikoo .el-input__count {
|
||||||
|
color: var(--twikoo-body-text-color) !important;
|
||||||
|
}
|
||||||
.OwO .OwO-body {
|
.OwO .OwO-body {
|
||||||
background-color: var(--body-background) !important;
|
background-color: var(--body-background) !important;
|
||||||
color: var(--body-text-color) !important;
|
color: var(--body-text-color) !important;
|
||||||
|
@ -16,6 +16,8 @@
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
let utterancesLoaded = false;
|
||||||
|
|
||||||
function setUtterancesTheme(theme) {
|
function setUtterancesTheme(theme) {
|
||||||
let utterances = document.querySelector('.utterances iframe');
|
let utterances = document.querySelector('.utterances iframe');
|
||||||
if (utterances) {
|
if (utterances) {
|
||||||
@ -31,10 +33,14 @@
|
|||||||
|
|
||||||
addEventListener('message', event => {
|
addEventListener('message', event => {
|
||||||
if (event.origin !== 'https://utteranc.es') return;
|
if (event.origin !== 'https://utteranc.es') return;
|
||||||
|
|
||||||
|
/// Called when Utterances is ready
|
||||||
|
utterancesLoaded = true;
|
||||||
setUtterancesTheme(document.documentElement.dataset.scheme)
|
setUtterancesTheme(document.documentElement.dataset.scheme)
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('onColorSchemeChange', (e) => {
|
window.addEventListener('onColorSchemeChange', (e) => {
|
||||||
|
if (!utterancesLoaded) return;
|
||||||
setUtterancesTheme(e.detail)
|
setUtterancesTheme(e.detail)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
{{- $replaceKeys := dict "serverurl" "serverURL" "requiredmeta" "requiredMeta" "wordlimit" "wordLimit" "pagesize" "pageSize" "imageuploader" "imageUploader" "texrenderer" "texRenderer" -}}
|
{{- $replaceKeys := dict "serverurl" "serverURL" "requiredmeta" "requiredMeta" "wordlimit" "wordLimit" "pagesize" "pageSize" "imageuploader" "imageUploader" "texrenderer" "texRenderer" -}}
|
||||||
|
|
||||||
{{- range $key, $val := . -}}
|
{{- range $key, $val := . -}}
|
||||||
{{- if $val -}}
|
{{- if ne $val nil -}}
|
||||||
{{- $replaceKey := index $replaceKeys $key -}}
|
{{- $replaceKey := index $replaceKeys $key -}}
|
||||||
{{- $k := default $key $replaceKey -}}
|
{{- $k := default $key $replaceKey -}}
|
||||||
|
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
<!-- Use site subtitle by default -->
|
<!-- Use site subtitle by default -->
|
||||||
{{ $description := .Site.Params.sidebar.subtitle }}
|
{{ $description := .Site.Params.sidebar.subtitle }}
|
||||||
|
|
||||||
|
<!-- Seprate description exists -->
|
||||||
|
{{ if .Site.Params.description }}
|
||||||
|
{{ $description = .Site.Params.description }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ if .Description }}
|
{{ if .Description }}
|
||||||
<!-- Page description exists -->
|
<!-- Page description exists -->
|
||||||
{{ $description = .Description }}
|
{{ $description = .Description }}
|
||||||
@ -9,4 +14,4 @@
|
|||||||
{{ $description = .Summary }}
|
{{ $description = .Summary }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ return ($description | plainify)}}
|
{{ return (replaceRE "\n" " " $description | plainify) }}
|
@ -1,12 +1,12 @@
|
|||||||
{{- partial "helper/external" (dict "Context" . "Namespace" "Vibrant") -}}
|
{{- partial "helper/external" (dict "Context" . "Namespace" "Vibrant") -}}
|
||||||
|
|
||||||
{{- $opts := dict "minify" hugo.IsProduction -}}
|
{{- $opts := dict "minify" hugo.IsProduction -}}
|
||||||
{{- $script := resources.Get "ts/main.ts" | js.Build $opts -}}
|
{{- $script := resources.Get "ts/main.ts" | js.Build $opts | fingerprint -}}
|
||||||
|
|
||||||
<script type="text/javascript" src="{{ $script.RelPermalink }}" defer></script>
|
<script type="text/javascript" src="{{ $script.RelPermalink }}" defer></script>
|
||||||
|
|
||||||
{{- with resources.Get "ts/custom.ts" -}}
|
{{- with resources.Get "ts/custom.ts" -}}
|
||||||
{{/* Place your custom script in HUGO_SITE_FOLDER/assets/ts/custom.ts */}}
|
{{/* Place your custom script in HUGO_SITE_FOLDER/assets/ts/custom.ts */}}
|
||||||
{{- $customScript := . | js.Build $opts -}}
|
{{- $customScript := . | js.Build $opts | fingerprint -}}
|
||||||
<script type="text/javascript" src="{{ $customScript.RelPermalink }}" defer></script>
|
<script type="text/javascript" src="{{ $customScript.RelPermalink }}" defer></script>
|
||||||
{{- end -}}
|
{{- end -}}
|
@ -1,11 +1,11 @@
|
|||||||
{{- $ThemeVersion := "3.12.0" -}}
|
{{- $ThemeVersion := "3.30.0" -}}
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<section class="copyright">
|
<section class="copyright">
|
||||||
©
|
©
|
||||||
{{ if and (.Site.Params.footer.since) (ne .Site.Params.footer.since (int (now.Format "2006"))) }}
|
{{ if and (.Site.Params.footer.since) (ne .Site.Params.footer.since (int (now.Format "2006"))) }}
|
||||||
{{ .Site.Params.footer.since }} -
|
{{ .Site.Params.footer.since }} -
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ now.Format "2006" }} {{ .Site.Title }}
|
{{ now.Format "2006" }} {{ default .Site.Title .Site.Copyright }}
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="powerby">
|
<section class="powerby">
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||||||
|
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
<meta name='description' content='{{ $description }}'>
|
<meta name='description' {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
|
{{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }}
|
||||||
|
|
||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partial "data/title" . -}}
|
||||||
<title>{{ $title }}</title>
|
<title>{{ $title }}</title>
|
||||||
|
|
||||||
<link rel='canonical' href='{{ .Permalink }}'>
|
<link rel='canonical' href='{{ .Permalink }}'>
|
||||||
@ -18,7 +19,7 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ with .Site.Params.favicon }}
|
{{ with .Site.Params.favicon }}
|
||||||
<link rel="shortcut icon" href="{{ . }}" />
|
<link rel="shortcut icon" href="{{ . | relURL }}" />
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- template "_internal/google_analytics.html" . -}}
|
{{- template "_internal/google_analytics.html" . -}}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
|
|
||||||
<meta property='og:title' content='{{ $title }}'>
|
<meta property='og:title' {{ printf "content=%q" $title | safeHTMLAttr }}>
|
||||||
<meta property='og:description' content='{{ $description }}'>
|
<meta property='og:description' {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
<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 }}'>
|
||||||
<meta property='og:type' content='
|
<meta property='og:type' content='
|
||||||
@ -32,8 +32,8 @@
|
|||||||
<meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/>
|
<meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- if not .Site.LastChange.IsZero -}}
|
{{- if not .Site.Lastmod.IsZero -}}
|
||||||
<meta property='og:updated_time' content='{{ .Site.LastChange.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
|
<meta property='og:updated_time' content='{{ .Site.Lastmod.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
|
|
||||||
<meta name="twitter:title" content="{{ $title }}">
|
<meta name="twitter:title" {{ printf "content=%q" $title | safeHTMLAttr }}>
|
||||||
<meta name="twitter:description" content="{{ $description }}">
|
<meta name="twitter:description" {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
|
|
||||||
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" -}}
|
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" -}}
|
||||||
{{- if $image.exists -}}
|
{{- if $image.exists -}}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
{{ $sass := resources.Get "scss/style.scss" }}
|
{{ $sass := resources.Get "scss/style.scss" }}
|
||||||
{{ $style := $sass | resources.ToCSS | minify | resources.Fingerprint "sha256" }}
|
{{ $style := $sass | toCSS | minify | resources.Fingerprint "sha256" }}
|
||||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
@ -38,13 +38,14 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{- with .Site.Menus.social -}}
|
{{- with .Site.Menus.social -}}
|
||||||
<ol class="social-menu">
|
<ol class="menu-social">
|
||||||
{{ range . }}
|
{{ range . }}
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
href='{{ .URL }}'
|
href='{{ .URL }}'
|
||||||
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
|
{{ if eq (default true .Params.newTab) true }}target="_blank"{{ end }}
|
||||||
{{ with .Name }}title="{{ . }}"{{ end }}
|
{{ with .Name }}title="{{ . }}"{{ end }}
|
||||||
|
rel="me"
|
||||||
>
|
>
|
||||||
{{ $icon := default "link" .Params.Icon }}
|
{{ $icon := default "link" .Params.Icon }}
|
||||||
{{ with $icon }}
|
{{ with $icon }}
|
||||||
@ -60,12 +61,11 @@
|
|||||||
{{ $currentPage := . }}
|
{{ $currentPage := . }}
|
||||||
{{ range .Site.Menus.main }}
|
{{ range .Site.Menus.main }}
|
||||||
{{ $active := or (eq $currentPage.Title .Name) (or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .)) }}
|
{{ $active := or (eq $currentPage.Title .Name) (or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .)) }}
|
||||||
|
|
||||||
<li {{ if $active }} class='current' {{ end }}>
|
<li {{ if $active }} class='current' {{ end }}>
|
||||||
<a href='{{ .URL | relLangURL }}' {{ if eq .Params.newTab true }}target="_blank"{{ end }}>
|
<a href='{{ .URL }}' {{ if eq .Params.newTab true }}target="_blank"{{ end }}>
|
||||||
{{ $icon := default .Pre .Params.Icon }}
|
{{ $icon := default .Pre .Params.Icon }}
|
||||||
{{ if .Pre }}
|
{{ if .Pre }}
|
||||||
{{ warnf "Menu item [%s] is using [pre] field to set icon, please use [params.icon] instead.\nMore information: https://docs.stack.jimmycai.com/configuration/custom-menu.html" .URL }}
|
{{ warnf "Menu item [%s] is using [pre] field to set icon, please use [params.icon] instead.\nMore information: https://stack.jimmycai.com/config/menu" .URL }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ with $icon }}
|
{{ with $icon }}
|
||||||
{{ partial "helper/icon" . }}
|
{{ partial "helper/icon" . }}
|
||||||
@ -74,27 +74,30 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<li class="menu-bottom-section">
|
||||||
|
<ol class="menu">
|
||||||
|
{{- $currentLanguageCode := .Language.Lang -}}
|
||||||
|
{{ if ( compare.Gt .Site.Home.AllTranslations.Len 1 ) }}
|
||||||
|
{{ with .Site.Home.AllTranslations }}
|
||||||
|
<li id="i18n-switch">
|
||||||
|
{{ partial "helper/icon" "language" }}
|
||||||
|
<select name="language" title="language" onchange="window.location.href = this.selectedOptions[0].value">
|
||||||
|
{{ range . }}
|
||||||
|
<option value="{{ .Permalink }}" {{ if eq .Language.Lang $currentLanguageCode }}selected{{ end }}>{{ .Language.LanguageName }}</option>
|
||||||
|
{{ end }}
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
<div class="menu-bottom-section">
|
{{ if (default false .Site.Params.colorScheme.toggle) }}
|
||||||
{{- $currentLanguageCode := .Language.Lang -}}
|
<li id="dark-mode-toggle">
|
||||||
{{ with .Site.Home.AllTranslations }}
|
{{ partial "helper/icon" "toggle-left" }}
|
||||||
<li id="i18n-switch">
|
{{ partial "helper/icon" "toggle-right" }}
|
||||||
{{ partial "helper/icon" "language" }}
|
<span>{{ T "darkMode" }}</span>
|
||||||
<select name="language" onchange="window.location.href = this.selectedOptions[0].value">
|
</li>
|
||||||
{{ range . }}
|
{{ end }}
|
||||||
<option value="{{ .Permalink }}" {{ if eq .Language.Lang $currentLanguageCode }}selected{{ end }}>{{ .Language.LanguageName }}</option>
|
</ol>
|
||||||
{{ end }}
|
</li>
|
||||||
</select>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ if (default false .Site.Params.colorScheme.toggle) }}
|
|
||||||
<li id="dark-mode-toggle">
|
|
||||||
{{ partial "helper/icon" "toggle-left" }}
|
|
||||||
{{ partial "helper/icon" "toggle-right" }}
|
|
||||||
<span>{{ T "darkMode" }}</span>
|
|
||||||
</li>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
</ol>
|
</ol>
|
||||||
</aside>
|
</aside>
|
||||||
|
@ -4,7 +4,10 @@
|
|||||||
<aside class="sidebar right-sidebar sticky">
|
<aside class="sidebar right-sidebar sticky">
|
||||||
{{ range $widget := . }}
|
{{ range $widget := . }}
|
||||||
{{ if templates.Exists (printf "partials/widget/%s.html" .type) }}
|
{{ if templates.Exists (printf "partials/widget/%s.html" .type) }}
|
||||||
{{ partial (printf "widget/%s" .type) (dict "Context" $context "Params" .params) }}
|
<!-- Ensure that the `params` is not nil -->
|
||||||
|
{{- $params := default dict .params -}}
|
||||||
|
|
||||||
|
{{ partial (printf "widget/%s" .type) (dict "Context" $context "Params" $params) }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ warnf "Widget %s not found" .type }}
|
{{ warnf "Widget %s not found" .type }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
publish = "exampleSite/public"
|
publish = "exampleSite/public"
|
||||||
|
|
||||||
[build.environment]
|
[build.environment]
|
||||||
HUGO_VERSION = "0.100.2"
|
HUGO_VERSION = "0.124.0"
|
||||||
HUGO_THEME = "repo"
|
HUGO_THEME = "repo"
|
||||||
|
|
||||||
[context.production]
|
[context.production]
|
||||||
|
@ -20,7 +20,7 @@ features = [
|
|||||||
"search",
|
"search",
|
||||||
]
|
]
|
||||||
|
|
||||||
min_version = "0.87.0"
|
min_version = "0.123.0"
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "Jimmy Cai"
|
name = "Jimmy Cai"
|
||||||
|
Loading…
Reference in New Issue
Block a user