mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2024-11-23 18:31:45 +01:00
8a597a5c9c
* 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
47 lines
No EOL
1.1 KiB
TypeScript
47 lines
No EOL
1.1 KiB
TypeScript
/*!
|
|
* Hugo Theme Stack
|
|
*
|
|
* @author: Jimmy Cai
|
|
* @website: https://jimmycai.com
|
|
* @link: https://github.com/CaiJimmy/hugo-theme-stack
|
|
*/
|
|
import StackCodeBlock from "ts/codeblock";
|
|
import menu from 'ts/menu';
|
|
import createElement from 'ts/createElement';
|
|
import StackColorScheme from 'ts/colorScheme';
|
|
import { setupScrollspy } from 'ts/scrollspy';
|
|
import { setupSmoothAnchors } from "ts/smoothAnchors";
|
|
|
|
let Stack = {
|
|
init: () => {
|
|
/**
|
|
* Bind menu event
|
|
*/
|
|
menu();
|
|
|
|
const articleContent = document.querySelector('.article-content') as HTMLElement;
|
|
if (articleContent) {
|
|
setupSmoothAnchors();
|
|
setupScrollspy();
|
|
}
|
|
|
|
new StackColorScheme(document.getElementById('dark-mode-toggle'));
|
|
StackCodeBlock();
|
|
}
|
|
}
|
|
|
|
window.addEventListener('load', () => {
|
|
setTimeout(function () {
|
|
Stack.init();
|
|
}, 0);
|
|
})
|
|
|
|
declare global {
|
|
interface Window {
|
|
createElement: any;
|
|
Stack: any
|
|
}
|
|
}
|
|
|
|
window.Stack = Stack;
|
|
window.createElement = createElement; |