A while ago, Walter Young and I published our digital edition of the Kitāb ʿAyn al-Naẓar fī ʿIlm al-Jadal by Shams al-Dīn al-Samarqandī (d. 722/1322). We also published the source code that powers it, but without much explanation. I was since asked to describe how we approached the edition, especially since Arabic and non-LTR scripts are a bit of a challenge. Here, I’ll basically only document what I explained via email.
Our approach to the edition could be described as a case of minimal computing. We did not have any funding for the project, and we did not want to depend on any specific kind of infrastructure, e.g. a database or publishing web service. The edition consists mainly of two files:
- ayn-al-nazar.xml, which is the TEI encoded text, and
- tei2html.xsl, which translates the TEI into HTML, using the Bootstrap
framework for interactive elements like popups and dialogues.
Some parts are factored out into separate TEI files, especially the translation. They link to the passages of the main text they refer to and get pulled into the main HTML file during conversion. In an earlier experiment, we had a similar mechanism in place for commentary. The commentaries were in a separate file and just referenced the passages they were commenting on.
The TEI file can be viewed directly in Firefox, which then applies the transformation on the fly. Since Chrome does not support all required XSLT features, a static HTML file is also provided, which is generated by the script generate_html.sh.
For the display, we knew that we could not invest too much time and energy into designing a visual representation from scratch. Hence we decided to just use the components that Bootstrap provides, as it contained many of the interface elements we were looking for. (At the time, we were using Bootstrap 3, for a fresh start, v4 might be worth considering.) So the main task was to map the logic of the TEI structure into the HTML markup that Bootstrap expects. While constraining your options a bit, I feel it was a good trade-off between flexibility and efficiency.
For the TEI encoding itself, we used OxygenXML. Its author mode helped a lot while adding markup to the Arabic text, as it somewhat mitigates the effect of switching between LTR tags and RTL content.
For publication, we only needed web space for the static pages. We’re also in the process of preparing a version for public repositories, probably TAPAS.

The ʿAyn al-Naẓar – A minimal computing edition by Frederik Elwert is licensed under a Creative Commons Attribution 4.0 International License.
OpenEdition suggests that you cite this post as follows:
Frederik Elwert (July 15, 2019). The ʿAyn al-Naẓar – A minimal computing edition. A Belter’s Life. Retrieved April 19, 2025 from https://doi.org/10.58079/lwz2