Rev 14239 | 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 | |
15046 | georgesk | 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) { |
15046 | georgesk | 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)=@_ ; |
13905 | bpr | 261 | my %HASH ; |
262 | my %HELP ; |
||
263 | open (IN, "$helpdir/$lang/reply.phtml") ; |
||
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] ;} |
13905 | bpr | 273 | } |
274 | } |
||
275 | close IN ; |
||
276 | my $text =''; |
||
277 | my $Text = "var anstypename='$name{'anstype'}{$lang}';\n" ; |
||
278 | my $var=join ("$End{'anstype'}\',\'$Begin{'anstype'}", sort keys(%HASH)) ; |
||
279 | $Text .="var anstype = [ '$Begin{'anstype'}$var$End{'anstype'}' ];\n" ; |
||
280 | for my $tag (keys(%HASH)){ |
||
281 | $text .= begin_js("$Begin{'anstype'}$tag$End{'anstype'}") |
||
282 | . title_js($tag,'title') |
||
283 | . middle_js($HASH{$tag},'out', $lang) |
||
284 | . end_js("<a target=\"wims_help\" href=\"wims.cgi?lang=$lang&module=adm%2Fcreatexo&modtoolhelp=yes&+special_parm=reply,$HELP{$tag}\">++>></a>") ; |
||
285 | } |
||
286 | $Text .= function_js($text,'anstype') ; |
||
287 | $EDIT_AERA_OEF .= "\n, \'anstype\' : \n[ \' type=" . join ("\', 'type=", sort keys(%HASH)) . "\']" if $lang=~/en/ ; |
||
288 | out ("$DOSSIER/$lang/anstype" . "_bd\.js", $Text) ; |
||
3481 | bpr | 289 | } |
4870 | bpr | 290 | |
3470 | bpr | 291 | sub slib {my ($lang)= @_ ; |
13905 | bpr | 292 | my $Text = "var slibname='$name{'slib'}{$lang}';\n" ; |
293 | my @list_keyword=(); |
||
294 | my %HASH ; |
||
295 | my $slibdirhelp="$helpdir/$lang/slib"; |
||
296 | for my $file (glob("$slibdir/*/*")) { |
||
297 | #for example file=$slibdir/function/integrate |
||
298 | $file =~s/$slibdir\///; |
||
299 | my $text=''; my $tag=''; |
||
300 | my $filehelp="$slibdirhelp/$file" ; |
||
301 | if (!open(IN, "$filehelp")) { $filehelp="$slibdirhelp/en/$file"; } |
||
302 | if (!open(IN, "$filehelp")) { $filehelp="$slibdir/$file"; } |
||
303 | for my $fff ("$slibdir/$file",$filehelp) { |
||
304 | open (IN, ("$fff")); |
||
305 | while (<IN>) {my $line=$_; |
||
306 | if ($line=~/^ *!exit/) { last ;} |
||
307 | if ($line=~ s/^ *slib_(\w+) *=//){ |
||
308 | $tag=$1; |
||
309 | $line=cleanup($line) ; |
||
310 | if ($tag=~/parms/) { |
||
311 | $line=~s/\\//; |
||
312 | $HASH{nbparm}{$file}=$line; |
||
313 | } else |
||
314 | { |
||
315 | $HASH{$tag}{$file}=$line ; |
||
316 | } |
||
317 | } else { |
||
318 | next if !($tag) ; |
||
319 | if ($tag=~/parms/) { |
||
320 | chomp $line ; |
||
321 | next if ($line) ; |
||
322 | my @parm=split(",", $line) ; |
||
323 | if (($parm[1]) && ($parm[1] =~ s/\\//)) { |
||
324 | $HASH{$tag}{$file}.= cleanup3($parm[1]) . ","; |
||
325 | } |
||
326 | else { |
||
327 | $HASH{$tag}{$file}= (($HASH{$tag}{$file})? $HASH{$tag}{$file}:' ') . (($parm[1]) ? cleanup3($parm[1]):'') ; |
||
328 | } |
||
329 | # $HASH{$tag}{$file} .= "\[$parm[0]\]" if ($parm[0]); |
||
330 | } |
||
331 | else { |
||
332 | $HASH{$tag}{$file} .= cleanup($line); |
||
333 | $tag='' if !($line=~/\\$/) ; |
||
334 | } |
||
335 | } |
||
336 | } |
||
337 | close IN; |
||
338 | } |
||
3831 | bpr | 339 | push @list_keyword, $file if ($HASH{'title'}{$file}); |
13905 | bpr | 340 | $tag=''; |
341 | } |
||
3832 | bpr | 342 | my $var=join ("$End{'slib'}\',\'$Begin{'slib'}", @list_keyword) ; |
8474 | bpr | 343 | $Text .="var slib = [ '$Begin{'slib'}$var$End{'slib'}' ];\n" ; |
3735 | bpr | 344 | my $text='' ; |
3461 | bpr | 345 | for my $file (@list_keyword) { |
3831 | bpr | 346 | next if !($HASH{'title'}{$file}) ; |
347 | my @examples=split("\\\\\\\\",$HASH{'example'}{$file}) if ($HASH{'example'}{$file}); |
||
3461 | bpr | 348 | my $example=''; |
3735 | bpr | 349 | for my $ex (@examples) { |
350 | next if !($ex) ; |
||
3831 | bpr | 351 | $example .="<div class=\"title\">$name{'example'}{$lang}</div><code><font color=\"red\">slib($file</font> $ex <font color=\"red\">)</font></code>" ; |
8474 | bpr | 352 | } |
353 | |||
354 | $text.=begin_js("$Begin{'slib'}$file$End{'slib'}") |
||
3831 | bpr | 355 | . title_js($HASH{'title'}{$file},'title') |
356 | . syntax_js("<font color=\"red\">slib($file</font> " . ($HASH{'parms'}{$file} ? $HASH{'parms'}{$file} : '') . " <font color=\"red\">)</font>",$lang) |
||
357 | . middle_js($HASH{'out'}{$file},'out',$lang) |
||
3735 | bpr | 358 | . middle1_js (cleanup($example),'',$lang) |
359 | . 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 | 360 | $text =cleanup2($text) ; |
3461 | bpr | 361 | } |
362 | $Text .= function_js($text,'slib') ; |
||
363 | out ("$DOSSIER/$lang/slib" . "_bd\.js",$Text) ; |
||
8474 | bpr | 364 | if ($lang=~/en/) { |
4882 | bpr | 365 | if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; |
366 | $EDIT_AERA_OEF .= "\'slib\' : \n[ \'" . join ("\', '", @list_keyword) . "\']" ; |
||
367 | } |
||
3461 | bpr | 368 | } |
369 | ##special methode |
||
370 | sub phtml {my ($dir,$lang,$f,@file)=@_ ; |
||
371 | my $cities=$f; |
||
372 | my %HASH = ( |
||
373 | example => {}, |
||
374 | signification => {}, |
||
375 | syntaxe => {}, |
||
8474 | bpr | 376 | ) ; |
3461 | bpr | 377 | my $text=''; |
3470 | bpr | 378 | my $tag=''; |
3831 | bpr | 379 | my $Text="var specialname= '$name{'special'}{$lang}';\n"; |
3461 | bpr | 380 | for my $meth (@file) { |
8936 | bpr | 381 | #print $meth . "\n"; |
8474 | bpr | 382 | open (IN, "$dir/$meth.phtml"); |
3461 | bpr | 383 | while (<IN>) {my $line=$_; |
384 | next if !($line) ; |
||
385 | if ($line =~ /^:/) { |
||
386 | chomp $line; |
||
387 | $tag=$line; $tag=~ s/://; |
||
8474 | bpr | 388 | } |
3461 | bpr | 389 | else |
390 | { |
||
3831 | bpr | 391 | $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; |
3461 | bpr | 392 | } |
393 | } |
||
394 | } |
||
3733 | bpr | 395 | my $var=join (" }\', \'\\\\special{", @phtml) ; |
3470 | bpr | 396 | ### cas particulier |
397 | my $meth='embed'; |
||
3733 | bpr | 398 | my $embd='\\\\embed{r }' ; |
8474 | bpr | 399 | open (IN, "$helpdir/$lang/embedans.phtml"); |
3470 | bpr | 400 | while (<IN>) {my $line=$_; |
401 | next if !($line) ; |
||
402 | if ($line =~ /^:/) { |
||
403 | chomp $line; |
||
404 | $tag=$line; $tag=~ s/://; |
||
8474 | bpr | 405 | } |
3470 | bpr | 406 | else |
407 | { |
||
3831 | bpr | 408 | $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; |
3470 | bpr | 409 | } |
410 | } |
||
411 | close IN ; |
||
412 | $Text .= "var special= [ '$embd', '\\\\special{$var }'];\n" ; |
||
8474 | bpr | 413 | $text = begin_js("$embd") |
3735 | bpr | 414 | . syntax_js("\\\\embed{r i, option }",$lang) |
3831 | bpr | 415 | . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang) : '') |
416 | . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') |
||
3735 | bpr | 417 | . end_js("") ; |
3470 | bpr | 418 | ## fin cas particulier embed |
3478 | bpr | 419 | for my $meth (@phtml) { |
3461 | bpr | 420 | $text .= begin_js("\\\\special{$meth }") |
8474 | bpr | 421 | . syntax_js("\\\\special{$meth }",$lang) |
3831 | bpr | 422 | . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang ) : '') |
423 | . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') |
||
3735 | bpr | 424 | . end_js("") ; |
8474 | bpr | 425 | |
3461 | bpr | 426 | } |
427 | $Text .= function_js($text,'special') ; |
||
428 | out ("$DOSSIER/$lang/$f" . "_bd\.js",$Text) ; |
||
429 | |||
430 | } |
||
431 | ##file : nom du fichier, n nombre de lignes dans chaque record |
||
3470 | bpr | 432 | sub tableau { my ($file, $lang) = @_ ; |
13905 | bpr | 433 | ### mettre $file à la place ensuite |
3470 | bpr | 434 | my $file1="$helpdir/$lang/$file"; |
435 | my $cities=$file ; |
||
8474 | bpr | 436 | if ($file =~ /if/){ $cities .= 'f' } ; |
3470 | bpr | 437 | my @list_keyword; |
4870 | bpr | 438 | my @List_keyword; |
3470 | bpr | 439 | my $text=''; |
13905 | bpr | 440 | ##bug s'il n'y a pas de documentation |
3461 | bpr | 441 | open (IN, $file1); |
3733 | bpr | 442 | my $cnt=0 ;my $nl; |
8474 | bpr | 443 | my $Text = '' ; |
3470 | bpr | 444 | while (<IN>) { my $line=$_; |
13905 | bpr | 445 | chomp $line ; |
446 | next if !($line) ; |
||
447 | next if ($line=~ /^(!!)/); |
||
448 | if ($line =~ /!changeto/){ die "$file1 should be translated"}; |
||
449 | if ($line =~ s /^://) { |
||
450 | $cnt ++ ; |
||
451 | if ($cnt == 1 ) { $Text = "var $cities" . "name= '" . cleanup3($line) . "';\n "; } |
||
452 | next if $cnt < 3 ; |
||
453 | $line =~ s/:// ; |
||
454 | if($text) { $text .= end_js("") ;} |
||
455 | if ($text) {$text .= begin_js($Begin{$file} . $line . $End{$file}) ;} |
||
456 | else |
||
457 | { $text = begin_js($Begin{$file} . $line . $End{$file}) ; }; |
||
458 | push @list_keyword, $line; |
||
459 | $line =~ s/(\(|\)|\.|,|\[|\]| )//g ; |
||
460 | push @List_keyword, $line; |
||
461 | $nl=0; |
||
462 | } |
||
463 | else { |
||
464 | next if $cnt<3 ; if ($line =~ /^(\d)/) { my $arg=$1 ; next } |
||
465 | $nl ++ ; |
||
466 | $line = cleanup($line); if ($line =~ /help=/) { $line = '' ;} |
||
467 | if ($nl==1 && !($file=~/oefcommand/)){ |
||
468 | if ($line) { $text .= syntax_js($line,$lang) ; } |
||
469 | } |
||
470 | else { |
||
471 | if ($line) { $text .= middle_js($line,1,$lang) ; } |
||
472 | } |
||
473 | } |
||
474 | } |
||
3461 | bpr | 475 | close IN ; |
13905 | bpr | 476 | $text .= end_js("") ; |
3832 | bpr | 477 | my $var=join ("$End{$file}\', \'$Begin{$file}", @list_keyword) ; |
8474 | bpr | 478 | $Text .="var $cities= [ \'$Begin{$file}$var$End{$file}\' ];\n" |
13905 | bpr | 479 | . function_js($text,$cities) ; |
3470 | bpr | 480 | out ("$DOSSIER/$lang/$cities" . "_bd\.js",$Text) ; |
13905 | bpr | 481 | if ($lang=~/en/){ |
482 | if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; |
||
483 | $EDIT_AERA_OEF .= " \'$cities\' : \n[ \'" . join ("\', '", @List_keyword) . "\']" ; |
||
484 | if ($cities=~ /(iff|oefparm4)/) { |
||
485 | if ($debut_wims==1) {$EDIT_AERA .= "\n" ; $debut_wims=0 } else {$EDIT_AERA .= "\n," }; |
||
486 | push @List_keyword, ('or', 'and') ; |
||
487 | $EDIT_AERA .= " \'compare\' : \n[ \'" . join ("\', '", @List_keyword) . "\']" ; |
||
488 | } |
||
4870 | bpr | 489 | } |
3461 | bpr | 490 | } |
491 | |||
4870 | bpr | 492 | sub wimscommand { my ($d) = @_; |
493 | my @wimslist = () ; |
||
8474 | bpr | 494 | for my $file (glob("$d/*")) { |
4870 | bpr | 495 | $file =~ s,$d/,, ; |
496 | $file =~ s,.phtml,, ; |
||
497 | push @wimslist, $file ; |
||
498 | } |
||
499 | push @wimslist, ("endif","next","else") ; |
||
8474 | bpr | 500 | @wimslist ; |
4870 | bpr | 501 | } |
502 | ### subroutine for "editor" |
||
3461 | bpr | 503 | sub begin_js {my ($t)= @_ ; |
14239 | obado | 504 | "\n case \'$t\' \:\n chaine_aide=" |
3461 | bpr | 505 | } |
3478 | bpr | 506 | sub syntax_js {my ($line,$lang)=@_ ; |
13905 | bpr | 507 | "\'<div class=\"syntax\"><div class=\"title\">$name{'syntax'}{$lang}</div><code>$line</code></div>\'+\n" |
3461 | bpr | 508 | } |
13905 | bpr | 509 | sub middle_js {my ($line,$tag,$lang)=@_ ; |
510 | if(!$line) {$line='' ;} |
||
511 | if ($tag) { $line="<div class=\"title\">$name{'explanation'}{$lang}</div>$line" } |
||
512 | "\'<div class=\"explication\">$line</div>\'+\n"; |
||
3461 | bpr | 513 | } |
514 | |||
3478 | bpr | 515 | sub middle1_js {my ($line,$tag,$lang)=@_ ; |
13905 | bpr | 516 | if ($tag) { $line="<div class=\"title\">$name{'example'}{$lang}</div>$line" } |
517 | "\'<div class=\"exemple\">$line</div>\'+\n"; |
||
3461 | bpr | 518 | } |
519 | |||
3478 | bpr | 520 | sub title_js {my ($line,$tag)=@_ ; |
13905 | bpr | 521 | "\'<div class=\"title\">$line</div>\'+\n"; |
3461 | bpr | 522 | } |
523 | |||
3735 | bpr | 524 | sub end_js {my ($text)=@_ ; |
525 | "\'$text\' ; return chaine_aide; |
||
3461 | bpr | 526 | break; |
14239 | obado | 527 | ////********************" |
3461 | bpr | 528 | } |
529 | sub function_js {my ($text,$tag)=@_ ; |
||
14239 | obado | 530 | "function $tag" . "fun(instruction){ |
531 | switch(instruction){$text\n }\n}" |
||
3461 | bpr | 532 | } |
533 | |||
534 | sub cleanup { my ($txt)=@_ ; |
||
3735 | bpr | 535 | return $txt if !($txt) ; |
3762 | bpr | 536 | $txt=~ s/\\\b/\/g ; |
537 | $txt=~ s/\\\(/\(/g ; |
||
538 | $txt=~ s/\\\)/\)/g ; |
||
8474 | bpr | 539 | $txt=~ s,\\,\\\\,g ; |
3461 | bpr | 540 | $txt=~ s/'/\\'/g ; |
541 | $txt=~ s/\n/ /g ; |
||
8474 | bpr | 542 | return $txt ; |
3461 | bpr | 543 | } |
544 | sub cleanup2 {my ($txt)=@_ ; |
||
3735 | bpr | 545 | $txt=~ s/\\\\ / /g if ($txt) ; |
3461 | bpr | 546 | return $txt; |
547 | } |
||
548 | sub cleanup3 {my ($txt)=@_ ; |
||
3735 | bpr | 549 | $txt=~ s/'/\\'/g if ($txt); |
3461 | bpr | 550 | return $txt; |
551 | } |
||
3762 | bpr | 552 | |
553 | |||
3461 | bpr | 554 | sub htmltex { my ($TEXT) = @_ ; |
555 | $TEXT =~ s/<tt>\\/\\ttb{/g; |
||
556 | $TEXT =~ s/_/\\_/g; |
||
557 | $TEXT =~ s/\^/\\^{}/g; |
||
558 | $TEXT =~ s/\&/\\\&/g; |
||
559 | $TEXT =~ s/<(tt)>/\\text$1\{/g; |
||
560 | $TEXT =~ s/<(em|i)>/\\textit\{/g; |
||
561 | $TEXT =~ s/<b>/\\textbf\{/g; |
||
562 | $TEXT =~ s'</(b|tt|em|i)>'}'g; |
||
11537 | bpr | 563 | $TEXT =~ s/<br\s*\/?>/\\par /g; |
3461 | bpr | 564 | $TEXT =~ s/<p>/\\par /g; |
565 | $TEXT =~ s/<\/p>/\\par /g; |
||
566 | $TEXT =~ s/<ul>/\\begin{itemize}\n /g; |
||
567 | $TEXT =~ s/<\/ul>/\\end{itemize}\n /g; |
||
568 | $TEXT =~ s/<ol>/\\begin{enumerate}\n /g; |
||
569 | $TEXT =~ s/<\/ol>/\\end{enumerate}\n /g; |
||
570 | $TEXT =~ s/<li>/\\item /g; |
||
571 | $TEXT =~ s/<\/li>/\n /g; |
||
572 | $TEXT =~ s/<\/center>/\\end{center}\n /g; |
||
573 | $TEXT =~ s/<center>/\\begin{center}\n /g; |
||
574 | $TEXT =~ s/<\/center>/\n /g; |
||
575 | $TEXT =~ s/<center>/\n /g; |
||
576 | $TEXT =~ s/<table[^>]*>/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline /g; |
||
577 | $TEXT =~ s/<\/table>/\\\\ \\hline \\end{tabular} \\end{table}/g; |
||
578 | $TEXT =~ s/\$table_tr/\\\\\\hline /g; |
||
579 | $TEXT =~ s/\$table_hdtr/\\\\ \\hline/g; |
||
8474 | bpr | 580 | $TEXT =~ s/\$table_header/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline/g ; |
3461 | bpr | 581 | $TEXT =~ s/\$table_end/\\end{tabular}\\end{table}/g; |
582 | #$TEXT =~ s/<caption>/\\caption\{ /g; |
||
583 | #$TEXT =~ s/<\/caption>/\}\n /g; |
||
584 | $TEXT =~ s/<tr[^>]*>/\\\\/g; |
||
585 | $TEXT =~ s/<\/tr>/\\\\/g; |
||
586 | $TEXT =~ s/<(td|th) colspan=(\d)( nowrap)?>/\\multicolumn{$2}{|c|}{/g; |
||
587 | $TEXT =~ s/<\/(td|th)>/&/g; |
||
588 | $TEXT =~ s/<(td|th)[^>]*>/&/g; |
||
589 | $TEXT =~ s/&&/&/g; |
||
590 | $TEXT =~ s/\_/_/g; |
||
591 | $TEXT =~ s/&/\\&/g; |
||
592 | $TEXT =~ s'\\\\&'\\\\'g; |
||
593 | $TEXT =~ s/ / /g; |
||
594 | $TEXT =~ s/é/é/g; |
||
595 | $TEXT =~ s/è/è/g; |
||
596 | $TEXT =~ s/à/à/g; |
||
597 | $TEXT =~ s/ê/ê/g; |
||
598 | $TEXT =~ s/</</g; |
||
599 | $TEXT =~ s/<(H|h)3>/\\subsection{/g; |
||
600 | $TEXT =~ s/<\/(H|h)3>/}/g; |
||
601 | $TEXT =~ s/<(H|h)4>/\\subsubsection{/g; |
||
602 | $TEXT =~ s/<\/(H|h)4>/}/g; |
||
603 | $TEXT =~ s/<(H|h)2>/\\section{/g; |
||
604 | $TEXT =~ s/<\/(H|h)2>/}/g; |
||
605 | $TEXT =~ s/>/>/g; |
||
606 | $TEXT =~ s/\#//g; |
||
607 | $TEXT =~ s/<hr>/\\hrule/g; |
||
608 | $TEXT =~ s/<pre>/\\begin{verbatim}/g; |
||
609 | $TEXT =~ s/<\/pre>/\\end{verbatim}/g; |
||
610 | $TEXT =~ s/\n{3,}/\n\n/g; |
||
611 | $TEXT =~ s/<a[^>]+>([^<]+)<\/a>/\\url{$1}/g; |
||
612 | |||
8474 | bpr | 613 | $TEXT ; |
3461 | bpr | 614 | } |
615 | |||
616 | sub out { my ($bloc, $text) = @_ ; |
||
8474 | bpr | 617 | open (OUT, ">$bloc") || die "peut pas créer $bloc"; |
14239 | obado | 618 | print OUT "/* Automatically generated by bin/oefdoc.pl */\n" . $text ; close OUT ; |
3461 | bpr | 619 | } |
620 | |||
3481 | bpr | 621 | sub sortuniq { |
622 | my $prev = "not $_[0]"; |
||
623 | grep { $_ ne $prev && ($prev = $_, 1) } sort @_; |
||
3505 | czzmrn | 624 | } |