Simon and I have been chatting a bit about earlier suggestions he had
for a more flexible macro-based CSL structure. The basic changes would
be:
- par down the large number of elements to a small handful, and use
attributes more - get rid of the “relation” attribute and move to a more-or-less flat
model (and so a long list of variable attributes) - allow user-defined macros
- move away from explicit reliance on types for templates; making more
use of the new conditional structure to achieve the same thing
This would have a number of benefits:
- simpler and more self-describing (easy to author styles and write
code, and to document) - more flexible
- more easily extended
- styles might be more compact and robust (because moving away from
using types for templates) - it might be more easily implemented in a GUI editor
The downsides are:
- it’s a change (so Simon will have to update code and styles :-))
- more difficult to tightly control validation (may not be so bad
though) - the flat model might have some awkward consequences
But on balance I’m fine with going in this direction. So if Simon is
fine with the changes and implementing them in Zotero, I suggest we
make the schema changes, call that CSL 1.0 pre-1, and push towards a
frozen 1.0 release ASAP.
Perhaps we commit them now as a branch in the SVN?
Anyway, here’s what a new style might look like (minus metadata):