2013-10-11 266 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... 
... 

如果一切正常,然後你可以覆蓋在doc/css/common.css文件的默認CSS。

+0

我不知道css文件,所以非常感謝,但我寧願不要使用內聯HTML,因爲這會使我的文檔難以閱讀。 – Seanny123

+0

另一種方法是在css文件中重新定義'.bold'或'.strong'屬性。這樣你可以使用正常的降價,但是'*危險*'或'**危險**'會按照你的意願格式化。 – pandita

+0

這當然是'大膽'和'強'沒有'.'。 – pandita