97 Commits

Author SHA1 Message Date
elkan1788
1b98206cad Merge branch 'release_v4.6.2'
Some checks failed
sync-2-gitee / sync-2-gitee (push) Failing after 3s
2024-07-21 22:11:30 +08:00
elkan1788
9e42b3fad1 🔥 Update the multi cnd vendor service. 2024-07-21 19:52:40 +08:00
elkan1788
d560e45ca2 🎨 🔥 Add font files for math. 2024-07-21 17:37:01 +08:00
elkan1788
046bb90685 💄 Add imag viewer demo images. 2024-07-21 14:18:29 +08:00
elkan1788
e86002e941 🐛 Change the demo friend link's avatar. 2024-07-21 14:06:49 +08:00
elkan1788
f8ac686c1c 🐛 Fixed the image viewer init & add demo. 2024-07-21 14:06:03 +08:00
elkan1788
082fb48650 📝 Update the link prefix to demo. 2024-07-21 11:51:35 +08:00
elkan1788
c07ff1df05 🎨 Add local resources to support the 3rd js & css. 2024-07-21 11:33:10 +08:00
elkan1788
c5c1f03557 🔒 🔧 Fixes #142 Optimize CDN service code 2024-07-20 21:36:08 +08:00
elkan1788
4e05bfb399 🏷️ Upgrade the dev version. 2024-06-10 21:13:26 +08:00
elkan1788
30212827f0 📝 Use local image from git repos. 2024-06-10 18:12:07 +08:00
elkan1788
5aaeae2885 📝 Add donors list & git label. 2024-06-10 17:47:31 +08:00
elkan1788
526a4b7005 🍱 Upgrade the 3rd resources & mirro 2024-06-07 18:36:43 +08:00
elkan1788
b4fd858b94 🐛 Rollback code & not support lower category. 2024-06-07 17:36:49 +08:00
凡梦星尘
ad03e3011e Merge pull request #137 from hxhue/fix-categories-page-not-counting-lowercase-categories
fixed #136  category name: .Page.Title => .Name
2024-04-29 13:03:24 +08:00
hxhue
5686c96de2 fix category name: .Page.Title => .Name 2024-04-11 13:40:05 +08:00
elkan1788
15933757ca 🏗️ Add friend's link flag.
Sometimes the web URL link were not availabed forever, so need check it when build the statics files.
2024-02-18 17:14:03 +08:00
elkan1788
5610d561bb ⚗️ Remove secondary menu settings
Now it does only support for Gemini theme, will be release next time.
2024-02-18 16:42:01 +08:00
elkan1788
385f0f023b 🔀 Merge local & remote code, seems not good for this. 2024-02-18 16:25:00 +08:00
elkan1788
40c36a70f0 🤡 Only for sync remote repository codes. 2024-02-18 16:21:12 +08:00
elkan1788
25f978e06e Merge branch 'develop' of github.com:hugo-next/hugo-theme-next into develop 2023-12-31 10:16:35 +08:00
elkan1788
a0ce0996e0 🔖 Update the version to 4.6.1 2023-12-31 10:15:30 +08:00
elkan1788
15c06f3445 🔖 Update the version to 4.5.4. 2023-12-31 08:24:46 +08:00
elkan1788
25aff95260 🐛 Fixed the font icon error, Resolved #134
Because the offical fontawsome had update the font size, there will use new class of icon reference.
2023-12-31 08:23:15 +08:00
凡梦星尘
93ec7e56e6 Merge pull request #130 from X-Zero-L/X-Zero-L-patch-1
Fixed the directory name in custom-files.md
2023-12-30 19:55:53 +08:00
凡梦星尘
cf47decf89 Merge pull request #127 from thomas-louvigne/french-version
French translation
2023-12-30 19:54:45 +08:00
X-Zero-L
b27a449dc5 Fixed the directory name in custom-files.md
Signed-off-by: X-Zero-L <98764734+X-Zero-L@users.noreply.github.com>
2023-12-01 19:50:34 +08:00
Thomas L
a7c7854617 remove trailing white spaces 2023-11-16 18:18:13 +01:00
Thomas L
89a8289f68 final translation 2023-11-16 18:15:16 +01:00
凡梦星尘
11685b9b7b Merge pull request #129 from sxz799/sxz799-patch-1
🐛 fixed修复复制代码时多余的空行
2023-11-08 20:51:21 +08:00
凡梦星尘
607d67051f Merge pull request #124 from chn-lee-yumi/chn-lee-yumi-feature-meta-description
Add meta description to head
2023-11-08 20:30:56 +08:00
Thomas L
8e3409c4af improve translation 2023-11-07 16:51:18 +01:00
Thomas L
6ebb7d928a improve translation 2023-11-07 16:36:11 +01:00
Thomas L
509ca385d7 improve translation 2023-11-07 16:04:31 +01:00
Thomas L
a1117d3403 BETA french translation 2023-11-06 15:25:53 +01:00
sxz799
d5a25fb0cc fix:修复复制代码时多余的空行
Signed-off-by: sxz799 <sxz799@126.com>
2023-10-27 15:45:16 +08:00
YumiLee
3b4f87bdbf 💄Add Meta Description to head
SEO optimization

Signed-off-by: YumiLee <chn.lee.yumi@gmail.com>
2023-10-20 23:31:35 +11:00
凡梦星尘
43d403a019 Merge pull request #120 from chn-lee-yumi/chn-lee-yumi-fix-missing-slash
🐛 Fixed the missing "/" of the directory and tag links
2023-10-16 10:02:39 +08:00
YumiLee
2ba53504e1 Merge pull request #1 from chn-lee-yumi/chn-lee-yumi-fix-missing-slash
🐛 Fixed the missing "/" of the directory and tag links
2023-10-13 15:45:33 +11:00
YumiLee
2fe68caed9 🐛 Fixed the missing "/" of the directory and tag links
Missing "/" will lead to an extra 301 and not friendly to search engines.

Signed-off-by: YumiLee <chn.lee.yumi@gmail.com>
2023-10-13 15:42:26 +11:00
凡梦星尘
f59fca14f8 Merge pull request #113 from WaterLemons2k/module Closed#70
Support Golang Module
2023-08-21 10:35:19 +08:00
WaterLemons2k
39e17d6f68 Support Golang Module 2023-08-19 17:08:37 +08:00
elkan1788
e08456419c Merge branch 'hotfix_v4.5.3' into develop 2023-07-18 11:58:35 +08:00
elkan1788
8405b789e9 Merge branch 'hotfix_v4.5.3'
Some checks failed
sync-2-gitee / sync-2-gitee (push) Failing after 3s
2023-07-18 11:57:04 +08:00
elkan1788
db7095c0bb 🐛 Fixed the 51la widget display none. 2023-07-18 11:56:38 +08:00
elkan1788
24229f1802 💄 Add secondary menu in Pisces & Gemini schemes. 2023-07-12 07:35:53 +08:00
elkan1788
b7ec24fd1b 🔖 Start new development version to v4.6.0 2023-06-28 16:36:32 +08:00
elkan1788
574be4e134 Merge branch 'hotfix_v4.5.2' into develop 2023-06-28 16:33:57 +08:00
elkan1788
9453520e2a Merge branch 'hotfix_v4.5.2'
Some checks failed
sync-2-gitee / sync-2-gitee (push) Failing after 3s
2023-06-28 16:33:35 +08:00
elkan1788
35fff3e0cc Add limit for generate index content, Resolved #101. 2023-06-28 16:33:02 +08:00
elkan1788
dfcdaf9245 Merge branch 'hotfix_v4.5.1' into develop 2023-06-28 10:17:49 +08:00
elkan1788
b4c5e79c1b Merge branch 'hotfix_v4.5.1'
Some checks failed
sync-2-gitee / sync-2-gitee (push) Failing after 3s
2023-06-28 10:17:26 +08:00
elkan1788
7be11c4b7f 🐛 Fixed the issue of converting English letters to lowercase in category names. 2023-06-27 23:06:38 +08:00
elkan1788
03b83da513 🐛 Fixed the issue of highlighting comma format error. 2023-06-27 23:01:13 +08:00
elkan1788
ccd85b2436 Merge branch 'release_v4.5.0' into develop 2023-06-24 21:24:41 +08:00
elkan1788
53ad048763 Merge branch 'release_v4.5.0'
Some checks failed
sync-2-gitee / sync-2-gitee (push) Failing after 2s
2023-06-24 21:20:22 +08:00
elkan1788
85871aadfc 🐛 Fixed the yaml syntax error. 2023-06-24 21:18:24 +08:00
elkan1788
61079367ef 🔧 Update the zh_tw i18n config file. 2023-06-24 20:27:00 +08:00
elkan1788
07e199ba11 🔖 Start new release version to 4.5.0 2023-06-24 16:49:05 +08:00
elkan1788
92a55d49e5 💄 Add magrin pixes from icon between text. 2023-06-24 16:37:33 +08:00
elkan1788
ee86b0d152 🐛 Fixed the comment enabled setting. 2023-06-24 15:24:04 +08:00
elkan1788
53f3a902c1 💄 Upgrade categories display in post meta. 2023-06-24 14:30:15 +08:00
elkan1788
05dba844d7 💄 Add support subcategory feature. 2023-06-24 11:08:17 +08:00
elkan1788
d44d4c2a79 💄 add page comment counter click event. 2023-06-23 22:06:42 +08:00
elkan1788
a4f496b796 📝 Upgrade README content with add new donor. 2023-06-23 20:09:17 +08:00
凡梦星尘
03ebd658ea Merge pull request #96 from vishnucho/main
feat i18n zh-tw
2023-04-23 09:52:31 +08:00
Vishnu Cho
77a33df023 feat i18n zh-tw 2023-04-15 15:47:21 +08:00
elkan1788
588740f27b 💄 Add header anchor in post page. Close #35 2023-04-07 14:17:15 +08:00
elkan1788
726349a2e0 🔀 sync main branch code 2023-04-05 15:49:39 +08:00
elkan1788
fbac63d70e 🎨 Improved page & comment counter, Close #74. 2023-04-05 12:16:05 +08:00
elkan1788
c7e4f52499 🎨 Update the site stat paramter format. 2023-04-02 17:07:29 +08:00
凡梦星尘
fdaabac210 Merge branch 'develop' of github.com:hugo-next/hugo-theme-next into develop 2023-02-20 10:30:42 +08:00
凡梦星尘
76bb84d195 Merge pull request #89 from ego/fix/utils-hideComments
Minor improvements for utils
2023-02-20 10:24:21 +08:00
凡梦星尘
88e6bc5993 🐛 Fixed the verify code build error. 2023-02-16 16:19:45 +08:00
Alter Ego
3feea66b49 * Fix utils function hideComments.
* Fix function name.
2023-02-10 01:20:07 +00:00
凡梦星尘
6b589a8206 :wrench:💄 Update the i18n config files. 2023-01-02 20:08:48 +08:00
凡梦星尘
835e98d85d :lipstick:🔧 Update the sidebar info. 2023-01-02 18:00:44 +08:00
凡梦星尘
a2019876a2 :wrench:💄 Update the post archive info. 2023-01-02 14:58:17 +08:00
凡梦星尘
dca196c315 :lipstick:🔧 Update the post meta info. 2023-01-01 22:06:59 +08:00
凡梦星尘
85b7dc11ca :lipstick:🔧 Upate the reward tip info. 2023-01-01 21:43:06 +08:00
凡梦星尘
03fd9dc829 :lipstick:🔧 Update the post copyright info. 2023-01-01 21:32:18 +08:00
凡梦星尘
a2f37c8470 Remove trim blank charsets flag to improve speed. 2023-01-01 21:12:58 +08:00
凡梦星尘
d0a6d943e0 📝 Find other way to break down math formula. 2023-01-01 17:48:24 +08:00
凡梦星尘
fa0f7856bf 📝 Update the math formula break down description. 2023-01-01 17:18:56 +08:00
凡梦星尘
dac9b379dc 💄 Move fixed post copyright word break limit. 2022-12-31 21:54:21 +08:00
凡梦星尘
a59b6a6f32 🔍 Add copyright's img attribute of alt. 2022-12-21 09:09:01 +08:00
凡梦星尘
40674ad12b 📝 Upgrade the README content to add new Donor. 2022-12-19 11:43:52 +08:00
凡梦星尘
b0ad23d764 Merge pull request #76 from ehlxr/patch-1
fix bug  404 of uppercase tag or category name
2022-12-19 11:39:34 +08:00
凡梦星尘
6db5f5c3f9 Merge pull request #76 from ehlxr/patch-1
fix bug  404 of uppercase tag or category name
2022-12-19 11:23:47 +08:00
ḕℏỈẍȓ
7b7b50fe1a fix bug 404 of uppercase tag or category name
fix bug of 404 when the tag or category  name is uppercase

Signed-off-by: ḕℏỈẍȓ <ehlxr.me@gmail.com>
2022-12-12 10:40:00 +08:00
kaolengmian7
73b15c7271 Merge remote-tracking branch 'origin/develop' into develop 2022-11-06 22:58:29 +08:00
凡梦星尘
24b135ca4b Merge branch 'hotfix_v4.4.1' into develop 2022-11-06 18:26:54 +08:00
凡梦星尘
86b9b5aa50 Merge branch 'hotfix_v4.4.1' 2022-11-06 18:26:14 +08:00
凡梦星尘
8918bff71f 🐛 Fixed the page views counter in home page. 2022-11-06 18:23:55 +08:00
凡梦星尘
dd3766bce3 📝 Startup hotfix for v4.4.1 2022-11-06 17:24:23 +08:00
kaolengmian7
8310dd347d [fix]修复样式BUG,调整 li 标签和 a 标签 css 样式 2022-11-05 10:31:41 +08:00
凡梦星尘
d6de03a2d0 Merge branch 'release_v4.4.0' into develop 2022-10-30 22:19:31 +08:00
167 changed files with 3709 additions and 1096 deletions

1
.gitignore vendored
View File

@@ -8,6 +8,7 @@ exampleSite/content/**/
!exmapleSite/content/about.md !exmapleSite/content/about.md
!exampleSite/content/archives !exampleSite/content/archives
!exampleSite/content/post !exampleSite/content/post
!exampleSite/content/post/image-viewer
# Exclude special files in data folder # Exclude special files in data folder
!exampleSite/data !exampleSite/data

View File

@@ -1,7 +1,7 @@
[中文](https://github.com/hugo-next/hugo-theme-next/blob/main/README.zh.md) | [English](#) [中文](https://github.com/hugo-next/hugo-theme-next/blob/main/README.zh.md) | [English](#)
<a title="Hugo NexT Website" href="https://preview.hugo-next.eu.org"> <a title="Hugo NexT Website" href="https://preview.hugo-next.eu.org">
<img align="right" alt="NexT logo" width="266" src="https://lisenhui.gitee.io/imgs/hugo-next/logo/hugo-next-primary.png"> <img align="right" alt="NexT logo" width="266" src="images/hugo-next-primary.png">
</a> </a>
## Hugo NexT ## Hugo NexT
@@ -10,7 +10,9 @@
> All page designs & configuration compatibility with Hexo NexT, it's very easy migrate your site from Hexo to Hugo and enjoy yourself. > All page designs & configuration compatibility with Hexo NexT, it's very easy migrate your site from Hexo to Hugo and enjoy yourself.
[![Gitter](https://img.shields.io/gitter/room/hugo-next/hugo-them-next?logo=gitter&style=flat-square)](https://gitter.im/hugo-next/community) [![Build Hugo Version](https://img.shields.io/badge/Hugo-%3E=0.89.0-red?style=flat-square&logo=hugo&color=%23FF4088&&label=Hugo%20Extended)](https://github.com/gohugoio/hugo/releases/latest) [![GitHub deployments](https://img.shields.io/github/deployments/hugo-next/hugo-next.github.io/github-pages?style=flat-square&label=gh-pg&logo=GitHub)](https://github.com/hugo-next/hugo-theme-next) [![Repos Size](https://img.shields.io/github/repo-size/hugo-next/hugo-theme-next?style=flat-square&color=%23FFBF3B&logo=Files)](https://github.com/hugo-next/hugo-theme-next/find/main) [![GitHub](https://img.shields.io/github/license/hugo-next/hugo-theme-next?logo=webauthn&style=flat-square)](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE) [![Gitter](https://img.shields.io/gitter/room/hugo-next/hugo-them-next?logo=gitter&style=flat-square&label=Gitter)](https://gitter.im/hugo-next/community) [![Build Hugo Version](https://img.shields.io/badge/Hugo-%3E=0.89.0-red?style=flat-square&logo=hugo&color=%23FF4088&&label=Hugo%20Extended)](https://github.com/gohugoio/hugo/releases/latest) [![GitHub deployments](https://img.shields.io/github/deployments/hugo-next/hugo-next.github.io/github-pages?style=flat-square&logo=GitHub&label=Github%20Pages)](https://github.com/hugo-next/hugo-theme-next) [![Contributors](https://img.shields.io/github/contributors/hugo-next/hugo-theme-next?style=flat-square&color=%235E0D73&logo=contributorcovenant&label=Contributors)](https://github.com/hugo-next/hugo-theme-next/graphs/contributors) [![Latest Release](https://img.shields.io/github/v/release/hugo-next/hugo-theme-next?include_prereleases&style=flat-square&color=%23DD2C00&logo=semanticrelease&label=Latest%20Release)](https://github.com/hugo-next/hugo-theme-next/releases) [![Repos Size](https://img.shields.io/github/repo-size/hugo-next/hugo-theme-next?style=flat-square&color=%23FFBF3B&logo=Files&label=Repo%20Size)](https://github.com/hugo-next/hugo-theme-next/find/main) [![GitHub](https://img.shields.io/github/license/hugo-next/hugo-theme-next?logo=webauthn&style=flat-square&label=License)](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE)
![Screenshot](images/screenshot.png)
## 🎨 4 Scheme ## 🎨 4 Scheme
@@ -21,10 +23,10 @@
## 👀 Live Preview ## 👀 Live Preview
| Environment | :gemini: (**Default**) | :heart_decoration: | :six_pointed_star: | :pisces: | Status | | Environment | :gemini: (**Default**) | :heart_decoration: | :six_pointed_star: | :pisces: | Status |
| :---: | :---: | :---: | :---: | :---: | :---: | | :---------: | :-----------------------------------------: | :--------------------------------------------: | :--------------------------------------------: | :------------------------------------------------: | :-------------------------------------------------------------------------------------------------: |
| Preliminary | [Gemini](https://preview.hugo-next.eu.org/) | [Muse](https://preview.hugo-next.eu.org/muse/) | [Mist](https://preview.hugo-next.eu.org/mist/) | [Pisces](https://preview.hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=preview-hugo-next&style=for-the-badge) | | Preliminary | [Gemini](https://preview.hugo-next.eu.org/) | [Muse](https://preview.hugo-next.eu.org/muse/) | [Mist](https://preview.hugo-next.eu.org/mist/) | [Pisces](https://preview.hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=preview-hugo-next&style=for-the-badge) |
| Production | [Gemini](https://hugo-next.eu.org/) | [Muse](https://hugo-next.eu.org/muse/) | [Mist](https://hugo-next.eu.org/mist/) | [Pisces](https://hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) | | Production | [Gemini](https://hugo-next.eu.org/) | [Muse](https://hugo-next.eu.org/muse/) | [Mist](https://hugo-next.eu.org/mist/) | [Pisces](https://hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) |
> - Preliminary: all new feature developments will be previewed as soon as possible. > - Preliminary: all new feature developments will be previewed as soon as possible.
> - Production: Only the features that are tested stably and meet the requirements will be officially released. > - Production: Only the features that are tested stably and meet the requirements will be officially released.
@@ -33,12 +35,11 @@
Before use `Hugo NexT` theme, please make sure installed `Git` & `Hugo Extened` software in your PC. Before use `Hugo NexT` theme, please make sure installed `Git` & `Hugo Extened` software in your PC.
### 📰 Use Template
### 📰 Use Template
If there your first time build blog site, Recommended use template of `Github` which can easily create your site code. Click & visit this repository: [hugo-theme-next-starter](https://github.com/hugo-next/hugo-theme-next-starter), then click the green button which name call `Use this template` upper right corner on the page. Just like below image: If there your first time build blog site, Recommended use template of `Github` which can easily create your site code. Click & visit this repository: [hugo-theme-next-starter](https://github.com/hugo-next/hugo-theme-next-starter), then click the green button which name call `Use this template` upper right corner on the page. Just like below image:
![Use Template](https://imgs.lisenhui.cn/hugo-next/use-hugo-next-starter.png) ![Use Template](images/use-hugo-next-starter.png)
After do that click the green button which name call `Create repository from template`, then will create your site code automatic, and clone it on your PC environment. After do that click the green button which name call `Create repository from template`, then will create your site code automatic, and clone it on your PC environment.
@@ -53,6 +54,16 @@ $ cp themes/hugo-theme-next/exampleSite/config.yaml .
$ mv config.toml config.toml.backup $ mv config.toml config.toml.backup
``` ```
Or use `Hugo module` to lead into the theme, see below commands:
```shell
$ cd hugo-next-exmaple
$ hugo mod init hugo-next-exmaple
$ wget -O config.yaml https://github.com/hugo-next/hugo-theme-next/raw/main/exampleSite/config.yaml
$ sed -i 's/hugo-theme-next/github.com\/hugo-next\/hugo-theme-next\/v4/' config.yaml
$ mv config.toml config.toml.backup
```
### 💻 Preview on Local ### 💻 Preview on Local
```shell ```shell
@@ -74,6 +85,13 @@ $ cd hugo-next-exmaple
$ git submodule update --remote $ git submodule update --remote
``` ```
Execute command as below if you are using `Hugo module`:
```shell
$ cd hugo-next-exmaple
$ hugo mod get -u
```
## 📝 New Post ## 📝 New Post
There had ready a new post template for you, It is recommended to use the following Hugo command to quickly create a new post: There had ready a new post template for you, It is recommended to use the following Hugo command to quickly create a new post:
@@ -81,12 +99,12 @@ There had ready a new post template for you, It is recommended to use the follo
```sh ```sh
$ hugo new posts/hello-world.md $ hugo new posts/hello-world.md
``` ```
> **Note** > **Note**
> By defalut `hugo new` command will create new post under `content` root directory, so in here `posts` were you custom subfolder in `content` directory. > By defalut `hugo new` command will create new post under `content` root directory, so in here `posts` were you custom subfolder in `content` directory.
All front matter parameters's description in post as below: All front matter parameters's description in post as below:
```yml ```yml
--- ---
title: "{{ replace .Name "-" " " | title }}" title: "{{ replace .Name "-" " " | title }}"
@@ -170,11 +188,16 @@ That's my hobby to develop `Hugo NexT` theme, thanks all people who gived the do
List of Donors(Order desc by Date): List of Donors(Order desc by Date):
| Donation time | Donors | Donation mode | Donation content | Message | | Donation time | Donors | Donation mode | Donation content | Message |
| :-------: | ------ | ------ | ---- | ---- | | :-----------: | ------ | ------------- | ---------------- | -------------------------------------------------------------------------- |
| 2022.09.30 | *軒 | wechat pay | ¥66.66 | Hope it could help more people. | | 2024.05.11 | *祥 | alipay | RMB 66.66 | Thank you for creating such a great theme. |
| 2022.09.30 | N*l | wechat pay | ¥20.00 | / | | 2023.07.25 | *五 | alipay | RMB 50.00 | I really like the 'Next' theme, thank you, let me buy you a cup of coffee. |
| 2022.07.09 | *风 | wechat pay | ¥10.00 | / | | 2023.06.01 | **霖 | alipay | RMB 10.00 | / |
| 2022.05.08 | *泉 | wechat pay | ¥6.60 | Good luck with next develop. | | 2022.11.15 | f888 | xianyu | RMB 6.20 | Good luck. |
| 2022.02.28 | *娇 | wechat pay | ¥5.00 | / | | 2022.09.30 | *軒 | wechat pay | RMB 66.66 | Hope it could help more people. |
| 2021.12.21 | z*y | wechat pay | ¥18.88 | / | | 2022.09.30 | N*l | wechat pay | RMB 20.00 | / |
| 2022.07.09 | *风 | wechat pay | RMB 10.00 | / |
| 2022.05.08 | *泉 | wechat pay | RMB 6.60 | Good luck with next develop. |
| 2022.02.28 | *娇 | wechat pay | RMB 5.00 | / |
| 2021.12.21 | z*y | wechat pay | RMB 18.88 | / |

View File

@@ -1,7 +1,7 @@
[中文](#) | [English](https://github.com/hugo-next/hugo-theme-next/blob/main/README.md) [中文](#) | [English](https://github.com/hugo-next/hugo-theme-next/blob/main/README.md)
<a title="Hugo NexT 站点" href="https://preview.hugo-next.eu.org"> <a title="Hugo NexT 站点" href="https://preview.hugo-next.eu.org">
<img align="right" alt="NexT logo" width="266" src="https://imgs.lisenhui.cn/hugo-next/logo/hugo-next-primary.png"> <img align="right" alt="NexT logo" width="266" src="images/hugo-next-primary.png">
</a> </a>
## Hugo NexT ## Hugo NexT
@@ -10,7 +10,9 @@
> 本主题的所有页面设计和配置项都与原来 `Hexo` 引擎的 `NexT` 主题保持了良好的兼容性,可以非常平滑的从 `Hexo` 迁移至 `Hugo` 引擎,欢迎大家使用并反馈。 > 本主题的所有页面设计和配置项都与原来 `Hexo` 引擎的 `NexT` 主题保持了良好的兼容性,可以非常平滑的从 `Hexo` 迁移至 `Hugo` 引擎,欢迎大家使用并反馈。
[![Gitter](https://img.shields.io/gitter/room/hugo-next/hugo-them-next?logo=gitter&style=flat-square)](https://gitter.im/hugo-next/community) [![Build Hugo Version](https://img.shields.io/badge/Hugo-%3E=0.89.0-red?style=flat-square&logo=hugo&color=%23FF4088&&label=Hugo%20Extended)](https://github.com/gohugoio/hugo/releases/latest) [![GitHub deployments](https://img.shields.io/github/deployments/hugo-next/hugo-next.github.io/github-pages?style=flat-square&label=gh-pg&logo=GitHub)](https://github.com/hugo-next/hugo-theme-next) [![Repos Size](https://img.shields.io/github/repo-size/hugo-next/hugo-theme-next?style=flat-square&color=%23FFBF3B&logo=Files)](https://github.com/hugo-next/hugo-theme-next/find/main) [![GitHub](https://img.shields.io/github/license/hugo-next/hugo-theme-next?logo=webauthn&style=flat-square)](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE) [![Gitter](https://img.shields.io/gitter/room/hugo-next/hugo-them-next?logo=gitter&style=flat-square&label=Gitter)](https://gitter.im/hugo-next/community) [![Build Hugo Version](https://img.shields.io/badge/Hugo-%3E=0.89.0-red?style=flat-square&logo=hugo&color=%23FF4088&&label=Hugo%20Extended)](https://github.com/gohugoio/hugo/releases/latest) [![GitHub deployments](https://img.shields.io/github/deployments/hugo-next/hugo-next.github.io/github-pages?style=flat-square&logo=GitHub&label=Github%20Pages)](https://github.com/hugo-next/hugo-theme-next) [![Contributors](https://img.shields.io/github/contributors/hugo-next/hugo-theme-next?style=flat-square&color=%235E0D73&logo=contributorcovenant&label=Contributors)](https://github.com/hugo-next/hugo-theme-next/graphs/contributors) [![Latest Release](https://img.shields.io/github/v/release/hugo-next/hugo-theme-next?include_prereleases&style=flat-square&color=%23DD2C00&logo=semanticrelease&label=Latest%20Release)](https://github.com/hugo-next/hugo-theme-next/releases) [![Repos Size](https://img.shields.io/github/repo-size/hugo-next/hugo-theme-next?style=flat-square&color=%23FFBF3B&logo=Files&label=Repo%20Size)](https://github.com/hugo-next/hugo-theme-next/find/main) [![GitHub](https://img.shields.io/github/license/hugo-next/hugo-theme-next?logo=webauthn&style=flat-square&label=License)](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE)
![截图](images/screenshot.png)
## 🎨 4 种页面模式 ## 🎨 4 种页面模式
@@ -21,10 +23,10 @@
## 👀 在线预览 ## 👀 在线预览
| 环境 | :gemini: (**Default**) | :heart_decoration: | :six_pointed_star: | :pisces: | 状态 | | 环境 | :gemini: (**Default**) | :heart_decoration: | :six_pointed_star: | :pisces: | 状态 |
| :---: | :---: | :---: | :---: | :---: | :---: | | :------: | :-----------------------------------------: | :--------------------------------------------: | :--------------------------------------------: | :------------------------------------------------: | :-----------------------------------------------------------------------------------------: |
| 开发版本 | [双子座](https://preview.hugo-next.eu.org/) | [冥想](https://preview.hugo-next.eu.org/muse/) | [迷雾](https://preview.hugo-next.eu.org/mist/) | [双鱼座](https://preview.hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) | | 开发版本 | [双子座](https://preview.hugo-next.eu.org/) | [冥想](https://preview.hugo-next.eu.org/muse/) | [迷雾](https://preview.hugo-next.eu.org/mist/) | [双鱼座](https://preview.hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) |
| 正式版本 | [双子座](https://hugo-next.eu.org/) | [冥想](https://hugo-next.eu.org/muse/) | [迷雾](https://hugo-next.eu.org/mist/) | [双鱼座](https://hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) | | 正式版本 | [双子座](https://hugo-next.eu.org/) | [冥想](https://hugo-next.eu.org/muse/) | [迷雾](https://hugo-next.eu.org/mist/) | [双鱼座](https://hugo-next.eu.org/pisces/) | ![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=hugo-next&style=for-the-badge) |
> - 开发版本: 所有的新功能开发都会在此第一时间发布预览 > - 开发版本: 所有的新功能开发都会在此第一时间发布预览
> - 正式版本: 只有测试稳定且符合要求的功能才会正式发布 > - 正式版本: 只有测试稳定且符合要求的功能才会正式发布
@@ -37,7 +39,7 @@
如果你是初次建站的话,可以使用 `Github` 的模板功能,一键生成你的站点仓库代码。访问 [hugo-theme-next-starter](https://github.com/hugo-next/hugo-theme-next-starter) 点击右上角的 `Use this template` 绿色按钮然后填写代码仓库的相关信息,参考如下: 如果你是初次建站的话,可以使用 `Github` 的模板功能,一键生成你的站点仓库代码。访问 [hugo-theme-next-starter](https://github.com/hugo-next/hugo-theme-next-starter) 点击右上角的 `Use this template` 绿色按钮然后填写代码仓库的相关信息,参考如下:
![使用模板创建](https://imgs.lisenhui.cn/hugo-next/use-hugo-next-starter.png) ![使用模板创建](images/use-hugo-next-starter.png)
最后点击 `Create repository from template` 绿色按钮,会直接在你的空间中生成站点代码,再把它克隆到本地进行创作。 最后点击 `Create repository from template` 绿色按钮,会直接在你的空间中生成站点代码,再把它克隆到本地进行创作。
@@ -52,6 +54,16 @@ $ cp themes/hugo-theme-next/exampleSite/config.yaml .
$ mv config.toml config.toml.backup $ mv config.toml config.toml.backup
``` ```
或通过 `Hugo module` 模式引用本主题,参考如下命令:
```shell
$ cd hugo-next-exmaple
$ hugo mod init hugo-next-exmaple
$ wget -O config.yaml https://github.com/hugo-next/hugo-theme-next/raw/main/exampleSite/config.yaml
$ sed -i 's/hugo-theme-next/github.com\/hugo-next\/hugo-theme-next\/v4/' config.yaml
$ mv config.toml config.toml.backup
```
### 💻 本地预览 ### 💻 本地预览
```shell ```shell
@@ -73,6 +85,13 @@ $ cd hugo-next-exmaple
$ git submodule update --remote $ git submodule update --remote
``` ```
如使用 `Hugo module`,执行如下命令:
```shell
$ cd hugo-next-exmaple
$ hugo mod get -u
```
> **Note** > **Note**
> 本主题的代码同时也同步到 `Gitee` 仓库,在国内环境可切换用 [https://gitee.com/hugo-next/hugo-theme-next.git](https://gitee.com/hugo-next/hugo-theme-next.git) 镜像速度更快,也更稳定。 > 本主题的代码同时也同步到 `Gitee` 仓库,在国内环境可切换用 [https://gitee.com/hugo-next/hugo-theme-next.git](https://gitee.com/hugo-next/hugo-theme-next.git) 镜像速度更快,也更稳定。
@@ -89,7 +108,6 @@ $ hugo new posts/hello-world.md
关于文章头部那些参数作用的说明参考如下: 关于文章头部那些参数作用的说明参考如下:
```yml ```yml
--- ---
# 文章标题 # 文章标题
@@ -179,11 +197,16 @@ Copyright (c) 2022 hugo-next 团队
以下是打赏名单列表(按时间倒序): 以下是打赏名单列表(按时间倒序):
| 打赏时间 | 打赏者 | 打赏方式 | 打赏内容 | 留言 | | 打赏时间 | 打赏者 | 打赏方式 | 打赏内容 | 留言 |
| :-------: | ------ | ------ | ---- | ---- | | :--------: | ------ | -------- | -------- | -------------------------------- |
| 2022.09.30 | *軒 | 微信支付 | ¥66.66 | 愿项目造福更多人! | | 2024.05.11 | *祥 | 支付宝 | 66.66 | 感谢创作这么好的主题 |
| 2022.09.30 | N*l | 微信支付 | ¥20.00 | / | | 2023.07.25 | *五 | 微信支付 | ¥50.00 | 很喜欢next主题感谢请你喝咖啡 |
| 2022.07.09 | *风 | 微信支付 | ¥10.00 | / | | 2023.06.01 | **霖 | 支付宝 | ¥10.00 | / |
| 2022.05.08 | *泉 | 微信支付 | ¥6.60 | 祝开发next顺利 | | 2022.11.15 | f888 | 咸鱼 | ¥6.20 | 聊表心意 |
| 2022.02.28 | *娇 | 微信支付 | ¥5.00 | / | | 2022.09.30 | *軒 | 微信支付 | ¥66.66 | 愿项目造福更多人! |
| 2021.12.21 | z*y | 微信支付 | ¥18.88 | / | | 2022.09.30 | N*l | 微信支付 | ¥20.00 | / |
| 2022.07.09 | *风 | 微信支付 | ¥10.00 | / |
| 2022.05.08 | *泉 | 微信支付 | ¥6.60 | 祝开发next顺利 |
| 2022.02.28 | *娇 | 微信支付 | ¥5.00 | / |
| 2021.12.21 | z*y | 微信支付 | ¥18.88 | / |

View File

@@ -1 +1 @@
4.4.0 4.6.2

View File

@@ -15,14 +15,23 @@
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
}
.category-list-item { .category-list-item:before {
margin: 5px 10px; font-family: var(--fa-style-family,"Font Awesome 6 Free");
font-weight: var(--fa-style,900);
content: "\f07c";
margin-right: 5px;
}
.category-list-item {
margin: 5px 10px;
font-weight: bold;
}
} }
.category-list-count { .category-list-count {
color: $grey; color: $grey;
padding: 0 2px;
&::before { &::before {
content: ' ('; content: ' (';
@@ -33,7 +42,19 @@
} }
} }
.category-list-child { .category-children-list {
padding-left: 10px; padding-left: 38px;
list-style: none;
.category-children-list-item:before {
font-family: var(--fa-style-family,"Font Awesome 6 Free");
font-weight: var(--fa-style,900);
content: "\f0ae";
margin-right: 5px;
}
.category-children-list-item {
font-size: 0.925em;
}
} }
} }

View File

@@ -59,6 +59,10 @@
@include post-card(); @include post-card();
border: none; border: none;
background: none; background: none;
li {
word-break: break-all;
}
} }
} }

View File

@@ -113,3 +113,8 @@
flex-basis: 100%; flex-basis: 100%;
height: 0; height: 0;
} }
#comments-count {
cursor: pointer;
border-bottom: 1px solid $link-decoration-color;
}

View File

@@ -47,6 +47,14 @@
img { img {
display: inline-block; display: inline-block;
max-width: 50px;
@include mobile() {
max-width: 40px;
}
&:last-child {
max-height: 18px;
}
} }
$footer_vendors_imgs_len: length($footer_vendors_imgs_width); $footer_vendors_imgs_len: length($footer_vendors_imgs_width);

View File

@@ -1,12 +1,26 @@
// Menu // Menu
// -------------------------------------------------- // --------------------------------------------------
.menu { .menu, .menu-children {
margin: 0; margin: 0;
padding: 1em 0; padding: 1em 0;
text-align: center; text-align: center;
} }
.menu-item { .menu-children {
max-height: 0;
padding: 0;
overflow: hidden;
transition: max-height 1.5s ease-out;
}
.menu-children {
&.expand {
max-height: 400px;
transition: max-height 1.5s ease-in;
}
}
.menu-item, .menu-child-item {
display: inline-block; display: inline-block;
list-style: none; list-style: none;
margin: 0 10px; margin: 0 10px;
@@ -51,6 +65,15 @@
margin-left: 0; margin-left: 0;
} }
} }
.menu-item-shrink-icon {
float: right;
}
}
.menu-child-item {
display: block;
margin: 0;
} }
.use-motion .menu-item { .use-motion .menu-item {

View File

@@ -99,7 +99,7 @@
@if $icon { @if $icon {
content: $icon; content: $icon;
} }
font-family: 'Font Awesome 5 Free'; font-family: 'Font Awesome 6 Free';
font-weight: 900; font-weight: 900;
} }

View File

@@ -34,6 +34,10 @@
} }
} }
// a + ul {
// top: calc(30% + 5px);
// }
.badge { .badge {
background: white; background: white;
border-radius: 10px; border-radius: 10px;
@@ -41,5 +45,24 @@
padding: 1px 4px; padding: 1px 4px;
text-shadow: 1px 1px 0 rgba(0, 0, 0, .1); text-shadow: 1px 1px 0 rgba(0, 0, 0, .1);
} }
.menu-item-shrink-icon {
margin-left: 5px;
}
}
}
.menu-children {
display: none;
transition: transform 1s ease-in-out;
transform: translateY(-100%);
// position: absolute;
// z-index: 999;
&.expand {
display: block;
max-height: 400px;
transition: transform 1.5s ease-in;
transform: translateY(-100%);
} }
} }

View File

@@ -1,6 +1,6 @@
// CSS Style Guide : https://codeguide.co/#css // CSS Style Guide : https://codeguide.co/#css
// All variables from site's config content. // All variables from site's config content.
{{- $P := .Site.Params }} {{ $P := .Site.Params }}
// Base // Base
$scheme : {{ $P.scheme }}; $scheme : {{ $P.scheme }};
$darkmode : {{ $P.darkmode }}; $darkmode : {{ $P.darkmode }};
@@ -129,18 +129,18 @@ $disqusjs_enable : false;
$livere_enable : {{ isset $P "livere" }}; $livere_enable : {{ isset $P "livere" }};
$utterances_enable : {{ isset $P "utterances" }}; $utterances_enable : {{ isset $P "utterances" }};
$waline_enable : {{ isset $P "waline" }}; $waline_enable : {{ isset $P "waline" }};
{{- with .Site.Params.comments }} {{ with .Site.Params.comments }}
{{- $tce := and (isset . "nav") (and .storage (gt (len .nav) 1)) }} {{ $tce := and (isset . "nav") (and .storage (gt (len .nav) 1)) }}
$two_comments_enable : {{ $tce }}; $two_comments_enable : {{ $tce }};
{{- if $tce }} {{ if $tce }}
{{- $sortNav := sort .nav "weight" }} {{ $sortNav := sort .nav "weight" }}
$two_comments_actived : {{ .active }}; $two_comments_actived : {{ .active }};
$first_comment_color : {{ (index $sortNav 0).color }}; $first_comment_color : {{ (index $sortNav 0).color }};
$first_comment_name : {{ lower (index $sortNav 0).name }}; $first_comment_name : {{ lower (index $sortNav 0).name }};
$second_comment_color : {{ (index $sortNav 1).color }}; $second_comment_color : {{ (index $sortNav 1).color }};
$second_comment_name : {{ lower (index $sortNav 1).name }}; $second_comment_name : {{ lower (index $sortNav 1).name }};
{{- end }} {{ end }}
{{- end }} {{ end }}
// //
// Variables Layer // Variables Layer
@@ -176,8 +176,3 @@ $second_comment_name : {{ lower (index $sortNav 1).name }};
// Schemes Layer // Schemes Layer
// -------------------------------------------------- // --------------------------------------------------
{{ printf "@import '_schemes/%s/';" $P.scheme }} {{ printf "@import '_schemes/%s/';" $P.scheme }}
// Custom Layer
// TODO
// --------------------------------------------------
// @import 'theme.injects.style';

View File

@@ -17,6 +17,7 @@
NexT.boot.registerEvents = function() { NexT.boot.registerEvents = function() {
NexT.utils.registerMenuClick();
NexT.utils.registerImageLoadEvent(); NexT.utils.registerImageLoadEvent();
NexT.utils.registerScrollPercent(); NexT.utils.registerScrollPercent();
// NexT.utils.registerCanIUseTag(); // NexT.utils.registerCanIUseTag();
@@ -24,6 +25,14 @@ NexT.boot.registerEvents = function() {
// Register comment's components // Register comment's components
NexT.plugins.register(); NexT.plugins.register();
// Register comment counter click event
const commentCnt = document.querySelector('#comments-count');
if (commentCnt && NexT.CONFIG.page.isPage) {
commentCnt.addEventListener('click', event => {
NexT.utils.slidScrollBarAnime('comments');
});
}
// Mobile top menu bar. // Mobile top menu bar.
document.querySelector('.site-nav-toggle .toggle').addEventListener('click', event => { document.querySelector('.site-nav-toggle .toggle').addEventListener('click', event => {
event.currentTarget.classList.toggle('toggle-close'); event.currentTarget.classList.toggle('toggle-close');
@@ -62,7 +71,7 @@ NexT.boot.refresh = function() {
NexT.utils.registerCommonSwitch(); NexT.utils.registerCommonSwitch();
NexT.utils.domAddClass('#goto-comments', 'goto-comments-on'); NexT.utils.domAddClass('#goto-comments', 'goto-comments-on');
} else { } else {
NexT.utils.hideCommontes(); NexT.utils.hideComments();
} }
NexT.utils.registerImageViewer(); NexT.utils.registerImageViewer();

View File

@@ -1,35 +1,31 @@
/* Page's view & comment counter plugin */ /* Page's view & comment counter plugin */
NexT.plugins.others.counter = function() { NexT.plugins.others.counter = function() {
let busz_postview = false;
let pageview_js = undefined; let pageview_js = undefined;
let comment_js = undefined; let comment_js = undefined;
const busz = NexT.CONFIG.busuanzi; const post_meta = NexT.CONFIG.postmeta;
if (busz != undefined && busz.pageview) {
busz_postview = true;
}
// Here can append others pageview & comment plugin const views = post_meta.views;
const waline = NexT.CONFIG.waline; if(views != undefined && views.enable) {
if (waline != undefined){ if (views.plugin == 'waline') {
if(!busz_postview && waline.cfg.pageview) { pageview_js = NexT.utils.getCDNResource(NexT.CONFIG.page.waline.js[0]);
pageview_js = NexT.utils.getCDNResource(NexT.CONFIG.page.waline.js[0]); NexT.utils.getScript(pageview_js, function(){
NexT.utils.getScript(pageview_js, function(){ Waline.pageviewCount({
Waline.pageviewCount({ serverURL: NexT.CONFIG.waline.cfg.serverurl
serverURL: waline.cfg.serverurl });
}); });
}); }
} }
if (waline.cfg.comment) { const comments = post_meta.comments;
comment_js = NexT.utils.getCDNResource(NexT.CONFIG.page.waline.js[1]); if (comments != undefined && comments.enable) {
NexT.utils.getScript(comment_js, function(){ if (comments.plugin == 'waline') {
Waline.commentCount({ comment_js = NexT.utils.getCDNResource(NexT.CONFIG.page.waline.js[1]);
serverURL: waline.cfg.serverurl NexT.utils.getScript(comment_js, function(){
Waline.commentCount({
serverURL: NexT.CONFIG.waline.cfg.serverurl
});
}); });
}); }
} }
}
} }

View File

@@ -7,6 +7,29 @@ HTMLElement.prototype.wrap = function (wrapper) {
}; };
NexT.utils = { NexT.utils = {
registerMenuClick: function() {
const pMenus = document.querySelectorAll('.main-menu > li > a.menus-parent');
pMenus.forEach(function(item) {
const icon = item.querySelector('span > i');
var ul = item.nextElementSibling;
item.addEventListener('click', function(e) {
e.preventDefault();
ul.classList.toggle('expand');
if (ul.classList.contains('expand')) {
icon.className = 'fa fa-angle-down';
} else {
icon.className = 'fa fa-angle-right';
}
});
var cCls = ul.querySelectorAll('.menu-item-active');
if (cCls != null && cCls.length > 0) {
item.click();
}
});
},
registerImageLoadEvent: function() { registerImageLoadEvent: function() {
const images = document.querySelectorAll('.sidebar img, .post-block img, .vendors-list img'); const images = document.querySelectorAll('.sidebar img, .post-block img, .vendors-list img');
@@ -35,7 +58,10 @@ NexT.utils = {
}, },
registerImageViewer: function() { registerImageViewer: function() {
new Viewer(document.querySelector('.post-body'),{ navbar:2, toolbar:2 }); const post_body = document.querySelector('.post-body');
if (post_body) {
new Viewer(post_body,{ navbar:2, toolbar:2 });
}
}, },
registerToolButtons: function () { registerToolButtons: function () {
@@ -59,11 +85,13 @@ NexT.utils = {
}, },
slidScrollBarAnime: function (targetId, easing = 'linear', duration = 500) { slidScrollBarAnime: function (targetId, easing = 'linear', duration = 500) {
const targetObj = document.getElementById(targetId);
window.anime({ window.anime({
targets: document.scrollingElement, targets: document.scrollingElement,
duration: duration, duration: duration,
easing: easing, easing: easing,
scrollTop: targetId == '' ? 0 : document.getElementById(targetId).getBoundingClientRect().top + window.scrollY scrollTop: targetId == '' || !targetObj ? 0 : targetObj.getBoundingClientRect().top + window.scrollY
}); });
}, },
@@ -213,25 +241,25 @@ NexT.utils = {
}, },
getCDNResource: function (res) { getCDNResource: function (res) {
let { plugins, router } = NexT.CONFIG.vendor;
let router = NexT.CONFIG.vendor.router;
let { name, version, file, alias, alias_name } = res; let { name, version, file, alias, alias_name } = res;
let npm_name = name;
if (alias_name) npm_name = alias_name;
let res_src = ''; let res_src = '';
switch (plugins) {
case 'cdnjs': switch (router.type) {
case 'bootcdn': case "modern":
case 'qiniu': if (alias_name) name = alias_name;
let cdnjs_name = alias || name; let alias_file = file.replace(/^(dist|lib|source|\/js|)\/(browser\/|)/, '');
let cdnjs_file = file.replace(/^(dist|lib|source|\/js|)\/(browser\/|)/, ''); if (alias_file.indexOf('min') == -1) {
if (cdnjs_file.indexOf('min') == -1) { alias_file = alias_file.replace(/\.js$/, '.min.js');
cdnjs_file = cdnjs_file.replace(/\.js$/, '.min.js');
} }
res_src = `${router}/${cdnjs_name}/${version}/${cdnjs_file}` res_src = `${router.url}/${name}/${version}/${alias_file}`;
break; break;
default: default:
res_src = `${router}/${npm_name}@${version}/${file}` if (alias) name = alias;
res_src = `${router.url}/${name}@${version}/${file}`;
break;
} }
return res_src; return res_src;
@@ -253,7 +281,7 @@ NexT.utils = {
const button = element.querySelector('.copy-btn'); const button = element.querySelector('.copy-btn');
button.addEventListener('click', () => { button.addEventListener('click', () => {
const lines = element.querySelector('.code') || element.querySelector('code'); const lines = element.querySelector('.code') || element.querySelector('code');
const code = lines.innerText; const code = lines.innerText.replace(/(\n{2,})/g, '\n');
if (navigator.clipboard) { if (navigator.clipboard) {
// https://caniuse.com/mdn-api_clipboard_writetext // https://caniuse.com/mdn-api_clipboard_writetext
navigator.clipboard.writeText(code).then(() => { navigator.clipboard.writeText(code).then(() => {
@@ -481,8 +509,11 @@ NexT.utils = {
}); });
}, },
hideCommontes: function () { hideComments: function () {
document.querySelector('.post-comments').style.display = 'none'; let postComments = document.querySelector('.post-comments');
if (postComments !== null) {
postComments.style.display = 'none';
}
}, },
hiddeLodingCmp: function (selector) { hiddeLodingCmp: function (selector) {

View File

@@ -1,5 +1,5 @@
# Hugo NexT theme's custom config # Hugo NexT theme's custom config
version: 4.4.0 version: 4.6.2
domain: hugo-next.eu.org domain: hugo-next.eu.org

View File

@@ -1,33 +1,79 @@
# CDN 公共资源商列表 # CDN 公共资源商列表
# Public CDN vendor list # Public CDN vendor list
vendors: vendors:
cdnjs: "https://cdnjs.cloudflare.com/ajax/libs" - name: cdnjs
unpkg: "https://unpkg.com" home: "https://cdnjs.com"
bootcdn: "https://cdn.bootcdn.net/ajax/libs" logo: "https://cdnjs.com/_/f7a2ebfb819c118086546e481876aef6.svg"
qiniu: "https://cdn.staticfile.org" type: "modern"
url: "https://cdnjs.cloudflare.com/ajax/libs"
- name: unpkg
home: "https://unpkg.com"
logo: "https://unpkg.fly.dev/_client/b870d5fb04d2854d.png"
type: "nodejs"
url: "https://unpkg.com"
- name: bootcdn
home: "https://www.bootcdn.cn"
logo: "https://www.bootcdn.cn/assets/img/logo.png"
type: "modern"
url: "https://cdn.bootcdn.net/ajax/libs"
- name: staticfile
home: "https://staticfile.net/"
logo: "https://www.staticfile.net/images/logo.png"
type: "modern"
url: "https://cdn.staticfile.net"
- name: 7ed
home: "https://www.7ed.net"
logo: "https://github.com/7ednet/homepage/raw/main/_images/logo.svg"
type: "modern"
url: "https://use.sevencdn.com/ajax/libs"
- name: zstatic
home: "https://www.zstatic.net"
logo: "https://www.zstatic.net/favicon/favicon-16x16.png"
type: "modern"
url: "https://s4.zstatic.net/ajax/libs"
- name: zeyao
home: "https://cdn.jsdmirror.com/"
logo: "https://img.cuteapi.com/2023/08/29/Background.png"
type: "nodejs"
url: "https://cdn.jsdmirror.com/npm"
- name: jsdelivr
home: "https://www.jsdelivr.com/"
logo: "https://www.jsdelivr.com/assets/0c183396fdb0079ea31849b02bc5e3429f1740de/img/jsdelivr-horizontal-regular.svg"
type: "nodejs"
url: "https://cdn.jsdelivr.net/npm"
# JavaScript 资源 # JavaScript 资源
# JavaScript Resources # JavaScript Resources
js: js:
- name: animejs - name: animejs
version: 3.2.1 version: 3.2.2
file: lib/anime.min.js file: lib/anime.min.js
- name: viewerjs - name: viewerjs
version: 1.11.0 version: 1.11.6
file: dist/viewer.min.js file: dist/viewer.min.js
# CSS 资源 # CSS 资源
# CSS Resources # CSS Resources
css: css:
- name: '@fortawesome/fontawesome-free' - name: font-awesome
version: 6.1.2 version: 6.6.0
file: css/all.min.css file: css/all.min.css
alias: font-awesome alias: '@fortawesome/fontawesome-free'
- name: animate.css - name: animate.css
version: 3.1.1 version: 4.1.1
file: animate.min.css file: animate.min.css
- name: viewerjs - name: viewerjs
version: 1.11.0 version: 1.11.6
file: dist/viewer.min.css file: dist/viewer.min.css
# 第三方服务组件资源 # 第三方服务组件资源
@@ -51,25 +97,27 @@ addthis:
# Comment component # Comment component
waline: waline:
js: js:
name: '@waline/client' name: waline
version: 2.13.0 version: 2.15.8
file: dist/waline.js file: dist/waline.js
alias: waline alias: "@waline/client"
css: css:
name: '@waline/client' name: waline
version: 2.13.0 version: 2.15.8
file: dist/waline.css file: dist/waline.css
alias: waline alias: "@waline/client"
artalk: artalk:
js: js:
name: artalk name: artalk
version: 2.3.4 version: 2.6.4
file: dist/Artalk.js file: dist/Artalk.min.js
css: css:
name: artalk name: artalk
version: 2.3.4 version: 2.6.4
file: dist/Artalk.css file: dist/Artalk.min.css
giscus: giscus:
js: https://giscus.app/client.js js: https://giscus.app/client.js
@@ -84,11 +132,12 @@ livere:
# Full text search # Full text search
algolia: algolia:
name: algoliasearch name: algoliasearch
version: 4.14.2 version: 4.24.0
file: dist/algoliasearch-lite.umd.js file: dist/algoliasearch-lite.umd.js
instant: instant:
name: instantsearch.js name: instantsearch.js
version: 4.49.0 version: 4.73.2
file: dist/instantsearch.production.min.js file: dist/instantsearch.production.min.js
plugins: plugins:
@@ -96,39 +145,45 @@ plugins:
mathjax: mathjax:
js: js:
name: mathjax name: mathjax
version: 3.2.0 version: 3.2.2
file: es5/tex-mml-chtml.js file: es5/tex-mml-chtml.js
katex: katex:
js: js:
- name: katex - name: katex
version: 0.16.0 alias_name: KaTeX
version: 0.16.9
file: dist/katex.min.js file: dist/katex.min.js
- name: auto-render - name: auto-render
alias_name: katex alias: katex
version: 0.16.0 alias_name: KaTeX
version: 0.16.9
file: dist/contrib/auto-render.min.js file: dist/contrib/auto-render.min.js
css: css:
name: katex name: katex
version: 0.16.0 alias_name: KaTeX
version: 0.16.9
file: dist/katex.min.css file: dist/katex.min.css
# 画图渲染 # 画图渲染
mermaid: mermaid:
js: js:
name: mermaid name: mermaid
version: 9.1.7 version: 10.9.1
file: dist/mermaid.min.js file: dist/mermaid.min.js
# 文章访问/评论统计 # 文章访问/评论统计
waline: waline:
js: js:
- name: pageview - name: pageview
alias_name: '@waline/client' alias_name: waline
version: 2.13.0 version: 2.15.8
file: dist/pageview.js file: dist/pageview.js
alias: waline alias: "@waline/client"
- name: comment - name: comment
alias_name: '@waline/client' alias_name: waline
version: 2.13.0 version: 2.15.8
file: dist/comment.js file: dist/comment.js
alias: waline alias: "@waline/client"

View File

@@ -298,11 +298,11 @@ params:
# Posts / Categories / Tags in sidebar. # Posts / Categories / Tags in sidebar.
basic: true basic: true
# 站点访问信息 # 站点访问信息
# Site information # Site's view information
statistic: views:
enable: true enable: true
# 组件类型,可选值为: 51la, busuanzi # 组件类型,可选值为: 51la, busuanzi
# 使用51la时需要注册账号https://invite.51.la/1NUfGTS1?target=V6 # 使用51la时需要注册账号https://invite.51.la/
# Plguin value is: 51la, busuanzi # Plguin value is: 51la, busuanzi
plugin: busuanzi plugin: busuanzi
@@ -388,7 +388,7 @@ params:
footer: footer:
# 启动谷歌翻译功能 # 启动谷歌翻译功能
# Enable google translate in footer # Enable google translate in footer
translate: true translate: false
# 站点开始年份,默认为当下时间的年份 # 站点开始年份,默认为当下时间的年份
# Specify the year when the site was setup. # Specify the year when the site was setup.
# If not defined, current year will be used. # If not defined, current year will be used.
@@ -470,6 +470,7 @@ params:
# 开启文章头部元素显示 # 开启文章头部元素显示
# Post meta display settings # Post meta display settings
postMeta: postMeta:
# 是否开启各元素的文字显示
itemText: true itemText: true
created: true created: true
updated: updated:
@@ -478,6 +479,18 @@ params:
categories: true categories: true
wordCount: true wordCount: true
readTime: true readTime: true
# 是否开启评论数显示
comments:
enable: true
# 评论统计插件暂只支持waline
# Comment counter plugin, only support waline
plugin: waline
# 是否开启页面访问数显示
views:
enable: true
# 页面访问统计插件支持busuanzi, waline, leancloud
# Page views counter plugin, support: busuanzi, waline, leancloud
plugin: busuanzi
# 文章底部的设置 # 文章底部的设置
# Post footer settings # Post footer settings
@@ -799,19 +812,17 @@ params:
- name: waline - name: waline
title: Waline title: Waline
color: "#27ae60" color: "#27ae60"
weight: 2 weight: 1
- name: giscus - name: giscus
title: Giscus title: Giscus
color: "#886ce4" color: "#886ce4"
weight: 1 weight: 2
# Waline 评论插件 # Waline 评论插件
# 更多配置信息请参考https://waline.js.org/ # 更多配置信息请参考https://waline.js.org/
# Waline comments system # Waline comments system
# More info seee: https://waline.js.org/ # More info seee: https://waline.js.org/
waline: waline:
pageView: true
comment: true
placeholder: "请文明发言哟 ヾ(≧▽≦*)o" placeholder: "请文明发言哟 ヾ(≧▽≦*)o"
sofa: "快来发表你的意见吧 (≧∀≦)ゞ" sofa: "快来发表你的意见吧 (≧∀≦)ゞ"
emoji: false emoji: false
@@ -937,8 +948,6 @@ params:
busuanzi: busuanzi:
visitorsIcon: fa fa-user visitorsIcon: fa fa-user
viewsIcon: fa fa-eye viewsIcon: fa fa-eye
postViews: true
# --------------------------------------------------------------- # ---------------------------------------------------------------
# 内容搜索服务 # 内容搜索服务
@@ -954,6 +963,9 @@ params:
indexName: #<algolia index name> indexName: #<algolia index name>
hits: hits:
perPage: 10 perPage: 10
# 索引生成内容长度字数限制
# Index generation content length word count limit.
limit: 1000
# 本地搜索 # 本地搜索
# Local Search # Local Search
@@ -977,6 +989,9 @@ params:
# 页面加载时是否要重新载入索引文件 # 页面加载时是否要重新载入索引文件
# Preload the search data when the page loads. # Preload the search data when the page loads.
preload: false preload: false
# 索引生成内容长度字数限制
# Index generation content length word count limit.
limit: 1000
# --------------------------------------------------------------- # ---------------------------------------------------------------
@@ -1012,7 +1027,7 @@ params:
# - flat flat callout style with background, like on Mozilla or StackOverflow. # - flat flat callout style with background, like on Mozilla or StackOverflow.
# - disabled disable all CSS styles import of note tag. # - disabled disable all CSS styles import of note tag.
style: simple style: simple
icons: false icons: true
# Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6). # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
# Offset also applied to label tag variables. This option can work with disabled note tag. # Offset also applied to label tag variables. This option can work with disabled note tag.
lightBgOffset: 0 lightBgOffset: 0
@@ -1088,31 +1103,18 @@ params:
# --------------------------------------------------------------- # ---------------------------------------------------------------
# CDN 服务(暂时只支持 unpkg 和 cndjs # CDN 服务
# CDN Settings # CDN Settings
# --------------------------------------------------------------- # ---------------------------------------------------------------
vendors: vendors:
vendors:
# The CDN provider of NexT internal scripts. # The CDN provider of NexT internal scripts.
# Available values: local | unpkg | cdnjs | qiniu | bootcdn | custom # Available values: local | cdn
# Warning: If you are using the latest master branch of NexT, please set `internal: local`
internal: local internal: local
# The default CDN provider of third-party plugins. # The default CDN provider of third-party plugins.
# Available values: local | unpkg | cdnjs| qiniu | bootcdn | custom # Available values: local | cdnjs | unpkg | jsdelivr | staticfile | bootcdn | 7ed | zstatic | zeyao | custom
# Dependencies for `plugins: local`: https://github.com/next-theme/plugins plugins: local
plugins: qiniu
# TODO
# Custom CDN URL # Custom CDN URL
# For example: # For example:
# custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified} # custom_cdn_url: https://cdn.jsdelivr.net/npm/${npm_name}@${version}/${minified}
# custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file} # custom_cdn_url: https://cdnjs.cloudflare.com/ajax/libs/${cdnjs_name}/${version}/${cdnjs_file}
#custom_cdn_url:
# TODO
# Assets
# Accelerate delivery of static files using a CDN
# The js option is only valid when vendors.internal is local.
css: css
js: js
images: imgs

View File

@@ -7,13 +7,14 @@ date: 2022-09-10T21:02:32+08:00
lastmod: 2022-09-10T21:02:32+08:00 lastmod: 2022-09-10T21:02:32+08:00
categories: categories:
- 示例 - 示例文章
tags: tags:
- 自定义 - 自定义
- 个性化 - 个性化
- 布局 - 布局
url: "post/custom-files.html" url: "demo/custom-files.html"
toc: true toc: true
--- ---
@@ -38,7 +39,7 @@ customFilePath:
{{< /note >}} {{< /note >}}
然后在站点的根目录下创建 `layouts/partials` 2个目录用于存放自定布局设计文件另外在站点根目录下创建 `statics/css` 2个目录用于存放自定义 CSS 样式文件。一切就绪后,就可以参考如下的步骤,完成自己的设计想法。 然后在站点的根目录下创建 `layouts/partials` 2个目录用于存放自定布局设计文件另外在站点根目录下创建 `static/css` 2个目录用于存放自定义 CSS 样式文件。一切就绪后,就可以参考如下的步骤,完成自己的设计想法。
## 侧边栏设计 ## 侧边栏设计

View File

@@ -7,12 +7,14 @@ date: 2022-06-04T19:46:45+08:00
lastmod: 2022-06-04T19:46:45+08:00 lastmod: 2022-06-04T19:46:45+08:00
categories: categories:
- 示例 - 示例文章
- 语法
tags: tags:
- 表情 - 表情
- emoji - emoji
url: "post/emoji-support.html" url: "demo/emoji-support.html"
--- ---
Emoji 可以通过多种方式在 Hugo 项目中启用。 Emoji 可以通过多种方式在 Hugo 项目中启用。

View File

@@ -7,7 +7,7 @@ date: 2022-06-01T15:59:41+08:00
lastmod: 2022-06-01T15:59:41+08:00 lastmod: 2022-06-01T15:59:41+08:00
categories: categories:
- 示例 - 示例文章
tags: tags:
- Hugo - Hugo
- NexT - NexT

View File

@@ -6,12 +6,13 @@ lastmod: 2022-06-03T16:43:23+08:00
date: 2022-06-02T11:52:03+08:00 date: 2022-06-02T11:52:03+08:00
categories: categories:
- 博客 - 开始建站
tags:
- Hugo
- 开始
url: post/hello-world.html tags:
- Hugo
- 开始
url: demo/hello-world.html
toc: true toc: true
weight: 2 weight: 2
--- ---

View File

@@ -0,0 +1,40 @@
---
title: "图像浏览工具 "
description: "默认会对文章内的图片, 进行图片浏览,点击图片可以查看大图,点击空白处可以关闭。"
keywords: "image,图像,浏览器,相册"
date: 2024-07-21T10:28:12+08:00
lastmod: 2024-07-21T10:28:12+08:00
categories:
- 示例文章
tags:
- 图像
- 相册
- 浏览
url: "demo/image-viewer.html"
toc: false
---
本主题自带图像浏览器功能,支持对文章区域内出现的图片进行浏览,点击图片可以查看大图,点击空白处可以关闭。不需要配置任何参数,只要在文章里面相应的位置添加图片信息即可 。
<!--more-->
图像浏览器引用了 [fengyuanchen](https://fengyuanchen.github.io/) 开发的 [viewerjs](https://fengyuanchen.github.io/viewerjs/),支持显示图像名称,尺寸,旋转,缩放,播放等功能。可点击如下的示例图像查看体验:
## 动物
![cute-scottish-fold-cat](/post/image-viewer/preview_cute-scottish-fold-cat.jpg)
![scottish-fold-kitten](/post/image-viewer/preview_scottish-fold-kitten.jpg)
![hourses](/post/image-viewer/preview_horses.jpg)
![owl-family-background](/post/image-viewer/preview_owl-family-background.jpg)
## 风景
![luxury-resort-in-maldives](/post/image-viewer/preview_luxury-resort-in-maldives.jpg)
![sea-shell](/post/image-viewer/preview_sea-shell.jpg)
![the-arch-sunset](/post/image-viewer/preview_the-arch-sunset.jpg)
![norway-autumn-landscape](/post/image-viewer/preview_norway-autumn-landscape.jpg)

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

View File

@@ -7,17 +7,19 @@ lastmod: 2022-06-03T11:52:18+08:00
publishDate: 2022-06-03T11:52:18+08:00 publishDate: 2022-06-03T11:52:18+08:00
author: Mainroad author: Mainroad
originLink: https://mainroad-demo.netlify.app/post/basic-elements/ originLink: https://mainroad-demo.netlify.app/demo/basic-elements/
categories: categories:
- 示例 - 示例文章
- Markdown语法
tags: tags:
- Markdown - Markdown
- 语法 - 语法
toc: false toc: false
draft: false draft: false
url: post/markdown-syntax.html url: demo/markdown-syntax.html
--- ---
仅以此篇文章来测试下在 `NexT` 主题中在通过 `Hugo` 引擎来建站时,是否支持 `Markdown` 文件内容中所写的各种语法,并展示下实际的效果。 仅以此篇文章来测试下在 `NexT` 主题中在通过 `Hugo` 引擎来建站时,是否支持 `Markdown` 文件内容中所写的各种语法,并展示下实际的效果。
@@ -206,4 +208,4 @@ X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
<mark>比特作为信息论中的信息单位,也被称为 shannon </mark>,以信息论领域的创始人 Claude shannon 的名字命名。 <mark>比特作为信息论中的信息单位,也被称为 shannon </mark>,以信息论领域的创始人 Claude shannon 的名字命名。
参考: 参考:
- 来自 **Mainroad** 主题的 [Basic Elements](https://mainroad-demo.netlify.app/post/basic-elements/) 内容 - 来自 **Mainroad** 主题的 [Basic Elements](https://mainroad-demo.netlify.app/demo/basic-elements/) 内容

View File

@@ -7,14 +7,15 @@ date: 2022-09-11T10:16:02+08:00
lastmod: 2022-09-11T10:16:02+08:00 lastmod: 2022-09-11T10:16:02+08:00
categories: categories:
- 示例 - 第三方引入
- 数学公式
tags: tags:
- 数学公式 - 数学公式
- mathjax - mathjax
- katex - katex
url: "post/math-formula.html" url: "demo/math-formula.html"
math: mathjax math: mathjax
--- ---
@@ -32,7 +33,7 @@ math: mathjax
{{< /note >}} {{< /note >}}
**注意:** 使用[支持的TeX功能](https://docs.mathjax.org/en/latest/input/tex/index.html)的联机参考资料。 **注意:** 使用[支持的TeX功能](https://docs.mathjax.org/en/latest/input/tex/index.html)的联机参考资料。
## 例子 ## 例子
@@ -50,7 +51,7 @@ $$
### 几何级数之和 ### 几何级数之和
我把接下来的两个例子分成了几行,这样它在手机上表现得更好。这就是为什么它们包含 `\displaystyle` 我把接下来的两个例子分成了几行,这样它在手机上表现得更好。这就是为什么它们包含 `\displaystyle`或者可使用类似 `\displaylines{x = a + b \\\ y = b + c}` 语法进行截断,具体信息可见:[mathjax-issues2312](https://github.com/mathjax/MathJax/issues/2312)
$$ $$
\displaystyle\sum_{i=1}^{k+1}i \displaystyle\sum_{i=1}^{k+1}i
@@ -78,7 +79,12 @@ $$
### 乘记号 ### 乘记号
$$ $$
\displaystyle 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots = \displaystyle \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}, \displaystyle\text{ for }\lvert q\rvert < 1. \displaystyle 1 + \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
$$
$$
\displaystyle \prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})},
\displaystyle\text{ for }\lvert q\rvert < 1.
$$ $$
@@ -88,8 +94,8 @@ $$
### 希腊字母 ### 希腊字母
$$ $$
\Gamma\ \Delta\ \Theta\ \Lambda\ \Xi\ \Pi\ \Sigma\ \Upsilon\ \Phi\ \Psi\ \Omega \displaylines{\Gamma\ \Delta\ \Theta\ \Lambda\ \Xi\ \Pi\ \Sigma\ \Upsilon\ \Phi\ \Psi\ \Omega
\alpha\ \beta\ \gamma\ \delta\ \epsilon\ \zeta\ \eta\ \theta\ \iota\ \kappa\ \lambda\ \mu\ \nu\ \xi \ \omicron\ \pi\ \rho\ \sigma\ \tau\ \upsilon\ \phi\ \chi\ \psi\ \omega\ \varepsilon\ \vartheta\ \varpi\ \varrho\ \varsigma\ \varphi \alpha\ \beta\ \gamma\ \delta\ \epsilon\ \zeta\ \\\\ \eta\ \theta\ \iota\ \kappa\ \lambda\ \mu\ \nu\ \xi \ \omicron\ \pi\ \rho\ \sigma\ \tau\ \upsilon\ \phi\ \chi\ \psi\ \omega\ \varepsilon\ \vartheta\ \varpi\ \varrho\ \varsigma\ \varphi}
$$ $$
@@ -99,8 +105,8 @@ $$
$$ $$
$$ $$
\Leftarrow\ \Rightarrow\ \leftrightarrow\ \Leftrightarrow\ \mapsto\ \hookleftarrow \displaylines{\Leftarrow\ \Rightarrow\ \leftrightarrow\ \Leftrightarrow\ \mapsto\ \hookleftarrow
\leftharpoonup\ \leftharpoondown\ \rightleftharpoons\ \longleftarrow\ \Longleftarrow\ \longrightarrow \leftharpoonup\ \leftharpoondown\ \\\\\ \rightleftharpoons\ \longleftarrow\ \Longleftarrow\ \longrightarrow}
$$ $$
$$ $$

View File

@@ -7,12 +7,13 @@ date: 2022-09-18T20:58:13+08:00
lastmod: 2022-09-18T20:58:13+08:00 lastmod: 2022-09-18T20:58:13+08:00
categories: categories:
- 示例 - 第三方引入
- 图序功能
tags: tags:
- 流程图 - 流程图
- 时序图 - 时序图
url: "post/mermaid-charts.html" url: "demo/mermaid-charts.html"
mermaid: true mermaid: true
toc: true toc: true
--- ---

View File

@@ -7,14 +7,14 @@ date: 2022-10-06T09:02:26+08:00
lastmod: 2022-10-30T21:03:16+08:00 lastmod: 2022-10-30T21:03:16+08:00
categories: categories:
- 示例 - 示例文章
tags: tags:
- toc - toc
- 标题 - 标题
comment: comment:
enable: false enable: false
url: "post/no-header-title.html" url: "demo/no-header-title.html"
--- ---
刘慈欣2018克拉克奖获奖感言部分内容节选 刘慈欣2018克拉克奖获奖感言部分内容节选

View File

@@ -7,11 +7,12 @@ date: 2022-08-06T14:41:50+08:00
lastmod: 2022-08-06T14:41:50+08:00 lastmod: 2022-08-06T14:41:50+08:00
categories: categories:
- 示例 - 示例文章
- 语法
tags: tags:
- 短代码 - 短代码
- 语法 - 语法
url: "post/shortcodes.html" url: "demo/shortcodes.html"
--- ---
虽然 `Markdown` 语法已经非常丰富能够满足我们写文章的绝大部分需求,但是为更好的对文章内容进行更友好的排版,为引设计一套自定义的短语,便于在使用时能够快速引用。 虽然 `Markdown` 语法已经非常丰富能够满足我们写文章的绝大部分需求,但是为更好的对文章内容进行更友好的排版,为引设计一套自定义的短语,便于在使用时能够快速引用。
@@ -65,6 +66,11 @@ url: "post/shortcodes.html"
**Welcome** to [Hugo NexT!](https://preview.hugo-next.eu.org) **Welcome** to [Hugo NexT!](https://preview.hugo-next.eu.org)
{{< /note >}} {{< /note >}}
{{< note primary >}}
### Primary Header
**Welcome** to [Hugo NexT!](https://preview.hugo-next.eu.org)
{{< /note >}}
{{< note info >}} {{< note info >}}
### Info Header ### Info Header
**Welcome** to [Hugo NexT!](https://preview.hugo-next.eu.org) **Welcome** to [Hugo NexT!](https://preview.hugo-next.eu.org)

View File

@@ -7,13 +7,14 @@ date: 2022-06-07T19:09:52+08:00
lastmod: 2022-06-07T19:09:52+08:00 lastmod: 2022-06-07T19:09:52+08:00
categories: categories:
- 示例 - 示例文章
- 语法
tags: tags:
- 语法 - 语法
- 高亮 - 高亮
- Chroma - Chroma
url: post/syntax-highlighting.html url: demo/syntax-highlighting.html
--- ---
Hugo 通过 Chroma 提供非常快速的语法高亮显示,现 Hugo 中使用 Chroma 作为代码块高亮支持,它内置在 Go 语言当中,速度是真的非常、非常快,而且最为重要的是它也兼容之前我们使用的 Pygments 方式。 Hugo 通过 Chroma 提供非常快速的语法高亮显示,现 Hugo 中使用 Chroma 作为代码块高亮支持,它内置在 Go 语言当中,速度是真的非常、非常快,而且最为重要的是它也兼容之前我们使用的 Pygments 方式。
@@ -66,7 +67,7 @@ print "Hello, world!"
### Git 对比 ### Git 对比
``` diff {hl_lines=[4,"6-7"] linenos=true} ```diff {hl_lines=[4,"6-7"], linenos=true}
*** /path/to/original ''timestamp'' *** /path/to/original ''timestamp''
--- /path/to/new ''timestamp'' --- /path/to/new ''timestamp''
*************** ***************

View File

@@ -7,14 +7,14 @@ date: 2022-06-08T21:12:52+08:00
lastmod: 2022-06-08T21:12:52+08:00 lastmod: 2022-06-08T21:12:52+08:00
categories: categories:
- 示例 - 示例文章
tags: tags:
- 目录 - 目录
- 导航 - 导航
- 博客 - 博客
toc: true toc: true
url: post/table-of-content.html url: demo/table-of-content.html
--- ---
巴顿将军说过“衡量一个人是否成功不是看他站到顶峰而是从顶峰跌落之后的反弹力”褚时健的人生便是如此中年发家致富名利双收之后又跌落到谷底等到74岁再创业10年后带着褚橙归来东山再起收获亿万财富他的发展轨迹就是反弹的过程。 巴顿将军说过“衡量一个人是否成功不是看他站到顶峰而是从顶峰跌落之后的反弹力”褚时健的人生便是如此中年发家致富名利双收之后又跌落到谷底等到74岁再创业10年后带着褚橙归来东山再起收获亿万财富他的发展轨迹就是反弹的过程。

View File

@@ -8,16 +8,22 @@
desc: 世界上最快的网站建设框架! desc: 世界上最快的网站建设框架!
avatar: https://gohugo.io/favicon-32x32.png avatar: https://gohugo.io/favicon-32x32.png
link: https://gohugo.io link: https://gohugo.io
timeout: 2
visible: true
- name: Hugo-NexT - name: Hugo-NexT
desc: Hugo NexT 官方预览网站。 desc: Hugo NexT 官方预览网站。
avatar: https://hugo-next.eu.org/imgs/hugo_next_avatar.png avatar: https://hugo-next.eu.org/imgs/hugo_next_avatar.png
link: https://hugo-next.eu.org link: https://hugo-next.eu.org
timeout: 2
visible: true
- name: 凡梦星尘空间站 - name: 凡梦星尘空间站
desc: 再平凡的人也有属于他的梦想! desc: 再平凡的人也有属于他的梦想!
avatar: https://lisenhui.cn/imgs/avatar.png avatar: https://elkan1788.github.io/imgs/avatar.png
link: https://lisenhui.cn link: https://lisenhui.cn
timeout: 2
visible: true
- FLinksTitle: Hugo NexT 粉丝群体 - FLinksTitle: Hugo NexT 粉丝群体
@@ -27,3 +33,5 @@
desc: 全网首个 Hugo NexT 忠实粉丝用户 desc: 全网首个 Hugo NexT 忠实粉丝用户
avatar: https://a.happy2008.top/imgs/stayhome-small.png avatar: https://a.happy2008.top/imgs/stayhome-small.png
link: https://a.happy2008.top/ link: https://a.happy2008.top/
timeout: 2
visible: true

3
go.mod Normal file
View File

@@ -0,0 +1,3 @@
module github.com/hugo-next/hugo-theme-next
go 1.18

1
hugo-theme-next.go Normal file
View File

@@ -0,0 +1 @@
package hugothemenext

View File

@@ -18,121 +18,83 @@ CateTitle:
AllSome: AllSome:
other: "All {{ .Some }}" other: "All {{ .Some }}"
NavToggleLabel:
other: Toggle navigation bar
MSearchLabel: Symbol:
other: Search colon: ":"
comma: ","
period: "."
SymbolColon: Sidebar:
other: ":" label:
SymbolComma: posts: Posts
other: "," categories: Categories
SymbolPeriod: tags: Tags
other: "." rss: RSS
ccommons: "Creative Commons"
toc: TOC
overview: Overview
navToggle: "Toggle Navigation Bar"
search: Search
SbPostsLable: Terms:
other: "Posts" archives: "{{ .Count }} posts in total"
SbCatesTitle: categories: "{{ .Count }} categories in total"
other: "Categories" tags: "{{ .Count }} tags in total"
SbTagsTitle:
other: "Tags"
TableOfContents:
other: "TOC"
SiteOverview:
other: "Overview"
RSSLable:
other: "RSS Subscribe"
CCLinkTitle:
other: "Creative Commons"
TagsCounterTitle: PostArchive:
zero: No tags cheers:
other: "{{ .Count }} tags in total" um: Um...
CatesCounterTitle: ok: Ok
zero: No categories nice: Nice
other: "{{ .Count }} categories in total" good: Good
ArchiveCounterTitle: great: Greate
zero: No posts. excellent: Excellent
other: "{{ .Count }} posts in total" keepOn: Keep on posting.╰(*°▽°*)╯
PostArchiveCheersUm: PostMeta:
other: Um.. sticky: Stickys
PostArchiveCheersOk: publish:
other: Ok date: "Publish on"
PostArchiveCheersNice: time: "Create Time"
other: Nice lastmod:
PostArchiveCheersGood: date: "Update on"
other: Good time: "Modify Time"
PostArchiveCheersGreat: category: "Classify at"
other: Great words:
PostArchiveCheersExcellent: title: Words
other: Excellent count: "{{- .WordCount -}}"
PostArchiveKeepOn: reading:
other: Keep on posting.╰(*°▽°*)╯ title: Read
time: "{{- .ReadingTime -}}mins"
views: Views
comments: Comments
tags: Tags
more: "Read More"
edit: "Edit this post"
PostStickyTitle: Reward:
other: Strickys title: Donate
PostPublishDate: wechatpay: WechatPay
other: "Publish on" alipay: Alipay
PostPublishTime: paypal: Paypal
other: "Create Time" bitcoin: Bitcoin
PostLastModDate:
other: "Update on"
PostLastModTime:
other: "Modify Time"
PostCategory:
other: "Classify at"
PostWords:
other: "Words"
PostWordCount:
other: "{{- .WordCount -}}"
PostReading:
other: "Read"
PostReadTime:
other: "{{- .ReadingTime -}}min"
PostViews:
other: "Views"
PostComments:
other: "Comments"
PostTag:
other: "Tags"
PostReadMore:
other: "Read More"
PostEditTitle:
other: Edit this post
PostCRTitle: PostCopyRight:
other: Post Title title: Post Title
PostCRAuthor: author: Post Author
other: Post Author link: Post Link
PostCRLink: origin:
other: Post Link author: Written By
PostCROriginAuthor: link: Originally From
other: Written By license:
PostCROriginLink: title: Copyright Notice
other: Originally From content: "All articles in this blog are licensed under <i class=\"fab fa-fw fa-creative-commons\"></i>%s unless stating additionally."
PostCRLicenseTitle:
other: Copyright Notice
PostCRLicenseContent:
other: "All articles in this blog are licensed under <i class=\"fab fa-fw fa-creative-commons\"></i>%s unless stating additionally."
PostFollowMe: PostFollowMe:
other: Welcome to my other publishing channels other: Welcome to my other publishing channels
RewardDonate: PostComments:
other: Donate title: Comments
RewardWechatpay:
other: Wechat Pay
RewardAlipay:
other: Alipay
RewardPaypal:
other: PayPal
RewardBitcoin:
other: Bitcoin
PostCommentTitle:
other: Comments
SiteInfoItems: SiteInfoItems:
title: "Web Status" title: "Web Status"
@@ -147,17 +109,14 @@ SiteInfoItems:
totalViews: "Total Views" totalViews: "Total Views"
lastUpdate: "Last Update:" lastUpdate: "Last Update:"
FooterPowerby: Footer:
other: "Power by %s" powerby: "Power by %s"
SearchPh: Search:
other: Searching... placeholder: Searching...
SearchEmpty: empty: "We didn't find any results for the search: ${query}"
other: "We didn't find any results for the search: ${query}"
SearchHits:
hits: "${hits} results found" hits: "${hits} results found"
SearchHitsTime: time: "${hits} results found in ${time} ms"
other: "${hits} results found in ${time} ms"
DateSuffix: DateSuffix:
years: " Year " years: " Year "

136
i18n/fr.yaml Normal file
View File

@@ -0,0 +1,136 @@
#--------------------------------------
# French Version
#--------------------------------------
archives:
other: Billets
tag:
other: Tag
tags:
other: Tags
TagTitle:
other: Liste des Tags
category:
other: Categorie
categories:
other: Categories
CateTitle:
other: Classification des items
AllSome:
other: "Total :{{ .Some }}"
Symbol:
colon: ":"
comma: ","
period: "."
Sidebar:
label:
posts: Billets
categories: Categories
tags: Tags
rss: RSS
ccommons: "Creative Commons"
toc: Sommaire
overview: "Présentation"
navToggle: "Fermer/Ouvrire la bar de navigation"
search: Chercher
Terms:
archives: "{{ .Count }} Billets au total"
categories: "{{ .Count }} Categories au total"
tags: "{{ .Count }} Tags au total"
PostArchive:
cheers:
um: Hum...
ok: Ok
nice: Cool
good: Bien
great: Génial
excellent: Excellent
keepOn: Continue de publier.╰(*°▽°*)╯
PostMeta:
sticky: Stickys
publish:
date: "Publié le "
time: "Date de création"
lastmod:
date: "Mise à jour le "
time: "Modifié le "
category: "Classé comme "
words:
title: Nb. Mots
count: "{{- .WordCount -}}"
reading:
title: "Lectures "
time: "{{- .ReadingTime -}} mins"
views: Vues
comments: Commentaires
tags: Tags
more: "Lire la suite"
edit: "Editer ce billet"
Reward:
title: Donner
wechatpay: WechatPay
alipay: Alipay
paypal: Paypal
bitcoin: Bitcoin
PostCopyRight:
title: Titre du billet
author: Autheur du billet
link: Lien du billet
origin:
author: Écrit par
link: Originellement de
license:
title: Note de Copyright
content: "Tous les articles sont sous licence <i class=\"fab fa-fw fa-creative-commons\"></i>%s."
PostFollowMe:
other: "Autres réseaux sociaux"
PostComments:
title: Commentaires
SiteInfoItems:
title: "Statistiques"
runTimes: "En cours:"
words: "Nb. Mots:"
readTimes: "Temps de lecture: "
visitors: "Visiteurs: "
pageViews: "Vues: "
todayViews: "Nombre de vues du jour: "
yesterdayViews: "Nombre de vues d'hier: "
monthViews: "Vues du mois: "
totalViews: "Total des vues: "
lastUpdate: "Dernière mise à jour: "
Footer:
powerby: "Fait par %s"
Search:
placeholder: Recherche...
empty: "Nous n'avons pas trouvé ce que vous cherchiez pour : ${query}"
hits: "${hits} resultats trouvés"
time: "${hits} resultats trouvés en ${time} ms"
DateSuffix:
years: " Années"
days: " Jours"
hours: " Heures"
mins: " Minutes"
month: " Mois"
day: " Jour"
hour: " Heur"
min: " Minute"
just: "A l'instant"
ToolBtns:
comment: "Commenter"
theme: "Changer le theme"
lang: "Traduction Multilingue"
backTop: "Remonter"

View File

@@ -19,121 +19,82 @@ CateTitle:
AllSome: AllSome:
other: "所有 {{ .Some }}" other: "所有 {{ .Some }}"
NavToggleLabel: Symbol:
other: 切换导航栏 colon: ""
comma: ""
period: "。"
MSearchLabel: Sidebar:
other: 搜索 label:
posts: 日志
categories: 分类
tags: 标签
rss: RSS 订阅
ccommons: 共享知识
toc: 文章目录
overview: 站点概览
navToggle: 切换导航栏
search: 搜索
SymbolColon: Terms:
other: "" archives: "目前共计 <strong>{{ .Count }}</strong> 篇日志"
SymbolComma: categories: "目前共计 <strong>{{ .Count }}</strong> 个分类"
other: "" tags: "目前共计 <strong>{{ .Count }}</strong> 个标签"
SymbolPeriod:
other: "。"
SbPostsLable: PostArchive:
other: 日志 cheers:
SbCatesTitle: um: 嗯..
other: 分类 ok: 还行
SbTagsTitle: nice: 不错
other: 标签 good: 很好
TableOfContents: great: 非常好
other: 文章目录 excellent: 太棒了
SiteOverview: keepOn: 继续努力哟。╰(*°▽°*)╯
other: 站点概览
RSSLable:
other: RSS 订阅
CCLinkTitle:
other: 共享知识
TagsCounterTitle: PostMeta:
zero: 暂无标签 sticky: 置顶
other: "目前共计 <strong>{{ .Count }}</strong> 个标签" publish:
CatesCounterTitle: date: 发表于
zero: 暂无分类 time: 创建时间
other: "目前共计 <strong>{{ .Count }}</strong> 个分类" lastmod:
ArchiveCounterTitle: date: 更新于
zero: 暂无日志 time: 修改时间
other: "目前共计 <strong>{{ .Count }}</strong> 篇日志" category: 分类于
words:
title: 字数
count: "{{- .WordCount -}}"
reading:
title: 阅读
time: "{{- .ReadingTime -}}分钟"
views: 浏览
comments: 评论
tags: 标签
more: 阅读全文
edit: 编辑
PostArchiveCheersUm: Reward:
other: 嗯.. title: 赞赏
PostArchiveCheersOk: wechatpay: 微信
other: 还行 alipay: 支付宝
PostArchiveCheersNice: paypal: Paypal
other: 不错 bitcoin: 比特币
PostArchiveCheersGood:
other: 很好
PostArchiveCheersGreat:
other: 非常好
PostArchiveCheersExcellent:
other: 太棒了
PostArchiveKeepOn:
other: 继续努力哟。╰(*°▽°*)╯
PostStickyTitle: PostCopyRight:
other: 置顶 title: 文章标题
PostPublishDate: author: 本文作者
other: 发表于 link: 本文链接
PostPublishTime: origin:
other: 创建时间 author: 原文作者
PostLastModDate: link: 原文链接
other: 更新于 license:
PostLastModTime: title: 版权声明
other: 修改时间 content: "本博客所有文章除特别声明外,均采用 <i class=\"fab fa-fw fa-creative-commons\"></i>%s 许可协议。转载请注明出处!"
PostCategory:
other: "分类于"
PostWords:
other: 字数
PostWordCount:
other: "{{- .WordCount -}}"
PostReading:
other: 阅读
PostReadTime:
other: "{{- .ReadingTime -}}分钟"
PostViews:
other: 浏览
PostComments:
other: 评论
PostTags:
other: 标签
PostReadMore:
other: 阅读全文
PostEditTitle:
other: 编辑
PostCRTitle:
other: 文章标题
PostCRAuthor:
other: 本文作者
PostCRLink:
other: 本文链接
PostCROriginAuthor:
other: 原文作者
PostCROriginLink:
other: 原文链接
PostCRLicenseTitle:
other: 版权声明
PostCRLicenseContent:
other: "本博客所有文章除特别声明外,均采用 <i class=\"fab fa-fw fa-creative-commons\"></i>%s 许可协议。转载请注明出处!"
PostFollowMe: PostFollowMe:
other: 欢迎关注我的其它发布渠道 other: 欢迎关注我的其它发布渠道
RewardDonate: PostComments:
other: 赞赏 title: 评论交流
RewardWechatpay:
other: 微信
RewardAlipay:
other: 支付宝
RewardPaypal:
other: PayPal
RewardBitcoin:
other: 比特币
PostCommentTitle:
other: 评论交流
SiteInfoItems: SiteInfoItems:
title: "网站资讯" title: "网站资讯"
@@ -148,17 +109,14 @@ SiteInfoItems:
totalViews: "总访问量:" totalViews: "总访问量:"
lastUpdate: "最后更新于:" lastUpdate: "最后更新于:"
FooterPowerby: Footer:
other: 由 %s 强力驱动 powerby: 由 %s 强力驱动
SearchPh: Search:
other: 搜索... placeholder: 搜索...
SearchEmpty: empty: "没有找到任何搜索结果:${query}"
other: "没有找到任何搜索结果:${query}"
SearchHits:
hits: "找到 ${hits} 个搜索结果" hits: "找到 ${hits} 个搜索结果"
SearchHitsTime: time: "找到 ${hits} 个搜索结果(用时 ${time} 毫秒)"
other: "找到 ${hits} 个搜索结果(用时 ${time} 毫秒)"
DateSuffix: DateSuffix:
years: " 年 " years: " 年 "

136
i18n/zh-tw.yaml Normal file
View File

@@ -0,0 +1,136 @@
#--------------------------------------
# 繁體版本
#--------------------------------------
archives:
other: 文章
tag:
other: 標籤
tags:
other: 標籤
TagTitle:
other: 標籤集錦
category:
other: 分類
categories:
other: 分類
CateTitle:
other: 分類欄目
AllSome:
other: "所有 {{ .Some }}"
Symbol:
colon: ""
comma: ""
period: "。"
Sidebar:
label:
posts: 日誌
categories: 分類
tags: 標籤
rss: RSS 訂閱
ccommons: 共享知識
toc: 文章目錄
overview: 站點概覽
navToggle: 切換導航欄
search: 搜索
Terms:
archives: "目前共計 <strong>{{ .Count }}</strong> 篇日誌"
categories: "目前共計 <strong>{{ .Count }}</strong> 個分類"
tags: "目前共計 <strong>{{ .Count }}</strong> 個標籤"
PostArchive:
cheers:
um: 嗯..
ok: 還行
nice: 不错
good: 很好
great: 非常好
excellent: 太棒了
keepOn: 繼續努力喲。╰(*°▽°*)╯
PostMeta:
sticky: 置頂
publish:
date: 發表於
time: 創建時間
lastmod:
date: 更新於
time: 修改時間
category: 分類於
words:
title: 字數
count: "{{- .WordCount -}}"
reading:
title: 閱讀
time: "{{- .ReadingTime -}}分鐘"
views: 瀏覽
comments: 評論
tags: 標籤
more: 閱讀全文
edit: 編輯
Reward:
title: 讚賞
wechatpay: 微信
alipay: 支付寶
paypal: Paypal
bitcoin: 比特幣
PostCopyRight:
title: 文章標題
author: 本文作者
link: 本文鏈接
origin:
author: 原文作者
link: 原文鏈接
license:
title: 版權聲明
content: "本博客所有文章除特別聲明外,均採用 <i class=\"fab fa-fw fa-creative-commons\"></i>%s 許可協議。轉載請註明出處!"
PostFollowMe:
other: 歡迎關注我的其它發布渠道
PostCommentTitle:
other: 評論交流
SiteInfoItems:
title: "網站資訊"
runTimes: "已運行:"
words: "總字數:"
readTimes: "閱讀約:"
visitors: "總訪客數:"
pageViews: "頁面瀏覽:"
todayViews: "今日訪問:"
yesterdayViews: "昨日訪問:"
monthViews: "本月訪問:"
totalViews: "總訪問量:"
lastUpdate: "最後更新於:"
FooterPowerby:
other: 由 %s 強力驅動
Search:
placeholder: 搜索...
empty: "沒有找到任何搜索結果:${query}"
hits: "找到 ${hits} 個搜索結果"
time: "找到 ${hits} 個搜索結果(用時 ${time} 毫秒)"
DateSuffix:
years: " 年 "
days: " 天 "
hours: " 小時 "
mins: " 分鐘"
month: " 個月前"
day: " 天前"
hour: " 小時前"
min: " 分鐘前"
just: "剛剛"
ToolBtns:
comment: "直達評論"
theme: "深淺模式切換"
lang: "多語言翻譯"
backTop: "返回頂部"

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
images/hugo-next-symbol.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,3 @@
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}
<a class="header-anchor" href="#{{ .Anchor | safeURL }}"></a>
</h{{ .Level }}>

View File

@@ -1,7 +1,7 @@
{{- $extURL := and .Page.Site.Params.exturl.enable (strings.HasPrefix .Destination "http") }} {{ $extURL := and .Page.Site.Params.exturl.enable (strings.HasPrefix .Destination "http") }}
<a href="{{ .Destination | safeURL }}" title="{{ .Text }}" {{ if $extURL }}rel="noopener external nofollow noreferrer" target="_blank" class=" exturl"{{ end }}> <a href="{{ .Destination | safeURL }}" title="{{ .Text }}" {{ if $extURL }}rel="noopener external nofollow noreferrer" target="_blank" class=" exturl"{{ end }}>
{{ .Text | safeHTML }} {{ .Text | safeHTML }}
{{- if and $extURL .Page.Site.Params.exturl.icon }} {{ if and $extURL .Page.Site.Params.exturl.icon }}
<i class="fa fa-external-link-alt"></i> <i class="fa fa-external-link-alt"></i>
{{- end }} {{ end }}
</a> </a>

View File

@@ -1,13 +1,13 @@
{{- range $k, $v := (partialCached "init.html" .) -}} {{ range $k, $v := (partialCached "init.html" .) }}
{{- $.Scratch.Set $k $v -}} {{ $.Scratch.Set $k $v }}
{{- end -}} {{ end }}
{{ $commentEnable := .Params.comment.enable | default .Site.Params.comments.enable }} {{ $isComment := .Params.comment.enable | default .Site.Params.comments.enable }}
{{ .Scratch.Set "isComment" $commentEnable }} {{ .Scratch.Set "isComment" $isComment }}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}" data-theme="{{ .Scratch.Get "theme" }}"> <html lang="{{ .Site.LanguageCode }}" data-theme="{{ .Scratch.Get "theme" }}">
<head> <head>
{{- partial "head.html" . }} {{ partial "head.html" . }}
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title> <title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
<noscript> <noscript>
<link rel="stylesheet" href="/css/noscript.css"> <link rel="stylesheet" href="/css/noscript.css">
@@ -19,30 +19,30 @@
<main class="main"> <main class="main">
<header class="header" itemscope itemtype="http://schema.org/WPHeader"> <header class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"> <div class="header-inner">
{{- partial "header.html" . }} {{ partial "header.html" . }}
</div> </div>
<!-- Sidebar --> <!-- Sidebar -->
{{- if ne .Site.Params.sidebar.display "remove" }} {{ if ne .Site.Params.sidebar.display "remove" }}
{{- partial "sidebar.html" . }} {{ partial "sidebar.html" . }}
{{- end }} {{ end }}
</header> </header>
<!-- Widgets --> <!-- Widgets -->
{{ partial "widgets.html" . }} {{ partial "widgets.html" . }}
<div class="main-inner {{ block "main_inner_class" . }}{{ end }}"> <div class="main-inner {{ block "main_inner_class" . }}{{ end }}">
<!-- Submenu,Content,Comment --> <!-- Submenu,Content,Comment -->
{{- block "main" . }}{{- end }} {{ block "main" . }}{{ end }}
{{- if and .IsPage $commentEnable }} {{ if and .IsPage $isComment }}
{{- partialCached "comments.html" . }} {{ partialCached "comments.html" . }}
{{- end }} {{ end }}
</div> </div>
</main> </main>
<footer class="footer"> <footer class="footer">
<div class="footer-inner"> <div class="footer-inner">
{{- partialCached "footer.html" . }} {{ partialCached "footer.html" . }}
</div> </div>
</footer> </footer>
{{- partial "scripts.html" . }} {{ partial "scripts.html" . }}
</body> </body>
</html> </html>

View File

@@ -1,13 +1,18 @@
{{ $limit := .Site.Params.algoliaSearch.limit | default 1000 }}
[ [
{{- range $index, $entry := where .Site.RegularPages "Kind" "page" }} {{ range $index, $entry := where .Site.RegularPages "Kind" "page" }}
{{- if $index }}, {{ end }} {{ if $index }}, {{ end }}
{ {
"objectID": "{{ .Date.Unix }}", "objectID": "{{ .Date.Unix }}",
"permalink": "{{ .Permalink | relURL }}", "permalink": "{{ .Permalink | relURL }}",
"title": {{ .Title | jsonify }}, "title": {{ .Title | jsonify }},
{{ if gt .WordCount $limit }}
"content": {{ .Plain | truncate $limit | jsonify | safeJS }},
{{ else }}
"content": {{ .Plain | jsonify | safeJS }}, "content": {{ .Plain | jsonify | safeJS }},
{{ end }}
"date": {{ .Date.Format $.Site.Params.timeFormat | jsonify }}, "date": {{ .Date.Format $.Site.Params.timeFormat | jsonify }},
"updated": {{ .Lastmod.Format $.Site.Params.timeFormat | jsonify }} "updated": {{ .Lastmod.Format $.Site.Params.timeFormat | jsonify }}
} }
{{- end }} {{ end }}
] ]

View File

@@ -1,3 +1,4 @@
{{ $limit := .Site.Params.localSearch.limit | default 1000 }}
{{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }} {{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }}
<search> <search>
{{range where .Site.RegularPages "Kind" "page"}} {{range where .Site.RegularPages "Kind" "page"}}
@@ -5,14 +6,14 @@
<title>{{ .Title }}</title> <title>{{ .Title }}</title>
<url>{{ .RelPermalink | relLangURL }}</url> <url>{{ .RelPermalink | relLangURL }}</url>
<categories> <categories>
{{- range .Params.categories }}<category>{{ . }}</category>{{- end }} {{ range .Params.categories }}<category>{{ . }}</category>{{ end }}
</categories> </categories>
<tags> <tags>
{{- range .Params.tags }} {{ range .Params.tags }}
<tag>{{ . }}</tag> <tag>{{ . }}</tag>
{{- end }} {{ end }}
</tags> </tags>
<content type="html"><![CDATA[{{ .Content | plainify }}]]></content> <content type="html"><![CDATA[ {{ if gt .WordCount $limit }} {{ .Plain | truncate $limit }} {{ else }} {{ .Plain }} {{ end }} ]]></content>
</entry> </entry>
{{ end }} {{ end }}
</search> </search>

View File

@@ -1,15 +1,15 @@
{{- define "title" }} {{ define "title" }}
{{- .Params.Title | default (T .Section) | default .Section }} - {{ .Site.Title -}} {{ .Params.Title | default (T .Section) | default .Section }} - {{ .Site.Title }}
{{- end -}} {{ end }}
{{ define "main_inner_class" }}index posts-expand{{ end }} {{ define "main_inner_class" }}index posts-expand{{ end }}
{{- define "main" }} {{ define "main" }}
{{ $paginator := .Paginate (where .Site.RegularPages "Section" "==" .Section) }} {{ $paginator := .Paginate (where .Site.RegularPages "Section" "==" .Section) }}
{{- range $paginator.Pages }} {{ range $paginator.Pages }}
{{ partial "post.html" (dict "ctx" . "IsHome" true) }} {{ partial "post.html" (dict "ctx" . "IsHome" true) }}
{{- end }} {{ end }}
{{- partial "partials/pagination.html" . }} {{ partial "partials/pagination.html" . }}
{{- end }} {{ end }}

View File

@@ -1,7 +1,7 @@
{{- define "title" }}{{- .Title }} - {{ .Site.Title -}}{{- end }} {{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
{{- define "main_inner_class" }}post posts-expand{{- end }} {{ define "main_inner_class" }}post posts-expand{{ end }}
{{- define "main" }} {{ define "main" }}
{{ partial "post.html" (dict "ctx" . "IsHome" false) }} {{ partial "post.html" (dict "ctx" . "IsHome" false) }}
{{- end }} {{ end }}

View File

@@ -1,6 +1,6 @@
{{- define "title" -}} {{ define "title" }}
{{- .Title }} - {{ T .Data.Singular | default .Data.Singular }} - {{ .Site.Title -}} {{ .Title }} - {{ T .Data.Singular | default .Data.Singular }} - {{ .Site.Title }}
{{- end -}} {{ end }}
{{ define "main_inner_class" }}{{ .Data.Plural }} posts-collapse{{ end }} {{ define "main_inner_class" }}{{ .Data.Plural }} posts-collapse{{ end }}
{{ define "main" }} {{ define "main" }}
<div class="post-block"> <div class="post-block">
@@ -18,5 +18,5 @@
</div> </div>
</div> </div>
{{- partial "pagination.html" . }} {{ partial "pagination.html" . }}
{{- end }} {{ end }}

View File

@@ -1,55 +1,96 @@
{{- define "title" -}} {{ define "title" }}
{{- .Params.Title | default (T .Data.Plural) | default .Data.Plural | dict "Some" | T "AllSome" }} - {{ .Site.Title -}} {{ .Params.Title | default (T .Data.Plural) | default .Data.Plural | dict "Some" | T "AllSome" }} - {{ .Site.Title }}
{{- end -}} {{ end }}
{{- define "main_inner_class" }}{{.Data.Plural}} posts-expand{{ end -}} {{ define "main_inner_class" }}{{.Data.Plural}} posts-expand{{ end }}
{{- define "main" }} {{ define "main" }}
<div class="post-block" lang="{{ .Site.LanguageCode }}"> <div class="post-block" lang="{{ .Site.LanguageCode }}">
<div class="post-header"> <div class="post-header">
<h1> <h1>
{{- if eq .Data.Plural "categories" }} {{ if eq .Data.Plural "categories" }}
{{- T "CateTitle" }} {{ T "CateTitle" }}
{{- else if eq .Data.Plural "tags" }} {{ else if eq .Data.Plural "tags" }}
{{- T "TagTitle" }} {{ T "TagTitle" }}
{{- end }} {{ end }}
</h1> </h1>
</div> </div>
<div class="post-body"> <div class="post-body">
{{- if eq .Data.Plural "categories" }} {{ if eq .Data.Plural "categories" }}
{{ $cats := .Site.Taxonomies.categories }}
<div class="category-all-page"> <div class="category-all-page">
<div class="category-all-title"> <div class="category-all-title">
{{- T "CatesCounterTitle" (.Scratch.Get "catsCount") | safeHTML -}} {{ T "Terms.categories" (.Scratch.Get "catsCount") | safeHTML }}
</div> </div>
<div class="category-all"> <div class="category-all">
<ul class="category-list"> <ul class="category-list">
{{- range $name, $items := $cats }} {{ $allSecondaryCats := slice }}
<li class="category-list-item"> {{ range .Site.Taxonomies.categories.ByCount }}
<a class="category-list-link" href="{{ "/categories/" | relLangURL }}{{ $name | urlize | lower }}" data-pjax-state="">{{ .Page.Title }}</a> {{/*
<span class="category-list-count">{{ len $items }}</span> Rollback the change of the primary category name.
</li> & it could not support the lowercase category name.
{{- end }} {{ $primaryCategory := .Name }}
</ul> */}}
{{ $primaryCategory := .Page.Title }}
{{ $primaryCount := 0 }}
{{ $secondaryCategories := slice }}
{{ $pages := $.Scratch.Get "pages" }}
{{ range where $pages "Params.categories" "intersect" (slice $primaryCategory) }}
{{ if eq (index .Params.categories 0) $primaryCategory }}
{{ $primaryCount = add $primaryCount 1 }}
{{/** if and (isset .Params.categories 1) (not (in $secondaryCategories (index .Params.categories 1))) **/}}
{{ if isset .Params.categories 1 }}
{{ if not (in $secondaryCategories (index .Params.categories 1)) }}
{{ $secondaryCategories = $secondaryCategories | append (index .Params.categories 1) }}
{{ $allSecondaryCats = $allSecondaryCats | append (index .Params.categories 1) }}
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ if not (in $allSecondaryCats $primaryCategory) }}
<li class="category-list-item">
<a class="category-list-link" href="{{ "categories/" | relURL }}{{ $primaryCategory | urlize }}/">
{{ $primaryCategory }}
<span class="category-list-count">{{ $primaryCount }}</span>
</a>
</li>
<ul class="category-children-list">
{{ range $secondaryCategories }}
{{ $secondaryCategory := . }}
{{ $secondaryCount := 0 }}
{{ range where $pages "Params.categories" "intersect" (slice $secondaryCategory) }}
{{ if and (eq (index .Params.categories 0) $primaryCategory) (eq (index .Params.categories 1) $secondaryCategory) }}
{{ $secondaryCount = add $secondaryCount 1 }}
{{ end }}
{{ end }}
<li class="category-children-list-item">
<a class="category-list-link" href="{{ "categories/" | relURL }}{{ . | urlize }}/">
{{ . }}
<span class="category-list-count">{{ $secondaryCount }}</span>
</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</ul>
{{ end }}
{{ if eq .Data.Plural "tags" }}
{{ $tags := .Site.Taxonomies.tags }}
<div class="tag-cloud">
<div class="tag-cloud-title">
{{ T "Terms.tags" (.Scratch.Get "tagsCount") | safeHTML }}
</div>
<div class="tag-cloud-tags">
{{ $randNums := (seq 10) }}
{{- range $name, $items := $tags }}
<a class="tag-cloud-{{ index (shuffle $randNums) 0 }}" href="{{ "/tags/" | relLangURL }}{{ $name | urlize }}/">{{ .Page.Title }}
<span class="tag-list-count">
<sup>({{ len $items }})</sup>
</span>
</a>
{{ end }}
</div>
</div> </div>
</div> {{ end }}
{{- end }}
{{- if eq .Data.Plural "tags" }}
{{ $tags := .Site.Taxonomies.tags }}
<div class="tag-cloud">
<div class="tag-cloud-title">
{{- T "TagsCounterTitle" (.Scratch.Get "tagsCount") | safeHTML -}}
</div>
<div class="tag-cloud-tags">
{{ $randNums := (seq 10) }}
{{- range $name, $items := $tags }}
<a class="tag-cloud-{{ index (shuffle $randNums) 0 }}" href="{{ "/tags/" | relLangURL }}{{ $name | urlize | lower }}">{{ .Page.Title }}
<span class="tag-list-count">
<sup>({{ len $items }})</sup>
</span>
</a>
{{- end }}
</div>
</div>
{{- end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,30 +1,30 @@
{{- define "title" }} {{ define "title" }}
{{- .Params.Title | default (T .Section) | default .Section | dict "Some" | T "AllSome" }} - {{ .Site.Title -}} {{ .Params.Title | default (T .Section) | default .Section | dict "Some" | T "AllSome" }} - {{ .Site.Title }}
{{- end -}} {{ end }}
{{ define "main_inner_class" }}archive posts-collapse{{ end }} {{ define "main_inner_class" }}archive posts-collapse{{ end }}
{{- define "main" }} {{ define "main" }}
<div class="post-block"> <div class="post-block">
<div class="post-content"> <div class="post-content">
<div class="collection-title"> <div class="collection-title">
{{- $cheers := "Um" }} {{ $cheers := "um" }}
{{- $posts := .Scratch.Get "postsCount" }} {{ $posts := .Scratch.Get "postsCount" }}
{{- if gt $posts 210 }} {{ if gt $posts 210 }}
{{- $cheers = "Excellent" }} {{ $cheers = "excellent" }}
{{- else if gt $posts 130 }} {{ else if gt $posts 130 }}
{{- $cheers = "Great" }} {{ $cheers = "great" }}
{{- else if gt $posts 80 }} {{ else if gt $posts 80 }}
{{- $cheers = "Good" }} {{ $cheers = "good" }}
{{- else if gt $posts 50 }} {{ else if gt $posts 50 }}
{{- $cheers = "Nice" }} {{ $cheers = "nice" }}
{{- else if gt $posts 30 }} {{ else if gt $posts 30 }}
{{- $cheers = "Ok" }} {{ $cheers = "ok" }}
{{- end }} {{ end }}
<span class="collection-header"> <span class="collection-header">
{{- T (printf "PostArchiveCheers%s" $cheers) }} {{ T (printf "PostArchive.cheers.%s" $cheers) }}
{{- T "SymbolComma" }} {{ T "Symbol.comma" }}
{{- T "ArchiveCounterTitle" $posts | safeHTML }} {{ T "Terms.archives" $posts | safeHTML }}
{{- T "SymbolComma" }} {{ T "Symbol.comma" }}
{{- T "PostArchiveKeepOn" }} {{ T "PostArchive.keepOn" }}
</span> </span>
</div> </div>
@@ -32,5 +32,5 @@
</div> </div>
</div> </div>
{{- partial "pagination.html" . }} {{ partial "pagination.html" . }}
{{- end }} {{ end }}

View File

@@ -1,6 +1,6 @@
{{- define "title" }}{{- .Title }} - {{ .Site.Title -}}{{- end }} {{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
{{- define "main_inner_class" }}flinks posts-expand{{- end }} {{ define "main_inner_class" }}flinks posts-expand{{ end }}
{{ define "main" }} {{ define "main" }}
@@ -13,6 +13,7 @@
<div class="flinks-list-desc">{{ .FLinksDesc | safeHTML }}</div> <div class="flinks-list-desc">{{ .FLinksDesc | safeHTML }}</div>
<div class="flinks-list-items"> <div class="flinks-list-items">
{{ range .FLinksList }} {{ range .FLinksList }}
{{ if .visible }}
<div class="flinks-list-item"> <div class="flinks-list-item">
<a href="{{ .link }}" rel="external nofollow noreferrer" title=" {{ .name }}" target="_blank"> <a href="{{ .link }}" rel="external nofollow noreferrer" title=" {{ .name }}" target="_blank">
<div class="flinks-item-icon"> <div class="flinks-item-icon">
@@ -23,6 +24,7 @@
</a> </a>
</div> </div>
{{ end }} {{ end }}
{{ end }}
</div> </div>
</div> </div>
{{ end }} {{ end }}

View File

@@ -1,11 +1,11 @@
{{- define "main_inner_class" }}index posts-expand{{- end }} {{ define "main_inner_class" }}index posts-expand{{ end }}
{{- define "main" }} {{ define "main" }}
{{ $paginator := .Paginate (where .Site.RegularPages "Section" "in" .Site.Params.mainSections) }} {{ $paginator := .Paginate (where .Site.RegularPages "Section" "in" .Site.Params.mainSections) }}
{{- range $paginator.Pages }} {{ range $paginator.Pages }}
{{ partial "post.html" (dict "ctx" . "IsHome" true) }} {{ partial "post.html" (dict "ctx" . "IsHome" true) }}
{{- end }} {{ end }}
{{- partial "partials/pagination.html" . }} {{ partial "partials/pagination.html" . }}
{{- end }} {{ end }}

View File

@@ -3,19 +3,17 @@
{{ $fmt := "%s/%s@%s/%s" }} {{ $fmt := "%s/%s@%s/%s" }}
{{ $npm := .res.name }} {{ $npm := .res.name }}
{{ with .res.alias2 }} {{ $file := .res.file }}
{{ $npm = . }}
{{ if ne .router.type "nodejs" }}
{{ $file = replaceRE `(dist|lib|source\/js)\/` "" .res.file }}
{{ $fmt = "%s/%s/%s/%s" }}
{{ else }}
{{ with .res.alias }}
{{ $npm = . }}
{{ end }}
{{ end }} {{ end }}
{{- $file := .res.file }}
{{- if ne .vendor "unpkg" }} {{ $pluginRes := printf $fmt .router.url $npm .res.version $file }}
{{- with .res.alias }}
{{- $npm = . }}
{{- end }}
{{- $file = replaceRE `(dist|lib|source\/js)\/` "" .res.file }}
{{- $fmt = "%s/%s/%s/%s" }}
{{- end }}
{{ $pluginRes := printf $fmt .router $npm .res.version $file }}
{{ return $pluginRes }} {{ return $pluginRes }}

View File

@@ -4,7 +4,7 @@
</span> </span>
<div class="search-input-container"> <div class="search-input-container">
<input autocomplete="off" autocapitalize="off" maxlength="80" <input autocomplete="off" autocapitalize="off" maxlength="80"
placeholder="{{ T "SearchPh" }}" spellcheck="false" placeholder="{{ T "Search.placeholder" }}" spellcheck="false"
type="search" class="search-input"> type="search" class="search-input">
</div> </div>
<span class="popup-btn-close" role="button"> <span class="popup-btn-close" role="button">

View File

@@ -1,3 +1,3 @@
{{- if isset .Site.Params "addthisid" }} {{ if isset .Site.Params "addthisid" }}
<div class="addthis_inline_share_toolbox" style="text-align: center;"></div> <div class="addthis_inline_share_toolbox" style="text-align: center;"></div>
{{- end }} {{ end }}

View File

@@ -1,42 +1,42 @@
{{- $root := . -}} {{ $root := . }}
{{- with .Site.Params.comments }} {{ with .Site.Params.comments }}
{{- $tc := and .storage (gt (len .nav) 1) }} {{ $tc := and .storage (gt (len .nav) 1) }}
{{- $active := .active }} {{ $active := .active }}
{{- $fc := .active }} {{ $fc := .active }}
{{- $sc := "" }} {{ $sc := "" }}
{{- $sn := "" }} {{ $sn := "" }}
<div id="comments" class="post-comments"> <div id="comments" class="post-comments">
<div class="comment-head"> <div class="comment-head">
<div class="comment-headline"> <div class="comment-headline">
<i class="fas fa-comments fa-fw"></i> <i class="fas fa-comments fa-fw"></i>
<span>{{ T "PostCommentTitle" }}</span> <span>{{ T "PostComments.title" }}</span>
</div> </div>
{{- if $tc }} {{ if $tc }}
{{- $sn = (sort .nav "weight") }} {{ $sn = (sort .nav "weight") }}
{{- $fc = index $sn 0 }} {{ $fc = index $sn 0 }}
{{- $sc = index $sn 1 }} {{ $sc = index $sn 1 }}
<div class="comment-switch"> <div class="comment-switch">
<span class="first-comment">{{ $fc.title }}</span> <span class="first-comment">{{ $fc.title }}</span>
<span class="switch-btn {{ if eq .active (lower $sc.name) }}move{{ end }}"></span> <span class="switch-btn {{ if eq .active (lower $sc.name) }}move{{ end }}"></span>
<span class="second-comment">{{ $sc.title }}</span> <span class="second-comment">{{ $sc.title }}</span>
</div> </div>
{{- end }} {{ end }}
</div> </div>
<div class="comment-wrap"> <div class="comment-wrap">
{{ $cp := "_thirdparty/comment/%s.html" }} {{ $cp := "_thirdparty/comment/%s.html" }}
{{- if $tc }} {{ if $tc }}
{{- range $sn }} {{ range $sn }}
<div> <div>
{{- partial "_thirdparty/comment/comm_loading.html" . }} {{ partial "_thirdparty/comment/comm_loading.html" . }}
{{- partial (printf $cp (lower .name)) $root }} {{ partial (printf $cp (lower .name)) $root }}
</div> </div>
{{- end }} {{ end }}
{{- else }} {{ else }}
<div> <div>
{{- partial "_thirdparty/comment/comm_loading.html" . }} {{ partial "_thirdparty/comment/comm_loading.html" . }}
{{- partial (printf $cp $fc) $root }} {{ partial (printf $cp $fc) $root }}
</div> </div>
{{- end }} {{ end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,4 +1,4 @@
{{- $ft := .Site.Params.footer }} {{ $ft := .Site.Params.footer }}
{{ if $ft.translate }} {{ if $ft.translate }}
<div id="gtranslate" class="google-translate"> <div id="gtranslate" class="google-translate">
<i class="fa fa-language"></i> <i class="fa fa-language"></i>
@@ -8,55 +8,61 @@
<div class="copyright"> <div class="copyright">
&copy; &copy;
<span itemprop="copyrightYear"> <span itemprop="copyrightYear">
{{- $year := now.Year }} {{ $year := now.Year }}
{{- if isset $ft "since" }} {{ if isset $ft "since" }}
{{- if gt $year $ft.since }} {{ if gt $year $ft.since }}
{{ $ft.since }} - {{ $year }} {{ $ft.since }} - {{ $year }}
{{- else }} {{ else }}
{{ $year }} {{ $year }}
{{- end }} {{ end }}
{{- else }} {{ else }}
{{ $year }} {{ $year }}
{{- end }} {{ end }}
</span> </span>
<span class="with-love"> <span class="with-love">
<i class="{{ $ft.icon.name }}"></i> <i class="{{ $ft.icon.name }}"></i>
</span> </span>
<span class="author" itemprop="copyrightHolder">{{ $ft.copyright | default .Site.Params.author }}</span> <span class="author" itemprop="copyrightHolder">{{ $ft.copyright | default .Site.Params.author }}</span>
</div> </div>
{{- if $ft.powered }} {{ if $ft.powered }}
<div class="powered-by"> <div class="powered-by">
{{ $pb := printf "<a href='https://gohugo.io' title='%s' target='_blank'>Hugo</a> &amp; <a href='https://github.com/hugo-next/hugo-theme-next' title='%s' target='_blank'>Hugo NexT.%s</a>" hugo.Version .Site.Data.config.version .Site.Params.scheme }} {{ $pb := printf "<a href='https://gohugo.io' title='%s' target='_blank'>Hugo</a> &amp; <a href='https://github.com/hugo-next/hugo-theme-next' title='%s' target='_blank'>Hugo NexT.%s</a>" hugo.Version .Site.Data.config.version .Site.Params.scheme }}
{{- printf (T "FooterPowerby") $pb | safeHTML }} {{ printf (T "Footer.powerby") $pb | safeHTML }}
</div> </div>
{{- end }} {{ end }}
{{- with $ft.beian }} {{ with $ft.beian }}
{{- if .enable }} {{ if .enable }}
<div class="beian"> <div class="beian">
<a href="https://beian.miit.gov.cn" target="_blank">{{ .icp }}</a> <a href="https://beian.miit.gov.cn" target="_blank">{{ .icp }}</a>
<img src="/imgs/gongan.png" alt="{{ .provinceAbbr }}公网安备"> <img src="/imgs/gongan.png" alt="{{ .provinceAbbr }}公网安备">
<a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode={{ .gonganNum }}" target="_blank">{{ .provinceAbbr }}公网安备 {{ .gonganNum }} 号</a> <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode={{ .gonganNum }}" target="_blank">{{ .provinceAbbr }}公网安备 {{ .gonganNum }} 号</a>
</div> </div>
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- with $ft.vendors }} {{ with $ft.vendors }}
{{ if .enable }} {{ if .enable }}
<div class="vendors-list"> <div class="vendors-list">
{{- range .list }} {{ range .list }}
<a target="_blank" href="{{ .link }}" title="{{ .name }}"> <a target="_blank" href="{{ .link }}" title="{{ .name }}">
{{- if .image }} {{ if .image }}
<img src="/imgs/img-lazy-loading.gif" data-src="{{ .image.url }}" alt="{{ .name }}" /> <img src="/imgs/img-lazy-loading.gif" data-src="{{ .image.url }}" alt="{{ .name }}" />
{{- else }} {{ else }}
{{ .name }} {{ .name }}
{{- end }} {{ end }}
</a> </a>
{{- end }} {{ end }}
<span>{{ .title }}</span> {{ $cv := $.Scratch.Get "router" }}
{{ if and $cv (ne $cv.name "local") }}
<a target="_blank" href="{{ $cv.home }}" title="{{ $cv.name }}">
<img src="/imgs/img-lazy-loading.gif" data-src="{{ $cv.logo }}" alt="{{ $cv.name }}" />
</a>
{{ end }}
<span>{{ .title }}</span>
</div> </div>
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- $custom := .Scratch.Get "footer" }} {{ $custom := .Scratch.Get "footer" }}
{{- if $custom }} {{ if $custom }}
{{ partialCached $custom . }} {{ partialCached $custom . }}
{{- end }} {{ end }}

View File

@@ -1,10 +1,10 @@
{{- partial "head/meta.html" . }} {{ partial "head/meta.html" . }}
{{- partial "head/opengraph.html" . }} {{ partial "head/opengraph.html" . }}
{{- partial "head/twitter.html" . }} {{ partial "head/twitter.html" . }}
{{- partial "head/googleplus.html" . }} {{ partial "head/googleplus.html" . }}
{{- partial "head/facebook.html" . }} {{ partial "head/facebook.html" . }}
{{- partialCached "head/verify.html" . }} {{ partial "head/verify.html" . }}
{{- partialCached "head/style.html" . }} {{ partialCached "head/style.html" . }}
<script type="text/javascript"> <script type="text/javascript">
(function(){ (function(){
localDB = { localDB = {
@@ -60,6 +60,6 @@
theme.active(); theme.active();
})(window); })(window);
</script> </script>
{{- partial "head/config.html" . }} {{ partial "head/config.html" . }}
{{- partialCached "head/analytics.html" . }} {{ partialCached "head/analytics.html" . }}

View File

@@ -1,12 +1,12 @@
{{- if isset .Site.Params.analytics "laid" }} {{ if isset .Site.Params.analytics "laid" }}
{{ partial "_thirdparty/analytics/51la.html" . }} {{ partial "_thirdparty/analytics/51la.html" . }}
{{- end }} {{ end }}
{{- if isset .Site.Params.analytics "baidu" }} {{ if isset .Site.Params.analytics "baidu" }}
{{ partial "_thirdparty/analytics/baidu.html" . }} {{ partial "_thirdparty/analytics/baidu.html" . }}
{{- end }} {{ end }}
{{- if isset .Site.Params.analytics "google" }} {{ if isset .Site.Params.analytics "google" }}
{{ partial "_thirdparty/analytics/google.html" . }} {{ partial "_thirdparty/analytics/google.html" . }}
{{- end }} {{ end }}
{{- if isset .Site.Params.analytics "busuanzi" }} {{ if or (isset .Site.Params.analytics "busuanzi") (eq .Site.Params.postMeta.views.plugin "busuanzi") }}
{{ partial "_thirdparty/analytics/busuanzi.html" . }} {{ partial "_thirdparty/analytics/busuanzi.html" . }}
{{- end }} {{ end }}

View File

@@ -1,14 +1,14 @@
{{- $pageCfg := dict {{ $pageCfg := dict
"isHome" .IsHome "isHome" .IsHome
"isPage" .IsPage "isPage" .IsPage
"comments" (.Scratch.Get "isComment") "comments" (.Scratch.Get "isComment")
"permalink" (.Page.Permalink | absURL) "permalink" (.Page.Permalink | absURL)
"path" (.Page.Permalink | path.Base) "path" (.Page.Permalink | path.Base)
"title" .Page.Title "title" .Page.Title
-}} }}
{{/* Append waline pageview & comment plugin */}} {{/* Append waline pageview & comment plugin */}}
{{ if and .Site.Params.waline ( or .Site.Params.waline.pageView .Site.Params.waline.comment) }} {{ if or (eq .Site.Params.postMeta.views.plugin "waline") (eq .Site.Params.postMeta.comments.plugin "waline") }}
{{ $counter := dict {{ $counter := dict
"js" .Site.Data.resources.plugins.waline.js "js" .Site.Data.resources.plugins.waline.js
}} }}
@@ -37,4 +37,4 @@
{{ $pageCfg = merge $pageCfg (dict "math" $math) }} {{ $pageCfg = merge $pageCfg (dict "math" $math) }}
{{ end }} {{ end }}
<script class="next-config" data-name="page" type="application/json">{{- $pageCfg -}}</script> <script class="next-config" data-name="page" type="application/json">{{ $pageCfg }}</script>

View File

@@ -1,5 +1,5 @@
{{- with .Site.Params.openGraph.facebook }} {{ with .Site.Params.openGraph.facebook }}
{{- range $attr, $val := . }} {{ range $attr, $val := . }}
<meta property="fb:{{ $attr }}" content="{{ $val }}"> <meta property="fb:{{ $attr }}" content="{{ $val }}">
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,9 +1,9 @@
<!-- Website icons --> <!-- Website icons -->
{{- with .Site.Params.favicon }} {{ with .Site.Params.favicon }}
<link rel="shortcut icon" type="image/x-icon" href="{{ .icon }}"> <link rel="shortcut icon" type="image/x-icon" href="{{ .icon }}">
<link rel="icon" type="image/x-icon" href="{{ .icon }}"> <link rel="icon" type="image/x-icon" href="{{ .icon }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ .small }}"> <link rel="icon" type="image/png" sizes="16x16" href="{{ .small }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ .medium }}"> <link rel="icon" type="image/png" sizes="32x32" href="{{ .medium }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ .appleTouchIcon }}"> <link rel="apple-touch-icon" sizes="180x180" href="{{ .appleTouchIcon }}">
{{- end }} {{ end }}
<!-- Website icons --> <!-- Website icons -->

View File

@@ -1,3 +1,3 @@
{{- with .Site.Params.openGraph.googlePlus }} {{ with .Site.Params.openGraph.googlePlus }}
<link rel="publisher" href=" {{ . }}"> <link rel="publisher" href=" {{ . }}">
{{- end }} {{ end }}

View File

@@ -1,10 +1,10 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width"> <meta name="viewport" content="width=device-width">
{{- if .Site.Params.darkmode }} {{ if .Site.Params.darkmode }}
<meta name="theme-color" content="{{ .Site.Params.themeColor.dark }}" media="(prefers-color-scheme: dark)" /> <meta name="theme-color" content="{{ .Site.Params.themeColor.dark }}" media="(prefers-color-scheme: dark)" />
{{- else }} {{ else }}
<meta name="theme-color" content="{{ .Site.Params.themeColor.light }}" media="(prefers-color-scheme: light)" /> <meta name="theme-color" content="{{ .Site.Params.themeColor.light }}" media="(prefers-color-scheme: light)" />
{{- end }} {{ end }}
{{ hugo.Generator }} {{ hugo.Generator }}
<link rel="shortcut icon" type="image/x-icon" href="{{ .Site.Params.favicon.icon }}"> <link rel="shortcut icon" type="image/x-icon" href="{{ .Site.Params.favicon.icon }}">
<link rel="icon" type="image/x-icon" href="{{ .Site.Params.favicon.icon }}"> <link rel="icon" type="image/x-icon" href="{{ .Site.Params.favicon.icon }}">
@@ -13,18 +13,19 @@
<link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon.appleTouchIcon }}"> <link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon.appleTouchIcon }}">
<meta itemprop="name" content="{{ .Title }}" /> <meta itemprop="name" content="{{ .Title }}" />
<meta itemprop="description" content="{{ .Description | default .Site.Params.description }}" /> <meta itemprop="description" content="{{ .Description | default .Site.Params.description }}" />
{{- if .IsPage }} <meta name="description" content="{{ .Description | default .Site.Params.description }}" />
{{- with .Date }} {{ if .IsPage }}
{{ with .Date }}
<meta itemprop="datePublished" {{ . }} /> <meta itemprop="datePublished" {{ . }} />
{{- end }} {{ end }}
{{- with .Lastmod }} {{ with .Lastmod }}
<meta itemprop="dateModified" {{ . }} /> <meta itemprop="dateModified" {{ . }} />
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- $img := .Site.Params.customLogo | default .Site.Params.avatar.url }} {{ $img := .Site.Params.customLogo | default .Site.Params.avatar.url }}
{{- if and .IsPage (isset .Params "images") }} {{ if and .IsPage (isset .Params "images") }}
{{- $img := index .Params.images 0 }} {{ $img := index .Params.images 0 }}
{{- end }} {{ end }}
{{- .Scratch.Set "metaImg" $img }} {{ .Scratch.Set "metaImg" $img }}
<meta itemprop="image" content="{{ $img | absURL }}" /> <meta itemprop="image" content="{{ $img | absURL }}" />
<meta itemprop="keywords" content="{{ if and .IsPage (isset .Params "tags")}}{{ delimit .Params.tags "," }}{{ else }}{{ .Site.Params.keywords }}{{ end }}" /> <meta itemprop="keywords" content="{{ if and .IsPage (isset .Params "tags")}}{{ delimit .Params.tags "," }}{{ else }}{{ .Site.Params.keywords }}{{ end }}" />

View File

@@ -1,9 +1,9 @@
{{- $Site := .Site -}} {{ $Site := .Site }}
{{- $Params := .Site.Params -}} {{ $Params := .Site.Params }}
{{- $Page := .Page -}} {{ $Page := .Page }}
{{- $langCode := .Scratch.Get "langCode" -}} {{ $langCode := .Scratch.Get "langCode" }}
{{- with .Site.Params.openGraph -}} {{ with .Site.Params.openGraph }}
{{- if .enable -}} {{ if .enable }}
<meta property="og:type" content="website"> <meta property="og:type" content="website">
<meta property="og:title" content="{{ $Page.Title }}"> <meta property="og:title" content="{{ $Page.Title }}">
<meta property="og:description" content="{{ default $Params.description $Page.Description }}"> <meta property="og:description" content="{{ default $Params.description $Page.Description }}">
@@ -12,21 +12,21 @@
<meta property="og:site_name" content="{{ $Site.Title }}"> <meta property="og:site_name" content="{{ $Site.Title }}">
<meta property="og:locale" content="{{ $langCode }}"> <meta property="og:locale" content="{{ $langCode }}">
<meta property="article:author" content="{{ default $Params.author $Page.Params.Author }}"> <meta property="article:author" content="{{ default $Params.author $Page.Params.Author }}">
{{- with .twitter -}} {{ with .twitter }}
{{- range $attr, $val := . }} {{ range $attr, $val := . }}
<meta name="twitter:{{ $attr }}" content="{{ $val }}"> <meta name="twitter:{{ $attr }}" content="{{ $val }}">
{{- end -}} {{ end }}
{{- end -}} {{ end }}
{{- with .googlePlus }} {{ with .googlePlus }}
<link rel="publisher" href=" {{ . }}"> <link rel="publisher" href=" {{ . }}">
{{- end -}} {{ end }}
{{- with .facebook -}} {{ with .facebook }}
{{- range $attr, $val := . }} {{ range $attr, $val := . }}
<meta property="fb:{{ $attr }}" content="{{ $val }}"> <meta property="fb:{{ $attr }}" content="{{ $val }}">
{{- end -}} {{ end }}
{{- end -}} {{ end }}
{{- end -}} {{ end }}
{{- end -}} {{ end }}

View File

@@ -1,4 +1,4 @@
{{- if .Site.Params.openGraph.enable }} {{ if .Site.Params.openGraph.enable }}
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" /> <meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
<meta property="og:title" content="{{ .Title | default .Site.Title }}" /> <meta property="og:title" content="{{ .Title | default .Site.Title }}" />
<meta property="og:description" content="{{ .Description | default .Site.Params.Description }}" /> <meta property="og:description" content="{{ .Description | default .Site.Params.Description }}" />
@@ -9,9 +9,9 @@
<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:locale" content="{{ .Site.LanguageCode }}"/> <meta property="og:locale" content="{{ .Site.LanguageCode }}"/>
{{- if .IsPage }} {{ if .IsPage }}
<meta property="article:author" content="{{ .Params.Author | default .Site.Params.Author }}" /> <meta property="article:author" content="{{ .Params.Author | default .Site.Params.Author }}" />
<meta property="article:published_time" content="{{ .Date }}" /> <meta property="article:published_time" content="{{ .Date }}" />
<meta property="article:modified_time" content="{{ .Lastmod }}" /> <meta property="article:modified_time" content="{{ .Lastmod }}" />
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,31 +1,31 @@
<!-- Plugin style files --> <!-- Plugin style files -->
{{- $cssRes := .Site.Data.resources.css }} {{ $cssRes := .Site.Data.resources.css }}
{{- $vendor := .Site.Params.vendors.plugins }} {{ $vendor := .Site.Params.vendors.plugins }}
{{- $router := .Scratch.Get "router" }} {{ $router := .Scratch.Get "router" }}
{{- range $css := $cssRes }} {{ range $css := $cssRes }}
{{ $pluginCss := partial "_funs/get_res.html" (dict "res" . "vendor" $vendor "router" $router) }} {{ $pluginCss := partial "_funs/get_res.html" (dict "res" . "vendor" $vendor "router" $router) }}
<link type="text/css" rel="stylesheet" href="{{ $pluginCss }}" /> <link type="text/css" rel="stylesheet" href="{{ $pluginCss }}" />
{{- end }} {{ end }}
<!-- Main Style file --> <!-- Main Style file -->
{{- $scss := resources.Get "css/main.scss" }} {{ $scss := resources.Get "css/main.scss" }}
{{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }} {{ $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }}
{{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }} {{ $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }}
{{- if hugo.IsProduction }} {{ if hugo.IsProduction }}
{{- $css = $css | minify | fingerprint }} {{ $css = $css | minify | fingerprint }}
{{- end }} {{ end }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}"> <link rel="stylesheet" href="{{ $css.RelPermalink }}">
{{- if .IsPage }} {{ if .IsPage }}
<style type="text/css"> <style type="text/css">
.post-footer, .flinks-list-footer hr:after { .post-footer, .flinks-list-footer hr:after {
content: "{{ .Site.Params.postFooter.endLineTip }}"; content: "{{ .Site.Params.postFooter.endLineTip }}";
} }
</style> </style>
{{- end }} {{ end }}
{{- $custom := .Scratch.Get "style" }} {{ $custom := .Scratch.Get "style" }}
{{- if $custom }} {{ if $custom }}
<link rel="stylesheet" type="text/css" href="{{ $custom }}"> <link rel="stylesheet" type="text/css" href="{{ $custom }}">
{{- end }} {{ end }}

View File

@@ -1,5 +1,5 @@
{{- with .Site.Params.openGraph.twitter }} {{ with .Site.Params.openGraph.twitter }}
{{- $img := $.Params.openGraph.twitter.image | default ($.Scratch.Get "metaImg") }} {{ $img := $.Params.openGraph.twitter.image | default ($.Scratch.Get "metaImg") }}
<meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:creator" content="{{ .creator }}"/> <meta name="twitter:creator" content="{{ .creator }}"/>
<meta name="twitter:description" content="{{ with $.Page.Description }}{{ . }}{{ else }}{{if $.Page.IsPage}}{{ .Summary }}{{ else }}{{ $.Params.description }}{{ end }}{{ end }}"/> <meta name="twitter:description" content="{{ with $.Page.Description }}{{ . }}{{ else }}{{if $.Page.IsPage}}{{ .Summary }}{{ else }}{{ $.Params.description }}{{ end }}{{ end }}"/>

View File

@@ -1,14 +1,14 @@
{{ if .IsHome }} {{ if .IsHome }}
{{- with .Site.Params.googleSiteVerification }} {{ with .Site.Params.googleSiteVerification }}
<meta name="google-site-verification" content="{{ . }}"> <meta name="google-site-verification" content="{{ . }}">
{{- end }} {{ end }}
{{- with .Site.Params.bingSiteVerification }} {{ with .Site.Params.bingSiteVerification }}
<meta name="msvalidate.01" content="{{ . }}"> <meta name="msvalidate.01" content="{{ . }}">
{{- end }} {{ end }}
{{- with .Site.Params.yandexSiteVerification }} {{ with .Site.Params.yandexSiteVerification }}
<meta name="yandex-verification" content="{{ . }}"> <meta name="yandex-verification" content="{{ . }}">
{{- end }} {{ end }}
{{- with .Site.Params.baiduSiteVerification }} {{ with .Site.Params.baiduSiteVerification }}
<meta name="baidu-site-verification" content="{{ . }}"> <meta name="baidu-site-verification" content="{{ . }}">
{{- end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -9,9 +9,9 @@
</div> </div>
<div class="site-meta"> <div class="site-meta">
{{- if and .Site.Params.customLogo (eq .Site.Params.scheme "Muse") }} {{ if and .Site.Params.customLogo (eq .Site.Params.scheme "Muse") }}
<img class="custom-logo-image" src="{{ .Site.Params.customLogo }}" alt="{{ $title }}"> <img class="custom-logo-image" src="{{ .Site.Params.customLogo }}" alt="{{ $title }}">
{{- end }} {{ end }}
<a href="{{ "/" | relLangURL }}" class="brand" rel="start"> <a href="{{ "/" | relLangURL }}" class="brand" rel="start">
<i class="logo-line"></i> <i class="logo-line"></i>
@@ -20,17 +20,17 @@
</a> </a>
{{ if isset .Site.Params "subtitle" }} {{ if isset .Site.Params "subtitle" }}
<p class="site-subtitle" itemprop="description">{{ .Site.Params.subtitle }}</p> <p class="site-subtitle" itemprop="description">{{ .Site.Params.subtitle }}</p>
{{- end }} {{ end }}
{{- if and .Site.Params.customLogo (or (eq .Site.Params.scheme "Gemini") (eq .Site.Params.scheme "Pisces"))}} {{ if and .Site.Params.customLogo (or (eq .Site.Params.scheme "Gemini") (eq .Site.Params.scheme "Pisces"))}}
<img class="custom-logo-image" src="{{ .Site.Params.customLogo }}" alt="{{ $title }}"> <img class="custom-logo-image" src="{{ .Site.Params.customLogo }}" alt="{{ $title }}">
{{- end }} {{ end }}
</div> </div>
<div class="site-nav-right"> <div class="site-nav-right">
<div class="toggle popup-trigger"> <div class="toggle popup-trigger">
{{ if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }} {{ if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }}
<i class="fa fa-search fa-fw fa-lg"></i> <i class="fa fa-search fa-fw fa-lg"></i>
{{- end }} {{ end }}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,25 +1,38 @@
{{- $ms := .Site.Params.menuSets }} {{ $ms := .Site.Params.menuSets }}
{{- $curP := .Page }} {{ $curP := .Page }}
<nav class="site-nav"> <nav class="site-nav">
<ul class="main-menu menu"> <ul class="main-menu menu">
{{- range .Site.Menus.main }} {{ range .Site.Menus.main }}
{{- $active := $curP.IsMenuCurrent "main" . }} {{ $active := $curP.IsMenuCurrent "main" . }}
<li class="menu-item menu-item-{{ .Identifier }}"> <li class="menu-item menu-item-{{ .Identifier }}">
<a href="{{ .URL | relLangURL }}" class="hvr-icon-pulse {{if $active }} menu-item-active{{ end }}" rel="section"> <a href="{{ .URL | relLangURL }}" class="{{ if .HasChildren }}menus-parent{{ end }} hvr-icon-pulse {{if $active }} menu-item-active{{ end }}" rel="section">
{{- if $ms.icons }}<i class="fa fa-{{ .Pre }} hvr-icon"></i>{{ end }}{{- .Name }} {{ if $ms.icons }}<i class="fa fa-{{ .Pre }} hvr-icon"></i>{{ end }}{{ .Name }}
{{- if and $ms.badges (eq .Identifier "archives") }} {{ if .HasChildren }}<span class="menu-item-shrink-icon"><i class="fa fa-angle-right"></i></span>{{ end }}
<span class="badge">{{ $.Scratch.Get "postsCount" }}</span> {{ if and $ms.badges (eq .Identifier "archives") }}
{{- end }} <span class="badge">{{ $.Scratch.Get "postsCount" }}</span>
{{ end }}
</a> </a>
{{ if .HasChildren }}
<ul class="menu-children">
{{ range .Children }}
{{ $active = $curP.IsMenuCurrent "main" . }}
<li class="menu-child-item">
<a href="{{ .URL | relLangURL }}" class="hvr-icon-pulse {{if $active }}menu-item-active{{ end }}" rel="section">
<i class="fa hvr-icon"></i>{{ .Name }}
</a>
</li>
{{ end }}
</ul>
{{ end }}
</li> </li>
{{- end }} {{ end }}
{{- if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }} {{ if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }}
<li class="menu-item menu-item-search"> <li class="menu-item menu-item-search">
<a role="button" class="popup-trigger hvr-icon-pulse"> <a role="button" class="popup-trigger hvr-icon-pulse">
{{- if $ms.icons }}<i class="fa fa-search fa-fw hvr-icon"></i>{{ end }}{{ T "MSearchLabel" }} {{ if $ms.icons }}<i class="fa fa-search fa-fw hvr-icon"></i>{{ end }}{{ T "Sidebar.label.search" }}
</a> </a>
</li> </li>
{{- end }} {{ end }}
</ul> </ul>
</nav> </nav>

View File

@@ -1,11 +1,11 @@
{{- if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }} {{ if or .Site.Params.algoliaSearch.enable .Site.Params.localSearch.enable }}
<div class="search-pop-overlay"> <div class="search-pop-overlay">
<div class="popup search-popup"> <div class="popup search-popup">
{{- if .Site.Params.algoliaSearch.enable }} {{ if .Site.Params.algoliaSearch.enable }}
{{ partial "_thirdparty/search/algolia.html" . }} {{ partial "_thirdparty/search/algolia.html" . }}
{{- else if .Site.Params.localSearch.enable }} {{ else if .Site.Params.localSearch.enable }}
{{ partial "_thirdparty/search/local.html" . }} {{ partial "_thirdparty/search/local.html" . }}
{{- end }} {{ end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,82 +0,0 @@
{{- $SP := .Site.Params -}}
<aside class="sidebar">
<div class="sidebar-inner sidebar-overview-active">
<ul class="sidebar-nav">
<li class="sidebar-nav-toc">{{ T "TableOfContents" }}</li>
<li class="sidebar-nav-overview">{{ T "SiteInfo" }}</li>
</ul>
<div class="sidebar-panel-container">
<div class="post-toc-wrap sidebar-panel">
</div>
<div class="site-overview-wrap sidebar-panel">
<div class="site-author site-overview-item animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
<img class="site-author-image" itemprop="image" alt="{{ $SP.author }}" src="{{ $SP.avatar.url }}">
<p class="site-author-name" itemprop="name">{{ $SP.author }}</p>
<div class="site-description" itemprop="description">{{ $SP.description }}</div>
</div>
<div class="site-state-wrap site-overview-item animated">
{{- if $SP.siteState }}
<nav class="site-state">
<div class="site-state-item site-state-posts">
<a href="{{ "/archives/" | relLangURL }}">
<span class="site-state-item-count">{{ len (where .Site.RegularPages "Section" "in" .Site.Params.mainSections) }}</span>
<span class="site-state-item-name">{{ T "SitePostsTitle" }}</span>
</a>
</div>
<div class="site-state-item site-state-categories">
<a href="{{ "/categories/" | relLangURL }}">
<span class="site-state-item-count">{{ len .Site.Taxonomies.categories }}</span>
<span class="site-state-item-name">{{ T "SiteCatesTitle" }}</span>
</a>
</div>
<div class="site-state-item site-state-tags">
<a href="{{ "/tags/" | relLangURL }}">
<span class="site-state-item-count">{{ len .Site.Taxonomies.tags }}</span>
<span class="site-state-item-name">{{ T "SiteTagsTitle" }}</span>
</a>
</div>
</nav>
{{- end }}
<div class="rss-link">
<a href="{{ "/index.xml" | relLangURL }}" rel="alternate" type="application/rss+xml" target="_blank">
<i class="fa fa-rss"></i>
{{ T "RSSTitle" }}
</a>
</div>
</div>
<div class="links-of-social site-overview-item animated">
{{ $si := $SP.socialIcons }}
{{- range $SP.socials }}
{{- range $name,$val := . }}
{{- $vals := split $val "||" }}
{{- $url := trim (index $vals 0) " " }}
{{- $icon := trim (index $vals 1) " " }}
<span class="links-of-social-item">
<a href="{{- $url }}" title="{{- $name }} → {{- $url }}" rel="noopener" {{- if and $si.enable $si.transition }} class="hvr-icon-pulse" {{- end }} target="_blank">
{{- if $si.enable }}
<i class="{{- $icon }} fa-fw {{ if $si.transition }} hvr-icon {{ end }}"></i>
{{- end }}
{{- if or (not $si.enable) (not $si.iconsOnly) }}
{{- $name }}
{{- end }}
</a>
</span>
{{- end }}
{{- end }}
</div>
{{- $cc := $SP.creativeCommons }}
{{- if and $cc $cc.sidebar }}
<div class="cc-license animated" itemprop="license">
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.{{ substr .Site.Language 0 2 }}" class="cc-opacity" rel="noopener" target="_blank" title="{{ T "CCLinkTitle" }}">
<img src="/imgs/cc/{{ $cc.size }}/{{ replace $cc.license "-" "_" }}.svg" alt="{{ T "CCLinkTitle" }}">
</a>
</div>
{{ end }}
</div>
</div>
<div class="back-to-top" role="button" aria-label="返回顶部">
<i class="fa fa-arrow-up"></i>
<span>0%</span>
</div>
</div>
</aside>

View File

@@ -14,12 +14,26 @@
{{ $globalVars := newScratch }} {{ $globalVars := newScratch }}
{{ $globalVars.Set "postsCount" (len (where .Page.Site.RegularPages "Section" "in" .Site.Params.mainSections)) }} {{ $pages := (where .Page.Site.RegularPages "Section" "in" .Site.Params.mainSections) }}
{{ $globalVars.Set "pages" $pages}}
{{ $globalVars.Set "postsCount" (len $pages)}}
{{ $globalVars.Set "catsCount" (len .Site.Taxonomies.categories) }} {{ $globalVars.Set "catsCount" (len .Site.Taxonomies.categories) }}
{{ $globalVars.Set "tagsCount" (len .Site.Taxonomies.tags) }} {{ $globalVars.Set "tagsCount" (len .Site.Taxonomies.tags) }}
{{ $vendor := .Site.Params.vendors.plugins }} {{ $vendor := .Site.Params.vendors.plugins }}
{{ $router := index .Site.Data.resources.vendors $vendor }} {{ $router := dict }}
{{ if eq $vendor "local" }}
{{ $router = dict "url" (printf "%s3rd" .Site.BaseURL) "name" $vendor "type" "modern" }}
{{ else }}
{{ range .Site.Data.resources.vendors }}
{{ if eq .name $vendor }}
{{ $router = . }}
{{ break }}
{{ end }}
{{ end }}
{{ end }}
{{ $globalVars.Set "vendor" $vendor }} {{ $globalVars.Set "vendor" $vendor }}
{{ $globalVars.Set "router" $router }} {{ $globalVars.Set "router" $router }}
@@ -37,10 +51,10 @@
"lazyload" .Site.Params.lazyload "lazyload" .Site.Params.lazyload
"motion" .Site.Params.motion "motion" .Site.Params.motion
"i18n" (dict "i18n" (dict
"placeholder" (T "SearchPh") "placeholder" (T "Search.placeholder")
"empty" (T "SearchEmpty") "empty" (T "Search.empty")
"hits_time" (T "SearchHitsTime") "hits_time" (T "Search.time")
"hits" (T "SearchHits") "hits" (T "Search.hits")
"ds_years" (T "DateSuffix.years") "ds_years" (T "DateSuffix.years")
"ds_days" (T "DateSuffix.days") "ds_days" (T "DateSuffix.days")
"ds_hours" (T "DateSuffix.hours") "ds_hours" (T "DateSuffix.hours")
@@ -58,6 +72,16 @@
{{ $config = merge $config $localSearch }} {{ $config = merge $config $localSearch }}
{{ end }} {{ end }}
{{ with .Site.Params.postMeta }}
{{ $postmeta := dict
"views" .views
"comments" .comments
}}
{{ $config = merge $config (dict "postmeta" $postmeta) }}
{{ else }}
{{ end }}
{{ if .Site.Params.algoliaSearch.enable }} {{ if .Site.Params.algoliaSearch.enable }}
{{ $algoliaSearch := dict {{ $algoliaSearch := dict
"js" .Site.Data.resources.algolia "js" .Site.Data.resources.algolia
@@ -127,11 +151,6 @@
{{ $config = merge $config (dict "lawidget" $lawidget) }} {{ $config = merge $config (dict "lawidget" $lawidget) }}
{{ end }} {{ end }}
{{ with .Site.Params.analytics.busuanzi }}
{{ $busz := dict "pageview" .postViews }}
{{ $config = merge $config (dict "busuanzi" $busz) }}
{{ end }}
{{ $globalVars.Set "config" $config }} {{ $globalVars.Set "config" $config }}
{{ with .Site.Params.customFilePath }} {{ with .Site.Params.customFilePath }}

View File

@@ -12,16 +12,16 @@
</time> </time>
</div> </div>
<div class="post-title"> <div class="post-title">
{{- if isset .Params "extlink" }} {{ if isset .Params "extlink" }}
<a href="{{ .Params.extlink }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-title-link post-title-link-external" title=""> <a href="{{ .Params.extlink }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-title-link post-title-link-external" title="">
<span itemprop="name">{{- .Title -}}</span> <span itemprop="name">{{ .Title }}</span>
<i class="fa fa-external-link-alt"></i> <i class="fa fa-external-link-alt"></i>
</a> </a>
{{- else }} {{ else }}
<a class="post-title-link" href="{{ .RelPermalink | relLangURL }}" itemprop="url"> <a class="post-title-link" href="{{ .RelPermalink | relLangURL }}" itemprop="url">
<span itemprop="name">{{ .Title }}</span> <span itemprop="name">{{ .Title }}</span>
</a> </a>
{{- end }} {{ end }}
</div> </div>
</header> </header>
</article> </article>

View File

@@ -1,42 +1,42 @@
{{- $pag := .Paginator }} {{ $pag := .Paginator }}
{{- $tps := $pag.TotalPages }} {{ $tps := $pag.TotalPages }}
{{- $begin := sub $pag.PageNumber 4}} {{ $begin := sub $pag.PageNumber 4}}
{{- $.Scratch.Set "begin" $begin }} {{ $.Scratch.Set "begin" $begin }}
{{- $end := add $pag.PageNumber 4}} {{ $end := add $pag.PageNumber 4}}
{{- $.Scratch.Set "end" $end }} {{ $.Scratch.Set "end" $end }}
{{- if lt $begin 0}} {{ if lt $begin 0}}
{{- $end := sub $end $begin }} {{ $end := sub $end $begin }}
{{- $.Scratch.Set "end" $end }} {{ $.Scratch.Set "end" $end }}
{{- end}} {{ end}}
{{- $end := $.Scratch.Get "end"}} {{ $end := $.Scratch.Get "end"}}
{{- $over := sub $tps $end }} {{ $over := sub $tps $end }}
{{- if lt $over 0}} {{ if lt $over 0}}
{{- $begin := add $begin $over}} {{ $begin := add $begin $over}}
{{- $.Scratch.Set "begin" $begin }} {{ $.Scratch.Set "begin" $begin }}
{{- end }} {{ end }}
{{- $begin := $.Scratch.Get "begin"}} {{ $begin := $.Scratch.Get "begin"}}
<nav class="pagination"> <nav class="pagination">
{{- if $pag.HasPrev }} {{ if $pag.HasPrev }}
<a class="extend prev" rel="prev" href="{{- $pag.Prev.URL }}"> <a class="extend prev" rel="prev" href="{{ $pag.Prev.URL }}">
<i class="fa fa-angle-left"></i> <i class="fa fa-angle-left"></i>
</a> </a>
{{- end }} {{ end }}
{{- range $p := $pag.Pagers }} {{ range $p := $pag.Pagers }}
{{- if and (ge $p.PageNumber $begin) (le $p.PageNumber $end) }} {{ if and (ge $p.PageNumber $begin) (le $p.PageNumber $end) }}
{{- if eq $p $pag }} {{ if eq $p $pag }}
<span class="page-number current">{{- $p.PageNumber }}</span> <span class="page-number current">{{ $p.PageNumber }}</span>
{{- else }} {{ else }}
<a class="page-number" href="{{- $p.URL }}">{{- $p.PageNumber }}</a> <a class="page-number" href="{{ $p.URL }}">{{ $p.PageNumber }}</a>
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- if $pag.HasNext }} {{ if $pag.HasNext }}
<a class="extend next" rel="next" href="{{- $pag.Next.URL }}"> <a class="extend next" rel="next" href="{{ $pag.Next.URL }}">
<i class="fa fa-angle-right"></i> <i class="fa fa-angle-right"></i>
</a> </a>
{{- end }} {{ end }}
</nav> </nav>

View File

@@ -1,6 +1,6 @@
<div class="post-block"> <div class="post-block">
<article itemscope itemtype="http://schema.org/Article" class="post-content" lang="{{ .Site.LauageCode }}"> <article itemscope itemtype="http://schema.org/Article" class="post-content" lang="{{ .Site.LauageCode }}">
{{- with .ctx }} {{ with .ctx }}
<link itemprop="mainEntityOfPage" href="{{ .Permalink }}"> <link itemprop="mainEntityOfPage" href="{{ .Permalink }}">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"> <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="image" content="{{ .Site.Params.avatar.url }}"> <meta itemprop="image" content="{{ .Site.Params.avatar.url }}">
@@ -14,7 +14,7 @@
<meta itemprop="name" content="{{ .Title }}"> <meta itemprop="name" content="{{ .Title }}">
<meta itemprop="description" content="{{ .Description | default .Summary }}"> <meta itemprop="description" content="{{ .Description | default .Summary }}">
</span> </span>
{{- end }} {{ end }}
<header class="post-header"> <header class="post-header">
{{ partial "post/header.html" (dict "ctx" .ctx "IsHome" .IsHome) }} {{ partial "post/header.html" (dict "ctx" .ctx "IsHome" .IsHome) }}
</header> </header>

View File

@@ -1,11 +1,11 @@
{{ with .ctx }} {{ with .ctx }}
{{- if $.IsHome }} {{ if $.IsHome }}
{{- if .Params.Expand }} {{ if .Params.Expand }}
{{ .Content }} {{ .Content }}
{{- else }} {{ else }}
{{ .Summary }} {{ .Summary }}
{{- end }} {{ end }}
{{- else }} {{ else }}
{{ .Content }} {{ .Content }}
{{- end }} {{ end }}
{{ end }} {{ end }}

View File

@@ -1,44 +1,44 @@
{{ with .ctx }} {{ with .ctx }}
{{- if $.IsHome }} {{ if $.IsHome }}
{{- if and .Site.Params.readMoreBtn (not .Params.Expand) }} {{ if and .Site.Params.readMoreBtn (not .Params.Expand) }}
<div class="post-button"> <div class="post-button">
<a class="btn" href="{{ .RelPermalink | relLangURL }}#more" rel="contents"> <a class="btn" href="{{ .RelPermalink | relLangURL }}#more" rel="contents">
{{ T "PostReadMore" }} &raquo; {{ T "PostMeta.more" }} &raquo;
</a> </a>
</div> </div>
{{- end }} {{ end }}
<div class="post-eof"></div> <div class="post-eof"></div>
{{- else }} {{ else }}
{{ partial "post/footer_meta/tags.html" . }} {{ partial "post/footer_meta/tags.html" . }}
{{- if and (not (isset .Params "share")) (not .Params.share) }} {{ if and (not (isset .Params "share")) (not .Params.share) }}
{{ partial "_thirdparty/share/addthis.html" . }} {{ partial "_thirdparty/share/addthis.html" . }}
{{- end }} {{ end }}
<hr/> <hr/>
{{ partial "post/footer_meta/reward.html" . }} {{ partial "post/footer_meta/reward.html" . }}
{{- if and (not (isset .Params "copyright")) (not .Params.copyright) }} {{ if and (not (isset .Params "copyright")) (not .Params.copyright) }}
{{ partial "post/footer_meta/copyright.html" . }} {{ partial "post/footer_meta/copyright.html" . }}
{{- end }} {{ end }}
{{- if and (not (isset .Params "followme")) (not .Params.followme) }} {{ if and (not (isset .Params "followme")) (not .Params.followme) }}
{{ partial "post/footer_meta/followme.html" . }} {{ partial "post/footer_meta/followme.html" . }}
{{- end }} {{ end }}
{{- if and (not (isset .Params "nav")) (not .Params.nav) }} {{ if and (not (isset .Params "nav")) (not .Params.nav) }}
<div class="post-nav"> <div class="post-nav">
<div class="post-nav-next post-nav-item"> <div class="post-nav-next post-nav-item">
{{- with .NextInSection }} {{ with .NextInSection }}
<a href="{{ .RelPermalink | relLangURL }}" rel="next" title="{{ .Title }}"> <a href="{{ .RelPermalink | relLangURL }}" rel="next" title="{{ .Title }}">
<i class="fa fa-chevron-left"></i> {{ .Title }} <i class="fa fa-chevron-left"></i> {{ .Title }}
</a> </a>
{{- end }} {{ end }}
</div> </div>
<div class="post-nav-prev post-nav-item"> <div class="post-nav-prev post-nav-item">
{{- with .PrevInSection }} {{ with .PrevInSection }}
<a href="{{ .RelPermalink | relLangURL }}" rel="prev" title="{{ .Title }}"> <a href="{{ .RelPermalink | relLangURL }}" rel="prev" title="{{ .Title }}">
{{ .Title }} {{ .Title }}
<i class="fa fa-chevron-right"></i> <i class="fa fa-chevron-right"></i>
</a> </a>
{{- end }} {{ end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,35 +1,35 @@
{{- if .Site.Params.creativeCommons.post }} {{ if .Site.Params.creativeCommons.post }}
<div class="post-copyright"> <div class="post-copyright">
<img src="/imgs/cc/cc.svg" width="75" height="75" align="right" /> <img src="/imgs/cc/cc.svg" width="75" height="75" align="right" alt="{{ T "Sidebar.label.ccommons" }}"/>
<ul> <ul>
<li class="post-copyright-title"> <li class="post-copyright-title">
<strong>{{ print (T "PostCRTitle") (T "SymbolColon") }}</strong> <strong>{{ print (T "PostCopyRight.title") (T "Symbol.colon") }}</strong>
{{ .Title }} {{ .Title }}
</li> </li>
<li class="post-copyright-author"> <li class="post-copyright-author">
{{- if isset .Params "author" }} {{ if isset .Params "author" }}
<strong>{{ print (T "PostCROriginAuthor") (T "SymbolColon") }} </strong> <strong>{{ print (T "PostCopyRight.origin.author") (T "Symbol.colon") }} </strong>
{{ .Params.Author }} {{ .Params.Author }}
{{- else }} {{ else }}
<strong>{{ print (T "PostCRAuthor") (T "SymbolColon") }} </strong> <strong>{{ print (T "PostCopyRight.author") (T "Symbol.colon") }} </strong>
{{ .Site.Params.author }} {{ .Site.Params.author }}
{{- end }} {{ end }}
</li> </li>
<li class="post-copyright-link"> <li class="post-copyright-link">
{{- if isset .Params "link" }} {{ if isset .Params "link" }}
<strong>{{ print (T "PostCROriginLink") (T "SymbolColon") }} </strong> <strong>{{ print (T "PostCopyRight.origin.link") (T "Symbol.colon") }} </strong>
<a target="_blank" href="{{ .Params.OriginLink }}" title="{{ .Title }}">{{ .Params.Link }}</a> <a target="_blank" href="{{ .Params.OriginLink }}" title="{{ .Title }}">{{ .Params.Link }}</a>
{{- else }} {{ else }}
<strong>{{ print (T "PostCRLink") (T "SymbolColon") }}</strong> <strong>{{ print (T "PostCopyRight.link") (T "Symbol.colon") }}</strong>
<a id="post-cr-link" href="{{ .Permalink | absLangURL }}" title="{{ .Title }}">{{ .Permalink | absLangURL }}</a> <a id="post-cr-link" href="{{ .Permalink | absLangURL }}" title="{{ .Title }}">{{ .Permalink | absLangURL }}</a>
{{- end }} {{ end }}
</li> </li>
<li class="post-copyright-license"> <li class="post-copyright-license">
<strong>{{ print (T "PostCRLicenseTitle") (T "SymbolColon") }} </strong> <strong>{{ print (T "PostCopyRight.license.title") (T "Symbol.colon") }} </strong>
{{- $ccText := .Site.Params.creativeCommons.license | upper }} {{ $ccText := .Site.Params.creativeCommons.license | upper }}
{{- $ccLink := printf "<a target='_blank' href='https://creativecommons.org/licenses/by-nc-sa/4.0/deed.%s'>%s</a>" (substr .Site.LanguageCode 0 2) $ccText }} {{ $ccLink := printf "<a target='_blank' href='https://creativecommons.org/licenses/by-nc-sa/4.0/deed.%s'>%s</a>" (substr .Site.LanguageCode 0 2) $ccText }}
{{ printf (T "PostCRLicenseContent") $ccLink | safeHTML }} {{ printf (T "PostCopyRight.license.content") $ccLink | safeHTML }}
</li> </li>
</ul> </ul>
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,12 +1,12 @@
{{- with .Site.Params.followMe }} {{ with .Site.Params.followMe }}
<div class="followme"> <div class="followme">
<span>{{ T "PostFollowMe" }}</span> <span>{{ T "PostFollowMe" }}</span>
<div class="social-list"> <div class="social-list">
{{ range . }} {{ range . }}
{{- $vals := split . "||" }} {{ $vals := split . "||" }}
{{- $name := trim (index $vals 0) " " }} {{ $name := trim (index $vals 0) " " }}
{{- $url := trim (index $vals 1) " " }} {{ $url := trim (index $vals 1) " " }}
{{- $icon := trim (index $vals 2) " " }} {{ $icon := trim (index $vals 2) " " }}
<div class="social-item"> <div class="social-item">
<a target="_blank" class="social-link" href="{{ $url }}"> <a target="_blank" class="social-link" href="{{ $url }}">
<span class="icon"> <span class="icon">
@@ -15,7 +15,7 @@
<span class="label">{{ $name }}</span> <span class="label">{{ $name }}</span>
</a> </a>
</div> </div>
{{- end }} {{ end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,21 +1,19 @@
{{- with .Site.Params.rewardSets }} {{ with .Site.Params.rewardSets }}
{{- if .enable }} {{ if .enable }}
<div class="reward-container"> <div class="reward-container">
<div>{{- .comment | safeHTML -}}</div> <div>{{ .comment | safeHTML }}</div>
<button> <button>
{{- T "RewardDonate" -}} {{ T "Reward.title" }}
</button> </button>
<div class="post-reward"> <div class="post-reward">
{{- range $name,$img := .reward }} {{ range $name,$img := .reward }}
{{- $fw := substr $name 0 1 }} {{ $payName := T (printf "Reward.%s" $name) }}
{{- $pay := replace $name $fw ($fw | upper) 1 }} <div class="post-reward-item">
{{- $payName := T (printf "Reward%s" $pay) }} <img src="/imgs/img-lazy-loading.gif" data-src="{{ $img }}" alt="{{ $.Site.Params.author }} - {{ $payName }}">
<div class="post-reward-item"> <span>{{ $payName }}</span>
<img src="/imgs/img-lazy-loading.gif" data-src="{{ $img }}" alt="{{ $.Site.Params.author }} - {{ $payName }}"> </div>
<span>{{ $payName }}</span> {{ end }}
</div>
{{- end }}
</div> </div>
</div> </div>
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,9 +1,9 @@
{{- with .Params.tags }} {{ with .Params.tags }}
<div class="post-tags"> <div class="post-tags">
{{ range . }} {{ range . }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize | lower }}"> <a href="{{ "/tags/" | relLangURL }}{{ . | urlize | lower }}">
{{ . }} {{ . }}
</a> </a>
{{- end }} {{ end }}
</div> </div>
{{- end }} {{ end }}

View File

@@ -1,50 +1,49 @@
{{ with .ctx }} {{ with .ctx }}
{{- if $.IsHome }} <h2 {{ else }} <h1 {{ end -}} class="post-title" itemprop="name headline"> {{ if $.IsHome }} <h2 {{ else }} <h1 {{ end }} class="post-title" itemprop="name headline">
{{- if and .Weight (gt .Weight 0) }} {{ if and .Weight (gt .Weight 0) }}
<span class="post-sticky-flag" title="{{ T "PostStickyTitle" }}"> <span class="post-sticky-flag" title="{{ T "PostMeta.sticky" }}">
<i class="fa fa-thumbtack"></i> <i class="fa fa-thumbtack"></i>
</span> </span>
{{- end }} {{ end }}
{{- if $.IsHome }} {{ if $.IsHome }}
{{- if and (isset .Params "extlink") (ne .Params.Extlink "") }} {{ if and (isset .Params "extlink") (ne .Params.Extlink "") }}
<a href="{{ .Params.Extlink }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-title-link post-title-link-external"> <a href="{{ .Params.Extlink }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-title-link post-title-link-external">
{{ .Title }} {{ .Title }}
<i class="fa fa-external-link-alt"></i> <i class="fa fa-external-link-alt"></i>
</a> </a>
{{- else }} {{ else }}
<a href="{{ .RelPermalink | relLangURL }}" itemprop="url" class="post-title-link">{{ .Title }}</a> <a href="{{ .RelPermalink | relLangURL }}" itemprop="url" class="post-title-link">{{ .Title }}</a>
{{- end }} {{ end }}
{{- else }} {{ else }}
{{- .Title }} {{ .Title }}
{{- if .Site.Params.postEdit.enable }} {{ if .Site.Params.postEdit.enable }}
{{- $editURL := printf "%s%s" .Site.Params.postEdit.url (path.Clean .File.Path) }} {{ $editURL := printf "%s%s" .Site.Params.postEdit.url (path.Clean .File.Path) }}
<a href="{{ $editURL }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-edit-link" title="{{ T "PostEditTitle" }}"><i class="fa fa-pen-nib"></i></a> <a href="{{ $editURL }}" rel="noopener external nofollow noreferrer" target="_blank" class="exturl post-edit-link" title="{{ T "PostMeta.edit" }}"><i class="fa fa-pen-nib"></i></a>
{{- end }} {{ end }}
{{- end }} {{ end }}
{{- if $.IsHome }} </h2> {{ else }} </h1> {{ end -}} {{ if $.IsHome }} </h2> {{ else }} </h1> {{ end }}
{{ $isComment := and (.Scratch.Get "isComment") .Site.Params.postMeta.comments.enable }}
<div class="post-meta-container"> <div class="post-meta-container">
<div class="post-meta-items"> <div class="post-meta-items">
{{ partial "post/header_meta/created_date.html" . }} {{ partial "post/header_meta/created_date.html" . }}
{{ partial "post/header_meta/update_date.html" . }} {{ partial "post/header_meta/update_date.html" . }}
{{ partial "post/header_meta/categories.html" . }} {{ partial "post/header_meta/categories.html" . }}
{{ if and $.IsHome (not (isset .Params "extlink")) }} {{ if and $.IsHome (not (isset .Params "extlink")) }}
<div class="post-meta-items"> {{ if and .Site.Params.postMeta.views.enable (ne .Site.Params.postMeta.views.plugin "busuanzi") }}
{{ if and (eq .Site.Params.analytis.busuanzi.enable false) .Site.Params.waline.pageView }}
{{ partial "post/header_meta/views.html" . }} {{ partial "post/header_meta/views.html" . }}
{{ end }} {{ end }}
{{ if and (.Scratch.Get "isComment") .Site.Params.waline.comment }} {{ if $isComment }}
{{ partial "post/header_meta/comments.html" . }} {{ partial "post/header_meta/comments.html" . }}
{{ end }} {{ end }}
</div>
{{ end }} {{ end }}
</div> </div>
{{- if not $.IsHome }} {{ if not $.IsHome }}
<div class="post-meta-items"> <div class="post-meta-items">
{{ partial "post/header_meta/words.html" . }} {{ partial "post/header_meta/words.html" . }}
{{ partial "post/header_meta/readtime.html" . }} {{ partial "post/header_meta/readtime.html" . }}
{{ partial "post/header_meta/views.html" . }} {{ partial "post/header_meta/views.html" . }}
{{ if and (.Scratch.Get "isComment") .Site.Params.waline.comment }} {{ if $isComment }}
{{ partial "post/header_meta/comments.html" . }} {{ partial "post/header_meta/comments.html" . }}
{{ end }} {{ end }}
</div> </div>
{{ end }} {{ end }}

View File

@@ -1,17 +1,17 @@
{{- if .Site.Params.postMeta.categories }} {{ if .Site.Params.postMeta.categories }}
{{- with .Params.categories }} {{ with .Params.categories }}
<span class="post-meta-item"> <span class="post-meta-item">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-folder-open"></i> <i class="fas fa-solid fa-folder-open"></i>
</span>
<span class="post-meta-item-text" title="{{ T "PostMeta.category" }}">
{{ print (T "PostMeta.category") (T "Symbol.colon") }}
</span> </span>
<span class="post-meta-item-text">{{- print (T "PostCategory") (T "SymbolColon") -}}</span>
{{- range (first 1 .) }}
<span itemprop="about" itemscope itemtype="http://schema.org/Thing"> <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
<a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}" itemprop="url" rel="index"> <a href="{{ "/categories/" | relLangURL }}{{ (index (last 1 .) 0) | urlize }}" itemprop="url" rel="index">
<span itemprop="name">{{- . -}}</span> <span itemprop="name">{{ delimit . "/" }}</span>
</a> </a>
</span> </span>
{{- end }}
</span> </span>
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,11 +1,11 @@
<span class="post-meta-item" title="{{ T "PostComments" }}"> <span class="post-meta-item" title="{{ T "PostComments" }}">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-comments"></i> <i class="fas fa-solid fa-comments"></i>
</span> </span>
<span class="post-meta-item-text"> <span class="post-meta-item-text" title="{{ T "PostMeta.comments" }}">
{{ print (T "PostComments") (T "SymbolColon") }} {{ print (T "PostMeta.comments") (T "Symbol.colon") }}
</span> </span>
<span {{ with .Site.Params.waline.comment }}class="waline-comment-count"{{end}} data-path="{{ .RelPermalink | relLangURL }}"> <span id="comments-count" {{ if eq .Site.Params.postMeta.comments.plugin "waline" }}class="waline-comment-count"{{end}} data-path="{{ .RelPermalink | relLangURL }}">
<i class="fa fa-sync fa-spin"></i> <i class="fa fa-sync fa-spin"></i>
</span> </span>
</span> </span>

View File

@@ -1,13 +1,15 @@
{{- if .Site.Params.postMeta.created }} {{ if .Site.Params.postMeta.created }}
{{ $timeF := .Site.Params.timeFormat }} {{ $timeF := .Site.Params.timeFormat }}
{{ $createdTime := (.Date.Format $timeF) | default (.Date.Format $timeF) }} {{ $createdTime := (.Date.Format $timeF) | default (.Date.Format $timeF) }}
<span class="post-meta-item"> <span class="post-meta-item">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-calendar"></i> <i class="fas fa-solid fa-calendar"></i>
</span> </span>
<span class="post-meta-item-text">{{- print (T "PostPublishDate") (T "SymbolColon") -}}</span> <span class="post-meta-item-text" title="{{ T "PostMeta.publish.date" }}">
<time title="{{ print (T "PostPublishDate") (T "SymbolColon") }}{{ .Date }}" itemprop="dateCreated datePublished" datetime="{{ .Date }}"> {{ print (T "PostMeta.publish.date") (T "Symbol.colon") }}
{{- .Date.Format .Site.Params.dateFormat -}} </span>
<time title="{{ print (T "PostMeta.publish.time") (T "Symbol.colon") }}{{ .Date }}" itemprop="dateCreated datePublished" datetime="{{ .Date }}">
{{ .Date.Format .Site.Params.dateFormat }}
</time> </time>
</span> </span>
{{- end }} {{ end }}

View File

@@ -1,9 +1,9 @@
{{- if .Site.Params.postMeta.readTime }} {{ if .Site.Params.postMeta.readTime }}
<span class="post-meta-item" title="{{ T "PostReading" }}"> <span class="post-meta-item" title="{{ T "PostMeta.reading.title" }}">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-clock"></i> <i class="fas fa-solid fa-clock"></i>
</span> </span>
<span class="post-meta-item-text">{{- print (T "PostReading") (T "SymbolColon") -}}&asymp;</span> <span class="post-meta-item-text">{{ print (T "PostMeta.reading.title") (T "Symbol.colon") }}&asymp;</span>
<span>{{- T "PostReadTime" . -}}</span> <span>{{ T "PostMeta.reading.time" . }}</span>
</span> </span>
{{- end }} {{ end }}

View File

@@ -1,12 +1,14 @@
{{- if and .Site.Params.postMeta.updated.enable .Site.Params.postMeta.updated.anotherDay }} {{ if and .Site.Params.postMeta.updated.enable .Site.Params.postMeta.updated.anotherDay }}
{{- if and .Lastmod (gt .Lastmod .Date) }} {{ if and .Lastmod (gt .Lastmod .Date) }}
{{ $modTime := .Lastmod.Format .Site.Params.timeFormat }} {{ $modTime := .Lastmod.Format .Site.Params.timeFormat }}
<span class="post-meta-item"> <span class="post-meta-item">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-calendar-check"></i> <i class="fas fa-solid fa-calendar-check"></i>
</span> </span>
<span class="post-meta-item-text">{{- print (T "PostLastModDate") (T "SymbolColon") -}}</span> <span class="post-meta-item-text" title="{{ T "PostMeta.lastmod.date" }}">
<time title="{{ print (T "PostLastModTime") (T "SymbolColon") }}{{ $modTime }}" itemprop="dateModified" datetime="{{ $modTime }}">{{- .Lastmod.Format .Site.Params.dateFormat -}}</time> {{ print (T "PostMeta.lastmod.date") (T "Symbol.colon") }}
</span>
<time title="{{ print (T "PostMeta.lastmod.time") (T "Symbol.colon") }}{{ $modTime }}" itemprop="dateModified" datetime="{{ $modTime }}">{{ .Lastmod.Format .Site.Params.dateFormat }}</time>
</span> </span>
{{- end }} {{ end }}
{{- end }} {{ end }}

View File

@@ -1,18 +1,19 @@
{{- $pageViewId := "" }} {{ if .Site.Params.postMeta.views.enable }}
{{- if .Site.Params.leancloudVisitors.enable }} {{ $pageViewId := "" }}
{{- $pageViewId = "leancloud-visitors-count" }} {{ if eq .Site.Params.postMeta.views.plugin "leancloud" }}
{{- end }} {{ $pageViewId = "leancloud-visitors-count" }}
{{- if .Site.Params.analytics.busuanzi.postViews }} {{ else if eq .Site.Params.postMeta.views.plugin "busuanzi" }}
{{- $pageViewId = "busuanzi_value_page_pv" }} {{ $pageViewId = "busuanzi_value_page_pv" }}
{{- end }} {{ end }}
<span class="post-meta-item" title="{{ T "PostViews" }}"> <span class="post-meta-item" title="{{ T "PostMeta.views" }}">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-eye"></i> <i class="fas fa-solid fa-eye"></i>
</span> </span>
<span class="post-meta-item-text"> <span class="post-meta-item-text">
{{ print (T "PostViews") (T "SymbolColon") }} {{ print (T "PostMeta.views") (T "Symbol.colon") }}
</span> </span>
<span {{ with $pageViewId }}id="{{ . }}"{{end}} {{ with .Site.Params.waline.pageView }}class="waline-pageview-count"{{end}} data-path="{{ .RelPermalink | relLangURL }}"> <span {{ with $pageViewId }}id="{{ . }}"{{end}} {{ if eq .Site.Params.postMeta.views.plugin "waline" }}class="waline-pageview-count"{{end}} data-path="{{ .RelPermalink | relLangURL }}">
<i class="fa fa-sync fa-spin"></i> <i class="fa fa-sync fa-spin"></i>
</span> </span>
</span> </span>
{{ end }}

View File

@@ -1,8 +1,9 @@
{{- if .Site.Params.postMeta.wordCount }} {{ if .Site.Params.postMeta.wordCount }}
<span class="post-meta-item" title="{{ T "PostWords" }}"> <span class="post-meta-item" title="{{ T "PostMeta.words.title" }}">
<span class="post-meta-item-icon"> <span class="post-meta-item-icon">
<i class="far fa-file-word"></i> <i class="fas fa-solid fa-file-word"></i>
</span> </span>
<span class="post-meta-item-text">{{- print (T "PostWords") (T "SymbolColon") -}}</span><span>{{- T "PostWordCount" . -}}</span> <span class="post-meta-item-text">{{ print (T "PostMeta.words.title") (T "Symbol.colon") }}</span>
<span>{{ T "PostMeta.words.count" . }}</span>
</span> </span>
{{- end }} {{ end }}

Some files were not shown because too many files have changed in this diff Show More