Revamp the existing translation system, simplifying
management and adding several new languages. The new system reads from
TOML files in the `/i18n` directory and improves template structures.
It also enhances customisation options and robustness by providing
fallbacks and modularity.
- Implement a new, streamlined translation macro.
- Load translations from `/i18n` TOML files.
- Remove redundant configuration requirements.
- Refactor templates to align with new i18n system.
- Add support for Hindi, Japanese, Russian, Portuguese, Chinese,
Italian, German, Ukranian, Korean, and French languages.
- Credit Thomas Weitzel (@thomasweitzel) for inspiration.
- Introduce `toc_ignore_pattern` to ignore specific headers based on regex.
- Allow custom ToC placement with shortcode or "<!-- toc -->" marker.
- Increase max depth for ToC to 4.
- Update Documentation for the above features.
- Move ToC generation to a macro file.
The `initialize-theme.js` script takes care of the following:
1. If there is a stored theme value in the localStorage, set the theme
based on that value.
2. If there is no stored theme value, check the user's system
preference (dark or light) and set the theme accordingly.
The new `main.js` takes care of the actual theme switching and listening
to system preference changes (if the user has not manually set a theme).
Now the icons are stored in CSS, and are set according to the current
theme. This allows for having different icons that dynamically switch.
Additionally, wraps social and navigation elements in ul/li.
Fixes#76
- Use `get_url` function to generate correct image paths
- Retrieve image dimensions with `get_image_metadata` function
- Update shortcodes: dimmable_image, dual_theme_image, and invertible_image
These changes reduce layout shifts.