Commit c853c8cc authored by Aghiles's avatar Aghiles
Browse files

Merge branch 'master' of https://gitlab.utc.fr/crozatst/hdoc

parents 2ea5f2f6 16fe948d
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="default">
<property name="module" value="default"/>
<property name="in" location="${basedir}/input"/>
<property name="out" value="${basedir}/output"/>
<property name="resultFile" value="${basedir}/output"/>
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${basedir}/lib/ant-contrib.jar"/>
</classpath>
</taskdef>
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
<classpath>
<pathelement location="${basedir}/lib/ant-contrib.jar"/>
</classpath>
</taskdef>
<target name="default" depends="preparation">
<echo>----------------------------Begin of
conversion----------------------------------</echo>
<antcall target="conversion"/>
<echo>----------------------------End of conversion----------------------------------</echo>
</target>
<target depends="ifOSWindows, ifOSUnix" name="conversion"/>
<condition property="isOSUnix">
<os family="unix" />
</condition>
<condition property="isOSWindows">
<os family="windows" />
</condition>
<!-- if the OS is windows call the target run.script.windows -->
<target name="ifOSWindows" if="isOSWindows">
<echo>is Windows........</echo>
<echo>InputPath : ${inputPath}</echo>
<if>
<isset property="inputPath"/>
<then>
<antcall target="conversion.windows.input-path"/>
</then>
<else>
<antcall target="conversion.windows.no-input-path"/>
</else>
</if>
</target>
<!-- if the OS is not windows call the target run.script.unix-->
<target name="ifOSUnix" if="isOSUnix">
<echo>is Unix........</echo>
<echo>InputPath : ${inputPath}</echo>
<if>
<isset property="inputPath"/>
<then>
<antcall target="conversion.linux.input-path"/>
</then>
<else>
<antcall target="conversion.linux.no-input-path"/>
</else>
</if>
</target>
<target name="conversion.windows.input-path">
<basename property="filename" file="${inputPath}" suffix=".mm"/>
<echo>There is an input path in parameter : conversion of this file</echo>
<!-- Conversion from mm to hdoc -->
<exec dir="${basedir}/../mindmapping_to_hdoc" executable="cmd">
<arg value="${basedir}/../mindmapping_to_hdoc/run.bat"/>
<arg line="-DinputPath ./../mindmapping_to_canoprof/input/${filename}.mm"/>
</exec>
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${resultFile}/hdoc"/>
<!-- Conversion from hdoc to scar -->
<!-- Files have to be copied in hdoc_to_canoprof in order to be treated -->
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${basedir}/../hdoc_to_canoprof/input"/>
<exec dir="${basedir}/../hdoc_to_canoprof" executable="cmd">
<arg value="${basedir}/../hdoc_to_canoprof/run.bat"/>
</exec>
<copy todir="${resultFile}/scar/${filename}">
<fileset dir="${basedir}/../hdoc_to_canoprof/output/${filename}"/>
</copy>
</target>
<target name="conversion.windows.no-input-path">
<echo>There is no input path in parameter : conversion of all the files in ./input</echo>
<for param="inputFile">
<path>
<fileset dir="${in}" includes="**/*.mm"/>
</path>
<sequential>
<local name="filename"/>
<basename property="filename" file="@{inputFile}" suffix=".mm"/>
<!-- Conversion from mm to hdoc -->
<!-- Conversion script is call with the file in parameter (no copy of files in minmapping_to_hdoc) -->
<exec dir="${basedir}/../mindmapping_to_hdoc" executable="cmd">
<arg value="${basedir}/../mindmapping_to_hdoc/run.bat"/>
<arg line="-DinputPath ./../mindmapping_to_canoprof/input/${filename}.mm"/>
</exec>
<property name="filename" value="${filename}"/>
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${resultFile}/hdoc"/>
<!-- Conversion from hdoc to scar -->
<!-- Files have to be copied in hdoc_to_canoprof in order to be treated -->
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${basedir}/../hdoc_to_canoprof/input"/>
<exec dir="${basedir}/../hdoc_to_canoprof" executable="cmd">
<arg value="${basedir}/../hdoc_to_canoprof/run.bat"/>
</exec>
<copy todir="${resultFile}/scar/${filename}">
<fileset dir="${basedir}/../hdoc_to_canoprof/output/${filename}"/>
</copy>
</sequential>
</for>
</target>
<target name="conversion.linux.input-path">
<basename property="filename" file="${inputPath}" suffix=".mm"/>
<echo>There is an input path in parameter : conversion of the file ${inputPath}</echo>
<!-- Conversion from mm to hdoc -->
<exec dir="${basedir}/../mindmapping_to_hdoc" executable="/bin/sh">
<arg value="${basedir}/../mindmapping_to_hdoc/run.sh"/>
<arg line="-DinputPath ./../mindmapping_to_canoprof/input/${filename}.mm"/>
</exec>
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${resultFile}/hdoc"/>
<!-- Conversion from hdoc to scar -->
<!-- Files have to be copied in hdoc_to_canoprof in order to be treated -->
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${basedir}/../hdoc_to_canoprof/input"/>
<exec dir="${basedir}/../hdoc_to_canoprof" executable="/bin/sh">
<arg value="${basedir}/../hdoc_to_canoprof/run.sh"/>
</exec>
<copy todir="${resultFile}/scar/${filename}">
<fileset dir="${basedir}/../hdoc_to_canoprof/output/${filename}"/>
</copy>
</target>
<target name="conversion.linux.no-input-path">
<echo>There is no input path in parameter : conversion of all the files in ./input</echo>
<for param="inputFile">
<path>
<fileset dir="${in}" includes="**/*.mm"/>
</path>
<sequential>
<local name="filename"/>
<basename property="filename" file="@{inputFile}" suffix=".mm"/>
<!-- Conversion from mm to hdoc -->
<!-- Conversion script is call with the file in parameter (no copy of files in minmapping_to_hdoc) -->
<exec dir="${basedir}/../mindmapping_to_hdoc" executable="/bin/sh">
<arg value="${basedir}/../mindmapping_to_hdoc/run.sh"/>
<arg line="-DinputPath ./../mindmapping_to_canoprof/input/${filename}.mm"/>
</exec>
<property name="filename" value="${filename}"/>
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${resultFile}/hdoc"/>
<!-- Conversion from hdoc to scar -->
<!-- Files have to be copied in hdoc_to_canoprof in order to be treated -->
<copy file="${basedir}/../mindmapping_to_hdoc/output/${filename}.hdoc" todir="${basedir}/../hdoc_to_canoprof/input"/>
<exec dir="${basedir}/../hdoc_to_canoprof" executable="/bin/sh">
<arg value="${basedir}/../hdoc_to_canoprof/run.sh"/>
</exec>
<copy todir="${resultFile}/scar/${filename}">
<fileset dir="${basedir}/../hdoc_to_canoprof/output/${filename}"/>
</copy>
</sequential>
</for>
</target>
<target name="preparation">
<echo>Setting up the conversion</echo>
<delete dir="${basedir}/temp"/>
<mkdir dir="${basedir}/temp"/>
<delete dir="${basedir}/output"/>
<mkdir dir="${basedir}/output"/>
<delete dir="${resultFile}/hdoc"></delete>
<mkdir dir="${resultFile}/hdoc" />
<delete dir="${resultFile}/scar"></delete>
<mkdir dir="${resultFile}/scar" />
<echo>--- End ----</echo>
</target>
</project>
i'm here to keep the output file
@echo off
set lib=lib
set ant=mindmapping_to_canoprof.ant
set antparam=-Dprogram.param=%1
set scJarList=%lib%\*
java.exe -classpath "%scJarList%" -Xmx150m org.apache.tools.ant.Main -buildfile %ant% %antparam%
pause
REM start /MIN java.exe -classpath "%scJarList%" -Xmx150m org.apache.tools.ant.Main -buildfile %ant% %antparam%
\ No newline at end of file
#!/bin/sh
lib="lib"
ant="mindmapping_to_canoprof.ant"
antparam="-Dprogram.param=$1"
inputPath="$2"
#Recherche de java et controle que se soit une version SUN
vJavaCmd="java"
xCheckJava () {
vInputVarName=\$"$1"
vInputVarVal=`eval "expr \"$vInputVarName\" "`
if [ -z "$vInputVarVal" ];then
eval "$1=false"
return
fi
vSunJavaFound=`$vInputVarVal -version 2>&1 | grep -Eo -m 1 "(HotSpot)|(OpenJDK)"`
if [ "$vSunJavaFound" != "HotSpot" ] && [ "$vSunJavaFound" != "OpenJDK" ] ; then
eval "$1=false"
return
fi
}
xCheckJava vJavaCmd
if [ "$vJavaCmd" = "false" ]; then
vJavaCmd="$JAVA_HOME/bin/java"
xCheckJava vJavaCmd
if [ "$vJavaCmd" = "false" ]; then
echo "ERREUR: JRE de SUN introuvable. Veuillez déclarer la variable d'environnement JAVA_HOME."
exit 1
fi
fi
#Lancer la commande
scJarList="$lib/*"
if [ -z "$inputPath" ] ; then
echo "Appel sans paramètre"
$vJavaCmd -classpath "$scJarList:" -Xmx150m org.apache.tools.ant.Main -buildfile $ant $antparam
else
echo "Appel avec paramètre"
$vJavaCmd -classpath "$scJarList:" -Xmx150m org.apache.tools.ant.Main -buildfile $ant $antparam -DinputPath $inputPath
fi
\ No newline at end of file
<map version="1.0.1">
<node ID="ID_1" TEXT="Framindmap To Canoprof">
<node ID="ID_5" POSITION="right" STYLE="fork" TEXT="#2 S&#233;ance 2">
<node ID="ID_6" POSITION="right" STYLE="fork" TEXT="#def D&#233;finition titre">
<node ID="ID_13" POSITION="right" STYLE="fork" TEXT="#p Definition contenu"/>
</node>
<node ID="ID_20" POSITION="right" STYLE="fork" TEXT="#ex Exemple titre">
<node ID="ID_27" POSITION="right" STYLE="fork" TEXT="#p Exemple contenu : En recherche du moyen de mettre tout les types de contenus similaires &#224; d&#233;finition dans le m&#234;me template"/>
</node>
</node>
<node ID="ID_4" POSITION="left" STYLE="fork" TEXT="#1 S&#233;ance 1">
<node ID="ID_29" POSITION="left" STYLE="fork" TEXT="#p Ici probl&#232;me, l'activit&#233; cr&#233;&#233;e devrait &#234;tre de type description courte"/>
</node>
</node>
</map>
\ No newline at end of file
......@@ -27,6 +27,10 @@ The project aims at converting Freemind files in Opale files. If you use another
-------------------------------
In dependence with mindmapping_to_hdoc and hdoc_to_opale
##Installation
-------------------------------
* To get the tool, go to the page https://gitlab.utc.fr/crozatst/hdoc/tree/master4 and click the download icon on the right of the screen : you can get a .zip version of the project. For the git users, the clone link is available on the same site.
## User documentation
-------------------------------
......@@ -38,16 +42,13 @@ In dependence with mindmapping_to_hdoc and hdoc_to_opale
* On Windows : 'run.bat'
If you want to convert one specific file that is in the input folder, use the parameters ' -DinputPath input/<yourFilename>' (ex : 'sh run.sh -DinputPath input/<yourFilename>')
If the input folder happens to be missing, you should create your own input folder in the root of the mindmapping_to_opale folder, and add your own samples inside.
*You will find the result of the conversion in the folder mindmapping_to_opale/output*
*You can find a sample file il the folder /samples.*
### Rules to follow
You can use the native formating in order to complete your Module :
* By using the "Text Bold" option, you will get an emphasis.
* By using the "Text Italic" option, you will get a quote.
You can use special rules in Freemind to personnalize your Scenari Module :
* By default, a "Division" is created with the name of the main node of your MindMap
......@@ -67,6 +68,7 @@ You can use special rules in Freemind to personnalize your Scenari Module :
* **#question** : a MCQ
* **#singlechoicequestion** : a QCU
* **#choice-qcu** : an answer within a QCU
* **#list** : a list inside a paragraph, first node being the title and children being the content.
* **#solution** : a solution associated to a single choice within a QCU (matches an integer)
* **#choice-correct** : a correct answer within a MCQ
* **#choice-incorrect** : an incorrect answer within a MCQ
......@@ -82,9 +84,12 @@ You can use special rules in Freemind to personnalize your Scenari Module :
## Known bugs
* Currently, the xsl is lacking : there is no support for childs of nodes who are not named "nodes" themselves. The bug has been investigated and is therefore non trivial, and should be solved in order to handle functionnalities outside of the special rules formatting.
## TODO
* Develop new hashtags to create other type of Opale contents (such as QCM, self-evaluation etc.)
* Develop new hashtags to create other type of Opale contents (such as new exercises types, self-evaluation etc.)
* Explore native freemind functionalities to allow a more user friendly formatting : using the bold and italic formatting was tried but failed due to a xsl malfunction.
## Technicals notes
......@@ -110,4 +115,8 @@ During the conversion process, the converter is using the converter mindmapping_
* Copy the results of the conversion in the folder /output/scar
* Finally, clean temporary files
## Capitalization
\ No newline at end of file
## Capitalization
* Concerning the xsl malfunction, we know that the issue comes from a mispriority between nodes without childs and nodes with childs who aren't named "nodes". There is a confusion between the two because previous implementation didn't take the seconds into account. We didnt manage to find a way to force the xsl to recognize those nodes, but this is where you should look if you happen to need to fix the issue. A simple but time consuming fix would be to rewrite the xsl with the functionnality in mind, but we didn't took that option as we lacked time. The problematic functions are at the root of the xsl transformation, and therefore a simple fix hasn't been found yet.
* There's post on the Scenari forum to explain what has been achieved so far with the mindmapping_to_opale project. Here is the link to the post : https://forums.scenari.org/t/transformation-dune-framindmap-en-module-opale/1079
<?xml version="1.0" encoding="UTF-8" standalone="no"?><map version="0.8.1"><node CREATED="1450696201432" ID="2nngtspni6hi1484pfec44c8lk" MODIFIED="1450696201432" TEXT="MindMapping"><node CREATED="1450696201432" ID="00lp6bpfm6jibhcjrpdonrhoqb" MODIFIED="1450696201432" POSITION="right" TEXT="#1 MindMapping to Hdoc"><node CREATED="1450696201432" ID="3qm1jgu7dfgs328jthlek5fd4e" MODIFIED="1450696201432" TEXT="Prendre en main le projet existant"/><node CREATED="1450696201432" ID="0u38ectmhqqp4p08p5guvgij71" MODIFIED="1450696201432" TEXT="#wrng Corriger les bugs existants"><node CREATED="1450696201432" ID="6cl96umgglk7bg98n0u6v3tena" MODIFIED="1450696201432" TEXT="#p Il subsiste des bugs dans la transformation."/></node><node CREATED="1450696201432" ID="3b1t9o2te6enh59j4iv48f4mdi" MODIFIED="1450696201432" TEXT="Restructurer le ant"/></node><node CREATED="1450696201432" ID="6lohsep5crh5g3ngj8ld8loei6" MODIFIED="1450696201432" POSITION="right" TEXT="#2 MindMapping to Opale"><node CREATED="1450696201432" ID="5pl3210hq6if3nv7r2chtjstmo" MODIFIED="1450696201432" TEXT="Faire la connexion avec le transformateur Hdoc to Opale"/><node CREATED="1450696201432" ID="3haa2fgohe9j4n04ilddco84uh" MODIFIED="1450696201432" TEXT="Permettre la personnalisation de l'organisation du module"><node CREATED="1450696201432" ID="4ie264076qt3tnlu0pqpp1dh1p" MODIFIED="1450696201432" TEXT="#ex A l'aide de hashtag"><node CREATED="1450696201432" ID="6qegjh2snbh0s21cn7sdukun6v" MODIFIED="1450696201432" TEXT="#p L'idée est d'utiliser les hashtag pour identifier le type de contenu"/></node><node CREATED="1450696201432" ID="23mafrh60fmdmkjsp1jdg6c58g" MODIFIED="1450696201432" TEXT="#ex A l'aide d'attributs"><node CREATED="1450696201432" ID="3cofh24e4l95fo0pgcqiefc3gv" MODIFIED="1450696201432" TEXT="#p L'idée est d'utiliser les attributs pour identifier le type de contenu"/></node></node><node CREATED="1450696201432" ID="11k2hbkcu415e1mgk5c5ucr48k" MODIFIED="1450696201432" TEXT="Permettre la personnalisation dy type de noeud (Intro, conclusion etc.)"><node CREATED="1450696201432" ID="5pf0idbv9nln725d14rs1c1p0a" MODIFIED="1450696201432" TEXT="#ex A l'aide d'attributs"><node CREATED="1450696201432" ID="6pa7h6p941mljiimpb18tv628g" MODIFIED="1450696201432" TEXT="#p L'idée est d'utiliser les hashtag pour identifier le type de contenu"/></node><node CREATED="1450696201432" ID="48799q1i5c6rns3smpa8vnekfb" MODIFIED="1450696201432" TEXT="#ex A l'aide de hashtag"><node CREATED="1450696201432" ID="1j3m1erstm0171a1i29hg3dgj6" MODIFIED="1450696201432" TEXT="#p L'idée est d'utiliser les attributs pour identifier le type de contenu"/></node></node><node CREATED="1450696201432" ID="4npf8jpvak3lffn9c1rsogi0sq" MODIFIED="1450696201432" TEXT="Permettre la personnalisation grâce aux couleurs/icônes"/></node><node CREATED="1450696201432" ID="3n8v43p8qb005puq3qiv7aiubc" MODIFIED="1450696201432" POSITION="right" TEXT="#3 MindMapping to Optim"><node CREATED="1450696201432" ID="2bn1la3apnjf1fi8qqfqde226t" MODIFIED="1450696201432" TEXT="#def Faire la connexion avec le transformateur Hdoc to Optim"><node CREATED="1450696201432" ID="2juvq1lehuivco8c1h0scqh1lr" MODIFIED="1450696201432" TEXT="#p Le connecteur hdoc_to_optim n'est pas encore opérationnel"/></node></node><node CREATED="1450696201432" ID="3s00si3hquol4pldg7lo9opjd6" MODIFIED="1450696201432" POSITION="right" TEXT="#4 MindMapping to Lexique"><node CREATED="1450696201432" ID="37jlfl25iuaoe6f2cpiv30qksd" MODIFIED="1450696201432" TEXT="#p Faire la connexion avec le transformateur Hdoc to Lexique"/></node><node CREATED="1450696201432" ID="27gnl6pgottjfiukpa3ulfdjrj" MODIFIED="1450696201432" POSITION="left" TEXT="#5 Prendre d'autres outils de carte mentales en entrée"><node CREATED="1450696201432" ID="6ci8ukhfg8fd96vsvgn9sb30cr" MODIFIED="1450696201432" TEXT="#a http://hdoc.crzt.fr/www/co/hdocConverter.html"/></node><node CREATED="1450696201432" ID="24d41nnnnvvu7fv5m8m4vegu0g" MODIFIED="1450696201432" POSITION="left" TEXT="#intro This converter aims at convert a given MindMapping file into a Hdoc file which then will be imported in Opale (advanced only)."/><node CREATED="1450696201432" ID="6a7pr2b5vvmq6na5964dhf9e13" MODIFIED="1450696201432" POSITION="left" TEXT="#conclu DONE : MindMapping to Hdoc, MindMapping to Opale TODO : MindMapping to Optim, MindMapping to Lexique"/></node></map>
\ No newline at end of file
!input/.gitkeep
!output/.gitkeep
\ No newline at end of file
......@@ -29,4 +29,31 @@ In order to work properly, this module needs
User Stories
----------
Please consult the section "User Stories" of README.md file in [`hdoc_to_basex`] (https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/README.md)
\ No newline at end of file
Please consult the section "User Stories" of README.md file in [`hdoc_to_basex`] (https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/README.md)
Step by step :
[`Step 1 : File transformation`]
- Put the files .scar you want to deal with in the folder [`input`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/opale_to_basex/input)
- Run the transformation progam (Win : double click run.bat, Linux : execute run.sh)
- This transformation includes :
* Title, authors, keywords
* First Level section : title, type
[`Step 2 : Create data base in basex`]
- Download and install [`BaseX`](http://basex.org/products/download/all-downloads/)
- Run BasexGui
- In the Text Editor of BaseX, open the command script "createbd.bxs" in folder [`command`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/opale_to_basex/basex/command).
Follow the instructions in the script, and then execute it.
[`Step 3 : Make XQuery request`]
- In the Text Editor of BaseX, you can open and execute xquery script "main.xq" in folder [`xquery`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/opale_to_basex/basex/xquery).
It's in this main module that we call predefined functions and execute script
- .xqm files are library modules where we have defined functions, we can go to these files for more detailed using instructions
Available library modules :
* searchDocByAuthor.xqm
* searchDocByTitle.xqm
* searchSectionByTitle.xqm
P.S. the symbols "(: :)" are used for adding comments in xQuery files
\ No newline at end of file
# This script will a database that includes all the xml files in the folder /opale_to_basex/output automatically
# Before executing this script, please make sure that you have successfully finished the transformation in the step 1 in the part "user story" of the README.md
# Syntax : CREATE DB [name] ([input])
#CREATE DB myDB [..the repertory of the projet in your local disk..]/hdoc/opale_to_basex/output
# Example :
CREATE DB myDB D:/School/UTC/GI04/NF29/Projet/hdoc/opale_to_basex/output
# P.S. If you get error message : Resource "..." not found, please confirm your file repertory is correct
\ No newline at end of file
(: this script with .xq as suffix is the main module :)
(: all functions defined in .xqm files (library modules) can be called here :)
import module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex" at "searchSectionByTitle.xqm", "searchDocByTitle.xqm", "searchDocByAuthor.xqm";
(: myNs:searchDocByTitle('^NF29_HdocEtherpad$', //document ) :)
(: myNs:searchSectionByTitle('contenu', //document) :)
myNs:searchDocByAuthor('Antoine', //document)/title
\ No newline at end of file
(: This script will return documents by searching its author :)
(: We can assign a Regular Expression to the variable $author :)
(: For example, $name := '^Baptiste Montangé$', to search for an exact name:)
(: For example, $name := 'Montangé', to search for documents whose author named Coutant:)
(: Remark : case and accents in author's name have been taken care of :)
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByAuthor($name as xs:string, $docs as node()*) as node()*
{
let $name_noAcc := translate($name, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
return
for $author in $doc/authors/author
let $title := $doc/title
let $author_noAcc := translate($author, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
where matches($author_noAcc, $name_noAcc)
group by $title (: Avoid duplications of documents by their titre:)
return $doc
};
\ No newline at end of file
(: This script will return documents by searching one keyword in their title :)
(: We can assign a Regular Expression to the variable $name :)
(: For example, $name := '^NF29_HdocEtherpad$', to search for an exact name:)
(: For example, $name := 'NF29', to search for documents whose name contains 'NF29':)
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByTitle($name as xs:string, $docs as node()*) as node()*
{
for $doc in $docs
where matches($doc/title, $name, "i")
return $doc
};
\ No newline at end of file
(: This script will return a section by searching keyword in its title :)
(: We can assign a Regular Expression to the variable $keyword :)
(: For example, $keyword := '^Objectifs$', to search for sections whose titles are exactly "Objectifs":)
(: For example, $keyword := 'Syntax', to search for sections whose titles containing "Syntax" :)
(: Remark : case and accents in the keyword have been taken care of :)
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchSectionByTitle($keyword as xs:string, $docs as node()*) as node()*
{
let $keyword_noAcc := translate($keyword, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
return
for $section in $doc/sections/section
let $title_noAcc := translate($section/titlesection, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
where matches($title_noAcc, $keyword_noAcc)
return $section
};
\ No newline at end of file
libdir=${basedir}/lib
rngdir=${basedir}/rng
xsldir=${basedir}/xsl
srcdir=${basedir}/in
outdir=${basedir}/out
InputPath=${basedir}/input
OutputPath=${basedir}/output
inputPath=${basedir}/input
outputPath=${basedir}/output
inputOpaleToHdoc=../opale_to_hdoc/input
outputOpaleToHdoc=../opale_to_hdoc/output
inputHdocToBasex=../hdoc_to_basex/input
outputHdocToBasex=../hdoc_to_basex/output
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment