I thought I’d have a ‘quick go’ at implementing a CSL processor in Python.
It immediately became obvious I would need some more time. But now I’ve
got something that I am not too ashamed to show You can find it at
The code is still pretty rough overall and definitely needs cleaning up.
However, a lot of the CSL spec is implemented. More details can be found
in the README. There’s no setup.py file yet, but you can add the root dir
of the cloned repository to your PYTHONPATH and run the tests. I’m sure
I’m forgetting something, so don’t hesitate to ask if you’re wondering
about something. For those who are interested in the internals, the actual
processing code is in citeproc/model.py.
I should not forget to thank everyone responsible for the clear CSL
specification and the test suite, which made the development a pretty
smooth experience. Great job! I still have some minor comments on both,
but I’ll leave that for another post.