Sha256: a16d811c530838099a329b62c7332476657ac579382cb06e0ceb5267507a6799
Contents?: true
Size: 1.25 KB
Versions: 8
Compression:
Stored size: 1.25 KB
Contents
require_relative './breadcrumbs' require_relative './generated_pages' require_relative './namespace_flattener' require 'jekyll' module JekyllThemeGuidesMbland class Generator < ::Jekyll::Generator def generate(site) GeneratedPages.generate_pages_from_navigation_data(site) pages = site.collections['pages'] docs = (pages.nil? ? [] : pages.docs) + site.pages docs.each { |doc| Generator.generate_working_url(doc) } Breadcrumbs.generate(site, docs) NamespaceFlattener.flatten_url_namespace(site, docs) end # Calling the `url` method on a Jekyll::Page or Jekyll::Document will render # the returned value immutable from that point. Here we generate a separate # URL object that we use to calculate `data['permalink']` prior to the first # call to `url`. This enables `NamespaceFlattener.flatten_url_namespace` to # update the URL as a final step, after `Breadcrumbs.generate` has finished # its processing. def self.generate_working_url(doc) t = doc.respond_to?(:url_template) ? doc.url_template : doc.template doc.data[:working_url] = Jekyll::URL.new( template: t, placeholders: doc.url_placeholders, permalink: doc.permalink ).to_s end end end
Version data entries
8 entries across 8 versions & 1 rubygems