Class Webgen::SourceHandler::Page
In: lib/webgen/sourcehandler/page.rb
Parent: Object
Error RenderError CommandNotFoundError LoadError NodeCreationError ::Rake::TaskLib WebgenTask Context\n[lib/webgen/context.rb\nlib/webgen/context/nodes.rb\nlib/webgen/context/render.rb\nlib/webgen/context/tags.rb] Node Tree FileSystem Sitemap Coderay Sitemap IncludeFile Langbar BreadcrumbTrail TikZ Menu Feed Copy Virtual Sitemap Directory Page Fragment Template Metainfo Memory Resource Tags Fragments Website Tidy Head Kramdown Less Xmllint Blocks Helpers Configuration Comparable Language Path StandardError CmdParse::CommandParser CommandParser CmdParse::Command RunCommand WebguiCommand CreateCommand ApplyCommand ExecuteCommand Link Date Relocatable Metainfo WebsiteAccess Main Loggable OutputPathHelpers ::Kramdown::Converter::Html KramdownHtmlConverter Cache Blackboard WebsiteManager Logger Page ProxyNode Utils TarArchive Stacked FileSystem RDoc Sass Erb RDiscount Erubis Haml Maruku Builder RedCloth AccessHash lib/webgen/cache.rb lib/webgen/error.rb lib/webgen/languages.rb lib/webgen/blackboard.rb lib/webgen/website.rb lib/webgen/tree.rb lib/webgen/websitemanager.rb lib/webgen/logger.rb lib/webgen/configuration.rb lib/webgen/context/tags.rb lib/webgen/path.rb lib/webgen/webgentask.rb lib/webgen/page.rb lib/webgen/node.rb lib/webgen/cli/run_command.rb lib/webgen/cli/utils.rb lib/webgen/cli/apply_command.rb lib/webgen/cli/webgui_command.rb lib/webgen/cli.rb lib/webgen/cli/create_command.rb Color CLI ClassMethods WebsiteAccess LanguageManager lib/webgen/output/filesystem.rb Output lib/webgen/common/sitemap.rb Common lib/webgen/tag/coderay.rb lib/webgen/tag/relocatable.rb lib/webgen/tag/menu.rb lib/webgen/tag/langbar.rb lib/webgen/tag/executecommand.rb lib/webgen/tag/breadcrumbtrail.rb lib/webgen/tag/metainfo.rb lib/webgen/tag/includefile.rb lib/webgen/tag/link.rb lib/webgen/tag/date.rb lib/webgen/tag/tikz.rb lib/webgen/tag/sitemap.rb Base Tag lib/webgen/sourcehandler/memory.rb lib/webgen/sourcehandler/metainfo.rb lib/webgen/sourcehandler/copy.rb lib/webgen/sourcehandler/directory.rb lib/webgen/sourcehandler.rb lib/webgen/sourcehandler/page.rb lib/webgen/sourcehandler/template.rb lib/webgen/sourcehandler/fragment.rb lib/webgen/sourcehandler/sitemap.rb lib/webgen/sourcehandler/virtual.rb lib/webgen/sourcehandler/feed.rb OutputPathHelpers Base SourceHandler lib/webgen/source/tararchive.rb lib/webgen/source/stacked.rb lib/webgen/source/resource.rb lib/webgen/source/filesystem.rb Source lib/webgen/contentprocessor/less.rb lib/webgen/contentprocessor/blocks.rb lib/webgen/contentprocessor/rdoc.rb lib/webgen/contentprocessor/sass.rb lib/webgen/contentprocessor/erb.rb lib/webgen/contentprocessor/rdiscount.rb lib/webgen/contentprocessor/tags.rb lib/webgen/contentprocessor/erubis.rb lib/webgen/contentprocessor/kramdown/html.rb lib/webgen/contentprocessor/haml.rb lib/webgen/contentprocessor/maruku.rb lib/webgen/contentprocessor/xmllint.rb lib/webgen/contentprocessor/kramdown.rb lib/webgen/contentprocessor/head.rb lib/webgen/contentprocessor/builder.rb lib/webgen/contentprocessor/tidy.rb lib/webgen/contentprocessor/redcloth.rb lib/webgen/contentprocessor/fragments.rb lib/webgen/contentprocessor.rb ContentProcessor Loggable Webgen dot/m_81_0.png

Source handler for handling content files in Webgen Page Format.

Methods

Included Modules

Webgen::WebsiteAccess Base

Public Instance methods

content(node, block_name = 'content', templates = website.blackboard.invoke(:templates_for_node, node))

Alias for render_node

Create a page file from path.

[Source]

    # File lib/webgen/sourcehandler/page.rb, line 16
16:     def create_node(path)
17:       page = page_from_path(path)
18:       path.meta_info['lang'] ||= website.config['website.lang']
19:       path.ext = 'html' if path.ext == 'page'
20: 
21:       super(path) do |node|
22:         node.node_info[:sh_page_node_mi] = Webgen::Page.meta_info_from_data(path.io.data)
23:         node.node_info[:page] = page
24:       end
25:     end

Render the block called block_name of the given node. The parameter templates is set to the default template chain for the given node but you can assign a custom template chain (an array of template nodes) if need arises. Return nil if an error occurred.

[Source]

    # File lib/webgen/sourcehandler/page.rb, line 30
30:     def render_node(node, block_name = 'content', templates = website.blackboard.invoke(:templates_for_node, node))
31:       chain = [templates, node].flatten
32: 
33:       if chain.first.node_info[:page].blocks.has_key?(block_name)
34:         node.node_info[:used_nodes] << chain.first.alcn
35:         context = chain.first.node_info[:page].blocks[block_name].render(Webgen::Context.new(:chain => chain))
36:         context.content
37:       else
38:         raise Webgen::RenderError.new("No block named '#{block_name}'",
39:                                       self.class.name, node, chain.first)
40:       end
41:     end

Private Instance methods

Checks if the meta information provided by the file in Webgen Page Format changed.

[Source]

    # File lib/webgen/sourcehandler/page.rb, line 49
49:     def meta_info_changed?(node)
50:       path = website.blackboard.invoke(:source_paths)[node.node_info[:src]]
51:       return if node.node_info[:processor] != self.class.name || (path && !path.changed?)
52: 
53:       if !path
54:         node.flag(:dirty_meta_info)
55:       else
56:         old_mi = node.node_info[:sh_page_node_mi]
57:         new_mi = Webgen::Page.meta_info_from_data(path.io.data)
58:         node.flag(:dirty_meta_info) if old_mi && old_mi != new_mi
59:       end
60:     end

[Validate]