New in v8.3.1
=============

Features
--------

* Support passing ``--poll`` to ``nikola auto`` to better deal with symlink farms.

Bugfixes
--------

* Remove insecure HTTP fallback from ``nikola plugin``
* Fix the ``nikola plugin`` command not working (Issue #3736, #3737)
* Fix ``nikola new_post --available-formats`` crashing with TypeError
  (Issue #3750)
* Fix the new plugin manager not loading plugins if the plugin folder is a symlink (Issue #3741)
* Fix the ``nikola plugin`` command not working (Issue #3736)
* Remove no longer used leftovers of annotations support (Issue #3764)

Other
-----

* Nikola now requires Python 3.8 or newer.
* Nikola has adopted a policy for Python version support,
  promising support for versions supported by the Python core team,
  Ubuntu LTS, or Debian stable, and taking into consideration
  Debian oldstable and PyPy.
* Remove polyfill from `polyfill.io`.

New in v8.3.0
=============

Features
--------

* Implement a new plugin manager from scratch to replace Yapsy,
  which does not work on Python 3.12 due to Python 3.12 carelessly
  removing parts of the standard library (Issue #3719)
* Support for Discourse as comment system (Issue #3689)

Bugfixes
--------

* Fix loading of templates from plugins with ``__init__.py`` files
  (Issue #3725)
* Fix margins of paragraphs at the end of sections (Issue #3704)
* Ignore ``.DS_Store`` files in listing indexes (Issue #3698)
* Fix baguetteBox.js invoking in the base theme (Issue #3687)
* Fix development (preview) server ``nikola auto``
  for non-root SITE_URL, in particular when URL_TYPE is full_path.
  (Issue #3715)

For plugin developers
---------------------

Nikola now requires the ``.plugin`` file to contain a ``[Nikola]``
section with a ``PluginCategory`` entry set to the name of the plugin
category class. This was already required by ``plugins.getnikola.com``,
but you may have custom plugins that don’t have this set.

New in v8.2.4
=============

Features
--------

* Add a ``-q``, ``--ignore-query-strings`` option to ignore query strings
  for internal links, allowing their use for cache busting
* Update reST stylesheets (Issue #3657)
* Add a ``--timeout`` parameter to the ``check`` plugin, defaulting to
  30s. (Issue #3643)
* GZIP compression is now deterministic for automatic deploys (Issue #3650)

Bugfixes
--------

* Fix failures to build with a "Document is empty" error in default themes
  (Issue #3679)
* Fix ``PAGE_INDEX`` skipping generation when there exists a conflicting post
* Fix RSS generation of galleries containing WebP images, which caused
  an unhandled exception due to not having a known MIME type (Issue #3671)
* Fix ``auto`` command infinite loop (Issue #3677)
* Fix API URL in CSS and JS minifiers (Issue #3658)
* Fix ``:align: center`` for images in reST (Issue #3657)
* ``GZIP_COMMAND`` parsing on ``win32`` platforms (Issue #3649)

New in v8.2.3
=============

Bugfixes
--------

* Compatibility with Markdown 3.4.0 (Issue #3635)
* Find substring in string instead of using `contains` in utils
* Don't add semicolon in docinfo fields via CSS (caused duplicated
  semicolons)

Nikola now requires Python 3.7 or newer.

New in v8.2.2
=============

* Compatibility with Pygments 2.12.0 (Issue #3617, #3618)

New in v8.2.1
=============

Features
--------

* Add ``emphasize_lines`` directive to code blocks (Issue #3607)
* Gallery index pages support the ``status`` flag (Issue #3598)
* Add ``start_at`` option to youtube directive (Issue #3603)

Bugfixes
--------

* Add data files to dependency file (Issue #3608)
* Compatibility with doit 0.36.0 (Issue #3612)

Note: ``nikola doit_auto`` is not available if using ``doit>=0.36.0``.
You can still use ``nikola auto``.

New in v8.2.0
=============

Features
--------

* Add ``category_titles``, ``category_descriptions``, ``tag_titles``,
  ``tag_descriptions`` to default context of tags page (Issue #3584)
* Add Maori translation
* Add Occitan translation
* New ``auto_command_starting`` signal when ``nikola auto`` is
  starting
* ``typogrify_custom`` filter adds a default value for
  ``typogrify_filters`` so that ``ignore_tags`` can be specified
  as the only option.
* The default ``ignore_tags`` are appended to the user-supplied
  ``ignore_tags`` added via ``typogrify_custom``.
* Allow adding comment systems from a plugin (Issue #3544)
* New ``CommentSystem`` plugin category (Issue #3544)

Bugfixes
--------

* Fix changes to ``INDEX_READ_MORE_LINK`` and ``FEED_READ_MORE_LINK``
  not triggering rebuilds
* Make ``CATEGORY_TITLES``, ``CATEGORY_DESCRIPTIONS``, ``TAG_TITLES``,
  ``TAG_DESCRIPTIONS`` translatable settings for consistency (Issue #3584)
* Fix bug with posts after the first one appearing shifted due to a
  ``<div>`` closed too early (Issue #3573, #3564)
* Fix support for files outside of site root directory on Windows
* Support passing ``--backend`` and ``--db-file`` to ``nikola auto``
* Support blank values in certain WordPress-imported structures
  (Issue #3535)
* Typogrify ignores ``div`` elements with ``.math`` CSS class.
  (Issue #3512)
* Adjust panorama aspect ratio to 3:1 and document behaviour.

New in v8.1.3
=============

Features
--------

* Provide the full ``GLOBAL_CONTEXT`` to the post list shortcode plugin
  (Issue #3481)
* Add ``BasePlugin.register_auto_watched_folder()``
* Allow different ``PANDOC_OPTIONS`` values based on input extensions
  by specifying a dict of ``{".extension": [options]}`` (Issue #3492)
* Allow boolean/integer ``pretty_url`` post meta values in YAML/TOML
  (Issue #3503)

Bugfixes
--------

* Fix an ``UnboundLocalError`` crash in ``nikola deploy`` (Issue
  #3479)

Other
-----

* For ``nikola github_deploy``, the ``ghp-import`` PyPI package is now
  recommended instead of ``ghp-import2``. Both versions should work,
  but you can’t have both installed at the same time. (Issue #3499)

New in v8.1.2
=============

Features
--------

* Fix time zone guessing logic in ``nikola init`` (Issue #3510)
* Support for multiple authors per post — comma-separated, enabled by
  ``MULTIPLE_AUTHORS_PER_POST`` setting (Issue #3252)
* Add ``navbar_custom_bg`` theme option to ``bootstrap4`` and document
  options for ``bootstrap4`` better (Issue #3443)
* Add Marathi translation
* Restore ``caps`` typogrify filter (wraps strings of capital letters
  with ``<span class="caps">`` (via Issue #3405)
* Improve ``nikola auto`` performance with rate-limiting, support
  ``-n`` argument to pass to ``nikola build`` (Issue #3401)
* Add support for the `Utterances <https://utteranc.es>`_ comment system

Bugfixes
--------

* Fix previewimages (post- and root-relative) in bootblog4/galleries
  featured posts for non-server-root sites (Issue #3471)
* Windows: Also fix symlinks when installing from source with pip; if possible,
  enable Developer Mode and run ``git config --global core.symlinks true``
  before cloning the Nikola repo
* Fix clicking on links to image files. baguetteBox now requires a
  link (``<a>``) to have an ``<img>`` as a child in order to make the
  link activate the lightbox. (Issue #3472)
* Fix ``LINK_CHECK_WHITELIST`` having issues due to mixing Unicode
  and bytestrings (Issue #3466)
* Add support for ``nbconvert>=6.0.0`` (Issue #3457)
* Read files as utf-8-sig to allow BOM in input files
* Don’t break slugs with slashes in ``doc`` directive (Issue #3450)
* Avoid warnings from type annotations in ``auto`` caused by missing
  ``aiohttp`` (Issue #3451)
* Ensure query strings and fragments are kept with ``URL_TYPE =
  "full_path"`` (Issue #3448)
* Don’t run typogrify filters on ``<title>`` tag to avoid adding extra
  tags (Issue #3405)
* Fix handling of duplicate plugins on Windows
* Allow else clause in post-list plugin. (Issue #3436)
* Ensure ``type`` metadata value from plugins is preserved (Issue 3445)
* Fix path handlers with slashes on Windows

New in v8.1.1
=============

Bugfixes
--------

* Default to no line numbers in code blocks, honor CodeHilite
  requesting no line numbers. Listing pages still use line numbers
  (Issue #3426)
* Remove duplicate MathJax config in bootstrap themes (Issue #3427)
* Fix ``doit`` requirement to ``doit>=0.32.0`` (Issue #3422)

New in v8.1.0
=============

Features
--------

* Support posts without titles (Issue #3408)
* Support WebP image scaling (Issue #3399)
* Use Luxon instead of Moment for fancy dates to make it more
  lightweight, going from 328k to 68k (Issue #3232)
* New ``nikola console -s script.py`` option to run scripts that
  access your site (Issue #3385)
* Allow preview images to be relative to posts for bootblog4 featured
  posts
* Change the listings formatting to support word wrap with line
  numbers and improve appearance
* Put the current language’s feed links first so that feed readers
  prefer it (Issue #3248)
* Added support for default preview image for posts (Issue #3326)
* Added support for thumbnails in gallery lists (Issue #1771)

Bugfixes
--------

* Support directory names in ``REDIRECTIONS`` (Issue #3421)
* Return a non-zero error code when ``nikola github_deploy`` fails
* Refactored scale_image causing performance increasing in image
  resizing.
* Don’t force absolute links for brand/languages (Issue #3229)
* Fix RTL mirroring in base theme (``:dir()`` pseudo-class is Firefox only)
  (Issue #3353)
* Work around Bootstrap 4 alignment bug for RTL languages
  (Issue #3353)
* Handle multiple level of inherit/import nesting in Mako templates
  correctly (Issue #3349)
* Output a more informative error when files are missing due to
  broken symlinks or incorrect ``TRANSLATIONS_PATTERN`` values
* Avoid installing ``tests`` package to site-packages, remove it from
  your environment if it was inadvertently added (Issue #3348)
* Sometimes hyphenation added hyphens at the beginning of words
  (Issue #3362)
* Mark gallery images as "dirty" if EXIF configuration changes (Issue
  #3357)
* Fix regression in gallery titles being "index" if there was a
  index.txt and no title (Issue #3360)
* Make gallery indexes depend on destination images to avoid
  multithreading race condition (Issue #3361)
* Mark gallery thumbnails as lazy loading (Issue #2918)
* Don't consider JPEG images with EXIF thumbnails as animated (Issue
  #3332)
* Use correct language for hyphenation in posts that are not
  translated to all languages (Issue #3377)

Internal
--------

* Added Post.source() method to get a Post's object unprocessed
  contents.
* Added Post.save() method to modify Post contents.
* Made is_two_file a property that uses save()

New in v8.0.4
=============

Nikola now supports Python 3.5 or newer. If you are on 3.4, please
upgrade to a newer release of Python.

Bugfixes
--------

* Fix hiding future posts in sitemaps for posts without pretty URLs
  (Issue #3339)
* Pass the correct parameters to shortcodes in jupyter notebooks
* Fix handling of conflicts between posts/pages and indexes generated
  by ``CATEGORY_PAGES_FOLLOW_DESTPATH``
* Fix default date format to ``yyyy-MM-dd`` to avoid bug with ISO
  years (Issue #3337)
* Remove ``extra_header`` and ``extra_footer`` from ``base`` theme
  due to incompatibility with Mako. The blocks are still available
  in ``bootstrap4`` and ``bootblog4``. (Issue #3319 via #3291)
* Show tracebacks when ``conf.py`` cannot be imported
* Fix loading complex config files that import modules (Issue #3314)
* Fix behavior of header demotion for negative values
* If ``FILE_METADATA_REGEXP`` is set, load metadata from the filename
  first, then continue with the other sources (Issue #3344)

Other compatibility information
-------------------------------

1. Nikola no longer requires logbook.  You may need to upgrade plugins.
2. If you receive an error stating that *sitemap is not a package*,
   you need to remove a leftover ``nikola/plugins/task/sitemap``
   directory (the full path is in the error message).

New in v8.0.3
=============

Features
--------

* Add Friulian translation by aoanla
* Add ``extra_header`` and ``extra_footer`` blocks to templates
  (Issue #3291)
* Add ``REST_FILE_INSERTION_ENABLED`` config option to enable or
  disable reST external file inclusion directives (Issue #3311)

Bugfixes
--------

* Support Markdown v3.x (Issue #3173)
* Fix galleries in Firefox Mobile and when resizing window
  (Issue #3258)
* Output ``<code>`` tag for double backticks in reST (Issue #3276)
* Fully switch to HTML5 writer for reST (Issue #3276,
  getnikola/plugins#294)
* Make ipynb listings work again
* Correctly link to listings with spaces in their names
* import_wordpress plugin doesn't require anymore a translation and
  can use nikola's default if none provided
* Wordpress+qtranslate import (--qtranslate option) now works with
  more recent versions of plugins from the qtranslate family (namely
  qtranslate-X)
* Fixed a wordpress import exception when image metadata has floats
  formated with ',' instead of '.'

New in v8.0.2
=============

Features
--------

* Make ``ARCHIVE_PATH``, ``ARCHIVE_FILENAME`` translatable
  (Issue #3234)
* Support configuring Isso via ``GLOBAL_CONTEXT['isso_config']``
  (Issue #3225)
* Handle fragments in doc role (Issue #3212)
* Slugify references in doc role.
* Add Interlingua translation by Alberto Mardegan
* Add Afrikaans translation by Friedel Wolff
* Support for docutils.conf (Issue #3188)
* Add support for inherited config-files

Bugfixes
--------

* Avoid random rebuilds with sites whose locales are not fullly
  supported, and random rebuilds on multilingual sites using Python
  3.4/3.5 (Issue #3216)
* Apply modifications to ``default_metadata`` before copying it to
  other languages
* Make Commento comments work (Issue #3198)
* Correctly handle separators in the relative path given to
  "ignored_assets" key in theme meta files (Issue #3210)
* Fix error when ``nikola new_post`` receives directory name as
  path (Issue #3207)
* Add slashes to paths with query strings in ``nikola serve``
  only if there isn’t one before ``?``
* Read listings files as UTF-8
* Set one-file status basing on default language only (Issue #3191)
* Don’t warn if post status is set to ``published`` explicitly
  (Issue #3181)
* Remove mention of Twitter cards requiring an opt-in.
  This is not true anymore - anyone can use them.
* fancydates now workwith listdate items (eg. archives)
* bootstrap4 and bootblog4 themes no longer load moment.js when
  fancydates are off. (Issue #3231)

New in v8.0.1
=============

* Not compatible with Markdown 3.x yet, this release pins the
  requirement down to 2.x (until we get 3.x support done)

Features
--------

* Make URL displayed by ``nikola auto`` and ``nikola serve`` clickable
  (Issue #3166)

Bugfixes
--------

* Pandoc compiler was passing deleted argument (Issue #3171)
* Make ``nikola version --check`` work again (Issue #3170)
* Set logging level for reST to warning in order to limit noise
* Fix docinfo removal for sites that use reST docinfo metadata
  (Issue #3167)

New in v8.0.0
=============

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

Features
--------

* 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 youtube-nocookie.com for better privacy in ``youtube`` reST
  directive and improve the appearance of the player
* 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_TITLES`` → ``TAG_TITLES``,
  ``TAG_PAGES_DESCRIPTIONS`` → ``TAG_DESCRIPTIONS``.
* Rename ``CATEGORY_PAGES_TITLES`` → ``CATEGORY_TITLES``,
  ``CATEGORY_PAGES_DESCRIPTIONS`` → ``CATEGORY_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_TITLES`` → ``FILE_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
--------

* 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)
* Remove ``NO_DOCUTILS_TITLE_TRANSFORM`` setting,
  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)
* 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)
* 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)

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

New in v7.8.14
==============

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

New in v7.8.13
==============

* 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

New in v7.8.12
==============

* Fix loading non-default languages

New in v7.8.11
==============

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

New in v7.8.10
==============

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

New in v7.8.9
=============

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

New in v7.8.8
=============

This release fixes two grave bugs in TOML metadata support (sorry!).
The built-in themes have also been cleaned up and include less unused
assets. In addition, taxonomies now support translations. HTML meta
tags are also possible metadata sources. The default metadata format
to generate can now be changed.

Features
--------

* Providing infrastructure for taxonomies for classification pages to
  link to related classifications in other languages
* Added alternate links (visible and header) for archives and authors
  (Issue #993)
* Added options to add alternative links (visible and header) for
  tags, sections and categories.
* New METADATA_FORMAT option to choose preferred metadata format
  (Nikola/YAML/TOML/Pelican) (Part of Issue #2801)
* Extract metadata from HTML meta and title tags like Pelican (Issue #1923)
* Update assets in the ``base`` and ``base-jinja`` themes and clean
  up code (Issue #2744)
* Show captions in the base theme gallery (Part of issue #2777)

Bugfixes
--------

* Fix two grave bugs in TOML metadata
* Require just one line break after TOML/YAML metadata
* Add alt attribute to images in galleries in base theme (Part of issue #2777)
* Support empty lines in YAML/TOML metadata (Part of issue #2801)
* Tests run on macOS.

New in v7.8.7
=============

In an effort to improve interoperability with other static site
generators, make importing data easier, and help with world
domination, Nikola v7.8.7 ships with support for the following
metadata formats:

* reST-style comments (``.. name: value`` — default format)
* Two-file format (reST-style comments or 7-line)
* Jupyter Notebook metadata
* YAML, between ``---`` (Jekyll, Hugo)
* TOML, between ``+++`` (Hugo)
* reST docinfo (Pelican)
* Markdown metadata extension (Pelican)

In addition, Markdown is now enabled and required by default.
More details: <https://getnikola.com/handbook.html#metadata-formats>

The release also fixes two important bugs, one that crashes when
trying to detect locale in some edge cases, and another which made
some themes quietly leak template files.  If you’re using a
Jinja2-based theme that does not have its own ``parent`` file, please
force a rebuild (``nikola build -a``).

Features
--------

* Enable markdown by default (part of Issue #2809)
* Allowing to register filters from plugins, and allowing to specify default
  filters as strings of the form ``filters.<name>`` (part of Issue #2475)
* Support ignoring assets via ``ignore_assets`` theme meta field
  (Issue #2812)
* Ignore unused Colorbox locales (Issue #2812)
* Accept tag metadata as lists for YAML/TOML (Issue #2801)
* Support for mapping metadata from other formats to Nikola names
  using the ``METADATA_MAPPING`` setting (Issue #2817)
* Support for reStructured text docinfo metadata with
  ``USE_REST_DOCINFO_METADATA`` option, defaulting to False (Issue #1923)
* New ``HIDE_REST_DOCINFO`` option, defaulting to False.
* Support for Markdown Metadata for Pelican compatibility by adding
  ``'markdown.extensions.meta'`` to ``MARKDOWN_EXTENSIONS`` (Issue #1923)
* Support for YAML and TOML metadata (Issue #2801)

Bugfixes
--------

* Use inheritance tree when looking for theme engine (Issue #2816)
* Fix unbound variable error in locale guessing (Issue #2806)

New in v7.8.6
=============

Features
--------

* Guess file format from file name on new_post (Issue #2798)
* Use BaguetteBox as lightbox in base theme (Issue #2777)
* New ``deduplicate_ids`` filter, for preventing duplication of HTML
  ``id`` attributes (Issue #2570)
* Ported gallery image layout to base theme (Issue #2775)
* Better error handling when posts can't be parsed (Issue #2771)
* Use ``.theme`` files to store theme metadata (Issue #2758)
* New ``add_header_permalinks`` filter, for Sphinx-style header links
  (Issue #2636)
* Added alternate links for gallery translations (Issue #993)

Bugfixes
--------

* Use ``locale.getdefaultlocale()`` for better locale guessing
  (credit: @madduck)
* Save dependencies for template hooks properly (using ``.__doc__`` or
  ``.template_registry_identifier`` for callables)
* Enable larger panorama thumbnails (Issue #2780)
* Disable ``archive_rss`` link handler, which was useless because no
  such RSS was ever generated (Issue #2783)
* Ignore files ending wih "bak" (Issue #2740)
* Use page.tmpl by default, which is inherited from story.tmpl (Issue
  #1891)

Other
-----

* Limit Jupyter support to notebook >= 4.0.0 (it already was in
  requirements-extras.txt; Issue #2733)

New in v7.8.5
=============

Math support changes
--------------------

* If you edited templates related to indexes and posts (``index.tmpl``,
  ``post.tmpl``, ``index_helper.tmpl``, ``post_helper.tmpl``) in your
  templates, you should adjust them to use ``math_helper.tmpl``.
* If you are using KaTeX, you should remove the CSS snippet from your
  configuration (templates), as that is now handled by Nikola.

Features
--------

* Get rid of ``THEME_REVEAL_CONFIG_*`` settings, use global context
  instead (Issue #2485)
* New emoji shortcode
* Add ``SECTION_PATH`` support to move the section indexes to a
  user-defined location (Issue #2738)
* Add a list of template variables to documentation (Issues #2328,
  #2712, #2259) and update the theming reference (Issue #2259)
* Add ``{post_title}`` tag for Read More links (Issue #2709)
* Include MathJax config only when needed (via Issue #2715)
* Include KaTeX CSS automatically when needed (Issue #2715)
* Split out math code into new ``math_helper.tmpl`` template (Issue
  #2715)
* Added ``jpegoptim_progressive`` filter to convert jpeg images to progressive
  jpegs.

Bugfixes
--------

* Open ``127.0.0.1`` when using ``nikola serve -b`` and default
  ``0.0.0.0`` hostname to avoid resolution issues — the site is still
  available on all interfaces (Issue #2755)
* Don't break animated GIFs in postprocessing (Issue #2750)
* More robust shortcodes, no need to escape URLs in reSt, work better
  with LaTeX, etc.
* No longer creates empty subarchive pages, and no longer create broken
  archive navigation links on day level (Issue #2734)
* Fixes post scanner plugin order (Issue #2720)
* Rename ``POSTS_SECTION_ARE_INDEXES`` to ``POSTS_SECTIONS_ARE_INDEXES``
* Make date ranges work in shortcode-based post lists (Issue #2690)
* Read data files only if Nikola configuration exists (Issue #2708)
* Make ``PAGE_INDEX`` work with ``PRETTY_URLS`` (Issue #2705)
* Fix PHP posts/pages not rendering on Windows (Issue #2706)
* Improving support for PostScanner plugins by asking them which compilers
  are unused (Issue #2496)

New in v7.8.4
=============

Features
--------

* Refactor RSS feed generation to allow better plugin access
* Add Jupyter config as dependency for jupyter posts (by @knowsuchagency)
* Make ``nikola plugin --list-installed`` more readable (Issue #2692)
* Accept ``now`` in post-list date conditions
* Add ``RSS_COPYRIGHT``, ``RSS_COPYRIGHT_PLAIN``, and
  ``RSS_COPYRIGHT_FORMATS`` options in conf.py which can be disabled
  by specifying ``copyright_=False`` to ``generic_rss_renderer``, or
  overriden by specifying an explicit value.
* Write PID of detached ``nikola serve`` process to a file called
  ``nikolaserve.pid``
* Append file name (generated from title) if ``nikola new_post``
  receives directory name as path (Issue #2651)
* Add a ``require_all_tags`` parameter to the ``post-list`` directive to
  show only posts that have all specified tags. (Issue #2665)
* Add ``META_GENERATOR_TAG`` option in conf.py allowing the meta generator
  tag to be disabled (Issue #2628)
* Add ``YUI_COMPRESSOR_EXECUTABLE``, ``CLOSURE_COMPILER_EXECUTABLE``,
  ``OPTIPNG_EXECUTABLE``, ``JPEGOPTIM_EXECUTABLE`` and
  ``HTML_TIDY_EXECUTABLE`` to configure executables for built-in filters.
  (Issue #2615)
* Allow setting custom GUID in feeds (Issue #2378)

Bugfixes
--------

* Remove misplaced and duplicated meta description tags (Issue #2694)
* Fix crash if ``PAGE_INDEX`` is enabled and make them actually work
  (Issues #2646, #2702)
* Ignore ``NEW_POST_DATE_PATH`` when creating pages (Issue #2699)
* Ensure ``post.updated`` is timezone-aware (Issue #2698)
* Pass previously missing post object and language to reST compiler
  and language to Markdown compiler (for shortcodes)
* Fix crashes when rendering subcategories (Issue #2681)
* Prevent writing cache files outside of the cache folder
  (Issue #2684)
* Fix mimetype guessing in auto mode (Issue #2645)
* Fix filters.html5lib_xmllike for laters html5lib (Issue #2648)
* Skip the current post in post lists (Issue #2666)
* Fix poor performance when compiling multiple markdown documents with
  the markdown compiler. (Issue #2660)
* Fix crash if ``SHOW_INDEX_PAGE_NAVIGATION`` is ``True`` while
  ``INDEXES_STATIC`` is ``False``. (Issue #2654)
* Make ``NEW_POST_DATE_PATH`` follow ``rrule`` if it exists (Issue #2653)

New in v7.8.3
=============

Emergency bugfix release (``nikola new_page`` did not work in v7.8.2).

Features
--------

* Sort posts chronologically with one unified function (easier to
  change). (Issue #2627)
* Sort posts in the following order (most important last): source path
  (A-Z), title (A-Z), date (reverse chronological order), priority
  meta number (descending). (Issue #2627)

Bugfixes
--------

* Fix a bug that prevents ``nikola new_page`` from working (Issue #2631)

New in v7.8.2
=============

**Minor API change:** The ``compile_string`` compiler method (partially
internal) now takes a post argument and returns between two and four
values, adding ``shortcode_deps`` and shortcode support. See issues
#2623 and #2624.

Features
--------

* Add meta generator tag to default templates to promote Nikola
  (Issue #2619)
* Add ``nikola new_post -d`` and ``NEW_POST_DATE_PATH`` to allow
  automatic creation of year/month/day (date-based) directory
  structures (Issue #2513)
* Allow enabling pretty URLs with per-post setting (Issue #2613)
* Add a ``sort_posts`` function (available as Jinja filter in global
  context), which allows general-purpose timeline sorting (Issue
  #2602)
* Allow creating archive navigation (Issue #1639)
* Accept a ``page`` argument for taxonomy paths (Issue #2585)
* Query strings in magic links are passed as keyword arguments to path
  handlers (via Issue #2580)
* Accept arbitrary arguments to path handlers (via Issue #2580)
* Added new ``typogrify_oldschool`` filter (Issue #2574)
* Improving handling of .dep files, and allowing compilers to specify
  additional targets for the ``render_posts`` task (Issue #2536)
* ``render_template`` and ``generic_renderer`` can now create HTML
  fragments.
* Allow posts to set custom ``URL_TYPE`` by using the ``url_type``
  meta tag (useful for HTML fragments inserted using JavaScript)
* Plugins can depend on other plugins being installed (Issue #2533)
* The destination folder in ``POSTS`` and ``PAGES`` can now be
  translated (Issue #2116)
* Pass ``post`` object and ``lang`` to post compilers (Issue #2531)
* Pass ``url_type`` into template's context.
* Make thumbnail naming configurable with ``IMAGE_THUMBNAIL_FORMAT``.
* There is a new plugin category ``Taxonomy`` which allows to easily
  create new taxonomies. All of the existing taxonomies (authors,
  archives, indexes, page index, sections, tags, and categories)
  have been converted to the new system. (Issue #2107)
* Added ``CATEGORIES_INDEX_PATH``, similar to ``TAGS_INDEX_PATH``.
  (Issue #2567)
* Made ``INDEX_PATH``, ``RSS_PATH`` and ``AUTHOR_PATH`` translatable.
  (Issue #1914)
* Added setting ``SHOW_INDEX_PAGE_NAVIGATION`` which enables a basic
  page navigation for indexes. (Issue #2299)
* Added settings ``DISABLE_INDEXES_PLUGIN_INDEX_AND_ATOM_FEED`` and
  ``DISABLE_INDEXES_PLUGIN_RSS_FEED`` to disable specific parts of
  the ``classify_indexes`` taxonomy plugin. (Issue #2591)

Bugfixes
--------

* Work around conflicts between posts and sections trying to render
  index.html files (via Issue #2613)
* Make ``AUTHOR_PAGES_ARE_INDEXES`` really work (Issue #2600)
* WordPress importer now correctly handles &amp; etc. in tags.
  (Issue #2557)
* If ``CODE_COLOR_SCHEME`` is empty, don’t generate ``code.css``
  (Issue #2597)
* Don’t warn about ``nikolademo`` DISQUS account when comments are
  disabled (Issue #2588)
* Make ``data`` from global context available to templated shortcodes
  as ``global_data`` (Issue #2488)
* Don't crash if plugins is a file (Issue #2539)
* Don't mangle bare ``#`` links (Issue #2553)
* ``generic_index_renderer`` now always produces output. It previously
  did not when the post list was empty and ``INDEXES_STATIC == False``.
  (via Issue #2579)


New in v7.8.1
=============

Features
--------

* Add Hebrew translation by Yitzhak Bar Geva
* Add Chinese (Traditional) ``zh_TW`` translation by Po-Wen Chi
* Add ``nikola theme --list-installed`` (Issue #2504)
* Add ``KATEX_AUTO_RENDER`` setting to configure math delimiters
* Update KaTeX version to 0.6.0: support aligned math display
* Better support for a tree of files in ``data/``


Bugfixes
--------

* Rename ``stories`` to ``pages`` in most of the codebase (Issue
  #1891)
* Report missing/unknown dates in posts with filenames
  (Issues #2505, #2506)
* Report filename of post that raised exception when scanning
  (Issue #2505)
* Accept ``page`` and ``pages`` for the ``type`` field in post lists
* Don’t crash if a post list has no posts (Issue #2489)

New in v7.8.0
=============

Features
--------

* Exposed ``gist`` as a shortcode (Issue #2459)
* Always copy source files for listings (Issue #2473)
* Detect dependencies in template strings (Issue #2455)
* RSS feeds for sections (Issue #2068)
* New ``data`` metadata that loads data from external files (Issue #2450)
* Shortcode to escape to the template language (Issue #1227)
* Added link to raw file in listings (Issue #1995)
* New NO_DOCUTILS_TITLE_TRANSFORM (Issue #2382)
* Update options of chart directive to Pygal 2.2.3
* Pass global context to template shortcodes (Issue #2424)
* Added new options --html2text and --transform-to-markdown
  to WordPress importer (Issue #2261)
* Listing: guess the lexer if cannot be determined from the file name.
* Read files from data/ and insert data in global context (Issue #2477)

Bugfixes
--------

* Added link to sources in the output of listing directive (Issue #2472)
* Fix Windows crash with calendar locales (Issue #2332)
* Remove the (useless) ``<base>`` tag by default; change conf.py to
  opt in (Issue #2471)
* Show tag descriptions when TAG_PAGES_ARE_INDEXES is True (Issue #2444)
* Record template dependencies for post-list shortcut (Issue #2451)
* Default to English for docutils messages if no translations exist
  (Issues #2422, #2437)

New in v7.7.12
==============

Features
--------

* New Telugu translation by Chillar Anand
* Add ``sections`` filtering in the post list directive
  (Issue #2409)
* Update Bootstrap to v3.3.7
* Add ``EXTRA_THEMES_DIRS`` search path, similar to ``EXTRA_PLUGINS_DIRS``,
  to locate themes at other places (Issue #2427)

Bugfixes
--------

* Added code documentation to ReadTheDocs (Issue #2124)
  (https://nikola.readthedocs.io/en/latest/)
* Pass language to docutils so admonitions are translated (Issue #2422)
* Put 2-file post metadata in the same place as the text file when
  specifying a path in ``new_post``, ``new_page`` (Issue #2420)
* Register dependencies in post-list shortcode (Issue #2412)
* Support post-list shortcode better (Issue #2408)
* Fix gallery links in base theme (Issue #2416)
* Respect ``DEPLOY_DRAFTS`` and ``DEPLOY_FUTURE`` in ``github_deploy``
  (Issue #2406)
* Don’t remove ``<!DOCTYPE html>`` if typogrify filters are in use
* Avoid infinite loop if bootstrap3 can't be loaded (Issue #2402)
* Fixed image rotation to update image size correctly (Issue #2418)

New in v7.7.11
==============

Bugfixes
--------

* Brown bag bug in image resizing (ralsina says my fault!)

New in v7.7.10
==============

Features
--------

* New EXIF_WHITELIST option to filter EXIF data (Issue #2323)
* Support ``date`` filtering in the post list directive
  (Issue #1889)
* Support ``doc`` shortcode (equivalent to reST ``doc`` role — part of
  Issue #2170)
* Added Albanian translation by Vango Stavro
* Added ``post-(type)`` class to ``story.tmpl`` (uses the ``type``
  meta field, defaults to ``post-text`` — same behavior as posts)
* New ``compiled`` signal after post is compiled (Issue #2369)

Bugfixes
--------

* Some images were copied ignoring the PRESERVE_EXIF_DATA option
* Warn about possible outdated files after --clean-files (Issue #2017)
* Improved EXIF orientation handling
* Register post list template as a dependency (Issue #2391)
* Fix section color hashing when using Python 2
* Use ``en_US`` dictionary name with pyphen for better compatibility
* Fix graceful degradation if ``pyphen`` lacks dictionaries
* Add horizontal scrollbar to listings (via getnikola/nikola-themes#86)
* Copy files when importing two-file posts instead of reading and
  writing (useful for binary formats, eg. docx) (Issue #2380)
* Using correct category titles for category hierarchies
  (Issue #2384)

New in v7.7.9
=============

(1000+ stars on GitHub — thanks!)

Features
--------

* New ``sc`` or ``html`` reST role, which passes content unaltered (Issue #1854)
* Point the user to our users site after 1st successful deploy (Issue #2096)
* Option to disable color output using ``NIKOLA_MONO`` environment
  variable (Issue #2360)
* Improved locale detection in Windows (Issue #2343)
* Added ``enclosure_length`` meta field for better interop (Issue #2338)
* New Lithuanian translation by Antanas Lasys

Bugfixes
--------

* Avoid conflicts caused by multiple copies of the same plugin (#2362)
* Fix handling of some wordpress dumps (Issue #2340)
* When using the plugin command, load ALL plugins (Issue #2359)
* Fix plugin removal for plugins that are a package (Issue #2356)
* Reload English messages for every theme to prevent caching (Issue #2347)
* Cache theme messages after loading once (Issue #2344)
* Add ``<link>`` tags to other languages even if the post is
  untranslated (Google complained otherwise)
* Don't call sys.exit() from plugins if possible (Issue #1839)
* Create Persistor directories only if site is configured (Issue #2334)
* Remove newlines in imported WordPress titles (Issue #2330)

New in v7.7.8
=============

Features
--------

* Template-based shortcodes now receive positional arguments too (Issue #2319)

Bugfixes
--------

* Fix folder handling and redirects in ``nikola auto`` (Issue #2331)
* Use state files in ``nikola github_deploy`` and ``nikola status``
  (Issue #2317)
* Add ``align`` options for ``youtube``, ``vimeo``, ``soundcloud``
  reST directives (Issue #2304)
* Update ``FILE_METADATA_REGEXP`` example in docs (Issue #2296)
* Show “tags too similar” error instead of cryptic doit crash (Issue #2325)
* Fix crashes when tag appears multiple times in a post (Issue #2315)
* Use binary I/O for ``.svg`` files in galleries
* Accept ``.svgz`` extension by default
* Don't randomly load plugins when Nikola is called with no arguments (Issue #2297)

New in v7.7.7
=============

Features
--------

* New ``--one-file`` option to wordpress importer (Issue #2262)
* New Pygal-based chart shortcode (Issue #2170)
* Add ``post_type`` to post-list directive (Issue #2272)
* Use ``sys.executable`` for launching pip in ``plugin`` (Issue #2275)

Bugfixes
--------

* Fix Indonesian translation (Issue #2291)
* Fix a JSON conversion bug in the WordPress importer (Issue #2264)
* Don’t create download directories when not downloading WordPress
  attachments (Issue #2260)
* Don’t display “Good link” messages in ``nikola check -l`` by default,
  can be re-enabled with ``-v`` option (Issue #2268)
* Fix a format string in ``nikola check`` (Issue #2267)
* Don't crash wordpress importer when posts are "empty" (Issue #2263)
* Don't put untranslated and nonexistant posts in sitemap (Issue #2289)

New in v7.7.6
=============

Features
--------

* Add ``FRONT_INDEX_HEADER`` setting to allow adding greeting notices
  to the main index page (Issue #2249)

Bugfixes
--------

* Make Jupyter posts build (Issues #2248, #2252)

New in v7.7.5
=============

Features
--------

* Add ``nikola theme --new`` command for creating new themes (Issue #2231)
* Add ``nikola theme --copy-template`` command for copying templates
  to customize them (Issue #2231)
* Add ``nikola theme --uninstall`` command for deleting themes (Issue #2231)
* Replace ``nikola install_theme`` with more capable ``nikola theme``
  command (Issue #2231)
* Allow for customizing ``github_deploy`` commit messages with ``-m``
  (Issue #2198)
* Commit to source branch automatically in ``github_deploy``
  if ``GITHUB_COMMIT_SOURCE`` is set to True (Issue #2186)
* Hugo-like shortcodes (Issue #1707)
* New Galician translation
* New PRESERVE_EXIF_DATA option to copy EXIF when resizing images (Issue #2204)
* New facilities for data persistence and data caching (Issues #2209 and #2009)
* (internal) allow ``scripts/jinjify.py`` usage with scripts (Issue #2240)

Bugfixes
--------

* Fix some rebuilds with indexes and galleries
* Make state files work on Python 3
* Don’t attempt to create redirects for URLs with query strings in
  WordPress imports if the site is in a subdirectory (Issue #2224)
* Avoid some random file rebuilds (Issue #2220)
* Honor ``MATHJAX_CONFIG`` setting
* Display tags and archives in a unified format, with the date on the
  left, instead of a misplaced dash in tags (Issue #2212)
* Decide ``is_mathjax`` based on current language tags (Issue #2205)
* Don't duplicate images in flowr when resizing page (Issue #2202)

New in v7.7.4
=============

Features
--------

* Added cache for Jinja templates (Issue #2166)
* Use Jupyter instead of IPython shims (Issue #1938)
* Automatically open gallery images colorbox based on URL fragment (Issue #2146)

Bugfixes
--------

* Fix enclosures from metadata (Issue #2189)
* Restored log level to INFO (it broke many messages)
* Check HTTP response status of minifying tools and skip them if they’re unavailable
* Change rewrite rule for fragment-only links (Issue #2132)
* Mention disabled plugins in ``nikola plugin --list-installed`` (Issue #2139)
* Don't examine all gallery image dates every build (Issue #2160)

New in v7.7.3
=============

Features
--------

* Recommend ``ghp-import2`` (better packaging) (Issue #2152)
* New ``TAGS_INDEX_PATH`` option for overwriting the path
  of the tag index list page.
* Support for ``~~strikethrough~~`` in Markdown (Issue #2149)
* Hungarian translation (by Baptiste Darthenay)
* ``serve`` and ``auto`` publishes DNS Service Discovery records
  to the local network announcing they’re running web servers.


Bugfixes
--------

* Implement translating ``DATE_FORMAT`` properly
* Remove superfluous translatability for a boolean (Issue #2140)
* Pass messages to post-list template (Issue #2156)
* Changed default log level from INFO to NOTICE (``nikola check`` is less chatty)
* Fix support for panorama images in gallery(Issue #2143)
* Support "maps.world.World" and similar charts in Pygal (Issue #2142)
* Capitalize "UTF-8" properly in locale guessing (Issue #2137)

New in v7.7.2
=============

Features
--------

* Warning about Python 2.7 deprecation (Issues #2121, #2122)
* New ``jsonminify`` filter for minifying JSON files.
* New ``xmlminify`` filter for minifying XML files.
* New option ``FEED_PREVIEWIMAGE`` includes the ``post.meta.previewimage``
  image in Atom and RSS feeds. (Issue #2095)

Bugfixes
--------

* Support Pillow v3.0.0 (Issue #2130)
* Support setting template in metadata in translated posts (Issue #2114)
* Fix false orphan report for code.css and robots.txt (Issue #2106)
* Fix reST post list date formatting error (Issue #2104)
* Deprecated ``RSS_TEASERS``, ``RSS_PLAIN``, ``RSS_READ_MORE_LINK``, and
  ``RSS_LINKS_APPEND_QUERY`` in favor of ``FEED_TEASERS``, ``FEED_PLAIN``,
  ``FEED_READ_MORE_LINK``, and ``FEED_LINKS_APPEND_QUERY`` for both Atom
  and RSS feeds. (Issue #2095)
* /robots.txt was never being built (Issue #2098)
* SVG thumbnails (Issue #2094)

Deprecations
------------

* Post.section_link is now deprecated (Issue #2086). Use
  site.link('section_index', post.section_slug()) instead. (not
  'section_index_link', as previously stated in this document)

New in v7.7.1
=============

Features
--------

* Better Template / JS / CSS demo in sample site.
* New normalize_html filter
* Support UTF-8 paths and encoded links when the ``USE_SLUGIFY`` option
  is disabled. (Issue #2037)
* Per-document hyphenation using "hyphenate" metadata flag.
* New option USE_KATEX to switch from MathJax to KaTeX (Experimental).
* Support SVG in galleries (Issue #1605)
* Made TAG_PATH translatable (Issue #1914)
* Made CATEGORY_PATH translatable (Issue #1914)
* Display post counts for archive links (Issue #2011)
* Document link/path handlers (Issue #2008)
* Made DATE_FORMAT and JS_DATE_FORMAT translatable (Issue #2032)

Bugfixes
--------

* Generate language-specific section links (Issue #2069)
* Rebuild pages when user changes POST_SECTION_COLORS (Issue #2066)
* Look for bundle assets also in output/, allowing bundling of files
  created by plugins (Issue #1370)
* In listings, if lexer is not specified, use literal (Issue #2078)
* Remove bogus ambiguity on listing links (Issue #2080)
* Unix-slash caused conflict in Windows (Issue #2079)
* Locale is now threadsafe, avoid races in threaded builds (Issue #2071)
* Make typogrify filter work when applied from metadata (Issue #2064)
* Handle metadata in post files that start with a BOM (Issue #2059)
* Handle error downloading bootswatches (Issue #2054)
* Monitor plugins/ in ``nikola auto`` (Issue #2044)
* Multi-lingual and multi-level directories confused section slug
  detection (Issue #2023)
* Use Unicode strings for WordPress comment headers (Issue #2019)
* Don't add stories to author pages (Issue #2007)

New in v7.7.0
=============

Features
--------

* New support for online CSS and JS minifying services (Issue #1999)
* Make <base> tag optional with USE_BASE_TAG flag (Issue #1985)
* Render author pages (Issue #1972)
* Atom feeds for tag lists (Issue #1686)
* New ``THEME_COLOR`` option for customizing themes from a primary color
  (Issue #1980)
* New ``color_hsl_adjust_hex`` and ``colorize_str_from_base_color``
  functions available in themes (Issue #1980)
* New ``POSTS`` output subfolders now generate sections by deault
  (Issue #1980)
* New ``POSTS_SECTIONS`` and ``POSTS_SECTION_*`` options for
  configuring the section pages (Issue #1980)
* For themers: Each ``post`` are now asssociated with section_color,
  section_link, and section_name (Issue #1980)
* Each new section page has a auto-assigned color based on shifting
  the hue of ``THEME_COLOR`` based on a hash of the section name,
  can be overwritten with ``POSTS_SECTION_COLORS`` option (Issue #1980)
* New ``TAG_PAGES_TITLES`` and ``CATEGORY_PAGES_TITLES`` options
  (Issue #1962)
* Add Bosnian and Serbian (Latin) languages, by Saša Savić [bs, sr_latin]
* Add Portuguese (Portugal) language, by jamatos [pt]

Bugfixes
--------

* Make nikola tabcompletion work outside sites (Issue #1983)
* Fix display of categories list in bootstrap theme (Issue #2002)
* If webassets is not installed, use unbundled assets (Issue #1992)
* Check links in Atom and sitemap files (Issue #1993)
* Link checker should check all absolute URLs to self (Issue #1991)
* Check ``img|source[@srcset]`` as part of ``check -l``  (Issue #1989)
* Clean up translations for third party components
* ``pagekind["main_index"]`` set on the main indexes to differentiate
  them from all the other indexes.
* Add dependency on metadata file for 2-file posts (Issue #1968)
* Set UTF-8 charset in Content-Type or ``text/*`` and ``*+xml`` (Issue #1966)

New in v7.6.4
=============

Features
--------

* Checking remote links also checks redirects (nikola check -lr)
* Update suggested license to its latest version (Issue #1950)
* Add Punjabi language, by Jasdeep Singh (Issue #1940)
* New option to use custom, and several ``TEASER_END`` values

Bugfixes
--------

* Rewrite srcset links (Issue #1939)
* Add dependencies for include tag in Mako (Issue #1956)
* Don’t duplicate BLOG_TITLE in the front page title (Issue #1952)
* Escape instad of strip HTML in titles (Issue #1952)
* Make LINK_CHECK_WHITELIST apply to remote link checks
* Make STORY_INDEX work together with PRETTY_URLS (Issue #1949)
* Refactor new_post to match lazy plugin loading (Issue #1943)
* Make Nikola startup faster by not loading useless plugins (Issue #1825)
* Ignore sliced multibyte characters when reading metadata for sitemaps
* Fix NameError caused by failed import in auto plugin.

New in v7.6.3
=============

Features
--------

* New translations: Serbian and Bosnian, by saleone
* Added mechanism for rest extensions to depend on configuration options
  (Issue #1919)
* Render Jupyter notebooks (ipynb) in listings (Issue #1900)

Bugfixes
--------

* Ignore sliced multibyte characters when reading metadata for sitemaps
* Handle folders without trailing slashes in nikola auto (Issue #1933)
* Set a base element to aid relative URL resolution, stripped on-the-fly
  when using the auto or serve command to view site locally. (Issue #1922)
* Rebuild archives when post slugs and titles change (Issue #1931)
* Handle special characters in URLs in nikola auto (Issue #1925)
* Avoid Broken Pipe error in nikola auto (Issue #1906)
* "nikola auto" serving implicit index.html with wrong mime type (Issue #1921)
* Handle non-integer shutter speeds and other variables in WordPress
  importer (Issue #1917)


New in v7.6.2
=============

Features
--------

* Make the Google Search example prettier, integrating well with
  Bootstrap 3 (Issue #1912)
* Add categories filter to post list directive (via Issue #1889)
* Remove empty directories with nikola check --clean-files (Issue #1873)

Bugfixes
--------

* Don't auto-rebuild on changes to ".foo" or "foo~" or changes in folders.
* Don't assume things are HTML in auto mode (Issue #1915)
* Don’t rebuild Atom syndication files unnecessarily often
* Include .php files in sitemaps
* Retry all client errors (4xx) to HEAD as GET reques when checking remote links
* Graceful fallback in ``nikola serve --detach`` on Windows (Issue #1913)
* Don't auto-rebuild on changes to ".foo" or "foo~" or changes in folders
* auto should also rebuild in response to move events
* Don’t get metadata from file if compiler-specific metadata exist (Issue #1904)
* Fix PRETTY_URLS prompt for Windows (Issue #1901)
* Fix reST and Markdown title extraction from documents (Issue #1895, #1898)
* Minor improvements to the extending document
* Re-add the hack to kill nikola auto on ^C (Issue #1893)

New in v7.6.1
=============

Features
--------

* Several improvements to WordPress importer (PR #1867):

  * Allowing to export categories and category hierarchy with
    --export-categories-as-categories
  * Allowing to exclude private posts, and allowing to include empty posts
  * Allowing to use HTTP authentication for downloads with --download-auth
    (PR #1848)
  * Allowing to export comments with --export-comments
  * Allowing to use WordPress page compiler to directly convert posts
    to HTML on import with --transform-to-html
  * Allowing to use WordPress page compiler on imported site instead of
    converting posts to markdown with --use-wordpress-compiler
  * Allowing to automatically install the WordPress page compiler when
    needed with --install-wordpress-compiler
  * Exporting information on attachments per post as JSON (#1867 and #1888)
  * Exporting post status and excerpt

* New ‘pagekind’ variable available to identify different kind of pages from theme templates
* Add ``--no-server`` option to ``nikola auto`` (Issue #1883)
* Always return unicode in slugify (Issue #1885)
* Remove logging handlers (Issue #1797)
* Add ``-d``, ``--detach`` option to ``nikola serve`` (Issue #1871)
* Use provided teaser format (``*_READ_MORE_LINK``) with custom teaser text
  (Issue #1879)
* Delete old ``bootstrap`` theme (use ``bootstrap3`` instead)
* Screen reader-friendly navbar collapses and dropdowns (Issue #1863)
* Modern reST stylesheets, based in part on Bootstrap 3 (Issue #1150)

Bugfixes
--------

* Use ``http`` as fallback in plugin/theme installers if a SSL error occurs
  (Issue getnikola/nikola-themes#49)
* Add missing ``xmlns:xhtml`` namespace to sitemaps (Issue #1890)
* Fixed superfluous rebuild problems with Python 3. Note that this will cause
  rebuilds for most sites. (Issue #1887)
* Fix links in sample post (Issue #1874)
* Don't use deprecated Yapsy methods (Isue #1868)
* Surpress wincing when auto is aborted during rebuilding
* Show tags only from the current language on tag listing pages (Issue #1856)
* Remove gap between line numbers and code (Issue #1859)
* Fix spurious warnings about posts published in the future (Issue #1850)

New in v7.6.0
=============

Features
--------

* Translate ``Write your post here.`` to default language (Issue #1621)
* Enable ``PRETTY_URLS`` by default on new sites created by the wizard
  (Issue #1838)
* Add ``-F``, ``--available-compilers`` option to ``nikola new_post``
  and ``nikola new_page`` (Issue #1837)
* Add print CSS to all default themes (Issue #1817)
* Support other kernels for ipynb/Jupyter using
  ``nikola new_post -f ipynb@kernel`` (Issues #1774, #1834)
* Add distinct styling for the site footer in bootstrap3
* Bootstrap v3.3.5 (Issue #1828)
* Use ``watchdog`` in ``nikola auto`` (Issue #1810)
* Add redirection for tags in Wordpress importer (Issue #1168)
* Add support for ``html_tidy_withconfig`` to use a ``tidy5.conf`` file
  (Issue #1795)
* Change default tidy5 filters not to drop empty elements (Issue #1795)
* Apply per-post filters via metadata (Issue #914)

Bugfixes
--------

* Nikola auto was broken in python 3 (Issue #1830)
* Read configuration when importing into an existing site (Issue #1823)
* Don’t crash on non-UTF-8 files during sitemap generation (Issue #1842)
* Unnecessary rebuilds of yearly archives (Issue #1833)
* Quietly ignore non-existent files in ``nikola check -l`` (Issue #1831)
* Don’t rebuild all tag or category pages when changing tag/category descriptions
* Fix crash in wordpress code importer (Issue #1819)
* Call correct command in ``nikola auto``

New in v7.5.1
=============

Features
--------

* Suggest misspelled commands (Issue #1807)
* New implementation of the ``nikola auto`` command
* ``requests`` is now required for all Nikola sites
* New ``nikola version --check`` option (Issue #1767)

Bugfixes
--------

* Support pure markdown posts in WP import (Issue #484)
* Make auto shutdown with ctrl-c (Issue #1811)
* Log properly in ``nikola auto`` (Issue #1812)
* Handle rare gettz failure (Issue #1806)
* Handle missing dependencies better in auto plugin (Issues #1803, #1809)
* IDNA mixing unicode/bytes in python 3 (Issue #1802)
* Cleaner splitting of metadata in onefile posts (Issue #973)
* It's markdown extra, not extras (Issue #1799)

New in v7.5.0
=============

Features
--------

* Make default themes more accessible (Issue #377)
* Add ipython support to the default themes (Issue #1782)
* Automatically mark ipynb posts/pages as requiring mathjax (Issue #1782)
* New --get-path option for ``nikola install_theme`` (Issue #1762)
* New `nikola rst2html` command (Issue #1710)
* New `nikola status` command (Issue #1740)
* Support [code] in wordpress importers (Issue #1186)
* Cleaner formatting of HTML output
* Allowing category hierarchies via new option CATEGORY_ALLOW_HIERARCHIES
  (Issue #1520)

Bugfixes
--------

* Dropped empty languages (fil, tl, zh_TW)
* Extract ``nikola check`` target list from actual task list instead of parsing (Issue #1758)
* Treat special-purpose “draft” tag case-insensitive
* Avoid some rebuild loops (Issue #1747)
* Better error if two posts/pages output conflict (Issue #1749)
* Scanning of posts refactored out of core (Issue #1700)
* github_deploy records lastdeploy timestamp like regular deploy
* Use a global directory for gallery images, ignoring translations (Issue #1726)
* The post-list directive only triggers rebuilds if timeline changes (Issue #1688)
* Don’t check the same remote URL more than once (Issue #1732)
* All remotely checked links resulted in incorrect warnings (`nikola check -lr`)
* Exclude `<meta content="noindex" name="robots">` from sitemaps
* new_post paths are now relative to CWD (Issue #1325)

New in v7.4.1
=============

Features
--------

* Better handling of missing/unconfigured compilers (Issue #1704)
* New -r option for the link checker to check remote links (Issue #1684)
* Use static navbars in bootstrap3 and bootstrap themes

Bugfixes
--------

* Handle strange URLs, like ed2k:// (Issue #1695)
* Fix very old metadata format support (Issue #1689)

New in v7.4.0
=============

Features
--------

* Substitutions for RSS_LINKS_APPEND_QUERY for identifying
  the source feed (feedRelUri) and  the kind of feed (feedFormat).
* New option GENERATE_ATOM, off by default
* Current and archive Atom feeds for indexes; category, tag, and archive indexes (RFC-4287 and RFC-5005)
* Atom feed auto-discovery in HTML indexes and category/tag indexes
* .atom included in the sitemap index
* New post metadata "updated", inherits "date" if unset
* Allow IPv6 in `nikola auto` (Issue #1682)
* Allow IPv6 in `nikola serve` (Issue #1682)
* Set default new site URL to https://example.com/
* Plugins can manipulate task dependencies (Issue #1679)
* LINK_CHECK_WHITELIST now works with output relative and full fs paths
* Four new filters: html_tidy_nowrap, html_tidy_wrap, html_tidy_wrap_attr,
  and html_tidy_mini for prettification and minification. Requires tidy5.
* Multilingual sitemaps (Issue #1610)
* Compatibility with doit v0.28.0 (Issue #1655)
* AddThis is no longer added by default to users’ sites
* New translations (az, fil, tl, uk, zh_TW)
* Add reStructuredText transform support (Issue #1647)
* Produce Unicode output in ``nikola init`` (via Issue #1644)
* Add ``HIDDEN_TAGS`` and ``HIDDEN_CATEGORIES`` settings to hide some
  tags and categories (eg. ``mathjax``) from view (Issue #1640)
* Instruct browsers to prefetch newest post when visiting the front page
* Add a ``sort`` parameter to the post-list directive to sort posts in
  the list using natsort. (Issue #1635)

Bugfixes
--------

* Make ``.islink`` work properly (via Issue #1536)
* RSS_LINKS_APPEND_QUERY not working in RSS feeds for tags
* `nikola check -l` didn’t scan posts
* Don’t use sets for ``FAVICONS`` (Issue #1674)
* Posts/Pages that use post-list will never be up to date (Issue #1671)
* Support using post.text() in post_list_directive.tmpl (Issue #1671)
* Avoid recursive dep when using post-list in a post (Issue #1671)
* Encode IDNs to Punycode in ``nikola init`` and in links;
  show an error if the site URL is not Punycode (Issue #1644)
* Make ``images`` the default output directory for IMAGE_FOLDERS
  (Issue #1663)
* Don't default to any swatch in bootswatch_theme (Issue #1656)
* Fix ``nikola check -l`` for absolute and full-path URL styles
  (Issue #1650)
* Really add missing trailing slashes in ``BASE_URL`` (Issue #1651)
* Check if files exists before adding them as post-list dependencies
  (Issue #1646)
* Fix build command in ``nikola auto`` (Issue #1641)
* Update Bootstrap to v3.3.4
* Update jquery-colorbox
* Fix symlinks for moment.js in Windows
* Fix code.css bundling in Windows
* Listings in posts now work in Windows (Issue #1631)
* Add 20 seconds to reading time per embedded media

New in v7.3.1.1
===============

* Emergency release to pin doit version to 0.27.0
* No code changes since v7.3.1 (not even ``nikola --version``)

New in v7.3.1
=============

Features
--------

* Separate new option IMAGE_THUMBNAIL_SIZE for setting size of
  thumbnails created by scale_images plugin (Issue #1606)
* Don't create larger thumbnails for panorama images in scale_images
  (Issue #1606)
* Added ``root`` path handler (via Issues #1008, #1573)
* Added RSS feeds to gallery HEAD (part of Issue #786)

Bugfixes
--------

* Use pyphen properly when there are no dictionaries for this language
  (Issue #1613)
* Fix ``nikola deploy`` when there is no cache (Issue #1615)
* Report issues in scale_images properly (Issue #1598)
* Correctly read sub-timezones in ``nikola init`` (via Issue #1599)
* Fix zoneinfo reading in ``nikola init`` (Issue #1599)
* Fix ``.islink`` detection for galleries (via Issue #1536)
* Links to languages point to site root and not the blog (Issue #1008)
* Brand link is now language-specific (Issue #1573)
* Fixed compatibility with IPython 3.x (Issue #1581)
* Compilers mark tasks as out of date if compiler-specific options and
  plugins change (Issue #1523)

New in v7.3.0
=============

Features
--------

* Added possibility for plugins to define how to read metadata from files
* Added ``-a``, ``--author`` option to set post author field
* Added option INDEXES_PRETTY_PAGE_URL to make URLs for indexes
  pages more pretty. (Issue #1548)
* Added ``-i``, ``--import`` argument to ``new_post`` for importing
  existing post contents (Issue #1385)
* Added warning about ``password`` in posts being insecure
  (Issue #1547)
* INDEXES_TITLE and INDEXES_PAGES are translatable (Issue #1544)
* Added new option ARCHIVES_ARE_INDEXES which allows archive pages
  which list posts to be rendered with the post contents.
  (Issue #1537)
* Added new option INDEXES_STATIC which allows to define the
  page ordering for indexes (Issue #1537). Also, if tag pages are
  created as indexes, they will behave more close to the
  default indexes.
* Use ``table`` line-numbering style with reST code, making
  copy-pasting code possible (Issue #1285)
* Tag and category pages are now more separated. The prefix for
  category pages can be changed and the folder can be modified
  independently of the tags' folder. (Issue #1535)
* Writing the tag cloud data file can now be disabled. Will be
  disabled by default in the future. (Issue #1535)
* The ``utils.config_changed`` function now takes an optional extra
  argument, ``identifier``, used to identify the source of a specific
  dependency save.  As such, ALL your files will be rebuilt after
  upgrading. (Issue #1526 via #1521)
* New option GALLERY_FOLDERS replacing GALLERY_PATH (Issue #1511)
* New PANDOC_OPTIONS option (Issue #1492)
* New tab-width option in code-block directive (Issue #1514)
* New option TAG_PAGES_DESCRIPTIONS for optionally making individual
  tag pages more unique and interesting (Issue #1486)
* New option LISTINGS_FOLDERS (which replaces LISTINGS_FOLDER) which
  allows to separate input and output folder names for listings, and
  allows to have more than one listings folder (Issue #1499)
* ReST listing directive now honors alternative listings folder names
  (Issue #1499)
* New command line option --conf= to specify the configuration file
  (default is conf.py) (Issue #1501)
* Added Arabic translation (by darkwise)
* Added Danish translation (by mikkelkristiansen)
* Added Indonesian translation (by Willy Sudiarto Raharjo)
* Added Korean translation (by Dong Geun)
* Added Serbian translation (by Ivan Radeljic)
* Added Swedish translation (by Johan Sommerfeld)
* New advanced option RSS_LINKS_APPEND_QUERY for tracking traffic
  from RSS subscribers
* Add ``robots`` meta tag with value ``noindex`` for drafts
  (Issue #1489)
* New option TAGLIST_MINIMUM_POSTS allows hiding unpopular tags from
  the tag index page (Issue #1484)
* New options CREATE_FULL_ARCHIVES and CREATE_DAILY_ARCHIVE which
  allow to create non-hierarchical archives and archives for days,
  respectively (Issue #1494)
* New plugin for creating image thumbnails, and a corresponding reST
  plugin (Issue #1527)

Bugfixes
--------

* Handle over-and-under-lined titles in rst for guessing title (Issue #1539)
* Don't apply colorbox to figures if they are of islink class. (Issue #1536)
* Turned minify_lines into a no-op (Issue #1497)
* Don’t classify unpublished posts as pages (Issue #1577)
* Fixed a ``TranslatableSetting.langformat`` race condition
* Fixed ``TranslatableSetting`` instantiation in
  ``TranslatableSetting.langformat`` (Issue #1571)
* Fixed ``rss.xsl`` path for blogs not deployed to server root
  (Issue #1563)
* Respect SHOW_UNTRANSLATED_POSTS = False in archives
  and for untranslated source files (Issue #1360)
* Make sure drafts don’t appear in sitemaps with multiple languages
  (Issue #1489)
* Make site.posts_per_file cover all languages (Issues #1270, #1489)
* Fix ANNOTATIONS not working at all (Issue #1477)
* Fix asking questions with Unicode chars in Python 2 (Issue #1476)
* Use ADDITIONAL_METADATA with the two-file format (Issue #1471)
* Make previewimage compatible with sites deployed to subdirectories
  (Issue #1473)
* Make sitemaps work on sites deployed to subdirectories
  (Issue #1472)

New in v7.2.0
=============

Features
--------

* Added support for fancy dates via moment.js (Issue #1256)
* Updates: jQuery v1.11.1, Bootstrap v3.3.0
* Allow presets usage with ``nikola deploy`` — ``DEPLOY_COMMANDS`` is
  now a dict of {preset: commands} (Issue #1452)
* New ``GLOBAL_CONTEXT_FILLER`` setting, functions listed there will
  be called with the local context and the template name before
  template rendering. (Issue #1451)
* New ``USE_CDN_WARNING`` setting to block warnings about potential
  ``USE_CDN`` misuse (defaults to True)
* ``nikola check -l`` will warn about mixed-security (HTTP on HTTPS)
* New ``ConfigPlugin`` category (without any specific behavior by default)
* New meta property “previewimage” for use with Open Graph (Issue #1421)
* Expose publishing date, tags, and more in Open Graph
* XSL Transform RSS into pretty and helpful webpages when opened in browsers (Issue #1411)

Bugfixes
--------

* Don’t pull by default in ``github_deploy`` (Issue #1464)
* disabled hyphenation for paragraphs with inline math (Issue #1461)
* Support filters for all tasks (Issue #1459)
* Don’t check cache/ in ``nikola check -l`` (Issue #1447)
* Fix new_post for pandoc format (Issue #1445)
* Fix STORY_INDEX generation (Issue #1444)
* Fix bootswatch creation version check (Issue #1441)
* Never rebase while pulling in ``github_deploy``
* Handle better ``new_post --format=pandoc`` when pandoc is not defined (Issue #1422)
* Open Graph properly uses latest RDFa in HTML – fixes validation
* Fix sitemap generation (Issue #1397 via #1032)
* Use destination folder names as titles for titleless listings
* Fixed problems with installation from .tar.gz under Windows (Issue #1417)
* Fixed encoding problems in WordPress urlmap writer (Issue #1416)
* Added back atom:link in RSS feeds
* Fixed Nikola-based page redirects in Python 2 (Issue #1414)
* Fixed files/\*.php (skip post/story-specific filters) (Issue #1403)
* Warn about missing / in BASE_URL differently (explicit request to
  fix the config file)
* Fix broken ``auto -b`` option (Issue #1437)

New in v7.1.0
=============

Features
--------

* Error out when reST gists cannot be downloaded (Issue #1402)
* Added a “Skip to content” link for accessibility (Issue #1345)
* Added ``minify_lines`` filter to strip leading whitespace and empty lines
* Added Google Closure Compiler JavaScript filter
* Print full tracebacks for conf.py errors
* Added ``USE_SLUGIFY`` (defaults to True).  If it’s False, Nikola allows and
  generates almost any Unicode character in page URLs (Issue #1321)
* sources for .html files are now copied as .src.html (Issue #1354)
* Copy files/\*.html verbatim (skip filters)
* Don’t generate STORY_INDEX if there is a conflicting story
* Added support for enclosures (via optional enclosure metadata tag) (Issue #1322)

Bugfixes
--------

* Fixed some margins for RTL text (Issue #1399)
* Fixed sitemapindex filtering of non-sitemap XMLs
* rebuild posts when metadata changes (Issue #1319)
* Allow + in slugs (Issue #1344)
* fix error message when tags that are too similar are found (Issues #1343, #1344)
* serve .svgz with content-encoding: gzip (Issue #1380)
* html5.js file for ancient IE now works outside of / (Issue #1372)
* PHP compiler now removes metadata comments the usual way (Issue #1374)
* PHP compiler’s permalinks were .html instead of .php (Issue #1373)
* Fixed importing WordPress blogs outside of / (Issue #1368)
* Fixed importing WordPress blogs without slugs (Issue #1364)
* don’t forget query parts of links (Issue #1369)
* Made posts that are directive-only work properly (Issue #1351)
* Made mathjax work with stories (Issue #1355)
* Fixed regeneration after change of ``NAVIGATION_LINKS``
* Made ``nikola bootswatch_theme`` compatible with Jinja themes
* Fixed submenus in Jinja themes (Issue #1327)
* Quietly ignore empty lines in bundles files
* Fixed wrong filter order in post_list plugin (Issue #1365)

New in v7.0.1
=============

Features
--------

* added ``-e``, ``--edit`` parameter to ``new_post`` and ``new_page`` to open
  $EDITOR after creation (Issue #1294)
* added ``scanned`` signal (after posts are scanned) (via Issue #1291)
* added missing ``initialized`` event (after tasks are loaded) (Issue #1291)

Bugfixes
--------

* sanitized dates generated by new_post by forcing an ISO 8601-esque
  format of YYYY-mm-dd HH:MM:SS (Issues #1284, #1313)
* made github_deploy compatible with Python 3 (Issue #1311)
* rebuild stuff on TranslatableSettings’ change (Issue #1297)
* made bootstrap-jinja and bootstrap3-jinja work again, assets were missing
  (Issue #1309)
* ignore non-utf8-encoded .html files in sitemaps (Issue #1308)
* fixed missing assets in Windows (Issue #1306)
* locales are ignored if there is no config (via Issue #1304)
* “fixed” a weird bug which tried to find the __file__ of __builtin__
* made ``nikola init`` locale-independent (via Issues #1288, #1304)
* fixed theme/plugin installation under Python 2.6 (Issue #1298)
* removed ``colorama`` and color support under Windows due to Unicode problems
  (Issue #1288)
* made ``files/assets/css/code.css`` work again (Issue #1290)

New in v7.0.0
=============

Features
--------

* Added ``UNSLUGIFY_TITLES`` option for making titles fetched via the
  filename regexp prettier (Issue #1282)
* New dependencies: ``natsort`` (natural sorting in galleries)
  and ``dateutil`` (replaces ``pytz``)
* Nikola.commands are now the user-friendly wrappers from console (Issue #1177)
* Add a ``github_deploy`` command to deploy to GitHub pages (Issue #1208)
* Remove tidy filter (it was broken due to tidy being ancient) (Issue #1164)
* Added ``GENERATE_RSS`` setting to allow disabling RSS in Nikola (Issue #1236)
* Link listings raw sources if COPY_SOURCES is True (Issue #1214)
* Much more powerful ``nikola plugin`` command (Issue #1189)
* More powerful console mode allows access to all nikola commands (Issue #830)
* New ``ROBOTS_EXCLUSIONS`` option listing resources to exclude from sitemap
  and include in new generated /robots.txt (Issue #804)
* Generate sitemapindex containing RSS and sitemap files (Issue #804)
* Support hooks in templates, for use by plugins (Issue #896)
* Use readline if available (Issue #1238)
* Replaced ``READ_MORE_LINK`` with ``INDEX_READ_MORE_LINK`` and
  ``RSS_READ_MORE_LINK`` (Issue #1222)
* Added reading_time, remaining_reading_time, paragraph_count,
  remaining_paragraph_count tags for READ_MORE_LINK (Issue #1220)
* Add canonical link in listings.
* Added support for new meta files that are the same format as 1-file metadata,
  allowing for greater flexibility (Issue #954)
* Colorbox is now internationalized (Issue #1205)
* Added LOGO_URL and SHOW_BLOG_TITLE=True settings to facilitate showing off logos (Issue #1122)
* Create automatic story index pages for subfolders, too (Issue #793)
* New Slovak translation by Tomáš Prékop
* Created a MarkdownExtension plugin class (Issue #1175)
* The base theme produces properly sectioned and semantic HTML5 (Issues #1123, #1137)
* The base theme comes with a new stylish look by default (Issue #1137)
* The base theme supports Right-to-Left by using ::dir(rtl) CSS4 rules and
  <html dir="rtl"> tags where valid (Issue #1146)
* Bootstrap 2 updated to 2.3.2 (via Issue #1137)
* Added FORCE_ISO8601 setting that currently makes new_post use ISO 8601 dates (via Issue #1156)
* Added support for TZ specified in post date (Issue #1118)
* Make ``nikola init`` ask about the site’s settings (Issue #1080)
* Use natural sorting for files and folders list in listings and galleries (Issue #1144)
* Added invariance testing (Issue #672)
* Plugins can inject templates in the system (Issue #1139)
* ``nikola import_wordpress`` now has a ``--qtranslate`` option, to parse posts
  in the qtranslate wordpress plugin format and turn them into multilingual
  Nikola posts (Issue #1072)
* ``nikola console`` allows for interpreter choice via -b, -i, -p; moreover,
  support for bpython is not deprecated anymore (Issue #1126)
* ``retired`` tag for posts has been replaced with ``private`` (via Issue #686)
* Changed the default TRANSLATIONS_PATTERN to "{path}.{lang}.{ext}". (Issues
  #990, #829)
* Backwards compatibility with v5 is broken.  Added backwards-incompatible
  changes. (Issue #829)
* Added a ``CONTENT_FOOTER_FORMATS`` config option.  It is used to format
  the ``CONTENT_FOOTER`` variable properly, for compatibility with
  the Translatable Settings feature.  The variable takes a dict, the keys
  of which are languages, and values are (args, kwargs). (Issue #1112)
* Certain settings are now translatable.  As of now, the settings are:
  BLOG_AUTHOR, BLOG_TITLE, BLOG_DESCRIPTION, LICENSE, CONTENT_FOOTER,
  SOCIAL_BUTTONS_CODE, SEARCH_FORM, BODY_END, EXTRA_HEAD_DATA,
  NAVIGATION_LINKS, READ_MORE_LINK (the up-to-date list is available in
  SITE.TRANSLATABLE_SETTINGS) (Issues #851, #1057, #1061, #1112)
* New Post.author() returns meta 'author' or BLOG_AUTHOR (Issue #1117)
* Ship base-jinja, bootstrap-jinja, bootstrap3-jinja with Nikola (Issue #1104)
* Invert ``HIDE_SOURCELINK`` and ``HIDE_UNTRANSLATED_POSTS`` into
  ``SHOW_SOURCELINK`` and ``SHOW_UNTRANSLATED_POSTS`` (Issue #1076)
* Remove old messages left over for backwards compatibility: (Issues #829, #1105)

  - "More posts about", replaced by "More posts about %s"
  - "Posted", replaced by "Posted:"
  - "Also available in", replaced by "Also available in:"

* Remove old "sl_SI", "tr_TR" locale aliases (use "sl" and "tr") (Issue #829, #1105)
* New option RSS_PLAIN to optionally strip HTML from RSS feeds (Issue #1107)
* Support content key in compilers' create_post (Issue #1098)
* Use setuptools’ extras feature.  Use ``pip install nikola[extras]`` to
  install Nikola with extras (``requirements-extras.txt``, formerly
  ``requirements-full.txt`` -- note the name change!) (Issue #1089)

Bugfixes
--------

* Markdown now outputs code in a reST-like fashion (Issue #1063)
* code.css is back to supporting only ``pre.code`` (Issue #1063)
* Links in monthly archives did not have ``/index.html`` if STRIP_INDEXES
  was set to False (Issue #1263)
* Fix lxml adding extra root tags being added by lxml by lxml.html.tostring
* Not having typogrify installed now produces a valid error (Issue #1262)
* Pages were not rebuilt when DEMOTE_HEADERS was changed (Issue #1261)
* Removed SCHEDULE_FORCE_TODAY option (Issue #984)
* Give better error for unknown subcommands (Issue #1233)
* Handle conf.py for import plugins more generically (Issue #1235)
* Remove RSS files from the sitemap (Issue #804)
* ``nikola deploy`` works with DEPLOY_FUTURE = True (Issue #1249)
* Removed EXTRA_PLUGINS and ENABLED_EXTRAS options (Issue #1247)
* ``nikola COMMAND -h/--help`` now outputs command help and not Nikola
  help (showing the command help is standard behavior) (Issue #1245)
* Redirect pages should have a body linking to the new location
* The typogrify filter is now Python 3-compatible (Issue #1244)
* Fix ``nikola auto`` not watching changes in FILES_FOLDERS (Issue #1241)
* Vimeo and YouTube embedding in reStructuredText is now protocol-relative
* Don't crash if a unknown kind of path/link is requested (Issue #1236)
* Don't run ``clean`` and ``list`` outside sites (Issue #1232)
* If an invalid language is specified, Nikola now shows a helpful error message
  instead of a traceback (via Issue #1225)
* Ensure the locale is set correctly when compiling posts (Issue #1219)
* Fix site-dependent commands (they tried to run anyways) (Issue #1223)
* Follow symlinks when walking trees (Issue #1206)
* bootswatch_theme works again and does not try using server hostname=swatch (Issue #1202)
* Make markdown extensions not break when markdown is not installed (Issue #1201)
* hidetitle now works in posts, too (Issue #1188)
* Refactoring of post translation checking (Issue #1194)
* Trigger rebuild on gallery changes in auto mode (Issue #1180)
* Galleries are more usable in non-Bootstrap-based themes (Issue #1137)
* Removed dependency on pytz because mixing it with dateutil breaks things.
* Use current system TZ for current_time (Issue #1161)
* Fix links with full path in RSS for files outside root (Issue #1162)
* ``nikola new_post`` now always outputs a newline at the end of file (Issue #1169)
* Gallery code cleanup (Issue #1121)
* USE_FILENAME_AS_TITLE works again (Issue #1073)
* Rebuild CSS bundles when files change, and also when files are removed (Issue #1153)
* Don't call links to SITE_URL bad on check when URL_TYPE is 'absolute' (Issue #1147)
* Trigger rebuilds if URL_TYPE changes (Issue #1095)
* Eliminate repeated tags in posts (Issue #1142)
* custom.css not included in bundles
* Don’t publish email addresses in RSS, use author name via Dublin Core
* Rebuild a lot of files when TIMEZONE changes (Issue #1110)
* The ``init`` command and the importers now always output to the CWD.
  Previously, if you had a ``conf.py`` file higher in the directory structure,
  Nikola would put the output of those commands in the directory that contained
  the file. (Issue #1132)
* Files with non-ASCII characters in filenames are copied only when needed, and
  not every build (Issue #1129)
* Split Twitter Cards and Open Graph, enable the latter by default
* Load html5shiv.js from remote or local server depending on USE_CDN option
* Fix dependency issue in listings (Issue #1032)
* Logging configuration has been fixed.  The stderr handler can now
  only be set to DEBUG or INFO (any higher levels are corrected as INFO), and
  unwanted (i.e. DEBUG) messages are not shown, as intended. (Issue #1111)
* Catch keyboard exit while serving so traceback does not show (Issue #1124)
* Support rescanning posts in the Nikola class (Issue #1100)
* Use TIMEZONE with ``nikola new_post`` and ``nikola new_page``. (Issue #1088)

New in v6.4.0
=============

Features
--------

* Add ``nikola new_page`` command (equivalent to ``nikola new_post -p``) (Issue #1060)
* Add LESS_OPTIONS and SASS_OPTIONS for specifying additional parameters to LESS/Sass compilers (Issue #1020)
* Warn users about bootswatch_theme being incompatible with bootstrap3-gradients
* Add link://filename/foo/bar.rst syntax to refer to the post generated from foo/bar.rst (Issue #1035)
* Log messages are colorized (colorama is required under Windows) (Issue #1044)
* Template filters are configurable via the TEMPLATE_FILTERS config variable (Issue #1038)
* Added Hindi translation by Sean Pue
* Livereload v2.1.0 is supported and frozen as the version to use due to backwards-incompatible updates (Issue #1023)
* Support :linenos: and :number-lines: in listings (Issue #1010)
* Support :linenos: in code blocks for Sphinx compatibility (Issue #1010)
* New link:///foo links which always point to absolute paths (/foo in that case) (Issue #986)
* Bootstrap 3 has been updated to v3.1.1 (Issue #1015)
* New --browser/-b option on the serve command to open instantly in a web browser (Issue #997)
* SASS/LESS files and targets file will be processed from site root (Issue #941)

Bugfixes
--------

* lastdeploy time recording was broken, changed to ISO format (Issue #1083)
* Avoid undefined behaviour if NAVIGATION_LINKS is missing keys for a translation (Issue #1082)
* Make livereload actually rebuild the site when changes are made (Issue #1067)
* Fix filename encodings in WordPress imports (Issue #1053)
* nikola check supports URL_TYPE="absolute" and URL_TYPE="full_path" (Issue #1046)
* Fix URL_TYPE=absolute and URL_TYPE=full_path on non-root sites (Issue #1046)
* Avoid running bundle tasks twice (Issue #1032)
* Fix post links in RSS feeds for sites outside of webserver root (Issue #986)
* Only run sitemap once (Issue #1032)
* Fix a bug with some multilingual pages
* Normalize paths (Issue #1028)
* Fix drafts being leaked in feeds (Issues #934, #971)
* If two tags generate the same slug, they are the same tag (Issue #1022)
* Assume UTF-8 if user's locale doesn't have any encodings attached (Issue #1026 via #1021)
* Support PRETTY_URLS for tag files (Issue #655)
* Change code.css and rst.css to have sane output everywhere (Issues #913, #1009, #1050)
* Fix image URLs in galleries for sites outside of webserver root (Issue #986)
* Fix link:// in RSS contents (Issue #952)
* HIDE_SOURCELINK was set to True sometimes (Issue #1004)
* Properly import cool URIs from WordPress, instead of just slugify-ing the path (Issue #693)
* Fixed SASS/LESS errors when more than one theme in chain has a targets file (Issue #941)
* Guard against empty list-items in base templates (Issue #936)

New in v6.3.0
=============

Features
--------

* Added translations:

  - Basque by aitorp
  - Czech by Ondřej Grover
  - Estonian by Lauri Võsandi
  - Norwegian Bokmål by Daniel Aleksandersen

* TIMEZONE now defaults to UTC (via Issue #893)
* Added a DEMOTE_HEADERS option (on by default; previously implemented by
  the Markdown and reST compilers) to have consenting compilers produce
  documents with headers lower by one than the one defined (Issue #891)
* isso comments are now supported (Issue #905)
* Gallery titles are used in more places (Issue #902)
* Gallery titles also are used in breadcrumbs (Issue #902)
* ``tagindex.tmpl`` is used for tag indexes instead of ``index.tmpl`` (Issues #930, #933)
* Added SASS_COMPILER option (defaults to sass) to add support for alternate compilers like sassc (Issue #940)
* Added LESS_COMPILER option (defaults to lessc) to add support for alternate compilers like recess (via Issue #940)
* sass/less files and targets file will be processed from site root (Issue #941)
* Added a list of posts for each tag in tag_cloud_data.json
* Added EXTRA_PLUGINS_DIRS option, for specifying additional plugin directories (Issue #953)
* Expose original doit "auto" command as "doit_auto" (Issue #955)
* New "type" metadata to make differences for posts (Issue #927)
* New Post.is_post attribute to differentiate posts and pages without bias
  (Post.use_in_feeds is False if the post is retired/unpublished/a draft)
* Add rel=canonical <link> elements (Issue #449)
* Add rel=alternate <link> elements to translations of the current page (Issues #988, #989)
* Added a INDEXES_PAGES_MAIN setting to show the page number on the index page
  if desired (True) (Issues #210, #987)
* Added a TRANSLATIONS_PATTERN setting to specify the format for
  language-dependent filenames (Issue #990)

Bugfixes
--------

* Support livereload 2.0 (Issue #968)
* Don't crash when docutils exception have no line number (Issue #920)
* Forced permalinks in active menu items (Issue #916)
* Remind the user to set THEME to use a downloaded theme
* Fix crash when using USE_FILENAME_AS_TITLE = False (Issue #892)
* Fixed deploy events if there is no TIMEZONE set (Issue #893 via #822)
* Modified translation strings: "Posted", "Also available in", "More posts
  about" — may break backwards compatibility (Issue #905)
  Details: https://groups.google.com/forum/#!topic/nikola-discuss/ABXKk9G0_u0
* Facebook comments are now showing properly
* Added a warning/error when lessc/sass are missing (via Issue themes#24)
* Fixed sass/less under Windows (Issue #939, themes#24)
* Fix URL rewriting of fragment-only links (Issue #945)
* Fixed the deploy rsync example (rsync --delete doesn't work with '/\*' as
  source) (Issue #959)
* Added a notice for the user if webassets is not installed and
  USE_BUNDLES is True (Issue #965)
* Support livereload 2.0 (Issue #968)
* Remove some unnecessary elements (Issues #969, #970)
* abs_link should return absolute URI

New in v6.2.1
=============

Features
--------

* Default themes adds semantic meanings to posts using h-entry (a microformats2) and HTML 5 microdata (Issue #867)
* New "hidetitle" metadata to suppress printing a title as heading (Issue #584)
* Template systems can now render to and from a string. (Issue #881)
* New event for newly deployed posts (Issue #882)


Bugfixes
--------

* Fixed some locale problems in posix systems (Issues #886, #884, #875)
* Don’t include BLOG_DESCRIPTION as meta tag on tag and gallery pages (Issue #876)

New in v6.2.0
=============

Features
--------

* RSS feeds for galleries (Issue #786)
* New EXTRA_IMAGE_EXTENSIONS option, and support most common image extensions by default (Issue #857)
* Add reStructuredText directive post_list (Issue #815)
* Galleries support translations
* Support a single archive per site (optional; instead of per-year or per-month archives) (Issue #853)
* The locales used in testing can be specified in environment variables (Issue #818)
* The locale to use with each language can be explicitly set (Issue #818)
* Initial support for signals/hooks using Blinker (Issue #764)
* Path/Link resolution mechanism for plugins (Issue #790)
* Sass compiling (Issue #642)
* Emit a signal when a new post is created (Issue #831)
* New Finnish translation.

Bugfixes
--------

* Don't create empty author elements, use dc:creator if author is not an email (Issue #868)
* Added striphtml filter in mako templates, strip tags from titles (Issue #865)
* Major refactoring of post creation (Issue #800)
* Major refactoring of galleries (Ongoing, Issue #786)
* Locale support in windows fixed (Issue #818)
* Fix logging incompatibility in Yapsy (Issue #826)
* Workaround for Mako cache folder unicode bug (Issue #825)
* Ensure folder creation when importing wordpress (Issue #812)
* Handle empty stories better and avoid Tipue crash (Issue #811)
* Trigger conflict if two posts generate the same output (Issue #806)
* Compilers now accept two of any line endings (\n, \r\n) instead of only Unix (\n) (Issue #832)
* Include RSS feeds in sitemap (Issue #804)
* Removed optional priority element from sitemap (Issue #838)
* Avoid duplicate entries in the sitemap (Issue #836)
* Include .xml in GZIP_EXTENSIONS (for RSS, sitemap) (Issue #844)
* Post.base_path is now using forward slashes on Windows (Issue #856)
* Custom CSS not detected in the files folder (Issue #862)
* Exclude non-RSS XML files in sitemap (Issue #864)
* Exclude "html" files without a doctype decleration in sitemap (Issue #864)
* Do not include "Read more" links at the end of teasers when stripping HTML

Other
-----

* the bpython console is now “slightly deprecated”

New in v6.1.1
=============

Features
--------

* New Slovenian translation

Bugfixes
--------

* The build_less plugin was broken (Issue #802)
* Every plugin now has its own LOGGER instance, with different names (Issue #797)
* A standardized way of reporting missing requirements (Issue #797)
* Don’t force requests for compile.rest.gist (Issue #795)

New in v6.1.0
=============

Features
--------

* Added slug support to the magic link:// URLs
* New Esperanto translation.
* New -q flag for quiet running (Issue #762)
* Added author field in RSS items (Issue #767)
* Annotations using annotateit.org (Issue #623)
* New GALLERY_SORT_BY_DATE option, defaulting to True.
  If set to False, sorts by name (Issue #667)

Bugfixes
--------

* Fixed compatibility with Windows’ multiple partitions (Issues #776, #784)
* Added language in the RSS feeds (Issue #777)
* Don't fail for empty bundles.
* Fix USE_BUNDLES compatibility with Python 3 (Issue #760)
* Compatibility with doit 0.23.0 (Issues #756 #758)
* Install enough of the theme chain to ensure themes are usable (Issue #748)
* Support Gist URLs in the gist directive for compatibility with sphinx-gist-embed (Issue #754)
* windows, dev - fix point pth to clone and run nikola without install (Issue #751)
* windows - fix install from clone or from a Github download (Issue #747, Windows)
* Make Listings directive inherit Include making it simpler and more powerful (Issue #744)
* Install builtin themes (Issue #741)
* LOGGER was incorrectly imported in planetoid.py
* Order Monthly Archive properly, descending order (Issue #740)

New in v6.0.4
=============

Features
--------

* New :doc: role for reStructuredText compiler, creates a link to another post
  / page inside the same site (Issue #724)

Bugfixes
--------

* Added missing metadata in internals.txt and extending.txt (Issue #738)
* Fix addthis sizing with bootstrap3 theme (Issue #731)
* Refuse to install in unsupported Python versions (Issue #733)
* Fix sitemap plugin compatibility with Python 3 (Issue #734)
* Changed default PyGal style (Issue #726)
* Add files used by the listings directive as dependencies (Issue #723)
* Localsearch task now depends on all pages, for better accuracy.
* More robust directory creation (Issue #208)
* Proper logging (Issues #712 #704)
* Be less agressive in hyphenating, also, split words differently. (Issue #718)
* Fixed several blogger import issues.
* Avoid double slashes in RSS link elements (Issue #716)
* Fix Python 3 incompatibility (Issue #715)
* Consider the current theme chain's parent, bundles and engine part of the file_dep for
  files created by generic_page_renderer (Issue #711)

New in v6.0.3
=============

Features
--------

* New --strict option for build command, makes warnings abort the build (Issue #704)
  Still doesn't really affect behaviour, because each warning needs to check it.

Bugfixes
--------

* Use correct pandoc argument order (Issue #709)
* Invalid POSTS and PAGES were created by the wordpress importer.
* Normalize paths in task targets, helping detect conflicts (Issue #546)
* Strip multiple digits in unslugify, used by image galleries (Issue #703)
* Added missing defaults and make Nikola work with empty conf.py (Issue #697)
* Add thumbnails as file dependencies of gallery indexes (Issue #551)
* Copy original image as thumbnail if PIL fails to resize it (Issue #551)
* Apply filters to files generated by the gallery tasks (Issue #708)
* More robust handling of filter commands' shell quoting (Issue #705)

New in v6.0.2
=============

Features
--------

* Support for external gzip commands (Issue #351)

Bugfixes
--------

* More meaningful error if conf.py is invalid (Issue #680)
* Made compatible with Docutils<0.9 again (Issue #679)
* Make footnote-references keep line height in rst.css
* Make bootswatch_theme work under Python 3 (Issue #695)

New in v6.0.1
=============

Features
--------

* New Russian translation
* Made ``private`` an alternate spelling of the ``retired`` tag (via Issue
  #686)

Bugfixes
--------

* Remove decoding errors if files are not proper UTF-8 (Issue #691)
* Stop ignoring \*.JPG and \*.PNG by galleries (Issue #690)

New in v6.0.0
=============

Features
--------

* Deprecated post_compilers for COMPILERS (Issue #601)
* Replaced post_pages option with POSTS and PAGES (Issue #601)
* Support for bootswatch in boostrap 2 and 3 (Issue #599)
* New ADDITIONAL_METADATA option to set extra metadata on all posts.
* All reStructuredText extensions are now plugins (Issue #621)
* New multiple comment system support (Issue #606, #634)

  * Deprecated DISQUS_FORUM option for COMMENT_SYSTEM_ID
  * New COMMENT_SYSTEM option to change comment systems, defaults to disqus

* New bootstrap3 theme (by areski)
* Added docs/upgrading-to-v6.txt for upgrade tips.
* Theme cleanup (Issue #599)
* Support for nested navigation links (Issue #104)
* New media directive for reStructuredText (Issue #608)
* New DEPLOY_DRAFTS and DEPLOY_FUTURE options (Issue #583)
* New Dutch translation
* Optional hyphenation (HYPHENATE option, Issue #576)
* Made AddThis support replaceable through new SOCIAL_BUTTONS_CODE option.
* categories
* Added a FUTURE_IS_NOW option for publishing future-dated posts now (Issues #486, #577)
* New typogrify filter (Issue #576)
* New COPY_SOURCES option, defaults to True (Issue #544)
* Customizable Read More (Issues #412, #533, #574)
* Support for LESS/RECESS CSS compilers
* Updated to Colorbox 1.4.27
* New pandoc compiler.
* Separate slides.tmpl template so that non-bootstrap themes can support them.
* New ADDITIONAL_METADATA option to specify metadata to include in the new_post
  command, alongside with the defaults (Issue #622)
* Schedule new posts automatically by specifying an iCal recursive rule as
  SCHEDULE_RULE (Issue #602)

Bugfixes
--------

* Added missing rel="self" link suggested by feedvalidator.org (Issue #264)
* Switched to semantic versioning (Issue #614)
* Better figure styling (Issue #626)
* Switched docutils math rendering to MathJax (Issue #620)
* Refactored crumb bar into a separate tmpl to avoid code duplication (Issue #612)
* Fix broken config dep for tags when NAVIGATION_LINKS is not set (Issue #610)
* Fixed bundles in base theme
* Deprecated ANALYTICS, replaced with BODY_END (Issue #601)
* Deprecated SIDEBAR_LINKS, replaced with NAVIGATION_LINKS (Issue #104 #601)
* Solve site theme's navbar overlapping Issues (Issue #585)
* Deprecated ADD_THIS_BUTTONS option.
* Show warning if unable to thumbnail an image (Issue #551)
* Use absolute URLs in feeds (Issue #590)
* Fix for mincss path munging (Issues #570 #589)
* Added missing dependency in gallery indexes (Issue #536)
* Anchors in listings had wrong filename slugs
* Only warn about incomplete translations once (Issue #580)
* Right-align image title in colorbox to avoid overlapping so much (Mentioned in Issue #570)
* Added LICENSE in the footer (Issue #528)
* Use random IDs for slides so you can have more than one in a page (Issue #572)

New in v5.5.1
=============

Features
--------

* New FEED_LENGTH option, defaults to 10 (Issue #549)
* Added no-cache headers to ``nikola serve`` (Issue #545)
* New mincss command, removes unused and redundant CSS (Issue #364)
* New chart directive based on pygal
* Update of IPython plugin to work with the upcoming IPython 1.0

Bugfixes
--------

* Remove cache/ when running ``nikola clean`` (Issue #558)
* Mark bundles as "cleanable" (Issue #558)
* Made ``nikola help`` much more resilient against broken conf.py (Issue #550)
* Show docinfo part of docutils output (Issue #556)
* Exit with error code when there is an error (Issue #543)
* Revamped ``requirements.txt`` — now ``requirements.txt`` contains the
  required dependencies and ``requirements-full.txt`` contains the
  optional ones (Issue #547)
* Fixed bug in example usage of install_theme.
* Better help text for bootswatch command.
* Fixed installation under pip 1.4 or later (pytz and yapsy versions must be
  hardcoded due to crazy versioning schemes)
* Added .rst to the default reStructuredText extensions (via Issue #542)
* Moved the sample site to the new one-file format (Issue #542)
* Escape HTML in titles (Issue #537)
* Fixed issues with index pages indexes (Issue #532)
* Fixed IPython plugin to work with the latest IPython.nbconvert machinery
* Fixed failing build because of hidden folders and files inside post folder

New in v5.5
===========

Features
--------

* New HIDE_SOURCELINK option (defaults to False)
* Switched theme repo to http://themes.nikola.ralsina.com.ar (Issue #411)
* New (untested) ASCIIDoc compiler
* Display very annoying warning when deploying the nikolademo Disqus account
* New Bulgarian translation
* New man page (created with help2man nikola -N --version-string=5.5) (Issue #460)
* Added "nikola version" command (Issue #504)
* Added more search form examples in conf.py.in (Issue #515)
* Template dependency support for Jinja (by koniiiik, Issue #511)
* New --clean-files option for nikola check
* Support --version on "run" command (Issue #504)
* New Turkish translation.
* New MARKDOWN_EXTENSIONS option, defaults to previopus behaviour (Issue #496)
* Posts with dates in the future will be treated as drafts (Implemented by punchagan)
* New "TaskMultiplier" plugin category, takes a task, returns 0 or more new tasks (Issue #483)
* New 'LINK_CHECK_WHITELIST' option for link checker (Issue #477)
* New Croatian translation.
* Jinja-default and jinja-site themes now automatically generated from the Mako versions.
* New Persian translation
* RSS feed now includes post tags (Issue #462)
* Experimental generic RSS/Atom importer (Issue #347)
* PHP support (Issue #313)
* New PRETTY_URLS option (generates slug/index.html instead of slug.html) (Issue #429)
* Added "templates/" folder to template path.
* Keyword metadata support in post pages (Issue #451)

Bugfixes
--------

* Improve custom.css detection (Issue #526)
* Fixed bad interaction between 2-file-format and untranslated posts in multilingual sites (Issue #525)
* Workaround in site theme for navbar hiding targets
* Flip index pages order (Issue #521)
* Make txt2tags work again (Issue #520)
* Updated to latest colorbox
* Skip metadata when compiling one-file posts (Issue #508)
* Use schema-relative URL for addthis to avoid insecure page warnings on HTTPS sites (Issue #510)
* Made the gzip plugin generate less confusing task names (no more double colon)
* Made "nikola check -f" respect OUTPUT_DIR
* Customizable teasers were broken (Issue #502)
* Be less invasive when processing rendered HTML (Issue #500)
* Run all tasks that should run (Issue #494, #493)
* Handle timezones in posterous imports (Issue #475)
* Actually ensure LateTasks are run later than Tasks
* Don't add drafts and retired posts to the sitemap (Issue #476)
* Avoid __future__ in setup.py because it breaks buildout (Issue #478)
* Use correct source links with PRETTY_URL=True (Issue #474)
* Handle non-ascii path in bundles (Issue #473)
* Handle non-ascii path in plugin loader (Issue #471)
* Handle non-ascii arguments in main (Issue #470)
* Make sitemap depend on file dates (reported by Kay Hayen)
* Better support for non-ascii urlencoded paths in the wp importer (Issue #468)
* Avoid crashing if user does a deploy with no commands
* Strip HTML and BODY tags in Post.text() (Issue #464)
* -f option broken in HTML compiler (Issue #463)
* Don't map empty folders, map folders with index.html, and don't map index.html (Issue #430)
* Wordpress import: write correct redirections for URLs not ending in an / (Issue #459)

New in v5.4.4
=============

Features
--------

* New Japanese translation.
* Nikola check exists with 1 if there is an error
* New HIDE_UNTRANSLATED_POSTS option that ensures you don't have mixed-language pages (Issue #373)
* New theme "site-planetoid" for use with the planetoid plugin.
* New 'retired' tag for posts that should no longer be in feeds.

Bugfixes
--------

* Added post data as a uptodate check for mustache (Issue #456)
* Rebuild post pages when the post's translation list changes (Issue #458)
* Handle "-h" (Issue #460)
* Added correct help for console command (Issue #460)
* Escape twittercard data (Issue #452)
* Added missing "twittercard" in story template
* Added support for per-language tags (Issue #450)
* Fix wrong path splitting (Issue #434)
* Remember locale even when set_locale failes (Issue #446)
* Decode path argument in new_post (Issue #442)
* task_indexes had missing config dependencies (Issue #441)
* Removed bogus links to slides assets that were removed
* Compressed files were seen as unknown by "nikola check"
* local search and mustache plugins must be disabled by default (Issue #437)
* Avoid failure if there are no tags and USE_GZIP is enabled (Issue #439)
* Fix aspect ratio detection in Vimeo videos (Issue #440)
* Blogger importer was passing wrong options to "nikola init" (Issue #408)

New in v5.4.3
=============

Features
--------

* Simpler slideshows based on Bootstrap's Carousel
* New CREATE_MONTHLY_ARCHIVE option, defaults to False (Issue #433)
* Added gist support for Markdown.
* New "nocomments" metadata that disables comments for a page/post (Issue #278)
* New HIDE_UNTRANSLATED_POSTS option (does nothing yet)
* New EXTRA_HEAD_DATA option, which adds extra things in <HEAD> (Issue #385)
* Moved translations to transifex.com
* New custom sitemap generator (Issue #395)
* New STRIP_INDEX_HTML option for cleaner URLs
* New alternative markdown compiler based on misaka
* New "internals" doc
* Place links to RSS feeds more visible to the visitor
* New CODE_COLOR_SCHEME option
* New "template" metadata that changes the template for a page/post (Issue #199)
* Added workaround for when Disqus doesn't support your exact locale
  (spanish only at the moment) Issue #389
* Extra plugins can be enabled via conf.py.
* Password-protected pages.

Bugfixes
--------

* Listings CSS fixes (Issue #416)
* If dateutil is installed, try to use it to parse dates (Issue #419)
* Fixed posterous import via import_wordpress (Issue #419)
* Set locale to the value of "lang" in templates, so things like strftime
  use localized values. (Issue #368)
* Fixed console command.
* Cleaned up arbitrary metadata.
* Don't crash in posts without actual post text.
* Nicer tag listing.
* Fixed unicode bug in markdown compiler.
* Fixed unicode crash with polish dates and %B (Issue #383)
* Fixed localsearch plugin
* Warn if combining USE_CDN with a theme providing a copy of bootstrap (Issue #386)
* Improved localsearch README
* Updated to Tipue 2.1
* Don't index draft posts for Tipue (Issue #387)
* Modernized all rst extensions, added tests (rbistolfi)
* Removed obsolete custom code-block directive
* New function messages(msgid, lang=current_lang) available for templates
* Fixed teasers (Issue #398)
* Smarter guessing of the default post format (Issue #400)
* Make headings not overlap navbar in site theme.
* Added dummy codeblock fallback for docutils < 0.9
* Detect dependency on included files in rest compiler
* Use gallery path from config
* Don't fail in corrupted images
* Don't assume filenames are ASCII
* Don't crash if sidebar_links is not set for a language.
* All RSS feed links for tags pointed to the DEFAULT_LANG one in some themes.
* Nikola.link and Nikola.path are now locale aware and lang is optional.
* Make docutils a soft requirement
* Normalize paths on task names (Issue #406)
* Updated translations (all 100%!)
* Planetoid requires only 3 runs now ;-)
* Blogger import: imports will not result in an TypeError because str.join expects all it's arguments to be of type str

New in v5.4.2
=============

Bugfixes
--------

* Fix relative paths when stories is "dropped to root" (Issue #362)
* Pick translated titles in 1-file posts (Issue #365)

New in v5.4
===========

Features
--------

* Twitter Card / Open Graph support.
* Smart math support
* New soundcloud directive
* Custom "read more" links
* Better time display, timezone support
* Better doit integration (Issue #151)
* Make the whole listings folder browsable (Issue #128)
* New GZIP_FILES/GZIP_EXTENSIONS options to create gzipped copies of some files (Issue #348)
* New optional path parameter to new_post command.
* Wordpress importer: option to not download files
* Wordpress importer: option to squash newlines
* Separated BLOG_URL into SITE_URL and BASE_URL
* Added DISABLED_PLUGINS option (Issue #354)

Bugfixes
--------

* Added missing </div> in default theme templates.
* Wordpress import: Description is left empty if no description is found.
* When running the build command it is now possible to get help.
* Load jQuery before bootstrap in JS bundle (Issue #327)
* Generate valid HTML5 for redirects (Issue #276)
* Fixed "nikola check"
* Fixed internationalized RSS links
* Make commands that need to be run in a site fail gracefully (Issue #342)
* Use localized links on lxml fixer
* Redirections created during the import from wordpress are now written to conf.py
* Stop parsing metadata in post file on first blank line
* Metadata handling cleanups by Tordek
* Fixed blockquote font size inconsistency
* Wordpress Import: Do not break indentation (issue #189)
* Make things work even if SITE_URL has a path (Fix #307)

New in v5.3
===========

Features
--------

* Bootstrap 2.3.0
* Optionally use content distribution networks for jquery and twitter-bootstrap (USE_CDN option)
* Improve progressive rendering by moving javascript to the bottom of pages
* New Brazilian portuguese translation.
* New planetoid experimental extra_plugin

Bugfixes
--------

* Make really sure we import the right conf.py
* Make SLUG_TAG_PATH a config dep for most pages
* Removed meta title tag for better HTML validation
* Removed #999 background from footnote backlink.
* Made footnote references be superscripted.
* Centered figure's image and caption.
* Removed outset border from admonitions.
* Use default theme as last resource for messages/translations
* DATE_FORMAT option was being ignored
* Remove trailing "\" on windows gallery links (Issue #298)
* Inconsistent breadcrumbs in gallery pages (Issue #303)
* Use source files as bundle dependencies instead of outputs (Issue #294)

New in v5.2
===========

Features
--------

* New vimeo directive for restructured text.
* New COMMENTS_IN_GALLERIES and COMMENTS_IN_STORIES options.
* One-page, dynamic-loading, client-rendered site plugin (task_mustache)
* Local search based on Tipue (extra_plugins/task_localsearch)
* Recursive post/story folders
* Added comments to image galleries
* Importing Wordpress exports into a custom location
* New option RSS_TEASERS
* Textile markup support.
* Creole Wiki markup support.
* txt2tags markup support.
* bbcode markup support.
* Custom "gist" directive providing reStructured text support for GitHub gists.
* New Catalá translation
* Using the filename as slug if no slug is found in the metadata.
* Make it possible to extract metadata from filename by using regexp.
* When using import_wordpress users can exclude drafts with the ``-d`` switch.
* New STORY_INDEX option to generate index.html in story folders.
* Sort tags case insensitive.
* New Polish translation.
* Add multi size favicon support.
* Use multilingual Disqus (although it doesn't seem to work)
* Add Simplified Chinese translations.
* (Rough) Blogger/Blogspot importer
* When running the init command it now creates an empty site by default.
  The previous behaviour can be triggered with the "--demo" switch.
* Python 3 support (except for sitemap generation)

Bugfixes
--------

* Added sane defaults for most options, so you can have a lean config file.
* Made layout of the site theme responsive, with collapsing navbar.
* Use timeline instead of parsing post_pages in generic_page_renderer and task_render_pages.
* Updated disqus integration code, added identifiers so it works on any URL.
* Make sure folder links end in "/" in the gallery code.
* Removed copy of PyRSS2Gen, made it a dependency.
* Detect "namespace" dependencies for Mako templates.
* Use consistent encodings in RSS feeds.
* Refactored disqus code into separate helpers
* Use the correct extension (or raise an error) on new_post
* Fix titles that include quotes
* Updated to current CSS from docutils (was using version from 2005)
* Avoid needless regeneration of gallery indexes.
* Always ensure the folder for the new post exists.
* Get title from filename if not available in metadata.
* Don't copy sources if they end in ".html"
* Don't link to unexisting translations.
* Sort tags case insensitive.

New in v5.1
===========

Features
--------

* Support for client-side cloud tags
* New ``slides`` directive, for image slideshows.
* New option DATE_FORMAT
* New "nikola console" command
* New option CACHE_FOLDER
* Updated bootstrap to 2.2.2
* Wordpress importer supports redirects
* Wordpress importer creates a url_map for Disqus thread migration
* Wordpress importer: support for [sourcecode]
* Added unstyled theme "orphan", useful as a base for independent themes.
* New "monospace" theme.
* New "Create a Theme From Scratch" tutorial.

Bugfixes
--------

* Added ID attribute to gallery images for backlinking.
* Added ALT attribute to gallery images.
* Issue 113: refactored code in Mako templates
* Added newline after metadata in new_post template.
* Issue 112: RSS feeds contained invalid links
* Issue 88: RSS feed validation via lxml
* Isuue 169: build subcommands were broken
* Switched addThis to Peekaboo style, as seen on flexion.org (seems less broken)
* Remove duplicated sample config file. always build it from template (schettino72)
* Don't use hardcoded path for custom.css (schettino72)
* Wordpress importer: fixed issue 190, convert embedded H1 tags into H2
* Fixed bad interaction with Yapsy 1.10
* More elegant handling of "nikola init"
* Don't crash if there's no assets to copy

New in v5
=========

Features
--------

* Templates now know their name from template_name in their context.
* Made most of Nikola into Yapsy plugins.
* Recurse galleries/ and render each folder as a gallery.
* Breadcrumbs and folder links in image galleries.

Bugfixes
--------

* Fixed doc installation
* Put webassets cache in cache/webassets
* Update to doit 0.17
* Don't crash on incomplete translations
* Fixed Issue 160: render_tags didn't call scan_posts()
* Fixed Issue 161: webassets setting USE_BUNDLES was ignored (fix by schettino72)
* Fixed Issue 153: index.txt was being ignored in galleries.

New in v4.0.3
=============

Bugfixes
--------

* Handle empty posts without crashing.
* Treat wordpress imported posts as Markdown.
* Download attachments from wordpress
* Fix links to attachments so they work
* Change the global/local order of contexts on templates.
* Link tag's feed in tag's pages.
* Fix empty tag feeds.
* Refactored Post out of nikola.py

New in v4.0.2
=============

Features
--------

* Updated to bootstrap 2.1.0
* Italian translation by Pierpaolo Da Fieno
* Index-like tag pages with the TAG_PAGES_ARE_INDEXES option
* Wordpress.com import script

Bugfixes
--------

* Handle broken EXIF dates
* Ignore .pyc files in the listings folder
* Don't fail on render_pages when there is no content at all
* Don't fail on render_posts when there is no content at all
* Don't fail on render_sources when there is no content at all
* Don't fail on build_bundles when there are no bundles
* Added missing listing.tmpl to jinja-default theme
* Added default for DEFAULT_LANG
* Added default for TRANSLATIONS
* Fixed getting metadata from post file.
* More resistence to broken EXIF data.
* Made jinja-default follow default more closely.
* Don't say "reSt", say "Source" since it can be markdown or other stuff.

New in v4.0.1
=============

Features
--------

* Improved multilingual site documentation
* Added Greek translation

Bugfixes
--------

* "Read More" is translatable.
* Fixed Issue 121: CSS was not found if webassets was not installed.

New in v4
=========

Features
--------

* Previous/Next post links
* Teaser support
* Support posts with HTML "sources"
* Site checking script (nikola_check)
* Maximum image size in galleries
* Image descriptions in galleries
* Image exclusion in galleries
* Special "draft" tag
* Pretty code listings ("code galleries")
* Page descriptions
* Easy theme tuning via Bootswatch
* Support for WebAssets bundles
* "Filters" for powerful file post-processing

Bugfixes
--------

* Improved HTML output
* Support multiple time formats in post metadata
* Slugify tag names for URLs
* Archive path and filename configurable
* Galleries sorted by date (supports EXIF)
* Rotate gallery thumbnails (EXIF)
* Tag feeds in tag pages
* Colorbox support in restructured text figures
* Fix for content displaying too wide
* Changelog

vim: cc=70 tw=70 syntax=rst
