56e96d9344
Removes kindlerb logic Adds template for epub generator Renames the kindle dir to /epub Adds epub module to generator and replaces kindle Fixes mimetype Creates basic epub book Deletes old kindle module Adds zip package Updates rubyzip gem name Removes now unused gepub gem Adds the required container file for epubs Fixes media type Adds new epub generation logic Removes all buttons from output html Refactors and generates valid epub files Removes frontmatter logic used for kindlegen Filters out epub files in zip Updates link to kindle doc on sidebar Fixes rubocop issues Adds deprecation warning for the old kindle task Refactors and cleans up epub module Cleans up epub code Cleans up private internal method code style Removes unnecessary imagemagick check
89 lines
2.5 KiB
Ruby
89 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
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
|
|
ruby "-Eutf-8:utf-8", "rails_guides.rb"
|
|
end
|
|
|
|
desc "Generate .mobi file"
|
|
task :kindle do
|
|
require "active_support/deprecation"
|
|
ActiveSupport::Deprecation.warn("The guides:generate:kindle rake task is deprecated and will be removed in 7.2. Run rake guides:generate:epub instead")
|
|
Rake::Task["guides:generate:epub"].invoke
|
|
end
|
|
|
|
desc "Generate .epub file"
|
|
task :epub do
|
|
ENV["EPUB"] = "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:
|
|
|
|
RAILS_VERSION=tag
|
|
If guides are being generated for a specific Rails version set the Git tag
|
|
here, otherwise the current SHA1 is going to be used to generate edge guides.
|
|
|
|
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)
|
|
|
|
Examples:
|
|
$ rake guides:generate ALL=1 RAILS_VERSION=v5.1.0
|
|
$ rake guides:generate ONLY=migrations
|
|
$ rake guides:generate:epub
|
|
$ rake guides:generate GUIDES_LANGUAGE=es
|
|
HELP
|
|
end
|
|
end
|
|
|
|
task :test do
|
|
templates = Dir.glob("bug_report_templates/*.rb")
|
|
counter = templates.count do |file|
|
|
puts "--- Running #{file}"
|
|
Bundler.unbundled_system(Gem.ruby, "-w", file) ||
|
|
puts("+++ 💥 FAILED (exit #{$?.exitstatus})")
|
|
end
|
|
puts "+++ #{counter} / #{templates.size} templates executed successfully"
|
|
exit 1 if counter < templates.size
|
|
end
|
|
|
|
task default: "guides:help"
|