mirror of
https://github.com/dillonzq/LoveIt.git
synced 2025-03-13 19:27:47 +01:00
feat: update style and exampleSite files
This commit is contained in:
parent
45c9281131
commit
42d50ae53c
58 changed files with 477 additions and 257 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,5 +1,6 @@
|
|||
# Hugo default output directory
|
||||
public
|
||||
resources
|
||||
|
||||
## OS Files
|
||||
# Windows
|
||||
|
|
39
README.md
39
README.md
|
@ -1,6 +1,8 @@
|
|||
# LoveIt Theme | Hugo
|
||||
|
||||
[中文 README](README.zh.md)
|
||||
[](https://app.netlify.com/sites/hugo-loveit-en/deploys)
|
||||
|
||||
[中文 README](README.zh.md) | [Demo Site](https://hugo-loveit-en.netlify.com)
|
||||
|
||||
**LoveIt** is a **clean**, **elegant** but **advanced** blog theme for [Hugo](https://gohugo.io/).
|
||||
|
||||
|
@ -17,25 +19,37 @@ Websites using **LoveIt** theme:
|
|||
* [Dillon](https://dillonzq.com)
|
||||
* Yours
|
||||
|
||||
## Features
|
||||
### Features
|
||||
|
||||
#### Performance and SEO
|
||||
|
||||
* Optimized for performance: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights)
|
||||
* Desktop / Mobile layouts support
|
||||
* Dark / Light mode
|
||||
* Optimized SEO performance with a correct SEO SCHEMA based on JSON-LD
|
||||
* A More coerent style beetwen page and sections
|
||||
* Multilanguage support and I18N ready
|
||||
* Pagination support
|
||||
* [Google Analytics](https://analytics.google.com/analytics) support
|
||||
* Disqus comment system support by [Disqus](https://disqus.com)
|
||||
* Gitalk comment system support by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* Valine comment system support by [Valine](https://valine.js.org/)
|
||||
* Search engine verification support (Google, Bind, Yandex and Baidu)
|
||||
* CDN support
|
||||
* Automatically converted images with Lazy Load by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
|
||||
#### Appearance and Layout
|
||||
|
||||
* Desktops/Mobiles Responsive layout
|
||||
* Dark/Light Mode
|
||||
* A More coerent style beetwen page and sections
|
||||
* Pagination support
|
||||
* Multilanguage support and I18N ready
|
||||
|
||||
#### Social and Comment Systems
|
||||
|
||||
* Gravatar support by [Gravatar](https://gravatar.com)
|
||||
* Local Avatar support
|
||||
* Up to 54 social sites supported
|
||||
* Share post support
|
||||
* Search engine verification support (Google, Bind, Yandex and Baidu)
|
||||
* Automatically converted images with Lazy Load by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
* Disqus comment system support by [Disqus](https://disqus.com)
|
||||
* Gitalk comment system support by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* Valine comment system support by [Valine](https://valine.js.org/)
|
||||
|
||||
#### Extended Features
|
||||
|
||||
* Automatically highlighting code by chroma in Hugo
|
||||
* Extended markdown syntax for [Font Awesome](https://fontawesome.com/) icons
|
||||
* Math formula support by [Katex](https://katex.org/)
|
||||
|
@ -47,7 +61,6 @@ Websites using **LoveIt** theme:
|
|||
* Animated typing support by [TypeIt](https://typeitjs.com/)
|
||||
* Animated coutdown support by [jQuery.countdown](https://github.com/hilios/jQuery.countdown)
|
||||
* Dynamic to top support by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
|
||||
* CDN support
|
||||
* ...
|
||||
|
||||
## Getting Started
|
||||
|
|
39
README.zh.md
39
README.zh.md
|
@ -1,6 +1,8 @@
|
|||
# LoveIt 主题 | Hugo
|
||||
|
||||
[English README](README.md)
|
||||
[](https://app.netlify.com/sites/hugo-loveit-zh/deploys)
|
||||
|
||||
[English README](README.md) | [预览网站](https://hugo-loveit-zh.netlify.com)
|
||||
|
||||
[LoveIt](https://github.com/dillonzq/LoveIt) 是一个**简洁**、**优雅**且**高效**的 [Hugo](https://gohugo.io/) 博客主题。
|
||||
|
||||
|
@ -17,25 +19,37 @@
|
|||
* [Dillon](https://dillonzq.com)
|
||||
* 你的网站
|
||||
|
||||
## 特性
|
||||
### 特性
|
||||
|
||||
#### 性能和 SEO
|
||||
|
||||
* 性能优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分
|
||||
* 桌面设备 / 移动设备 布局的支持
|
||||
* 暗黑 / 明亮 模式
|
||||
* 使用基于 JSON-LD 格式 的 SEO SCHEMA 文件进行 SEO 优化
|
||||
* 页面和列表保持一致的视觉样式
|
||||
* 支持多语言和国际化
|
||||
* 支持分页
|
||||
* 支持 [Google Analytics](https://analytics.google.com/analytics)
|
||||
* 支持 [Disqus](https://disqus.com) 评论系统
|
||||
* 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统
|
||||
* 支持 [Valine](https://valine.js.org/) 评论系统
|
||||
* 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu)
|
||||
* 支持 CDN
|
||||
* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载
|
||||
|
||||
#### 外观和布局
|
||||
|
||||
* 桌面设备/移动设备 响应式布局
|
||||
* 暗黑/明亮 模式
|
||||
* 页面和列表保持一致的视觉样式
|
||||
* 支持分页
|
||||
* 支持多语言和国际化
|
||||
|
||||
#### 社交和评论系统
|
||||
|
||||
* 支持 [Gravatar](https://gravatar.com) 头像
|
||||
* 支持本地头像
|
||||
* 支持多达 54 种社交链接
|
||||
* 支持文章分享
|
||||
* 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu)
|
||||
* 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载
|
||||
* 支持 [Disqus](https://disqus.com) 评论系统
|
||||
* 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统
|
||||
* 支持 [Valine](https://valine.js.org/) 评论系统
|
||||
|
||||
#### 扩展功能
|
||||
|
||||
* 基于 Hugo 使用的 chroma 进行代码高亮
|
||||
* 使用 [Font Awesome](https://fontawesome.com/) 图标的扩展 Markdown 语法
|
||||
* 支持基于 [Katex](https://katex.org/) 的数学公式
|
||||
|
@ -47,7 +61,6 @@
|
|||
* 支持基于 [TypeIt](https://typeitjs.com/) 的打字动画
|
||||
* 支持基于 [jQuery.countdown](https://github.com/hilios/jQuery.countdown) 的倒计时动画
|
||||
* 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的回到顶部动画
|
||||
* 支持 CDN
|
||||
* ...
|
||||
|
||||
## 快速开始
|
||||
|
|
|
@ -42,14 +42,6 @@
|
|||
.home-social-links {
|
||||
padding-top: .6rem;
|
||||
|
||||
a {
|
||||
padding: 0 .4rem;
|
||||
|
||||
&:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
i {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
|
|
@ -526,10 +526,11 @@
|
|||
}
|
||||
}
|
||||
|
||||
.post-tags {
|
||||
.post-info-more {
|
||||
padding: 0.3rem 0 1rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.post-nav {
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
/**Footer**/
|
||||
.copyright {
|
||||
font-size: .875rem;
|
||||
|
||||
.copyright-line {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.dynamic-to-top {
|
||||
|
|
|
@ -59,7 +59,7 @@ staticDir = ["static", "../assets/others"] # static directories
|
|||
|
||||
[[menu.main]]
|
||||
identifier = "zh"
|
||||
name = '<i class="fas fa-language"></i>'
|
||||
name = '<i class="fas fa-language fa-fw"></i>'
|
||||
url = "https://hugo-loveit-zh.netlify.com"
|
||||
weight = 5
|
||||
|
||||
|
|
|
@ -12,23 +12,35 @@ It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) a
|
|||
|
||||
### Features
|
||||
|
||||
#### Performance and SEO
|
||||
|
||||
* :(fas fa-rocket): Optimized for performance: 99/100 on mobile and 100/100 on desktop in [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights)
|
||||
* :(fas fa-desktop): / :(fas fa-mobile): layouts support
|
||||
* :(fas fa-moon): / :(fas fa-sun): mode
|
||||
* :(fab fa-searchengin): Optimized SEO performance with a correct SEO SCHEMA based on JSON-LD
|
||||
* :(fas fa-layer-group): A More coerent style beetwen page and sections
|
||||
* :(fas fa-language): Multilanguage support and I18N ready
|
||||
* :(fas fa-ellipsis-h): Pagination support
|
||||
* :(fab fa-google): [Google Analytics](https://analytics.google.com/analytics) support
|
||||
* :(far fa-comment): Disqus comment system support by [Disqus](https://disqus.com)
|
||||
* :(far fa-comment-dots): Gitalk comment system support by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* :(far fa-comment-alt): Valine comment system support by [Valine](https://valine.js.org/)
|
||||
* :(fas fa-search): Search engine verification support (Google, Bind, Yandex and Baidu)
|
||||
* :(fas fa-tachometer-alt): CDN support
|
||||
* :(far fa-images): Automatically converted images with Lazy Load by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
|
||||
#### Appearance and Layout
|
||||
|
||||
* :(fas fa-desktop): / :(fas fa-mobile): Responsive layout
|
||||
* :(fas fa-moon): / :(fas fa-sun): Mode
|
||||
* :(fas fa-layer-group): A More coerent style beetwen page and sections
|
||||
* :(fas fa-ellipsis-h): Pagination support
|
||||
* :(fas fa-language): Multilanguage support and I18N ready
|
||||
|
||||
#### Social and Comment Systems
|
||||
|
||||
* :(far fa-user): Gravatar support by [Gravatar](https://gravatar.com)
|
||||
* :(fas fa-user-circle): Local Avatar support
|
||||
* :(far fa-id-card): Up to 54 social sites supported
|
||||
* :(fas fa-share-square): Share post support
|
||||
* :(fas fa-search): Search engine verification support (Google, Bind, Yandex and Baidu)
|
||||
* :(far fa-images): Automatically converted images with Lazy Load by [lazysizes](https://github.com/aFarkas/lazysizes)
|
||||
* :(far fa-comment): Disqus comment system support by [Disqus](https://disqus.com)
|
||||
* :(far fa-comment-dots): Gitalk comment system support by [Gitalk](https://github.com/gitalk/gitalk)
|
||||
* :(far fa-comment-alt): Valine comment system support by [Valine](https://valine.js.org/)
|
||||
|
||||
#### Extended Features
|
||||
|
||||
* :(fas fa-code): Automatically highlighting code by chroma in Hugo
|
||||
* :(fab fa-font-awesome): Extended markdown syntax for [Font Awesome](https://fontawesome.com/) icons
|
||||
* :(fas fa-square-root-alt): Math formula support by [Katex](https://katex.org/)
|
||||
|
@ -40,12 +52,13 @@ It is based on the original [LeaveIt Theme](https://github.com/liuzc/LeaveIt/) a
|
|||
* :(fas fa-i-cursor): Animated typing support by [TypeIt](https://typeitjs.com/)
|
||||
* :(far fa-clock): Animated coutdown support by [jQuery.countdown](https://github.com/hilios/jQuery.countdown)
|
||||
* :(fas fa-arrow-up): Dynamic to top support by [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll)
|
||||
* :(fas fa-tachometer-alt): CDN support
|
||||
* ...
|
||||
|
||||
### License
|
||||
|
||||
LoveIt is licensed under the MIT license. Check the [LICENSE file](https://github.com/dillonzq/LoveIt/blob/master/LICENSE) for details.
|
||||
LoveIt is licensed under the MIT license.
|
||||
|
||||
Check the [LICENSE file](https://github.com/dillonzq/LoveIt/blob/master/LICENSE) for details.
|
||||
|
||||
Thanks to the authors of following resources included in the theme:
|
||||
|
||||
|
|
258
exampleSite/content/posts/test.md
Normal file
258
exampleSite/content/posts/test.md
Normal file
|
@ -0,0 +1,258 @@
|
|||
---
|
||||
title: "Test Page"
|
||||
date: 2019-08-04T22:49:56+08:00
|
||||
lastmod: 2019-08-17T22:41:56+08:00
|
||||
draft: true
|
||||
description: "This is a test page."
|
||||
show_in_homepage: false
|
||||
show_description: false
|
||||
|
||||
tags: []
|
||||
categories: []
|
||||
|
||||
featured_image: ""
|
||||
featured_image_preview: ""
|
||||
|
||||
comment: false
|
||||
toc: true
|
||||
autoCollapseToc: true
|
||||
math: true
|
||||
dev: true
|
||||
---
|
||||
|
||||
## This is a test page
|
||||
|
||||
Test all features in development[^link test].
|
||||
|
||||
[^link test]: http://www.google.com/
|
||||
|
||||
<!--more-->
|
||||
|
||||
## Test ECharts
|
||||
|
||||
## Test Ruby
|
||||
|
||||
人最重要的特点是会思考,建站初衷无非是保存思维的电子快照。
|
||||
当然各种文档工具亦或是简单的文本编辑器也能随时记录点滴,
|
||||
选择建个人网站无非是想满足 [技术爱好者]^(Technology enthusiast) 的偏执。
|
||||
|
||||
## Test Music
|
||||
|
||||
## Test Toc
|
||||
|
||||
Toc
|
||||
|
||||
### Toc1
|
||||
|
||||
Toc
|
||||
|
||||
#### Toc 1-1
|
||||
|
||||
Toc
|
||||
|
||||
#### Toc 1-2
|
||||
|
||||
Toc
|
||||
|
||||
#### Toc 1-3
|
||||
|
||||
Toc
|
||||
|
||||
### Toc2
|
||||
|
||||
Toc
|
||||
|
||||
#### Toc 2-1
|
||||
|
||||
Toc
|
||||
|
||||
#### Toc 2-2
|
||||
|
||||
Toc
|
||||
|
||||
### Toc3
|
||||
|
||||
Toc
|
||||
|
||||
## Test Table
|
||||
|
||||
| Tables | Are | Cool |
|
||||
| :------------ |:-------------:| -----:|
|
||||
| col 3 is | right-aligned | $1600 |
|
||||
| col 2 is | centered | $12 |
|
||||
| zebra stripes | are neat | $1 |
|
||||
|
||||
## Test Diagram
|
||||
|
||||
{{< diagram >}}
|
||||
sequenceDiagram
|
||||
participant Alice
|
||||
participant Bob
|
||||
Alice->John: Hello John, how are you?
|
||||
loop Healthcheck
|
||||
John->John: Fight against hypochondria
|
||||
end
|
||||
Note right of John: Rational
|
||||
John-->Alice: Great!
|
||||
John->Bob: How about you?
|
||||
Bob-->John: Jolly good!
|
||||
{{< /diagram >}}
|
||||
|
||||
## Test kbd
|
||||
|
||||
<kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>del</kbd>
|
||||
|
||||
## Test Mixed Lists
|
||||
|
||||
Mixed Lists
|
||||
|
||||
- item 1
|
||||
* [X] item A
|
||||
* [ ] item B
|
||||
more text
|
||||
1. item a
|
||||
2. itemb
|
||||
3. item c
|
||||
* [X] item C
|
||||
- item 2
|
||||
- item 3
|
||||
|
||||
Really Mixed Lists
|
||||
|
||||
- item 1
|
||||
* [X] item A
|
||||
- item B
|
||||
more text
|
||||
1. item a
|
||||
+ itemb
|
||||
+ [ ] item c
|
||||
1. item C
|
||||
1. item 2
|
||||
- [X] item 3
|
||||
|
||||
## Test fa (Font Awesome)
|
||||
|
||||
:(fab fa-weixin fa-2x):
|
||||
|
||||
## Test Footnote
|
||||
|
||||
This is a footnote[^1]
|
||||
|
||||
[^1]: This is a footnote
|
||||
|
||||
## Test Admonition
|
||||
|
||||
{{% admonition quote %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition quote "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition example "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition bug "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition danger "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition failure "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition warning "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition question "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition success "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition tip "I'm title!" false %}}
|
||||
biu biu biu.
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition info "I'm title!" true %}}
|
||||
**biu biu biu.**
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition note "I'm title!" false %}}
|
||||
**biu biu biu.**
|
||||
{{% /admonition %}}
|
||||
|
||||
{{% admonition type="abstract" title="Test Admonition" %}}
|
||||
This is a Admonition.
|
||||
{{% /admonition %}}
|
||||
|
||||
## Test Highlight
|
||||
|
||||
`ls` 命令
|
||||
|
||||
```go
|
||||
// You can edit this code!
|
||||
// Click here and start typing.
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界", "Hello, 世界")
|
||||
}
|
||||
```
|
||||
|
||||
- This is a list that contains multiple code blocks.
|
||||
|
||||
- Here is an indented block
|
||||
|
||||
```Code
|
||||
This will still be parsed
|
||||
as a normal indented code block.
|
||||
```
|
||||
|
||||
- Here is a fenced code block:
|
||||
|
||||
```Code
|
||||
This will still be parsed
|
||||
as a fenced code block.
|
||||
```
|
||||
|
||||
> ```Code
|
||||
> Blockquotes?
|
||||
> Not a problem!
|
||||
> ```
|
||||
|
||||
## Test Typeit
|
||||
|
||||
{{< typeit group="test" tag="h3" >}}
|
||||
Here is a story about love...
|
||||
{{< /typeit >}}
|
||||
|
||||
{{< typeit group="test" code="java" >}}
|
||||
u.accepted(); // [2018/01/05](/since/) special
|
||||
|
||||
int a = 1;
|
||||
{{< /typeit >}}
|
||||
|
||||
## Test Img
|
||||
|
||||

|
||||
|
||||
## Test Align
|
||||
|
||||
{{% align-right %}}
|
||||
**Test Text**
|
||||
{{% /align-right %}}
|
||||
|
||||
## Test Katex
|
||||
|
||||
$$ c = \pm\sqrt{a^2 + b^2} $$
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"css/lib/animate/animate.min.min.css","MediaType":"text/css","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"css/lib/aplayer/APlayer.min.min.css","MediaType":"text/css","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"css/lib/fontawesome-free/all.min.min.css","MediaType":"text/css","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"css/lib/katex/katex.min.min.css","MediaType":"text/css","Data":{}}
|
|
@ -1,7 +0,0 @@
|
|||
jQuery(function($){'use strict';var _Blog=window._Blog||{};_Blog.toggleMobileMenu=function(){$('#menu-toggle').on('click',()=>{$('#menu-toggle').toggleClass('active');$('#mobile-menu').toggleClass('active');});};_Blog.toggleTheme=function(){$('.theme-switch').on('click',()=>{$('body').toggleClass('dark-theme');isDark=!isDark;window.localStorage&&window.localStorage.setItem('theme',isDark?'dark':'light');this.echarts();});};_Blog.changeTitle=function(){var currentTitle=document.title;window.onblur=function(){document.title=currentTitle;};window.onfocus=function(){document.title=currentTitle;};};_Blog.dynamicToTop=function(){const min=300;var $toTop=$('#dynamic-to-top');$(window).scroll(function(){var scrollTop=$(window).scrollTop();if(typeof document.body.style.maxHeight==='undefined'){$toTop.css({'position':'absolute','top':scrollTop+$(window).height()-20,});}
|
||||
if(scrollTop>min){(function fadeIn(el,display){display=display||"block";if(el.style.display!==display){el.style.opacity=0;el.style.display=display;(function fade(){var val=parseFloat(el.style.opacity);if(!((val+=.1)>1)){el.style.opacity=val;requestAnimationFrame(fade);}})();}})(document.getElementById('dynamic-to-top'));}else{(function fadeOut(el){if(el.style.display!=="none"){el.style.opacity=1;(function fade(){if((el.style.opacity-=.1)<0){el.style.display="none";}else{requestAnimationFrame(fade);}})();}})(document.getElementById('dynamic-to-top'));}});};_Blog.chroma=function(){const blocks=document.querySelectorAll('.highlight > .chroma');for(let i=0;i<blocks.length;i++){const block=blocks[i];const afterHighLight=block.querySelector('pre.chroma > code');const lang=afterHighLight?afterHighLight.className:'';block.className+=' '+lang;}};_Blog.responsiveTable=function(){const tables=document.querySelectorAll('.post-content table');for(let i=0;i<tables.length;i++){const table=tables[i];const wrapper=document.createElement('div');wrapper.className='table-wrapper';table.parentElement.replaceChild(wrapper,table);wrapper.appendChild(table);}};_Blog._refactorToc=function(toc){const oldTocList=toc.children[0];let newTocList=oldTocList;let temp;while(newTocList.children.length===1&&(temp=newTocList.children[0].children[0]).tagName==='UL'){newTocList=temp;}
|
||||
if(newTocList!==oldTocList)toc.replaceChild(newTocList,oldTocList);};_Blog._linkToc=function(){const links=document.querySelectorAll('#TableOfContents a:first-child');for(let i=0;i<links.length;i++)links[i].className+=' toc-link';for(let num=1;num<=6;num++){const headers=document.querySelectorAll('.post-content>h'+num);for(let i=0;i<headers.length;i++){const header=headers[i];header.innerHTML=`<a href="#${header.id}" class="headerlink"></a>${header.innerHTML}`;}}};_Blog._initToc=function(){const $toc=$('#post-toc');if($toc.length&&$toc.css('display')!=='none'){const SPACING=100;const $footer=$('#post-footer');const minTop=$toc.position().top;;const mainTop=$('main').position().top;const minScrollTop=minTop+mainTop-SPACING;const changeTocState=function(){const scrollTop=$(window).scrollTop();const maxTop=$footer.position().top-$toc.height();const maxScrollTop=maxTop+mainTop-SPACING;const tocState={start:{'position':'absolute','top':minTop,},process:{'position':'fixed','top':SPACING,},end:{'position':'absolute','top':maxTop,}};if(scrollTop<minScrollTop){$toc.css(tocState.start);}else if(scrollTop>maxScrollTop){$toc.css(tocState.end);}else{$toc.css(tocState.process);}};changeTocState();const HEADERFIX=100;const $toclink=$('.toc-link');const $headerlink=$('.headerlink');const $tocLinkLis=$('.post-toc-content li');const activeIndex=function(){const scrollTop=$(window).scrollTop();const headerlinkTop=$.map($headerlink,function(link){return $(link).offset().top;});const headerLinksOffsetForSearch=$.map(headerlinkTop,function(offset){return offset-HEADERFIX;});const searchActiveTocIndex=function(array,target){for(let i=0;i<array.length-1;i++){if(target>array[i]&&target<=array[i+1])return i;}
|
||||
if(target>array[array.length-1])return array.length-1;return 0;};const activeTocIndex=searchActiveTocIndex(headerLinksOffsetForSearch,scrollTop);$($toclink).removeClass('active');$($tocLinkLis).removeClass('has-active');if(activeTocIndex!==-1){$($toclink[activeTocIndex]).addClass('active');let ancestor=$toclink[activeTocIndex].parentNode;while(ancestor.tagName!=='NAV'){$(ancestor).addClass('has-active');ancestor=ancestor.parentNode.parentNode;}}};activeIndex();if(!this._initTocOnce){$(window).scroll(changeTocState);$(window).scroll(activeIndex);this._initTocOnce=true;}}};_Blog.toc=function(){const tocContainer=document.getElementById('post-toc');if(tocContainer!==null){const toc=document.getElementById('TableOfContents');if(toc===null){tocContainer.parentNode.removeChild(tocContainer);}else{this._refactorToc(toc);this._linkToc();this._initToc();window.addEventListener("resize",function(){this.setTimeout(_Blog._initToc,0);},false);}}};_Blog.echarts=function(){if(window.echartsMap){for(let i=0;i<echartsArr.length;i++){echartsArr[i].dispose();}
|
||||
echartsArr=[];Object.keys(echartsMap).forEach(function(id){let myChart=echarts.init(document.getElementById(id),window.isDark?'dark':'macarons',{renderer:'svg'});myChart.setOption(echartsMap[id]);echartsArr.push(myChart);});window.addEventListener("resize",function(){this.setTimeout(function(){for(let i=0;i<echartsArr.length;i++){echartsArr[i].resize();}},0);},false);}}
|
||||
_Blog.countdown=function(){if(window.countdownMap){Object.keys(countdownMap).forEach(function(id){$(`#${id}`).countdown(countdownMap[id]['date'],{elapse:true}).on('update.countdown',function(event){$(this).html(event.strftime(countdownMap[id]['pattern']));});});}};_Blog.typeit=function(){if(window.typeitArr){for(let i=0;i<typeitArr.length;i++){const group=typeitArr[i];(function typeone(i){if(i===group.length-1){new TypeIt(`#${group[i]}`,{strings:document.getElementById(`r${group[i]}`).innerHTML,}).go();return;}
|
||||
let instance=new TypeIt(`#${group[i]}`,{strings:document.getElementById(`r${group[i]}`).innerHTML,afterComplete:()=>{instance.destroy();typeone(i+1);},}).go();})(0);}}};$(document).ready(function(){_Blog.toggleMobileMenu();_Blog.toggleTheme();_Blog.changeTitle();_Blog.dynamicToTop();_Blog.chroma();_Blog.responsiveTable();_Blog.echarts();_Blog.countdown();_Blog.typeit();_Blog.toc();});});
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/blog.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/aplayer/APlayer.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/echarts/echarts.min.min.js","MediaType":"application/javascript","Data":{}}
|
|
@ -1,2 +0,0 @@
|
|||
(function(root,factory){if(typeof define==='function'&&define.amd){define(['exports','echarts'],factory);}else if(typeof exports==='object'&&typeof exports.nodeName!=='string'){factory(exports,require('echarts'));}else{factory({},root.echarts);}}(this,function(exports,echarts){var log=function(msg){if(typeof console!=='undefined'){console&&console.error&&console.error(msg);}};if(!echarts){log('ECharts is not Loaded');return;}
|
||||
var colorPalette=['#2ec7c9','#b6a2de','#5ab1ef','#ffb980','#d87a80','#8d98b3','#e5cf0d','#97b552','#95706d','#dc69aa','#07a2a4','#9a7fd1','#588dd5','#f5994e','#c05050','#59678c','#c9ab00','#7eb00a','#6f5553','#c14089'];var theme={color:colorPalette,title:{textStyle:{fontWeight:'normal',color:'#008acd'}},visualMap:{itemWidth:15,color:['#5ab1ef','#e0ffff']},toolbox:{iconStyle:{normal:{borderColor:colorPalette[0]}}},tooltip:{backgroundColor:'rgba(50,50,50,0.5)',axisPointer:{type:'line',lineStyle:{color:'#008acd'},crossStyle:{color:'#008acd'},shadowStyle:{color:'rgba(200,200,200,0.2)'}}},dataZoom:{dataBackgroundColor:'#efefff',fillerColor:'rgba(182,162,222,0.2)',handleColor:'#008acd'},grid:{borderColor:'#eee'},categoryAxis:{axisLine:{lineStyle:{color:'#008acd'}},splitLine:{lineStyle:{color:['#eee']}}},valueAxis:{axisLine:{lineStyle:{color:'#008acd'}},splitArea:{show:true,areaStyle:{color:['rgba(250,250,250,0.1)','rgba(200,200,200,0.1)']}},splitLine:{lineStyle:{color:['#eee']}}},timeline:{lineStyle:{color:'#008acd'},controlStyle:{normal:{color:'#008acd'},emphasis:{color:'#008acd'}},symbol:'emptyCircle',symbolSize:3},line:{smooth:true,symbol:'emptyCircle',symbolSize:3},candlestick:{itemStyle:{normal:{color:'#d87a80',color0:'#2ec7c9',lineStyle:{color:'#d87a80',color0:'#2ec7c9'}}}},scatter:{symbol:'circle',symbolSize:4},map:{label:{normal:{textStyle:{color:'#d87a80'}}},itemStyle:{normal:{borderColor:'#eee',areaColor:'#ddd'},emphasis:{areaColor:'#fe994e'}}},graph:{color:colorPalette},gauge:{axisLine:{lineStyle:{color:[[0.2,'#2ec7c9'],[0.8,'#5ab1ef'],[1,'#d87a80']],width:10}},axisTick:{splitNumber:10,length:15,lineStyle:{color:'auto'}},splitLine:{length:22,lineStyle:{color:'auto'}},pointer:{width:5}}};echarts.registerTheme('macarons',theme);}));
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/echarts/macarons.min.js","MediaType":"application/javascript","Data":{}}
|
|
@ -1,21 +0,0 @@
|
|||
/*!
|
||||
* The Final Countdown for jQuery v2.2.0 (http://hilios.github.io/jQuery.countdown/)
|
||||
* Copyright (c) 2016 Edson Hilios
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;f<g;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&m<10&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),Math.abs(b)>1?c:d}var f=[],g=[],h={precision:100,elapse:!1,defer:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",d:"daysToWeek",w:"weeks",W:"weeksToMonth",H:"hours",M:"minutes",S:"seconds",D:"totalDays",I:"totalHours",N:"totalMinutes",T:"totalSeconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.options.defer===!1&&this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&b<0?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),weeksToMonth:Math.floor(this.totalSecsLeft/60/60/24/7)%4,months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear()),totalDays:Math.floor(this.totalSecsLeft/60/60/24),totalHours:Math.floor(this.totalSecsLeft/60/60),totalMinutes:Math.floor(this.totalSecsLeft/60),totalSeconds:this.totalSecsLeft},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/jquery-countdown/jquery.countdown.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/jquery/jquery.slim.min.min.js","MediaType":"application/javascript","Data":{}}
|
|
@ -1 +0,0 @@
|
|||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("katex")):"function"==typeof define&&define.amd?define(["katex"],t):"object"==typeof exports?exports.renderMathInElement=t(require("katex")):e.renderMathInElement=t(e.katex)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=1)}([function(t,r){t.exports=e},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=function(e,t,r){for(var n=r,o=0,a=e.length;n<t.length;){var i=t[n];if(o<=0&&t.slice(n,n+a)===e)return n;"\\"===i?n++:"{"===i?o++:"}"===i&&o--,n++}return-1},i=function(e,t,r,n){for(var o=[],i=0;i<e.length;i++)if("text"===e[i].type){var l=e[i].data,d=!0,s=0,f=void 0;for(-1!==(f=l.indexOf(t))&&(s=f,o.push({type:"text",data:l.slice(0,s)}),d=!1);;){if(d){if(-1===(f=l.indexOf(t,s)))break;o.push({type:"text",data:l.slice(s,f)}),s=f}else{if(-1===(f=a(r,l,s+t.length)))break;o.push({type:"math",data:l.slice(s+t.length,f),rawData:l.slice(s,f+r.length),display:n}),s=f+r.length}d=!d}o.push({type:"text",data:l.slice(s)})}else o.push(e[i]);return o},l=function(e,t){for(var r=function(e,t){for(var r=[{type:"text",data:e}],n=0;n<t.length;n++){var o=t[n];r=i(r,o.left,o.right,o.display||!1)}return r}(e,t.delimiters),n=document.createDocumentFragment(),a=0;a<r.length;a++)if("text"===r[a].type)n.appendChild(document.createTextNode(r[a].data));else{var l=document.createElement("span"),d=r[a].data;t.displayMode=r[a].display;try{t.preProcess&&(d=t.preProcess(d)),o.a.render(d,l,t)}catch(e){if(!(e instanceof o.a.ParseError))throw e;t.errorCallback("KaTeX auto-render: Failed to parse `"+r[a].data+"` with ",e),n.appendChild(document.createTextNode(r[a].rawData));continue}n.appendChild(l)}return n};t.default=function(e,t){if(!e)throw new Error("No element provided to render");var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);r.delimiters=r.delimiters||[{left:"$$",right:"$$",display:!0},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],r.ignoredTags=r.ignoredTags||["script","noscript","style","textarea","pre","code"],r.ignoredClasses=r.ignoredClasses||[],r.errorCallback=r.errorCallback||console.error,r.macros=r.macros||{},function e(t,r){for(var n=0;n<t.childNodes.length;n++){var o=t.childNodes[n];if(3===o.nodeType){var a=l(o.textContent,r);n+=a.childNodes.length-1,t.replaceChild(a,o)}else 1===o.nodeType&&function(){var t=" "+o.className+" ";-1===r.ignoredTags.indexOf(o.nodeName.toLowerCase())&&r.ignoredClasses.every(function(e){return-1===t.indexOf(" "+e+" ")})&&e(o,r)}()}}(e,r)}}]).default});
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/katex/auto-render.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/katex/katex.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/lazysizes/lazysizes.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/mermaid/mermaid.min.min.js","MediaType":"application/javascript","Data":{}}
|
|
@ -1 +0,0 @@
|
|||
"use strict";function _objectSpread(a){for(var b=1;b<arguments.length;b++){var c=null==arguments[b]?{}:arguments[b],d=Object.keys(c);"function"==typeof Object.getOwnPropertySymbols&&(d=d.concat(Object.getOwnPropertySymbols(c).filter(function(a){return Object.getOwnPropertyDescriptor(c,a).enumerable}))),d.forEach(function(b){_defineProperty(a,b,c[b])})}return a}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}class MetingJSElement extends HTMLElement{connectedCallback(){window.APlayer&&window.fetch&&(this._init(),this._parse())}disconnectedCallback(){this.lock||this.aplayer.destroy()}_camelize(a){return a.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,b)=>b.toUpperCase())}_init(){let a={};for(let b=0;b<this.attributes.length;b+=1)a[this._camelize(this.attributes[b].name)]=this.attributes[b].value;let b=["server","type","id","api","auth","auto","lock","name","title","artist","author","url","cover","pic","lyric","lrc"];this.meta={};for(var c=0;c<b.length;c++){let d=b[c];this.meta[d]=a[d],delete a[d]}this.config=a,this.api=this.meta.api||window.meting_api||"https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r",this.meta.auto&&this._parse_link()}_parse_link(){let a=[["music.163.com.*song.*id=(\\d+)","netease","song"],["music.163.com.*album.*id=(\\d+)","netease","album"],["music.163.com.*artist.*id=(\\d+)","netease","artist"],["music.163.com.*playlist.*id=(\\d+)","netease","playlist"],["music.163.com.*discover/toplist.*id=(\\d+)","netease","playlist"],["y.qq.com.*song/(\\w+).html","tencent","song"],["y.qq.com.*album/(\\w+).html","tencent","album"],["y.qq.com.*singer/(\\w+).html","tencent","artist"],["y.qq.com.*playsquare/(\\w+).html","tencent","playlist"],["y.qq.com.*playlist/(\\w+).html","tencent","playlist"],["xiami.com.*song/(\\w+)","xiami","song"],["xiami.com.*album/(\\w+)","xiami","album"],["xiami.com.*artist/(\\w+)","xiami","artist"],["xiami.com.*collect/(\\w+)","xiami","playlist"]];for(var b=0;b<a.length;b++){let c=a[b],d=new RegExp(c[0]),e=d.exec(this.meta.auto);if(null!==e)return this.meta.server=c[1],this.meta.type=c[2],void(this.meta.id=e[1])}}_parse(){if(this.meta.url){let a={name:this.meta.name||this.meta.title||"Audio name",artist:this.meta.artist||this.meta.author||"Audio artist",url:this.meta.url,cover:this.meta.cover||this.meta.pic,lrc:this.meta.lrc||this.meta.lyric||"",type:this.meta.type||"auto"};return a.lrc||(this.meta.lrcType=0),this.innerText&&(a.lrc=this.innerText,this.meta.lrcType=2),void this._loadPlayer([a])}let a=this.api.replace(":server",this.meta.server).replace(":type",this.meta.type).replace(":id",this.meta.id).replace(":auth",this.meta.auth).replace(":r",Math.random());fetch(a).then(a=>a.json()).then(a=>this._loadPlayer(a))}_loadPlayer(a){let b={audio:a,mutex:!0,lrcType:this.meta.lrcType||3,storageName:"metingjs"};if(a.length){let a=_objectSpread({},b,this.config);for(let b in a)("true"===a[b]||"false"===a[b])&&(a[b]="true"===a[b]);let c=document.createElement("div");a.container=c,this.appendChild(c),this.aplayer=new APlayer(a)}}}console.log("\n %c MetingJS v2.0.1 %c https://github.com/metowolf/MetingJS \n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),window.customElements&&!window.customElements.get("meting-js")&&(window.MetingJSElement=MetingJSElement,window.customElements.define("meting-js",MetingJSElement));
|
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/meting/Meting.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/smooth-scroll/smooth-scroll.polyfills.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"js/lib/typeit/typeit.min.min.js","MediaType":"application/javascript","Data":{}}
|
File diff suppressed because one or more lines are too long
|
@ -1 +0,0 @@
|
|||
{"Target":"css/style.min.css","MediaType":"text/css","Data":{}}
|
|
@ -59,7 +59,7 @@ staticDir = ["../static", "../../assets/others"] # 静态文件目录
|
|||
|
||||
[[menu.main]]
|
||||
identifier = "en"
|
||||
name = '<i class="fas fa-language"></i>'
|
||||
name = '<i class="fas fa-language fa-fw"></i>'
|
||||
url = "https://hugo-loveit-en.netlify.com"
|
||||
weight = 5
|
||||
|
||||
|
|
|
@ -12,23 +12,35 @@ draft: false
|
|||
|
||||
### 特性
|
||||
|
||||
#### 性能和 SEO
|
||||
|
||||
* :(fas fa-rocket): 性能优化:在 [Google PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights) 中, 99/100 的移动设备得分和 100/100 的桌面设备得分
|
||||
* :(fas fa-desktop): / :(fas fa-mobile): 布局的支持
|
||||
* :(fas fa-moon): / :(fas fa-sun): 模式
|
||||
* :(fab fa-searchengin): 使用基于 JSON-LD 格式 的 SEO SCHEMA 文件进行 SEO 优化
|
||||
* :(fas fa-layer-group): 页面和列表保持一致的视觉样式
|
||||
* :(fas fa-language): 支持多语言和国际化
|
||||
* :(fas fa-ellipsis-h): 支持分页
|
||||
* :(fab fa-google): 支持 [Google Analytics](https://analytics.google.com/analytics)
|
||||
* :(far fa-comment): 支持 [Disqus](https://disqus.com) 评论系统
|
||||
* :(far fa-comment-dots): 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统
|
||||
* :(far fa-comment-alt): 支持 [Valine](https://valine.js.org/) 评论系统
|
||||
* :(fas fa-search): 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu)
|
||||
* :(fas fa-tachometer-alt): 支持 CDN
|
||||
* :(far fa-images): 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载
|
||||
|
||||
#### 外观和布局
|
||||
|
||||
* :(fas fa-desktop): / :(fas fa-mobile): 响应式布局
|
||||
* :(fas fa-moon): / :(fas fa-sun): 模式
|
||||
* :(fas fa-layer-group): 页面和列表保持一致的视觉样式
|
||||
* :(fas fa-ellipsis-h): 支持分页
|
||||
* :(fas fa-language): 支持多语言和国际化
|
||||
|
||||
#### 社交和评论系统
|
||||
|
||||
* :(far fa-user): 支持 [Gravatar](https://gravatar.com) 头像
|
||||
* :(fas fa-user-circle): 支持本地头像
|
||||
* :(far fa-id-card): 支持多达 54 种社交链接
|
||||
* :(fas fa-share-square): 支持文章分享
|
||||
* :(fas fa-search): 支持搜索引擎的网站验证 (Google, Bind, Yandex and Baidu)
|
||||
* :(far fa-images): 基于 [lazysizes](https://github.com/aFarkas/lazysizes) 自动转换图片为懒加载
|
||||
* :(far fa-comment): 支持 [Disqus](https://disqus.com) 评论系统
|
||||
* :(far fa-comment-dots): 支持 [Gitalk](https://github.com/gitalk/gitalk) 评论系统
|
||||
* :(far fa-comment-alt): 支持 [Valine](https://valine.js.org/) 评论系统
|
||||
|
||||
#### 扩展功能
|
||||
|
||||
* :(fas fa-code): 基于 Hugo 使用的 chroma 进行代码高亮
|
||||
* :(fab fa-font-awesome): 使用 [Font Awesome](https://fontawesome.com/) 图标的扩展 Markdown 语法
|
||||
* :(fas fa-square-root-alt): 支持基于 [Katex](https://katex.org/) 的数学公式
|
||||
|
@ -40,12 +52,13 @@ draft: false
|
|||
* :(fas fa-i-cursor): 支持基于 [TypeIt](https://typeitjs.com/) 的打字动画
|
||||
* :(far fa-clock): 支持基于 [jQuery.countdown](https://github.com/hilios/jQuery.countdown) 的倒计时动画
|
||||
* :(fas fa-arrow-up): 支持基于 [Smooth Scroll](https://github.com/cferdinandi/smooth-scroll) 的回到顶部动画
|
||||
* :(fas fa-tachometer-alt): 支持 CDN
|
||||
* ...
|
||||
|
||||
### 许可协议
|
||||
|
||||
LoveIt 根据 MIT 许可协议授权。 更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。
|
||||
LoveIt 根据 MIT 许可协议授权。
|
||||
|
||||
更多信息请查看 [LICENSE 文件](https://github.com/dillonzq/LoveIt/blob/master/LICENSE)。
|
||||
|
||||
感谢以下在主题中使用过的项目的作者:
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
{{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
|
||||
{{ $content = replaceRE $REin $REout $content }}
|
||||
{{ $REin = `:\(([\w- ]+?)\):` }}
|
||||
{{ $REout = `<i class="inline-icon $1"></i>` }}
|
||||
{{ $REout = `<i class="$1 fa-fw"></i>` }}
|
||||
{{ $content = replaceRE $REin $REout $content }}
|
||||
{{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
|
||||
{{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
|
||||
|
|
|
@ -18,15 +18,15 @@
|
|||
</h1>
|
||||
|
||||
<div class="post-meta">
|
||||
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle"></i>{{ $author }} </a>
|
||||
{{ T "publish" }}<span class="post-time"> <time datetime={{ $publish_date }}>{{ $publish_date }}</time> </span>
|
||||
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle fa-fw"></i>{{ $author }} </a>
|
||||
{{ T "publish" }} <time datetime={{ $publish_date }}>{{ $publish_date }}</time>
|
||||
{{ with .Params.categories -}}
|
||||
<span class="post-category">
|
||||
{{ T "included" }}
|
||||
{{ range . }}
|
||||
{{- $name := . -}}
|
||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
||||
<i class="far fa-folder"></i><a href="{{ .Permalink }}">{{ $name }}</a>
|
||||
<i class="far fa-folder fa-fw"></i><a href="{{ .Permalink }}">{{ $name }}</a>
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
</span>
|
||||
|
@ -38,7 +38,7 @@
|
|||
{{ else }}
|
||||
{{ $summary := .Summary }}
|
||||
{{ $REin := `:\(([\w- ]+?)\):` }}
|
||||
{{ $REout := `<i class="inline-icon $1"></i>` }}
|
||||
{{ $REout := `<i class="$1 fa-fw"></i>` }}
|
||||
{{ $summary = replaceRE $REin $REout $summary }}
|
||||
{{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
|
||||
{{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
|
||||
|
@ -51,7 +51,7 @@
|
|||
{{ with .Params.tags }}
|
||||
<div class="post-tags">
|
||||
{{ range . }}
|
||||
<span class="tag"><a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag"></i>{{ . }}</a></span>
|
||||
<span class="tag"><a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag fa-fw"></i>{{ . }}</a></span>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
|
|
@ -1,21 +1,24 @@
|
|||
<footer class="footer">
|
||||
<div class="copyright">
|
||||
<span>{{ (printf (T "powered") `<a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreffer">Hugo</a>`) | safeHTML }} | {{ T "theme" }}<a href="https://github.com/dillonzq/LoveIt" target="_blank" rel="external nofollow noopener noreffer">LoveIt<i class="far fa-heart"></i></a></span>
|
||||
<br />
|
||||
<i class="far fa-copyright"></i>
|
||||
{{- with .Site.Params.since -}}
|
||||
<span itemprop="copyrightYear">{{ if lt . now.Year }}{{ . }} - {{ end }}{{ now.Year }}</span>
|
||||
{{- else -}}
|
||||
<span itemprop="copyrightYear">{{ now.Year }}</span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Author.name -}}
|
||||
<span class="author" itemprop="copyrightHolder"> <a href="{{ $.Site.BaseURL }}">{{ . }}</a></span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.icp -}}
|
||||
<span class="icp"> | {{ . | safeHTML }}</span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.license -}}
|
||||
<span class="license"> | {{ . | safeHTML }}</span>
|
||||
{{- end -}}
|
||||
<div class="copyright-line">
|
||||
{{ (printf (T "powered") `<a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreffer">Hugo</a>`) | safeHTML }} | {{ T "theme" }}<a href="https://github.com/dillonzq/LoveIt" target="_blank" rel="external nofollow noopener noreffer">LoveIt<i class="far fa-heart fa-fw"></i></a>
|
||||
</div>
|
||||
<div class="copyright-line">
|
||||
<i class="far fa-copyright fa-fw"></i>
|
||||
{{- with .Site.Params.since -}}
|
||||
<span itemprop="copyrightYear">{{ if lt . now.Year }}{{ . }} - {{ end }}{{ now.Year }}</span>
|
||||
{{- else -}}
|
||||
<span itemprop="copyrightYear">{{ now.Year }}</span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Author.name -}}
|
||||
<span class="author" itemprop="copyrightHolder"> <a href="{{ $.Site.BaseURL }}">{{ . }}</a></span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.icp -}}
|
||||
<span class="icp"> | {{ . | safeHTML }}</span>
|
||||
{{- end -}}
|
||||
{{- with .Site.Params.license -}}
|
||||
<span class="license"> | {{ . | safeHTML }}</span>
|
||||
{{- end -}}
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
|
@ -8,14 +8,14 @@
|
|||
{{ 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 }}">{{ .Name | safeHTML }}</a>
|
||||
{{ end }}
|
||||
<a href="javascript:void(0);" class="theme-switch"><i class="fas fa-adjust fa-rotate-180"></i></a>
|
||||
<a href="javascript:void(0);" class="theme-switch"><i class="fas fa-adjust fa-rotate-180 fa-fw"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<nav class="navbar-mobile">
|
||||
<div class="navbar-container">
|
||||
<div class="navbar-header">
|
||||
<div><a href="javascript:void(0);" class="theme-switch"><i class="fas fa-adjust fa-rotate-180"></i></a><a href="{{.Site.BaseURL}}">{{ .Site.Title }}</a></div>
|
||||
<div><a href="javascript:void(0);" class="theme-switch"><i class="fas fa-adjust fa-rotate-180 fa-fw"></i></a><a href="{{.Site.BaseURL}}">{{ .Site.Title }}</a></div>
|
||||
<div class="menu-toggle" id="menu-toggle">
|
||||
<span></span><span></span><span></span>
|
||||
</div>
|
||||
|
|
|
@ -1,165 +1,165 @@
|
|||
{{ with .Site.Params.Social.Github }}
|
||||
<a href="https://github.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-github-alt"></i></a>
|
||||
<a href="https://github.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-github-alt fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.LinkedIn }}
|
||||
<a href="https://linkedin.com/in/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-linkedin"></i></a>
|
||||
<a href="https://linkedin.com/in/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-linkedin fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Twitter }}
|
||||
<a href="https://twitter.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-twitter"></i></a>
|
||||
<a href="https://twitter.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-twitter fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Instagram }}
|
||||
<a href="https://www.instagram.com/{{.}}/" rel="me noopener noreffer" target="_blank"><i class="fab fa-instagram"></i></a>
|
||||
<a href="https://www.instagram.com/{{.}}/" rel="me noopener noreffer" target="_blank"><i class="fab fa-instagram fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Facebook}}
|
||||
<a href="https://facebook.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-facebook"></i></a>
|
||||
<a href="https://facebook.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-facebook fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Telegram}}
|
||||
<a href="https://t.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-telegram-plane"></i></a>
|
||||
<a href="https://t.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-telegram-plane fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Medium}}
|
||||
<a href="https://medium.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-medium"></i></a>
|
||||
<a href="https://medium.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-medium fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Gitlab}}
|
||||
<a href="https://gitlab.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-gitlab"></i></a>
|
||||
<a href="https://gitlab.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-gitlab fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Youtubelegacy}}
|
||||
<a href="https://www.youtube.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube"></i></a>
|
||||
<a href="https://www.youtube.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Youtubecustom}}
|
||||
<a href="https://www.youtube.com/c/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube"></i></a>
|
||||
<a href="https://www.youtube.com/c/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Youtubechannel}}
|
||||
<a href="https://www.youtube.com/channel/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube"></i></a>
|
||||
<a href="https://www.youtube.com/channel/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-youtube fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Tumblr}}
|
||||
<a href="https://{{.}}.tumblr.com" rel="me noopener noreffer" target="_blank"><i class="fab fa-tumblr"></i></a>
|
||||
<a href="https://{{.}}.tumblr.com" rel="me noopener noreffer" target="_blank"><i class="fab fa-tumblr fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Quora}}
|
||||
<a href="https://www.quora.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-quora"></i></a>
|
||||
<a href="https://www.quora.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-quora fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Keybase}}
|
||||
<a href="https://keybase.io/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-keybase"></i></a>
|
||||
<a href="https://keybase.io/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-keybase fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Pinterest}}
|
||||
<a href="https://www.pinterest.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-pinterest"></i></a>
|
||||
<a href="https://www.pinterest.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-pinterest fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Reddit}}
|
||||
<a href="https://www.reddit.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-reddit"></i></a>
|
||||
<a href="https://www.reddit.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-reddit fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Codepen}}
|
||||
<a href="https://codepen.io/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-codepen"></i></a>
|
||||
<a href="https://codepen.io/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-codepen fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Bitbucket}}
|
||||
<a href="https://bitbucket.org/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-bitbucket"></i></a>
|
||||
<a href="https://bitbucket.org/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-bitbucket fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Stackoverflow}}
|
||||
<a href="https://stackoverflow.com/users/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-stack-overflow"></i></a>
|
||||
<a href="https://stackoverflow.com/users/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-stack-overflow fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Weibo}}
|
||||
<a href="https://weibo.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-weibo"></i></a>
|
||||
<a href="https://weibo.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-weibo fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Odnoklassniki}}
|
||||
<a href="https://ok.ru/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-odnoklassniki"></i></a>
|
||||
<a href="https://ok.ru/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-odnoklassniki fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.VKontakte}}
|
||||
<a href="https://vk.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-vk"></i></a>
|
||||
<a href="https://vk.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-vk fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Flickr}}
|
||||
<a href="https://www.flickr.com/photos/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-flickr"></i></a>
|
||||
<a href="https://www.flickr.com/photos/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-flickr fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Xing}}
|
||||
<a href="https://www.xing.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-xing"></i></a>
|
||||
<a href="https://www.xing.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-xing fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Snapchat}}
|
||||
<a href="https://www.snapchat.com/add/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-snapchat"></i></a>
|
||||
<a href="https://www.snapchat.com/add/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-snapchat fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Soundcloud}}
|
||||
<a href="https://soundcloud.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-soundcloud"></i></a>
|
||||
<a href="https://soundcloud.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-soundcloud fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Spotify}}
|
||||
<a href="https://open.spotify.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-spotify"></i></a>
|
||||
<a href="https://open.spotify.com/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-spotify fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Bandcamp}}
|
||||
<a href="https://{{.}}.bandcamp.com/" rel="me noopener noreffer" target="_blank"><i class="fab fa-bandcamp"></i></a>
|
||||
<a href="https://{{.}}.bandcamp.com/" rel="me noopener noreffer" target="_blank"><i class="fab fa-bandcamp fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Paypal}}
|
||||
<a href="https://paypal.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-paypal"></i></a>
|
||||
<a href="https://paypal.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-paypal fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Fivehundredpx}}
|
||||
<a href="https://500px.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-500px"></i></a>
|
||||
<a href="https://500px.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-500px fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Mix}}
|
||||
<a href="https://mix.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-mix"></i></a>
|
||||
<a href="https://mix.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-mix fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Goodreads}}
|
||||
<a href="https://www.goodreads.com/user/show/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-goodreads"></i></a>
|
||||
<a href="https://www.goodreads.com/user/show/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-goodreads fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Lastfm}}
|
||||
<a href="https://www.last.fm/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-POP_lastfm"></i></a>
|
||||
<a href="https://www.last.fm/user/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-POP_lastfm fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Foursquare}}
|
||||
<a href="https://foursquare.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-foursquare"></i></a>
|
||||
<a href="https://foursquare.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-foursquare fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Hackernews}}
|
||||
<a href="https://news.ycombinator.com/user?id={{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-ycombinator"></i></a>
|
||||
<a href="https://news.ycombinator.com/user?id={{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-ycombinator fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Kickstarter}}
|
||||
<a href="https://kickstarter.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-kickstarter"></i></a>
|
||||
<a href="https://kickstarter.com/profile/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-kickstarter fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Patreon}}
|
||||
<a href="https://patreon.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-patreon"></i></a>
|
||||
<a href="https://patreon.com/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-patreon fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Steam}}
|
||||
<a href="https://steamcommunity.com/id/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-steam"></i></a>
|
||||
<a href="https://steamcommunity.com/id/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-steam fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Twitch}}
|
||||
<a href="https://www.twitch.tv/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-twitch"></i></a>
|
||||
<a href="https://www.twitch.tv/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-twitch fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Strava}}
|
||||
<a href="https://www.strava.com/athletes/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-strava"></i></a>
|
||||
<a href="https://www.strava.com/athletes/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-strava fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Skype}}
|
||||
<a href="skype:{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-skype"></i></a>
|
||||
<a href="skype:{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-skype fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Whatsapp}}
|
||||
<a href="https://wa.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-whatsapp"></i></a>
|
||||
<a href="https://wa.me/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-whatsapp fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Zhihu}}
|
||||
<a href="https://www.zhihu.com/people/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-zhihu"></i></a>
|
||||
<a href="https://www.zhihu.com/people/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-zhihu fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Angellist}}
|
||||
<a href="https://angel.co/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-angellist"></i></a>
|
||||
<a href="https://angel.co/{{.}}" rel="me noopener noreffer" target="_blank"><i class="fab fa-angellist fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Slideshare}}
|
||||
<a href="https://slideshare.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-slideshare"></i></a>
|
||||
<a href="https://slideshare.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-slideshare fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Jsfiddle}}
|
||||
<a href="https://jsfiddle.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-jsfiddle"></i></a>
|
||||
<a href="https://jsfiddle.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-jsfiddle fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Deviantart}}
|
||||
<a href="https://{{ . }}.deviantart.com/" rel="me noopener noreffer" target="_blank"><i class="fab fa-deviantart"></i></a>
|
||||
<a href="https://{{ . }}.deviantart.com/" rel="me noopener noreffer" target="_blank"><i class="fab fa-deviantart fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Behance}}
|
||||
<a href="https://behance.net/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-behance"></i></a>
|
||||
<a href="https://behance.net/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-behance fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Dribble}}
|
||||
<a href="https://dribbble.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-dribbble"></i></a>
|
||||
<a href="https://dribbble.com/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-dribbble fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Wordpress}}
|
||||
<a href="https://{{ . }}.wordpress.com" rel="me noopener noreffer" target="_blank"><i class="fab fa-wordpress"></i></a>
|
||||
<a href="https://{{ . }}.wordpress.com" rel="me noopener noreffer" target="_blank"><i class="fab fa-wordpress fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Vine}}
|
||||
<a href="https://vine.co/" rel="me noopener noreffer" target="_blank"><i class="fab fa-vine"></i></a>
|
||||
<a href="https://vine.co/" rel="me noopener noreffer" target="_blank"><i class="fab fa-vine fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Googlescholar}}
|
||||
<a href="https://scholar.google.com/citations?{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-Googlescholar"></i></a>
|
||||
<a href="https://scholar.google.com/citations?{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-Googlescholar fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Researchgate}}
|
||||
<a href="https://www.researchgate.net/profile/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-researchgate"></i></a>
|
||||
<a href="https://www.researchgate.net/profile/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-researchgate fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Mastodon}}
|
||||
<a href="https://mastodon.social/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-mastodon"></i></a>
|
||||
<a href="https://mastodon.social/{{ . }}" rel="me noopener noreffer" target="_blank"><i class="fab fa-mastodon fa-fw"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.Social.Email}}
|
||||
<a href="mailto:{{.}}" rel="me noopener noreffer"><i class="far fa-envelope" target="_blank"></i></a>
|
||||
<a href="mailto:{{.}}" rel="me noopener noreffer"><i class="far fa-envelope" target="_blank fa-fw"></i></a>
|
||||
{{ end }}
|
|
@ -27,12 +27,12 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post-tags">
|
||||
<div class="post-info-more">
|
||||
<section>
|
||||
{{ with .Params.tags }}
|
||||
{{ range . }}
|
||||
<span class="tag">
|
||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag"></i>{{.}}</a>
|
||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag fa-fw"></i>{{ . }}</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
@ -44,10 +44,10 @@
|
|||
|
||||
<div class="post-nav">
|
||||
{{ if .PrevInSection }}
|
||||
<a href="{{.PrevInSection.Permalink}}" class="prev" rel="prev" title="{{ .PrevInSection.Title}}"><i class="fas fa-angle-left"></i>{{ .PrevInSection.Title}}</a>
|
||||
<a href="{{ .PrevInSection.Permalink }}" class="prev" rel="prev" title="{{ .PrevInSection.Title }}"><i class="fas fa-angle-left fa-fw"></i>{{ .PrevInSection.Title }}</a>
|
||||
{{ end }}
|
||||
{{ if .NextInSection }}
|
||||
<a href="{{.NextInSection.Permalink}}" class="next" rel="next" title="{{.NextInSection.Title}}">{{.NextInSection.Title}} <i class="fas fa-angle-right"></i></a>
|
||||
<a href="{{ .NextInSection.Permalink }}" class="next" rel="next" title="{{ .NextInSection.Title }}">{{ .NextInSection.Title }}<i class="fas fa-angle-right fa-fw"></i></a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
|
@ -1,52 +1,52 @@
|
|||
{{ if or (eq .Params.share.enable false) (eq .Site.Params.share.enable false) | not }}
|
||||
{{ if or .Params.Share.Twitter (and .Site.Params.Share.Twitter (ne .Params.Share.Twitter false)) }}
|
||||
<a href="//twitter.com/share?url={{ .Permalink }}&text={{ .Title }}&via={{ .Site.Params.Social.Twitter }}" target="_blank" title="Share on Twitter">
|
||||
<i class="fab fa-twitter"></i>
|
||||
<i class="fab fa-twitter fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Facebook (and .Site.Params.Share.Facebook (ne .Params.Share.Facebook false)) }}
|
||||
<a href="//www.facebook.com/sharer/sharer.php?u={{ .Permalink }}" target="_blank" title="Share on Facebook">
|
||||
<i class="fab fa-facebook-square"></i>
|
||||
<i class="fab fa-facebook-square fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Reddit (and .Site.Params.Share.Reddit (ne .Params.Share.Reddit false)) }}
|
||||
<a href="//reddit.com/submit?url={{ .Permalink }}&title={{ .Title }}" target="_blank" title="Share on Reddit">
|
||||
<i class="fab fa-reddit"></i>
|
||||
<i class="fab fa-reddit fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Linkedin (and .Site.Params.Share.Linkedin (ne .Params.Share.Linkedin false)) }}
|
||||
<a href="//www.linkedin.com/shareArticle?url={{ .Permalink }}&title={{ .Title }}" target="_blank" title="Share on LinkedIn">
|
||||
<i class="fab fa-linkedin"></i>
|
||||
<i class="fab fa-linkedin fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Pinterest (and .Site.Params.Share.Pinterest (ne .Params.Share.Pinterest false)) }}
|
||||
<a href="//www.pinterest.com/pin/create/button/?url={{ .Permalink }}&description={{ .Title }}" target="_blank" title="Share on Pinterest">
|
||||
<i class="fab fa-pinterest"></i>
|
||||
<i class="fab fa-pinterest fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.YCombinator (and .Site.Params.Share.YCombinator (ne .Params.Share.YCombinator false)) }}
|
||||
<a href="//news.ycombinator.com/submitlink?u={{ .Permalink }}&description={{ .Title }}" target="_blank" title="Share on Hacker News">
|
||||
<i class="fab fa-y-combinator"></i>
|
||||
<i class="fab fa-y-combinator fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Mix (and .Site.Params.Share.Mix (ne .Params.Share.Mix false)) }}
|
||||
<a href="//mix.com/add?url={{ .Permalink }}&description={{ .Title }}" target="_blank" title="Share on Mix">
|
||||
<i class="fab fa-mix"></i>
|
||||
<i class="fab fa-mix fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Tumblr (and .Site.Params.Share.Tumblr (ne .Params.Share.Tumblr false)) }}
|
||||
<a href="//www.tumblr.com/widgets/share/tool?canonicalUrl={{ .Permalink }}&title={{ .Title }}" target="_blank" title="Share on Tumblr">
|
||||
<i class="fab fa-tumblr"></i>
|
||||
<i class="fab fa-tumblr fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.VK (and .Site.Params.Share.VK (ne .Params.Share.VK false)) }}
|
||||
<a href="//vk.com/share.php?url={{ .Permalink }}&title={{ .Title }}" target="_blank" title="Share on VKontakte ">
|
||||
<i class="fab fa-vk"></i>
|
||||
<i class="fab fa-vk fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ if or .Params.Share.Weibo (and .Site.Params.Share.Weibo (ne .Params.Share.Weibo false)) }}
|
||||
<a href="//service.weibo.com/share/share.php?url={{ .Permalink }}&appkey=&title={{ .Title }}{{ with $.Params.featured_image }}&pic={{ . }}{{ end }}" target="_blank" title="Share on Weibo">
|
||||
<i class="fab fa-weibo"></i>
|
||||
<i class="fab fa-weibo fa-fw"></i>
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
|
@ -12,27 +12,27 @@
|
|||
|
||||
<div class="post-meta">
|
||||
<div class="post-meta-main">
|
||||
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle"></i> {{ $author }} </a>
|
||||
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle fa-fw"></i>{{ $author }} </a>
|
||||
{{ with .Params.categories -}}
|
||||
<span class="post-category">
|
||||
{{ T "included" }}
|
||||
{{ range . }}
|
||||
{{- $name := . -}}
|
||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
||||
<i class="far fa-folder"></i><a href="{{ .Permalink }}">{{ $name }}</a>
|
||||
<i class="far fa-folder fa-fw"></i><a href="{{ .Permalink }}">{{ $name }}</a>
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{- end }}
|
||||
</div>
|
||||
<div class="post-meta-other">
|
||||
<span class="post-time"><i class="far fa-calendar-alt"></i><time datetime={{ $publish_date }}>{{ $publish_date }}</time> </span>
|
||||
<i class="fas fa-pencil-alt"></i>{{ T "wordCount" .WordCount }}
|
||||
<i class="far fa-clock"></i>{{ T "readingTime" .ReadingTime }}
|
||||
<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="far fa-clock fa-fw"></i>{{ T "readingTime" .ReadingTime }}
|
||||
{{- if eq (getenv "HUGO_ENV") "production" | and .Site.Params.valine.enable | and .Site.Params.valine.visitor -}}
|
||||
<span id="{{ .RelPermalink | relURL }}" class="leancloud_visitors" data-flag-title="{{ .Title }}">
|
||||
<i class="far fa-eye"></i>{{ T "pageviews" | safeHTML }}
|
||||
</span>
|
||||
<i class="far fa-eye fa-fw"></i>{{ T "pageviews" | safeHTML }}
|
||||
</span>
|
||||
{{- end -}}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -72,7 +72,7 @@
|
|||
{{ $REout = "<figure><img src=/images/loading.svg data-src=$1 data-sizes=auto alt=$2 title=$3 class=lazyload><figcaption class=image-caption>$2</figcaption></figure>" }}
|
||||
{{ $content = replaceRE $REin $REout $content }}
|
||||
{{ $REin = `:\(([\w- ]+?)\):` }}
|
||||
{{ $REout = `<i class="inline-icon $1"></i>` }}
|
||||
{{ $REout = `<i class="$1 fa-fw"></i>` }}
|
||||
{{ $content = replaceRE $REin $REout $content }}
|
||||
{{ $REin = `\[(.+?)\]\^\((.+?)\)` }}
|
||||
{{ $REout = `<strong><ruby>$1<rt>$2</rt></ruby></strong>` }}
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
{{ if .IsNamedParams -}}
|
||||
<i class="inline-icon {{ .Get "class" }}"></i>
|
||||
{{- else -}}
|
||||
<i class="inline-icon {{ .Get 0 }}"></i>
|
||||
{{- end }}
|
|
@ -5,9 +5,9 @@
|
|||
<h2 class="post-title animated pulse faster">
|
||||
{{ $taxonomy := .Data.Singular }}
|
||||
{{ if eq $taxonomy "category" }}
|
||||
<i class="far fa-folder-open"></i>{{ .Title }}
|
||||
<i class="far fa-folder-open fa-fw"></i>{{ .Title }}
|
||||
{{ else if eq $taxonomy "tag" }}
|
||||
<i class="fas fa-tag"></i>{{ .Title }}
|
||||
<i class="fas fa-tag fa-fw"></i>{{ .Title }}
|
||||
{{ else }}
|
||||
{{ printf "%s - %s" (T $taxonomy | default (humanize $taxonomy)) .Title }}
|
||||
{{ end }}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<div class="card-item">
|
||||
<div class="categories">
|
||||
<a href="{{ .Permalink }}">
|
||||
<h3><i class="far fa-folder"></i>{{ $term | humanize}}</h3>
|
||||
<h3><i class="far fa-folder fa-fw"></i>{{ $term | humanize}}</h3>
|
||||
</a>
|
||||
{{ range first 5 $pages }}
|
||||
<article class="archive-item">
|
||||
|
|
Loading…
Add table
Reference in a new issue