about summary refs log tree commit diff
path: root/doc/rustdoc.md
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-01-28 12:01:57 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-02-02 10:59:14 -0800
commit864b434bfa3fd5b3ea9e38958652ed1abdc24f1d (patch)
tree55d1693b52303c3ae620762f31b616663746a442 /doc/rustdoc.md
parent2ff16b184950f5b24c3b2a4bf57b6dd7b3fbbe17 (diff)
downloadrust-864b434bfa3fd5b3ea9e38958652ed1abdc24f1d.tar.gz
rust-864b434bfa3fd5b3ea9e38958652ed1abdc24f1d.zip
Move doc/ to src/doc/
We generate documentation into the doc/ directory, so we shouldn't be
intermingling source files with generated files
Diffstat (limited to 'doc/rustdoc.md')
-rw-r--r--doc/rustdoc.md182
1 files changed, 0 insertions, 182 deletions
diff --git a/doc/rustdoc.md b/doc/rustdoc.md
deleted file mode 100644
index 72282030fb3..00000000000
--- a/doc/rustdoc.md
+++ /dev/null
@@ -1,182 +0,0 @@
-% Rust Documentation
-
-`rustdoc` is the built-in tool for generating documentation. It integrates
-with the compiler to provide accurate hyperlinking between usage of types and
-their documentation. Furthermore, by not using a separate parser, it will
-never reject your valid Rust code.
-
-# Creating Documentation
-
-Documenting Rust APIs is quite simple. To document a given item, we have "doc
-comments":
-
-~~~
-// the "link" crate attribute is currently required for rustdoc, but normally
-// isn't needed.
-#[crate_id = "universe"];
-#[crate_type="lib"];
-
-//! Tools for dealing with universes (this is a doc comment, and is shown on
-//! the crate index page. The ! makes it apply to the parent of the comment,
-//! rather than what follows).
-
-/// Widgets are very common (this is a doc comment, and will show up on
-/// Widget's documentation).
-pub struct Widget {
-	/// All widgets have a purpose (this is a doc comment, and will show up
-	/// the field's documentation).
-	purpose: ~str,
-	/// Humans are not allowed to understand some widgets
-	understandable: bool
-}
-
-pub fn recalibrate() {
-	//! Recalibrate a pesky universe (this is also a doc comment, like above,
-	//! the documentation will be applied to the *parent* item, so
-	//! `recalibrate`).
-	/* ... */
-}
-~~~
-
-Doc comments are markdown, and are currently parsed with the
-[sundown][sundown] library. rustdoc does not yet do any fanciness such as
-referencing other items inline, like javadoc's `@see`. One exception to this
-is that the first paragrah will be used as the "summary" of an item in the
-generated documentation:
-
-~~~
-/// A whizbang. Does stuff. (this line is the summary)
-///
-/// Whizbangs are ...
-struct Whizbang;
-~~~
-
-To generate the docs, run `rustdoc universe.rs`. By default, it generates a
-directory called `doc`, with the documentation for `universe` being in
-`doc/universe/index.html`. If you are using other crates with `extern mod`,
-rustdoc will even link to them when you use their types, as long as their
-documentation has already been generated by a previous run of rustdoc, or the
-crate advertises that its documentation is hosted at a given URL.
-
-The generated output can be controlled with the `doc` crate attribute, which
-is how the above advertisement works. An example from the `libstd`
-documentation:
-
-~~~
-#[doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk.png",
-      html_favicon_url = "http://www.rust-lang.org/favicon.ico",
-      html_root_url = "http://static.rust-lang.org/doc/master")];
-~~~
-
-The `html_root_url` is the prefix that rustdoc will apply to any references to
-that crate's types etc.
-
-rustdoc can also generate JSON, for consumption by other tools, with
-`rustdoc --output-format json`, and also consume already-generated JSON with
-`rustdoc --input-format json`.
-
-# Using the Documentation
-
-The web pages generated by rustdoc present the same logical heirarchy that one
-writes a library with. Every kind of item (function, struct, etc) has its own
-color, and one can always click on a colored type to jump to its
-documentation. There is a search bar at the top, which is powered by some
-javascript and a statically-generated search index. No special web server is
-required for the search.
-
-[sundown]: https://github.com/vmg/sundown/
-
-# Testing the Documentation
-
-`rustdoc` has support for testing code examples which appear in the
-documentation. This is helpful for keeping code examples up to date with the
-source code.
-
-To test documentation, the `--test` argument is passed to rustdoc:
-
-~~~
-rustdoc --test crate.rs
-~~~
-
-## Defining tests
-
-Rust documentation currently uses the markdown format, and code blocks can refer
-to any piece of code-related documentation, which isn't always rust. Because of
-this, only code blocks with the language of "rust" will be considered for
-testing.
-
-~~~
-```rust
-// This is a testable code block
-```
-
-```
-// This is not a testable code block
-```
-
-    // This is not a testable code block (4-space indent)
-~~~
-
-In addition to only testing "rust"-language code blocks, there are additional
-specifiers that can be used to dictate how a code block is tested:
-
-~~~
-```rust,ignore
-// This code block is ignored by rustdoc, but is passed through to the test
-// harness
-```
-
-```rust,should_fail
-// This code block is expected to generate a failure
-```
-~~~
-
-Rustdoc also supplies some extra sugar for helping with some tedious
-documentation examples. If a line is prefixed with `# `, then the line
-will not show up in the HTML documentation, but it will be used when
-testing the code block (NB. the space after the `#` is required, so
-that one can still write things like `#[deriving(Eq)]`).
-
-~~~
-```rust
-# /!\ The three following lines are comments, which are usually stripped off by
-# the doc-generating tool.  In order to display them anyway in this particular
-# case, the character following the leading '#' is not a usual space like in
-# these first five lines but a non breakable one.
-# 
-# // showing 'fib' in this documentation would just be tedious and detracts from
-# // what's actualy being documented.
-# fn fib(n: int) { n + 2 }
-
-do spawn { fib(200); }
-```
-~~~
-
-The documentation online would look like `do spawn { fib(200); }`, but when
-testing this code, the `fib` function will be included (so it can compile).
-
-## Running tests (advanced)
-
-Running tests often requires some special configuration to filter tests, find
-libraries, or try running ignored examples. The testing framework that rustdoc
-uses is build on `extra::test`, which is also used when you compile crates with
-rustc's `--test` flag. Extra arguments can be passed to rustdoc's test harness
-with the `--test-args` flag.
-
-~~~
-// Only run tests containing 'foo' in their name
-rustdoc --test lib.rs --test-args 'foo'
-
-// See what's possible when running tests
-rustdoc --test lib.rs --test-args '--help'
-
-// Run all ignored tests
-rustdoc --test lib.rs --test-args '--ignored'
-~~~
-
-When testing a library, code examples will often show how functions are used,
-and this code often requires `use`-ing paths from the crate. To accomodate this,
-rustdoc will implicitly add `extern mod <crate>;` where `<crate>` is the name of
-the crate being tested to the top of each code example. This means that rustdoc
-must be able to find a compiled version of the library crate being tested. Extra
-search paths may be added via the `-L` flag to `rustdoc`.