Sha256: 7c1564768e5cae35ee5db08077103a22fd978159dd0c8460997367b3a507dde2

Contents?: true

Size: 1.55 KB

Versions: 23

Compression:

Stored size: 1.55 KB

Contents

module Jekyll

  class Page
    include Convertible
    
    attr_accessor :ext
    attr_accessor :data, :content, :output
    
    # Initialize a new Page.
    #   +base+ is the String path to the <source>
    #   +dir+ is the String path between <source> and the file
    #   +name+ is the String filename of the file
    #
    # Returns <Page>
    def initialize(base, dir, name)
      @base = base
      @dir = dir
      @name = name
      
      self.data = {}
      
      self.process(name)
      self.read_yaml(File.join(base, dir), name)
      #self.transform
    end
    
    # Extract information from the page filename
    #   +name+ is the String filename of the page file
    #
    # Returns nothing
    def process(name)
      self.ext = File.extname(name)
    end
    
    # Add any necessary layouts to this post
    #   +layouts+ is a Hash of {"name" => "layout"}
    #   +site_payload+ is the site payload hash
    #
    # Returns nothing
    def render(layouts, site_payload)
      payload = {"page" => self.data}.deep_merge(site_payload)
      do_layout(payload, layouts)
    end
    
    # Write the generated page file to the destination directory.
    #   +dest+ is the String path to the destination dir
    #
    # Returns nothing
    def write(dest)
      FileUtils.mkdir_p(File.join(dest, @dir))
      
      name = @name
      if self.ext != ""
        name = @name.split(".")[0..-2].join('.') + self.ext
      end
      
      path = File.join(dest, @dir, name)
      File.open(path, 'w') do |f|
        f.write(self.output)
      end
    end
  end

end

Version data entries

23 entries across 23 versions & 10 rubygems

Version Path
codeslinger-jekyll-0.3.0 lib/jekyll/page.rb
codeslinger-jekyll-0.4.1 lib/jekyll/page.rb
danski-jekyll-0.4.1 lib/jekyll/page.rb
dysinger-jekyll-0.4.0 lib/jekyll/page.rb
elq-jekyll-0.4.2 lib/jekyll/page.rb
matflores-jekyll-0.4.1.1 lib/jekyll/page.rb
matflores-jekyll-0.4.1 lib/jekyll/page.rb
matflores-jekyll-0.4.2 lib/jekyll/page.rb
matflores-jekyll-0.4.3 lib/jekyll/page.rb
mattmatt-jekyll-0.4.0 lib/jekyll/page.rb
mattmatt-jekyll-0.4.1 lib/jekyll/page.rb
mattmatt-jekyll-0.4.3 lib/jekyll/page.rb
mattmatt-jekyll-0.4.4 lib/jekyll/page.rb
mattmatt-jekyll-0.4.5 lib/jekyll/page.rb
mojombo-jekyll-0.3.0 lib/jekyll/page.rb
mojombo-jekyll-0.4.0 lib/jekyll/page.rb
mojombo-jekyll-0.4.1 lib/jekyll/page.rb
qrush-jekyll-0.3.0.1 lib/jekyll/page.rb
qrush-jekyll-0.4.0 lib/jekyll/page.rb
qrush-jekyll-0.4.1 lib/jekyll/page.rb