Merge pull request #74 from dillonzq/feature/custom_home_page

Feature/custom home page
This commit is contained in:
Dillon 2020-02-17 12:45:49 +08:00 committed by GitHub
commit 30747ca190
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
35 changed files with 4383 additions and 432 deletions

11
.babelrc Normal file
View file

@ -0,0 +1,11 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": "> 0.25%, not dead"
}
],
"minify"
]
}

7
.gitignore vendored
View file

@ -1,7 +1,8 @@
# Hugo default output directory
public
/exampleSite/resources
/exampleSite/zh/resources
public/
/exampleSite/resources/
/exampleSite/zh/resources/
node_modules/
## OS Files
# Windows

View file

@ -1,25 +1,24 @@
---
author: ""
author_link: ""
title: "{{ replace .TranslationBaseName "-" " " | title }}"
date: {{ .Date }}
lastmod: {{ .Date }}
draft: true
author: ""
authorLink: ""
description: ""
show_in_homepage: true
description_as_summary: false
license: ""
tags: []
categories: []
hiddenFromHomePage: false
featured_image: ""
featured_image_preview: ""
featuredImage: ""
featuredImagePreview: ""
comment: true
toc: false
auto_collapse_toc: true
autoCollapseToc: true
math: false
comment: true
---
<!--more-->
<!--more-->

View file

@ -1,14 +1,9 @@
@charset 'utf-8';
{{- if eq .Site.Params.home_mode "post" -}}
$home-profile: true;
$home-posts: true;
{{- else -}}
$home-profile: true;
$home-posts: 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 }};
{{- if eq .Site.Params.desktopHeaderMode "normal" -}}
{{- if eq .Site.Params.header.desktopMode "normal" -}}
$header-position-desktop: static;
$page-padding-top-desktop: 1rem;
$post-toc-top: 7rem;
@ -18,7 +13,7 @@
$post-toc-top: 12rem;
{{- end -}}
{{- if eq .Site.Params.mobileHeaderMode "normal" -}}
{{- if eq .Site.Params.header.mobileMode "normal" -}}
$header-position-mobile: static;
$page-padding-top-mobile: 1rem;
{{- else -}}

View file

@ -112,84 +112,47 @@ dateFormatToUse = "2006-01-02"
keywords = ["Theme", "Hugo"]
# site default theme ("light", "dark", "auto")
defaultTheme = "auto"
# desktop header mode ("fixed", "normal", "auto")
desktopHeaderMode = "fixed"
# mobile header mode ("fixed", "normal", "auto")
mobileHeaderMode = "auto"
# Home Page Info
##home mode ("post", "other")
home_mode = "post"
## special amount of posts in each home post page
home_paginate = 6
## URL of avatar shown in home page
avatar = "images/avatar.png"
## subtitle shown in home page
subtitle = "A Clean, Elegant but Advanced Hugo Theme"
# whether to show social share links in post page
socialShare = true
# Footer CopyRight Info
## 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>'
# public git repo url to link lastmod git commit only then enableGitInfo is true
gitRepo = ""
# mathematical formulas (KaTeX)
[params.math]
enable = true
block_left_delimiter = ""
block_right_delimiter = ""
inline_left_delimiter = "$"
inline_right_delimiter = "$"
# KaTeX extension copy_tex
copy_tex = true
# KaTeX extension mhchem
mhchem = true
# Header info
[params.header]
# desktop header mode ("fixed", "normal", "auto")
desktopMode = "fixed"
# mobile header mode ("fixed", "normal", "auto")
mobileMode = "auto"
# whether to show link to Raw Markdown content of the post
linkToMarkdown = true
# 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>'
# site verification code for Google/Bing/Yandex/Pinterest/Baidu
google_verification = ""
bing_verification = ""
yandex_verification = ""
pinterest_verification = ""
baidu_verification = ""
# 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">'
fontawesome_free_css = ''
animate_css = ''
gitalk_css = ''
gitalk_js = ''
valine_js = ''
lazysizes_js = ''
smooth_scroll_js = ''
katex_css = ''
katex_js = ''
katex_auto_render_js = ''
katex_copy_tex_css = ''
katex_copy_tex_js = ''
katex_mhchem_js = ''
mermaid_js = ''
echarts_js = ''
echarts_macarons_js = ''
typeit_js = ''
aplayer_css = ''
aplayer_js = ''
meting_js = ''
# Gravatar Info for preferred avatar in home page
[params.gravatar]
email = ""
# 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]
@ -257,6 +220,13 @@ dateFormatToUse = "2006-01-02"
#XMPP = "xxxx"
#Matrix ="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
@ -271,6 +241,50 @@ dateFormatToUse = "2006-01-02"
#VKontakte = true
#Weibo = 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 = ''
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"
@ -291,39 +305,43 @@ dateFormatToUse = "2006-01-02"
width = 800
height = 600
# Disqus Comment Config (https://disqus.com/)
[params.disqus]
# Disqus shortname to use Disqus in posts
shortname = "dillonzq"
# Comment Config
[params.comment]
enable = true
# Gittalk Comment Config (https://github.com/gitalk/gitalk)
[params.gitalk]
owner = ""
repo = ""
clientId = ""
clientSecret = ""
# Disqus Comment Config (https://disqus.com/)
[params.comment.disqus]
# Disqus shortname to use Disqus in posts
shortname = "dillonzq"
# Valine Comment Config (https://github.com/xCss/Valine)
[params.valine]
enable = false
appId = ""
appKey = ""
placeholder = "Your comment ..."
notify = false
verify = true
avatar = "mp"
#meta= ""
pageSize = 10
visitor = true
recordIP = true
# Gittalk Comment Config (https://github.com/gitalk/gitalk)
[params.comment.gitalk]
owner = ""
repo = ""
clientId = ""
clientSecret = ""
# Facebook Comment Config (https://developers.facebook.com/docs/plugins/comments)
[params.facebook]
enable = false
width = "100%"
numPosts = 10
appId = ""
languageCode = "en_US"
# 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]

View file

@ -1,29 +1,24 @@
---
author: "Hugo Authors"
author_link: "https://gohugo.io/"
title: "Emoji Support"
date: 2019-10-01T17:55:28+08:00
lastmod: 2019-10-01T17:55:28+08:00
draft: false
author: "Hugo Authors"
authorLink: "https://gohugo.io/"
description: "Guide to emoji usage in Hugo"
show_in_homepage: true
description_as_summary: false
license: ""
tags: [
"emoji",
]
categories: [
"theme",
]
tags: ["emoji"]
categories: ["theme"]
hiddenFromHomePage: false
featured_image: /images/emoji.jpg
featured_image_preview: ""
featuredImage: /images/emoji.jpg
featuredImagePreview: ""
comment: true
toc: false
auto_collapse_toc: true
autoCollapseToc: true
math: false
comment: true
---
Emoji can be enabled in a Hugo project in a number of ways.

View file

@ -1,31 +1,24 @@
---
author: "Hugo Authors"
author_link: "https://gohugo.io/"
title: "Markdown Syntax Guide"
date: 2019-12-01T21:57:40+08:00
lastmod: 2020-01-01T16:45:40+08:00
draft: false
author: "Hugo Authors"
authorLink: "https://gohugo.io/"
description: "Sample article showcasing basic Markdown syntax and formatting for HTML elements."
show_in_homepage: true
description_as_summary: false
license: ""
tags: [
"markdown",
"css",
"html",
]
categories: [
"theme",
]
tags: ["markdown", "css", "html"]
categories: ["theme"]
hiddenFromHomePage: false
featured_image: /images/markdown.png
featured_image_preview: ""
featuredImage: /images/markdown.png
featuredImagePreview: ""
comment: true
toc: true
auto_collapse_toc: true
autoCollapseToc: true
math: true
comment: true
---
This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.

View file

@ -1,30 +1,24 @@
---
author: "Hugo Authors"
author_link: "https://gohugo.io/"
title: "Placeholder Text"
date: 2019-08-01T18:02:41+08:00
lastmod: 2019-08-01T18:02:41+08:00
draft: false
author: "Hugo Authors"
authorLink: "https://gohugo.io/"
description: "Lorem Ipsum Dolor Si Amet"
show_in_homepage: true
description_as_summary: false
license: ""
tags: [
"markdown",
"text",
]
categories: [
"theme",
]
tags: ["markdown", "text"]
categories: ["theme"]
hiddenFromHomePage: false
featured_image: ""
featured_image_preview: ""
featuredImage: ""
featuredImagePreview: ""
comment: true
toc: false
auto_collapse_toc: true
autoCollapseToc: true
math: false
comment: true
---
Lorem est tota propiore conpellat pectoribus de

View file

@ -1,30 +1,24 @@
---
author: "Hugo Authors"
author_link: "https://gohugo.io/"
title: "Rich Content"
date: 2019-09-01T18:06:32+08:00
lastmod: 2019-09-01T18:06:32+08:00
draft: false
author: "Hugo Authors"
authorLink: "https://gohugo.io/"
description: "A brief description of Hugo Shortcodes"
show_in_homepage: true
description_as_summary: false
license: ""
tags: [
"shortcodes",
"privacy",
]
categories: [
"theme",
]
tags: ["shortcodes", "privacy"]
categories: ["theme"]
hiddenFromHomePage: false
featured_image: /images/hugo.png
featured_image_preview: ""
featuredImage: /images/hugo.png
featuredImagePreview: ""
comment: true
toc: false
auto_collapse_toc: true
autoCollapseToc: true
math: false
comment: true
---
Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.

View file

@ -112,84 +112,47 @@ dateFormatToUse = "2006-01-02"
keywords = ["Theme", "Hugo"]
# 网站默认主题 ("light", "dark", "auto")
defaultTheme = "auto"
# 桌面端导航栏模式 ("fixed", "normal", "auto")
desktopHeaderMode = "fixed"
# 移动端导航栏模式 ("fixed", "normal", "auto")
mobileHeaderMode = "auto"
# 主页信息设置
## 主页模式 ("post", "other")
home_mode = "post"
## 主页在 post 模式下每页 post 显示数量
home_paginate = 6
## 主页显示头像的 URL
avatar = "images/avatar.png"
## 主页显示的网站副标题
subtitle = "一个简洁、优雅且高效的 Hugo 主题"
# 在文章页面是否使用分享功能
socialShare = true
# 页面底部版权信息设置
## 网站创立年份
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>'
# 用于生成文章上次修改时间的公共 git 仓库路径,仅在 enableGitInfo 设为 true 时有效
gitRepo = ""
# 数学公式 (KaTeX https://katex.org/)
[params.math]
enable = true
block_left_delimiter = ""
block_right_delimiter = ""
inline_left_delimiter = "$"
inline_right_delimiter = "$"
# KaTeX 插件 copy_tex
copy_tex = true
# KaTeX 插件 mhchem
mhchem = true
# 页面头部导航栏信息
[params.header]
# 桌面端导航栏模式 ("fixed", "normal", "auto")
desktopMode = "fixed"
# 移动端导航栏模式 ("fixed", "normal", "auto")
mobileMode = "auto"
# 是否在文章页面显示原始 Markdown 文档链接
linkToMarkdown = true
# 页面底部版权信息设置
[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>'
# 网站验证代码,用于 Google/Bing/Yandex/Pinterest/Baidu
google_verification = ""
bing_verification = ""
yandex_verification = ""
pinterest_verification = ""
baidu_verification = ""
# 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">'
fontawesome_free_css = ''
animate_css = ''
gitalk_css = ''
gitalk_js = ''
valine_js = ''
lazysizes_js = ''
smooth_scroll_js = ''
katex_css = ''
katex_js = ''
katex_auto_render_js = ''
katex_copy_tex_css = ''
katex_copy_tex_js = ''
katex_mhchem_js = ''
mermaid_js = ''
echarts_js = ''
echarts_macarons_js = ''
typeit_js = ''
aplayer_css = ''
aplayer_js = ''
meting_js = ''
# Gravatar 信息,用于优先在主页显示的头像
[params.gravatar]
email = ""
# 主页信息设置
[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]
@ -257,6 +220,13 @@ dateFormatToUse = "2006-01-02"
#XMPP = "xxxx"
#Matrix ="xxxx"
# 文章页面配置
[params.page]
# 在文章页面是否使用分享功能
socialShare = true
# 是否在文章页面显示原始 Markdown 文档链接
linkToMarkdown = true
# 文章页面的分享信息设置
[params.share]
enable = true
@ -271,6 +241,50 @@ dateFormatToUse = "2006-01-02"
#VKontakte = true
#Weibo = 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 = ''
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"
@ -291,39 +305,43 @@ dateFormatToUse = "2006-01-02"
width = 800
height = 600
# Disqus 评论系统设置 (https://disqus.com/)
[params.disqus]
# Disqus 的用户名,用来在文章中启用 Disqus 评论系统
shortname = "dillonzq"
# 评论系统设置
[params.comment]
enable = true
# Gittalk 评论系统设置 (https://github.com/gitalk/gitalk)
[params.gitalk]
owner = ""
repo = ""
clientId = ""
clientSecret = ""
# Disqus 评论系统设置 (https://disqus.com/)
[params.comment.disqus]
# Disqus 的用户名,用来在文章中启用 Disqus 评论系统
shortname = "dillonzq"
# Valine 评论系统设置 (https://github.com/xCss/Valine)
[params.valine]
enable = false
appId = ""
appKey = ""
placeholder = "你的评论 ..."
notify = false
verify = true
avatar = "mp"
#meta= ""
pageSize = 10
visitor = true
recordIP = true
# Gittalk 评论系统设置 (https://github.com/gitalk/gitalk)
[params.comment.gitalk]
owner = ""
repo = ""
clientId = ""
clientSecret = ""
# Facebook 评论系统设置 (https://developers.facebook.com/docs/plugins/comments)
[params.facebook]
enable = false
width = "100%"
numPosts = 10
appId = ""
languageCode = "en_US"
# 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]

View file

@ -1,30 +1,24 @@
---
author: ""
author_link: ""
title: "Markdown 基本语法预览"
date: 2019-08-25T16:22:42+08:00
lastmod: 2019-08-25T16:22:42+08:00
draft: false
author: ""
authorLink: ""
description: "这是一篇用于预览 Markdown 基本语法的文章。"
show_in_homepage: true
description_as_summary: false
license: ""
tags: [
"Hugo",
"主题",
]
categories: [
"预览",
]
tags: ["Hugo", "主题"]
categories: ["预览"]
featured_image: ""
featured_image_preview: ""
featuredImage: ""
featuredImagePreview: ""
hiddenFromHomePage: false
comment: true
toc: true
auto_collapse_toc: true
autoCollapseToc: true
math: true
comment: true
---
这是一篇用于预览 :(fab fa-markdown): Markdown 基本语法的文章。

View file

@ -1,8 +1,8 @@
<article class="single summary" itemscope itemtype="http://schema.org/Article">
{{- /* Featured image */ -}}
{{- with .Params.featured_image -}}
{{- with .Params.featuredImage -}}
<div class="featured-image-preview">
{{- $image := $.Params.featured_image_preview | default . -}}
{{- $image := $.Params.featuredImagePreview | default . -}}
{{- partial "hook/image" $image -}}
</div>
{{- end -}}
@ -15,8 +15,8 @@
{{- /* Meta */ -}}
<div class="meta">
{{- $author := .Params.author | default .Site.Author.name -}}
{{- $author_link := .Params.author_link | default .Site.Author.link | default .Site.BaseURL -}}
<a class="author" href="{{ $author_link }}" rel="author" target="_blank">
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default .Site.BaseURL -}}
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
</a>
@ -39,13 +39,7 @@
{{- /* Summary content */ -}}
<div class="content">
{{- if .Params.description_as_summary -}}
<p>
{{- .Params.description -}}
</p>
{{- else -}}
{{- partial "hook/content.html" .Summary | safeHTML -}}
{{- end -}}
{{- partial "hook/content.html" .Summary | safeHTML -}}
</div>
{{- /* Footer */ -}}

View file

@ -1,14 +1,20 @@
{{- define "content" -}}
<div class="page home">
{{- /* Home mode [post] */ -}}
{{- if eq .Site.Params.home_mode "post" -}}
{{- /* Profile */ -}}
{{- /* Profile */ -}}
{{- if .Site.Params.home.profile.enable -}}
{{- partial "home/profile.html" . -}}
{{- end -}}
{{- /* Posts */ -}}
{{- if .Site.Params.home.posts.enable -}}
{{- /* Paginate */ -}}
{{- $paginator := where .Site.RegularPages "Type" "posts" -}}
{{- $paginator = where $paginator "Params.show_in_homepage" "!=" false -}}
{{- with .Site.Params.home_paginate -}}
{{- if ne .Site.Params.home.posts.mode.defaultHiddenFromHomePage false -}}
{{- $paginator = where $paginator "Params.hiddenfromhomepage" "!=" true -}}
{{- else -}}
{{- $paginator = where $paginator "Params.hiddenfromhomepage" false -}}
{{- end -}}
{{- with .Site.Params.home.posts.paginate -}}
{{- $paginator = $.Paginate $paginator . -}}
{{- else -}}
{{- $paginator = $.Paginate $paginator -}}
@ -17,11 +23,6 @@
{{- .Render "summary" -}}
{{- end -}}
{{- partial "paginator.html" . -}}
{{- /* Home mode [other] */ -}}
{{- else -}}
{{- /* Profile */ -}}
{{- partial "home/profile.html" . -}}
{{- end -}}
</div>
{{- end -}}

View file

@ -1,8 +1,8 @@
{{- if .Scratch.Get "production" | and .IsPage | and (ne .Params.comment false) -}}
{{- if .Scratch.Get "production" | and .IsPage | and (ne .Site.Params.comment.enable false) | and (ne .Params.comment false) -}}
{{- $CDN := .Scratch.Get "CDN" -}}
{{- /* Disqus Comment System */ -}}
{{- with .Site.Params.disqus.shortname -}}
{{- with .Site.Params.comment.disqus.shortname -}}
<div id="disqus_thread"></div>
{{- $script := printf `<script src="https://%s.disqus.com/embed.js"></script>` . -}}
{{- slice $script | $.Scratch.Add "scriptCDN" -}}
@ -12,14 +12,15 @@
{{- end -}}
{{- /* Gitalk Comment System */ -}}
{{- if .Site.Params.gitalk.owner -}}
{{- if .Site.Params.comment.gitalk.owner -}}
{{- $gitalk := .Site.Params.comment.gitalk -}}
<div id="gitalk"></div>
{{- with $CDN.gitalk_css -}}
{{- with $CDN.gitalkCSS -}}
{{- slice . | $.Scratch.Add "linkCDN" -}}
{{- else -}}
{{- slice "css/lib/gitalk/gitalk.css" | .Scratch.Add "linkLocal" -}}
{{- end -}}
{{- with $CDN.gitalk_js -}}
{{- with $CDN.gitalkJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "css/lib/gitalk/gitalk.min.js" | .Scratch.Add "scriptLocal" -}}
@ -29,11 +30,11 @@
var gitalk = new Gitalk({
id: '{{ .Date }}',
title: '{{ .Title }}',
clientID: '{{ .Site.Params.gitalk.clientId }}',
clientSecret: '{{ .Site.Params.gitalk.clientSecret }}',
repo: '{{ .Site.Params.gitalk.repo }}',
owner: '{{ .Site.Params.gitalk.owner }}',
admin: ['{{ .Site.Params.gitalk.owner }}'],
clientID: '{{ $gitalk.clientId }}',
clientSecret: '{{ $gitalk.clientSecret }}',
repo: '{{ $gitalk.repo }}',
owner: '{{ $gitalk.owner }}',
admin: ['{{ $gitalk.owner }}'],
body: decodeURI(location.href),
});
gitalk.render('gitalk');
@ -45,10 +46,11 @@
{{- end -}}
{{- /* Valine Comment System */ -}}
{{- if .Site.Params.valine.enable -}}
{{- if .Site.Params.comment.valine.enable -}}
{{- $valine := .Site.Params.comment.valine -}}
<div id="valine"></div>
{{- slice "css/lib/valine/dark.scss" | .Scratch.Add "linkLocal" -}}
{{- with $CDN.valine_js -}}
{{- with $CDN.valineJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/valine/Valine.min.js" | .Scratch.Add "scriptLocal" -}}
@ -57,31 +59,31 @@
document.addEventListener("DOMContentLoaded", function(event) {
new Valine({
el: '#valine',
appId: '{{ .Site.Params.valine.appId }}',
appKey: '{{ .Site.Params.valine.appKey }}',
{{- with .Site.Params.valine.placeholder -}}
appId: '{{ $valine.appId }}',
appKey: '{{ $valine.appKey }}',
{{- with $valine.placeholder -}}
placeholder: '{{ . }}',
{{- end -}}
{{- if .Site.Params.valine.notify -}}
{{- if $valine.notify -}}
notify: true,
{{- end -}}
{{- if .Site.Params.valine.verify -}}
{{- if $valine.verify -}}
verify: true,
{{- end -}}
{{- with .Site.Params.valine.avatar -}}
{{- with $valine.avatar -}}
avatar: '{{ . }}',
{{- end -}}
{{- with .Site.Params.valine.meta -}}
{{- with $valine.meta -}}
meta: {{ . | safeJS }},
{{- end -}}
{{- with .Site.Params.valine.pageSize -}}
{{- with $valine.pageSize -}}
pageSize: {{ . | safeJS }},
{{- end -}}
lang: '{{ T "valineLang" }}',
{{- if .Site.Params.valine.visitor -}}
{{- if $valine.visitor -}}
visitor: true,
{{- end -}}
{{- if .Site.Params.valine.recordIP -}}
{{- if $valine.recordIP -}}
recordIP: true,
{{- end -}}
});
@ -93,16 +95,17 @@
{{- end -}}
{{- /* Facebook Comment System */ -}}
{{- if .Site.Params.facebook.enable -}}
{{- if .Site.Params.comment.facebook.enable -}}
{{- $facebook := .Site.Params.comment.facebook -}}
<div id="fb-root"></div>
<div
class="fb-comments"
data-href="{{ .Site.Params.baseURL }}{{ .Permalink | absURL }}"
data-width="{{ .Site.Params.facebook.width }}"
data-numposts="{{ .Site.Params.facebook.numPosts }}"
data-width="{{ $facebook.width }}"
data-numposts="{{ $facebook.numPosts }}"
></div>
{{- $script := `<script src="https://connect.facebook.net/%s/sdk.js#xfbml=1&version=v5.0&appId=%s&autoLogAppEvents=1" crossorigin="anonymous"></script>` -}}
{{- $script = printf $script .Site.Params.facebook.languageCode .Site.Params.facebook.appId -}}
{{- $script = printf $script $facebook.languageCode $facebook.appId -}}
{{- slice $script | .Scratch.Add "scriptCDN" -}}
<noscript>
Please enable JavaScript to view the <a href="https://developers.facebook.com/docs/plugins/comments/">comments powered by Facebook.</a>

View file

@ -8,7 +8,7 @@
<div class="copyright-line">
{{- /* Copyright year */ -}}
<i class="far fa-copyright fa-fw"></i>
{{- with .Site.Params.since -}}
{{- with .Site.Params.footer.since -}}
<span itemprop="copyrightYear">
{{- if lt . now.Year }}{{ . }} - {{ end }}{{ now.Year -}}
</span>
@ -22,12 +22,12 @@
{{- end -}}
{{- /* License */ -}}
{{- with .Site.Params.license -}}
{{- with .Site.Params.footer.license -}}
&nbsp;|&nbsp;<span class="license">{{ . | safeHTML }}</span>
{{- end -}}
{{- /* ICP */ -}}
{{- with .Site.Params.icp -}}
{{- with .Site.Params.footer.icp -}}
<span class="icp-splitter">&nbsp;|&nbsp;</span><br class="icp-br"/>
<span class="icp">{{ . | safeHTML }}</span>
{{- end -}}

View file

@ -30,7 +30,7 @@
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
{{- /* Font Awesome https://fontawesome.com/ */ -}}
{{- with $CDN.fontawesome_free_css -}}
{{- with $CDN.fontawesomeFreeCSS -}}
{{- . | safeHTML -}}
{{- else -}}
{{- $res := resources.Get "css/lib/fontawesome-free/all.min.css" -}}
@ -43,7 +43,7 @@
<link rel="stylesheet" href="{{ $res.RelPermalink }}">
{{- /* Animate.css https://github.com/daneden/animate.css */ -}}
{{- with $CDN.animate_css -}}
{{- with $CDN.animateCSS -}}
{{- . | safeHTML -}}
{{- else -}}
{{ $res := resources.Get "css/lib/animate/animate.min.css" -}}

View file

@ -1,19 +1,3 @@
{{- with .Site.Params.google_verification -}}
<meta name="google-site-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.bing_verification -}}
<meta name="msvalidate.01" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.yandex_verification -}}
<meta name="yandex-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.pinterest_verification -}}
<meta name="p:domain_verify" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.baidu_verification -}}
<meta name="baidu-site-verification" content="{{ . }}" />
{{- end -}}
{{- template "_internal/opengraph.html" . -}}
{{- template "_internal/twitter_cards.html" . -}}

View file

@ -1,3 +1,19 @@
{{- with .Site.Params.verification.google -}}
<meta name="google-site-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.bing -}}
<meta name="msvalidate.01" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.yandex -}}
<meta name="yandex-verification" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.pinterest -}}
<meta name="p:domain_verify" content="{{ . }}" />
{{- end -}}
{{- with .Site.Params.verification.baidu -}}
<meta name="baidu-site-verification" content="{{ . }}" />
{{- end -}}
{{- /* Home SEO */ -}}
{{- if .IsHome -}}
<script type="application/ld+json">

View file

@ -44,6 +44,6 @@
</header>
<script>
window.desktopHeaderMode = {{ .Site.Params.desktopHeaderMode }};
window.mobileHeaderMode = {{ .Site.Params.mobileHeaderMode }};
window.desktopHeaderMode = {{ .Site.Params.header.desktopMode }};
window.mobileHeaderMode = {{ .Site.Params.header.mobileMode }};
</script>

View file

@ -1,34 +1,38 @@
<div class="home-profile">
{{- $avatar := "" -}}
{{- if .Site.Params.gravatar.email -}}
{{- $avatar = (printf "https://www.gravatar.com/avatar/%s?s=240&d=mp" (md5 .Site.Params.gravatar.email)) -}}
{{- else if .Site.Params.avatar -}}
{{- $avatar = .Site.Params.avatar -}}
{{- $avatar := .Site.Params.home.profile.avatarURL -}}
{{- with .Site.Params.home.profile.gravatarEmail -}}
{{- $avatar = md5 . | printf "https://www.gravatar.com/avatar/%s?s=240&d=mp" -}}
{{- end -}}
{{- if $avatar -}}
{{- with $avatar -}}
<div class="home-avatar">
<a href="/posts">
<img src={{ $avatar | relURL }} alt="avatar" title="{{ T "home" }}">
<img src={{ . | relURL }} alt="avatar" title="{{ T "home" }}">
</a>
</div>
{{- end -}}
{{- with .Site.Params.subtitle -}}
{{- with .Site.Params.home.profile.subtitle -}}
<h2 class="home-description">
{{- $id := md5 . | printf "tp-%s" -}}
<div id={{ printf "r%s" $id }} hidden=true>
{{- . | safeHTML -}}
</div>
<div id={{ $id }} class="typeit"></div>
{{- with $.Scratch.Get "typeitMap" -}}
{{- $.Scratch.Set "typeitMap" (dict $id (slice $id) | merge .) -}}
{{- if $.Site.Params.home.profile.typeit -}}
{{- $id := md5 . | printf "tp-%s" -}}
<div id={{ printf "r%s" $id }} hidden=true>
{{- . | safeHTML -}}
</div>
<div id={{ $id }} class="typeit"></div>
{{- with $.Scratch.Get "typeitMap" -}}
{{- $.Scratch.Set "typeitMap" (dict $id (slice $id) | merge .) -}}
{{- else -}}
{{- $.Scratch.Set "typeitMap" (dict $id (slice $id)) -}}
{{- end -}}
{{- else -}}
{{- $.Scratch.Set "typeitMap" (dict $id (slice $id)) -}}
{{- . | safeHTML -}}
{{- end -}}
</h2>
{{- end -}}
<div class="home-social-links">
{{- partial "home/social.html" . -}}
{{- if .Site.Params.home.profile.social -}}
{{- partial "home/social.html" . -}}
{{- end -}}
</div>
</div>

View file

@ -17,7 +17,7 @@
</div>
<div class="post-info-line">
<div class="post-info-md">
{{- if .Site.Params.linkToMarkdown -}}
{{- if .Site.Params.page.linkToMarkdown -}}
{{- with .OutputFormats.Get "markdown" -}}
<span>
<a class="link-to-markdown" href="{{ .Permalink }}" target="_blank">
@ -28,7 +28,7 @@
{{- end -}}
</div>
<div class="post-info-share">
{{- if and ( .Param "socialShare" ) (gt (len (.Param "share")) 0) -}}
{{- if .Site.Params.page.socialShare -}}
<span>
{{- partial "post/share.html" . -}}
</span>

View file

@ -64,7 +64,7 @@
{{- /* Share on Weibo */ -}}
{{- if .Params.Share.Weibo | default .Site.Params.Share.Weibo | eq true -}}
<a href="//service.weibo.com/share/share.php?url={{ .Permalink }}&amp;appkey=&amp;title={{ .Title }}{{ with $.Params.featured_image }}&amp;pic={{ . }}{{- end -}}" target="_blank" title="{{ T "share" }} Weibo">
<a href="//service.weibo.com/share/share.php?url={{ .Permalink }}&amp;appkey=&amp;title={{ .Title }}{{ with $.Params.featuredImage }}&amp;pic={{ . }}{{- end -}}" target="_blank" title="{{ T "share" }} Weibo">
<i class="fab fa-weibo fa-fw"></i>
</a>
{{- end -}}

View file

@ -6,14 +6,14 @@
{{- end -}}
{{- /* lazysizes https://github.com/aFarkas/lazysizes */ -}}
{{- with $CDN.lazysizes_js -}}
{{- with $CDN.lazysizesJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/lazysizes/lazysizes.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- /* Smooth Scroll https://github.com/cferdinandi/smooth-scroll */ -}}
{{- with $CDN.smooth_scroll_js -}}
{{- with $CDN.smoothScrollJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/smooth-scroll/smooth-scroll.polyfills.min.js" | .Scratch.Add "scriptLocal" -}}
@ -21,7 +21,7 @@
{{- /* TypeIt https://github.com/alexmacarthur/typeit */ -}}
{{- with .Scratch.Get "typeitMap" -}}
{{- with $CDN.typeit_js -}}
{{- with $CDN.typeitJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/typeit/typeit.min.js" | $.Scratch.Add "scriptLocal" -}}
@ -36,36 +36,36 @@
{{- /* KaTeX https://github.com/KaTeX/KaTeX */ -}}
{{- if .Site.Params.math.enable | and (ne .Params.math false) -}}
{{- with $CDN.katex_css -}}
{{- with $CDN.katexCSS -}}
{{- slice . | $.Scratch.Add "linkCDN" -}}
{{- else -}}
{{- slice "css/lib/katex/katex.min.css" | .Scratch.Add "linkLocal" -}}
{{- end -}}
{{- with $CDN.katex_js -}}
{{- with $CDN.katexJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/katex/katex.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- with $CDN.katex_auto_render_js -}}
{{- with $CDN.katexAutoRenderJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/katex/auto-render.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- $math := .Site.Params.math -}}
{{- if $math.copy_tex -}}
{{- with $CDN.katex_copy_tex_css -}}
{{- if $math.copyTex -}}
{{- with $CDN.katexCopyTexCSS -}}
{{- slice . | $.Scratch.Add "linkCDN" -}}
{{- else -}}
{{- slice "css/lib/katex/copy-tex.min.css" | .Scratch.Add "linkLocal" -}}
{{- end -}}
{{- with $CDN.katex_copy_tex_js -}}
{{- with $CDN.katexCopyTexJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/katex/copy-tex.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- end -}}
{{- if $math.mhchem -}}
{{- with $CDN.katex_mhchem_js -}}
{{- with $CDN.katexMhchemJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/katex/mhchem.min.js" | .Scratch.Add "scriptLocal" -}}
@ -78,11 +78,11 @@
{ left: "$$", right: "$$", display: true },
{ left: "\\(", right: "\\)", display: false },
{ left: "\\[", right: "\\]", display: true },
{{- if and $math.block_left_delimiter $math.block_right_delimiter -}}
{ left: "{{ $math.block_left_delimiter }}", right: "{{ $math.block_right_delimiter }}", display: true },
{{- if and $math.blockLeftDelimiter $math.blockRightDelimiter -}}
{ left: "{{ $math.blockLeftDelimiter }}", right: "{{ $math.blockRightDelimiter }}", display: true },
{{- end -}}
{{- if and $math.inline_left_delimiter $math.inline_right_delimiter -}}
{ left: "{{ $math.inline_left_delimiter }}", right: "{{ $math.inline_right_delimiter }}", display: false },
{{- if and $math.inlineLeftDelimiter $math.inlineRightDelimiter -}}
{ left: "{{ $math.inlineLeftDelimiter }}", right: "{{ $math.inlineRightDelimiter }}", display: false },
{{- end -}}
]
});
@ -92,7 +92,7 @@
{{- /* mermaid https://github.com/knsv/mermaid */ -}}
{{- with .Scratch.Get "mermaidMap" -}}
{{- with $CDN.mermaid_js -}}
{{- with $CDN.mermaidJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/mermaid/mermaid.min.js" | $.Scratch.Add "scriptLocal" -}}
@ -106,20 +106,20 @@
{{- /* Music */ -}}
{{- if .Scratch.Get "music" -}}
{{- /* APlayer https://github.com/MoePlayer/APlayer */ -}}
{{- with $CDN.aplayer_css -}}
{{- with $CDN.aplayerCSS -}}
{{- slice . | $.Scratch.Add "linkCDN" -}}
{{- else -}}
{{- slice "css/lib/aplayer/APlayer.min.css" | .Scratch.Add "linkLocal" -}}
{{- end -}}
{{- slice "css/lib/aplayer/dark.scss" | .Scratch.Add "linkLocal" -}}
{{- with $CDN.aplayer_js -}}
{{- with $CDN.aplayerJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/aplayer/APlayer.min.js" | .Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- /* MetingJS https://github.com/metowolf/MetingJS */ -}}
{{- with $CDN.meting_js -}}
{{- with $CDN.metingJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/meting/Meting.min.js" | .Scratch.Add "scriptLocal" -}}
@ -130,12 +130,12 @@
{{- if .Params.dev -}}
{{- /* ECharts https://github.com/apache/incubator-echarts */ -}}
{{- with .Scratch.Get "echartsMap" -}}
{{- with $CDN.echarts_js -}}
{{- with $CDN.echartsJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/echarts/echarts.min.js" | $.Scratch.Add "scriptLocal" -}}
{{- end -}}
{{- with $CDN.echarts_macarons_js -}}
{{- with $CDN.echartsMacaronsJS -}}
{{- slice . | $.Scratch.Add "scriptCDN" -}}
{{- else -}}
{{- slice "js/lib/echarts/macarons.js" | $.Scratch.Add "scriptLocal" -}}
@ -151,9 +151,6 @@
{{- end -}}
{{- end -}}
{{- /* Theme script */ -}}
{{- slice "js/theme.js" | .Scratch.Add "scriptLocal" -}}
{{- range .Scratch.Get "linkCDN" -}}
{{- safeHTML . -}}
{{- end -}}
@ -178,3 +175,6 @@
{{- end -}}
<script src="{{ $res.RelPermalink }}"></script>
{{- end -}}
{{- /* Theme script */ -}}
<script src=/js/theme.min.js></script>

View file

@ -9,8 +9,8 @@
<div class="meta">
<div class="meta-line">
{{- $author := .Params.author | default .Site.Author.name -}}
{{- $author_link := .Params.author_link | default .Site.Author.link | default .Site.BaseURL -}}
<a class="author" href="{{ $author_link }}" rel="author" target="_blank">
{{- $authorLink := .Params.authorLink | default .Site.Author.link | default .Site.BaseURL -}}
<a class="author" href="{{ $authorLink }}" rel="author" target="_blank">
<i class="fas fa-user-circle fa-fw"></i>{{ $author }}
</a>&nbsp;
{{- with .Params.categories -}}
@ -39,7 +39,7 @@
</div>
{{- /* Featured image */ -}}
{{- with .Params.featured_image -}}
{{- with .Params.featuredImage -}}
<div class="featured-image">
{{- partial "hook/image" . -}}
</div>
@ -49,8 +49,8 @@
{{- if or .Params.toc (and .Site.Params.toc (ne .Params.toc false)) -}}
<div class="post-toc" id="post-toc">
<h2 class="post-toc-title">{{ T "toc" }}</h2>
{{- $globalAutoCollapseToc := .Site.Params.auto_collapse_toc | default true }}
<div class="post-toc-content{{ if not (and $globalAutoCollapseToc (ne .Params.auto_collapse_toc false)) }} always-active{{ end }}">
{{- $globalAutoCollapseToc := .Site.Params.autoCollapseToc | default true }}
<div class="post-toc-content{{ if not (and $globalAutoCollapseToc (ne .Params.autoCollapseToc false)) }} always-active{{ end }}">
{{- .TableOfContents -}}
</div>
</div>

3905
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

39
package.json Normal file
View file

@ -0,0 +1,39 @@
{
"name": "loveit-src",
"version": "1.0.0",
"description": "LoveIt theme source file",
"main": "index.js",
"dependencies": {},
"devDependencies": {
"@babel/cli": "^7.8.4",
"@babel/core": "^7.8.4",
"@babel/preset-env": "^7.8.4",
"babel-preset-minify": "^0.5.1",
"husky": "^4.2.3"
},
"scripts": {
"build": "npx babel src --out-file static/js/theme.min.js --source-maps",
"start": "hugo server --source=exampleSite --themesDir=../.. --disableFastRender -D",
"copy": "HUGO_ENV=production hugo -v --source=exampleSite --themesDir=../.. -D --gc --minify && rm -rf resources && cp -rf exampleSite/resources resources"
},
"husky": {
"hooks": {
"pre-commit": "npm run build && npm run copy && git add .",
"pre-push": "npm run build && npm run copy && git add ."
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/dillonzq/LoveIt.git"
},
"keywords": [
"hugo",
"theme"
],
"author": "Dillon",
"license": "MIT",
"bugs": {
"url": "https://github.com/dillonzq/LoveIt/issues"
},
"homepage": "https://github.com/dillonzq/LoveIt#readme"
}

View file

@ -1,3 +0,0 @@
.dark-theme .aplayer{background:#212121}.dark-theme .aplayer.aplayer-withlist .aplayer-info{border-bottom-color:#5c5c5c}.dark-theme .aplayer.aplayer-fixed .aplayer-list{border-color:#5c5c5c}.dark-theme .aplayer .aplayer-body{background-color:#212121}.dark-theme .aplayer .aplayer-info{border-top-color:#212121}.dark-theme .aplayer .aplayer-info .aplayer-music .aplayer-title{color:#fff}.dark-theme .aplayer .aplayer-info .aplayer-music .aplayer-author{color:#fff}.dark-theme .aplayer .aplayer-info .aplayer-controller .aplayer-time{color:#eee}.dark-theme .aplayer .aplayer-info .aplayer-controller .aplayer-time .aplayer-icon path{fill:#eee}.dark-theme .aplayer .aplayer-list{background-color:#212121}.dark-theme .aplayer .aplayer-list::-webkit-scrollbar-thumb{background-color:#999}.dark-theme .aplayer .aplayer-list::-webkit-scrollbar-thumb:hover{background-color:#bbb}.dark-theme .aplayer .aplayer-list li{color:#fff;border-top-color:#666}.dark-theme .aplayer .aplayer-list li:hover{background:#4e4e4e}.dark-theme .aplayer .aplayer-list li.aplayer-list-light{background:#6c6c6c}.dark-theme .aplayer .aplayer-list li .aplayer-list-index{color:#ddd}.dark-theme .aplayer .aplayer-list li .aplayer-list-author{color:#ddd}.dark-theme .aplayer .aplayer-lrc{text-shadow:-1px -1px 0 #666}.dark-theme .aplayer .aplayer-lrc:before{background:-moz-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:-webkit-linear-gradient(top, #212121 0%, rgba(33,33,33,0) 100%);background:linear-gradient(to bottom, #212121 0%, rgba(33,33,33,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#212121', endColorstr='#00212121',GradientType=0 )}.dark-theme .aplayer .aplayer-lrc:after{background:-moz-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:-webkit-linear-gradient(top, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);background:linear-gradient(to bottom, rgba(33,33,33,0) 0%, rgba(33,33,33,0.8) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00212121', endColorstr='#cc212121',GradientType=0 )}.dark-theme .aplayer .aplayer-lrc p{color:#fff}.dark-theme .aplayer .aplayer-miniswitcher{background:#484848}.dark-theme .aplayer .aplayer-miniswitcher .aplayer-icon path{fill:#eee}
/*# sourceMappingURL=dark.css.map */

View file

@ -1 +0,0 @@
{"Target":"css/lib/aplayer/dark.css","MediaType":"text/css","Data":{}}

View file

@ -1,3 +0,0 @@
.dark-theme .v *,.dark-theme .v .vwrap input,.dark-theme .v .vwrap input::placeholder,.dark-theme .v .veditor,.dark-theme .v .veditor::placeholder,.dark-theme .v a,.dark-theme .v a:hover{color:rgba(255,255,255,0.75);opacity:1}.dark-theme .v .vbtn{color:rgba(255,255,255,0.75);background:#333;border:none}.dark-theme .v .vbtn:hover{color:#3090e4;border-color:#3090e4}.dark-theme .v .vlist .vcard .vhead .vsys{background:#333}.dark-theme .v code,.dark-theme .v pre{background:#272C34}.v code,.v pre{text-align:left}
/*# sourceMappingURL=dark.css.map */

View file

@ -1 +0,0 @@
{"Target":"css/lib/valine/dark.css","MediaType":"text/css","Data":{}}

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
{"Target":"css/mermaid.css","MediaType":"text/css","Data":{}}

4
static/js/theme.min.js vendored Normal file
View file

@ -0,0 +1,4 @@
"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}(function(){'use strict';var a=/*#__PURE__*/function(){function a(){_classCallCheck(this,a)}return _createClass(a,[{key:"forEach",value:function forEach(a,b){a=a||[];for(var c=0;c<a.length;c++)b(a[c])}},{key:"getScrollTop",value:function getScrollTop(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}}]),a}(),b=/*#__PURE__*/function(){function b(){_classCallCheck(this,b),this.util=new a,this.scrollTop=0,this.scrollEvents=[]}return _createClass(b,[{key:"initMobileMenu",value:function initMobileMenu(){document.getElementById("menu-toggle").onclick=function(){document.getElementById("menu-toggle").classList.toggle("active"),document.getElementById("menu-mobile").classList.toggle("active")}}},{key:"initSwitchTheme",value:function initSwitchTheme(){var a=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function(b){b.onclick=function(){document.body.classList.toggle("dark-theme"),window.isDark=!window.isDark,window.localStorage&&window.localStorage.setItem("theme",window.isDark?"dark":"light"),a.initEcharts()}})}},{key:"initHighlight",value:function initHighlight(){this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function(a){var b=a.querySelectorAll("pre.chroma > code"),c=b[b.length-1],d=c?c.className.toLowerCase():"";a.className+=" "+d}),this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function(a){var b=document.createElement("div");b.className=a.className;var c=document.createElement("table");b.appendChild(c);var d=document.createElement("tbody");c.appendChild(d);var e=document.createElement("tr");d.appendChild(e);var f=document.createElement("td");e.appendChild(f),a.parentElement.replaceChild(b,a),f.appendChild(a)})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function(a){var b=document.createElement("div");b.className="table-wrapper",a.parentElement.replaceChild(b,a),b.appendChild(a)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var a=1;6>=a;a++)this.util.forEach(document.querySelectorAll(".content > h"+a),function(a){a.classList.add("headerLink"),a.innerHTML="<a href=\"#".concat(a.id,"\"></a>").concat(a.innerHTML)})}},{key:"_refactorToc",value:function _refactorToc(a){this.util.forEach(a.querySelectorAll("a:first-child"),function(a){a.classList.add("toc-link")});for(// when headings do not start with `h1`
var b,c=a.children[0],d=c;1===d.children.length&&"UL"===(b=d.children[0].children[0]).tagName;)d=b;d!==c&&a.replaceChild(d,c)}},{key:"_initTocState",value:function _initTocState(a){var b=this;if("none"!==window.getComputedStyle(a,null).display){var c="normal"!==window.desktopHeaderMode,d=document.getElementById("header-desktop").getBoundingClientRect().height,e=20+(c?d:0),f=a.offsetTop,g=f-e+(c?0:d),h=document.getElementById("post-footer").offsetTop,j=a.getElementsByClassName("toc-link"),k=document.getElementsByClassName("headerLink")||[],l=a.querySelectorAll(".post-toc-content li"),m=5+(c?d:0),n=function(){var n=b.util.getScrollTop(),o=h-a.getBoundingClientRect().height,p=o-e+(c?0:d);n<g?(a.style.position="absolute",a.style.top="".concat(f,"px")):n>p?(a.style.position="absolute",a.style.top="".concat(o,"px")):(a.style.position="fixed",a.style.top="".concat(e,"px")),b.util.forEach(j,function(a){a.classList.remove("active")}),b.util.forEach(l,function(a){a.classList.remove("has-active")});for(var q=k.length-1,r=0;r<k.length-1;r++){var s=k[r].getBoundingClientRect().top,t=k[r+1].getBoundingClientRect().top;if(0==r&&s>m||s<=m&&t>m){q=r;break}}if(-1!==q){j[q].classList.add("active");for(var u=j[q].parentElement;"NAV"!==u.tagName;)u.classList.add("has-active"),u=u.parentElement.parentElement}};n(),this._initTocOnce||(this.scrollEvents.push(n),this._initTocOnce=!0)}}},{key:"initToc",value:function initToc(){var a=this,b=document.getElementById("post-toc");if(null!==b){var c=document.getElementById("TableOfContents");null===c?b.parentElement.removeChild(b):(this._refactorToc(c),this._initTocState(b),window.addEventListener("resize",function(){window.setTimeout(function(){a._initTocState(b)},0)},!1))}}},{key:"initMermaid",value:function initMermaid(){window.mermaidMap&&(mermaid.initialize({startOnLoad:!1,theme:null}),Object.keys(mermaidMap).forEach(function(a){var b=document.getElementById(a);mermaid.mermaidAPI.render("d"+a,mermaidMap[a],function(a){b.innerHTML=a;var c=b.firstChild;c.style.width="100%"},b)}))}},{key:"initEcharts",value:function initEcharts(){if(window.echartsMap){for(var a=0;a<echartsArr.length;a++)echartsArr[a].dispose();echartsArr=[],Object.keys(echartsMap).forEach(function(a){var b=echarts.init(document.getElementById(a),window.isDark?"dark":"macarons",{renderer:"svg"});b.setOption(echartsMap[a]),echartsArr.push(b)}),window.addEventListener("resize",function(){this.setTimeout(function(){for(var a=0;a<echartsArr.length;a++)echartsArr[a].resize()},0)},!1)}}},{key:"initTypeit",value:function initTypeit(){if(window.typeitArr)for(var a=function(a){var b=typeitArr[a];(function a(c){var d=document.getElementById("r".concat(b[c])).innerHTML;if(c===b.length-1)return void new TypeIt("#".concat(b[c]),{strings:d}).go();var e=new TypeIt("#".concat(b[c]),{strings:d,afterComplete:function afterComplete(){e.destroy(),a(c+1)}}).go()})(0)},b=0;b<typeitArr.length;b++)a(b)}},{key:"initScroll",value:function initScroll(){for(var a=this,b=0;b<this.scrollEvents.length;b++)document.addEventListener("scroll",this.scrollEvents[b],!1);var c=function(){var a=window.matchMedia("only screen and (max-width: 560px)").matches;!a&&"normal"===window.desktopHeaderMode||a&&"normal"===window.mobileHeaderMode?new SmoothScroll("[href^=\"#\"]",{speed:300,speedAsDuration:!0}):new SmoothScroll("[href^=\"#\"]",{speed:300,speedAsDuration:!0,header:"#header-desktop"})};c(),window.addEventListener("resize",function(){window.setTimeout(function(){c()},0)},!1);var d=[];"auto"===window.desktopHeaderMode&&d.push(document.getElementById("header-desktop")),"auto"===window.mobileHeaderMode&&d.push(document.getElementById("header-mobile")),this.util.forEach(d,function(a){a.classList.add("animated"),a.classList.add("faster")});var e=document.getElementById("dynamic-to-top");document.addEventListener("scroll",function(){var b=a.util.getScrollTop();a.util.forEach(d,function(c){a.scrollTop<b?!c.classList.contains("fadeOutUp")&&(c.classList.remove("fadeInDown"),c.classList.add("fadeOutUp")):!c.classList.contains("fadeInDown")&&(c.classList.remove("fadeOutUp"),c.classList.add("fadeInDown")),600<b?a.scrollTop<b?!e.classList.contains("fadeOut")&&(e.classList.remove("fadeIn"),e.classList.add("fadeOut")):(e.style.display="block",!e.classList.contains("fadeIn")&&(e.classList.remove("fadeOut"),e.classList.add("fadeIn"))):e.style.display="none"}),a.scrollTop=b},!1)}},{key:"init",value:function init(){this.initMobileMenu(),this.initSwitchTheme(),this.initHighlight(),this.initTable(),this.initHeaderLink(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initToc(),this.initScroll()}}]),b}(),c=function(){var a=new b;a.init()};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",c,!1):c()})();
//# sourceMappingURL=theme.min.js.map

File diff suppressed because one or more lines are too long