class Slippery::Processors::RevealJs::AddRevealJs

Constants

DEFAULT_OPTIONS

Attributes

attributes[R]

Public Class Methods

call(doc) click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 7
def self.call(doc)
  self.new.call(doc)
end
new(options = {}) click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 15
def initialize(options = {})
  @options = DEFAULT_OPTIONS.merge(options).freeze
end

Public Instance Methods

call(doc) click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 19
def call(doc)
  doc.process(
    reveal_wrap,
    add_reveal_js,
    add_reveal_css,
    add_theme,
    add_settings
  )
end
plugin_config(plugin) click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 75
def plugin_config(plugin)
  "{ src: #{plugins(plugin).inspect}, async: true, condition: function() { return !!document.body.classList; } }"
end
plugin_settings() click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 63
def plugin_settings
  Array(@options.fetch(:plugins, [])).map do |name|
    plugin_config(name)
  end
end
plugins(name) click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 69
def plugins(name)
  {
    notes: 'plugin/notes/notes.js'
  }[name]
end
settings() click to toggle source
# File lib/slippery/processors/reveal_js/add_reveal_js.rb, line 55
def settings
  {
    dependencies: plugin_settings + @options.fetch(:dependencies, [])
  }.merge(
    @options.reject { |key, _| [:theme, :plugins, :dependencies].include? key }
  )
end