Merge pull request #89 from dillonzq/feature/documentation
feat(exampleSite): merge en and zh exampleSite
@@ -24,8 +24,3 @@ workflows:
|
|||||||
- build-check:
|
- build-check:
|
||||||
example-site-path: exampleSite
|
example-site-path: exampleSite
|
||||||
theme-path: ../..
|
theme-path: ../..
|
||||||
build-check-exampleSite-zh:
|
|
||||||
jobs:
|
|
||||||
- build-check:
|
|
||||||
example-site-path: exampleSite/zh
|
|
||||||
theme-path: ../../..
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
html {
|
html {
|
||||||
font-family: $global-font-family;
|
font-family: $global-font-family;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
width:100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* scrollbar, only support webkit */
|
/* scrollbar, only support webkit */
|
||||||
|
|||||||
@@ -2,8 +2,7 @@
|
|||||||
.page {
|
.page {
|
||||||
max-width: 780px;
|
max-width: 780px;
|
||||||
|
|
||||||
.post-toc {
|
#toc-auto {
|
||||||
width: 300px;
|
|
||||||
margin-left: 800px;
|
margin-left: 800px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,8 +12,7 @@
|
|||||||
.page {
|
.page {
|
||||||
max-width: 680px;
|
max-width: 680px;
|
||||||
|
|
||||||
.post-toc {
|
#toc-auto {
|
||||||
width: 240px;
|
|
||||||
margin-left: 700px;
|
margin-left: 700px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,8 +22,7 @@
|
|||||||
.page {
|
.page {
|
||||||
max-width: 560px;
|
max-width: 560px;
|
||||||
|
|
||||||
.post-toc {
|
#toc-auto {
|
||||||
width: 180px;
|
|
||||||
margin-left: 580px;
|
margin-left: 580px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,11 +38,11 @@
|
|||||||
.page {
|
.page {
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
|
|
||||||
.post-toc {
|
#toc-auto {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-toc-mobile {
|
#toc-static {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
line-height: 3rem;
|
line-height: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meta {
|
.post-meta {
|
||||||
font-size: .88rem;
|
font-size: .875rem;
|
||||||
color: $global-font-secondary-color;
|
color: $global-font-secondary-color;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
|
|||||||
@@ -30,8 +30,7 @@
|
|||||||
font-size: 1.6rem;
|
font-size: 1.6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.meta {
|
.post-meta {
|
||||||
font-size: .875rem !important;
|
|
||||||
a {
|
a {
|
||||||
color: $global-font-secondary-color !important;
|
color: $global-font-secondary-color !important;
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
.post-toc {
|
#toc-auto {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 360px;
|
width: 100%;
|
||||||
margin-left: 1000px;
|
margin-left: 1000px;
|
||||||
padding: 0 .8rem;
|
padding: 0 .8rem;
|
||||||
border-left: 1px solid $global-border-color;
|
border-left: 1px solid $global-border-color;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
top: $post-toc-top;
|
top: if($header-normal-mode-desktop, 7rem, 12rem);
|
||||||
|
|
||||||
.dark-theme & {
|
.dark-theme & {
|
||||||
border-left: 1px solid $global-border-color-dark;
|
border-left: 1px solid $global-border-color-dark;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-toc-title {
|
.toc-title {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin: .8rem 0;
|
margin: .8rem 0;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-toc-content {
|
.toc-content {
|
||||||
&.always-active ul {
|
&.always-active ul {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@@ -73,13 +73,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-toc-mobile {
|
#toc-static {
|
||||||
display: none;
|
display: none;
|
||||||
padding-top: .8rem;
|
padding-top: .8rem;
|
||||||
|
|
||||||
details {
|
details {
|
||||||
summary {
|
summary {
|
||||||
.post-toc-title {
|
.toc-title {
|
||||||
display: block;
|
display: block;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.post-toc-content {
|
.toc-content {
|
||||||
border: 2px solid $code-background-color;
|
border: 2px solid $code-background-color;
|
||||||
|
|
||||||
>nav>ul {
|
>nav>ul {
|
||||||
|
|||||||
@@ -51,9 +51,17 @@ $header-height-desktop: 4rem !default;
|
|||||||
$header-height-mobile: 4rem !default;
|
$header-height-mobile: 4rem !default;
|
||||||
|
|
||||||
// Color of the header background
|
// Color of the header background
|
||||||
$header-background-color: #fafafa !default;
|
$header-background-color: #f8f8f8 !default;
|
||||||
$header-background-color-dark: #252627 !default;
|
$header-background-color-dark: #252627 !default;
|
||||||
|
|
||||||
|
// Position of the header
|
||||||
|
$header-position-desktop: if($header-normal-mode-desktop, static, fixed) !default;
|
||||||
|
$header-position-mobile: if($header-normal-mode-mobile, static, fixed) !default;
|
||||||
|
|
||||||
|
// Top of the page padding
|
||||||
|
$page-padding-top-desktop: if($header-normal-mode-desktop, 1rem, 6rem) !default;
|
||||||
|
$page-padding-top-mobile: if($header-normal-mode-mobile, 1rem, 6rem) !default;
|
||||||
|
|
||||||
// Color of the hover header item
|
// Color of the hover header item
|
||||||
$header-hover-color: #161209 !default;
|
$header-hover-color: #161209 !default;
|
||||||
$header-hover-color-dark: #fff !default;
|
$header-hover-color-dark: #fff !default;
|
||||||
|
|||||||
@@ -1,30 +1,14 @@
|
|||||||
@charset 'utf-8';
|
@charset 'utf-8';
|
||||||
|
|
||||||
$home-profile: {{- if .Site.Params.home.profile.enable -}}true{{ else }}false{{ end }};
|
$home-profile: {{ if .Site.Params.home.profile.enable }}true{{ else }}false{{ end }};
|
||||||
$home-posts: {{- if .Site.Params.home.posts.enable -}}true{{ else }}false{{ end }};
|
$home-posts: {{ if .Site.Params.home.posts.enable }}true{{ else }}false{{ end }};
|
||||||
|
$header-normal-mode-desktop: {{ if eq .Site.Params.header.desktopMode "normal" }}true{{ else }}false{{ end }};
|
||||||
{{- if eq .Site.Params.header.desktopMode "normal" -}}
|
$header-normal-mode-mobile: {{ if eq .Site.Params.header.mobileMode "normal" }}true{{ else }}false{{ end }};
|
||||||
$header-position-desktop: static;
|
|
||||||
$page-padding-top-desktop: 1rem;
|
|
||||||
$post-toc-top: 7rem;
|
|
||||||
{{- else -}}
|
|
||||||
$header-position-desktop: fixed;
|
|
||||||
$page-padding-top-desktop: 6rem;
|
|
||||||
$post-toc-top: 12rem;
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- if eq .Site.Params.header.mobileMode "normal" -}}
|
|
||||||
$header-position-mobile: static;
|
|
||||||
$page-padding-top-mobile: 1rem;
|
|
||||||
{{- else -}}
|
|
||||||
$header-position-mobile: fixed;
|
|
||||||
$page-padding-top-mobile: 6rem;
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
@import "_variables";
|
@import "_variables";
|
||||||
|
|
||||||
{{- if fileExists "config/css/_custom.scss" -}}
|
{{- if fileExists "config/css/_override.scss" -}}
|
||||||
@import "_custom";
|
@import "_override";
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
@import "_core/normalize";
|
@import "_core/normalize";
|
||||||
|
|||||||
@@ -1,32 +1,610 @@
|
|||||||
baseURL = "/"
|
baseURL = "/"
|
||||||
# website language
|
# [en, zh, ...] determines default content language
|
||||||
languageCode = "en"
|
# [en, zh, ...] 设置默认的语言
|
||||||
# [en, zh, ...] determines which i18n file to use
|
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
# website title
|
|
||||||
title = "LoveIt Theme"
|
|
||||||
# theme
|
# theme
|
||||||
|
# 主题
|
||||||
theme = "LoveIt"
|
theme = "LoveIt"
|
||||||
# whether to use git commit log to generate lastmod record
|
# themes directory
|
||||||
enableGitInfo = false
|
# 主题目录
|
||||||
# whether to include chinese/japanese/korean
|
themesDir = "../.."
|
||||||
hasCJKLanguage = false
|
|
||||||
# default amount of posts in each pages
|
[languages]
|
||||||
paginate = 12
|
[languages.en]
|
||||||
# whether to use emoji code
|
weight = 1
|
||||||
enableEmoji = true
|
# language code
|
||||||
# whether to use robots.txt
|
languageCode = "en"
|
||||||
enableRobotsTXT = true
|
# website title
|
||||||
# [UA-XXXXXXXX-X] google analytics code
|
title = "LoveIt Theme"
|
||||||
googleAnalytics = ""
|
# whether to use git commit log to generate lastmod record
|
||||||
# copyright description used only for seo schema
|
enableGitInfo = false
|
||||||
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
|
# whether to include chinese/japanese/korean
|
||||||
# date format
|
hasCJKLanguage = false
|
||||||
dateFormatToUse = "2006-01-02"
|
# default amount of posts in each pages
|
||||||
|
paginate = 12
|
||||||
|
# whether to use emoji code
|
||||||
|
enableEmoji = true
|
||||||
|
# whether to use robots.txt
|
||||||
|
enableRobotsTXT = true
|
||||||
|
# [UA-XXXXXXXX-X] google analytics code
|
||||||
|
googleAnalytics = ""
|
||||||
|
# copyright description used only for seo schema
|
||||||
|
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
|
||||||
|
# date format
|
||||||
|
dateFormatToUse = "2006-01-02"
|
||||||
|
# Menu Info
|
||||||
|
[languages.en.menu]
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "posts"
|
||||||
|
name = "Posts"
|
||||||
|
url = "/posts/"
|
||||||
|
weight = 1
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "tags"
|
||||||
|
name = "Tags"
|
||||||
|
url = "/tags/"
|
||||||
|
weight = 2
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "categories"
|
||||||
|
name = "Categories"
|
||||||
|
url = "/categories/"
|
||||||
|
weight = 3
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "about"
|
||||||
|
name = "About"
|
||||||
|
url = "/about/"
|
||||||
|
weight = 4
|
||||||
|
[[languages.en.menu.main]]
|
||||||
|
identifier = "zh"
|
||||||
|
pre = '<i class="fas fa-language fa-fw"></i>'
|
||||||
|
name = ""
|
||||||
|
title = "简体中文"
|
||||||
|
url = "/zh/"
|
||||||
|
weight = 5
|
||||||
|
[languages.en.params]
|
||||||
|
# LoveIt theme version
|
||||||
|
version = "0.1.X"
|
||||||
|
# site description
|
||||||
|
description = "About LoveIt Theme"
|
||||||
|
# site keywords
|
||||||
|
keywords = ["Theme", "Hugo"]
|
||||||
|
# site default theme ("light", "dark", "auto")
|
||||||
|
defaultTheme = "auto"
|
||||||
|
# public git repo url to link lastmod git commit only then enableGitInfo is true
|
||||||
|
gitRepo = ""
|
||||||
|
# Header info
|
||||||
|
[languages.en.params.header]
|
||||||
|
# desktop header mode ("fixed", "normal", "auto")
|
||||||
|
desktopMode = "fixed"
|
||||||
|
# mobile header mode ("fixed", "normal", "auto")
|
||||||
|
mobileMode = "auto"
|
||||||
|
# Footer Copyright Info
|
||||||
|
[languages.en.params.footer]
|
||||||
|
# Site creation time
|
||||||
|
since = 2019
|
||||||
|
# ICP info only in China (HTML format is allowed)
|
||||||
|
icp = ""
|
||||||
|
# license info (HTML format is allowed)
|
||||||
|
license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
|
||||||
|
# Home Page Info
|
||||||
|
[languages.en.params.home]
|
||||||
|
# Home Page Profile
|
||||||
|
[languages.en.params.home.profile]
|
||||||
|
enable = true
|
||||||
|
# Gravatar Email for preferred avatar in home page
|
||||||
|
gravatarEmail = ""
|
||||||
|
# URL of avatar shown in home page
|
||||||
|
avatarURL = "images/avatar.png"
|
||||||
|
# subtitle shown in home page
|
||||||
|
subtitle = "A Clean, Elegant but Advanced Hugo Theme"
|
||||||
|
# whether to use typeit animation for subtitle
|
||||||
|
typeit = true
|
||||||
|
# whether to show social links
|
||||||
|
social = true
|
||||||
|
# Home Page Posts
|
||||||
|
[languages.en.params.home.posts]
|
||||||
|
enable = true
|
||||||
|
# special amount of posts in each home posts page
|
||||||
|
paginate = 6
|
||||||
|
# default behavior when you don't set "hiddenFromHomePage" in front matter
|
||||||
|
defaultHiddenFromHomePage = false
|
||||||
|
# Social Info in home page
|
||||||
|
[languages.en.params.social]
|
||||||
|
GitHub = "xxxx"
|
||||||
|
Linkedin = "xxxx"
|
||||||
|
Twitter = "xxxx"
|
||||||
|
Instagram = "xxxx"
|
||||||
|
Email = "xxxx@xxxx.com"
|
||||||
|
Facebook = "xxxx"
|
||||||
|
Telegram = "xxxx"
|
||||||
|
# Medium = "xxxx"
|
||||||
|
# Gitlab = "xxxx"
|
||||||
|
Youtubelegacy = "xxxx"
|
||||||
|
# Youtubecustom = "xxxx"
|
||||||
|
# Youtubechannel = "xxxx"
|
||||||
|
# Tumblr ="xxxx"
|
||||||
|
# Quora = "xxxx"
|
||||||
|
# Keybase = "xxxx"
|
||||||
|
# Pinterest = "xxxx"
|
||||||
|
# Reddit = "xxxx"
|
||||||
|
# Codepen = "xxxx"
|
||||||
|
# FreeCodeCamp = "xxxx"
|
||||||
|
# Bitbucket = "xxxx"
|
||||||
|
# Stackoverflow = "xxxx"
|
||||||
|
# Weibo = "xxxx"
|
||||||
|
# Odnoklassniki = "xxxx"
|
||||||
|
# VK = "xxxx"
|
||||||
|
# Flickr = "xxxx"
|
||||||
|
# Xing = "xxxx"
|
||||||
|
# Snapchat = "xxxx"
|
||||||
|
# Soundcloud = "xxxx"
|
||||||
|
# Spotify = "xxxx"
|
||||||
|
# Bandcamp = "xxxx"
|
||||||
|
# Paypal = "xxxx"
|
||||||
|
# Fivehundredpx = "xxxx"
|
||||||
|
# Mix = "xxxx"
|
||||||
|
# Goodreads = "xxxx"
|
||||||
|
# Lastfm = "xxxx"
|
||||||
|
# Foursquare = "xxxx"
|
||||||
|
# Hackernews = "xxxx"
|
||||||
|
# Kickstarter = "xxxx"
|
||||||
|
# Patreon = "xxxx"
|
||||||
|
# Steam = "xxxx"
|
||||||
|
# Twitch = "xxxx"
|
||||||
|
# Strava = "xxxx"
|
||||||
|
# Skype = "xxxx"
|
||||||
|
# Whatsapp = "xxxx"
|
||||||
|
# Zhihu = "xxxx"
|
||||||
|
# Douban = "xxxx"
|
||||||
|
# Angellist = "xxxx"
|
||||||
|
# Slidershare = "xxxx"
|
||||||
|
# Jsfiddle = "xxxx"
|
||||||
|
# Deviantart = "xxxx"
|
||||||
|
# Behance = "xxxx"
|
||||||
|
# Dribble = "xxxx"
|
||||||
|
# Wordpress = "xxxx"
|
||||||
|
# Vine = "xxxx"
|
||||||
|
# Googlescholar = "xxxx"
|
||||||
|
# Researchgate = "xxxx"
|
||||||
|
# Mastodon = "xxxx"
|
||||||
|
# MastodonPrefix = "https://mastodon.technology/"
|
||||||
|
# Thingiverse = "xxxx"
|
||||||
|
# Devto = "xxxx"
|
||||||
|
# Gitea = "xxxx"
|
||||||
|
# XMPP = "xxxx"
|
||||||
|
# Matrix = "xxxx"
|
||||||
|
# Bilibili = "xxxx"
|
||||||
|
# Page config
|
||||||
|
[languages.en.params.page]
|
||||||
|
# whether to show social share links in post page
|
||||||
|
socialShare = true
|
||||||
|
# whether to show link to Raw Markdown content of the post
|
||||||
|
linkToMarkdown = true
|
||||||
|
# Social Share Links in post page
|
||||||
|
[languages.en.params.share]
|
||||||
|
enable = true
|
||||||
|
Twitter = true
|
||||||
|
Facebook = true
|
||||||
|
Linkedin = true
|
||||||
|
Whatsapp = true
|
||||||
|
Pinterest = true
|
||||||
|
# Tumblr = true
|
||||||
|
HackerNews = true
|
||||||
|
# Reddit = true
|
||||||
|
# VK = true
|
||||||
|
# Buffer = true
|
||||||
|
# Xing = true
|
||||||
|
# Line = true
|
||||||
|
# Instapaper = true
|
||||||
|
# Pocket = true
|
||||||
|
# Digg = true
|
||||||
|
# Stumbleupon = true
|
||||||
|
# Flipboard = true
|
||||||
|
# Weibo = true
|
||||||
|
# Renren = true
|
||||||
|
# Myspace = true
|
||||||
|
# Blogger = true
|
||||||
|
# Baidu = true
|
||||||
|
# Odnoklassniki = true
|
||||||
|
# Evernote = true
|
||||||
|
# Skype = true
|
||||||
|
# Trello = true
|
||||||
|
# Mix = true
|
||||||
|
# mathematical formulas (KaTeX)
|
||||||
|
[languages.en.params.math]
|
||||||
|
enable = true
|
||||||
|
# default inline delimiter is $ ... $ and \\( ... \\)
|
||||||
|
inlineLeftDelimiter = ""
|
||||||
|
inlineRightDelimiter = ""
|
||||||
|
# default block delimiter is $$ ... $$ and \\[ ... \\]
|
||||||
|
blockLeftDelimiter = ""
|
||||||
|
blockRightDelimiter = ""
|
||||||
|
# KaTeX extension copy_tex
|
||||||
|
copyTex = true
|
||||||
|
# KaTeX extension mhchem
|
||||||
|
mhchem = true
|
||||||
|
# CSS and JS Files CDN
|
||||||
|
[languages.en.params.cdn]
|
||||||
|
## for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
|
||||||
|
fontawesomeFreeCSS = ''
|
||||||
|
animateCSS = ''
|
||||||
|
gitalkCSS = ''
|
||||||
|
gitalkJS = ''
|
||||||
|
valineJS = ''
|
||||||
|
lazysizesJS = ''
|
||||||
|
smoothScrollJS = ''
|
||||||
|
sharerJS = ''
|
||||||
|
katexCSS = ''
|
||||||
|
katexJS = ''
|
||||||
|
katexAutoRenderJS = ''
|
||||||
|
katexCopyTexCSS = ''
|
||||||
|
katexCopyTexJS = ''
|
||||||
|
katexMhchemJS = ''
|
||||||
|
mermaidJS = ''
|
||||||
|
echartsJS = ''
|
||||||
|
echartsMacaronsJS = ''
|
||||||
|
typeitJS = ''
|
||||||
|
aplayerCSS = ''
|
||||||
|
aplayerJS = ''
|
||||||
|
metingJS = ''
|
||||||
|
# site verification code for Google/Bing/Yandex/Pinterest/Baidu
|
||||||
|
[languages.en.params.verification]
|
||||||
|
google = ""
|
||||||
|
bing = ""
|
||||||
|
yandex = ""
|
||||||
|
pinterest = ""
|
||||||
|
baidu = ""
|
||||||
|
# Publisher Info just for SEO
|
||||||
|
[languages.en.params.publisher]
|
||||||
|
name = "xxxx"
|
||||||
|
[languages.en.params.publisher.logo]
|
||||||
|
url = "logo.png"
|
||||||
|
width = 127
|
||||||
|
height = 40
|
||||||
|
# Website Log Info just for SEO
|
||||||
|
[languages.en.params.logo]
|
||||||
|
url = "logo.png"
|
||||||
|
width = 127
|
||||||
|
height = 40
|
||||||
|
# Website Image Info just for SEO
|
||||||
|
[languages.en.params.image]
|
||||||
|
url = "cover.png"
|
||||||
|
width = 800
|
||||||
|
height = 600
|
||||||
|
# Comment Config
|
||||||
|
[languages.en.params.comment]
|
||||||
|
enable = true
|
||||||
|
# Disqus Comment Config (https://disqus.com/)
|
||||||
|
[languages.en.params.comment.disqus]
|
||||||
|
# Disqus shortname to use Disqus in posts
|
||||||
|
shortname = "dillonzq"
|
||||||
|
# Gittalk Comment Config (https://github.com/gitalk/gitalk)
|
||||||
|
[languages.en.params.comment.gitalk]
|
||||||
|
owner = ""
|
||||||
|
repo = ""
|
||||||
|
clientId = ""
|
||||||
|
clientSecret = ""
|
||||||
|
# Valine Comment Config (https://github.com/xCss/Valine)
|
||||||
|
[languages.en.params.comment.valine]
|
||||||
|
enable = false
|
||||||
|
appId = ""
|
||||||
|
appKey = ""
|
||||||
|
placeholder = "Your comment ..."
|
||||||
|
notify = false
|
||||||
|
verify = true
|
||||||
|
avatar = "mp"
|
||||||
|
# meta= ""
|
||||||
|
pageSize = 10
|
||||||
|
visitor = true
|
||||||
|
recordIP = true
|
||||||
|
# Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
|
||||||
|
[languages.en.params.comment.facebook]
|
||||||
|
enable = false
|
||||||
|
width = "100%"
|
||||||
|
numPosts = 10
|
||||||
|
appId = ""
|
||||||
|
languageCode = "en_US"
|
||||||
|
|
||||||
|
[languages.zh]
|
||||||
|
weight = 2
|
||||||
|
# 网站语言
|
||||||
|
languageCode = "zh"
|
||||||
|
# 网站标题
|
||||||
|
title = "LoveIt 主题"
|
||||||
|
# 是否使用 git 信息来生成文章的上次修改时间
|
||||||
|
enableGitInfo = false
|
||||||
|
# 是否包括中日韩文字
|
||||||
|
hasCJKLanguage = true
|
||||||
|
# 默认每页列表显示的文章数目
|
||||||
|
paginate = 12
|
||||||
|
# 是否使用 emoji 代码
|
||||||
|
enableEmoji = true
|
||||||
|
# 是否使用 robots.txt
|
||||||
|
enableRobotsTXT = true
|
||||||
|
# [UA-XXXXXXXX-X] 谷歌分析代号
|
||||||
|
googleAnalytics = ""
|
||||||
|
# 版权描述,仅仅用于 SEO
|
||||||
|
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
|
||||||
|
# 日期格式
|
||||||
|
dateFormatToUse = "2006-01-02"
|
||||||
|
# 菜单信息
|
||||||
|
[languages.zh.menu]
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = "posts"
|
||||||
|
name = "文章"
|
||||||
|
url = "/posts/"
|
||||||
|
weight = 1
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = "tags"
|
||||||
|
name = "标签"
|
||||||
|
url = "/tags/"
|
||||||
|
weight = 2
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = "categories"
|
||||||
|
name = "分类"
|
||||||
|
url = "/categories/"
|
||||||
|
weight = 3
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = "about"
|
||||||
|
name = "关于"
|
||||||
|
url = "/about/"
|
||||||
|
weight = 4
|
||||||
|
[[languages.zh.menu.main]]
|
||||||
|
identifier = "en"
|
||||||
|
pre = '<i class="fas fa-language fa-fw"></i>'
|
||||||
|
name = ""
|
||||||
|
title = "English"
|
||||||
|
url = "../"
|
||||||
|
weight = 5
|
||||||
|
[languages.zh.params]
|
||||||
|
# LoveIt 主题版本
|
||||||
|
version = "0.1.X"
|
||||||
|
# 网站描述
|
||||||
|
description = "关于 LoveIt 主题"
|
||||||
|
# 网站关键词
|
||||||
|
keywords = ["Theme", "Hugo"]
|
||||||
|
# 网站默认主题 ("light", "dark", "auto")
|
||||||
|
defaultTheme = "auto"
|
||||||
|
# 用于生成文章上次修改时间的公共 git 仓库路径,仅在 enableGitInfo 设为 true 时有效
|
||||||
|
gitRepo = ""
|
||||||
|
# 页面头部导航栏信息
|
||||||
|
[languages.zh.params.header]
|
||||||
|
# 桌面端导航栏模式 ("fixed", "normal", "auto")
|
||||||
|
desktopMode = "fixed"
|
||||||
|
# 移动端导航栏模式 ("fixed", "normal", "auto")
|
||||||
|
mobileMode = "auto"
|
||||||
|
# 页面底部版权信息设置
|
||||||
|
[languages.zh.params.footer]
|
||||||
|
# 网站创立年份
|
||||||
|
since = 2019
|
||||||
|
# ICP 备案信息,仅在中国使用 (允许使用 HTML 格式)
|
||||||
|
icp = ""
|
||||||
|
# 许可协议信息 (允许使用 HTML 格式)
|
||||||
|
license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
|
||||||
|
# 主页信息设置
|
||||||
|
[languages.zh.params.home]
|
||||||
|
# 主页个人信息
|
||||||
|
[languages.zh.params.home.profile]
|
||||||
|
enable = true
|
||||||
|
# Gravatar 邮箱,用于优先在主页显示的头像
|
||||||
|
gravatarEmail = ""
|
||||||
|
# 主页显示头像的 URL
|
||||||
|
avatarURL = "images/avatar.png"
|
||||||
|
# 主页显示的网站副标题
|
||||||
|
subtitle = "一个简洁、优雅且高效的 Hugo 主题"
|
||||||
|
# 是否为副标题显示打字机动画
|
||||||
|
typeit = true
|
||||||
|
# 是否显示社交账号
|
||||||
|
social = true
|
||||||
|
# 主页文章列表
|
||||||
|
[languages.zh.params.home.posts]
|
||||||
|
enable = true
|
||||||
|
# 主页每页显示文章数量
|
||||||
|
paginate = 6
|
||||||
|
# 当你没有在文章前面设置 "hiddenFromHomePage" 时的默认行为
|
||||||
|
defaultHiddenFromHomePage = false
|
||||||
|
# 主页的社交信息设置
|
||||||
|
[languages.zh.params.social]
|
||||||
|
GitHub = "xxxx"
|
||||||
|
# Linkedin = "xxxx"
|
||||||
|
Twitter = "xxxx"
|
||||||
|
Instagram = "xxxx"
|
||||||
|
Email = "xxxx@example.com"
|
||||||
|
# Facebook = "xxxx"
|
||||||
|
# Telegram = "xxxx"
|
||||||
|
# Medium = "xxxx"
|
||||||
|
# Gitlab = "xxxx"
|
||||||
|
# Youtubelegacy = "xxxx"
|
||||||
|
# Youtubecustom = "xxxx"
|
||||||
|
# Youtubechannel = "xxxx"
|
||||||
|
# Tumblr ="xxxx"
|
||||||
|
# Quora = "xxxx"
|
||||||
|
# Keybase = "xxxx"
|
||||||
|
# Pinterest = "xxxx"
|
||||||
|
# Reddit = "xxxx"
|
||||||
|
# Codepen = "xxxx"
|
||||||
|
# FreeCodeCamp = "xxxx"
|
||||||
|
# Bitbucket = "xxxx"
|
||||||
|
# Stackoverflow = "xxxx"
|
||||||
|
Weibo = "xxxx"
|
||||||
|
# Odnoklassniki = "xxxx"
|
||||||
|
# VK = "xxxx"
|
||||||
|
# Flickr = "xxxx"
|
||||||
|
# Xing = "xxxx"
|
||||||
|
# Snapchat = "xxxx"
|
||||||
|
# Soundcloud = "xxxx"
|
||||||
|
# Spotify = "xxxx"
|
||||||
|
# Bandcamp = "xxxx"
|
||||||
|
# Paypal = "xxxx"
|
||||||
|
# Fivehundredpx = "xxxx"
|
||||||
|
# Mix = "xxxx"
|
||||||
|
# Goodreads = "xxxx"
|
||||||
|
# Lastfm = "xxxx"
|
||||||
|
# Foursquare = "xxxx"
|
||||||
|
# Hackernews = "xxxx"
|
||||||
|
# Kickstarter = "xxxx"
|
||||||
|
# Patreon = "xxxx"
|
||||||
|
Steam = "xxxx"
|
||||||
|
# Twitch = "xxxx"
|
||||||
|
# Strava = "xxxx"
|
||||||
|
# Skype = "xxxx"
|
||||||
|
# Whatsapp = "xxxx"
|
||||||
|
Zhihu = "xxxx"
|
||||||
|
# Douban = "xxxx"
|
||||||
|
# Angellist = "xxxx"
|
||||||
|
# Slidershare = "xxxx"
|
||||||
|
# Jsfiddle = "xxxx"
|
||||||
|
# Deviantart = "xxxx"
|
||||||
|
# Behance = "xxxx"
|
||||||
|
# Dribble = "xxxx"
|
||||||
|
# Wordpress = "xxxx"
|
||||||
|
# Vine = "xxxx"
|
||||||
|
# Googlescholar = "xxxx"
|
||||||
|
# Researchgate = "xxxx"
|
||||||
|
# Mastodon = "@xxxx"
|
||||||
|
# MastodonPrefix = "https://mastodon.technology/"
|
||||||
|
# Thingiverse = "xxxx"
|
||||||
|
# Devto = "xxxx"
|
||||||
|
# Gitea = "xxxx"
|
||||||
|
# XMPP = "xxxx@example.com"
|
||||||
|
# Matrix = "xxxx"
|
||||||
|
Bilibili = "xxxx"
|
||||||
|
# 文章页面配置
|
||||||
|
[languages.zh.params.page]
|
||||||
|
# 在文章页面是否使用分享功能
|
||||||
|
socialShare = true
|
||||||
|
# 是否在文章页面显示原始 Markdown 文档链接
|
||||||
|
linkToMarkdown = true
|
||||||
|
# 文章页面的分享信息设置
|
||||||
|
[languages.zh.params.share]
|
||||||
|
enable = true
|
||||||
|
Twitter = true
|
||||||
|
Facebook = true
|
||||||
|
# Linkedin = true
|
||||||
|
# Whatsapp = true
|
||||||
|
# Pinterest = true
|
||||||
|
# Tumblr = true
|
||||||
|
# HackerNews = true
|
||||||
|
# Reddit = true
|
||||||
|
# VK = true
|
||||||
|
# Buffer = true
|
||||||
|
# Xing = true
|
||||||
|
# Line = true
|
||||||
|
# Instapaper = true
|
||||||
|
# Pocket = true
|
||||||
|
# Digg = true
|
||||||
|
# Stumbleupon = true
|
||||||
|
# Flipboard = true
|
||||||
|
Weibo = true
|
||||||
|
Renren = true
|
||||||
|
# Myspace = true
|
||||||
|
# Blogger = true
|
||||||
|
Baidu = true
|
||||||
|
# Odnoklassniki = true
|
||||||
|
Evernote = true
|
||||||
|
# Skype = true
|
||||||
|
# Trello = true
|
||||||
|
# Mix = true
|
||||||
|
# 数学公式 (KaTeX https://katex.org/)
|
||||||
|
[languages.zh.params.math]
|
||||||
|
enable = true
|
||||||
|
# 默认内联定界符是 $ ... $ 和 \\( ... \\)
|
||||||
|
inlineLeftDelimiter = ""
|
||||||
|
inlineRightDelimiter = ""
|
||||||
|
# 默认块定界符是 $$ ... $$ 和 \\[ ... \\]
|
||||||
|
blockLeftDelimiter = ""
|
||||||
|
blockRightDelimiter = ""
|
||||||
|
# KaTeX 插件 copy_tex
|
||||||
|
copyTex = true
|
||||||
|
# KaTeX 插件 mhchem
|
||||||
|
mhchem = true
|
||||||
|
# CSS 和 JS 文件的 CDN 设置
|
||||||
|
[languages.zh.params.cdn]
|
||||||
|
## 例如 '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
|
||||||
|
fontawesomeFreeCSS = ''
|
||||||
|
animateCSS = ''
|
||||||
|
gitalkCSS = ''
|
||||||
|
gitalkJS = ''
|
||||||
|
valineJS = ''
|
||||||
|
lazysizesJS = ''
|
||||||
|
smoothScrollJS = ''
|
||||||
|
sharerJS = ''
|
||||||
|
katexCSS = ''
|
||||||
|
katexJS = ''
|
||||||
|
katexAutoRenderJS = ''
|
||||||
|
katexCopyTexCSS = ''
|
||||||
|
katexCopyTexJS = ''
|
||||||
|
katexMhchemJS = ''
|
||||||
|
mermaidJS = ''
|
||||||
|
echartsJS = ''
|
||||||
|
echartsMacaronsJS = ''
|
||||||
|
typeitJS = ''
|
||||||
|
aplayerCSS = ''
|
||||||
|
aplayerJS = ''
|
||||||
|
metingJS = ''
|
||||||
|
# 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu
|
||||||
|
[languages.zh.params.verification]
|
||||||
|
google = ""
|
||||||
|
bing = ""
|
||||||
|
yandex = ""
|
||||||
|
pinterest = ""
|
||||||
|
baidu = ""
|
||||||
|
# 出版者信息,仅用于 SEO
|
||||||
|
[languages.zh.params.publisher]
|
||||||
|
name = "xxxx"
|
||||||
|
[languages.zh.params.publisher.logo]
|
||||||
|
url = "logo.png"
|
||||||
|
width = 127
|
||||||
|
height = 40
|
||||||
|
# 网站图标信息,仅用于 SEO
|
||||||
|
[languages.zh.params.logo]
|
||||||
|
url = "logo.png"
|
||||||
|
width = 127
|
||||||
|
height = 40
|
||||||
|
# 网站图标信息,仅用于 SEO
|
||||||
|
[languages.zh.params.image]
|
||||||
|
url = "cover.png"
|
||||||
|
width = 800
|
||||||
|
height = 600
|
||||||
|
# 评论系统设置
|
||||||
|
[languages.zh.params.comment]
|
||||||
|
enable = true
|
||||||
|
# Disqus 评论系统设置 (https://disqus.com/)
|
||||||
|
[languages.zh.params.comment.disqus]
|
||||||
|
# Disqus 的用户名,用来在文章中启用 Disqus 评论系统
|
||||||
|
shortname = "dillonzq"
|
||||||
|
# Gittalk 评论系统设置 (https://github.com/gitalk/gitalk)
|
||||||
|
[languages.zh.params.comment.gitalk]
|
||||||
|
owner = ""
|
||||||
|
repo = ""
|
||||||
|
clientId = ""
|
||||||
|
clientSecret = ""
|
||||||
|
# Valine 评论系统设置 (https://github.com/xCss/Valine)
|
||||||
|
[languages.zh.params.comment.valine]
|
||||||
|
enable = false
|
||||||
|
appId = ""
|
||||||
|
appKey = ""
|
||||||
|
placeholder = "你的评论 ..."
|
||||||
|
notify = false
|
||||||
|
verify = true
|
||||||
|
avatar = "mp"
|
||||||
|
# meta= ""
|
||||||
|
pageSize = 10
|
||||||
|
visitor = true
|
||||||
|
recordIP = true
|
||||||
|
# Facebook 评论系统设置 (https://developers.facebook.com/docs/plugins/comments)
|
||||||
|
[languages.zh.params.comment.facebook]
|
||||||
|
enable = false
|
||||||
|
width = "100%"
|
||||||
|
numPosts = 10
|
||||||
|
appId = ""
|
||||||
|
languageCode = "en_US"
|
||||||
|
|
||||||
# Markup related configuration in Hugo
|
# Markup related configuration in Hugo
|
||||||
|
# Hugo 解析文档的配置
|
||||||
[markup]
|
[markup]
|
||||||
# Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
|
# Syntax Highlighting (https://gohugo.io/content-management/syntax-highlighting)
|
||||||
|
# 代码高亮设置 (https://gohugo.io/content-management/syntax-highlighting)
|
||||||
[markup.highlight]
|
[markup.highlight]
|
||||||
codeFences = true
|
codeFences = true
|
||||||
guessSyntax = true
|
guessSyntax = true
|
||||||
@@ -37,6 +615,7 @@ dateFormatToUse = "2006-01-02"
|
|||||||
style = "monokai"
|
style = "monokai"
|
||||||
tabWidth = 4
|
tabWidth = 4
|
||||||
# Goldmark is from Hugo 0.60 the default library used for Markdown
|
# Goldmark is from Hugo 0.60 the default library used for Markdown
|
||||||
|
# Goldmark 是 Hugo 0.60 以来的默认 Markdown 解析库
|
||||||
[markup.goldmark]
|
[markup.goldmark]
|
||||||
[markup.goldmark.extensions]
|
[markup.goldmark.extensions]
|
||||||
definitionList = true
|
definitionList = true
|
||||||
@@ -48,321 +627,35 @@ dateFormatToUse = "2006-01-02"
|
|||||||
typographer = true
|
typographer = true
|
||||||
[markup.goldmark.renderer]
|
[markup.goldmark.renderer]
|
||||||
# whether to use HTML tags directly in the document
|
# whether to use HTML tags directly in the document
|
||||||
|
# 是否在文档中直接使用 HTML 标签
|
||||||
unsafe = true
|
unsafe = true
|
||||||
# Table Of Contents settings
|
# Table Of Contents settings
|
||||||
|
# 目录设置
|
||||||
[markup.tableOfContents]
|
[markup.tableOfContents]
|
||||||
startLevel = 2
|
startLevel = 2
|
||||||
endLevel = 6
|
endLevel = 6
|
||||||
|
|
||||||
# Author Info
|
# Author Info
|
||||||
|
# 作者信息
|
||||||
[author]
|
[author]
|
||||||
name = "xxxx"
|
name = "xxxx"
|
||||||
link = ""
|
link = ""
|
||||||
|
|
||||||
# Sitemap Info
|
# Sitemap Info
|
||||||
|
# 网站地图信息
|
||||||
[sitemap]
|
[sitemap]
|
||||||
changefreq = "weekly"
|
changefreq = "weekly"
|
||||||
filename = "sitemap.xml"
|
filename = "sitemap.xml"
|
||||||
priority = 0.5
|
priority = 0.5
|
||||||
|
|
||||||
# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
|
# Permalinks Info (https://gohugo.io/content-management/urls/#permalinks)
|
||||||
|
# Permalinks 信息 (https://gohugo.io/content-management/urls/#permalinks)
|
||||||
[Permalinks]
|
[Permalinks]
|
||||||
posts = ":year/:month/:filename"
|
# posts = ":year/:month/:filename"
|
||||||
|
posts = ":filename"
|
||||||
# Menu Info
|
|
||||||
[menu]
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "posts"
|
|
||||||
name = "Posts"
|
|
||||||
url = "posts"
|
|
||||||
weight = 1
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "tags"
|
|
||||||
name = "Tags"
|
|
||||||
url = "tags"
|
|
||||||
weight = 2
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "categories"
|
|
||||||
name = "Categories"
|
|
||||||
url = "categories"
|
|
||||||
weight = 3
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "about"
|
|
||||||
name = "About"
|
|
||||||
url = "about"
|
|
||||||
weight = 4
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "zh"
|
|
||||||
pre = '<i class="fas fa-language fa-fw"></i>'
|
|
||||||
name = ""
|
|
||||||
title = "简体中文"
|
|
||||||
url = "https://hugo-loveit-zh.netlify.com"
|
|
||||||
weight = 5
|
|
||||||
|
|
||||||
[params]
|
|
||||||
# LoveIt theme version
|
|
||||||
version = "0.1.X"
|
|
||||||
# site description
|
|
||||||
description = "About LoveIt Theme"
|
|
||||||
# site keywords
|
|
||||||
keywords = ["Theme", "Hugo"]
|
|
||||||
# site default theme ("light", "dark", "auto")
|
|
||||||
defaultTheme = "auto"
|
|
||||||
# public git repo url to link lastmod git commit only then enableGitInfo is true
|
|
||||||
gitRepo = ""
|
|
||||||
|
|
||||||
# Header info
|
|
||||||
[params.header]
|
|
||||||
# desktop header mode ("fixed", "normal", "auto")
|
|
||||||
desktopMode = "fixed"
|
|
||||||
# mobile header mode ("fixed", "normal", "auto")
|
|
||||||
mobileMode = "auto"
|
|
||||||
|
|
||||||
# Footer Copyright Info
|
|
||||||
[params.footer]
|
|
||||||
# Site creation time
|
|
||||||
since = 2019
|
|
||||||
# ICP info only in China (HTML format is allowed)
|
|
||||||
icp = ""
|
|
||||||
# license info (HTML format is allowed)
|
|
||||||
license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
|
|
||||||
|
|
||||||
# Home Page Info
|
|
||||||
[params.home]
|
|
||||||
# Home Page Profile
|
|
||||||
[params.home.profile]
|
|
||||||
enable = true
|
|
||||||
# Gravatar Email for preferred avatar in home page
|
|
||||||
gravatarEmail = ""
|
|
||||||
# URL of avatar shown in home page
|
|
||||||
avatarURL = "images/avatar.png"
|
|
||||||
# subtitle shown in home page
|
|
||||||
subtitle = "A Clean, Elegant but Advanced Hugo Theme"
|
|
||||||
# whether to use typeit animation for subtitle
|
|
||||||
typeit = true
|
|
||||||
# whether to show social links
|
|
||||||
social = true
|
|
||||||
# Home Page Posts
|
|
||||||
[params.home.posts]
|
|
||||||
enable = true
|
|
||||||
# special amount of posts in each home posts page
|
|
||||||
paginate = 6
|
|
||||||
# default behavior when you don't set "hiddenFromHomePage" in front matter
|
|
||||||
defaultHiddenFromHomePage = false
|
|
||||||
|
|
||||||
# Social Info in home page
|
|
||||||
[params.social]
|
|
||||||
GitHub = "xxxx"
|
|
||||||
Linkedin = "xxxx"
|
|
||||||
Twitter = "xxxx"
|
|
||||||
Instagram = "xxxx"
|
|
||||||
Email = "xxxx@outlook.com"
|
|
||||||
Facebook = "xxxx"
|
|
||||||
Telegram = "xxxx"
|
|
||||||
# Medium = "xxxx"
|
|
||||||
# Gitlab = "xxxx"
|
|
||||||
# Youtubelegacy = "xxxx"
|
|
||||||
# Youtubecustom = "xxxx"
|
|
||||||
# Youtubechannel = "xxxx"
|
|
||||||
# Tumblr ="xxxx"
|
|
||||||
# Quora = "xxxx"
|
|
||||||
# Keybase = "xxxx"
|
|
||||||
# Pinterest = "xxxx"
|
|
||||||
# Reddit = "xxxx"
|
|
||||||
# Codepen = "xxxx"
|
|
||||||
# FreeCodeCamp = "xxxx"
|
|
||||||
# Bitbucket = "xxxx"
|
|
||||||
# Stackoverflow = "xxxx"
|
|
||||||
# Weibo = "xxxx"
|
|
||||||
# Odnoklassniki = "xxxx"
|
|
||||||
# VK = "xxxx"
|
|
||||||
# Flickr = "xxxx"
|
|
||||||
# Xing = "xxxx"
|
|
||||||
# Snapchat = "xxxx"
|
|
||||||
# Soundcloud = "xxxx"
|
|
||||||
# Spotify = "xxxx"
|
|
||||||
# Bandcamp = "xxxx"
|
|
||||||
# Paypal = "xxxx"
|
|
||||||
# Fivehundredpx = "xxxx"
|
|
||||||
# Mix = "xxxx"
|
|
||||||
# Goodreads = "xxxx"
|
|
||||||
# Lastfm = "xxxx"
|
|
||||||
# Foursquare = "xxxx"
|
|
||||||
# Hackernews = "xxxx"
|
|
||||||
# Kickstarter = "xxxx"
|
|
||||||
# Patreon = "xxxx"
|
|
||||||
# Steam = "xxxx"
|
|
||||||
# Twitch = "xxxx"
|
|
||||||
# Strava = "xxxx"
|
|
||||||
# Skype = "xxxx"
|
|
||||||
# Whatsapp = "xxxx"
|
|
||||||
# Zhihu = "xxxx"
|
|
||||||
# Douban = "xxxx"
|
|
||||||
# Angellist = "xxxx"
|
|
||||||
# Slidershare = "xxxx"
|
|
||||||
# Jsfiddle = "xxxx"
|
|
||||||
# Deviantart = "xxxx"
|
|
||||||
# Behance = "xxxx"
|
|
||||||
# Dribble = "xxxx"
|
|
||||||
# Wordpress = "xxxx"
|
|
||||||
# Vine = "xxxx"
|
|
||||||
# Googlescholar = "xxxx"
|
|
||||||
# Researchgate = "xxxx"
|
|
||||||
# Mastodon = "@xxxx"
|
|
||||||
# MastodonPrefix = "https://mastodon.technology"
|
|
||||||
# Thingiverse = "xxxx"
|
|
||||||
# Devto = "xxxx"
|
|
||||||
# Gitea = "xxxx"
|
|
||||||
# XMPP = "xxxx@example.com"
|
|
||||||
# Matrix = "xxxx"
|
|
||||||
# Bilibili = "xxxx"
|
|
||||||
|
|
||||||
# Page config
|
|
||||||
[params.page]
|
|
||||||
# whether to show social share links in post page
|
|
||||||
socialShare = true
|
|
||||||
# whether to show link to Raw Markdown content of the post
|
|
||||||
linkToMarkdown = true
|
|
||||||
|
|
||||||
# Social Share Links in post page
|
|
||||||
[params.share]
|
|
||||||
enable = true
|
|
||||||
Twitter = true
|
|
||||||
Facebook = true
|
|
||||||
Linkedin = true
|
|
||||||
Whatsapp = true
|
|
||||||
Pinterest = true
|
|
||||||
Tumblr = true
|
|
||||||
HackerNews = true
|
|
||||||
# Reddit = true
|
|
||||||
# VK = true
|
|
||||||
# Buffer = true
|
|
||||||
# Xing = true
|
|
||||||
# Line = true
|
|
||||||
# Instapaper = true
|
|
||||||
# Pocket = true
|
|
||||||
# Digg = true
|
|
||||||
# Stumbleupon = true
|
|
||||||
# Flipboard = true
|
|
||||||
# Weibo = true
|
|
||||||
# Renren = true
|
|
||||||
# Myspace = true
|
|
||||||
# Blogger = true
|
|
||||||
# Baidu = true
|
|
||||||
# Odnoklassniki = true
|
|
||||||
# Evernote = true
|
|
||||||
# Skype = true
|
|
||||||
# Trello = true
|
|
||||||
# Mix = true
|
|
||||||
|
|
||||||
# mathematical formulas (KaTeX)
|
|
||||||
[params.math]
|
|
||||||
enable = true
|
|
||||||
blockLeftDelimiter = ""
|
|
||||||
blockRightDelimiter = ""
|
|
||||||
inlineLeftDelimiter = "$"
|
|
||||||
inlineRightDelimiter = "$"
|
|
||||||
# KaTeX extension copy_tex
|
|
||||||
copyTex = true
|
|
||||||
# KaTeX extension mhchem
|
|
||||||
mhchem = true
|
|
||||||
|
|
||||||
# CSS and JS Files CDN
|
|
||||||
[params.cdn]
|
|
||||||
## for example '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
|
|
||||||
fontawesomeFreeCSS = ''
|
|
||||||
animateCSS = ''
|
|
||||||
gitalkCSS = ''
|
|
||||||
gitalkJS = ''
|
|
||||||
valineJS = ''
|
|
||||||
lazysizesJS = ''
|
|
||||||
smoothScrollJS = ''
|
|
||||||
sharerJS = ''
|
|
||||||
katexCSS = ''
|
|
||||||
katexJS = ''
|
|
||||||
katexAutoRenderJS = ''
|
|
||||||
katexCopyTexCSS = ''
|
|
||||||
katexCopyTexJS = ''
|
|
||||||
katexMhchemJS = ''
|
|
||||||
mermaidJS = ''
|
|
||||||
echartsJS = ''
|
|
||||||
echartsMacaronsJS = ''
|
|
||||||
typeitJS = ''
|
|
||||||
aplayerCSS = ''
|
|
||||||
aplayerJS = ''
|
|
||||||
metingJS = ''
|
|
||||||
|
|
||||||
# site verification code for Google/Bing/Yandex/Pinterest/Baidu
|
|
||||||
[params.verification]
|
|
||||||
google = ""
|
|
||||||
bing = ""
|
|
||||||
yandex = ""
|
|
||||||
pinterest = ""
|
|
||||||
baidu = ""
|
|
||||||
|
|
||||||
# Publisher Info just for SEO
|
|
||||||
[params.publisher]
|
|
||||||
name = "xxxx"
|
|
||||||
[params.publisher.logo]
|
|
||||||
url = "logo.png"
|
|
||||||
width = 127
|
|
||||||
height = 40
|
|
||||||
|
|
||||||
# Website Log Info just for SEO
|
|
||||||
[params.logo]
|
|
||||||
url = "logo.png"
|
|
||||||
width = 127
|
|
||||||
height = 40
|
|
||||||
|
|
||||||
# Website Image Info just for SEO
|
|
||||||
[params.image]
|
|
||||||
url = "cover.png"
|
|
||||||
width = 800
|
|
||||||
height = 600
|
|
||||||
|
|
||||||
# Comment Config
|
|
||||||
[params.comment]
|
|
||||||
enable = true
|
|
||||||
|
|
||||||
# Disqus Comment Config (https://disqus.com/)
|
|
||||||
[params.comment.disqus]
|
|
||||||
# Disqus shortname to use Disqus in posts
|
|
||||||
shortname = "dillonzq"
|
|
||||||
|
|
||||||
# Gittalk Comment Config (https://github.com/gitalk/gitalk)
|
|
||||||
[params.comment.gitalk]
|
|
||||||
owner = ""
|
|
||||||
repo = ""
|
|
||||||
clientId = ""
|
|
||||||
clientSecret = ""
|
|
||||||
|
|
||||||
# Valine Comment Config (https://github.com/xCss/Valine)
|
|
||||||
[params.comment.valine]
|
|
||||||
enable = false
|
|
||||||
appId = ""
|
|
||||||
appKey = ""
|
|
||||||
placeholder = "Your comment ..."
|
|
||||||
notify = false
|
|
||||||
verify = true
|
|
||||||
avatar = "mp"
|
|
||||||
# meta= ""
|
|
||||||
pageSize = 10
|
|
||||||
visitor = true
|
|
||||||
recordIP = true
|
|
||||||
|
|
||||||
# Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
|
|
||||||
[params.comment.facebook]
|
|
||||||
enable = false
|
|
||||||
width = "100%"
|
|
||||||
numPosts = 10
|
|
||||||
appId = ""
|
|
||||||
languageCode = "en_US"
|
|
||||||
|
|
||||||
# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
|
# Privacy Info (https://gohugo.io/about/hugo-and-gdpr/)
|
||||||
|
# 隐私信息设置 (https://gohugo.io/about/hugo-and-gdpr/)
|
||||||
[privacy]
|
[privacy]
|
||||||
[privacy.googleAnalytics]
|
[privacy.googleAnalytics]
|
||||||
anonymizeIP = true
|
anonymizeIP = true
|
||||||
@@ -371,17 +664,20 @@ dateFormatToUse = "2006-01-02"
|
|||||||
privacyEnhanced = true
|
privacyEnhanced = true
|
||||||
|
|
||||||
# Options to make output .md files
|
# Options to make output .md files
|
||||||
|
# 用于输出 Markdown 格式文档的设置
|
||||||
[mediaTypes]
|
[mediaTypes]
|
||||||
[mediaTypes."text/plain"]
|
[mediaTypes."text/plain"]
|
||||||
suffixes = ["md"]
|
suffixes = ["md"]
|
||||||
|
|
||||||
# Options to make output .md files
|
# Options to make output .md files
|
||||||
|
# 用于输出 Markdown 格式文档的设置
|
||||||
[outputFormats.MarkDown]
|
[outputFormats.MarkDown]
|
||||||
mediaType = "text/plain"
|
mediaType = "text/plain"
|
||||||
isPlainText = true
|
isPlainText = true
|
||||||
isHTML = false
|
isHTML = false
|
||||||
|
|
||||||
# Options to make hugo output files
|
# Options to make hugo output files
|
||||||
|
# 用于 Hugo 输出文档的设置
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["HTML", "RSS"]
|
home = ["HTML", "RSS"]
|
||||||
page = ["HTML", "MarkDown"]
|
page = ["HTML", "MarkDown"]
|
||||||
|
|||||||
@@ -2,14 +2,3 @@
|
|||||||
// Custom style
|
// Custom style
|
||||||
// 自定义样式
|
// 自定义样式
|
||||||
// ==============================
|
// ==============================
|
||||||
// You can override the variables in assets/css/_variables.scss to customize the style
|
|
||||||
// 您可以覆盖 assets/css/_variables.scss 中的变量以自定义样式
|
|
||||||
|
|
||||||
@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);
|
|
||||||
|
|
||||||
$global-font-family: Lato, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft Yahei, Segoe UI, Helvetica, Arial, sans-serif, Segoe UI Emoji;
|
|
||||||
|
|
||||||
|
|
||||||
@import url('https://fonts.googleapis.com/css?family=Fira+Mono:400,700&display=swap&subset=latin-ext');
|
|
||||||
|
|
||||||
$code-font-family: Fira Mono, Source Code Pro, Menlo, Consolas, Monaco, monospace;
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
// ==============================
|
// ==============================
|
||||||
// Custom style
|
// Override Variables
|
||||||
// 自定义样式
|
// 覆盖变量
|
||||||
// ==============================
|
// ==============================
|
||||||
// You can override the variables in assets/css/_variables.scss to customize the style
|
// You can override the variables in assets/css/_variables.scss to customize the style
|
||||||
// 您可以覆盖 assets/css/_variables.scss 中的变量以自定义样式
|
// 您可以覆盖 assets/css/_variables.scss 中的变量
|
||||||
|
|
||||||
@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);
|
@import url(https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900);
|
||||||
|
|
||||||
50
exampleSite/content/posts/documentation.en.md
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
title: "Documentation"
|
||||||
|
date: 2020-02-18T21:29:01+08:00
|
||||||
|
lastmod: 2020-02-18T21:29:01+08:00
|
||||||
|
draft: true
|
||||||
|
author: ""
|
||||||
|
authorLink: ""
|
||||||
|
description: ""
|
||||||
|
license: ""
|
||||||
|
|
||||||
|
tags: []
|
||||||
|
categories: []
|
||||||
|
hiddenFromHomePage: false
|
||||||
|
|
||||||
|
featuredImage: ""
|
||||||
|
featuredImagePreview: ""
|
||||||
|
|
||||||
|
toc: false
|
||||||
|
autoCollapseToc: true
|
||||||
|
math: false
|
||||||
|
comment: true
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
```
|
||||||
|
content
|
||||||
|
├── level-one
|
||||||
|
│ ├── level-two
|
||||||
|
│ │ ├── level-three
|
||||||
|
│ │ │ ├── level-four
|
||||||
|
│ │ │ │ ├── _index.md <-- /level-one/level-two/level-three/level-four
|
||||||
|
│ │ │ │ ├── page-4-a.md <-- /level-one/level-two/level-three/level-four/page-4-a
|
||||||
|
│ │ │ │ ├── page-4-b.md <-- /level-one/level-two/level-three/level-four/page-4-b
|
||||||
|
│ │ │ │ └── page-4-c.md <-- /level-one/level-two/level-three/level-four/page-4-c
|
||||||
|
│ │ │ ├── _index.md <-- /level-one/level-two/level-three
|
||||||
|
│ │ │ ├── page-3-a.md <-- /level-one/level-two/level-three/page-3-a
|
||||||
|
│ │ │ ├── page-3-b.md <-- /level-one/level-two/level-three/page-3-b
|
||||||
|
│ │ │ └── page-3-c.md <-- /level-one/level-two/level-three/page-3-c
|
||||||
|
│ │ ├── _index.md <-- /level-one/level-two
|
||||||
|
│ │ ├── page-2-a.md <-- /level-one/level-two/page-2-a
|
||||||
|
│ │ ├── page-2-b.md <-- /level-one/level-two/page-2-b
|
||||||
|
│ │ └── page-2-c.md <-- /level-one/level-two/page-2-c
|
||||||
|
│ ├── _index.md <-- /level-one
|
||||||
|
│ ├── page-1-a.md <-- /level-one/page-1-a
|
||||||
|
│ ├── page-1-b.md <-- /level-one/page-1-b
|
||||||
|
│ └── page-1-c.md <-- /level-one/page-1-c
|
||||||
|
├── _index.md <-- /
|
||||||
|
└── page-top.md <-- /page-top
|
||||||
|
```
|
||||||
24
exampleSite/content/posts/documentation.zh.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
title: "Documentation"
|
||||||
|
date: 2020-02-18T21:40:32+08:00
|
||||||
|
lastmod: 2020-02-18T21:40:32+08:00
|
||||||
|
draft: true
|
||||||
|
author: ""
|
||||||
|
authorLink: ""
|
||||||
|
description: ""
|
||||||
|
license: ""
|
||||||
|
|
||||||
|
tags: []
|
||||||
|
categories: []
|
||||||
|
hiddenFromHomePage: false
|
||||||
|
|
||||||
|
featuredImage: ""
|
||||||
|
featuredImagePreview: ""
|
||||||
|
|
||||||
|
toc: false
|
||||||
|
autoCollapseToc: true
|
||||||
|
math: false
|
||||||
|
comment: true
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
@@ -1,390 +0,0 @@
|
|||||||
baseURL = "https://example.com/"
|
|
||||||
# 网站语言
|
|
||||||
languageCode = "zh"
|
|
||||||
# [en, zh, ...] 设定主题的国际化
|
|
||||||
defaultContentLanguage = "zh"
|
|
||||||
# 网站标题
|
|
||||||
title = "LoveIt 主题"
|
|
||||||
# 主题
|
|
||||||
theme = "LoveIt"
|
|
||||||
# 是否使用 git 信息来生成文章的上次修改时间
|
|
||||||
enableGitInfo = false
|
|
||||||
# 是否包括中日韩文字
|
|
||||||
hasCJKLanguage = true
|
|
||||||
# 默认每页列表显示的文章数目
|
|
||||||
paginate = 12
|
|
||||||
# 是否使用 emoji 代码
|
|
||||||
enableEmoji = true
|
|
||||||
# 是否使用 robots.txt
|
|
||||||
enableRobotsTXT = true
|
|
||||||
# [UA-XXXXXXXX-X] 谷歌分析代号
|
|
||||||
googleAnalytics = ""
|
|
||||||
# 版权描述,仅仅用于 SEO
|
|
||||||
copyright = "This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License."
|
|
||||||
# 日期格式
|
|
||||||
dateFormatToUse = "2006-01-02"
|
|
||||||
|
|
||||||
# Hugo 解析文档的配置
|
|
||||||
[markup]
|
|
||||||
# 代码高亮设置 (https://gohugo.io/content-management/syntax-highlighting)
|
|
||||||
[markup.highlight]
|
|
||||||
codeFences = true
|
|
||||||
guessSyntax = true
|
|
||||||
lineNoStart = 1
|
|
||||||
lineNos = true
|
|
||||||
lineNumbersInTable = true
|
|
||||||
noClasses = false
|
|
||||||
style = "monokai"
|
|
||||||
tabWidth = 4
|
|
||||||
# Goldmark 是 Hugo 0.60 以来的默认 Markdown 解析库
|
|
||||||
[markup.goldmark]
|
|
||||||
[markup.goldmark.extensions]
|
|
||||||
definitionList = true
|
|
||||||
footnote = true
|
|
||||||
linkify = true
|
|
||||||
strikethrough = true
|
|
||||||
table = true
|
|
||||||
taskList = true
|
|
||||||
typographer = true
|
|
||||||
[markup.goldmark.renderer]
|
|
||||||
# 是否在文档中直接使用 HTML 标签
|
|
||||||
unsafe = true
|
|
||||||
# 目录设置
|
|
||||||
[markup.tableOfContents]
|
|
||||||
startLevel = 2
|
|
||||||
endLevel = 6
|
|
||||||
|
|
||||||
# 作者信息
|
|
||||||
[author]
|
|
||||||
name = "xxxx"
|
|
||||||
link = ""
|
|
||||||
|
|
||||||
# 网站地图信息
|
|
||||||
[sitemap]
|
|
||||||
changefreq = "weekly"
|
|
||||||
filename = "sitemap.xml"
|
|
||||||
priority = 0.5
|
|
||||||
|
|
||||||
# Permalinks 信息 (https://gohugo.io/content-management/urls/#permalinks)
|
|
||||||
[Permalinks]
|
|
||||||
posts = ":year/:month/:filename"
|
|
||||||
|
|
||||||
# 菜单信息
|
|
||||||
[menu]
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "posts"
|
|
||||||
name = "文章"
|
|
||||||
url = "posts"
|
|
||||||
weight = 1
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "tags"
|
|
||||||
name = "标签"
|
|
||||||
url = "tags"
|
|
||||||
weight = 2
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "categories"
|
|
||||||
name = "分类"
|
|
||||||
url = "categories"
|
|
||||||
weight = 3
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "about"
|
|
||||||
name = "关于"
|
|
||||||
url = "about"
|
|
||||||
weight = 4
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
identifier = "en"
|
|
||||||
pre = '<i class="fas fa-language fa-fw"></i>'
|
|
||||||
name = ""
|
|
||||||
title = "English"
|
|
||||||
url = "https://hugo-loveit-en.netlify.com"
|
|
||||||
weight = 5
|
|
||||||
|
|
||||||
[params]
|
|
||||||
# LoveIt 主题版本
|
|
||||||
version = "0.1.X"
|
|
||||||
# 网站描述
|
|
||||||
description = "关于 LoveIt 主题"
|
|
||||||
# 网站关键词
|
|
||||||
keywords = ["Theme", "Hugo"]
|
|
||||||
# 网站默认主题 ("light", "dark", "auto")
|
|
||||||
defaultTheme = "auto"
|
|
||||||
# 用于生成文章上次修改时间的公共 git 仓库路径,仅在 enableGitInfo 设为 true 时有效
|
|
||||||
gitRepo = ""
|
|
||||||
|
|
||||||
# 页面头部导航栏信息
|
|
||||||
[params.header]
|
|
||||||
# 桌面端导航栏模式 ("fixed", "normal", "auto")
|
|
||||||
desktopMode = "fixed"
|
|
||||||
# 移动端导航栏模式 ("fixed", "normal", "auto")
|
|
||||||
mobileMode = "auto"
|
|
||||||
|
|
||||||
# 页面底部版权信息设置
|
|
||||||
[params.footer]
|
|
||||||
# 网站创立年份
|
|
||||||
since = 2019
|
|
||||||
# ICP 备案信息,仅在中国使用 (允许使用 HTML 格式)
|
|
||||||
icp = ""
|
|
||||||
# 许可协议信息 (允许使用 HTML 格式)
|
|
||||||
license= '<a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank">CC BY-NC 4.0</a>'
|
|
||||||
|
|
||||||
# 主页信息设置
|
|
||||||
[params.home]
|
|
||||||
# 主页个人信息
|
|
||||||
[params.home.profile]
|
|
||||||
enable = true
|
|
||||||
# Gravatar 邮箱,用于优先在主页显示的头像
|
|
||||||
gravatarEmail = ""
|
|
||||||
# 主页显示头像的 URL
|
|
||||||
avatarURL = "images/avatar.png"
|
|
||||||
# 主页显示的网站副标题
|
|
||||||
subtitle = "一个简洁、优雅且高效的 Hugo 主题"
|
|
||||||
# 是否为副标题显示打字机动画
|
|
||||||
typeit = true
|
|
||||||
# 是否显示社交账号
|
|
||||||
social = true
|
|
||||||
# 主页文章列表
|
|
||||||
[params.home.posts]
|
|
||||||
enable = true
|
|
||||||
# 主页每页显示文章数量
|
|
||||||
paginate = 6
|
|
||||||
# 当你没有在文章前面设置 "hiddenFromHomePage" 时的默认行为
|
|
||||||
defaultHiddenFromHomePage = false
|
|
||||||
|
|
||||||
# 主页的社交信息设置
|
|
||||||
[params.social]
|
|
||||||
GitHub = "xxxx"
|
|
||||||
# Linkedin = "xxxx"
|
|
||||||
Twitter = "xxxx"
|
|
||||||
Instagram = "xxxx"
|
|
||||||
Email = "xxxx@outlook.com"
|
|
||||||
# Facebook = "xxxx"
|
|
||||||
# Telegram = "xxxx"
|
|
||||||
# Medium = "xxxx"
|
|
||||||
# Gitlab = "xxxx"
|
|
||||||
# Youtubelegacy = "xxxx"
|
|
||||||
# Youtubecustom = "xxxx"
|
|
||||||
# Youtubechannel = "xxxx"
|
|
||||||
# Tumblr ="xxxx"
|
|
||||||
# Quora = "xxxx"
|
|
||||||
# Keybase = "xxxx"
|
|
||||||
# Pinterest = "xxxx"
|
|
||||||
# Reddit = "xxxx"
|
|
||||||
# Codepen = "xxxx"
|
|
||||||
# FreeCodeCamp = "xxxx"
|
|
||||||
# Bitbucket = "xxxx"
|
|
||||||
# Stackoverflow = "xxxx"
|
|
||||||
Weibo = "xxxx"
|
|
||||||
# Odnoklassniki = "xxxx"
|
|
||||||
# VK = "xxxx"
|
|
||||||
# Flickr = "xxxx"
|
|
||||||
# Xing = "xxxx"
|
|
||||||
# Snapchat = "xxxx"
|
|
||||||
# Soundcloud = "xxxx"
|
|
||||||
# Spotify = "xxxx"
|
|
||||||
# Bandcamp = "xxxx"
|
|
||||||
# Paypal = "xxxx"
|
|
||||||
# Fivehundredpx = "xxxx"
|
|
||||||
# Mix = "xxxx"
|
|
||||||
# Goodreads = "xxxx"
|
|
||||||
# Lastfm = "xxxx"
|
|
||||||
# Foursquare = "xxxx"
|
|
||||||
# Hackernews = "xxxx"
|
|
||||||
# Kickstarter = "xxxx"
|
|
||||||
# Patreon = "xxxx"
|
|
||||||
# Steam = "xxxx"
|
|
||||||
# Twitch = "xxxx"
|
|
||||||
# Strava = "xxxx"
|
|
||||||
# Skype = "xxxx"
|
|
||||||
# Whatsapp = "xxxx"
|
|
||||||
Zhihu = "xxxx"
|
|
||||||
Douban = "xxxx"
|
|
||||||
# Angellist = "xxxx"
|
|
||||||
# Slidershare = "xxxx"
|
|
||||||
# Jsfiddle = "xxxx"
|
|
||||||
# Deviantart = "xxxx"
|
|
||||||
# Behance = "xxxx"
|
|
||||||
# Dribble = "xxxx"
|
|
||||||
# Wordpress = "xxxx"
|
|
||||||
# Vine = "xxxx"
|
|
||||||
# Googlescholar = "xxxx"
|
|
||||||
# Researchgate = "xxxx"
|
|
||||||
# Mastodon = "xxxx"
|
|
||||||
# MastodonPrefix = "https://mastodon.technology/"
|
|
||||||
# Thingiverse = "xxxx"
|
|
||||||
# Devto = "xxxx"
|
|
||||||
# Gitea = "xxxx"
|
|
||||||
# XMPP = "xxxx"
|
|
||||||
# Matrix = "xxxx"
|
|
||||||
Bilibili = "xxxx"
|
|
||||||
|
|
||||||
# 文章页面配置
|
|
||||||
[params.page]
|
|
||||||
# 在文章页面是否使用分享功能
|
|
||||||
socialShare = true
|
|
||||||
# 是否在文章页面显示原始 Markdown 文档链接
|
|
||||||
linkToMarkdown = true
|
|
||||||
|
|
||||||
# 文章页面的分享信息设置
|
|
||||||
[params.share]
|
|
||||||
enable = true
|
|
||||||
Twitter = true
|
|
||||||
Facebook = true
|
|
||||||
# Linkedin = true
|
|
||||||
# Whatsapp = true
|
|
||||||
# Pinterest = true
|
|
||||||
# Tumblr = true
|
|
||||||
# HackerNews = true
|
|
||||||
# Reddit = true
|
|
||||||
# VK = true
|
|
||||||
# Buffer = true
|
|
||||||
# Xing = true
|
|
||||||
# Line = true
|
|
||||||
Instapaper = true
|
|
||||||
Pocket = true
|
|
||||||
# Digg = true
|
|
||||||
# Stumbleupon = true
|
|
||||||
# Flipboard = true
|
|
||||||
Weibo = true
|
|
||||||
Renren = true
|
|
||||||
# Myspace = true
|
|
||||||
# Blogger = true
|
|
||||||
Baidu = true
|
|
||||||
# Odnoklassniki = true
|
|
||||||
Evernote = true
|
|
||||||
# Skype = true
|
|
||||||
# Trello = true
|
|
||||||
# Mix = true
|
|
||||||
|
|
||||||
# 数学公式 (KaTeX https://katex.org/)
|
|
||||||
[params.math]
|
|
||||||
enable = true
|
|
||||||
blockLeftDelimiter = ""
|
|
||||||
blockRightDelimiter = ""
|
|
||||||
inlineLeftDelimiter = "$"
|
|
||||||
inlineRightDelimiter = "$"
|
|
||||||
# KaTeX 插件 copy_tex
|
|
||||||
copyTex = true
|
|
||||||
# KaTeX 插件 mhchem
|
|
||||||
mhchem = true
|
|
||||||
|
|
||||||
# CSS 和 JS 文件的 CDN 设置
|
|
||||||
[params.cdn]
|
|
||||||
## 例如 '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.10.1/css/all.min.css" integrity="sha256-fdcFNFiBMrNfWL6OcAGQz6jDgNTRxnrLEd4vJYFWScE=" crossorigin="anonymous">'
|
|
||||||
fontawesomeFreeCSS = ''
|
|
||||||
animateCSS = ''
|
|
||||||
gitalkCSS = ''
|
|
||||||
gitalkJS = ''
|
|
||||||
valineJS = ''
|
|
||||||
lazysizesJS = ''
|
|
||||||
smoothScrollJS = ''
|
|
||||||
sharerJS = ''
|
|
||||||
katexCSS = ''
|
|
||||||
katexJS = ''
|
|
||||||
katexAutoRenderJS = ''
|
|
||||||
katexCopyTexCSS = ''
|
|
||||||
katexCopyTexJS = ''
|
|
||||||
katexMhchemJS = ''
|
|
||||||
mermaidJS = ''
|
|
||||||
echartsJS = ''
|
|
||||||
echartsMacaronsJS = ''
|
|
||||||
typeitJS = ''
|
|
||||||
aplayerCSS = ''
|
|
||||||
aplayerJS = ''
|
|
||||||
metingJS = ''
|
|
||||||
|
|
||||||
# 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu
|
|
||||||
[params.verification]
|
|
||||||
google = ""
|
|
||||||
bing = ""
|
|
||||||
yandex = ""
|
|
||||||
pinterest = ""
|
|
||||||
baidu = ""
|
|
||||||
|
|
||||||
# 出版者信息,仅用于 SEO
|
|
||||||
[params.publisher]
|
|
||||||
name = "xxxx"
|
|
||||||
[params.publisher.logo]
|
|
||||||
url = "logo.png"
|
|
||||||
width = 127
|
|
||||||
height = 40
|
|
||||||
|
|
||||||
# 网站图标信息,仅用于 SEO
|
|
||||||
[params.logo]
|
|
||||||
url = "logo.png"
|
|
||||||
width = 127
|
|
||||||
height = 40
|
|
||||||
|
|
||||||
# 网站图标信息,仅用于 SEO
|
|
||||||
[params.image]
|
|
||||||
url = "cover.png"
|
|
||||||
width = 800
|
|
||||||
height = 600
|
|
||||||
|
|
||||||
# 评论系统设置
|
|
||||||
[params.comment]
|
|
||||||
enable = true
|
|
||||||
|
|
||||||
# Disqus 评论系统设置 (https://disqus.com/)
|
|
||||||
[params.comment.disqus]
|
|
||||||
# Disqus 的用户名,用来在文章中启用 Disqus 评论系统
|
|
||||||
shortname = "dillonzq"
|
|
||||||
|
|
||||||
# Gittalk 评论系统设置 (https://github.com/gitalk/gitalk)
|
|
||||||
[params.comment.gitalk]
|
|
||||||
owner = ""
|
|
||||||
repo = ""
|
|
||||||
clientId = ""
|
|
||||||
clientSecret = ""
|
|
||||||
|
|
||||||
# Valine 评论系统设置 (https://github.com/xCss/Valine)
|
|
||||||
[params.comment.valine]
|
|
||||||
enable = false
|
|
||||||
appId = ""
|
|
||||||
appKey = ""
|
|
||||||
placeholder = "你的评论 ..."
|
|
||||||
notify = false
|
|
||||||
verify = true
|
|
||||||
avatar = "mp"
|
|
||||||
# meta= ""
|
|
||||||
pageSize = 10
|
|
||||||
visitor = true
|
|
||||||
recordIP = true
|
|
||||||
|
|
||||||
# Facebook 评论系统设置 (https://developers.facebook.com/docs/plugins/comments)
|
|
||||||
[params.comment.facebook]
|
|
||||||
enable = false
|
|
||||||
width = "100%"
|
|
||||||
numPosts = 10
|
|
||||||
appId = ""
|
|
||||||
languageCode = "en_US"
|
|
||||||
|
|
||||||
# 隐私信息设置 (https://gohugo.io/about/hugo-and-gdpr/)
|
|
||||||
[privacy]
|
|
||||||
[privacy.googleAnalytics]
|
|
||||||
anonymizeIP = true
|
|
||||||
|
|
||||||
[privacy.youtube]
|
|
||||||
privacyEnhanced = true
|
|
||||||
|
|
||||||
# 用于输出 Markdown 格式文档的设置
|
|
||||||
[mediaTypes]
|
|
||||||
[mediaTypes."text/plain"]
|
|
||||||
suffixes = ["md"]
|
|
||||||
|
|
||||||
# 用于输出 Markdown 格式文档的设置
|
|
||||||
[outputFormats.MarkDown]
|
|
||||||
mediaType = "text/plain"
|
|
||||||
isPlainText = true
|
|
||||||
isHTML = false
|
|
||||||
|
|
||||||
# 用于 Hugo 输出文档的设置
|
|
||||||
[outputs]
|
|
||||||
home = ["HTML", "RSS"]
|
|
||||||
page = ["HTML", "MarkDown"]
|
|
||||||
section = ["HTML", "RSS"]
|
|
||||||
taxonomy = ["HTML", "RSS"]
|
|
||||||
taxonomyTerm = ["HTML"]
|
|
||||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 10 KiB |
@@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<browserconfig>
|
|
||||||
<msapplication>
|
|
||||||
<tile>
|
|
||||||
<square150x150logo src="/mstile-150x150.png"/>
|
|
||||||
<TileColor>#2d89ef</TileColor>
|
|
||||||
</tile>
|
|
||||||
</msapplication>
|
|
||||||
</browserconfig>
|
|
||||||
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 225 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
@@ -1,28 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
||||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="560.000000pt" height="560.000000pt" viewBox="0 0 560.000000 560.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
<metadata>
|
|
||||||
Created by potrace 1.11, written by Peter Selinger 2001-2013
|
|
||||||
</metadata>
|
|
||||||
<g transform="translate(0.000000,560.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path d="M2445 5384 c-117 -28 -184 -56 -287 -122 -144 -93 -268 -261 -281
|
|
||||||
-380 -4 -39 -26 -71 -50 -72 -4 0 -34 -27 -67 -60 -198 -201 -262 -716 -130
|
|
||||||
-1061 11 -30 20 -54 20 -55 0 0 -21 -11 -47 -23 -56 -26 -109 -100 -119 -166
|
|
||||||
-3 -23 -4 -122 -2 -221 3 -195 7 -208 66 -271 17 -17 48 -39 69 -48 58 -25 68
|
|
||||||
-31 68 -41 3 -38 21 -122 42 -189 90 -286 268 -507 525 -652 l68 -38 0 -182 0
|
|
||||||
-183 -69 0 c-44 0 -71 4 -73 12 -3 9 -16 9 -54 0 -27 -6 -100 -22 -162 -36
|
|
||||||
-312 -70 -521 -184 -738 -400 -212 -213 -330 -428 -395 -719 -16 -68 -22 -142
|
|
||||||
-26 -284 l-5 -193 2001 0 2001 0 0 154 c0 436 -144 777 -453 1072 -200 192
|
|
||||||
-440 316 -712 369 -49 9 -94 21 -100 25 -17 14 -115 23 -115 11 0 -7 -27 -11
|
|
||||||
-70 -11 l-70 0 0 184 c0 175 1 185 20 191 79 25 311 218 398 331 100 130 177
|
|
||||||
318 218 532 3 13 12 25 22 28 40 12 88 41 115 69 59 61 62 74 65 281 2 119 -1
|
|
||||||
207 -8 232 -17 64 -68 123 -125 146 -28 11 -52 21 -53 22 -2 1 6 15 17 31 24
|
|
||||||
32 72 168 92 258 8 37 13 131 13 245 1 161 -2 196 -22 270 -30 113 -100 253
|
|
||||||
-162 322 l-50 56 35 52 c100 149 79 382 -43 478 -82 65 -172 67 -317 8 -197
|
|
||||||
-80 -279 -82 -550 -11 -163 43 -192 48 -310 50 -87 2 -150 -1 -190 -11z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "LoveIt",
|
|
||||||
"short_name": "LoveIt",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "/android-chrome-192x192.png",
|
|
||||||
"sizes": "192x192",
|
|
||||||
"type": "image/png"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "/android-chrome-512x512.png",
|
|
||||||
"sizes": "512x512",
|
|
||||||
"type": "image/png"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"theme_color": "#ffffff",
|
|
||||||
"background_color": "#ffffff",
|
|
||||||
"display": "standalone"
|
|
||||||
}
|
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
<h1 id="error-emoji"></h1>
|
<h1 id="error-emoji"></h1>
|
||||||
<p class="error-text">
|
<p class="error-text">
|
||||||
{{- T "pageNotFoundText" -}}
|
{{- T "pageNotFoundText" -}}
|
||||||
<a href="{{ .Site.BaseURL }}" title="{{ T "backToHome" }}">↩︎</a>
|
<a href="{{ `/` | relLangURL }}" title="{{ T `backToHome` }}">↩︎</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -13,25 +13,30 @@
|
|||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{{- /* Meta */ -}}
|
{{- /* Meta */ -}}
|
||||||
<div class="meta">
|
<div class="post-meta">
|
||||||
{{- $author := .Params.author | default .Site.Author.name -}}
|
{{- $author := .Params.author | default .Site.Author.name -}}
|
||||||
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default .Site.BaseURL -}}
|
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default (relLangURL "/") -}}
|
||||||
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
|
<span class="post-author">
|
||||||
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
|
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
|
||||||
</a>
|
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
{{- $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
|
{{- $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
|
||||||
{{ T "publish" }} <time datetime={{ $publish_date }}>{{ $publish_date }}</time>
|
<span class="post-publish">
|
||||||
|
{{ T "publish" }} <time datetime={{ $publish_date }}>{{ $publish_date }}</time>
|
||||||
|
</span>
|
||||||
|
|
||||||
{{- with .Params.categories -}}
|
{{- with .Params.categories -}}
|
||||||
<span class="post-category">
|
<span class="post-category">
|
||||||
{{- T "included" -}}
|
{{- T "included" -}}
|
||||||
{{- range . -}}
|
{{- range . -}}
|
||||||
{{- $name := . -}}
|
|
||||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
<span>
|
||||||
<i class="far fa-folder fa-fw"></i>
|
<a href="{{ `/categories/` | relLangURL }}{{ urlize .}}">
|
||||||
<a href="{{ .Permalink }}">{{ $name | humanize }}</a>
|
<i class="far fa-folder fa-fw"></i>{{ . | humanize }}
|
||||||
{{- end -}}
|
</a>
|
||||||
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</span>
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -48,8 +53,10 @@
|
|||||||
{{- with .Params.tags -}}
|
{{- with .Params.tags -}}
|
||||||
<div class="post-tags">
|
<div class="post-tags">
|
||||||
{{- range . -}}
|
{{- range . -}}
|
||||||
<span class="tag">
|
<span>
|
||||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag fa-fw"></i> {{ . }}</a>
|
<a href="{{ `/tags/` | relLangURL }}{{ urlize .}}">
|
||||||
|
<i class="fas fa-tag fa-fw"></i>{{ . }}
|
||||||
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
{{- /* Author */ -}}
|
{{- /* Author */ -}}
|
||||||
{{- with .Site.Author.name -}}
|
{{- with .Site.Author.name -}}
|
||||||
<span class="author" itemprop="copyrightHolder"> <a href="{{ $.Site.Author.link | default $.Site.BaseURL }}" target="_blank">{{ . }}</a></span>
|
<span class="author" itemprop="copyrightHolder"> <a href="{{ $.Site.Author.link | default (relLangURL `/`) }}" target="_blank">{{ . }}</a></span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- /* License */ -}}
|
{{- /* License */ -}}
|
||||||
|
|||||||
@@ -22,10 +22,10 @@
|
|||||||
|
|
||||||
{{- /* style.min.css */ -}}
|
{{- /* style.min.css */ -}}
|
||||||
{{- $res := resources.Get "css/style.template.scss" -}}
|
{{- $res := resources.Get "css/style.template.scss" -}}
|
||||||
{{- $options := dict "targetPath" "css/style.min.css" "outputStyle" "compressed" "enableSourceMap" true -}}
|
{{- $options := dict "targetPath" "css/style.min.css" -}}
|
||||||
{{- if fileExists "config/css/_custom.scss" -}}
|
{{- $options = dict "includePaths" (slice "config/css") | merge $options -}}
|
||||||
{{- $options = dict "includePaths" (slice "config/css") | merge $options -}}
|
{{- $options = dict "outputStyle" "compressed" | merge $options -}}
|
||||||
{{- end -}}
|
{{- $options = dict "enableSourceMap" true | merge $options -}}
|
||||||
{{- $res = resources.ExecuteAsTemplate "style.scss" . $res | toCSS $options -}}
|
{{- $res = resources.ExecuteAsTemplate "style.scss" . $res | toCSS $options -}}
|
||||||
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
|
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
{
|
{
|
||||||
"@context": "http://schema.org",
|
"@context": "http://schema.org",
|
||||||
"@type": "WebSite",
|
"@type": "WebSite",
|
||||||
"url": "{{ .Site.BaseURL }}",
|
"url": "{{ relLangURL `/` }}",
|
||||||
{{- with .Site.Author.name -}}
|
{{- with .Site.Author.name -}}
|
||||||
"author": {
|
"author": {
|
||||||
"@type": "Person",
|
"@type": "Person",
|
||||||
|
|||||||
@@ -2,14 +2,13 @@
|
|||||||
<header class="desktop" id="header-desktop">
|
<header class="desktop" id="header-desktop">
|
||||||
<div class="header-wrapper">
|
<div class="header-wrapper">
|
||||||
<div class="header-title animated bounceIn">
|
<div class="header-title animated bounceIn">
|
||||||
<a href="{{ .Site.BaseURL }}">
|
<a href="{{ `/` | relLangURL }}">
|
||||||
{{- .Site.Title -}}
|
{{- .Site.Title -}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu">
|
<div class="menu">
|
||||||
{{- $currentPage := . }}
|
|
||||||
{{- range .Site.Menus.main -}}
|
{{- range .Site.Menus.main -}}
|
||||||
<a class="menu-item{{ if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) | or (eq $currentPage.RelPermalink .URL) }} active{{ end }}" href="{{ .URL | absLangURL }}" title="{{ .Title }}">
|
<a class="menu-item{{ if $.IsMenuCurrent "main" . | or ($.HasMenuCurrent "main" .) | or (.URL | relLangURL | string | eq $.RelPermalink ) }} active{{ end }}" href="{{ .URL | relLangURL }}"{{ with .Title }} title="{{ . }}"{{ end }}>
|
||||||
{{- .Pre | safeHTML }}{{ .Name -}}
|
{{- .Pre | safeHTML }}{{ .Name -}}
|
||||||
</a>
|
</a>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -25,18 +24,18 @@
|
|||||||
<div class="header-wrapper">
|
<div class="header-wrapper">
|
||||||
<div class="header-container">
|
<div class="header-container">
|
||||||
<div class="header-title animated bounceIn">
|
<div class="header-title animated bounceIn">
|
||||||
<a href="{{ .Site.BaseURL }}">
|
<a href="{{ `/` | relLangURL }}">
|
||||||
{{- .Site.Title -}}
|
{{- .Site.Title -}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu-toggle" id="menu-toggle">
|
<div class="menu-toggle" id="menu-toggle-mobile">
|
||||||
<span></span><span></span><span></span>
|
<span></span><span></span><span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu" id="menu-mobile">
|
<div class="menu" id="menu-mobile">
|
||||||
{{- $currentPage := . -}}
|
{{- $currentPage := . -}}
|
||||||
{{- range .Site.Menus.main -}}
|
{{- range .Site.Menus.main -}}
|
||||||
<a class="menu-item" href="{{ .URL | absLangURL }}" title="{{ .Title }}">
|
<a class="menu-item" href="{{ .URL | relLangURL }}" title="{{ .Title }}">
|
||||||
{{- .Pre | safeHTML }}{{ .Name -}}
|
{{- .Pre | safeHTML }}{{ .Name -}}
|
||||||
</a>
|
</a>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@@ -302,7 +302,7 @@
|
|||||||
{{- /* 044: 知乎 */ -}}
|
{{- /* 044: 知乎 */ -}}
|
||||||
{{- with .Site.Params.Social.Zhihu -}}
|
{{- with .Site.Params.Social.Zhihu -}}
|
||||||
{{- $options := dict "href" (printf "https://www.zhihu.com/people/%s" .) "title" "知乎" -}}
|
{{- $options := dict "href" (printf "https://www.zhihu.com/people/%s" .) "title" "知乎" -}}
|
||||||
{{- $options = dict "class" "fab fa-zhihu fa-fw" | merge $options -}}
|
{{- $options = dict "class" "loveit it-zhihu-line" "type" "other" "scratch" $.Scratch | merge $options -}}
|
||||||
{{- partial "function/icon-link.html" $options -}}
|
{{- partial "function/icon-link.html" $options -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|||||||
@@ -41,14 +41,16 @@
|
|||||||
<section>
|
<section>
|
||||||
{{- with .Params.tags -}}
|
{{- with .Params.tags -}}
|
||||||
{{- range . -}}
|
{{- range . -}}
|
||||||
<span class="tag">
|
<span>
|
||||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag fa-fw"></i> {{ . }}</a>
|
<a href="{{ `/tags/` | relLangURL }}{{ urlize .}}">
|
||||||
</span>
|
<i class="fas fa-tag fa-fw"></i>{{ . }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<span><a href="javascript:window.history.back();">{{ T "back" }}</a></span> | <span><a href="{{ .Site.BaseURL }}">{{ T "home" }}</a></span>
|
<span><a href="javascript:window.history.back();">{{ T "back" }}</a></span> | <span><a href="{{ `/` | relLangURL }}">{{ T "home" }}</a></span>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -90,15 +90,16 @@
|
|||||||
document.addEventListener("DOMContentLoaded", function () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
renderMathInElement(document.body, {
|
renderMathInElement(document.body, {
|
||||||
delimiters: [
|
delimiters: [
|
||||||
|
{ left: "$", right: "$", display: false },
|
||||||
{ left: "$$", right: "$$", display: true },
|
{ left: "$$", right: "$$", display: true },
|
||||||
{ left: "\\(", right: "\\)", display: false },
|
{ left: "\\(", right: "\\)", display: false },
|
||||||
{ left: "\\[", right: "\\]", display: true },
|
{ left: "\\[", right: "\\]", display: true },
|
||||||
{{- if and $math.blockLeftDelimiter $math.blockRightDelimiter -}}
|
|
||||||
{ left: "{{ $math.blockLeftDelimiter }}", right: "{{ $math.blockRightDelimiter }}", display: true },
|
|
||||||
{{- end -}}
|
|
||||||
{{- if and $math.inlineLeftDelimiter $math.inlineRightDelimiter -}}
|
{{- if and $math.inlineLeftDelimiter $math.inlineRightDelimiter -}}
|
||||||
{ left: "{{ $math.inlineLeftDelimiter }}", right: "{{ $math.inlineRightDelimiter }}", display: false },
|
{ left: "{{ $math.inlineLeftDelimiter }}", right: "{{ $math.inlineRightDelimiter }}", display: false },
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- if and $math.blockLeftDelimiter $math.blockRightDelimiter -}}
|
||||||
|
{ left: "{{ $math.blockLeftDelimiter }}", right: "{{ $math.blockRightDelimiter }}", display: true },
|
||||||
|
{{- end -}}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -161,7 +162,6 @@
|
|||||||
{{- $key }}: {{ $var | safeJS -}},
|
{{- $key }}: {{ $var | safeJS -}},
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
};
|
};
|
||||||
window.echartsArr = [];
|
|
||||||
</script>
|
</script>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@@ -6,26 +6,31 @@
|
|||||||
<h1 class="single-title animated flipInX">{{ .Title }}</h1>
|
<h1 class="single-title animated flipInX">{{ .Title }}</h1>
|
||||||
|
|
||||||
{{- /* Meta */ -}}
|
{{- /* Meta */ -}}
|
||||||
<div class="meta">
|
<div class="post-meta">
|
||||||
<div class="meta-line">
|
<div class="post-meta-line">
|
||||||
{{- $author := .Params.author | default .Site.Author.name -}}
|
{{- $author := .Params.author | default .Site.Author.name -}}
|
||||||
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default .Site.BaseURL -}}
|
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default (relLangURL "/") -}}
|
||||||
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
|
<span class="post-author">
|
||||||
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
|
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
|
||||||
</a>
|
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
{{- with .Params.categories -}}
|
{{- with .Params.categories -}}
|
||||||
<span class="post-category">
|
<span class="post-category">
|
||||||
{{- T "included" -}}
|
{{- T "included" -}}
|
||||||
{{- range . -}}
|
{{- range . -}}
|
||||||
{{- $name := . -}}
|
|
||||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
<span>
|
||||||
<i class="far fa-folder fa-fw"></i><a href="{{ .Permalink }}">{{ $name | humanize }}</a>
|
<a href="{{ `/categories/` | relLangURL }}{{ urlize .}}">
|
||||||
{{- end -}}
|
<i class="far fa-folder fa-fw"></i>{{ . | humanize }}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</span>
|
</span>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
<div class="meta-line">
|
<div class="post-meta-line">
|
||||||
{{- $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
|
{{- $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") -}}
|
||||||
<i class="far fa-calendar-alt fa-fw"></i><time datetime={{ $publish_date }}>{{ $publish_date }}</time>
|
<i class="far fa-calendar-alt fa-fw"></i><time datetime={{ $publish_date }}>{{ $publish_date }}</time>
|
||||||
<i class="fas fa-pencil-alt fa-fw"></i>{{ T "wordCount" .WordCount }}
|
<i class="fas fa-pencil-alt fa-fw"></i>{{ T "wordCount" .WordCount }}
|
||||||
@@ -47,28 +52,24 @@
|
|||||||
|
|
||||||
{{- /* TOC */ -}}
|
{{- /* TOC */ -}}
|
||||||
{{- if or .Params.toc (and .Site.Params.toc (ne .Params.toc false)) -}}
|
{{- if or .Params.toc (and .Site.Params.toc (ne .Params.toc false)) -}}
|
||||||
<aside class="post-toc" id="post-toc">
|
<div class="toc-auto" id="toc-auto">
|
||||||
<h2 class="post-toc-title">{{ T "toc" }}</h2>
|
<h2 class="toc-title">{{ T "toc" }}</h2>
|
||||||
{{- $globalAutoCollapseToc := .Site.Params.autoCollapseToc | default true }}
|
{{- $globalAutoCollapseToc := .Site.Params.autoCollapseToc | default true }}
|
||||||
<div class="post-toc-content{{ if not (and $globalAutoCollapseToc (ne .Params.autoCollapseToc false)) }} always-active{{ end }}">
|
<div class="toc-content{{ if not (and $globalAutoCollapseToc (ne .Params.autoCollapseToc false)) }} always-active{{ end }}" id="toc-content-auto"></div>
|
||||||
{{- .TableOfContents -}}
|
</div>
|
||||||
</div>
|
<div class="toc-static" id="toc-static">
|
||||||
</aside>
|
|
||||||
<aside class="post-toc-mobile" id="post-toc-mobile">
|
|
||||||
<details>
|
<details>
|
||||||
<summary>
|
<summary>
|
||||||
<div class="post-toc-title">
|
<div class="toc-title">
|
||||||
<span>{{ T "toc" }}</span>
|
<span>{{ T "toc" }}</span>
|
||||||
<span><i class="details icon fas fa-angle-down"></i></span>
|
<span><i class="details icon fas fa-angle-down"></i></span>
|
||||||
</div>
|
</div>
|
||||||
</summary>
|
</summary>
|
||||||
<div class="post-toc-content">
|
<div class="toc-content" id="toc-content-static">
|
||||||
{{- $toc := .TableOfContents -}}
|
{{- .TableOfContents -}}
|
||||||
{{- $toc = replaceRE `id="TableOfContents"` `id="TableOfContentsMobile"` $toc -}}
|
|
||||||
{{- $toc | safeHTML -}}
|
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
</aside>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- /* Content */ -}}
|
{{- /* Content */ -}}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
{"Target":"css/mermaid.css","MediaType":"text/css","Data":{}}
|
||||||
294
src/js/theme.js
@@ -12,20 +12,41 @@
|
|||||||
getScrollTop() {
|
getScrollTop() {
|
||||||
return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
|
return (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isMobile() {
|
||||||
|
return window.matchMedia('only screen and (max-width: 560px)').matches;
|
||||||
|
}
|
||||||
|
|
||||||
|
isTocStatic() {
|
||||||
|
return window.matchMedia('only screen and (max-width: 960px)').matches;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Theme {
|
class Theme {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.util = new Util();
|
this.util = new Util();
|
||||||
this.scrollTop = 0;
|
this.newScrollTop = this.util.getScrollTop();
|
||||||
this.scrollEvents = [];
|
this.oldScrollTop = this.newScrollTop;
|
||||||
|
this.scrollEventSet = new Set();
|
||||||
|
this.resizeEventSet = new Set();
|
||||||
}
|
}
|
||||||
|
|
||||||
initMobileMenu() {
|
initMenuMobile() {
|
||||||
document.getElementById('menu-toggle').onclick = () => {
|
const menuToggleMobile = document.getElementById('menu-toggle-mobile');
|
||||||
document.getElementById('menu-toggle').classList.toggle('active');
|
const menuMobile = document.getElementById('menu-mobile');
|
||||||
document.getElementById('menu-mobile').classList.toggle('active');
|
this._menuMobileOnScroll = this._menuMobileOnScroll || (() => {
|
||||||
};
|
menuToggleMobile.classList.remove('active');
|
||||||
|
menuMobile.classList.remove('active');
|
||||||
|
});
|
||||||
|
if (this.util.isMobile()) {
|
||||||
|
menuToggleMobile.onclick = () => {
|
||||||
|
menuToggleMobile.classList.toggle('active');
|
||||||
|
menuMobile.classList.toggle('active');
|
||||||
|
};
|
||||||
|
this.scrollEventSet.add(this._menuMobileOnScroll);
|
||||||
|
} else {
|
||||||
|
this.scrollEventSet.delete(this._menuMobileOnScroll);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initSwitchTheme() {
|
initSwitchTheme() {
|
||||||
@@ -80,46 +101,55 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_refactorToc(toc) {
|
initToc() {
|
||||||
this.util.forEach(toc.querySelectorAll('a:first-child'), (link) => {
|
const tocCore = document.getElementById('TableOfContents');
|
||||||
link.classList.add('toc-link');
|
if (tocCore === null) return;
|
||||||
});
|
if (this.util.isTocStatic()) {
|
||||||
}
|
const tocContentStatic = document.getElementById('toc-content-static');
|
||||||
|
if (tocCore.parentElement !== tocContentStatic) {
|
||||||
_initTocState(tocContainer) {
|
tocCore.parentElement.removeChild(tocCore);
|
||||||
if (window.getComputedStyle(tocContainer, null).display !== 'none') {
|
tocContentStatic.appendChild(tocCore);
|
||||||
const fixed = window.desktopHeaderMode !== 'normal';
|
}
|
||||||
const fixedHeight = document.getElementById('header-desktop').getBoundingClientRect().height;
|
if (this._tocOnScroll) this.scrollEventSet.delete(this._tocOnScroll);
|
||||||
const TOP_SPACING = 20 + (fixed ? fixedHeight : 0);
|
} else {
|
||||||
const minTop = tocContainer.offsetTop;
|
const tocContentAuto = document.getElementById('toc-content-auto');
|
||||||
const minScrollTop = minTop - TOP_SPACING + (fixed ? 0 : fixedHeight);
|
if (tocCore.parentElement !== tocContentAuto) {
|
||||||
const footerTop = document.getElementById('post-footer').offsetTop;
|
tocCore.parentElement.removeChild(tocCore);
|
||||||
const toclinks = tocContainer.getElementsByClassName('toc-link');
|
tocContentAuto.appendChild(tocCore);
|
||||||
const headerLinks = document.getElementsByClassName('headerLink') || [];
|
}
|
||||||
const tocLinkLis = tocContainer.querySelectorAll('.post-toc-content li');
|
const toc = document.getElementById('toc-auto');
|
||||||
const INDEX_SPACING = 5 + (fixed ? fixedHeight : 0);
|
const page = document.getElementsByClassName('page')[0];
|
||||||
|
toc.style.maxWidth = `${page.getBoundingClientRect().left - 40}px`;
|
||||||
const changeTocState = () => {
|
this._tocLinks = this._tocLinks || tocCore.getElementsByTagName('a');
|
||||||
const scrollTop = this.util.getScrollTop();
|
this._tocLis = this._tocLis || tocCore.getElementsByTagName('li');
|
||||||
const maxTop = footerTop - tocContainer.getBoundingClientRect().height;
|
this._headerLinks = this._headerLinks || document.getElementsByClassName('headerLink') || [];
|
||||||
const maxScrollTop = maxTop - TOP_SPACING + (fixed ? 0 : fixedHeight);
|
const headerIsFixed = window.desktopHeaderMode !== 'normal';
|
||||||
if (scrollTop < minScrollTop) {
|
const headerHeight = document.getElementById('header-desktop').offsetHeight;
|
||||||
tocContainer.style.position = 'absolute';
|
const TOP_SPACING = 20 + (headerIsFixed ? headerHeight : 0);
|
||||||
tocContainer.style.top = `${minTop}px`;
|
const minTocTop = toc.offsetTop;
|
||||||
} else if (scrollTop > maxScrollTop) {
|
const minScrollTop = minTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);
|
||||||
tocContainer.style.position = 'absolute';
|
this._tocOnScroll = this._tocOnScroll || (() => {
|
||||||
tocContainer.style.top = `${maxTop}px`;
|
const footerTop = document.getElementById('post-footer').offsetTop;
|
||||||
|
const maxTocTop = footerTop - toc.getBoundingClientRect().height;
|
||||||
|
const maxScrollTop = maxTocTop - TOP_SPACING + (headerIsFixed ? 0 : headerHeight);
|
||||||
|
if (this.newScrollTop < minScrollTop) {
|
||||||
|
toc.style.position = 'absolute';
|
||||||
|
toc.style.top = `${minTocTop}px`;
|
||||||
|
} else if (this.newScrollTop > maxScrollTop) {
|
||||||
|
toc.style.position = 'absolute';
|
||||||
|
toc.style.top = `${maxTocTop}px`;
|
||||||
} else {
|
} else {
|
||||||
tocContainer.style.position = 'fixed';
|
toc.style.position = 'fixed';
|
||||||
tocContainer.style.top = `${TOP_SPACING}px`;
|
toc.style.top = `${TOP_SPACING}px`;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.util.forEach(toclinks, (link) => { link.classList.remove('active'); });
|
this.util.forEach(this._tocLinks, (link) => { link.classList.remove('active'); });
|
||||||
this.util.forEach(tocLinkLis, (link) => { link.classList.remove('has-active'); });
|
this.util.forEach(this._tocLis, (link) => { link.classList.remove('has-active'); });
|
||||||
let activeTocIndex = headerLinks.length - 1;
|
const INDEX_SPACING = 20 + (headerIsFixed ? headerHeight : 0);
|
||||||
for (let i = 0; i < headerLinks.length - 1; i++) {
|
let activeTocIndex = this._headerLinks.length - 1;
|
||||||
const thisTop = headerLinks[i].getBoundingClientRect().top;
|
for (let i = 0; i < this._headerLinks.length - 1; i++) {
|
||||||
const nextTop = headerLinks[i + 1].getBoundingClientRect().top;
|
const thisTop = this._headerLinks[i].getBoundingClientRect().top;
|
||||||
|
const nextTop = this._headerLinks[i + 1].getBoundingClientRect().top;
|
||||||
if ((i == 0 && thisTop > INDEX_SPACING)
|
if ((i == 0 && thisTop > INDEX_SPACING)
|
||||||
|| (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {
|
|| (thisTop <= INDEX_SPACING && nextTop > INDEX_SPACING)) {
|
||||||
activeTocIndex = i;
|
activeTocIndex = i;
|
||||||
@@ -127,47 +157,25 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (activeTocIndex !== -1) {
|
if (activeTocIndex !== -1) {
|
||||||
toclinks[activeTocIndex].classList.add('active');
|
this._tocLinks[activeTocIndex].classList.add('active');
|
||||||
let parent = toclinks[activeTocIndex].parentElement;
|
let parent = this._tocLinks[activeTocIndex].parentElement;
|
||||||
while (parent.tagName !== 'NAV') {
|
while (parent !== tocCore) {
|
||||||
parent.classList.add('has-active');
|
parent.classList.add('has-active');
|
||||||
parent = parent.parentElement.parentElement;
|
parent = parent.parentElement.parentElement;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
changeTocState();
|
this._tocOnScroll();
|
||||||
|
this.scrollEventSet.add(this._tocOnScroll);
|
||||||
if (!this._initTocOnce) {
|
|
||||||
this.scrollEvents.push(changeTocState);
|
|
||||||
this._initTocOnce = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
initToc() {
|
|
||||||
const tocContainer = document.getElementById('post-toc');
|
|
||||||
if (tocContainer !== null) {
|
|
||||||
const toc = document.getElementById('TableOfContents');
|
|
||||||
if (toc === null) {
|
|
||||||
tocContainer.parentElement.removeChild(tocContainer);
|
|
||||||
} else {
|
|
||||||
this._refactorToc(toc);
|
|
||||||
this._initTocState(tocContainer);
|
|
||||||
window.addEventListener('resize', () => {
|
|
||||||
window.setTimeout(() => {
|
|
||||||
this._initTocState(tocContainer);
|
|
||||||
}, 0);
|
|
||||||
}, false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initMermaid() {
|
initMermaid() {
|
||||||
if (window.mermaidMap) {
|
if (window.mermaidMap) {
|
||||||
mermaid.initialize({startOnLoad: false, theme: null});
|
mermaid.initialize({startOnLoad: false, theme: null});
|
||||||
Object.keys(mermaidMap).forEach((id) => {
|
Object.keys(window.mermaidMap).forEach((id) => {
|
||||||
const element = document.getElementById(id);
|
const element = document.getElementById(id);
|
||||||
mermaid.mermaidAPI.render("d" + id, mermaidMap[id], (svgCode) => {
|
mermaid.mermaidAPI.render("d" + id, window.mermaidMap[id], (svgCode) => {
|
||||||
element.innerHTML = svgCode;
|
element.innerHTML = svgCode;
|
||||||
const svg = element.firstChild;
|
const svg = element.firstChild;
|
||||||
svg.style.width = "100%"
|
svg.style.width = "100%"
|
||||||
@@ -178,29 +186,29 @@
|
|||||||
|
|
||||||
initEcharts() {
|
initEcharts() {
|
||||||
if (window.echartsMap) {
|
if (window.echartsMap) {
|
||||||
for (let i = 0; i < echartsArr.length; i++) {
|
this._echartsArr = this._echartsArr || [];
|
||||||
echartsArr[i].dispose();
|
for (let i = 0; i < this._echartsArr.length; i++) {
|
||||||
|
this._echartsArr[i].dispose();
|
||||||
}
|
}
|
||||||
echartsArr = [];
|
this._echartsArr = [];
|
||||||
Object.keys(echartsMap).forEach((id) => {
|
Object.keys(window.echartsMap).forEach((id) => {
|
||||||
let myChart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'});
|
const chart = echarts.init(document.getElementById(id), window.isDark ? 'dark' : 'macarons', {renderer: 'svg'});
|
||||||
myChart.setOption(echartsMap[id]);
|
chart.setOption(window.echartsMap[id]);
|
||||||
echartsArr.push(myChart);
|
this._echartsArr.push(chart);
|
||||||
});
|
});
|
||||||
window.addEventListener("resize", function () {
|
this._echartsOnResize = this._echartsOnResize || (() => {
|
||||||
this.setTimeout(() => {
|
for (let i = 0; i < this._echartsArr.length; i++) {
|
||||||
for (let i = 0; i < echartsArr.length; i++) {
|
this._echartsArr[i].resize();
|
||||||
echartsArr[i].resize();
|
}
|
||||||
}
|
});
|
||||||
}, 0);
|
this.resizeEventSet.add(this._echartsOnResize);
|
||||||
}, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initTypeit() {
|
initTypeit() {
|
||||||
if (window.typeitArr) {
|
if (window.typeitArr) {
|
||||||
for (let i = 0; i < typeitArr.length; i++) {
|
for (let i = 0; i < window.typeitArr.length; i++) {
|
||||||
const group = typeitArr[i];
|
const group = window.typeitArr[i];
|
||||||
(function typeone(i) {
|
(function typeone(i) {
|
||||||
const content = document.getElementById(`r${group[i]}`).innerHTML;
|
const content = document.getElementById(`r${group[i]}`).innerHTML;
|
||||||
if (i === group.length - 1) {
|
if (i === group.length - 1) {
|
||||||
@@ -221,25 +229,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
initScroll() {
|
initSmoothScroll() {
|
||||||
for (let i = 0; i < this.scrollEvents.length; i++) {
|
if ((!this.util.isMobile() && window.desktopHeaderMode === 'normal')
|
||||||
document.addEventListener('scroll', this.scrollEvents[i], false);
|
|| (this.util.isMobile() && window.mobileHeaderMode === 'normal')) {
|
||||||
|
new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true});
|
||||||
|
} else {
|
||||||
|
new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});
|
||||||
}
|
}
|
||||||
const initSmoothScroll = () => {
|
}
|
||||||
const isMobile = window.matchMedia('only screen and (max-width: 560px)').matches;
|
|
||||||
if ((!isMobile && window.desktopHeaderMode === 'normal')
|
onScroll() {
|
||||||
|| (isMobile && window.mobileHeaderMode === 'normal')) {
|
|
||||||
new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true});
|
|
||||||
} else {
|
|
||||||
new SmoothScroll('[href^="#"]', {speed: 300, speedAsDuration: true, header: '#header-desktop'});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
initSmoothScroll();
|
|
||||||
window.addEventListener('resize', () => {
|
|
||||||
window.setTimeout(() => {
|
|
||||||
initSmoothScroll();
|
|
||||||
}, 0);
|
|
||||||
}, false);
|
|
||||||
const headers = [];
|
const headers = [];
|
||||||
if (window.desktopHeaderMode === 'auto') headers.push(document.getElementById('header-desktop'));
|
if (window.desktopHeaderMode === 'auto') headers.push(document.getElementById('header-desktop'));
|
||||||
if (window.mobileHeaderMode === 'auto') headers.push(document.getElementById('header-mobile'));
|
if (window.mobileHeaderMode === 'auto') headers.push(document.getElementById('header-mobile'));
|
||||||
@@ -248,43 +247,57 @@
|
|||||||
header.classList.add('faster');
|
header.classList.add('faster');
|
||||||
});
|
});
|
||||||
const toTopButton = document.getElementById('dynamic-to-top');
|
const toTopButton = document.getElementById('dynamic-to-top');
|
||||||
document.addEventListener('scroll', () => {
|
const MIN_SCROLL = 20;
|
||||||
const scrollTop = this.util.getScrollTop();
|
window.addEventListener('scroll', () => {
|
||||||
|
this.newScrollTop = this.util.getScrollTop();
|
||||||
|
const scroll = this.newScrollTop - this.oldScrollTop;
|
||||||
this.util.forEach(headers, (header) => {
|
this.util.forEach(headers, (header) => {
|
||||||
if (this.scrollTop < scrollTop) {
|
if (scroll > MIN_SCROLL) {
|
||||||
if (!header.classList.contains('fadeOutUp')) {
|
header.classList.remove('fadeInDown');
|
||||||
header.classList.remove('fadeInDown');
|
header.classList.add('fadeOutUp');
|
||||||
header.classList.add('fadeOutUp');
|
} else if (scroll < - MIN_SCROLL) {
|
||||||
}
|
header.classList.remove('fadeOutUp');
|
||||||
} else {
|
header.classList.add('fadeInDown');
|
||||||
if (!header.classList.contains('fadeInDown')) {
|
|
||||||
header.classList.remove('fadeOutUp');
|
|
||||||
header.classList.add('fadeInDown');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (scrollTop > 600) {
|
|
||||||
if (this.scrollTop < scrollTop) {
|
|
||||||
if (!toTopButton.classList.contains('fadeOut')) {
|
|
||||||
toTopButton.classList.remove('fadeIn');
|
|
||||||
toTopButton.classList.add('fadeOut');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
toTopButton.style.display = 'block';
|
|
||||||
if (!toTopButton.classList.contains('fadeIn')) {
|
|
||||||
toTopButton.classList.remove('fadeOut');
|
|
||||||
toTopButton.classList.add('fadeIn');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
toTopButton.style.display = 'none';
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.scrollTop = scrollTop;
|
if (this.newScrollTop > 400) {
|
||||||
|
if (scroll > MIN_SCROLL) {
|
||||||
|
toTopButton.classList.remove('fadeIn');
|
||||||
|
toTopButton.classList.add('fadeOut');
|
||||||
|
} else if (scroll < - MIN_SCROLL) {
|
||||||
|
toTopButton.style.display = 'block';
|
||||||
|
toTopButton.classList.remove('fadeOut');
|
||||||
|
toTopButton.classList.add('fadeIn');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
toTopButton.style.display = 'none';
|
||||||
|
}
|
||||||
|
if (!this._scrollTimeout) {
|
||||||
|
this._scrollTimeout = window.setTimeout(() => {
|
||||||
|
this._scrollTimeout = null;
|
||||||
|
for (let event of this.scrollEventSet) event();
|
||||||
|
}, 10);
|
||||||
|
}
|
||||||
|
this.oldScrollTop = this.newScrollTop;
|
||||||
|
}, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
onResize() {
|
||||||
|
window.addEventListener('resize', () => {
|
||||||
|
if (!this._resizeTimeout) {
|
||||||
|
this._resizeTimeout = window.setTimeout(() => {
|
||||||
|
this._resizeTimeout = null;
|
||||||
|
for (let event of this.resizeEventSet) event();
|
||||||
|
this.initMenuMobile();
|
||||||
|
this.initToc();
|
||||||
|
this.initSmoothScroll();
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
}, false);
|
}, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
this.initMobileMenu();
|
this.initMenuMobile();
|
||||||
this.initSwitchTheme();
|
this.initSwitchTheme();
|
||||||
this.initHighlight();
|
this.initHighlight();
|
||||||
this.initTable();
|
this.initTable();
|
||||||
@@ -293,7 +306,10 @@
|
|||||||
this.initEcharts();
|
this.initEcharts();
|
||||||
this.initTypeit();
|
this.initTypeit();
|
||||||
this.initToc();
|
this.initToc();
|
||||||
this.initScroll();
|
this.initSmoothScroll();
|
||||||
|
|
||||||
|
this.onScroll();
|
||||||
|
this.onResize();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||