rails/guides/rails_guides/helpers.rb
Geon George 56e96d9344 Replaces mobi guide with epub for docs because of discontinued support
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
2022-08-05 00:18:20 +05:30

56 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require "yaml"
module RailsGuides
module Helpers
def guide(name, url, options = {}, &block)
link = content_tag(:a, href: url) { name }
result = content_tag(:dt, link)
if options[:work_in_progress]
result << content_tag(:dd, "Work in progress", class: "work-in-progress")
end
result << content_tag(:dd, capture(&block))
result
end
def documents_by_section
@documents_by_section ||= YAML.load_file(File.expand_path("../source/#{@language ? @language + '/' : ''}documents.yaml", __dir__))
end
def documents_flat
documents_by_section.flat_map { |section| section["documents"] }
end
def finished_documents(documents)
documents.reject { |document| document["work_in_progress"] }
end
def all_images
base_path = File.expand_path("../assets", __dir__)
images_path = File.join(base_path, "images/**/*")
@all_images = Dir.glob(images_path).reject { |f| File.directory?(f) }.map { |item|
item.delete_prefix "#{base_path}/"
}
@all_images
end
def docs_for_menu(position = nil)
if position.nil?
documents_by_section
elsif position == "L"
documents_by_section.to(3)
else
documents_by_section.from(4)
end
end
def code(&block)
c = capture(&block)
content_tag(:code, c)
end
end
end