+<?xml version="1.0"?>
+<!--
+SPDX-FileCopyrightText: 2025 Lady <https://www.ladys.computer/about/#lady>
+SPDX-License-Identifier: MPL-2.0
+-->
+<!--
+⁌ 📰 Caudex ∷ parser.xslt
+
+© 2025 Lady [@ Ladys Computer].
+
+This Source Code Form is subject to the terms of the Mozilla Public License, v 2.0.
+If a copy of the M·P·L was not distributed with this file, You can obtain one at <https://mozilla.org/MPL/2.0/>.
+-->
+<!DOCTYPE transform [
+ <!ENTITY xhtml 'http://www.w3.org/1999/xhtml'>
+ <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>
+]>
+<transform
+ xmlns="http://www.w3.org/1999/XSL/Transform"
+ xmlns:awol="http://bblfish.net/work/atom-owl/2006-06-06/#"
+ xmlns:dcterms="http://purl.org/dc/terms/"
+ xmlns:exslstr="http://exslt.org/strings"
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
+ xmlns:html="&xhtml;"
+ xmlns:ore="http://www.openarchives.org/ore/terms/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:skos="http://www.w3.org/2004/02/skos/core#"
+ xmlns:书社="urn:fdc:ladys.computer:20231231:Shu1She4"
+ extension-element-prefixes="exslstr"
+ version="1.0"
+>
+ <书社:id>urn:fdc:ladys.computer:20240204:Caudex:parser.xslt</书社:id>
+ <template match="html:div[html:article/@data-lesml-profile='urn:fdc:ladys.computer:20240204:Caudex:pf:codex']">
+ <for-each select="html:article">
+ <variable name="title" select="html:footer[@class='head']//html:dt[normalize-space()='TITLE']/following-sibling::html:dd"/>
+ <element name="ore:Aggregation">
+ <apply-templates select="@lang|@xml:lang"/>
+ <attribute name="rdf:nodeID">
+ <text>codex</text>
+ </attribute>
+ <if test="$title">
+ <attribute name="dcterms:title">
+ <value-of select="$title"/>
+ </attribute>
+ </if>
+ </element>
+ </for-each>
+ </template>
+ <template match="html:div[html:article/@data-lesml-profile='urn:fdc:ladys.computer:20240204:Caudex:pf:category']">
+ <variable name="identifier" select="exslstr:tokenize($IDENTIFIER, '/')[last()-1]"/>
+ <for-each select="html:article">
+ <variable name="title" select="html:footer[@class='head']//html:dt[normalize-space()='TITLE']/following-sibling::html:dd"/>
+ <element name="awol:Category">
+ <apply-templates select="@lang|@xml:lang"/>
+ <attribute name="rdf:nodeID">
+ <value-of select="$identifier"/>
+ </attribute>
+ <attribute name="awol:term">
+ <choose>
+ <when test="$title">
+ <value-of select="$title"/>
+ </when>
+ <otherwise>
+ <value-of select="$identifier"/>
+ </otherwise>
+ </choose>
+ </attribute>
+ <if test="$title">
+ <attribute name="dcterms:title">
+ <value-of select="$title"/>
+ </attribute>
+ </if>
+ </element>
+ </for-each>
+ </template>
+ <template match="html:div[html:article/@data-lesml-profile='urn:fdc:ladys.computer:20240204:Caudex:pf:entry']">
+ <for-each select="html:article">
+ <variable name="title" select="html:footer[@class='head']//html:dt[normalize-space()='TITLE']/following-sibling::html:dd"/>
+ <variable name="idstring" select="string(exslstr:tokenize($IDENTIFIER, '/')[last()])"/>
+ <element name="ore:Proxy">
+ <if test="$title">
+ <attribute name="dcterms:title">
+ <value-of select="$title"/>
+ </attribute>
+ </if>
+ <element name="awol:category">
+ <attribute name="rdf:nodeID">
+ <value-of select="exslstr:tokenize($IDENTIFIER, '/')[last()-1]"/>
+ </attribute>
+ </element>
+ <element name="skos:notation">
+ <attribute name="rdf:datatype">
+ <text>&xsd;string</text>
+ </attribute>
+ <choose>
+ <when test="contains($idstring, ',')">
+ <value-of select="substring-before($idstring, ',')"/>
+ </when>
+ <otherwise>
+ <value-of select="$idstring"/>
+ </otherwise>
+ </choose>
+ </element>
+ <element name="ore:proxyIn">
+ <attribute name="rdf:nodeID">
+ <text>codex</text>
+ </attribute>
+ </element>
+ <element name="ore:proxyFor">
+ <element name="foaf:Document">
+ <apply-templates select="@lang|@xml:lang"/>
+ <element name="awol:content">
+ <attribute name="rdf:parseType">
+ <text>Resource</text>
+ </attribute>
+ <element name="awol:body">
+ <attribute name="rdf:parseType">
+ <text>Literal</text>
+ </attribute>
+ <apply-templates select="node()[not(self::html:footer[@class='head'])]"/>
+ </element>
+ <element name="awol:mediaType">
+ <attribute name="rdf:datatype">
+ <text>&xsd;string</text>
+ </attribute>
+ <text>application/xml+xhtml</text>
+ </element>
+ </element>
+ </element>
+ </element>
+ </element>
+ </for-each>
+ </template>
+</transform>