Towards a simpler and extensible CSL 2.0; or What can we learn from citeproc (hs) and djot?

Thanks @Jason-Abbott; I had never heard of AttributedString.

The idea is to simplify the template model so we are less dependent on it for adding new functionality, and put more logic in those “option groups”, which we open to extension, if for no other reason than to make CSL iteration easier going forward.

In the XML context, it would be like simplifying and freezing the element model, and saying foreign attributes are allowed in X, Y, Z places, and processors can’t break if they see them.

But the simpler template model may yield other benefits:

  1. easier for users (if simple enough, maybe could leave room for string templates?) AND more featureful
  2. easier style and template distribution and evolution
  3. easier for developers in general, but also to create better UIs for creating and editing styles and templates

PS - this idea is clearly the clean break Denis was mentioning earlier.

Also, If you clone the repo, try make docs to get an easy-to-browse view of the model documentation.