* 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>
* Allow optional whitespace around dash/underscore in filename
Allow file names that are as follows:
2021-01-01 - test.md
To be parsed the same as if they were
2021-01-01-test.md
The slug for both will now just be "test" instead of previously the
first example would have become "2021-01-01-test".
* Add documentation for optional whitespace in filename
* Test that updated regex does not take space after dash
Without content it should be possible to create a file that contains no
newlines after the frontmatter at all, rather than forcing a newline
after the frontmatter.
* 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.
* load_data() template function takes a `required` boolean flag
* Update tests for load_data()
* Add test to make sure invalid data always fails in load_data
* Better documentation, fixing a few typos
Co-authored-by: southerntofu <southerntofu@thunix.net>
* Add sort_by=title
* Remove old comment.
* Remove println! debugging
* Minor: text spacing
* Use lexical_sort crate for sort_by title
Co-authored-by: David James <davidcjames@gmail.com>
* 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>
* Highlight fallback from extra syntaxes to the theme (close#1309)
* Warning when codeblock language is unknown and cannot be highlighted
* page/section path in codeblock language missing warning
Co-authored-by: southerntofu <southerntofu@thunix.net>
* add shortcode 'invocation' variable to allow a shortcode to track how many times it has been invoked in a given Markdown file
* use closure (implicit struct) instead of explicit struct for invocation tracking
* update variable name to "nth"
* Accept dates presented as strings
Still, if we find a string we involve the TOML parser to make sure the
content of said string would be a correct TOML date. In a pure TOML
world this isn't exactly relevant, but this will come in handy when
using a YAML deserializer.
Signed-off-by: Kevin Ottens <ervin@ipsquad.net>
* Add serde_yaml and test-case dependencies
This will be necessary for the YAML frontmatter handling and
corresponding unit tests.
Signed-off-by: Kevin Ottens <ervin@ipsquad.net>
* Add YAML front matter handling
Signed-off-by: Kevin Ottens <ervin@ipsquad.net>
* Switch RawFrontMatter enum to wrap &str instead of String
Signed-off-by: Kevin Ottens <ervin@ipsquad.net>
* Update the documentation to mention YAML frontmatter
This is just a light update on purpose. There would be no point in
pushing YAML too much, this is mainly here to help people with a backlog
of posts to transition.
Signed-off-by: Kevin Ottens <ervin@ipsquad.net>
* Add support for loading Bibtex data.
* Add load_data() documentation for the bibtex format
* Force bibtex tags to be lower case.
Bibtex tags are case-insensitive, and this works around tera's case-sensitiveness.
* Improve the load_data() documentation for the bibtex format
* Next version
* Remove lines forcing minify_html to false
* Update documentation about minify_html
* Update changelog
Co-authored-by: Vincent Prouillet <balthek@gmail.com>
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
* Add line highlighting to code blocks
* Fix highlighting of lines
Apparently every line to be highlighted is provided in one chunk.
* Add more documentation to codeblock.rs
* Turn FenceIter into an Iterator
* Move Range to fence.rs
* Add tests
* mention code block output change
* Update snap
* Update themes gallery (#1082)
Co-authored-by: GitHub Action <action@github.com>
* Deployment guide for Vercel
* Change wording a bit
* Update themes gallery (#1122)
Co-authored-by: GitHub Action <action@github.com>
* Add feed autodiscovery documentation (#1123)
* Add feed autodiscovery documentation
* Fix link in template
* Docs/configuration update (#1126)
* Update configuration documentation
- Attempt to split the configuration file into sections to make it more readable and
avoid configuration mistakes (#1056).
- Move translation instructions to the right part.
- Add a bit more explanations to the extra section.
* Take into account @Keats feedbacks
* Remove short notice about translation usage
- A i18n page should be created to better explain it.
* add fix for (#1135) Taxonomies with identical slugs now get merged (#1136)
* add test and implementation for reverse pagination
* incorporate review changes
Co-authored-by: Michael Plotke <bdjnks@gmail.com>
Co-authored-by: Vincent Prouillet <balthek@gmail.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Samyak Bakliwal <w3bcode@gmail.com>
Co-authored-by: René Ribaud <uggla@free.fr>
* Doc add a missing arg to `get_taxonomy_url` (#1139)
This feature is already exist, but not in the doc yet
Related #766
* Add minify support
* Add documentation
* Code review
* Fix error in documentation
* Update minify-html to 0.3.6
* Move minify into write_content function
* Fix multiple calls to minify()
* Add test for minified output
* Fix breaking test
Co-authored-by: Ken <2770219+ken0x0a@users.noreply.github.com>
* Per section/subsection feeds
* Added `generate_feed` variable to section front matter.
* Generate atom/rss feeds for sections/subsections that have the
`generate_feed` variable set to true (false by default); this works
independent of the `generate_feed` variable in the root `config.toml`
file, however, the name (and template) of the feed file for each section
is the same as `feed_filename` in `config.toml`, just located in the
root of each section.
* Slightly edited `atom.xml` and `rss.xml` so that they include the
section title (if any), and the url of a section, if it's a section
feed.
* Section feeds: tests
* Changed a couple of sections' front matter in order to generate feeds
for them for the test.
* Changed the can_build_feed test in site package to can_build_feeds and
included some assertions to make sure that section feeds are generated
when requested.
* Section feeds: documentation
* Added information about the section front matter variable
`generate_feed` in the section content page.
* Added information about section feeds in the feeds template page.
* Section feeds fix: use section.path for feed path
* add fix for (#1135) Taxonomies with identical slugs now get merged (#1136)
* update templates so they propperly render taxonomy names
* squash! add fix for (#1135) Taxonomies with identical slugs now get merged (#1136)
reimplement taxonomy deduping
* revert unwanted changes to templates
* add tests for unic in permalinks
* add tests for unic in permalinks
* Change zola serve to load HTML from memory instead of disk
* Be smart about assets copying
* Be a tiny bit smarter on template changes
* Add zola serve --fast
* Make {section, page}.path always start with a slash
Change tests accordingly
* Fix missing leading/trailing slash in current_path of Taxonomy ("tags") and TaxonomyItem ("some-tag")
* Make {Paginator, Pager}.path always start with a slash
Fix Paginator.path missing trailing slash in from_taxonomy()
Change tests accordingly
* Update documentation regarding current_path now always starting with a slash
* Fix asymptomatic inverted logic in filter() for {section, page}.assets
* Add to 3 integration tests several checks for current_path in different templates
* Add a check for current_path in a paginated index section, "/page/2/"
This requires adding two dummy pages in the content root.
* Fix false passing of test on paginator.last due to URL prefix matching
A string formatting such as {name: value} can help prevent this.
* Replace hack for newline support in shortcodes with new hack
* Be a bit more space efficient/accurate with naming
* Boil newline/whitespace shortcode test down to the essentials
* Make sure the new \n and \s chars in old tests are properly represented
* Support markdown templates and shortcodes
* Refactoring .md/.html shortcode behaviour
* Add test for markdown shortcodes
* Add an html output test for markdown based shortcodes
* Add documentation for Markdown based shortcodes
* Tables in config.extra can be merged with those in theme.extra
* Don't panic with invalid config type, but propagate an error
* Recursively merge config/theme extra sections
Co-authored-by: southerntofu <southerntofu@thunix.net>
* Update sitemap.rs
When paginate_by is zero, set number_pagers to 1 so at least 1 sitemap section is pushed
* paginate_by updates
Introduce section.paginate_by, use value if it exists, removes now
unnecessary filter
Co-authored-by: Justin Turpin <justinturpin@pop-os.localdomain>