* 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
* Make long KaTeX equations scrollable in the x-axis
Suggested from: https://katex.org/docs/issues.html, I have tested it adding a long equation and activating a phone user agent.
* refactor: move KaTeX style to article.scss
* Add quote shortcode, and example
* Use trim to improve whitespace
* Allow for quote with neither author nor source
* Format code and move quote.scss to article.scss
This style is only used on the article page, so it makes more sense to have it there.
Co-authored-by: Jimmy Cai <github@jimmycai.com>
* add LanguageDirection variable
* add .direction-rtl and .direction-ltr clases
* margin -right > margin-inline-end
* keep Codeblocks LTR
* switch to logical properties
* left -> inset-inline-start
* Add Arabic/RTL placeholder text
* Add arabic language
* remove space
* use Html Dir instead of class
* Move codeblock code to layout/article.css and fix 4 spaces codeblocks
* remove unused clases
* 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
* add comment provider: DisqusJS
* Simplify `if` condition, and format code
* Load disqusjs.scss only when it's enabled
* Use `let` instead of `var`
Co-authored-by: sspirits <admin@lv5.moe>
Co-authored-by: Jimmy Cai <github@jimmycai.com>
* Use markdownify for licence in article
So we can use links, e.g. to credits for main photo.
* refactor: move .article-copyright style to partials/layout/article
Co-authored-by: Jimmy Cai <github@jimmycai.com>
* add reading time feature
* Revert change in jsconfig.json
* feat: add article.readingTime param, and improve style
* Revert change in jsconfig.json x2
* Remove reading time in compact layout
It doesn't look right to me for now
* feat: add i18n support to reading time string
* Hide footer.article-time when there's not content
Co-authored-by: Jimmy Cai <github@jimmycai.com>
Currently, the new table of contents is disabled by default. I will change that after several versions.
-------------
* feat: Table of Content (WIP)
* fix: set scratch inside define block
* fix(toc): darkmode text color
* feat: unify page layout, and add config to disable toc
* feat: add scroll-behavior: smooth to html
* fix: use <ol> for TOC. And Disable TOC by default for now
* refactor: use css flexbox for article page with toc
enable toc for example site
* feat(i18n): add i18n entry for "Back" and "Table of Contents"
* style: remove unused `keep-sidebar` class
* doc: add table of contents as feature
* 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>
* refactor(WIP): add new SCSS mixin `respond`
Theme's stylesheet mixes the use of max-width and min-width for responsive design, and it's horrible.
* refactor: update variable.scss to use @mixin respond
* refactor(grid): adjust sidebar max-width
* refactor(partials/article.scss): use `@include respond`
* refactor(layout/article.scss): delete unused SCSS and migrate to `@include respond`
* Adjust left sidebar max-width on xl screen
* fix: right sidebar not sticky
* refactor(breakpoint): simplify `@mixin respond`
* refactor(breakpoints): improve warning message
* fix(breakpoint): return only the requested breakpoint
* fix: add missing padding to .article-details