<?xml version="1.0" encoding="utf-8"?><article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0-subset Balisage-1.5">
  <title>Efficient Development of TEI Rendering Web Applications Using Vue.js</title>
   <info>
    <confgroup>
      <conftitle>Balisage: The Markup Conference 2026</conftitle>
      <confdates>August 3-7, 2026</confdates>
   </confgroup>
    <abstract>
      <para>Digital scholarly editions of primary sources encoded in TEI are still not widely
        adopted. One reason is the readability of XML code. The TEI code itself is not suitable for
        consulting primary sources directly. Although some research projects make use of a TEI
        rendering application to consult or share the edited primary sources, smaller or individual
        projects often face significant difficulties doing so due to financial, workforce, and
        technical constraints. This paper introduces a way to reduce that kind of burden when
        preparing a TEI rendering environment. A web application developed as part of my
        dissertation project, using Vue.js, is explained here. </para>
    </abstract>
    <author>
      <personname>
        <firstname>Takatomo</firstname>
        <surname>Inoue</surname>
      </personname>
      <personblurb>
        <para>Takatomo Inoue holds a Ph.D. in History and Philosophy of Science and Medicine, specializing in alchemy in medieval Islam. He is a former programmer and has also been working on TEI encoding and digital humanities for years. 
  <!--    Ph. D. in History and Philosophy of Science and Medicine
          Specializing in alchemy in medieval Islam
          Former programmer. 
          I have also been working on TEI encoding and digital humanities for years. -->
        </para>
      </personblurb>
      <affiliation>
        <jobtitle>Assistant Professor</jobtitle>
        <orgname>Waseda University</orgname>
      </affiliation>
      <email>tainoue@iu.edu</email>
      <email>tktm.inoue@aoni.waseda.jp</email>
      <email>inotazo@akane.waseda.jp</email>
      <uri type="orcid">https://orcid.org/0009-0009-5426-7521</uri>
    </author>
<legalnotice><para>Copyright © 2026, Takatomo Inoue</para></legalnotice>    
   
  </info>
  
  <section>
    <title>Introduction</title>
    <para> Publishing digitally edited texts, glossaries, bibliographies, etc., in TEI (Text
      Encoding Initiative), on the web requires painstaking effort, especially for humanities
      scholars. Scholars often need to write code to process TEI documents because there is no universal environment that
      can render TEI like web browsers for HTML. Even for scholars familiar with web development,
      spending excessive effort on web application development can reduce the time available for primary scholarly work. Some might build a website by outsourcing, but that might
      undermine the flexibility of updating the application features. </para>
    
    <para>
      To tackle this issue, my study aims to find an easier, faster way to build and maintain a web application for digital editorial projects using TEI. This paper proposes using Vue.js to address this problem. Vue.js is one of the modern front-end web application frameworks that allows us to develop more effectively through simpler, more efficient coding.
    </para>
    
    <para>
      As a preceding study about TEI encoding and rendering, the website for the “Chymistry of Isaac Newton” project (<link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://chymistry.org</link>) at Indiana University has edited around 750,000 words from the Newton manuscripts on alchemy.<footnote>
        <para>
          The studies derived from this project are William R.Newman, <emphasis role="ital">Newton the Alchemist: Science, Enigma, and the Quest for Nature’s ‘Secret Fire’</emphasis>, (Princeton: Princeton University Press, 2024); Sayre, Meridith Beck, Michelle Dalmau, Wallace Hooper, William R. Newman, James R. Voelkel and John Walsh, “Encoding Newton’s Alchemical Library: Integrating Traditional Bibliographic and Modern Computational Methods,” <emphasis role="ital">Journal of the Text Encoding Initiative</emphasis> 11 (2020); Walsh, John A. and Wallace Edd Hooper, “The Liberty of Invention: Alchemical Discourse and Information Technology Standardization,” <emphasis role="ital">Literary and Linguistic Computing</emphasis> 27 (2012), 55-79.
        </para>
      </footnote>
      This is one of the largest projects for digital manuscript editing with TEI. I have been engaged in this project for over six years, mainly as an editorial assistant and web developer. The website offers a great reading experience, including its dynamic web view. On the other hand, it has maintainability issues. Since the website was initially developed through outsourcing, few people can currently modify it. Furthermore, the website's structure is complicated, which takes a developer a long time and effort to learn. This forms the background for developing a simplified web application for TEI.
    </para>
    
    <para>
      This paper is divided into five sections to introduce the benefits of Vue.js web applications. In the first section, the paper begins with a fundamental question: What is the significance of creating a digital/web edition? Without answering it, we cannot convince anyone to adopt TEI and web technologies for historical research. The second section introduces an editorial project in my dissertation, <citation>“Alchemy in Medieval Islam and Abū Bakr al-Rāzī” (Indiana University, 2025)</citation>. In the dissertation, I edited an Arabic text from two manuscript witnesses and encoded it into TEI.<footnote>
        <para> Regarding using TEI for Arabic text and primary sources, there are limited studies,
          such as Fazia Brinis, Mohammed Ourabah Soualah, and Farida Bouarab,
          “Comparative Study of Encoding Formats for Digitized Ancient Arabic Manuscripts,” <emphasis>2023
          24th International Arab Conference on Information Technology (ACIT)</emphasis>, 2023, 1-11; Giuliano
          Lancioni, “Encodings, genres, texts: issues in Arabic corpus linguistics,” <emphasis>Langues et
          Littératures du Monde Arabe</emphasis> 9 (2011): 84-93; Giuliano Lancioni and N. Peter Joosse, “The
          Arabic Diatessaron Project: Digitalizing, Encoding, Lemmatization,” <emphasis>Journal of Religion,
          Media and Digital Culture</emphasis> 5, no. 1 (2016): 205-227; Hajer Maraoui, Kais Haddar, and
          Laurent Romary, “Encoding Prototype of Al-Hadith Al-Shareef in TEI,” <emphasis>ICALP 2017 - The 6th
          International Conference on Arabic Language Processing</emphasis>, 2017, 217–229. </para>
        <para>However, none of these studies address the rendering of TEI into a web view.</para>
      </footnote>
      At the same time, I developed a Vue.js web application to render the TEI edition into a reader-friendly format with dynamic features. This section also elaborates on the logic and structure of the Vue.js web application. The third section summarizes the benefits of Vue.js for TEI rendering. In the last section, we discuss further possibilities of the Vue.js web application.
    </para>
    
    <para> This paper makes three main contributions: First, it proposes a lightweight and
      reproducible architecture for rendering TEI documents using a modern front-end framework.
      Second, it demonstrates a practical method for integrating XSLT transformation with Vue.js
      components. Third, it identifies and resolves technical issues arising from the
      incompatibility between XSLT and Vue.js syntax (e.g., colon-prefixed attributes), providing a
      reusable workaround. </para>
    
  </section>
  
  <section>
    <title>What is the significance of creating a digital/web edition?</title>
    
    <para> Making a critical edition from manuscript sources is necessary in the field of history.
      Critical editions help later researchers in terms of accessibility and reliability because
      they no longer have to collect and compare multiple witnesses of the primary source. Even with
      cutting-edge AI technology, it does not guarantee the complete accuracy in transcribing the
      text from manuscript sources. Although we can take advantage of such technologies in the
      process of editing, scholars must remain responsible for finalizing the editing process. </para>
    
    <para>
      Since humans are not perfect, we make mistakes. Also, as years go by, researchers may encounter new research questions regarding the same primary source. If your scholarly edition is paper-based, since it is supposed to be the final version, it is impossible to change the content so often once it is published. On the other hand, publishing a scholarly edition on the web allows you to apply the corrections right after you find a minor typo. You can implement a new analysis tool in the web application after the first launch.
    </para>
    
    <para>
      TEI<footnote>
       <para>
         Text Encoding Initiative. The TEI Consortium offers an encoding guideline for transcribing paper-based text material. 
         See 
         <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">
           https://tei-c.org
         </link>
         for details.
       </para>
     </footnote>
      is probably the most standardized way of encoding primary sources. Thus, once a critical edition is created in TEI, it can be shared among many scholars easily. On the other hand, the readability of the TEI source code is usually not friendly, especially for most historians. Therefore, unless the usage of the encoded text is limited to data processing, it is definitely necessary to render it into a reader-friendly format, which is usually realized through a web application. However, developing and deploying a web application often has many obstacles, especially for small-scale research projects, due to financial capacity, workload, learning cost, and so forth.
    </para>
    
    <para> This paper presents one practical approach that addresses several of these difficulties.
      Using a modern generation JavaScript front-end framework makes the application structure
      simpler. It enables us to develop faster with a small number of people, even those who are not
      full-time web developers. In order that more historians use TEI as a method of scholarly
      edition, research with TEI-edited sources has to be easier, more convenient, more comfortable,
      and more useful. The solution here would lower the bar of using TEI for historical research. </para>
    
  </section>
  
  <section>
    <title>Case Study: Rendering a TEI Scholarly Edition in Arabic into Web View</title>
    
    <section>
      <title>My Dissertation: “Alchemy in Medieval Islam and Abū Bakr al-Rāzī”</title>
      
      <para>
        In my dissertation, I created two scholarly editions: a conventional printing-friendly edition and a TEI edition.<footnote>
          <para>
            Takatomo Inoue, “Alchemy in Medieval Islam and Abū Bakr al-Rāzī” (PhD diss., Indiana University Bloomington, 2025).
          </para>
        </footnote>
        The primary sources are two witnesses ascribed to Abū Bakr al-Rāzī (d. 925)<footnote>
          <para>
            Each witness has a different title. 
            Fatih 5309 is 
            <emphasis role="ital">
              Khawāṣṣ al-iksīr
            </emphasis>
             (Specific Properties of the Elixir), 
            and Haci Mahmut 4224 is 
            <emphasis role="ital">
              al-Risāla fī dhikr al-khamāʾir al-madhkūra fī Kutub al-barrāniyya
            </emphasis>
            
            (The Epistle on the Remark about Ferments Mentioned in Books of the Inorganic).
          </para>
        </footnote>
        and written in Arabic:
      </para>
      
      <itemizedlist>
        <listitem>
          <para>Süleymaniye Library, Istanbul, MS, Fatih 5309, fols. 18b-26a.</para>
        </listitem>
        <listitem>
          <para>Süleymaniye Library, Istanbul, MS, Haci Mahmut 4224, fols. 20b-23b.</para>
        </listitem>
      </itemizedlist>
      
      <para> Based on these two witnesses, I created both editions (i.e., printing and TEI) as
        quasi-critical editions.<footnote>
          <para>This is mainly because the number of surviving witnesses is insufficient to make a
            critical edition.</para>
        </footnote> Therefore, the TEI code includes the elements indicating the discrepancies
        between witnesses, such as <code>&lt;app&gt;</code>, <code>&lt;lem&gt;</code>, and
          <code>&lt;rdg&gt;</code>. Also, as we would use when creating diplomatic editions, the
        code indicates unclear parts, extra blanks, marginal notes, insertions, overlines,
        highlighting, and so forth. </para>
      
      <para>
        Although it is merely mentioned in the dissertation, a web application to render the TEI scholarly edition has been developed as a part of the dissertation project. Many of the planned features have not yet been implemented, but it has been published on GitHub Pages 
(<link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://tubesoft.github.io/arabic-tei/</link>) with only minimal features. Regarding the encoding of Arabic manuscripts, which also has issues and obstacles to address, this paper does not explore TEI encoding further, as another publication is planned to discuss it. The focus of this paper is to introduce a less labor-intensive alternative way of TEI rendition.
      </para>
      
    </section>
    
    <section>
      <title>Structure</title>
      
      <para>
        First of all, the following is the environment of the web application:
      </para>
      
      <itemizedlist>
        <listitem><para>Vue.js (3.5.17)</para></listitem>
        <listitem><para>Vuetify.js (3.8.11, a GUI framework for Vue.js)</para></listitem>
        <listitem><para>SaxonJS 2 (an XSLT engine)</para></listitem>
        <listitem><para>GitHub Pages (deployment destination)</para></listitem>
      </itemizedlist>
      
      <para> The version of Vue.js used is 3, which is currently the latest major version.<footnote>
          <para>See Vue.js, <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://vuejs.org</link>.</para>
        </footnote> Vuetify.js version 3 is a compatible version with Vue 3.<footnote>
          <para>See Vuetify, <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://vuetifyjs.com</link>.</para>
        </footnote> SaxonJS is necessary to execute XSLT code. Version 2 supports XSLT 3.0
        execution.<footnote>
          <para>See Saxonica, <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://www.saxonica.com/saxonjs/index.xml</link>.</para>
        </footnote> GitHub Pages basically offers a static website space, being read from a
        repository, but when we commit a Vue.js project, the Pages automatically deploys it as a
        Vue.js web application.<footnote>
          <para>See GitHub for details, <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">
              https://docs.github.com/en/pages/getting-started-with-github-pages/what-is-github-pages
            </link>.</para>
        </footnote>
      </para>
      
      <para>
        The data flow of this Vue.js application is illustrated in the following chart:
      </para>
      
      <figure>
        <title>Data Flow of the Application</title>
        
        <mediaobject>
          <imageobject>
            <imagedata fileref="../../../vol31/graphics/Inoue01/Inoue01-001.png"/>
          </imageobject>
        </mediaobject>
        
        <caption>
          <para>
            This figure shows the data flow from TEI input to Vue.js rendering.
            The transformation is executed on the client side using SaxonJS.
          </para>
        </caption>
      </figure>
      
      <para>
        The basic structure is probably the same as other web applications that render TEI-edited sources. However, in this application, instead of converting into HTML, the XSLT code here is designed to convert into the <code>&lt;template&gt;</code>  part of the Vue.js code.<footnote>
          <para>
            One <code>.vue</code> file is usually divided into two parts: the <code>&lt;template&gt;</code> and <code>&lt;script&gt;</code> parts. The former defines the view of the web page. The latter includes variables and methods to define the behavior of the web page.
          </para>
        </footnote>
        In order to have the benefit of Vue.js and other modern frameworks, this web application is built as a single-page application (SPA). As a result, every content of the application is called through the main view.
      </para>
      
      <para>
        The website structure is simple and straightforward:
      </para>
      
<programlisting language="text" xml:space="preserve">
Main View
├── Home
├── About
├── Edition (Currently containing 2 scholarly Editions)
├── Translation (not ready to publish)
├── Glossary (not ready to publish)
└── Analysis (not ready to publish)
</programlisting>
      
      <para>
        In this web application, the Vue.js code converted from TEI is embedded in the “Edition” view, which serves as the primary source viewer.
      </para>
      
      <para>
        As for the structure of the web application, the project directory is organized as follows:
      </para>
      
<programlisting language="text" xml:space="preserve">
arabic-tei/
├── docs/
├── node_modules/
├── public/
└── src/
    ├── assets/
    ├── image/
    ├── tei/
    ├── xslt/
    ├── components/
    ├── pages/
    ├── plugins/
    ├── router/
    ├── styles/
    ├── main.js
    └── App.vue
</programlisting>
      
      <para> Technically, once we generate a project folder and install plugins with a project
        management tool (such as npm),<footnote>
          <para> Although those processes are not straightforward for those who are not familiar
            with CUI, its description is omitted because it is not a main focus of this paper.
          </para>
        </footnote> the development is largely confined to the <code>src</code> directory. </para>
    </section>
    
    <section>
      <title>Logic of the Conversion from TEI to Vue.js code</title>
      
      <para>
        The file called <code>edition.vue</code>, located in <code>/src/pages</code> indicated above, renders TEI editions into a reader-friendly view. The webpage appears like this:
      </para>
      
      <figure>
        <title>The “Edition” Page</title>
        
        <mediaobject>
          <imageobject>
            <imagedata fileref="../../../vol31/graphics/Inoue01/Inoue01-002.png"/>
          </imageobject>
        </mediaobject>
        
        <caption>
          <para>
            This is the appearance of the initial state of the “Edition” page.
          </para>
        </caption>
      </figure>
      
      <para>
        The left foldable column is a list of edited primary sources. When you press the title, the conversion process is executed, and the text of the chosen primary source appears on the right. In the conversion process, an XSLT program is invoked to process the TEI file corresponding to the chosen primary source.
      </para>
      
      <para>
        The chosen text shows like this:
      </para>
      
      <figure>
        <title>The Rendered Text</title>
        
        <mediaobject>
          <imageobject>
            <imagedata fileref="../../../vol31/graphics/Inoue01/Inoue01-003.png"/>
          </imageobject>
        </mediaobject>
        
        <caption>
          <para>
            This is the appearance of the rendered text.
          </para>
        </caption>
      </figure>
      
      <para>
        Here, the XSLT program processes mainly two parts. The part before the main text, which includes, the title, author and list of witnesses, is data extracted from the TEI header (i.e., <code>&lt;teiHeader&gt;</code>). The other part is the converted result of the <code>&lt;text&gt;</code> element in the TEI file.
      </para>
      
      <para>
        In both cases, the conversion result has to follow the Vue.js and Vuetify.js coding conventions. For example, the list of the witnesses shown above consists of expansion panels provided from Vuetify.js. Thus, the converted code is supposed to be like:
      </para>
      
<programlisting language="xml" xml:space="preserve">
&lt;v-expansion-panels multiple class="mb-10"&gt;
  &lt;v-expansion-panel&gt;
    &lt;v-expansion-panel-title class="text-h5"&gt;
      [SHELF MARK]
    &lt;/v-expansion-panel-title&gt;
    &lt;v-expansion-panel-text&gt;
      [DETAIL INFO OF THE CODEX]
    &lt;/v-expansion-panel-text&gt;
    ･･･
  &lt;/v-expansion-panel&gt;
&lt;/v-expansion-panels&gt;
</programlisting>
      
      <para>
        Then, XSLT can be written as follows:
      </para>
      
<programlisting language="xslt" xml:space="preserve">
&lt;xsl:element name="v-expansion-panels"&gt;
  &lt;xsl:attribute name="multiple"/&gt;
  &lt;xsl:attribute name="class"&gt;mb-10&lt;/xsl:attribute&gt;
  &lt;xsl:for-each select="fileDesc/sourceDesc/msDesc"&gt;
    &lt;xsl:element name="v-expansion-panel"&gt;
      &lt;xsl:element name="v-expansion-panel-title"&gt;
        &lt;xsl:attribute name="class"&gt;text-h5&lt;/xsl:attribute&gt;
        &lt;xsl:value-of select="[SHELF MARK]"/&gt;
      &lt;/xsl:element&gt;
      &lt;xsl:element name="v-expansion-panel-text"&gt;
        &lt;xsl:value-of select="DETAIL INFO OF THE CODEX"/&gt;
      &lt;/xsl:element&gt;
    &lt;/xsl:element&gt;
  &lt;/xsl:for-each&gt;
&lt;/xsl:element&gt;
</programlisting>
      
      <para>
        Although most of the XSLT coding is straightforward and has no major difference from when converting into HTML, some of the Vue.js coding conventions cause a critical issue in XSLT execution.
      </para>
      
      <para>
        The problem is processing colon (<code>:</code>). In Vue.js, a colon is involved in an attribute when using the <code>v-bind</code> feature in some of the cases. The <code>v-bind</code> gives a dynamic value to an attribute of an element. Therefore, it is almost inevitable to use it as long as using Vue.js. In the case of my web application, the following Vue.js code is desired:
      </para>
<programlisting language="vue" xml:space="preserve">
&lt;v-menu :nudge-width="150" :close-on-content-click="false"&gt;
</programlisting>
      <para>
        <code>:nudge-width</code> is an abbreviated form of <code>v-bind:nudge-width</code>. In this way, we have to add a colon to use this feature in Vue.js. However, the colon is a reserved character in XSLT, which uses it to express namespaces. Therefore, if a colon is included in a value or attribute in XSLT, this causes errors during XSLT processing.
        In my web application, I invented a workaround that lets JavaScript code in the Vue.js file convert colon-involved parts. In order to output the code above, the XSLT adds an intermediary <code>id</code> attribute like the following:
      </para>
      
<programlisting language="xslt" xml:space="preserve">
&lt;xsl:element name="v-menu"&gt;
  &lt;xsl:attribute name="id"&gt;v-menu-config&lt;/xsl:attribute&gt;
&lt;/xsl:element&gt;
･･･
</programlisting>
      
      <para>
        Then JavaScript replaces it:
      </para>
      
<programlisting language="javascript" xml:space="preserve">
while (!!doc.querySelector('#v-menu-config')) {
  doc.querySelector('#v-menu-config').setAttribute(':nudge-width', '150')
  doc.querySelector('#v-menu-config').setAttribute(':close-on-content-click', 'false')
  doc.querySelector('#v-menu-config').removeAttribute('id')
}
</programlisting>
      
      <para>
        This workaround highlights a broader compatibility issue between XML-based transformation pipelines and modern JavaScript frameworks. The proposed solution is not limited to this project but can be applied to similar cases where XSLT-generated output must conform to framework-specific syntactic constraints.
      </para>
      
      <para>
        Aside from this problem, XSLT can easily create Vuetify.js GUI components, which makes the website look quite well organized and equipped with dynamic features without extra effort. For specific website GUI features, please refer to the website.
      </para>
      
    </section>
    
  </section>
  
  <section>
    <title>Benefits of Using Vue.js</title>
    
    <para> The improvements over conventional TEI rendering applications can be summarized as
      follows. The first is low running cost. To run a Vue.js application, we do not need a fully
      equipped server space. GitHub Pages or other so-called BaaS, such as Firebase, which only
      requires an inexpensive subscription, would be enough to host a Vue.js application. This is an
      affordable running cost for any researcher, even for those who do not receive research funds.
      The second is the simple application structure. We only have to edit a few of the folders in
      the project folder, which does not require any complicated configurations or stylesheets. This
      enables one or a few persons to develop the entire application without taking time. This is
      also appropriate from a maintainability standpoint. The third is efficient but powerful GUI
      development. The use of Vue.js and Vuetify.js (which can be other GUI frameworks for Vue.js)
      not only allows us to use sophisticated GUI components, but also to make them dynamic quickly.
      This is because a Vue.js file includes both template and script parts. In other words, it is
      straightforward to map methods and variables in the script to the GUI component in the
      template. Compared to alternative approaches such as server-side rendering or static HTML
      transformation, Vue.js enables a tighter integration between transformed TEI content and
      interactive user interfaces through its component-based architecture. This could promote more
      scholars to consider editing primary sources in TEI. </para>
    
  </section>
  
  <section>
    <title>Further Possibilities of the Web Application</title>
    
    <para> As explained above, one of the advantages of creating scholarly editions digitally is
      being able to update. There are also several plans for my web application in the dissertation
      project. Some can be implemented without taking much time and effort. Others may require more
      time to learn to do so. The former is, for example, to create a glossary of the technical
      terms of a specific topic. In the case of my scholarly editing project, generating the list of
      substances used in alchemy out of all edited sources would be useful. As long as terms are
      tagged by the element such as <code>&lt;term type="substance"&gt;</code>, XSLT can easily
      extract those words. </para>
    <para>
      More difficult plans are implementing analyzing tools based on natural language theories or AI-related features. In terms of natural language processing, LSA (latent semantic analysis) is a good method for finding similar passages within a corpus. If we can use LLM (large language model) APIs in a web application, we can analyze the corpus more flexibly. Of course, since LLMs are not always accurate, their use should be limited to a heuristic tool.
    </para>
  </section>
  
  <section>
    <title>Conclusion</title>
    
    <para> Many historians would think that developing one’s own web application to render
      TEI-edited primary sources is an unfeasible task. This represents a major obstacle to the
      creation of digital editions for most scholars. That is, due to the poor readability of TEI
      code, it is almost impossible to use it to consult primary sources. Only after it is rendered
      into a reader-friendly format do TEI editions become usable sources to refer to. Therefore,
      unless we can reduce the effort required to develop rendering applications, wider adoption of
      TEI among scholars is likely to remain challenging. This paper demonstrates a practical and
      reproducible method for integrating TEI and modern front-end frameworks with minimal technical
      overhead. Developing the web application with Vue.js could at least make scholars feel less
      overwhelmed, though many of them might still hesitate to try. Even those who might still
      hesitate to develop web applications can take advantage of the recent availability of LLM
      chatbots, which can assist with some of the most time-consuming tasks, such as coding. The
      more digital scholarly editions are created, the more we can analyze primary sources using
      computational methods, leading to new insights into historical sources. </para>
    
  </section>
  
  <bibliography>
    
      <title>References</title>
      
      <bibliomixed>
        Brinis, Fazia, Mohammed Ourabah Soualah, and Farida Bouarab. “Comparative Study of Encoding Formats for Digitized Ancient Arabic Manuscripts.” 
          <emphasis role="ital">
            2023 24th International Arab Conference on Information Technology (ACIT)</emphasis>, 2023, 1–11. doi:<biblioid class="doi">10.1109/ACIT58888.2023.10453686</biblioid>.
      </bibliomixed>
      
      <bibliomixed>
        The Chymistry of Isaac Newton. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://chymistry.org/</link>.
      </bibliomixed>
    
    <bibliomixed>
      GitHub. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://github.com/</link>.
    </bibliomixed>
      
      <bibliomixed>
        Inoue, Takatomo. “Alchemy in Medieval Islam and Abū Bakr al-Rāzī.” PhD diss., Indiana University Bloomington, 2025.
      </bibliomixed>
      
      <bibliomixed>
        Lancioni, Giuliano. “Encodings, genres, texts: issues in Arabic corpus linguistics.” 
          <emphasis role="ital">
            Langues et Littératures du Monde Arabe</emphasis> 9 (2011): 84–93.
      </bibliomixed>
      
      <bibliomixed>
        Lancioni, Giuliano, and N. Peter Joosse. “The Arabic Diatessaron Project: Digitalizing, Encoding, Lemmatization.”
          <emphasis role="ital">
            Journal of Religion, Media and Digital Culture</emphasis> 5, no. 1 (2016): 205–227.  doi:<biblioid class="doi">10.1163/21659214-90000075</biblioid>.
      </bibliomixed>
      
      <bibliomixed>
        Maraoui, Hajer, Kais Haddar, and Laurent Romary. “Encoding Prototype of Al-Hadith Al-Shareef in TEI.” 
          <emphasis role="ital">
            ICALP 2017 - The 6th International Conference on Arabic Language Processing</emphasis>, 2017, 217–229.  doi:<biblioid class="doi">10.1007/978-3-319-73500-9_16</biblioid>.
      </bibliomixed>
      
      <bibliomixed>
        MDN. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://developer.mozilla.org</link>.
      </bibliomixed>
      
      <bibliomixed>
        Newman, William R. 
          <emphasis role="ital">
            Newton the Alchemist: Science, Enigma, and the Quest for Nature’s ‘Secret 
Fire’</emphasis>. Princeton: Princeton University Press, 2024.
      </bibliomixed>
      
      <bibliomixed>
        Saxonica. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://www.saxonica.com/welcome/welcome.xml</link>.
      </bibliomixed>
      
      <bibliomixed>
        Sayre, Meridith Beck, Michelle Dalmau, Wallace Hooper, William R. Newman, James R. Voelkel, and John Walsh. “Encoding Newton’s Alchemical Library: Integrating Traditional Bibliographic and Modern Computational Methods.” 
          <emphasis role="ital">
            Journal of the Text Encoding Initiative</emphasis> 11 (2020). doi:<biblioid class="doi">10.4000/jtei.2866</biblioid>.
      </bibliomixed>
      
      <bibliomixed>
        The Text Encoding Initiative Consortium. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://tei-c.org</link>.
      </bibliomixed>
      
      <bibliomixed>
        Vue.js. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://vuejs.org/</link>.
      </bibliomixed>
      
      <bibliomixed>
        Vuetify.js. <link xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">https://vuetifyjs.com/</link>.
      </bibliomixed>
      
      <bibliomixed>
        Walsh, John A., and Wallace Edd Hooper. “The Liberty of Invention: Alchemical Discourse and Information Technology Standardization.” 
          <emphasis role="ital">
            Literary and Linguistic Computing
          </emphasis> 27 (2012): 55–79.  doi:<biblioid class="doi">10.1093/llc/fqr038</biblioid>.
      </bibliomixed>
      <bibliomixed>
        MS. Fatih 5309. Süleymaniye Library, Istanbul.
      </bibliomixed>
      
      <bibliomixed>
        MS. Haci Mahmut 4224. Süleymaniye Library, Istanbul.
      </bibliomixed>
      
    </bibliography>
  
</article>