Я не знаком ни с одним из таких переводчиков, но вам не составит труда взломать быстрый вера-разметчик DOM seralizer самостоятельно в качестве последнего средства.
Просто напишите функцию для анализа HTML-кода с использованием анализатора DOM (мой любимый - привязка Python LXML для libxml2) и сериализации в вики-разметку с помощью обхода в глубину, а затем оберните все это в готовую структуру паука. (Или взбейте свое. Это тоже не сложно.)
Примерно такой код Python: (используя в качестве примера разметку StackOverflow)
tags = {
'b' : {'start': '**', 'end': '**'},
'em' : {'start': '*', 'end': '*'},
'i' : {'start': '*', 'end': '*'},
'strong' : {'start': '**', 'end': '**'},
// etc.
}
def serialize(node):
tag = tags.get(node.tag, {})
return ''.join([tag.get('start', ''), node.text or ''] +
[serialize(child) for child in node] +
[tag.get('end', ''), node.tail or ''])
wiki_markup = serialize(domRoot)
Это заняло у меня, может быть, 5 минут, и я мог бы реализовать все это менее чем за час.
Я пропустил более сложные биты для обработки разметки блока (вещи, в которых символы новой строки, отступы или символы начала строки имеют большое значение) и определения ссылок в стиле сноски, но это не очень сложно ... особенно если вы добавляете необязательный Аргумент обратного вызова для структуры определения тега.
Действительно, единственная трудоемкая часть - это переизобрать кеширование в стиле Makefile «только обновлять то, что было изменено».