Commit 051b84e9 authored by Jerome Chauveau's avatar Jerome Chauveau
Browse files

ajouts des contenus HTML générés par les plugins via l'exécution des xq de...

ajouts des contenus HTML générés par les plugins via l'exécution des xq de chaque plugin (<plugin_name>/<plugin_name>.xq - no more ajax = Statifiable
parent 7e7facff
Loading
Loading
Loading
Loading

documentation/docs/alignment.md

deleted100644 → 0
+0 −1
Original line number Diff line number Diff line
# Alignement
+41 −14
Original line number Diff line number Diff line
@@ -17,20 +17,49 @@ $ ./tools/max.sh --list-plugins

````

Une fois activés, certains plugins requièrent un paramètrage dans les fichiers de configuration des éditions.
Une fois activé, un plugin doit être déclaré (et configuré si nécessaire) dans les fichiers de configuration des éditions l'utilisant.
Déclaration et configuration se font au sein d'un élément `<plugin/>` de la section `<plugins/>` du fichier de configuration d'une édition.

## Abréviations

## Ajouts

## Apparat critique
Gestion de l'affichage de l'apparat critique :

```xml
<plugin name="apparat_critique"/>
```

## Fil d’Ariane (Breadcrumb)

## Corrections
Affichage d'un fil d'Ariane lors de la consultation du texte. Le paramètre `topLabel` permet de configuré
le label de la racine du fil d'Ariane.

```xml
 <plugin name="breadcrumb">
   <parameters>
     <parameter key="topLabel" value="Démo. Max [TEI]"/>
   </parameters>
 </plugin>
```

## Corrections

Affichage/masquage des erreurs et de leurs corrections (balises `tei:sic` & `tei:corr`).

```xml
<plugin name="correction"/>
```

## Équations

Permet l'affichage HTML des équations mathématiques (encodage `tei:formula[@notation='TeX']`)

```xml
<plugin name="equations"/>
```

## Images (img_viewer)

Permet la consultation des images au sein d'une visionneuse ([Openseadragon](https://openseadragon.github.io/)). 
@@ -51,12 +80,10 @@ afin de remplacer le paramètre d'appel à `MAX.plugins['img_viewer'].openImageI

## Index

## Notes

## Pagination (Pager)

## Recherche (search)
Son paramètrage se fait par l'ajout d'une section **plugin** sous la section **plugins** du fichier de configuration d'une édition.

Voici un exemple de configuration du plugin de recherche :

+31 −21
Original line number Diff line number Diff line
@@ -124,15 +124,12 @@ declare
%output:encoding("UTF-8")
%rest:path("/{$project}/{$routeDoc=.*\.xml}/{$id}")
function max:fragmentToHTMLPage($project, $routeDoc, $id){

    let $dbPath := max.config:getProjectDBPath($project)
    return
(:        if (max.config:isWithPager($project)):)
(:        then:)
(:            let $redirect := max.plugin.pager:getBackToTxtURL($project, $routeDoc, $id):)
(:            return web:redirect($redirect):)
(:        else:)
            let $xml := <div id="wrap-{$id}">{max.api:getXMLByID($dbPath, $id)}</div>
        let $xml :=
            <div id="wrap-{$id}">
                {max.api:getXMLByID($dbPath, $id)}
            </div>
        let $xsltDoc := max.util:buildXSLTDoc(
                max.config:getDefaultTextXSL($project),
                max.config:getXSLTAddons($project, $routeDoc))
@@ -140,9 +137,22 @@ function max:fragmentToHTMLPage($project, $routeDoc, $id){
        return
            try {
                let $html := xslt:transform($xml, $xsltDoc, $xsltParams)
                    return max.html:render($project, $routeDoc, <div>{$html}</div>, $id)


                let $pluginsHTML :=
                    for $pluginName in max.config:getPluginNameList($project)
                        let $pluginXQ := file:parent(static-base-uri())||'/plugins-enabled/' || $pluginName || '/'|| $pluginName ||'.xq'
                        return if(file:exists($pluginXQ))
                        then
                            xquery:invoke($pluginXQ,
                                map
                                    {
                                    'baseURI' : max.config:getBaseURI(),
                                    'dbPath': $dbPath,
                                    'project' : $project,
                                    'doc' : $routeDoc,
                                    'id' :$id
                                    })
                        else ()
                return max.html:render($project, $routeDoc, <div>{$pluginsHTML}{$html}</div>, $id)
            }
            catch * {
                max:max-error("Erreur code " || $err:code, $err:description,$err:module, $err:line-number)
+20 −6
Original line number Diff line number Diff line
.witness_item, #witness_title{
  margin-left:20px;

.apparat-witnesses{
    position : fixed;
    top: 150px;
    right: 25px;
    border: 1px solid #ccc;
    box-shadow: 3px 3px 5px rgba(0,0,0,.25);
    padding:5px;
}

.apparat{
  cursor: pointer;
.apparat-witnesses h3{
    margin: 5px;
    font-size: 1.2em;
    text-align: center;
}
.apparat-witnesses ul {
    list-style-type: none;
    padding-left:0px;
    color: #555;
    font-size : 0.9em;

.witness_item input{
  margin-right: 5px;
}
.apparat-witnesses ul li input{
    vertical-align: middle;
}
 No newline at end of file
+4 −21
Original line number Diff line number Diff line
import {Plugin} from '../../core/ui/js/Plugin.js';
const PLUGIN_NAME='apparat';

class ApparatPlugin extends Plugin{
  constructor(name) {
    super(name);
    //this.lacunaryWitnesses = new Array();
  }

  run(){
      //si le fragment courant ne contient pas d'apparat
      if(!this.docWithApparat())
         return;
 
      //sinon
      console.log(MAX.getProjectID())
      var route = (window.location.href.split("/" + MAX.getProjectID() +"/")[1]).split(".xml")[0] + ".xml";
      var witnessQueryURL = 
          MAX.getPluginsBaseURL() + "/" + PLUGIN_NAME + "/"+route;
          $.get(witnessQueryURL, function(data){
            $('#options-list').append(data);
            $('#txt_options').show();
          });
          if(MAX.getFragmentID() !== ""){
          
            //récupération des témoins intégralement lacunaire sur le fragment courant
            $.get(MAX.getPluginsBaseURL() + "/" + PLUGIN_NAME + "/lacunarywit/" + route+"/"+MAX.getFragmentID(),
             function(data){
                
            })
          }
      this.showWitness("lem");
      this.witnessTooltiping();
  }
@@ -126,6 +108,7 @@ class ApparatPlugin extends Plugin{
  }

}

let apparat = new ApparatPlugin('Apparat')
window.apparat = apparat;
MAX.addPlugin(apparat);
 No newline at end of file
Loading