* 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
* Add first try at scrollspy (broken right now)
* Scrollspy actually works now
* Fix VS Code errors by setting JS version
* Recompute offsets when window size changes
* Improve list compatibility for toc active selection
Support up to 6 levels of indentation, properly support <ol>
* Remove debug string
* Add more docs in smoothAnchors
* Use a map to match ids to navigation elements
* refactor(search): avoid issue with one character keyword
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/184
* Remove keyword sorts
* fix typo: secion -> section
* fix(search): avoid matching html entity
* Use | operator to concatenate keywords
Idea from https://github.com/CaiJimmy/hugo-theme-stack/pull/436
* Add missing `matchCount`
* Limit preview length
* Don't add ellipsis to title
* add comment to `processMatches`
* Initialize DOMParser only once
* Remove marker function
* Deal with blank search
* Use const keyword for constant arrays
* fix: take out [data-scheme="dark"] from :root
Taking out the [data-scheme="dark"] from :root allows us to fix the
precedence of CSS when the [data-scheme="dark"] is placed in the <html>
tag. This is needed in order to make the dark styles accesible from the
<html> elment, this will allow us to change the vertical scrollbar
styles following the dark and light schemes.
* change document.body.dataset.scheme to document.documentElement.dataset.scheme
When the dark mode is on or when the light mode is on, the
[data-scheme="light"] or [data-scheme="dark"], respectively, will be
placed in the <html> tag. Allowing us to access the dark and light color
schemes from the <html> to change the vertical scrollbar styles
according to the current color scheme.
* feat: change the page vertical scrollbar styles
This change will make the vertical scrollbar styles to follow the dark
and light color scheme modes. Also, this change will make the vertical
scrollbar to look consistent in both, Chromium and Firefox.
* make the scrollbar-track background-color transparent
The body has this transition: 'transition: background-color 0.3s ease
0s'. Making the scrollbar-track background-color transparent allow us to
appreciate that transition in the scrollbar-track when switching the
background-color.
* Move [data-scheme=dark] back to :root block
* fix(comment/waline): detect dark mode from html tag
* feat: apply custom scrollbar style to all elements
Co-authored-by: Jimmy Cai <jimmehcai@gmail.com>