mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 03:53:30 +08:00
Compare commits
No commits in common. "master" and "v3.24.2" have entirely different histories.
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -4,7 +4,7 @@ body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report! Please provide as much information as possible and make sure you have checked the [documentation](https://stack.jimmycai.com/guide/).
|
||||
Thanks for taking the time to fill out this bug report! Please provide as much information as possible and make sure you have checked the [documentation](https://stack.jimmycai.com/).
|
||||
- type: textarea
|
||||
id: what-happened
|
||||
attributes:
|
||||
|
@ -131,7 +131,6 @@
|
||||
.article-tags {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
flex-wrap: wrap;
|
||||
|
||||
a {
|
||||
color: var(--accent-color-text);
|
||||
|
@ -67,6 +67,7 @@
|
||||
}
|
||||
|
||||
.article-tags {
|
||||
flex-wrap: wrap;
|
||||
text-transform: unset;
|
||||
}
|
||||
|
||||
@ -221,28 +222,6 @@
|
||||
margin-inline-start: calc((var(--card-padding)) * -1);
|
||||
padding-inline-start: calc(var(--card-padding) - var(--heading-border-size));
|
||||
border-inline-start: var(--heading-border-size) solid var(--accent-color);
|
||||
position: relative;
|
||||
|
||||
a.header-anchor {
|
||||
transition: opacity 0.3s ease;
|
||||
opacity: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: var(--card-padding);
|
||||
text-align: center;
|
||||
color: var(--accent-color);
|
||||
|
||||
&:before {
|
||||
content: "#";
|
||||
}
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
a.header-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
figure {
|
||||
|
@ -212,7 +212,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
.menu-social {
|
||||
.social-menu {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
@ -8,10 +8,6 @@ class StackColorScheme {
|
||||
constructor(toggleEl: HTMLElement) {
|
||||
this.bindMatchMedia();
|
||||
this.currentScheme = this.getSavedScheme();
|
||||
if (window.matchMedia('(prefers-color-scheme: dark)').matches === true)
|
||||
this.systemPreferScheme = 'dark'
|
||||
else
|
||||
this.systemPreferScheme = 'light';
|
||||
|
||||
this.dispatchEvent(document.documentElement.dataset.scheme as colorScheme);
|
||||
|
||||
|
@ -53,14 +53,7 @@ class Search {
|
||||
this.resultTitle = resultTitle;
|
||||
this.resultTitleTemplate = resultTitleTemplate;
|
||||
|
||||
/// Check if there's already value in the search input
|
||||
if (this.input.value.trim() !== '') {
|
||||
this.doSearch(this.input.value.split(' '));
|
||||
}
|
||||
else {
|
||||
this.handleQueryString();
|
||||
}
|
||||
|
||||
this.handleQueryString();
|
||||
this.bindQueryStringChange();
|
||||
this.bindSearchForm();
|
||||
}
|
||||
|
@ -28,7 +28,6 @@ params:
|
||||
src: img/avatar.png
|
||||
|
||||
article:
|
||||
headingAnchor: false
|
||||
math: false
|
||||
toc: true
|
||||
readingTime: true
|
||||
|
@ -1,6 +1,7 @@
|
||||
baseurl: https://example.com/
|
||||
baseurl: https://example.com
|
||||
languageCode: en-us
|
||||
theme: hugo-theme-stack
|
||||
paginate: 3
|
||||
title: Example Site
|
||||
copyright: Example Person
|
||||
|
||||
@ -18,23 +19,20 @@ languages:
|
||||
title: Example Site
|
||||
weight: 1
|
||||
params:
|
||||
sidebar:
|
||||
subtitle: Example description
|
||||
description: Example description
|
||||
zh-cn:
|
||||
languageName: 中文
|
||||
title: 演示站点
|
||||
weight: 2
|
||||
params:
|
||||
sidebar:
|
||||
subtitle: 演示说明
|
||||
description: 演示说明
|
||||
ar:
|
||||
languageName: عربي
|
||||
languagedirection: rtl
|
||||
title: موقع تجريبي
|
||||
weight: 3
|
||||
params:
|
||||
sidebar:
|
||||
subtitle: وصف تجريبي
|
||||
description: وصف تجريبي
|
||||
|
||||
services:
|
||||
# Change it to your Disqus shortname before using
|
||||
@ -44,9 +42,6 @@ services:
|
||||
googleAnalytics:
|
||||
id:
|
||||
|
||||
pagination:
|
||||
pagerSize: 3
|
||||
|
||||
permalinks:
|
||||
post: /p/:slug/
|
||||
page: /:slug/
|
||||
@ -102,7 +97,7 @@ params:
|
||||
repo:
|
||||
issueTerm: pathname
|
||||
label:
|
||||
theme:
|
||||
theme:
|
||||
|
||||
remark42:
|
||||
host:
|
||||
@ -161,7 +156,6 @@ params:
|
||||
repo:
|
||||
clientID:
|
||||
clientSecret:
|
||||
proxy:
|
||||
|
||||
cusdis:
|
||||
host:
|
||||
@ -209,7 +203,7 @@ params:
|
||||
enabled: true
|
||||
|
||||
### Custom menu
|
||||
### See https://stack.jimmycai.com/config/menu
|
||||
### See https://docs.stack.jimmycai.com/configuration/custom-menu.html
|
||||
### To remove about, archive and search page menu item, remove `menu` field from their FrontMatter
|
||||
menu:
|
||||
main: []
|
||||
@ -240,18 +234,6 @@ related:
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
extensions:
|
||||
passthrough:
|
||||
enable: true
|
||||
delimiters:
|
||||
block:
|
||||
- - \[
|
||||
- \]
|
||||
- - $$
|
||||
- $$
|
||||
inline:
|
||||
- - \(
|
||||
- \)
|
||||
renderer:
|
||||
## Set to true if you have HTML content inside Markdown
|
||||
unsafe: true
|
||||
|
@ -68,7 +68,7 @@ search:
|
||||
|
||||
footer:
|
||||
builtWith:
|
||||
other: "مبني باستخدام {{ .Generator }}"
|
||||
other: "مبني بستخدام {{ .Generator }}"
|
||||
|
||||
designedBy:
|
||||
other: "قالب {{ .Theme }} مصمم من {{ .DesignedBy }}"
|
||||
|
73
i18n/bg.yaml
73
i18n/bg.yaml
@ -1,73 +0,0 @@
|
||||
toggleMenu:
|
||||
other: Покажи Меню
|
||||
|
||||
darkMode:
|
||||
other: Тъмен Режим
|
||||
|
||||
list:
|
||||
page:
|
||||
one: "{{ .Count }} страница"
|
||||
other: "{{ .Count }} страници"
|
||||
|
||||
section:
|
||||
other: Секция
|
||||
|
||||
subsection:
|
||||
one: Подсекция
|
||||
other: Подсекции
|
||||
|
||||
article:
|
||||
back:
|
||||
other: Назад
|
||||
|
||||
tableOfContents:
|
||||
other: Съдържание
|
||||
|
||||
relatedContent:
|
||||
other: Свързано Съдържание
|
||||
|
||||
lastUpdatedOn:
|
||||
other: Последна промяна на
|
||||
|
||||
readingTime:
|
||||
one: "{{ .Count }} minute read"
|
||||
other: "{{ .Count }} minute read"
|
||||
|
||||
notFound:
|
||||
title:
|
||||
other: Не е намерено
|
||||
|
||||
subtitle:
|
||||
other: Страницата която търсите не е открита
|
||||
|
||||
widget:
|
||||
archives:
|
||||
title:
|
||||
other: Архиви
|
||||
|
||||
more:
|
||||
other: Повече
|
||||
|
||||
tagCloud:
|
||||
title:
|
||||
other: Тагове
|
||||
categoriesCloud:
|
||||
title:
|
||||
other: Категории
|
||||
|
||||
search:
|
||||
title:
|
||||
other: Търсене
|
||||
|
||||
placeholder:
|
||||
other: Напишете нещо...
|
||||
|
||||
resultTitle:
|
||||
other: "#PAGES_COUNT страници (#TIME_SECONDS секунди)"
|
||||
|
||||
footer:
|
||||
builtWith:
|
||||
other: Създадено с {{ .Generator }}
|
||||
|
||||
designedBy:
|
||||
other: Тема {{ .Theme }} създадена от {{ .DesignedBy }}
|
@ -50,9 +50,6 @@ widget:
|
||||
tagCloud:
|
||||
title:
|
||||
other: Mots clés
|
||||
categoriesCloud:
|
||||
title:
|
||||
other: Catégories
|
||||
|
||||
search:
|
||||
title:
|
||||
|
12
i18n/ja.yaml
12
i18n/ja.yaml
@ -4,16 +4,6 @@ toggleMenu:
|
||||
darkMode:
|
||||
other: ダークモード
|
||||
|
||||
list:
|
||||
page:
|
||||
other: "{{ .Count }} ページ目"
|
||||
|
||||
section:
|
||||
other: セクション
|
||||
|
||||
subsection:
|
||||
other: サブセクション
|
||||
|
||||
article:
|
||||
back:
|
||||
other: 前のページ
|
||||
@ -64,7 +54,7 @@ search:
|
||||
|
||||
footer:
|
||||
builtWith:
|
||||
other: "{{ .Generator }} で構築されています。"
|
||||
other: Built with {{ .Generator }}
|
||||
|
||||
designedBy:
|
||||
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
||||
|
72
i18n/oc.yaml
72
i18n/oc.yaml
@ -1,72 +0,0 @@
|
||||
toggleMenu:
|
||||
other: Alternar menú
|
||||
|
||||
darkMode:
|
||||
other: Mòde fosc
|
||||
|
||||
list:
|
||||
page:
|
||||
one: "{{ .Count }} pagina"
|
||||
other: "{{ .Count }} paginas"
|
||||
|
||||
section:
|
||||
other: Seccion
|
||||
|
||||
subsection:
|
||||
one: Josseccion
|
||||
other: Josseccions
|
||||
|
||||
article:
|
||||
back:
|
||||
other: Tornar
|
||||
|
||||
tableOfContents:
|
||||
other: Taula de contengut
|
||||
|
||||
relatedContent:
|
||||
other: Contenguts relacionats
|
||||
|
||||
lastUpdatedOn:
|
||||
other: Darrièra actualizacion
|
||||
readingTime:
|
||||
one: "{{ .Count }} minuta de lectura"
|
||||
other: "{{ .Count }} minutas de lectura"
|
||||
|
||||
notFound:
|
||||
title:
|
||||
other: Non trobat
|
||||
|
||||
subtitle:
|
||||
other: Aquesta pagina existís pas
|
||||
|
||||
widget:
|
||||
archives:
|
||||
title:
|
||||
other: Archiu
|
||||
|
||||
more:
|
||||
other: Mai
|
||||
|
||||
tagCloud:
|
||||
title:
|
||||
other: Etiquetas
|
||||
categoriesCloud:
|
||||
title:
|
||||
other: Categorias
|
||||
|
||||
search:
|
||||
title:
|
||||
other: Cercar
|
||||
|
||||
placeholder:
|
||||
other: Picatz quicòm...
|
||||
|
||||
resultTitle:
|
||||
other: "#PAGES_COUNT paginas dins (#TIME_SECONDS segons)"
|
||||
|
||||
footer:
|
||||
builtWith:
|
||||
other: Creat amb {{ .Generator }}
|
||||
|
||||
designedBy:
|
||||
other: Tàma {{ .Theme }} concebut per {{ .DesignedBy }}
|
@ -3,43 +3,5 @@
|
||||
<h1 class="article-title">{{ T "notFound.title" }}</h1>
|
||||
<h2 class="article-subtitle">{{ T "notFound.subtitle" }}</h2>
|
||||
</div>
|
||||
|
||||
{{- $query := first 1 (where .Site.Pages "Layout" "==" "search") -}}
|
||||
{{- $searchPage := index $query 0 -}}
|
||||
|
||||
{{- with $searchPage -}}
|
||||
<form action="{{ $searchPage.RelPermalink }}" class="search-form widget" {{ with .OutputFormats.Get "json" -}}data-json="{{ .Permalink }}" {{- end }}>
|
||||
<p>
|
||||
<label>{{ T "search.title" }}</label>
|
||||
<input id="searchInput" name="keyword" required placeholder="{{ T `search.placeholder` }}" />
|
||||
|
||||
<button title="{{ T `search.title` }}">
|
||||
{{ partial "helper/icon" "search" }}
|
||||
</button>
|
||||
</p>
|
||||
</form>
|
||||
|
||||
<div class="search-result">
|
||||
<h3 class="search-result--title section-title"></h3>
|
||||
<div class="search-result--list article-list--compact"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.searchResultTitleTemplate = "{{ T `search.resultTitle` }}"
|
||||
</script>
|
||||
|
||||
{{- $opts := dict "minify" hugo.IsProduction "JSXFactory" "createElement" -}}
|
||||
{{- $searchScript := resources.Get "ts/search.tsx" | js.Build $opts -}}
|
||||
<script type="text/javascript" src="{{ $searchScript.RelPermalink }}" defer></script>
|
||||
|
||||
<script>
|
||||
const wrongUrl = new URL(window.location.href);
|
||||
|
||||
/// Get the search keyword from the wrong URL by removing all slashes and dashes
|
||||
const searchKeyword = wrongUrl.pathname.split(/[/|-]/).join(' ').trim();
|
||||
|
||||
document.getElementById('searchInput').setAttribute('value', searchKeyword);
|
||||
</script>
|
||||
{{- end -}}
|
||||
{{ partialCached "footer/footer" . }}
|
||||
{{ end }}
|
@ -1,6 +0,0 @@
|
||||
<h{{ .Level }} id="{{ .Anchor }}">
|
||||
{{- if site.Params.Article.HeadingAnchor -}}
|
||||
<a href="#{{ .Anchor }}" class="header-anchor"></a>
|
||||
{{- end -}}
|
||||
{{ .Text | safeHTML }}
|
||||
</h{{ .Level }}>
|
@ -22,7 +22,7 @@
|
||||
<managingEditor>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Params.Author.email }}
|
||||
<webMaster>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||
<lastBuildDate>{{ (index $pages.ByLastmod.Reverse 0).Lastmod.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
|
||||
{{- with .OutputFormats.Get "RSS" -}}
|
||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||
{{- end -}}
|
||||
|
@ -32,7 +32,7 @@
|
||||
<div>
|
||||
{{ partial "helper/icon" "date" }}
|
||||
<time class="article-time--published">
|
||||
{{- .Date | time.Format (or .Site.Params.dateFormat.published "Jan 02, 2006") -}}
|
||||
{{- .Date.Format (or .Site.Params.dateFormat.published "Jan 02, 2006") -}}
|
||||
</time>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
@ -12,7 +12,7 @@
|
||||
<section class="article-lastmod">
|
||||
{{ partial "helper/icon" "clock" }}
|
||||
<span>
|
||||
{{ T "article.lastUpdatedOn" }} {{ .Lastmod | time.Format ( or .Site.Params.dateFormat.lastUpdated "Jan 02, 2006 15:04 MST" ) }}
|
||||
{{ T "article.lastUpdatedOn" }} {{ .Lastmod.Format ( or .Site.Params.dateFormat.lastUpdated "Jan 02, 2006 15:04 MST" ) }}
|
||||
</span>
|
||||
</section>
|
||||
{{- end -}}
|
||||
|
@ -16,12 +16,8 @@
|
||||
</div>
|
||||
|
||||
{{ with $link.image }}
|
||||
{{ $permalink := . }}
|
||||
{{ with ($.Resources.GetMatch (printf "%s" (. | safeURL))) }}
|
||||
{{ $permalink = .RelPermalink }}
|
||||
{{ end }}
|
||||
<div class="article-image">
|
||||
<img src="{{ $permalink }}" loading="lazy">
|
||||
<img src="{{ . }}" loading="lazy">
|
||||
</div>
|
||||
{{ end }}
|
||||
</a>
|
||||
|
@ -1,8 +1,7 @@
|
||||
{{- partial "helper/external" (dict "Context" . "Namespace" "KaTeX") -}}
|
||||
<script>
|
||||
window.addEventListener("DOMContentLoaded", () => {
|
||||
const mainArticleElement = document.querySelector(".main-article");
|
||||
renderMathInElement(mainArticleElement, {
|
||||
renderMathInElement(document.querySelector(`.article-content`), {
|
||||
delimiters: [
|
||||
{ left: "$$", right: "$$", display: true },
|
||||
{ left: "$", right: "$", display: false },
|
||||
@ -11,4 +10,4 @@
|
||||
],
|
||||
ignoredClasses: ["gist"]
|
||||
});})
|
||||
</script>
|
||||
</script>
|
@ -2,7 +2,7 @@
|
||||
{{- $disqusjs := .Site.Params.Comments.disqusjs -}}
|
||||
{{- if and (not $pc.Disable) (and $disqusjs.Shortname $disqusjs.ApiKey) -}}
|
||||
|
||||
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | toCSS | minify -}}
|
||||
{{- $style := resources.Get "scss/partials/comments/disqusjs.scss" | resources.ToCSS | minify -}}
|
||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
||||
|
||||
<div class="disqus-container">
|
||||
|
@ -12,7 +12,6 @@
|
||||
data-input-position="{{- default `top` .inputPosition -}}"
|
||||
data-theme="{{- default `light` .lightTheme -}}"
|
||||
data-lang="{{- default `en` .lang -}}"
|
||||
data-loading="{{- .loading -}}"
|
||||
crossorigin="anonymous"
|
||||
async
|
||||
></script>
|
||||
|
@ -15,7 +15,6 @@
|
||||
admin: ["{{- .admin -}}"],
|
||||
distractionFreeMode: false, // Facebook-like distraction free mode
|
||||
id: md5(location.pathname), // Max Location.pathname Legth:75 https://github.com/gitalk/gitalk/issues/102
|
||||
proxy: {{- .proxy -}},
|
||||
});
|
||||
(function () {
|
||||
if (
|
||||
|
@ -1,4 +1,4 @@
|
||||
<script src="//cdn.jsdelivr.net/npm/twikoo@1.6.39/dist/twikoo.all.min.js"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/twikoo@1.6.21/dist/twikoo.all.min.js"></script>
|
||||
<div id="tcomment"></div>
|
||||
<style>
|
||||
.twikoo {
|
||||
|
@ -1,12 +1,12 @@
|
||||
{{- partial "helper/external" (dict "Context" . "Namespace" "Vibrant") -}}
|
||||
|
||||
{{- $opts := dict "minify" hugo.IsProduction -}}
|
||||
{{- $script := resources.Get "ts/main.ts" | js.Build $opts | fingerprint -}}
|
||||
{{- $script := resources.Get "ts/main.ts" | js.Build $opts -}}
|
||||
|
||||
<script type="text/javascript" src="{{ $script.RelPermalink }}" defer></script>
|
||||
|
||||
{{- with resources.Get "ts/custom.ts" -}}
|
||||
{{/* Place your custom script in HUGO_SITE_FOLDER/assets/ts/custom.ts */}}
|
||||
{{- $customScript := . | js.Build $opts | fingerprint -}}
|
||||
{{- $customScript := . | js.Build $opts -}}
|
||||
<script type="text/javascript" src="{{ $customScript.RelPermalink }}" defer></script>
|
||||
{{- end -}}
|
@ -1,4 +1,4 @@
|
||||
{{- $ThemeVersion := "3.30.0" -}}
|
||||
{{- $ThemeVersion := "3.24.2" -}}
|
||||
<footer class="site-footer">
|
||||
<section class="copyright">
|
||||
©
|
||||
|
@ -1,3 +1,3 @@
|
||||
{{ $sass := resources.Get "scss/style.scss" }}
|
||||
{{ $style := $sass | toCSS | minify | resources.Fingerprint "sha256" }}
|
||||
{{ $style := $sass | resources.ToCSS | minify | resources.Fingerprint "sha256" }}
|
||||
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
|
@ -38,7 +38,7 @@
|
||||
</header>
|
||||
|
||||
{{- with .Site.Menus.social -}}
|
||||
<ol class="menu-social">
|
||||
<ol class="social-menu">
|
||||
{{ range . }}
|
||||
<li>
|
||||
<a
|
||||
@ -65,7 +65,7 @@
|
||||
<a href='{{ .URL }}' {{ if eq .Params.newTab true }}target="_blank"{{ end }}>
|
||||
{{ $icon := default .Pre .Params.Icon }}
|
||||
{{ if .Pre }}
|
||||
{{ warnf "Menu item [%s] is using [pre] field to set icon, please use [params.icon] instead.\nMore information: https://stack.jimmycai.com/config/menu" .URL }}
|
||||
{{ warnf "Menu item [%s] is using [pre] field to set icon, please use [params.icon] instead.\nMore information: https://docs.stack.jimmycai.com/configuration/custom-menu.html" .URL }}
|
||||
{{ end }}
|
||||
{{ with $icon }}
|
||||
{{ partial "helper/icon" . }}
|
||||
|
Loading…
Reference in New Issue
Block a user