Changeset 109496 in spip-zone


Ignore:
Timestamp:
Mar 14, 2018, 3:07:11 PM (14 months ago)
Author:
pierrekuhn82@…
Message:

Mise en page du code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/convertisseur/trunk/inc/convertisseur.php

    r109475 r109496  
    4747}
    4848
    49         // -----------------------------------------------------------------------
    50         // Definition des regex pour les Conversions
    51         // -----------------------------------------------------------------------
    52         global $conv_formats;       // les regex à appliquer
    53         global $conv_functions_pre; // les functions à appliquer avant les regex
    54 
    55         $conv_formats = $conv_functions_pre = array();
    56 
    57         // syntaxe SPIP
    58         // https://contrib.spip.net/IMG/html/antiseche_spip-3.html
    59 
     49// -----------------------------------------------------------------------
     50// Definition des regex pour les Conversions
     51// -----------------------------------------------------------------------
     52global $conv_formats;       // les regex à appliquer
     53global $conv_functions_pre; // les functions à appliquer avant les regex
     54
     55$conv_formats = $conv_functions_pre = array();
     56
     57// syntaxe SPIP
     58// https://contrib.spip.net/IMG/html/antiseche_spip-3.html
     59
     60//
     61//  Les conversions qqchose .... vers SPIP
     62//
     63
     64// Conversion MediaWiki -> SPIP
     65// ref. syntaxe: http://www.mediawiki.org/wiki/Help:Formatting
     66$conv_functions_pre['MediaWiki_SPIP'] = array("convertisseur_add_ln","mediawiki_doQuotes");
     67$conv_formats['MediaWiki_SPIP'] = array(
     68        "pattern" => array(
     69                'model'  => "%\{\{([^\}\}]*)\}\}%",   // FIXME si template ds template
     70                 // applies anywhere
     71                'ib' => "%<i><b>([^<]*)</b></i>%",
     72                'b' => "%<b>([^<]*)</b>%",
     73                'i'   => "%<i>([^<]*)</i>%",
     74                'ib_post' => "%<ib>([^<]*)</ib>%",
     75                // only at the beginning of the line
     76                'h4'     => "%\n=====([^=]*)=====%",
     77                'h3'     => "%\n====([^=]*)====%",
     78                'h2'     => "%\n===([^=]*)===%",
     79                'h1'     => "%\n==([^=]*)==%",
     80                'ul_3'     => "%\n\*\*\*#%",
     81                'ul_2'     => "%\n\*\*#%",
     82                'ul_1'     => "%\n\*#%",
     83                'ol_3'     => "%\n\#\#\#%",
     84                'ol_2'     => "%\n\#\#%",
     85                'ol_1'     => "%\n\#%",
     86                'dt'     => "%\n\;([^\r]*)%",
     87                'dd'     => "%\n\:([^\r]*)%",
     88                // TODO: Preformatted text
     89
     90                // links - http://www.mediawiki.org/wiki/Help:Links
     91                'comment' => "%<!--([^\-]*)-->%",
     92                'link_img'  => "%\[\[(Image|Media):([^\[\[]*)\]\]%",
     93                'link_cat'  => "%\[\[(Category|Catégorie|:Category):([^\[\[]*)\]\]%",
     94                'link_user'  => "%\[\[(Utilisateur|User):([^|\[]*)\|([^\[]*)\]\]%",  // avec pipe
     95                'link_user2'  => "%\[\[(Utilisateur|User):([^\[]*)\]\]%",
     96                'link_lang'  => "%\[\[([^\:\[]*):([^\[]*)\]\]%",
     97                'link_int'  => "%\[\[([^|\[]*)\|([^\[]*)\]\]%",                     // avec pipe
     98                'link_int2'  => "%\[\[([^\[\[]*)\]\]%",
     99                'link_ext0'  => "%\nhttp([^ \r]*)%",
     100                'link_ext1'  => "% http([^ \r]*)%",
     101                'link_ext2'  => "%\\[([^\\[ ]*) ([^(\\[|)]*)\\]%",                  // support ext., supporte plusieurs blancs
     102                'ref' => "%<ref>%",
     103                'ref2' => "%</ref>%",
     104
     105                // TODO: Table (http://www.mediawiki.org/wiki/Help:Tables)
     106                ),
     107                "replacement" => array(
     108                'model'  => "<MODELE_WIKI:\\1>",
     109                'ib' => "<ib>\\1</ib>",
     110                'b' => "{{\\1}}",
     111                'i' => "{\\1}",
     112                'ib_post' => "{{<i>\\1</i>}}",
     113                'h4'     => "{{{\\1}}}",
     114                'h3'     => "{{{\\1}}}",
     115                'h2'     => "{{{\\1}}}",
     116                'h1'     => "{{{\\1}}}",
     117                'ul_3'     => "-*** ",
     118                'ul_2'     => "-** ",
     119                'ul_1'     => "-* ",
     120                'ol_3'     => "-### ",
     121                'ol_2'     => "-## ",
     122                'ol_1'     => "-# ",
     123                'dt'     => "<dt>\\1</dt>",
     124                'dd'     => "<dd>\\1</dd>",
     125                'comment' => "",
     126                'link_img' => "",
     127                'link_cat' => "",
     128                'link_user' => "\\3",
     129                'link_user2' => "\\2",
     130                'link_lang' => "",
     131                'link_int'  => "\\2",
     132                'link_int2'  => "\\1",
     133                'link_ext0'  => "[->http\\1]",
     134                'link_ext1'  => " [->http\\1]",
     135                'link_ext2'  => "[\\2->\\1]",
     136                'ref'  => "[[ ",
     137                'ref2'  => " ]]",
     138                )
     139        );
     140
     141
     142        // Conversion MoinWiki -> SPIP
     143        // ref. syntaxe: http://trac.edgewall.org/wiki/WikiFormatting
     144        // ref. syntaxe: http://moinmo.in/HelpOnFormatting?highlight=%28formatting%29
     145        $conv_formats['MoinWiki_SPIP'] = array(
     146                "pattern" => array(
     147                        'code'   => "%{{{([^}]*)}}}%", // FIXME si } dans {{{ }}}
     148                        'bold3'  => "%'''''([^']*)'''''%",
     149                        'bold2'  => "%''''([^']*)''''%",
     150                        'bold'   => "%'''([^']*)'''%",
     151                        'i'      => "%''([^']*)''%",
     152                        'under'  => "%__([^\_]*)__%",
     153                        'del'    => "%~~([^\~]*)~~%",
     154                        'h4'     => "%==== ([^ ====]*) ====%",
     155                        'h3'     => "%=== ([^ ===]*) ===%",
     156                        'h2'     => "%== ([^ ==]*) ==%",
     157                        'h'      => "%= ([^ =]*) =%",
     158                        'link2'  => "%\\[([^\\[]*) ([^(\\[| )]*)\\]%", // FIXME si plusieurs espaces blanc
     159                        'cell'   => "%\|\|([^\|]*)\|\|%",
     160                        'ul'     => "%([^ ]*)\*([^ \*]*)%",
     161                        'ul_pas2'=> "% -\*%",
     162                        'ul2'    => "%  -\*%",
     163                        'ul3'    => "%  -\**%",
     164                        'ol2'    => "%   ([^ ]*)1.([^ 1.]*)%",
     165                        'ol'     => "% 1\.([^ 1\.]*)%",
     166                ),
     167                "replacement" => array(
     168                        'code'   => "<code>\\1</code>",
     169                        'bold3'   => "{{\\1}}",
     170                        'bold2'   => "{{\\1}}",
     171                        'bold'   => "{{\\1}}",
     172                        'i'      => "{\\1}",
     173                        'under'  => "<span class='underline'>\\1</span",
     174                        'del'    => '<del>\\1</del>',
     175                        'h4'     => "{{{\\1}}}",
     176                        'h3'     => "{{{\\1}}}",
     177                        'h2'     => "{{{\\1}}}",
     178                        'h'      => "{{{\\1}}}",
     179                        'link2'  => "[\\2->\\1]",
     180                        'cell'   => "|\\1|",
     181                        'ul'     => "-*\\2",
     182                        'ul_pas2'=> "-*",
     183                        'ul2'    => "-**",
     184                        'ul3'    => "-***",
     185                        'ol2'    => "1.#\\2",
     186                        'ol'     => "-#\\1",
     187                )
     188        );
     189
     190        // Conversion BBcode -> SPIP
     191        // ref. syntaxe: http://en.wikipedia.org/wiki/BBCode
     192        // voir aussi la version filtre: https://contrib.spip.net/Du-BBcode-dans-SPIP
     193        // question: detecter si barre enrichie pour adopter la syntaxte etendue ?
     194        $conv_formats['BBcode_SPIP'] = array(
     195                "pattern" => array(
     196                        'url'   => "%\\[url]([^\\[]*)\\[/url\\]%",
     197                        'url2'  => "%\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]%",
     198                        'email' => "%\\[email\\]([^\\[]*)\\[/email\\]%",
     199                        'email2'=> "%\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]%",
     200                        'color' => "%\\[color=([^\\[]*)\\]([^\\[]*)\\[/color\\]%",
     201                        'size'  => "%\\[size=([^\\[]*)\\]([^\\[]*)\\[/size\\]%",
     202                        //'list'  => "!\[list\](.+)\[/list\]!Umi",
     203                        //'list2' => "!\[\*\](.+)(?=(\[\*\]|</ul>))!Umi",
     204                        'code'  => "%\\[code]([^\\[]*)\\[/code\\]%",
     205                        'quote' => "%\\[quote]([^\\[]*)\\[/quote\\]%",
     206                        'b'     => "%\\[b]([^\\[]*)\\[/b\\]%",
     207                        'i'     => "%\\[i]([^\\[]*)\\[/i\\]%",
     208                        'center'=> "%\\[center]([^\\[]*)\\[/center\\]%",
     209                        'img'   => "%\\[img]([^\\[]*)\\[/img\\]%",
     210                ),
     211                "replacement" => array(
     212                        'url'   => "[\\1->\\1]",
     213                        'url2'  => "[\\2->\\1]",
     214                        'email' => "[\\1->mailto:\\1]",
     215                        'email2'=> "[\\2->mailto:\\1]",
     216                        'color' => "<span style=\"color:\\1\">\\2</span>",
     217                        'size'  => "<span style=\"font-size:\\1px\">\\2</span>",
     218                        //'list'  => "<ul> $1 </ul>",
     219                        //'list2' => "<li>$1</li>",
     220                        'code'   => "<code>\\1</code>",
     221                        'quote'  => "<quote>\\1</quote>",
     222                        'b'      => "{{\\1}}",
     223                        'i'      => "{\\1}",
     224                        'center' => "<div style=\"text-align:center:\\1\">\\2</div>",
     225                        'img'    => "<img src=\"\\1\" alt='' />",
     226                )
     227        );
     228
     229        // Conversion DotClear -> SPIP
     230        // http://doc.dotclear.net/1.2/usage/syntaxes
     231        $conv_formats['DotClear_SPIP'] = array(
     232                "pattern" => array(
     233                // faux amis
     234                'q3' => '%{{([^{]*)\|([^\{]*)\|([^\{]*)}}%',
     235                'q2' => '%{{([^{]*)\|([^\{]*)}}%',
     236                'q' => '%{{([^{]*)}}%',
     237
     238                // type bloc
     239                'h3'  => "%\n\!\!\!([^\r]*)%",
     240                'h4'  => "%\n\!\!([^\r]*)%",
     241                'h5'   => "%\n\!([^\r]*)%",
     242                'ul'   => "%\n\* ([^\r]*)%",
     243                'ol'   => "%\n# ([^\r]*)%",     // FIXME gerer les ss listes
     244
     245                // en ligne
     246                'br'   => "#%%%#",
     247                'em' => '%\'\'([^\']*)\'\'%',
     248                'strong' => '%__([^\_]*)__%',
     249                'ins' => '%\+\+([^\+]*)\+\+%',
     250                'del' => '%--([^\+]*)--%',
     251                'code'=> '%@@([^\@]*)@@%',
     252                'img' => '%\(\(([^\)]*)\)\)%',
     253                'href_0' => '%\[([^\|[]*)\]%',                                  // 0 pipe
     254                'href_3' => '%\[([^\[]*)\|([^\[]*)\|([^\[]*)\|([^\[\|]*)\]%',   // 3 pipes
     255                'href_2' => '%\[([^\[]*)\|([^\[]*)\|([^\[\|]*)\]%',             // 2 pipes
     256                'href_1' => '%\[([^\[]*)\|([^\[\|]*)\]%',                       // 1 pipe
     257                'a' => '%~([^~]*)~%',
     258                'acronym' => '%\?\?([^\?]*)\|([^\?]*)\?\?%',
     259                'note' => '%\$\$([^\$]*)\$\$%',
     260
     261
     262                ),
     263                "replacement" => array(
     264                // faux amis
     265                'q3' => '<quote>\\1</quote>',
     266                'q2' => '<quote>\\1</quote>',
     267                'q' => '<quote>\\1</quote>',
     268
     269                // type bloc
     270                'h3'   => "{{{\\1}}}",
     271                'h4'   => "{{{\\1}}}",
     272                'h5'   => "{{{\\1}}}",
     273                'ul'   => "\n-* \\1",
     274                'ol'   => "\n-# \\1",
     275
     276                // en ligne
     277                'br'   => "\n_ ",
     278                'em'   => "{{\\1}}",
     279                'strong'   => "{{\\1}}",
     280                'ins'   => "<ins>\\1</ins>",
     281                'del'   => "<del>\\1</del>",
     282                'code'   => "<code>\\1</code>",
     283                'img'   => "",
     284                'href_0'   => "[->\\1]",
     285                'href_3' => '[\\2->\\1]',
     286                'href_2' => '[\\2->\\1]',
     287                'href_1' => '[\\2->\\1]',
     288                'a' => '[\\1<-]',
     289                'acronym'   => "<acronym  title=\"\\2\">>\\1</acronym>",
     290                'note' => '[[\\1]]',
     291                )
     292        );
     293
     294        // conversion DOCX
     295        $conv_formats['DOCX_SPIP'] = 'docx';  // function extract/
     296
     297        // Conversion SLA (Scribus) -> SPIP
     298        // SLA 1.2 http://docs.scribus.net/index.php?lang=en&sm=scribusfileformat&page=scribusfileformat
     299        // SLA 1.3 http://wiki.scribus.net/index.php/File_Format_for_Scribus_1.3.x
     300        $conv_formats['SLA_SPIP'] = array(
     301                "pattern" => array(
     302                        'ch'    => "% CH=\"([^\"]*)\" %",  // "CH=\"<([^>]*)\""
     303                        'br'    => "%&#x5;%",
     304                        'sp'    => "%&#x1d;%",
     305                        'tag'   => "%<([^\>]*)>%",
     306                ),
     307                "replacement" => array(
     308                        'ch'   => ">\\1<",
     309                        'br'   => "\n\n\n",
     310                        'sp'   => " ",
     311                        'tag'   => "",
     312                )
     313        );
     314
     315
     316        // Conversion XTG -> SPIP
     317        // format demandé par Jean Luc Girard
     318        // http://195.13.83.33/twiki/bin/view/FipDoc/QuarkTagsList
     319        // http://www.macworld.com/downloads/magazine/XPressTagsList.pdf
     320        // cf. extract/quark.php
     321        $conv_formats['XTG_SPIP'] = 'quark'; // function extract/
     322
     323        $conv_formats['html_SPIP'] = 'html'; // function sale ou HTML2SPIP
     324        $conv_formats['Quark_SPIP'] = 'quark_xml'; // function extract/
     325        $conv_formats['Indesign_SPIP'] = 'indesign_xml'; // function extract/
     326        $conv_formats['XMLOCR_SPIP'] = 'xml_ocr'; // function extract/
     327        $conv_formats['XMLDE_SPIP'] = 'xml_de'; // function extract/
     328        $conv_formats['PMG_SPIP'] = 'pmg'; // function extract/
    60329
    61330        //
    62   //  Les conversions qqchose .... vers SPIP
    63   //
    64 
    65         // Conversion MediaWiki -> SPIP
    66   // ref. syntaxe: http://www.mediawiki.org/wiki/Help:Formatting
    67   $conv_functions_pre['MediaWiki_SPIP'] = array("convertisseur_add_ln","mediawiki_doQuotes");
    68   $conv_formats['MediaWiki_SPIP'] = array(
    69       "pattern" => array(
    70         'model'  => "%\{\{([^\}\}]*)\}\}%",   // FIXME si template ds template
    71          // applies anywhere
    72         'ib' => "%<i><b>([^<]*)</b></i>%",
    73         'b' => "%<b>([^<]*)</b>%",
    74         'i'   => "%<i>([^<]*)</i>%",
    75         'ib_post' => "%<ib>([^<]*)</ib>%",
    76         // only at the beginning of the line
    77         'h4'     => "%\n=====([^=]*)=====%",
    78         'h3'     => "%\n====([^=]*)====%",
    79         'h2'     => "%\n===([^=]*)===%",
    80         'h1'     => "%\n==([^=]*)==%",
    81         'ul_3'     => "%\n\*\*\*#%",
    82         'ul_2'     => "%\n\*\*#%",
    83         'ul_1'     => "%\n\*#%",
    84         'ol_3'     => "%\n\#\#\#%",
    85         'ol_2'     => "%\n\#\#%",
    86         'ol_1'     => "%\n\#%",
    87         'dt'     => "%\n\;([^\r]*)%",
    88         'dd'     => "%\n\:([^\r]*)%",
    89         // TODO: Preformatted text
    90 
    91         // links - http://www.mediawiki.org/wiki/Help:Links
    92         'comment' => "%<!--([^\-]*)-->%",
    93         'link_img'  => "%\[\[(Image|Media):([^\[\[]*)\]\]%",
    94         'link_cat'  => "%\[\[(Category|Catégorie|:Category):([^\[\[]*)\]\]%",
    95         'link_user'  => "%\[\[(Utilisateur|User):([^|\[]*)\|([^\[]*)\]\]%",  // avec pipe
    96         'link_user2'  => "%\[\[(Utilisateur|User):([^\[]*)\]\]%",
    97         'link_lang'  => "%\[\[([^\:\[]*):([^\[]*)\]\]%",
    98         'link_int'  => "%\[\[([^|\[]*)\|([^\[]*)\]\]%",                     // avec pipe
    99         'link_int2'  => "%\[\[([^\[\[]*)\]\]%",
    100         'link_ext0'  => "%\nhttp([^ \r]*)%",
    101         'link_ext1'  => "% http([^ \r]*)%",
    102         'link_ext2'  => "%\\[([^\\[ ]*) ([^(\\[|)]*)\\]%",                  // support ext., supporte plusieurs blancs
    103         'ref' => "%<ref>%",
    104         'ref2' => "%</ref>%",
    105 
    106         // TODO: Table (http://www.mediawiki.org/wiki/Help:Tables)
    107         ),
    108       "replacement" => array(
    109         'model'  => "<MODELE_WIKI:\\1>",
    110         'ib' => "<ib>\\1</ib>",
    111         'b' => "{{\\1}}",
    112         'i' => "{\\1}",
    113         'ib_post' => "{{<i>\\1</i>}}",
    114         'h4'     => "{{{\\1}}}",
    115         'h3'     => "{{{\\1}}}",
    116         'h2'     => "{{{\\1}}}",
    117         'h1'     => "{{{\\1}}}",
    118         'ul_3'     => "-*** ",
    119         'ul_2'     => "-** ",
    120         'ul_1'     => "-* ",
    121         'ol_3'     => "-### ",
    122         'ol_2'     => "-## ",
    123         'ol_1'     => "-# ",
    124         'dt'     => "<dt>\\1</dt>",
    125         'dd'     => "<dd>\\1</dd>",
    126         'comment' => "",
    127         'link_img' => "",
    128         'link_cat' => "",
    129         'link_user' => "\\3",
    130         'link_user2' => "\\2",
    131         'link_lang' => "",
    132         'link_int'  => "\\2",
    133         'link_int2'  => "\\1",
    134         'link_ext0'  => "[->http\\1]",
    135         'link_ext1'  => " [->http\\1]",
    136         'link_ext2'  => "[\\2->\\1]",
    137         'ref'  => "[[ ",
    138         'ref2'  => " ]]",
    139         )
    140   );
    141 
    142 
    143   // Conversion MoinWiki -> SPIP
    144   // ref. syntaxe: http://trac.edgewall.org/wiki/WikiFormatting
    145   // ref. syntaxe: http://moinmo.in/HelpOnFormatting?highlight=%28formatting%29
    146   $conv_formats['MoinWiki_SPIP'] = array(
    147       "pattern" => array(
    148         'code'   => "%{{{([^}]*)}}}%", // FIXME si } dans {{{ }}}
    149         'bold3'  => "%'''''([^']*)'''''%",
    150         'bold2'  => "%''''([^']*)''''%",
    151         'bold'   => "%'''([^']*)'''%",
    152         'i'      => "%''([^']*)''%",
    153         'under'  => "%__([^\_]*)__%",
    154         'del'    => "%~~([^\~]*)~~%",
    155         'h4'     => "%==== ([^ ====]*) ====%",
    156         'h3'     => "%=== ([^ ===]*) ===%",
    157         'h2'     => "%== ([^ ==]*) ==%",
    158         'h'      => "%= ([^ =]*) =%",
    159         'link2'  => "%\\[([^\\[]*) ([^(\\[| )]*)\\]%", // FIXME si plusieurs espaces blanc
    160         'cell'   => "%\|\|([^\|]*)\|\|%",
    161         'ul'     => "%([^ ]*)\*([^ \*]*)%",
    162         'ul_pas2'=> "% -\*%",
    163         'ul2'    => "%  -\*%",
    164         'ul3'    => "%  -\**%",
    165         'ol2'    => "%   ([^ ]*)1.([^ 1.]*)%",
    166         'ol'     => "% 1\.([^ 1\.]*)%",
    167 
    168         ),
    169       "replacement" => array(
    170         'code'   => "<code>\\1</code>",
    171         'bold3'   => "{{\\1}}",
    172         'bold2'   => "{{\\1}}",
    173         'bold'   => "{{\\1}}",
    174         'i'      => "{\\1}",
    175         'under'  => "<span class='underline'>\\1</span",
    176         'del'    => '<del>\\1</del>',
    177         'h4'     => "{{{\\1}}}",
    178         'h3'     => "{{{\\1}}}",
    179         'h2'     => "{{{\\1}}}",
    180         'h'      => "{{{\\1}}}",
    181         'link2'  => "[\\2->\\1]",
    182         'cell'   => "|\\1|",
    183         'ul'     => "-*\\2",
    184         'ul_pas2'=> "-*",
    185         'ul2'    => "-**",
    186         'ul3'    => "-***",
    187         'ol2'    => "1.#\\2",
    188         'ol'     => "-#\\1",
    189         )
    190   );
    191 
    192   // Conversion BBcode -> SPIP
    193   // ref. syntaxe: http://en.wikipedia.org/wiki/BBCode
    194   // voir aussi la version filtre: https://contrib.spip.net/Du-BBcode-dans-SPIP
    195   // question: detecter si barre enrichie pour adopter la syntaxte etendue ?
    196   $conv_formats['BBcode_SPIP'] = array(
    197       "pattern" => array(
    198         'url'   => "%\\[url]([^\\[]*)\\[/url\\]%",
    199         'url2'  => "%\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]%",
    200         'email' => "%\\[email\\]([^\\[]*)\\[/email\\]%",
    201         'email2'=> "%\\[email=([^\\[]*)\\]([^\\[]*)\\[/email\\]%",
    202         'color' => "%\\[color=([^\\[]*)\\]([^\\[]*)\\[/color\\]%",
    203         'size'  => "%\\[size=([^\\[]*)\\]([^\\[]*)\\[/size\\]%",
    204         //'list'  => "!\[list\](.+)\[/list\]!Umi",
    205         //'list2' => "!\[\*\](.+)(?=(\[\*\]|</ul>))!Umi",
    206         'code'  => "%\\[code]([^\\[]*)\\[/code\\]%",
    207         'quote' => "%\\[quote]([^\\[]*)\\[/quote\\]%",
    208         'b'     => "%\\[b]([^\\[]*)\\[/b\\]%",
    209         'i'     => "%\\[i]([^\\[]*)\\[/i\\]%",
    210         'center'=> "%\\[center]([^\\[]*)\\[/center\\]%",
    211         'img'   => "%\\[img]([^\\[]*)\\[/img\\]%",
    212       ),
    213       "replacement" => array(
    214         'url'   => "[\\1->\\1]",
    215         'url2'  => "[\\2->\\1]",
    216         'email' => "[\\1->mailto:\\1]",
    217         'email2'=> "[\\2->mailto:\\1]",
    218         'color' => "<span style=\"color:\\1\">\\2</span>",
    219         'size'  => "<span style=\"font-size:\\1px\">\\2</span>",
    220         //'list'  => "<ul> $1 </ul>",
    221         //'list2' => "<li>$1</li>",
    222         'code'   => "<code>\\1</code>",
    223         'quote'  => "<quote>\\1</quote>",
    224         'b'      => "{{\\1}}",
    225         'i'      => "{\\1}",
    226         'center' => "<div style=\"text-align:center:\\1\">\\2</div>",
    227         'img'    => "<img src=\"\\1\" alt='' />",
    228       )
    229   );
    230 
    231 
    232   // Conversion DotClear -> SPIP
    233   // http://doc.dotclear.net/1.2/usage/syntaxes
    234   $conv_formats['DotClear_SPIP'] = array(
    235       "pattern" => array(
    236         // faux amis
    237         'q3' => '%{{([^{]*)\|([^\{]*)\|([^\{]*)}}%',
    238         'q2' => '%{{([^{]*)\|([^\{]*)}}%',
    239         'q' => '%{{([^{]*)}}%',
    240 
    241         // type bloc
    242         'h3'  => "%\n\!\!\!([^\r]*)%",
    243         'h4'  => "%\n\!\!([^\r]*)%",
    244         'h5'   => "%\n\!([^\r]*)%",
    245         'ul'   => "%\n\* ([^\r]*)%",
    246         'ol'   => "%\n# ([^\r]*)%",     // FIXME gerer les ss listes
    247 
    248         // en ligne
    249         'br'   => "#%%%#",
    250         'em' => '%\'\'([^\']*)\'\'%',
    251         'strong' => '%__([^\_]*)__%',
    252         'ins' => '%\+\+([^\+]*)\+\+%',
    253         'del' => '%--([^\+]*)--%',
    254         'code'=> '%@@([^\@]*)@@%',
    255         'img' => '%\(\(([^\)]*)\)\)%',
    256         'href_0' => '%\[([^\|[]*)\]%',                                  // 0 pipe
    257         'href_3' => '%\[([^\[]*)\|([^\[]*)\|([^\[]*)\|([^\[\|]*)\]%',   // 3 pipes
    258         'href_2' => '%\[([^\[]*)\|([^\[]*)\|([^\[\|]*)\]%',             // 2 pipes
    259         'href_1' => '%\[([^\[]*)\|([^\[\|]*)\]%',                       // 1 pipe
    260         'a' => '%~([^~]*)~%',
    261         'acronym' => '%\?\?([^\?]*)\|([^\?]*)\?\?%',
    262         'note' => '%\$\$([^\$]*)\$\$%',
    263 
    264 
    265       ),
    266       "replacement" => array(
    267         // faux amis
    268         'q3' => '<quote>\\1</quote>',
    269         'q2' => '<quote>\\1</quote>',
    270         'q' => '<quote>\\1</quote>',
    271 
    272         // type bloc
    273         'h3'   => "{{{\\1}}}",
    274         'h4'   => "{{{\\1}}}",
    275         'h5'   => "{{{\\1}}}",
    276         'ul'   => "\n-* \\1",
    277         'ol'   => "\n-# \\1",
    278 
    279         // en ligne
    280         'br'   => "\n_ ",
    281         'em'   => "{{\\1}}",
    282         'strong'   => "{{\\1}}",
    283         'ins'   => "<ins>\\1</ins>",
    284         'del'   => "<del>\\1</del>",
    285         'code'   => "<code>\\1</code>",
    286         'img'   => "",
    287         'href_0'   => "[->\\1]",
    288         'href_3' => '[\\2->\\1]',
    289         'href_2' => '[\\2->\\1]',
    290         'href_1' => '[\\2->\\1]',
    291         'a' => '[\\1<-]',
    292         'acronym'   => "<acronym  title=\"\\2\">>\\1</acronym>",
    293         'note' => '[[\\1]]',
    294       )
    295   );
    296 
    297   // conversion DOCX
    298   $conv_formats['DOCX_SPIP'] = 'docx';  // function extract/
    299 
    300 
    301   // Conversion SLA (Scribus) -> SPIP
    302   // SLA 1.2 http://docs.scribus.net/index.php?lang=en&sm=scribusfileformat&page=scribusfileformat
    303   // SLA 1.3 http://wiki.scribus.net/index.php/File_Format_for_Scribus_1.3.x
    304   $conv_formats['SLA_SPIP'] = array(
    305       "pattern" => array(
    306         'ch'    => "% CH=\"([^\"]*)\" %",  // "CH=\"<([^>]*)\""
    307         'br'    => "%&#x5;%",
    308         'sp'    => "%&#x1d;%",
    309         'tag'   => "%<([^\>]*)>%",
    310 
    311       ),
    312       "replacement" => array(
    313         'ch'   => ">\\1<",
    314         'br'   => "\n\n\n",
    315         'sp'   => " ",
    316         'tag'   => "",
    317       )
    318   );
    319 
    320 
    321   // Conversion XTG -> SPIP
    322   // format demandé par Jean Luc Girard
    323   // http://195.13.83.33/twiki/bin/view/FipDoc/QuarkTagsList
    324   // http://www.macworld.com/downloads/magazine/XPressTagsList.pdf
    325   // cf. extract/quark.php
    326   $conv_formats['XTG_SPIP'] = 'quark'; // function extract/
    327 
    328   $conv_formats['html_SPIP'] = 'html'; // function sale ou HTML2SPIP
    329   $conv_formats['Quark_SPIP'] = 'quark_xml'; // function extract/
    330   $conv_formats['Indesign_SPIP'] = 'indesign_xml'; // function extract/
    331   $conv_formats['XMLOCR_SPIP'] = 'xml_ocr'; // function extract/
    332   $conv_formats['XMLDE_SPIP'] = 'xml_de'; // function extract/
    333   $conv_formats['PMG_SPIP'] = 'pmg'; // function extract/
    334 
    335   //
    336   //  Les conversions SPIP vers qqchose ....
    337   //
    338 
    339   // Conversion SPIP -> txt
    340   $conv_formats['SPIP_txt'] = array(
    341       "pattern" => array(
    342         'h'     => "%{{{([^}}}]*)}}}%",
    343         'b'     => "%{{([^}}]*)}}%",
    344         'i'     => "%{([^}]*)}%",
    345         'url'   => "%\\[([^\\[]*)->([^(\\[| )]*)\\]%",
    346       ),
    347       "replacement" => array(
    348         'h'   => "\\1\n",
    349         'b'   => "* \\1 *",
    350         'i'   => "\\1",
    351         'url' => "\\1 (\\2)",
    352       )
    353   );
    354 
    355   // Conversion SPIP -> mediawiki
    356   // http://www.mediawiki.org/wiki/Help:Formatting
    357   $conv_formats['SPIP_mediawiki'] = array(
    358       "pattern" => array(
    359         'h'     => "%{{{([^}]*)}}}%",
    360         'b'     => "%{{([^}]*)}}%",
    361         'i'     => "%{([^}]*)}%",
    362         'ul'    => "%\n-\*%",
    363         'ol'    => "%\n-\\#%",
    364         'ul2'    => "%\n-%",       // liste "sale"  de spip
    365         'br'    => "%\n_ %",
    366         'poesie' => "%<poesie>%",
    367         'poesie2' => "%</poesie>%",
    368         'cadre' => "%<cadre>%",
    369         'cadre2' => "%</cadre>%",
    370         'pipe_tag_exception' => '%<([^\\|]*)\\|([^>]*)>%', // sortir les pipelines modele <xxx|www> et lien  avt traitemnt table
    371         'url_email1' =>  "%\\[([^\\[]*)->mailto:([^(\\[| )]*)@([^(\\[| )]*)\\]%",
    372         'url_email2' =>  "%\\[([^\\[]*)->([^(\\[| )]*)@([^(\\[| )]*)\\]%",                                 // lien email
    373         'url_externe'   => "%\\[([^\\[]*)->http([^(\\[| )]*)\\]%",  // tant pis on gere pas autres protocoloe irc, ftp, mailto
    374         'url_interne_anchor'   => "%\\[([^\\[]*)->\\#([^(\\[| )]*)\\]%",
    375         'url_interne'   => "%\\[([^\\[]*)->([^(\\[| )]*)\\]%",
    376         'url_wiki' => "%\\[\\?([^\\[]*)]%",
    377         'anchor' => '%\\[([^\\[]*)<-\\]%',
    378         'img' => '%<(img|emb|doc)([0-9]*)([^>]*)>%',
    379         'table_pipe_fin' => '%\\|\r\n\\|%',
    380         'table_pipe' => '%\\|%',
    381         'table_start' => '%([^\\|]*)\n([^\\|]*)\n\\|%',
    382         'table_fin' => '%\\|([^\\|]*)\n([^\\|]*)\n%',
    383         'pipe_tag_exception2' => '%_______%',    //on reinjecte ls pipelines des modeles
    384       ),
    385       "replacement" => array(
    386         'h'   => "\n===\\1===\n",   // on force le retour ligne
    387         'b'   => "'''\\1'''",
    388         'i'   => "''\\1''",
    389         'ul'  => "*\\1",
    390         'ol'  => "#\\1",
    391         'ul2'  => "*\\1",
    392         'br'  => "<br />",
    393         'poesie' => "<pre>",
    394         'poesie2' => "</pre>",
    395         'cadre' => "<pre>",
    396         'cadre2' => "</pre>",
    397         'pipe_tag_exception' => "<\\1_______\\2>",
    398         'url_email1' => "[mailto:\\2@\\3 \\1]",
    399         'url_email2' => "[mailto:\\2@\\3 \\1]",
    400         'url_externe' => "[http\\2 \\1]",
    401         'url_interne_anchor' => "[[#\\2]]",
    402         'url_interne' => "[[\\2 \\1]]",
    403         'url_wiki' => "[http://fr.wikipedia.org/\\1 \\1]",
    404         'anchor' => "<div id='\\1'></div>",
    405         'img' => "[[File:\\1\\2\\3]]",
    406         'table_pipe_fin' => "|-\r|",
    407         'table_pipe' => "\n|",
    408         'table_start' => "\\1{|",
    409         'table_fin' => "|}\\1",
    410         'pipe_tag_exception2' => "|",
    411       )
    412   );
    413 
    414 
    415 
    416 
    417 
    418         // FIN INITIALISATION
    419 
    420 
    421 
    422 
     331        //  Les conversions SPIP vers qqchose ....
     332        //
     333
     334        // Conversion SPIP -> txt
     335        $conv_formats['SPIP_txt'] = array(
     336                "pattern" => array(
     337                'h'     => "%{{{([^}}}]*)}}}%",
     338                'b'     => "%{{([^}}]*)}}%",
     339                'i'     => "%{([^}]*)}%",
     340                'url'   => "%\\[([^\\[]*)->([^(\\[| )]*)\\]%",
     341                ),
     342                "replacement" => array(
     343                'h'   => "\\1\n",
     344                'b'   => "* \\1 *",
     345                'i'   => "\\1",
     346                'url' => "\\1 (\\2)",
     347                )
     348        );
     349
     350        // Conversion SPIP -> mediawiki
     351        // http://www.mediawiki.org/wiki/Help:Formatting
     352        $conv_formats['SPIP_mediawiki'] = array(
     353                "pattern" => array(
     354                'h'     => "%{{{([^}]*)}}}%",
     355                'b'     => "%{{([^}]*)}}%",
     356                'i'     => "%{([^}]*)}%",
     357                'ul'    => "%\n-\*%",
     358                'ol'    => "%\n-\\#%",
     359                'ul2'    => "%\n-%",       // liste "sale"  de spip
     360                'br'    => "%\n_ %",
     361                'poesie' => "%<poesie>%",
     362                'poesie2' => "%</poesie>%",
     363                'cadre' => "%<cadre>%",
     364                'cadre2' => "%</cadre>%",
     365                'pipe_tag_exception' => '%<([^\\|]*)\\|([^>]*)>%', // sortir les pipelines modele <xxx|www> et lien  avt traitemnt table
     366                'url_email1' =>  "%\\[([^\\[]*)->mailto:([^(\\[| )]*)@([^(\\[| )]*)\\]%",
     367                'url_email2' =>  "%\\[([^\\[]*)->([^(\\[| )]*)@([^(\\[| )]*)\\]%",                                 // lien email
     368                'url_externe'   => "%\\[([^\\[]*)->http([^(\\[| )]*)\\]%",  // tant pis on gere pas autres protocoloe irc, ftp, mailto
     369                'url_interne_anchor'   => "%\\[([^\\[]*)->\\#([^(\\[| )]*)\\]%",
     370                'url_interne'   => "%\\[([^\\[]*)->([^(\\[| )]*)\\]%",
     371                'url_wiki' => "%\\[\\?([^\\[]*)]%",
     372                'anchor' => '%\\[([^\\[]*)<-\\]%',
     373                'img' => '%<(img|emb|doc)([0-9]*)([^>]*)>%',
     374                'table_pipe_fin' => '%\\|\r\n\\|%',
     375                'table_pipe' => '%\\|%',
     376                'table_start' => '%([^\\|]*)\n([^\\|]*)\n\\|%',
     377                'table_fin' => '%\\|([^\\|]*)\n([^\\|]*)\n%',
     378                'pipe_tag_exception2' => '%_______%',    //on reinjecte ls pipelines des modeles
     379                ),
     380                "replacement" => array(
     381                'h'   => "\n===\\1===\n",   // on force le retour ligne
     382                'b'   => "'''\\1'''",
     383                'i'   => "''\\1''",
     384                'ul'  => "*\\1",
     385                'ol'  => "#\\1",
     386                'ul2'  => "*\\1",
     387                'br'  => "<br />",
     388                'poesie' => "<pre>",
     389                'poesie2' => "</pre>",
     390                'cadre' => "<pre>",
     391                'cadre2' => "</pre>",
     392                'pipe_tag_exception' => "<\\1_______\\2>",
     393                'url_email1' => "[mailto:\\2@\\3 \\1]",
     394                'url_email2' => "[mailto:\\2@\\3 \\1]",
     395                'url_externe' => "[http\\2 \\1]",
     396                'url_interne_anchor' => "[[#\\2]]",
     397                'url_interne' => "[[\\2 \\1]]",
     398                'url_wiki' => "[http://fr.wikipedia.org/\\1 \\1]",
     399                'anchor' => "<div id='\\1'></div>",
     400                'img' => "[[File:\\1\\2\\3]]",
     401                'table_pipe_fin' => "|-\r|",
     402                'table_pipe' => "\n|",
     403                'table_start' => "\\1{|",
     404                'table_fin' => "|}\\1",
     405                'pipe_tag_exception2' => "|",
     406                )
     407 );
     408// FIN INITIALISATION
    423409
    424410function conversion_format($conv_in, $format) {
     
    451437        // fonction HTML2SPIP - http://ftp.espci.fr/pub/html2spip/
    452438        else if ($format=="html_SPIP") {
    453           if (file_exists(find_in_path('lib/html2spip-0.6/misc_tools.php'))) {
    454                 require_once(find_in_path('lib/html2spip-0.6/misc_tools.php'));
    455                 require_once(find_in_path('lib/html2spip-0.6/HTMLEngine.class'));
    456                 require_once(find_in_path('lib/html2spip-0.6/HTML2SPIPEngine.class'));
    457                 //define('_HTML2SPIP_PRESERVE_DISTANT',false);
    458                 $parser = new HTML2SPIPEngine('', _DIR_IMG);    // Quels sont les bons parametres ?
    459                 $parser->loggingEnable();
    460                 $output = $parser->translate($conv_out);
    461                 $conv_out = $output['default'];
    462           } else {
    463                   // utilisation de sale
    464                   // limitation: echoue sur les pages completes ou trop complexes
    465                   include_spip("inc/sale");
    466                   $conv_out = sale($conv_out);
    467           }
    468 
    469   }
     439                        if (file_exists(find_in_path('lib/html2spip-0.6/misc_tools.php'))) {
     440                                require_once(find_in_path('lib/html2spip-0.6/misc_tools.php'));
     441                                require_once(find_in_path('lib/html2spip-0.6/HTMLEngine.class'));
     442                                require_once(find_in_path('lib/html2spip-0.6/HTML2SPIPEngine.class'));
     443                                //define('_HTML2SPIP_PRESERVE_DISTANT',false);
     444                                $parser = new HTML2SPIPEngine('', _DIR_IMG);    // Quels sont les bons parametres ?
     445                                $parser->loggingEnable();
     446                                $output = $parser->translate($conv_out);
     447                                $conv_out = $output['default'];
     448                        } else {
     449                                        // utilisation de sale
     450                                        // limitation: echoue sur les pages completes ou trop complexes
     451                                        include_spip("inc/sale");
     452                                        $conv_out = sale($conv_out);
     453                        }
     454
     455        }
    470456
    471457        // c'est un nom de fonction : 'quark' par exemple
Note: See TracChangeset for help on using the changeset viewer.