Nikola 7.8.3

Nikola generates static websites and blogs, with feeds, comments, media galleries and an archive. Content can be authored in reStructuredText, Markdown/CommonMark, Wiki, BBCode, Textile, AsciiDoc, Python Notebooks, Misaka, Pandoc, txt2tags, orgmode, or plain HTML. It also provides code sections with syntax highlighting, is multi-lingual, fully themeable, and can utilize external tools. It's foremost rather fast and its static pages don't have further webserver requirements.

Tags python website blog code-generator static-pages
License MITL
State stable

Recent Releases

7.8.314 Jan 2017 06:25 minor bugfix: Emergency release (`nikola new_page` did not work in v7.8.2). Features. Sort posts chronologically with one unified function (easier to change).. Sort posts in the following order (most important last): source path. (A-Z), title (A-Z), date (reverse chronological order), priority meta number (descending).. a that prevents `nikola new_page` from working.
7.8.209 Jan 2017 03:15 minor feature: Minor API change: The `compile_string` compiler method (partially internal) now takes a post argument and returns between two and four values, adding `shortcode_deps` and shortcode support. See and #2624. Features. Add meta generator tag to default templates to promote Nikola. Add `nikola new_post -d` and `NEW_POST_DATE_PATH` to allow automatic creation of year/month/day (date-based) directory structures. Allow enabling pretty URLs with per-post setting. Add a `sort_posts` function (available as Jinja filter in global context), which allows general-purpose timeline sorting. Allow creating archive navigation. Accept a `page` argument for taxonomy paths. Query strings in magic links are passed as keyword arguments to path handlers. Accept arbitrary arguments to path handlers. Added new `typogrify_oldschool` filter. Improving handling of.dep files, and allowing compilers to specify additional targets for the `render_posts` task. `render_template` and `generic_renderer` can now create HTML fragments. Allow posts to set custom `URL_TYPE` by using the `url_type` meta tag (useful for HTML fragments inserted using JavaScript). Plugins can depend on other plugins being installed. The destination folder in `POSTS` and `PAGES` can now be translated. Pass `post` object and `lang` to post compilers. Pass `url_type` into template's context. Make thumbnail naming configurable with `IMAGE_THUMBNAIL_FORMAT`. There is a new plugin category `Taxonomy` which allows to easily create new taxonomies. All of the existing taxonomies (authors, archives, indexes, page index, sections, tags, and categories) have been converted to the new system.. Added `CATEGORIES_INDEX_PATH`, similar to `TAGS_INDEX_PATH`. Made `INDEX_PATH`, `RSS_PATH` and `AUTHOR_PATH` translatable. Added setting `SHOW_INDEX_PAGE_NAVIGATION` which enables a basic page navigation for indexes.. Added settings `DISABLE_INDEXES_PLUGIN_INDEX_AND_ATOM_FEED` and. `DISABLE_INDEXES_PLUGIN_RSS_FEED` to disa
7.8.114 Oct 2016 07:25 minor feature: Rename `stories` to `pages` in most of the codebase. Report missing/unknown dates in posts with filenames. Report filename of post that raised exception when scanning. Accept `page` and `pages` for the `type` field in post lists. Don t crash if a post list has no posts. Features. Add Hebrew translation by Yitzhak Bar Geva. Add Chinese (Traditional) `zh_TW` translation by Po-Wen Chi. Add `nikola theme --list-installed`. Add `KATEX_AUTO_RENDER` setting to configure math delimiters. Update KaTeX version to 0.6.0: support aligned math display. Better support for a tree of files in `data/`.
7.8.030 Aug 2016 03:15 major feature: Features Exposed `gist` as a shortcode. Always copy source files for listings. Detect dependencies in template strings. RSS feeds for sections. New `data` metadata that loads data from external files. Shortcode to escape to the template language. Added link to raw file in listings. New NO_DOCUTILS_TITLE_TRANSFORM. Update options of chart directive to Pygal 2.2.3. Pass global context to template shortcodes. Added new options --html2text and --transform-to-markdown to WordPress importer. Listing: guess the lexer if cannot be determined from the file name. Read files from data/ and insert data in global context. Added link to sources in the output of listing directive. Windows crash with calendar locales. Remove the (useless) `` tag by default; change to opt in. Show tag descriptions when TAG_PAGES_ARE_INDEXES is True. Record template dependencies for post-list shortcut. Default to English for docutils messages if no translations exist. .
7.7.1206 Aug 2016 03:15 minor feature: Features New Telugu translation by Chillar Anand. Add `sections` filtering in the post list directive. Update Bootstrap to v3.3.7. Added code documentation to ReadTheDocs. ( Pass language to docutils so admonitions are translated. Put 2-file post metadata in the same place as the text file when specifying a path in `new_post`, `new_page`. Register dependencies in post-list shortcode. Support post-list shortcode better. gallery links in base theme. Respect `DEPLOY_DRAFTS` and `DEPLOY_FUTURE` in `github_deploy`. Don t remove `` if typogrify filters are in use. Avoid infinite loop if bootstrap3 can't be loaded. image rotation to update image size correctly.
7.7.912 Jun 2016 03:15 minor feature: (1000+ stars on GitHub thanks!). Features. New `sc` or `html` reST role, which passes content unaltered. Point the user to our users site after 1st successful deploy. Option to disable color output using `NIKOLA_MONO` environment variable. Improved locale detection in Windows. Added `enclosure_length` meta field for better interop. New Lithuanian translation by Antanas Lasys. Avoid conflicts caused by multiple copies of the same plugin. handling of some wordpress dumps. When using the plugin command, load ALL plugins. plugin removal for plugins that are a package. Reload English messages for every theme to prevent caching. Cache theme messages after loading once. Add `` tags to other languages even if the post is untranslated (Google complained otherwise). Don't call sys.exit() from plugins if possible. Create Persistor directories only if site is configured. Remove newlines in imported WordPress titles.
7.7.830 Apr 2016 05:25 minor bugfix: Features Template-based shortcodes now receive positional arguments too. Use state files in `nikola github_deploy` and `nikola status`. Add `align` options for `youtube`, `vimeo`, `soundcloud` reST directives. Update `FILE_METADATA_REGEXP` example in docs. Show tags too similar error instead of cryptic doit crash. crashes when tag appears multiple times in a post. Use binary I/O for `.svg` files in galleries. Accept `.svgz` extension by default. Don't randomly load plugins when Nikola is called with no arguments.
7.7.711 Mar 2016 03:15 minor bugfix: Features New `--one-file` option to wordpress importer. New Pygal-based chart shortcode. Add `post_type` to post-list directive. Use `sys.executable` for launching pip in `plugin`. Indonesian translation. a JSON conversion in the WordPress importer. Don t create download directories when not downloading WordPress attachments. Don t display Good link messages in `nikola check -l` by default, can be re-enabled with `-v` option. a format string in `nikola check`. Don't crash wordpress importer when posts are "empty". Don't put untranslated and nonexistant posts in sitemap.
7.7.618 Feb 2016 03:15 minor feature: Features Add `FRONT_INDEX_HEADER` setting to allow adding greeting notices to the main index page. Make Jupyter posts build.
7.7.512 Feb 2016 03:15 minor feature: Features Add `nikola theme --new` command for creating new themes. Add `nikola theme --copy-template` command for copying templates to customize them. Add `nikola theme --uninstall` command for deleting themes. Replace `nikola install_theme` with more capable `nikola theme` command. Allow for customizing `github_deploy` commit messages with `-m`. Commit to source branch automatically in `github_deploy` if `GITHUB_COMMIT_SOURCE` is set to True. Hugo-like shortcodes. New Galician translation. New facilities for data persistence and data caching. (internal) allow `scripts/` usage with scripts. some rebuilds with indexes and galleries. Make state files work on Python 3. Don t attempt to create redirects for URLs with query strings in WordPress imports if the site is in a subdirectory. Avoid some random file rebuilds. Honor `MATHJAX_CONFIG` setting. Display tags and archives in a unified format, with the date on the left, instead of a misplaced dash in tags. Decide `is_mathjax` based on current language tags. Don't duplicate images in flowr when resizing page.
7.7.421 Dec 2015 03:15 minor bugfix: Features Added cache for Jinja templates. Use Jupyter instead of IPython shims. Automatically open gallery images colorbox based on URL fragment. enclosures from metadata. Restored log level to INFO (it broke many messages). Check HTTP response status of minifying tools and skip them if they re unavailable. Change rewrite rule for fragment-only links. Mention disabled plugins in `nikola plugin --list-installed`. Don't examine all gallery image dates every build.
7.7.331 Oct 2015 03:15 minor bugfix: Features Recommend `ghp-import2` (better packaging). New `TAGS_INDEX_PATH` option for overwriting the path of the tag index list page. Support for ` strikethrough ` in Markdown. Hungarian translation. `serve` and `auto` publishes DNS Service Discovery records to the local network announcing they re running web servers. Implement translating `DATE_FORMAT` properly. Remove superfluous translatability for a boolean. Pass messages to post-list template. Changed default log level from INFO to NOTICE (`nikola check` is less chatty). support for panorama images in gallery. Support "" and similar charts in Pygal. Capitalize "UTF-8" properly in locale guessing.
7.7.209 Oct 2015 05:45 minor bugfix: Features Warning about Python 2.7 deprecation. New `jsonminify` filter for minifying JSON files. New `xmlminify` filter for minifying XML files. New option `FEED_PREVIEWIMAGE` includes the `post.meta.previewimage` image in Atom and RSS feeds.. Support Pillow v3.0.0. Support setting template in metadata in translated posts. false orphan report for code.css and robots.txt. reST post list date formatting error. Deprecated `RSS_TEASERS`, `RSS_PLAIN`, `RSS_READ_MORE_LINK`, and. `RSS_LINKS_APPEND_QUERY` in favor of `FEED_TEASERS`, `FEED_PLAIN`. `FEED_READ_MORE_LINK`, and `FEED_LINKS_APPEND_QUERY` for both Atom and RSS feeds.. /robots.txt was never being built. SVG thumbnails. Deprecations. Post.section_link is now deprecated. Use'section_index', post.section_slug()) instead. (not. 'section_index_link', as previously stated in this document).
7.7.116 Sep 2015 06:45 minor feature: Features Better Template / JS / CSS demo in sample site. New normalize_html filter. Support UTF-8 paths and encoded links when the `USE_SLUGIFY` option is disabled.. Per-document hyphenation using "hyphenate" metadata flag. New option USE_KATEX to switch from MathJax to KaTeX (Experimental). Support SVG in galleries. Made TAG_PATH translatable. Made CATEGORY_PATH translatable. Display post counts for archive links. Document link/path handlers. Made DATE_FORMAT and JS_DATE_FORMAT translatable. Generate language-specific section links. Rebuild pages when user changes POST_SECTION_COLORS. Look for bundle assets also in output/, allowing bundling of files created by plugins. In listings, if lexer is not specified, use literal. Remove bogus ambiguity on listing links. Unix-slash caused conflict in Windows. Locale is now threadsafe, avoid races in threaded builds. Make typogrify filter work when applied from metadata. Handle metadata in post files that start with a BOM. Handle error downloading bootswatches. Monitor plugins/ in `nikola auto`. Multi-lingual and multi-level directories confused section slug detection. Use Unicode strings for WordPress comment headers. Don't add stories to author pages.
7.7.004 Sep 2015 11:45 major feature: Features New support for online CSS and JS minifying services. Make tag optional with USE_BASE_TAG flag. Render author pages. Atom feeds for tag lists. New `THEME_COLOR` option for customizing themes from a primary color. New `color_hsl_adjust_hex` and `colorize_str_from_base_color` functions available in themes. New `POSTS` output subfolders now generate sections by deault. New `POSTS_SECTIONS` and `POSTS_SECTION_*` options for configuring the section pages. For themers: Each `post` are now asssociated with section_color, section_link, and section_name. Each new section page has a auto-assigned color based on shifting the hue of `THEME_COLOR` based on a hash of the section name, can be overwritten with `POSTS_SECTION_COLORS` option. New `TAG_PAGES_TITLES` and `CATEGORY_PAGES_TITLES` options. Add Bosnian and Serbian (Latin) languages, by Saša Savić bs, sr_latin . Add Portuguese (Portugal) language, by jamatos pt . Make nikola tabcompletion work outside sites. display of categories list in bootstrap theme. If webassets is not installed, use unbundled assets. Check links in Atom and sitemap files. Link checker should check all absolute URLs to self. Check `img source @srcset ` as part of `check -l`. Clean up translations for third party components. `pagekind "main_index" ` set on the main indexes to differentiate them from all the other indexes. Add dependency on metadata file for 2-file posts. Set UTF-8 charset in Content-Type or text/ and *+xml.
7.6.423 Aug 2015 03:15 minor feature: Features Checking remote links also checks redirects (nikola check -lr). Update suggested license to its latest version. Add Punjabi language, by Jasdeep Singh. New option to use custom, and several `TEASER_END` values. Rewrite srcset links. Add dependencies for include tag in Mako. Don t duplicate BLOG_TITLE in the front page title. Escape instad of strip HTML in titles. Make LINK_CHECK_WHITELIST apply to remote link checks. Make STORY_INDEX work together with PRETTY_URLS. Refactor new_post to match lazy plugin loading. Make Nikola startup faster by not loading useless plugins. Ignore sliced multibyte characters when reading metadata for sitemaps. NameError caused by failed import in auto plugin.
7.6.309 Aug 2015 21:45 feature bugfix: Features New translations: Serbian and Bosnian, by saleone. Added mechanism for rest extensions to depend on configuration options. Render Jupyter notebooks (ipynb) in listings. Bugfixes. Handle folders without trailing slashes in nikola auto. Set a base element to aid relative URL resolution, stripped on-the-fly when using the auto or serve command to view site locally.. Rebuild archives when post slugs and titles change. Handle special characters in URLs in nikola auto. Avoid Broken Pipe error in nikola auto. "nikola auto" serving implicit index.html with wrong mime type. Handle non-integer shutter speeds and other variables in WordPress importer.
7.6.230 Jul 2015 14:45 minor bugfix: Features: Make the Google Search example prettier, integrating well with Bootstrap 3. Add categories filter to post list directive. Remove empty directories with nikola check --clean-files. Bugfixes: Don't assume things are HTML in auto mode. Don t rebuild Atom syndication files unnecessarily often. Include.php files in sitemaps. Retry all client errors (4xx) to HEAD as GET reques when checking remote links. Graceful fallback in `nikola serve --detach` on Windows. Don't auto-rebuild on changes to ".foo" or "foo " or changes in folders. auto should also rebuild in response to move events. Don t get metadata from file if compiler-specific metadata exist. Fix PRETTY_URLS prompt for Windows. Fix reST and Markdown title extraction from documents. Minor improvements to the extending document. Re-add the hack to kill nikola auto on C.
7.6.116 Jul 2015 06:25 feature bugfix: Features Several improvements to WordPress importer : Allowing to export categories and category hierarchy with. --export-categories-as-categories. Allowing to exclude private posts, and allowing to include empty posts. Allowing to use HTTP authentication for downloads with --download-auth. Allowing to export comments with --export-comments. Allowing to use WordPress page compiler to directly convert posts to HTML on import with --transform-to-html. Allowing to use WordPress page compiler on imported site instead of converting posts to markdown with --use-wordpress-compiler. Allowing to automatically install the WordPress page compiler when needed with --install-wordpress-compiler. Exporting information on attachments per post as JSON. Exporting post status and excerpt. New pagekind variable available to identify different kind of pages from theme templates. Add `--no-server` option to `nikola auto`. Always return unicode in slugify. Remove logging handlers. Add `-d`, `--detach` option to `nikola serve`. Use provided teaser format (`*_READ_MORE_LINK`) with custom teaser text. Delete old `bootstrap` theme (use `bootstrap3` instead). Screen reader-friendly navbar collapses and dropdowns. Modern reST stylesheets, based in part on Bootstrap 3. Bugfixes. Add missing `xmlns:xhtml` namespace to sitemaps. Fixed superfluous rebuild problems with Python 3. Note that this will cause rebuilds for most sites.. Fix links in sample post. Don't use deprecated Yapsy methods. Surpress wincing when auto is aborted during rebuilding. Show tags only from the current language on tag listing pages. Remove gap between line numbers and code. Fix spurious warnings about posts published in the future.
7.6.003 Jul 2015 04:45 feature bugfix: Features Translate `Write your post here.` to default language. Enable `PRETTY_URLS` by default on new sites created by the wizard. Add `-F`, `--available-compilers` option to `nikola new_post` and `nikola new_page`. Add print CSS to all default themes. Support other kernels for ipynb/Jupyter using. `nikola new_post -f ipynb@kernel`. Add distinct styling for the site footer in bootstrap3. Bootstrap v3.3.5. Use `watchdog` in `nikola auto`. Add redirection for tags in Wordpress importer. Add support for `html_tidy_withconfig` to use a `tidy5.conf` file. Change default tidy5 filters not to drop empty elements. Apply per-post filters via metadata (). Bugfixes. Nikola auto was broken in python 3. Read configuration when importing into an existing site. Don t crash on non-UTF-8 files during sitemap generation. Unnecessary rebuilds of yearly archives. Quietly ignore non-existent files in `nikola check -l`. Don t rebuild all tag or category pages when changing tag/category descriptions. Fix crash in wordpress code importer. Call correct command in `nikola auto`.
7.5.113 Jun 2015 03:15 feature bugfix: Features Suggest misspelled commands. New implementation of the `nikola auto` command. `requests` is now required for all Nikola sites. New `nikola version --check` option. Bugfixes. Support pure markdown posts in WP import (). Make auto shutdown with ctrl-c. Log properly in `nikola auto`. Handle rare gettz failure. Handle missing dependencies better in auto plugin. IDNA mixing unicode/bytes in python 3. Cleaner splitting of metadata in onefile posts (). It's markdown extra, not extras.
7.5.009 Jun 2015 03:15 feature bugfix: Features Make default themes more accessible (). Add ipython support to the default themes. Automatically mark ipynb posts/pages as requiring mathjax. New --get-path option for `nikola install_theme`. New `nikola rst2html` command. New `nikola status` command. Support code in wordpress importers. Cleaner formatting of HTML output. Allowing category hierarchies via new option CATEGORY_ALLOW_HIERARCHIES. . Bugfixes. Dropped empty languages (fil, tl, zh_TW). Extract `nikola check` target list from actual task list instead of parsing. Treat special-purpose draft tag case-insensitive. Avoid some rebuild loops. Better error if two posts/pages output conflict. Scanning of posts refactored out of core. github_deploy records lastdeploy timestamp like regular deploy. Use a global directory for gallery images, ignoring translations. The post-list directive only triggers rebuilds if timeline changes. Don t check the same remote URL more than once. All remotely checked links resulted in incorrect warnings (`nikola check -lr`). Exclude `` from sitemaps. new_post paths are now relative to CWD.
7.4.110 May 2015 12:05 feature bugfix: =============. Features. --------. Better handling of missing/unconfigured compilers. New -r option for the link checker to check remote links. Use static navbars in bootstrap3 and bootstrap themes. Bugfixes. --------. Handle strange URLs, like ed2k://. Fix very old metadata format support.
7.4.006 May 2015 16:45 feature bugfix: Features: Substitutions for RSS_LINKS_APPEND_QUERY for identifying the source feed (feedRelUri) and the kind of feed (feedFormat). New option GENERATE_ATOM, off by default. Current and archive Atom feeds for indexes; category, tag, and archive indexes (RFC-4287 and RFC-5005). Atom feed auto-discovery in HTML indexes and category/tag indexes. .atom included in the sitemap index. New post metadata "updated", inherits "date" if unset. Allow IPv6 in `nikola auto`. Allow IPv6 in `nikola serve`. Set default new site URL to Plugins can manipulate task dependencies. LINK_CHECK_WHITELIST now works with output relative and full fs paths. Four new filters: html_tidy_nowrap, html_tidy_wrap, html_tidy_wrap_attr, and html_tidy_mini for prettification and minification. Requires tidy5. Multilingual sitemaps. Compatibility with doit v0.28.0. AddThis is no longer added by default to users sites. New translations (az, fil, tl, uk, zh_TW). Add reStructuredText transform support. Produce Unicode output in ``nikola init``. Add ``HIDDEN_TAGS`` and ``HIDDEN_CATEGORIES`` settings to hide some tags and categories (eg. ``mathjax``) from view. Instruct browsers to prefetch newest post when visiting the front page. Add a ``sort`` parameter to the post-list directive to sort posts in the list using natsort. Bugfixes: Make ``.islink`` work properly. RSS_LINKS_APPEND_QUERY not working in RSS feeds for tags. `nikola check -l` didn t scan posts. Don t use sets for ``FAVICONS``. Posts/Pages that use post-list will never be up to date. Support using post.text() in post_list_directive.tmpl. Avoid recursive dep when using post-list in a post. Encode IDNs to Punycode in ``nikola init`` and in links; show an error if the site URL is not Punycode. Make ``images`` the default output directory for IMAGE_FOLDERS. Don't default to any swatch in bootswatch_theme. Fix ``nikola check -l`` for absolute and full-path URL styles. Really add missing trail Apr 2015 12:25 minor feature: ===============. Emergency release to pin doit version to 0.27.0. No code changes since v7.3.1 (not even ``nikola --version``).
7.3.108 Mar 2015 22:55 feature bugfix: Features: Separate new option IMAGE_THUMBNAIL_SIZE for setting size of thumbnails created by scale_images plugin. Don't create larger thumbnails for panorama images in scale_images Added ``root`` path handler. Added RSS feeds to gallery HEAD. Bugfixes: Use pyphen properly when there are no dictionaries for this language. Fix ``nikola deploy`` when there is no cache. Report issues in scale_images properly. Correctly read sub-timezones in ``nikola init``. Fix zoneinfo reading in ``nikola init``. Fix ``.islink`` detection for galleries. Links to languages point to site root and not the blog. Brand link is now language-specific. Fixed compatibility with IPython 3.x. Compilers mark tasks as out of date if compiler-specific options and plugins change.
7.3.014 Jan 2015 08:45 feature bugfix: Features Added ``-a``, ``--author`` option to set post author field Added option INDEXES_PRETTY_PAGE_URL to make URLs for indexes pages more pretty. Added ``-i``, ``--import`` argument to ``new_post`` for importing existing post contents Added warning about ``password`` in posts being insecure INDEXES_TITLE and INDEXES_PAGES are translatable Added new option ARCHIVES_ARE_INDEXES which allows archive pages which list posts to be rendered with the post contents. Added new option INDEXES_STATIC which allows to define the page ordering for indexes . 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 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. Writing the tag cloud data file can now be disabled. Will be disabled by default in the future. 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. New option GALLERY_FOLDERS replacing GALLERY_PATH New PANDOC_OPTIONS option New tab-width option in code-block directive New option TAG_PAGES_DESCRIPTIONS for optionally making individual tag pages more unique and interesting New option LISTINGS_FOLDERS which allows to separate input and output folder names for listings, and allows to have more than one listings folder ReST listing directive now honors alternative listings folder names New command line option --conf= to specify the configuration file Added Arabic translation Added Danish translation Added Indonesian translation Added Korean translation Added Serbian translation Added Swedish translation New advanced option RSS_LINKS_APPEND_QUERY for tracking traffic from RSS subscribers Add ``robots`` meta tag with value ``no
7.2.002 Nov 2014 22:25 major feature: Added support for fancy dates via moment.js. Updates: jQuery v1.11.1, Bootstrap v3.3.0. Allow presets usage with ``nikola deploy`` ``DEPLOY_COMMANDS`` is now a dict of preset: commands . New ``GLOBAL_CONTEXT_FILLER`` setting, functions listed there will be called with the local context and the template name before template rendering. 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. Expose publishing date, tags, and more in Open Graph. XSL Transform RSS into pretty and helpful webpages when opened in browsers. Multiple bugfixes.