Releases: getnikola/nikola
v7.3.0
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 tonew_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 valuenoindex
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
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 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 potentialUSE_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
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
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 tonew_post
andnew_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
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) 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 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 setFORCE_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) anddateutil
(replacespytz
) - 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
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
- 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
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...
v7.0.0-rc1
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 st...
v6.4.0
Key Changes since v6.3.0
- The
code.css
(andall*.css
) files have been revamped to support dark themes and Markdown properly. Please remove those files from your output directory and runnikola build
to get the fixes. nikola auto
supports livereload v2.1.0.- Added
nikola new_page
, equivalent tonikola 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 tonikola new_post -p
) (Issue #1060) - Add
LESS_OPTIONS
andSASS_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"
andURL_TYPE="full_path"
(Issue #1046) - Fix
URL_TYPE="absolute"
andURL_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
andrst.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
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 ofindex.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
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
Version 6.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