All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- add(integrations): support integrations with MaterialX theme, fork of Material for Mkdocs by @Guts in #437
- Quality: customize ruff config, extend git hooks and apply changes by @Guts in #438
- Improve: stylesheet render after first feedbacks by @Guts in #435
- feature(rss): add option to set a stylesheet by @Guts in #432
- update(packaging): declare plugin compatible with ProperDocs by @Guts in #431
- update(packaging): support Python 3.14 by @Guts in #433
- fix(integration): Material Social Card URI was wrong for Material blog posts when diretcory URL are disabled at Mkdocs level by @Guts in #420
- fix(tests): use icon from GH repository since Wikimedia returns HTTP 429 by @Guts in #419
- fix(integration): Material Social Card URI was wrong for Material blog posts by @Guts in #418
- fix(integration): imports from Material for Mkdocs blog plugin for type hint was breaking the build when using another theme by @Guts in #409
- update(chore): bump minimal version of Material for Mkdocs since 9.7.x and fix related bugs by @Guts in #405
- improve(integrations): refine some logs about Material integrations by @Guts in #406
- fix(xml): escape special chars from site_author (
<managingEditor>) by @Guts in #401
- improve(performances): run RSS item image fetching only on filtered pages list by @Guts in #394
- Packaging: switch to pyproject by @Guts in #399
- update(security): set GH token permissions scopes in CI workflows by @Guts in #400
- Packaging/remove-python-3_9-add-3_14 by @Guts in #397
- fix(packaging): rollback support for Python 3.14 by @Guts in #402
- fix(logs): update references hyperlinks for git depth logs by @Guts in #384
- fix(material): mkdocs_config.plugins.get("material/blog") can be None by @Guts in #392
- fix: preserve sentence structure across newlines by @miketheman in #378
- improve(images): add timeout to remote images requests by @Guts in #391
- @miketheman made their first contribution in #378
- fix: return None if remote image length is unavailable by @lukehsiao in #370
- @lukehsiao made their first contribution in #370
- fix(upstream): force jsonfeed-util version since it uses a non Python 3.9 syntax, breaking lint and tests by @Guts in #355
- Docs: fix mkdocstings config and improve api autodoc by @Guts in #357
- fix(material_social): use cards_dir to build cards url for page by @kanru in #354
- Revert 355: restore minimal JSON Feed minimal version by @Guts in #362
- @kanru made their first contribution in #354
- fix(rss): email and name were inverted in output and so uncompliant by @Guts in #343. Thanks @stefansli for the floow up in #250.
- update(docs): move integrations page as independant menu by @Guts in #344
- refacto(material_integrations): use POO to manage integrations with Material theme framework by @Guts in #335
- update(chore): use typed dataclasses instead of dict by @Guts in #337
- feature(integration): make the integration with Material Blog configurable through an option by @Guts in #339
- Feature: use author name and email from
.authors.ymlset up in Material Blog by @Guts in #340
- update(ci): enable manual trigger for build/publish doc by @Guts in #338
- Make match_path OS agnostic by @mvelikikh in #323
- feature(integration): support social cards for blog plugin posts by @Guts in #326
- Remove social options from example by @Andre601 in #316
- Packaging: drop python 3 8, add 3.13 support by @Guts in #327
- feat: allow per-page description customization by @meysam81 in #310
- @meysam81 made their first contribution in #310
- Update docs for
as_update(boolean not supported anymore) by @brapoprod in #306 - improve(remote_images): handle connection error by @Guts in #307
- act depending on the used Mkdocs command and disable remote images length fetching to avoid HTTP errors by @Guts in #311
- Feature: add http caching mechanism by @Guts in #309
- improve(http): disable warnings for unverified requests by @Guts in #308
- @brapoprod made their first contribution in #306
- fix incompatible option type for Python < 3.10 and restore Python 3.8 and 3.9 by @Guts in #304 and @pawamoy in mkdocs/mkdocs#3753 (comment)
- hotfix: bad default_time value type introduced in #300 by @Guts in #302
- Feature: add per-feed custom titles and abstracts by @toomanybrians in #295
- Improve: convert docstrings to google convention by @Guts in #298
- fix(config): do not raise error for bad date_from_meta.default_time value and fallback to default by @Guts in #300
- @toomanybrians made their first contribution in #295
- Fix remote image length warnings using requests instead of urllib (standard lib) by @Guts in #289
- refacto(cleanup): remove python 3.9 related code and deps (timezone) by @Guts in #288
- improve(logs): enhance some logs and type hints by @Guts in #293
- Feature: improve social cards integration by @Guts in #294
- feature: allow customize output filenames by @Guts in #278
- feature: allow multiple instances by @Guts in #280
- chore: set minimal python version to 3.10 by @Guts in #286
- chore(deps): set minimum Mkdocs version to 1.4 by @Guts in #283
- Refacto: modernize config date from meta by @Guts in #285
- ci: use trusted publisher and remove token by @Guts in #271
- tooling: add SonarCloud config by @Guts in #279
- Documentation: improve guide how to make JSON feed discoverable by @Guts in #272
- Docs: order settings aZ and minor improvements by @Guts in #281
- docs: complete JSON schema with latest features by @Guts in #282
- docs: fix internal links by @Guts in #284
- Fix: abstract limit by @tiosgz and @Guts in #268
- ci: fix missing Codecov token by @Guts in #269
- Update docs on locale configuration by @YDX-2147483647 in #256
- fix: stripped time from meta date as datetime by @Guts in #248
- docs: fix indentation of nested lists by @YDX-2147483647 in #242
- Implement JSON Feed output by @notpushkin and @Guts in #177
- docs: add how to make JSON Feeds discoverable by @Guts in #240
- tests: check JSON feed validity by @Guts in #239
- @notpushkin made their first contribution in #177
- fix #229 allow date.created to get creation date by @copdips in #237
- @copdips made their first contribution in #237
- improvement: if social card not found, try to retrieve length from remote URL by @Guts in #225
- ci: add a link between release and discussion by @Guts in #224
- docs: explicitly enable plugins with env vars by @Guts in #227
- docs: add API autodocumentation with mkdocstrings by @Guts in #226
- Feature: support material social cards plugin by @Guts in #217
- feature: use plugin logger as recomended by Mkdocs (road to Mkdocs>=1.4) by @Guts in #221
- quality: add tests against social cards integration by @Guts in #222
- ci: set PyPi environment by @Guts in #215
- docs: switch to Material theme and revamp sections by @Guts in #216
- docs: add missing git_use option by @Guts in #218
- Documentation: fix anchors in JSON schema by @Guts in #220
- fix: deprecation of Theme._vars by using config attributes by @Guts in #212 thanks to the excellent work of @alexvoss on #205 and #206
- Road to Mkdocs >= 1.4: plugin's configuration by @Guts in #195
- Road to Mkdocs 1.4: use config attributes by @Guts in #211
- Project: split dev and test dependencies by @Guts in #213
- refacto: move global variables to constants module and rename customtypes into models by @Guts in #210
- packaging: add Python 3.12 as supported version by @Guts in #214
- Fix tests config by @Guts in #196
- Add option to enable/disable git use. by @Guts in #187
- Fix tests: restore missing
__init__.pyfile to make tests a subpackage by @Guts in #190
- Comply language codes with RSS Spec by @YDX-2147483647 in #178
- Documentation: housekeeping dependencies and CI by @Guts in #175
- Doc: typo & tips by @YDX-2147483647 in #179
- Improve: strip image URL to avoid common errors by @Guts in #180
- Dev tooling: extend git hooks by @Guts in #189
- Improve: handle missing site url by @Guts in #150
- Upgrade git hooks to fix fail because of isort by @Guts in #170
- Tests: more use cases, better coverage by @Guts in #152
- Handle abstract_chars_count set to 0 by @Guts in #172
- Add new option abstract_delimiter by @Guts in #173
- Add Python 3.11 to supported versions by @Guts in #157
- Just a little refresh on CI workflows by @Guts in #158
- CI : disable fail fast on tests matrix to get all Python versions results by @Guts in #159
- CI: sse GA to deploy to GH Pages instead of ghp-import by @Guts in #171
- Remove Python 3.7 support by @Guts in #174
- Feature: ignore pages with draft:true in meta by @Guts in #149
- Require tzdata only on Windows by @Guts in #148
- Set Mkdocs upper cap to major version by @Guts in #146 to comply with the discussion opened by @oprypin in #137
- Feature: add default_time option by @Guts in #145
- Minor improvements: clean unused imports, lines length and use fstrings in logging by @Guts in #143
- Improvement: more granular fallback to build timestamp by @Guts in #144
- Feature: add option to set default timezone by @Guts in #142
- compatibility with Mkdocs 1.4
- dependencies update
- switched license to MIT. (See #117)
First stable release according to semver.
So, no feature in this release, just focusing on quality and code cleanliness.
- Unit tests to reach a 80% coverage score
- Supported Mkdocs versions range increased to
mkdocs>=1.1,<1.4
- Minor bugs fixes
- Minor documentation improvements
- JSON Schema for configuration validation
- compatible with Python 3.10
- Error when using "enabled: false" together with "match_path" (see #104 - PR #107). Reported by @prcr, fixed by @dcode. Thanks to them!
- option to enable/disable the plugin, for example through an environment variable (default: enabled). See: PR #103, related doc section
- CI: Python version used to build and publish package is now 3.9
- support for Python 3.6 (EOL)
- Fix #95: introduced logic did not handle case where categories meta keys are not defined
- new option to include RSS
<category>item element using page metadata (YAML frontmatter). It's customizable to get custom meta keys for keywords/tags. PR #4
- option to get the full page content into thread. Contributed by liang2kl with PR 88. See the related documentation section.
- documentation on ReadTheDocs has been removed to reduce confusion and dependencies. PR #89.
- bump MkDocs maximal version
- improve DockerFile used to test, fixing it after Material removed some dependencies
- remove a print statement
- add option to handle the RSS item comments element through item URL path (see documentation)
- ignore
urllib.error.URLErrorexception to avoid build crashes typically when network is offline
- ability to define URL parameters on items URLs (see documentation)
- complete unit tests and display code coverage badge (using codecov.io)
- homogenization of docstrings on the sphinx format (as stipulated in the contribution guidelines)
- fix
match_pathoption by skipping the pages that aren't included. See PR #49. Contributed by Paulo Ribeiro.
- add isort to development toolbelt
- if
page.meta.descriptionis not set, theabstract_chars_countfirst characters from markdown content are now converted into HTML. - add
match_pathoption which should be a regex pattern matching the path to your files within the docs_dir. See issue #34 and the related PR #43. Contributed by Ryan Morshead.
- add support to
page.meta.authorsorpage.meta.authorto populate feed items author tag. See issue #34.
- option to prettify the output, disabling minify. See issue #18, PR #33 and related documentation section
- By default, the output file is now minified.
- option to use dates from page metadata (YAML front-matter) instead of git log. See #14 and related documentation section
- Python 3.9 is enabled in CI and referenced in PyPi tags
- the default length for description has been changed from 150 to 160 to fit maximum recommendation
- enable auto-escape on feed and item titles, using the Jinja e filter - see #19
- improve consistency for missing attributes in mkdocs.yml, returning almost always a None value
- RSS compliance: image length is now present into enclosure tags - See #9
- User documentation:
- clarify how item elements are computed
- add how to edit HTML templates meta-tags to reference feeds
- API reference documentation generated from source code and published through Read The Docs
- wrong items order in updated feed
- feed for updated content is broken - #15
- plugin: add the
languagetag to the channel - tooling:
- add first unit tests and code coverage
- add Github Action to perform tests
- check docker build using mkdocs-material
- docs: switch Feedly images from HTTP to HTTPS
- remove print from plugin code
- plugin: add tag
guidto the feed's items (using the page URL)
- docs: minor improvements
- plugin: handle channel
imageand items (entries)enclosure
- plugin: refactoring to build feed entry through a method