Compare commits

...
24 Commits
Author SHA1 Message Date
Jimmy Cai 5edd4afaf3 release: 3.18.0 2023-08-15 13:17:22 +02:00
Jimmy CaiandGitHub 41c3033d1a feat(article): add style to <kbd> tag (#862)
* fix: set `unsafe` to true for exampleSite

To display `<kbd>` tag correctly

* feat(article): add style to `kbd` tag

* feat: improve `<kbd>` style
2023-08-15 13:15:32 +02:00
Jimmy CaiandGitHub 4e2e90da4c fix: page translation links overflow (#861)
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/788
2023-08-15 12:46:29 +02:00
Jimmy CaiandGitHub eefa686661 fix: add word-break: break-word; to <a> and <code> (#860)
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/746
2023-08-15 11:47:48 +02:00
Jimmy CaiandGitHub 1668ebc3e4 feat: use .RelPermalink for search JSON (#859)
Avoids CORS problem when the user inputs `baseurl` incorrectly.
2023-08-15 11:40:43 +02:00
Jimmy CaiandGitHub f7e442cabb fix(search): reset lastSearch variable if keywords are empty (#858)
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/832
2023-08-12 13:03:45 +02:00
Jimmy CaiandGitHub cabaf06ef2 fix: custom params on the language top level is deprecated (#857)
* fix: custom params on the language top level is deprecated

New with Hugo 0.112.0

closes #853

* ci: upgrade Netlify CI Hugo version to 0.117.0
2023-08-12 12:20:19 +02:00
26d2859f70 fix: very poor color contrast for default text (#845)
Resolves #754

Co-authored-by: Nick Kocharhook <[email protected]>
2023-08-12 11:57:02 +02:00
RichandGitHub 51e0ec7f99 feat: allow footer copyright to be different to the site title (#839)
* Allow copyright to be different to the site title

* Add copyright to exampleSite
2023-08-12 11:29:56 +02:00
Jimmy Cai 13568d8ff0 release: 3.17.0 2023-07-18 00:07:02 +00:00
SimbaFsandGitHub 2fb534f9a6 feat(i18n): update translations for zh-tw (#786)
* sync with latest

* translate zh-tw
2023-07-15 10:13:16 +08:00
Piotr HalamaandGitHub 58559c5b3f feat(i18n): add missing plural forms for the Polish language (#818)
Add missing plural forms for the Polish language
2023-07-15 09:35:09 +08:00
Tsung-Yu ChanandGitHub 0bc942bb12 fix: remark42 comment system won't show (#799) 2023-07-12 09:37:39 +08:00
WeltolkandGitHub a88fe3f5a7 chore: update twikoo version (#783) 2023-07-12 09:20:25 +08:00
Jacob ZhongandGitHub 1bd4dcd415 fix(sidebar): add padding-bottom to the right sidebar (#765)
Add bottom padding to the right sidebar
2023-07-12 09:12:58 +08:00
Jimmy CaiandGitHub aae9cf67db fix: typo in README: stater -> starter
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/764
2023-02-16 20:07:43 +01:00
Nagakawa YunoandGitHub cb42d2041f fix: KaTeX may render contents in gist under certain conditions (#755)
add gist to katex's ignoredClasses
2023-02-16 20:03:32 +01:00
ttheng3810andGitHub 4272da7ee4 feat(i18n): add footer translation for ZH-TW (#748) 2022-12-29 21:18:14 +01:00
ParasomniaandGitHub d382ca993d fix(comment/utterances): the target origin mismatch recipient window's origin (#735) 2022-12-06 14:55:40 +01:00
rock GandGitHub 3ff06fe033 fix: anchor link need decode (#719) 2022-12-05 21:21:37 +01:00
Anh Nhat TranandGitHub ff7a56a7ac feat(i18n): add vietnamese translation (#717) 2022-12-03 13:27:55 +01:00
Jimmy CaiandGitHub 196116f20d fix: incorrect menu URL when baseURL is a subpath (#713) 2022-10-29 17:28:47 +02:00
Jimmy CaiandGitHub b03390d237 Revert "Merge branch 'canary' into master" (#712)
Revert "Merge branch 'canary' into master (#711)"

This reverts commit 8a597a5c9c.
2022-10-29 17:14:19 +02:00
Jimmy CaiandGitHub 8a597a5c9c Merge branch 'canary' into master (#711)
* refactor(i18n): simplify the structure of the translation file

* chore: prepare repository for v4.0.0-alpha

* chore: modify go.mod to v4

* refactor: migrate theme configuration to TOML

* fix: exampleSite not using correct theme

* feat: add favicon from assets folder

* refactor: drop linear grandient background feature

remove node-vibrant from dependencies

* feat: use Hugo's code block render hook to implement code copy button

Now it can have i18n support

* refactor: delete color.ts

* refactor: delete Emoji support post from example site

* refactor: drop support for `hidden` field in front matter

* feat: upgrade to PhotoSwipe v5

* chore: bump the required hugo version to 0.100.0

* refactor: remove PhotoSwipe from external.yaml

* fix: extra margin in search result

* fix: incorrect markdown heading level in example site

* refactor: remove some usages of `default` in template

No longer needed thanks to Hugo's configuration merge

* fix: one line codeblock style in firefox

closes https://github.com/CaiJimmy/hugo-theme-stack/issues/564

* feat: add style to new codeblock

* feat: i18n support for codeblock copy text

* fix(menu): jitter when closing menu

It's caused by flexbox gap property, which can't animate

* fix(search): long text overflows under the Search icon

closes https://github.com/CaiJimmy/hugo-theme-stack/issues/515
2022-10-29 17:02:24 +02:00
20 changed files with 170 additions and 25 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ Use this template: [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJim
## Demo ## Demo
* Stater template demo: [demo.stack.jimmycai.com](https://demo.stack.jimmycai.com) * Starter template demo: [demo.stack.jimmycai.com](https://demo.stack.jimmycai.com)
* Dev build: [dev.stack.jimmycai.com](https://dev.stack.jimmycai.com) * Dev build: [dev.stack.jimmycai.com](https://dev.stack.jimmycai.com)
## Documentation ## Documentation
+11 -2
View File
@@ -92,16 +92,15 @@
.article-time, .article-time,
.article-translations { .article-translations {
display: flex; display: flex;
align-items: center;
color: var(--card-text-color-tertiary); color: var(--card-text-color-tertiary);
gap: 15px; gap: 15px;
flex-wrap: wrap;
svg { svg {
vertical-align: middle; vertical-align: middle;
width: 20px; width: 20px;
height: 20px; height: 20px;
stroke-width: 1.33; stroke-width: 1.33;
flex-shrink: 0;
} }
time, time,
@@ -117,6 +116,16 @@
} }
} }
.article-time {
flex-wrap: wrap;
}
.article-translations {
& > div {
flex-wrap: wrap;
}
}
.article-category, .article-category,
.article-tags { .article-tags {
display: flex; display: flex;
+15
View File
@@ -264,6 +264,11 @@
font-family: var(--code-font-family); font-family: var(--code-font-family);
} }
a,
code {
word-break: break-word;
}
.gallery { .gallery {
position: relative; position: relative;
display: flex; display: flex;
@@ -418,4 +423,14 @@
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
} }
kbd {
border: 1px solid var(--kbd-border-color);
font-weight: bold;
font-size: 0.9em;
line-height: 1;
padding: 2px 4px;
border-radius: 4px;
display: inline-block;
}
} }
+1
View File
@@ -79,6 +79,7 @@
@include respond(lg) { @include respond(lg) {
padding-top: var(--main-top-padding); padding-top: var(--main-top-padding);
padding-bottom: var(--main-top-padding);
} }
} }
+4 -2
View File
@@ -16,7 +16,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
--accent-color: #34495e; --accent-color: #34495e;
--accent-color-darker: #2c3e50; --accent-color-darker: #2c3e50;
--accent-color-text: #fff; --accent-color-text: #fff;
--body-text-color: #bababa; --body-text-color: #707070;
--tag-border-radius: 4px; --tag-border-radius: 4px;
@@ -56,7 +56,7 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
--card-text-color-main: #000; --card-text-color-main: #000;
--card-text-color-secondary: #747474; --card-text-color-secondary: #747474;
--card-text-color-tertiary: #bababa; --card-text-color-tertiary: #767676;
--card-separator-color: rgba(218, 218, 218, 0.5); --card-separator-color: rgba(218, 218, 218, 0.5);
--card-border-radius: 10px; --card-border-radius: 10px;
@@ -123,6 +123,8 @@ $defaultTagColors: #fff, #fff, #fff, #fff, #fff;
--table-border-color: #dadada; --table-border-color: #dadada;
--tr-even-background-color: #efefee; --tr-even-background-color: #efefee;
--kbd-border-color: #dadada;
&[data-scheme="dark"] { &[data-scheme="dark"] {
--code-background-color: #272822; --code-background-color: #272822;
--code-text-color: rgba(255, 255, 255, 0.9); --code-text-color: rgba(255, 255, 255, 0.9);
+1
View File
@@ -227,6 +227,7 @@ class Search {
Search.updateQueryString(keywords, true); Search.updateQueryString(keywords, true);
if (keywords === '') { if (keywords === '') {
lastSearch = '';
return this.clear(); return this.clear();
} }
+1 -1
View File
@@ -21,7 +21,7 @@ function setupSmoothAnchors() {
aElement.addEventListener("click", clickEvent => { aElement.addEventListener("click", clickEvent => {
clickEvent.preventDefault(); clickEvent.preventDefault();
const targetId = aElement.getAttribute("href").substring(1), const targetId = decodeURI(aElement.getAttribute("href").substring(1)),
target = document.getElementById(targetId) as HTMLElement, target = document.getElementById(targetId) as HTMLElement,
offset = target.getBoundingClientRect().top - document.documentElement.getBoundingClientRect().top; offset = target.getBoundingClientRect().top - document.documentElement.getBoundingClientRect().top;
+8 -4
View File
@@ -3,24 +3,28 @@ languageCode: en-us
theme: hugo-theme-stack theme: hugo-theme-stack
paginate: 5 paginate: 5
title: Example Site title: Example Site
copyright: Example Person
languages: languages:
en: en:
languageName: English languageName: English
title: Example Site title: Example Site
description: Example description
weight: 1 weight: 1
params:
description: Example description
zh-cn: zh-cn:
languageName: 中文 languageName: 中文
title: 演示站点 title: 演示站点
description: 演示说明
weight: 2 weight: 2
params:
description: 演示说明
ar: ar:
languageName: عربي languageName: عربي
languagedirection: rtl languagedirection: rtl
title: موقع تجريبي title: موقع تجريبي
description: وصف تجريبي
weight: 3 weight: 3
params:
description: وصف تجريبي
# Change it to your Disqus shortname before using # Change it to your Disqus shortname before using
disqusShortname: hugo-theme-stack disqusShortname: hugo-theme-stack
@@ -224,7 +228,7 @@ markup:
goldmark: goldmark:
renderer: renderer:
## Set to true if you have HTML content inside Markdown ## Set to true if you have HTML content inside Markdown
unsafe: false unsafe: true
tableOfContents: tableOfContents:
endLevel: 4 endLevel: 4
ordered: true ordered: true
@@ -159,7 +159,7 @@ H<sub>2</sub>O
X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup> X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>
Press <kbd><kbd>CTRL</kbd>+<kbd>ALT</kbd>+<kbd>Delete</kbd></kbd> to end the session. Press <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>Delete</kbd> to end the session.
Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures. Most <mark>salamanders</mark> are nocturnal, and hunt for insects, worms, and other small creatures.
+10 -1
View File
@@ -7,6 +7,8 @@ darkMode:
list: list:
page: page:
one: "{{ .Count }} strona" one: "{{ .Count }} strona"
few: "{{ .Count }} strony"
many: "{{ .Count }} stron"
other: "{{ .Count }} stron" other: "{{ .Count }} stron"
section: section:
@@ -14,7 +16,9 @@ list:
subsection: subsection:
one: Podsekcja one: Podsekcja
other: Podsekcje few: Podsekcje
many: Podsekcji
other: Podsekcji
article: article:
back: back:
@@ -31,6 +35,8 @@ article:
readingTime: readingTime:
one: "Przeczytasz w {{ .Count }} minutę" one: "Przeczytasz w {{ .Count }} minutę"
few: "Przeczytasz w {{ .Count }} minuty"
many: "Przeczytasz w {{ .Count }} minut"
other: "Przeczytasz w {{ .Count }} minut" other: "Przeczytasz w {{ .Count }} minut"
notFound: notFound:
@@ -63,6 +69,9 @@ search:
other: Wpisz coś... other: Wpisz coś...
resultTitle: resultTitle:
one: "#PAGES_COUNT strona (#TIME_SECONDS sekund)"
few: "#PAGES_COUNT strony (#TIME_SECONDS sekund)"
many: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
other: "#PAGES_COUNT stron (#TIME_SECONDS sekund)" other: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
footer: footer:
+74
View File
@@ -0,0 +1,74 @@
toggleMenu:
other: Hiển thị Menu
darkMode:
other: Chế độ nền tối
list:
page:
one: "{{ .Count }} trang"
other: "{{ .Count }} trang"
section:
other: Section
subsection:
one: Subsection
other: Subsections
article:
back:
other: Trở lại
tableOfContents:
other: Mục lục
relatedContent:
other: Bài viết liên quan
lastUpdatedOn:
other: Cập nhật lần cuối
readingTime:
one: "{{ .Count }} phút đọc"
other: "{{ .Count }} phút đọc"
notFound:
title:
other: Không tìm thấy
subtitle:
other: Trang này không tồn tại
widget:
archives:
title:
other: Lưu trữ
more:
other: Còn nữa
tagCloud:
title:
other: Nhãn dán
categoriesCloud:
title:
other: Chuỗi bài
search:
title:
other: Tìm kiếm
placeholder:
other: Nhập từ khoá ...
resultTitle:
other: "#PAGES_COUNT trang (#TIME_SECONDS giây)"
footer:
builtWith:
other: Built with {{ .Generator }}
designedBy:
other: Theme {{ .Theme }} thiết kế bởi {{ .DesignedBy }}
+24
View File
@@ -4,6 +4,18 @@ toggleMenu:
darkMode: darkMode:
other: 夜晚模式 other: 夜晚模式
list:
page:
one: "第 {{ .Count }} 頁"
other: "第 {{ .Count }} 頁"
section:
other: 段落
subsection:
one: 小節
other: 小節
article: article:
back: back:
other: 返回 other: 返回
@@ -18,11 +30,13 @@ article:
other: 最後更新 other: 最後更新
readingTime: readingTime:
one: "閱讀時間: {{ .Count }} 分鐘"
other: "閱讀時間: {{ .Count }} 分鐘" other: "閱讀時間: {{ .Count }} 分鐘"
notFound: notFound:
title: title:
other: 404 錯誤 other: 404 錯誤
subtitle: subtitle:
other: 頁面不存在 other: 頁面不存在
@@ -37,6 +51,9 @@ widget:
tagCloud: tagCloud:
title: title:
other: 標籤雲 other: 標籤雲
categoriesCloud:
title:
other: 分類
search: search:
title: title:
@@ -47,3 +64,10 @@ search:
resultTitle: resultTitle:
other: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)" other: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)"
footer:
builtWith:
other: 使用 {{ .Generator }} 建立
designedBy:
other: 主題 {{ .Theme }} 由 {{ .DesignedBy }} 設計
+2 -2
View File
@@ -1,11 +1,11 @@
{{ define "body-class" }}template-search{{ end }} {{ define "body-class" }}template-search{{ end }}
{{ define "head" }} {{ define "head" }}
{{- with .OutputFormats.Get "json" -}} {{- with .OutputFormats.Get "json" -}}
<link rel="preload" href="{{ .Permalink }}" as="fetch" crossorigin="anonymous"> <link rel="preload" href="{{ .RelPermalink }}" as="fetch" crossorigin="anonymous">
{{- end -}} {{- end -}}
{{ end }} {{ end }}
{{ define "main" }} {{ define "main" }}
<form action="{{ .Permalink }}" class="search-form"{{ with .OutputFormats.Get "json" -}} data-json="{{ .Permalink }}"{{- end }}> <form action="{{ .RelPermalink }}" class="search-form"{{ with .OutputFormats.Get "json" -}} data-json="{{ .RelPermalink }}"{{- end }}>
<p> <p>
<label>{{ T "search.title" }}</label> <label>{{ T "search.title" }}</label>
<input name="keyword" placeholder="{{ T `search.placeholder` }}" /> <input name="keyword" placeholder="{{ T `search.placeholder` }}" />
@@ -7,6 +7,7 @@
{ left: "$", right: "$", display: false }, { left: "$", right: "$", display: false },
{ left: "\\(", right: "\\)", display: false }, { left: "\\(", right: "\\)", display: false },
{ left: "\\[", right: "\\]", display: true } { left: "\\[", right: "\\]", display: true }
] ],
ignoredClasses: ["gist"]
});}) });})
</script> </script>
@@ -13,7 +13,7 @@
show_email_subscription: {{ default true .show_email_subscription }} show_email_subscription: {{ default true .show_email_subscription }}
}; };
function(e, n) { !function(e, n) {
for (var o = 0; o < e.length; o++) { for (var o = 0; o < e.length; o++) {
var r = n.createElement('script'), var r = n.createElement('script'),
c = '.js', c = '.js',
@@ -1,4 +1,4 @@
<script src="//cdn.jsdelivr.net/npm/twikoo@1.5.11/dist/twikoo.all.min.js"></script> <script src="//cdn.jsdelivr.net/npm/twikoo@1.6.11/dist/twikoo.all.min.js"></script>
<div id="tcomment"></div> <div id="tcomment"></div>
<style> <style>
.twikoo { .twikoo {
@@ -16,6 +16,8 @@
</style> </style>
<script> <script>
let utterancesLoaded = false;
function setUtterancesTheme(theme) { function setUtterancesTheme(theme) {
let utterances = document.querySelector('.utterances iframe'); let utterances = document.querySelector('.utterances iframe');
if (utterances) { if (utterances) {
@@ -31,10 +33,14 @@
addEventListener('message', event => { addEventListener('message', event => {
if (event.origin !== 'https://utteranc.es') return; if (event.origin !== 'https://utteranc.es') return;
/// Called when Utterances is ready
utterancesLoaded = true;
setUtterancesTheme(document.documentElement.dataset.scheme) setUtterancesTheme(document.documentElement.dataset.scheme)
}); });
window.addEventListener('onColorSchemeChange', (e) => { window.addEventListener('onColorSchemeChange', (e) => {
if (!utterancesLoaded) return;
setUtterancesTheme(e.detail) setUtterancesTheme(e.detail)
}) })
</script> </script>
+2 -2
View File
@@ -1,11 +1,11 @@
{{- $ThemeVersion := "3.16.0" -}} {{- $ThemeVersion := "3.18.0" -}}
<footer class="site-footer"> <footer class="site-footer">
<section class="copyright"> <section class="copyright">
&copy; &copy;
{{ if and (.Site.Params.footer.since) (ne .Site.Params.footer.since (int (now.Format "2006"))) }} {{ if and (.Site.Params.footer.since) (ne .Site.Params.footer.since (int (now.Format "2006"))) }}
{{ .Site.Params.footer.since }} - {{ .Site.Params.footer.since }} -
{{ end }} {{ end }}
{{ now.Format "2006" }} {{ .Site.Title }} {{ now.Format "2006" }} {{ default .Site.Title .Site.Copyright }}
</section> </section>
<section class="powerby"> <section class="powerby">
+1 -2
View File
@@ -61,9 +61,8 @@
{{ $currentPage := . }} {{ $currentPage := . }}
{{ range .Site.Menus.main }} {{ range .Site.Menus.main }}
{{ $active := or (eq $currentPage.Title .Name) (or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .)) }} {{ $active := or (eq $currentPage.Title .Name) (or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .)) }}
<li {{ if $active }} class='current' {{ end }}> <li {{ if $active }} class='current' {{ end }}>
<a href='{{ .URL | relLangURL }}' {{ if eq .Params.newTab true }}target="_blank"{{ end }}> <a href='{{ .URL }}' {{ if eq .Params.newTab true }}target="_blank"{{ end }}>
{{ $icon := default .Pre .Params.Icon }} {{ $icon := default .Pre .Params.Icon }}
{{ if .Pre }} {{ if .Pre }}
{{ 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 }} {{ 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 }}
+1 -1
View File
@@ -2,7 +2,7 @@
publish = "exampleSite/public" publish = "exampleSite/public"
[build.environment] [build.environment]
HUGO_VERSION = "0.100.2" HUGO_VERSION = "0.117.0"
HUGO_THEME = "repo" HUGO_THEME = "repo"
[context.production] [context.production]