Skip to content

Commit

Permalink
Merge pull request #36 from karl-kraus/bk/refactor/vis
Browse files Browse the repository at this point in the history
refactor: remove cases-index.json dependency
  • Loading branch information
babslgam committed Jun 24, 2024
2 parents f187497 + e8167ab commit 3f70052
Showing 1 changed file with 25 additions and 14 deletions.
39 changes: 25 additions & 14 deletions xslt/vocabs.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,28 @@
<xsl:import href="partials/html_footer.xsl"/>
<xsl:import href="partials/osd-container.xsl"/>
<xsl:import href="partials/tei-facsimile.xsl"/>
<xsl:variable name="cases" select="json-doc('../data/meta/cases-index.json')?cases"/>
<xsl:variable name="cases" as="array(*)">
<xsl:variable name="case-objects" as="map(*)*">
<xsl:for-each
select="collection('../data/cases_tei?select=*.xml')//tei:TEI[descendant::tei:origDate[@notBefore-iso]]">
<xsl:sort select="number(translate(@xml:id, 'C_.xml', ''))"/>
<xsl:variable name="id" select="replace(@xml:id, '.xml', '')" as="xs:string"/>
<xsl:variable name="keywords"
select="array {current()//tei:keywords//tei:term/data()}"/>
<xsl:variable name="year"
select="year-from-date(xs:date(current()//tei:teiHeader//tei:origDate/@notBefore-iso))"
as="xs:integer"/>
<xsl:copy-of select="
map {
'name': current()//tei:title/data(),
'keywords': $keywords,
'id': $id,
'year': $year
}"/>
</xsl:for-each>
</xsl:variable>
<xsl:copy-of select="array {$case-objects}"/>
</xsl:variable>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;</xsl:text>
<html lang="de">
Expand All @@ -40,7 +61,6 @@
</li>
</ol>
</nav>

<div class="container">
<div class="col-12">
<xsl:apply-templates
Expand All @@ -59,8 +79,6 @@
<xsl:variable name="label" select="." as="xs:string"/>
<xsl:map>
<xsl:map-entry key="'name'" select="$label"/>
<!--<xsl:map-entry key="'data'" select="array{filter($cases?*, function ($case) {
$label = $case?keywords})}"/>-->
<xsl:map-entry key="'data'" select="$cases?*[$label = .?keywords]"/>
</xsl:map>
</xsl:template>
Expand All @@ -84,10 +102,7 @@

<xsl:for-each select="current()?data">
<xsl:sequence>
<xsl:if test="matches(substring(current()?start_date, 1, 4), '\d{4}')">
<xsl:value-of select="number(substring(current()?start_date, 1, 4))"
/>
</xsl:if>
<xsl:value-of select="current()?year"/>
</xsl:sequence>
</xsl:for-each>
</xsl:for-each>
Expand All @@ -104,9 +119,7 @@
<xsl:map-entry key="'name'" select="current()?name"/>
<xsl:variable name="counts" as="xs:integer*">
<xsl:for-each select="$years?*">
<xsl:value-of
select="count($cases[current() = number(substring(.?start_date, 1, 4))])"
/>
<xsl:value-of select="count($cases[current() = .?year])"/>
</xsl:for-each>
</xsl:variable>
<xsl:map-entry key="'data'" select="array {$counts}"/>
Expand All @@ -117,9 +130,7 @@
</xsl:variable>
<xsl:variable name="tmp" as="xs:integer*">
<xsl:for-each select="$years?*">
<xsl:value-of
select="number(count($cases?*[current() = number(substring(.?start_date, 1, 4))]))"
/>
<xsl:value-of select="number(count($cases?*[current() = .?year]))"/>
</xsl:for-each>
</xsl:variable>
<xsl:variable name="totals" select="array {$tmp}" as="array(xs:integer*)"/>
Expand Down

0 comments on commit 3f70052

Please sign in to comment.