fix for tickets 1 and 3

I practically went insane in the process, but I managed to fix the
first two major tickets, and I’ve committed the code.

Basically what I did was rip out much of the core that was doing all
the complex work – categorizing, grouping, sorting, etc. – and redid
it as a series of templates in different modes, and using functions to
handle the logic (nice feature of XSLT 2.0!).

Anyway, it’s works, though I’d like to optimize it more where possible.
I also need to figure out how to add back in support for citation page
numbers and such that dropped out.

One other consequence of the changes, BTW, is that the author-year
class is the only one that will work now. Once I ship off the book,
I’ll go back and add all that back in, and tackle the note class again
to get to the 0.7 milestone, which is the point at which I’d call it
ready for wider attention.

BTW, I was playing with a stylesheet the other day: I called it




The author-year class should now work quite well. It supports detailed
citation encoding, and does a nice job of reliably and flexibly
handling sorting. Legal cases now work correctly, for example.

This 0.6 milestone was to be able to format my book for the most part,
though I’ve also managed to rework the internals to make it easier to

There are some hairy things I’ve not yet dealt with:

  1. If you cite Joe Doe and Jane Doe in the same citation, you should
    end up with (Joe Doe and Jane Doe), while if it’s Steve Jones and Kay
    Jones, it might be (S. Jones and K. Jones).

  2. et al. handling

  3. sorting at a third level (author-year-date)

None of these are that hard (I think), but will take more time than I
have now I think (though I may need to fix 2 and 3 for the book).