JT and I finally figured out what the current Schematron warnings are about in the build process, in debugging a rule which didn't seem to be firing. It seems that the Java Schematron compiler is quite crude in the way it builds XSLT from rules, and won't properly process rules which match on attributes. We've now fixed the problem one from today as a proof of concept, and tomorrow JT will work his way through the others to ensure that the rules are really all being applied to our static build XML.
Got the hash-based linking working, which means you can link to the mention of a specific named item in a text.
Fixed a whole bunch of errors and problems both in encoding and in rendering. There are still a few obvious issues, but I think we're now in the mopping-up phase.
Made a number of fixes today aimed at getting the static build to validate successfully:
- There are many cases in Stow of linking elements (ref, name etc.) containing supplied elements, which contain notes. The notes are turned into links, which means we have embedded links. In all cases (about 15) I've split the outer linking elements using @next and @prev. This will result in some odd entries in the spelling variants, but they're possibly justifiable, since they are what appears in the original text.
- The Map was using GN's UI font, and specifically referencing a spinner/wait character which was in the PUA. We've now moved that character to a more strictly correct location based on its purpose (\u23F3).
- When updating the font, we checked on browser support and decided to eliminate all eot, svg and ttf fonts, on the basis that the woff version should be enough. This simplifies the CSS and cuts down on the distro size.
- I've re-encoded a complicated nested table structure in Stow "Law".
We need to get to a point where the XHTML5 is valid so that we can browse the results on Jenkins. Found a few remaining issues in the data, including combining diacritics detached from their original char, so I've added a Schematron rule for that. Fixed some XSLT bugs, and I'm now at a point where I think only novel errors from Stow are likely to be thrown up. Waiting for the long build process to complete now, to see the latest crop of errors.
I've gone through the original primary_source.xsl and general.xsl to transfer and/or adapt all the remaining templates that I believe we need for the static build, integrating them all into the single xhtml5 mode, and trying to avoid distinguishing between them too much. At this point documents are building happily and looking not-too-bad, but there are still invalidities (some in bornDigital docs, caused by the introduction of templates from primary source), and also I think there are changes that need to be made to the chapter-splitting Stow code to make sure that the base style info for the page width etc. is imported from the parent document into every chapter. Getting there, though. Another few days...
Ported the Agas Map code from XQuery to XSLT, and wrote some additional JavaScript to handle the changes in configuration required for embedding. This now appears to be working well, and I've also added a new feature to all pages, on the left bar: a link to "Map this document on the Agas Map", which highlights all the places mentioned in the document on the Agas Map. This is distinct from the embedded map of a single location that comes up at the top of the page for location files. I've also got the Agas Map JSON being built as part of the static build, which I think means that our entire product for the static build is fresh every time and internally coherent.
The convention of using hard .htm links to generated pages is not appropriate for the static build, where those generated pages end up actually existing as XML documents, so we need to create alternative approaches to all of those instances. The biggest case was the mdt...listings documents, and I've dealt with that today by creating a new mdtlist: private uri scheme which provides a way of linking to any of those document type taxonomy pages. The current eXist webapp has been updated to deal with this, as has the Schematron, and I've written all the handlers necessary for the static build. I also updated the Praxis documentation appropriately. There's a small number of remaining generated documents (A-Z Index being the prime example) which will also have to be handled.
Core decisions from meeting:
- We will finish static build work on born-digital docs, and then make Cornhill the focus of the primary source work, so we can have a version ready for the reviewer soonest.
- We will consider converting document status="stub" to a document type taxonomy item mdtStub, but this will be done through the static build and not back-ported. Humans will have to address the status of documents which currently have this status; meanwhile, the static build code can read the document type instead of the status for use in listings pages.
- MAPS1.xml will be converted to a listBibl of bibls by TL.
We still have a couple of bugs that require some decisions from the team, but we're getting close. Soon we'll be able to turn our attention to the primary source docs.