One year later…

It’s been just over a year now since I started work on the CSL editor with Mendeley and Columbia University. The official project finished in October 2012, but the CSL editor itself is very much alive and well at:

I’m the defacto administrator of the feedback forum, which still receives the occasional suggestion:

The source code is completely open under the MIT licence and contributions are very welcome:

I’m selfishly interested in the success of this project because of the effort I spent as the original developer. It was intended to be a prototype and although it’s grown beyond that, there remains lots of room for improvement in both the user interface and the internals. It would be a shame if it didn’t make the transition to a fully polished and easy to use tool, but this will require creative work from other developers and designers.

I’d love to see people invested in the future of CSL step up and take over maintenence and future developement. I suppose the most likely candidates would be developers at Mendeley, Zotero or Papers, or researchers who use these tools and also have programming skills. If anyone does I’m very willing to provide initial help understanding the code and reviewing patches.

In the meantime, the current editor isn’t all that bad, actually it’s pretty decent, so if you need to find or edit a citation style, please try it out.


Export edited CSL styles to Mendeley, Zotero or Papers

We’ve been making lots of improvements and bug fixes to our CSL editor at

One change I’m excited about is the “Save Style” option in the “Style” menu, which makes it easy to get your edited styles into your reference manager, whether it’s Mendeley, Zotero, or Papers.

Yeah, it looks a bit ugly, and it requires Flash, but now you can save edited styles for use in your reference manager.

Give it a try! And please use the feedback tab if you want to report any bug reports, or suggest ideas for features you’d like to see.

Update on CSL Editor Dev from lead developer, Steve Ridout

Hi again, everyone!

I’ve made quite a few changes to the site:

It’s at a stage where I’d encourage brave technically-minded users to do real work with it, with the caveat that it’s still an early alpha version, no guarantees, back up your style regularly, etc…

The biggest change from last time is the tree view on the left. You can now expand <text macro=”…”> nodes to see the macro definition inside. This hopefully makes the macro functionality more obvious. Currently there’s no warning that editing a macro will affect all instances – we plan to add this soon.

Please let me know if you have any suggestions or bug reports.


A note from lead developer Steve Ridout

Hello everyone,

We’ve now got a working prototype which gives an idea of the direction we’re going with this, you can try it out here:

And the code is all on github:

Thanks to recent work on citeproc-js by Frank Bennett, it allows the user to identify the relevant part of the CSL style by hovering over the formatted output.

I’m posting here to get some feedback, but please bear in mind it’s in the early stages and we are more interested in discussing the overall approach rather than little bugs. To avoid too many obvious comments here are some known problems:

  • Only tested with latest Chrome and Firefox
  • UI looks and feels clunky
  • Tree view (jstree) drag and drop behavior is sometimes strange
  • Don’t have mapping from every output character to CSL node, and vice versa, not from every CSL node to output. There’s room for improvement here, but Frank says it’s difficult to achieve 100% coverage.
  • Not enough example citations
  • Code editor sometimes wrongly highlights nodes in red
  • Comments are stripped from imported CSL files
  • Should have interactive highlight when hovering over the CSL tree too

We have definite plans for the following:

  • Allow user to modify the example documents, and provide a larger set of built in examples.
  • Only allow CSL schema validating styles. e.g. instead of text boxes for attribute names, use combo boxes populated with data from the csl.rng file. If anyone has advice on parsing the .rng with javascript please let me know.

Here are possible ideas for future work:

  • Simplify/clean up tree view heirachy. At the moment it exactly maps the CSL XML. I think there’s scope for simplifying this view whilst internally keeping the CSL structure. If we did this, we should allow switching back and fore between the actual CSL structure.
  • Put macros inside a ‘macros’ node to avoid cluttering the interface.
  • Try removing the leaf nodes from ‘info’ and ‘author’ and use more friendly GUI controls in the property panel instead.
  • Place ‘symlinks’ within nodes to the relevant macro
  • Allow construction of styles using a database of all macros extracted from the repository as building blocks.
  • Allow user to specify desired textual output of the example documents, to be used as unit tests for that style. This could be pre populated for users arriving from ‘search by example’. The editor would show an error and the relevant diff if the style fails to match.
  • Import and export of styles. We want an easy way to import and export styles to and from ref managers. I think providing online storage and resolvable URLs for all edited styles would be ideal, but is probably beyond the scope of this project.

Look forward to hearing your comments! [Please use the comments section below]



Welcome to the CSL Editor blog!  This space will serve as a hub for information related to the development of a CSL Editor by Columbia University Libraries and Mendeley resulting from a generous grant from the Sloan Foundation.


The goal of this project is to develop a working prototype of a Citation Style Language (CSL) editor and to share it with researchers who employ various reference management applications.  Columbia University Libraries and Mendeley will collaborate using an AGILE development strategy to produce a CSL editor with a sophisticated graphical user interface and a flexible back-end to support developing user needs and ever-changing filetypes, citation conventions, and custom bibliographic styles.  The code for the prototype CSL editor will be deposited into an open-source repository during and at the end of the project for the research community to build upon and to further improve the prototype application resulting from this project.