Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce798a32a9 | ||
|
|
609d43b088 | ||
|
|
797949b37f | ||
|
|
539c39d69a | ||
|
|
f8466d94d2 | ||
|
|
43e074364c | ||
|
|
b2157bdf78 | ||
|
|
23607527e4 | ||
|
|
54a8ace564 | ||
|
|
b3fbe78ca5 | ||
|
|
2cb5ba683b | ||
|
|
5a8607e4a8 | ||
|
|
eafcf894c8 | ||
|
|
0b9f6c36ad | ||
|
|
04bf1956b9 | ||
|
|
6c7d42d45a | ||
|
|
2cda779706 | ||
|
|
4948a3723e | ||
|
|
43224bd39a | ||
|
|
4e7865c185 | ||
|
|
2f9306502d | ||
|
|
5b0d6fdf7d | ||
|
|
65cd7f586f | ||
|
|
f398fb9dd1 | ||
|
|
9bb3165ff0 | ||
|
|
405e84291a | ||
|
|
800f815988 | ||
|
|
255abd5c88 | ||
|
|
f53fc128bd | ||
|
|
188e49ef41 | ||
|
|
76dc61f0d5 | ||
|
|
03ee3369e1 | ||
|
|
21da06e448 | ||
|
|
20bf719411 | ||
|
|
bdb9e7fc00 | ||
|
|
5c98a38a80 | ||
|
|
bda734fb23 | ||
|
|
70bcf9cbe0 |
@@ -4,7 +4,7 @@ body:
|
|||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
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/).
|
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/).
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: what-happened
|
id: what-happened
|
||||||
attributes:
|
attributes:
|
||||||
|
|||||||
@@ -127,10 +127,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Menu style */
|
/* Menu style */
|
||||||
.menu {
|
#main-menu {
|
||||||
padding-left: 0;
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
flex-direction: column;
|
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
@@ -141,13 +139,15 @@
|
|||||||
margin: 0 calc(var(--container-padding) * -1);
|
margin: 0 calc(var(--container-padding) * -1);
|
||||||
|
|
||||||
padding: 30px 30px;
|
padding: 30px 30px;
|
||||||
|
|
||||||
@include respond(xl) {
|
@include respond(xl) {
|
||||||
padding: 15px 0;
|
padding: 15px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&,
|
&, .menu-bottom-section ol {
|
||||||
.menu-bottom-section {
|
flex-direction: column;
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
|
|
||||||
@include respond(xl) {
|
@include respond(xl) {
|
||||||
gap: 25px;
|
gap: 25px;
|
||||||
}
|
}
|
||||||
@@ -200,17 +200,19 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.menu-bottom-section {
|
&.menu-bottom-section {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
|
|
||||||
|
ol {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
padding-left: 0;
|
||||||
width: 100%;
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.social-menu {
|
.menu-social {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|||||||
+8
-2
@@ -51,6 +51,12 @@ params:
|
|||||||
issueTerm: pathname
|
issueTerm: pathname
|
||||||
label:
|
label:
|
||||||
|
|
||||||
|
beaudar:
|
||||||
|
repo:
|
||||||
|
issueTerm: pathname
|
||||||
|
label:
|
||||||
|
theme:
|
||||||
|
|
||||||
remark42:
|
remark42:
|
||||||
host:
|
host:
|
||||||
site:
|
site:
|
||||||
@@ -64,7 +70,7 @@ params:
|
|||||||
clientSecret:
|
clientSecret:
|
||||||
autoCreateIssue: false
|
autoCreateIssue: false
|
||||||
|
|
||||||
# Waline client configuration see: https://waline.js.org/en/reference/client.html
|
# Waline client configuration see: https://waline.js.org/en/reference/client/props.html
|
||||||
waline:
|
waline:
|
||||||
serverURL:
|
serverURL:
|
||||||
lang:
|
lang:
|
||||||
@@ -75,9 +81,9 @@ params:
|
|||||||
requiredMeta:
|
requiredMeta:
|
||||||
- nick
|
- nick
|
||||||
- mail
|
- mail
|
||||||
placeholder:
|
|
||||||
locale:
|
locale:
|
||||||
admin: Admin
|
admin: Admin
|
||||||
|
placeholder:
|
||||||
|
|
||||||
twikoo:
|
twikoo:
|
||||||
envId:
|
envId:
|
||||||
|
|||||||
+6
-6
@@ -21,17 +21,17 @@ PhotoSwipe:
|
|||||||
type: style
|
type: style
|
||||||
|
|
||||||
KaTeX:
|
KaTeX:
|
||||||
- src: https://cdn.jsdelivr.net/npm/[email protected]5.6/dist/katex.min.css
|
- src: https://cdn.jsdelivr.net/npm/[email protected]6.9/dist/katex.min.css
|
||||||
integrity: sha256-J+iAE0sgH8QSz9hpcDxXIftnj65JEZgNhGcgReTTK9s=
|
integrity: sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV
|
||||||
type: style
|
type: style
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/[email protected]5.6/dist/katex.min.js
|
- src: https://cdn.jsdelivr.net/npm/[email protected]6.9/dist/katex.min.js
|
||||||
integrity: sha256-InsNdER1b2xUewP+pKCUJpkhiqwHgqiPXDlIk7GzBu4=
|
integrity: sha384-XjKyOOlGwcjNTAIQHIpgOno0Hl1YQqzUOEleOLALmuqehneUG+vnGctmUb0ZY0l8
|
||||||
type: script
|
type: script
|
||||||
defer: true
|
defer: true
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/[email protected]5.6/dist/contrib/auto-render.min.js
|
- src: https://cdn.jsdelivr.net/npm/[email protected]6.9/dist/contrib/auto-render.min.js
|
||||||
integrity: sha256-y39Mpg7V3D4lhBX4x6O0bUqTV4pSrfgwEfGKfxkOdgI=
|
integrity: sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05
|
||||||
type: script
|
type: script
|
||||||
defer: true
|
defer: true
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
Example site modified from https://github.com/gohugoio/hugoBasicExample
|
This is an example site used for solely for testing purposes. **It is not meant to be used as a template for your site**.
|
||||||
|
|
||||||
|
To create a new site, please use the starter template: [CaiJimmy/hugo-theme-stack-starter](https://github.com/CaiJimmy/hugo-theme-stack-starter/)
|
||||||
@@ -15,7 +15,7 @@ menu:
|
|||||||
icon: user
|
icon: user
|
||||||
---
|
---
|
||||||
|
|
||||||
Written in Go, Hugo is an open source static site generator available under the [Apache Licence 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.
|
Written in Go, Hugo is an open source static site generator available under the [Apache License 2.0.](https://github.com/gohugoio/hugo/blob/master/LICENSE) Hugo supports TOML, YAML and JSON data file types, Markdown and HTML content files and uses shortcodes to add rich content. Other notable features are taxonomies, multilingual mode, image processing, custom output formats, HTML/CSS/JS minification and support for Sass SCSS workflows.
|
||||||
|
|
||||||
Hugo makes use of a variety of open source projects including:
|
Hugo makes use of a variety of open source projects including:
|
||||||
|
|
||||||
@@ -29,6 +29,6 @@ Hugo is ideal for blogs, corporate websites, creative portfolios, online magazin
|
|||||||
|
|
||||||
Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
|
Hugo is for people who want to hand code their own website without worrying about setting up complicated runtimes, dependencies and databases.
|
||||||
|
|
||||||
Websites built with Hugo are extremelly fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
|
Websites built with Hugo are extremely fast, secure and can be deployed anywhere including, AWS, GitHub Pages, Heroku, Netlify and any other hosting provider.
|
||||||
|
|
||||||
Learn more and contribute on [GitHub](https://github.com/gohugoio).
|
Learn more and contribute on [GitHub](https://github.com/gohugoio).
|
||||||
|
|||||||
@@ -21,17 +21,17 @@ In this example we will be using [KaTeX](https://katex.org/)
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
- To enable KaTex globally set the parameter `math` to `true` in a project's configuration
|
- To enable KaTeX globally set the parameter `math` to `true` in a project's configuration
|
||||||
- To enable KaTex on a per page basis include the parameter `math: true` in content files
|
- To enable KaTeX on a per page basis include the parameter `math: true` in content files
|
||||||
|
|
||||||
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
|
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
|
||||||
|
|
||||||
{{< math.inline >}}
|
{{< math.inline >}}
|
||||||
{{ if or .Page.Params.math .Site.Params.math }}
|
{{ if or .Page.Params.math .Site.Params.math }}
|
||||||
<!-- KaTeX -->
|
<!-- KaTeX -->
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.css" integrity="sha384-zB1R0rpPzHqg7Kpt0Aljp8JPLqbXI3bhnPWROx27a9N0Ll6ZP/+DiW/UqRcLbRjq" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css" integrity="sha384-n8MVd4RsNIU0tAv4ct0nTaAbDJwPJzDEaqSD1odI+WdtXRGWt2kTvGFasHpSy3SV" crossorigin="anonymous">
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/katex.min.js" integrity="sha384-y23I5Q6l+B6vatafAwxRu/0oK/79VlbSz7Q9aiSZUvyWYIYsd+qj+o24G5ZU2zJz" crossorigin="anonymous"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js" integrity="sha384-XjKyOOlGwcjNTAIQHIpgOno0Hl1YQqzUOEleOLALmuqehneUG+vnGctmUb0ZY0l8" crossorigin="anonymous"></script>
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js" integrity="sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{</ math.inline >}}
|
{{</ math.inline >}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
baseurl: https://example.com
|
baseurl: https://example.com
|
||||||
languageCode: en-us
|
languageCode: en-us
|
||||||
theme: hugo-theme-stack
|
theme: hugo-theme-stack
|
||||||
paginate: 5
|
paginate: 3
|
||||||
title: Example Site
|
title: Example Site
|
||||||
copyright: Example Person
|
copyright: Example Person
|
||||||
|
|
||||||
|
# Theme i18n support
|
||||||
|
# Available values: ar, bn, ca, de, el, en, es, fr, hu, id, it, ja, ko, nl, pt-br, th, uk, zh-cn, zh-hk, zh-tw
|
||||||
|
DefaultContentLanguage: en
|
||||||
|
|
||||||
|
# Set hasCJKLanguage to true if DefaultContentLanguage is in [zh-cn ja ko]
|
||||||
|
# This will make .Summary and .WordCount behave correctly for CJK languages.
|
||||||
|
hasCJKLanguage: false
|
||||||
|
|
||||||
languages:
|
languages:
|
||||||
en:
|
en:
|
||||||
languageName: English
|
languageName: English
|
||||||
@@ -26,19 +34,13 @@ languages:
|
|||||||
params:
|
params:
|
||||||
description: وصف تجريبي
|
description: وصف تجريبي
|
||||||
|
|
||||||
# Change it to your Disqus shortname before using
|
services:
|
||||||
disqusShortname: hugo-theme-stack
|
# Change it to your Disqus shortname before using
|
||||||
|
disqus:
|
||||||
# GA Tracking ID
|
shortname: "hugo-theme-stack"
|
||||||
googleAnalytics:
|
# GA Tracking ID
|
||||||
|
googleAnalytics:
|
||||||
# Theme i18n support
|
id:
|
||||||
# Available values: ar, bn, ca, de, el, en, es, fr, hu, id, it, ja, ko, nl, pt-br, th, uk, zh-cn, zh-hk, zh-tw
|
|
||||||
DefaultContentLanguage: en
|
|
||||||
|
|
||||||
# Set hasCJKLanguage to true if DefaultContentLanguage is in [zh-cn ja ko]
|
|
||||||
# This will make .Summary and .WordCount behave correctly for CJK languages.
|
|
||||||
hasCJKLanguage: false
|
|
||||||
|
|
||||||
permalinks:
|
permalinks:
|
||||||
post: /p/:slug/
|
post: /p/:slug/
|
||||||
@@ -91,6 +93,12 @@ params:
|
|||||||
issueTerm: pathname
|
issueTerm: pathname
|
||||||
label:
|
label:
|
||||||
|
|
||||||
|
beaudar:
|
||||||
|
repo:
|
||||||
|
issueTerm: pathname
|
||||||
|
label:
|
||||||
|
theme:
|
||||||
|
|
||||||
remark42:
|
remark42:
|
||||||
host:
|
host:
|
||||||
site:
|
site:
|
||||||
@@ -195,7 +203,7 @@ params:
|
|||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
### Custom menu
|
### Custom menu
|
||||||
### See https://docs.stack.jimmycai.com/configuration/custom-menu.html
|
### See https://stack.jimmycai.com/config/menu
|
||||||
### To remove about, archive and search page menu item, remove `menu` field from their FrontMatter
|
### To remove about, archive and search page menu item, remove `menu` field from their FrontMatter
|
||||||
menu:
|
menu:
|
||||||
main: []
|
main: []
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Паказаць/схаваць меню
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Цёмны рэжым
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} старонка"
|
||||||
|
few: "{{ .Count }} старонкі"
|
||||||
|
many: "{{ .Count }} старонак"
|
||||||
|
other: "{{ .Count }} старонкі"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Раздзел
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Падраздзел
|
||||||
|
few: Падраздзелы
|
||||||
|
many: Падраздзелы
|
||||||
|
other: Падраздзелы
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Назад
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Таксама рэкамендуем
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Абноўлена
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Змест
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
other: "Час чытання: {{ .Count }} хв."
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Не знойдзена
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Запытваемая старонка не існуе
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Архівы
|
||||||
|
more:
|
||||||
|
other: Яшчэ
|
||||||
|
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Тэгі
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Пошук
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Увядзіце нешта...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "Знайдзена #PAGES_COUNT старонак (за #TIME_SECONDS с.)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Створана пры дапамозе {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Тэма {{ .Theme }}, дызайн {{ .DesignedBy }}
|
||||||
+5
-5
@@ -1,5 +1,5 @@
|
|||||||
toggleMenu:
|
toggleMenu:
|
||||||
other: Toggle Menu
|
other: Ocultar menú
|
||||||
|
|
||||||
darkMode:
|
darkMode:
|
||||||
other: Modo oscuro
|
other: Modo oscuro
|
||||||
@@ -27,11 +27,11 @@ article:
|
|||||||
other: Contenidos relacionados
|
other: Contenidos relacionados
|
||||||
|
|
||||||
lastUpdatedOn:
|
lastUpdatedOn:
|
||||||
other: Última vez actualizado
|
other: Última actualización
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minuto a leer"
|
one: "Tiempo de lectura {{ .Count }} minuto"
|
||||||
other: "{{ .Count }} minutos a leer"
|
other: "Tiempo de lectura {{ .Count }} minutos"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title:
|
||||||
@@ -60,7 +60,7 @@ search:
|
|||||||
other: Búsqueda
|
other: Búsqueda
|
||||||
|
|
||||||
placeholder:
|
placeholder:
|
||||||
other: Teclea algo...
|
other: Escribe algo...
|
||||||
|
|
||||||
resultTitle:
|
resultTitle:
|
||||||
other: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
other: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
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 }} मिनट पढ़ें"
|
||||||
|
other: "{{ .Count }} मिनट पढ़ें"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: 404 नहीं मिला।
|
||||||
|
|
||||||
|
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 }}
|
||||||
+11
-1
@@ -4,6 +4,16 @@ toggleMenu:
|
|||||||
darkMode:
|
darkMode:
|
||||||
other: ダークモード
|
other: ダークモード
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
other: "{{ .Count }} ページ目"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: セクション
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
other: サブセクション
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: 前のページ
|
other: 前のページ
|
||||||
@@ -54,7 +64,7 @@ search:
|
|||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
other: Built with {{ .Generator }}
|
other: "{{ .Generator }} で構築されています。"
|
||||||
|
|
||||||
designedBy:
|
designedBy:
|
||||||
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
toggleMenu:
|
||||||
|
other: Skryť menu
|
||||||
|
|
||||||
|
darkMode:
|
||||||
|
other: Tmavý režim
|
||||||
|
|
||||||
|
list:
|
||||||
|
page:
|
||||||
|
one: "{{ .Count }} stránka"
|
||||||
|
other: "{{ .Count }} stránok"
|
||||||
|
|
||||||
|
section:
|
||||||
|
other: Kategórie
|
||||||
|
|
||||||
|
subsection:
|
||||||
|
one: Podkategória
|
||||||
|
other: Podkategórie
|
||||||
|
|
||||||
|
article:
|
||||||
|
back:
|
||||||
|
other: Späť
|
||||||
|
|
||||||
|
tableOfContents:
|
||||||
|
other: Obsah
|
||||||
|
|
||||||
|
relatedContent:
|
||||||
|
other: Súvisiace
|
||||||
|
|
||||||
|
lastUpdatedOn:
|
||||||
|
other: Naposledy aktualizované
|
||||||
|
|
||||||
|
readingTime:
|
||||||
|
one: "{{ .Count }} minúta"
|
||||||
|
other: "{{ .Count }} minút"
|
||||||
|
|
||||||
|
notFound:
|
||||||
|
title:
|
||||||
|
other: Nenájdené
|
||||||
|
|
||||||
|
subtitle:
|
||||||
|
other: Tato stránka neexistuje
|
||||||
|
|
||||||
|
widget:
|
||||||
|
archives:
|
||||||
|
title:
|
||||||
|
other: Archívy
|
||||||
|
more:
|
||||||
|
other: Viac
|
||||||
|
tagCloud:
|
||||||
|
title:
|
||||||
|
other: Štítky
|
||||||
|
categoriesCloud:
|
||||||
|
title:
|
||||||
|
other: Kategórie
|
||||||
|
|
||||||
|
search:
|
||||||
|
title:
|
||||||
|
other: Hladať
|
||||||
|
|
||||||
|
placeholder:
|
||||||
|
other: Zadajte niečo...
|
||||||
|
|
||||||
|
resultTitle:
|
||||||
|
other: "#PAGES_COUNT stránok (#TIME_SECONDS sekúnd)"
|
||||||
|
|
||||||
|
footer:
|
||||||
|
builtWith:
|
||||||
|
other: Vytvorené pomocou {{ .Generator }}
|
||||||
|
|
||||||
|
designedBy:
|
||||||
|
other: Šablóna {{ .Theme }} od {{ .DesignedBy }}
|
||||||
+8
-1
@@ -4,6 +4,13 @@ toggleMenu:
|
|||||||
darkMode:
|
darkMode:
|
||||||
other: 暗色模式
|
other: 暗色模式
|
||||||
|
|
||||||
|
list:
|
||||||
|
page: "{{ .Count }} 个页面"
|
||||||
|
|
||||||
|
section: 章节
|
||||||
|
|
||||||
|
subsection: 子章节
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back:
|
||||||
other: 返回
|
other: 返回
|
||||||
@@ -54,7 +61,7 @@ search:
|
|||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith:
|
||||||
other: Built with {{ .Generator }}
|
other: 使用 {{ .Generator }} 构建
|
||||||
|
|
||||||
designedBy:
|
designedBy:
|
||||||
other: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
other: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<h{{ .Level }} id="{{ .Anchor }}">
|
||||||
|
<a href="#{{ .Anchor }}">#</a>
|
||||||
|
{{ .Text | safeHTML }}
|
||||||
|
</h{{ .Level }}>
|
||||||
@@ -18,9 +18,9 @@
|
|||||||
<link>{{ .Permalink }}</link>
|
<link>{{ .Permalink }}</link>
|
||||||
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
|
||||||
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
|
||||||
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
|
<language>{{.}}</language>{{end}}{{ with .Site.Params.Author.email }}
|
||||||
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
|
<managingEditor>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Params.Author.email }}
|
||||||
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
<webMaster>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
|
||||||
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
|
||||||
<lastBuildDate>{{ .Date.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" -}}
|
{{- with .OutputFormats.Get "RSS" -}}
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<title>{{ .Title }}</title>
|
<title>{{ .Title }}</title>
|
||||||
<link>{{ .Permalink }}</link>
|
<link>{{ .Permalink }}</link>
|
||||||
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
|
||||||
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
|
{{ with .Site.Params.Author.email }}<author>{{.}}{{ with $.Site.Params.Author.name }} ({{.}}){{end}}</author>{{end}}
|
||||||
<guid>{{ .Permalink }}</guid>
|
<guid>{{ .Permalink }}</guid>
|
||||||
<description>
|
<description>
|
||||||
{{- $image := partial "helper/image" (dict "Context" . "Type" "rss") -}}
|
{{- $image := partial "helper/image" (dict "Context" . "Type" "rss") -}}
|
||||||
|
|||||||
@@ -16,8 +16,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{ with $link.image }}
|
{{ with $link.image }}
|
||||||
|
{{ $permalink := . }}
|
||||||
|
{{ with ($.Resources.GetMatch (printf "%s" (. | safeURL))) }}
|
||||||
|
{{ $permalink = .RelPermalink }}
|
||||||
|
{{ end }}
|
||||||
<div class="article-image">
|
<div class="article-image">
|
||||||
<img src="{{ . }}" loading="lazy">
|
<img src="{{ $permalink }}" loading="lazy">
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{- partial "helper/external" (dict "Context" . "Namespace" "KaTeX") -}}
|
{{- partial "helper/external" (dict "Context" . "Namespace" "KaTeX") -}}
|
||||||
<script>
|
<script>
|
||||||
window.addEventListener("DOMContentLoaded", () => {
|
window.addEventListener("DOMContentLoaded", () => {
|
||||||
renderMathInElement(document.querySelector(`.article-content`), {
|
renderMathInElement(document.body, {
|
||||||
delimiters: [
|
delimiters: [
|
||||||
{ left: "$$", right: "$$", display: true },
|
{ left: "$$", right: "$$", display: true },
|
||||||
{ left: "$", right: "$", display: false },
|
{ left: "$", right: "$", display: false },
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<script
|
||||||
|
src="https://beaudar.lipk.org/client.js"
|
||||||
|
repo="{{ .Site.Params.comments.beaudar.repo }}"
|
||||||
|
issue-term="{{ .Site.Params.comments.beaudar.issueTerm }}"
|
||||||
|
{{ with .Site.Params.comments.beaudar.label }}
|
||||||
|
label="{{ . }}"
|
||||||
|
{{ end }}
|
||||||
|
theme="{{ .Site.Params.comments.beaudar.theme }}"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
async
|
||||||
|
></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.beaudar {
|
||||||
|
max-width: unset;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let beaudarLoaded = false;
|
||||||
|
|
||||||
|
function setBeaudarTheme(theme) {
|
||||||
|
let beaudar = document.querySelector(".beaudar iframe");
|
||||||
|
if (beaudar) {
|
||||||
|
beaudar.contentWindow.postMessage(
|
||||||
|
{
|
||||||
|
type: "set-theme",
|
||||||
|
theme: `github-${theme}`,
|
||||||
|
},
|
||||||
|
"https://beaudar.lipk.org"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
addEventListener("message", (event) => {
|
||||||
|
if (event.origin !== "https://beaudar.lipk.org") return;
|
||||||
|
/// Called when Beaudar is ready
|
||||||
|
beaudarLoaded = true;
|
||||||
|
setBeaudarTheme(document.documentElement.dataset.scheme);
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener("onColorSchemeChange", (e) => {
|
||||||
|
if (!beaudarLoaded) return;
|
||||||
|
setBeaudarTheme(e.detail);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<script src="//cdn.jsdelivr.net/npm/[email protected].11/dist/twikoo.all.min.js"></script>
|
<script src="//cdn.jsdelivr.net/npm/[email protected].21/dist/twikoo.all.min.js"></script>
|
||||||
<div id="tcomment"></div>
|
<div id="tcomment"></div>
|
||||||
<style>
|
<style>
|
||||||
.twikoo {
|
.twikoo {
|
||||||
@@ -13,7 +13,9 @@
|
|||||||
}
|
}
|
||||||
.twikoo .el-input-group__prepend,
|
.twikoo .el-input-group__prepend,
|
||||||
.twikoo .tk-action-icon,
|
.twikoo .tk-action-icon,
|
||||||
|
.twikoo .tk-submit-action-icon,
|
||||||
.twikoo .tk-time,
|
.twikoo .tk-time,
|
||||||
|
.twikoo .tk-comments-no,
|
||||||
.twikoo .tk-comments-count {
|
.twikoo .tk-comments-count {
|
||||||
color: var(--twikoo-body-text-color);
|
color: var(--twikoo-body-text-color);
|
||||||
}
|
}
|
||||||
@@ -28,6 +30,9 @@
|
|||||||
.twikoo .el-button{
|
.twikoo .el-button{
|
||||||
color: var(--twikoo-body-text-color)!important;
|
color: var(--twikoo-body-text-color)!important;
|
||||||
}
|
}
|
||||||
|
.twikoo .el-input__count {
|
||||||
|
color: var(--twikoo-body-text-color) !important;
|
||||||
|
}
|
||||||
.OwO .OwO-body {
|
.OwO .OwO-body {
|
||||||
background-color: var(--body-background) !important;
|
background-color: var(--body-background) !important;
|
||||||
color: var(--body-text-color) !important;
|
color: var(--body-text-color) !important;
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
{{ $description = .Summary }}
|
{{ $description = .Summary }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ return ($description | plainify)}}
|
{{ return (replaceRE "\n" " " $description | plainify) }}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- $ThemeVersion := "3.20.0" -}}
|
{{- $ThemeVersion := "3.25.0" -}}
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<section class="copyright">
|
<section class="copyright">
|
||||||
©
|
©
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
||||||
|
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
<meta name='description' content='{{ $description }}'>
|
<meta name='description' {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
{{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }}
|
{{ with .Params.Keywords }}<meta name="keywords" content="{{ delimit . ", " }}">{{ end }}
|
||||||
|
|
||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partial "data/title" . -}}
|
||||||
<title>{{ $title }}</title>
|
<title>{{ $title }}</title>
|
||||||
|
|
||||||
<link rel='canonical' href='{{ .Permalink }}'>
|
<link rel='canonical' href='{{ .Permalink }}'>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ with .Site.Params.favicon }}
|
{{ with .Site.Params.favicon }}
|
||||||
<link rel="shortcut icon" href="{{ . }}" />
|
<link rel="shortcut icon" href="{{ . | relURL }}" />
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- template "_internal/google_analytics.html" . -}}
|
{{- template "_internal/google_analytics.html" . -}}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
|
|
||||||
<meta property='og:title' content='{{ $title }}'>
|
<meta property='og:title' {{ printf "content=%q" $title | safeHTMLAttr }}>
|
||||||
<meta property='og:description' content='{{ $description }}'>
|
<meta property='og:description' {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
<meta property='og:url' content='{{ .Permalink }}'>
|
<meta property='og:url' content='{{ .Permalink }}'>
|
||||||
<meta property='og:site_name' content='{{ .Site.Title }}'>
|
<meta property='og:site_name' content='{{ .Site.Title }}'>
|
||||||
<meta property='og:type' content='
|
<meta property='og:type' content='
|
||||||
@@ -32,8 +32,8 @@
|
|||||||
<meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/>
|
<meta property='article:modified_time' content='{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}'/>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- if not .Site.LastChange.IsZero -}}
|
{{- if not .Site.Lastmod.IsZero -}}
|
||||||
<meta property='og:updated_time' content='{{ .Site.LastChange.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
|
<meta property='og:updated_time' content='{{ .Site.Lastmod.Format " 2006-01-02T15:04:05-07:00 " | safeHTML }}'/>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
{{- $title := partialCached "data/title" . .RelPermalink -}}
|
||||||
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
{{- $description := partialCached "data/description" . .RelPermalink -}}
|
||||||
|
|
||||||
<meta name="twitter:title" content="{{ $title }}">
|
<meta name="twitter:title" {{ printf "content=%q" $title | safeHTMLAttr }}>
|
||||||
<meta name="twitter:description" content="{{ $description }}">
|
<meta name="twitter:description" {{ printf "content=%q" $description | safeHTMLAttr }}>
|
||||||
|
|
||||||
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" -}}
|
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "opengraph") .RelPermalink "opengraph" -}}
|
||||||
{{- if $image.exists -}}
|
{{- if $image.exists -}}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{- with .Site.Menus.social -}}
|
{{- with .Site.Menus.social -}}
|
||||||
<ol class="social-menu">
|
<ol class="menu-social">
|
||||||
{{ range . }}
|
{{ range . }}
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<a href='{{ .URL }}' {{ 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://stack.jimmycai.com/config/menu" .URL }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ with $icon }}
|
{{ with $icon }}
|
||||||
{{ partial "helper/icon" . }}
|
{{ partial "helper/icon" . }}
|
||||||
@@ -74,19 +74,21 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<li class="menu-bottom-section">
|
||||||
<div class="menu-bottom-section">
|
<ol class="menu">
|
||||||
{{- $currentLanguageCode := .Language.Lang -}}
|
{{- $currentLanguageCode := .Language.Lang -}}
|
||||||
|
{{ if ( compare.Gt .Site.Home.AllTranslations.Len 1 ) }}
|
||||||
{{ with .Site.Home.AllTranslations }}
|
{{ with .Site.Home.AllTranslations }}
|
||||||
<li id="i18n-switch">
|
<li id="i18n-switch">
|
||||||
{{ partial "helper/icon" "language" }}
|
{{ partial "helper/icon" "language" }}
|
||||||
<select name="language" onchange="window.location.href = this.selectedOptions[0].value">
|
<select name="language" title="language" onchange="window.location.href = this.selectedOptions[0].value">
|
||||||
{{ range . }}
|
{{ range . }}
|
||||||
<option value="{{ .Permalink }}" {{ if eq .Language.Lang $currentLanguageCode }}selected{{ end }}>{{ .Language.LanguageName }}</option>
|
<option value="{{ .Permalink }}" {{ if eq .Language.Lang $currentLanguageCode }}selected{{ end }}>{{ .Language.LanguageName }}</option>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ if (default false .Site.Params.colorScheme.toggle) }}
|
{{ if (default false .Site.Params.colorScheme.toggle) }}
|
||||||
<li id="dark-mode-toggle">
|
<li id="dark-mode-toggle">
|
||||||
@@ -95,6 +97,7 @@
|
|||||||
<span>{{ T "darkMode" }}</span>
|
<span>{{ T "darkMode" }}</span>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</ol>
|
||||||
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
</aside>
|
</aside>
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
<aside class="sidebar right-sidebar sticky">
|
<aside class="sidebar right-sidebar sticky">
|
||||||
{{ range $widget := . }}
|
{{ range $widget := . }}
|
||||||
{{ if templates.Exists (printf "partials/widget/%s.html" .type) }}
|
{{ if templates.Exists (printf "partials/widget/%s.html" .type) }}
|
||||||
{{ partial (printf "widget/%s" .type) (dict "Context" $context "Params" .params) }}
|
<!-- Ensure that the `params` is not nil -->
|
||||||
|
{{- $params := default dict .params -}}
|
||||||
|
|
||||||
|
{{ partial (printf "widget/%s" .type) (dict "Context" $context "Params" $params) }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ warnf "Widget %s not found" .type }}
|
{{ warnf "Widget %s not found" .type }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
publish = "exampleSite/public"
|
publish = "exampleSite/public"
|
||||||
|
|
||||||
[build.environment]
|
[build.environment]
|
||||||
HUGO_VERSION = "0.117.0"
|
HUGO_VERSION = "0.124.0"
|
||||||
HUGO_THEME = "repo"
|
HUGO_THEME = "repo"
|
||||||
|
|
||||||
[context.production]
|
[context.production]
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ features = [
|
|||||||
"search",
|
"search",
|
||||||
]
|
]
|
||||||
|
|
||||||
min_version = "0.87.0"
|
min_version = "0.123.0"
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "Jimmy Cai"
|
name = "Jimmy Cai"
|
||||||
|
|||||||
Reference in New Issue
Block a user