calingen.contrib.compilers.html_or_download

Implementation of CompilerProvider that directly serves HTML-based layouts and provides the source code of other rendered layouts as file download.

This compiler is able to handle all types of layouts, meaning it supports all layout source languages (as no real compilation is performed).

This makes this compiler a suitable choice for the "default" compiler in django-calingen’s settings (see CALINGEN_COMPILER).

Warning

The file extension of the (downloadable) file is determined by using the layout’s layout_type attribute (see calingen.interfaces.plugin_api.LayoutProvider) in combination with calingen.contrib.compilers.html_or_download.compiler.SOURCE_TYPE_LOOKUP.

Notes

The layout’s layout_type attribute is also used to determine, if the given source is of type HTML and can thus be served directly.

Submodules