[[プログラミング言語/Ruby]]

*RD [#da63f547]
RDとはRuby Documentationの略です。

ソースコードに埋め込む形式としてはRDocのほうが主流になりがちですが、
RWiki((dRubyを基幹にし、RDをWiki文法として使うWikiクローン))や
VikiWiki((RDLikeStyleというWiki文法が選択できる))、
BitChannel((RDベースのWiki文法))や
tDiary((Web日記システム。RDで日記を書くプラグインあり))、
新リファレンスマニュアル((BitChannelベースに作られたシステム))など、
用いられているものはたくさんあります。


**書く場所 [#y48d72c1]
 =begin
  ...
 =end

という複数行コメントがRubyにはありますが、PerlにおけるRODのような
感じでそこに埋め込むことを考えられていましたが、
前述の通りRDocにその役目は譲りつつありますし、
RDtoolは=beginや=end行を補完してくれたりします。


**書式 [#k0dd1115]
基本的に、Inlineを除く書式は先頭の文字(HeadChar)で決まり、
要素の連なりはインデントによって判別されます。

:TextBlock|通常のテキスト段落。
空白以外から始まる行の連なり。
 Example:
 こんにちは。
 わたしは、
 VIPからきますた。


:Verdatim|整形済みテキスト。
インデントがそれまでより深い行の連続。
インデントが同じ行の連続がひとつのVerdatimとして扱われる。
Verdatim内ではInlineは解釈されない。
 Example:
 ここはインデント深くないのでTextBlock。
 ここも。
   ここからVerdatim。
   改行などもそのまま反映される。
     ここもまだVerdatim。
     前より深いので。
   前より浅くなったが、まだまだVerdatim。
 インデントが戻ったので、ここは普通のTextBlock。

:Comment|コメント。
`#'で始まる行がコメント行とされる。
Rubyと使う文字が一緒だが、Rubyとは違って行の途中からの
コメントはない。


:HeadLine|見出し。
六段階の見出しが書ける。
内容がLabelとなる(Labelについては後述)。
 Example:
 = HeadLine-1
 == HeadLine-2
 === HeadLine-3
 ==== HeadLine-4
 + HeadLine-5
 ++ HeadLine-6

:Include|別ファイルの取り込み。
RDを取り込む方法と、変換するのフォーマットを取り込む方法とがある。
 Example:
 #RDを取り込む
 <<< anothoer_file.rd
 #変換フォーマットに従って取り込む(HTMLならexternal_file.htmlを)
 <<< external_file


:ItemList|箇条書き。
`*'から始まる行は箇条書きの項目(Item)になり、
Itemの連続で箇条書きリストになります。
 Example1:
 * これが
 * リスト
 * です
ItemにはTextBlockから始まる各要素の連なりが置けます。
そのTextBlockの始まりがインデントの基準とされます。
 Example2:
 * つまり、Verdatimを書くには
     インデント基準より深くすればぉk
     なのでこれはVerdatim。
   ここからはTextBlock。
 * 二つ目のItem。
   * 要素を入れ子に、ということは、
   * とうぜんリスト自体も含められるわけで。
 *ただしHeadLineやIncludeは無理だよーん


:EnumList|番号付き箇条書き。
`(1)'のようなHeadCharによって作られるItemの連なり。
ただ、番号自体は無視されます:-)
 Example:
 (1)ここはItemListと同じでTextBlock。
    |基準はここなので、
       これはVerdatim。
 (2)ItemListと同じでよいのですが、`*'一文字のItemListのノリで
    入れ子を書こうとして、
  (3)全然入れ子になっていないというミスが多いので注意。
     ここは(1)、(2)とは違うEnumListにされます。


:DescList|定義や説明の記述。
Term部とDescription部からなる。
Term部は`:'から始まる行で、Description部はTerm部を基準とした
インデント基準に沿った要素の連なり。
Term部の内容はLabelになる。
Term部にはTextBlockが置かれ、そのTextBlockの開始位置がインデント
基準となる。
 Example:
 :Term部
    Description部。ここがDescription部の基準を決める。
      その基準より深いのでこれはVerdatim。
 
 :       深いTerm部
   「深」の前が基準なのでここはDescription部にされない


:MethodList|メソッド説明専用のDescList。
DescListの要領だが、Term部は`---'から始まる。
 Example:
 --- HogeClass#piyo(arg1, arg2){...}
       何かをするメソッド。
       とにかく何かを返す。
Term部はRubyっぽくパースされてマークアップされる。
DescListと同様、Term部の内容がLabelになるが、
ちゃんとメソッド名のHogeClass#piyoだけが使われる。


:Inline|文中要素の総称。
((*強調*))のように「丸カッコ
((全角なのはPukiwiki対策。本来はもちろん半角))
二つ+記号」からなる開き・閉じカッコ
によって、文中を装飾する要素です。



**Inline [#z207047e]
以下の各Inline表記で全角になっている記号は、Pukiwiki文法との
衝突を避けるためです。本来はもちろん半角です。

:((*強調*))|内容を強調要素としてマークアップします。

:((<リンク>))|URLによるリンクやReferenceを指定します。
ややこしいので別枠で説明。

:((-脚注-))|内容を、その位置に対しての脚注として扱います。

:(({コード}))|内容をコード要素としてマークアップします。

:((%キータイプ%))|内容をキータイプ要素としてマークアップします。

:((|変数|))|内容を変数要素としてマークアップします。

:((:インデックス要素:))|内容をインデックス要素として扱います。
例えばHTMLでは<a>タグのid属性とname属性が付加されます。

:(('Inlineのエスケープ'))|この中にInlineを入れ子にしても、
Inlineとしてパースせずそのまま表記する。

***Inlineリンク [#ke90ec37]
URLは
 ((<URL:http://www.google.co.jp>))
のように記述します。この「URL:」が大事です。

Referenceは、Labelの指定によるドキュメント内リンクです。
 Example:
 = HeadLine1
 
 Inlineを使う。((<HeadLine1>))で先頭にリンク。
HeadLineやDescListで説明したように、Labelになりうる場所には
こうして簡単にリンクを晴れます。

この要素は<リンク>と表記されるが、
 ((<Text|リンク>))
とすることで、表記をTextにすることができます。

Text内で`|'や`/'をエスケープするにはタブルクォーテーションで
"Text"のようにしてください。



**参考 [#ed5d99ae]
- [[Rubyを256倍使うための本 魔道編:http://www.ascii.co.jp/books/books/detail/4-7561-3747-4.shtml]]
- [[The RWiki - RD working draft:http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RD]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS