Question

Je souhaite analyser de manière sélective le balisage XML de Mediawiki afin de générer une page HTML personnalisée constituant un sous-ensemble du code HTML généré par le moteur de rendu PHP Mediawiki.

Je le veux pour BzReader, un lecteur de dump compressé Mediawiki hors connexion écrit en C #. Donc, un analyseur C # serait idéal, mais tout bon code aiderait.

Bien sûr, si personne ne l’a déjà fait, j’imagine qu’il est temps de démarrer un projet avec un analyseur gratuit et distinct de Mediawiki, basé sur l’analyseur de Mediawiki, mais moins étroitement intégré à Mediawiki lui-même.

Alors, est-ce que quelqu'un connaît des bases qui pourraient me servir de base, ce serait mieux que de pirater le code PHP Mediawiki?

Était-ce utile?

La solution

Il existe une liste d'analyseurs sur http://www.mediawiki.org/wiki/Alternative_parsers, mais un analyseur # n'est pas inclus ici ...

Autres conseils

Mettre à jour
Bare in mind, Screwturn ne s’en tient pas à la syntaxe de Mediawiki, mais utilise sa propre variante, qui varie un peu.

La syntaxe Mediawiki ne se prête pas à l’analyseur LALR (ni même à LL *) car elle présente de nombreuses ambiguïtés dans sa définition et autorise également le format HTML. Il y a une discussion à ce sujet sur dans cette question , vous êtes essentiellement coincé avec l'écriture votre propre analyseur et tokenizer au lieu d’écrire simplement un fichier BNF puis d’utiliser ANTLR / Gold / Irony.

Wiki Roadkill utilise un Analyseur de créole pour son analyse Mediawiki, mais avec une prise en charge limitée.

Screwturn est publié sous licence GPL et possède un analyseur C #:

La classe que vous recherchez est Core.Formatter, qui a beaucoup de regex pour faire son travail:

public static class Formatter {

}

Ce n'est pas le meilleur code "mais ça marche".

J'ai eu quelques mots à dire sur les modèles Mediawiki ici . Intéressant qu’il existe maintenant une liste d’analyseurs alternatifs, je vais devoir étudier cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top