rust/doc
Huon Wilson 506f69aed7 Implement support for indicating the stability of items.
There are 6 new compiler recognised attributes: deprecated, experimental,
unstable, stable, frozen, locked (these levels are taken directly from
Node's "stability index"[1]). These indicate the stability of the
item to which they are attached; e.g. `#[deprecated] fn foo() { .. }`
says that `foo` is deprecated.

This comes with 3 lints for the first 3 levels (with matching names) that
will detect the use of items marked with them (the `unstable` lint
includes items with no stability attribute). The attributes can be given
a short text note that will be displayed by the lint. An example:

    #[warn(unstable)]; // `allow` by default

    #[deprecated="use `bar`"]
    fn foo() { }

    #[stable]
    fn bar() { }

    fn baz() { }

    fn main() {
        foo(); // "warning: use of deprecated item: use `bar`"

        bar(); // all fine

        baz(); // "warning: use of unmarked item"
    }

The lints currently only check the "edges" of the AST: i.e. functions,
methods[2], structs and enum variants. Any stability attributes on modules,
enums, traits and impls are not checked.

[1]: http://nodejs.org/api/documentation.html
[2]: the method check is currently incorrect and doesn't work.
2013-09-04 00:12:27 +10:00
..
lib Remove fail keyword from lexer & parser and clean up remaining calls to 2013-02-01 00:15:42 -08:00
po auto merge of #8490 : huonw/rust/fromiterator-extendable, r=catamorphism 2013-08-15 02:56:08 -07:00
lib.css Establish 'core' library separate from 'std'. 2011-12-06 12:13:04 -08:00
manual.css Display the full TOC in the manual. Closes #4194 2012-12-14 18:06:21 -08:00
po4a.conf doc: Generate .po files for Japanse translations 2013-08-12 22:39:31 +09:00
prep.js fix escape 2012-10-05 12:41:00 -07:00
README Usable instructions for generating docs from source 2013-06-21 00:56:43 -04:00
rust.css Remove h[123] border and increase their padding to better readability 2013-06-16 17:40:45 +02:00
rust.md Implement support for indicating the stability of items. 2013-09-04 00:12:27 +10:00
rustpkg.md docs: In rustpkg manual, note future plans about versions 2013-08-09 18:26:22 -07:00
tutorial-borrowed-ptr.md fix text of tutorials 2013-06-21 00:53:10 -04:00
tutorial-conditions.md doc: add condition tutorial 2013-08-19 16:48:48 -07:00
tutorial-container.md Make the iterator protocol more explicit 2013-08-29 22:49:26 -07:00
tutorial-ffi.md Update FFI tutorial to reference c_str::to_c_str 2013-08-22 17:03:06 -07:00
tutorial-macros.md librustc: Disallow multiple patterns from appearing in a "let" declaration. 2013-06-04 21:45:42 -07:00
tutorial-tasks.md doc: Remove statement about scheduling randomness 2013-08-28 11:23:32 -07:00
tutorial.md auto merge of #8777 : Kimundi/rust/doc_stuff, r=cmr 2013-08-27 06:45:50 -07:00
version_info.html.template add gitattributes and fix whitespace issues 2013-05-03 20:01:42 -04:00

Pandoc, a universal document converter, is required to generate docs as HTML
from Rust's source code. It's available for most platforms here:
http://johnmacfarlane.net/pandoc/installing.html

Node.js (http://nodejs.org/) is also required for generating HTML from
the Markdown docs (reference manual, tutorials, etc.) distributed with
this git repository.

To generate all the docs, run `make docs` from the root of the repository.
This will convert the distributed Markdown docs to HTML and generate HTML doc
for the 'std' and 'extra' libraries.

To generate HTML documentation from one source file/crate, do something like:

  rustdoc --output-dir html-doc/ --output-format html ../src/libstd/path.rs

(This, of course, requires that you've built/installed the `rustdoc` tool.)

To generate an HTML version of a doc from Markdown, without having Node.js
installed, do something like:

  pandoc --from=markdown --to=html --number-sections -o rust.html rust.md

The syntax for pandoc flavored markdown can be found at:
http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown

A nice quick reference (for non-pandoc markdown) is at:
http://kramdown.rubyforge.org/quickref.html