Wicri:Dilib source, module MediaWiki, MediaWikiImportClean

De Wicri Outils

Cette page introduit les sources relatifs à la commande MediaWikiImportClean du module MediaWiki.

Exemple de fichier d'entrée

Cet exemple correspond à la sauvegarde de cette page (Wicri:Dilib source, module MediaWiki, MediaWikiImportClean)

<mediawiki xmlns="http://www.mediawiki.org/xml/export-0.4/"   ... >
  <siteinfo>
    <sitename>Wicri Outils</sitename>
    <base>http://ticri.univ-lorraine.fr/wicri-outils.fr/index.php/Accueil</base>
    
    ...

  </siteinfo>
  <page>
    <title>Wicri:Dilib source, module MediaWiki, MediaWikiImportClean</title>
    <id>638</id>
    <revision>
      <id>2733</id>
      <timestamp>2013-09-07T20:07:17Z</timestamp>
      <contributor>
        <username>Jacques Ducloy</username>
        <id>3</id>
      </contributor>
      <text xml:space="preserve">Cette page introduit ...

       ...

%START PAGE
%%
&lt;JUMP&gt;.                        ;
&lt;JUMP&gt;\n                       ;

       ...

[[Catégorie:Dilib source]]</text>
    </revision>
  </page>
</mediawiki>

Fichier MediaWikiImportClean.lex

Code source

/*   -*- coding: utf-8 -*-  */
/*
  Dilib Version :
  Date : V0.5.46 (7 septembre 2013
  Module MediaWiki, 
  Commande : MediaWikiImportClean
  Fichier source géré par Wicri/Outils, page : 
       Wicri:Dilib source, module MediaWiki, MediaWikiImportClean
*/

%START JUMP
%START HEAD_PAGE
%START END_PAGE
%START PAGE
%%
<JUMP>.                        ;
<JUMP>\n                       ;
<JUMP>"<page>"                 {ECHO; BEGIN HEAD_PAGE;}
<HEAD_PAGE>"<text"[^>]+">"     {ECHO; printf("\n<?dilib start wiki ?>\n"); BEGIN PAGE;}
<HEAD_PAGE>.                   ECHO;
<HEAD_PAGE>\n                  ECHO;
<PAGE>.                        ECHO;
<PAGE>\n                       ECHO;
<PAGE>&lt;                     putchar('<');
<PAGE>&gt;                     putchar('>');
<PAGE>&quot;                   putchar('\"');
<PAGE>"</text>"                {printf("\n<?dilib end wiki ?>\n</text>"); BEGIN END_PAGE;}
<END_PAGE>"</page>"            {ECHO; putchar('\n'); BEGIN JUMP;}
<END_PAGE>.                    ECHO;
<END_PAGE>\n                   ECHO;
%%
main()
{
  BEGIN JUMP;
  yylex();
}

Commentaires

L'état » JUMP » permet de sauter le début du fichier (jusqu'à la balise <page>.