- 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.
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.
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:
There is a binary distribution of LXML maintained by Christoph Gohlke. You can download it from here.
Download, install, then re-run Tinkerer upgrade.
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!
- 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 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 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.
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!
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.
- 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
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 firstname.lastname@example.org address if you don’t want to create a real Persona just to see a demo.
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
- 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 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
- Support for Drafts.
- Fixes for cross-references and embedded images which were not displaying correctly on home page and RSS feed.
- Ensure Tinkerer runs only from the blog root directory unless when setting up a new blog (this prevents accidental deletes and mysterious exceptions).
- Minimal support for documentation - prev and next links will be displayed on pages under doc/ or docs/ path.
- Many other small extension fixes.
- CSS fixes (gradient not showing in Firefox, page not scaling correctly on retina displays, many other small tweaks).
Upgrading from 0.1
There are a couple of steps required if upgrading from 0.1:
In your conf.py replace:
# Add file patterns to exclude from build exclude_patterns = 
# Add file patterns to exclude from build exclude_patterns = ["drafts/*"]
This will make Sphinx stop warning you about drafts not being included in the build.
Make sure your master.rst file ends with a blank line. If not, append a blank line at the end of it.
A big Thank You to everyone who showed interest in the project and for the valuable feedback you provided.
What is Tinkerer?
Tinkerer is a blogging engine/static website generator powered by Sphinx.
It allows blogging in reStructuredText format, comes with out-of-the-box support for post publishing dates, authors, categories, tags, post archive, RSS feed generation, comments powered by Disqus and more.
Tinkerer is also highly customizable through Sphinx extensions.
- Because “hacker” is way overused nowadays.
- Because static websites are cool.
- Because you already write documentation in RST format and you love it.
- Because you have Pygments for sharing highlighted code.
- Because you can use your favorite Sphinx extensions right away.
How to Tinker?
easy_install -U Tinkerer
Skim through the Documentation.