Skip to content

Releases: getnikola/nikola

v7.3.0

13 Jan 16:58
Compare
Choose a tag to compare

Nikola v7.3.0 features many bugfixes, and also some new useful features.

What is Nikola?

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

Find out more at the website: http://getnikola.com/

Changes

Features

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

v7.2.0

02 Nov 17:34
v7.2.0
Compare
Choose a tag to compare

Nikola v7.2.0 features many bugfixes, and also some new useful features.

What is Nikola?

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

Find out more at the website: http://getnikola.com/

Changes

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

v7.1.0

06 Sep 10:01
v7.1.0
Compare
Choose a tag to compare

On behalf of the Nikola team, I am pleased to announce the release of Nikola v7.1.0.

Nikola v7.1.0 is a bugfix/feature release. It fixes quite a few bugs of v7.0.1 discovered in the intervening 3 months (sorry it took so long!), and also adds a few more features.

Get it!

Nikola v7.1.0 is available for download at GitHub and PyPI.

Changelog

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)

v7.0.1

07 Jun 11:07
v7.0.1
Compare
Choose a tag to compare

On behalf of the Nikola team, I am pleased to announce the release of Nikola v7.0.1.

Nikola v7.0.1 is a bugfix release. It fixes some bugs found in the original v7.0.0 release — including, but not limited to, symlinks and Unicode output under Windows; Jinja themes’ assets; date formats, and more.

Get it!

Nikola v7.0.1 is available for download at GitHub and PyPI.

Changelog

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)

v7.0.0

16 May 18:04
v7.0.0
Compare
Choose a tag to compare

Nikola v7.0.0 is the first major release since 8 months. As such, we had many
things that could be changed. There are some things that you might need to
change on your site, especially if you have a custom theme. Here is a short and
incomplete list of the most important changes:

Key Changes since v6.4.0

  • New dependencies: natsort (natural sorting in galleries) and dateutil (replaces pytz)

  • Many deprecated options were removed.

  • SCHEDULE_FORCE_TODAY, EXTRA_PLUGINS and ENABLED_EXTRAS are now removed and have no effect.

  • Two options were changed:

    • HIDE_SOURCELINK → SHOW_SOURCELINK (inverted)
    • HIDE_UNTRANSLATED_POSTS → SHOW_UNTRANSLATED_POSTS (inverted)
  • READ_MORE_LINK is split into INDEX_READ_MORE_LINK and RSS_READ_MORE_LINK. Moreover, new tags, like (remaining_)reading_time and (remaining_)paragraph_count, were added.

  • Added options: FORCE_ISO8601, LOGO_URL, SHOW_BLOG_TITLE (logo support), GENERATE_RSS, ROBOTS_EXCLUSIONS, CONTENT_FOOTER_FORMATS, RSS_PLAIN, UNSLUGIFY_TITLES (for meta extraction from filenames).

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

  • There are many changes to themes. The base theme now offers a stylish look and is usable on sites, through a new stylesheet. The HTML code is now more semantic and sectioned, making it easier to style sites. Some templates are also renamed or removed.

  • The basic Jinja themes (base-jinja, bootstrap-jinja, bootstrap3-jinja) are now shipped with Nikola. Please remove any leftover copies from your themes/ folders.

  • You now can (and should!) specify a timezone offset in post dates, using a UTC±00:00 syntax. (warning: UTC-03:00 means 3 hours east of UTC and not west, as is done in some Unix tools!) You can also use ISO 8601 dates (and if you want to do that, you can set FORCE_ISO8601=True to get those in new_post and new_page)

  • You now can use the reST metadata format in .meta files, allowing for greater flexibility.

Changelog

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 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...
Read more

v7.0.0-rc1

05 May 15:00
v7.0.0-rc1
Compare
Choose a tag to compare
v7.0.0-rc1 Pre-release
Pre-release

In order to make the v7 release as perfect as possible, we hereby provide Nikola v7.0.0-rc1. This is a release candidate. Using and testing it is not mandated, but if you want to test whether your website will work with it, you can test — and report any bugs to us.

Key Changes since v6.4.0

  • New dependencies: natsort (natural sorting in galleries) and dateutil (replaces pytz)

  • Many deprecated options were removed.

  • SCHEDULE_FORCE_TODAY, EXTRA_PLUGINS and ENABLED_EXTRAS are now removed and have no effect.

  • Two options were changed:

    • HIDE_SOURCELINK → SHOW_SOURCELINK (inverted)
    • HIDE_UNTRANSLATED_POSTS → SHOW_UNTRANSLATED_POSTS (inverted)
  • READ_MORE_LINK is split into INDEX_READ_MORE_LINK and RSS_READ_MORE_LINK.
    Moreover, new tags, like (remaining_)reading_time and (remaining_)paragraph_count, were added.

  • Added options: FORCE_ISO8601, LOGO_URL, SHOW_BLOG_TITLE (logo support), GENERATE_RSS, ROBOTS_EXCLUSIONS, CONTENT_FOOTER_FORMATS, RSS_PLAIN, UNSLUGIFY_TITLES (for meta extraction from filenames).

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

  • There are many changes to themes. The base theme now offers a stylish look and is usable on sites, through a new stylesheet. The HTML code is now more semantic and sectioned, making it easier to style sites. Some templates are also renamed or removed.

  • The basic Jinja themes (base-jinja, bootstrap-jinja, bootstrap3-jinja) are now shipped with Nikola. Please remove any leftover copies from your themes/ folders.

  • You can now specify a timezone offset in post dates, using a UTC±00:00 syntax. (warning: UTC-03:00 means 3 hours ahead of UTC and not the reverse, as is done in many Unix tools!) You can also use ISO 8601 dates (and if you want to do that, you can set FORCE_ISO8601=True to get those in new_post and new_page)

  • You can now use the reST metadata format in .meta files, allowing for greater flexibility.

Changelog

Features

  • New dependencies: natsort (natural sorting in galleries) and dateutil (replaces pytz)
  • 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 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

  • 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)
  • code.css was not rebuilt, even though there were changes in v6.4.0 to its format (via Issue #1050)
  • 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 st...
Read more

v6.4.0

01 Mar 12:00
v6.4.0
Compare
Choose a tag to compare

Key Changes since v6.3.0

  • The code.css (and all*.css) files have been revamped to support dark themes and Markdown properly. Please remove those files from your output directory and run nikola build to get the fixes.
  • nikola auto supports livereload v2.1.0.
  • Added nikola new_page, equivalent to nikola new_post -p.
  • Deploys to sub-directories (eg. http://example.com/blog/) are now fully supported and bug-free.

Debian Packages

In the v6.3.0 announcement, it was promised that an install_bs3 command would be added to the Debian packages. The v6.3.0 packages were released yesterday and they contain the promised patch. Please use it to install the theme if you need it.

Committers

$ git log v6.3.0..v6.4.0 --pretty='format:%an'|sort|uniq -c|sort \
> --reverse
    144 Chris “Kwpolska” Warrick
     83 Roberto Alsina
     19 Ramiro Morales
     12 Thibauld Nion
     11 Daniel Aleksandersen
      9 Eric Meaney
      8 Ondrej Grover
      4 Evgeni Golov
      3 Tim Chase
      2 Casey M. Bessette
      1 Puneeth Chaganti
      1 Ivan Teoh
      1 Dav Clark

Changelog

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)

v6.3.0

24 Feb 14:35
v6.3.0
Compare
Choose a tag to compare

Version 6.3.0 of Nikola is out. This is a large improvement, with many
features and bugfixes (it is also over a month late, sorry!)

Compatibility Warnings

If you have your own locale files, you may want to check them. There were some
changes lately.

If you use any themes from the Themes Index, make sure to update them — and
make sure to upgrade the whole inheritance tree. For example, the
base-jinja theme has a new file (tagindex.tmpl).

Debian and Bootstrap 3

During this release cycle, we discovered that the Debian (and Ubuntu) packages
remove our copy of Bootstrap 3 and don’t provide any replacement. For those
users, a install_bs3 command is provided. It is available only for people
who installed from those packages (after all, nobody else should need it).
Patch: install_bs3 for Debian.

Committers

$ git log v6.2.1..v6.3.0 --pretty='format:%an'|sort|uniq -c|sort --reverse
234 Chris “Kwpolska” Warrick
 21 Roberto Alsina
 20 Daniel Aleksandersen
 13 Ivan Teoh
 12 Puneeth Chaganti
 10 Alex Popescu
  9 Ondrej Grover
  6 Eric Meaney
  5 schettino72
  4 nlaurens
  4 Roman Yepishev
  4 Claudio Canepa
  3 damianavila
  3 Onno Broekmans
  2 Tim Chase
  2 Kay Hayen
  1 ermeaney
  1 Simon van der Veldt
  1 Areski Belaid

Changelog

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 elements (Issue #449)
  • Add rel=alternate 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

Version 6.2.1

01 Nov 09:19
Compare
Choose a tag to compare

This is a partially-unplanned bugfix release to fix issues with locales and address some more bugs, also adding a few little features.

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)

Version 6.2.0

25 Oct 18:30
Compare
Choose a tag to compare

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