HTML-страницы для переводчика вики-страниц - PullRequest
3 голосов
/ 14 сентября 2010

Я ищу переводчика HTML на вики-сайт. В основном я хочу опубликовать отчеты о покрытии, сгенерированные cobertura, на свой веб-сайт Google Code. Но код Google поддерживает только вики-страницы, поэтому, если кто-то может указать мне HTML-сайт на переводчик вики-страниц (связанный вместе), я могу опубликовать свои отчеты о покрытии.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2010

Я не знаком ни с одним из таких переводчиков, но вам не составит труда взломать быстрый вера-разметчик 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 «только обновлять то, что было изменено».

2 голосов
/ 14 сентября 2010

Доступен довольно хороший переводчик здесь .Он также поддерживает синтаксис вики-кода Google.

Проверьте, может ли это вам помочь.

...