Commit ba58d54b authored by Marie Bisson's avatar Marie Bisson
Browse files

Update readme.md avec maj de la xq et de la xsl pour exemple avec retour au...

Update readme.md avec maj de la xq et de la xsl pour exemple avec retour au texte+ regroupement par role + classement alphadétique
parent 4065cbbe
Loading
Loading
Loading
Loading
+74 −12
Changes for plugins/index/readme.md: 74 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -14,16 +14,23 @@ Ce plugin propose une route de base pour les types de documents en EAD (voir `in
Exemple de configuration du fichier xquery pour la génération d'un index des personnes (fichier à placer dans `PROJET/xq/index_personnes.xq`) :

```
<index type="personnes">{for $idx in collection("bvmsm")//*:persname
<index type="personnes">
	{for $idx in collection("bvmsm")//*:persname
  	let $cId := $idx/ancestor::*:c[1]/@id
		let $baseuri := base-uri($idx)
    let $cOtherlevel := $idx/ancestor::*:c[1]/@otherlevel
    let $role := $idx/@role
		let $initiale := substring($idx/@normal,1,1) 
    let $cUnitid := $idx/ancestor::*:c[1]/descendant::*:unitid[1]/text()
                let $result := <marker id="{$cId}" otherlevel="{$cOtherlevel}" role="{$role}">
    let $result := 
			<marker id="{$cId}" otherlevel="{$cOtherlevel}" role="{$role}">
   			<entry>{$cUnitid}</entry>
				<value>{data($idx/@normal)}</value>
				<baseuri>{$baseuri}</baseuri>
				<initiale>{$initiale}</initiale>
			</marker>
	              return $result}
		return $result
	}
</index>

```
@@ -38,21 +45,76 @@ Exemple de traitement XSL associé (fichier à placer dans `PROJET/ui/xsl/index_
  xmlns:xinclude="http://www.w3.org/2001/XInclude"
  xmlns:xhtml="http://www.w3.org/TR/xhtml/strict"
  xmlns:tei="http://www.tei-c.org/ns/1.0"
  xmlns:ead="urn:isbn:1-931666-22-9"
  xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
  exclude-result-prefixes="tei xsl xsi xs xlink xinclude xhtml tei hfp">
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="ead tei xsl xsi xs xlink xinclude xhtml tei hfp">

  <xsl:output method="xml" encoding="utf-8"/>
  <xsl:output method="xhtml" encoding="utf-8" indent="no"/>
  <xsl:preserve-space elements="*:*"/>
  <xsl:template match="*:index[@type='personnes']">

  <xsl:template match="/*:index[@type='personnes']">
    <div class="{./@type}">
      <h1>Index des personnes</h1>
      <xsl:for-each-group select="./descendant::*:marker" group-by="./*:value">
        <h2>
          <xsl:value-of select="current-grouping-key()"/>
      <xsl:for-each-group select="./descendant::*:marker" group-by="@role">
        <xsl:sort select="@role" order="ascending"/>
        <div class="subindex" id="{current-grouping-key()}">
          <h2 class="collapsible">
            <xsl:choose>
              <xsl:when test="@role='auteur'"><xsl:text>Auteurs</xsl:text></xsl:when>
              <xsl:when test="@role='annotateur'"><xsl:text>Annotateurs</xsl:text></xsl:when>
              <xsl:when test="@role='commanditaire'"><xsl:text>Commanditaires</xsl:text></xsl:when>
              <xsl:when test="@role='commentateur'"><xsl:text>Commentateurs</xsl:text></xsl:when>
              <xsl:when test="@role='conservateur'"><xsl:text>Conservateurs</xsl:text></xsl:when>
              <xsl:when test="@role='dedicataire'"><xsl:text>Dédicataires</xsl:text></xsl:when>
              <xsl:when test="@role='donateur'"><xsl:text>Donateurs</xsl:text></xsl:when>
              <xsl:when test="@role='editeur_sci'"><xsl:text>Éditeurs scientifiques</xsl:text></xsl:when>
              <xsl:when test="@role='graveur'"><xsl:text>Graveurs</xsl:text></xsl:when>
              <xsl:when test="@role='illustrateur'"><xsl:text>Illustrateurs</xsl:text></xsl:when>
              <xsl:when test="@role='imprimeur-libraire'"><xsl:text>Imprimeurs-libraires</xsl:text></xsl:when>
              <xsl:when test="@role='possesseur'"><xsl:text>Possesseurs</xsl:text></xsl:when>
              <xsl:when test="@role='scribe'"><xsl:text>Scribes</xsl:text></xsl:when>
              <xsl:when test="@role='traducteur'"><xsl:text>Traducteurs</xsl:text></xsl:when>
              <xsl:otherwise><xsl:value-of select="current-grouping-key()"/></xsl:otherwise>
            </xsl:choose>
            
          </h2>
        <div class="entries">
          <xsl:value-of select="current-group()/*:entry" separator="&#160;; "/>
          <div class="developper">
         
            <xsl:for-each-group select="current-group()" group-by="./*:initiale">
              <xsl:sort select="./*:initiale" order="ascending"/>
              <fieldset id="{@role}{./*:initiale}">
                <legend class="collapsible">
                  <xsl:value-of select="./*:initiale"/>
                </legend>
                <div class="developper">
                <xsl:for-each-group select="current-group()" group-by="./*:value">
                  <xsl:sort select="./*:value" order="ascending"/>
                  <p class="entries">
                    <xsl:text>–&#160;</xsl:text>
                    <span class="persname">
                      <xsl:value-of select="*:value"/>
                    </span>
                    <xsl:text>&#160;:&#160;</xsl:text>
                    <xsl:for-each select="current-group()">
                      <a target="_blank">
                        <xsl:attribute name="href">
                          <xsl:value-of select="./*:baseuri[1]"/>
                          <xsl:text>/</xsl:text>
                          <xsl:value-of select="./@id"/>
                          <xsl:text>.html</xsl:text>
                        </xsl:attribute>
                        <xsl:value-of select="./*:entry"/>
                      </a>
                      <xsl:if test="not(position()=last())">
                        <xsl:text>&#160;; </xsl:text>
                      </xsl:if>
                    </xsl:for-each>
                  </p>
                </xsl:for-each-group>
                </div>
              </fieldset>
            </xsl:for-each-group>
          </div>
        </div>
      </xsl:for-each-group>
    </div>