* Split checking for theme template off into separate function
Allows to check for fallbacks elsewhere in the code, without attempting to actually render the template.
* Add template fallback checking to taxonomy pages.
* Add template fallback checking to paginated taxonomies
Requires passing additional arguments to Paginator::from_taxonomy, which may not be desirable.
* Update documentation to reflect taxonomy template fallbacks.
* Update generic taxonomy template names.
* Make check_template_fallbacks() return &str.
* Add tests for check_template_fallbacks
* Next version
* Added tests for shortcode insertion
* Added TOC tests
* Added test for #1475 and #1355
* Basic internal / external links tests
* Added integration test
* Added pseudocode and started on logos
* Logos parsing for shortcodes
* Fixed string literal parsing
Moved string literal parsing to a new lexer in order to have greater
control of control characters which are parsed. This fixes the bug that
was present in the `string_from_quoted` function and also moves the
`QuoteType` to be in the `ArgValueToken`.
* Moved string literal logic to seperate module
* Added square bracket notation for variables
* Error handling rewritten
Remove the Result from the `fetch_shortcodes` function. Added proper
messages within the internal parsing.
* Reorganized and documented the shortcode submodule
* Added all logic for ShortcodeContext spans
* Added working insertion code for MD files
* Made functions generic over Markdown or HTML
* Add check for embedding bodies
* Structure of main function clear
* Added test for `new_with_transforms` function
* It runs!
* Added the code for handling p-ed html shortcodes
* Removed placeholders in markdown function
* Adjusted integration tests
* fetch_shortcodes now also returns a string
* Start of HTML insertion
* Kinda working everything
* Loading of shortcodes and builtins
* Fix tests
* Some missed fixes
* Tweaks + fmt
* Remove string literal handling
* Fix benches
* Grab shortcode def only once per site
* Fix benches
* Rewrite of parser
* Fix tests
* Add test for #1655
* Re-enable integration test
* Add test for #1601
* Add test for #1600
* Add test for #1500
* Add test for #1320
* Fix test on windows?
Co-authored-by: Gijs Burghoorn <g.burghoorn@gmail.com>
* Consider the site's output path in search_for_file
The search_for_file helper function now accepts an optional
output path. If passed, the file will also be searched there.
This is used in the get_url function to search in the
Site::output_path.
In practice, this means cachebust works for files in the
output path.
* Make output_dir required in search_for_file
* Update docs for file searching logic
* Add test for new file searching behavior
* cargo/manifests: allow user to use native-tls ...
... if `ring` can't be used on the user's platform (e.g. mips/ppc/riscv)
* CI: test for native tls build
* Add class based syntax higlighting + line numbers
* Use fork of syntect for now
* Fix tests
* Fix diff background on inline highlighter
Co-authored-by: evan-brass <evan-brass@protonmail.com>
* Add `num_format` filter for displaying formatted numbers
* Register the filter
* Update docs
* Make `locale` argument required
* Revert "Make `locale` argument required"
This reverts commit 9cdbf28591.
* Pull the default locale from the site config
* Add note about defaults to the docs
* Add missing borrow
* link_checking: prevent rate-limiting
Fix for https://github.com/getzola/zola/issues/1056.
- assign all links for a domain to the same thread
- reduce number of threads from 32 to 8
- add sleep between HTTP calls
* Add get_link_domain(), use for loops
* Do not sleep after last link for domain
* Avoid quadratic complexity
* remove prints
This updates rendered markdown structures in order to keep track
of all internal links, not anymore limiting to only those targeting
an explicit anchor fragment.
The goal of this rework is to allow building other features, such
as backlinks, on top of the existing collection of internal links.
* Translations are also generated for the index page (fix#1332)
* More tests for translations
* Even better error message
* Update page count for test
* Patch to fix Windows tests
By @mtolk
Co-authored-by: southerntofu <southerntofu@thunix.net>
* Add support for base64-encoded hash values
The global template function 'get_file_hash' can now return a
base64-encoded hash value when its 'base64' parameter is set to true.
See discussion in #519.
* Fix integrity attribute's value in test site
SRI hash values must be base64-encoded.
* Update documentation about 'get_file_hash'
* Fix 'can_get_hash_for_static_files' unit test
* Move `load_tera` to `templates`
I don't know if this is a good place for it, conceptually. I'm moving it
there because I need to use it from `templates`, and `templates` can't
depend on `site`, because there's already a dependency in the opposite
direction.
* Load templates in `markdown` filter
This enables the `markdown` filter to handle shortcodes, as long as
those shortcodes don't access any context variables.
Addresses #1350
* Update documentation of `markdown` filter
* Only load templates for `markdown` filter once
* Clarify `markdown` filter documentation
This is a lightly edited version of what @southerntofu suggested.
* Internal links are resolved in tera markdown filter (close#1296#1316)
* Add a test for internal links in markdown filter
Co-authored-by: southerntofu <southerntofu@thunix.net>
This introduces `relative-path`, a crate I've written for the specific
purpose of providing platform-neutral operations over paths the same way
they are used in URLs.
This means that `///hello///` == `/hello`, which should do the same as
the existing stripping minus the platform-specific path separators
causing the [bug being referenced](#1169).
* Allow site path to contain underscores
Fixes site.css is not being generated if any part of the path contains
underscores
* Add tests for path with underscores