Измените викитекст с викисловаря на читаемый текст - PullRequest
0 голосов
/ 08 марта 2020

Как обменять Викитекст (как видно из исходного кода Witkionary) на читаемый текст (как видно на веб-сайте Викисловаря).

Таким образом, этот источник:

{{ru-verb|ходи́ть|impf|pf=сходи́ть}}

Должен рассматриваться как:

ходи́ть • (xodítʹ) impf (perfective сходи́ть)

Он называется шаблоном в Викитексте, но как преобразовать этот шаблон в читаемый человеком текст, который я не могу найти в документации.

У кого-нибудь раньше была подобная проблема?

1 Ответ

0 голосов
/ 08 марта 2020

Используйте API синтаксического анализа для получения HTML вывода .

. Вы можете отрендерить HTML, передав его в браузер ...

I Не думайте, что MediaWiki может напрямую генерировать вывод простого текста, но если это то, что вам нужно, можно использовать стороннюю библиотеку. В Python и использовании Beautiful Soup и его метода get_text код выглядит следующим образом:

>>> BeautifulSoup(
        requests.get(
            'https://en.wiktionary.org/w/api.php?action=parse&text=%7B%7Bru-verb|%D1%85%D0%BE%D0%B4%D0%B8%CC%81%D1%82%D1%8C%7Cimpf|pf=%D1%81%D1%85%D0%BE%D0%B4%D0%B8%CC%81%D1%82%D1%8C%7D%7D&prop=text&title=page_title&formatversion=2&format=json'
        ).json()['parse']['text']
    ).get_text(strip=True)
'ходи́ть•(xodítʹ)impf(perfectiveсходи́ть)'

Обновление:

Использование strip_tags и html_entity_decode функций в PHP:

$ php -a
Interactive mode enabled

php > $json = file_get_contents('https://en.wiktionary.org/w/api.php?action=parse&text=%7B%7Bru-verb|%D1%85%D0%BE%D0%B4%D0%B8%CC%81%D1%82%D1%8C%7Cimpf|pf=%D1%81%D1%85%D0%BE%D0%B4%D0%B8%CC%81%D1%82%D1%8C%7D%7D&prop=text&title=page_title&formatversion=2&format=json');
php > $json = json_decode($json, TRUE);
php > $html = $json['parse']['text'];
php > $pain_text = strip_tags(html_entity_decode ($html));
php > echo $pain_text;
ходи́ть • (xodítʹ) impf (perfective сходи́ть)
...