1e4f12c12c
Improve the visual presentation of the Rails Guides, bringing them more inline with the new marketing rubyonrails.org site, as part of a project with the Rails Foundation. The CSS has been recreated from SCSS files, generated into the final pieces. The stylesrc directory contains those commented source files. The generate task will now process those scss => css files. Co-authored-by: Carlos Antonio da Silva <carlosantoniodasilva@gmail.com>
56 lines
1.4 KiB
Ruby
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: "interstitial 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
|