Pertanyaan Di mana saya dapat menemukan parser MediaWiki Markup yang bagus di PHP?


Saya akan mencoba meretas kode MediaWiki sedikit, tapi saya tahu itu tidak perlu jika saya bisa mendapatkan parser independen.

Adakah yang bisa membantu saya dengan ini?

Terima kasih.


5
2018-06-22 19:33


asal


Jawaban:


Ben Hughes benar. Sangat sulit untuk mendapatkan yang benar, terutama jika Anda ingin mengurai artikel nyata dari wiki besar seperti Wikipedia sendiri dengan akurasi 100%. Hal ini sering didiskusikan di milis wikitech dan tidak ada parser alternatif yang datang dengan barang-barang tersebut meskipun sudah banyak percobaan.

Pertama-tama ini bukan benar-benar parser karena tidak memiliki konsep seperti AST (abstract syntax tree). Ini adalah konverter yang secara khusus mengkonversi ke HTML.

Kedua tidak jatuh ke dalam perangkap pemikiran wikitext sebagai bahasa markup yang dapat diperpanjang pada kesempatan langka dengan HTML. Anda harus menganggapnya sebagai ekstensi ke HTML. Jauh lebih mudah untuk menambahkan dukungan wikitext ke parser HTML daripada menambahkan dukungan HTML ke parser wikitext.

Apa ini intinya adalah bahwa jika Anda ingin format lain Anda perlu mengkonversi dari HTML ke format itu.

Pada dasarnya dinyatakan bahwa hanya MediaWiki yang dapat mem-parsing wikitext. Tapi ya parser terintegrasi erat dengan sisa kode. Peretas MediaWiki yang berpengalaman tidak bereaksi dengan baik terhadap pertanyaan tentang mengisolasi parser - Saya sudah mencoba (-:

Tapi saya juga sudah maju dan mengisolasinya. Belum lengkap atau siap untuk dibagikan dengan siapa pun. Tetapi pada dasarnya Anda ingin memulai dengan sumber MediaWiki yang tidak diinstal atau terhubung ke database atau server web. Buat program rintisan PHP yang menyertakan parser dan hubungi titik entri. Periksa kesalahan ketika gagal dijalankan dan buat rintisan palsu untuk kelas, fungsi, atau global yang diakses. Ulangi hingga Anda telah mematikan sebagian besar tempat-tempat parser berinteraksi dengan seluruh MediaWiki.

Masalahnya kemudian datang dalam menjaga varian stubbed hacked Anda selaras karena pohon sumber berubah dengan cepat dan wiki hidup merangkul perubahan dalam parser sangat cepat dan varian Anda harus mengikuti jika ingin bekerja ke masa depan.

Lihat permintaan fitur saya: Bug 25984 - Mengisolasi parser dari ketergantungan database


6
2017-12-15 18:04



Ini sebenarnya format yang sangat sulit untuk diuraikan. Anda dapat mencoba memisahkan komponen parser dari wiki media (seperti juga php), tetapi ini adalah kekacauan yang membingungkan. Saya telah melihat beberapa orang mandiri parsial yang melakukan pekerjaan yang hampir masuk akal untuk subset yang sangat terbatas dari markup.

Jika Anda menerapkan salah satunya, atau refactor wikipedia yang sekarang, beri tahu saya karena ini bisa sangat berguna.


3
2018-06-22 19:38