mirror of
https://github.com/dillonzq/LoveIt.git
synced 2024-11-12 18:06:17 +01:00
feat: impove i18n and clean code
This commit is contained in:
parent
1e709b5ba4
commit
c67a2a86a1
28 changed files with 471 additions and 798 deletions
1
LICENSE
1
LICENSE
|
@ -1,6 +1,7 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 LIUZHICHAO.COM
|
||||
Copyright (c) 2019 DILLONZQ.TOP
|
||||
|
||||
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
|
||||
|
|
20
LICENSE.md
20
LICENSE.md
|
@ -1,20 +0,0 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018 LIUZHICHAO.COM
|
||||
|
||||
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.
|
|
@ -1,9 +1,9 @@
|
|||
/**Footer**/
|
||||
|
||||
|
||||
.copyright {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
|
||||
#dynamic-to-top {
|
||||
display: none;
|
||||
overflow: hidden;
|
||||
|
|
70
i18n/de.toml
70
i18n/de.toml
|
@ -1,70 +0,0 @@
|
|||
# Translations for German
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Geschrieben"
|
||||
|
||||
[by]
|
||||
other = "durch"
|
||||
|
||||
[with]
|
||||
other = "mit"
|
||||
|
||||
[on]
|
||||
other = "auf"
|
||||
|
||||
[in]
|
||||
other = "im"
|
||||
|
||||
[Author]
|
||||
other = "Autor"
|
||||
|
||||
[Words]
|
||||
other = "Wörter"
|
||||
|
||||
[Tag]
|
||||
other = "Etikett"
|
||||
|
||||
[Home]
|
||||
other = "Hause"
|
||||
|
||||
[back]
|
||||
other = "Zurück"
|
||||
|
||||
[minute]
|
||||
other = "minute"
|
||||
|
||||
[Share]
|
||||
other = "Aktie"
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "Seite"
|
||||
|
||||
[not]
|
||||
other = "nicht"
|
||||
|
||||
[found]
|
||||
other = "gefunden"
|
||||
|
||||
[return]
|
||||
other = "Zurückkommen"
|
||||
|
||||
[to]
|
||||
other = "zu"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "Mehr"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Ähnliche"
|
||||
|
||||
[Articles]
|
||||
other = "Artikel"
|
117
i18n/en.toml
117
i18n/en.toml
|
@ -1,70 +1,71 @@
|
|||
# Translations for English
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
# === Post ===
|
||||
[posts]
|
||||
other = "Posts"
|
||||
# === Post ===
|
||||
|
||||
[Written]
|
||||
other = "Written"
|
||||
|
||||
[by]
|
||||
other = "by"
|
||||
|
||||
[with]
|
||||
other = "with"
|
||||
|
||||
[on]
|
||||
other = "on"
|
||||
|
||||
[in]
|
||||
other = "in"
|
||||
|
||||
[Author]
|
||||
other = "Author"
|
||||
|
||||
[Words]
|
||||
other = "Words"
|
||||
|
||||
[Tag]
|
||||
# === Taxonomy ===
|
||||
[tag]
|
||||
other = "Tag"
|
||||
|
||||
[Home]
|
||||
other = "Home"
|
||||
[tags]
|
||||
other = "Tags"
|
||||
|
||||
[category]
|
||||
other = "Category"
|
||||
|
||||
[categories]
|
||||
other = "Categories"
|
||||
# === Taxonomy ===
|
||||
|
||||
# === Pagination ===
|
||||
[More]
|
||||
other = "More"
|
||||
# === Pagination ===
|
||||
|
||||
# === partials/footer.html ===
|
||||
[powered]
|
||||
other = "Powered by %s"
|
||||
|
||||
[theme]
|
||||
other = "Theme - "
|
||||
# === partials/footer.html ===
|
||||
|
||||
# === posts/single.html ===
|
||||
[wrote]
|
||||
other = "wrote on"
|
||||
|
||||
[wordCount]
|
||||
other = "about {{ .Count }} words"
|
||||
|
||||
[readingTime]
|
||||
other = "{{ .Count }} min"
|
||||
|
||||
[author]
|
||||
other = "Author"
|
||||
|
||||
[lastMod]
|
||||
other = "Last Modified"
|
||||
|
||||
[share]
|
||||
other = "Share"
|
||||
|
||||
[license]
|
||||
other = "License"
|
||||
|
||||
[back]
|
||||
other = "Back"
|
||||
|
||||
[minute]
|
||||
other = "minute"
|
||||
[home]
|
||||
other = "Home"
|
||||
# === posts/single.html ===
|
||||
|
||||
[Share]
|
||||
other = "Share"
|
||||
# === 404.html ===
|
||||
[pageNotFound]
|
||||
other = "Page not found"
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "page"
|
||||
|
||||
[not]
|
||||
other = "not"
|
||||
|
||||
[found]
|
||||
other = "found"
|
||||
|
||||
[return]
|
||||
other = "Return"
|
||||
|
||||
[to]
|
||||
other = "to"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "More"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Related"
|
||||
|
||||
[Articles]
|
||||
other = "Articles"
|
||||
[backToHome]
|
||||
other = "Back to Home"
|
||||
# === 404.html ===
|
||||
|
|
70
i18n/eo.toml
70
i18n/eo.toml
|
@ -1,70 +0,0 @@
|
|||
# Translations for Esperanto
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Skribita"
|
||||
|
||||
[by]
|
||||
other = "de"
|
||||
|
||||
[with]
|
||||
other = "kun"
|
||||
|
||||
[on]
|
||||
other = "il"
|
||||
|
||||
[in]
|
||||
other = "sur"
|
||||
|
||||
[Author]
|
||||
other = "Aŭtoro"
|
||||
|
||||
[Words]
|
||||
other = "Vortoj"
|
||||
|
||||
[Tag]
|
||||
other = "Tag"
|
||||
|
||||
[Home]
|
||||
other = "Hejmo"
|
||||
|
||||
[back]
|
||||
other = "Reen"
|
||||
|
||||
[minute]
|
||||
other = "minuto"
|
||||
|
||||
[Share]
|
||||
other = "Kunhavigi"
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "paĝo"
|
||||
|
||||
[not]
|
||||
other = "ne"
|
||||
|
||||
[found]
|
||||
other = "trovita"
|
||||
|
||||
[return]
|
||||
other = "Revenu"
|
||||
|
||||
[to]
|
||||
other = "al"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "Pli"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Similaj"
|
||||
|
||||
[Articles]
|
||||
other = "Artikoloj"
|
70
i18n/es.toml
70
i18n/es.toml
|
@ -1,70 +0,0 @@
|
|||
# Translations for Spanish
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Escrito"
|
||||
|
||||
[by]
|
||||
other = "por"
|
||||
|
||||
[with]
|
||||
other = "con"
|
||||
|
||||
[on]
|
||||
other = "en"
|
||||
|
||||
[in]
|
||||
other = "en"
|
||||
|
||||
[Author]
|
||||
other = "Autor"
|
||||
|
||||
[Words]
|
||||
other = "Palabras"
|
||||
|
||||
[Tag]
|
||||
other = "Etiqueta"
|
||||
|
||||
[Home]
|
||||
other = "Casa"
|
||||
|
||||
[back]
|
||||
other = "Atrás"
|
||||
|
||||
[minute]
|
||||
other = "minuto"
|
||||
|
||||
[Share]
|
||||
other = "Compartir"
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "página"
|
||||
|
||||
[not]
|
||||
other = "no"
|
||||
|
||||
[found]
|
||||
other = "encontrada"
|
||||
|
||||
[return]
|
||||
other = "Volver"
|
||||
|
||||
[to]
|
||||
other = "a"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "Más"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Artículos"
|
||||
|
||||
[Articles]
|
||||
other = "Similares"
|
70
i18n/fr.toml
70
i18n/fr.toml
|
@ -1,70 +0,0 @@
|
|||
# Translations for French
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Écrit"
|
||||
|
||||
[by]
|
||||
other = "par"
|
||||
|
||||
[with]
|
||||
other = "avec"
|
||||
|
||||
[on]
|
||||
other = "sur"
|
||||
|
||||
[in]
|
||||
other = "dans"
|
||||
|
||||
[Author]
|
||||
other = "Auteur"
|
||||
|
||||
[Words]
|
||||
other = "Mots"
|
||||
|
||||
[Tag]
|
||||
other = "Étiquette"
|
||||
|
||||
[Home]
|
||||
other = "Accueil"
|
||||
|
||||
[back]
|
||||
other = "Retour"
|
||||
|
||||
[minute]
|
||||
other = "minute"
|
||||
|
||||
[Share]
|
||||
other = "Partager"
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "Page"
|
||||
|
||||
[not]
|
||||
other = "non"
|
||||
|
||||
[found]
|
||||
other = "trouvée"
|
||||
|
||||
[return]
|
||||
other = "Retourner"
|
||||
|
||||
[to]
|
||||
other = "à"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "Plus"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Articles"
|
||||
|
||||
[Articles]
|
||||
other = "Similaires"
|
71
i18n/it.toml
71
i18n/it.toml
|
@ -1,71 +0,0 @@
|
|||
# Translations for Italian
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Scritto"
|
||||
|
||||
[by]
|
||||
other = "da"
|
||||
|
||||
[with]
|
||||
other = "con"
|
||||
|
||||
[on]
|
||||
other = "il"
|
||||
|
||||
[in]
|
||||
other = "in"
|
||||
|
||||
[Author]
|
||||
other = "Autore"
|
||||
|
||||
[Words]
|
||||
other = "Parole"
|
||||
|
||||
[Tag]
|
||||
other = "Tag"
|
||||
|
||||
[Home]
|
||||
other = "Home"
|
||||
|
||||
[back]
|
||||
other = "Indietro"
|
||||
|
||||
[minute]
|
||||
other = "minuto"
|
||||
|
||||
[Share]
|
||||
other = "Condividi"
|
||||
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "pagina"
|
||||
|
||||
[not]
|
||||
other = "non"
|
||||
|
||||
[found]
|
||||
other = "trovata"
|
||||
|
||||
[return]
|
||||
other = "Torna"
|
||||
|
||||
[to]
|
||||
other = "alla"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "Altro"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Articoli"
|
||||
|
||||
[Articles]
|
||||
other = "Correlati"
|
71
i18n/sq.toml
71
i18n/sq.toml
|
@ -1,71 +0,0 @@
|
|||
# Translations for Albanian
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# Single.html
|
||||
|
||||
[Written]
|
||||
other = "Shkruar"
|
||||
|
||||
[by]
|
||||
other = "nga"
|
||||
|
||||
[with]
|
||||
other = "me"
|
||||
|
||||
[on]
|
||||
other = "në"
|
||||
|
||||
[in]
|
||||
other = "në"
|
||||
|
||||
[Author]
|
||||
other = "Autor"
|
||||
|
||||
[Words]
|
||||
other = "Fjalë"
|
||||
|
||||
[Tag]
|
||||
other = "Etiketë"
|
||||
|
||||
[Home]
|
||||
other = "Shtëpi"
|
||||
|
||||
[back]
|
||||
other = "Prapa"
|
||||
|
||||
[minute]
|
||||
other = "minutë"
|
||||
|
||||
[Share]
|
||||
other = "Pjesë"
|
||||
|
||||
|
||||
# 404.html
|
||||
|
||||
[page]
|
||||
other = "Faqja"
|
||||
|
||||
[not]
|
||||
other = "nuk u"
|
||||
|
||||
[found]
|
||||
other = "gjet"
|
||||
|
||||
[return]
|
||||
other = "Kthehu"
|
||||
|
||||
[to]
|
||||
other = "në"
|
||||
|
||||
# Pagination
|
||||
|
||||
[More]
|
||||
other = "më shumë"
|
||||
|
||||
# Related post
|
||||
|
||||
[Related]
|
||||
other = "Artikuj"
|
||||
|
||||
[Articles]
|
||||
other = "Të lidhura"
|
71
i18n/zh.toml
Normal file
71
i18n/zh.toml
Normal file
|
@ -0,0 +1,71 @@
|
|||
# Translations for Simplified Chinese
|
||||
# https://gohugo.io/content-management/multilingual/#translation-of-strings
|
||||
|
||||
# === Post ===
|
||||
[posts]
|
||||
other = "文章"
|
||||
# === Post ===
|
||||
|
||||
# === Taxonomy ===
|
||||
[tag]
|
||||
other = "标签"
|
||||
|
||||
[tags]
|
||||
other = "标签"
|
||||
|
||||
[category]
|
||||
other = "分类"
|
||||
|
||||
[categories]
|
||||
other = "分类"
|
||||
# === Taxonomy ===
|
||||
|
||||
# === Pagination ===
|
||||
[More]
|
||||
other = "更多"
|
||||
# === Pagination ===
|
||||
|
||||
# === partials/footer.html ===
|
||||
[powered]
|
||||
other = "由 %s 强力驱动"
|
||||
|
||||
[theme]
|
||||
other = "主题 - "
|
||||
# === partials/footer.html ===
|
||||
|
||||
# === posts/single.html ===
|
||||
[wrote]
|
||||
other = "创作于"
|
||||
|
||||
[wordCount]
|
||||
other = "约 {{ .Count }} 字"
|
||||
|
||||
[readingTime]
|
||||
other = "预计阅读 {{ .Count }} 分钟"
|
||||
|
||||
[author]
|
||||
other = "作者"
|
||||
|
||||
[lastMod]
|
||||
other = "上次更新"
|
||||
|
||||
[share]
|
||||
other = "内容分享"
|
||||
|
||||
[license]
|
||||
other = "许可协议"
|
||||
|
||||
[back]
|
||||
other = "返回"
|
||||
|
||||
[home]
|
||||
other = "主页"
|
||||
# === posts/single.html ===
|
||||
|
||||
# === 404.html ===
|
||||
[pageNotFound]
|
||||
other = "页面没找到"
|
||||
|
||||
[backToHome]
|
||||
other = "回到主页"
|
||||
# === 404.html ===
|
|
@ -1,8 +1,8 @@
|
|||
{{ define "content" }}
|
||||
<div class="notfound">
|
||||
<h1 class="error-emoji"></h1>
|
||||
<p class="error-text">/* 404 {{ i18n "page" }} {{ i18n "not" }} {{ i18n "found" }}. */</p>
|
||||
<p class="error-link"><a href="{{ .Site.BaseURL }}">↑ {{ i18n "back" }} {{ i18n "to" }} {{ i18n "Home" }} ↑</a></p>
|
||||
<p class="error-text">/* 404 {{ T "pageNotFound" }}. */</p>
|
||||
<p class="error-link"><a href="{{ .Site.BaseURL }}">↑ {{ T "backToHome" }} ↑</a></p>
|
||||
</div>
|
||||
<script>
|
||||
var errorEmojiContainer = document.getElementsByClassName('error-emoji')[0];
|
||||
|
|
|
@ -1,15 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.LanguageCode }}">
|
||||
{{ partial "head.html" . }}
|
||||
<body class="">
|
||||
<div class="wrapper">
|
||||
{{ partial "header" . }}
|
||||
<main class="main">
|
||||
<div class="container">
|
||||
{{ block "content" . }}{{ end }}
|
||||
</div>
|
||||
</main>
|
||||
{{ partial "footer.html" . }}
|
||||
</div>
|
||||
</body>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>{{ block "title" . -}}{{ .Site.Title }}{{- end }}</title>
|
||||
{{ partial "head.html" . }}
|
||||
</head>
|
||||
{{ $cdn_url := ""}}
|
||||
{{ if eq ( getenv "HUGO_ENV" ) "production" }}
|
||||
{{ with .Site.Params.cdn_url }}
|
||||
{{ $cdn_url = .}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ .Scratch.Set "cdn_url" $cdn_url }}
|
||||
<body class="">
|
||||
<div class="wrapper">
|
||||
{{ partial "header" . }}
|
||||
<main class="main">
|
||||
<div class="container">
|
||||
{{ block "content" . }}{{ end }}
|
||||
</div>
|
||||
</main>
|
||||
{{ partial "footer.html" . }}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
{{ define "content" }}
|
||||
{{ $data := .Data }}
|
||||
<div class="post-warp archive">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">- {{ $data.Plural | humanize }}{{ .Title }} -</h2>
|
||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||
<h3>{{ .Key }}</h3>
|
||||
|
||||
{{ range .Pages }}
|
||||
<article class="archive-item">
|
||||
<a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
|
||||
<span class="archive-item-date">
|
||||
{{ .Date.Format "2 January 2006" }}
|
||||
</span>
|
||||
</article>
|
||||
{{ end }} {{ end }}
|
||||
{{ partial "paginator.html" . }}
|
||||
</div>
|
||||
{{end }}
|
|
@ -1,112 +0,0 @@
|
|||
{{ define "content" -}}
|
||||
{{ $cdn_url := .Scratch.Get "cdn_url" }}
|
||||
<article class="post-warp">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ .Title }}</h1>
|
||||
<div class="post-meta">
|
||||
{{ i18n "Written" }} {{ i18n "by" }} <a href="{{.Site.BaseURL }}" rel="author">{{ if isset .Params "author" }}{{ .Params.author }}{{ else }}{{ .Site.Params.author }}{{ end }}</a> {{ i18n "with" }} ♥
|
||||
<span class="post-time">
|
||||
{{ i18n "on" }} <time datetime={{.Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }} >{{ .Date.Format (.Site.Params.dateFormatToUse | default "2 January 2006") }}</time>
|
||||
</span>
|
||||
{{ i18n "in" }}
|
||||
{{ with .Params.categories -}}
|
||||
<i class="iconfont icon-folder"></i>
|
||||
<span class="post-category">
|
||||
{{ range . }}
|
||||
{{- $name := . -}}
|
||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
||||
<a href="{{ .Permalink }}"> {{ $name }} </a>
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{- end }}
|
||||
<i class="iconfont icon-timer"></i>
|
||||
{{.ReadingTime }} min
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<!--featured_image-->
|
||||
|
||||
{{ $images := findRE "<img src=\"[^\"|\\\"]*\"" .Content -}}
|
||||
{{ if ge (len $images) 1}}
|
||||
{{ $.Scratch.Set "postHasImages" true }}
|
||||
{{ end }}
|
||||
|
||||
{{ with .Params.featured_image }}
|
||||
{{- $img := . -}}
|
||||
<img src="{{ printf "%s%s" $cdn_url $img }}" class="featured_image">
|
||||
{{ end }}
|
||||
<!-- end featured_image-->
|
||||
|
||||
{{ $reAltIn := "<img src=\"([^\"]+)\" alt=\"([^\"]+)?\" />" }}
|
||||
{{ $reAltOut := ( printf "<figure><img src=\"/images/ring.svg\" data-sizes=\"auto\" data-src=\"%s$1\" alt=\"$2\" class=\"lazyload\"><figcaption class=\"image-caption\">$2</figcaption></figure>" $cdn_url ) }}
|
||||
{{ $altContent := .Content | replaceRE $reAltIn $reAltOut | safeHTML }}
|
||||
|
||||
{{ $reAltTitleIn := "<img src=\"([^\"]+)\" alt=\"([^\"]+)?\" title=\"([^\"]+)?\" />" }}
|
||||
{{ $reAltTitleOut := ( printf "<figure><img src=\"/images/ring.svg\" data-src=\"%s$1\" data-sizes=\"auto\" alt=\"$2\" title=\"$3\" class=\"lazyload\"><figcaption class=\"image-caption\">$2</figcaption></figure>" $cdn_url ) }}
|
||||
{{ $finalContent := $altContent | replaceRE $reAltTitleIn $reAltTitleOut | safeHTML }}
|
||||
|
||||
{{ $finalContent }}
|
||||
</div>
|
||||
|
||||
<div class="post-copyright">
|
||||
{{ with .Site.Params.author }}
|
||||
<p class="copyright-item">
|
||||
<span>{{ i18n "Author" }}:</span>
|
||||
<span>{{ . }} </span>
|
||||
</p>
|
||||
{{ end }}
|
||||
|
||||
<p class="copyright-item">
|
||||
<span>{{ i18n "Words" }}:</span>
|
||||
<span>{{ .WordCount }}</span>
|
||||
</p>
|
||||
|
||||
<p class="copyright-item">
|
||||
{{ if and ( $.Param "socialShare" ) (gt (len ($.Param "share")) 0) }}
|
||||
<span>{{ i18n "Share" }}:</span>
|
||||
<span>{{ partial "share-links" . }}</span>
|
||||
{{ end }}
|
||||
</p>
|
||||
|
||||
{{ with .Site.Params.license }}
|
||||
<p class="copyright-item">
|
||||
{{ . | safeHTML}}
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="post-tags">
|
||||
{{ with .Params.tags }}
|
||||
<section>
|
||||
<i class="iconfont icon-icon-tag"></i>{{ i18n "Tag" }}:
|
||||
{{ range . }}
|
||||
<span class="tag">
|
||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/">#{{.}}</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ end }}
|
||||
<section>
|
||||
<a href="javascript:window.history.back();">{{ i18n "back" }}</a></span> ·
|
||||
<span><a href="{{ .Site.BaseURL }}">{{ i18n "Home" }}</a></span>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="post-nav">
|
||||
{{ if .PrevInSection }}
|
||||
<a href="{{.PrevInSection.Permalink}}" class="prev" rel="prev" title="{{ .PrevInSection.Title}}"><i class="iconfont icon-dajiantou"></i> {{ .PrevInSection.Title}}</a>
|
||||
{{ end }}
|
||||
{{ if .NextInSection }}
|
||||
<a href="{{.NextInSection.Permalink}}" class="next" rel="next" title="{{.NextInSection.Title}}">{{.NextInSection.Title}} <i class="iconfont icon-xiaojiantou"></i></a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="post-comment">
|
||||
{{ if ( .Params.showComments | default true ) }}
|
||||
{{ partial "comments" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</article>
|
||||
{{- end }}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{{ define "content" }}
|
||||
|
||||
{{ $termName := .Data.Plural }}
|
||||
{{ $terms := .Data.Terms.ByCount }}
|
||||
{{ $length := len $terms }}
|
||||
{{ $type := .Type }}
|
||||
<!-- Categories Page -->
|
||||
<div class="post-warp {{.Data.Plural}}">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">- {{ .Data.Plural | humanize }} -</h2>
|
||||
{{ if and $.Site.Taxonomies.categories (eq $termName "categories") }}
|
||||
|
||||
<div class="categories-card">
|
||||
{{ range $terms }}
|
||||
{{ $term := .Term }}
|
||||
{{ $pages := .Pages }}
|
||||
{{ with $.Site.GetPage "taxonomy" (printf "%s/%s" $type $term) }}
|
||||
<div class="card-item">
|
||||
<div class="categories" >
|
||||
<a href="{{ .Permalink }}"><h3> <i class="iconfont icon-folder" style="padding-right: 3px"></i> {{ $term | humanize}} </h3> </a>
|
||||
{{ range first 5 $pages }}
|
||||
<article class="archive-item">
|
||||
<a href="{{ .Permalink }}" class="archive-item-link">{{ .Title }}</a>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ if gt (len $pages) 5 }}
|
||||
<span class="more-post">
|
||||
<a href="{{ .Permalink }}" class="more-post-link">{{ i18n "More" }} >></a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div> <!-- //categories-card -->
|
||||
<!-- Tag cloud Page -->
|
||||
{{ else if and $.Site.Taxonomies.tags (eq $termName "tags") }}
|
||||
<div class="tag-cloud-tags">
|
||||
{{ range $.Site.Taxonomies.tags.ByCount }}
|
||||
{{ if .Name }}
|
||||
<a href="/tags/{{ .Name | urlize}}/"> {{ .Name }} <small>({{ .Count }})</small></a>
|
||||
{{ end }}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{ end }}
|
||||
</div>
|
||||
{{end }}
|
|
@ -1,8 +1,10 @@
|
|||
{{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
<div class="post-warp archive">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">{{ .Title }}</h2>
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
<div class="post-warp archive">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">{{ .Title }}</h2>
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end }}
|
||||
{{end }}
|
||||
|
|
|
@ -2,13 +2,14 @@
|
|||
<div class="copyright">
|
||||
©
|
||||
{{ with .Site.Params.since }}
|
||||
<span itemprop="copyrightYear">{{.}} - {{ now.Year }}</span>
|
||||
<span itemprop="copyrightYear">{{ if lt . now.Year }}{{ . }} - {{ end }}{{ now.Year }}</span>
|
||||
{{ end }}
|
||||
{{ if .Site.Params.author }}
|
||||
<span class="author" itemprop="copyrightHolder"><a href="{{ .Site.BaseURL }}">{{ .Site.Params.author }}</a> |
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ if .Site.Params.author }}
|
||||
<span class="author" itemprop="copyrightHolder"><a href="{{ .Site.BaseURL }}">{{ .Site.Params.author }}</a> | </span>
|
||||
{{ end }}
|
||||
|
||||
<span>Crafted with ❤️ by <a href="https://github.com/Fastbyte01/KeepIt" target="_blank" rel="external nofollow noopener noreffer">KeepIt</a> & <a href="https://gohugo.io/" target="_blank" rel="external nofollow noopener noreffer">Hugo</a></span>
|
||||
<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/KeepIt" target="_blank" rel="external nofollow noopener noreffer">KeepIt</a></span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
|
|
@ -1,48 +1,39 @@
|
|||
<head>
|
||||
<meta http-equiv="content-type" content="text/html;charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="robots" content="noodp"/>
|
||||
{{ with .Site.Params.google_verification }}<meta name="google-site-verification" content="{{ . }}" />{{ end }}
|
||||
{{ with .Site.Params.bing_verification }}<meta name="msvalidate.01" content="{{ . }}" />{{end}}
|
||||
{{ with .Site.Params.yandex_verification }}<meta name="yandex-verification" content="{{ . }}" />{{ end }}
|
||||
{{ with .Site.Params.pinterest_verification }}<meta name="p:domain_verify" content="{{ . }}"/>{{ end }}
|
||||
{{ with .Site.Params.baidu_verification }}<meta name=”baidu-site-verification” content="{{ . }}" />{{ end }}
|
||||
{{ if .PrevInSection }}<link rel="prev" href="{{.PrevInSection.Permalink}}" />{{end}}
|
||||
{{ if .NextInSection}}<link rel="next" href="{{ .NextInSection.Permalink }}" />{{end}}
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<title>
|
||||
{{ $url := replace .Permalink ( printf "%s" .Site.BaseURL) "" }}
|
||||
{{ if .IsHome }}
|
||||
{{ .Site.Title }}
|
||||
{{ else if .Params.heading }}
|
||||
{{ .Params.heading }}
|
||||
{{ else }}
|
||||
{{ .Title }} | {{ .Site.Title }}
|
||||
{{ end }}
|
||||
</title>
|
||||
<meta name="title" content="{{ if .IsHome }}{{ .Site.Title }}{{ else if .Params.heading }}{{ .Params.heading }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end}}">
|
||||
{{ partial "css" . }}
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
<link rel="alternate" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
<link rel="feed" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
{{ end }}
|
||||
{{- template "_internal/twitter_cards.html" . }}
|
||||
{{ partial "seo_schema" . }}
|
||||
</head>
|
||||
{{ $cdn_url := ""}}
|
||||
{{ if eq ( getenv "HUGO_ENV" ) "production" }}
|
||||
{{ with .Site.Params.cdn_url }}
|
||||
{{ $cdn_url = .}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ .Scratch.Set "cdn_url" $cdn_url }}
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="robots" content="noodp" />
|
||||
{{ with .Site.Params.google_verification }}
|
||||
<meta name="google-site-verification" content="{{ . }}" />
|
||||
{{ end }}
|
||||
{{ with .Site.Params.bing_verification }}
|
||||
<meta name="msvalidate.01" content="{{ . }}" />
|
||||
{{end}}
|
||||
{{ with .Site.Params.yandex_verification }}
|
||||
<meta name="yandex-verification" content="{{ . }}" />
|
||||
{{ end }}
|
||||
{{ with .Site.Params.pinterest_verification }}
|
||||
<meta name="p:domain_verify" content="{{ . }}" />
|
||||
{{ end }}
|
||||
{{ with .Site.Params.baidu_verification }}
|
||||
<meta name=”baidu-site-verification” content="{{ . }}" />
|
||||
{{ end }}
|
||||
{{ if .PrevInSection }}
|
||||
<link rel="prev" href="{{.PrevInSection.Permalink}}" />
|
||||
{{ end }}
|
||||
{{ if .NextInSection}}
|
||||
<link rel="next" href="{{ .NextInSection.Permalink }}" />
|
||||
{{end}}
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
<link rel='shortcut icon' type='image/x-icon' href='/favicon.ico' />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
{{ partial "css" . }}
|
||||
{{ with .OutputFormats.Get "RSS" }}
|
||||
<link rel="alternate" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
<link rel="feed" href="{{ .RelPermalink }}" type="application/rss+xml" title="{{ site.Title }}">
|
||||
{{ end }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
{{ partial "seo_schema" . }}
|
||||
|
|
|
@ -1,17 +1,19 @@
|
|||
<nav class="navbar">
|
||||
<div class="container">
|
||||
<div class="navbar-header header-logo">
|
||||
<a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a>
|
||||
<a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a>
|
||||
</div>
|
||||
|
||||
<div class="menu navbar-right">
|
||||
{{ $currentPage := . }}
|
||||
{{ range .Site.Menus.main }}
|
||||
<a class="menu-item{{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{end}}" href="{{ .URL }}" title="{{ .Title }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
<a href="javascript:void(0);" class="theme-switch"><i class="iconfont icon-sun"></i></a>
|
||||
{{ $currentPage := . }}
|
||||
{{ range .Site.Menus.main }}
|
||||
<a class="menu-item{{ if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{ end }}" href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
<a href="javascript:void(0);" class="theme-switch"><i class="iconfont icon-sun"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<nav class="navbar-mobile" id="nav-mobile" style="display: none">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
|
@ -20,12 +22,12 @@
|
|||
<span></span><span></span><span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="menu" id="mobile-menu">
|
||||
{{ $currentPage := . }}
|
||||
{{ range .Site.Menus.main }}
|
||||
<a class="menu-item{{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{end}}" href="{{ .URL }}" title="{{ .Title }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
|
||||
<div class="menu" id="mobile-menu">
|
||||
{{ $currentPage := . }}
|
||||
{{ range .Site.Menus.main }}
|
||||
<a class="menu-item{{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{ end }}" href="{{ .URL | absLangURL }}" title="{{ .Title }}">{{ .Name }}</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
@ -18,6 +18,5 @@
|
|||
{{ end }}
|
||||
<div class="social-links">
|
||||
{{ partial "social.html" . }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -10,14 +10,14 @@
|
|||
{{ if .IsPage }}
|
||||
|
||||
{{ if $postHasImages }}
|
||||
<link href="//lib.baomitu.com/lightgallery/1.6.12/css/lightgallery.min.css" rel="stylesheet">
|
||||
{{ $vendorscript := slice $jquery $lazysizes $prettify $dynamic $main $lihtGallery $lihtGallery_init | resources.Concat "/js/vendor_gallery.js" | resources.Minify }}
|
||||
<link crossorigin="anonymous" integrity="sha384-yziQACfvCVwLqVFLqkWBYRO3XeA4EqzfXKGwaWnenYn5XzqfJFlFdKEmvutIQdKb" href="https://lib.baomitu.com/lightgallery/1.6.12/css/lightgallery.min.css" rel="stylesheet">
|
||||
{{ $vendorscript := slice $jquery $lazysizes $prettify $dynamic $main $lihtGallery $lihtGallery_init | resources.Concat "/js/vendor_gallery.js" | resources.Minify }}
|
||||
<script src="{{ printf "%s%s" $cdn_url $vendorscript.RelPermalink }}" async="" ></script>
|
||||
{{ else }}
|
||||
{{ $vendorscript := slice $jquery $prettify $dynamic $main | resources.Concat "/js/vendor_no_gallery.js" | resources.Minify }}
|
||||
<script src="{{ printf "%s%s" $cdn_url $vendorscript.RelPermalink }}" async=""></script>
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ else }}
|
||||
{{ $main := slice $jquery $main | resources.Concat "/js/vendor_main.js" | resources.Minify}}
|
||||
<script src="{{ printf "%s%s" $cdn_url $main.RelPermalink }}" async=""></script>
|
||||
|
|
|
@ -1,29 +1,31 @@
|
|||
{{ $pag := $.Paginator }}
|
||||
{{ if gt $pag.TotalPages 1 }}
|
||||
<ul class="pagination">
|
||||
{{ with $pag.First }}
|
||||
{{ end }}
|
||||
|
||||
{{ $.Scratch.Set "__paginator.ellipsed" false }}
|
||||
{{ range $pag.Pagers }}
|
||||
{{ $right := sub .TotalPages .PageNumber }}
|
||||
{{ $showNumber := or (le .PageNumber 1) (eq $right 0) }}
|
||||
{{ $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 3)) (lt .PageNumber (add $pag.PageNumber 3))) }}
|
||||
{{ if $showNumber }}
|
||||
{{ if gt $pag.TotalPages 1 }}
|
||||
<ul class="pagination">
|
||||
{{ with $pag.First }}
|
||||
{{ end }}
|
||||
|
||||
{{ $.Scratch.Set "__paginator.ellipsed" false }}
|
||||
{{ $.Scratch.Set "__paginator.shouldEllipse" false }}
|
||||
{{ else }}
|
||||
{{ $.Scratch.Set "__paginator.shouldEllipse" (not ($.Scratch.Get "__paginator.ellipsed") ) }}
|
||||
{{ $.Scratch.Set "__paginator.ellipsed" true }}
|
||||
{{ end }}
|
||||
{{ if $showNumber }}
|
||||
<li class="page-item {{ if eq . $pag }}active{{ end }}">
|
||||
<span class="page-link">
|
||||
<a href="{{ .URL }}">{{ .PageNumber }}</a></li>
|
||||
</span>
|
||||
{{ else if ($.Scratch.Get "__paginator.shouldEllipse") }}
|
||||
<li class="page-item "><span class="page-link" aria-hidden="true">…</span></li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ range $pag.Pagers }}
|
||||
{{ $right := sub .TotalPages .PageNumber }}
|
||||
{{ $showNumber := or (le .PageNumber 1) (eq $right 0) }}
|
||||
{{ $showNumber := or $showNumber (and (gt .PageNumber (sub $pag.PageNumber 3)) (lt .PageNumber (add $pag.PageNumber 3))) }}
|
||||
{{ if $showNumber }}
|
||||
{{ $.Scratch.Set "__paginator.ellipsed" false }}
|
||||
{{ $.Scratch.Set "__paginator.shouldEllipse" false }}
|
||||
{{ else }}
|
||||
{{ $.Scratch.Set "__paginator.shouldEllipse" (not ($.Scratch.Get "__paginator.ellipsed") ) }}
|
||||
{{ $.Scratch.Set "__paginator.ellipsed" true }}
|
||||
{{ end }}
|
||||
{{ if $showNumber }}
|
||||
<li class="page-item {{ if eq . $pag }}active{{ end }}">
|
||||
<span class="page-link">
|
||||
<a href="{{ .URL }}">{{ .PageNumber }}</a>
|
||||
</span>
|
||||
</li>
|
||||
{{ else if ($.Scratch.Get "__paginator.shouldEllipse") }}
|
||||
<li class="page-item "><span class="page-link" aria-hidden="true">…</span></li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
{{ define "title" }}{{ T "posts" }} - {{ .Site.Title }}{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ $data := .Data }}
|
||||
<div class="post-warp archive">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">- {{ $data.Plural | humanize }}{{ .Title }} -</h2>
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
|
||||
{{- printf "- %s -" (T "posts") -}}
|
||||
</h2>
|
||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||
<h3>{{ .Key }}</h3>
|
||||
|
||||
|
@ -9,10 +13,10 @@
|
|||
<article class="archive-item">
|
||||
<a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
|
||||
<span class="archive-item-date">
|
||||
{{ .Date.Format "2 January 2006" }}
|
||||
{{ .Date.Format (.Site.Params.dateFormatToUse | default "01-02") }}
|
||||
</span>
|
||||
</article>
|
||||
{{ end }} {{ end }}
|
||||
{{ partial "paginator.html" . }}
|
||||
</div>
|
||||
{{end }}
|
||||
{{end }}
|
117
layouts/posts/single.html
Normal file
117
layouts/posts/single.html
Normal file
|
@ -0,0 +1,117 @@
|
|||
{{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ $cdn_url := .Scratch.Get "cdn_url" }}
|
||||
{{ $publish_date := .PublishDate.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
|
||||
{{ $modify_date := .Lastmod.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
|
||||
{{ $author := .Site.Params.author }}
|
||||
{{ if isset .Params "author" }}
|
||||
{{ $author = .Params.author }}
|
||||
{{ end }}
|
||||
|
||||
<article class="post-warp">
|
||||
<header class="post-header">
|
||||
<h1 class="post-title">{{ .Title }}</h1>
|
||||
<div class="post-meta">
|
||||
<a href="{{.Site.BaseURL }}" rel="author">{{ $author }}</a>
|
||||
{{ T "wrote" }}
|
||||
<span class="post-time"><time datetime={{ $publish_date }}>{{ $publish_date }}</time></span>
|
||||
✎
|
||||
{{ T "wordCount" .WordCount }}
|
||||
<i class="iconfont icon-timer"></i>
|
||||
{{ T "readingTime" .ReadingTime }}
|
||||
|
||||
{{ with .Params.categories -}}
|
||||
<span class="post-category">
|
||||
{{ range . }}
|
||||
{{- $name := . -}}
|
||||
{{- with $.Site.GetPage "taxonomy" (printf "categories/%s" $name) | default ($.Site.GetPage "taxonomy" (printf "categories/%s" ($name | urlize))) -}}
|
||||
<i class="iconfont icon-folder"></i>
|
||||
<a href="{{ .Permalink }}">{{ $name }}</a>
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
</span>
|
||||
{{- end }}
|
||||
</div>
|
||||
</header>
|
||||
<div class="post-content">
|
||||
<!--featured_image-->
|
||||
{{ $images := findRE "<img src=\"[^\"|\\\"]*\"" .Content -}}
|
||||
{{ if ge (len $images) 1}}
|
||||
{{ $.Scratch.Set "postHasImages" true }}
|
||||
{{ end }}
|
||||
{{ with .Params.featured_image }}
|
||||
{{ $img := . }}<img src="{{ printf "%s%s" $cdn_url $img }}" class="featured_image">
|
||||
{{ end }}
|
||||
<!-- end featured_image-->
|
||||
|
||||
{{ $reAltIn := "<img src=\"([^\"]+)\" alt=\"([^\"]+)?\" />" }}
|
||||
{{ $reAltOut := ( printf "<figure><img src=\"/images/ring.svg\" data-sizes=\"auto\" data-src=\"%s$1\" alt=\"$2\" class=\"lazyload\"><figcaption class=\"image-caption\">$2</figcaption></figure>" $cdn_url ) }}
|
||||
{{ $altContent := .Content | replaceRE $reAltIn $reAltOut | safeHTML }}
|
||||
{{ $reAltTitleIn := "<img src=\"([^\"]+)\" alt=\"([^\"]+)?\" title=\"([^\"]+)?\" />" }}
|
||||
{{ $reAltTitleOut := ( printf "<figure><img src=\"/images/ring.svg\" data-src=\"%s$1\" data-sizes=\"auto\" alt=\"$2\" title=\"$3\" class=\"lazyload\"><figcaption class=\"image-caption\">$2</figcaption></figure>" $cdn_url ) }}
|
||||
{{ $finalContent := $altContent | replaceRE $reAltTitleIn $reAltTitleOut | safeHTML }}
|
||||
{{ $finalContent }}
|
||||
</div>
|
||||
|
||||
<div class="post-copyright">
|
||||
<p class="copyright-item">
|
||||
<span>{{ T "author" }}:</span>
|
||||
<span><a href="{{.Site.BaseURL }}" rel="author">{{ $author }}</a></span>
|
||||
</p>
|
||||
|
||||
<p class="copyright-item">
|
||||
<span>{{ T "lastMod" }}:</span>
|
||||
<span>{{ $modify_date }}</span>
|
||||
</p>
|
||||
|
||||
<p class="copyright-item">
|
||||
{{ if and ( $.Param "socialShare" ) (gt (len ($.Param "share")) 0) }}
|
||||
<span>{{ T "share" }}:</span>
|
||||
<span>{{ partial "share-links" . }}</span>
|
||||
{{ end }}
|
||||
</p>
|
||||
|
||||
{{ with .Site.Params.license }}
|
||||
<p class="copyright-item">
|
||||
<span>{{ T "license" }}:</span>
|
||||
<span>{{ . | safeHTML }}</span>
|
||||
</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="post-tags">
|
||||
{{ with .Params.tags }}
|
||||
<section>
|
||||
<i class="iconfont icon-icon-tag"></i>{{ T "tag" }}:
|
||||
{{ range . }}
|
||||
<span class="tag">
|
||||
<a href="{{ "tags/" | absURL }}{{ . | urlize }}/">#{{.}}</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ end }}
|
||||
<section>
|
||||
<a href="javascript:window.history.back();">{{ T "back" }}</a></span> ·
|
||||
<span><a href="{{ .Site.BaseURL }}">{{ T "home" }}</a></span>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<div class="post-nav">
|
||||
{{ if .PrevInSection }}
|
||||
<a href="{{.PrevInSection.Permalink}}" class="prev" rel="prev" title="{{ .PrevInSection.Title}}"><i
|
||||
class="iconfont icon-dajiantou"></i> {{ .PrevInSection.Title}}</a>
|
||||
{{ end }}
|
||||
{{ if .NextInSection }}
|
||||
<a href="{{.NextInSection.Permalink}}" class="next" rel="next"
|
||||
title="{{.NextInSection.Title}}">{{.NextInSection.Title}} <i class="iconfont icon-xiaojiantou"></i></a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="post-comment">
|
||||
{{ if ( .Params.showComments | default true ) }}
|
||||
{{ partial "comments" . }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</article>
|
||||
{{- end }}
|
|
@ -3,7 +3,7 @@
|
|||
<url>
|
||||
<loc>{{ .Permalink }}</loc>
|
||||
{{ if not .Lastmod.IsZero }}
|
||||
<lastmod>{{ safeHTML ( .Lastmod.Format"2006-01-02T15:04:05-07:00" ) }}</lastmod>
|
||||
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>
|
||||
{{ end }}
|
||||
{{ with .Sitemap.ChangeFreq }}
|
||||
<changefreq>{{ . }}</changefreq>
|
||||
|
|
28
layouts/taxonomy/list.html
Normal file
28
layouts/taxonomy/list.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
{{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ $taxonomy := .Data.Singular }}
|
||||
{{ $taxonomyName := $taxonomy }}
|
||||
{{ if eq $taxonomy "tag"}}
|
||||
{{ $taxonomyName = (T "tag") }}
|
||||
{{ else if eq $taxonomy "category"}}
|
||||
{{ $taxonomyName = (T "category") }}
|
||||
{{ end }}
|
||||
<div class="post-warp archive">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
|
||||
{{- printf "%s - %s" $taxonomyName .Title -}}
|
||||
</h2>
|
||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||
<h3>{{ .Key }}</h3>
|
||||
{{ range .Pages }}
|
||||
<article class="archive-item">
|
||||
<a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
|
||||
<span class="archive-item-date">
|
||||
{{ .Date.Format (.Site.Params.dateFormatToUse | default "01-02") }}
|
||||
</span>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ partial "paginator.html" . }}
|
||||
</div>
|
||||
{{end }}
|
61
layouts/taxonomy/terms.html
Normal file
61
layouts/taxonomy/terms.html
Normal file
|
@ -0,0 +1,61 @@
|
|||
{{ define "title" }}{{ .Title }} - {{ .Site.Title }}{{ end }}
|
||||
|
||||
{{ define "content" }}
|
||||
{{ $taxonomy := .Data.Singular }}
|
||||
{{ $taxonomysName := $taxonomy }}
|
||||
{{ if eq $taxonomy "tag"}}
|
||||
{{ $taxonomysName = (T "tags") }}
|
||||
{{ else if eq $taxonomy "category"}}
|
||||
{{ $taxonomysName = (T "categories") }}
|
||||
{{ end }}
|
||||
|
||||
{{ $terms := .Data.Terms.ByCount }}
|
||||
{{ $length := len $terms }}
|
||||
{{ $type := .Type }}
|
||||
|
||||
<div class="post-warp {{.Data.Plural}}">
|
||||
<h2 class="post-title" style="text-align:right;padding-bottom:2em">
|
||||
{{- printf "- %s -" $taxonomysName -}}
|
||||
</h2>
|
||||
|
||||
<!-- Categories Page -->
|
||||
{{ if eq $taxonomy "category" }}
|
||||
<div class="categories-card">
|
||||
{{ range $terms }}
|
||||
{{ $term := .Term }}
|
||||
{{ $pages := .Pages }}
|
||||
{{ with $.Site.GetPage "taxonomy" (printf "%s/%s" $type $term) }}
|
||||
<div class="card-item">
|
||||
<div class="categories">
|
||||
<a href="{{ .Permalink }}">
|
||||
<h3> <i class="iconfont icon-folder" style="padding-right: 3px"></i> {{ $term | humanize}} </h3>
|
||||
</a>
|
||||
{{ range first 5 $pages }}
|
||||
<article class="archive-item">
|
||||
<a href="{{ .Permalink }}" class="archive-item-link">{{ .Title }}</a>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ if gt (len $pages) 5 }}
|
||||
<span class="more-post">
|
||||
<a href="{{ .Permalink }}" class="more-post-link">{{ T "More" }} >></a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!-- Tag Cloud Page -->
|
||||
{{ else if eq $taxonomy "tag" }}
|
||||
<div class="tag-cloud-tags">
|
||||
{{ range $.Site.Taxonomies.tags.ByCount }}
|
||||
{{ if .Name }}
|
||||
<a href="/tags/{{ .Name | urlize}}/"> {{ .Name }} <small>({{ .Count }})</small></a>
|
||||
{{ end }}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
{{ end }}
|
||||
</div>
|
||||
{{end }}
|
Loading…
Reference in a new issue