mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2024-11-23 10:21:46 +01:00
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
This commit is contained in:
parent
d60083e055
commit
8a597a5c9c
73 changed files with 892 additions and 1976 deletions
|
@ -5,7 +5,6 @@ date: {{ .Date }}
|
||||||
image:
|
image:
|
||||||
math:
|
math:
|
||||||
license:
|
license:
|
||||||
hidden: false
|
|
||||||
comments: true
|
comments: true
|
||||||
draft: true
|
draft: true
|
||||||
---
|
---
|
|
@ -192,7 +192,6 @@
|
||||||
.article-preview {
|
.article-preview {
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
color: var(--card-text-color-tertiary);
|
color: var(--card-text-color-tertiary);
|
||||||
margin-top: 10px;
|
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,4 +11,4 @@ $text-color: $color;
|
||||||
$name-color: #a6e22e;
|
$name-color: #a6e22e;
|
||||||
$literal-color: #e6db74;
|
$literal-color: #e6db74;
|
||||||
|
|
||||||
@import "common.scss";
|
@import "common.scss";
|
|
@ -286,10 +286,12 @@
|
||||||
line-height: 1.428571429;
|
line-height: 1.428571429;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
padding: var(--card-padding);
|
padding: var(--card-padding);
|
||||||
|
|
||||||
// keep Codeblocks LTR
|
// keep Codeblocks LTR
|
||||||
[dir="rtl"] & {
|
[dir="rtl"] & {
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
color: unset;
|
color: unset;
|
||||||
border: none;
|
border: none;
|
||||||
|
@ -303,15 +305,11 @@
|
||||||
padding: var(--card-padding);
|
padding: var(--card-padding);
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
&:hover {
|
|
||||||
.copyCodeButton {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// keep Codeblocks LTR
|
// keep Codeblocks LTR
|
||||||
[dir="rtl"] & {
|
[dir="rtl"] & {
|
||||||
direction: ltr;
|
direction: ltr;
|
||||||
}
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
margin: initial;
|
margin: initial;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
@ -320,20 +318,30 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.copyCodeButton {
|
.codeblock {
|
||||||
position: absolute;
|
header {
|
||||||
top: calc(var(--card-padding));
|
background-color: var(--card-background-selected);
|
||||||
right: calc(var(--card-padding));
|
padding: 5px var(--card-padding);
|
||||||
background: var(--card-background);
|
display: flex;
|
||||||
border: none;
|
justify-content: space-between;
|
||||||
box-shadow: var(--shadow-l2);
|
box-shadow: var(--shadow-l1);
|
||||||
border-radius: var(--tag-border-radius);
|
|
||||||
padding: 8px 16px;
|
span {
|
||||||
color: var(--card-text-color-main);
|
text-transform: uppercase;
|
||||||
cursor: pointer;
|
font-weight: bold;
|
||||||
font-size: 14px;
|
color: var(--card-text-color-secondary);
|
||||||
opacity: 0;
|
}
|
||||||
transition: opacity 0.3s ease;
|
}
|
||||||
|
|
||||||
|
.codeblock-copy {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
padding: 8px 16px;
|
||||||
|
color: var(--card-text-color-secondary);
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.table-wrapper {
|
.table-wrapper {
|
||||||
|
@ -402,7 +410,7 @@
|
||||||
/// Negative margins
|
/// Negative margins
|
||||||
blockquote,
|
blockquote,
|
||||||
figure,
|
figure,
|
||||||
.highlight,
|
.codeblock,
|
||||||
pre,
|
pre,
|
||||||
.gallery,
|
.gallery,
|
||||||
.video-wrapper,
|
.video-wrapper,
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
|
|
||||||
input {
|
input {
|
||||||
padding: 40px 20px 20px;
|
padding: 40px 20px 20px;
|
||||||
|
padding-inline-end: var(--button-size);
|
||||||
border-radius: var(--card-border-radius);
|
border-radius: var(--card-border-radius);
|
||||||
background-color: var(--card-background);
|
background-color: var(--card-background);
|
||||||
box-shadow: var(--shadow-l1);
|
box-shadow: var(--shadow-l1);
|
||||||
|
@ -78,5 +79,4 @@
|
||||||
height: 20px;
|
height: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
gap: var(--sidebar-element-separation);
|
|
||||||
max-width: none;
|
max-width: none;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -65,6 +64,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.social-menu,
|
||||||
|
.menu {
|
||||||
|
margin-top: var(--sidebar-element-separation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-sidebar {
|
.right-sidebar {
|
||||||
|
|
28
assets/ts/codeblock.ts
Normal file
28
assets/ts/codeblock.ts
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
/**
|
||||||
|
* Copy button for code blocks
|
||||||
|
*/
|
||||||
|
export default () => {
|
||||||
|
const copyButtons = document.querySelectorAll('.codeblock-copy');
|
||||||
|
copyButtons.forEach(button => {
|
||||||
|
const codeblockID = button.getAttribute('data-id'),
|
||||||
|
copyText = button.textContent,
|
||||||
|
copiedText = button.getAttribute('data-copied-text');
|
||||||
|
if (!codeblockID) return;
|
||||||
|
button.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
const codeblock = document.getElementById(codeblockID) as HTMLElement;
|
||||||
|
if (!codeblockID) return;
|
||||||
|
navigator.clipboard.writeText(codeblock.textContent)
|
||||||
|
.then(() => {
|
||||||
|
button.textContent = copiedText;
|
||||||
|
setTimeout(() => {
|
||||||
|
button.textContent = copyText;
|
||||||
|
}, 1000);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
alert(err)
|
||||||
|
console.log('Something went wrong', err);
|
||||||
|
});
|
||||||
|
}, false);
|
||||||
|
});
|
||||||
|
}
|
|
@ -1,63 +0,0 @@
|
||||||
interface colorScheme {
|
|
||||||
hash: string, /// Regenerate color scheme when the image hash is changed
|
|
||||||
DarkMuted: {
|
|
||||||
hex: string,
|
|
||||||
rgb: Number[],
|
|
||||||
bodyTextColor: string
|
|
||||||
},
|
|
||||||
Vibrant: {
|
|
||||||
hex: string,
|
|
||||||
rgb: Number[],
|
|
||||||
bodyTextColor: string
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let colorsCache: { [key: string]: colorScheme } = {};
|
|
||||||
|
|
||||||
if (localStorage.hasOwnProperty('StackColorsCache')) {
|
|
||||||
try {
|
|
||||||
colorsCache = JSON.parse(localStorage.getItem('StackColorsCache'));
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
colorsCache = {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
async function getColor(key: string, hash: string, imageURL: string) {
|
|
||||||
if (!key) {
|
|
||||||
/**
|
|
||||||
* If no key is provided, do not cache the result
|
|
||||||
*/
|
|
||||||
return await Vibrant.from(imageURL).getPalette();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!colorsCache.hasOwnProperty(key) || colorsCache[key].hash !== hash) {
|
|
||||||
/**
|
|
||||||
* If key is provided, but not found in cache, or the hash mismatches => Regenerate color scheme
|
|
||||||
*/
|
|
||||||
const palette = await Vibrant.from(imageURL).getPalette();
|
|
||||||
|
|
||||||
colorsCache[key] = {
|
|
||||||
hash: hash,
|
|
||||||
Vibrant: {
|
|
||||||
hex: palette.Vibrant.hex,
|
|
||||||
rgb: palette.Vibrant.rgb,
|
|
||||||
bodyTextColor: palette.Vibrant.bodyTextColor
|
|
||||||
},
|
|
||||||
DarkMuted: {
|
|
||||||
hex: palette.DarkMuted.hex,
|
|
||||||
rgb: palette.DarkMuted.rgb,
|
|
||||||
bodyTextColor: palette.DarkMuted.bodyTextColor
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Save the result in localStorage */
|
|
||||||
localStorage.setItem('StackColorsCache', JSON.stringify(colorsCache));
|
|
||||||
}
|
|
||||||
|
|
||||||
return colorsCache[key];
|
|
||||||
}
|
|
||||||
|
|
||||||
export {
|
|
||||||
getColor
|
|
||||||
}
|
|
|
@ -1,186 +1,92 @@
|
||||||
declare global {
|
const wrap = (figures: HTMLElement[]) => {
|
||||||
interface Window {
|
const galleryContainer = document.createElement('div');
|
||||||
PhotoSwipe: any;
|
galleryContainer.className = 'gallery';
|
||||||
PhotoSwipeUI_Default: any
|
|
||||||
|
const parentNode = figures[0].parentNode,
|
||||||
|
first = figures[0];
|
||||||
|
|
||||||
|
parentNode.insertBefore(galleryContainer, first)
|
||||||
|
|
||||||
|
for (const figure of figures) {
|
||||||
|
galleryContainer.appendChild(figure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
interface PhotoSwipeItem {
|
export default (container: HTMLElement) => {
|
||||||
w: number;
|
/// The process of wrapping image with figure tag is done using JavaScript instead of only Hugo markdown render hook
|
||||||
h: number;
|
/// because it can not detect whether image is being wrapped by a link or not
|
||||||
src: string;
|
/// and it lead to a invalid HTML construction (<a><figure><img></figure></a>)
|
||||||
msrc: string;
|
const images = container.querySelectorAll('img.gallery-image') as NodeListOf<HTMLImageElement>;
|
||||||
title?: string;
|
for (const img of Array.from(images)) {
|
||||||
el: HTMLElement;
|
/// Images are wrapped with figure tag if the paragraph has only images without texts
|
||||||
}
|
/// This is done to allow inline images within paragraphs
|
||||||
|
const paragraph = img.closest('p');
|
||||||
|
|
||||||
class StackGallery {
|
if (!paragraph || !container.contains(paragraph)) continue;
|
||||||
private galleryUID: number;
|
|
||||||
private items: PhotoSwipeItem[] = [];
|
|
||||||
|
|
||||||
constructor(container: HTMLElement, galleryUID = 1) {
|
if (paragraph.textContent.trim() == '') {
|
||||||
if (window.PhotoSwipe == undefined || window.PhotoSwipeUI_Default == undefined) {
|
/// Once we insert figcaption, this check no longer works
|
||||||
console.error("PhotoSwipe lib not loaded.");
|
/// So we add a class to paragraph to mark it
|
||||||
return;
|
paragraph.classList.add('no-text');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.galleryUID = galleryUID;
|
let isNewLineImage = paragraph.classList.contains('no-text');
|
||||||
|
if (!isNewLineImage) continue;
|
||||||
|
|
||||||
StackGallery.createGallery(container);
|
const hasLink = img.parentElement.tagName == 'A';
|
||||||
this.loadItems(container);
|
|
||||||
this.bindClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
private loadItems(container: HTMLElement) {
|
let el: HTMLElement = img;
|
||||||
this.items = [];
|
/// Wrap image with figure tag, with flex-grow and flex-basis values extracted from img's data attributes
|
||||||
|
const figure = document.createElement('figure');
|
||||||
|
figure.style.setProperty('flex-grow', img.getAttribute('data-flex-grow') || '1');
|
||||||
|
figure.style.setProperty('flex-basis', img.getAttribute('data-flex-basis') || '0');
|
||||||
|
if (hasLink) {
|
||||||
|
/// Wrap <a> if it exists
|
||||||
|
el = img.parentElement;
|
||||||
|
}
|
||||||
|
el.parentElement.insertBefore(figure, el);
|
||||||
|
figure.appendChild(el);
|
||||||
|
|
||||||
const figures = container.querySelectorAll('figure.gallery-image');
|
/// Add figcaption if it exists
|
||||||
|
if (img.hasAttribute('alt')) {
|
||||||
|
const figcaption = document.createElement('figcaption');
|
||||||
|
figcaption.innerText = img.getAttribute('alt');
|
||||||
|
figure.appendChild(figcaption);
|
||||||
|
}
|
||||||
|
|
||||||
for (const el of figures) {
|
/// Wrap img tag with <a> tag if image was not wrapped by <a> tag
|
||||||
const figcaption = el.querySelector('figcaption'),
|
if (!hasLink) {
|
||||||
img = el.querySelector('img');
|
figure.className = 'gallery-image';
|
||||||
|
|
||||||
let aux: PhotoSwipeItem = {
|
const a = document.createElement('a');
|
||||||
w: parseInt(img.getAttribute('width')),
|
a.href = img.src;
|
||||||
h: parseInt(img.getAttribute('height')),
|
a.setAttribute('target', '_blank');
|
||||||
src: img.src,
|
a.setAttribute('data-pswp-width', img.width.toString());
|
||||||
msrc: img.getAttribute('data-thumb') || img.src,
|
a.setAttribute('data-pswp-height', img.height.toString());
|
||||||
el: el
|
img.parentNode.insertBefore(a, img);
|
||||||
}
|
a.appendChild(img);
|
||||||
|
|
||||||
if (figcaption) {
|
|
||||||
aux.title = figcaption.innerHTML;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.items.push(aux);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static createGallery(container: HTMLElement) {
|
const figuresEl = container.querySelectorAll('figure.gallery-image') as NodeListOf<HTMLElement>;
|
||||||
/// The process of wrapping image with figure tag is done using JavaScript instead of only Hugo markdown render hook
|
let currentGallery = [];
|
||||||
/// because it can not detect whether image is being wrapped by a link or not
|
for (const figure of Array.from(figuresEl)) {
|
||||||
/// and it lead to a invalid HTML construction (<a><figure><img></figure></a>)
|
if (!currentGallery.length) {
|
||||||
|
/// First iteration
|
||||||
const images = container.querySelectorAll('img.gallery-image');
|
currentGallery = [figure];
|
||||||
for (const img of Array.from(images)) {
|
|
||||||
/// Images are wrapped with figure tag if the paragraph has only images without texts
|
|
||||||
/// This is done to allow inline images within paragraphs
|
|
||||||
const paragraph = img.closest('p');
|
|
||||||
|
|
||||||
if (!paragraph || !container.contains(paragraph)) continue;
|
|
||||||
|
|
||||||
if (paragraph.textContent.trim() == '') {
|
|
||||||
/// Once we insert figcaption, this check no longer works
|
|
||||||
/// So we add a class to paragraph to mark it
|
|
||||||
paragraph.classList.add('no-text');
|
|
||||||
}
|
|
||||||
|
|
||||||
let isNewLineImage = paragraph.classList.contains('no-text');
|
|
||||||
if (!isNewLineImage) continue;
|
|
||||||
|
|
||||||
const hasLink = img.parentElement.tagName == 'A';
|
|
||||||
|
|
||||||
let el: HTMLElement = img;
|
|
||||||
/// Wrap image with figure tag, with flex-grow and flex-basis values extracted from img's data attributes
|
|
||||||
const figure = document.createElement('figure');
|
|
||||||
figure.style.setProperty('flex-grow', img.getAttribute('data-flex-grow') || '1');
|
|
||||||
figure.style.setProperty('flex-basis', img.getAttribute('data-flex-basis') || '0');
|
|
||||||
if (hasLink) {
|
|
||||||
/// Wrap <a> if it exists
|
|
||||||
el = img.parentElement;
|
|
||||||
}
|
|
||||||
el.parentElement.insertBefore(figure, el);
|
|
||||||
figure.appendChild(el);
|
|
||||||
|
|
||||||
/// Add figcaption if it exists
|
|
||||||
if (img.hasAttribute('alt')) {
|
|
||||||
const figcaption = document.createElement('figcaption');
|
|
||||||
figcaption.innerText = img.getAttribute('alt');
|
|
||||||
figure.appendChild(figcaption);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Wrap img tag with <a> tag if image was not wrapped by <a> tag
|
|
||||||
if (!hasLink) {
|
|
||||||
figure.className = 'gallery-image';
|
|
||||||
|
|
||||||
const a = document.createElement('a');
|
|
||||||
a.href = img.src;
|
|
||||||
a.setAttribute('target', '_blank');
|
|
||||||
img.parentNode.insertBefore(a, img);
|
|
||||||
a.appendChild(img);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else if (figure.previousElementSibling === currentGallery[currentGallery.length - 1]) {
|
||||||
const figuresEl = container.querySelectorAll('figure.gallery-image');
|
/// Adjacent figures
|
||||||
|
currentGallery.push(figure);
|
||||||
let currentGallery = [];
|
|
||||||
|
|
||||||
for (const figure of figuresEl) {
|
|
||||||
if (!currentGallery.length) {
|
|
||||||
/// First iteration
|
|
||||||
currentGallery = [figure];
|
|
||||||
}
|
|
||||||
else if (figure.previousElementSibling === currentGallery[currentGallery.length - 1]) {
|
|
||||||
/// Adjacent figures
|
|
||||||
currentGallery.push(figure);
|
|
||||||
}
|
|
||||||
else if (currentGallery.length) {
|
|
||||||
/// End gallery
|
|
||||||
StackGallery.wrap(currentGallery);
|
|
||||||
currentGallery = [figure];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else if (currentGallery.length) {
|
||||||
if (currentGallery.length > 0) {
|
/// End gallery
|
||||||
StackGallery.wrap(currentGallery);
|
wrap(currentGallery);
|
||||||
|
currentGallery = [figure];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
if (currentGallery.length > 0) {
|
||||||
* Wrap adjacent figure tags with div.gallery
|
wrap(currentGallery);
|
||||||
* @param figures
|
|
||||||
*/
|
|
||||||
public static wrap(figures: HTMLElement[]) {
|
|
||||||
const galleryContainer = document.createElement('div');
|
|
||||||
galleryContainer.className = 'gallery';
|
|
||||||
|
|
||||||
const parentNode = figures[0].parentNode,
|
|
||||||
first = figures[0];
|
|
||||||
|
|
||||||
parentNode.insertBefore(galleryContainer, first)
|
|
||||||
|
|
||||||
for (const figure of figures) {
|
|
||||||
galleryContainer.appendChild(figure);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
public open(index: number) {
|
|
||||||
const pswp = document.querySelector('.pswp') as HTMLDivElement;
|
|
||||||
const ps = new window.PhotoSwipe(pswp, window.PhotoSwipeUI_Default, this.items, {
|
|
||||||
index: index,
|
|
||||||
galleryUID: this.galleryUID,
|
|
||||||
getThumbBoundsFn: (index) => {
|
|
||||||
const thumbnail = this.items[index].el.getElementsByTagName('img')[0],
|
|
||||||
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
|
|
||||||
rect = thumbnail.getBoundingClientRect();
|
|
||||||
|
|
||||||
return { x: rect.left, y: rect.top + pageYScroll, w: rect.width };
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ps.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
private bindClick() {
|
|
||||||
for (const [index, item] of this.items.entries()) {
|
|
||||||
const a = item.el.querySelector('a');
|
|
||||||
|
|
||||||
a.addEventListener('click', (e) => {
|
|
||||||
e.preventDefault();
|
|
||||||
this.open(index);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default StackGallery;
|
|
|
@ -5,8 +5,7 @@
|
||||||
* @website: https://jimmycai.com
|
* @website: https://jimmycai.com
|
||||||
* @link: https://github.com/CaiJimmy/hugo-theme-stack
|
* @link: https://github.com/CaiJimmy/hugo-theme-stack
|
||||||
*/
|
*/
|
||||||
import StackGallery from "ts/gallery";
|
import StackCodeBlock from "ts/codeblock";
|
||||||
import { getColor } from 'ts/color';
|
|
||||||
import menu from 'ts/menu';
|
import menu from 'ts/menu';
|
||||||
import createElement from 'ts/createElement';
|
import createElement from 'ts/createElement';
|
||||||
import StackColorScheme from 'ts/colorScheme';
|
import StackColorScheme from 'ts/colorScheme';
|
||||||
|
@ -22,76 +21,12 @@ let Stack = {
|
||||||
|
|
||||||
const articleContent = document.querySelector('.article-content') as HTMLElement;
|
const articleContent = document.querySelector('.article-content') as HTMLElement;
|
||||||
if (articleContent) {
|
if (articleContent) {
|
||||||
new StackGallery(articleContent);
|
|
||||||
setupSmoothAnchors();
|
setupSmoothAnchors();
|
||||||
setupScrollspy();
|
setupScrollspy();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Add linear gradient background to tile style article
|
|
||||||
*/
|
|
||||||
const articleTile = document.querySelector('.article-list--tile');
|
|
||||||
if (articleTile) {
|
|
||||||
let observer = new IntersectionObserver(async (entries, observer) => {
|
|
||||||
entries.forEach(entry => {
|
|
||||||
if (!entry.isIntersecting) return;
|
|
||||||
observer.unobserve(entry.target);
|
|
||||||
|
|
||||||
const articles = entry.target.querySelectorAll('article.has-image');
|
|
||||||
articles.forEach(async articles => {
|
|
||||||
const image = articles.querySelector('img'),
|
|
||||||
imageURL = image.src,
|
|
||||||
key = image.getAttribute('data-key'),
|
|
||||||
hash = image.getAttribute('data-hash'),
|
|
||||||
articleDetails: HTMLDivElement = articles.querySelector('.article-details');
|
|
||||||
|
|
||||||
const colors = await getColor(key, hash, imageURL);
|
|
||||||
|
|
||||||
articleDetails.style.background = `
|
|
||||||
linear-gradient(0deg,
|
|
||||||
rgba(${colors.DarkMuted.rgb[0]}, ${colors.DarkMuted.rgb[1]}, ${colors.DarkMuted.rgb[2]}, 0.5) 0%,
|
|
||||||
rgba(${colors.Vibrant.rgb[0]}, ${colors.Vibrant.rgb[1]}, ${colors.Vibrant.rgb[2]}, 0.75) 100%)`;
|
|
||||||
})
|
|
||||||
})
|
|
||||||
});
|
|
||||||
|
|
||||||
observer.observe(articleTile)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Add copy button to code block
|
|
||||||
*/
|
|
||||||
const highlights = document.querySelectorAll('.article-content div.highlight');
|
|
||||||
const copyText = `Copy`,
|
|
||||||
copiedText = `Copied!`;
|
|
||||||
|
|
||||||
highlights.forEach(highlight => {
|
|
||||||
const copyButton = document.createElement('button');
|
|
||||||
copyButton.innerHTML = copyText;
|
|
||||||
copyButton.classList.add('copyCodeButton');
|
|
||||||
highlight.appendChild(copyButton);
|
|
||||||
|
|
||||||
const codeBlock = highlight.querySelector('code[data-lang]');
|
|
||||||
if (!codeBlock) return;
|
|
||||||
|
|
||||||
copyButton.addEventListener('click', () => {
|
|
||||||
navigator.clipboard.writeText(codeBlock.textContent)
|
|
||||||
.then(() => {
|
|
||||||
copyButton.textContent = copiedText;
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
copyButton.textContent = copyText;
|
|
||||||
}, 1000);
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
alert(err)
|
|
||||||
console.log('Something went wrong', err);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
new StackColorScheme(document.getElementById('dark-mode-toggle'));
|
new StackColorScheme(document.getElementById('dark-mode-toggle'));
|
||||||
|
StackCodeBlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
143
config.yaml
143
config.yaml
|
@ -1,143 +0,0 @@
|
||||||
module:
|
|
||||||
hugoVersion:
|
|
||||||
extended: true
|
|
||||||
min: "0.87.0"
|
|
||||||
|
|
||||||
params:
|
|
||||||
mainSections:
|
|
||||||
- post
|
|
||||||
featuredImageField: image
|
|
||||||
rssFullContent: true
|
|
||||||
favicon:
|
|
||||||
|
|
||||||
footer:
|
|
||||||
since:
|
|
||||||
customText:
|
|
||||||
|
|
||||||
dateFormat:
|
|
||||||
published: Jan 02, 2006
|
|
||||||
lastUpdated: Jan 02, 2006 15:04 MST
|
|
||||||
|
|
||||||
sidebar:
|
|
||||||
compact: false
|
|
||||||
emoji:
|
|
||||||
subtitle:
|
|
||||||
avatar:
|
|
||||||
enabled: true
|
|
||||||
local: true
|
|
||||||
src: img/avatar.png
|
|
||||||
|
|
||||||
article:
|
|
||||||
math: false
|
|
||||||
toc: true
|
|
||||||
readingTime: true
|
|
||||||
license:
|
|
||||||
enabled: false
|
|
||||||
default: Licensed under CC BY-NC-SA 4.0
|
|
||||||
|
|
||||||
comments:
|
|
||||||
enabled: false
|
|
||||||
provider: disqus
|
|
||||||
|
|
||||||
disqusjs:
|
|
||||||
shortname:
|
|
||||||
apiUrl:
|
|
||||||
apiKey:
|
|
||||||
admin:
|
|
||||||
adminLabel:
|
|
||||||
|
|
||||||
utterances:
|
|
||||||
repo:
|
|
||||||
issueTerm: pathname
|
|
||||||
label:
|
|
||||||
|
|
||||||
remark42:
|
|
||||||
host:
|
|
||||||
site:
|
|
||||||
locale:
|
|
||||||
|
|
||||||
vssue:
|
|
||||||
platform:
|
|
||||||
owner:
|
|
||||||
repo:
|
|
||||||
clientId:
|
|
||||||
clientSecret:
|
|
||||||
autoCreateIssue: false
|
|
||||||
|
|
||||||
# Waline client configuration see: https://waline.js.org/en/reference/client.html
|
|
||||||
waline:
|
|
||||||
serverURL:
|
|
||||||
lang:
|
|
||||||
visitor:
|
|
||||||
avatar:
|
|
||||||
emoji:
|
|
||||||
- https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo
|
|
||||||
requiredMeta:
|
|
||||||
- name
|
|
||||||
- email
|
|
||||||
- url
|
|
||||||
placeholder:
|
|
||||||
locale:
|
|
||||||
admin: Admin
|
|
||||||
|
|
||||||
twikoo:
|
|
||||||
envId:
|
|
||||||
region:
|
|
||||||
path:
|
|
||||||
lang:
|
|
||||||
|
|
||||||
giscus:
|
|
||||||
repo:
|
|
||||||
repoID:
|
|
||||||
category:
|
|
||||||
categoryID:
|
|
||||||
mapping:
|
|
||||||
strict:
|
|
||||||
lightTheme:
|
|
||||||
darkTheme:
|
|
||||||
reactionsEnabled: 1
|
|
||||||
emitMetadata: 0
|
|
||||||
inputPosition:
|
|
||||||
lang:
|
|
||||||
|
|
||||||
gitalk:
|
|
||||||
owner:
|
|
||||||
admin:
|
|
||||||
repo:
|
|
||||||
clientID:
|
|
||||||
clientSecret:
|
|
||||||
|
|
||||||
cusdis:
|
|
||||||
host:
|
|
||||||
id:
|
|
||||||
|
|
||||||
widgets:
|
|
||||||
homepage: []
|
|
||||||
page: []
|
|
||||||
|
|
||||||
opengraph:
|
|
||||||
twitter:
|
|
||||||
# Your Twitter username
|
|
||||||
site:
|
|
||||||
|
|
||||||
# Available values: summary, summary_large_image
|
|
||||||
card: summary_large_image
|
|
||||||
|
|
||||||
defaultImage:
|
|
||||||
opengraph:
|
|
||||||
enabled: false
|
|
||||||
local: false
|
|
||||||
src:
|
|
||||||
|
|
||||||
colorScheme:
|
|
||||||
# Display toggle
|
|
||||||
toggle: true
|
|
||||||
|
|
||||||
# Available values: auto, light, dark
|
|
||||||
default: auto
|
|
||||||
|
|
||||||
imageProcessing:
|
|
||||||
cover:
|
|
||||||
enabled: true
|
|
||||||
content:
|
|
||||||
enabled: true
|
|
3
config/_default/module.toml
Normal file
3
config/_default/module.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[hugoVersion]
|
||||||
|
extended = true
|
||||||
|
min = "0.100.0"
|
52
config/_default/params.toml
Normal file
52
config/_default/params.toml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
# Theme's default configuration
|
||||||
|
mainSections = ["post"]
|
||||||
|
featuredImageField = "image"
|
||||||
|
rssFullContent = true
|
||||||
|
|
||||||
|
[footer]
|
||||||
|
|
||||||
|
[dateFormat]
|
||||||
|
published = "Jan 02, 2006"
|
||||||
|
lastUpdated = "Jan 02, 2006 15:04 MST"
|
||||||
|
|
||||||
|
[sidebar]
|
||||||
|
compact = false
|
||||||
|
|
||||||
|
[sidebar.avatar]
|
||||||
|
enabled = true
|
||||||
|
local = true
|
||||||
|
src = "img/avatar.png"
|
||||||
|
|
||||||
|
[article]
|
||||||
|
math = false
|
||||||
|
toc = true
|
||||||
|
readingTime = true
|
||||||
|
|
||||||
|
[article.license]
|
||||||
|
enabled = false
|
||||||
|
default = "Licensed under CC BY-NC-SA 4.0"
|
||||||
|
|
||||||
|
[comments]
|
||||||
|
enabled = false
|
||||||
|
provider = "disqus"
|
||||||
|
|
||||||
|
[widgets]
|
||||||
|
homepage = []
|
||||||
|
page = []
|
||||||
|
|
||||||
|
[opengraph.twitter]
|
||||||
|
card = "summary_large_image"
|
||||||
|
|
||||||
|
[defaultImage.opengraph]
|
||||||
|
enabled = false
|
||||||
|
local = false
|
||||||
|
|
||||||
|
[colorScheme]
|
||||||
|
toggle = true
|
||||||
|
default = "auto"
|
||||||
|
|
||||||
|
[imageProcessing.cover]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[imageProcessing.content]
|
||||||
|
enabled = true
|
|
@ -1,25 +1,3 @@
|
||||||
Vibrant:
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/node-vibrant@3.1.6/dist/vibrant.min.js
|
|
||||||
integrity: sha256-awcR2jno4kI5X0zL8ex0vi2z+KMkF24hUW8WePSA9HM=
|
|
||||||
type: script
|
|
||||||
|
|
||||||
PhotoSwipe:
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js
|
|
||||||
integrity: sha256-ePwmChbbvXbsO02lbM3HoHbSHTHFAeChekF1xKJdleo=
|
|
||||||
type: script
|
|
||||||
defer: true
|
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js
|
|
||||||
integrity: sha256-UKkzOn/w1mBxRmLLGrSeyB4e1xbrp4xylgAWb3M42pU=
|
|
||||||
type: script
|
|
||||||
defer: true
|
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.min.css
|
|
||||||
type: style
|
|
||||||
|
|
||||||
- src: https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.css
|
|
||||||
type: style
|
|
||||||
|
|
||||||
KaTeX:
|
KaTeX:
|
||||||
- src: https://cdn.jsdelivr.net/npm/katex@0.15.6/dist/katex.min.css
|
- src: https://cdn.jsdelivr.net/npm/katex@0.15.6/dist/katex.min.css
|
||||||
integrity: sha256-J+iAE0sgH8QSz9hpcDxXIftnj65JEZgNhGcgReTTK9s=
|
integrity: sha256-J+iAE0sgH8QSz9hpcDxXIftnj65JEZgNhGcgReTTK9s=
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Example site modified from https://github.com/gohugoio/hugoBasicExample
|
|
BIN
exampleSite/assets/img/favicon.png
Normal file
BIN
exampleSite/assets/img/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1 KiB |
BIN
exampleSite/assets/img/logo.jpg
Normal file
BIN
exampleSite/assets/img/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
|
@ -1,239 +0,0 @@
|
||||||
baseurl: https://example.com
|
|
||||||
languageCode: en-us
|
|
||||||
theme: hugo-theme-stack
|
|
||||||
paginate: 5
|
|
||||||
title: Example Site
|
|
||||||
|
|
||||||
languages:
|
|
||||||
en:
|
|
||||||
languageName: English
|
|
||||||
title: Example Site
|
|
||||||
description: Example description
|
|
||||||
weight: 1
|
|
||||||
zh-cn:
|
|
||||||
languageName: 中文
|
|
||||||
title: 演示站点
|
|
||||||
description: 演示说明
|
|
||||||
weight: 2
|
|
||||||
ar:
|
|
||||||
languageName: عربي
|
|
||||||
languagedirection: rtl
|
|
||||||
title: موقع تجريبي
|
|
||||||
description: وصف تجريبي
|
|
||||||
weight: 3
|
|
||||||
|
|
||||||
# Change it to your Disqus shortname before using
|
|
||||||
disqusShortname: hugo-theme-stack
|
|
||||||
|
|
||||||
# GA Tracking ID
|
|
||||||
googleAnalytics:
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
permalinks:
|
|
||||||
post: /p/:slug/
|
|
||||||
page: /:slug/
|
|
||||||
|
|
||||||
params:
|
|
||||||
mainSections:
|
|
||||||
- post
|
|
||||||
featuredImageField: image
|
|
||||||
rssFullContent: true
|
|
||||||
favicon: # e.g.: favicon placed in `static/favicon.ico` of your site folder, then set this field to `/favicon.ico` (`/` is necessary)
|
|
||||||
|
|
||||||
footer:
|
|
||||||
since: 2020
|
|
||||||
customText:
|
|
||||||
|
|
||||||
dateFormat:
|
|
||||||
published: Jan 02, 2006
|
|
||||||
lastUpdated: Jan 02, 2006 15:04 MST
|
|
||||||
|
|
||||||
sidebar:
|
|
||||||
emoji: 🍥
|
|
||||||
subtitle: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
||||||
avatar:
|
|
||||||
enabled: true
|
|
||||||
local: true
|
|
||||||
src: img/avatar.png
|
|
||||||
|
|
||||||
article:
|
|
||||||
math: false
|
|
||||||
toc: true
|
|
||||||
readingTime: true
|
|
||||||
license:
|
|
||||||
enabled: true
|
|
||||||
default: Licensed under CC BY-NC-SA 4.0
|
|
||||||
|
|
||||||
comments:
|
|
||||||
enabled: true
|
|
||||||
provider: disqus
|
|
||||||
|
|
||||||
disqusjs:
|
|
||||||
shortname:
|
|
||||||
apiUrl:
|
|
||||||
apiKey:
|
|
||||||
admin:
|
|
||||||
adminLabel:
|
|
||||||
|
|
||||||
utterances:
|
|
||||||
repo:
|
|
||||||
issueTerm: pathname
|
|
||||||
label:
|
|
||||||
|
|
||||||
remark42:
|
|
||||||
host:
|
|
||||||
site:
|
|
||||||
locale:
|
|
||||||
|
|
||||||
vssue:
|
|
||||||
platform:
|
|
||||||
owner:
|
|
||||||
repo:
|
|
||||||
clientId:
|
|
||||||
clientSecret:
|
|
||||||
autoCreateIssue: false
|
|
||||||
|
|
||||||
# Waline client configuration see: https://waline.js.org/en/reference/component.html
|
|
||||||
waline:
|
|
||||||
serverURL:
|
|
||||||
lang:
|
|
||||||
pageview:
|
|
||||||
emoji:
|
|
||||||
- https://unpkg.com/@waline/emojis@1.0.1/weibo
|
|
||||||
requiredMeta:
|
|
||||||
- name
|
|
||||||
- email
|
|
||||||
- url
|
|
||||||
locale:
|
|
||||||
admin: Admin
|
|
||||||
placeholder:
|
|
||||||
|
|
||||||
twikoo:
|
|
||||||
envId:
|
|
||||||
region:
|
|
||||||
path:
|
|
||||||
lang:
|
|
||||||
|
|
||||||
# See https://cactus.chat/docs/reference/web-client/#configuration for description of the various options
|
|
||||||
cactus:
|
|
||||||
defaultHomeserverUrl: "https://matrix.cactus.chat:8448"
|
|
||||||
serverName: "cactus.chat"
|
|
||||||
siteName: "" # You must insert a unique identifier here matching the one you registered (See https://cactus.chat/docs/getting-started/quick-start/#register-your-site)
|
|
||||||
|
|
||||||
giscus:
|
|
||||||
repo:
|
|
||||||
repoID:
|
|
||||||
category:
|
|
||||||
categoryID:
|
|
||||||
mapping:
|
|
||||||
lightTheme:
|
|
||||||
darkTheme:
|
|
||||||
reactionsEnabled: 1
|
|
||||||
emitMetadata: 0
|
|
||||||
|
|
||||||
gitalk:
|
|
||||||
owner:
|
|
||||||
admin:
|
|
||||||
repo:
|
|
||||||
clientID:
|
|
||||||
clientSecret:
|
|
||||||
|
|
||||||
cusdis:
|
|
||||||
host:
|
|
||||||
id:
|
|
||||||
widgets:
|
|
||||||
homepage:
|
|
||||||
- type: search
|
|
||||||
- type: archives
|
|
||||||
params:
|
|
||||||
limit: 5
|
|
||||||
- type: categories
|
|
||||||
params:
|
|
||||||
limit: 10
|
|
||||||
- type: tag-cloud
|
|
||||||
params:
|
|
||||||
limit: 10
|
|
||||||
page:
|
|
||||||
- type: toc
|
|
||||||
|
|
||||||
opengraph:
|
|
||||||
twitter:
|
|
||||||
# Your Twitter username
|
|
||||||
site:
|
|
||||||
|
|
||||||
# Available values: summary, summary_large_image
|
|
||||||
card: summary_large_image
|
|
||||||
|
|
||||||
defaultImage:
|
|
||||||
opengraph:
|
|
||||||
enabled: false
|
|
||||||
local: false
|
|
||||||
src:
|
|
||||||
|
|
||||||
colorScheme:
|
|
||||||
# Display toggle
|
|
||||||
toggle: true
|
|
||||||
|
|
||||||
# Available values: auto, light, dark
|
|
||||||
default: auto
|
|
||||||
|
|
||||||
imageProcessing:
|
|
||||||
cover:
|
|
||||||
enabled: true
|
|
||||||
content:
|
|
||||||
enabled: true
|
|
||||||
|
|
||||||
### Custom 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: []
|
|
||||||
|
|
||||||
social:
|
|
||||||
- identifier: github
|
|
||||||
name: GitHub
|
|
||||||
url: https://github.com/CaiJimmy/hugo-theme-stack
|
|
||||||
params:
|
|
||||||
icon: brand-github
|
|
||||||
|
|
||||||
- identifier: twitter
|
|
||||||
name: Twitter
|
|
||||||
url: https://twitter.com
|
|
||||||
params:
|
|
||||||
icon: brand-twitter
|
|
||||||
|
|
||||||
related:
|
|
||||||
includeNewer: true
|
|
||||||
threshold: 60
|
|
||||||
toLower: false
|
|
||||||
indices:
|
|
||||||
- name: tags
|
|
||||||
weight: 100
|
|
||||||
|
|
||||||
- name: categories
|
|
||||||
weight: 200
|
|
||||||
|
|
||||||
markup:
|
|
||||||
goldmark:
|
|
||||||
renderer:
|
|
||||||
## Set to true if you have HTML content inside Markdown
|
|
||||||
unsafe: false
|
|
||||||
tableOfContents:
|
|
||||||
endLevel: 4
|
|
||||||
ordered: true
|
|
||||||
startLevel: 2
|
|
||||||
highlight:
|
|
||||||
noClasses: false
|
|
||||||
codeFences: true
|
|
||||||
guessSyntax: true
|
|
||||||
lineNoStart: 1
|
|
||||||
lineNos: true
|
|
||||||
lineNumbersInTable: true
|
|
||||||
tabWidth: 4
|
|
20
exampleSite/config/_default/config.toml
Normal file
20
exampleSite/config/_default/config.toml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Change baseurl before deploy
|
||||||
|
baseurl = "https://demo.stack.jimmycai.com"
|
||||||
|
languageCode = "en-us"
|
||||||
|
paginate = 5
|
||||||
|
title = "Hugo Theme Stack Starter"
|
||||||
|
theme = "hugo-theme-stack"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Change it to your Disqus shortname before using
|
||||||
|
disqusShortname = "hugo-theme-stack"
|
||||||
|
|
||||||
|
# GA Tracking ID
|
||||||
|
googleAnalytics = ""
|
16
exampleSite/config/_default/languages.toml
Normal file
16
exampleSite/config/_default/languages.toml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# Enable multilanguage site support
|
||||||
|
[en]
|
||||||
|
languageName = "English"
|
||||||
|
title = "Hugo Theme Stack Example Site"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[zh-cn]
|
||||||
|
languageName = "中文"
|
||||||
|
title = "Hugo 主题 Stack 演示站点"
|
||||||
|
weight = 2
|
||||||
|
|
||||||
|
[ar]
|
||||||
|
languageName = "عربي"
|
||||||
|
languagedirection = "rtl"
|
||||||
|
title = "موقع تجريبي"
|
||||||
|
weight = 3
|
18
exampleSite/config/_default/markup.toml
Normal file
18
exampleSite/config/_default/markup.toml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Markdown renderer configuration
|
||||||
|
[goldmark.renderer]
|
||||||
|
# Set it to true if you have HTML content inside Markdown
|
||||||
|
unsafe = false
|
||||||
|
|
||||||
|
[tableOfContents]
|
||||||
|
endLevel = 4
|
||||||
|
ordered = true
|
||||||
|
startLevel = 2
|
||||||
|
|
||||||
|
[highlight]
|
||||||
|
noClasses = false
|
||||||
|
codeFences = true
|
||||||
|
guessSyntax = true
|
||||||
|
lineNoStart = 1
|
||||||
|
lineNos = true
|
||||||
|
lineNumbersInTable = true
|
||||||
|
tabWidth = 4
|
20
exampleSite/config/_default/menu.toml
Normal file
20
exampleSite/config/_default/menu.toml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
### Custom 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
|
||||||
|
main = []
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
identifier = "github"
|
||||||
|
name = "GitHub"
|
||||||
|
url = "https://github.com/CaiJimmy/hugo-theme-stack"
|
||||||
|
|
||||||
|
[social.params]
|
||||||
|
icon = "brand-github"
|
||||||
|
|
||||||
|
[[social]]
|
||||||
|
identifier = "twitter"
|
||||||
|
name = "Twitter"
|
||||||
|
url = "https://twitter.com"
|
||||||
|
|
||||||
|
[social.params]
|
||||||
|
icon = "brand-twitter"
|
106
exampleSite/config/_default/params.toml
Normal file
106
exampleSite/config/_default/params.toml
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
mainSections = ["post"]
|
||||||
|
featuredImageField = "image"
|
||||||
|
rssFullContent = true
|
||||||
|
favicon = "img/favicon.png"
|
||||||
|
|
||||||
|
[footer]
|
||||||
|
since = 2020
|
||||||
|
|
||||||
|
[dateFormat]
|
||||||
|
published = "Jan 02, 2006"
|
||||||
|
lastUpdated = "Jan 02, 2006 15:04 MST"
|
||||||
|
|
||||||
|
[sidebar]
|
||||||
|
emoji = "🍥"
|
||||||
|
subtitle = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
||||||
|
|
||||||
|
[sidebar.avatar]
|
||||||
|
enabled = true
|
||||||
|
local = true
|
||||||
|
src = "img/logo.jpg"
|
||||||
|
|
||||||
|
[article]
|
||||||
|
math = false
|
||||||
|
toc = true
|
||||||
|
readingTime = true
|
||||||
|
|
||||||
|
[article.license]
|
||||||
|
enabled = true
|
||||||
|
default = "Licensed under CC BY-NC-SA 4.0"
|
||||||
|
|
||||||
|
[comments]
|
||||||
|
enabled = true
|
||||||
|
provider = "disqus"
|
||||||
|
|
||||||
|
[comments.disqusjs]
|
||||||
|
|
||||||
|
[comments.utterances]
|
||||||
|
issueTerm = "pathname"
|
||||||
|
|
||||||
|
[comments.remark42]
|
||||||
|
|
||||||
|
[comments.vssue]
|
||||||
|
autoCreateIssue = false
|
||||||
|
|
||||||
|
[comments.waline]
|
||||||
|
emoji = ["https://unpkg.com/@waline/emojis@1.0.1/weibo"]
|
||||||
|
requiredMeta = ["name", "email", "url"]
|
||||||
|
|
||||||
|
[comments.waline.locale]
|
||||||
|
admin = "Admin"
|
||||||
|
|
||||||
|
[comments.twikoo]
|
||||||
|
|
||||||
|
[comments.cactus]
|
||||||
|
defaultHomeserverUrl = "https://matrix.cactus.chat:8448"
|
||||||
|
serverName = "cactus.chat"
|
||||||
|
siteName = ""
|
||||||
|
|
||||||
|
[comments.giscus]
|
||||||
|
reactionsEnabled = 1
|
||||||
|
emitMetadata = 0
|
||||||
|
|
||||||
|
[comments.gitalk]
|
||||||
|
|
||||||
|
[comments.cusdis]
|
||||||
|
|
||||||
|
[[widgets.homepage]]
|
||||||
|
type = "search"
|
||||||
|
|
||||||
|
[[widgets.homepage]]
|
||||||
|
type = "archives"
|
||||||
|
|
||||||
|
[widgets.homepage.params]
|
||||||
|
limit = 5
|
||||||
|
|
||||||
|
[[widgets.homepage]]
|
||||||
|
type = "categories"
|
||||||
|
|
||||||
|
[widgets.homepage.params]
|
||||||
|
limit = 10
|
||||||
|
|
||||||
|
[[widgets.homepage]]
|
||||||
|
type = "tag-cloud"
|
||||||
|
|
||||||
|
[widgets.homepage.params]
|
||||||
|
limit = 10
|
||||||
|
|
||||||
|
[[widgets.page]]
|
||||||
|
type = "toc"
|
||||||
|
|
||||||
|
[opengraph.twitter]
|
||||||
|
card = "summary_large_image"
|
||||||
|
|
||||||
|
[defaultImage.opengraph]
|
||||||
|
enabled = false
|
||||||
|
local = false
|
||||||
|
|
||||||
|
[colorScheme]
|
||||||
|
toggle = true
|
||||||
|
default = "auto"
|
||||||
|
|
||||||
|
[imageProcessing.cover]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[imageProcessing.content]
|
||||||
|
enabled = true
|
3
exampleSite/config/_default/permalinks.toml
Normal file
3
exampleSite/config/_default/permalinks.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Permalinks format of each content section
|
||||||
|
post = "/p/:slug/"
|
||||||
|
page = "/:slug/"
|
12
exampleSite/config/_default/related.toml
Normal file
12
exampleSite/config/_default/related.toml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
# Related contents configuration
|
||||||
|
includeNewer = true
|
||||||
|
threshold = 60
|
||||||
|
toLower = false
|
||||||
|
|
||||||
|
[[indices]]
|
||||||
|
name = "tags"
|
||||||
|
weight = 100
|
||||||
|
|
||||||
|
[[indices]]
|
||||||
|
name = "categories"
|
||||||
|
weight = 200
|
|
@ -1,50 +0,0 @@
|
||||||
+++
|
|
||||||
author = "Hugo Authors"
|
|
||||||
title = "Emoji Support"
|
|
||||||
date = "2019-03-05"
|
|
||||||
description = "Guide to emoji usage in Hugo"
|
|
||||||
categories = [
|
|
||||||
"Test"
|
|
||||||
]
|
|
||||||
tags = [
|
|
||||||
"emoji",
|
|
||||||
]
|
|
||||||
image = "the-creative-exchange-d2zvqp3fpro-unsplash.jpg"
|
|
||||||
+++
|
|
||||||
|
|
||||||
Emoji can be enabled in a Hugo project in a number of ways.
|
|
||||||
<!--more-->
|
|
||||||
The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
|
|
||||||
|
|
||||||
To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
|
|
||||||
|
|
||||||
<p><span class="nowrap"><span class="emojify">🙈</span> <code>:see_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙉</span> <code>:hear_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙊</span> <code>:speak_no_evil:</code></span></p>
|
|
||||||
<br>
|
|
||||||
|
|
||||||
The [Emoji cheat sheet](http://www.emoji-cheat-sheet.com/) is a useful reference for emoji shorthand codes.
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
**N.B.** The above steps enable Unicode Standard emoji characters and sequences in Hugo, however the rendering of these glyphs depends on the browser and the platform. To style the emoji you can either use a third party emoji font or a font stack; e.g.
|
|
||||||
|
|
||||||
{{< highlight html >}}
|
|
||||||
.emoji {
|
|
||||||
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
|
|
||||||
}
|
|
||||||
{{< /highlight >}}
|
|
||||||
|
|
||||||
{{< css.inline >}}
|
|
||||||
<style>
|
|
||||||
.emojify {
|
|
||||||
font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
|
|
||||||
font-size: 2rem;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
@media screen and (max-width:650px) {
|
|
||||||
.nowrap {
|
|
||||||
display: block;
|
|
||||||
margin: 25px 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
{{< /css.inline >}}
|
|
Binary file not shown.
Before Width: | Height: | Size: 34 KiB |
|
@ -42,12 +42,12 @@ Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sap
|
||||||
|
|
||||||
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
|
The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a `footer` or `cite` element, and optionally with in-line changes such as annotations and abbreviations.
|
||||||
|
|
||||||
#### Blockquote without attribution
|
### Blockquote without attribution
|
||||||
|
|
||||||
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
> Tiam, ad mint andaepu dandae nostion secatur sequo quae.
|
||||||
> **Note** that you can use *Markdown syntax* within a blockquote.
|
> **Note** that you can use *Markdown syntax* within a blockquote.
|
||||||
|
|
||||||
#### Blockquote with attribution
|
### Blockquote with attribution
|
||||||
|
|
||||||
> Don't communicate by sharing memory, share memory by communicating.<br>
|
> Don't communicate by sharing memory, share memory by communicating.<br>
|
||||||
> — <cite>Rob Pike[^1]</cite>
|
> — <cite>Rob Pike[^1]</cite>
|
||||||
|
@ -63,7 +63,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
|
||||||
Bob | 27
|
Bob | 27
|
||||||
Alice | 23
|
Alice | 23
|
||||||
|
|
||||||
#### Inline Markdown within tables
|
### Inline Markdown within tables
|
||||||
|
|
||||||
| Italics | Bold | Code |
|
| Italics | Bold | Code |
|
||||||
| -------- | -------- | ------ |
|
| -------- | -------- | ------ |
|
||||||
|
@ -74,8 +74,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
|
||||||
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex. | Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus | Proin sit amet velit nec enim imperdiet vehicula. | Ut bibendum vestibulum quam, eu egestas turpis gravida nec | Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien |
|
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex. | Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus | Proin sit amet velit nec enim imperdiet vehicula. | Ut bibendum vestibulum quam, eu egestas turpis gravida nec | Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien |
|
||||||
|
|
||||||
## Code Blocks
|
## Code Blocks
|
||||||
|
### Code block with backticks
|
||||||
#### Code block with backticks
|
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
|
@ -90,7 +89,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
|
||||||
</html>
|
</html>
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Code block indented with four spaces
|
### Code block indented with four spaces
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
@ -103,21 +102,7 @@ Tables aren't part of the core Markdown spec, but Hugo supports supports them ou
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
#### Code block with Hugo's internal highlight shortcode
|
### Diff code block
|
||||||
{{< highlight html >}}
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Example HTML5 Document</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<p>Test</p>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
{{< /highlight >}}
|
|
||||||
|
|
||||||
#### Diff code block
|
|
||||||
|
|
||||||
```diff
|
```diff
|
||||||
[dependencies.bevy]
|
[dependencies.bevy]
|
||||||
|
@ -127,21 +112,27 @@ rev = "11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13"
|
||||||
+ features = ["jpeg", "dynamic"]
|
+ features = ["jpeg", "dynamic"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### One line code block
|
||||||
|
|
||||||
|
```html
|
||||||
|
<p>A paragraph</p>
|
||||||
|
```
|
||||||
|
|
||||||
## List Types
|
## List Types
|
||||||
|
|
||||||
#### Ordered List
|
### Ordered List
|
||||||
|
|
||||||
1. First item
|
1. First item
|
||||||
2. Second item
|
2. Second item
|
||||||
3. Third item
|
3. Third item
|
||||||
|
|
||||||
#### Unordered List
|
### Unordered List
|
||||||
|
|
||||||
* List item
|
* List item
|
||||||
* Another item
|
* Another item
|
||||||
* And another item
|
* And another item
|
||||||
|
|
||||||
#### Nested list
|
### Nested list
|
||||||
|
|
||||||
* Fruit
|
* Fruit
|
||||||
* Apple
|
* Apple
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -1,3 +1,3 @@
|
||||||
module github.com/CaiJimmy/hugo-theme-stack/v3
|
module github.com/CaiJimmy/hugo-theme-stack/v4
|
||||||
|
|
||||||
go 1.17
|
go 1.17
|
||||||
|
|
67
i18n/ar.yaml
67
i18n/ar.yaml
|
@ -1,74 +1,45 @@
|
||||||
toggleMenu:
|
toggleMenu: اخفي القائمة
|
||||||
other: اخفي القائمة
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: الوضع الداكن
|
||||||
other: الوضع الداكن
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} صفحه"
|
one: "{{ .Count }} صفحه"
|
||||||
other: "{{ .Count }} صفحات"
|
other: "{{ .Count }} صفحات"
|
||||||
|
section: قسم
|
||||||
section:
|
|
||||||
other: قسم
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: قسم فرعي
|
one: قسم فرعي
|
||||||
other: اقسام فرعية
|
other: اقسام فرعية
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: خلف
|
||||||
other: خلف
|
tableOfContents: جدول المحتويات
|
||||||
|
relatedContent: محتوى مشابهه
|
||||||
tableOfContents:
|
lastUpdatedOn: التعديل الاخير
|
||||||
other: جدول المحتويات
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: محتوى مشابهه
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: التعديل الاخير
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "تُقرأ خلال دقيقة"
|
one: "تُقرأ خلال دقيقة"
|
||||||
other: "تُقرأ خلال {{ .Count }} دقائق"
|
other: "تُقرأ خلال {{ .Count }} دقائق"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: غير موجود
|
||||||
other: غير موجود
|
subtitle: تعذر العثور على الصفحة المطلوبة.
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: تعذر العثور على الصفحة المطلوبة.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: الارشيفات
|
||||||
other: الارشيفات
|
more: اكثر
|
||||||
|
|
||||||
more:
|
|
||||||
other: اكثر
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: وسوم
|
||||||
other: وسوم
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: التصنيفات
|
||||||
other: التصنيفات
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: بحث
|
||||||
other: بحث
|
placeholder: اكتب...
|
||||||
|
resultTitle: "#PAGES_COUNT نتيجة (#TIME_SECONDS ثواني)"
|
||||||
placeholder:
|
|
||||||
other: اكتب...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT نتيجة (#TIME_SECONDS ثواني)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: "مبني بستخدام {{ .Generator }}"
|
||||||
other: "مبني بستخدام {{ .Generator }}"
|
designedBy: "قالب {{ .Theme }} مصمم من {{ .DesignedBy }}"
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: "قالب {{ .Theme }} مصمم من {{ .DesignedBy }}"
|
|
||||||
|
|
57
i18n/bn.yaml
57
i18n/bn.yaml
|
@ -1,73 +1,52 @@
|
||||||
toggleMenu:
|
toggleMenu: টগল মেনু
|
||||||
other: টগল মেনু
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: ডার্ক মোড
|
||||||
other: ডার্ক মোড
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} পাতা"
|
one: "{{ .Count }} পাতা"
|
||||||
other: "{{ .Count }} পাতা"
|
other: "{{ .Count }} পাতা"
|
||||||
|
|
||||||
section:
|
section: অনুচ্ছেদ
|
||||||
other: অনুচ্ছেদ
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: উপ-অনুচ্ছেদ
|
one: উপ-অনুচ্ছেদ
|
||||||
other: উপ-অনুচ্ছেদ
|
other: উপ-অনুচ্ছেদ
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: পেছনে
|
||||||
other: পেছনে
|
|
||||||
|
|
||||||
tableOfContents:
|
tableOfContents: সূচিপত্র
|
||||||
other: সূচিপত্র
|
|
||||||
|
|
||||||
relatedContent:
|
relatedContent: সম্পর্কিত বিষয়বস্তু
|
||||||
other: সম্পর্কিত বিষয়বস্তু
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
lastUpdatedOn: সর্বশেষ আপডেট করা হয়েছে
|
||||||
other: সর্বশেষ আপডেট করা হয়েছে
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} মিনিটে পড়া যাবে"
|
one: "{{ .Count }} মিনিটে পড়া যাবে"
|
||||||
other: "{{ .Count }} মিনিটে পড়া যাবে"
|
other: "{{ .Count }} মিনিটে পড়া যাবে"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: পাওয়া যায়নি
|
||||||
other: পাওয়া যায়নি
|
|
||||||
|
|
||||||
subtitle:
|
subtitle: এই পাতাটি বিদ্যমান নেই
|
||||||
other: এই পাতাটি বিদ্যমান নেই
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: আর্কাইভ
|
||||||
other: আর্কাইভ
|
more: আরও
|
||||||
|
|
||||||
more:
|
|
||||||
other: আরও
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: ট্যাগ
|
||||||
other: ট্যাগ
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: বিভাগ
|
||||||
other: বিভাগ
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: অনুসন্ধান
|
||||||
other: অনুসন্ধান
|
|
||||||
|
|
||||||
placeholder:
|
placeholder: কিছু টাইপ করুন...
|
||||||
other: কিছু টাইপ করুন...
|
|
||||||
|
|
||||||
resultTitle:
|
resultTitle: "#PAGES_COUNT পাতা (#TIME_SECONDS সেকেন্ড)"
|
||||||
other: "#PAGES_COUNT পাতা (#TIME_SECONDS সেকেন্ড)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: "{{ .Generator }} দিয়ে নির্মিত"
|
||||||
other: "{{ .Generator }} দিয়ে নির্মিত"
|
designedBy: "থিম {{ .Theme }} ডিজাইন করেছেন {{ .DesignedBy }}"
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: "থিম {{ .Theme }} ডিজাইন করেছেন {{ .DesignedBy }}"
|
|
||||||
|
|
66
i18n/ca.yaml
66
i18n/ca.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Toggle Menu
|
||||||
other: Toggle Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Mode fosc
|
||||||
other: Mode fosc
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} pàgina"
|
one: "{{ .Count }} pàgina"
|
||||||
other: "{{ .Count }} pàgines"
|
other: "{{ .Count }} pàgines"
|
||||||
|
section: Secció
|
||||||
section:
|
|
||||||
other: Secció
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subsecció
|
one: Subsecció
|
||||||
other: Subseccions
|
other: Subseccions
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Tornar
|
||||||
other: Tornar
|
tableOfContents: Taula de contingut
|
||||||
|
relatedContent: Continguts relacionats
|
||||||
tableOfContents:
|
lastUpdatedOn: Última vegada actualitzat
|
||||||
other: Taula de contingut
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Continguts relacionats
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Última vegada actualitzat
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minut a llegir"
|
one: "{{ .Count }} minut a llegir"
|
||||||
other: "{{ .Count }} minuts a llegir"
|
other: "{{ .Count }} minuts a llegir"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: No Trobat
|
||||||
other: No Trobat
|
subtitle: Aquesta pàgina no existeix
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: Aquesta pàgina no existeix
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Arxiu
|
||||||
other: Arxiu
|
more: Més
|
||||||
|
|
||||||
more:
|
|
||||||
other: Més
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Etiquetes
|
||||||
other: Etiquetes
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categories
|
||||||
other: Categories
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Cerca
|
||||||
other: Cerca
|
placeholder: Tecleja alguna cosa...
|
||||||
|
resultTitle: "#PAGES_COUNT pàgines en (#TIME_SECONDS segons)"
|
||||||
placeholder:
|
|
||||||
other: Tecleja alguna cosa...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pàgines en (#TIME_SECONDS segons)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Creat amb {{ .Generator }}
|
||||||
other: Creat amb {{ .Generator }}
|
designedBy: Tema {{ .Theme }} dissenyat per {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Tema {{ .Theme }} dissenyat per {{ .DesignedBy }}
|
|
||||||
|
|
67
i18n/de.yaml
67
i18n/de.yaml
|
@ -1,74 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Menü umschalten
|
||||||
other: Menü umschalten
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Dunkler Modus
|
||||||
other: Dunkler Modus
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} Seite"
|
one: "{{ .Count }} Seite"
|
||||||
other: "{{ .Count }} Seiten"
|
other: "{{ .Count }} Seiten"
|
||||||
|
section: Abschnitt
|
||||||
section:
|
|
||||||
other: Abschnitt
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Unterabschnitt
|
one: Unterabschnitt
|
||||||
other: Unterabschnitte
|
other: Unterabschnitte
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Zurück
|
||||||
other: Zurück
|
tableOfContents: Inhaltsverzeichnis
|
||||||
|
relatedContent: Verwandte Inhalte
|
||||||
tableOfContents:
|
lastUpdatedOn: Zuletzt aktualisiert am
|
||||||
other: Inhaltsverzeichnis
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Verwandte Inhalte
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Zuletzt aktualisiert am
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} Minute Lesezeit"
|
one: "{{ .Count }} Minute Lesezeit"
|
||||||
other: "{{ .Count }} Minuten Lesezeit"
|
other: "{{ .Count }} Minuten Lesezeit"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Seite nicht gefunden
|
||||||
other: Seite nicht gefunden
|
subtitle: Diese Seite existiert nicht
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: Diese Seite existiert nicht
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archiv
|
||||||
other: Archiv
|
more: Weitere
|
||||||
|
|
||||||
more:
|
|
||||||
other: Weitere
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Schlagwörter
|
||||||
other: Schlagwörter
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Kategorien
|
||||||
other: Kategorien
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Suche
|
||||||
other: Suche
|
placeholder: Etwas tippen...
|
||||||
|
resultTitle: "#PAGES_COUNT Seiten (#TIME_SECONDS Sekunden)"
|
||||||
placeholder:
|
|
||||||
other: Etwas tippen...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT Seiten (#TIME_SECONDS Sekunden)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Erstellt mit {{ .Generator }}
|
||||||
other: Erstellt mit {{ .Generator }}
|
designedBy: Theme {{ .Theme }} gestaltet von {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Theme {{ .Theme }} gestaltet von {{ .DesignedBy }}
|
|
||||||
|
|
63
i18n/el.yaml
63
i18n/el.yaml
|
@ -1,70 +1,41 @@
|
||||||
toggleMenu:
|
toggleMenu: Εναλλαγή Μενού
|
||||||
other: Εναλλαγή Μενού
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Σκοτεινό θέμα
|
||||||
other: Σκοτεινό θέμα
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} σελιδα"
|
one: "{{ .Count }} σελιδα"
|
||||||
other: "{{ .Count }} σελιδες"
|
other: "{{ .Count }} σελιδες"
|
||||||
|
section: Ενότητα
|
||||||
section:
|
|
||||||
other: Ενότητα
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Υποενότητα
|
one: Υποενότητα
|
||||||
other: Υποενότητες
|
other: Υποενότητες
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Πισω
|
||||||
other: Πισω
|
tableOfContents: Πινακας περιεχομενων
|
||||||
|
relatedContent: Σχετικο περιεχομενο
|
||||||
tableOfContents:
|
lastUpdatedOn: Τελευταια τροποποιηση στις
|
||||||
other: Πινακας περιεχομενων
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Σχετικο περιεχομενο
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Τελευταια τροποποιηση στις
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} λεπτό ανάγνωσης"
|
one: "{{ .Count }} λεπτό ανάγνωσης"
|
||||||
### Seems that there's no need to add 's' even if it's plural in English
|
|
||||||
other: "{{ .Count }} λεπτά ανάγνωσης"
|
other: "{{ .Count }} λεπτά ανάγνωσης"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Δε βρέθηκε
|
||||||
other: Δε βρέθηκε
|
subtitle: Η σελίδα δε βρέθηκε.
|
||||||
subtitle:
|
|
||||||
other: Η σελίδα δε βρέθηκε.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Αρχειο
|
||||||
other: Αρχειο
|
more: Περισσότερα
|
||||||
|
|
||||||
more:
|
|
||||||
other: Περισσότερα
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Αναζήτηση
|
||||||
other: Αναζήτηση
|
placeholder: Πληκτρολογήστε κάτι...
|
||||||
|
resultTitle: "#PAGES_COUNT σελιδες (#TIME_SECONDS δευτερολεπτα)"
|
||||||
placeholder:
|
|
||||||
other: Πληκτρολογήστε κάτι...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT σελιδες (#TIME_SECONDS δευτερολεπτα)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Δημιουργήθηκε με τη χρήση {{ .Generator }}
|
||||||
other: Δημιουργήθηκε με τη χρήση {{ .Generator }}
|
designedBy: Το θέμα {{ .Theme }} σχεδιάστηκε από το {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Το θέμα {{ .Theme }} σχεδιάστηκε από το {{ .DesignedBy }}
|
|
||||||
|
|
69
i18n/en.yaml
69
i18n/en.yaml
|
@ -1,73 +1,46 @@
|
||||||
toggleMenu:
|
toggleMenu: Toggle Menu
|
||||||
other: Toggle Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Dark Mode
|
||||||
other: Dark Mode
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} page"
|
one: "{{ .Count }} page"
|
||||||
other: "{{ .Count }} pages"
|
other: "{{ .Count }} pages"
|
||||||
|
section: Section
|
||||||
section:
|
|
||||||
other: Section
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subsection
|
one: Subsection
|
||||||
other: Subsections
|
other: Subsections
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Back
|
||||||
other: Back
|
tableOfContents: Table of contents
|
||||||
|
relatedContent: Related content
|
||||||
tableOfContents:
|
lastUpdatedOn: Last updated on
|
||||||
other: Table of contents
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Related content
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Last updated on
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minute read"
|
one: "{{ .Count }} minute read"
|
||||||
other: "{{ .Count }} minute read"
|
other: "{{ .Count }} minute read"
|
||||||
|
codeblock:
|
||||||
|
copy: Copy
|
||||||
|
copied: Copied!
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Not Found
|
||||||
other: Not Found
|
subtitle: This page does not exist
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: This page does not exist
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archives
|
||||||
other: Archives
|
more: More
|
||||||
|
|
||||||
more:
|
|
||||||
other: More
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categories
|
||||||
other: Categories
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Search
|
||||||
other: Search
|
placeholder: Type something...
|
||||||
|
resultTitle: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
||||||
placeholder:
|
|
||||||
other: Type something...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Built with {{ .Generator }}
|
||||||
other: Built with {{ .Generator }}
|
designedBy: Theme {{ .Theme }} designed by {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Theme {{ .Theme }} designed by {{ .DesignedBy }}
|
|
||||||
|
|
66
i18n/es.yaml
66
i18n/es.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Toggle Menu
|
||||||
other: Toggle Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Modo oscuro
|
||||||
other: Modo oscuro
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} página"
|
one: "{{ .Count }} página"
|
||||||
other: "{{ .Count }} páginas"
|
other: "{{ .Count }} páginas"
|
||||||
|
section: Sección
|
||||||
section:
|
|
||||||
other: Sección
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subsección
|
one: Subsección
|
||||||
other: Subsecciones
|
other: Subsecciones
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Volver
|
||||||
other: Volver
|
tableOfContents: Tabla de contenido
|
||||||
|
relatedContent: Contenidos relacionados
|
||||||
tableOfContents:
|
lastUpdatedOn: Última vez actualizado
|
||||||
other: Tabla de contenido
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Contenidos relacionados
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Última vez actualizado
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minuto a leer"
|
one: "{{ .Count }} minuto a leer"
|
||||||
other: "{{ .Count }} minutos a leer"
|
other: "{{ .Count }} minutos a leer"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: No Encontrado
|
||||||
other: No Encontrado
|
subtitle: Esta página no existe
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: Esta página no existe
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archivo
|
||||||
other: Archivo
|
more: Más
|
||||||
|
|
||||||
more:
|
|
||||||
other: Más
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Etiquetas
|
||||||
other: Etiquetas
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categorías
|
||||||
other: Categorías
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Búsqueda
|
||||||
other: Búsqueda
|
placeholder: Teclea algo...
|
||||||
|
resultTitle: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
||||||
placeholder:
|
|
||||||
other: Teclea algo...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT páginas en (#TIME_SECONDS segundos)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Creado con {{ .Generator }}
|
||||||
other: Creado con {{ .Generator }}
|
designedBy: Tema {{ .Theme }} diseñado por {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Tema {{ .Theme }} diseñado por {{ .DesignedBy }}
|
|
||||||
|
|
66
i18n/fa.yaml
66
i18n/fa.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: منو
|
||||||
other: منو
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: حالت شب
|
||||||
other: حالت شب
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} صفحه"
|
one: "{{ .Count }} صفحه"
|
||||||
other: "{{ .Count }} صفحه"
|
other: "{{ .Count }} صفحه"
|
||||||
|
section: بخش
|
||||||
section:
|
|
||||||
other: بخش
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: زیربخش
|
one: زیربخش
|
||||||
other: زیربخش
|
other: زیربخش
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: قبلی
|
||||||
other: قبلی
|
tableOfContents: فهرست
|
||||||
|
relatedContent: مطالب مرتبط
|
||||||
tableOfContents:
|
lastUpdatedOn: آخرین بروزرسانی در
|
||||||
other: فهرست
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: مطالب مرتبط
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: آخرین بروزرسانی در
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "مطالعه در {{ .Count }} دقیقه"
|
one: "مطالعه در {{ .Count }} دقیقه"
|
||||||
other: "مطالعه در {{ .Count }} دقیقه"
|
other: "مطالعه در {{ .Count }} دقیقه"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: یافت نشد
|
||||||
other: یافت نشد
|
subtitle: این صحه وجود ندارد
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: این صحه وجود ندارد
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: آرشیو
|
||||||
other: آرشیو
|
more: بیشتر
|
||||||
|
|
||||||
more:
|
|
||||||
other: بیشتر
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: تگ ها
|
||||||
other: تگ ها
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: دسته بندی
|
||||||
other: دسته بندی
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: جستجو
|
||||||
other: جستجو
|
placeholder: تایپ کنید ...
|
||||||
|
resultTitle: "#PAGES_COUNT صفحه (#TIME_SECONDS ثانیه)"
|
||||||
placeholder:
|
|
||||||
other: تایپ کنید ...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT صفحه (#TIME_SECONDS ثانیه)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: قدرت گرفته از {{ .Generator }}
|
||||||
other: قدرت گرفته از {{ .Generator }}
|
designedBy: قالب {{ .Theme }} ساخته شده توسط {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: قالب {{ .Theme }} ساخته شده توسط {{ .DesignedBy }}
|
|
||||||
|
|
62
i18n/fr.yaml
62
i18n/fr.yaml
|
@ -1,69 +1,41 @@
|
||||||
toggleMenu:
|
toggleMenu: Afficher le menu
|
||||||
other: Afficher le menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Mode sombre
|
||||||
other: Mode sombre
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} page"
|
one: "{{ .Count }} page"
|
||||||
other: "{{ .Count }} pages"
|
other: "{{ .Count }} pages"
|
||||||
|
section: Section
|
||||||
section:
|
|
||||||
other: Section
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Sous-section
|
one: Sous-section
|
||||||
other: Sous-sections
|
other: Sous-sections
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Retour
|
||||||
other: Retour
|
tableOfContents: Table des matières
|
||||||
|
relatedContent: Contenus liés
|
||||||
tableOfContents:
|
lastUpdatedOn: Dernière mise à jour le
|
||||||
other: Table des matières
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Contenus liés
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Dernière mise à jour le
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minute de lecture"
|
one: "{{ .Count }} minute de lecture"
|
||||||
other: "{{ .Count }} minutes de lecture"
|
other: "{{ .Count }} minutes de lecture"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Page non trouvée
|
||||||
other: Page non trouvée
|
subtitle: Cette page n'existe pas.
|
||||||
subtitle:
|
|
||||||
other: Cette page n'existe pas.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archives
|
||||||
other: Archives
|
more: Autres
|
||||||
|
|
||||||
more:
|
|
||||||
other: Autres
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Mots clés
|
||||||
other: Mots clés
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Rechercher
|
||||||
other: Rechercher
|
placeholder: Cherchez un article, une publication, etc.
|
||||||
|
resultTitle: "#PAGES_COUNT pages (#TIME_SECONDS secondes)"
|
||||||
placeholder:
|
|
||||||
other: Cherchez un article, une publication, etc.
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pages (#TIME_SECONDS secondes)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Généré avec {{ .Generator }}
|
||||||
other: Généré avec {{ .Generator }}
|
designedBy: Thème {{ .Theme }} conçu par {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Thème {{ .Theme }} conçu par {{ .DesignedBy }}
|
|
||||||
|
|
66
i18n/hu.yaml
66
i18n/hu.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Menü Kapcsolása
|
||||||
other: Menü Kapcsolása
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Sötét Mód
|
||||||
other: Sötét Mód
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} oldal"
|
one: "{{ .Count }} oldal"
|
||||||
other: "{{ .Count }} oldalak"
|
other: "{{ .Count }} oldalak"
|
||||||
|
section: Szekció
|
||||||
section:
|
|
||||||
other: Szekció
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Alszekció
|
one: Alszekció
|
||||||
other: Alszekciók
|
other: Alszekciók
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Vissza
|
||||||
other: Vissza
|
tableOfContents: Tartalomjegyzék
|
||||||
|
relatedContent: Kapcsolódó tartalom
|
||||||
tableOfContents:
|
lastUpdatedOn: Utolsó frissítés időpontja
|
||||||
other: Tartalomjegyzék
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Kapcsolódó tartalom
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Utolsó frissítés időpontja
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} percnyi olvasmány"
|
one: "{{ .Count }} percnyi olvasmány"
|
||||||
other: "{{ .Count }} percnyi olvasmány"
|
other: "{{ .Count }} percnyi olvasmány"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Nem található
|
||||||
other: Nem található
|
subtitle: Ez az oldal nem létezik
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: Ez az oldal nem létezik
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archívum
|
||||||
other: Archívum
|
more: Több
|
||||||
|
|
||||||
more:
|
|
||||||
other: Több
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Cimkék
|
||||||
other: Cimkék
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Kategóriák
|
||||||
other: Kategóriák
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Keresés
|
||||||
other: Keresés
|
placeholder: Írj valamit...
|
||||||
|
resultTitle: "#PAGES_COUNT oldal (#TIME_SECONDS másodperc alatt)"
|
||||||
placeholder:
|
|
||||||
other: Írj valamit...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT oldal (#TIME_SECONDS másodperc alatt)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: "{{ .Generator }} használatával készült"
|
||||||
other: "{{ .Generator }} használatával készült"
|
designedBy: A {{ .Theme }} dizájnt {{ .DesignedBy }} tervezte
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: A {{ .Theme }} dizájnt {{ .DesignedBy }} tervezte
|
|
||||||
|
|
66
i18n/id.yaml
66
i18n/id.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Tampilkan Menu
|
||||||
other: Tampilkan Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Mode Gelap
|
||||||
other: Mode Gelap
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} halaman"
|
one: "{{ .Count }} halaman"
|
||||||
other: "{{ .Count }} halaman"
|
other: "{{ .Count }} halaman"
|
||||||
|
section: Bagian
|
||||||
section:
|
|
||||||
other: Bagian
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subbagian
|
one: Subbagian
|
||||||
other: Subbagian
|
other: Subbagian
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Kembali
|
||||||
other: Kembali
|
tableOfContents: Daftar Isi
|
||||||
|
relatedContent: Konten terkait
|
||||||
tableOfContents:
|
lastUpdatedOn: Terakhir diperbarui pada
|
||||||
other: Daftar Isi
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Konten terkait
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Terakhir diperbarui pada
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "Waktu Membaca: {{ .Count }} menit"
|
one: "Waktu Membaca: {{ .Count }} menit"
|
||||||
other: "Waktu Membaca: {{ .Count }} menit"
|
other: "Waktu Membaca: {{ .Count }} menit"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Tidak ditemukan
|
||||||
other: Tidak ditemukan
|
subtitle: Halaman yang Anda akses tidak ditemukan.
|
||||||
subtitle:
|
|
||||||
other: Halaman yang Anda akses tidak ditemukan.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Arsip
|
||||||
other: Arsip
|
more: Lebih
|
||||||
|
|
||||||
more:
|
|
||||||
other: Lebih
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tag
|
||||||
other: Tag
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Kategori
|
||||||
other: Kategori
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Cari
|
||||||
other: Cari
|
placeholder: Ketik sesuatu...
|
||||||
|
resultTitle: "#PAGES_COUNT halaman (#TIME_SECONDS detik)"
|
||||||
placeholder:
|
|
||||||
other: Ketik sesuatu...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT halaman (#TIME_SECONDS detik)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Dibangun dengan {{ .Generator }}
|
||||||
other: Dibangun dengan {{ .Generator }}
|
designedBy: Tema {{ .Theme }} dirancang oleh {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Tema {{ .Theme }} dirancang oleh {{ .DesignedBy }}
|
|
||||||
|
|
66
i18n/it.yaml
66
i18n/it.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Toggle Menu
|
||||||
other: Toggle Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Dark Mode
|
||||||
other: Dark Mode
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} pagina"
|
one: "{{ .Count }} pagina"
|
||||||
other: "{{ .Count }} pagine"
|
other: "{{ .Count }} pagine"
|
||||||
|
section: Sezione
|
||||||
section:
|
|
||||||
other: Sezione
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Sottosezione
|
one: Sottosezione
|
||||||
other: Sottosezioni
|
other: Sottosezioni
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Indietro
|
||||||
other: Indietro
|
tableOfContents: Indice
|
||||||
|
relatedContent: Contenuti correlati
|
||||||
tableOfContents:
|
lastUpdatedOn: Aggiornato il
|
||||||
other: Indice
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Contenuti correlati
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Aggiornato il
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} min per leggere"
|
one: "{{ .Count }} min per leggere"
|
||||||
other: "{{ .Count }} min per leggere"
|
other: "{{ .Count }} min per leggere"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Non trovato
|
||||||
other: Non trovato
|
subtitle: Questa pagina non esiste.
|
||||||
subtitle:
|
|
||||||
other: Questa pagina non esiste.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archivi
|
||||||
other: Archivi
|
more: Di più
|
||||||
|
|
||||||
more:
|
|
||||||
other: Di più
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categorie
|
||||||
other: Categorie
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Cerca
|
||||||
other: Cerca
|
placeholder: Scrivi qualcosa...
|
||||||
|
resultTitle: "#PAGES_COUNT pagine (#TIME_SECONDS secondi)"
|
||||||
placeholder:
|
|
||||||
other: Scrivi qualcosa...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pagine (#TIME_SECONDS secondi)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Realizzato con {{ .Generator }}
|
||||||
other: Realizzato con {{ .Generator }}
|
designedBy: Tema {{ .Theme }} realizzato da {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Tema {{ .Theme }} realizzato da {{ .DesignedBy }}
|
|
||||||
|
|
64
i18n/ja.yaml
64
i18n/ja.yaml
|
@ -1,60 +1,32 @@
|
||||||
toggleMenu:
|
toggleMenu: メニューを開く・閉じる
|
||||||
other: メニューを開く・閉じる
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: ダークモード
|
||||||
other: ダークモード
|
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: 前のページ
|
||||||
other: 前のページ
|
tableOfContents: 目次
|
||||||
|
relatedContent: 関連するコンテンツ
|
||||||
tableOfContents:
|
lastUpdatedOn: 最終更新
|
||||||
other: 目次
|
readingTime: "読了時間: {{ .Count }}分"
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: 関連するコンテンツ
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: 最終更新
|
|
||||||
|
|
||||||
readingTime:
|
|
||||||
other: "読了時間: {{ .Count }}分"
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: 404 Not Found
|
||||||
other: 404 Not Found
|
subtitle: 指定されたページは存在しません。
|
||||||
subtitle:
|
|
||||||
other: 指定されたページは存在しません。
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: アーカイブ
|
||||||
other: アーカイブ
|
more: さらに見る
|
||||||
|
|
||||||
more:
|
|
||||||
other: さらに見る
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: タグ
|
||||||
other: タグ
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: カテゴリ
|
||||||
other: カテゴリ
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: 検索
|
||||||
other: 検索
|
placeholder: 入力...
|
||||||
|
resultTitle: "#PAGES_COUNT 件 (#TIME_SECONDS 秒)"
|
||||||
placeholder:
|
|
||||||
other: 入力...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT 件 (#TIME_SECONDS 秒)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Built with {{ .Generator }}
|
||||||
other: Built with {{ .Generator }}
|
designedBy: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: テーマ {{ .Theme }} は {{ .DesignedBy }} によって設計されています。
|
|
||||||
|
|
63
i18n/ko.yaml
63
i18n/ko.yaml
|
@ -1,72 +1,45 @@
|
||||||
toggleMenu:
|
toggleMenu: 메뉴 여닫기
|
||||||
other: 메뉴 여닫기
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: 다크 모드
|
||||||
other: 다크 모드
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} 페이지"
|
one: "{{ .Count }} 페이지"
|
||||||
other: "{{ .Count }} 페이지"
|
other: "{{ .Count }} 페이지"
|
||||||
|
section: 섹션
|
||||||
section:
|
|
||||||
other: 섹션
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: 서브섹션
|
one: 서브섹션
|
||||||
other: 서브섹션
|
other: 서브섹션
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: 뒤로가기
|
||||||
other: 뒤로가기
|
tableOfContents: 목차
|
||||||
|
relatedContent: 관련 글
|
||||||
tableOfContents:
|
lastUpdatedOn: "마지막 수정: "
|
||||||
other: 목차
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: 관련 글
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: "마지막 수정: "
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} 분 정도"
|
one: "{{ .Count }} 분 정도"
|
||||||
other: "{{ .Count }} 분 정도"
|
other: "{{ .Count }} 분 정도"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: 찾을 수 없음
|
||||||
other: 찾을 수 없음
|
subtitle: 페이지를 찾을 수 없습니다.
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: 페이지를 찾을 수 없습니다.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: 보관함
|
||||||
other: 보관함
|
more: 더보기
|
||||||
more:
|
|
||||||
other: 더보기
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: 카테고리
|
||||||
other: 카테고리
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: 태그
|
||||||
other: 태그
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: 검색
|
||||||
other: 검색
|
placeholder: 검색어를 입력하세요...
|
||||||
|
resultTitle: "#PAGES_COUNT 페이지 (#TIME_SECONDS 초)"
|
||||||
placeholder:
|
|
||||||
other: 검색어를 입력하세요...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT 페이지 (#TIME_SECONDS 초)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: "{{ .Generator }}로 만듦"
|
||||||
other: "{{ .Generator }}로 만듦"
|
designedBy: "{{ .DesignedBy }}의 {{ .Theme }} 테마 사용 중"
|
||||||
designedBy:
|
|
||||||
other: "{{ .DesignedBy }}의 {{ .Theme }} 테마 사용 중"
|
|
||||||
|
|
51
i18n/nl.yaml
51
i18n/nl.yaml
|
@ -1,57 +1,38 @@
|
||||||
toggleMenu:
|
toggleMenu: Open Menu
|
||||||
other: Open Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Donkere modus
|
||||||
other: Donkere modus
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} pagina"
|
one: "{{ .Count }} pagina"
|
||||||
other: "{{ .Count }} pagina's"
|
other: "{{ .Count }} pagina's"
|
||||||
|
section: Sectie
|
||||||
section:
|
|
||||||
other: Sectie
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subsectie
|
one: Subsectie
|
||||||
other: Subsecties
|
other: Subsecties
|
||||||
|
|
||||||
article:
|
article:
|
||||||
relatedContent:
|
relatedContent: Gerelateerde inhoud
|
||||||
other: Gerelateerde inhoud
|
lastUpdatedOn: Laatst bijgewerkt op
|
||||||
lastUpdatedOn:
|
|
||||||
other: Laatst bijgewerkt op
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Niet gevonden
|
||||||
other: Niet gevonden
|
subtitle: Deze pagina bestaat niet.
|
||||||
subtitle:
|
|
||||||
other: Deze pagina bestaat niet.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archief
|
||||||
other: Archief
|
more: Meer
|
||||||
more:
|
|
||||||
other: Meer
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categorie
|
||||||
other: Categorie
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Zoeken
|
||||||
other: Zoeken
|
placeholder: Typ iets
|
||||||
placeholder:
|
resultTitle: "#PAGES_COUNT pagina's (#TIME_SECONDS seconden)"
|
||||||
other: Typ iets
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pagina's (#TIME_SECONDS seconden)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Gemaakt met {{ .Generator }}
|
||||||
other: Gemaakt met {{ .Generator }}
|
designedBy: Theme {{ .Theme }} ontworpen door {{ .DesignedBy }}
|
||||||
designedBy:
|
|
||||||
other: Theme {{ .Theme }} ontworpen door {{ .DesignedBy }}
|
|
||||||
|
|
66
i18n/pl.yaml
66
i18n/pl.yaml
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: Przełącz Menu
|
||||||
other: Przełącz Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Tryb ciemny
|
||||||
other: Tryb ciemny
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} strona"
|
one: "{{ .Count }} strona"
|
||||||
other: "{{ .Count }} stron"
|
other: "{{ .Count }} stron"
|
||||||
|
section: Sekcja
|
||||||
section:
|
|
||||||
other: Sekcja
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Podsekcja
|
one: Podsekcja
|
||||||
other: Podsekcje
|
other: Podsekcje
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Wróć
|
||||||
other: Wróć
|
tableOfContents: Spis treści
|
||||||
|
relatedContent: Powiązane artykuły
|
||||||
tableOfContents:
|
lastUpdatedOn: Ostatnio zaktualizowany
|
||||||
other: Spis treści
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Powiązane artykuły
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Ostatnio zaktualizowany
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "Przeczytasz w {{ .Count }} minutę"
|
one: "Przeczytasz w {{ .Count }} minutę"
|
||||||
other: "Przeczytasz w {{ .Count }} minut"
|
other: "Przeczytasz w {{ .Count }} minut"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Nie znaleziono
|
||||||
other: Nie znaleziono
|
subtitle: Ta strona nie istnieje
|
||||||
subtitle:
|
|
||||||
other: Ta strona nie istnieje
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archiwum
|
||||||
other: Archiwum
|
more: Więcej
|
||||||
|
|
||||||
more:
|
|
||||||
other: Więcej
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tagi
|
||||||
other: Tagi
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Kategorie
|
||||||
other: Kategorie
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Szukaj
|
||||||
other: Szukaj
|
placeholder: Wpisz coś...
|
||||||
|
resultTitle: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
|
||||||
placeholder:
|
|
||||||
other: Wpisz coś...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT stron (#TIME_SECONDS sekund)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Zbudowano z {{ .Generator }}
|
||||||
other: Zbudowano z {{ .Generator }}
|
designedBy: Motyw {{ .Theme }} zaprojektowany przez {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Motyw {{ .Theme }} zaprojektowany przez {{ .DesignedBy }}
|
|
||||||
|
|
|
@ -1,67 +1,45 @@
|
||||||
toggleMenu:
|
toggleMenu: Alternar Menu
|
||||||
other: Alternar Menu
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Modo Escuro
|
||||||
other: Modo Escuro
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} página"
|
one: "{{ .Count }} página"
|
||||||
other: "{{ .Count }} páginas"
|
other: "{{ .Count }} páginas"
|
||||||
|
section: Seção
|
||||||
section:
|
|
||||||
other: Seção
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subseção
|
one: Subseção
|
||||||
other: Subseções
|
other: Subseções
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Voltar
|
||||||
other: Voltar
|
tableOfContents: Índice
|
||||||
|
relatedContent: Conteúdo relacionado
|
||||||
tableOfContents:
|
lastUpdatedOn: Última atualização em
|
||||||
other: Índice
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Conteúdo relacionado
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Última atualização em
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "{{ .Count }} minuto de leitura"
|
one: "{{ .Count }} minuto de leitura"
|
||||||
other: "{{ .Count }} minutos de leitura"
|
other: "{{ .Count }} minutos de leitura"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Não Encontrado
|
||||||
other: Não Encontrado
|
subtitle: Esta página não existe.
|
||||||
subtitle:
|
|
||||||
other: Esta página não existe.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Arquivos
|
||||||
other: Arquivos
|
more: Mais
|
||||||
more:
|
|
||||||
other: Mais
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categorias
|
||||||
other: Categorias
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Busca
|
||||||
other: Busca
|
placeholder: Digite algo...
|
||||||
placeholder:
|
resultTitle: "#PAGES_COUNT páginas (#TIME_SECONDS segundos)"
|
||||||
other: Digite algo...
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT páginas (#TIME_SECONDS segundos)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Criado com {{ .Generator }}
|
||||||
other: Criado com {{ .Generator }}
|
designedBy: Tema {{ .Theme }} desenvolvido por {{ .DesignedBy }}
|
||||||
designedBy:
|
|
||||||
other: Tema {{ .Theme }} desenvolvido por {{ .DesignedBy }}
|
|
||||||
|
|
56
i18n/ru.yaml
56
i18n/ru.yaml
|
@ -1,8 +1,6 @@
|
||||||
toggleMenu:
|
toggleMenu: Показать/скрыть меню
|
||||||
other: Показать/скрыть меню
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Тёмный режим
|
||||||
other: Тёмный режим
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
|
@ -10,10 +8,7 @@ list:
|
||||||
few: "{{ .Count }} страницы"
|
few: "{{ .Count }} страницы"
|
||||||
many: "{{ .Count }} страниц"
|
many: "{{ .Count }} страниц"
|
||||||
other: "{{ .Count }} страниц"
|
other: "{{ .Count }} страниц"
|
||||||
|
section: Раздел
|
||||||
section:
|
|
||||||
other: Раздел
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Подраздел
|
one: Подраздел
|
||||||
few: Подразделы
|
few: Подразделы
|
||||||
|
@ -21,43 +16,28 @@ list:
|
||||||
other: Подразделы
|
other: Подразделы
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Назад
|
||||||
other: Назад
|
relatedContent: Также рекомендуем
|
||||||
relatedContent:
|
lastUpdatedOn: Обновлено
|
||||||
other: Также рекомендуем
|
tableOfContents: Содержание
|
||||||
lastUpdatedOn:
|
readingTime: "Время чтения: {{ .Count }} мин."
|
||||||
other: Обновлено
|
|
||||||
tableOfContents:
|
|
||||||
other: Содержание
|
|
||||||
readingTime:
|
|
||||||
other: "Время чтения: {{ .Count }} мин."
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Не найдено
|
||||||
other: Не найдено
|
subtitle: Запрашиваемая страница не существует
|
||||||
subtitle:
|
|
||||||
other: Запрашиваемая страница не существует
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Архивы
|
||||||
other: Архивы
|
more: Ещё
|
||||||
more:
|
|
||||||
other: Ещё
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Теги
|
||||||
other: Теги
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Поиск
|
||||||
other: Поиск
|
placeholder: Введите что-нибудь...
|
||||||
placeholder:
|
resultTitle: "Найдено #PAGES_COUNT страниц (за #TIME_SECONDS с.)"
|
||||||
other: Введите что-нибудь...
|
|
||||||
resultTitle:
|
|
||||||
other: "Найдено #PAGES_COUNT страниц (за #TIME_SECONDS с.)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Создано при помощи {{ .Generator }}
|
||||||
other: Создано при помощи {{ .Generator }}
|
designedBy: Тема {{ .Theme }}, дизайн {{ .DesignedBy }}
|
||||||
designedBy:
|
|
||||||
other: Тема {{ .Theme }}, дизайн {{ .DesignedBy }}
|
|
||||||
|
|
63
i18n/th.yaml
63
i18n/th.yaml
|
@ -1,70 +1,41 @@
|
||||||
toggleMenu:
|
toggleMenu: สลับเมนู
|
||||||
other: สลับเมนู
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: ธีมมืด
|
||||||
other: ธีมมืด
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} หน้า"
|
one: "{{ .Count }} หน้า"
|
||||||
other: "{{ .Count }} หน้า"
|
other: "{{ .Count }} หน้า"
|
||||||
|
section: หมวดหมู่
|
||||||
section:
|
|
||||||
other: หมวดหมู่
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: หมวดหมู่ย่อย
|
one: หมวดหมู่ย่อย
|
||||||
other: หมวดหมู่ย่อยอื่นๆ
|
other: หมวดหมู่ย่อยอื่นๆ
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: กลับไป
|
||||||
other: กลับไป
|
tableOfContents: สารบัญ
|
||||||
|
relatedContent: เนื้อหาคล้ายคลึงกัน
|
||||||
tableOfContents:
|
lastUpdatedOn: อัปเดตล่าสุดเมื่อ
|
||||||
other: สารบัญ
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: เนื้อหาคล้ายคลึงกัน
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: อัปเดตล่าสุดเมื่อ
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "น่าจะใช้เวลา {{ .Count }} นาทีในการอ่าน"
|
one: "น่าจะใช้เวลา {{ .Count }} นาทีในการอ่าน"
|
||||||
other: "น่าจะใช้เวลา {{ .Count }} นาทีในการอ่าน"
|
other: "น่าจะใช้เวลา {{ .Count }} นาทีในการอ่าน"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: ไม่พบหัวข้อ
|
||||||
other: ไม่พบหัวข้อ
|
subtitle: ไม่พบหน้านี้ในระบบ
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: ไม่พบหน้านี้ในระบบ
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: เนื้อหาที่เก็บถาวรแล้ว
|
||||||
other: เนื้อหาที่เก็บถาวรแล้ว
|
more: อื่นๆ นอกจากนี้
|
||||||
|
|
||||||
more:
|
|
||||||
other: อื่นๆ นอกจากนี้
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: แท็ก
|
||||||
other: แท็ก
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: ค้นหา
|
||||||
other: ค้นหา
|
placeholder: พิมพ์เพื่อค้นหา ...
|
||||||
|
resultTitle: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
||||||
placeholder:
|
|
||||||
other: พิมพ์เพื่อค้นหา ...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: ถูกสร้างด้วย {{ .Generator }}
|
||||||
other: ถูกสร้างด้วย {{ .Generator }}
|
designedBy: ธีม {{ .Theme }} ออกแบบโดย {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: ธีม {{ .Theme }} ออกแบบโดย {{ .DesignedBy }}
|
|
||||||
|
|
47
i18n/tr.yaml
47
i18n/tr.yaml
|
@ -1,53 +1,36 @@
|
||||||
toggleMenu:
|
toggleMenu: Menüyü Gizle
|
||||||
other: Menüyü Gizle
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Koyu Mod
|
||||||
other: Koyu Mod
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} makale"
|
one: "{{ .Count }} makale"
|
||||||
other: "{{ .Count }} makale"
|
other: "{{ .Count }} makale"
|
||||||
|
section: Bölüm
|
||||||
section:
|
|
||||||
other: Bölüm
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Alt bölüm
|
one: Alt bölüm
|
||||||
other: Alt bölümler
|
other: Alt bölümler
|
||||||
|
|
||||||
article:
|
article:
|
||||||
relatedContent:
|
relatedContent: Alakalı içerikler
|
||||||
other: Alakalı içerikler
|
lastUpdatedOn: Son güncelleme
|
||||||
lastUpdatedOn:
|
|
||||||
other: Son güncelleme
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Bulunamadı
|
||||||
other: Bulunamadı
|
subtitle: Aradığınız sayfa mevcut değil.
|
||||||
subtitle:
|
|
||||||
other: Aradığınız sayfa mevcut değil.
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Arşiv
|
||||||
other: Arşiv
|
more: Daha fazla
|
||||||
more:
|
|
||||||
other: Daha fazla
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Etiketler
|
||||||
other: Etiketler
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Arama
|
||||||
other: Arama
|
placeholder: Birşeyler yazın...
|
||||||
placeholder:
|
resultTitle: "#PAGES_COUNT sayfa (#TIME_SECONDS saniye)"
|
||||||
other: Birşeyler yazın...
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT sayfa (#TIME_SECONDS saniye)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: "{{ .Generator }} ile oluşturuldu."
|
||||||
other: "{{ .Generator }} ile oluşturuldu."
|
designedBy: "{{ .Theme }} teması {{ .DesignedBy }} tarafından tasarlandı"
|
||||||
designedBy:
|
|
||||||
other: "{{ .Theme }} teması {{ .DesignedBy }} tarafından tasarlandı"
|
|
||||||
|
|
63
i18n/uk.yaml
63
i18n/uk.yaml
|
@ -1,71 +1,42 @@
|
||||||
toggleMenu:
|
toggleMenu: Показати меню
|
||||||
other: Показати меню
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: Темна тема
|
||||||
other: Темна тема
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "{{ .Count }} сторінка"
|
one: "{{ .Count }} сторінка"
|
||||||
few: "{{ .Count }} сторінки"
|
few: "{{ .Count }} сторінки"
|
||||||
other: "{{ .Count }} сторінок"
|
other: "{{ .Count }} сторінок"
|
||||||
|
section: Секція
|
||||||
section:
|
|
||||||
other: Секція
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Підсекція
|
one: Підсекція
|
||||||
other: Підсекції
|
other: Підсекції
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: Назад
|
||||||
other: Назад
|
tableOfContents: Зміст
|
||||||
|
relatedContent: Схожі матеріали
|
||||||
tableOfContents:
|
lastUpdatedOn: Востаннє оновлено
|
||||||
other: Зміст
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: Схожі матеріали
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: Востаннє оновлено
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "Час читання: {{ .Count }} хв"
|
one: "Час читання: {{ .Count }} хв"
|
||||||
other: "Час читання: {{ .Count }} хв"
|
other: "Час читання: {{ .Count }} хв"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Не знайдено
|
||||||
other: Не знайдено
|
subtitle: Ця сторінка не існує
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: Ця сторінка не існує
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Архіви
|
||||||
other: Архіви
|
more: Більше
|
||||||
|
|
||||||
more:
|
|
||||||
other: Більше
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Теґи
|
||||||
other: Теґи
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: Пошук
|
||||||
other: Пошук
|
placeholder: Напишіть що-небудь...
|
||||||
|
resultTitle: "#PAGES_COUNT сторінок (#TIME_SECONDS секунд)"
|
||||||
placeholder:
|
|
||||||
other: Напишіть що-небудь...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT сторінок (#TIME_SECONDS секунд)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Створено з {{ .Generator }}
|
||||||
other: Створено з {{ .Generator }}
|
designedBy: Тема {{ .Theme }}, дизайн {{ .DesignedBy }}
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: Тема {{ .Theme }}, дизайн {{ .DesignedBy }}
|
|
||||||
|
|
|
@ -1,60 +1,32 @@
|
||||||
toggleMenu:
|
toggleMenu: 切换菜单
|
||||||
other: 切换菜单
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: 暗色模式
|
||||||
other: 暗色模式
|
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: 返回
|
||||||
other: 返回
|
tableOfContents: 目录
|
||||||
|
relatedContent: 相关文章
|
||||||
tableOfContents:
|
lastUpdatedOn: 最后更新于
|
||||||
other: 目录
|
readingTime: "阅读时长: {{ .Count }} 分钟"
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: 相关文章
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: 最后更新于
|
|
||||||
|
|
||||||
readingTime:
|
|
||||||
other: "阅读时长: {{ .Count }} 分钟"
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: 404 错误
|
||||||
other: 404 错误
|
subtitle: 页面不存在
|
||||||
subtitle:
|
|
||||||
other: 页面不存在
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: 归档
|
||||||
other: 归档
|
more: 更多
|
||||||
|
|
||||||
more:
|
|
||||||
other: 更多
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: 标签云
|
||||||
other: 标签云
|
|
||||||
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: 分类
|
||||||
other: 分类
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: 搜索
|
||||||
other: 搜索
|
placeholder: 输入关键词...
|
||||||
|
resultTitle: "#PAGES_COUNT 个结果 (用时 #TIME_SECONDS 秒)"
|
||||||
placeholder:
|
|
||||||
other: 输入关键词...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT 个结果 (用时 #TIME_SECONDS 秒)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Built with {{ .Generator }}
|
||||||
other: Built with {{ .Generator }}
|
designedBy: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: 主题 {{ .Theme }} 由 {{ .DesignedBy }} 设计
|
|
||||||
|
|
|
@ -1,73 +1,43 @@
|
||||||
toggleMenu:
|
toggleMenu: 切換選單
|
||||||
other: 切換選單
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: 深色模式
|
||||||
other: 深色模式
|
|
||||||
|
|
||||||
list:
|
list:
|
||||||
page:
|
page:
|
||||||
one: "第 {{ .Count }} 頁"
|
one: "第 {{ .Count }} 頁"
|
||||||
other: "第 {{ .Count }} 頁"
|
other: "第 {{ .Count }} 頁"
|
||||||
|
section: Section
|
||||||
section:
|
|
||||||
other: Section
|
|
||||||
|
|
||||||
subsection:
|
subsection:
|
||||||
one: Subsection
|
one: Subsection
|
||||||
other: Subsections
|
other: Subsections
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: 返回
|
||||||
other: 返回
|
tableOfContents: 目錄
|
||||||
|
relatedContent: 相關內容
|
||||||
tableOfContents:
|
lastUpdatedOn: 上次改過於
|
||||||
other: 目錄
|
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: 相關內容
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: 上次改過於
|
|
||||||
|
|
||||||
readingTime:
|
readingTime:
|
||||||
one: "需要 {{ .Count }} 分鐘閱讀"
|
one: "需要 {{ .Count }} 分鐘閱讀"
|
||||||
other: "需要 {{ .Count }} 分鐘閱讀"
|
other: "需要 {{ .Count }} 分鐘閱讀"
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: Not Found
|
||||||
other: Not Found
|
subtitle: 頁面不存在
|
||||||
|
|
||||||
subtitle:
|
|
||||||
other: 頁面不存在
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: Archives
|
||||||
other: Archives
|
more: 更多
|
||||||
|
|
||||||
more:
|
|
||||||
other: 更多
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: Tags
|
||||||
other: Tags
|
|
||||||
categoriesCloud:
|
categoriesCloud:
|
||||||
title:
|
title: Categories
|
||||||
other: Categories
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: 搜尋
|
||||||
other: 搜尋
|
placeholder: Type 關鍵字...
|
||||||
|
resultTitle: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
||||||
placeholder:
|
|
||||||
other: Type 關鍵字...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT pages (#TIME_SECONDS seconds)"
|
|
||||||
|
|
||||||
footer:
|
footer:
|
||||||
builtWith:
|
builtWith: Built with {{ .Generator }}
|
||||||
other: Built with {{ .Generator }}
|
designedBy: 主題 {{ .Theme }} 由 {{ .DesignedBy }} 設計
|
||||||
|
|
||||||
designedBy:
|
|
||||||
other: 主題 {{ .Theme }} 由 {{ .DesignedBy }} 設計
|
|
||||||
|
|
|
@ -1,49 +1,26 @@
|
||||||
toggleMenu:
|
toggleMenu: 切換選單
|
||||||
other: 切換選單
|
|
||||||
|
|
||||||
darkMode:
|
darkMode: 夜晚模式
|
||||||
other: 夜晚模式
|
|
||||||
|
|
||||||
article:
|
article:
|
||||||
back:
|
back: 返回
|
||||||
other: 返回
|
tableOfContents: 目錄
|
||||||
|
relatedContent: 相關文章
|
||||||
tableOfContents:
|
lastUpdatedOn: 最後更新
|
||||||
other: 目錄
|
readingTime: "閱讀時間: {{ .Count }} 分鐘"
|
||||||
|
|
||||||
relatedContent:
|
|
||||||
other: 相關文章
|
|
||||||
|
|
||||||
lastUpdatedOn:
|
|
||||||
other: 最後更新
|
|
||||||
|
|
||||||
readingTime:
|
|
||||||
other: "閱讀時間: {{ .Count }} 分鐘"
|
|
||||||
|
|
||||||
notFound:
|
notFound:
|
||||||
title:
|
title: 404 錯誤
|
||||||
other: 404 錯誤
|
subtitle: 頁面不存在
|
||||||
subtitle:
|
|
||||||
other: 頁面不存在
|
|
||||||
|
|
||||||
widget:
|
widget:
|
||||||
archives:
|
archives:
|
||||||
title:
|
title: 紀錄
|
||||||
other: 紀錄
|
more: 更多
|
||||||
|
|
||||||
more:
|
|
||||||
other: 更多
|
|
||||||
|
|
||||||
tagCloud:
|
tagCloud:
|
||||||
title:
|
title: 標籤雲
|
||||||
other: 標籤雲
|
|
||||||
|
|
||||||
search:
|
search:
|
||||||
title:
|
title: 搜尋
|
||||||
other: 搜尋
|
placeholder: 輸入關鍵字...
|
||||||
|
resultTitle: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)"
|
||||||
placeholder:
|
|
||||||
other: 輸入關鍵字...
|
|
||||||
|
|
||||||
resultTitle:
|
|
||||||
other: "#PAGES_COUNT 個結果 (用時 #TIME_SECONDS 秒)"
|
|
||||||
|
|
20
layouts/_default/_markup/render-codeblock.html
Normal file
20
layouts/_default/_markup/render-codeblock.html
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{{- $class := .Attributes.class | default "" -}}
|
||||||
|
{{- $lang := .Attributes.lang | default .Type -}}
|
||||||
|
<div class="codeblock">
|
||||||
|
<header>
|
||||||
|
<span class="codeblock-lang">{{ $lang }}</span>
|
||||||
|
<button
|
||||||
|
class="codeblock-copy"
|
||||||
|
data-id="codeblock-id-{{ .Ordinal }}"
|
||||||
|
data-copied-text="{{ T `article.codeblock.copied` }}"
|
||||||
|
>
|
||||||
|
{{ T `article.codeblock.copy` }}
|
||||||
|
</button>
|
||||||
|
</header>
|
||||||
|
<code id="codeblock-id-{{ .Ordinal }}" style="display:none;">{{- .Inner -}}</code>
|
||||||
|
{{- if transform.CanHighlight $lang -}}
|
||||||
|
<div class="{{ $class }}">{{- highlight .Inner $lang -}}</div>
|
||||||
|
{{- else -}}
|
||||||
|
<pre><code class="{{ $class }}">{{- .Inner -}}</code></pre>
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
|
@ -17,7 +17,7 @@
|
||||||
{{- $Height = $image.Height -}}
|
{{- $Height = $image.Height -}}
|
||||||
{{- $galleryImage = true -}}
|
{{- $galleryImage = true -}}
|
||||||
|
|
||||||
{{- if (default true .Page.Site.Params.imageProcessing.content.enabled) -}}
|
{{- if .Page.Site.Params.imageProcessing.content.enabled -}}
|
||||||
{{- $small := $image.Resize `480x` -}}
|
{{- $small := $image.Resize `480x` -}}
|
||||||
{{- $big := $image.Resize `1024x` -}}
|
{{- $big := $image.Resize `1024x` -}}
|
||||||
{{- $Srcset = printf `%s 480w, %s 1024w` $small.RelPermalink $big.RelPermalink -}}
|
{{- $Srcset = printf `%s 480w, %s 1024w` $small.RelPermalink $big.RelPermalink -}}
|
||||||
|
|
|
@ -16,10 +16,8 @@
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||||
{{ $notHidden := where .Site.RegularPages "Params.hidden" "!=" true }}
|
|
||||||
{{ $filtered := ($pages | intersect $notHidden) }}
|
{{ range $pages.GroupByDate "2006" }}
|
||||||
|
|
||||||
{{ range $filtered.GroupByDate "2006" }}
|
|
||||||
{{ $id := lower (replace .Key " " "-") }}
|
{{ $id := lower (replace .Key " " "-") }}
|
||||||
<div class="archives-group" id="{{ $id }}">
|
<div class="archives-group" id="{{ $id }}">
|
||||||
<h2 class="archives-date section-title"><a href="{{ $.RelPermalink }}#{{ $id }}">{{ .Key }}</a></h2>
|
<h2 class="archives-date section-title"><a href="{{ $.RelPermalink }}#{{ $id }}">{{ .Key }}</a></h2>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
{{- $Width := $image.resource.Width -}}
|
{{- $Width := $image.resource.Width -}}
|
||||||
{{- $Height := $image.resource.Height -}}
|
{{- $Height := $image.resource.Height -}}
|
||||||
|
|
||||||
{{- if (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}
|
{{- if .Page.Site.Params.imageProcessing.cover.enabled -}}
|
||||||
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
||||||
{{- $Permalink = $thumbnail.RelPermalink -}}
|
{{- $Permalink = $thumbnail.RelPermalink -}}
|
||||||
{{- $Width = $thumbnail.Width -}}
|
{{- $Width = $thumbnail.Width -}}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- $pages = $pctx.Pages -}}
|
{{- $pages = $pctx.Pages -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- $pages := where $pages "Params.hidden" "!=" true -}}
|
|
||||||
{{- $limit := .Site.Config.Services.RSS.Limit -}}
|
{{- $limit := .Site.Config.Services.RSS.Limit -}}
|
||||||
{{- if ge $limit 1 -}}
|
{{- if ge $limit 1 -}}
|
||||||
{{- $pages = $pages | first $limit -}}
|
{{- $pages = $pages | first $limit -}}
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
{{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }}
|
||||||
{{ $notHidden := where .Site.RegularPages "Params.hidden" "!=" true }}
|
{{ $pag := .Paginate ($pages) }}
|
||||||
{{ $filtered := ($pages | intersect $notHidden) }}
|
|
||||||
{{ $pag := .Paginate ($filtered) }}
|
|
||||||
|
|
||||||
<section class="article-list">
|
<section class="article-list">
|
||||||
{{ range $index, $element := $pag.Pages }}
|
{{ range $index, $element := $pag.Pages }}
|
||||||
{{ partial "article-list/default" . }}
|
{{ partial "article-list/default" . }}
|
||||||
|
|
|
@ -1,16 +1,13 @@
|
||||||
{{- $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections -}}
|
{{- $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections -}}
|
||||||
{{- $notHidden := where .Site.RegularPages "Params.hidden" "!=" true -}}
|
|
||||||
{{- $filtered := ($pages | intersect $notHidden) -}}
|
|
||||||
|
|
||||||
{{- $result := slice -}}
|
{{- $result := slice -}}
|
||||||
|
|
||||||
{{- range $filtered -}}
|
{{- range $pages -}}
|
||||||
{{- $data := dict "title" .Title "date" .Date "permalink" .Permalink "content" (.Plain) -}}
|
{{- $data := dict "title" .Title "date" .Date "permalink" .Permalink "content" (.Plain) -}}
|
||||||
|
|
||||||
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "articleList") .RelPermalink "articleList" -}}
|
{{- $image := partialCached "helper/image" (dict "Context" . "Type" "articleList") .RelPermalink "articleList" -}}
|
||||||
{{- if $image.exists -}}
|
{{- if $image.exists -}}
|
||||||
{{- $imagePermalink := "" -}}
|
{{- $imagePermalink := "" -}}
|
||||||
{{- if and $image.resource (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}
|
{{- if and $image.resource .Page.Site.Params.imageProcessing.cover.enabled -}}
|
||||||
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
||||||
{{- $imagePermalink = (absURL $thumbnail.Permalink) -}}
|
{{- $imagePermalink = (absURL $thumbnail.Permalink) -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
{{- $Width := $image.resource.Width -}}
|
{{- $Width := $image.resource.Width -}}
|
||||||
{{- $Height := $image.resource.Height -}}
|
{{- $Height := $image.resource.Height -}}
|
||||||
|
|
||||||
{{- if (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}
|
{{- if .Page.Site.Params.imageProcessing.cover.enabled -}}
|
||||||
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
{{- $thumbnail := $image.resource.Fill "120x120" -}}
|
||||||
{{- $Permalink = $thumbnail.RelPermalink -}}
|
{{- $Permalink = $thumbnail.RelPermalink -}}
|
||||||
{{- $Width = $thumbnail.Width -}}
|
{{- $Width = $thumbnail.Width -}}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
{{- $Height := $image.resource.Height -}}
|
{{- $Height := $image.resource.Height -}}
|
||||||
{{- $Srcset := "" -}}
|
{{- $Srcset := "" -}}
|
||||||
|
|
||||||
{{- if (default true .Page.Site.Params.imageProcessing.cover.enabled) -}}
|
{{- if .Page.Site.Params.imageProcessing.cover.enabled -}}
|
||||||
{{- $thumbnail := $image.resource.Resize "800x" -}}
|
{{- $thumbnail := $image.resource.Resize "800x" -}}
|
||||||
{{- $thumbnailRetina := $image.resource.Resize "1600x" -}}
|
{{- $thumbnailRetina := $image.resource.Resize "1600x" -}}
|
||||||
{{- $Srcset = printf "%s 800w, %s 1600w" $thumbnail.RelPermalink $thumbnailRetina.RelPermalink -}}
|
{{- $Srcset = printf "%s 800w, %s 1600w" $thumbnail.RelPermalink $thumbnailRetina.RelPermalink -}}
|
||||||
|
|
|
@ -1,68 +1,20 @@
|
||||||
<!-- Root element of PhotoSwipe. Must have class pswp. -->
|
{{- $opts := dict "minify" hugo.IsProduction "format" "esm" -}}
|
||||||
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
{{- $galleryScript := resources.Get "ts/gallery.ts" | js.Build $opts -}}
|
||||||
|
|
||||||
<!-- Background of PhotoSwipe.
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/photoswipe@5.2.7/dist/photoswipe.css"
|
||||||
It's a separate element as animating opacity is faster than rgba(). -->
|
integrity="sha256-olf9rfn3AG8zR6lkPXkN3PZq63z8tElx7Ela6T4eklo=" crossorigin="anonymous">
|
||||||
<div class="pswp__bg"></div>
|
|
||||||
|
|
||||||
<!-- Slides wrapper with overflow:hidden. -->
|
<script type="module">
|
||||||
<div class="pswp__scroll-wrap">
|
import StackGallery from '{{ $galleryScript.RelPermalink }}';
|
||||||
|
import PhotoSwipeLightbox from 'https://cdn.jsdelivr.net/npm/photoswipe@5.2.7/dist/photoswipe-lightbox.esm.min.js';
|
||||||
|
|
||||||
|
console.log(StackGallery)
|
||||||
|
StackGallery(document.querySelector('.article-content'));
|
||||||
|
|
||||||
<!-- Container that holds slides.
|
const lightbox = new PhotoSwipeLightbox({
|
||||||
PhotoSwipe keeps only 3 of them in the DOM to save memory.
|
gallery: '.article-content',
|
||||||
Don't modify these 3 pswp__item elements, data is added later on. -->
|
children: '.gallery-image a',
|
||||||
<div class="pswp__container">
|
pswpModule: () => import('https://cdn.jsdelivr.net/npm/photoswipe@5.2.7/dist/photoswipe.esm.min.js')
|
||||||
<div class="pswp__item"></div>
|
});
|
||||||
<div class="pswp__item"></div>
|
lightbox.init();
|
||||||
<div class="pswp__item"></div>
|
</script>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
|
|
||||||
<div class="pswp__ui pswp__ui--hidden">
|
|
||||||
|
|
||||||
<div class="pswp__top-bar">
|
|
||||||
|
|
||||||
<!-- Controls are self-explanatory. Order can be changed. -->
|
|
||||||
|
|
||||||
<div class="pswp__counter"></div>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--share" title="Share"></button>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
|
|
||||||
|
|
||||||
<!-- Preloader demo https://codepen.io/dimsemenov/pen/yyBWoR -->
|
|
||||||
<!-- element will get class pswp__preloader--active when preloader is running -->
|
|
||||||
<div class="pswp__preloader">
|
|
||||||
<div class="pswp__preloader__icn">
|
|
||||||
<div class="pswp__preloader__cut">
|
|
||||||
<div class="pswp__preloader__donut"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
|
||||||
<div class="pswp__share-tooltip"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
|
|
||||||
</button>
|
|
||||||
|
|
||||||
<div class="pswp__caption">
|
|
||||||
<div class="pswp__caption__center"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{- partial "helper/external" (dict "Context" . "Namespace" "PhotoSwipe") -}}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{{ $related := (where (.Site.RegularPages.Related .) "Params.hidden" "!=" true) | first 5 }}
|
{{ $related := .Site.RegularPages.Related . | first 5 }}
|
||||||
{{ with $related }}
|
{{ with $related }}
|
||||||
<aside class="related-content--wrapper">
|
<aside class="related-content--wrapper">
|
||||||
<h2 class="section-title">{{ T "article.relatedContent" }}</h2>
|
<h2 class="section-title">{{ T "article.relatedContent" }}</h2>
|
||||||
|
|
|
@ -6,9 +6,7 @@
|
||||||
|
|
||||||
<!-- Build paginator -->
|
<!-- Build paginator -->
|
||||||
{{ $pages := where .Site.RegularPages "Section" "in" .Site.Params.mainSections }}
|
{{ $pages := where .Site.RegularPages "Section" "in" .Site.Params.mainSections }}
|
||||||
{{ $notHidden := where .Site.RegularPages "Params.hidden" "!=" true }}
|
{{ $pag := .Paginate ($pages) }}
|
||||||
{{ $filtered := ($pages | intersect $notHidden) }}
|
|
||||||
{{ $pag := .Paginate ($filtered) }}
|
|
||||||
|
|
||||||
{{ if .Paginator.HasPrev }}
|
{{ if .Paginator.HasPrev }}
|
||||||
<!-- Paginated. Append page number to title -->
|
<!-- Paginated. Append page number to title -->
|
||||||
|
@ -20,8 +18,7 @@
|
||||||
<!-- Taxonomy page -->
|
<!-- Taxonomy page -->
|
||||||
|
|
||||||
<!-- Build paginator -->
|
<!-- Build paginator -->
|
||||||
{{ $notHidden := where .Pages "Params.hidden" "!=" true }}
|
{{ $pag := .Paginate .Pages }}
|
||||||
{{ $pag := .Paginate ($notHidden) }}
|
|
||||||
|
|
||||||
<!-- {TAXONOMY_TYPE}: {TAXONOMY_TERM} -->
|
<!-- {TAXONOMY_TYPE}: {TAXONOMY_TERM} -->
|
||||||
{{ $title = slice (title .Data.Singular) ": " $title }}
|
{{ $title = slice (title .Data.Singular) ": " $title }}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
{{- partial "helper/external" (dict "Context" . "Namespace" "Vibrant") -}}
|
|
||||||
|
|
||||||
{{- $opts := dict "minify" hugo.IsProduction -}}
|
{{- $opts := dict "minify" hugo.IsProduction -}}
|
||||||
{{- $script := resources.Get "ts/main.ts" | js.Build $opts -}}
|
{{- $script := resources.Get "ts/main.ts" | js.Build $opts -}}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{{- $ThemeVersion := "3.16.0" -}}
|
{{- $ThemeVersion := "4.0.0-alpha.0" -}}
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<section class="copyright">
|
<section class="copyright">
|
||||||
©
|
©
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{- $defaultColorScheme := default "auto" .Site.Params.colorScheme.default -}}
|
{{- $defaultColorScheme := .Site.Params.colorScheme.default -}}
|
||||||
{{- if not (default false .Site.Params.colorScheme.toggle) -}}
|
{{- if not .Site.Params.colorScheme.toggle -}}
|
||||||
{{/* If toggle is disabled, force default scheme */}}
|
{{/* If toggle is disabled, force default scheme */}}
|
||||||
<script>
|
<script>
|
||||||
(function() {
|
(function() {
|
||||||
|
|
|
@ -19,7 +19,12 @@
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{ with .Site.Params.favicon }}
|
{{ with .Site.Params.favicon }}
|
||||||
<link rel="shortcut icon" href="{{ . }}" />
|
{{ $favicon := resources.Get . }}
|
||||||
|
{{ if $favicon }}
|
||||||
|
<link rel="shortcut icon" href="{{ $favicon.RelPermalink }}" />
|
||||||
|
{{ else }}
|
||||||
|
{{ errorf "Failed loading favicon from %q" . }}
|
||||||
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{- template "_internal/google_analytics.html" . -}}
|
{{- template "_internal/google_analytics.html" . -}}
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
|
|
||||||
{{- $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 -}}
|
||||||
<meta name="twitter:card" content="{{ default `summary_large_image` .Site.Params.opengraph.twitter.card }}">
|
<meta name="twitter:card" content="{{ .Site.Params.opengraph.twitter.card }}">
|
||||||
<meta name="twitter:image" content='{{ absURL $image.permalink }}' />
|
<meta name="twitter:image" content='{{ absURL $image.permalink }}' />
|
||||||
{{- end -}}
|
{{- end -}}
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
<header>
|
<header>
|
||||||
{{ with .Site.Params.sidebar.avatar }}
|
{{ with .Site.Params.sidebar.avatar }}
|
||||||
{{ if (default true .enabled) }}
|
{{ if .enabled }}
|
||||||
<figure class="site-avatar">
|
<figure class="site-avatar">
|
||||||
<a href="{{ .Site.BaseURL | relLangURL }}">
|
<a href="{{ .Site.BaseURL | relLangURL }}">
|
||||||
{{ if not .local }}
|
{{ if not .local }}
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
{{ if (default false .Site.Params.colorScheme.toggle) }}
|
{{ if .Site.Params.colorScheme.toggle }}
|
||||||
<li id="dark-mode-toggle">
|
<li id="dark-mode-toggle">
|
||||||
{{ partial "helper/icon" "toggle-left" }}
|
{{ partial "helper/icon" "toggle-left" }}
|
||||||
{{ partial "helper/icon" "toggle-right" }}
|
{{ partial "helper/icon" "toggle-right" }}
|
||||||
|
|
|
@ -10,9 +10,7 @@
|
||||||
<h2 class="widget-title section-title">{{ T "widget.archives.title" }}</h2>
|
<h2 class="widget-title section-title">{{ T "widget.archives.title" }}</h2>
|
||||||
|
|
||||||
{{ $pages := where $context.Site.RegularPages "Type" "in" $context.Site.Params.mainSections }}
|
{{ $pages := where $context.Site.RegularPages "Type" "in" $context.Site.Params.mainSections }}
|
||||||
{{ $notHidden := where $context.Site.RegularPages "Params.hidden" "!=" true }}
|
{{ $archives := $pages.GroupByDate "2006" }}
|
||||||
{{ $filtered := ($pages | intersect $notHidden) }}
|
|
||||||
{{ $archives := $filtered.GroupByDate "2006" }}
|
|
||||||
|
|
||||||
<div class="widget-archive--list">
|
<div class="widget-archive--list">
|
||||||
{{ range $index, $item := first (add $limit 1) ($archives) }}
|
{{ range $index, $item := first (add $limit 1) ($archives) }}
|
||||||
|
|
|
@ -20,7 +20,7 @@ features = [
|
||||||
"search",
|
"search",
|
||||||
]
|
]
|
||||||
|
|
||||||
min_version = "0.87.0"
|
min_version = "0.100.0"
|
||||||
|
|
||||||
[author]
|
[author]
|
||||||
name = "Jimmy Cai"
|
name = "Jimmy Cai"
|
||||||
|
|
Loading…
Reference in a new issue