Module: JekyllIS::Hookdown

Defined in:
lib/jekyll-is/hookdown/info.rb,
lib/jekyll-is/hookdown/extra.rb,
lib/jekyll-is/hookdown/setup.rb

Defined Under Namespace

Modules: Info

Class Method Summary collapse

Class Method Details

.current_pageJekyll::Page or Jekyll::Document

Returns:

  • (Jekyll::Page or Jekyll::Document)


12
13
14
# File 'lib/jekyll-is/hookdown/setup.rb', line 12

def current_page
  Thread::current[:hookdown_current_page]
end

.enabled?(site = nil) ⇒ Boolean

Parameters:

  • site (Jekyll::Site, nil) (defaults to: nil)

Returns:

  • (Boolean)


17
18
19
20
# File 'lib/jekyll-is/hookdown/setup.rb', line 17

def enabled? site = nil
  @site ||= site
  @enabled ||= setup
end

.register_element_hook(owner, *elements, priority: Jekyll::Hooks::DEFAULT_PRIORITY) {|page, element| ... } ⇒ Proc?

Parameters:

  • owner (Symbol, Array<Symbol>)
  • elements (Array<Symbol>)
  • priority (Integer, Symbol) (defaults to: Jekyll::Hooks::DEFAULT_PRIORITY)

Yields:

  • Hook block

Yield Parameters:

  • page (Jekyll::Page, Jekyll::Document)
  • element (Kramdown::Element)

Yield Returns:

  • (nil, Kramdown::Element, :delete)

Returns:

  • (Proc, nil)


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/jekyll-is/hookdown/extra.rb', line 20

def register_element_hook owner, *elements, priority: Jekyll::Hooks::DEFAULT_PRIORITY, &block
  if enabled?
    priority = Jekyll::Hooks::priority_value(priority)
    owners = owner.is_a?(Enumerable) ? owner.to_set : Set[ owner ]
    setup_element_hooks
    obj = { priority: priority, block: block, owners: owners, elements: elements.to_set }
    idx = @hooks.find_index { priority <= it[:priority] }
    if idx
      @hooks.insert idx, obj
    else
      @hooks.push obj
    end
    block
  else
    nil
  end
end

.unregister_element_hook(block) ⇒ void

This method returns an undefined value.

Parameters:

  • block (Proc)


40
41
42
43
44
45
# File 'lib/jekyll-is/hookdown/extra.rb', line 40

def unregister_element_hook block
  if @hooks
    @hooks.reject! { it[:block] == block }
  end
  nil
end