Ruby 4.1 リファレンスマニュアル

class RDoc::Markup

[edit]

要約

RDoc 形式のドキュメントを目的の形式に変換するためのクラスです。

例:

require 'rdoc'
require 'rdoc/markup/to_html'

h = RDoc::Markup::ToHtml.new
p h.convert("*bold*")
# => "\n<p><strong>bold</strong></p>\n"

独自のフォーマットを行うようにパーサを拡張する事もできます。

例
require 'rdoc'
require 'rdoc/markup/to_html'

class WikiHtml < RDoc::Markup::ToHtml
  def initialize(...)
    super
    # WikiWord を追加。
    @markup.add_regexp_handling(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
  end

  # WikiWord のフォントを赤く表示。
  def handle_regexp_WIKIWORD(text)
    "<font color=red>" + text + "</font>"
  end
end

p WikiHtml.new.convert("see WikiWord here")
# => "\n<p>see <font color=red>WikiWord</font> here</p>\n"

変換する形式を変更する場合、フォーマッタ(例. RDoc::Markup::ToHtml) を変更、拡張する必要があります。

目次

特異メソッド
インスタンスメソッド
定数

特異メソッド

new -> RDoc::MarkupRuby 1.9.3 から[permalink][rdoc][edit]

自身を初期化します。

インスタンスメソッド

add_regexp_handling(pattern, name) -> ()Ruby 3.0 から[permalink][rdoc][edit]

pattern で指定した正規表現にマッチする文字列をフォーマットの対象にします。

例えば WikiWord のような、単純な開始・終了の記号ではさめない文字列に対して使用します。

[PARAM] pattern:
正規表現を指定します。
[PARAM] name:
RDoc::Markup::ToHtml などのフォーマッタに識別させる時の名前を Symbol で指定します。

フォーマッタ(例. RDoc::Markup::ToHtml)は自身が持つ RDoc::Markup オブジェクトに登録された正規表現を使うため、独自のフォーマットを追加するには、フォーマッタのサブクラスで登録を行います。

例
require 'rdoc'
require 'rdoc/markup/to_html'

class WikiHtml < RDoc::Markup::ToHtml
  def initialize(...)
    super
    @markup.add_regexp_handling(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
  end

  def handle_regexp_WIKIWORD(text)
    "<font color=red>" + text + "</font>"
  end
end

p WikiHtml.new.convert("see WikiWord here")
# => "\n<p>see <font color=red>WikiWord</font> here</p>\n"

変換時に実際にフォーマットを行うには、フォーマッタ側で handle_regexp_<name で指定した名前>(text) を定義します。 text にはマッチした文字列(正規表現にグループがある場合は最初のグループ)が渡されます。

convert(str, formatter) -> object | ""Ruby 1.9.3 から[permalink][rdoc][edit]

str で指定された文字列を formatter に変換させます。

[PARAM] str:
変換する文字列を指定します。
[PARAM] formatter:
RDoc::Markup::ToHtml、RDoc::Markup::ToRdoc などのインスタンスを指定します。

変換結果は formatter によって文字列や配列を返します。

regexp_handlings -> [[Regexp, Symbol]]Ruby 4.1 から[permalink][rdoc][edit]

RDoc::Markup#add_regexp_handling で登録した正規表現と名前の組の配列を返します。

例
require 'rdoc'

m = RDoc::Markup.new
m.add_regexp_handling(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
p m.regexp_handlings
# => [[/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD]]

定数

LABEL_LIST_RE -> RegexpRuby 1.9.3 から[permalink][rdoc][edit]

ラベル付きリストにマッチする正規表現です。ライブラリの内部で使用します。

SIMPLE_LIST_RE -> RegexpRuby 1.9.3 から[permalink][rdoc][edit]

リストにマッチする正規表現です。ライブラリの内部で使用します。

ラベルの有無を問わずマッチします。

SPACE -> ?\sRuby 1.9.3 から[permalink][rdoc][edit]

空白文字です。?\s を返します。ライブラリの内部で使用します。