Mediawiki biçimlendirme için Açık kaynak kod ayrıştırıcı

3 Cevap

Ben seçici render motoru gerçek PHP MediaWiki tarafından üretilen bazı HTML alt kümesi bulunuyor özelleştirilmiş bir HTML sayfası oluşturmak için Mediawiki XML biçimlendirmesi ayrıştırma ilgileniyorum.

Ben BzReader, C # ile yazılmış bir çevrimdışı Mediawiki sıkıştırılmış dökümü okuyucu için istiyorum. Yani C # çözümleyici ideal olacaktır, ancak herhangi bir iyi kod yardımcı olacaktır.

Hiç kimse daha önce bunu yapmış Tabii ki, ben MediaWiki kendi çözümleyici dayalı ücretsiz ve ayrı Mediawiki ayrıştırıcı, koruyarak bir proje başlatmak için zamanı geldi sanırım, ama daha az sıkı mediawiki kendisi ile entegre.

Yani, herkes ben ile başlayabilir herhangi bir baz biliyor mu, o Mediawiki PHP kod adlı hack daha iyi olurdu?

3 Cevap

Orada http://www.mediawiki.org/wiki/Alternative_parsers üzerine ayrıştırıcıların bir liste, ama ac # çözümleyici orada dahil değildir ...

Update
Bare in mind Screwturn doesn't stick to the Mediawiki syntax but uses its own variation which does vary a bit.

Onun tanımında belirsizlikler bir yeri vardır gibi Mediawiki sözdizimi LALR çözümleyici (hatta LL *) kendisini ödünç vermez, ve de HTML sağlar. O in this question, aslında kendi ayrıştırıcı ve dizgeciklerini yazma yerine, sadece bunun için bir BNF dosya yazma ve sonra ANTLR / Altın / Irony kullanarak sıkışmış bir tartışma var.

Roadkill Wiki onun Mediawiki ayrıştırma için bir Creole parser kullanır, ancak sınırlı desteği ile.


ScrewTurn GPL lisansı altında yayımlanan ve bir C # ayrıştırıcı vardır:

Eğer sonra sınıfı işini yapmak için regexs çok var Core.Formatter olduğunu:

public static class Formatter {

}

Bu güzel görünümlü kod değil "ama işe yarıyor".

Ben Mediawiki şablonları here hakkında söylenecek bazı sözler vardı. Alternatif ayrıştırıcıların bir liste şimdi orada ilginç olduğunu, bunu araştırmak gerekir.