Извиняюсь за длину этого вопроса, это скорее "возможно ли это", чем "как мне это сделать".
Моя цель - удалить из разметки Википедии все, кроме простого текста - таблицы, шаблоны, форматирование. В разметке wikitext (например, ''bold text''
) или HTML (<b>bold text</b>
).
Текст из Википедии - это набор пользовательских тегов: шаблоны {{ ... }}
, таблицы {| ... |}
, ссылки [[ ... ]]
и элементы HTML. Разбор это своего рода кошмар. Вы не можете использовать регулярные выражения, потому что теги могут быть вложенными, и они могут содержать HTML, так что почти все возможно. Часть текста в HTML, которую я хотел бы сохранить (вещи, выделенные жирным шрифтом), но другие элементы, такие как таблицы, должны быть полностью удалены.
Я думал о повторном назначении парсера XML, такого как Nokogiri, добавив {{
/ }}
в качестве альтернативы <x>
/ </x>
.
Кто-нибудь, кто знает Nokogiri (или другой анализатор Ruby XML), знает, возможно ли это или даже хорошая идея?
Моя альтернатива - изменить существующий синтаксический анализатор, например WikiCloth , для разметки вики, а затем попытаться удалить любой оставшийся HTML-код другим методом.