Tinkerer 1.6 Released

What’s New

  • The most important change with this release is moving minimum supported Sphinx version 1.6.1. Tinkerer was relying on a Sphinx implementation detail which changed with the 1.6.1 release. This update addresses the issue.
  • Minor layout change to the archive page in the flat theme
  • Support Disqus over both HTTP and HTTPS
  • Other minor changes and bug fixes


Many thanks to the awesome contributors!

Tinkerer 1.5 Released

What’s New

  • Support for custom landing page with new landing_page option in conf.py (see Landing Page)
  • Ability to rename “Home” to a custom string with conf.py setting (see Landing Page)
  • Moved up to minimum supported Sphinx version 1.2.3. Support for Sphinx 1.3b.
  • Slovak localization
  • Numerous bug fixes


As always, much of this is owed to the contributors.

Tinkerer 1.4 Released

What’s New

  • New --template flag that allows using a custom RST template for a given post or page
  • New rss_max_items config option to limit the number of RSS items to be placed in the feed
  • Tinkerer now uses Font Awesome (also see deprecation warning below)
  • Generated HTML now has WAI-ARIA roles
  • Updated Russian localization
  • Updated site-search JS script to newer version from Sphinx project
  • Other bug fixes and improvements under the hood

Also check out the new Atom Feed extension.

Deprecation Warning

Until the previous version, Tinkerer shipped with Web Symbols font used for RSS feed and search button symbols. With this release, Tinkerer moves to use Font Awesome.

If you are using any other of the Web Symbols glyphs on a modified website (to render, for example, the Twitter logo), you will need to update your HTML/CSS to use the equivalent Font Awesome symbol instead.

Out-of-the-box Tinkerer with no modifications should not be impacted by this change.

Upgrade Notes

Tinkerer does some internal HTML processing to patch some tags produced by the Sphinx build. With this release, Tinkerer moved to use PyQuery to do this which improves robustness. With this move, Tinkerer now has a dependency on LXML library which has to be built from source. If you encounter any issues during upgrade regarding LXML:

On Windows

There is a binary distribution of LXML maintained by Christoph Gohlke. You can download it from here.

Download, install, then re-run Tinkerer upgrade.

On Linux

If LXML bulid or link fails, make sure you have the following packages: python-dev, libxml2-dev, libxslt-dev and zlib1g-dev. Get them with apt-get install python-dev libxml2-dev libxslt-dev zlib1g-dev or equivalent.


Many thanks to the contributors for all the geat work!

Tinkerer 1.3 Released

What’s New

  • Brazilian Portuguese localization
  • Russian localization
  • Simplified Chinese localization
  • Traditional Chinese localization
  • Tinkerer now uses the Babel package for date formatting
  • Other bug fixes


As always, many thanks to the community for the great work!

Tinkerer 1.2 Released

What’s New

  • Tinkerer moved to GitHub! Old repositories on BitBucket are still there for the time being, but going forward, all developement will take place on GitHub. Make sure to star/fork Tinkerer here
  • A brand new flat theme optimized around distraction-free reading and a customized Pygments style displaying code in the Solarized dark theme.
  • A new conf.py setting, rss_generate_full_posts, enabling generation of full posts even when using the readmore directive on the website
  • Italian localization
  • Other bug fixes


Thanks to the great Tinkerer community for all their contributions! You are awesome!

Tinkerer 1.1 Released

What’s New

  • Tinkerer extension repository at tinkerer-contrib.
  • Improved extension mechanism and documentation
  • Easier to customize post and page templates for your blog
  • Improved HTML5 compliance
  • HTML meta description for blogs
  • Minimal5 theme similar to Minimal theme but based on HTML5 Boilerplate
  • Other bug fixes


Important notes on upgrading:

  • Run tinkerer --setup in your blog root. This will copy page.rst and post.rst to your blog’ _templates directory. You can customize them to tweak your default posts and pages (other contrib extensions can also leverage this).
  • If you are using hidemail or fbcomments extensions, the extensions moved to tinkerer-contrib, meaning they no longer come out-of-the-box. Please pull them from there and place them in the _exts subdirectory of your blog.
  • There is a new description field you can add to your conf.py, which will become an HTML meta description on the generated pages. This appears automatically in newly setup blogs but, by design, Tinkerer upgrade does not alter existing conf.py files in any way.

Deprecation Notice

The old themes not based on HTML5 Boilerplate will be removed in the next Tinkerer release. These are the tinkerbase base theme and the minimal and modern themes.

This release brings an alternative minimal5 theme with a similar look to the minimal theme. The minimal theme was built with customization in mind so if you are using it, please make sure to alter your CSS to support the new minimal5 theme. Since minimal5 has a different base theme, elements might have different tags/classes/ids.


As usual, many thanks to everyone involved for your suggestions, bug reports and pull requests!

Tinkerer 1.0 Released

Out of Beta

After one year, Tinkerer is finally going out of Beta! Thanks to everyone who helped out by trying Tinkerer out, opening bugs or fixing them. This is a big milestone for the project.

What’s New

  • Updated HTML5 Boilerplate base template
  • New Responsive theme
  • --preview command line argument enabling draft preview
  • --date command line argument for specifying post dates (useful when writing a script for migrating from your previous crappy blogging engine to Tinkerer)
  • French, Japanese, Polish and UK English localizations
  • Many bug fixes

Tinkerer Private Blogs

Jan Wrobel prepared some scripts to easily setup a Tinkerer blog behind wwwhisper authorization layer on OpenShift platform. This can be useful for people wanting to have private blogs accessible only to select visitors. wwwhisper uses Persona to authenticate visitors. To grand someone access, only email address needs to be specified, no site-specific password is created.

The setup scripts are here: https://github.com/wrr/wwwhisper-openshift

A demo blog can be found here: https://io-mixedbit.rhcloud.com/blog/

The demo blog is configured to allow anyone access. You can use an [email protected] address if you don’t want to create a real Persona just to see a demo.

Thanks Jan!

Tinkerer 0.4 Beta Released

What’s New

New HTML5 Themes

  • boilerplate is a brand new theme based on HTML5 Boilerplate
  • modern5 is a rewrite of the old modern theme based on the new boilerplate and including a lot more detail-work

The old themes (tinkerbase, modern and minimal) are still around for backwards compatiblity, though future development will happen around HTML5-based themes.

New Built-in Extensions

  • An email obfuscator
  • A new Read more directive - more info under Posts

New Sidebard Widgets

  • A Categories List widget
  • A Tag List widget
  • A Tag Cloud widget

Details here: Sidebar.

New Translations

  • German translation
  • French translation
  • Polish translation

Just update your conf.py with the following setting:

language = "de" # or "fr" or "pl"


Many thanks to everyone who helped out with suggestions, bug reports, patches and pull requests and special thanks to the people on the ever-growing contributors list for their valuable contributions.

Tinkerer 0.3 Beta Released

What’s New

  • Tinkerer went international! Spanish and Catalan translations are now available. To have your Tinkerer blog displayed in Spanish, add the following line to your conf.py:

    language = "es"

    For Catalan, add:

    language = "ca"
  • Limited support for Facebook comments as an alternative to Disqus comments

  • RSS feed enhancements: RSS feed auto-discovery and feed categories

  • Multiple bugfixes and minor style tweaks to the Modern theme