1 Textile
Guides are written in Textile. There’s comprehensive documentation here and a cheatsheet for markup here.
2 Prologue
Each guide should start with motivational text at the top (that’s the little introduction in the blue area.) The prologue should tell the reader what the guide is about, and what they will learn. See for example the Routing Guide.
3 Titles
The title of every guide uses h2, guide sections use h3, subsections h4, etc.
Capitalize all words except for internal articles, prepositions, conjunctions, and forms of the verb to be:
h5. Middleware Stack is an Array h5. When are Objects Saved?
Use the same typography as in regular text:
h6. The <tt>:content_type</tt> Option
4 API Documentation Guidelines
The guides and the API should be coherent where appropriate. Please have a look at these particular sections of the API Documentation Guidelines:
Those guidelines apply also to guides.
5 HTML Generation
To generate all the guides, just cd into the railties directory and execute:
bundle exec rake generate_guides
(You may need to run bundle install first to install the required gems.)
To process my_guide.textile and nothing else use the ONLY environment variable:
bundle exec rake generate_guides ONLY=my_guide
By default, guides that have not been modified are not processed, so ONLY is rarely needed in practice.
To force process of all the guides, pass ALL=1.
It is also recommended that you work with WARNINGS=1. This detects duplicate IDs and warns about broken internal links.
If you want to generate guides in languages other than English, you can keep them in a separate directory under source (eg. source/es) and use the GUIDES_LANGUAGE environment variable:
bundle exec rake generate_guides GUIDES_LANGUAGE=es
6 HTML Validation
Please validate the generated HTML with:
bundle exec rake validate_guides
Particularly, titles get an ID generated from their content and this often leads to duplicates. Please set WARNINGS=1 when generating guides to detect them. The warning messages suggest a way to fix them.
Feedback
You're encouraged to help improve the quality of this guide.
If you see any typos or factual errors you are confident to patch, please clone docrails and push the change yourself. That branch of Rails has public write access. Commits are still reviewed, but that happens after you've submitted your contribution. docrails is cross-merged with master periodically.
You may also find incomplete content, or stuff that is not up to date. Please do add any missing documentation for master. Check the Ruby on Rails Guides Guidelines for style and conventions.
If for whatever reason you spot something to fix but cannot patch it yourself, please open an issue.
And last but not least, any kind of discussion regarding Ruby on Rails documentation is very welcome in the rubyonrails-docs mailing list.