Collecting my attempts to improve at tech, art, and life

reStructuredText in Jekyll

Tags: jekyll rst site tools

I can write Jekyll posts with reStructuredText now.

I spent the last few days fiddling with Pelican and Nikola to see how much work it would take to convert my site. So far? Lots of work. I customized the build for this silly site quite a bit.

Meanwhile I decided that I must have reStructuredText] available for my posts. I grabbed the jekyll-rst Jekyll plugin and followed its directions.

$ mkvirtualenv jekyll-rst
$ pip install docutils pygments
$ gem install RbST
$ git submodule add https://github.com/xdissent/jekyll-rst.git _plugins/jekyll-rst

Let me just build real quick to make sure this works at all.

Well, no.

$ bundle exec jekyll build -D
# ...
TypeError: Unicode-objects must be encoded before hashing
Exiting due to error.  Use "--traceback" to diagnose.
Please report errors to <docutils-users@lists.sf.net>.
Include "--traceback" output, Docutils version (0.12 [release]),
Python version (3.4.3), your OS type & version, and the
command line used.

Oh I know that smell. You get that with code that isn’t completely ready for Python 3. Here’s the smallest change to make that error go away.

# _plugins/jekyll-rst/directives.py line 54-55
content_text = u'\n'.join(self.content).encode('utf-8')
cache_file_name = u'%s-%s.html' % (lexer_name, hashlib.md5(content_text).hexdigest())

Now it builds.

Then I ripped out all the special options because that was easier than adjusting my stylesheets to take them into account.

So. It works. Yay! I can write Jekyll posts with reStructuredText!

That should keep me a little happier while I continue porting the site to another generator.


Added to vault 2024-01-15. Updated on 2024-02-01