Это руководство документирует рекомендации по написанию руководств по Ruby on Rails. Это руководство следует самому себе в изящном цикле, являясь примером для самого себя.
После прочтения этого руководства, вы узнаете:
Руководства написаны на GitHub Flavored Markdown. Имеется полная документация по Markdown, а также шпаргалка.
Каждое руководство должно начинаться с мотивационного текста сверху (это маленькое введение в голубой области на официальном сайте). Пролог должен рассказать читателю, о чем это руководство, и что они изучат. В качестве примера смотрите Routing Guide.
Название каждого руководства использует заголовок h1; разделы руководства — заголовок h2; подразделы используют заголовок h3; и так далее. Отметьте, что сгенерированный в HTML результат будет использовать теги заголовков, начиная с <h2>.
Guide Title
===========
Section
-------
### Sub Section
При написании заголовков начинайте с заглавной буквы все слова, кроме предлогов, союзов, внутренних артиклей и форм глагола "to be":
#### Assertions and Testing Jobs inside Components
#### Middleware Stack is an Array
#### When are Objects Saved?
Используйте форматирования для кода, как в обычном тексте:
##### The `:content_type` Option
Ссылки на API (api.rubyonrails.org) обрабатываются генератором руководств следующим образом:
Ссылки, включающие тег релиза, оставляются неизменными. Например
https://api.rubyonrails.org/v5.0.1/classes/ActiveRecord/Attributes/ClassMethods.html
не модифицируется.
Пожалуйста, используйте их в заметках о релизе, так как они должны указывать на соответствующую версию, вне зависимости от генерирующейся версии.
Если ссылка не включает тег версии и генерируются руководства edge, домен заменяется на edgeapi.rubyonrails.org. Например,
https://api.rubyonrails.org/classes/ActionDispatch/Response.html
становится
https://edgeapi.rubyonrails.org/classes/ActionDispatch/Response.html
Если ссылка не включает тег релиза, и генерируются руководства релиза, вставляется версия Rails. Например, если генерируются руководства для v5.1.0, ссылка
https://api.rubyonrails.org/classes/ActionDispatch/Response.html
становится
https://api.rubyonrails.org/v5.1.0/classes/ActionDispatch/Response.html
Пожалуйста, не ссылайтесь на edgeapi.rubyonrails.org вручную.
Эти руководства и API должны быть согласованны и последовательны, насколько возможно. В частности, эти разделы Рекомендаций по документированию API также применяются к руководствам:
До генерации руководств, убедитесь, что используете последнюю версию Bundler в своей системе. Последнюю версию Bundler можно найти тут. На момент написания этих строк это v1.17.1.
Чтобы установить последнюю версию Bundler, запустите gem install bundler.
Чтобы сгенерировать все руководства, просто сделайте cd в директорию guides, запустите bundle install и выполните:
$ bundle exec rake guides:generate
или
$ bundle exec rake guides:generate:html
Результирующие файлы HTML будут в директории ./output.
Чтобы обработать my_guide.md и ничего, кроме него, используйте переменную среды ONLY:
$ touch my_guide.md
$ bundle exec rake guides:generate ONLY=my_guide
По умолчанию неизмененные руководства не обрабатываются, поэтому ONLY редко нужна на практике.
Чтобы принудить к обработке всех руководств, передайте ALL=1.
Если хотите сгенерировать руководства на языке ином, чем английский, можете держать их в отдельной директории в source (то есть source/es) и использовать переменную среды GUIDES_LANGUAGE:
$ bundle exec rake guides:generate GUIDES_LANGUAGE=es
Если хотите увидеть все переменные окружения, которые могут использоваться генерационным скриптом, просто запустите:
$ rake
Пожалуйста, проверяйте сгенерированный HTML с помощью:
$ bundle exec rake guides:validate
В частности, заголовки имеют ID, сгенерированный на основе их содержания, и это часто ведет к дубликатам.
Чтобы сгенерировать руководства для Kindle, используйте следующую задачу rake:
$ bundle exec rake guides:generate:kindle