Nerede PHP iyi bir MediaWiki Biçimlendirme ayrıştırıcı bulabilirim?

2 Cevap php

Ben Mediawiki en küçük kod hack denemek istiyorsunuz, ama ben bağımsız bir çözümleyici alabilirsiniz eğer gereksiz olacağını anladım.

Herkes bu konuda bana yardımcı olabilir misiniz?

Teşekkürler.

2 Cevap

Ben Hughes hakkıdır. Bu% 100 doğruluk ile Wikipedia kendisi gibi büyük wiki gerçek makaleleri ayrıştırmak istiyorsanız, özellikle sağ elde etmek çok zordur. Bu wikitech posta listesinde sıkça tartışılan ve alternatif ayrıştırıcı birçok girişimlerine rağmen mal ile geldi.

Öncelikle gerçekten bir AST (soyut sözdizimi ağacı) gibi bir kavram vardır ki bir ayrıştırıcı değil. Özellikle HTML dönüştüren bir dönüştürücü.

İkincisi HTML ile ender durumlarda uzatılabilir bir işaretleme dili olarak viki metninin düşünme tuzağına düşmeyin. HTML bir uzantısı olarak düşünmek gerekir. Bir Vikimetin çözümleyici HTML desteği eklemek için daha bir HTML çözümleyici için Vikimetin desteği eklemek çok kolaydır.

Ne bu aşağı kaynar başka biçimi istiyorsanız HTML o biçime dönüştürmek gerekir olmasıdır.

Temelde sadece MediaWiki Vikimetin ayrıştırmak belirtiliyor. Ama evet ayrıştırıcı sıkıca kod kalanı ile entegre edilmiştir. Tecrübeli MediaWiki hackerlar çözümleyici izole ilgili sorulara tepki yok - denedim (-:

Ama aynı zamanda önde gitti ve zaten izole ettik. Bu tam veya henüz kimseyle paylaşmaya hazır değil. Ama temelde MediaWiki kaynak veya yüklü bir veritabanı veya web sunucusuna bağlı değil ile başlamak istiyorum. Ayrıştırıcı içeren bir PHP saplama programını yapmak ve bir giriş noktası diyoruz. O erişilen sınıf, fonksiyon, ya da küresel bir sahte saplama çalıştırmak ve yapmak için başarısız olduğunda hata kontrol edin. Eğer ayrıştırıcı MediaWiki kalanı ile etkileşime yerlerin çoğu söndürdü kadar tekrarlayın.

Sorun daha sonra hızlı bir kaynak ağacı değişiklikleri ve canlı wiki çok hızlı ayrıştırıcısında değişiklikleri benimsemesi ve varyant geleceğe çalışmak ise uydurmak zorunda çünkü eşzamanlı daki kesmek söndürdü varyant tutmak geliyor.

Benim özellik isteği göz atın: Bug 25984 - Isolate parser from database dependencies

Aslında ayrıştırmak için inanılmaz zor bir biçimdir. Sen (o da php gibi) medya wiki çözümleyici bileşeni ayırmak için deneyebilirsiniz, ama karışık bir karmaşa. Ben biçimlendirme çok sınırlı bir alt kümesi için neredeyse makul bir iş yapmak birkaç kısmi bağımsız olanları gördüm.

Birini uygulamak, ya da oldukça yararlı olabilir gibi bana bildirin geçerli wikipedia refactor edersek.