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) anddateutil
(replacespytz
) -
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 setFORCE_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) anddateutil
(replacespytz
) - 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
withINDEX_READ_MORE_LINK
andRSS_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 withprivate
(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 theCONTENT_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
andHIDE_UNTRANSLATED_POSTS
intoSHOW_SOURCELINK
andSHOW_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
, formerlyrequirements-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
andlist
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 aconf.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
andnikola new_page
. (Issue #1088)