ruby_on_rails_guides_guidelines.md 3.8 KB
Newer Older
1 2
Ruby on Rails Guides Guidelines
===============================
3

4
This guide documents guidelines for writing Ruby on Rails Guides. This guide follows itself in a graceful loop, serving itself as an example.
5

6 7
After reading this guide, you will know:

V
Vijay Dev 已提交
8 9
* About the conventions to be used in Rails documentation.
* How to generate guides locally.
10

11
--------------------------------------------------------------------------------
12

13
Markdown
14
-------
15

16
Guides are written in [GitHub Flavored Markdown](http://github.github.com/github-flavored-markdown/). There is comprehensive [documentation for Markdown](http://daringfireball.net/projects/markdown/syntax), a [cheatsheet](http://daringfireball.net/projects/markdown/basics), and [additional documentation](http://github.github.com/github-flavored-markdown/) on the differences from traditional Markdown.
17

18 19
Prologue
--------
20

21
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).
22

23 24
Titles
------
M
Matt Duncan 已提交
25

26 27 28 29 30 31 32 33 34 35 36
The title of every guide uses `h1`; guide sections use `h2`; subsections `h3`; etc. However, the generated HTML output will have the heading tag starting from `<h2>`.

```
Guide Title
===========

Section
-------

### Sub Section
```
37

V
Vijay Dev 已提交
38
Capitalize all words except for internal articles, prepositions, conjunctions, and forms of the verb to be:
39

40
```
41 42
#### Middleware Stack is an Array
#### When are Objects Saved?
43
```
44

45
Use the same typography as in regular text:
46

47
```
48
##### The `:content_type` Option
49
```
50

51 52
API Documentation Guidelines
----------------------------
53

54
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:)
55

56 57 58 59
* [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)
60 61 62

Those guidelines apply also to guides.

63 64
HTML Guides
-----------
65

S
Sunny Ripert 已提交
66
Before generating the guides, make sure that you have the latest version of Bundler installed on your system. As of this writing, you must install Bundler 1.3.5 on your device.
67 68 69

To install the latest version of Bundler, simply run the `gem install bundler` command

70
### Generation
71

72
To generate all the guides, just `cd` into the `guides` directory, run `bundle install` and execute:
73

74
```
75
bundle exec rake guides:generate
76
```
77 78 79

or

80
```
81
bundle exec rake guides:generate:html
82
```
83

84
To process `my_guide.md` and nothing else use the `ONLY` environment variable:
85

86
```
87
touch my_guide.md
88
bundle exec rake guides:generate ONLY=my_guide
89
```
90

91
By default, guides that have not been modified are not processed, so `ONLY` is rarely needed in practice.
92

93
To force processing all the guides, pass `ALL=1`.
94

95
It is also recommended that you work with `WARNINGS=1`. This detects duplicate IDs and warns about broken internal links.
96

97
If you want to generate guides in a language other than English, you can keep them in a separate directory under `source` (eg. `source/es`) and use the `GUIDES_LANGUAGE` environment variable:
98

99
```
100
bundle exec rake guides:generate GUIDES_LANGUAGE=es
101
```
102 103 104

If you want to see all the environment variables you can use to configure the generation script just run:

105
```
106
rake
107
```
108

109
### Validation
110

111
Please validate the generated HTML with:
112

113
```
114
bundle exec rake guides:validate
115
```
116

117
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.
118

119 120
Kindle Guides
-------------
121

122
### Generation
123

124
To generate guides for the Kindle, use the following rake task:
125

126
```
127
bundle exec rake guides:generate:kindle
128
```