Sha256: 17caa5e631c32d7c4accdba63492bcff6ea538ce983736aca6e2c894e7a65d5a
Contents?: true
Size: 804 Bytes
Versions: 18
Compression:
Stored size: 804 Bytes
Contents
require 'jekyll' require 'safe_yaml' module GuidesStyle18F class Breadcrumbs def self.generate(site, docs) breadcrumbs = create_breadcrumbs(site) docs.each do |page| page.data['breadcrumbs'] = breadcrumbs[page.permalink || page.url] end end def self.create_breadcrumbs(site) (site.config['navigation'] || []).flat_map do |nav| Breadcrumbs.generate_breadcrumbs(nav, '/', []) end.to_h end def self.generate_breadcrumbs(nav, parent_url, parents) url = parent_url + (nav['url'] || '') crumbs = parents + [{ 'url' => url, 'text' => nav['text'] }] child_crumbs = (nav['children'] || []).flat_map do |child| generate_breadcrumbs(child, url, crumbs) end [[url, crumbs]] + child_crumbs end end end
Version data entries
18 entries across 18 versions & 1 rubygems