ron 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/ron.gemspec +39 -51
- metadata +50 -77
- data/COPYING +0 -21
- data/README.md +0 -133
- data/Rakefile +0 -94
- data/bin/ron +0 -130
- data/lib/ron.rb +0 -16
- data/lib/ron/document.rb +0 -289
- data/lib/ron/layout.html +0 -75
- data/lib/ron/roff.rb +0 -180
- data/man/markdown.5 +0 -1614
- data/man/markdown.5.ron +0 -881
- data/man/ron.1 +0 -226
- data/man/ron.1.ron +0 -158
- data/man/ron.5 +0 -210
- data/man/ron.5.ron +0 -154
- data/man/ron.7 +0 -201
- data/man/ron.7.ron +0 -133
- data/test/angle_bracket_syntax.html +0 -12
- data/test/angle_bracket_syntax.ron +0 -12
- data/test/basic_document.html +0 -3
- data/test/basic_document.ron +0 -4
- data/test/custom_title_document.html +0 -3
- data/test/custom_title_document.ron +0 -5
- data/test/definition_list_syntax.html +0 -21
- data/test/definition_list_syntax.ron +0 -18
- data/test/document_test.rb +0 -88
- data/test/ron_test.rb +0 -59
- data/test/titleless_document.html +0 -2
- data/test/titleless_document.ron +0 -2
data/man/ron.5.ron
DELETED
@@ -1,154 +0,0 @@
|
|
1
|
-
ron(5) -- humane manual page authoring format
|
2
|
-
=============================================
|
3
|
-
|
4
|
-
## SYNOPSIS
|
5
|
-
|
6
|
-
A basic manual page in Ron:
|
7
|
-
|
8
|
-
name(1) -- one sentence description
|
9
|
-
===================================
|
10
|
-
|
11
|
-
## SECTION HEADING
|
12
|
-
|
13
|
-
A normal paragraph. This can span multiple lines and is
|
14
|
-
terminated with two or more line endings -- just like
|
15
|
-
Markdown.
|
16
|
-
|
17
|
-
## INLINE MARKUP
|
18
|
-
|
19
|
-
Inline markup is used for `code` and `user input` (displayed
|
20
|
-
in boldface), and also <variables> or _emphasis_.
|
21
|
-
|
22
|
-
Manual page references like sh(1), markdown(5), roff(7), etc.
|
23
|
-
are displayed in boldface and hyperlinked in HTML output.
|
24
|
-
|
25
|
-
## DEFINITION LISTS
|
26
|
-
|
27
|
-
Definition lists are used to define options, arguments,
|
28
|
-
variables, and other type of terms:
|
29
|
-
|
30
|
-
* `-a`, `--arg1`=[_OPTION_]:
|
31
|
-
One or more paragraphs describing the argument.
|
32
|
-
* `-b`, `--arg2`:
|
33
|
-
Any number of these may be specified and may
|
34
|
-
be nested.
|
35
|
-
|
36
|
-
## DESCRIPTION
|
37
|
-
|
38
|
-
Ron files are simple ascii texts that document things in the
|
39
|
-
style of UNIX man pages but with a syntax and feature-set less
|
40
|
-
insane than that of roff(7). Ron files are piped through ron(1)
|
41
|
-
to build and install traditional roff(7) man pages or to generate
|
42
|
-
hyperlinked HTML documentation.
|
43
|
-
|
44
|
-
All ron formatted files must conform to a simple subset of
|
45
|
-
markdown(5), a humane text markup designed for writing on the
|
46
|
-
web. It is neither possible nor desirable to express many of
|
47
|
-
roff(7)'s complex typesetting features in ron.
|
48
|
-
|
49
|
-
## MANPAGE TITLE
|
50
|
-
|
51
|
-
All man pages have a <name>, belong to a <section>, and have a
|
52
|
-
single sentence <tagline> (useless but witty, preferably). Ron
|
53
|
-
files must begin with a first-level heading that includes all of
|
54
|
-
this information. For example, this very man page begins:
|
55
|
-
|
56
|
-
ron(5) -- humane manual page authoring format
|
57
|
-
=============================================
|
58
|
-
|
59
|
-
Here, we're saying that the man page documents a thing named
|
60
|
-
`ron` in manual section `5` (the "file formats" section; see
|
61
|
-
manpages(5) for full section list) and that's quickly described
|
62
|
-
as a "humane manual page authoring format".
|
63
|
-
|
64
|
-
These bits of information are used to fill in the document
|
65
|
-
header, to create the `NAME` section, and also to establish
|
66
|
-
output filenames when processed with ron(1).
|
67
|
-
|
68
|
-
## SECTION HEADINGS
|
69
|
-
|
70
|
-
Man section headings are expressed with markdown level two
|
71
|
-
headings. markdown(5) provides two syntaxes for level two
|
72
|
-
headings. A hash prefix syntax:
|
73
|
-
|
74
|
-
## HEADING TEXT
|
75
|
-
|
76
|
-
Or, a dash underline syntax:
|
77
|
-
|
78
|
-
HEADING TEXT
|
79
|
-
------------
|
80
|
-
|
81
|
-
Section headings should be in all uppercase and may not contain
|
82
|
-
other inline markup.
|
83
|
-
|
84
|
-
Most manual pages include at least one of the `SYNOPSIS`,
|
85
|
-
`DESCRIPTION`, and/or `OPTIONS` sections. Additional sections
|
86
|
-
commonly included are `SYNTAX`, `ENVIRONMENT`, `HISTORY`, `RETURN
|
87
|
-
VALUES`, `BUGS`, `SECURITY CONSIDERATIONS`, `STANDARDS` /
|
88
|
-
`CONFORMING TO`, `AUTHOR`, and `COPYRIGHT`. Finally, most man
|
89
|
-
pages end with a `SEE ALSO` section that references other manual
|
90
|
-
pages and external documents.
|
91
|
-
|
92
|
-
## INLINE MARKUP
|
93
|
-
|
94
|
-
Man pages have a limited set of text formatting capabilities at
|
95
|
-
their disposal. There's basically <b>boldface</b> and
|
96
|
-
<i>italics</i> (often displayed using <u>underline</u>). Ron uses
|
97
|
-
the following bits of markdown(5) to accomplish this:
|
98
|
-
|
99
|
-
* <code>\`backticks\`</code>:
|
100
|
-
Code, flags, commands, and noun-like things; typically
|
101
|
-
displayed in in <b>boldface</b>. Note that all text included
|
102
|
-
within `backticks` is displayed literally; other inline markup
|
103
|
-
is not processed.
|
104
|
-
* `**double-stars**`:
|
105
|
-
Like `backticks` but inline markup is processed.
|
106
|
-
* `_`_underbars_`_`:
|
107
|
-
User-specified arguments, variables, or user input; typically
|
108
|
-
displayed with <u>underline</u>.
|
109
|
-
* `<angle-quotes>`:
|
110
|
-
Same as _underbars_. This is not compatible with Markdown.
|
111
|
-
|
112
|
-
Here is grep(1)'s DESCRIPTION section represented in `ron`:
|
113
|
-
|
114
|
-
`Grep` searches the named input _FILE_ (or standard input if
|
115
|
-
no files are named, or the file name `-` is given) for lines
|
116
|
-
containing a match to the given _PATTERN_. By default, `grep`
|
117
|
-
prints the matching lines.
|
118
|
-
|
119
|
-
## DEFINITION LISTS
|
120
|
-
|
121
|
-
Because definition lists are so often used in manual pages to
|
122
|
-
describe arguments, options, and variables, the basic markdown(5)
|
123
|
-
list syntax has been extended to support a definition list
|
124
|
-
syntax.
|
125
|
-
|
126
|
-
Definition list syntax is exactly the same as markdown(5)'s
|
127
|
-
unordered list syntax but requires that the first line of each
|
128
|
-
list item be terminated with a colon "`:`". The first line (minus
|
129
|
-
the colon) is the <term>; subsequent lines may be comprised of
|
130
|
-
multiple paragraphs, code blocks, standard lists, and nested
|
131
|
-
definition lists.
|
132
|
-
|
133
|
-
An example definition list, taken from BSD test(1)'s
|
134
|
-
`DESCRIPTION` section:
|
135
|
-
|
136
|
-
The following primaries are used to construct expressions:
|
137
|
-
|
138
|
-
* `-b` _file_:
|
139
|
-
True if _file_ exists and is a block special file.
|
140
|
-
|
141
|
-
* `-c` _file_:
|
142
|
-
True if _file_ exists and is a character special file.
|
143
|
-
|
144
|
-
* `-d` _file_:
|
145
|
-
True if file exists and is a directory.
|
146
|
-
|
147
|
-
The definition list syntax is intentionally backward compatible
|
148
|
-
with markdown(5)'s list syntax. This allows `ron` documents to be
|
149
|
-
piped through normal markdown processors with minor degradation
|
150
|
-
in output formatting.
|
151
|
-
|
152
|
-
## SEE ALSO
|
153
|
-
|
154
|
-
ron(1), markdown(5), manpages(5)
|
data/man/ron.7
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
.\" generated with Ron/v0.2
|
2
|
-
.\" http://github.com/rtomayko/ron/
|
3
|
-
.
|
4
|
-
.TH "RON" "7" "December 2009" "Ryan Tomayko" "Ron Manual"
|
5
|
-
.
|
6
|
-
.SH "NAME"
|
7
|
-
\fBron\fR \-\- the opposite of roff
|
8
|
-
.
|
9
|
-
.SH "DESCRIPTION"
|
10
|
-
Ron is a humane text format and toolchain for creating UNIX man
|
11
|
-
pages, and things that appear as man pages from a distance. Use it
|
12
|
-
to build and install standard UNIX roff man pages or to generate
|
13
|
-
nicely formatted HTML manual pages for the web.
|
14
|
-
.
|
15
|
-
.P
|
16
|
-
The Ron file format is based on Markdown. In fact, Ron files are a
|
17
|
-
compatible subset of Markdown syntax but have a more rigid structure and
|
18
|
-
extend Markdown in some ways to provide features commonly found in man
|
19
|
-
pages (e.g., definition lists). The ron(5) manual page defines the
|
20
|
-
format in more detail.
|
21
|
-
.
|
22
|
-
.SH "DOCUMENTATION"
|
23
|
-
The \fB.ron\fR files located under the \fBman/\fR directory show off a wide
|
24
|
-
range of ron capabilities and are the source of Ron's own documentation.
|
25
|
-
The source files and generated HTML / roff output files are available
|
26
|
-
at:
|
27
|
-
.
|
28
|
-
.IP "\(bu" 4
|
29
|
-
\fIron(1)\fR \-
|
30
|
-
build markdown based manual pages at the command line.
|
31
|
-
.
|
32
|
-
.br
|
33
|
-
\fIsource file\fR, \fIroff output\fR
|
34
|
-
.
|
35
|
-
.IP "\(bu" 4
|
36
|
-
\fIron(5)\fR \-
|
37
|
-
humane manual page authoring format syntax reference.
|
38
|
-
.
|
39
|
-
.br
|
40
|
-
\fIsource file\fR, \fIroff output\fR
|
41
|
-
.
|
42
|
-
.IP "\(bu" 4
|
43
|
-
\fImarkdown(5)\fR \-
|
44
|
-
humane text markup syntax (taken from \fIMarkdown Syntax\fR,
|
45
|
-
John Gruber)
|
46
|
-
.
|
47
|
-
.br
|
48
|
-
\fIsource file\fR, \fIroff output\fR
|
49
|
-
.
|
50
|
-
.IP "" 0
|
51
|
-
.
|
52
|
-
.SH "INSTALL"
|
53
|
-
Install with Rubygems:
|
54
|
-
.
|
55
|
-
.IP "" 4
|
56
|
-
.
|
57
|
-
.nf
|
58
|
-
|
59
|
-
$ [sudo] gem install ron
|
60
|
-
$ ron \-\-help
|
61
|
-
.
|
62
|
-
.fi
|
63
|
-
.
|
64
|
-
.IP "" 0
|
65
|
-
.
|
66
|
-
.P
|
67
|
-
Or, clone the git repository:
|
68
|
-
.
|
69
|
-
.IP "" 4
|
70
|
-
.
|
71
|
-
.nf
|
72
|
-
|
73
|
-
$ git clone git://github.com/rtomayko/ron.git
|
74
|
-
$ PATH=ron/bin:$PATH
|
75
|
-
$ ron \-\-help
|
76
|
-
.
|
77
|
-
.fi
|
78
|
-
.
|
79
|
-
.IP "" 0
|
80
|
-
.
|
81
|
-
.SH "BASIC USAGE"
|
82
|
-
To generate a roff man page from the included\fI\fBmarkdown.5.ron\fR\fR file and open it with man(1):
|
83
|
-
.
|
84
|
-
.IP "" 4
|
85
|
-
.
|
86
|
-
.nf
|
87
|
-
|
88
|
-
$ ron \-b man/markdown.5.ron
|
89
|
-
building: man/markdown.5
|
90
|
-
$ man man/markdown.5
|
91
|
-
.
|
92
|
-
.fi
|
93
|
-
.
|
94
|
-
.IP "" 0
|
95
|
-
.
|
96
|
-
.P
|
97
|
-
To generate a standalone HTML version:
|
98
|
-
.
|
99
|
-
.IP "" 4
|
100
|
-
.
|
101
|
-
.nf
|
102
|
-
|
103
|
-
$ ron \-b \-\-html man/markdown.5.ron
|
104
|
-
building: man/markdown.5.html
|
105
|
-
$ open man/markdown.5.html
|
106
|
-
.
|
107
|
-
.fi
|
108
|
-
.
|
109
|
-
.IP "" 0
|
110
|
-
.
|
111
|
-
.P
|
112
|
-
To build roff and HTML versions of all ron files:
|
113
|
-
.
|
114
|
-
.IP "" 4
|
115
|
-
.
|
116
|
-
.nf
|
117
|
-
|
118
|
-
$ ron \-b \-\-roff \-\-html man/*.ron
|
119
|
-
.
|
120
|
-
.fi
|
121
|
-
.
|
122
|
-
.IP "" 0
|
123
|
-
.
|
124
|
-
.P
|
125
|
-
If you just want to view a ron file as if it were a man page without
|
126
|
-
building intermediate files:
|
127
|
-
.
|
128
|
-
.IP "" 4
|
129
|
-
.
|
130
|
-
.nf
|
131
|
-
|
132
|
-
$ ron \-m man/markdown.5.ron
|
133
|
-
.
|
134
|
-
.fi
|
135
|
-
.
|
136
|
-
.IP "" 0
|
137
|
-
.
|
138
|
-
.P
|
139
|
-
The \fIron(1)\fR manual page
|
140
|
-
includes comprehensive documentation on \fBron\fR command line options.
|
141
|
-
.
|
142
|
-
.SH "ABOUT"
|
143
|
-
Some people think UNIX manual pages are a poor and outdated style of
|
144
|
-
documentation. I disagree:
|
145
|
-
.
|
146
|
-
.IP "\(bu" 4
|
147
|
-
Man pages follow a well defined structure that's immediately
|
148
|
-
familiar and provides a useful starting point for developers
|
149
|
-
documenting new tools, libraries, and formats.
|
150
|
-
.
|
151
|
-
.IP "\(bu" 4
|
152
|
-
Man pages get to the point. Because they're written in an inverted
|
153
|
-
style, with a SYNOPSIS section followed by additional detail,
|
154
|
-
prose and references to other sources of information, man pages
|
155
|
-
provide the best of both cheat sheet and reference style
|
156
|
-
documentation.
|
157
|
-
.
|
158
|
-
.IP "\(bu" 4
|
159
|
-
Man pages have extremely \-\- unbelievably \-\- limited text
|
160
|
-
formatting capabilities. You get a couple of headings, lists, bold,
|
161
|
-
underline and no more. This is a feature.
|
162
|
-
.
|
163
|
-
.IP "\(bu" 4
|
164
|
-
Although two levels of section hierarchy are technically
|
165
|
-
supported, most man pages use only a single level. Unwieldy
|
166
|
-
document hierarchies complicate otherwise good documentation.
|
167
|
-
Feynman covered all of physics \-\- heavenly bodies through QED \-\-
|
168
|
-
with only two levels of document hierarchy (\fIThe Feynman Lectures
|
169
|
-
on Physics\fR, 1970).
|
170
|
-
.
|
171
|
-
.IP "\(bu" 4
|
172
|
-
Man pages have a simple referencing syntax; e.g., sh(1), fork(2),
|
173
|
-
markdown(5). HTML versions can use this to generate links between
|
174
|
-
pages.
|
175
|
-
.
|
176
|
-
.IP "\(bu" 4
|
177
|
-
The classical terminal man page display is typographically well
|
178
|
-
thought out. Big bold section headings, justified monospace text,
|
179
|
-
nicely indented paragraphs, intelligently aligned definition
|
180
|
-
lists, and an informational header and footer.
|
181
|
-
.
|
182
|
-
.IP "" 0
|
183
|
-
.
|
184
|
-
.P
|
185
|
-
Unfortunately, trying to figure out how to create a man page is a
|
186
|
-
fairly tedious process. The roff/man macro languages are highly
|
187
|
-
extensible, fractured between multiple dialects, and include a bunch
|
188
|
-
of device specific stuff that's entirely irrelevant to modern
|
189
|
-
publishing tools.
|
190
|
-
.
|
191
|
-
.P
|
192
|
-
Ron aims to address many of the issues with man page creation while
|
193
|
-
preserving the things that makes man pages a great form of
|
194
|
-
documentation.
|
195
|
-
.
|
196
|
-
.SH "COPYING"
|
197
|
-
Ron is Copyright (C) 2009 \fIRyan Tomayko\fR
|
198
|
-
See the file COPYING for information of licensing and distribution.
|
199
|
-
.
|
200
|
-
.SH "SEE ALSO"
|
201
|
-
ron(1), ron(5), markdown(5)
|
data/man/ron.7.ron
DELETED
@@ -1,133 +0,0 @@
|
|
1
|
-
ron -- the opposite of roff
|
2
|
-
===========================
|
3
|
-
|
4
|
-
## DESCRIPTION
|
5
|
-
|
6
|
-
Ron is a humane text format and toolchain for creating UNIX man
|
7
|
-
pages, and things that appear as man pages from a distance. Use it
|
8
|
-
to build and install standard UNIX roff man pages or to generate
|
9
|
-
nicely formatted HTML manual pages for the web.
|
10
|
-
|
11
|
-
The Ron file format is based on Markdown. In fact, Ron files are a
|
12
|
-
compatible subset of Markdown syntax but have a more rigid structure and
|
13
|
-
extend Markdown in some ways to provide features commonly found in man
|
14
|
-
pages (e.g., definition lists). The ron(5) manual page defines the
|
15
|
-
format in more detail.
|
16
|
-
|
17
|
-
## DOCUMENTATION
|
18
|
-
|
19
|
-
The `.ron` files located under the `man/` directory show off a wide
|
20
|
-
range of ron capabilities and are the source of Ron's own documentation.
|
21
|
-
The source files and generated HTML / roff output files are available
|
22
|
-
at:
|
23
|
-
|
24
|
-
* [ron(1)](http://rtomayko.github.com/ron/ron.1.html) -
|
25
|
-
build markdown based manual pages at the command line.
|
26
|
-
[source file](http://github.com/rtomayko/ron/blob/master/man/ron.1.ron),
|
27
|
-
[roff output](http://github.com/rtomayko/ron/blob/master/man/ron.1)
|
28
|
-
|
29
|
-
* [ron(5)](http://rtomayko.github.com/ron/ron.5.html) -
|
30
|
-
humane manual page authoring format syntax reference.
|
31
|
-
[source file](http://github.com/rtomayko/ron/blob/master/man/ron.5.ron),
|
32
|
-
[roff output](http://github.com/rtomayko/ron/blob/master/man/ron.5)
|
33
|
-
|
34
|
-
* [markdown(5)](http://rtomayko.github.com/ron/markdown.5.html) -
|
35
|
-
humane text markup syntax (taken from
|
36
|
-
[Markdown Syntax](http://daringfireball.net/projects/markdown/syntax),
|
37
|
-
John Gruber)
|
38
|
-
[source file](http://github.com/rtomayko/ron/blob/master/man/ron.5.ron),
|
39
|
-
[roff output](http://github.com/rtomayko/ron/blob/master/man/ron.5)
|
40
|
-
|
41
|
-
## INSTALL
|
42
|
-
|
43
|
-
Install with Rubygems:
|
44
|
-
|
45
|
-
$ [sudo] gem install ron
|
46
|
-
$ ron --help
|
47
|
-
|
48
|
-
Or, clone the git repository:
|
49
|
-
|
50
|
-
$ git clone git://github.com/rtomayko/ron.git
|
51
|
-
$ PATH=ron/bin:$PATH
|
52
|
-
$ ron --help
|
53
|
-
|
54
|
-
## BASIC USAGE
|
55
|
-
|
56
|
-
To generate a roff man page from the included
|
57
|
-
[`markdown.5.ron`](man/markdown.5.ron) file and open it with man(1):
|
58
|
-
|
59
|
-
$ ron -b man/markdown.5.ron
|
60
|
-
building: man/markdown.5
|
61
|
-
$ man man/markdown.5
|
62
|
-
|
63
|
-
To generate a standalone HTML version:
|
64
|
-
|
65
|
-
$ ron -b --html man/markdown.5.ron
|
66
|
-
building: man/markdown.5.html
|
67
|
-
$ open man/markdown.5.html
|
68
|
-
|
69
|
-
To build roff and HTML versions of all ron files:
|
70
|
-
|
71
|
-
$ ron -b --roff --html man/*.ron
|
72
|
-
|
73
|
-
If you just want to view a ron file as if it were a man page without
|
74
|
-
building intermediate files:
|
75
|
-
|
76
|
-
$ ron -m man/markdown.5.ron
|
77
|
-
|
78
|
-
The [ron(1)](http://rtomayko.github.com/ron/ron.1.html) manual page
|
79
|
-
includes comprehensive documentation on `ron` command line options.
|
80
|
-
|
81
|
-
## ABOUT
|
82
|
-
|
83
|
-
Some people think UNIX manual pages are a poor and outdated style of
|
84
|
-
documentation. I disagree:
|
85
|
-
|
86
|
-
- Man pages follow a well defined structure that's immediately
|
87
|
-
familiar and provides a useful starting point for developers
|
88
|
-
documenting new tools, libraries, and formats.
|
89
|
-
|
90
|
-
- Man pages get to the point. Because they're written in an inverted
|
91
|
-
style, with a SYNOPSIS section followed by additional detail,
|
92
|
-
prose and references to other sources of information, man pages
|
93
|
-
provide the best of both cheat sheet and reference style
|
94
|
-
documentation.
|
95
|
-
|
96
|
-
- Man pages have extremely -- unbelievably -- limited text
|
97
|
-
formatting capabilities. You get a couple of headings, lists, bold,
|
98
|
-
underline and no more. This is a feature.
|
99
|
-
|
100
|
-
- Although two levels of section hierarchy are technically
|
101
|
-
supported, most man pages use only a single level. Unwieldy
|
102
|
-
document hierarchies complicate otherwise good documentation.
|
103
|
-
Feynman covered all of physics -- heavenly bodies through QED --
|
104
|
-
with only two levels of document hierarchy (_The Feynman Lectures
|
105
|
-
on Physics_, 1970).
|
106
|
-
|
107
|
-
- Man pages have a simple referencing syntax; e.g., sh(1), fork(2),
|
108
|
-
markdown(5). HTML versions can use this to generate links between
|
109
|
-
pages.
|
110
|
-
|
111
|
-
- The classical terminal man page display is typographically well
|
112
|
-
thought out. Big bold section headings, justified monospace text,
|
113
|
-
nicely indented paragraphs, intelligently aligned definition
|
114
|
-
lists, and an informational header and footer.
|
115
|
-
|
116
|
-
Unfortunately, trying to figure out how to create a man page is a
|
117
|
-
fairly tedious process. The roff/man macro languages are highly
|
118
|
-
extensible, fractured between multiple dialects, and include a bunch
|
119
|
-
of device specific stuff that's entirely irrelevant to modern
|
120
|
-
publishing tools.
|
121
|
-
|
122
|
-
Ron aims to address many of the issues with man page creation while
|
123
|
-
preserving the things that makes man pages a great form of
|
124
|
-
documentation.
|
125
|
-
|
126
|
-
## COPYING
|
127
|
-
|
128
|
-
Ron is Copyright (C) 2009 [Ryan Tomayko](http://tomayko.com/about)
|
129
|
-
See the file COPYING for information of licensing and distribution.
|
130
|
-
|
131
|
-
## SEE ALSO
|
132
|
-
|
133
|
-
ron(1), ron(5), markdown(5)
|