2010-10-05 13:34:27 -04:00
h2. Ruby on Rails Guides Guidelines
2012-03-20 13:01:01 -04:00
This guide documents guidelines for writing Ruby on Rails Guides. This guide follows itself in a graceful loop, serving itself as an example.
2010-10-05 13:34:27 -04:00
endprologue.
h3. Textile
2012-03-20 13:01:01 -04:00
Guides are written in "Textile":http://www.textism.com/tools/textile/. There is comprehensive "documentation":http://redcloth.org/hobix.com/textile/ and a "cheatsheet":http://redcloth.org/hobix.com/textile/quick.html for markup.
2010-10-05 13:34:27 -04:00
h3. Prologue
2012-03-20 13:01:01 -04:00
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":routing.html.
2010-10-05 13:34:27 -04:00
h3. Titles
2011-04-13 20:49:14 -04:00
2012-03-20 13:01:01 -04:00
The title of every guide uses +h2+; guide sections use +h3+; subsections +h4+; etc.
2010-10-05 13:34:27 -04:00
2010-12-19 13:37:43 -05:00
Capitalize all words except for internal articles, prepositions, conjunctions, and forms of the verb to be:
2010-10-05 13:34:27 -04:00
<plain>
h5. Middleware Stack is an Array
h5. When are Objects Saved?
</plain>
2011-03-31 01:16:45 -04:00
Use the same typography as in regular text:
2010-10-05 13:34:27 -04:00
<plain>
2011-09-16 12:42:41 -04:00
h6. The <tt>:content_type</tt> Option
2010-10-05 13:34:27 -04:00
</plain>
2010-10-05 16:52:43 -04:00
h3. API Documentation Guidelines
2010-10-05 13:34:27 -04:00
2012-03-20 13:01:01 -04:00
The guides and the API should be coherent and consistent where appropriate. Please have a look at these particular sections of the "API Documentation Guidelines":api_documentation_guidelines.html:
2010-10-05 13:34:27 -04:00
* "Wording":api_documentation_guidelines.html#wording
* "Example Code":api_documentation_guidelines.html#example-code
* "Filenames":api_documentation_guidelines.html#filenames
* "Fonts":api_documentation_guidelines.html#fonts
Those guidelines apply also to guides.
2012-02-04 06:34:27 -05:00
h3. HTML Guides
h4. Generation
2010-10-05 13:34:27 -04:00
2012-03-20 10:54:59 -04:00
To generate all the guides, just +cd+ into the *+guides+* directory and execute:
2010-10-05 13:34:27 -04:00
<plain>
2011-01-12 15:12:44 -05:00
bundle exec rake generate_guides
2010-10-05 13:34:27 -04:00
</plain>
2011-03-31 01:16:45 -04:00
(You may need to run +bundle install+ first to install the required gems.)
2010-10-05 13:34:27 -04:00
To process +my_guide.textile+ and nothing else use the +ONLY+ environment variable:
<plain>
2012-03-20 13:01:01 -04:00
touch my_guide.textile
2011-01-12 15:12:44 -05:00
bundle exec rake generate_guides ONLY=my_guide
2010-10-05 13:34:27 -04:00
</plain>
2011-03-31 01:16:45 -04:00
By default, guides that have not been modified are not processed, so +ONLY+ is rarely needed in practice.
2010-10-05 13:34:27 -04:00
2012-03-20 13:01:01 -04:00
To force processing all the guides, pass +ALL=1+.
2010-10-05 13:34:27 -04:00
2011-03-31 01:16:45 -04:00
It is also recommended that you work with +WARNINGS=1+. This detects duplicate IDs and warns about broken internal links.
2010-10-05 13:34:27 -04:00
2012-03-20 13:01:01 -04:00
If you want to generate guides in a language other than English, you can keep them in a separate directory under +source+ (eg. <tt>source/es</tt>) and use the +GUIDES_LANGUAGE+ environment variable:
2011-01-15 13:17:41 -05:00
<plain>
2011-06-03 04:44:23 -04:00
bundle exec rake generate_guides GUIDES_LANGUAGE=es
2011-01-15 13:17:41 -05:00
</plain>
2012-02-04 06:34:27 -05:00
h4. Validation
2010-10-05 13:34:27 -04:00
2011-03-31 01:16:45 -04:00
Please validate the generated HTML with:
2010-10-05 13:34:27 -04:00
<plain>
2011-06-03 04:44:23 -04:00
bundle exec rake validate_guides
2010-10-05 13:34:27 -04:00
</plain>
2012-03-20 13:01:01 -04:00
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 solution.
2012-02-04 06:34:27 -05:00
h3. Kindle Guides
2012-03-20 13:01:01 -04:00
h4(#generation-kindle). Generation
2012-02-04 06:34:27 -05:00
To generate guides for the Kindle, you need to provide +KINDLE=1+ as an environment variable:
<plain>
KINDLE=1 bundle exec rake generate_guides
</plain>