Sha256: fa0b8c255ecd0f50b494215565a380a896a86eb157a0900e028eaf6a34ed5fd7

Contents?: true

Size: 905 Bytes

Versions: 4

Compression:

Stored size: 905 Bytes

Contents

require_relative 'page'
require_relative 'page_without_a_file'

require 'json'

module JekyllPagesApi
  class Generator
    attr_reader :site

    def initialize(site)
      @site = site
    end

    def pages
      result = []
      self.site.each_site_file do |site_file|
        page = Page.new(site_file, @site)
        result << page if page.html?
      end
      result
    end

    def pages_data
      self.pages.map(&:to_json)
    end

    def data
      {
        entries: pages_data
      }
    end

    def dest_dir
      File.join('api', 'v1')
    end

    def page
      # based on https://github.com/jekyll/jekyll-sitemap/blob/v0.7.0/lib/jekyll-sitemap.rb#L51-L54
      page = PageWithoutAFile.new(self.site, File.dirname(__FILE__), self.dest_dir, 'pages.json')
      page.output = self.data.to_json
      page
    end

    def generate
      self.site.pages << self.page
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jekyll_pages_api-0.1.6 lib/jekyll_pages_api/generator.rb
jekyll_pages_api-0.1.5 lib/jekyll_pages_api/generator.rb
jekyll_pages_api-0.1.4 lib/jekyll_pages_api/generator.rb
jekyll_pages_api-0.1.3 lib/jekyll_pages_api/generator.rb