XSLT Transformations

The transformations used to produce HTML from TEI.

The xslt files reside at ~capitularia/prj/capitularia/capitularia/xslt/. The transformations are driven by the Makefile in that directory.

The XSLT stylesheets were first written in XSLT 1 because the WebProjekt setup by the RRZK offered only an XSLT 1 processor (xsltproc through PHP).

After adding a VM to the Capitularia project and installing Saxon-HE on it we rewrote all the stylesheets in XSLT 3. (Rewrite completed in June 2020.)

See also the overview: HTML Generation.

These graphs were generated by the tool python/xslt_dep.py.

Graph of All Transformations

G cluster_capits make capits cluster_collation make collation cluster_extraction make extraction cluster_lists make lists cluster_mss make mss cluster_mss_priv make mss_priv $(CACHE_DIR)/lists/corpus.xml $(CACHE_DIR)/lists/corpus.xml changes.xsl changes.xsl $(CACHE_DIR)/lists/corpus.xml:e->changes.xsl downloads.xsl downloads.xsl $(CACHE_DIR)/lists/corpus.xml:e->downloads.xsl mss-idno.xsl mss-idno.xsl $(CACHE_DIR)/lists/corpus.xml:e->mss-idno.xsl mss import_data.py --mss $(CACHE_DIR)/lists/corpus.xml:e->mss:w $(MSS_PRIV_DIR)/%-toc.xml $(MSS_PRIV_DIR)/%-toc.xml $(CACHE_DIR)/internal/mss/%.transcript.phase-1.xml $(CACHE_DIR)/internal/mss/%.transcript.phase-1.xml mss-transcript-phase-2.xsl mss-transcript-phase-2.xsl $(CACHE_DIR)/internal/mss/%.transcript.phase-1.xml:e->mss-transcript-phase-2.xsl $(CACHE_DIR)/mss/%.transcript.phase-1.xml $(CACHE_DIR)/mss/%.transcript.phase-1.xml $(CACHE_DIR)/mss/%.transcript.phase-1.xml:e->mss-transcript-phase-2.xsl mss-transcript-with-comments.xsl mss-transcript-with-comments.xsl $(CACHE_DIR)/mss/%.transcript.phase-1.xml:e->mss-transcript-with-comments.xsl $(CACHE_DIR)/mss/cte-137-de.transcript.phase-1.xml $(CACHE_DIR)/mss/cte-137-de.transcript.phase-1.xml mss-transcript-cte.xsl mss-transcript-cte.xsl $(CACHE_DIR)/mss/cte-137-de.transcript.phase-1.xml:e->mss-transcript-cte.xsl $(CACHE_DIR)/mss/cte-137.transcript.phase-1.xml $(CACHE_DIR)/mss/cte-137.transcript.phase-1.xml $(CACHE_DIR)/mss/cte-137.transcript.phase-1.xml:e->mss-transcript-cte.xsl $(CACHE_DIR)/capits/ldf/%.html $(CACHE_DIR)/capits/ldf/%.html capit/ldf/%/ capit/ldf/%/ $(CACHE_DIR)/capits/ldf/%.html:e->capit/ldf/%/:w $(CACHE_DIR)/capits/post840/%.html $(CACHE_DIR)/capits/post840/%.html capit/post840/%/ capit/post840/%/ $(CACHE_DIR)/capits/post840/%.html:e->capit/post840/%/:w $(CACHE_DIR)/capits/pre814/%.html $(CACHE_DIR)/capits/pre814/%.html capit/pre814/%/ capit/pre814/%/ $(CACHE_DIR)/capits/pre814/%.html:e->capit/pre814/%/:w $(CACHE_DIR)/capits/undated/%.html $(CACHE_DIR)/capits/undated/%.html capit/undated/%/ capit/undated/%/ $(CACHE_DIR)/capits/undated/%.html:e->capit/undated/%/:w $(CACHE_DIR)/collation/%.xml $(CACHE_DIR)/collation/%.xml fulltext import_data.py --fulltext $(CACHE_DIR)/collation/%.xml:e->fulltext:w $(CACHE_DIR)/extracted/%.xml $(CACHE_DIR)/extracted/%.xml mss-extract-chapters-txt.xsl mss-extract-chapters-txt.xsl $(CACHE_DIR)/extracted/%.xml:e->mss-extract-chapters-txt.xsl extracted import_data.py --extracted $(CACHE_DIR)/extracted/%.xml:e->extracted:w $(CACHE_DIR)/lists/bib.html $(CACHE_DIR)/lists/bib.html resources/biblio/ resources/biblio/ $(CACHE_DIR)/lists/bib.html:e->resources/biblio/:w $(CACHE_DIR)/lists/capit-all.html $(CACHE_DIR)/lists/capit-all.html capit/list/ capit/list/ $(CACHE_DIR)/lists/capit-all.html:e->capit/list/:w $(CACHE_DIR)/lists/capit-ldf.html $(CACHE_DIR)/lists/capit-ldf.html capit/ldf/ capit/ldf/ $(CACHE_DIR)/lists/capit-ldf.html:e->capit/ldf/:w $(CACHE_DIR)/lists/capit-post840.html $(CACHE_DIR)/lists/capit-post840.html capit/post840/ capit/post840/ $(CACHE_DIR)/lists/capit-post840.html:e->capit/post840/:w $(CACHE_DIR)/lists/capit-pre814.html $(CACHE_DIR)/lists/capit-pre814.html capit/pre814/ capit/pre814/ $(CACHE_DIR)/lists/capit-pre814.html:e->capit/pre814/:w $(CACHE_DIR)/lists/capit-undated.html $(CACHE_DIR)/lists/capit-undated.html capit/undated/ capit/undated/ $(CACHE_DIR)/lists/capit-undated.html:e->capit/undated/:w $(CACHE_DIR)/lists/changes.html $(CACHE_DIR)/lists/changes.html mss/status/ mss/status/ $(CACHE_DIR)/lists/changes.html:e->mss/status/:w $(CACHE_DIR)/lists/changes90.html $(CACHE_DIR)/lists/changes90.html $(CACHE_DIR)/lists/changes90.html:e->mss/status/:w $(CACHE_DIR)/lists/downloads.html $(CACHE_DIR)/lists/downloads.html resources/downloads/ resources/downloads/ $(CACHE_DIR)/lists/downloads.html:e->resources/downloads/:w $(CACHE_DIR)/lists/mss-capit.html $(CACHE_DIR)/lists/mss-capit.html mss/capit/ mss/capit/ $(CACHE_DIR)/lists/mss-capit.html:e->mss/capit/:w $(CACHE_DIR)/lists/mss-idno.html $(CACHE_DIR)/lists/mss-idno.html mss/idno/ mss/idno/ $(CACHE_DIR)/lists/mss-idno.html:e->mss/idno/:w $(CACHE_DIR)/lists/mss-key.html $(CACHE_DIR)/lists/mss-key.html mss/key/ mss/key/ $(CACHE_DIR)/lists/mss-key.html:e->mss/key/:w $(CACHE_DIR)/lists/mss-table.html $(CACHE_DIR)/lists/mss-table.html mss/table/ mss/table/ $(CACHE_DIR)/lists/mss-table.html:e->mss/table/:w $(CACHE_DIR)/mss/%.footer.html $(CACHE_DIR)/mss/%.footer.html mss/%/ mss/%/ $(CACHE_DIR)/mss/%.footer.html:e->mss/%/:w $(CACHE_DIR)/mss/%.header.html $(CACHE_DIR)/mss/%.header.html $(CACHE_DIR)/mss/%.header.html:e->mss/%/:w $(CACHE_DIR)/mss/cte-137-de.html $(CACHE_DIR)/mss/cte-137-de.html resources/texts/ldf-bk137/ resources/texts/ldf-bk137/ $(CACHE_DIR)/mss/cte-137-de.html:e->resources/texts/ldf-bk137/:w $(CACHE_DIR)/mss/cte-137.html $(CACHE_DIR)/mss/cte-137.html $(CACHE_DIR)/mss/cte-137.html:e->resources/texts/ldf-bk137/:w $(CACHE_DIR)/mss/%.transcript.commented.html $(CACHE_DIR)/mss/%.transcript.commented.html internal/mss-comments/%/ internal/mss-comments/%/ $(CACHE_DIR)/mss/%.transcript.commented.html:e->internal/mss-comments/%/:w $(CACHE_DIR)/mss/%.transcript.html $(CACHE_DIR)/mss/%.transcript.html $(CACHE_DIR)/mss/%.transcript.html:e->mss/%/:w $(CACHE_DIR)/internal/mss/%.footer.html $(CACHE_DIR)/internal/mss/%.footer.html internal/mss/%/ internal/mss/%/ $(CACHE_DIR)/internal/mss/%.footer.html:e->internal/mss/%/:w $(CACHE_DIR)/internal/mss/%.header.html $(CACHE_DIR)/internal/mss/%.header.html $(CACHE_DIR)/internal/mss/%.header.html:e->internal/mss/%/:w $(CACHE_DIR)/internal/mss/%.transcript.html $(CACHE_DIR)/internal/mss/%.transcript.html $(CACHE_DIR)/internal/mss/%.transcript.html:e->internal/mss/%/:w $(CAPIT_DIR)/ldf/%.xml $(CAPIT_DIR)/ldf/%.xml capit.xsl capit.xsl $(CAPIT_DIR)/ldf/%.xml:e->capit.xsl capit.xsl->$(CACHE_DIR)/capits/ldf/%.html:w capit.xsl->$(CACHE_DIR)/capits/post840/%.html:w capit.xsl->$(CACHE_DIR)/capits/pre814/%.html:w capit.xsl->$(CACHE_DIR)/capits/undated/%.html:w $(CAPIT_DIR)/post840/%.xml $(CAPIT_DIR)/post840/%.xml $(CAPIT_DIR)/post840/%.xml:e->capit.xsl $(CAPIT_DIR)/pre814/%.xml $(CAPIT_DIR)/pre814/%.xml $(CAPIT_DIR)/pre814/%.xml:e->capit.xsl $(CAPIT_DIR)/undated/%.xml $(CAPIT_DIR)/undated/%.xml $(CAPIT_DIR)/undated/%.xml:e->capit.xsl mss-extract-chapters-txt.xsl->$(CACHE_DIR)/collation/%.xml:w $(MSS_DIR)/%.xml $(MSS_DIR)/%.xml mss-extract-chapters.xsl mss-extract-chapters.xsl $(MSS_DIR)/%.xml:e->mss-extract-chapters.xsl mss-footer-3.xsl mss-footer-3.xsl $(MSS_DIR)/%.xml:e->mss-footer-3.xsl mss-header-3.xsl mss-header-3.xsl $(MSS_DIR)/%.xml:e->mss-header-3.xsl mss-transcript-phase-1.xsl mss-transcript-phase-1.xsl $(MSS_DIR)/%.xml:e->mss-transcript-phase-1.xsl corpus.xsl corpus.xsl $(MSS_DIR)/%.xml:e->corpus.xsl mss-extract-chapters.xsl->$(CACHE_DIR)/extracted/%.xml:_ $(MSS_PRIV_DIR)/%.xml $(MSS_PRIV_DIR)/%.xml $(MSS_PRIV_DIR)/%.xml:e->mss-footer-3.xsl $(MSS_PRIV_DIR)/%.xml:e->mss-header-3.xsl $(MSS_PRIV_DIR)/%.xml:e->mss-transcript-phase-1.xsl generate_toc.xsl generate_toc.xsl $(MSS_PRIV_DIR)/%.xml:e->generate_toc.xsl mss-footer-3.xsl->$(CACHE_DIR)/mss/%.footer.html:w mss-footer-3.xsl->$(CACHE_DIR)/internal/mss/%.footer.html:w mss-header-3.xsl->$(CACHE_DIR)/mss/%.header.html:w mss-header-3.xsl->$(CACHE_DIR)/internal/mss/%.header.html:w mss-transcript-phase-2.xsl->$(CACHE_DIR)/mss/%.transcript.html:w mss-transcript-phase-2.xsl->$(CACHE_DIR)/internal/mss/%.transcript.html:w mss-transcript-phase-1.xsl->$(CACHE_DIR)/internal/mss/%.transcript.phase-1.xml:w mss-transcript-phase-1.xsl->$(CACHE_DIR)/mss/%.transcript.phase-1.xml:w mss-transcript-phase-1.xsl->$(CACHE_DIR)/mss/cte-137-de.transcript.phase-1.xml:w mss-transcript-phase-1.xsl->$(CACHE_DIR)/mss/cte-137.transcript.phase-1.xml:w $(BIB_DIR)/Bibliographie_Capitularia.xml $(BIB_DIR)/Bibliographie_Capitularia.xml bib-bibliography.xsl bib-bibliography.xsl $(BIB_DIR)/Bibliographie_Capitularia.xml:e->bib-bibliography.xsl bib-bibliography.xsl->$(CACHE_DIR)/lists/bib.html:w $(CAPIT_DIR)/lists/capit_all.xml $(CAPIT_DIR)/lists/capit_all.xml capit-list.xsl capit-list.xsl $(CAPIT_DIR)/lists/capit_all.xml:e->capit-list.xsl cap-list import_data.py --cap-list $(CAPIT_DIR)/lists/capit_all.xml:e->cap-list:w capit-list.xsl->$(CACHE_DIR)/lists/capit-all.html:w type=all capit-list.xsl->$(CACHE_DIR)/lists/capit-ldf.html:w type=ldf capit-list.xsl->$(CACHE_DIR)/lists/capit-post840.html:w type=post840 capit-list.xsl->$(CACHE_DIR)/lists/capit-pre814.html:w type=pre814 capit-list.xsl->$(CACHE_DIR)/lists/capit-undated.html:w type=undated changes.xsl->$(CACHE_DIR)/lists/changes.html:w prefix=A changes.xsl->$(CACHE_DIR)/lists/changes90.html:w prefix=B scope=P90D corpus.xsl->$(CACHE_DIR)/lists/corpus.xml:_ downloads.xsl->$(CACHE_DIR)/lists/downloads.html:w $(MSS_DIR)/lists/manuscripts.xml $(MSS_DIR)/lists/manuscripts.xml mss-capit.xsl mss-capit.xsl $(MSS_DIR)/lists/manuscripts.xml:e->mss-capit.xsl $(MSS_DIR)/lists/manuscripts.xml:e->mss-idno.xsl mss-key.xsl mss-key.xsl $(MSS_DIR)/lists/manuscripts.xml:e->mss-key.xsl mss-capit.xsl->$(CACHE_DIR)/lists/mss-capit.html:w manuscripts=$(MSS_DIR)/lists/manuscripts.xml $(MSS_DIR)/lists/mss_by_cap.xml $(MSS_DIR)/lists/mss_by_cap.xml $(MSS_DIR)/lists/mss_by_cap.xml:e->mss-capit.xsl mss-idno.xsl->$(CACHE_DIR)/lists/mss-idno.html:w corpus=$(CACHE_DIR)/lists/corpus.xml mss-key.xsl->$(CACHE_DIR)/lists/mss-key.html:w $(MSS_DIR)/lists/ueberblick_mordek.xml $(MSS_DIR)/lists/ueberblick_mordek.xml mss-table.xsl mss-table.xsl $(MSS_DIR)/lists/ueberblick_mordek.xml:e->mss-table.xsl mss-table.xsl->$(CACHE_DIR)/lists/mss-table.html:w mss-transcript-with-comments.xsl->$(CACHE_DIR)/mss/%.transcript.commented.html:w mss-transcript-cte.xsl->$(CACHE_DIR)/mss/cte-137-de.html:w title=Übersetzung mss-transcript-cte.xsl->$(CACHE_DIR)/mss/cte-137.html:w title=Edition $(MSS_DIR)/texts/137-de.xml $(MSS_DIR)/texts/137-de.xml $(MSS_DIR)/texts/137-de.xml:e->mss-transcript-phase-1.xsl $(MSS_DIR)/texts/137.xml $(MSS_DIR)/texts/137.xml $(MSS_DIR)/texts/137.xml:e->mss-transcript-phase-1.xsl generate_toc.xsl->$(MSS_PRIV_DIR)/%-toc.xml:w

Graph of Stylesheet Dependencies

G cluster_3.0 XSLT 3.0 bib-bibliography.xsl bib-bibliography.xsl capit-list.xsl capit-list.xsl common-3.xsl common-3.xsl capit-list.xsl->common-3.xsl common-html.xsl common-html.xsl capit-list.xsl->common-html.xsl config-3.xsl config-3.xsl common-html.xsl->config-3.xsl capit.xsl capit.xsl capit.xsl->common-3.xsl capit.xsl->common-html.xsl changes.xsl changes.xsl corpus.xsl corpus.xsl corpus.xsl->common-3.xsl downloads.xsl downloads.xsl generate_toc.xsl generate_toc.xsl geo-places-to-jstree.xsl geo-places-to-jstree.xsl mss-capit.xsl mss-capit.xsl mss-capit.xsl->common-3.xsl mss-capit.xsl->common-html.xsl mss-extract-chapters-txt.xsl mss-extract-chapters-txt.xsl mss-transcript-phase-1.xsl mss-transcript-phase-1.xsl mss-extract-chapters-txt.xsl->mss-transcript-phase-1.xsl mss-transcript-phase-1.xsl->common-3.xsl mss-extract-chapters.xsl mss-extract-chapters.xsl mss-extract-chapters.xsl->common-3.xsl mss-footer-3.xsl mss-footer-3.xsl mss-footer-3.xsl->common-3.xsl mss-footer-3.xsl->common-html.xsl mss-header-3.xsl mss-header-3.xsl mss-header-3.xsl->common-3.xsl mss-header-3.xsl->common-html.xsl mss-idno.xsl mss-idno.xsl mss-idno.xsl->common-3.xsl mss-idno.xsl->common-html.xsl mss-key.xsl mss-key.xsl mss-key.xsl->common-3.xsl mss-key.xsl->common-html.xsl mss-table.xsl mss-table.xsl mss-table.xsl->common-3.xsl mss-table.xsl->common-html.xsl mss-transcript-cte.xsl mss-transcript-cte.xsl mss-transcript-phase-2.xsl mss-transcript-phase-2.xsl mss-transcript-cte.xsl->mss-transcript-phase-2.xsl mss-transcript-phase-2.xsl->common-3.xsl mss-transcript-phase-2.xsl->common-html.xsl mss-transcript-with-comments.xsl mss-transcript-with-comments.xsl mss-transcript-with-comments.xsl->mss-transcript-phase-2.xsl