Rev 12614 | Rev 13905 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
11931 | schaersvoo | 1 | #!/usr/bin/perl |
3461 | bpr | 2 | |
3 | use locale; |
||
3831 | bpr | 4 | use warnings; |
5 | use strict; |
||
3845 | bpr | 6 | ##lancer du répertoire wims : bin/oedfdoc.pl |
3461 | bpr | 7 | |
4870 | bpr | 8 | ### for "editor" |
3831 | bpr | 9 | my %name ; |
8474 | bpr | 10 | $name{'explanation'}{'fr'}="Explication" ; |
3831 | bpr | 11 | $name{'example'}{'fr'}="Exemple" ; |
11537 | bpr | 12 | $name{'special'}{'fr'}="Méthodes spéciales<br/(énoncé)"; |
3831 | bpr | 13 | $name{'syntax'}{'fr'}="Syntaxe"; |
14 | $name{'slib'}{'fr'}='SLIB'; |
||
8474 | bpr | 15 | $name{'anstype'}{'fr'}='Types de réponses' ; |
3470 | bpr | 16 | |
8474 | bpr | 17 | $name{'explanation'}{'en'}="Explanation" ; |
3831 | bpr | 18 | $name{'example'}{'en'}="Example" ; |
11537 | bpr | 19 | $name{'special'}{'en'}="Special method<br/>(statement)"; |
3831 | bpr | 20 | $name{'syntax'}{'en'}="Syntax"; |
21 | $name{'slib'}{'en'}='SLIB'; |
||
22 | $name{'anstype'}{'en'}='Answer types' ; |
||
3470 | bpr | 23 | |
8474 | bpr | 24 | $name{'explanation'}{'cn'}="Explanation" ; |
3831 | bpr | 25 | $name{'example'}{'cn'}="Example" ; |
11537 | bpr | 26 | $name{'special'}{'cn'}="Special method<br/>(statement)"; |
3831 | bpr | 27 | $name{'syntax'}{'cn'}="Syntax"; |
28 | $name{'slib'}{'cn'}='SLIB'; |
||
29 | $name{'anstype'}{'cn'}='Answer types' ; |
||
3490 | bpr | 30 | |
8474 | bpr | 31 | $name{'explanation'}{'nl'}="Explanation" ; |
3831 | bpr | 32 | $name{'example'}{'nl'}="Example" ; |
11537 | bpr | 33 | $name{'special'}{'nl'}="Special method<br/>(statement)"; |
3831 | bpr | 34 | $name{'syntax'}{'nl'}="Syntax"; |
35 | $name{'slib'}{'nl'}='SLIB'; |
||
8474 | bpr | 36 | $name{'anstype'}{'nl'}='Answer types' ; |
3490 | bpr | 37 | |
8474 | bpr | 38 | $name{'explanation'}{'it'}="Spiegazione" ; |
3831 | bpr | 39 | $name{'example'}{'it'}="Esempio" ; |
11537 | bpr | 40 | $name{'special'}{'it'}="Metodi speciali<br/>(enunciato)"; |
3831 | bpr | 41 | $name{'syntax'}{'it'}="Sintassi"; |
42 | $name{'slib'}{'it'}='SLIB'; |
||
8474 | bpr | 43 | $name{'anstype'}{'it'}='Tipi di risposte' ; |
3490 | bpr | 44 | |
11545 | mquerol | 45 | $name{'explanation'}{'es'}="Explicación" ; |
46 | $name{'example'}{'es'}="Ejemplo" ; |
||
47 | $name{'special'}{'es'}="Métodos especiales<br/>(enunciado)"; |
||
48 | $name{'syntax'}{'es'}="Sintaxis"; |
||
11510 | bpr | 49 | $name{'slib'}{'es'}='SLIB'; |
11545 | mquerol | 50 | $name{'anstype'}{'es'}='Tipos de Respuestas' ; |
11510 | bpr | 51 | |
8474 | bpr | 52 | $name{'explanation'}{'ca'}="Explicació" ; |
5455 | mquerol | 53 | $name{'example'}{'ca'}="Exemple" ; |
11537 | bpr | 54 | $name{'special'}{'ca'}="Mètodes especials<br/>(enunciat)"; |
5455 | mquerol | 55 | $name{'syntax'}{'ca'}="Sintaxi"; |
5430 | bpr | 56 | $name{'slib'}{'ca'}='SLIB'; |
5455 | mquerol | 57 | $name{'anstype'}{'ca'}='Tipus de Respostes' ; |
3461 | bpr | 58 | my $DOSSIER="public_html/scripts/js/editor/scripts_1/bd_js"; |
4870 | bpr | 59 | my $DOSSIER_edit_area="public_html/scripts/js/edit_area/reg_syntax"; |
60 | my $DOSSIER_wims="public_html/modules/help/wimsdoc.en/cmd/"; |
||
3461 | bpr | 61 | my $slibdir="public_html/scripts/slib/"; |
62 | my $helpdir="public_html/scripts/help"; |
||
3481 | bpr | 63 | |
11510 | bpr | 64 | my @Lang=('en','fr','cn','nl','it','ca', 'es') ; |
3845 | bpr | 65 | |
3461 | bpr | 66 | system(`mkdir -p $DOSSIER`) ; |
8474 | bpr | 67 | my @table=('if', 'oefparm0', 'oefparm1', 'oefparm2', 'oefparm3', 'oefparm4', 'oefparm5','oefcommand') ; |
3461 | bpr | 68 | |
4870 | bpr | 69 | ### for "editor" |
3832 | bpr | 70 | my (%Begin, %End) ; |
8474 | bpr | 71 | $Begin{'if'}= " " ; |
72 | $End{'if'}= " " ; |
||
73 | $Begin{'oefparm0'}= '\\\\' ; |
||
3832 | bpr | 74 | $End{'oefparm0'}= "\{ = \}" ; |
8474 | bpr | 75 | $Begin{'oefcommand'}= '\\\\' ; |
3832 | bpr | 76 | $End{'oefcommand'}= "\{ \}" ; |
3845 | bpr | 77 | $Begin{'anstype'}='' ; |
78 | $End{'anstype'}='' ; |
||
3832 | bpr | 79 | ##$Begin{'anstype'}='\\\\answer\{ \}\{ \}\{type=' ; |
80 | ##$End{'anstype'}='\}\{option= \}\{ weight= \}\n' ; |
||
3461 | bpr | 81 | for my $tag ("oefparm4") { |
8474 | bpr | 82 | $Begin{$tag}= "" ; |
3832 | bpr | 83 | $End{$tag}= "\( \)" ; |
3461 | bpr | 84 | } |
3478 | bpr | 85 | for my $tag ("oefparm2", "oefparm3") { |
8474 | bpr | 86 | $Begin{$tag}= " " ; |
3832 | bpr | 87 | $End{$tag}= " " ; |
3478 | bpr | 88 | } |
3735 | bpr | 89 | for my $tag ( "oefparm1") { |
8474 | bpr | 90 | $Begin{$tag}= "" ; |
3832 | bpr | 91 | $End{$tag}= "" ; |
3735 | bpr | 92 | } |
3461 | bpr | 93 | |
94 | for my $tag ("oefparm5") { |
||
3832 | bpr | 95 | $Begin{$tag}= '\\\\' ; |
96 | $End{$tag}= "" ; |
||
3461 | bpr | 97 | } |
98 | |||
8474 | bpr | 99 | $Begin{'slib'}= "slib(" ; |
3845 | bpr | 100 | $End{'slib'}= " )" ; |
3461 | bpr | 101 | |
12614 | bpr | 102 | my @phtml=("expandlines", "imagefill", "help", "tabs2lines", "rename", "tooltip", "codeinput", "imageinput", "mathmlinput", "drawinput", "glossary") ; |
3461 | bpr | 103 | for my $tag (@phtml) { |
8474 | bpr | 104 | $Begin{$tag}= "\\special\{" ; |
3832 | bpr | 105 | $End{$tag}= " \}" ; |
3461 | bpr | 106 | } |
4870 | bpr | 107 | ### end for "editor" |
108 | ### begin for "edit area" |
||
109 | my $EDIT_AERA_OEF_begin = "editAreaLoader.load_syntax['wimsoef'] = { |
||
110 | 'QUOTEMARKS' : {1: ' \" '} |
||
111 | ,'KEYWORD_CASE_SENSITIVE' : true |
||
112 | ,\'KEYWORDS\' : {" ; |
||
113 | my $EDIT_AERA_begin = "editAreaLoader.load_syntax['wims'] = { |
||
114 | 'QUOTEMARKS' : {1: ' \" '} |
||
115 | ,'KEYWORD_CASE_SENSITIVE' : true |
||
116 | ,\'KEYWORDS\' : {" ; |
||
11429 | bpr | 117 | my $EDIT_AERA_DOC_begin = "editAreaLoader.load_syntax['wimsdoc'] = { |
118 | 'QUOTEMARKS' : {1: ' \" '} |
||
119 | ,'KEYWORD_CASE_SENSITIVE' : true |
||
120 | ,\'KEYWORDS\' : {" ; |
||
121 | |||
4870 | bpr | 122 | my $EDIT_AERA_OEF_end = "} |
4879 | bpr | 123 | ,'OPERATORS' : [ |
124 | '*', '+', '-', '/', '^', ':=', '<', '=', '>','..' |
||
4870 | bpr | 125 | ] |
4879 | bpr | 126 | ,'DELIMITERS' : [ |
4870 | bpr | 127 | '(', ')', '[', ']','{','}','??','??' |
4879 | bpr | 128 | ] |
129 | ,'REGEXPS' : |
||
4870 | bpr | 130 | { |
131 | 'oefvariables' : { 'search': '()(\\\\\\\\\\\\w+)()', |
||
132 | 'class' : 'oefvariables', |
||
133 | 'modifiers' : 'g', 'execute' : 'after' }, |
||
134 | 'record' : { 'search': '(\\n)(:)()', |
||
135 | 'class' : 'record', |
||
136 | 'modifiers' : 'g', 'execute' : 'after' }, |
||
137 | 'question' : { 'search': '(\\\\?\\\\?)([^\\\\?]+)(\\\\?\\\\?)', |
||
138 | 'class' : 'question', |
||
4882 | bpr | 139 | 'modifiers' : 'g', 'execute' : 'before' } |
4870 | bpr | 140 | } |
141 | ,'STYLES' : { |
||
4879 | bpr | 142 | 'COMMENTS': 'color: #0000CD;' |
4870 | bpr | 143 | ,'QUOTESMARKS': 'color: #6381F8;' |
144 | ,'KEYWORDS' : { |
||
145 | 'oefcommand' : 'color: #FF9933;' |
||
146 | ,'oefparm0' : 'color: #FF9933;' |
||
147 | ,'oefparm1' : 'color: #985717;' |
||
148 | ,'oefparm2' : 'color: #336600;' |
||
149 | ,'oefparm3' : 'color: #336600;' |
||
150 | ,'oefparm4' : 'color: #3399FF;' |
||
151 | ,'oefparm5' : 'color: #330099;' |
||
152 | ,'iff' : 'color: #FF00FF;' |
||
4882 | bpr | 153 | ,'slib' : 'color: #60CA33;' |
4870 | bpr | 154 | ,'anstype' : 'color: #3399FF;' |
8474 | bpr | 155 | ,'special' : 'color: #3399FF;' |
4870 | bpr | 156 | } |
157 | ,'OPERATORS' : 'color: #FF00FF;' |
||
4879 | bpr | 158 | ,'DELIMITERS' : 'color: #60CA00;' |
159 | ,'REGEXPS': { |
||
4870 | bpr | 160 | 'oefvariables' : 'color: #FF3A6E;' |
161 | ,'question' : 'color:#985717;' |
||
162 | } |
||
163 | } |
||
164 | };" ; |
||
11429 | bpr | 165 | my $EDIT_AERA_DOC_end = "} |
166 | ,'OPERATORS' : [ |
||
167 | '*', '+', '-', '/', '^', ':=', '<', '=', '>','..' |
||
168 | ] |
||
169 | ,'DELIMITERS' : [ |
||
170 | '(', ')', '[', ']','{','}','??','??' |
||
171 | ] |
||
172 | ,'REGEXPS' : |
||
173 | { |
||
174 | 'docvariables' : { 'search': '()(\\\\\\\\\\\\w+)()', |
||
175 | 'class' : 'docvariables', |
||
176 | 'modifiers' : 'g', 'execute' : 'after' }, |
||
177 | 'record' : { 'search': '(\\n)(:)()', |
||
178 | 'class' : 'record', |
||
179 | 'modifiers' : 'g', 'execute' : 'after' }, |
||
180 | 'question' : { 'search': '(\\\\?\\\\?)([^\\\\?]+)(\\\\?\\\\?)', |
||
181 | 'class' : 'question', |
||
182 | 'modifiers' : 'g', 'execute' : 'before' } |
||
183 | } |
||
184 | ,'STYLES' : { |
||
185 | 'COMMENTS': 'color: #0000CD;' |
||
186 | ,'QUOTESMARKS': 'color: #6381F8;' |
||
187 | ,'KEYWORDS' : { |
||
188 | 'text' : 'color: #FF9933;' |
||
189 | ,'iff' : 'color: #FF00FF;' |
||
190 | ,'slib' : 'color: #60CA33;' |
||
191 | } |
||
192 | ,'OPERATORS' : 'color: #FF00FF;' |
||
193 | ,'DELIMITERS' : 'color: #60CA00;' |
||
194 | ,'REGEXPS': { |
||
195 | 'docvariables' : 'color: #FF3A6E;' |
||
196 | ,'question' : 'color:#985717;' |
||
197 | } |
||
198 | } |
||
199 | };" ; |
||
4870 | bpr | 200 | my $EDIT_AERA_end = "} |
201 | ,'OPERATORS' :[ |
||
202 | '*', '+', '-', '/', '^', ':=', '<', '=', '>','//','\$' |
||
203 | ] |
||
204 | ,'DELIMITERS' :[ |
||
205 | '(', ')', '[', ']','{','}','\\(', '\\)','??','??' |
||
206 | ], |
||
207 | 'REGEXPS' : |
||
208 | { |
||
209 | 'wimsvariables' : { 'search': '(\\\\\$)([a-zA-Z0-9_]*)()', |
||
210 | 'class' : 'wimsvariables', |
||
211 | 'modifiers' : 'g', 'execute' : 'before' }, |
||
212 | 'record' : { 'search': '(\\n)(:)()', |
||
213 | 'class' : 'record', |
||
214 | 'modifiers' : 'g', 'execute' : 'after' }, |
||
215 | } |
||
216 | ,'STYLES' : { |
||
217 | 'COMMENTS': 'color: #AAAAAA;' |
||
218 | ,'QUOTESMARKS': 'color: #6381F8;' |
||
219 | ,'KEYWORDS' : { |
||
220 | 'wimscommand' : 'color: #3399FF;' |
||
221 | ,'compare' : 'color: #FF00FF;' |
||
222 | ,'wimslogiciel' : 'color: yellow;' |
||
223 | } |
||
224 | ,'OPERATORS' : 'color: green;' |
||
225 | ,'DELIMITERS' : 'color: #60CA00;', |
||
226 | 'REGEXPS': { |
||
227 | 'wimsvariables' : 'color: #FF3A6E;' |
||
228 | ,'tex' : 'color:red;' |
||
229 | } |
||
230 | } |
||
231 | };" ; |
||
232 | ### end for "editarea" |
||
233 | ##### generation |
||
3461 | bpr | 234 | |
4870 | bpr | 235 | my $debut_oef=1; |
236 | my $debut_wims=1; |
||
237 | my $EDIT_AERA_OEF=$EDIT_AERA_OEF_begin ; |
||
238 | my $EDIT_AERA=$EDIT_AERA_begin ; |
||
11429 | bpr | 239 | my $EDIT_AERA_DOC=$EDIT_AERA_DOC_begin ; |
4870 | bpr | 240 | |
8474 | bpr | 241 | for my $lang (@Lang) { |
3470 | bpr | 242 | print "oefdoc.pl $lang\n" ; system(`mkdir -p $DOSSIER/$lang`) ; |
4882 | bpr | 243 | slib($lang) ; |
3845 | bpr | 244 | for my $t (@table) { tableau($t,$lang) ; } |
3489 | bpr | 245 | phtml("$helpdir/$lang/special",$lang,"special",@phtml) ; |
4870 | bpr | 246 | $EDIT_AERA_OEF .= "\n, \'special\' : \n[ \'\\embed\', \'\\special{" . join ("\', '\\special{", @phtml) . "\']" if ($lang =~ /en/) ; |
8474 | bpr | 247 | anstype($lang) ; |
4882 | bpr | 248 | |
3470 | bpr | 249 | }; |
4870 | bpr | 250 | $EDIT_AERA_OEF .=$EDIT_AERA_OEF_end ; |
11429 | bpr | 251 | $EDIT_AERA_DOC .=$EDIT_AERA_OEF_end ; |
4870 | bpr | 252 | if ($debut_wims==1) {$EDIT_AERA .= "\n" ; $debut_wims=0 } else {$EDIT_AERA .= "\n," }; |
8474 | bpr | 253 | $EDIT_AERA .= " \'wimscommand' : \n[ \' " . join ("\', \'", wimscommand($DOSSIER_wims)) . "']"; |
3461 | bpr | 254 | |
4870 | bpr | 255 | $EDIT_AERA .=$EDIT_AERA_end ; |
256 | out( "$DOSSIER_edit_area/wimsoef.js", $EDIT_AERA_OEF) ; |
||
257 | out( "$DOSSIER_edit_area/wims.js", $EDIT_AERA) ; |
||
11429 | bpr | 258 | out( "$DOSSIER_edit_area/wimsdoc.js", $EDIT_AERA_DOC) ; |
4870 | bpr | 259 | |
3481 | bpr | 260 | sub anstype { my ($lang)=@_ ; |
3831 | bpr | 261 | my %HASH ; |
262 | my %HELP ; |
||
3481 | bpr | 263 | open (IN, "$helpdir/$lang/reply.phtml") ; |
3733 | bpr | 264 | while (<IN>) {my $line = $_; my @t=(); |
3481 | bpr | 265 | next if ($line =~ /^\!set/) ; |
266 | next if !($line) ; |
||
267 | if ($line =~ /\\\n/) { |
||
3733 | bpr | 268 | my @L= split( ',', $line) ; |
3481 | bpr | 269 | my $t1 = $L[0] ; $t1=~ s/\|/,/ ; |
270 | my @ta=split(',',$t1) ; |
||
3733 | bpr | 271 | if ($ta[1]) {@t=split(' ',$ta[1]) ; } else {@t=($L[0])}; |
8474 | bpr | 272 | for my $tag (@t) { $HASH{$tag} = cleanup3($L[1] . ' ' . (($L[2]) ? $L[2]: '')); $HELP{$tag}=$ta[0] ;} |
3481 | bpr | 273 | } |
274 | } |
||
275 | close IN ; |
||
276 | my $text =''; |
||
3831 | bpr | 277 | my $Text = "var anstypename='$name{'anstype'}{$lang}';\n" ; |
3832 | bpr | 278 | my $var=join ("$End{'anstype'}\',\'$Begin{'anstype'}", sort keys(%HASH)) ; |
279 | $Text .="var anstype = [ '$Begin{'anstype'}$var$End{'anstype'}' ];\n" ; |
||
3481 | bpr | 280 | for my $tag (keys(%HASH)){ |
8474 | bpr | 281 | $text .= begin_js("$Begin{'anstype'}$tag$End{'anstype'}") |
3481 | bpr | 282 | . title_js($tag,'title') |
3845 | bpr | 283 | . middle_js($HASH{$tag},'out', $lang) |
3735 | bpr | 284 | . end_js("<a target=\"wims_help\" href=\"wims.cgi?lang=$lang&module=adm%2Fcreatexo&modtoolhelp=yes&+special_parm=reply,$HELP{$tag}\">++>></a>") ; |
3481 | bpr | 285 | } |
286 | $Text .= function_js($text,'anstype') ; |
||
4870 | bpr | 287 | $EDIT_AERA_OEF .= "\n, \'anstype\' : \n[ \' type=" . join ("\', 'type=", sort keys(%HASH)) . "\']" if $lang=~/en/ ; |
288 | out ("$DOSSIER/$lang/anstype" . "_bd\.js", $Text) ; |
||
8474 | bpr | 289 | |
3481 | bpr | 290 | } |
4870 | bpr | 291 | |
3470 | bpr | 292 | sub slib {my ($lang)= @_ ; |
3831 | bpr | 293 | my $Text = "var slibname='$name{'slib'}{$lang}';\n" ; |
3733 | bpr | 294 | my @list_keyword=(); |
3831 | bpr | 295 | my %HASH ; |
3799 | bpr | 296 | my $slibdirhelp="$helpdir/$lang/slib"; |
3461 | bpr | 297 | for my $file (glob("$slibdir/*/*")) { |
3845 | bpr | 298 | #for example file=$slibdir/function/integrate |
3461 | bpr | 299 | $file =~s/$slibdir\///; |
3733 | bpr | 300 | my $text=''; my $tag=''; |
3799 | bpr | 301 | my $filehelp="$slibdirhelp/$file" ; |
302 | if (!open(IN, "$filehelp")) { $filehelp="$slibdirhelp/en/$file"; } |
||
8474 | bpr | 303 | if (!open(IN, "$filehelp")) { $filehelp="$slibdir/$file"; } |
4167 | bpr | 304 | for my $fff ("$slibdir/$file",$filehelp) { |
8474 | bpr | 305 | open (IN, ("$fff")); |
306 | while (<IN>) {my $line=$_; |
||
3461 | bpr | 307 | if ($line=~/^ *!exit/) { last ;} |
308 | if ($line=~ s/^ *slib_(\w+) *=//){ |
||
3735 | bpr | 309 | $tag=$1; |
3461 | bpr | 310 | $line=cleanup($line) ; |
311 | if ($tag=~/parms/) { |
||
312 | $line=~s/\\//; |
||
3831 | bpr | 313 | $HASH{nbparm}{$file}=$line; |
3461 | bpr | 314 | } else |
315 | { |
||
3831 | bpr | 316 | $HASH{$tag}{$file}=$line ; |
3461 | bpr | 317 | } |
318 | } else { |
||
8474 | bpr | 319 | next if !($tag) ; |
3461 | bpr | 320 | if ($tag=~/parms/) { |
321 | chomp $line ; |
||
8474 | bpr | 322 | next if ($line) ; |
3733 | bpr | 323 | my @parm=split(",", $line) ; |
3735 | bpr | 324 | if (($parm[1]) && ($parm[1] =~ s/\\//)) { |
3831 | bpr | 325 | $HASH{$tag}{$file}.= cleanup3($parm[1]) . ","; |
3461 | bpr | 326 | } |
327 | else |
||
3831 | bpr | 328 | { $HASH{$tag}{$file}= (($HASH{$tag}{$file})? $HASH{$tag}{$file}:' ') . (($parm[1]) ? cleanup3($parm[1]):'') ; |
3461 | bpr | 329 | } |
3831 | bpr | 330 | # $HASH{$tag}{$file} .= "\[$parm[0]\]" if ($parm[0]); |
3461 | bpr | 331 | } |
3735 | bpr | 332 | else { |
3831 | bpr | 333 | $HASH{$tag}{$file} .= cleanup($line); |
8474 | bpr | 334 | $tag='' if !($line=~/\\$/) ; |
3461 | bpr | 335 | } |
336 | } |
||
337 | } |
||
338 | close IN; |
||
4167 | bpr | 339 | } |
3831 | bpr | 340 | push @list_keyword, $file if ($HASH{'title'}{$file}); |
3461 | bpr | 341 | $tag=''; |
342 | } |
||
3832 | bpr | 343 | my $var=join ("$End{'slib'}\',\'$Begin{'slib'}", @list_keyword) ; |
8474 | bpr | 344 | $Text .="var slib = [ '$Begin{'slib'}$var$End{'slib'}' ];\n" ; |
3735 | bpr | 345 | my $text='' ; |
3461 | bpr | 346 | for my $file (@list_keyword) { |
3831 | bpr | 347 | next if !($HASH{'title'}{$file}) ; |
348 | my @examples=split("\\\\\\\\",$HASH{'example'}{$file}) if ($HASH{'example'}{$file}); |
||
3461 | bpr | 349 | my $example=''; |
3735 | bpr | 350 | for my $ex (@examples) { |
351 | next if !($ex) ; |
||
3831 | bpr | 352 | $example .="<div class=\"title\">$name{'example'}{$lang}</div><code><font color=\"red\">slib($file</font> $ex <font color=\"red\">)</font></code>" ; |
8474 | bpr | 353 | } |
354 | |||
355 | $text.=begin_js("$Begin{'slib'}$file$End{'slib'}") |
||
3831 | bpr | 356 | . title_js($HASH{'title'}{$file},'title') |
357 | . syntax_js("<font color=\"red\">slib($file</font> " . ($HASH{'parms'}{$file} ? $HASH{'parms'}{$file} : '') . " <font color=\"red\">)</font>",$lang) |
||
358 | . middle_js($HASH{'out'}{$file},'out',$lang) |
||
3735 | bpr | 359 | . middle1_js (cleanup($example),'',$lang) |
360 | . end_js("<a target=\"wims_help\" href=\"wims.cgi?lang=$lang&module=adm%2Fcreatexo&modtoolhelp=yes&special_parm=slib&+slibdet=$file#slib\">++>></a>") ; |
||
8474 | bpr | 361 | $text =cleanup2($text) ; |
3461 | bpr | 362 | } |
363 | $Text .= function_js($text,'slib') ; |
||
364 | out ("$DOSSIER/$lang/slib" . "_bd\.js",$Text) ; |
||
8474 | bpr | 365 | if ($lang=~/en/) { |
4882 | bpr | 366 | if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; |
367 | $EDIT_AERA_OEF .= "\'slib\' : \n[ \'" . join ("\', '", @list_keyword) . "\']" ; |
||
368 | } |
||
3461 | bpr | 369 | } |
370 | ##special methode |
||
371 | sub phtml {my ($dir,$lang,$f,@file)=@_ ; |
||
372 | my $cities=$f; |
||
373 | my %HASH = ( |
||
374 | example => {}, |
||
375 | signification => {}, |
||
376 | syntaxe => {}, |
||
8474 | bpr | 377 | ) ; |
3461 | bpr | 378 | my $text=''; |
3470 | bpr | 379 | my $tag=''; |
3831 | bpr | 380 | my $Text="var specialname= '$name{'special'}{$lang}';\n"; |
3461 | bpr | 381 | for my $meth (@file) { |
8936 | bpr | 382 | #print $meth . "\n"; |
8474 | bpr | 383 | open (IN, "$dir/$meth.phtml"); |
3461 | bpr | 384 | while (<IN>) {my $line=$_; |
385 | next if !($line) ; |
||
386 | if ($line =~ /^:/) { |
||
387 | chomp $line; |
||
388 | $tag=$line; $tag=~ s/://; |
||
8474 | bpr | 389 | } |
3461 | bpr | 390 | else |
391 | { |
||
3831 | bpr | 392 | $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; |
3461 | bpr | 393 | } |
394 | } |
||
395 | } |
||
3733 | bpr | 396 | my $var=join (" }\', \'\\\\special{", @phtml) ; |
3470 | bpr | 397 | ### cas particulier |
398 | my $meth='embed'; |
||
3733 | bpr | 399 | my $embd='\\\\embed{r }' ; |
8474 | bpr | 400 | open (IN, "$helpdir/$lang/embedans.phtml"); |
3470 | bpr | 401 | while (<IN>) {my $line=$_; |
402 | next if !($line) ; |
||
403 | if ($line =~ /^:/) { |
||
404 | chomp $line; |
||
405 | $tag=$line; $tag=~ s/://; |
||
8474 | bpr | 406 | } |
3470 | bpr | 407 | else |
408 | { |
||
3831 | bpr | 409 | $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; |
3470 | bpr | 410 | } |
411 | } |
||
412 | close IN ; |
||
413 | $Text .= "var special= [ '$embd', '\\\\special{$var }'];\n" ; |
||
8474 | bpr | 414 | $text = begin_js("$embd") |
3735 | bpr | 415 | . syntax_js("\\\\embed{r i, option }",$lang) |
3831 | bpr | 416 | . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang) : '') |
417 | . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') |
||
3735 | bpr | 418 | . end_js("") ; |
3470 | bpr | 419 | ## fin cas particulier embed |
3478 | bpr | 420 | for my $meth (@phtml) { |
3461 | bpr | 421 | $text .= begin_js("\\\\special{$meth }") |
8474 | bpr | 422 | . syntax_js("\\\\special{$meth }",$lang) |
3831 | bpr | 423 | . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang ) : '') |
424 | . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') |
||
3735 | bpr | 425 | . end_js("") ; |
8474 | bpr | 426 | |
3461 | bpr | 427 | } |
428 | $Text .= function_js($text,'special') ; |
||
429 | out ("$DOSSIER/$lang/$f" . "_bd\.js",$Text) ; |
||
430 | |||
431 | } |
||
432 | ##file : nom du fichier, n nombre de lignes dans chaque record |
||
3470 | bpr | 433 | sub tableau { my ($file, $lang) = @_ ; |
3461 | bpr | 434 | ### mettre $file à la place ensuite |
3470 | bpr | 435 | my $file1="$helpdir/$lang/$file"; |
436 | my $cities=$file ; |
||
8474 | bpr | 437 | if ($file =~ /if/){ $cities .= 'f' } ; |
3470 | bpr | 438 | my @list_keyword; |
4870 | bpr | 439 | my @List_keyword; |
3470 | bpr | 440 | my $text=''; |
3461 | bpr | 441 | ##bug s'il n'y a pas de documentation |
442 | open (IN, $file1); |
||
3733 | bpr | 443 | my $cnt=0 ;my $nl; |
8474 | bpr | 444 | my $Text = '' ; |
3470 | bpr | 445 | while (<IN>) { my $line=$_; |
446 | chomp $line ; |
||
8474 | bpr | 447 | next if !($line) ; |
11537 | bpr | 448 | next if ($line=~ /^(!!)/); |
449 | if ($line =~ /!changeto/){ die "$file1 should be translated"}; |
||
3470 | bpr | 450 | if ($line =~ s /^://) { |
3461 | bpr | 451 | $cnt ++ ; |
11537 | bpr | 452 | if ($cnt == 1 ) { $Text = "var $cities" . "name= '" . cleanup3($line) . "';\n "; } |
3470 | bpr | 453 | next if $cnt < 3 ; |
454 | $line =~ s/:// ; |
||
3735 | bpr | 455 | if($text) { $text .= end_js("") ;} |
3832 | bpr | 456 | if ($text) {$text .= begin_js($Begin{$file} . $line . $End{$file}) ;} |
3735 | bpr | 457 | else |
3832 | bpr | 458 | { $text = begin_js($Begin{$file} . $line . $End{$file}) ; }; |
3470 | bpr | 459 | push @list_keyword, $line; |
4870 | bpr | 460 | $line =~ s/(\(|\)|\.|,|\[|\]| )//g ; |
461 | push @List_keyword, $line; |
||
3478 | bpr | 462 | $nl=0; |
3470 | bpr | 463 | } |
3461 | bpr | 464 | else { |
8474 | bpr | 465 | next if $cnt<3 ; if ($line =~ /^(\d)/) { my $arg=$1 ; next } |
3470 | bpr | 466 | $nl ++ ; |
467 | $line = cleanup($line); if ($line =~ /help=/) { $line = '' ;} |
||
8474 | bpr | 468 | if ($nl==1 && !($file=~/oefcommand/)){ |
3478 | bpr | 469 | if ($line) { $text .= syntax_js($line,$lang) ; } |
470 | } |
||
471 | else { |
||
4167 | bpr | 472 | if ($line) { $text .= middle_js($line,1,$lang) ; } |
3470 | bpr | 473 | } |
474 | } |
||
3461 | bpr | 475 | } |
476 | close IN ; |
||
3735 | bpr | 477 | $text .= end_js("") ; |
3832 | bpr | 478 | my $var=join ("$End{$file}\', \'$Begin{$file}", @list_keyword) ; |
8474 | bpr | 479 | $Text .="var $cities= [ \'$Begin{$file}$var$End{$file}\' ];\n" |
3461 | bpr | 480 | . function_js($text,$cities) ; |
3470 | bpr | 481 | out ("$DOSSIER/$lang/$cities" . "_bd\.js",$Text) ; |
4870 | bpr | 482 | if ($lang=~/en/){ |
483 | if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; |
||
484 | $EDIT_AERA_OEF .= " \'$cities\' : \n[ \'" . join ("\', '", @List_keyword) . "\']" ; |
||
485 | if ($cities=~ /(iff|oefparm4)/) { |
||
486 | if ($debut_wims==1) {$EDIT_AERA .= "\n" ; $debut_wims=0 } else {$EDIT_AERA .= "\n," }; |
||
487 | push @List_keyword, ('or', 'and') ; |
||
488 | $EDIT_AERA .= " \'compare\' : \n[ \'" . join ("\', '", @List_keyword) . "\']" ; |
||
489 | } |
||
490 | } |
||
3461 | bpr | 491 | } |
492 | |||
4870 | bpr | 493 | sub wimscommand { my ($d) = @_; |
494 | my @wimslist = () ; |
||
8474 | bpr | 495 | for my $file (glob("$d/*")) { |
4870 | bpr | 496 | $file =~ s,$d/,, ; |
497 | $file =~ s,.phtml,, ; |
||
498 | push @wimslist, $file ; |
||
499 | } |
||
500 | push @wimslist, ("endif","next","else") ; |
||
8474 | bpr | 501 | @wimslist ; |
4870 | bpr | 502 | } |
503 | ### subroutine for "editor" |
||
3461 | bpr | 504 | sub begin_js {my ($t)= @_ ; |
505 | "case \'$t\' \:\nchaine_aide=" |
||
506 | } |
||
3478 | bpr | 507 | sub syntax_js {my ($line,$lang)=@_ ; |
3831 | bpr | 508 | "\'<div class=\"syntax\"><div class=\"title\">$name{'syntax'}{$lang}</div><code>$line</code></div>\'+\n" |
3461 | bpr | 509 | } |
4167 | bpr | 510 | sub middle_js {my ($line,$tag,$lang)=@_ ; if(!$line) {$line='' ;} |
3831 | bpr | 511 | if ($tag) { $line="<div class=\"title\">$name{'explanation'}{$lang}</div>$line" } |
3461 | bpr | 512 | "\'<div class=\"explication\">$line</div>\'+\n"; |
513 | } |
||
514 | |||
3478 | bpr | 515 | sub middle1_js {my ($line,$tag,$lang)=@_ ; |
3831 | bpr | 516 | if ($tag) { $line="<div class=\"title\">$name{'example'}{$lang}</div>$line" } |
3461 | bpr | 517 | "\'<div class=\"exemple\">$line</div>\'+\n"; |
518 | } |
||
519 | |||
3478 | bpr | 520 | sub title_js {my ($line,$tag)=@_ ; |
3461 | bpr | 521 | "\'<div class=\"title\">$line</div>\'+\n"; |
522 | } |
||
523 | |||
3735 | bpr | 524 | sub end_js {my ($text)=@_ ; |
525 | "\'$text\' ; return chaine_aide; |
||
3461 | bpr | 526 | break; |
13623 | obado | 527 | ////********************\n |
3735 | bpr | 528 | " |
3461 | bpr | 529 | } |
530 | sub function_js {my ($text,$tag)=@_ ; |
||
531 | "function $tag" . "fun(instruction){ |
||
532 | switch(instruction) |
||
533 | { |
||
534 | $text |
||
535 | } |
||
536 | }" |
||
537 | } |
||
538 | |||
539 | sub cleanup { my ($txt)=@_ ; |
||
3735 | bpr | 540 | return $txt if !($txt) ; |
3762 | bpr | 541 | $txt=~ s/\\\b/\/g ; |
542 | $txt=~ s/\\\(/\(/g ; |
||
543 | $txt=~ s/\\\)/\)/g ; |
||
8474 | bpr | 544 | $txt=~ s,\\,\\\\,g ; |
3461 | bpr | 545 | $txt=~ s/'/\\'/g ; |
546 | $txt=~ s/\n/ /g ; |
||
8474 | bpr | 547 | return $txt ; |
3461 | bpr | 548 | } |
549 | sub cleanup2 {my ($txt)=@_ ; |
||
3735 | bpr | 550 | $txt=~ s/\\\\ / /g if ($txt) ; |
3461 | bpr | 551 | return $txt; |
552 | } |
||
553 | sub cleanup3 {my ($txt)=@_ ; |
||
3735 | bpr | 554 | $txt=~ s/'/\\'/g if ($txt); |
3461 | bpr | 555 | return $txt; |
556 | } |
||
3762 | bpr | 557 | |
558 | |||
3461 | bpr | 559 | sub htmltex { my ($TEXT) = @_ ; |
560 | $TEXT =~ s/<tt>\\/\\ttb{/g; |
||
561 | $TEXT =~ s/_/\\_/g; |
||
562 | $TEXT =~ s/\^/\\^{}/g; |
||
563 | $TEXT =~ s/\&/\\\&/g; |
||
564 | $TEXT =~ s/<(tt)>/\\text$1\{/g; |
||
565 | $TEXT =~ s/<(em|i)>/\\textit\{/g; |
||
566 | $TEXT =~ s/<b>/\\textbf\{/g; |
||
567 | $TEXT =~ s'</(b|tt|em|i)>'}'g; |
||
11537 | bpr | 568 | $TEXT =~ s/<br\s*\/?>/\\par /g; |
3461 | bpr | 569 | $TEXT =~ s/<p>/\\par /g; |
570 | $TEXT =~ s/<\/p>/\\par /g; |
||
571 | $TEXT =~ s/<ul>/\\begin{itemize}\n /g; |
||
572 | $TEXT =~ s/<\/ul>/\\end{itemize}\n /g; |
||
573 | $TEXT =~ s/<ol>/\\begin{enumerate}\n /g; |
||
574 | $TEXT =~ s/<\/ol>/\\end{enumerate}\n /g; |
||
575 | $TEXT =~ s/<li>/\\item /g; |
||
576 | $TEXT =~ s/<\/li>/\n /g; |
||
577 | $TEXT =~ s/<\/center>/\\end{center}\n /g; |
||
578 | $TEXT =~ s/<center>/\\begin{center}\n /g; |
||
579 | $TEXT =~ s/<\/center>/\n /g; |
||
580 | $TEXT =~ s/<center>/\n /g; |
||
581 | $TEXT =~ s/<table[^>]*>/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline /g; |
||
582 | $TEXT =~ s/<\/table>/\\\\ \\hline \\end{tabular} \\end{table}/g; |
||
583 | $TEXT =~ s/\$table_tr/\\\\\\hline /g; |
||
584 | $TEXT =~ s/\$table_hdtr/\\\\ \\hline/g; |
||
8474 | bpr | 585 | $TEXT =~ s/\$table_header/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline/g ; |
3461 | bpr | 586 | $TEXT =~ s/\$table_end/\\end{tabular}\\end{table}/g; |
587 | #$TEXT =~ s/<caption>/\\caption\{ /g; |
||
588 | #$TEXT =~ s/<\/caption>/\}\n /g; |
||
589 | $TEXT =~ s/<tr[^>]*>/\\\\/g; |
||
590 | $TEXT =~ s/<\/tr>/\\\\/g; |
||
591 | $TEXT =~ s/<(td|th) colspan=(\d)( nowrap)?>/\\multicolumn{$2}{|c|}{/g; |
||
592 | $TEXT =~ s/<\/(td|th)>/&/g; |
||
593 | $TEXT =~ s/<(td|th)[^>]*>/&/g; |
||
594 | $TEXT =~ s/&&/&/g; |
||
595 | $TEXT =~ s/\_/_/g; |
||
596 | $TEXT =~ s/&/\\&/g; |
||
597 | $TEXT =~ s'\\\\&'\\\\'g; |
||
598 | $TEXT =~ s/ / /g; |
||
599 | $TEXT =~ s/é/é/g; |
||
600 | $TEXT =~ s/è/è/g; |
||
601 | $TEXT =~ s/à/à/g; |
||
602 | $TEXT =~ s/ê/ê/g; |
||
603 | $TEXT =~ s/</</g; |
||
604 | $TEXT =~ s/<(H|h)3>/\\subsection{/g; |
||
605 | $TEXT =~ s/<\/(H|h)3>/}/g; |
||
606 | $TEXT =~ s/<(H|h)4>/\\subsubsection{/g; |
||
607 | $TEXT =~ s/<\/(H|h)4>/}/g; |
||
608 | $TEXT =~ s/<(H|h)2>/\\section{/g; |
||
609 | $TEXT =~ s/<\/(H|h)2>/}/g; |
||
610 | $TEXT =~ s/>/>/g; |
||
611 | $TEXT =~ s/\#//g; |
||
612 | $TEXT =~ s/<hr>/\\hrule/g; |
||
613 | $TEXT =~ s/<pre>/\\begin{verbatim}/g; |
||
614 | $TEXT =~ s/<\/pre>/\\end{verbatim}/g; |
||
615 | $TEXT =~ s/\n{3,}/\n\n/g; |
||
616 | $TEXT =~ s/<a[^>]+>([^<]+)<\/a>/\\url{$1}/g; |
||
617 | |||
8474 | bpr | 618 | $TEXT ; |
3461 | bpr | 619 | } |
620 | |||
621 | sub out { my ($bloc, $text) = @_ ; |
||
8474 | bpr | 622 | open (OUT, ">$bloc") || die "peut pas créer $bloc"; |
623 | print OUT "<!-- Automatically generated by bin/oefdoc.pl -->\n" . $text ; close OUT ; |
||
3461 | bpr | 624 | } |
625 | |||
3481 | bpr | 626 | sub sortuniq { |
627 | my $prev = "not $_[0]"; |
||
628 | grep { $_ ne $prev && ($prev = $_, 1) } sort @_; |
||
3505 | czzmrn | 629 | } |