2013-10-11 5 views
4

У меня есть следующий метод, который я хотел бы документировать, используя YARDoc.Выполнение пользовательских ограничений YARD

# Here is my method 
# @arg woop [Woop] *dangerous* this parameter is output to the screen 
def shoop(woop) 
    puts woop 
end 

Это создает HTML, где dangerous выделен жирным шрифтом. Поскольку я должен разбирать этот вывод, я хотел бы иметь собственный HTML-тег. Другими словами, я хотел бы сделать так, чтобы, когда следующий комментарий кода обрабатывается YARDoc, слово dangerous окружено тегами <div class="custom"></div>, а не <b><\b> тегами, упростить синтаксический анализ с помощью Nokogiri. Не сказать, что в настоящее время невозможно разобрать Nokogiri, это немного более неудобно и уязвимо для изменений кода YARD.

# Here is my method 
# @arg woop [Woop] **dangerous** this parameter is output to the screen 
def shoop(woop) 
    puts woop 
end 

Есть ли какая-либо функциональность в YARD, которая позволяет мне это сделать? Я посмотрел на создание пользовательских шаблонов, но это похоже на синтаксический анализ кода. Затем я осмотрел создание пользовательского шаблона уценки, но я не видел, как это можно или нужно выполнить. У меня создалось впечатление, что я лаяю неправильное дерево и буду благодарен ключевому слову Google, который бросил мой путь.

Почему я пытаюсь разобрать HTML в первую очередь:
Как я описал в предыдущих вопросах, я пытаюсь определить интерфейс без необходимости дублировать код. В этом примере я хочу, чтобы сервер «вызывал» метод, который опасен иначе, чем метод, который не является опасным.

+0

Можете ли вы объяснить немного больше, почему вам нужно проанализировать вывод? Возможно, есть способ создания настраиваемого формата вывода, который имеет нужные вам данные, поэтому вы можете избежать разбора HTML. – Shepmaster

+0

Я пробовал, но, боюсь, я не знаю, как дать гораздо больше деталей, без этого вопроса, превратившегося в обзор кода. – Seanny123

ответ

3

Markdown позволяет включать встроенный html. Так что, может быть, попробовать:

# Here is my method 
# @arg woop [Woop] <div class="custom">dangerous</div> this .... 
def shoop... 
... 

Если это работает, вы можете затем переопределить CSS по умолчанию в файле doc/css/common.css.

+0

Я не знал о файле css, поэтому спасибо за это, но я бы предпочел не иметь встроенного HTML, поскольку это затрудняет чтение моей документации. – Seanny123

+0

Другой способ сделать это, возможно, переопределить свойство '.bold' или' .strong' в файле css. Таким образом, вы можете использовать обычную уценку, но '* опасные * или' ** опасные ** 'будут отформатированы так, как вы пожелаете? – pandita

+0

Это, конечно, 'bold' и' strong' без '.'. – pandita

Смежные вопросы