RDoc produces HTML and online documentation for Ruby projects.
RDoc produces HTML and online documentation for Ruby projects.
RDoc produces HTML and command-line documentation for Ruby projects. RDoc includes the rdoc and ri tools for generating and displaying documentation from the command-line.
Once installed, you can create documentation using the rdoc command
rdoc [options] [names...]For an up-to-date option summary, type
rdoc --helpA typical use might be to generate documentation for a package of Ruby source (such as RDoc itself).
rdocThis command generates documentation for all the Ruby and C source files in and below the current directory. These will be stored in a documentation tree starting in the subdirectory doc.
You can make this slightly more useful for your readers by having the index page contain the documentation for the primary file. In our case, we could type
rdoc --main README.mdYou'll find information on the various formatting tricks you can use in comment blocks in the documentation this generates.
RDoc uses file extensions to determine how to process each file. File names ending .rb and .rbw are assumed to be Ruby source. Files ending .c are parsed as C files. Files ending .rbs are parsed as RBS signature files. All other files are assumed to contain just Markup-style markup (with or without leading # comment markers). If directory names are passed to RDoc, they are scanned recursively for C, Ruby, and RBS source files.
RBS files can document classes, modules, methods, attributes, and constants. When RBS declarations match objects already documented from Ruby source, their comments and type signatures extend the existing documentation.
To generate documentation using rake see RDoc::Task.
To generate documentation programmatically:
require 'rdoc/rdoc'
options = RDoc::Options.new
options.files = ['a.rb', 'b.rb']
options.setup_generator 'aliki'
# see RDoc::Options
rdoc = RDoc::RDoc.new
rdoc.document options
# see RDoc::RDocYou can specify the target files for document generation with .document file in the project root directory. .document file contains a list of file and directory names including comment lines starting with #. See https://github.com/ruby/rdoc/blob/master/.document as an example.
To write documentation for RDoc, place a comment above the class, module, method, constant, or attribute you want documented:
##
# This class represents an arbitrary shape by a series of points.
class Shape
##
# Creates a new shape described by a +polyline+.
#
# If the +polyline+ does not end at the same point it started at the
# first pointed is copied and placed at the end of the line.
#
# An ArgumentError is raised if the line crosses itself, but shapes may
# be concave.
def initialize polyline
# ...
end
endRDoc supports multiple markup formats:
| Format | File Extensions | Default For |
|---|---|---|
| RDoc | .rdoc |
.rb, .c files |
| Markdown | .md |
None |
| RD | .rd |
None |
| TomDoc | N/A | None |
RDoc markup is currently the default format for Ruby and C files. However, we plan to retire it in favor of Markdown in the future.
Markdown support is actively being improved. Once it reaches feature parity with RDoc markup, it will become the default format.
For standalone documentation files, we recommend writing .md files instead of .rdoc files.
RD and TomDoc are legacy formats. We highly discourage their use in new projects.
Per-file: Add a :markup: directive at the top of a Ruby file:
# :markup: markdown
# This class uses **Markdown** for documentation.
class MyClass
endPer-project: Create a .rdoc_options file in your project root:
markup: markdownCommand line:
rdoc --markup markdown| Feature | RDoc Markup | Markdown |
|---|---|---|
| Headings | = Heading |
# Heading |
| Bold | *word* |
**word** |
| Italic | _word_ |
*word* |
| Monospace | +word+ |
`word` |
| Links | {text}[url] |
[text](url) |
| Code blocks | Indent 2 spaces | Fenced with |
…shell rdoc --format darkfish
Or in your `.rdoc_options` file:
```yaml
generator_name: darkfishThere are also a few community-maintained themes for RDoc:
Please follow the theme's README for usage instructions.
RDoc includes a built-in server for previewing documentation while you edit source files. It parses your code once on startup, then watches for changes and auto-refreshes the browser.
rdoc --serverThis starts a server at http://localhost:4000. You can specify a different port:
rdoc --server=8080Or use the Rake task:
rake rdoc:serverNo external dependencies. The server uses Ruby's built-in TCPServer (socket stdlib) — no WEBrick or other gems required.
Foo in both a.rb and b.rb), deleting one file removes the entire class from the store, including parts from the other file. Saving the remaining file triggers a re-parse that restores it.See CONTRIBUTING.md for information on filing a bug report. It's OK to file a bug report for anything you're having a problem with. If you can't figure out how to make RDoc produce the output you like that is probably a documentation bug.
RDoc is Copyright (c) 2001-2003 Dave Thomas, The Pragmatic Programmers. Portions (c) 2007-2011 Eric Hodel. Portions copyright others, see individual files and LEGAL.rdoc for details.
RDoc is free software, and may be redistributed under the terms specified in LICENSE.rdoc.
This software is provided "as is" and without any express or implied warranties, including, without limitation, the implied warranties of merchantability and fitness for a particular purpose.
No open issues yet, or sync has not completed.