Move toc calling code out of app; put in Page.toc_data

Page stores the formatted document parsed by Nokogiri
This commit is contained in:
kristi
2012-05-09 13:33:54 -07:00
parent 63107566ec
commit 065d06a98f
2 changed files with 23 additions and 23 deletions
+5 -22
View File
@@ -112,17 +112,8 @@ module Precious
wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options)
@name = "Preview"
@page = wiki.preview_page(@name, params[:content], params[:format])
@content = @page.formatted_data do
|doc|
# Insert anchors for table of contents
toc = Gollum::Toc.new doc
if (toc_content = toc.generate)
toc.insert_anchors
@toc_content = toc_content.to_xhtml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XHTML)
else
@toc_content = nil
end
end
@content = @page.formatted_data
@toc_content = @page.toc_data
@editable = false
mustache :page
end
@@ -207,17 +198,9 @@ module Precious
@page = page
@name = name
@editable = true
@content = page.formatted_data do
|doc|
# Insert anchors for table of contents
toc = Gollum::Toc.new doc
if (toc_content = toc.generate)
toc.insert_anchors
@toc_content = toc_content.to_xhtml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XHTML)
else
@toc_content = nil
end
end
@content = page.formatted_data
@toc_content = page.toc_data
mustache :page
elsif file = wiki.file(name)
content_type file.mime_type
+18 -1
View File
@@ -164,7 +164,24 @@ module Gollum
#
# Returns the String data.
def formatted_data(encoding = nil, &block)
@blob && markup_class.render(historical?, encoding, &block)
@blob && markup_class.render(historical?, encoding) do |doc|
@doc = doc
yield doc if block_given?
end
end
# Public: The table of contents of the page.
#
# formatted_data - page already marked up in html.
#
# Returns the String data.
def toc_data()
formatted_data if @doc == nil
toc = Toc.new(@doc)
if (toc_content = toc.generate)
toc.insert_anchors
toc.generate.to_xhtml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XHTML)
end
end
# Public: The format of the page.