rdtool 0.6.38 → 0.6.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +1 -1
- data/HISTORY +6 -0
- data/README.html +63 -9
- data/README.ja.html +67 -10
- data/README.rd +67 -4
- data/README.rd.ja +71 -5
- data/Rakefile +19 -13
- data/bin/rd2 +208 -182
- data/bin/rdswap.rb +144 -88
- data/lib/rd/filter.rb +1 -1
- data/lib/rd/rd2html-ext-opt.rb +1 -1
- data/lib/rd/rd2html-opt.rb +1 -3
- data/lib/rd/rd2html5-lib.rb +118 -0
- data/lib/rd/rd2man-lib.rb +37 -12
- data/lib/rd/rd2man-opt.rb +16 -0
- data/lib/rd/rdblockparser.ry +0 -1
- data/lib/rd/rdblockparser.tab.rb +111 -110
- data/lib/rd/rdinlineparser.tab.rb +214 -212
- data/lib/rd/rdvisitor.rb +1 -2
- data/lib/rd/version.rb +6 -6
- data/rdtool.gemspec +23 -13
- data/test/test-methodlist-item.rb +0 -1
- data/test/test-rbl-file.rb +4 -7
- data/test/test-rd2-cli.rb +91 -0
- data/test/test-rd2html5-lib.rb +67 -0
- data/test/test-rd2man-lib.rb +54 -0
- data/test/test-rdswap-cli.rb +49 -0
- data/test/test-reference-resolver.rb +1 -1
- data/utils/rd-mode.el +40 -32
- metadata +66 -72
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 56afd1caa2b9928320d804efbc6af88cd5e867cd9cca7afddb61118f3573c710
|
|
4
|
+
data.tar.gz: f2ee0a6892a2ea81230c7fe5df0cd39fb0944e42678f99cb277f8f6892746fb8
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 231e6ef5337bfb62ff43e2c64b99db29f96ed5e7a558b1cfbb9a10c348fbfc481d2af9d3987f7760ad806ef25ecc8db2c74a4f6e26d72c1fa19e93155ab8fedb
|
|
7
|
+
data.tar.gz: 36c56afad7c53699ed2353c576a1ddcd94f569e094d18e2bb46c33d4342ada27137a20328b543b42a427f632667c590bfc86c2ea57c3f1f5c02709ecddc258ab
|
data/Gemfile
CHANGED
data/HISTORY
CHANGED
|
@@ -71,6 +71,12 @@ Please read these files for those lisence info.
|
|
|
71
71
|
|
|
72
72
|
= CHANGES
|
|
73
73
|
|
|
74
|
+
:0.6.39
|
|
75
|
+
* Modernize packaging metadata, CI, and release workflow for current Ruby.
|
|
76
|
+
* Refactor rd2 internals without breaking external formatter compatibility.
|
|
77
|
+
* Add configurable man section support and improve rd2man output quality.
|
|
78
|
+
* Add a simple HTML5 formatter, and document bundled format libraries.
|
|
79
|
+
* Modernize rdswap and document its purpose.
|
|
74
80
|
:0.6.38
|
|
75
81
|
* Fix incompatibility between Ruby1.8 and Ruby1.9
|
|
76
82
|
ARGF.filename return "-" if ARGV is empty on Ruby >= 1.9
|
data/README.html
CHANGED
|
@@ -7,17 +7,20 @@
|
|
|
7
7
|
<title>README.rd</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
|
-
<h1><a name="label-0" id="label-0">RDtool 0.6.
|
|
10
|
+
<h1><a name="label-0" id="label-0">RDtool 0.6.39</a></h1><!-- RDLabel: "RDtool 0.6.39" -->
|
|
11
11
|
<h2><a name="label-1" id="label-1">What is RDtool</a></h2><!-- RDLabel: "What is RDtool" -->
|
|
12
12
|
<p>RD is Ruby's POD. RDtool is formatter for RD.</p>
|
|
13
13
|
<h2><a name="label-2" id="label-2">What is Changed</a></h2><!-- RDLabel: "What is Changed" -->
|
|
14
14
|
<p>See HISTORY.</p>
|
|
15
15
|
<h2><a name="label-3" id="label-3">How to Install</a></h2><!-- RDLabel: "How to Install" -->
|
|
16
|
-
<
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
|
|
16
|
+
<p>Install the released gem:</p>
|
|
17
|
+
<pre>% gem install rdtool</pre>
|
|
18
|
+
<p>For development:</p>
|
|
19
|
+
<pre>% bundle install
|
|
20
|
+
% bundle exec rake test
|
|
21
|
+
% bundle exec rake build</pre>
|
|
22
|
+
<p>If you want to use utils/rd-mode.el, install it <em>by hand</em>.</p>
|
|
23
|
+
<p>The legacy <kbd>ruby setup.rb</kbd> flow is kept only for compatibility.</p>
|
|
21
24
|
<h2><a name="label-4" id="label-4">How to use</a></h2><!-- RDLabel: "How to use" -->
|
|
22
25
|
<p>Simply,</p>
|
|
23
26
|
<pre>% rd2 rdfile.rd > outputfile</pre>
|
|
@@ -28,13 +31,64 @@
|
|
|
28
31
|
the indication of format-library. For example,</p>
|
|
29
32
|
<pre>% rd2 -r rd/rd2html-lib.rb --help</pre>
|
|
30
33
|
<p>rd2 load "${HOME}/.rd2rc" when it runs.</p>
|
|
31
|
-
<
|
|
34
|
+
<p>Bundled format libraries include:</p>
|
|
35
|
+
<dl>
|
|
36
|
+
<dt><a name="label-5" id="label-5"><kbd>rd/rd2html-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html-lib" -->
|
|
37
|
+
<dd>
|
|
38
|
+
XHTML-style HTML output. Main options include <kbd>--with-css=FILE</kbd>,
|
|
39
|
+
<kbd>--html-charset=CHARSET</kbd>, <kbd>--html-lang=LANG</kbd>,
|
|
40
|
+
<kbd>--html-title=TITLE</kbd>, <kbd>--html-link-rel=REL</kbd>,
|
|
41
|
+
<kbd>--html-link-rev=REV</kbd>, and <kbd>--output-rbl</kbd>.
|
|
42
|
+
</dd>
|
|
43
|
+
<dt><a name="label-6" id="label-6"><kbd>rd/rd2html-ext-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html-ext-lib" -->
|
|
44
|
+
<dd>
|
|
45
|
+
Extended HTML output with headline numbering and related features.
|
|
46
|
+
Main additional options include <kbd>--ref-extension</kbd>,
|
|
47
|
+
<kbd>--headline-title</kbd>, <kbd>--headline-secno</kbd>,
|
|
48
|
+
<kbd>--enable-br</kbd>, <kbd>--native-inline</kbd>, and <kbd>--head-element</kbd>.
|
|
49
|
+
</dd>
|
|
50
|
+
<dt><a name="label-7" id="label-7"><kbd>rd/rd2html5-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html5-lib" -->
|
|
51
|
+
<dd>
|
|
52
|
+
HTML5 output. It accepts the same main options as <kbd>rd/rd2html-lib</kbd>,
|
|
53
|
+
such as <kbd>--with-css=FILE</kbd>, <kbd>--html-charset=CHARSET</kbd>,
|
|
54
|
+
<kbd>--html-lang=LANG</kbd>, and <kbd>--html-title=TITLE</kbd>.
|
|
55
|
+
</dd>
|
|
56
|
+
<dt><a name="label-8" id="label-8"><kbd>rd/rd2man-lib</kbd></a></dt><!-- RDLabel: "rd/rd2man-lib" -->
|
|
57
|
+
<dd>
|
|
58
|
+
man page output. The main option is <kbd>--man-section=SECTION</kbd>.
|
|
59
|
+
</dd>
|
|
60
|
+
<dt><a name="label-9" id="label-9"><kbd>rd/rd2rdo-lib</kbd></a></dt><!-- RDLabel: "rd/rd2rdo-lib" -->
|
|
61
|
+
<dd>
|
|
62
|
+
Dumps the parsed RD tree as Marshal data.
|
|
63
|
+
</dd>
|
|
64
|
+
<dt><a name="label-10" id="label-10"><kbd>rd/rd2rmi-lib</kbd></a></dt><!-- RDLabel: "rd/rd2rmi-lib" -->
|
|
65
|
+
<dd>
|
|
66
|
+
Outputs method index data for reference lookup.
|
|
67
|
+
</dd>
|
|
68
|
+
</dl>
|
|
69
|
+
<p>For example, to generate HTML explicitly:</p>
|
|
70
|
+
<pre>% rd2 -r rd/rd2html-lib rdfile.rd > output.html</pre>
|
|
71
|
+
<p>To generate HTML5 or a man page:</p>
|
|
72
|
+
<pre>% rd2 -r rd/rd2html5-lib rdfile.rd > output.html
|
|
73
|
+
% rd2 -r rd/rd2man-lib rdfile.rd > output.1</pre>
|
|
74
|
+
<p>To check detailed options for a specific formatter, run:</p>
|
|
75
|
+
<pre>% rd2 -r rd/rd2html-ext-lib --help
|
|
76
|
+
% rd2 -r rd/rd2man-lib --help</pre>
|
|
77
|
+
<p>RDtool also includes <kbd>rdswap.rb</kbd>, which merges translated RD blocks
|
|
78
|
+
back into a Ruby script. This is intended for maintaining one source
|
|
79
|
+
script with embedded RD comments and generating language-specific copies.
|
|
80
|
+
For example:</p>
|
|
81
|
+
<pre>% rdswap.rb sample.rb sample.ja</pre>
|
|
82
|
+
<p>This generates <kbd>sample.rb.ja</kbd> while keeping Ruby code from
|
|
83
|
+
<kbd>sample.rb</kbd> and replacing matching RD blocks with translated ones
|
|
84
|
+
from <kbd>sample.ja</kbd>.</p>
|
|
85
|
+
<h2><a name="label-11" id="label-11">How to write RD?</a></h2><!-- RDLabel: "How to write RD?" -->
|
|
32
86
|
<p>Please read doc/rd-draft.rd.</p>
|
|
33
|
-
<h2><a name="label-
|
|
87
|
+
<h2><a name="label-12" id="label-12">About bug report</a></h2><!-- RDLabel: "About bug report" -->
|
|
34
88
|
<p>If you find a bug in RDtool, please add new
|
|
35
89
|
<a href="https://github.com/uwabami/rdtool/issues">issues at gihtub</a>,
|
|
36
90
|
or E-mail me <a href="mailto:uwabami@gfd-dennou.org"><URL:mailto:uwabami@gfd-dennou.org></a>.</p>
|
|
37
|
-
<h2><a name="label-
|
|
91
|
+
<h2><a name="label-13" id="label-13">Copyright and License</a></h2><!-- RDLabel: "Copyright and License" -->
|
|
38
92
|
<p>You can use/re-distribute/change RDtool under Ruby's License or GPL-2+.
|
|
39
93
|
see LICNESE.txt and COPYING.txt. This distribution of RDtool include
|
|
40
94
|
files that are copyrighted by somebody else, and these files can be
|
data/README.ja.html
CHANGED
|
@@ -7,19 +7,22 @@
|
|
|
7
7
|
<title>README.rd.ja</title>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
|
-
<h1><a name="label-0" id="label-0">RDtool 0.6.
|
|
10
|
+
<h1><a name="label-0" id="label-0">RDtool 0.6.39</a></h1><!-- RDLabel: "RDtool 0.6.39" -->
|
|
11
11
|
<h2><a name="label-1" id="label-1">RDってなに?</a></h2><!-- RDLabel: "RDってなに?" -->
|
|
12
12
|
<p>RDはRubyにおけるPOD(Plain Old Documentation)のようなものです。
|
|
13
13
|
RDtoolはRDのフォーマッタであり、RDをHTMLなどに変換できます。</p>
|
|
14
14
|
<h2><a name="label-2" id="label-2">何が変わった?</a></h2><!-- RDLabel: "何が変わった?" -->
|
|
15
15
|
<p>HISTORYを見てください。</p>
|
|
16
16
|
<h2><a name="label-3" id="label-3">インストールの方法</a></h2><!-- RDLabel: "インストールの方法" -->
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
</
|
|
17
|
+
<p>公開された gem を使うなら:</p>
|
|
18
|
+
<pre>% gem install rdtool</pre>
|
|
19
|
+
<p>開発時は:</p>
|
|
20
|
+
<pre>% bundle install
|
|
21
|
+
% bundle exec rake test
|
|
22
|
+
% bundle exec rake build</pre>
|
|
23
|
+
<p>utils/rd-mode.el を使いたいなら、
|
|
24
|
+
それらは<em>手で</em>インストールします。</p>
|
|
25
|
+
<p>従来の <kbd>ruby setup.rb</kbd> 方式は互換性のために残してあります。</p>
|
|
23
26
|
<h2><a name="label-4" id="label-4">どうやって使うか。</a></h2><!-- RDLabel: "どうやって使うか。" -->
|
|
24
27
|
<p>基本的には、こんな感じ。</p>
|
|
25
28
|
<pre>% rd2 rdfile.rd > outputfile</pre>
|
|
@@ -31,9 +34,63 @@ RDtoolはRDのフォーマッタであり、RDをHTMLなどに変換できます
|
|
|
31
34
|
<pre>% rd2 -r rd/rd2html-lib.rb --help</pre>
|
|
32
35
|
<p>rd2はホームディレクトリにある".rd2rc"というファイルを読み込みます。
|
|
33
36
|
これはRubyスクリプトです。</p>
|
|
34
|
-
<
|
|
37
|
+
<p>同梱されている主なフォーマットライブラリは次の通りです。</p>
|
|
38
|
+
<dl>
|
|
39
|
+
<dt><a name="label-5" id="label-5"><kbd>rd/rd2html-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html-lib" -->
|
|
40
|
+
<dd>
|
|
41
|
+
XHTML 風の HTML を出力します。主なオプションは
|
|
42
|
+
<kbd>--with-css=FILE</kbd>, <kbd>--html-charset=CHARSET</kbd>,
|
|
43
|
+
<kbd>--html-lang=LANG</kbd>, <kbd>--html-title=TITLE</kbd>,
|
|
44
|
+
<kbd>--html-link-rel=REL</kbd>, <kbd>--html-link-rev=REV</kbd>,
|
|
45
|
+
<kbd>--output-rbl</kbd> です。
|
|
46
|
+
</dd>
|
|
47
|
+
<dt><a name="label-6" id="label-6"><kbd>rd/rd2html-ext-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html-ext-lib" -->
|
|
48
|
+
<dd>
|
|
49
|
+
見出し番号などを追加した拡張 HTML を出力します。
|
|
50
|
+
主な追加オプションは <kbd>--ref-extension</kbd>,
|
|
51
|
+
<kbd>--headline-title</kbd>, <kbd>--headline-secno</kbd>,
|
|
52
|
+
<kbd>--enable-br</kbd>, <kbd>--native-inline</kbd>,
|
|
53
|
+
<kbd>--head-element</kbd> です。
|
|
54
|
+
</dd>
|
|
55
|
+
<dt><a name="label-7" id="label-7"><kbd>rd/rd2html5-lib</kbd></a></dt><!-- RDLabel: "rd/rd2html5-lib" -->
|
|
56
|
+
<dd>
|
|
57
|
+
HTML5 を出力します。主なオプションは <kbd>rd/rd2html-lib</kbd> と同様で、
|
|
58
|
+
<kbd>--with-css=FILE</kbd>, <kbd>--html-charset=CHARSET</kbd>,
|
|
59
|
+
<kbd>--html-lang=LANG</kbd>, <kbd>--html-title=TITLE</kbd> などが使えます。
|
|
60
|
+
</dd>
|
|
61
|
+
<dt><a name="label-8" id="label-8"><kbd>rd/rd2man-lib</kbd></a></dt><!-- RDLabel: "rd/rd2man-lib" -->
|
|
62
|
+
<dd>
|
|
63
|
+
man page を出力します。主なオプションは
|
|
64
|
+
<kbd>--man-section=SECTION</kbd> です。
|
|
65
|
+
</dd>
|
|
66
|
+
<dt><a name="label-9" id="label-9"><kbd>rd/rd2rdo-lib</kbd></a></dt><!-- RDLabel: "rd/rd2rdo-lib" -->
|
|
67
|
+
<dd>
|
|
68
|
+
解析済みの RD tree を Marshal data として出力します。
|
|
69
|
+
</dd>
|
|
70
|
+
<dt><a name="label-10" id="label-10"><kbd>rd/rd2rmi-lib</kbd></a></dt><!-- RDLabel: "rd/rd2rmi-lib" -->
|
|
71
|
+
<dd>
|
|
72
|
+
参照解決用の method index data を出力します。
|
|
73
|
+
</dd>
|
|
74
|
+
</dl>
|
|
75
|
+
<p>例えば HTML を明示的に生成するなら:</p>
|
|
76
|
+
<pre>% rd2 -r rd/rd2html-lib rdfile.rd > output.html</pre>
|
|
77
|
+
<p>HTML5 や man page を生成するなら:</p>
|
|
78
|
+
<pre>% rd2 -r rd/rd2html5-lib rdfile.rd > output.html
|
|
79
|
+
% rd2 -r rd/rd2man-lib rdfile.rd > output.1</pre>
|
|
80
|
+
<p>各 formatter の詳細なオプションを確認するには、例えば:</p>
|
|
81
|
+
<pre>% rd2 -r rd/rd2html-ext-lib --help
|
|
82
|
+
% rd2 -r rd/rd2man-lib --help</pre>
|
|
83
|
+
<p>また、RDtool には <kbd>rdswap.rb</kbd> も含まれています。
|
|
84
|
+
これは翻訳済みの RD block を Ruby スクリプトへ差し戻すための
|
|
85
|
+
ツールです。RD コメントを埋め込んだ 1 つの Ruby スクリプトを保ちつつ、
|
|
86
|
+
言語ごとのコピーを生成する用途を想定しています。例えば:</p>
|
|
87
|
+
<pre>% rdswap.rb sample.rb sample.ja</pre>
|
|
88
|
+
<p>これにより、<kbd>sample.rb</kbd> の Ruby コードを保ったまま、
|
|
89
|
+
対応する RD block を <kbd>sample.ja</kbd> の内容で置き換えた
|
|
90
|
+
<kbd>sample.rb.ja</kbd> を生成します。</p>
|
|
91
|
+
<h2><a name="label-11" id="label-11">RDの書き方</a></h2><!-- RDLabel: "RDの書き方" -->
|
|
35
92
|
<p>doc/rd-draft.rdを読んでください。</p>
|
|
36
|
-
<h2><a name="label-
|
|
93
|
+
<h2><a name="label-12" id="label-12">バグ報告</a></h2><!-- RDLabel: "バグ報告" -->
|
|
37
94
|
<p>If you find a bug in RDtool, please add new
|
|
38
95
|
<a href="https://github.com/uwabami/rdtool/issues">issues at gihtub</a>,
|
|
39
96
|
or E-mail me <a href="mailto:uwabami@gfd-dennou.org"><URL:mailto:uwabami@gfd-dennou.org></a>.</p>
|
|
@@ -42,7 +99,7 @@ or E-mail me <a href="mailto:uwabami@gfd-dennou.org"><URL:mailto:uwabami@gfd-
|
|
|
42
99
|
に報告するか、
|
|
43
100
|
次のアドレスまでメールを下さると幸いです:
|
|
44
101
|
<a href="mailto:uwabami@gfd-dennou.org"><URL:mailto:uwabami@gfd-dennou.org></a></p>
|
|
45
|
-
<h2><a name="label-
|
|
102
|
+
<h2><a name="label-13" id="label-13">ライセンス</a></h2><!-- RDLabel: "ライセンス" -->
|
|
46
103
|
<p>RDtoolはRuby's LicenseかGPL-2+の下で使用/配布/改造してください。
|
|
47
104
|
RDtoolのパッケージにはTosh以外の人が著作権を持つファイルが含まれています。
|
|
48
105
|
それらのファイルについての配布条件はファイル自体に書かれたライセンスの下で
|
data/README.rd
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- mode: rd; coding: utf-8; indent-tabs-mode: nil -*-
|
|
2
2
|
=begin
|
|
3
|
-
= RDtool 0.6.
|
|
3
|
+
= RDtool 0.6.39
|
|
4
4
|
== What is RDtool
|
|
5
5
|
|
|
6
6
|
RD is Ruby's POD. RDtool is formatter for RD.
|
|
@@ -11,9 +11,19 @@ See HISTORY.
|
|
|
11
11
|
|
|
12
12
|
== How to Install
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Install the released gem:
|
|
15
|
+
|
|
16
|
+
% gem install rdtool
|
|
17
|
+
|
|
18
|
+
For development:
|
|
19
|
+
|
|
20
|
+
% bundle install
|
|
21
|
+
% bundle exec rake test
|
|
22
|
+
% bundle exec rake build
|
|
23
|
+
|
|
24
|
+
If you want to use utils/rd-mode.el, install it ((*by hand*)).
|
|
25
|
+
|
|
26
|
+
The legacy ((%ruby setup.rb%)) flow is kept only for compatibility.
|
|
17
27
|
|
|
18
28
|
== How to use
|
|
19
29
|
|
|
@@ -32,6 +42,59 @@ the indication of format-library. For example,
|
|
|
32
42
|
|
|
33
43
|
rd2 load "${HOME}/.rd2rc" when it runs.
|
|
34
44
|
|
|
45
|
+
Bundled format libraries include:
|
|
46
|
+
|
|
47
|
+
:((%rd/rd2html-lib%))
|
|
48
|
+
XHTML-style HTML output. Main options include ((%--with-css=FILE%)),
|
|
49
|
+
((%--html-charset=CHARSET%)), ((%--html-lang=LANG%)),
|
|
50
|
+
((%--html-title=TITLE%)), ((%--html-link-rel=REL%)),
|
|
51
|
+
((%--html-link-rev=REV%)), and ((%--output-rbl%)).
|
|
52
|
+
|
|
53
|
+
:((%rd/rd2html-ext-lib%))
|
|
54
|
+
Extended HTML output with headline numbering and related features.
|
|
55
|
+
Main additional options include ((%--ref-extension%)),
|
|
56
|
+
((%--headline-title%)), ((%--headline-secno%)),
|
|
57
|
+
((%--enable-br%)), ((%--native-inline%)), and ((%--head-element%)).
|
|
58
|
+
|
|
59
|
+
:((%rd/rd2html5-lib%))
|
|
60
|
+
HTML5 output. It accepts the same main options as ((%rd/rd2html-lib%)),
|
|
61
|
+
such as ((%--with-css=FILE%)), ((%--html-charset=CHARSET%)),
|
|
62
|
+
((%--html-lang=LANG%)), and ((%--html-title=TITLE%)).
|
|
63
|
+
|
|
64
|
+
:((%rd/rd2man-lib%))
|
|
65
|
+
man page output. The main option is ((%--man-section=SECTION%)).
|
|
66
|
+
|
|
67
|
+
:((%rd/rd2rdo-lib%))
|
|
68
|
+
Dumps the parsed RD tree as Marshal data.
|
|
69
|
+
|
|
70
|
+
:((%rd/rd2rmi-lib%))
|
|
71
|
+
Outputs method index data for reference lookup.
|
|
72
|
+
|
|
73
|
+
For example, to generate HTML explicitly:
|
|
74
|
+
|
|
75
|
+
% rd2 -r rd/rd2html-lib rdfile.rd > output.html
|
|
76
|
+
|
|
77
|
+
To generate HTML5 or a man page:
|
|
78
|
+
|
|
79
|
+
% rd2 -r rd/rd2html5-lib rdfile.rd > output.html
|
|
80
|
+
% rd2 -r rd/rd2man-lib rdfile.rd > output.1
|
|
81
|
+
|
|
82
|
+
To check detailed options for a specific formatter, run:
|
|
83
|
+
|
|
84
|
+
% rd2 -r rd/rd2html-ext-lib --help
|
|
85
|
+
% rd2 -r rd/rd2man-lib --help
|
|
86
|
+
|
|
87
|
+
RDtool also includes ((%rdswap.rb%)), which merges translated RD blocks
|
|
88
|
+
back into a Ruby script. This is intended for maintaining one source
|
|
89
|
+
script with embedded RD comments and generating language-specific copies.
|
|
90
|
+
For example:
|
|
91
|
+
|
|
92
|
+
% rdswap.rb sample.rb sample.ja
|
|
93
|
+
|
|
94
|
+
This generates ((%sample.rb.ja%)) while keeping Ruby code from
|
|
95
|
+
((%sample.rb%)) and replacing matching RD blocks with translated ones
|
|
96
|
+
from ((%sample.ja%)).
|
|
97
|
+
|
|
35
98
|
== How to write RD?
|
|
36
99
|
|
|
37
100
|
Please read doc/rd-draft.rd.
|
data/README.rd.ja
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- mode: rd; coding: utf-8; indent-tabs-mode: nil -*-
|
|
2
2
|
=begin
|
|
3
|
-
= RDtool 0.6.
|
|
3
|
+
= RDtool 0.6.39
|
|
4
4
|
== RDってなに?
|
|
5
5
|
|
|
6
6
|
RDはRubyにおけるPOD(Plain Old Documentation)のようなものです。
|
|
@@ -12,10 +12,20 @@ HISTORYを見てください。
|
|
|
12
12
|
|
|
13
13
|
== インストールの方法
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
公開された gem を使うなら:
|
|
16
|
+
|
|
17
|
+
% gem install rdtool
|
|
18
|
+
|
|
19
|
+
開発時は:
|
|
20
|
+
|
|
21
|
+
% bundle install
|
|
22
|
+
% bundle exec rake test
|
|
23
|
+
% bundle exec rake build
|
|
24
|
+
|
|
25
|
+
utils/rd-mode.el を使いたいなら、
|
|
26
|
+
それらは((*手で*))インストールします。
|
|
27
|
+
|
|
28
|
+
従来の ((%ruby setup.rb%)) 方式は互換性のために残してあります。
|
|
19
29
|
|
|
20
30
|
== どうやって使うか。
|
|
21
31
|
|
|
@@ -35,6 +45,62 @@ HISTORYを見てください。
|
|
|
35
45
|
rd2はホームディレクトリにある".rd2rc"というファイルを読み込みます。
|
|
36
46
|
これはRubyスクリプトです。
|
|
37
47
|
|
|
48
|
+
同梱されている主なフォーマットライブラリは次の通りです。
|
|
49
|
+
|
|
50
|
+
:((%rd/rd2html-lib%))
|
|
51
|
+
XHTML 風の HTML を出力します。主なオプションは
|
|
52
|
+
((%--with-css=FILE%)), ((%--html-charset=CHARSET%)),
|
|
53
|
+
((%--html-lang=LANG%)), ((%--html-title=TITLE%)),
|
|
54
|
+
((%--html-link-rel=REL%)), ((%--html-link-rev=REV%)),
|
|
55
|
+
((%--output-rbl%)) です。
|
|
56
|
+
|
|
57
|
+
:((%rd/rd2html-ext-lib%))
|
|
58
|
+
見出し番号などを追加した拡張 HTML を出力します。
|
|
59
|
+
主な追加オプションは ((%--ref-extension%)),
|
|
60
|
+
((%--headline-title%)), ((%--headline-secno%)),
|
|
61
|
+
((%--enable-br%)), ((%--native-inline%)),
|
|
62
|
+
((%--head-element%)) です。
|
|
63
|
+
|
|
64
|
+
:((%rd/rd2html5-lib%))
|
|
65
|
+
HTML5 を出力します。主なオプションは ((%rd/rd2html-lib%)) と同様で、
|
|
66
|
+
((%--with-css=FILE%)), ((%--html-charset=CHARSET%)),
|
|
67
|
+
((%--html-lang=LANG%)), ((%--html-title=TITLE%)) などが使えます。
|
|
68
|
+
|
|
69
|
+
:((%rd/rd2man-lib%))
|
|
70
|
+
man page を出力します。主なオプションは
|
|
71
|
+
((%--man-section=SECTION%)) です。
|
|
72
|
+
|
|
73
|
+
:((%rd/rd2rdo-lib%))
|
|
74
|
+
解析済みの RD tree を Marshal data として出力します。
|
|
75
|
+
|
|
76
|
+
:((%rd/rd2rmi-lib%))
|
|
77
|
+
参照解決用の method index data を出力します。
|
|
78
|
+
|
|
79
|
+
例えば HTML を明示的に生成するなら:
|
|
80
|
+
|
|
81
|
+
% rd2 -r rd/rd2html-lib rdfile.rd > output.html
|
|
82
|
+
|
|
83
|
+
HTML5 や man page を生成するなら:
|
|
84
|
+
|
|
85
|
+
% rd2 -r rd/rd2html5-lib rdfile.rd > output.html
|
|
86
|
+
% rd2 -r rd/rd2man-lib rdfile.rd > output.1
|
|
87
|
+
|
|
88
|
+
各 formatter の詳細なオプションを確認するには、例えば:
|
|
89
|
+
|
|
90
|
+
% rd2 -r rd/rd2html-ext-lib --help
|
|
91
|
+
% rd2 -r rd/rd2man-lib --help
|
|
92
|
+
|
|
93
|
+
また、RDtool には ((%rdswap.rb%)) も含まれています。
|
|
94
|
+
これは翻訳済みの RD block を Ruby スクリプトへ差し戻すための
|
|
95
|
+
ツールです。RD コメントを埋め込んだ 1 つの Ruby スクリプトを保ちつつ、
|
|
96
|
+
言語ごとのコピーを生成する用途を想定しています。例えば:
|
|
97
|
+
|
|
98
|
+
% rdswap.rb sample.rb sample.ja
|
|
99
|
+
|
|
100
|
+
これにより、((%sample.rb%)) の Ruby コードを保ったまま、
|
|
101
|
+
対応する RD block を ((%sample.ja%)) の内容で置き換えた
|
|
102
|
+
((%sample.rb.ja%)) を生成します。
|
|
103
|
+
|
|
38
104
|
== RDの書き方
|
|
39
105
|
|
|
40
106
|
doc/rd-draft.rdを読んでください。
|
data/Rakefile
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# -*- mode: ruby; coding: utf-8 -*-
|
|
2
|
-
require 'rubygems'
|
|
3
2
|
require 'rake'
|
|
4
3
|
require 'rake/packagetask'
|
|
5
4
|
require 'rake/testtask'
|
|
6
5
|
require 'rake/clean'
|
|
7
|
-
require 'date' unless defined? Date
|
|
6
|
+
require 'date' unless defined? Date::today
|
|
8
7
|
|
|
9
8
|
#############################################################################
|
|
10
9
|
# Helper functions
|
|
@@ -22,10 +21,6 @@ def date
|
|
|
22
21
|
Date.today.to_s
|
|
23
22
|
end
|
|
24
23
|
|
|
25
|
-
def rubyforge_project
|
|
26
|
-
name
|
|
27
|
-
end
|
|
28
|
-
|
|
29
24
|
def gemspec_file
|
|
30
25
|
"#{name}.gemspec"
|
|
31
26
|
end
|
|
@@ -34,6 +29,14 @@ def gem_file
|
|
|
34
29
|
"#{name}-#{version}.gem"
|
|
35
30
|
end
|
|
36
31
|
|
|
32
|
+
def current_branch
|
|
33
|
+
`git rev-parse --abbrev-ref HEAD`.strip
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def clean_worktree?
|
|
37
|
+
`git status --porcelain`.strip.empty?
|
|
38
|
+
end
|
|
39
|
+
|
|
37
40
|
def replace_header(head, header_name)
|
|
38
41
|
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
|
39
42
|
end
|
|
@@ -46,7 +49,7 @@ HTML_GENERATED = HTML_SRC.ext('.html')
|
|
|
46
49
|
HTML_JA_SRC = FileList['**/*.rd.ja'].reject{|f| f =~/pkg/}
|
|
47
50
|
HTML_JA_GENERATED = HTML_JA_SRC.collect{|x| x.gsub(/\.rd\.ja/,'.ja.html')}
|
|
48
51
|
GENERATED_FILES = RACC_GENERATED + HTML_GENERATED + HTML_JA_GENERATED
|
|
49
|
-
CLOBBER.
|
|
52
|
+
CLOBBER.include(*GENERATED_FILES.to_a)
|
|
50
53
|
|
|
51
54
|
desc "Update parser"
|
|
52
55
|
task :racc => RACC_GENERATED
|
|
@@ -83,13 +86,17 @@ end
|
|
|
83
86
|
|
|
84
87
|
desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
|
|
85
88
|
task :release => :build do
|
|
86
|
-
unless
|
|
87
|
-
|
|
88
|
-
exit!
|
|
89
|
+
unless clean_worktree?
|
|
90
|
+
abort "Release requires a clean git worktree."
|
|
89
91
|
end
|
|
90
|
-
|
|
92
|
+
|
|
93
|
+
branch = current_branch
|
|
94
|
+
if branch.empty? || branch == "HEAD"
|
|
95
|
+
abort "Release requires a named git branch."
|
|
96
|
+
end
|
|
97
|
+
|
|
91
98
|
sh "git tag v#{version}"
|
|
92
|
-
sh "git push origin
|
|
99
|
+
sh "git push origin #{branch}"
|
|
93
100
|
sh "git push origin v#{version}"
|
|
94
101
|
sh "gem push pkg/#{name}-#{version}.gem"
|
|
95
102
|
end
|
|
@@ -112,7 +119,6 @@ task :gemspec => [:racc, :doc, :bump_version] do
|
|
|
112
119
|
replace_header(head, :name)
|
|
113
120
|
replace_header(head, :version)
|
|
114
121
|
replace_header(head, :date)
|
|
115
|
-
# replace_header(head, :rubyforge_project)
|
|
116
122
|
files = (`git ls-files`.split("\n") + GENERATED_FILES.to_a).
|
|
117
123
|
sort.
|
|
118
124
|
reject {|file| file =~/^\./}.
|