Rev 9071 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
32 | reyssat | 1 | |
2 | <ol> |
||
3 | $tit Write html pages with a programmability extension: substitution of |
||
4 | variables, conditional branching, etc.$titend |
||
5 | This wims programmability extension to html does not require any |
||
6 | addon or plugin at the browser side, as all the wims commands are treated |
||
7 | by the wims server before sending the result to the browser, which will |
||
5766 | bpr | 8 | be a standard html page. <br/> |
32 | reyssat | 9 | For example, this allows you to define style macros which can be |
5766 | bpr | 10 | dynamically changed. <br/> |
32 | reyssat | 11 | And this extension can cohabit with all the current (and hopefully |
12 | future) html standards, including java applets, javascripts, embedded |
||
13 | objects, |
||
14 | dhtml... This is because the wims extension follows a strict line |
||
15 | discipline (i.e. a wims command must start at the first word of a line), |
||
5766 | bpr | 16 | while html standard is not line-oriented. <br/> |
9071 | bpr | 17 | This means that you can even embed wims extensions into javascripts, |
32 | reyssat | 18 | applets, dhtml... |
9071 | bpr | 19 | </li> |
32 | reyssat | 20 | $tit Dynamic insertions of paints, plots and TeX formatted mathematical |
21 | formulas into html pages. $titend |
||
9071 | bpr | 22 | For example, you may insert the following line into your wims-extended html |
23 | page. At the browser side, the visitor will see a TeX formatted matrix |
||
32 | reyssat | 24 | whose content varies with the value of the variable $emph $$matrix$emphend: |
25 | <pre> |
||
26 | $ !instex $$$$ \left( $$matrix \right) $$$$</pre> |
||
27 | Moreover, this implementation of dynamic insertions makes future updates |
||
28 | possible without modification at module's level. (For example when a |
||
29 | better way to render mathematical formula is available, a simple |
||
30 | modification at server's level will immediately let all $emph!instex |
||
31 | $emphend lines take benefit of the new standard.) |
||
9071 | bpr | 32 | </li> |
32 | reyssat | 33 | $tit Insplot is now animated!$titend |
34 | Exemple: the tool |
||
35 | !href module=tool/geometry/animtrace.$lang&cmd=intro Tracés Animés |
||
36 | . |
||
9071 | bpr | 37 | </li> |
32 | reyssat | 38 | $tit Direct interfaces to powerful external software packages.$titend |
39 | For example, you may define a variable `factor' by the following line: |
||
40 | <pre> |
||
41 | factor=!exec pari print(factor($$number))</pre> |
||
42 | Upon execution of this line, the variable $number will be replaced by |
||
43 | its current value, then the software package `PARI' will be called |
||
44 | with the string `print(factor(<value of $$number>))' as command to |
||
45 | execute. The output of the program, with the overheads stripped, will |
||
5766 | bpr | 46 | be placed as the value of the variable `factor'. <br/> |
32 | reyssat | 47 | Interfaces provided in version $wims_version of wims: PARI, Maxima, MuPAD, |
48 | Coq, Povray, gnuplot, PostgreSQL, Fly (gif drawing), CALC (by Keith Matthew). |
||
9071 | bpr | 49 | </li> |
32 | reyssat | 50 | $tit Simple and versatile language.$titend |
51 | The language used for wims modules is an extension of the existing and |
||
9071 | bpr | 52 | popular html language. This extension is designed to be simple, |
32 | reyssat | 53 | easy to use and close to natural language. Synonymes are accepted |
54 | whenever necessary. For example, to include the content of another |
||
55 | file, you don't have to remember whether the command is |
||
9071 | bpr | 56 | $emph include$emphend as in C, or $emph input$emphend as in TeX, |
32 | reyssat | 57 | because both are valid. |
9071 | bpr | 58 | </li> |
32 | reyssat | 59 | $tit Convenient directives for string manipulations:$titend |
60 | replace with regular |
||
61 | expression capability, extraction of a subset from a list of items, |
||
62 | shuffle, evaluation of mathematical expressions, etc. |
||
9071 | bpr | 63 | </li> |
32 | reyssat | 64 | $tit Easy inline mathematical symbols:$titend |
5921 | bpr | 65 | simply type <span class="tt">$$m_pi</span> for $m_pi, <span class="tt">$$m_RR</span> for |
14535 | bpr | 66 | $m_RR, <span class="tt">$$m_le</span> for |
5921 | bpr | 67 | $m_le, <span class="tt">$$m_Rightarrow</span> for $m_Rightarrow, etc. |
9071 | bpr | 68 | </li> |
32 | reyssat | 69 | $tit Intelligent treatment of mathematical expressions:$titend |
70 | built-in translation routines to allow error-tolerant expressions |
||
5921 | bpr | 71 | like <span class="tt">2y</span> (instead of <span class="tt">2*y</span>) or <span class="tt">(x+1)(x-1)</span> |
72 | (instead of <span class="tt">(x+1)*(x-1)</span>), and translations of raw mathematical |
||
73 | expressions into beautified html sources (<span class="tt">x^3-3*x^2+1*x-5</span> |
||
32 | reyssat | 74 | will become $emph |
75 | !htmlmath x^3-3*x^2+1*x-5 |
||
76 | $emphend, |
||
77 | etc.), or TeX sources, etc. |
||
9071 | bpr | 78 | </li> |
32 | reyssat | 79 | $tit Powerful random capabilities:$titend |
80 | random permutation (shuffle), random |
||
81 | record from a datafile, random filename, etc. |
||
9071 | bpr | 82 | </li> |
32 | reyssat | 83 | </ol> |