Module: MiddlemanToc

Defined in:
lib/middleman_toc.rb,
lib/middleman_toc/tag.rb,
lib/middleman_toc/toc.rb,
lib/middleman_toc/node.rb,
lib/middleman_toc/title.rb,
lib/middleman_toc/builder.rb,
lib/middleman_toc/helpers.rb,
lib/middleman_toc/version.rb,
lib/middleman_toc/renderer.rb,
lib/middleman_toc/extension.rb,
lib/middleman_toc/validator.rb

Defined Under Namespace

Modules: Helpers Classes: Builder, Extension, Node, Renderer, Tag, Title, Toc, Validator

Constant Summary collapse

VERSION =
"0.0.6"

Class Method Summary collapse

Class Method Details

.instance(sitemap) ⇒ Object



9
10
11
12
13
# File 'lib/middleman_toc.rb', line 9

def instance(sitemap)
  @instance ||= Toc.new(pages(sitemap)).tap do |toc|
    Validator.new(toc.pages, toc.root).validate!
  end
end

.next_page(sitemap, path) ⇒ Object



23
24
25
# File 'lib/middleman_toc.rb', line 23

def next_page(sitemap, path)
  rendering { instance(sitemap).next_page(path) }
end

.pages(sitemap) ⇒ Object



27
28
29
30
31
# File 'lib/middleman_toc.rb', line 27

def pages(sitemap)
  sitemap.resources.inject({}) do |pages, page|
    pages.merge(page.path.gsub(%r((^|\/)[\d]+\-), '').sub('.html', '\1') => page)
  end
end

.prev_page(sitemap, path) ⇒ Object



19
20
21
# File 'lib/middleman_toc.rb', line 19

def prev_page(sitemap, path)
  rendering { instance(sitemap).prev_page(path) }
end

.renderingObject



33
34
35
36
37
# File 'lib/middleman_toc.rb', line 33

def rendering
  return if @rendering
  @rendering = true
  yield.tap { @rendering = false }
end

.toc(sitemap, path) ⇒ Object



15
16
17
# File 'lib/middleman_toc.rb', line 15

def toc(sitemap, path)
  rendering { instance(sitemap).toc(path) } # .tap { |html| puts html }
end