ronn 0.5 → 0.6.0

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.
Files changed (48) hide show
  1. data/AUTHORS +7 -0
  2. data/CHANGES +128 -0
  3. data/README.md +64 -79
  4. data/Rakefile +81 -28
  5. data/bin/ronn +124 -65
  6. data/config.ru +15 -0
  7. data/lib/ronn.rb +13 -5
  8. data/lib/ronn/document.rb +87 -13
  9. data/lib/ronn/roff.rb +43 -18
  10. data/lib/ronn/server.rb +70 -0
  11. data/lib/ronn/template.rb +157 -0
  12. data/lib/ronn/template/80c.css +6 -0
  13. data/lib/ronn/template/dark.css +21 -0
  14. data/lib/ronn/template/darktoc.css +17 -0
  15. data/lib/ronn/template/default.html +43 -0
  16. data/lib/ronn/template/man.css +100 -0
  17. data/lib/ronn/template/print.css +5 -0
  18. data/lib/ronn/template/screen.css +105 -0
  19. data/lib/ronn/template/toc.css +27 -0
  20. data/man/ronn.1 +160 -93
  21. data/man/ronn.1.ronn +206 -89
  22. data/man/ronn.5 +94 -96
  23. data/man/ronn.5.ronn +96 -91
  24. data/man/ronn.7 +50 -84
  25. data/man/ronn.7.ronn +64 -79
  26. data/ronn.gemspec +26 -11
  27. data/test/angle_bracket_syntax.html +4 -1
  28. data/test/basic_document.html +4 -1
  29. data/test/contest.rb +68 -0
  30. data/test/custom_title_document.html +4 -1
  31. data/test/definition_list_syntax.html +4 -1
  32. data/test/definition_list_syntax.roff +26 -0
  33. data/test/document_test.rb +51 -4
  34. data/test/entity_encoding_test.html +4 -1
  35. data/test/entity_encoding_test.roff +1 -1
  36. data/test/markdown_syntax.html +955 -0
  37. data/test/markdown_syntax.roff +1467 -0
  38. data/{man/markdown.5.ronn → test/markdown_syntax.ronn} +0 -0
  39. data/test/middle_paragraph.html +5 -2
  40. data/test/middle_paragraph.roff +2 -2
  41. data/test/ronn_test.rb +19 -4
  42. data/test/section_reference_links.html +15 -0
  43. data/test/section_reference_links.roff +10 -0
  44. data/test/section_reference_links.ronn +12 -0
  45. data/test/titleless_document.html +3 -0
  46. metadata +34 -13
  47. data/lib/ronn/layout.html +0 -75
  48. data/man/markdown.5 +0 -1639
@@ -1,140 +1,257 @@
1
- ronn(1) -- build markdown-based man pages
2
- ========================================
1
+ ronn(1) -- convert markdown files to manpages
2
+ =============================================
3
3
 
4
4
  ## SYNOPSIS
5
5
 
6
- `ronn` [ <OPTIONS> ] <FILE> ...
7
- `ronn` --build <FILE> ...
8
- `ronn` --install <FILE> ...
9
- `ronn` --man <FILE>
6
+ `ronn` [<options>] <file>...<br>
7
+ `ronn` `-m`|`--man` <file>...<br>
8
+ `ronn` `-S`|`--server` <file>...<br>
9
+ `ronn` `--pipe` <file><br>
10
+ `ronn` < <file>
10
11
 
11
12
  ## DESCRIPTION
12
13
 
13
- Ronn is a humane text format and toolchain for authoring man pages, and
14
- things that appear as man pages from a distance. Use it to build and
15
- install standard UNIX / roff(7) formatted man pages and to generate
16
- nicely formatted HTML manual pages.
14
+ **Ronn** converts Markdown input to standard roff-formatted UNIX manpages or
15
+ manpage styled HTML. The ronn(5) source format is based on markdown(7) but
16
+ includes additional rules and syntax geared toward authoring manuals.
17
17
 
18
- The `ronn` command converts one or more named input <FILE>s (or standard
19
- input when no files are named or the file name `-` is given) from humane
20
- man page markup to one or more destination output formats. If no output
21
- format is selected explicitly, `ronn` writes output in roff format.
18
+ In its default mode, `ronn` converts one or more input <file>s to HTML or UNIX
19
+ roff output files. The `--roff`, `--html`, and `--fragment` options dictate
20
+ which output files are generated. Multiple format arguments may be specified to
21
+ generate multiple output files. Output files are named after and written to the
22
+ same directory as input <file>s.
23
+
24
+ The `--server` and `--man` options change the output behavior from output file
25
+ generation to serving dynamically generated HTML manpages or viewing <file> as
26
+ with man(1).
27
+
28
+ With no <file> arguments, `ronn` acts as simple filter. Ronn source text is read
29
+ from standard input and roff output is written to standard output. The `--html`
30
+ and `--fragment` options can be used to generate that format output instead of
31
+ roff.
22
32
 
23
33
  ## FILES
24
34
 
25
35
  The `ronn` command expects input to be formatted as ronn(5) text. Source
26
- files are typically named '<NAME>.<SECTION>.ronn' (e.g., `hello.1.ronn`).
27
- The <NAME> and <SECTION> should match the name and section defined in
28
- <FILE>'s heading.
29
-
30
- When building roff and/or HTML output files with the `--build` argument,
31
- destination filenames are determined by taking the basename of the input
32
- <FILE> and adding the appropriate file extension (or removing the file
33
- extension in the case of roff output).
36
+ files are typically named '<name>.<section>.ronn' (e.g., `example.1.ronn`).
37
+ The <name> and <section> should match the name and section defined in the
38
+ <file>'s heading.
34
39
 
35
- For example, the command `ronn -b --html --roff hello.1.ronn` generates a
36
- `hello.1` file with roff output and a `hello.1.html` file with HTML
37
- output.
40
+ When building roff or HTML output files, destination filenames are determined by
41
+ taking the basename of the input <file> and adding the appropriate file
42
+ extension (or removing the file extension in the case of roff output). For
43
+ example, executing `ronn example.1.ronn` generates `example.1` with roff output
44
+ and `example.1.html` with HTML output.
38
45
 
39
46
  ## OPTIONS
40
47
 
41
- `ronn`'s default mode of operation is to read a single document from
42
- standard input and to write the result to standard output. The following
43
- arguments change this behavior:
44
-
45
- * `-b`, `--build`:
46
- Write output directly to files instead of standard output. When the
47
- `--roff` option is provided, writes roff output to <file>.<section>.
48
- When the `--html` option is provided, writes output to
49
- '<file>.<section>.html'.
50
-
51
- * `-i`, `--install`:
52
- Install the roff formatted man page to the local system such that it
53
- can be displayed by man(1). The `MANHOME` environment variable is
54
- used to determine the prefix where man pages should be installed
55
- when defined.
56
-
57
- If `MANHOME` is not defined, `ronn` installs man pages to
58
- _/usr/local/man_.
48
+ These options control whether output is written to files, standard output, or
49
+ directly to a man pager.
59
50
 
60
51
  * `-m`, `--man`:
61
- Display <FILE>s as if man(1) were invoked on the roff output file.
62
- This simulates default man behavior by piping the roff output
52
+ Don't generate files, display <file>s as if man(1) were invoked on the roff
53
+ output file. This simulates default man behavior by piping the roff output
63
54
  through groff(1) and the paging program specified by the `MANPAGER`
64
55
  environment variable.
65
56
 
66
- These options control the format used in generated output:
57
+ * `-S`, `--server`:
58
+ Don't generate files, start an HTTP server at <http://localhost:1207/> and
59
+ serve dynamically generated HTML for the set of input <file>s. A file named
60
+ *example.2.ronn* is served as */example.2.html*. There's also an index page
61
+ at the root with links to each <file>.
62
+
63
+ The server respects the `--style` and document attribute options
64
+ (`--manual`, `--date`, etc.). These same options can be varied at request
65
+ time by giving them as query parameters: `?manual=FOO&style=dark,toc`
66
+
67
+ *NOTE: The builtin server is designed to assist in the process of writing
68
+ and styling manuals. It is in no way recommended as a general purpose web
69
+ server.*
70
+
71
+ * `--pipe`:
72
+ Don't generate files, write generated output to standard output. This is the
73
+ default behavior when ronn source text is piped in on standard input and no
74
+ <file> arguments are provided.
75
+
76
+ Format options control the files `ronn` generates, or the output format when the
77
+ `--pipe` argument is specified. When no format options are given, both `--roff`
78
+ and `--html` are assumed.
67
79
 
68
80
  * `-r`, `--roff`:
69
- Generate roff output. This is the default behavior when no other
70
- format argument is provided.
81
+ Generate roff output. This is the default behavior when no <file>s are given
82
+ and ronn source text is read from standard input.
71
83
 
72
84
  * `-5`, `--html`:
73
85
  Generate output in HTML format.
74
86
 
75
87
  * `-f`, `--fragment`:
76
- Generate output in HTML format but only the document fragment, not
77
- the header, title, or footer.
88
+ Generate output in HTML format but only the document fragment, not the
89
+ header, title, or footer.
78
90
 
79
- All document attributes displayed in the header and footer areas of
80
- generated content can be specified with these options:
91
+ Document attributes displayed in the header and footer areas of generated
92
+ content are specified with these options. (These values may also be set via
93
+ the [ENVIRONMENT][].)
81
94
 
82
- * `--manual`=<MANUAL>:
83
- The name of the manual this man page belongs to; <MANUAL> is
84
- prominently displayed top-center in the header area.
95
+ * `--manual`=<manual>:
96
+ The name of the manual this man page belongs to; <manual> is prominently
97
+ displayed top-center in the header area.
85
98
 
86
- * `--organization`=<NAME>:
99
+ * `--organization`=<name>:
87
100
  The name of the group, organization, or individual responsible for
88
- publishing the document; <NAME> is displayed in the bottom-left
89
- footer area.
101
+ publishing the document; <name> is displayed in the bottom-left footer area.
102
+
103
+ * `--date`=<date>:
104
+ The document's published date; <date> must be formatted `YYYY-MM-DD` and is
105
+ displayed in the bottom-center footer area. The <file> mtime is used when no
106
+ <date> is given, or the current time when no <file> is available.
107
+
108
+ HTML output can be customized variously:
109
+
110
+ * `--style`=<module>[,<module>]...:
111
+ The list of CSS stylesheets to apply to the document. Multiple <module>
112
+ arguments may be specified, but must be separated by commas or spaces.
113
+
114
+ When <module> is a simple word, search for files named <module>`.css` in all
115
+ directories listed in the [`RONN_STYLE`](#ENVIRONMENT) environment variable,
116
+ and then search internal styles.
117
+
118
+ When <module> includes a _/_ character, use it as the full path to a
119
+ stylesheet file.
120
+
121
+ Internal styles are _man_ (included by default), _toc_, and _80c_. See
122
+ [STYLES][] for descriptions of features added by each module.
123
+
124
+ Miscellaneous options:
125
+
126
+ * `-w`, `--warnings`:
127
+ Show troff warnings on standard error when performing roff conversion.
128
+ Warnings are most often the result of a bug in ronn's HTML to roff conversion
129
+ logic.
130
+
131
+ * `-W`:
132
+ Disable troff warnings. Warnings are disabled by default. This option can be
133
+ used to revert the effect of a previous `-w` argument.
134
+
135
+ ## STYLES
90
136
 
91
- * `--date`=<DATE>:
92
- The document's published date; <DATE> must be formatted `YYYY-MM-DD`
93
- and is displayed in the bottom-center footer area. The <FILE> mtime
94
- is used when no <DATE> is given, or the current time when no <FILE>
95
- is available.
137
+ The `--style` option selects a list of CSS stylesheets to include in the
138
+ generated HTML. Styles are applied in the order defined, so each can use the
139
+ cascade to override previously defined styles.
140
+
141
+ ### Internal Stylesheets
142
+
143
+ These styles are included with the distribution:
144
+
145
+ * `man`:
146
+ Basic manpage styles: typography, definition lists, indentation. This is
147
+ always included regardless of `--style` argument. It is however possible to
148
+ replace the default `man` module with a custom one by placing a `man.css`
149
+ file on the `RONN_STYLE` path.
150
+
151
+ * `print`:
152
+ Basic print stylesheet. The generated `<style>` tag includes a
153
+ `media=print` attribute.
154
+
155
+ * `toc`:
156
+ Enables the Table of Contents navigation. The TOC markup is included in
157
+ generated HTML by default but hidden with an inline `display:none` style
158
+ rule; the `toc` module turns it on and applies basic TOC styles.
159
+
160
+ * `dark`:
161
+ Light text on a dark background.
162
+
163
+ * `80c`:
164
+ Changes the display width to mimic the display of a classic 80 character
165
+ terminal. The default display width causes lines to wrap at a gratuitous
166
+ 100 characters.
167
+
168
+ ### Custom Stylesheets
169
+
170
+ Writing custom stylesheets is straight-forward. The following core selectors
171
+ allow targeting all generated elements:
172
+
173
+ * `.mp`:
174
+ The manual page container element. Present on full documents and document
175
+ fragments.
176
+
177
+ * `body#manpage`:
178
+ Signifies that the page was fully-generated by Ronn and contains a single
179
+ manual page (`.mp` element).
180
+
181
+ * `.man-decor`:
182
+ The three-item heading and footing elements both have this class.
183
+
184
+ * `.man-head`, `.man-foot`:
185
+ The heading and footing, respectively.
186
+
187
+ * `.man-title`:
188
+ The main `<h1>` element. Hidden by default unless the manual has no <name>
189
+ or <section> attributes.
190
+
191
+ See the [internal style sources][internal] for examples.
192
+
193
+ [internal]: http://github.com/rtomayko/ronn/tree/master/lib/ronn/template
194
+ "internal stylesheet sources"
96
195
 
97
196
  ## EXAMPLES
98
197
 
99
- Generate `roff(7)` output on stdout:
198
+ Build roff and HTML output files and view the roff manpage using man(1):
100
199
 
101
- $ ronn < hello.1.ronn
200
+ $ ronn some-great-program.1.ronn
201
+ roff: some-great-program.1
202
+ html: some-great-program.1.html
203
+ $ man ./some-great-program.1
102
204
 
103
- Build a roff file based on the input filename:
205
+ Build only the roff manpage for all `.ronn` files in the current directory:
104
206
 
105
- $ ronn -b hello.1.ronn
106
- building: hello.1
107
- $ man hello.1
207
+ $ ronn --roff *.ronn
208
+ roff: mv.1
209
+ roff: ls.1
210
+ roff: cd.1
211
+ roff: sh.1
108
212
 
109
- Build and open a standalone HTML file based on the input filename:
213
+ Build only the HTML manpage for a few files and apply the `dark` and `toc`
214
+ stylesheets:
110
215
 
111
- $ ronn -b --html test.1.ronn
112
- $ open test.1.html
216
+ $ ronn --html --style=dark,toc mv.1.ronn ls.1.ronn
217
+ html: mv.1.html
218
+ html: ls.1.html
113
219
 
114
- Build roff and HTML versions of all `.ronn` files in the current
115
- directory:
220
+ Generate roff output on standard output and write to file:
116
221
 
117
- $ ronn -b --roff --html *.ronn
118
- building: hello.1
119
- building: hello.1.html
120
- building: world.1
121
- building: world.1.html
222
+ $ ronn <hello.1.ronn >hello.1
122
223
 
123
224
  View a ronn file in the same way as man(1) without building a roff file:
124
225
 
125
- $ ronn -m hello.1.ronn
226
+ $ ronn --man hello.1.ronn
227
+
228
+ Serve HTML manpages at <http://localhost:1207/> for all `*.ronn` files
229
+ under a `man/` directory:
126
230
 
127
- Install the roff man page for a ronn file:
231
+ $ ronn --server man/*.ronn
232
+ $ open http://localhost:1207/
128
233
 
129
- $ ronn -i hello.1.ronn
130
234
 
131
235
  ## ENVIRONMENT
132
236
 
133
- * `MANHOME`:
134
- Location where roff formatted man pages are installed. Relevant
135
- only when the `--install` argument is provided. <PATH> is to the
136
- base of a man file hierarchy. e.g., `/usr/local/share/man`,
137
- `/home/rtomayko/man`.
237
+ * `RONN_MANUAL`:
238
+ A default manual name to be displayed in the top-center header area.
239
+ The `--manual` option takes precedence over this value.
240
+
241
+ * `RONN_ORGANIZATION`:
242
+ The default manual publishing group, organization, or individual to be
243
+ displayed in the bottom-left footer area. The `--organization` option takes
244
+ precedence over this value.
245
+
246
+ * `RONN_DATE`:
247
+ The default manual date in `YYYY-MM-DD` format. Displayed in the
248
+ bottom-center footer area. The `--date` option takes precedence over this
249
+ value.
250
+
251
+ * `RONN_STYLE`:
252
+ A `PATH`-style list of directories to check for stylesheets given to the
253
+ `--style` option. Directories are separated by a _:_; blank entries are
254
+ ignored. Use _._ to include the current working directory.
138
255
 
139
256
  * `MANPAGER`:
140
257
  The paging program used for man pages. This is typically set to
@@ -145,7 +262,7 @@ Install the roff man page for a ronn file:
145
262
 
146
263
  ## BUGS
147
264
 
148
- Ronn is written in Ruby and depends on hpricot and rdiscount, extension
265
+ **Ronn** is written in Ruby and depends on hpricot and rdiscount, extension
149
266
  libraries that are non-trivial to install on some systems. A more portable
150
267
  version of this program would be welcome.
151
268
 
@@ -155,4 +272,4 @@ Ronn is Copyright (C) 2009 Ryan Tomayko <tomayko.com/about>
155
272
 
156
273
  ## SEE ALSO
157
274
 
158
- ronn(5), markdown(5), manpages(5), man(1), roff(7), groff(1)
275
+ ronn(5), (7), manpages(5), man(1), roff(7), groff(1), markdown(7)
data/man/ronn.5 CHANGED
@@ -1,89 +1,93 @@
1
- .\" generated with Ronn/v0.4.2
1
+ .\" generated with Ronn/v0.6.0
2
2
  .\" http://github.com/rtomayko/ronn/
3
3
  .
4
- .TH "RONN" "5" "March 2010" "Ryan Tomayko" "Ronn Manual"
4
+ .TH "RONN" "5" "June 2010" "0.6.0" "Ronn 0.6.0"
5
5
  .
6
6
  .SH "NAME"
7
- \fBronn\fR \-\- humane manual page authoring format
7
+ \fBronn\fR \- markdown\-based text format for authoring manpages
8
8
  .
9
9
  .SH "SYNOPSIS"
10
10
  .
11
11
  .nf
12
12
 
13
- name(1) \-\- one sentence description
14
- ===================================
13
+ name(1) \-\- short, single\-sentence description
14
+ =============================================
15
+
16
+ ## SYNOPSIS
17
+
18
+ `name` [<optional>\.\.\.] <flags>
19
+
20
+ ## DESCRIPTION
15
21
 
16
- ## SECTION HEADING
22
+ A normal paragraph\. This can span multiple lines and is terminated with two
23
+ or more line endings \-\- just like Markdown\.
17
24
 
18
- A normal paragraph. This can span multiple lines and is
19
- terminated with two or more line endings \-\- just like
20
- Markdown.
25
+ Inline markup for `code`, `user input`, and **strong** are displayed
26
+ boldface; <variable>, _emphasis_, *emphasis*, are displayed in italics or
27
+ underline\.
21
28
 
22
- ## INLINE MARKUP
29
+ Manual references like sh(1), markdown(7), roff(7), etc\. are displayed in
30
+ boldface and hyperlinked in HTML output\.
23
31
 
24
- Inline markup is used for `code` and `user input` (displayed
25
- in boldface), and also <variables> or _emphasis_.
32
+ Link to other sections like [STANDARDS][], [SEE ALSO][], or
33
+ [WITH A DIFFERENT LINK TEXT][#SEE\-ALSO]\.
26
34
 
27
- Manual page references like sh(1), markdown(5), roff(7), etc.
28
- are displayed in boldface and hyperlinked in HTML output.
35
+ Definition lists:
29
36
 
30
- ## DEFINITION LISTS
37
+ * `\-a`, `\-\-argument`=[<value>]:
38
+ One or more paragraphs describing the argument\.
39
+ * You can put whatever you *want* here, really:
40
+ Nesting and paragraph spacing are respected\.
31
41
 
32
- Definition lists are used to define options, arguments,
33
- variables, and other type of terms:
42
+ Markdown ordered and unordered lists too\.
34
43
 
35
- * `\-a`, `\-\-arg1`=[_OPTION_]:
36
- One or more paragraphs describing the argument.
37
- * `\-b`, `\-\-arg2`:
38
- Any number of these may be specified and may
39
- be nested.
44
+ Frequently used sections:
45
+
46
+ ## OPTIONS
47
+ ## SYNTAX
48
+ ## ENVIRONMENT
49
+ ## RETURN VALUES
50
+ ## STANDARDS
51
+ ## SECURITY CONSIDERATIONS
52
+ ## BUGS
53
+ ## HISTORY
54
+ ## AUTHOR
55
+ ## COPYRIGHT
56
+ ## SEE ALSO
40
57
  .
41
58
  .fi
42
59
  .
43
60
  .SH "DESCRIPTION"
44
- Ronn files are simple ascii texts that document things in the
45
- style of UNIX man pages but with a syntax and feature\-set less
46
- insane than that of roff(7). Ronn files are piped through ronn(1)
47
- to build and install traditional roff(7) man pages or to generate
48
- hyperlinked HTML documentation.
61
+ Ronn is a source format for authoring UNIX manpages\. The syntax includes all Markdown formatting features, plus conventions for expressing the structure and various notations present in standard UNIX manpages\.
62
+ .
63
+ .P
64
+ Ronn files can be converted to traditional roff\-formatted manpages or to HTML using the ronn(1) command\.
49
65
  .
50
66
  .P
51
- All ronn formatted files must conform to a simple subset of
52
- markdown(5), a humane text markup designed for writing on the
53
- web. It is neither possible nor desirable to express many of
54
- roff(7)'s complex typesetting features in ronn.
67
+ Not all roff(7) typesetting features can be expressed using ronn syntax\.
55
68
  .
56
69
  .SH "MANPAGE TITLE"
57
- All man pages have a \fIname\fR, belong to a \fIsection\fR, and have a
58
- single sentence \fItagline\fR (useless but witty, preferably). Ronn
59
- files must begin with a first\-level heading that includes all of
60
- this information. For example, this very man page begins:
70
+ Manpages have a \fIname\fR, \fIsection\fR number, and one\-line \fIdescription\fR\. Ronn files must start with a level one heading defining these attributes:
61
71
  .
62
72
  .IP "" 4
63
73
  .
64
74
  .nf
65
75
 
66
- ronn(5) \-\- humane manual page authoring format
67
- =============================================
76
+ ls(1) \-\- list directory contents
77
+ ================================
68
78
  .
69
79
  .fi
70
80
  .
71
81
  .IP "" 0
72
82
  .
73
83
  .P
74
- Here, we're saying that the man page documents a thing named \fBronn\fR in manual section \fB5\fR (the "file formats" section; see
75
- manpages(5) for full section list) and that's quickly described
76
- as a "humane manual page authoring format".
77
- .
78
- .P
79
- These bits of information are used to fill in the document
80
- header, to create the \fBNAME\fR section, and also to establish
81
- output filenames when processed with ronn(1).
84
+ Indicates that the manpage is named \fBls\fR in manual section \fB1\fR (\"user commands\")\.
82
85
  .
83
86
  .SH "SECTION HEADINGS"
84
- Man section headings are expressed with markdown level two
85
- headings. markdown(5) provides two syntaxes for level two
86
- headings. A hash prefix syntax:
87
+ Man section headings are expressed with markdown level two headings\. There are two syntaxes for level two headings\.
88
+ .
89
+ .P
90
+ Hash prefix syntax:
87
91
  .
88
92
  .IP "" 4
89
93
  .
@@ -96,7 +100,7 @@ headings. A hash prefix syntax:
96
100
  .IP "" 0
97
101
  .
98
102
  .P
99
- Or, a dash underline syntax:
103
+ Dash underline syntax:
100
104
  .
101
105
  .IP "" 4
102
106
  .
@@ -110,98 +114,92 @@ HEADING TEXT
110
114
  .IP "" 0
111
115
  .
112
116
  .P
113
- Section headings should be in all uppercase and may not contain
114
- other inline markup.
115
- .
116
- .P
117
- Most manual pages include at least one of the \fBSYNOPSIS\fR, \fBDESCRIPTION\fR, and/or \fBOPTIONS\fR sections. Additional sections
118
- commonly included are \fBSYNTAX\fR, \fBENVIRONMENT\fR, \fBHISTORY\fR, \fBRETURN
119
- VALUES\fR, \fBBUGS\fR, \fBSECURITY CONSIDERATIONS\fR, \fBSTANDARDS\fR / \fBCONFORMING TO\fR, \fBAUTHOR\fR, and \fBCOPYRIGHT\fR. Finally, most man
120
- pages end with a \fBSEE ALSO\fR section that references other manual
121
- pages and external documents.
117
+ Section headings should be all uppercase and may not contain inline markup\.
122
118
  .
123
119
  .SH "INLINE MARKUP"
124
- Man pages have a limited set of text formatting capabilities at
125
- their disposal. There's basically \fBboldface\fR and \fIitalics\fR (often displayed using \fIunderline\fR). Ronn uses
126
- the following bits of markdown(5) to accomplish this:
120
+ Manpages have a limited set of text formatting capabilities\. There\'s basically \fBboldface\fR and \fIitalics\fR (often displayed using \fIunderline\fR)\. Ronn uses the following bits of markdown(7) to accomplish this:
127
121
  .
128
122
  .TP
129
123
  \fB`backticks`\fR
130
- Code, flags, commands, and noun\-like things; typically
131
- displayed in in \fBboldface\fR. Note that all text included
132
- within \fBbackticks\fR is displayed literally; other inline markup
133
- is not processed.
124
+ Code, flags, commands, and noun\-like things; typically displayed in in \fBboldface\fR\. Note that all text included within \fBbackticks\fR is displayed literally; other inline markup is not processed\.
134
125
  .
135
126
  .TP
136
127
  \fB**double\-stars**\fR
137
- Like \fBbackticks\fR but inline markup is processed.
128
+ Like \fBbackticks\fR but inline markup is processed\.
138
129
  .
139
130
  .TP
140
131
  \fB_\fR\fIunderbars\fR\fB_\fR
141
- User\-specified arguments, variables, or user input; typically
142
- displayed with \fIunderline\fR.
132
+ User\-specified arguments, variables, or user input; typically displayed with \fIunderline\fR\.
143
133
  .
144
134
  .TP
145
135
  \fB<angle\-quotes>\fR
146
- Same as \fIunderbars\fR. This is not compatible with Markdown.
136
+ Same as \fIunderbars\fR\. This is not compatible with Markdown\.
147
137
  .
148
138
  .P
149
- Here is grep(1)'s DESCRIPTION section represented in \fBronn\fR:
139
+ Here is grep(1)\'s DESCRIPTION section represented in \fBronn\fR:
150
140
  .
151
141
  .IP "" 4
152
142
  .
153
143
  .nf
154
144
 
155
- `Grep` searches the named input _FILE_ (or standard input if
145
+ `Grep` searches the named input <FILE> (or standard input if
156
146
  no files are named, or the file name `\-` is given) for lines
157
- containing a match to the given _PATTERN_. By default, `grep`
158
- prints the matching lines.
147
+ containing a match to the given <PATTERN>\. By default, `grep`
148
+ prints the matching lines\.
159
149
  .
160
150
  .fi
161
151
  .
162
152
  .IP "" 0
163
153
  .
164
154
  .SH "DEFINITION LISTS"
165
- Because definition lists are so often used in manual pages to
166
- describe arguments, options, and variables, the basic markdown(5)
167
- list syntax has been extended to support a definition list
168
- syntax.
155
+ The definition list syntax is exactly the same as markdown\'s unordered list syntax but requires that the first line of each list item be terminated with a colon \"\fB:\fR\" character\. The contents of the first line (without the colon) is the \fIterm\fR; subsequent lines may be comprised of multiple paragraphs, code blocks, standard lists, and nested definition lists\.
169
156
  .
170
157
  .P
171
- Definition list syntax is exactly the same as markdown(5)'s
172
- unordered list syntax but requires that the first line of each
173
- list item be terminated with a colon "\fB:\fR". The first line (minus
174
- the colon) is the \fIterm\fR; subsequent lines may be comprised of
175
- multiple paragraphs, code blocks, standard lists, and nested
176
- definition lists.
158
+ An example definition list, taken from BSD test(1)\'s \fIDESCRIPTION\fR section:
159
+ .
160
+ .IP "" 4
161
+ .
162
+ .nf
163
+
164
+ The following primaries are used to construct expressions:
165
+
166
+ * `\-b` <file>:
167
+ True if <file> exists and is a block special file\.
168
+
169
+ * `\-c` <file>:
170
+ True if _file_ exists and is a character special file\.
171
+
172
+ * `\-d` <file>:
173
+ True if file exists and is a directory\.
174
+ .
175
+ .fi
176
+ .
177
+ .IP "" 0
177
178
  .
178
179
  .P
179
- An example definition list, taken from BSD test(1)'s \fBDESCRIPTION\fR section:
180
+ The definition list syntax is intentionally backward compatible with markdown(7)\'s list syntax\. This allows \fBronn\fR documents to be piped through normal markdown processors with minor degradation in output formatting\.
181
+ .
182
+ .SH "LINKS"
183
+ Ronn supports all markdown(7) linking features\. Additionally, section headings can be linked using reference\-style links:
180
184
  .
181
185
  .IP "" 4
182
186
  .
183
187
  .nf
184
188
 
185
- The following primaries are used to construct expressions:
189
+ ## SECTION 1
186
190
 
187
- * `\-b` _file_:
188
- True if _file_ exists and is a block special file.
191
+ See the following section\.
189
192
 
190
- * `\-c` _file_:
191
- True if _file_ exists and is a character special file.
193
+ ## SECTION 2
192
194
 
193
- * `\-d` _file_:
194
- True if file exists and is a directory.
195
+ See [SECTION 1][] or [to put it another way][SECTION 1]\.
195
196
  .
196
197
  .fi
197
198
  .
198
199
  .IP "" 0
199
200
  .
200
201
  .P
201
- The definition list syntax is intentionally backward compatible
202
- with markdown(5)'s list syntax. This allows \fBronn\fR documents to be
203
- piped through normal markdown processors with minor degradation
204
- in output formatting.
202
+ The anchor name would be \fB#SECTION\-1\fR and \fB#SECTION\-2\fR\. All non\-word characters are removed and spaces are replaced by dashes\.
205
203
  .
206
204
  .SH "SEE ALSO"
207
- ronn(1), markdown(5), manpages(5)
205
+ ronn(1), markdown(7), roff(7)