After quite a bit of wait, I'm happy to announce the 2.0 release of Lektor. Some things that previously were supposed to go into this release were pushed out a bit more because the wait just was too long and quite a few features were already in this release.

Here is the changelog of what's in this release:

Added _discoverable system field which controls if a page should show up in children . The default is that a page is discoverable. Setting it to False means in practical terms that someone needs to know the URL as all collection operations will not return it.

system field which controls if a page should show up in . The default is that a page is discoverable. Setting it to means in practical terms that someone needs to know the URL as all collection operations will not return it. Added for_page function to pagination that returns the pagiantion for a specific page.

function to pagination that returns the pagiantion for a specific page. Make pagination next_page and prev_page be None on the edges.

Allow plugins to provide publishers.

Added |markdown filter.

filter. Added French translations.

Unicode filenames as final build artifacts are now explicitly disallowed.

Serve up a 404.html as an error page in the dev server.

Improvements to the path normalization and alt handling. This should support URL generation in more complex cases between alts now.

Show a clearer error message when URL generation fails because a source object is virtual (does not have a path).

Empty text is now still valid markdown.

Lektor clean now loads the plugins as well.

Basic support for type customization.

Fields that are absent in a content file from an alternative are now pulled from the primary content file.

Development server now resolves index.html for assets as well.

Markdown processing now correctly adjusts links relative to where the rendered output is rendered.

Added Dutch translations.

Added Record.get_siblings()

Added various utilties: build_url, join_path, parse_path

Added support for virtual paths and made pagination work with it.

Added support for Query.distinct

Add support for pagination url resolving on root URL.

Server information can now also contain extra key/value pairs that can be used by publishers to affect the processing.

The thumbnails will now always have the correct width and height set as an attribute.

added datetime type

added support for the process_image utility functions so that plugins can use it directly.

added support for included_assets and excluded_assets in the project file.

added Spanish translations.

added Japanese translations.

added support for discovering existing alts of sources.

added support for image cropping.

added preliminary support for publishing on windows.

children and attachments can now have a hidden flag configured explicitly. Attachments will also no longer inherit the hidden flag of the parent record as that is not a sensible default.

changed internal sqlite consistency mode to improve performance on HDDs.

allow SVG files to be treated as images. This is something that does not work in all situations yet (in particular thumbnailing does not actually do anything for those)

As always you can install the release as mentioned in the release notes. If you had a previous version of Lektor the install process should auto upgrade. If you use the OS X desktop build, just drag the new application over the already existing one.