Merge branch 'release'
This commit is contained in:
commit
4a0c767064
48
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
48
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
name: 错误报告(Bug Report)
|
||||
about: 没有达到预期的效果(Something isn't working as expected)
|
||||
labels: bug
|
||||
---
|
||||
|
||||
请按照此 Issue 模版提供相关信息,例如源码仓库、网站链接和屏幕截图,这将有助于我们进行调查。
|
||||
(Please follow this Issue template to provide relevant information, such as source code repository, website URL and screenshots, which will help us investigate.)
|
||||
|
||||
|
||||
## 问题自检列表 (Issue Checklist)
|
||||
|
||||
> 请确认如下情况已检查,并将 [ ] 换成 [x] 来选择 (Change [ ] to [x] to selected which your could make sure)
|
||||
|
||||
- [ ] 已使用 Hugo Extended 0.86.0 或更高的版本 (I'm using Hugo Extended version 0.86.0 or later)
|
||||
- [ ] 已使用 Hugo NexT 4.0 或更高的版本 (I'm using Hugo NexT version 4.0 or later)
|
||||
- [ ] 已阅读 [Hugo 故障排除](https://gohugo.io/troubleshooting/)并尝试修复无果 (I had already read the [Troubleshooting page of Hugo](https://gohugo.io/troubleshooting/))
|
||||
- [ ] 已搜索过当前所有[已知问题](https://github.com/hugo-next/hugo-theme-next/issues)和[讨论区](https://github.com/hugo-next/hugo-theme-next/discussions/categories/q-a) ,但没有找到帮助 (I had already searched for current [Issues](https://github.com/hugo-next/hugo-theme-next/issues) and [Q & A](https://github.com/hugo-next/hugo-theme-next/discussions/categories/q-a), which does not help me.)
|
||||
|
||||
***
|
||||
|
||||
## 预期行为 (Expected behavior)
|
||||
|
||||
> 请描述你想实现的预期效果 (Please describe the expected behavior what you want)
|
||||
|
||||
|
||||
## 实际行为 (Actual behavior)
|
||||
|
||||
> 请同时提供网站链接、屏幕截图和源码地址 (Please provide your site links, screenshots and code repository)
|
||||
|
||||
|
||||
## 问题重现步骤 (Steps to reproduce the behavior)
|
||||
|
||||
|
||||
|
||||
## 环境信息 (Environment Information)
|
||||
|
||||
### 主题配置(Configuration)
|
||||
|
||||
> 提供主题 `config.yaml` 中修改过的部分内容 (Paste ONLY CHANGED CONFIGURATION from `config.yaml`)
|
||||
|
||||
```yaml
|
||||
|
||||
```
|
||||
|
||||
## 其他有用信息 (Other Information)
|
||||
|
||||
> 例如:操作系统、浏览器等 (e.g. Browser, System)
|
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: GitHub Discussions
|
||||
url: https://github.com/hugo-next/hugo-theme-next/discussions/categories/q-a
|
||||
about: 请在此处提问或回答问题(Please ask and answer questions here)
|
15
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
15
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
name: 新功能请求(Feature Request)
|
||||
about: Suggest an idea for this project
|
||||
labels: feature request
|
||||
---
|
||||
|
||||
请按照此新功能模版提供相关信息,如详细的功能描述或同类效果屏幕截图,这将有助于我们进行调查。
|
||||
(Please follow this new feature template to provide relevant information, such as detail description for feature or some screenshots, which will help us investigate.)
|
||||
|
||||
|
||||
## 新功能描述 (New feature description)
|
||||
|
||||
|
||||
## 效果参考截图 (Screenshots if it possible)
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@ -1,6 +1,6 @@
|
||||
# Ignore files in Hugo NexT theme
|
||||
|
||||
.hugo_build.lock
|
||||
|
||||
exampleSite/public
|
||||
exampleSite/resources
|
||||
exampleSite/
|
||||
!exampleSite/content
|
||||
!exampleSite/start.sh
|
||||
!exampleSite/config.yaml
|
119
README.md
119
README.md
@ -1,16 +1,119 @@
|
||||
# Hugo theme of NexT
|
||||
[中文](README.zh.md) | [English](#)
|
||||
|
||||

|
||||
<a title="Hugo NexT Website" href="https://preview.hugo-next.eu.org">
|
||||
<img align="center" alt="NexT logo" width="266" src="https://lisenhui.gitee.io/imgs/hugo-next/logo/hugo-next-primary.png">
|
||||
</a>
|
||||
|
||||
Start a new journey for Hugo's theme of NexT.
|
||||
## Hugo NexT
|
||||
|
||||
# Our Vision
|
||||
«Hugo NexT» is a high quality elegant [Hugo](https://gohugo.io) theme. Migrate it from `Hexo` engine themes which name is [`NexT`](https://github.com/next-theme/hexo-theme-next), keep all kind page layout designs and 4 different shcemes, start new journey with :heart: and hope you would like it.
|
||||
|
||||
Make `NexT` theme is easily & powerful.
|
||||
> All page designs & configuration compatibility with Hexo NexT, it's very easy migrate your site from Hexo to Hugo and enjoy yourself.
|
||||
|
||||
# Preview
|
||||
[](https://gitter.im/hugo-next/community) [](https://github.com/gohugoio/hugo/releases/latest) [](https://github.com/hugo-next/hugo-theme-next) [](https://github.com/hugo-next/hugo-theme-next/find/main) [](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE)
|
||||
|
||||
## 4 Scheme
|
||||
|
||||
* :heart_decoration: Muse
|
||||
* :six_pointed_star: Mist
|
||||
* :pisces: Pisces
|
||||
* :gemini: Gemini (**default**)
|
||||
|
||||
## Live Preview
|
||||
|
||||
| Environment | :gemini: (**Default**) | :heart_decoration: | :six_pointed_star: | :pisces: | Status |
|
||||
| :---: | :---: | :---: | :---: | :---: | :---: |
|
||||
| Preliminary | [Gemini](https://hugo-next-dev.vercel.app/) | [Muse](https://hugo-next-dev.vercel.app/muse/) | [Mist](https://hugo-next-dev.vercel.app/mist/) | [Pisces](https://hugo-next-dev.vercel.app/pisces/) |  |
|
||||
| Production | [Gemini](https://hugo-next-prod.vercel.app/) | [Muse](https://hugo-next-prod.vercel.app/muse/) | [Mist](https://hugo-next-prod.vercel.app/mist/) | [Pisces](https://hugo-next-prod.vercel.app/pisces/) |  |
|
||||
| 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/) |  |
|
||||
| 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/) |  |
|
||||
|
||||
> 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.
|
||||
|
||||
## Quick Start
|
||||
|
||||
Before use `Hugo NexT` theme, please make sure installed `Git` & `Hugo Extened` software in your PC, then use `submodule` to lead into the theme, see below commands:
|
||||
|
||||
```shell
|
||||
$ hugo new site hugo-next-exmaple
|
||||
$ cd hugo-next-exmaple
|
||||
$ git init
|
||||
$ hugo submodule add https://github.com/hugo-next/hugo-theme-next.git themes/hugo-theme-next
|
||||
$ cp -r themes/hugo-theme-next/exampleSite/* .
|
||||
$ rm -rf config.toml
|
||||
$ hugo server
|
||||
```
|
||||
|
||||
Done that input adrress http://127.0.0.1:1313/ on browser will see the effect & good luck for you! :tada::tada::tada:
|
||||
|
||||
## 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:
|
||||
|
||||
```sh
|
||||
$ hugo new posts/hello-world.md
|
||||
```
|
||||
|
||||
Descript front matter in post as below:
|
||||
|
||||
|
||||
```yml
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
description: "{{ .Name }}"
|
||||
keywords: "{{replace .Name "-" ","}}"
|
||||
|
||||
date: {{ .Date }}
|
||||
lastmod: {{ .Date }}
|
||||
|
||||
categories:
|
||||
-
|
||||
tags:
|
||||
-
|
||||
-
|
||||
|
||||
# Post's origin author name
|
||||
#author:
|
||||
# Post's origin link URL
|
||||
#link:
|
||||
# Image source link that will use in open graph and twitter card
|
||||
#imgs:
|
||||
# Expand content on the home page
|
||||
#expand: true
|
||||
# It's means that will redirecting to external links
|
||||
#extlink:
|
||||
# Switch to enabled or disabled comment plugins in this post
|
||||
#comment:
|
||||
# enable: false
|
||||
# Enable table of content
|
||||
#toc: false
|
||||
# Absolute link for visit
|
||||
#url: "{{ lower .Name }}.html"
|
||||
# Sticky post set-top in home page and the smaller nubmer will more forward.
|
||||
#weight: 1
|
||||
---
|
||||
```
|
||||
|
||||
## Feedback
|
||||
|
||||
- Join us [GitHub Discussions](https://github.com/hugo-next/hugo-theme-next/discussions) or [Gitter](https://gitter.im/hugo-next/community) to chat :beers:
|
||||
- [GitHub Issues](https://github.com/hugo-next/hugo-theme-next/issues/new?labels=Bug&template=bug-report.md) submit a new bug :bug:
|
||||
- [GitHub Feature](https://github.com/hugo-next/hugo-theme-next/issues/new?labels=Feature+Request&template=feature-request.md) tell me your ideas :sparkles:
|
||||
|
||||
## Join us
|
||||
|
||||
All features development progress and new request in [Hugo NexT V4 Roadmap](https://github.com/hugo-next/hugo-theme-next/issues/9), welcome to join us and compelete it together.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](LICENSE)
|
||||
|
||||
## Thanks
|
||||
|
||||
That's my hobby to develop `Hugo NexT` theme, thanks all people who gived the donate, and let we follow it growth up.
|
||||
|
||||
List of Donors(Order by Date):
|
||||
|
||||
| Donation time | Donors | Donation mode | Donation content | Message |
|
||||
| ------- | ------ | ------ | ---- | ---- |
|
||||
| 2021.12.21 | z*y | wechat pay | RMB 18.88 | / |
|
||||
| 2022.05.08 | *泉 | wechat pay | RMB 6.60 | Good luck with next develop. |
|
125
README.zh.md
Normal file
125
README.zh.md
Normal file
@ -0,0 +1,125 @@
|
||||
[中文](#) | [English](README.md)
|
||||
|
||||
<a title="Hugo NexT 站点" href="https://preview.hugo-next.eu.org">
|
||||
<img align="center" alt="NexT logo" width="266" src="https://lisenhui.gitee.io/imgs/hugo-next/logo/hugo-next-primary.png">
|
||||
</a>
|
||||
|
||||
## Hugo NexT
|
||||
|
||||
«Hugo NexT» 是一款高质量且优雅的 [Hugo](https://gohugo.io) 主题,从原来 `Hexo` 引擎的 [`NexT`](https://github.com/next-theme/hexo-theme-next) 主题中移植过来,继续保留其经典的设计和 4 种不同页面布局模式,一切因 :heart: 重新出发愿你也能喜欢。
|
||||
|
||||
> 本主题的所有页面设计和配置项都与原来 `Hexo` 引擎的 `NexT` 主题保持了良好的兼容性,可以非常平滑的从 `Hexo` 迁移至 `Hugo` 引擎,欢迎大家使用并反馈。
|
||||
|
||||
[](https://gitter.im/hugo-next/community) [](https://github.com/gohugoio/hugo/releases/latest) [](https://github.com/hugo-next/hugo-theme-next) [](https://github.com/hugo-next/hugo-theme-next/find/main) [](https://github.com/hugo-next/hugo-theme-next/blob/main/LICENSE)
|
||||
|
||||
## 4 种页面模式
|
||||
|
||||
* :heart_decoration: 冥想 (Muse)
|
||||
* :six_pointed_star: 迷雾 (Mist)
|
||||
* :pisces: 双鱼座 (Pisces)
|
||||
* :gemini: 双子座 (Gemini) (**默认**)
|
||||
|
||||
## 在线预览
|
||||
|
||||
| 环境 | :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/) |  |
|
||||
| 正式版本 | [双子座](https://hugo-next.eu.org/) | [冥想](https://hugo-next.eu.org/muse/) | [迷雾](https://hugo-next.eu.org/mist/) | [双鱼座](https://hugo-next.eu.org/pisces/) |  |
|
||||
|
||||
> 开发版本: 所有的新功能开发都会在此第一时间发布预览
|
||||
> 正式版本: 只有测试稳定且符合要求的功能才会正式发布
|
||||
|
||||
## 快速开始
|
||||
|
||||
在使用 `Hugo NexT` 主题之前,请确认你的电脑上已经安装 `Git` 和 `Hugo Extened` 两款软件,然后通过 `submodule` 模式引用本主题,参考如下命令:
|
||||
|
||||
```shell
|
||||
$ hugo new site hugo-next-exmaple
|
||||
$ cd hugo-next-exmaple
|
||||
$ git init
|
||||
$ hugo submodule add https://github.com/hugo-next/hugo-theme-next.git themes/hugo-theme-next
|
||||
$ cp -r themes/hugo-theme-next/exampleSite/* .
|
||||
$ rm -rf config.toml
|
||||
$ hugo server
|
||||
```
|
||||
打开浏览器,在地址栏输入 http://127.0.0.1:1313/ 查看主题效果,祝你好运!:tada::tada::tada:
|
||||
|
||||
> 本主题的代码同时也同步到 `Gitee` 仓库,在国内环境可切换用 [https://gitee.com/hugo-next/hugo-theme-next.git](https://gitee.com/hugo-next/hugo-theme-next.git) 镜像速度更快,也更稳定。
|
||||
|
||||
## 发表新文章
|
||||
|
||||
主题已经配置了默认的文章模板,建议使用如下 Hugo 命令快速创建新的文章:
|
||||
|
||||
```sh
|
||||
$ hugo new posts/hello-world.md
|
||||
```
|
||||
|
||||
关于文章头部的那些标记作用的说明参考如下:
|
||||
|
||||
|
||||
```yml
|
||||
---
|
||||
# 文章标题
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
# 文章内容摘要
|
||||
description: "{{ .Name }}"
|
||||
# 文章内容关键字
|
||||
keywords: "{{replace .Name "-" ","}}"
|
||||
# 发表日期
|
||||
date: {{ .Date }}
|
||||
# 最后修改日期
|
||||
lastmod: {{ .Date }}
|
||||
# 分类
|
||||
categories:
|
||||
-
|
||||
# 标签
|
||||
tags:
|
||||
-
|
||||
-
|
||||
|
||||
# 原文作者
|
||||
#author:
|
||||
# 原文链接
|
||||
#link:
|
||||
# 图片链接,用在open graph和twitter卡片上
|
||||
#imgs:
|
||||
# 在首页展开内容
|
||||
#expand: true
|
||||
# 外部链接地址,访问时直接跳转
|
||||
#extlink:
|
||||
# 在当前页面开启或关闭评论功能
|
||||
#comment:
|
||||
# enable: false
|
||||
# 开启文章目录功能
|
||||
#toc: false
|
||||
# 绝对访问路径
|
||||
#url: "{{ lower .Name }}.html"
|
||||
# 开启文章置顶,数字越小越靠前
|
||||
#weight: 1
|
||||
---
|
||||
```
|
||||
|
||||
## 使用反馈
|
||||
|
||||
- 加入 [GitHub Discussions](https://github.com/hugo-next/hugo-theme-next/discussions) 或 [Gitter](https://gitter.im/hugo-next/community) 在线讨论 :beers:
|
||||
- [GitHub Issues](https://github.com/hugo-next/hugo-theme-next/issues/new?labels=Bug&template=bug-report.md) 提交错误报告 :bug:
|
||||
- [GitHub Feature](https://github.com/hugo-next/hugo-theme-next/issues/new?labels=Feature+Request&template=feature-request.md) 表新功能的想法 :sparkles:
|
||||
|
||||
## 欢迎加入
|
||||
|
||||
关于本主题的开发进度和后续的发展路线图,可访问 [Hugo NexT V4 Roadmap](https://github.com/hugo-next/hugo-theme-next/issues/9) 查看详情,也欢迎大家参与一起来完善。
|
||||
|
||||
## 许可证
|
||||
|
||||
[MIT License](LICENSE)
|
||||
|
||||
## 致谢
|
||||
|
||||
开发 `Hugo NexT` 主题原本是个人的业余爱好,但没想到网友们这么的热情,感谢有你们的支持,让我们一起来见证它的成长。
|
||||
|
||||
以下是捐助名单列表(按时间顺序):
|
||||
|
||||
| 捐助时间 | 捐助者 | 捐助方式 | 捐助内容 | 留言 |
|
||||
| :-------: | ------ | ------ | ---- | ---- |
|
||||
| 2021.12.21 | z*y | 微信支付 | ¥18.88 | / |
|
||||
| 2022.05.08 | *泉 | 微信支付 | ¥6.60 | 祝开发next顺利 |
|
@ -1,5 +1,7 @@
|
||||
@if $utterances_enable {
|
||||
.utterances {
|
||||
max-width: unset;
|
||||
}
|
||||
}
|
||||
// TODO maybe use for next time
|
||||
// @if $utterances_enable {
|
||||
// .utterances {
|
||||
// max-width: unset;
|
||||
// min-height: 300px;
|
||||
// }
|
||||
// }
|
||||
|
@ -21,6 +21,14 @@
|
||||
@include flex-column();
|
||||
@include main-container();
|
||||
|
||||
@include mobile() {
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
|
||||
@include mobile-small() {
|
||||
font-size: $font-size-smallest;
|
||||
}
|
||||
|
||||
@if $footer_vendors_enable {
|
||||
.vendors-list {
|
||||
a {
|
||||
@ -30,6 +38,19 @@
|
||||
img {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
$footer_vendors_imgs_len: length($footer_vendors_imgs_width);
|
||||
@if ($footer_vendors_imgs_len>0) {
|
||||
@for $i from 1 through $footer_vendors_imgs_len {
|
||||
a:nth-child(#{$i}) img {
|
||||
width: #{nth($footer_vendors_imgs_width, $i)}px;
|
||||
|
||||
@include mobile() {
|
||||
width: #{nth($footer_vendors_imgs_width, $i)-10}px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -40,24 +61,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes icon-animate {
|
||||
0%, 100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
10%, 30% {
|
||||
transform: scale(.9);
|
||||
}
|
||||
|
||||
20%, 40%, 60%, 80% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
50%, 70% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
.languages {
|
||||
display: inline-block;
|
||||
font-size: $font-size-large;
|
||||
@ -83,7 +86,7 @@
|
||||
margin: 0 5px;
|
||||
|
||||
@if $footer_icon_animated {
|
||||
animation: icon-animate 1.33s ease-in-out infinite;
|
||||
animation: beat 1.33s ease-in-out infinite;
|
||||
}
|
||||
}
|
||||
|
||||
|
17
assets/css/_common/scaffolding/animation/icon.scss
Normal file
17
assets/css/_common/scaffolding/animation/icon.scss
Normal file
@ -0,0 +1,17 @@
|
||||
@keyframes beat {
|
||||
0%, 100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
10%, 30% {
|
||||
transform: scale(.9);
|
||||
}
|
||||
|
||||
20%, 40%, 60%, 80% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
50%, 70% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
3
assets/css/_common/scaffolding/animation/index.scss
Normal file
3
assets/css/_common/scaffolding/animation/index.scss
Normal file
@ -0,0 +1,3 @@
|
||||
@import 'icon';
|
||||
@import 'show';
|
||||
@import 'hover';
|
65
assets/css/_common/scaffolding/animation/show.scss
Normal file
65
assets/css/_common/scaffolding/animation/show.scss
Normal file
@ -0,0 +1,65 @@
|
||||
// tabshow animation
|
||||
@-moz-keyframes tabshow {
|
||||
0% {
|
||||
-webkit-transform: translateY(15px);
|
||||
-moz-transform: translateY(15px);
|
||||
-o-transform: translateY(15px);
|
||||
-ms-transform: translateY(15px);
|
||||
transform: translateY(15px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
-moz-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes tabshow {
|
||||
0% {
|
||||
-webkit-transform: translateY(15px);
|
||||
-moz-transform: translateY(15px);
|
||||
-o-transform: translateY(15px);
|
||||
-ms-transform: translateY(15px);
|
||||
transform: translateY(15px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
-moz-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
@-o-keyframes tabshow {
|
||||
0% {
|
||||
-webkit-transform: translateY(15px);
|
||||
-moz-transform: translateY(15px);
|
||||
-o-transform: translateY(15px);
|
||||
-ms-transform: translateY(15px);
|
||||
transform: translateY(15px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
-moz-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
@keyframes tabshow {
|
||||
0% {
|
||||
-webkit-transform: translateY(15px);
|
||||
-moz-transform: translateY(15px);
|
||||
-o-transform: translateY(15px);
|
||||
-ms-transform: translateY(15px);
|
||||
transform: translateY(15px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateY(0);
|
||||
-moz-transform: translateY(0);
|
||||
-o-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
@ -43,8 +43,32 @@
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
min-height: 300px;
|
||||
overflow: hidden;
|
||||
|
||||
.comment-loading {
|
||||
@if $sidebar_position == 'right' {
|
||||
padding-right: $sidebar-desktop + $sidebar-offset;
|
||||
} @else {
|
||||
padding-left: $sidebar-desktop + $sidebar-offset;
|
||||
}
|
||||
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 100px;
|
||||
text-align: center;
|
||||
font-size: 2em;
|
||||
|
||||
@include tablet-mobile() {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.comment-head {
|
||||
margin-bottom: 20px;
|
||||
|
||||
@ -53,6 +77,9 @@
|
||||
vertical-align: middle;
|
||||
font-weight: 700;
|
||||
font-size: 1.4em;
|
||||
@include mobile-small() {
|
||||
font-size: $font-size-smaller;
|
||||
}
|
||||
}
|
||||
|
||||
@if $two_comments_enable {
|
||||
@ -61,16 +88,16 @@
|
||||
float: right;
|
||||
margin: 2px auto;
|
||||
padding: 4px 16px;
|
||||
@include mobile-small() {
|
||||
font-size: $font-size-smaller;
|
||||
padding: 4px;
|
||||
}
|
||||
width: max-content;
|
||||
border-radius: 8px;
|
||||
background: #eee;
|
||||
background: var(--card-bg-color);
|
||||
|
||||
.first-comment {
|
||||
color: $first_comment_color;
|
||||
|
||||
@if $two_comments_actived==$first_comment_name {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.second-comment {
|
||||
@ -82,11 +109,12 @@
|
||||
}
|
||||
|
||||
$switch_btn_bg_color: $first_comment_color;
|
||||
$switch_btn_move_bc: $second_comment_color;
|
||||
|
||||
.switch-btn {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: -4px 8px 0;
|
||||
margin: 5px;
|
||||
width: 42px;
|
||||
height: 22px;
|
||||
border-radius: 34px;
|
||||
@ -100,6 +128,7 @@
|
||||
|
||||
@if $two_comments_actived==$second_comment_name {
|
||||
$switch_btn_bg_color: $second_comment_color;
|
||||
$switch_btn_move_bc: $first_comment_color;
|
||||
}
|
||||
|
||||
background-color: $switch_btn_bg_color;
|
||||
@ -120,6 +149,10 @@
|
||||
transition: .4s
|
||||
}
|
||||
|
||||
&.move {
|
||||
background-color: $switch_btn_move_bc;
|
||||
}
|
||||
|
||||
&.move:before {
|
||||
-webkit-transform: translateX(20px);
|
||||
-moz-transform: translateX(20px);
|
||||
@ -129,6 +162,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,19 @@
|
||||
|
||||
.highlight {
|
||||
|
||||
background: var(--highlight-background);
|
||||
|
||||
.table-container, pre {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.table-container table tbody tr {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
@if $codeblock_copy_btn_enable {
|
||||
|
||||
.highlight:hover .copy-btn, pre:hover .copy-btn {
|
||||
opacity: 1;
|
||||
}
|
||||
@ -9,32 +25,33 @@
|
||||
opacity: 0;
|
||||
padding: 2px 6px;
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
top: 4px;
|
||||
transition: opacity $transition-ease;
|
||||
background: var(--highlight-background);
|
||||
|
||||
@if $codeblock_copy_btn_style == 'flat' {
|
||||
@if $codeblock_style == 'flat' {
|
||||
background: white;
|
||||
border: 0;
|
||||
font-size: $font-size-smaller;
|
||||
right: 0;
|
||||
top: 0;
|
||||
} @else if $codeblock_copy_btn_style == 'mac' {
|
||||
|
||||
} @else if $codeblock_style == 'mac' {
|
||||
color: var(--highlight-foreground);
|
||||
font-size: 14px;
|
||||
right: 0;
|
||||
top: 2px;
|
||||
border-radius: 3px;
|
||||
} @else {
|
||||
background-color: $gainsboro;
|
||||
background-image: linear-gradient(#fcfcfc, $gainsboro);
|
||||
border: 1px solid #d5d5d5;
|
||||
border-radius: 3px;
|
||||
font-size: $font-size-smaller;
|
||||
right: 4px;
|
||||
top: 8px;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $codeblock_copy_btn_style == 'mac' {
|
||||
figure.highlight {
|
||||
@if $codeblock_style == 'mac' {
|
||||
.highlight {
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 10px 30px 0 rgba(0, 0, 0, .4);
|
||||
padding-top: 30px;
|
||||
@ -46,8 +63,8 @@
|
||||
&::before {
|
||||
background: #fc625d;
|
||||
box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
|
||||
left: 12px;
|
||||
margin-top: -20px;
|
||||
margin-left: 10px;
|
||||
position: absolute;
|
||||
@include round-icon(12px);
|
||||
}
|
||||
|
@ -1,58 +1,25 @@
|
||||
// Use `@use` to fix issue #67
|
||||
// TODO find way to import file by dynmatic
|
||||
// @import '(theme.highlight.enable && theme.highlight.light.file) ? theme.highlight.light.file : null';
|
||||
// @import '(theme.prism.enable && theme.prism.light) ? theme.prism.light : null';
|
||||
// @import '(theme.prism.enable && theme.prism.number) ? theme.prism.number : null';
|
||||
@import 'copy-code';
|
||||
|
||||
/* @media (prefers-color-scheme: dark) {
|
||||
@import '(theme.darkmode && theme.highlight.enable && theme.highlight.dark.file) ? theme.highlight.dark.file : null';
|
||||
@import '(theme.darkmode && theme.prism.enable && theme.prism.dark) ? theme.prism.dark : null';
|
||||
} */
|
||||
|
||||
// @import 'theme.codeblock.copy_button.enable ? "copy-code" : null';
|
||||
|
||||
// Placeholder: %code-inline %code-block
|
||||
%code-inline {
|
||||
background: var(--highlight-background);
|
||||
color: var(--highlight-foreground);
|
||||
}
|
||||
|
||||
%code-block {
|
||||
pre {
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p > code, li > code {
|
||||
@extend %code-inline;
|
||||
line-height: $line-height-code-block;
|
||||
margin: 0 auto 20px;
|
||||
}
|
||||
|
||||
%figcaption {
|
||||
background: var(--highlight-gutter-background);
|
||||
color: var(--highlight-foreground);
|
||||
display: flow-root;
|
||||
font-size: $table-font-size;
|
||||
line-height: 1.2;
|
||||
padding: .5em;
|
||||
|
||||
a {
|
||||
color: var(--highlight-foreground);
|
||||
float: right;
|
||||
|
||||
&:hover {
|
||||
border-bottom-color: var(--highlight-foreground);
|
||||
}
|
||||
}
|
||||
border-radius: 3px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-family: $code-font-family;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
code {
|
||||
@extend %code-inline;
|
||||
border-radius: 3px;
|
||||
font-size: $table-font-size;
|
||||
padding: 2px 4px;
|
||||
@include word-wrap();
|
||||
}
|
||||
|
||||
kbd {
|
||||
@extend %code-inline;
|
||||
@ -62,82 +29,4 @@ kbd {
|
||||
font-family: inherit;
|
||||
padding: .1em .3em;
|
||||
white-space: nowrap;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
// `highlight.line_number: false` and `highlight.wrap: false`
|
||||
// in Hexo config generates code.highlight elements
|
||||
figure.highlight {
|
||||
@extend %code-block;
|
||||
position: relative;
|
||||
|
||||
pre {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0;
|
||||
margin: 0;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
@extend %figcaption;
|
||||
}
|
||||
|
||||
.gutter {
|
||||
@include disable-user-select();
|
||||
|
||||
pre {
|
||||
background: var(--highlight-gutter-background);
|
||||
color: var(--highlight-gutter-foreground);
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.code pre {
|
||||
padding-left: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// See https://github.com/next-theme/hexo-theme-next/discussions/410
|
||||
.marked {
|
||||
background: rgba(0, 0, 0, .3);
|
||||
}
|
||||
}
|
||||
|
||||
// See https://github.com/hexojs/hexo-util/pull/229
|
||||
pre .caption, pre figcaption {
|
||||
@extend %figcaption;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.gist table {
|
||||
width: auto;
|
||||
|
||||
td {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
@extend %code-block;
|
||||
overflow: auto;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
|
||||
code {
|
||||
background: none;
|
||||
padding: 0;
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
@ -11,3 +11,4 @@
|
||||
@import 'pagination';
|
||||
@import 'comments';
|
||||
@import 'fontawesome';
|
||||
@import 'animation';
|
||||
|
@ -64,7 +64,7 @@
|
||||
}
|
||||
|
||||
@mixin sidebar-inline-links-item() {
|
||||
margin: 5px 0 0;
|
||||
margin: 5px 0;
|
||||
|
||||
a {
|
||||
box-sizing: border-box;
|
||||
|
@ -75,7 +75,7 @@
|
||||
@if $links_settings_layout == 'inline' {
|
||||
display: inline-block;
|
||||
max-width: 100%;
|
||||
@include sidebar-inline-links-item();
|
||||
margin: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
// Only when back2top.sidebar is true, apply the following styles
|
||||
.back-to-top {
|
||||
background: var(--body-bg-color);
|
||||
margin: 8px - $sidebar-offset -10px -18px;
|
||||
margin: 8px -#{$sidebar-offset} -10px -18px;
|
||||
|
||||
&.back-to-top-on {
|
||||
margin-top: 16px;
|
||||
|
@ -23,6 +23,15 @@ $footer_icon_color: {{ $P.footer.icon.color }};
|
||||
$footer_icon_animated : {{ $P.footer.icon.animated }};
|
||||
$footer_beian_enable : {{ $P.footer.beian.enable }};
|
||||
$footer_vendors_enable : {{ isset $P.footer "vendors" }};
|
||||
{{ with $P.footer.vendors }}
|
||||
{{ $width := slice "start" }}
|
||||
{{ range .list }}
|
||||
{{ if .image }}
|
||||
{{ $width = $width | append .image.width }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ printf "$footer_vendors_imgs_width:%s;" (delimit (after 1 $width) ", ") }}
|
||||
{{ end }}
|
||||
|
||||
// Counter
|
||||
$busuanzi_enable : {{ $P.busuanzi.enable }};
|
||||
@ -38,12 +47,13 @@ $font_title_size: {{ default $P.font.title.size 1.375 }};
|
||||
|
||||
// Code & Code blocks
|
||||
// TODO find the configure variable
|
||||
$highlight_dark_background: #000;
|
||||
$highlight_dark_foreground: #222;
|
||||
$highlight_light_background: #000;
|
||||
$highlight_light_foreground: #222;
|
||||
$highlight_dark_background : #1c1b1b;
|
||||
$highlight_dark_foreground : #fff;
|
||||
$highlight_light_background : #565656;
|
||||
$highlight_light_foreground : #fff;
|
||||
|
||||
$codeblock_copy_btn_style: {{ $P.codeblock.copyBtn.style }};
|
||||
$codeblock_copy_btn_enable : {{ $P.codeblock.copyBtn }};
|
||||
$codeblock_style : {{ $P.codeblock.style }};
|
||||
|
||||
// Sidebar
|
||||
$sidebar_offset : {{ $P.sidebar.offset }};
|
||||
@ -82,8 +92,8 @@ $reward_settings_animation: {{ $P.rewardSets.animation }};
|
||||
$post_end_tag_icon : {{ $P.postFooter.tagIcon }};
|
||||
|
||||
// TODO find the paramters
|
||||
$text_align_desktop: justify;
|
||||
$text_align_mobile: justify;
|
||||
$text_align_desktop : {{ $P.textAlign.desktop }};
|
||||
$text_align_mobile : {{ $P.textAlign.mobile }};
|
||||
|
||||
// Note
|
||||
$note_icons : {{ $P.note.icons }};
|
||||
@ -104,7 +114,9 @@ $reading_progress_reversed: {{ $P.readingProgress.reversed }};
|
||||
|
||||
// Thirdparty
|
||||
$math_mathjax_enable : {{ $P.math.mathjax.enable }};
|
||||
$related_posts_enable: {{ $P.relatedPosts.enable }};
|
||||
// TODO
|
||||
//$related_posts_enable : {{ $P.relatedPosts.enable }};
|
||||
$related_posts_enable : false;
|
||||
$pdf_enable : {{ $P.pdf.enable }};
|
||||
$pdf_height : {{ $P.pdf.height }};
|
||||
|
||||
@ -113,16 +125,18 @@ $algolia_search_enable: {{ $P.algoliaSearch.enable }};
|
||||
$local_search_enable : {{ $P.localSearch.enable }};
|
||||
|
||||
// Online IM
|
||||
$gitalk_enable: {{ $P.gitalk.enable }};
|
||||
//$gitalk_enable : {{ $P.gitalk.enable }};
|
||||
$gitalk_enable : false;
|
||||
$gitter_enable : {{ $P.gitter.enable }};
|
||||
|
||||
// Comment
|
||||
$disqusjs_enable: {{ $P.disqusjs.enable }};
|
||||
$livere_enable: {{ $P.livere.enable }};
|
||||
$utterances_enable: {{ $P.utterances.enable }};
|
||||
$waline_enable: {{ $P.waline.enable }};
|
||||
//$disqusjs_enable : {{ $P.disqusjs.enable }};
|
||||
$disqusjs_enable : false;
|
||||
$livere_enable : {{ isset $P.livere "uid" }};
|
||||
$utterances_enable : {{ isset $P.utterances "utterances" }};
|
||||
$waline_enable : {{ isset $P.waline "serverurl" }};
|
||||
{{- 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 }};
|
||||
{{- if $tce }}
|
||||
{{- $sortNav := sort .nav "weight" }}
|
||||
|
@ -1,66 +1,51 @@
|
||||
if (!window.NexT) window.NexT = {};
|
||||
|
||||
(function() {
|
||||
const className = 'next-config';
|
||||
|
||||
const staticConfig = {};
|
||||
let variableConfig = {};
|
||||
|
||||
const parse = text => JSON.parse(text || '{}');
|
||||
|
||||
const update = name => {
|
||||
const targetEle = document.querySelector(`.${className}[data-name="${name}"]`);
|
||||
if (!targetEle) return;
|
||||
const parsedConfig = parse(targetEle.text);
|
||||
if (name === 'main') {
|
||||
Object.assign(staticConfig, parsedConfig);
|
||||
} else {
|
||||
variableConfig[name] = parsedConfig;
|
||||
const siteConfig = {
|
||||
"hostname" : "{{ .Site.BaseURL }}",
|
||||
"root" : "/",
|
||||
"images" : "{{ .Site.Params.images }}",
|
||||
"scheme" : "{{ .Site.Params.scheme }}",
|
||||
"darkmode" : {{ .Site.Params.darkmode }},
|
||||
"version" : "{{ .Site.Data.config.version }}",
|
||||
"sidebar" : {{ .Site.Params.sidebar | jsonify }},
|
||||
"copybtn" : {{ .Site.Params.codeblock.copyBtn }},
|
||||
"bookmark" : {{ .Site.Params.bookmark | jsonify }},
|
||||
"comments" : {{ .Site.Params.comments | jsonify }},
|
||||
"lazyload" : {{ .Site.Params.lazyload }},
|
||||
"pangu" : {{ .Site.Params.pangu }},
|
||||
"stickytabs" : {{ .Site.Params.tabs.sticky }},
|
||||
"motion" : {{ .Site.Params.motion | jsonify }},
|
||||
// TODO Find prismjs
|
||||
//"prism" : "",
|
||||
"i18n" : {
|
||||
"placeholder" : "",
|
||||
"empty" : "${query}",
|
||||
"hits_time" : "'${hits}', '${time}'",
|
||||
"hits" : "${hits}"
|
||||
},
|
||||
{{- if .Site.Params.algoliaSearch.enable }}
|
||||
// TODO
|
||||
"algolia" : {
|
||||
"appID" : "",
|
||||
"apiKey" : "",
|
||||
"indexName" : "",
|
||||
"hits" : ""
|
||||
}
|
||||
{{- end }}
|
||||
{{- if .Site.Params.localSearch.enable }}
|
||||
// TODO
|
||||
"path" : "/search.json",
|
||||
"localsearch": {{ .Site.Params.localSearch | jsonify }},
|
||||
{{- end }}
|
||||
"lang" : "{{ .Site.LanguageCode }}",
|
||||
"permalink" : "{{ .Page.Permalink | absURL }}",
|
||||
"title" : "{{ .Page.Title }}",
|
||||
"isHome" : {{ .IsHome }},
|
||||
"isPage" : {{ .IsPage }}
|
||||
};
|
||||
|
||||
update('main');
|
||||
window.CONFIG = new Proxy(siteConfig, {});
|
||||
|
||||
window.CONFIG = new Proxy({}, {
|
||||
get(overrideConfig, name) {
|
||||
let existing;
|
||||
if (name in staticConfig) {
|
||||
existing = staticConfig[name];
|
||||
} else {
|
||||
if (!(name in variableConfig)) update(name);
|
||||
existing = variableConfig[name];
|
||||
}
|
||||
|
||||
// For unset override and mixable existing
|
||||
if (!(name in overrideConfig) && typeof existing === 'object') {
|
||||
// Get ready to mix.
|
||||
overrideConfig[name] = {};
|
||||
}
|
||||
|
||||
if (name in overrideConfig) {
|
||||
const override = overrideConfig[name];
|
||||
|
||||
// When mixable
|
||||
if (typeof override === 'object' && typeof existing === 'object') {
|
||||
// Mix, proxy changes to the override.
|
||||
return new Proxy({ ...existing, ...override }, {
|
||||
set(target, prop, value) {
|
||||
target[prop] = value;
|
||||
override[prop] = value;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return override;
|
||||
}
|
||||
|
||||
// Only when not mixable and override hasn't been set.
|
||||
return existing;
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('pjax:success', () => {
|
||||
variableConfig = {};
|
||||
});
|
||||
})();
|
@ -82,7 +82,7 @@ NexT.motion.middleWares = {
|
||||
|
||||
postList: function() {
|
||||
const sequence = [];
|
||||
const { post_block, post_header, post_body, coll_header } = CONFIG.motion.transition;
|
||||
const { postblock, postheader, postbody, collheader } = CONFIG.motion.transition;
|
||||
|
||||
function animate(animation, selector) {
|
||||
if (!animation) return;
|
||||
@ -95,10 +95,10 @@ NexT.motion.middleWares = {
|
||||
});
|
||||
}
|
||||
|
||||
animate(post_block, '.post-block, .pagination, .comments');
|
||||
animate(coll_header, '.collection-header');
|
||||
animate(post_header, '.post-header');
|
||||
animate(post_body, '.post-body');
|
||||
animate(postblock, '.post-block, .pagination, .post-comments');
|
||||
animate(collheader, '.collection-header');
|
||||
animate(postheader, '.post-header');
|
||||
animate(postbody, '.post-body');
|
||||
|
||||
return sequence;
|
||||
},
|
||||
|
@ -37,20 +37,22 @@ NexT.boot.refresh = function() {
|
||||
* Register JS handlers by condition option.
|
||||
* Need to add config option in Front-End at 'scripts/helpers/next-config.js' file.
|
||||
*/
|
||||
CONFIG.prism && window.Prism.highlightAll();
|
||||
//CONFIG.prism && window.Prism.highlightAll();
|
||||
/*CONFIG.mediumzoom && window.mediumZoom('.post-body :not(a) > img, .post-body > img', {
|
||||
background: 'var(--content-bg-color)'
|
||||
});*/
|
||||
CONFIG.lazyload && window.lozad('.post-body img').observe();
|
||||
CONFIG.pangu && window.pangu.spacingPage();
|
||||
|
||||
CONFIG.exturl && NexT.utils.registerExtURL();
|
||||
NexT.utils.registerCopyCode();
|
||||
CONFIG.isPage && NexT.utils.replacePostCRLink();
|
||||
CONFIG.isPage && CONFIG.copybtn && NexT.utils.registerCopyCode();
|
||||
NexT.utils.registerTabsTag();
|
||||
/*NexT.utils.registerActiveMenuItem();
|
||||
NexT.utils.registerLangSelect();*/
|
||||
NexT.utils.registerSidebarTOC();
|
||||
NexT.utils.registerPostReward();
|
||||
CONFIG.isPage && NexT.utils.registerSidebarTOC();
|
||||
CONFIG.isPage && NexT.utils.registerPostReward();
|
||||
CONFIG.isPage && NexT.utils.initCommontesDispaly();
|
||||
CONFIG.isPage && NexT.utils.registerCommonSwitch();
|
||||
NexT.utils.wrapTableWithBox();
|
||||
NexT.utils.registerVideoIframe();
|
||||
};
|
||||
|
@ -23,35 +23,29 @@ HTMLElement.prototype.wrap = function(wrapper) {
|
||||
|
||||
NexT.utils = {
|
||||
|
||||
registerExtURL: function() {
|
||||
document.querySelectorAll('span.exturl').forEach(element => {
|
||||
const link = document.createElement('a');
|
||||
// https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings
|
||||
link.href = decodeURIComponent(atob(element.dataset.url).split('').map(c => {
|
||||
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
|
||||
}).join(''));
|
||||
link.rel = 'noopener external nofollow noreferrer';
|
||||
link.target = '_blank';
|
||||
link.className = element.className;
|
||||
link.title = element.title;
|
||||
link.innerHTML = element.innerHTML;
|
||||
element.parentNode.replaceChild(link, element);
|
||||
});
|
||||
replacePostCRLink: function() {
|
||||
if (CONFIG.hostname.startsWith('http')) return;
|
||||
// Try to support mutli domain without base URL sets.
|
||||
let href = window.location.href;
|
||||
if (href.indexOf('#')>-1){
|
||||
href = href.split('#')[0];
|
||||
}
|
||||
let postLink = document.getElementById('post-cr-link');
|
||||
if (!postLink) return;
|
||||
postLink.text = href;
|
||||
postLink.href = href;
|
||||
},
|
||||
|
||||
/**
|
||||
* One-click copy code support.
|
||||
*/
|
||||
registerCopyCode: function() {
|
||||
let figure = document.querySelectorAll('figure.highlight');
|
||||
if (figure.length === 0) figure = document.querySelectorAll('pre:not(.mermaid)');
|
||||
let figure = document.querySelectorAll('.highlight pre');
|
||||
if (figure.length === 0 || !CONFIG.copybtn) return;
|
||||
figure.forEach(element => {
|
||||
element.querySelectorAll('.code .line span').forEach(span => {
|
||||
span.classList.forEach(name => {
|
||||
span.classList.replace(name, `hljs-${name}`);
|
||||
});
|
||||
});
|
||||
if (!CONFIG.copycode) return;
|
||||
let cn = element.querySelector('code').className;
|
||||
// TODO seems hard code need find other ways fixed it.
|
||||
if (cn == '') return;
|
||||
element.insertAdjacentHTML('beforeend', '<div class="copy-btn"><i class="fa fa-copy fa-fw"></i></div>');
|
||||
const button = element.querySelector('.copy-btn');
|
||||
button.addEventListener('click', () => {
|
||||
@ -259,6 +253,31 @@ NexT.utils = {
|
||||
});
|
||||
},
|
||||
|
||||
initCommontesDispaly: function(){
|
||||
const comms = document.querySelectorAll('.comment-wrap > div');
|
||||
if (comms.length<=1) return;
|
||||
comms.forEach(function(item){
|
||||
var dis = window.getComputedStyle(item, null).display;
|
||||
item.style.display = dis;
|
||||
});
|
||||
},
|
||||
|
||||
registerCommonSwitch: function() {
|
||||
const button = document.querySelector('.comment-switch .switch-btn');
|
||||
if (!button) return;
|
||||
const comms = document.querySelectorAll('.comment-wrap > div');
|
||||
button.addEventListener('click', () => {
|
||||
button.classList.toggle('move');
|
||||
comms.forEach(function(item){
|
||||
if (item.style.display === 'none') {
|
||||
item.style.cssText = "display: block; animation: tabshow .8s";
|
||||
} else {
|
||||
item.style.cssText = "display: none;"
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
activateNavByIndex: function(index) {
|
||||
const target = document.querySelectorAll('.post-toc li a.nav-link')[index];
|
||||
if (!target || target.classList.contains('active-current')) return;
|
||||
@ -287,7 +306,7 @@ NexT.utils = {
|
||||
if (window.innerWidth < 992 || CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return;
|
||||
// Expand sidebar on post detail page by default, when post has a toc.
|
||||
const hasTOC = document.querySelector('.post-toc');
|
||||
let display = CONFIG.page.sidebar;
|
||||
let display = CONFIG.sidebar;
|
||||
if (typeof display !== 'boolean') {
|
||||
// There's no definition sidebar in the page front-matter.
|
||||
display = CONFIG.sidebar.display === 'always' || (CONFIG.sidebar.display === 'post' && hasTOC);
|
||||
|
4
data/config.yaml
Normal file
4
data/config.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
# Hugo NexT theme's custom config
|
||||
#
|
||||
|
||||
version: 4.0.0
|
File diff suppressed because it is too large
Load Diff
@ -1,19 +0,0 @@
|
||||
---
|
||||
title: "About Hugo NexT Origination"
|
||||
description: ""
|
||||
|
||||
date: 2022-06-09T20:12:52+08:00
|
||||
lastmod: 2022-06-09T20:12:52+08:00
|
||||
|
||||
share: false
|
||||
followme: false
|
||||
nav: false
|
||||
copyright: false
|
||||
url: about.html
|
||||
---
|
||||
|
||||
`Hugo NexT` organization is formed by many friends from all over the world who love the theme and style of `NexT`, so that this theme can continue to be carried forward in the `Hugo` engine. Welcome to join us!
|
||||
|
||||
# Our vision
|
||||
|
||||
Keep the classic black-and-white collocation of `NexT` & keep easily and powerful features.
|
@ -13,7 +13,7 @@ tags:
|
||||
- emoji
|
||||
|
||||
toc: false
|
||||
url: "emoji-support.html"
|
||||
url: "post/emoji-support.html"
|
||||
---
|
||||
|
||||
Emoji 可以通过多种方式在 Hugo 项目中启用。
|
||||
|
@ -1,58 +0,0 @@
|
||||
---
|
||||
title: "Hello World"
|
||||
description: "Descript some skill for Hugo build site."
|
||||
|
||||
lastmod: 2022-06-03T16:43:23+08:00
|
||||
date: 2022-06-02T11:52:03+08:00
|
||||
|
||||
categories:
|
||||
- Blog
|
||||
tags:
|
||||
- Hugo
|
||||
- Startup
|
||||
|
||||
url: hello-world.html
|
||||
weight: 2
|
||||
---
|
||||
|
||||
> "Use keyword which is `weight` make post sticky to top."
|
||||
|
||||
[Hugo](https://gohugo.io/) is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
|
||||
|
||||
<!--more-->
|
||||
|
||||
## Quick Start
|
||||
|
||||
### New Post
|
||||
|
||||
```shell
|
||||
$ hugo new hello-world.md
|
||||
```
|
||||
|
||||
More info: [Front formats](https://gohugo.io/content-management/formats/)
|
||||
|
||||
### Server
|
||||
|
||||
```shell
|
||||
$ hugo server
|
||||
```
|
||||
|
||||
More info: [Hugo Server](https://gohugo.io/commands/hugo_server/)
|
||||
|
||||
### Build
|
||||
|
||||
```shell
|
||||
$ hugo
|
||||
```
|
||||
|
||||
More Info: [Hugo Build](https://gohugo.io/commands/hugo/)
|
||||
|
||||
### Deploy
|
||||
|
||||
```shell
|
||||
$ hugo deploy
|
||||
```
|
||||
|
||||
More Info:[Hugo Deployment](https://gohugo.io/commands/hugo_deploy/)
|
||||
|
||||
Enjoy your Hugo journey & good luck for you!
|
@ -11,7 +11,7 @@ tags:
|
||||
- Hugo
|
||||
- 开始
|
||||
|
||||
url: hello-world.html
|
||||
url: post/hello-world.html
|
||||
weight: 2
|
||||
---
|
||||
|
||||
|
@ -17,7 +17,7 @@ tags:
|
||||
|
||||
toc: false
|
||||
draft: false
|
||||
url: markdown-syntax.html
|
||||
url: post/markdown-syntax.html
|
||||
---
|
||||
|
||||
仅以此篇文章来测试下在 `NexT` 主题中在通过 `Hugo` 引擎来建站时,是否支持 `Markdown` 文件内容中所写的各种语法,并展示下实际的效果。
|
||||
|
@ -13,7 +13,7 @@ tags:
|
||||
- 高亮
|
||||
- Chroma
|
||||
|
||||
url: "syntax-highlighting.html"
|
||||
url: post/syntax-highlighting.html
|
||||
---
|
||||
|
||||
Hugo 通过 Chroma 提供非常快速的语法高亮显示,现 Hugo 中使用 Chroma 作为代码块高亮支持,它内置在 Go 语言当中,速度是真的非常、非常快,而且最为重要的是它也兼容之前我们使用的 Pygments 方式。
|
||||
|
@ -14,7 +14,7 @@ tags:
|
||||
- 博客
|
||||
|
||||
toc: true
|
||||
url: "table-of-content.html"
|
||||
url: post/table-of-content.html
|
||||
---
|
||||
|
||||
巴顿将军说过:“衡量一个人是否成功,不是看他站到顶峰,而是从顶峰跌落之后的反弹力”,褚时健的人生便是如此,中年发家致富,名利双收,之后又跌落到谷底,等到74岁再创业,10年后带着褚橙归来,东山再起收获亿万财富,他的发展轨迹就是反弹的过程。
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# 本地快速启动脚本
|
||||
# Quick start in local.
|
||||
|
||||
next() {
|
||||
cat << EOT
|
||||
@ -11,12 +12,12 @@ next() {
|
||||
██║ ╚████║███████╗██╔╝ ██╗ ██║
|
||||
╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝
|
||||
========================================
|
||||
NexT version $1
|
||||
Documentation: https://hugo-next.js.org
|
||||
Hugo NexT version $1
|
||||
Documentation: https://hugo-next.eu.org
|
||||
========================================
|
||||
EOT
|
||||
}
|
||||
|
||||
next V0.0.1
|
||||
next `cat ../VERSION`
|
||||
|
||||
hugo server -D -t ../.. --port 1414 --panicOnWarning
|
12
i18n/en.yaml
12
i18n/en.yaml
@ -1,20 +1,20 @@
|
||||
#--------------------------------------
|
||||
# English Version
|
||||
#--------------------------------------
|
||||
Posts:
|
||||
posts:
|
||||
other: Posts
|
||||
Tag:
|
||||
tag:
|
||||
other: Tag
|
||||
Tags:
|
||||
tags:
|
||||
other: Tags
|
||||
TagTitle:
|
||||
other: Tag Collection
|
||||
Category:
|
||||
category:
|
||||
other: Category
|
||||
Categories:
|
||||
categories:
|
||||
other: Categories
|
||||
CateTitle:
|
||||
other: Classify Management
|
||||
other: Classification Items
|
||||
AllSome:
|
||||
other: "All {{ .Some }}"
|
||||
|
||||
|
@ -2,20 +2,20 @@
|
||||
# 中文版本
|
||||
#--------------------------------------
|
||||
|
||||
Posts:
|
||||
posts:
|
||||
other: 文章
|
||||
Tag:
|
||||
tag:
|
||||
other: 标签
|
||||
Tags:
|
||||
tags:
|
||||
other: 标签
|
||||
TagTitle:
|
||||
other: 标签集锦
|
||||
Category:
|
||||
category:
|
||||
other: 分类
|
||||
Categories:
|
||||
categories:
|
||||
other: 分类
|
||||
CateTitle:
|
||||
other: 分类管理
|
||||
other: 分类栏目
|
||||
AllSome:
|
||||
other: "所有 {{ .Some }}"
|
||||
|
||||
|
7
layouts/_default/_markup/render-link.html
Normal file
7
layouts/_default/_markup/render-link.html
Normal file
@ -0,0 +1,7 @@
|
||||
{{- $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 }}>
|
||||
{{ .Text | safeHTML }}
|
||||
{{- if and $extURL .Page.Site.Params.exturl.icon }}
|
||||
<i class="fa fa-external-link-alt"></i>
|
||||
{{- end }}
|
||||
</a>
|
@ -1,22 +1,8 @@
|
||||
{{- .Scratch.Set "postsCount" (len (where .Page.Site.RegularPages "Section" "in" .Site.Params.mainSections)) -}}
|
||||
{{- .Scratch.Set "catsCount" (len .Site.Taxonomies.categories) -}}
|
||||
{{- .Scratch.Set "tagsCount" (len .Site.Taxonomies.tags) -}}
|
||||
{{- $vendors := .Site.Data.resources.vendors -}}
|
||||
{{- $pluginVen := .Site.Params.vendors.plugins -}}
|
||||
{{- $pluginCDN := index $vendors $pluginVen -}}
|
||||
{{- .Scratch.Set "pluginCDN" $pluginCDN -}}
|
||||
{{- partial "init.html" . -}}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.LanguageCode }}">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{{ hugo.Generator }}
|
||||
<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/png" sizes="16x16" href="{{ .Site.Params.favicon.small }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.favicon.medium }}">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon.appleTouchIcon }}">
|
||||
{{- partial "head.html" . }}
|
||||
<title>{{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
|
||||
<noscript>
|
||||
@ -48,11 +34,11 @@
|
||||
</main>
|
||||
<footer class="footer">
|
||||
<div class="footer-inner">
|
||||
{{- partial "footer" . }}
|
||||
{{- partial "footer.html" . }}
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
{{- partial "scripts" . }}
|
||||
{{- partialCached "scripts.html" . }}
|
||||
</body>
|
||||
|
||||
</html>
|
@ -1,4 +1,2 @@
|
||||
{{- with .Site.Params.laId }}
|
||||
<script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script>
|
||||
<script charset="UTF-8" id="LA_COLLECT" src="https://sdk.51.la/js-sdk-pro.min.js"></script>
|
||||
<script>LA.init({id: "{{ . }}",ck: "{{ . }}",autoTrack:true})</script>
|
||||
{{- end }}
|
20
layouts/partials/_thirdparty/comment/artalk.html
vendored
Normal file
20
layouts/partials/_thirdparty/comment/artalk.html
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
{{- with .Site.Params.artalk }}
|
||||
<link href="//unpkg.com/artalk@2.3.4/dist/Artalk.css" rel="stylesheet">
|
||||
<script src="//unpkg.com/artalk@2.3.4/dist/Artalk.js"></script>
|
||||
|
||||
<!-- Artalk -->
|
||||
<div id="Comments"></div>
|
||||
|
||||
<script>
|
||||
new Artalk({
|
||||
el : '#Comments',
|
||||
pageKey : '{{ $.Page.RelPermalink }}',
|
||||
pageTitle : '{{ $.Page.Title }}',
|
||||
server : '{{ .server }}',
|
||||
site : '{{ .site }}',
|
||||
locale : 'auto',
|
||||
placeholder : '{{ .placeholder }}'
|
||||
})
|
||||
</script>
|
||||
{{- end }}
|
||||
|
3
layouts/partials/_thirdparty/comment/comm_loading.html
vendored
Normal file
3
layouts/partials/_thirdparty/comment/comm_loading.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="comment-loading">
|
||||
<i class="fa fa-sync fa-spin"></i>
|
||||
</div>
|
19
layouts/partials/_thirdparty/comment/giscus.html
vendored
Normal file
19
layouts/partials/_thirdparty/comment/giscus.html
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{{- with .Site.Params.giscus }}
|
||||
{{ printf "%t" (isset . "repo") }}
|
||||
<div class="giscus" style="position: relative;"></div>
|
||||
<script src="https://giscus.app/client.js"
|
||||
data-repo="{{ .repo }}"
|
||||
data-repo-id="{{ .repoId }}"
|
||||
data-category="{{ .category }}"
|
||||
data-category-id="{{ .categoryId }}"
|
||||
data-mapping="{{ .mapping }}"
|
||||
data-reactions-enabled="0"
|
||||
data-emit-metadata="1"
|
||||
data-input-position="{{ .inputPosition }}"
|
||||
data-theme="{{ .theme }}"
|
||||
data-lang="{{ $.Site.LanguageCode }}"
|
||||
data-loading="lazy"
|
||||
crossorigin="anonymous"
|
||||
async>
|
||||
</script>
|
||||
{{- end }}
|
@ -1,5 +1,5 @@
|
||||
{{- with .Site.Params.utterances }}
|
||||
<script src="https://utterances.njilc.com/client.js"
|
||||
<script src="https://utteranc.es/client.js"
|
||||
repo="{{ .repo }}"
|
||||
issue-term="{{ .issueTerm }}"
|
||||
label="{{ .label }}"
|
||||
|
@ -10,12 +10,14 @@
|
||||
Waline.init({
|
||||
locale,
|
||||
el : "#waline",
|
||||
pageview : {{ .pageView }},
|
||||
emoji : {{ .emoji }},
|
||||
imageUploader : {{ .imgUploader }},
|
||||
wordLimit : {{ .wordLimit }},
|
||||
requiredMeta : {{ .requiredMeta }},
|
||||
serverURL : "{{ .serverURL }}",
|
||||
lang: "{{ $.Lang }}"
|
||||
lang : "{{ $.Lang }}",
|
||||
dark : "auto"
|
||||
});
|
||||
</script>
|
||||
{{- end }}
|
@ -28,11 +28,15 @@
|
||||
{{- if $tc }}
|
||||
{{- range $sn }}
|
||||
<div>
|
||||
{{- partial "_thirdparty/comment/comm_loading.html" . }}
|
||||
{{- partial (printf $cp (lower .name)) $root }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
<div>{{- partial (printf $cp $fc) $root }}</div>
|
||||
<div>
|
||||
{{- partial "_thirdparty/comment/comm_loading.html" . }}
|
||||
{{- partial (printf $cp $fc) $root }}
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -48,8 +48,8 @@
|
||||
{{- end }}
|
||||
-->
|
||||
*/}}
|
||||
{{- if .Site.Params.busuanzi.enable }}
|
||||
{{ with .Site.Params.busuanzi }}
|
||||
{{- with .Site.Params.busuanzi }}
|
||||
{{- if .enable }}
|
||||
<div class="busuanzi-count">
|
||||
{{- if .visitors }}
|
||||
<span class="post-meta-item" id="busuanzi_container_site_uv" title="{{ T "VisitorsLabel" }}">
|
||||
@ -76,12 +76,12 @@
|
||||
{{- end }}
|
||||
{{- if $ft.powered }}
|
||||
<div class="powered-by">
|
||||
{{ $pb := printf "<a href='https://gohugo.io' target='_blank'>Hugo</a> & <a href='https://github.com/hugo-next' target='_blank'>NexT.%s</a>" .Site.Params.scheme }}
|
||||
{{ $pb := printf "<a href='https://gohugo.io' target='_blank'>Hugo</a> & <a href='https://github.com/hugo-next/hugo-theme-next' target='_blank'>Hugo NexT.%s</a>" .Site.Params.scheme }}
|
||||
{{- printf (T "FooterPowerby") $pb | safeHTML }}
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if $ft.beian.enable }}
|
||||
{{- with $ft.beian }}
|
||||
{{- if .enable }}
|
||||
<div class="beian">
|
||||
<a href="https://beian.miit.gov.cn" target="_blank">{{ .icp }}</a>
|
||||
<img src="/imgs/gongan.png" alt="{{ .provinceAbbr }}公网安备">
|
||||
@ -90,12 +90,12 @@
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with $ft.vendors }}
|
||||
{{ if .enable }}
|
||||
<div class="vendors-list">
|
||||
{{- range .list }}
|
||||
<a target="_blank" href="{{ .link }}" title="{{ .name }}">
|
||||
{{- if .img }}
|
||||
{{ $img := split .img "||" }}
|
||||
<img src="{{- trim (index $img 0) " " }}" width="{{- trim (index $img 1) " " -}}px" alt="{{ .name }}" />
|
||||
{{- if .image }}
|
||||
<img src="{{ .image.url }}" alt="{{ .name }}" />
|
||||
{{- else }}
|
||||
{{ .name }}
|
||||
{{- end }}
|
||||
@ -104,3 +104,4 @@
|
||||
<span>{{ .title }}</span>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
@ -3,6 +3,6 @@
|
||||
{{- partial "head/twitter.html" . }}
|
||||
{{- partial "head/googleplus.html" . }}
|
||||
{{- partial "head/facebook.html" . }}
|
||||
{{ partial "head/verify.html" . }}
|
||||
{{- partial "head/style.html" . }}
|
||||
{{- partial "head/analytics.html" . }}
|
||||
{{- partial "head/verify.html" . }}
|
||||
{{- partialCached "head/style.html" . }}
|
||||
{{- partialCached "head/analytics.html" . }}
|
@ -1 +1,5 @@
|
||||
{{- partial "_thirdparty/analytics/51la.html" . }}
|
||||
{{- with .Site.Params.analytics }}
|
||||
{{- if isset . "laid" }}
|
||||
{{ partial "_thirdparty/analytics/51la.html" .laId }}
|
||||
{{- end }}
|
||||
{{- end }}
|
@ -1,3 +1,16 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
{{- if .Site.Params.darkmode }}
|
||||
<meta name="theme-color" content="{{ .Site.Params.themeColor.dark }}" media="(prefers-color-scheme: dark)" />
|
||||
{{- else }}
|
||||
<meta name="theme-color" content="{{ .Site.Params.themeColor.light }}" media="(prefers-color-scheme: light)" />
|
||||
{{- end }}
|
||||
{{ hugo.Generator }}
|
||||
<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/png" sizes="16x16" href="{{ .Site.Params.favicon.small }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ .Site.Params.favicon.medium }}">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ .Site.Params.favicon.appleTouchIcon }}">
|
||||
<meta itemprop="name" content="{{ .Title }}" />
|
||||
<meta itemprop="description" content="{{ .Description | default .Site.Params.description }}" />
|
||||
{{- if .IsPage }}
|
||||
@ -15,8 +28,3 @@
|
||||
{{- .Scratch.Set "metaImg" $img }}
|
||||
<meta itemprop="image" content="{{ $img | absURL }}" />
|
||||
<meta itemprop="keywords" content="{{ if and .IsPage (isset .Params "tags")}}{{ delimit .Params.tags "," }}{{ else }}{{ .Site.Params.keywords }}{{ end }}" />
|
||||
{{- if .Site.Params.darkmode }}
|
||||
<meta name="theme-color" content="{{ .Site.Params.themeColor.dark }}" media="(prefers-color-scheme: dark)" />
|
||||
{{- else }}
|
||||
<meta name="theme-color" content="{{ .Site.Params.themeColor.light }}" media="(prefers-color-scheme: light)" />
|
||||
{{- end }}
|
||||
|
@ -21,8 +21,10 @@
|
||||
{{- $scss := resources.Get "css/main.scss" }}
|
||||
{{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }}
|
||||
{{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }}
|
||||
{{- if hugo.IsProduction }}
|
||||
{{- $css = $css | minify | fingerprint }}
|
||||
{{- end }}
|
||||
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
|
||||
<link rel="stylesheet" href="/css/hover.css">
|
||||
{{- if .IsPage }}
|
||||
<style type="text/css">
|
||||
.post-footer hr:after {
|
||||
|
@ -2,9 +2,8 @@
|
||||
{{- $curP := .Page }}
|
||||
<nav class="site-nav">
|
||||
<ul class="main-menu menu">
|
||||
{{- range $curP.Site.Menus.main }}
|
||||
{{- $active := or ($curP.IsMenuCurrent "main" .) ($curP.HasMenuCurrent "main" .) }}
|
||||
{{- $active = or $active (eq .URL "/")}}
|
||||
{{- range .Site.Menus.main }}
|
||||
{{- $active := $curP.IsMenuCurrent "main" . }}
|
||||
<li class="menu-item menu-item-{{ .Identifier }}">
|
||||
<a href="{{ .URL | relLangURL }}" class="hvr-icon-pulse {{if $active }} menu-item-active{{ end }}" rel="section">
|
||||
{{- if $ms.icons }}<i class="fa fa-{{ .Pre }} hvr-icon"></i>{{ end }}{{- .Name }}
|
||||
|
14
layouts/partials/init.html
Normal file
14
layouts/partials/init.html
Normal file
@ -0,0 +1,14 @@
|
||||
{{/* Use to defind global variables */}}
|
||||
|
||||
{{- if not hugo.IsExtended }}
|
||||
{{- warnf "Hugo NexT 主题使用了 SCSS 框架,请到官方地址下载 Hugo Extended 版本:https://github.com/gohugoio/hugo/releases" -}}
|
||||
{{- errorf "Because that use SCSS framework in Hugo NexT, Please download Hugo extended version on offical site: https://github.com/gohugoio/hugo/releases" -}}
|
||||
{{- end }}
|
||||
|
||||
{{- .Scratch.Set "postsCount" (len (where .Page.Site.RegularPages "Section" "in" .Site.Params.mainSections)) -}}
|
||||
{{- .Scratch.Set "catsCount" (len .Site.Taxonomies.categories) -}}
|
||||
{{- .Scratch.Set "tagsCount" (len .Site.Taxonomies.tags) -}}
|
||||
{{- $vendors := .Site.Data.resources.vendors -}}
|
||||
{{- $pluginVen := .Site.Params.vendors.plugins -}}
|
||||
{{- $pluginCDN := index $vendors $pluginVen -}}
|
||||
{{- .Scratch.Set "pluginCDN" $pluginCDN -}}
|
@ -21,7 +21,7 @@
|
||||
<a target="_blank" href="{{ .Params.OriginLink }}" title="{{ .Title }}">{{ .Params.Link }}</a>
|
||||
{{- else }}
|
||||
<strong>{{ print (T "PostCRLink") (T "SymbolColon") }}</strong>
|
||||
<a href="{{ .Permalink | absLangURL }}" title="{{ .Title }}">{{ .Permalink | absLangURL }}</a>
|
||||
<a id="post-cr-link" href="{{ .Permalink | absLangURL }}" title="{{ .Title }}">{{ .Permalink | absLangURL }}</a>
|
||||
{{- end }}
|
||||
</li>
|
||||
<li class="post-copyright-license">
|
||||
|
@ -6,7 +6,7 @@
|
||||
{{- T "RewardDonate" -}}
|
||||
</button>
|
||||
<div class="post-reward">
|
||||
{{- range $name,$img := $.Site.Params.reward }}
|
||||
{{- range $name,$img := .reward }}
|
||||
{{- $fw := substr $name 0 1 }}
|
||||
{{- $pay := replace $name $fw ($fw | upper) 1 }}
|
||||
{{- $payName := T (printf "Reward%s" $pay) }}
|
||||
|
@ -1,27 +1,19 @@
|
||||
{{- $pageViewCls := "" }}
|
||||
{{- if .Site.Params.leancloudVisitors.enable }}
|
||||
<span id="{{ .Permalink }}" class="post-meta-item leancloud_visitors" data-flag-title="{{ .Title }}" title="{{ T "PostViews" }}">
|
||||
<span class="post-meta-item-icon">
|
||||
<i class="far fa-eye"></i>
|
||||
</span>
|
||||
<span class="post-meta-item-text">{{- print (T "PostViews") (T "SymbolColon") -}}</span>
|
||||
<span class="leancloud-visitors-count"></span>
|
||||
</span>
|
||||
{{- $pageViewCls = "leancloud-visitors-count" }}
|
||||
{{- end }}
|
||||
{{- if and .Site.Params.waline.enable .Site.Params.waline.pageView }}
|
||||
{{- $pageViewCls = "waline-pageview-count" }}
|
||||
{{- end }}
|
||||
{{- if and .Site.Params.busuanzi.enable .Site.Params.busuanzi.postViews }}
|
||||
{{- $pageViewCls = "busuanzi_value_page_pv" }}
|
||||
{{- end }}
|
||||
{{- if .Site.Params.firestore.enable }}
|
||||
<span class="post-meta-item" title="{{ T "PostViews" }}">
|
||||
<span class="post-meta-item-icon">
|
||||
<i class="far fa-eye"></i>
|
||||
</span>
|
||||
<span class="post-meta-item-text">{{ print (T "PostViews") (T "SymbolColon") }}</span>
|
||||
<span class="firestore-visitors-count"></span>
|
||||
<span class="post-meta-item-text">
|
||||
{{ print (T "PostViews") (T "SymbolColon") }}
|
||||
</span>
|
||||
{{- end }}
|
||||
{{- if and .Site.Params.busuanzi.enable .Site.Params.busuanzi.postViews }}
|
||||
<span class="post-meta-item" title="{{ T "PostViews" }}" id="busuanzi_container_page_pv">
|
||||
<span class="post-meta-item-icon">
|
||||
<i class="{{ .Site.Params.busuanzi.postViewsIcon }}"></i>
|
||||
<span class="{{ $pageViewCls }}" data-path="{{ .RelPermalink | relLangURL }}"><i class="fa fa-sync fa-spin"></i></span>
|
||||
</span>
|
||||
<span class="post-meta-item-text">{{ print (T "PostViews") (T "SymbolColon") }}</span>
|
||||
<span id="busuanzi_value_page_pv"><i class="fa fa-sync fa-spin"></i></span>
|
||||
</span>
|
||||
{{- end }}
|
@ -15,83 +15,32 @@
|
||||
{{- $pluginJS = replace $pluginJS "${name}" $npm }}
|
||||
{{- $pluginJS = replace $pluginJS "${version}" $js.version }}
|
||||
{{- $pluginJS = replace $pluginJS "${file}" $file }}
|
||||
<script type="text/javascript" src="{{ $pluginJS }}"></script>
|
||||
<script type="text/javascript" src="{{ $pluginJS }}" defer></script>
|
||||
{{- end }}
|
||||
|
||||
<script class="next-config" data-name="main" type="application/json">
|
||||
{
|
||||
"hostname": "theme-next.js.org",
|
||||
"root": "/",
|
||||
"images": "/images",
|
||||
"scheme": "Gemini",
|
||||
"darkmode": true,
|
||||
"version": "8.12.1",
|
||||
"exturl": true,
|
||||
"sidebar":
|
||||
{
|
||||
"position": "left",
|
||||
"display": "post",
|
||||
"padding": 18,
|
||||
"offset": 12
|
||||
},
|
||||
"copycode":
|
||||
{
|
||||
"enable": true,
|
||||
"style": "default"
|
||||
},
|
||||
"bookmark":
|
||||
{
|
||||
"enable": false,
|
||||
"color": "#222",
|
||||
"save": "auto"
|
||||
},
|
||||
"mediumzoom": true,
|
||||
"lazyload": false,
|
||||
"pangu": false,
|
||||
"comments":
|
||||
{
|
||||
"style": "tabs",
|
||||
"active": null,
|
||||
"storage": true,
|
||||
"lazyload": true,
|
||||
"nav": null
|
||||
},
|
||||
"stickytabs": false,
|
||||
"motion":
|
||||
{
|
||||
"enable": false,
|
||||
"async": false,
|
||||
"transition":
|
||||
{
|
||||
"post_block": "fadeIn",
|
||||
"post_header": "fadeInDown",
|
||||
"post_body": "fadeInDown",
|
||||
"coll_header": "fadeInLeft",
|
||||
"sidebar": "fadeInUp"
|
||||
}
|
||||
},
|
||||
"prism": false,
|
||||
"i18n":
|
||||
{
|
||||
"placeholder": "Searching...",
|
||||
"empty": "We didn't find any results for the search: ${query}",
|
||||
"hits_time": "${hits} results found in ${time} ms",
|
||||
"hits": "${hits} results found"
|
||||
},
|
||||
"path": "/search.json",
|
||||
"localsearch":
|
||||
{
|
||||
"enable": true,
|
||||
"trigger": "auto",
|
||||
"top_n_per_article": 1,
|
||||
"unescape": false,
|
||||
"preload": false
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{{ $config := resources.Get "js/config.js" }}
|
||||
{{ $boot := resources.Get "js/next-boot.js" }}
|
||||
{{ $utils := resources.Get "js/utils.js" }}
|
||||
{{ $alljs := (slice $config $boot $utils) | resources.Concat "js/all.js"}}
|
||||
<script defer src="{{ $alljs.RelPermalink }}"></script>
|
||||
{{- $config := resources.Get "js/config.js" | resources.ExecuteAsTemplate "config.js" . }}
|
||||
{{- $motion := resources.Get "js/motion.js" }}
|
||||
{{- $boot := resources.Get "js/next-boot.js" }}
|
||||
{{- $utils := resources.Get "js/utils.js" }}
|
||||
{{- $nextjs := (slice $config $utils $boot ) }}
|
||||
{{- if .Site.Params.motion.enable }}
|
||||
{{ $motionjs := resources.Get "js/motion.js" }}
|
||||
{{ $nextjs = $nextjs | append $motionjs }}
|
||||
{{- end }}
|
||||
{{- if or (eq .Site.Params.shceme "Muse") (eq .Site.Params.shceme "Mist") }}
|
||||
{{ $musejs := resources.Get "js/schemes/muse.js" }}
|
||||
{{ $nextjs = $nextjs | append $musejs }}
|
||||
{{- end }}
|
||||
{{- if .Site.Params.bookmark.enable }}
|
||||
{{- $bookmarkjs := resources.Get "js/bookmark.js" }}
|
||||
{{- $nextjs = $nextjs | append $bookmarkjs }}
|
||||
{{- end }}
|
||||
{{- if .Site.Params.pjax }}
|
||||
{{- $pjaxjs := resources.Get "js/pjax.js" }}
|
||||
{{- $nextjs = $nextjs | append $pjaxjs }}
|
||||
{{- end }}
|
||||
{{- $nextjs = $nextjs | resources.Concat "js/hugo-next.js"}}
|
||||
{{ if hugo.IsProduction }}
|
||||
{{- $nextjs = $nextjs | minify | fingerprint }}
|
||||
{{ end }}
|
||||
<script type="text/javascript" src="{{ $nextjs.RelPermalink }}" defer></script>
|
@ -60,11 +60,10 @@
|
||||
{{- end }}
|
||||
</div>
|
||||
|
||||
{{- $lang := .Scratch.Get "lang" }}
|
||||
{{- with .Site.Params.creativeCommons }}
|
||||
{{- if .sidebar }}
|
||||
<div class="cc-license animated" itemprop="license">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.{{ substr $lang 0 2 }}" class="cc-opacity" rel="noopener" target="_blank" title="{{ T "CCLinkTitle" }}">
|
||||
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.{{ substr $.Site.LanguageCode 0 2 }}" class="cc-opacity" rel="noopener" target="_blank" title="{{ T "CCLinkTitle" }}">
|
||||
<img src="/imgs/cc/{{ .size }}/{{ replace .license "-" "_" }}.svg" alt="{{ T "CCLinkTitle" }}">
|
||||
</a>
|
||||
</div>
|
||||
|
@ -5,8 +5,8 @@ description = "Easily & powerful theme for Hugo engine."
|
||||
homepage = "https://github.com/hugo-next/hugo-theme-next"
|
||||
tags = ["blog", "simple", "dark", "personal", "fast", "theme"]
|
||||
features = ["some", "awesome", "features"]
|
||||
min_version = "0.80.0"
|
||||
demosite = "https://lisenhui.cn"
|
||||
min_version = "0.86.0"
|
||||
demosite = "https://preview.hugo-next.eu.org"
|
||||
|
||||
[author]
|
||||
name = "lisenhui"
|
||||
|
Loading…
Reference in New Issue
Block a user