about summary refs log tree commit diff
path: root/src/doc/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/doc/README.md')
-rw-r--r--src/doc/README.md86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/doc/README.md b/src/doc/README.md
new file mode 100644
index 00000000000..9135650c31b
--- /dev/null
+++ b/src/doc/README.md
@@ -0,0 +1,86 @@
+# Dependencies
+
+[Pandoc](http://johnmacfarlane.net/pandoc/installing.html), a universal
+document converter, is required to generate docs as HTML from Rust's
+source code.
+
+[Node.js](http://nodejs.org/) is also required for generating HTML from
+the Markdown docs (reference manual, tutorials, etc.) distributed with
+this git repository.
+
+[po4a](http://po4a.alioth.debian.org/) is required for generating translated
+docs from the master (English) docs.
+
+[GNU gettext](http://www.gnu.org/software/gettext/) is required for managing
+the translation data.
+
+# Building
+
+To generate all the docs, just 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 a working build of the `rustdoc` tool.)
+
+# Additional notes
+
+To generate an HTML version of a doc from Markdown without having Node.js
+installed, you can do something like:
+
+~~~~
+pandoc --from=markdown --to=html5 --number-sections -o rust.html rust.md
+~~~~
+
+(rust.md being the Rust Reference Manual.)
+
+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
+
+# Notes for translators
+
+Notice: The procedure described below is a work in progress. We are working on
+translation system but the procedure contains some manual operations for now.
+
+To start the translation for a new language, see po4a.conf at first.
+
+To generate .pot and .po files, do something like:
+
+~~~~
+po4a --copyright-holder="The Rust Project Developers" \
+    --package-name="Rust" \
+    --package-version="0.10-pre" \
+    -M UTF-8 -L UTF-8 \
+    po4a.conf
+~~~~
+
+(the version number must be changed if it is not 0.10-pre now.)
+
+Now you can translate documents with .po files, commonly used with gettext. If
+you are not familiar with gettext-based translation, please read the online
+manual linked from http://www.gnu.org/software/gettext/ . We use UTF-8 as the
+file encoding of .po files.
+
+When you want to make a commit, do the command below before staging your
+change:
+
+~~~~
+for f in doc/po/**/*.po; do
+    msgattrib --translated $f -o $f.strip
+    if [ -e $f.strip ]; then
+       mv $f.strip $f
+    else
+       rm $f
+    fi
+done
+~~~~
+
+This removes untranslated entries from .po files to save disk space.