feat: update style and exampleSite files

This commit is contained in:
Dillon 2019-08-27 01:15:00 +08:00
parent 45c9281131
commit 42d50ae53c
58 changed files with 477 additions and 257 deletions

1
.gitignore vendored
View file

@ -1,5 +1,6 @@
# Hugo default output directory
public
resources
## OS Files
# Windows

View file

@ -1,6 +1,8 @@
# LoveIt Theme | Hugo
[中文 README](README.zh.md)
[![Netlify Status](https://api.netlify.com/api/v1/badges/e60303f2-862c-4342-bf59-7c9adb10812e/deploy-status)](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

View file

@ -1,6 +1,8 @@
# LoveIt 主题 | Hugo
[English README](README.md)
[![Netlify Status](https://api.netlify.com/api/v1/badges/c51d4765-deb8-43d2-954c-720527879667/deploy-status)](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
* ...
## 快速开始

View file

@ -42,14 +42,6 @@
.home-social-links {
padding-top: .6rem;
a {
padding: 0 .4rem;
&:hover {
background-color: transparent;
}
}
i {
font-size: 1.4rem;
}

View file

@ -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 {

View file

@ -1,6 +1,10 @@
/**Footer**/
.copyright {
font-size: .875rem;
.copyright-line {
width: 100%;
}
}
.dynamic-to-top {

View file

@ -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

View file

@ -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:

View 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
![Gif](http://pvuonn2xy.bkt.clouddn.com/uploads/2019-08-08%2013:59:32-2019-08-08%2013.56.05.gif "Title")
## Test Align
{{% align-right %}}
**Test Text**
{{% /align-right %}}
## Test Katex
$$ c = \pm\sqrt{a^2 + b^2} $$

View file

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

View file

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

View file

@ -1 +0,0 @@
{"Target":"css/lib/fontawesome-free/all.min.min.css","MediaType":"text/css","Data":{}}

View file

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

View file

@ -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();});});

View file

@ -1 +0,0 @@
{"Target":"js/blog.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/aplayer/APlayer.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/echarts/echarts.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -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);}));

View file

@ -1 +0,0 @@
{"Target":"js/lib/echarts/macarons.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -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])})}});

View file

@ -1 +0,0 @@
{"Target":"js/lib/jquery-countdown/jquery.countdown.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/jquery/jquery.slim.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -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});

View file

@ -1 +0,0 @@
{"Target":"js/lib/katex/auto-render.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/katex/katex.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/lazysizes/lazysizes.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/mermaid/mermaid.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -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));

View file

@ -1 +0,0 @@
{"Target":"js/lib/meting/Meting.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/smooth-scroll/smooth-scroll.polyfills.min.min.js","MediaType":"application/javascript","Data":{}}

View file

@ -1 +0,0 @@
{"Target":"js/lib/typeit/typeit.min.min.js","MediaType":"application/javascript","Data":{}}

View file

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

View file

@ -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

View file

@ -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)。
感谢以下在主题中使用过的项目的作者:

View file

@ -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>` }}

View file

@ -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 }}&nbsp;</a>
{{ T "publish" }}<span class="post-time">&nbsp;<time datetime={{ $publish_date }}>{{ $publish_date }}</time>&nbsp;</span>
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle fa-fw"></i>{{ $author }}&nbsp;</a>
{{ T "publish" }}&nbsp;<time datetime={{ $publish_date }}>{{ $publish_date }}</time>&nbsp;
{{ 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 . }}
&nbsp;&nbsp;<span class="tag"><a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag"></i>{{ . }}</a></span>
&nbsp;&nbsp;<span class="tag"><a href="{{ "tags/" | absURL }}{{ . | urlize }}/"><i class="fas fa-tag fa-fw"></i>{{ . }}</a></span>
{{ end }}
</div>
{{ end }}

View file

@ -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 }}&nbsp;|&nbsp;{{ 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">&nbsp;<a href="{{ $.Site.BaseURL }}">{{ . }}</a></span>
{{- end -}}
{{- with .Site.Params.icp -}}
<span class="icp">&nbsp;|&nbsp;{{ . | safeHTML }}</span>
{{- end -}}
{{- with .Site.Params.license -}}
<span class="license">&nbsp;|&nbsp;{{ . | 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 }}&nbsp;|&nbsp;{{ 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">&nbsp;<a href="{{ $.Site.BaseURL }}">{{ . }}</a></span>
{{- end -}}
{{- with .Site.Params.icp -}}
<span class="icp">&nbsp;|&nbsp;{{ . | safeHTML }}</span>
{{- end -}}
{{- with .Site.Params.license -}}
<span class="license">&nbsp;|&nbsp;{{ . | safeHTML }}</span>
{{- end -}}
</div>
</div>
</footer>

View file

@ -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>

View file

@ -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 }}

View file

@ -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}}&nbsp;<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>

View file

@ -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 }}&amp;text={{ .Title }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;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 }}&amp;appkey=&amp;title={{ .Title }}{{ with $.Params.featured_image }}&amp;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 }}

View file

@ -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>&nbsp;{{ $author }}&nbsp;</a>
<a class="author" href="{{.Site.BaseURL }}" rel="author"><i class="fas fa-user-circle fa-fw"></i>{{ $author }}&nbsp;</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>&nbsp;
<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>&nbsp;</span>
<i class="fas fa-pencil-alt"></i>{{ T "wordCount" .WordCount }}&nbsp;
<i class="far fa-clock"></i>{{ T "readingTime" .ReadingTime }}&nbsp;
<i class="far fa-calendar-alt fa-fw"></i><time datetime={{ $publish_date }}>{{ $publish_date }}</time>&nbsp;
<i class="fas fa-pencil-alt fa-fw"></i>{{ T "wordCount" .WordCount }}&nbsp;
<i class="far fa-clock fa-fw"></i>{{ T "readingTime" .ReadingTime }}&nbsp;
{{- 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 }}&nbsp;
</span>
<i class="far fa-eye fa-fw"></i>{{ T "pageviews" | safeHTML }}
</span>&nbsp;
{{- 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>` }}

View file

@ -1,5 +0,0 @@
{{ if .IsNamedParams -}}
<i class="inline-icon {{ .Get "class" }}"></i>
{{- else -}}
<i class="inline-icon {{ .Get 0 }}"></i>
{{- end }}

View file

@ -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 }}

View file

@ -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">