Discussion:Pour une politique ambitieuse des données publiques (2011) bibliographie
De Wicri France
Filtre utilisé dans la biblio
Ce filtre lex est loin d'être parfait mais permet de récupérer les notices par groupe de 4 à 10 et de faire des mini modification.
%START INTER
%START URL
%START BIBLIO1
%START BIBLIO2
%%
<INTER>^[A-Z][A-Z] {printf("* %s", yytext);BEGIN BIBLIO1;}
<BIBLIO1>\nhttp:\/\/ {printf("<br/>< http://"); BEGIN URL;}
<BIBLIO1>\nhttps:\/\/ {printf("<br/>< https://"); BEGIN URL;}
<BIBLIO1>\n[a-z] {printf(" %s",yytext+1); BEGIN BIBLIO2;}
<BIBLIO1>\n putchar(' ');
<BIBLIO2>\nhttp:\/\/ {printf("<br/>< http://"); BEGIN URL;}
<BIBLIO2>\nhttps:\/\/ {printf("<br/>< https://"); BEGIN URL;}
<BIBLIO2>\n putchar(' ');
<BIBLIO2>\n[A-Z][A-Z] {printf("\n* %s", yytext+1);BEGIN BIBLIO1;}
<INTER>\n putchar(' ');
<URL>\n ;
<URL>"[" printf("<nowiki>[</nowiki>");
<URL>.html\n {printf(".html >\n"); BEGIN INTER;}
<URL>.htm\n {printf(".htm >\n"); BEGIN INTER;}
<URL>.pdf\n {printf(".pdf >\n"); BEGIN INTER;}
<URL>.txt\n {printf(".txt >\n"); BEGIN INTER;}
<URL>.php\n {printf(".php >\n"); BEGIN INTER;}
<URL>\n[A-Z][A-Z] {printf(" >\n* %s",yytext+1);BEGIN BIBLIO2;}
%%
main(){
BEGIN INTER;
yylex();
putchar('\n');
}