class Bookery::Publishers::HTMLPublisher
Constants
- DEFAULTS
Attributes
options[R]
processors[R]
Public Class Methods
new(options = {})
click to toggle source
# File lib/bookery/publishers/html_publisher.rb, line 13 def initialize(options = {}) @options = DEFAULTS.merge(options) includes_path = File.join(options[:project_dir], 'assets', 'includes') @processors = [ Processors::IncludeProcessor.new(includes_path) ] end
Public Instance Methods
pre_publish(book)
click to toggle source
# File lib/bookery/publishers/html_publisher.rb, line 35 def pre_publish(book) erb = ERB.new(File.read(book.template)) bound_object = TemplateObject.new(book) options[:template] = "string://#{erb.result(bound_object.get_binding)}" end
publish(book)
click to toggle source
# File lib/bookery/publishers/html_publisher.rb, line 22 def publish(book) markdown = process_content(book.content) pre_publish(book) output = Kramdown::Document.new(markdown, options).to_html output_dir = File.join(options[:project_dir], 'output', book.language) ::FileUtils.mkdir_p(output_dir) File.write(File.join(output_dir, 'index.html'), output) output end
Private Instance Methods
process_content(content)
click to toggle source
# File lib/bookery/publishers/html_publisher.rb, line 43 def process_content(content) result = content.dup processors.each do |processor| result = processor.process(result) end result end