Commit ed2dd35b authored by Pierre-Yves Buard's avatar Pierre-Yves Buard
Browse files

Ajout d'un readme

parent 3c951c56
Loading
Loading
Loading
Loading
+82 −0
Changes for plugins/index/readme.md: 82 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Plugin d'indexation #

Ce plugin propose une route unique pour tous les index.

Les index sont trop spécifiques pour permettre la mise en place d'un traitement par défaut satisfaisant.

La route associée est `projet/index`. Un fichier html est généré lors du premier accès à cette page. Pour générer à nouveau la page d'index il suffit de supprimer le fichier `PROJET/fragments/index.frag.html`.

Ce plugin permet donc la surcharge en utilisant `PROJET/xq/index.xq` et `PROJET/ui/xsl/indexing.xsl`.

Exemple de surcharge d'`ui/index.xq` :

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

<index type="Titles">{
  for $idx in collection("bvmsm")//*:title[@type='incipit_repere' or @type='explicit_repere']
  let $cId := $idx/ancestor::*:c[1]/@id
  let $cOtherlevel := $idx/ancestor::*:c[1]/@otherlevel
  let $cUnitid := $idx/ancestor::*:c[1]/descendant::*:unitid[1]/text()
  let $result := <marker id="{$cId}" otherlevel="{$cOtherlevel}"><entry>{$cUnitid}</entry><value>{data($idx/@normal)}</value></marker>
  return $result
}
</index>
</custIndex>

```

Exemple de surcharge de `ui/xsl/indexing.xsl` :

```
<xsl:stylesheet	version="2.0" 
  xmlns="urn:isbn:1-931666-22-9"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  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:ns="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 ns hfp">
  
  <xsl:output method="xml" encoding="utf-8"/>

  <xsl:template match="/">
    <div class="idx">
      <xsl:apply-templates select="*:div[@class='idx']"/>
    </div>
  </xsl:template>
  
  <xsl:template match="*:div[@class='idx']">
    <xsl:copy-of select="*:div"/>
    <xsl:apply-templates select="./*:index"/>
  </xsl:template>

  <xsl:template match="*:index[@type='Titles']">
    <div class="{./@type}">
      <h1>
        <xsl:value-of select="@type"/>
      </h1>
      <xsl:for-each-group select="./descendant::*:marker" group-by="./*:value">
        <h2>
          <xsl:value-of select="current-grouping-key()"/>
        </h2>
        <div class="entries">
          <xsl:value-of select="current-group()/*:entry" separator="&#160;; "/>
        </div>
      </xsl:for-each-group>
    </div>
  </xsl:template>

</xsl:stylesheet>
```