v1.5 (2021-03-17)

This release brings support for Shpinx themes, reStructuredText includes and various bugfixes and also drops support for Python 3.5

Breaking Changes

  • change range of supported Python versions to Python>3.5
  • core: utils: html: extract_section_by_title got renamed to get_section_to_title
  • plugins: Menu: Menu uses its own plugin namespace for resolving paths instead of the settings namespace now
    • all templates now have to use instead of context.settings.MENU.main


  • server: better support for related_paths keyword
  • server: add --shutdown-timeout
    • default in set to 0.0 (this fixes previous shutdown problems)
  • plugins: add plugins.SphinxThemes
  • plugins: add plugins.rstInclude
  • plugins: Feeds: error messages are more human readable now
  • plugins: reStructuredText: fix wrong line numbers in warnings and error messages
  • plugins: Photoswipe: add support for SVGs
  • plugins: Thumbnails: add support for SVGs


  • plugins: rstImage: fix name clashes in meta data
  • plugins: Feeds: fix link resolving in feed items
  • plugins: reStructuredText: Container directive: fix namespace problems
  • plugins: Thumbnails: fix thumbnail output paths
    • The previous naming scheme $FILE_NAME.thumb.$EXTENSION was not unique and lead to overriding of thumbnail. The new naming scheme is $FILE_NAME.thumb.$HASH.$EXTENSION.

v1.4 (2020-08-30)

This release brings a changes and bugfixes for plugins.Time

Breaking Changes

  • plugins: Time: add comparison between and datetime.datetime objects
    • If a value in content['date'] comes without a time string, datetime.datetime.min.time() gets used for comparisons


  • plugins: Time: wrong implicit type casting of time object
    • Previously it could happen that datetime.datetime objects got mistakenly type casted to objects

v1.3 (2020-07-26)

This release brings bugfixes, performance improvements and long anticipated development features like directory-listing and configurable directory-indexing

Breaking Changes

  • core: set content['output'] to /dev/null when output and path are not set
    • This saves loop iterations when rendering output
  • server: consolidate command line args
    • Previously the command line used terms like --disable-$FEATURE which lead to double negation in code. Also it made it hard to change defaults.
  • plugins: Feeds: use title or content_title for feed items
    • This emulates flamingos behavior on how to search for a content files title
  • plugins: reStructuredText: split plugin in multiple modules
  • plugins: rstLink: remove obsolete option find_name
    • This option never made sense: If you provide a link name, it is obvious that flamingo don't has to search for one. If you don't provide one, setting find_name=False can only result in a crash.
  • plugins: remove plugins.rst.rstFile
    • Since plugins.rst.rstLink has support for downloadable files, this plugin is obsolete


  • core: data model: Q: skip unnecessary lookups; cache lookups
    • This can (depending on your use cases) have a significant impact on your projects performance
  • core: context: add hook template_context_setup
    • This makes it possible to inject context changes to any template
  • core: context: add media_content property
  • core: plugin manager: add tab completion for shell
  • plugins: rstLink: add support for downloads
  • server: BuildEnvironment: add api to await rebuilds
  • server: share server options live between frontend and backend
  • server: ContentExporter: add directory listing
  • server: frontend: add better tab- and shortcut handling
  • server: add sync variant of await_unlock()
  • tests: setup server tests
  • tests: add tests for plugins.Git
  • tests: add tests for plugins.Thumbnails
  • tests: core: settings: add overlay tests
  • tests: add tests for plugins.rst.rstLink
  • tests: add layer tests


  • core: context: build: run hook pre_build hook after initial cleanup
    • pre build layers were pretty much broken by design before
  • server: cli: fix log filtering
    • --loggers was never processed properly
  • server: meta data: use overlay data instead of original data
  • server: meta data: mask overlay types
    • Previously this lead to confusing output in the Meta Data tab in flamingo server
  • core: types: OverlayObject: fix duplicates in __dir__()
  • plugins: reStructuredText: fix caching issues for directives and roles
    • Previous versions of the reStructuredText plugin use the reStructuredText upstreams directive cache, which is fine til you try to overload a directive twice. This lead to confusing results when running tests.

v1.2.2 (2020-05-04)


  • tests: plugins: Markdown: test image tag rendering


  • core: utils: html: process_media_links(): fix broken media meta data

    This fixes broken image tags in Markdown files

v1.2.1 (2020-04-29)


  • plugins: reStructuredText: rstFile: fix broken links

v1.2 (2020-04-25)


  • server: exporter: search for a index.html if an empty directory is requested


  • server: frontend: fix rpc race condition while iframe setup

  • plugins: Redirects: fix empty HTML files

    In early versions of flamingo page contents were stored in content['content']. Now they are stored in content['content_body'].

v1.1 (2020-03-29)


  • core: plugins: PluginManager: make THEME_PATHS a property

    This makes dynamically generated theme paths by plugin hooks possible

  • server: frontend: show an error message if JavasCript is disabled

  • plugins: reStructuredText: make system message removing configurable by settings.RST_REMOVE_SYSTEM_MESSAGES_FROM_OUPUT

  • core: context: add resolve_content_path() for resolving relative and absolute content paths

  • core: templating: Jinja2: make Jinja2 extensions configurable by settings.JINJA2_EXTENSIONS

  • core: templating: Jinja2: rewrite link() method

    • use context.resolve_content_path() instead of custom path resolving
    • add LinkError class for better error reporting in Live-Server
    • make i18n path resolving configurable
  • plugins: reStructuredText: add rstLink

    This plugin adds a Sphinx like docutils role for internal and external links


  • core: plugins: Layers: Check if directories exist before using them

  • core: data model: fix endswith lookup

    Til this point __endswith lookups ran <str>.startswith() due a copy-paste error.

  • server: frontend: return an 404 error on directory listing request instead of crashing

v1.0 (2020-03-19)

  • First stable release