make doc for contribs
Pierre Marechal [Thu, 20 Mar 2008 14:51:48 +0000 (14:51 +0000)]
scilab/modules/helptools/help.dtd [new file with mode: 0644]
scilab/modules/helptools/help/en_US/xmltojar.xml [new file with mode: 0644]
scilab/modules/helptools/helptools.iss
scilab/modules/helptools/macros/clean_help.sci
scilab/modules/helptools/macros/xmltoformat.sci

diff --git a/scilab/modules/helptools/help.dtd b/scilab/modules/helptools/help.dtd
new file mode 100644 (file)
index 0000000..67dd02b
--- /dev/null
@@ -0,0 +1,98 @@
+<!ELEMENT MAN (META?,LANGUAGE,TITLE,TYPE,DATE,NAME?,KEYWORD?,SHORT_DESCRIPTION*,
+               CALLING_SEQUENCE?,PARAM?,DESCRIPTION?,SECTION*,EXAMPLE?,SEE_ALSO?,
+               (AUTHOR|AUTHORS)?,BIBLIO?,USED_FUNCTIONS?)>
+
+<!ELEMENT META (#PCDATA)        >
+
+<!ATTLIST META 
+PATH   CDATA   "SCI/" 
+CATEGORY       CDATA   "ScilabFunction"         
+VERSION_SCI    CDATA   "2.7"    
+VERSION_DOC    CDATA   "1.1"    
+AUTHOR         CDATA   "Matthieu PHILIPPE revisited by Jean-Philippe Chancelier"        
+ >
+
+<!ELEMENT LANGUAGE (#PCDATA)    >
+
+<!ELEMENT TITLE (#PCDATA)       >
+
+<!ELEMENT TYPE (#PCDATA)        >
+
+<!ELEMENT DATE (#PCDATA)        >
+
+<!ELEMENT NAME (#PCDATA)        >
+
+<!ELEMENT KEYWORD (#PCDATA)     >
+
+<!ELEMENT SHORT_DESCRIPTION (#PCDATA|P|SP|PP|VERB)*     >
+<!ATTLIST SHORT_DESCRIPTION name CDATA #REQUIRED >
+
+<!ELEMENT CALLING_SEQUENCE (CALLING_SEQUENCE_ITEM)* >
+<!ELEMENT CALLING_SEQUENCE_ITEM (#PCDATA)  >
+
+<!ELEMENT PARAM (PARAM_INDENT)*         >
+<!ATTLIST PARAM target (out|in) #IMPLIED        >
+<!ELEMENT PARAM_INDENT (PARAM_ITEM)+    >
+<!ELEMENT PARAM_ITEM (PARAM_NAME,PARAM_DESCRIPTION)     >
+<!ELEMENT PARAM_NAME (#PCDATA|VERB)* >
+<!ELEMENT PARAM_DESCRIPTION (P|SP|PP|TABLE|PARAM_INDENT|VERBATIM)* >
+
+<!ELEMENT DESCRIPTION (P|SP|PP|TABLE|DESCRIPTION_INDENT|ITEMIZE|VERBATIM)* >
+<!ELEMENT DESCRIPTION_INDENT (DESCRIPTION_ITEM)+ >
+<!ELEMENT DESCRIPTION_ITEM (P|SP|PP|TABLE|DESCRIPTION_INDENT|ITEMIZE|VERBATIM)* >
+<!ATTLIST DESCRIPTION_ITEM label CDATA #IMPLIED  >
+
+<!ELEMENT SECTION (TABLE|ITEMIZE|P|SP|PP|VERBATIM)*     >
+<!ATTLIST SECTION label CDATA #IMPLIED          >
+
+<!ELEMENT EXAMPLE (#PCDATA) >
+<!ATTLIST EXAMPLE xml:space (default|preserve) #FIXED 'preserve'>
+
+<!ELEMENT SEE_ALSO (SEE_ALSO_ITEM)+     >
+<!ELEMENT SEE_ALSO_ITEM (LINK)*         >
+
+<!ELEMENT AUTHORS (AUTHORS_ITEM)+>
+<!ELEMENT AUTHORS_ITEM (#PCDATA|P|SP|PP|ITEMIZE|VERB|EM|BD|TT|VERBATIM|A|LINK)*         >
+<!ATTLIST AUTHORS_ITEM label CDATA #IMPLIED     >
+
+<!ELEMENT AUTHOR (#PCDATA) >
+
+<!ELEMENT BIBLIO (P|SP|PP)* >
+
+<!ELEMENT USED_FUNCTIONS (P|SP|PP|TABLE|VERBATIM)*  >
+
+<!ELEMENT A (#PCDATA|VERB)* >
+<!ATTLIST A href CDATA #REQUIRED >
+
+<!ELEMENT IMG (#PCDATA|VERB)* >
+<!ATTLIST IMG src CDATA #IMPLIED >
+
+<!ELEMENT LINK (#PCDATA)*      >
+
+<!ELEMENT P (#PCDATA|VERB|EM|BD|TT|A|LINK|IMG)*  >
+<!ELEMENT SP (#PCDATA|VERB|EM|BD|TT|A|LINK|IMG)*  >
+<!ELEMENT PP (#PCDATA|VERB|EM|BD|TT|A|LINK|IMG)*  >
+
+<!ELEMENT VERBATIM (#PCDATA)  >
+
+<!ELEMENT ITEMIZE (ITEM)* >
+<!ATTLIST ITEMIZE label CDATA #IMPLIED  >
+<!ELEMENT ITEM (TABLE|ITEMIZE|P|SP|PP|VERBATIM)* >
+<!ATTLIST ITEM label CDATA #IMPLIED >
+
+<!ELEMENT TABLE (TABLE_NEW_ROW)+        >
+<!ELEMENT TABLE_NEW_ROW (TABLE_NEW_COLUMN)+     >
+<!ELEMENT TABLE_NEW_COLUMN (#PCDATA|VERB|EM|BD|TT)*     >
+
+<!ELEMENT MATH (#PCDATA ) >
+
+<!ELEMENT VERB (#PCDATA )>
+
+<!ELEMENT EM (#PCDATA )>
+
+<!ELEMENT BD (#PCDATA )>
+
+<!ELEMENT TT (#PCDATA )>
+
+<!ELEMENT REMARKS (#PCDATA )>
+
diff --git a/scilab/modules/helptools/help/en_US/xmltojar.xml b/scilab/modules/helptools/help/en_US/xmltojar.xml
new file mode 100644 (file)
index 0000000..c86ab74
--- /dev/null
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA
+ * 
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution.  The terms
+ * are also available at    
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ -->
+<refentry version="5.0-subset Scilab" xml:id="xmltohtml" xml:lang="en"
+          xmlns="http://docbook.org/ns/docbook"
+          xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg"
+          xmlns:ns4="http://www.w3.org/1999/xhtml"
+          xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook">
+  <info>
+    <pubdate>$LastChangedDate: 2008-03-14 11:58:09 +0100 (ven, 14 mar 2008)
+    $</pubdate>
+  </info>
+
+  <refnamediv>
+    <refname>xmltojar</refname>
+
+    <refpurpose>converts xml Scilab help files to javaHelp format</refpurpose>
+  </refnamediv>
+
+  <refsynopsisdiv>
+    <title>Calling Sequence</title>
+
+    <synopsis>xmltojar(dirs [,titles [,dir_language [default_language]]]]])</synopsis>
+  </refsynopsisdiv>
+
+  <refsection>
+    <title>Parameters</title>
+
+    <variablelist>
+      <varlistentry>
+        <term>dirs</term>
+
+        <listitem>
+          <para>vector of strings: a set of directory paths for which html
+          manuals are to be generated or <literal>[] </literal></para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>titles</term>
+
+        <listitem>
+          <para>vector of strings: titles associated to directory paths or
+          []</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>dir_language</term>
+
+        <listitem>
+          <para>vector of strings: languages associated to directory paths or
+          []</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>default_language</term>
+
+        <listitem>
+          <para>vector of strings: default languages associated to directory
+          paths or []</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refsection>
+
+  <refsection>
+    <title>Description</title>
+
+    <para>converts xml Scilab help files contained in a set of directories
+    into jar files.</para>
+  </refsection>
+
+  <refsection>
+    <title>Examples</title>
+
+    <programlisting role="example">
+
+
+// example_1/
+// `-- help
+//     |-- eng
+//     |   |-- example_1_function_1.xml
+//     |   |-- example_1_function_2.xml
+//     |   `-- example_1_function_3.xml
+//     `-- fr
+//         |-- example_1_function_1.xml
+//         `-- example_1_function_3.xml
+
+my_module_path = pathconvert(SCI+'/modules/helptools/examples/example_1',%f,%f)
+
+  // Build the french help
+  // ===================================================================================
+my_french_help_dir    =  my_module_path+'/help/fr';
+my_french_xsl_file    =  pathconvert(SCI+'/modules/helptools/help_fr.xsl',%f,%f)
+my_french_help_title  =  'Example 1 [fr]';
+xmltohtml(my_french_help_dir,my_french_help_title,my_french_xsl_file,'all','fr','en');
+
+
+  // Build the english help
+  // ===================================================================================
+my_english_help_dir   =  my_module_path+'/help/en';
+my_english_xsl_file   =  pathconvert(SCI+'/modules/helptools/help_eng.xsl',%f,%f)
+my_english_help_title =  'Example 1 [eng]';
+xmltohtml(my_english_help_dir,my_english_help_title,my_english_xsl_file,'all');
+
+
+  // Add french and english help chapters
+  // ===================================================================================
+add_help_chapter(my_french_help_title,my_french_help_dir);
+add_help_chapter(my_english_help_title,my_english_help_dir);
+
+
+  // See the result in the help browser
+  // ===================================================================================
+help();
+
+
+  // Del french and english help chapters
+  // ===================================================================================
+del_help_chapter(my_french_help_title);
+del_help_chapter(my_english_help_title);
+
+       </programlisting>
+  </refsection>
+
+  <refsection>
+    <title>See Also</title>
+
+    <simplelist type="inline">
+      <member><link linkend="help">help</link></member>
+
+      <member><link
+      linkend="add_help_chapter">add_help_chapter</link></member>
+    </simplelist>
+  </refsection>
+</refentry>
\ No newline at end of file
index eda0657..0077c41 100644 (file)
@@ -68,8 +68,8 @@ Source: modules\{#HELPTOOLS}\readme.txt; DestDir: {app}\modules\{#HELPTOOLS}; Co
 Source: modules\{#HELPTOOLS}\license.txt; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
 Source: modules\{#HELPTOOLS}\changelog.txt; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
 ;
-Source: modules\{#HELPTOOLS}\scilab_fr_FR_help.jar; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
-Source: modules\{#HELPTOOLS}\scilab_en_US_help.jar; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
+Source: modules\{#HELPTOOLS}\jar\scilab_fr_FR_help.jar; DestDir: {app}\modules\{#HELPTOOLS}\jar; Components: {#COMPN_SCILAB}
+Source: modules\{#HELPTOOLS}\jar\scilab_en_US_help.jar; DestDir: {app}\modules\{#HELPTOOLS}\jar; Components: {#COMPN_SCILAB}
 ;
 ;Source: modules\{#HELPTOOLS}\*.htm; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
 ;Source: modules\{#HELPTOOLS}\*.xsl; DestDir: {app}\modules\{#HELPTOOLS}; Components: {#COMPN_SCILAB}
index 492ac91..908c283 100644 (file)
@@ -76,27 +76,55 @@ function clean_help(dirs)
        mprintf(gettext("-- Deleting "+getlanguage()+" help files --"));
        
        for k=1:size(dirs,'*')
-               files_to_delete = listfiles([dirs(k)+"/*.htm";dirs(k)+"/.list*";dirs(k)+"/.last_successful_build*"]);
+               
+               files_to_delete = listfiles([ ..
+                       dirs(k)+"/*.htm"; ..
+                       dirs(k)+"/.list*"; ..
+                       dirs(k)+"/.last_successful_build*"; ..
+                       dirs(k)+"/*.log"; ..
+                       dirs(k)+"/master_help.xml"; ..
+                       dirs(k)+"/*_help.jar"; ..
+                       dirs(k)+"/*_help.pdf"; ..
+                       dirs(k)+"/*_help.ps"; ..
+                       dirs(k)+"/*_help.chm" ..
+               ]);
+               
                for i=1:size(files_to_delete,'*')
                        mprintf(".");
                        mdelete(files_to_delete(i));
                end
        end
        
-       // Clean up of indexes and contents
+       // Clean up helptools dir
        // ------------------------------------------------------------------------
        
        if (rhs <= 0) | ((rhs == 1) & (dirs == [])) then
        
-       if fileinfo(SCI+pathconvert("/modules/helptools/index_"+getlanguage()+".htm",%f,%f)) <> [] then
-                 mprintf(".");
+               if fileinfo(SCI+pathconvert("/modules/helptools/index_"+getlanguage()+".htm",%f,%f)) <> [] then
+                       mprintf(".");
                        mdelete(SCI+pathconvert("/modules/helptools/index_"+getlanguage()+".htm",%f,%f));
                end
-                       
+               
                if fileinfo(SCI+pathconvert("/modules/helptools/contents_"+getlanguage()+".htm",%f,%f)) <> [] then
-                 mprintf(".");
+                       mprintf(".");
                        mdelete(SCI+pathconvert("/modules/helptools/contents_"+getlanguage()+".htm",%f,%f));
                end
+               
+               if fileinfo(SCI+pathconvert("/modules/helptools/jar/scilab_"+getlanguage()+"_help.jar",%f,%f)) <> [] then
+                       mprintf(".");
+                       mdelete(SCI+pathconvert("/modules/helptools/jar/scilab_"+getlanguage()+"_help.jar",%f,%f));
+               end
+               
+               if fileinfo(SCI+pathconvert("/modules/helptools/scilab_"+getlanguage()+"_help.jar.log",%f,%f)) <> [] then
+                       mprintf(".");
+                       mdelete(SCI+pathconvert("/modules/helptools/scilab_"+getlanguage()+"_help.jar.log",%f,%f));
+               end
+               
+               if fileinfo(SCI+pathconvert("/modules/helptools/master_"+getlanguage()+"_help.xml",%f,%f)) <> [] then
+                       mprintf(".");
+                       mdelete(SCI+pathconvert("/modules/helptools/master_"+getlanguage()+"_help.xml",%f,%f));
+               end
+               
        end
        
        mprintf("\n");
index d63d0ec..2c45dac 100644 (file)
@@ -316,26 +316,42 @@ function xmltoformat(output_format,dirs,titles,directory_language,default_langua
                // build all the Master document
                //----------------------------------------------------------------------
                
-               displaydone = 0;
-               
-               master_doc = SCI+"/modules/helptools/master_"+getlanguage()+"_help.xml";
-               
                if all_scilab_help then
                        
-                       // if or(need_to_be_build_tab_m) then
-                       if %T then
+                       master_doc = SCI+"/modules/helptools/master_"+getlanguage()+"_help.xml";
+                       
+                       if or(need_to_be_build_tab_m) then
                                printf(_("\nBuilding the scilab manual master document\n"));
-                               create_master_document(dirs_m,titles_m,master_doc);
+                               create_MD(dirs_m,titles_m,master_doc);
                        end
                        
                        if or(need_to_be_build_tab_c) then
                                for k=1:size(dirs_c,"*")
                                        if need_to_be_build_tab_c(k) then
                                                printf(_("\nBuilding the master document : %s\n"),titles_c(k));
-                                               create_master_document(dirs_c(k),titles_c(k),dirs_c(k)+"/master_help.xml");
+                                               create_MD(dirs_c(k),titles_c(k),dirs_c(k)+"/master_help.xml");
+                                       end
+                               end
+                       end
+                       
+               else
+                       
+                       displaydone = 0;
+                       for k=1:size(dirs,"*");
+                               if need_to_be_build_tab(k) then
+                                       if nb_dir > 1 then
+                                               if displaydone == 0 then
+                                                       printf(_("\nBuilding the master document\n"));
+                                                       displaydone = 1;
+                                               end
+                                               printf(_("\t%s\n"),strsubst(dirs(k),SCI_long,"SCI"));
+                                       else
+                                               printf(_("\nBuilding the master document in %s\n"),strsubst(dirs(k),SCI_long,"SCI"));
                                        end
+                                       create_MD_dir(dirs(k),titles(k),dirs(k)+"/master_help.xml");
                                end
                        end
+               
                end
                
                //----------------------------------------------------------------------
@@ -344,44 +360,93 @@ function xmltoformat(output_format,dirs,titles,directory_language,default_langua
                
                script_tool = "";
                
-               select output_format
+               if all_scilab_help then
                        
-                       case "javaHelp"
-                               output_file = pathconvert(SCI+"/modules/helptools/jar/scilab_"+getlanguage()+"_help.jar",%f,%f);
-                               log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.jar.log",%f,%f);
-                               script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2jh",%f,%f);
+                       select output_format
+                               
+                               case "javaHelp"
+                                       output_file = pathconvert(SCI+"/modules/helptools/jar/scilab_"+getlanguage()+"_help.jar",%f,%f);
+                                       log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.jar.log",%f,%f);
+                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2jh",%f,%f);
+                               
+                               case "chm"
+                                       output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.chm",%f,%f);
+                                       log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.chm.log",%f,%f);
+                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2chm",%f,%f);
+                               
+                               case "pdf"
+                                       output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.pdf",%f,%f);
+                                       log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.pdf.log",%f,%f);
+                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
+                               
+                               case "ps"
+                                       output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.ps",%f,%f);
+                                       log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.ps.log",%f,%f);
+                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
+                       end
                        
-                       case "chm"
-                               output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.chm",%f,%f);
-                               log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.chm.log",%f,%f);
-                               script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2chm",%f,%f);
+                       if MSDOS then
+                               script_tool = script_tool+".bat";
+                       end
                        
-                       case "pdf"
-                               output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.pdf",%f,%f);
-                               log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.pdf.log",%f,%f);
-                               script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
+                       log_str     = "";
                        
-                       case "ps"
-                               output_file = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.ps",%f,%f);
-                               log_file    = pathconvert(SCI+"/modules/helptools/scilab_"+getlanguage()+"_help.ps.log",%f,%f);
-                               script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
-               end
-               
-               if MSDOS then
-                       script_tool = script_tool+".bat";
-               end
-               
-               log_str     = "";
-               
-               if all_scilab_help then
-                       // if or(need_to_be_build_tab_m) then
-                       if %T then
+                       if or(need_to_be_build_tab_m) then
                                printf(_("\nBuilding the scilab manual file ["+output_format+"]\n"));
                                log_str = unix_g(script_tool+" "+master_doc+" "+output_file+" 2>&1");
+                               mputl(log_str,log_file);
+                       end
+               
+               else
+               
+                       displaydone = 0;
+                       for k=1:size(dirs,"*");
+                               if need_to_be_build_tab(k) then
+                                       
+                                       if nb_dir > 1 then
+                                               if displaydone == 0 then
+                                                       printf(_("\nBuilding the manual file ["+output_format+"]\n"));
+                                                       displaydone = 1;
+                                               end
+                                               printf(_("\t%s\n"),strsubst(dirs(k),SCI_long,"SCI"));
+                                       else
+                                               printf(_("\nBuilding the manual file ["+output_format+"] in %s\n"),strsubst(dirs(k),SCI_long,"SCI"));
+                                       end
+                                       
+                                       select output_format
+                                               
+                                               case "javaHelp"
+                                                       output_file = pathconvert(dirs(k)+"/"+getlanguage()+"_help.jar",%f,%f);
+                                                       log_file    = pathconvert(dirs(k)+"/"+getlanguage()+"_help.jar.log",%f,%f);
+                                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2jh",%f,%f);
+                                               
+                                               case "chm"
+                                                       output_file = pathconvert(dirs(k)+"/"+getlanguage()+"_help.chm",%f,%f);
+                                                       log_file    = pathconvert(dirs(k)+"/"+getlanguage()+"_help.chm.log",%f,%f);
+                                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2chm",%f,%f);
+                                               
+                                               case "pdf"
+                                                       output_file = pathconvert(dirs(k)+"/"+getlanguage()+"_help.pdf",%f,%f);
+                                                       log_file    = pathconvert(dirs(k)+"/"+getlanguage()+"_help.pdf.log",%f,%f);
+                                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
+                                               
+                                               case "ps"
+                                                       output_file = pathconvert(dirs(k)+"/"+getlanguage()+"_help.ps",%f,%f);
+                                                       log_file    = pathconvert(dirs(k)+"/"+getlanguage()+"_help.ps.log",%f,%f);
+                                                       script_tool = pathconvert(SCI+"/modules/helptools/bin/sci2pdf",%f,%f);
+                                       end
+                                       
+                                       if MSDOS then
+                                               script_tool = script_tool+".bat";
+                                       end
+                                       
+                                       log_str = unix_g(script_tool+" "+dirs(k)+"/master_help.xml "+output_file+" 2>&1");
+                                       mputl(log_str,log_file);
+                                       
+                               end
                        end
                end
                
-               mputl(log_str,log_file);
                chdir(current_directory);
                
                //----------------------------------------------------------------------
@@ -470,20 +535,20 @@ function complete_with_df_lang(directory,directory_language,default_language)
        // Copyright INRIA
        // Date : 26, july 2006
        //
-       // Cette macro compl?te un r?pertoire dont certaines aides en ligne sont manquantes
-       // Elle le compl?te avec les aides en ligne de la langue par d?faut
+       // Cette macro complète un répertoire dont certaines aides en ligne sont manquantes
+       // Elle le complète avec les aides en ligne de la langue par défaut
        //
        // macro non-visible de l'utilisateur
        //--------------------------------------------------------------------------
        
-       // Directory trait?e
+       // Directory traitée
        directory = pathconvert(directory,%f,%f);
        
        //--------------------------------------------------------------------------
-       // Nettoyage du r?pertoire
+       // Nettoyage du répertoire
        // Si il existe un fichier .list_<directory_language> (fichier contenant tous les
-       // fichiers traduits dans la langue du r?pertoire), on supprime dans l'ordre :
-       //   1. Tous les fichiers n'appartenant pas ? la liste contenue dans .list_<directory_language>
+       // fichiers traduits dans la langue du répertoire), on supprime dans l'ordre :
+       //   1. Tous les fichiers n'appartenant pas à la liste contenue dans .list_<directory_language>
        //   2. Tous les fichiers de la forme .list_<language>
        //--------------------------------------------------------------------------
        
@@ -494,7 +559,7 @@ function complete_with_df_lang(directory,directory_language,default_language)
        
        //--------------------------------------------------------------------------
        // Construction du fichier list_<directory_language> contenant la liste des
-       // fichiers traduits dans la langue associ?e au r?pertoire
+       // fichiers traduits dans la langue associée au répertoire
        //--------------------------------------------------------------------------
        
        dir_language_xml_files = basename(listfiles(directory+"/*.xml"));
@@ -506,23 +571,23 @@ function complete_with_df_lang(directory,directory_language,default_language)
        
        //--------------------------------------------------------------------------
        // Construction du fichier list_<default_language> contenant la liste des fichiers
-       // non traduits dans la langue associ?e au r?pertoire qui seront r?cup?r?s depuis le
-       // r?pertoire de la langue par d?faut
+       // non traduits dans la langue associée au répertoire qui seront récupérés depuis le
+       // répertoire de la langue par défaut
        //--------------------------------------------------------------------------
        
        // Tous les fichiers contenus dans <directory>/../<default_language> pour commencer
        // On afinnera par la suite
        df_lang_xml_files = basename(listfiles(pathconvert(directory+"/../"+default_language+"/*.xml",%f,%f)));
        
-       // On supprime de "df_lang_xml_files" tous les ?l?ment contenus dans
-       // "dir_language_xml_files", c'est ? dire tous les fichiers d?ja traduit dans la langue
-       // associ?e au r?pertoire.
+       // On supprime de "df_lang_xml_files" tous les élément contenus dans
+       // "dir_language_xml_files", c'est à dire tous les fichiers déja traduit dans la langue
+       // associée au répertoire.
        
        for i=1:size(dir_language_xml_files,'*');
                df_lang_xml_files(find(df_lang_xml_files==dir_language_xml_files(i)))=[];
        end
        
-       // Cr?ation du fichier
+       // Création du fichier
        if df_lang_xml_files <> [] then
                mputl(df_lang_xml_files,pathconvert(directory+"/.list_"+default_language,%f,%f));
        else
@@ -549,25 +614,25 @@ function del_df_lang_xml_files(directory,directory_language)
        // Copyright INRIA
        // Date : 26, july 2006
        //
-       // Cette macro d?truit tous les fichiers xml qui ne sont pas traduit dans
-       // la langue associ?e au r?pertoire
+       // Cette macro détruit tous les fichiers xml qui ne sont pas traduit dans
+       // la langue associée au répertoire
        //
        // macro non-visible de l'utilisateur
        //--------------------------------------------------------------------------
        
-       // Directory trait?e
+       // Directory traitée
        directory = pathconvert(directory,%f,%t);
        
        if listfiles(pathconvert(directory+"/.list_"+directory_language,%f,%f)) <> [] then
                
-               // R?cup?ration de la liste des fichiers xml copi?s depuis le r?pertoire de la langue par d?faut
+               // Récupération de la liste des fichiers xml copiés depuis le répertoire de la langue par défaut
                dir_language_xml_files = mgetl(pathconvert(directory+"/.list_"+directory_language,%f,%f));
                
-               // Liste de tous les fichiers xml contenu dans le r?pertoire
+               // Liste de tous les fichiers xml contenu dans le répertoire
                all_files = basename(listfiles(directory+"/*.xml"));
                
-               // On retire de "all_files" tous les ?l?ments appartenant ? "xml_directory_language_files"
-               // Ce sont les aides en ligne traduite dans la langue associ?e r?pertoire
+               // On retire de "all_files" tous les éléments appartenant à "xml_directory_language_files"
+               // Ce sont les aides en ligne traduite dans la langue associée répertoire
                for i=1:size(dir_language_xml_files,'*');
                        all_files(find(all_files==dir_language_xml_files(i)))=[];
                end
@@ -589,33 +654,33 @@ function result = need_to_be_build(directory,directory_language,default_language
        // Copyright INRIA
        // Date : 27, july 2006
        //
-       // Cette fonction a pour but de d?terminer si le r?pertoire a besoin d'?tre
+       // Cette fonction a pour but de déterminer si le répertoire a besoin d'être
        // reconstruit ou pas.
        //
-       // On d?termine la date de derni?re modification la plus r?cente parmi les
-       // dates de derni?re modification suivantes :
-       //     -  date de derni?re modification du r?pertoire "directory".
-       //     -  dates de derni?re modification des fichiers XML du r?pertoire "directory".
-       //     -  date de derni?re modification du r?pertoire "directory/../<default_language>"
-       //        si le syst?me de multilinguisme est utilis?
-       //      - dates de derni?re modification des fichiers XML du r?pertoire
-       //        "directory/../<default_language>" si le syst?me de multilinguisme est utilis?
+       // On détermine la date de dernière modification la plus récente parmi les
+       // dates de dernière modification suivantes :
+       //     -  date de dernière modification du répertoire "directory".
+       //     -  dates de dernière modification des fichiers XML du répertoire "directory".
+       //     -  date de dernière modification du répertoire "directory/../<default_language>"
+       //        si le système de multilinguisme est utilisé
+       //      - dates de dernière modification des fichiers XML du répertoire
+       //        "directory/../<default_language>" si le système de multilinguisme est utilisé
        //
-       // Ensuite cette valeur est compar?e ? la valeur contenue dans le fichier
+       // Ensuite cette valeur est comparée à la valeur contenue dans le fichier
        // "directory/.last_successful_build". Si elle est plus grande,
        // need_to_be_build renvoie %T
        //
-       // Si le fichier "directory/.last_successful_build" n'existe pas, l'aide n'a jamais ?t?
+       // Si le fichier "directory/.last_successful_build" n'existe pas, l'aide n'a jamais été
        // construite donc need_to_be_build renvoie %T
        //
        //--------------------------------------------------------------------------
        
        [lhs,rhs]=argn(0);
        
-       // S'il n'y a pas de fichiers XML dans le r?pertoire ni dans son homologue,
-       // Le r?pertoire n'a pas besoin d'?tre construit.
-       // Cela est une s?curit? pour ?viter de detruire les whatis des versions binaires
-       // o? il n'y a pas de fichiers XML
+       // S'il n'y a pas de fichiers XML dans le répertoire ni dans son homologue,
+       // Le répertoire n'a pas besoin d'être construit.
+       // Cela est une sécurité pour éviter de detruire les whatis des versions binaires
+       // où il n'y a pas de fichiers XML
        
        xml_file_list    = listfiles(directory+"/*.xml");
        
@@ -683,7 +748,7 @@ function result = need_to_be_build(directory,directory_language,default_language
 endfunction
 
 
-function create_master_document(dirs,titles,output_filename)
+function create_MD(dirs,titles,output_filename)
 
        master_document = ["<?xml version=""1.0"" encoding=""ISO-8859-1""?>"; ..
                        "<!DOCTYPE book [";
@@ -741,24 +806,73 @@ function create_master_document(dirs,titles,output_filename)
 
 endfunction
 
+function create_MD_dir(my_dir,my_title,output_filename)
+
+       xml_files   = basename(listfiles(my_dir+"/*.xml"));
+       category_id = title2category(my_title);
+       my_title    = strsubst(my_title , "&"  , "&amp;" );
+       
+       master_document = ["<?xml version=""1.0"" encoding=""ISO-8859-1""?>"; ..
+                       "<!DOCTYPE book [";
+                       "<!--Begin Entities-->"];
+               
+       xml_files          = listfiles(my_dir+"/*.xml");
+       
+       xml_files(grep(xml_files,"master_help.xml")) = [];
+       
+       master_document    = [master_document; ..
+               "<!ENTITY "+basename(xml_files)+" SYSTEM """+xml_files+""">"];
+       
+       master_document    = [ master_document; ..
+               "<!--End Entities-->"; ..
+               "]>"; ..
+               "<book version=""5.0-subset Scilab"" xml:lang=""en"""; ..
+               "      xmlns=""http://docbook.org/ns/docbook"""; ..
+               "      xmlns:xlink=""http://www.w3.org/1999/xlink"""; ..
+               "      xmlns:xi=""http://www.w3.org/2001/XInclude"""; ..
+               "      xmlns:svg=""http://www.w3.org/2000/svg"""; ..
+               "      xmlns:mml=""http://www.w3.org/1998/Math/MathML"""; ..
+               "      xmlns:html=""http://www.w3.org/1999/xhtml"""; ..
+               "      xmlns:db=""http://docbook.org/ns/docbook"">"; ..
+               "  <info>"; ..
+               "    <title>"+my_title+"</title>"; ..
+               "  </info>"; ..
+               "<!--Begin Reference-->"];
+               
+               master_document    = [ master_document; ..
+                       "<reference xml:id=''"+category_id+"''>"; ..
+                       "<title>"+my_title+"</title>"; ..
+                       "&"+basename(xml_files)+";"; ..
+                       "</reference>"]
+                       
+       
+       master_document    = [ master_document; ..
+       "  <!--End Reference-->"; ..
+       "</book>" ];
+       
+       mputl(master_document,output_filename);
+
+endfunction
 
 function category = title2category(mytitle)
                
                category = mytitle;
                category = strsubst(category , "&"  , "_" );
-               category = strsubst(category , "?"  , "e" );
-               category = strsubst(category , "?"  , "e" );
-               category = strsubst(category , "?"  , "e" );
-               category = strsubst(category , "?"  , "u" );
-               category = strsubst(category , "?"  , "i" );
-               category = strsubst(category , "?"  , "o" );
-               category = strsubst(category , "?"  , "a" );
+               category = strsubst(category , "é"  , "e" );
+               category = strsubst(category , "è"  , "e" );
+               category = strsubst(category , "ê"  , "e" );
+               category = strsubst(category , "ù"  , "u" );
+               category = strsubst(category , "î"  , "i" );
+               category = strsubst(category , "ô"  , "o" );
+               category = strsubst(category , "à"  , "a" );
                category = strsubst(category , ":"  , ""  );
                category = strsubst(category , "\"  , "_" );
                category = strsubst(category , "/"  , "_" );
                category = strsubst(category , "''" , "_" );
                category = strsubst(category , "  " , " " );
                category = strsubst(category , " "  , "_" );
+               category = strsubst(category , "["  , ""  );
+               category = strsubst(category , "]"  , ""  );
                category = convstr(category,"l");
                category = "category_"+category;