Goodbye, WordPress!

With each passing day, I’m moving further away from PHP. The other day I moved from WordPress to Marcus (source code here). Although WordPress offered lots of features, sometimes useful and sometimes not, more often than not they were simply unnecessary. Meanwhile, what I was missing was:
- bilingual support (I know there are plugins for WordPress, but at the time I couldn’t get to grips with them);
- Markdown (same as above);
- lightweight (simple) interfaces;
- performance (which I can now easily improve);
- the ability to easily change the functionality to suit my needs, since it’s much easier for me to write something in Python/Django than in PHP.
I’d wanted to use Marcus since 2010, but I always found excuses or gave up halfway through the move (there were at least three attempts). I gave up because there was no migration utility, no ready-made templates, and putting this blog engine together and installing it was complicated.
A week ago, I started looking into alternatives to Marcus. I looked at Zinnia (but its advertised WordPress data import didn’t work), and took a quick look at byteflow and pelican—their concepts don’t suit me. In short, Marcus was the best possible fit for my needs, so I decided to polish it into a complete solution:
Added migration from WordPress (the code was originally taken from Zinnia, but a great deal has been rewritten; there is also pipelines functionality for applying additional filters to the data received from WordPress)
Added a sitemap for posts and flatpages
Added tags, which I’ve been missing
Fixed a few minor bugs
Made some small improvements:
automatic generation of the slug field
automatic detection of a comment’s language (though this still needs more work, of course)
an action for publishing multiple comments in the admin interface
file uploads for posts, with a preview displayed if the file is an image
and so on.
After talking to Ivan Sagalaev, we decided that I would publish the Marcus code on my own GitHub account, since Vanya doesn’t have time to maintain it at the moment.
In the near future, I’ll add the following functionality to my blog (it won’t be included in Marcus):
- Search, since it has dependencies on SphinxSearch and django-sphinxsearch
- Display categories and tags in the sidebar (they actually already exist)
- Add a comment feed
I’ll add the following directly to Marcus:
- Improve the appearance of the templates and display all the information passed to them
- A Markdown syntax guide next to the comment form
- Email notifications for new comments
- Hook up basic comment protection against spambots
Statistics
Incidentally, after updating the blog and, accordingly, the feed, I went from 402 subscribers down to 253, but reach rose to 70, whereas it’s usually around 5. The domain change from “ru” to “com” may have had an effect.

The Google Analytics statistics haven’t changed, and I removed the LiveInternet counter altogether (since it’s pretty poor by today’s standards).
Speaking of statistics, this blog gets as much traffic as the forum http://pyha.ru/.
Design
The current design was borrowed from piranha (Alexander Solovyov), and, as usual, I’ll leave a screenshot of the previous version of the blog here for posterity:
Thanks to Vanya for the publicity: New life of Marcus
Comments are closed. Read the original discussion in Russian →