TEI Publisher facilitates the integration of the TEI Processing Model into exist-db applications. The TEI Processing Model (PM) extends the TEI ODD specification format with a processing model for documents. That way intended processing for all elements can be expressed within the TEI vocabulary itself. It aims at the XML-savvy editor who is familiar with TEI but is not necessarily a developer.
TEI Publisher supports a range of different output media without requiring advanced coding skills. Customising the appearance of the text is all done in TEI by mapping each TEI element to a limited set of well-defined behaviour functions, e.g. “paragraph”, “heading”, “note”, “alternate”, etc. The TEI Processing Model includes a standard mapping, which can be extended by overwriting selected elements. Rendition styles are transparently translated into the different output media types like HTML, XSL-FO, LaTeX, or ePUB. Compared to traditional approaches with XSLT or XQuery, TEI Publisher may thus easily save a few thousand lines of code for media specific stylesheets.
A demo and further documentation is available on:
For general questions and discussions, please join the #community room on the e-editiones slack.
If you need professional support or consulting, feel free to send your inquiry to eXist Solutions.
A prebuilt version of the app can be installed from exist-db's central app repository. On your exist-db installation, open the package manager in the dashboard and select "TEI Publisher" for installation. This should automatically install dependencies such as the "TEI Publisher: Processing Model Libraries."
Important: TEI Publisher from version 5.0.0 requires eXist-db 5.0.0 or later.
For an overview of the app and library, please refer to the documentation available.
Please use our Crowdin space to help expand and improve localization
The following instructions apply to both, TEI Publisher itself as well as apps generated from it. Building needs Java and Apache Ant.
TEI Publisher requires the pb-components package, which can either be loaded from an external server (CDN) or imported into the local build. Using the CDN is recommended unless you want to use a cutting edge build of the components or you need TEI Publisher to work without an internet connection.
Run Apache ant
in the cloned directory to get a .xar
file in build/
, which can be uploaded into an eXist instance via the dashboard.
This will include all user-interface components and their dependencies into the created package. In addition to ant
, you should have nodejs
and npm
installed on the machine used for building:
build.properties
points to the right location on your machineant xar-local
to build TEI PublisherSometimes you may also want to update the pb-components
library to a newer or custom version. The procedure is as follows:
package.json
to include the desired version of the pb-components
librarymodules/config.xqm
and change the variable $config:webcomponents
to read 'local' instead of a version number. This way, the javascript bundles will be loaded from within the TEI Publisher app instead of a CDNant xar-local
to generate a .xar
This software is licensed under the GPLv3 license. If you need a different license: please contact us and we'll find an arrangement.
TEI Publisher was initiated and released to the public as free software by with contributions from other users. It's development was supported by a wide range of privately and publicly funded projects.
Development is supported and coordinated by e-editiones.
All resources can either be edited live via eXist-db's XML editor eXide or via local development having ant
installed.
Following instructions are only relevant for developers who want to contribute to TEI Publisher. Different approaches are possible:
docker build -t existdb/teipublisher:6.0.0 .
in your terminaldocker run --publish 8080:8080 --detach --name tp existdb/teipublisher:6.0.0
in your terminallocalhost:8080
in your browserWith this setup everything will be living inside docker, so you do not need anything apart from vscode and docker, not even Java or nodejs.
Make sure you have Visual Studio Code installed.
Make sure you do not have eXist running on 8080.
The container is now being built, which takes a while as it:
Once it completes, you should see vscode with TEI Publisher directory opened and you can go to http://localhost:8080 to find the dashboard as usual. Once you're done for the moment, choose Close Remote Connection
from the file menu. This will properly stop the container and eXist. To start again, either use menu File/Open Recent
and choose the entry ending with [Dev Container]
or select the Remote Explorer tab on the left sidebar, make sure it shows your Containers in the top dropdown, and start the one you created before.
Important: After you stop the container, give eXist a chance to shut down properly before you restart, so please wait a few seconds.