1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/guides/Rakefile
Gaurav Sharma f0bacbc2c4 update kindlerb gem
Ruby Kindle periodical-format ebook generator
2016-10-21 09:37:24 +05:30

79 lines
2.2 KiB
Ruby

namespace :guides do
desc 'Generate guides (for authors), use ONLY=foo to process just "foo.md"'
task generate: "generate:html"
namespace :generate do
desc "Generate HTML guides"
task :html do
ENV["WARNINGS"] = "1" # authors can't disable this
ruby "rails_guides.rb"
end
desc "Generate .mobi file. The kindlegen executable must be in your PATH. You can get it for free from http://www.amazon.com/gp/feature.html?docId=1000765211"
task :kindle do
unless `kindlerb -v 2> /dev/null` =~ /kindlerb 1.0.1/
abort "Please `gem install kindlerb` and make sure you have `kindlegen` in your PATH"
end
unless `convert` =~ /convert/
abort "Please install ImageMagick`"
end
ENV["KINDLE"] = "1"
Rake::Task["guides:generate:html"].invoke
end
end
# Validate guides -------------------------------------------------------------------------
desc 'Validate guides, use ONLY=foo to process just "foo.html"'
task :validate do
ruby "w3c_validator.rb"
end
desc "Show help"
task :help do
puts <<-help
Guides are taken from the source directory, and the result goes into the
output directory. Assets are stored under files, and copied to output/files as
part of the generation process.
You can generate HTML, Kindle or both formats using the `guides:generate` task.
All of these processes are handled via rake tasks, here's a full list of them:
#{%x[rake -T]}
Some arguments may be passed via environment variables:
WARNINGS=1
Internal links (anchors) are checked, also detects duplicated IDs.
ALL=1
Force generation of all guides.
ONLY=name
Useful if you want to generate only one or a set of guides.
Generate only association_basics.html:
ONLY=assoc
Separate many using commas:
ONLY=assoc,migrations
GUIDES_LANGUAGE
Use it when you want to generate translated guides in
source/<GUIDES_LANGUAGE> folder (such as source/es)
EDGE=1
Indicate generated guides should be marked as edge.
Examples:
$ rake guides:generate ALL=1
$ rake guides:generate EDGE=1
$ rake guides:generate:kindle EDGE=1
$ rake guides:generate GUIDES_LANGUAGE=es
help
end
end
task default: "guides:help"