plain-pages changelog
0.19.0 (2026-03-03)
What's changed
- Added companion markdown support for HTML pages โ place a
.md file alongside an .html page (e.g. about.html + about.md) and the markdown content is served via content negotiation or at the .md URL (7c0f465898)
get_markdown_url() now returns a URL for both standalone markdown pages and HTML pages with a companion .md file (7c0f465898)
- Added
get_markdown_companion() and get_markdown_url() methods to PagesRegistry (7c0f465898)
- Refactored page discovery to use a two-pass approach โ non-markdown files are registered first, then
.md files are checked for HTML companions (7c0f465898)
Upgrade instructions
0.18.4 (2026-02-26)
What's changed
- Added type annotation to
PAGES_SERVE_MARKDOWN setting so it can be set via environment variables (37e8a58ca9b5)
Upgrade instructions
0.18.3 (2026-02-26)
What's changed
- Fixed markdown pages serving unrendered Jinja templates โ pages now render through the template engine before serving as markdown via content negotiation or
PageMarkdownView (8bcebc4064de)
- Removed unnecessary Vary header from
PageMarkdownView (fa6f98991d65)
- Moved
get_template_context() up to PageViewMixin so all page view types share the same template context (8bcebc4064de)
Upgrade instructions
0.18.2 (2026-02-04)
What's changed
- Added
__all__ exports to exceptions, pages, and views modules for explicit public API boundaries (e7164d3891b2, f26a63a5c941)
- Removed
@internalcode decorator from Config and PagesRegistry classes (e7164d3891b2)
Upgrade instructions
0.18.1 (2026-01-28)
What's changed
Upgrade instructions
0.18.0 (2026-01-13)
What's changed
- Improved README documentation with FAQs section and clearer structure (da37a78)
Upgrade instructions
0.17.0 (2026-01-13)
What's changed
- Updated to use renamed HTTP exception
NotFoundError404 (previously Http404) (5a1f020)
- Updated to use renamed response class
RedirectResponse (previously ResponseRedirect) (fad5bf2)
Upgrade instructions
0.16.1 (2025-12-22)
What's changed
- Updated type ignore comments for improved type checker compatibility (539a706)
Upgrade instructions
0.16.0 (2025-11-12)
What's changed
- Improved type checking compatibility with updated type checker (f4dbcef)
Upgrade instructions
0.15.1 (2025-10-31)
What's changed
- Added license metadata to
pyproject.toml for better package distribution (8477355)
Upgrade instructions
0.15.0 (2025-10-24)
What's changed
- Added explicit package label
plainpages for better package identification and CLI integration (d1783dd)
Upgrade instructions
0.14.2 (2025-10-06)
What's changed
- Added comprehensive type annotations throughout the package for improved type checking and IDE support (c87ca27)
Upgrade instructions
0.14.1 (2025-10-02)
What's changed
- Fixed documentation example to use
get_current_user() instead of request.user (f6278d9)
Upgrade instructions
0.14.0 (2025-09-30)
What's changed
- Pages now support content negotiation via Accept headers to serve raw markdown when
PAGES_SERVE_MARKDOWN is enabled (b105ba4)
- Renamed
PAGES_MARKDOWN_URLS setting to PAGES_SERVE_MARKDOWN for clarity (b105ba4)
Upgrade instructions
- If you were using
PAGES_MARKDOWN_URLS = True in your settings, rename it to PAGES_SERVE_MARKDOWN = True
0.13.0 (2025-09-19)
What's changed
- Updated minimum Python requirement from 3.11 to 3.13 (d86e307)
Upgrade instructions
- Update your Python environment to version 3.13 or higher
0.12.2 (2025-08-22)
What's changed
- Enhanced markdown URL resolving to preserve query parameters and fragments when converting relative links to page URLs (545b406)
Upgrade instructions
0.12.1 (2025-08-15)
What's changed
- Improved relative markdown link conversion to handle links that don't use
./ or ../ prefixes, automatically converting plain filenames and paths to proper page URLs (f98416e)
Upgrade instructions
0.12.0 (2025-08-15)
What's changed
- Redirect pages now use a
status_code variable instead of the boolean temporary variable for greater control over redirect status codes (ba79ce3)
- Removed dependency on
ResponsePermanentRedirect in favor of using status_code parameter in ResponseRedirect (d5735ea)
Upgrade instructions
- Replace any
temporary: false variables in redirect pages with status_code: 301 for permanent redirects
- Replace any
temporary: true variables in redirect pages with status_code: 302 for temporary redirects (or simply remove the variable as 302 is now the default)
0.11.0 (2025-08-15)
What's changed
- Added raw markdown serving feature that allows markdown files to be served at
.md URLs alongside rendered HTML pages (b13a544)
- Automatic markdown relative link conversion that resolves
./ and ../ links in markdown to proper page URLs (b13a544)
- Added
get_markdown_url() method to pages for linking to raw markdown content (b13a544)
Upgrade instructions
0.10.5 (2025-07-31)
What's changed
- Support for symlinks when discovering pages in templates/pages directories (c5e610d)
- Updated package description and comprehensive README documentation (4ebecd1)
Upgrade instructions
0.10.4 (2025-06-23)
What's changed
- No user-facing changes. This release only updates internal project metadata and documentation.
Upgrade instructions