* Add feature to disable robots.txt and sitemap.xml from the config file.
Addresses feature request #2248
* Add documentation for no_sitemap & no_robots
* Rename no_robots and no_sitemap into generate_robots_txt and generate_sitemap (default to true)
* fix rustfmt issues
* Change documentation to show defaults
* Update documentation for the fields generate_sitemaps (resp. robots_txt), now that the default is true and false is needed to disable
* 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*
* adding optional `lang` arugment to `get_section` global function
* Add handling of default language passed in `lang` argument of `get_section`
* Remove clones for path. Change "?" to an explicit check for error
* lint changes
* Clean up error handling for add_lang_to_path call
* fix format
* Add optional parameter "lang" to get_page template function. Add check for language available in config.
* Modify helper function name from calculate_path to get_path_with_lang. Modify documentation for get_section and get_page to include equivalent calls without using lang argument to demostrate how lang argument effects pathing.
* Remove ensure_directory_exists since it's identical to create_directory, and misleading
* Don't create directories unless needed; rely on create_dir_all instead of manually iterating over components
* Fixed "unnecessary mut" warning
* Fixed minor typo
* Use more than 8 threads for links checking if hardware supports it
* Fixed failing azure Linux check
* Avoid unnecessary HTTP requests to the same, already checked links
* templates:atom: add support for multiple authors
Atom 1.0 [0] support multiple `<author>` entries in the feed. This commit
modified the template to generate as many `<author>` as the page's
metadata contains.
[0] https://validator.w3.org/feed/docs/atom.html#recommendedEntryElements
* Test we can have multiple authors in ATOM feeds
The W3C feed validator fails to validate RSS 2.0 and Atom 1.0 feed
elements that do not contain a valid author. This change adds an
`authors: Vec<String>` to pages, as well as an `author: Option<String>`
to Config that will act as a default to use in RSS and Atom templates if
no page-level authors are specified.
* 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