Pergunta

Estou interessado em analisar seletivamente Mediawiki marcação XML para gerar uma página HTML personalizada que é um subconjunto do HTML produzido pelo motor real PHP Mediawiki render.

Eu quero isso para BzReader, um leitor de despejo Mediawiki comprimido desligada escrito em C #. Assim, um C # analisador seria o ideal, mas qualquer código de boa ajudaria.

Claro que, se ninguém fez isso antes, eu acho que é hora de começar um projeto de manutenção de um analisador livre e independente Mediawiki, com base no próprio analisador do MediaWiki, mas menos bem integrado com a própria Mediawiki.

Então, alguém sabe de qualquer base que eu poderia começar, que seria melhor do que cortar a partir do código Mediawiki PHP?

Foi útil?

Solução

Há uma lista de analisadores on http://www.mediawiki.org/wiki/Alternative_parsers, mas ac # analisador não está incluído lá ...

Outras dicas

Atualizar
se ter em mente ScrewTurn não ficar com a sintaxe Mediawiki mas usa sua própria variação que faz variar um pouco.

A sintaxe Mediawiki não se presta para analisador LALR (ou mesmo LL *), pois tem um monte de ambigüidades em sua definição, e também permite HTML. Há uma discussão sobre que nesta questão , você está essencialmente preso com a escrita seu próprio analisador e tokenizer ao invés de simplesmente escrever um arquivo BNF para ele e, em seguida, usando ANTLR / Gold / Ironia.

Roadkill Wiki usa um crioula analisador para sua análise Mediawiki, mas com o apoio limitado.


ScrewTurn é liberado sob a licença GPL, e tem um C # analisador:

A classe que você está depois é Core.Formatter que tem muitos regexs para fazer seu trabalho:

public static class Formatter {

}

Não é o código olhando mais agradável "mas funciona".

Eu tinha algumas palavras a dizer sobre Mediawiki templates aqui . Interessante que há uma lista de analisadores de alternativas agora, eu vou ter que investigar isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top