Nikola v8.0.0b2 is out!

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v8.0.0b2. This release fixes some bugs found in v8.0.0b1, and adds a few new appearance features (featured posts, alternate navigation links)

The final version of Nikola v8 should be out in early June. We welcome everyone to test it with their site and report any issues to make it the best release ever.

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: https://getnikola.com/

Downloads

Install using pip install Nikola==8.0.0.b2.

Changes

Important compatibility changes not mentioned previously

  • You need <a class="reference"> (instead of image-reference) to activate the lightbox now

Features

  • 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 youtube-nocookie.com for better privacy in youtube reST directive and improve the appearance of the player

Featured post details: https://getnikola.com/handbook.html#featured-posts

Bugfixes

  • 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)

Nikola v7.8.15 and v8.0.0b1 are out!

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.15 and v8.0.0b1.

Nikola v7.8.15 is the last v7 maintenance release with a few more bug fixes.

Nikola v8.0.0b1 (Beta 1) is the first test release of the v8 series. The v8 series adds a ton of new features and fixes bugs, while also breaking backwards compatibility.

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 (IPython) 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: https://getnikola.com/

Downloads

Install using pip install Nikola==7.8.15 or pip install Nikola==8.0.0.beta1.

Before upgrading to Nikola v8, make sure to read the “Upgrading” document.

Changes in v7.8.15

  • Fix behavior for posts not available in default language (Issues #2956 and #3073)
  • Fix behavior of RSS_PATH to do what the documentation says it does (Issue #3024)
  • Use documented dateutil API for time zone list (Issue #3006)

Changes in v8.0.0b1

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, RSS_FILENAME_BASE)
  • Atom feeds for archives and Atom pagination are no longer supported (Issue #3016)
  • Sections are replaced by categories (Issue #2833)

Features

  • Support hackerthemes.com 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)
  • Add CATEGORY_DESTPATH_AS_DEFAULT, CATEGORY_DESTPATH_TRIM_PREFIX, CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY settings, as part of 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)
  • Rename TAG_PAGES_TITLESTAG_TITLES, TAG_PAGES_DESCRIPTIONSTAG_DESCRIPTIONS.
  • Rename CATEGORY_PAGES_TITLESCATEGORY_TITLES, CATEGORY_PAGES_DESCRIPTIONSCATEGORY_DESCRIPTIONS.
  • 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 #2874)
  • 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)
  • Renamed UNSLUGIFY_TITLESFILE_METADATA_UNSLUGIFY_TITLES (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)

Bugfixes

  • 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)
  • Rename DISABLE_INDEXES_PLUGIN_INDEX_AND_ATOM_FEED to DISABLE_INDEXES and DISABLE_INDEXES_PLUGIN_RSS_FEED to 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 languages
  • 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 fails
  • 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 properly.

Removed conf.py settings

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

  • FEED_PREVIEWIMAGE = True
  • SITEMAP_INCLUDE_FILELESS_DIRS = True
  • 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 plugin.
  • 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 (annotateit.org closed down in March 2017)
  • Removed taxonomy option also_create_classifications_from_other_languages (Issue #2785) and generate_atom_feeds_for_post_lists (Issue #3016)
  • 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)

Upgrading to Nikola v8

Nikola v8 is a huge release with lots of new features and fixed bugs. However, a few manual changes are required to upgrade.

Revisions to this document

2018-05-13: Beta 2: bootblog4 has featured posts, zen modernized; one new backwards incompatible change found and described (reference replaces image-reference in thumbnails)

2018-05-09: fixes to style and missing sentences

2018-05-05: initial version

How to upgrade

  1. Upgrade to the latest v7 version: pip install Nikola==7.8.15 and make sure there are no outstanding warnings.
  2. Upgrade to v8: pip install -U --upgrade-strategy=eager Nikola==8.0.0b2
  3. Read the upgrade notes below and the full changelog
  4. Upgrade all third-party plugins and themes. (nikola plugin --upgrade, nikola theme --upgrade)
  5. Run nikola status and fix all warnings.
  6. When all warnings are fixed, run nikola build.
  7. Run nikola check -l and nikola check -f. If there are broken links or orphaned files, take care of them.

Upgrading post metadata

There are a few changes in post metadata you should make:

  • draft and private tags are now status metadata values (eg. .. status: draft)
  • mathjax tag is now a has_math metadata key (eg. .. has_math: yes)

Both changes can be applied by using the upgrade_metadata_v8 plugin.

Changes to themes and templates

The default theme for Nikola was changed to bootblog4, which has a modern, clean look, and can optionally display featured posts. There’s also bootstrap4 with the classic look. The bootstrap3 theme is not included by default, but can still be installed (nikola theme -i bootstrap3)

Moreover, there are a few changes to templates that you must take care of if you’ve customized any:

  • 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.
  • For galeries and images, colorbox was replaced by baguetteBox.

zen modernized and uses new Font Awesome

The Zen theme was thoroughly modernized. The modernization means that:

  • Font Awesome v5 is used by default, you can switch to Fork Awesome v1 by installing zen-forkawesome
  • Your conf.py needs changing to reflect new icon names and classes (Font Awesome v5 examples: 'fa fa-tags' and 'fab fa-twitter')
  • the zen-ipython theme is not needed anymore, zen and zen-jinja handle Jupyter posts correctly (as do the built-in themes)
  • the theme internals were rewritten to more closely match built-in themes (notably, galleries Just Work™)

Backwards incompatible changes

The following changes may cause issues with blog appearance and links. Please make sure you’ve taken care of them before deploying.

  • Sections are replaced by categories (Issue #2833) — see below
  • 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, RSS_FILENAME_BASE)
  • Atom feeds for archives and Atom pagination are no longer supported (Issue #3016)
  • (added 2018-05-10) You need <a class="reference"> (instead of image-reference) to activate the lightbox now

Removed and renamed settings

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

  • FEED_PREVIEWIMAGE = True
  • SITEMAP_INCLUDE_FILELESS_DIRS = True
  • USE_OPEN_GRAPH = True
  • USE_BASE_TAG = False

The following settings were renamed:

  • UNSLUGIFY_TITLESFILE_METADATA_UNSLUGIFY_TITLES
  • TAG_PAGES_TITLESTAG_TITLES
  • TAG_PAGES_DESCRIPTIONSTAG_DESCRIPTIONS
  • CATEGORY_PAGES_TITLESCATEGORY_TITLES
  • CATEGORY_PAGES_DESCRIPTIONSCATEGORY_DESCRIPTIONS
  • DISABLE_INDEXES_PLUGIN_INDEX_AND_ATOM_FEEDDISABLE_INDEXES and DISABLE_MAIN_ATOM_FEED
  • DISABLE_INDEXES_PLUGIN_RSS_FEEDDISABLE_MAIN_RSS_FEED

Sections were replaced by categories

Sections were an unfinished feature. 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.

The way to migrate depends on what your blog setup was:

  • if you were only using categories, you don’t need to do anything (except for the two renamed settings mentioned above)
  • if you were only using sections, read on or details of required changes
  • if you were using both, you’ll need to pick one of the two (beware: might break links)

PS. the section_prevnext plugin has been renamed category_prevnext for v8.

Changes to posts

If your posts are using the section metadata field, you should rename it to category. Nikola will do this conversion automatically if no category is specified, while also issuing a warning.

Changes to configuration

  • POSTS_SECTION_TITLE has been merged into CATEGORY_TITLES (whose name has changed from CATEGORY_PAGES_TITLES)
  • POSTS_SECTION_DESCRIPTIONS has been merged into CATEGORY_DESCRIPTIONS (whose name has changed from CATEGORY_PAGES_DESCRPTIONS)
  • In order to activate the path-based behavior, enable CATEGORY_DESTPATH_AS_DEFAULT
  • To control what is used to generate paths, you can set CATEGORY_DESTPATH_TRIM_PREFIX and CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY (old sections behavior/default values are False and True respectively, but flipping them makes the feature much more flexible)
  • POSTS_SECTION_NAME is now CATEGORY_DESTPATH_NAMES
  • POSTS_SECTION_COLORS is not supported by default, but you can replace it with some manual tinkering
  • CATEGORY_ALLOW_HIERARCHIES, CATEGORY_OUTPUT_FLAT_HIERARCHY are heavily recommended if you use CATEGORY_DESTPATH_AS_DEFAULT, and required if you use CATEGORY_PAGES_FOLLOW_DESTPATH

Recreating the old behavior of sections

CATEGORY_ALLOW_HIERARCHIES = True
CATEGORY_OUTPUT_FLAT_HIERARCHY = True
CATEGORY_DESTPATH_AS_DEFAULT = True
CATEGORY_DESTPATH_TRIM_PREFIX = False
CATEGORY_DESTPATH_FIRST_DIRECTORY_ONLY = True
CATEGORY_PAGES_FOLLOW_DESTPATH = True

Colorizing categories (or anything, really)

The colorization feature is now available for anything, not only sections. Templates can use the colorize_str(string, base_color, presets) function, like so:

${colorize_str(post.meta('category'), theme_color, category_colors)}

You need to add category_colors to the global context manually — this expects a regular (untranslated) dict mapping category names to hex colors.

Plugins

If you are using section_prevnext, remove it and install category_prevnext instead.

If you are using the projectpages plugin, you can migrate your metadata like this:

sed 's/.. status:/.. devstatus:/g' *.rst -i
sed '/.. featured: False/d' *.rst -i
sed 's/.. featured: True/.. status: featured/g' *.rst -i
sed '/.. hidden: False/d' *.rst -i
sed 's/.. hidden: True/.. status: private/g' *.rst -i

On YAML configuration

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 right will require substantial amounts of time, and the v8 project has been going for over a year.

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 migrations 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!)

Nikola v7.8.14 is out!

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.14. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway. If you wish to test new features, you can install from the master branch on GitHub.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • doit v0.31.0 compatibility (Issue #2980, #3004, v8 backport)

Nikola v7.8.13 is out! (maintenance release)

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.13. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • Add new Thai translation by Narumol Hankrotha and Jean Jordaan (v8 backport)
  • Hide “Incomplete language” message for overrides of complete languages
  • Restore ability to override messages partially

(Note: for a while, this post said v7.8.14 was released. We apologise for the confusion.)

Nikola v7.8.12 is out! (maintenance release)

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.12. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • Fix loading non-default languages

Nikola v7.8.11 is out! (maintenance release)

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.11. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • Make errors in reST display in logs again
  • Restore version number to Bootswatch URLs (Issue #2916)

A CMS (or two) for Nikola: Dato CMS and Netlify CMS integration

One of the many complaints users have about static site generators is the fact that non-tech-savvy users who don’t understand the command line or don’t want to learn Markdown/reST can’t use SSGs. We’ve tried to solve this before with Coil CMS, but that project is now dead, and was hard to configure properly. The problem was not solved, until now.

Roberto Alsina and Chris Warrick independently built integrations for Dato CMS, Netlify CMS and Contentful. Here they are:

Both CMSes offer facilities for non-technical editors to write content, including a WYSIWYG editor.

Dato CMS may require a bit more work at first, but you can automate it (eg. with Travis CI, or Netlify). Our integration lets you deploy your site anywhere.

Netlify CMS can be deployed with one click (and a few configuration changes), and includes automation and hosting at Netlify (and GitHub). You can also use some other hosting service, but that will require some extra work on your side.

Contentful does not require a local install of Node to work, which makes it easier to use and automate, while leaving the hosting up to you.

Make sure to check them both out — have fun!

(Updated 2017-12-06 to add Contentful support)

Nikola v7.8.10 is out! (maintenance release)

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.10. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • Fix crashes with Jinja2 themes and tag indexes (Issue #2900)
  • Ignore empty tags in HTML metadata reader (Issue #2890)
  • Fix crash when compiling empty .html posts (Issue #2851)

Nikola v7.8.9 is out! (maintenance release)

On behalf of the Nikola team, I am pleased to announce the immediate availability of Nikola v7.8.9. This is a maintenance release for the v7 series.

Future releases in the v7 series are going to be small maintenance releases that include bugfixes only, as work on v8.0.0 is underway.

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: https://getnikola.com/

Downloads

Install using pip install Nikola or download tarballs on GitHub and PyPI.

Changes

  • Restore missing unminified assets
  • Make failures to get source commit hash non-fatal in github_deploy (Issue #2847)
  • Fix a bug in HTML meta parsing that crashed on <meta> tags without name (Issue #2835)
  • Fix math not showing up in some circumstances (Issue #2841)