Class Webgen::SourceHandler::Page
In: lib/webgen/sourcehandler/page.rb
Parent: Object
Error RenderError CommandNotFoundError LoadError NodeCreationError ::Rake::TaskLib WebgenTask Helpers Configuration Node Context\n[lib/webgen/context.rb\nlib/webgen/context/nodes.rb\nlib/webgen/context/render.rb\nlib/webgen/context/tags.rb] Tree FileSystem Sitemap Copy Feed Virtual Sitemap Directory Page Fragment Template Metainfo Memory Coderay Sitemap IncludeFile BreadcrumbTrail Langbar TikZ Menu Tags Fragments Resource Website Tidy Head Kramdown Less Xmllint Blocks Comparable Language Path StandardError CmdParse::CommandParser CommandParser CmdParse::Command RunCommand WebguiCommand CreateCommand ApplyCommand WebsiteAccess Main Loggable OutputPathHelpers ExecuteCommand Link Date Relocatable Metainfo ::Kramdown::Converter::Html KramdownHtmlConverter Cache Blackboard WebsiteManager Logger Page ProxyNode Utils Scss RDoc Sass Erb RDiscount Erubis Haml Maruku Builder RedCloth AccessHash TarArchive Stacked FileSystem lib/webgen/cache.rb lib/webgen/error.rb lib/webgen/languages.rb lib/webgen/context/render.rb lib/webgen/website.rb lib/webgen/blackboard.rb lib/webgen/tree.rb lib/webgen/websitemanager.rb lib/webgen/logger.rb lib/webgen/configuration.rb lib/webgen/path.rb lib/webgen/webgentask.rb lib/webgen/page.rb lib/webgen/node.rb ClassMethods WebsiteAccess 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 LanguageManager lib/webgen/output/filesystem.rb Output lib/webgen/common/sitemap.rb Common 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/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/contentprocessor/less.rb lib/webgen/contentprocessor/scss.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 lib/webgen/source/tararchive.rb lib/webgen/source/stacked.rb lib/webgen/source/resource.rb lib/webgen/source/filesystem.rb Source Loggable Webgen dot/m_82_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]