<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nikola (Posts about documentation)</title><link>https://getnikola.com/</link><description></description><atom:link href="https://getnikola.com/categories/documentation.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Sat, 17 May 2025 17:58:54 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Upgrading to Nikola v8</title><link>https://getnikola.com/blog/upgrading-to-nikola-v8.html</link><dc:creator>Chris Warrick</dc:creator><description>&lt;p class="lead"&gt;Nikola v8 is a huge release with lots of new features and fixed bugs. However,
a few manual changes are required to upgrade.&lt;/p&gt;
&lt;nav class="contents alert alert-primary" id="contents" role="doc-toc"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#top"&gt;Contents&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#revisions-to-this-document" id="toc-entry-1"&gt;Revisions to this document&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#how-to-upgrade" id="toc-entry-2"&gt;How to upgrade&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#upgrading-post-metadata" id="toc-entry-3"&gt;Upgrading post metadata&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#changes-to-themes-and-templates" id="toc-entry-4"&gt;Changes to themes and templates&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#zen-modernized-and-uses-new-font-awesome" id="toc-entry-5"&gt;zen modernized and uses new Font Awesome&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#backwards-incompatible-changes" id="toc-entry-6"&gt;Backwards incompatible changes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#babel-and-i18n-changes-added-2018-08-07" id="toc-entry-7"&gt;Babel and i18n changes (added 2018-08-07)&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#date-format-changed" id="toc-entry-8"&gt;DATE_FORMAT changed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#babeldates-plugin-obsoleted-localeborg-internal-api-changed" id="toc-entry-9"&gt;babeldates plugin obsoleted, LocaleBorg internal API changed&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#translation-help-wanted" id="toc-entry-10"&gt;Translation help wanted&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#removed-and-renamed-settings" id="toc-entry-11"&gt;Removed and renamed settings&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#sections-were-replaced-by-categories" id="toc-entry-12"&gt;Sections were replaced by categories&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#changes-to-posts" id="toc-entry-13"&gt;Changes to posts&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#changes-to-configuration" id="toc-entry-14"&gt;Changes to configuration&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#recreating-the-old-behavior-of-sections" id="toc-entry-15"&gt;Recreating the old behavior of sections&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#colorizing-categories-or-anything-really" id="toc-entry-16"&gt;Colorizing categories (or anything, really)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#plugins" id="toc-entry-17"&gt;Plugins&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference internal" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#on-yaml-configuration" id="toc-entry-18"&gt;On YAML configuration&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;section id="revisions-to-this-document"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-1" role="doc-backlink"&gt;Revisions to this document&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;2018-09-08:&lt;/strong&gt; moved &lt;code class="docutils literal"&gt;tag_cloud_data.json&lt;/code&gt; generation to separate plugin&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2018-09-06:&lt;/strong&gt; Removed &lt;code class="docutils literal"&gt;NO_DOCUTILS_TITLE_TRANSFORM&lt;/code&gt; setting&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2018-07-07:&lt;/strong&gt; Beta 3: Babel and changes to i18n&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2018-05-13:&lt;/strong&gt; Beta 2: bootblog4 has featured posts, zen modernized; one new backwards
incompatible change found and described (&lt;code class="docutils literal"&gt;reference&lt;/code&gt; replaces
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;image-reference&lt;/span&gt;&lt;/code&gt; in thumbnails)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2018-05-09:&lt;/strong&gt; fixes to style and missing sentences&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2018-05-05:&lt;/strong&gt; initial version&lt;/p&gt;
&lt;/section&gt;
&lt;section id="how-to-upgrade"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-2" role="doc-backlink"&gt;How to upgrade&lt;/a&gt;&lt;/h2&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;p&gt;Upgrade to the latest v7 version: &lt;code class="docutils literal"&gt;pip install &lt;span class="pre"&gt;Nikola==7.8.15&lt;/span&gt;&lt;/code&gt; and make sure
there are no outstanding warnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade to v8: &lt;code class="docutils literal"&gt;pip install &lt;span class="pre"&gt;-U&lt;/span&gt; &lt;span class="pre"&gt;--upgrade-strategy=eager&lt;/span&gt; &lt;span class="pre"&gt;Nikola==8.0.0&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the upgrade notes below and &lt;a class="reference external" href="https://getnikola.com/changes.html"&gt;the full changelog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Upgrade all third-party plugins and themes. (&lt;code class="docutils literal"&gt;nikola plugin &lt;span class="pre"&gt;--upgrade&lt;/span&gt;&lt;/code&gt;,
&lt;code class="docutils literal"&gt;nikola theme &lt;span class="pre"&gt;--upgrade&lt;/span&gt;&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code class="docutils literal"&gt;nikola status&lt;/code&gt; and fix all warnings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When all warnings are fixed, run &lt;code class="docutils literal"&gt;nikola build&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code class="docutils literal"&gt;nikola check &lt;span class="pre"&gt;-l&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal"&gt;nikola check &lt;span class="pre"&gt;-f&lt;/span&gt;&lt;/code&gt;. If there are broken links
or orphaned files, take care of them.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;
&lt;section id="upgrading-post-metadata"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-3" role="doc-backlink"&gt;Upgrading post metadata&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There are a few changes in post metadata you should make:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;draft&lt;/code&gt; and &lt;code class="docutils literal"&gt;private&lt;/code&gt; tags are now &lt;code class="docutils literal"&gt;status&lt;/code&gt; metadata values (eg. &lt;code class="docutils literal"&gt;..
status: draft&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;mathjax&lt;/code&gt; tag is now a &lt;code class="docutils literal"&gt;has_math&lt;/code&gt; metadata key (eg. &lt;code class="docutils literal"&gt;.. has_math: yes&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both changes can be applied by using the &lt;a class="reference external" href="https://plugins.getnikola.com/v8/upgrade_metadata_v8/"&gt;upgrade_metadata_v8&lt;/a&gt; plugin.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="changes-to-themes-and-templates"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-4" role="doc-backlink"&gt;Changes to themes and templates&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The default theme for Nikola was changed to &lt;code class="docutils literal"&gt;bootblog4&lt;/code&gt;, which has a modern,
clean look, and can optionally display &lt;a class="reference external" href="https://getnikola.com/handbook.html#featured-posts"&gt;featured posts&lt;/a&gt;.
There’s also &lt;code class="docutils literal"&gt;bootstrap4&lt;/code&gt; with the classic look.  The &lt;code class="docutils literal"&gt;bootstrap3&lt;/code&gt; theme is
not included by default, but can still be installed (&lt;code class="docutils literal"&gt;nikola theme &lt;span class="pre"&gt;-i&lt;/span&gt;
bootstrap3&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Moreover, there are a few changes to templates that you must take care of if
you’ve customized any:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Rename &lt;code class="docutils literal"&gt;crumbs.tmpl&lt;/code&gt; to &lt;code class="docutils literal"&gt;ui_helper.tmpl&lt;/code&gt; and the breadcrumbs
&lt;code class="docutils literal"&gt;bar&lt;/code&gt; function to &lt;code class="docutils literal"&gt;breadcrumbs&lt;/code&gt; (your templates may need
changing as well)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rename &lt;code class="docutils literal"&gt;post.is_mathjax&lt;/code&gt; to &lt;code class="docutils literal"&gt;post.has_math&lt;/code&gt;. Themes using
&lt;code class="docutils literal"&gt;post.is_mathjax&lt;/code&gt; must be updated; it is recommended that they are
changed to use &lt;code class="docutils literal"&gt;math_helper.tmpl&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For galeries and images, colorbox was replaced by baguetteBox.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;section id="zen-modernized-and-uses-new-font-awesome"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-5" role="doc-backlink"&gt;zen modernized and uses new Font Awesome&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The Zen theme was thoroughly modernized. The modernization means that:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Font Awesome v5 is used by default, you can switch to Fork Awesome v1 by
installing &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;zen-forkawesome&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your &lt;code class="docutils literal"&gt;conf.py&lt;/code&gt; needs changing to reflect new icon names and classes
(Font Awesome v5 examples: &lt;code class="docutils literal"&gt;'fa &lt;span class="pre"&gt;fa-tags'&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal"&gt;'fab &lt;span class="pre"&gt;fa-twitter'&lt;/span&gt;&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;the &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;zen-ipython&lt;/span&gt;&lt;/code&gt; theme is not needed anymore, &lt;code class="docutils literal"&gt;zen&lt;/code&gt; and &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;zen-jinja&lt;/span&gt;&lt;/code&gt;
handle Jupyter posts correctly (as do the built-in themes)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;the theme internals were rewritten to more closely match built-in themes
(notably, galleries Just Work™)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="backwards-incompatible-changes"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-6" role="doc-backlink"&gt;Backwards incompatible changes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The following changes may cause issues with blog appearance and links.
Please make sure you’ve taken care of them before deploying.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Sections are replaced by categories (Issue #2833) — &lt;em&gt;see below&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reading reST docinfo metadata, including first heading as title,
requires &lt;code class="docutils literal"&gt;USE_REST_DOCINFO_METADATA&lt;/code&gt; now (Issue #2987)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;NO_DOCUTILS_TITLE_TRANSFORM&lt;/code&gt; setting removed, behavior now
depends on &lt;code class="docutils literal"&gt;USE_REST_DOCINFO_METADATA&lt;/code&gt; (Issue #3124) &lt;strong&gt;(added 2018-09-06)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RSS feeds might have changed their places due to &lt;code class="docutils literal"&gt;RSS_PATH&lt;/code&gt;
behavior changes (you may need to change &lt;code class="docutils literal"&gt;RSS_PATH&lt;/code&gt;,
&lt;code class="docutils literal"&gt;RSS_FILENAME_BASE&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Atom feeds for archives and Atom pagination are no longer supported
(Issue #3016)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(added 2018-05-10)&lt;/strong&gt; You need &lt;code class="docutils literal"&gt;&amp;lt;a &lt;span class="pre"&gt;class="reference"&amp;gt;&lt;/span&gt;&lt;/code&gt; (instead of
&lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;image-reference&lt;/span&gt;&lt;/code&gt;) to activate the lightbox now&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;(added 2018-09-08)&lt;/strong&gt; &lt;code class="docutils literal"&gt;tag_cloud_data.json&lt;/code&gt; now requires a separate plugin: &lt;code class="docutils literal"&gt;nikola theme &lt;span class="pre"&gt;-i&lt;/span&gt;
tagcloud&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="babel-and-i18n-changes-added-2018-08-07"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-7" role="doc-backlink"&gt;Babel and i18n changes (added 2018-08-07)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For a long time, Nikola’s i18n features depended on the system locale support.
That led to a bunch of issues and strange bugs. We’ve replaced this with the Babel
library. New features include:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;more flexible date formatting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;no more strange bugs related to system locale configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;translated dates even if system support was not there
(eg. on Alpine Linux, cf. discussion on issue #2606)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;proper forms for some Slavic languages (eg. marzec vs marca)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;section id="date-format-changed"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-8" role="doc-backlink"&gt;DATE_FORMAT changed&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;DATE_FORMAT uses different tokens. If you customized &lt;code class="docutils literal"&gt;DATE_FORMAT&lt;/code&gt;, you need
to change it to use &lt;a class="reference external" href="http://cldr.unicode.org/translation/date-time"&gt;CLDR formats&lt;/a&gt;. (Hint: the new default value
is &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;YYYY-MM-dd&lt;/span&gt; HH:mm&lt;/code&gt;)&lt;/p&gt;
&lt;/section&gt;
&lt;section id="babeldates-plugin-obsoleted-localeborg-internal-api-changed"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-9" role="doc-backlink"&gt;babeldates plugin obsoleted, LocaleBorg internal API changed&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The babeldates plugin is obsoleted by the changes. If you were using it, rename
&lt;code class="docutils literal"&gt;BABEL_DATE_FORMAT&lt;/code&gt; to &lt;code class="docutils literal"&gt;DATE_FORMAT&lt;/code&gt; and remove the plugin.&lt;/p&gt;
&lt;p&gt;In addition, the LocaleBorg extension API was simplified. The new API expects
extension authors to create functions matching the signatures and assign them
to the following names:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;LocaleBorg.datetime_formatter(date, date_format, lang, locale)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;LocaleBorg.in_string_formatter(date, mode, custom_format, lang, locale)&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="translation-help-wanted"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-10" role="doc-backlink"&gt;Translation help wanted&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;However, this means that we needed to reorganize translations. In order
to have things in a working state, I used some guessworks and tried to
produce a working form. However, not all languages will have
grammatically correct output at this point. This is why we need help
from our community around the world.&lt;/p&gt;
&lt;p&gt;So, if you have the time, please help us check if our translations (on
&lt;a class="reference external" href="https://www.transifex.com/ralsina/nikola/dashboard/"&gt;Transifex&lt;/a&gt;
or &lt;a class="reference external" href="https://github.com/getnikola/nikola/tree/master/nikola/data/themes/base/messages"&gt;GitHub&lt;/a&gt;) are correct. Specifically, we need to know
if the date tags (in “Posts for XX” messages) are correctly placed. We
also need to know if the translation for those fits the required form.
To find out, you can run the &lt;a class="reference external" href="https://gist.github.com/Kwpolska/3c0d1af8bd641229d4ab64f1b98d88de"&gt;test script&lt;/a&gt; and check how all the forms
look for your locale. If they don't fit, they can be overridden:
for example, Polish uses “Posty z {month_year:MMMM yyyy}” and takes
advantage of the last bullet point.&lt;/p&gt;
&lt;p&gt;As a bonus, the use of Babel means that it's even easier to use
"human-friendly" dates on your blog — try setting &lt;code class="docutils literal"&gt;DATE_FORMAT = 'long'&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="removed-and-renamed-settings"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-11" role="doc-backlink"&gt;Removed and renamed settings&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The following settings have been removed. Nikola will now always
behave as if the value was what is displayed afer the setting name.&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;FEED_PREVIEWIMAGE = True&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;SITEMAP_INCLUDE_FILELESS_DIRS = True&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;USE_OPEN_GRAPH = True&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;USE_BASE_TAG = False&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;NO_DOCUTILS_TITLE_TRANSFORM&lt;/code&gt; — behavior now depends on &lt;code class="docutils literal"&gt;USE_REST_DOCINFO_METADATA&lt;/code&gt; (Issue #3124) &lt;strong&gt;(added 2018-09-06)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The following settings were renamed:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;UNSLUGIFY_TITLES&lt;/code&gt; → &lt;code class="docutils literal"&gt;FILE_METADATA_UNSLUGIFY_TITLES&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;TAG_PAGES_TITLES&lt;/code&gt; → &lt;code class="docutils literal"&gt;TAG_TITLES&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;TAG_PAGES_DESCRIPTIONS&lt;/code&gt; → &lt;code class="docutils literal"&gt;TAG_DESCRIPTIONS&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;CATEGORY_PAGES_TITLES&lt;/code&gt; → &lt;code class="docutils literal"&gt;CATEGORY_TITLES&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;CATEGORY_PAGES_DESCRIPTIONS&lt;/code&gt; → &lt;code class="docutils literal"&gt;CATEGORY_DESCRIPTIONS&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;DISABLE_INDEXES_PLUGIN_INDEX_AND_ATOM_FEED&lt;/code&gt; → &lt;code class="docutils literal"&gt;DISABLE_INDEXES&lt;/code&gt; and
&lt;code class="docutils literal"&gt;DISABLE_MAIN_ATOM_FEED&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;DISABLE_INDEXES_PLUGIN_RSS_FEED&lt;/code&gt; → &lt;code class="docutils literal"&gt;DISABLE_MAIN_RSS_FEED&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="sections-were-replaced-by-categories"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-12" role="doc-backlink"&gt;Sections were replaced by categories&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/getnikola/nikola/issues/2833"&gt;Sections were an unfinished feature.&lt;/a&gt; Having both sections and categories at the same time made no sense. The sections feature was removed and replaced by categories. Categories now support using the destination path, with the possibility to ignore common prefixes, and to use subdirectories. Categories can do everything sections used to.&lt;/p&gt;
&lt;p&gt;The way to migrate depends on what your blog setup was:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;if you were only using categories, you don’t need to do anything (except for
the two renamed settings mentioned above)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;if you were only using sections, read on or details of required changes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;if you were using both, you’ll need to pick one of the two (beware: might
break links)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PS. the &lt;code class="docutils literal"&gt;section_prevnext&lt;/code&gt; plugin has been renamed &lt;code class="docutils literal"&gt;category_prevnext&lt;/code&gt; for
v8.&lt;/p&gt;
&lt;section id="changes-to-posts"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-13" role="doc-backlink"&gt;Changes to posts&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;If your posts are using the &lt;code class="docutils literal"&gt;section&lt;/code&gt; metadata field, you should rename it to &lt;code class="docutils literal"&gt;category&lt;/code&gt;.  Nikola will do this conversion automatically if no category is specified, while also issuing a warning.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="changes-to-configuration"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-14" role="doc-backlink"&gt;Changes to configuration&lt;/a&gt;&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;POSTS_SECTION_TITLE&lt;/code&gt; has been merged into &lt;code class="docutils literal"&gt;CATEGORY_TITLES&lt;/code&gt; (whose name has changed from &lt;code class="docutils literal"&gt;CATEGORY_PAGES_TITLES&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;POSTS_SECTION_DESCRIPTIONS&lt;/code&gt; has been merged into &lt;code class="docutils literal"&gt;CATEGORY_DESCRIPTIONS&lt;/code&gt; (whose name has changed from &lt;code class="docutils literal"&gt;CATEGORY_PAGES_DESCRPTIONS&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In order to activate the path-based behavior, enable &lt;code class="docutils literal"&gt;CATEGORY_DESTPATH_AS_DEFAULT&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To control what is used to generate paths, you can set &lt;code class="docutils literal"&gt;CATEGORY_DESTPATH_TRIM_PREFIX&lt;/code&gt; and &lt;code class="docutils literal"&gt;CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY&lt;/code&gt; (old sections behavior/default values are False and True respectively, but flipping them makes the feature much more flexible)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;POSTS_SECTION_NAME&lt;/code&gt; is now &lt;code class="docutils literal"&gt;CATEGORY_DESTPATH_NAMES&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;POSTS_SECTION_COLORS&lt;/code&gt; is not supported by default, but you can replace it with some manual tinkering&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code class="docutils literal"&gt;CATEGORY_ALLOW_HIERARCHIES&lt;/code&gt;, &lt;code class="docutils literal"&gt;CATEGORY_OUTPUT_FLAT_HIERARCHY&lt;/code&gt; are heavily recommended if you use &lt;code class="docutils literal"&gt;CATEGORY_DESTPATH_AS_DEFAULT&lt;/code&gt;, and required if you use &lt;code class="docutils literal"&gt;CATEGORY_PAGES_FOLLOW_DESTPATH&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="recreating-the-old-behavior-of-sections"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-15" role="doc-backlink"&gt;Recreating the old behavior of sections&lt;/a&gt;&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code python"&gt;&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-1" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-1" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-1"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_ALLOW_HIERARCHIES&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-2" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-2" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-2"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_OUTPUT_FLAT_HIERARCHY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-3" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-3" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_DESTPATH_AS_DEFAULT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-4" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-4" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-4"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_DESTPATH_TRIM_PREFIX&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-5" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-5" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-5"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;a id="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-6" name="rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-6" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_13615f6ab7c6440c827fcf3cd8ceaa6f-6"&gt;&lt;/a&gt;&lt;span class="n"&gt;CATEGORY_PAGES_FOLLOW_DESTPATH&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="colorizing-categories-or-anything-really"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-16" role="doc-backlink"&gt;Colorizing categories (or anything, really)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The colorization feature is now available for &lt;em&gt;anything&lt;/em&gt;, not only sections.
Templates can use the &lt;code class="docutils literal"&gt;colorize_str(string, base_color, presets)&lt;/code&gt; function,
like so:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code mako"&gt;&lt;a id="rest_code_402a131e60fe4edfbf9d97cdcbbfcb45-1" name="rest_code_402a131e60fe4edfbf9d97cdcbbfcb45-1" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_402a131e60fe4edfbf9d97cdcbbfcb45-1"&gt;&lt;/a&gt;&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;colorize_str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;post&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'category'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;theme_color&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;category_colors&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You need to add &lt;code class="docutils literal"&gt;category_colors&lt;/code&gt; to the global context manually — this
expects a regular (untranslated) dict mapping category names to hex colors.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="plugins"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-17" role="doc-backlink"&gt;Plugins&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you are using &lt;code class="docutils literal"&gt;section_prevnext&lt;/code&gt;, remove it and install
&lt;code class="docutils literal"&gt;category_prevnext&lt;/code&gt; instead.&lt;/p&gt;
&lt;p&gt;If you are using the &lt;code class="docutils literal"&gt;projectpages&lt;/code&gt; plugin, you can migrate your metadata like this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-1" name="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-1" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-1"&gt;&lt;/a&gt;sed 's/.. status:/.. devstatus:/g' *.rst -i
&lt;a id="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-2" name="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-2" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-2"&gt;&lt;/a&gt;sed '/.. featured: False/d' *.rst -i
&lt;a id="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-3" name="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-3" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-3"&gt;&lt;/a&gt;sed 's/.. featured: True/.. status: featured/g' *.rst -i
&lt;a id="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-4" name="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-4" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-4"&gt;&lt;/a&gt;sed '/.. hidden: False/d' *.rst -i
&lt;a id="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-5" name="rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-5" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#rest_code_b124fe3af2d34ebe9eda6c83ea9cb0a8-5"&gt;&lt;/a&gt;sed 's/.. hidden: True/.. status: private/g' *.rst -i
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="on-yaml-configuration"&gt;
&lt;h2&gt;&lt;a class="toc-backref" href="https://getnikola.com/blog/upgrading-to-nikola-v8.html#toc-entry-18" role="doc-backlink"&gt;On YAML configuration&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;One of the features we’ve promised for Nikola v8 was YAML config. We’re afraid
we won’t offer this in the v8.0.0 release just yet. Doing this &lt;em&gt;right&lt;/em&gt; will require
substantial amounts of time, and the v8 project has been going for over a year.&lt;/p&gt;
&lt;p&gt;Rest assured: we haven’t scrapped this idea. YAML config will appear in a
future v8.x.0 release. Before that happens, we need to build a configuration
management framework, with support for &lt;a class="reference external" href="https://github.com/getnikola/nikola/issues/2475#issuecomment-384064771"&gt;migrations&lt;/a&gt;
among other things — its main focus will be Nikola config, but we hope
to make it flexible enough to work anywhere.
(If you’re aware of a good project that does this, do tell us!)&lt;/p&gt;
&lt;/section&gt;</description><category>documentation</category><category>nikola</category><guid>https://getnikola.com/blog/upgrading-to-nikola-v8.html</guid><pubDate>Sat, 05 May 2018 18:55:43 GMT</pubDate></item></channel></rss>