RDoc 形式のドキュメントを目的の形式に変換するためのクラスです。
例:
require 'rdoc/markup/to_html' h = RDoc::Markup::ToHtml.new puts h.convert(input_string)
独自のフォーマットを行うようにパーサを拡張する事もできます。
例:
require 'rdoc/markup' require 'rdoc/markup/to_html' class WikiHtml < RDoc::Markup::ToHtml # WikiWord のフォントを赤く表示。 def handle_special_WIKIWORD(special) "<font color=red>" + special.text + "</font>" end end m = RDoc::Markup.new # { 〜 } までを :STRIKE でフォーマットする。 m.add_word_pair("{", "}", :STRIKE) # <no> 〜 </no> までを :STRIKE でフォーマットする。 m.add_html("no", :STRIKE) # WikiWord を追加。 m.add_special(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD) wh = WikiHtml.new(m) # :STRIKE のフォーマットを <strike> 〜 </strike> に指定。 wh.add_tag(:STRIKE, "<strike>", "</strike>") puts "<body>#{wh.convert ARGF.read}</body>"
変換する形式を変更する場合、フォーマッタ(例. RDoc::Markup::ToHtml) を変更、拡張する必要があります。
new(attribute_manager = nil) -> RDoc::Markup
[permalink][rdoc]自身を初期化します。
add_html(tag, name) -> ()
[permalink][rdoc]tag で指定したタグをフォーマットの対象にします。
例:
require 'rdoc/markup/simple_markup' require 'rdoc/markup/simple_markup/to_html' m = SM::SimpleMarkup.new m.add_html("no", :STRIKE) h = SM::ToHtml.new h.add_tag(:STRIKE, "<strike>", "</strike>") puts m.convert(input_string, h)
変換時に実際にフォーマットを行うには SM::ToHtml#add_tag のように、フォーマッタ側でも操作を行う必要があります。
add_special(pattern, name) -> ()
[permalink][rdoc]pattern で指定した正規表現にマッチする文字列をフォーマットの対象にします。
例えば WikiWord のような、SM::SimpleMarkup#add_word_pair、 SM::SimpleMarkup#add_html でフォーマットできないものに対して使用します。
例:
require 'rdoc/markup/simple_markup' require 'rdoc/markup/simple_markup/to_html' class WikiHtml < SM::ToHtml def handle_special_WIKIWORD(special) "<font color=red>" + special.text + "</font>" end end m = SM::SimpleMarkup.new m.add_special(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD) h = WikiHtml.new puts m.convert(input_string, h)
変換時に実際にフォーマットを行うには SM::ToHtml#accept_special_<name で指定した名前> のように、フォーマッタ側でも操作を行う必要があります。
add_word_pair(start, stop, name) -> ()
[permalink][rdoc]start と stop ではさまれる文字列(例. *bold*)をフォーマットの対象にします。
例:
require 'rdoc/markup/simple_markup' require 'rdoc/markup/simple_markup/to_html' m = SM::SimpleMarkup.new m.add_word_pair("{", "}", :STRIKE) h = SM::ToHtml.new h.add_tag(:STRIKE, "<strike>", "</strike>") puts m.convert(input_string, h)
変換時に実際にフォーマットを行うには SM::ToHtml#add_tag のように、フォーマッタ側でも操作を行う必要があります。
attribute_manager -> RDoc::AttributeManager
[permalink][rdoc]自身の RDoc::AttributeManager オブジェクトを返します。
content -> String
[permalink][rdoc]変換する文字列を返します。
rdoc ライブラリのデバッグ用途に使用します。 SM::SimpleMarkup#convert の後に実行します。
変換のために加工したオブジェクトを改行で連結したものを返すため、変換前の文字列と結果が異なる事があります。
[SEE_ALSO] SM::SimpleMarkup#convert
convert(str, formatter) -> object | ""
[permalink][rdoc]str で指定された文字列を formatter に変換させます。
変換結果は formatter によって文字列や配列を返します。
get_line_types -> [Symbol]
[permalink][rdoc]変換する文字列の各行のタイプを Symbol の配列で返します。
rdoc ライブラリのデバッグ用途に使用します。 SM::SimpleMarkup#convert の後に実行します。
[SEE_ALSO] SM::SimpleMarkup#convert
LABEL_LIST_RE -> Regexp
[permalink][rdoc]ラベル付きリストにマッチする正規表現です。ライブラリの内部で使用します。
SIMPLE_LIST_RE -> Regexp
[permalink][rdoc]リストにマッチする正規表現です。ライブラリの内部で使用します。
ラベルの有無を問わずマッチします。
SPACE -> ?\s
[permalink][rdoc]空白文字です。?\s を返します。ライブラリの内部で使用します。