* Added support for multiple feeds
* Implemented backwards-compatibility for feed config
* Added a test for feed config backwards-compat, fixed bugs
- Fixed language config merge bug found by a test
- Adjusted two existing tests to fully check stuff related to multiple feeds
- Added a new test for backwards-compatibility of the changes
- Fixed bugs found by the newly added test
* Renamed MightBeSingle to SingleOrVec
* Made the multiple feeds config changes "loudly" backwards-incompatible
* added #[serde(deny_unknown_fields)] to front-matter, fixed problems this found in tests
* inital "just barely works" Fuse.js support
* implement FuseJavascript; refactor index_for_lang
* support search config
* move fuse index building to it's own file
* update doc of Search.index_format
* update config docs
* update search documentation
* use &str where possible
* use libs::serde_json
remmeber to commit Cargo.lock
* move extension logic to IndexFormat
* move the entire filename logic inside IndexFormat
* move elasticlunr to it's own module
* only create elasticlunr.min.js if we're actually using elasticlunr
* move ELASTICLUNR_JS to elasticlunr.js
* hide the details of search's submodules
* optionally include path
* explain include_path better
* remove references to stork
* replace if with match
* support include_description
* specify "permalink"
* move body cleaning and truncation to a function
* update truncate_content_length docs to specify *code points*
* Implemented bottom footnotes with backreferences
Fixes#1285
* Added bottom_footnotes option to configuration.md
* Renamed fix_github_style_footnotes()
* Added tests for convert_footnotes_to_github_style()
* Changed test to plain html instead of Vec<Event>
* Added integration test for footnotes
* Applied suggested changes
* Introduce option to force directory when running the serve command
* Update documentation about the force flag on the serve command
* Resolve cargo fmt issue
* Reword new serve flag documentation
* Add optional decoding="async" loading="lazy" for img
In theory, they can make the page load faster and show content faster.
There’s one problem: CommonMark allows arbitrary inline elements in alt text.
If I want to get the correct alt text, I need to match every inline event.
I think most people will only use plain text, so I only match Event::Text.
* Add very basic test for img
This is the reason why we should use plain text when lazy_async_image is enabled.
* Explain lazy_async_image in documentation
* Add test with empty alt and special characters
I totaly forgot one can leave the alt text empty.
I thought I need to eliminate the alt attribute in that case,
but actually empty alt text is better than not having an alt attribute at all:
https://www.w3.org/TR/WCAG20-TECHS/H67.htmlhttps://www.boia.org/blog/images-that-dont-need-alternative-text-still-need-alt-attributes
Thus I will leave the empty alt text.
Another test is added to ensure alt text is properly escaped.
I will remove the redundant escaping code after this commit.
* Remove manually escaping alt text
After removing the if-else inside the arm of Event::Text(text),
the alt text is still escaped.
Indeed they are redundant.
* Use insta for snapshot testing
`cargo insta review` looks cool!
I wanted to dedup the cases variable,
but my Rust skill is not good enough to declare a global vector.
* search: Add support for a JSON index
* docs: Document JSON index for search
* docs: Use lazy-loaded JSON index
* Add elasticlunr prefix to search engine format configuration
This will be useful if support for more search libraries are added in the future
* Add flag to override prompt for existing dir
Added --force flag to build subcommand.
* Remove unnecessary 'force' check
* Remove prompt to overwrite directory on build cmd
Currently the Configuration docs says to load syntax files into
config.toml [markdown] extra_syntaxes. However, ever since commit
23064f57c8 (released in Zola v0.15.0), the extra_syntaxes property was
replaced by extra_syntaxes_and_themes, and used as both syntax and color
theme search paths. Following the docs and trying to set the
extra_syntaxes property does nothing, and #1723 ran into this issue.
Change the docs to consistently reference extra_syntaxes_and_themes.
* add external_level and internal_level
* remove unnecessary debug derive on LinkDef
* clarify doc comment about link check levels
* simplify link checker logging
* add missing warn prefix
* simplify link level logging, remove "Level" from linklevel variants
* remove link level config from test site
* switch back to using bail! from get_link_domain
* move console's deps to libs
* remove unnecessary reference
* calling console::error/warn directly
* emit one error, or one warning, per link checker run
* various link checker level changes
* add docs about link checker levels
* remove accidentally committed test site
* remove completed TODO
Having to change the base URL to whatever ngrok URL was provisioned for
me was frustrating. This patch enables setting it to `/`, which will
then make the `get_url()` function simply return `/`.
* Make ignored_content work with directories
Just had to remove strip_prefix(path) from file ignore code.
Added tests for subdirectory globbing.
* Add documentation
* add more tests
to confim that simple filename globs still match paths
without strip_prefix