Nikola v8.0.0 is out!

Chris Warrick kwpolska at
Mon Sep 10 15:04:00 EDT 2018

On behalf of the Nikola team, I am pleased to announce the immediate
availability of Nikola v8.0.0. After 15 months in development, we’ve
created our best release ever, with new features, many bugs squashed,
and some improvements under the hood.

What is Nikola?

Nikola is a static site and blog generator, written in Python.
It can use Mako and Jinja2 templates, and input in many popular markup
formats, such as reStructuredText and Markdown — and can even turn
Jupyter Notebooks into blog posts! It also supports image galleries,
and is multilingual. Nikola is flexible, and page builds are extremely
fast, courtesy of doit (which is rebuilding only what has been changed).

Find out more at the website:


Install using ``pip install Nikola==8.0.0``.

If you want to upgrade to Nikola v8, make sure to read the blog post:


Important compatibility changes

* Rename ``crumbs.tmpl`` to ``ui_helper.tmpl`` and the breadcrumbs
  ``bar`` function to ``breadcrumbs`` (your templates may need
  changing as well)
* Rename ``post.is_mathjax`` to ``post.has_math``. Themes using
  ``post.is_mathjax`` must be updated; it is recommended that they are
  changed to use ``math_helper.tmpl``.
* Reading reST docinfo metadata, including first heading as title,
  requires ``USE_REST_DOCINFO_METADATA`` now (Issue #2987)
* RSS feeds might have changed their places due to ``RSS_PATH``
  behavior changes (you may need to change ``RSS_PATH``,
* Atom feeds for archives and Atom pagination are no longer supported
  (Issue #3016)
* Sections are replaced by categories (Issue #2833)
* You need ``<a class="reference">`` (instead of ``image-reference``)
  to activate the lightbox now
* Date formatting now uses the Babel library, you might need to
  change ``BABEL_FORMAT`` (Issues #2606, 3121)
* The first heading in a reST document is not removed anymore by
  default unless ``USE_REST_DOCINFO_METADATA`` is enabled
  (Issues #2382, #3124)


* Add Malayalam translation by Nemo Dicto
* Add Vietnamese translation by Hoai-Thu Vuong
* Don’t generate gallery index if the destination directory is
  site root and it would conflict with blog index (Issue #3133)
* All built-in themes now support ``updated`` timestamp fields in
  posts. The update time, if it is specified and different from
  the posting time, will be displayed as
  "{postDate} (${messages("updated")} {updateDate})". If no update
  time is specified, the posting time will be displayed alone.
* All built-in themes now support the ``DATE_FANCINESS`` option.
* Theme bundles are now parsed using the configparser module and
  can support newlines inside entries as well as comments
* Make bootstrap4 navbar color configurable with
  ``THEME_CONFIG['navbar_light']`` (Issue #2863)
* New data_file option for chart shortcode and directive (Issue #3129)
* Show the filename of the missing file when ``nikola serve`` can't
  find a file (i.e. when an 404 error occurs).
* Better error messages for JSON download failures in ``nikola
  plugin`` and  ``nikola theme`` (Issue getnikola/plugins#282)
* Use Babel instead of the locale module to better handle
  localizations (Issues #2606, #3121)
* Change ``DATE_FORMAT`` formats to CLDR formats (Issue #2606)
* Add ``NAVIGATION_ALT_LINKS`` option, displayed on the right side in
  bootstrap4/bootblog4 (Issue #3030)
* Added documentation of Post objects to list of template variables
  (Issue #3003)
* Support featured posts in bootblog4 (Issue #2964)
* Add ``THEME_CONFIG`` setting that themes can use in any way
* Use for better privacy in ``youtube`` reST
  directive and improve the appearance of the player
* Support themes and renamed bootswatch_theme command
  subtheme (Issue #3049)
* Add ``DISABLE_MAIN_ATOM_FEED`` setting (Issue #3016, Issue #3039)
* Add ``ATOM_FILENAME_BASE`` setting (defaults to ``index`` for
  existing sites, but ``feed`` for new sites) (Issue #3016)
  replacing sections with categories (Issue #2833)
* Tags ``draft``, ``private`` and ``mathjax`` are no longer treated
  special if ``USE_TAG_METADATA`` is set to ``False`` (default for
  new sites) (Issue #2761)
* Replace ``draft`` and ``private`` tags with a ``status`` meta field
  (supports ``published``, ``featured``, ``draft``, ``private``)
  and ``mathjax`` with ``.. has_math: yes`` (Issue #2761)
* Produce a better error message when a template referenced in another
  template is missing (Issue #3055)
* Support captioned images and image ordering in galleries, as well as
  arbitrary metadata through a new ``metadata.yml`` file (Issue #3017,
  Issue #3050, Issue #2837)
* New ``ATOM_PATH`` setting (Issue #2971)
* Make ``crumbs`` available to all pages
* Allowing to customize RSS and Atom feed extensions with
  ``RSS_EXTENSION``, ``ATOM_EXTENSION`` settings (Issue #3041)
* Allowing to customize filename base appended to RSS_PATH
  with ``RSS_FILENAME_BASE`` setting (Issue #3041)
* Use basic ipynb template by default for slightly better appearance
  and behavior
* Fixing behavior of RSS_PATH to do what the documentation
  says it does (Issue #3024)
* Add support for fragments in path handlers (Issue #3032)
* New ``METADATA_VALUE_MAPPING`` setting to allow for flexible global
  modification of metadata (Issue #3025)
* New ``smartjoin`` template function/filter that joins lists and
  leaves strings as-is (Issue #3025)
* Explain index.html conflicts better (Issue #3022)
* Recognize both TEASER_END and (new) END_TEASER (Issue #3010)
  (warning: if you perform manual splits, the regex change means new
  indexes must be used)
* New MARKDOWN_EXTENSION_CONFIGS setting (Issue #2970)
* Replace ``flowr.js`` with ``justified-layout.js`` by Flickr
  (does not require jQuery!)
* ``bootblog4`` is the new default theme (Issue #2964)
* New ``bootstrap4`` and ``bootblog4`` themes (Issue #2964)
* New Thai translation by Narumol Hankrotha and Jean Jordaan
* Support for Commento comment system (Issue #2773)
* New PRESERVE_ICC_PROFILES option to control whether ICC profiles are
  preserved when copying images.
* Use baguetteBox in Bootstrap theme (part of Issue #2777)
* New default-config command to generate a clean configuration.
* New ``thumbnail`` shortcode similar to the reStructuredText
  ``thumbnail`` directive (via Issue #2809)
* Rewrite ``nikola auto`` with asyncio and aiohttp (Issue #2850)
* New ``listings`` shortcode similar to the reStructuredText listings
  directive (Issue #2868)
* Switch to reStructuredText’s new HTML 5 renderer (Issue #2874)
* Deprecate ``html4css1.css`` in favor of ``rst_base.css`` (Issue
* Add support for ``MetadataExtractor`` plugins that allow custom,
  extensible metadata extraction from posts (Issue #2830)
* Support YAML and TOML metadata in 2-file posts (via Issue #2830)
  (Issue #2840)
* Add ``NIKOLA_SHOW_TRACEBACKS`` environment variable that shows
  full tracebacks instead of one-line summaries
* Use ``PRETTY_URLS`` by default on all sites (Issue #1838)
* Feed link generation is completely refactored (Issue #2844)
* Let path handlers return absolute URLs (Issue #2876)
* Add ``BLOG_EMAIL`` to global context to make it available for
  templates (Issue #2968)


* Use UTF-8 instead of system encoding for gallery metadata.yml file
* Do not remove first heading in document (reST document title)
  if ``USE_REST_DOCINFO_METADATA`` is disabled (Issue #3124)
  this is now default behavior if ``USE_REST_DOCINFO_METADATA``
  is disabled (Issue #2382, #3124)
* Enforce trailing slash for directories in ``nikola auto``
  (Issue #3140)
* Galleries with baguetteBox don’t glitch out on the first image
  anymore (Issue #3141)
* Pass arguments to youtube directive unchanged (Issue #3150)
* Fix listing installed themes if theme directory is missing.
* Watch correct output folder in ``nikola auto`` (Issue #3119)
* Fix post fragment dependencies when posts are only available in a
  non-default language (Issue #3112)
* Implement ``MARKDOWN_EXTENSION_CONFIGS`` properly (Issue #2970)
* Ignore ``.DS_Store`` when processing listings (Issue #3099)
* Remove redundant check for tag similarity (Mentioned in Issue #3123)
* Improve appearance of ``bootblog4`` on mobile (Issue #3069)
* Make ``smartjoin`` more flexible (Issue #3080)
* Make post-list and post_list synonymous (Issue #3083)
* Support ``CATEGORY_DESTPATH_NAMES`` with pages following destpath
* Make ``CATEGORY_PAGES_FOLLOW_DESTPATH`` more resilient (Issue #3081)
* Guard against null items in gallery meta files (Issues #3076, #3077)
* Respect ``USE_FILENAME_AS_TITLE`` in galleries with a meta file
* Fix gallery metadata for multilingual sites (Issue #3078)
* Fixes behavior for posts not available in default language
  (Issues #2956 and #3073)
* Always follow ``FEED_LENGTH`` for Atom feeds
* Apply filters to all Atom feeds
* Read file metadata if compiler metadata exists and prefer it over
  compiler metadata (Issue #3008)
  ``DISABLE_MAIN_RSS_FEED`` (Issue #3039)
* Make chart shortcode its own plugin and make the reST directive
  depend on it.
* Put post_list shortcode in its own plugin and make the reST
  directive depend on it.
* Don’t silence syntax errors and other exceptions that occur while
  reading metadata
* Use documented dateutil API for time zone list (Issue #3006)
* Handle trailing slash redirects with query strings correctly in
  ``nikola serve`` (Issue #3000)
* Fix w3c validation errors for itemscope entries in default themes
* Hide “Incomplete language” message for overrides of complete
* Handle '/' and other absolute paths better in POSTS/PAGES/TRANSLATIONS
  (Issue #2982)
* Fix loading non-default languages
* Support KaTeX for reST display math (Issue #2888)
* Use npm for asset management instead of bower, which was deprecated
  (Issue #2790)
* Properly handle ``SHOW_INDEX_PAGE_NAVIGATION`` with Jinja templates
  (Issue #2960)
* Prevent crashes due to Windows-specific code in ``auto`` running on
  all platforms (Issue #2940)
* Don’t run hyphenate on ``<pre>`` blocks (Issue #2939)
* Make errors in reST display in logs again
* Unquote paths given to ``link://`` magic URLs (Issue #2934)
* Specify UTF-8 input encoding for Mako as default (Issue #2930)
* Don't trigger rebuilds in auto mode for files it's safe to ignore
  (Issue #2906)
* Fix padding for Jupyter code blocks (Issue #2927)
* Apply ``SCHEDULE_ALL`` to posts only (Issue #2921)
* Restore version number to Bootswatch URLs (Issue #2916)
* Do not strip trailing slash in ``slug`` magic links
* Ignore empty tags in HTML metadata reader (Issue #2890)
* Do not remove doctype if ``add_header_permalinks`` or
  ``deduplicate_ids`` are used
* Handle empty slug metadata (Issue #2887)
* Fix crash when compiling empty ``.html`` posts (Issue #2851)
* Make failures to get source commit hash non-fatal in
  ``github_deploy`` (Issue #2847)
* Less cryptic error when guessing format from extension in ``new_post``
* Use Jupyter name more consistently in docs
* Support CODE_COLOR_SCHEME in Jupyter notebooks (Issue #2093)
* Language was not passed to title and link generation for page indexes
* Addressed issue with snaps not allowing certain functions to work

Removed settings

The following settings have been removed. Nikola will now always
behave as if the value was what is displayed afer the setting name.

* ``USE_OPEN_GRAPH = True``
* ``USE_BASE_TAG = False``

Removed features

* Removed Colorbox, baguetteBox is used instead (Issue #2777)
* Removed ``googleplus`` comments (no longer supported) (Issue #635)
* Removed the slides directive for docutils, it will now be a separate
* Dropped Python 2 and Python 3.3 support (oldest supported version
  is 3.4)
* Removed ``nikola install_theme`` — use ``nikola theme`` instead
* Droppped insecure post “encryption” feature
* Stopped supporting all deprecated config options
* Dropped annotations support ( closed down in March 2017)
* Removed taxonomy option
  (Issue #2785) and ``generate_atom_feeds_for_post_lists`` (Issue
* Removed old 7-line metadata format (Issue #2839)
* Atom feeds are now limited to one page (Issue #3016)
* Removed sections (replaced by improved categories) (Issue #2833)
* Moved ``tag_cloud_data.json`` generation to a separate
  ``tagcloud`` plugin (Issue #1696)
* The ``webassets`` library is no longer required, we now manually
  bundle files (Issue #3074)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Python-announce-list mailing list