diff options
author | georg <georg@riseup.net> | 2020-01-17 16:31:51 +0000 |
---|---|---|
committer | georg <georg@riseup.net> | 2020-01-17 16:31:51 +0000 |
commit | 372d1339d90ac70e1b209c5a97685e664205cdd1 (patch) | |
tree | 97643bfdd77504f971f631db7b337e6737deb254 | |
parent | 4b624074be33de81f40191471fe9a466de955b3d (diff) |
Drop obsolete breadcrumbs plugin
-rw-r--r-- | _plugins/breadcrumbs.rb | 82 | ||||
-rw-r--r-- | _plugins/drops/breadcrumb_item.rb | 29 |
2 files changed, 0 insertions, 111 deletions
diff --git a/_plugins/breadcrumbs.rb b/_plugins/breadcrumbs.rb deleted file mode 100644 index ec6068b..0000000 --- a/_plugins/breadcrumbs.rb +++ /dev/null @@ -1,82 +0,0 @@ -require_relative 'drops/breadcrumb_item.rb' - -module Jekyll - module Breadcrumbs - @@config = {} - @@siteAddress = "" - @@sideAddresses = {} - - def self.clearAddressCache - @@sideAddresses = {} - end - - def self.loadAddressCache(site) - clearAddressCache - site.documents.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # collection files including posts - site.pages.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # pages - site.posts.docs.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # posts - end - - def self.addAddressItem(url, title) - key = createAddressCacheKey(url) - @@sideAddresses[key] = {:url => url, :title => title} - end - - def self.findAddressItem(path) - key = createAddressCacheKey(path) - @@sideAddresses[key] if key - end - - def self.createAddressCacheKey(path) - path.chomp("/").empty? ? "/" : path.chomp("/") - end - - def self.buildSideBreadcrumbs(side, payload) - payload["breadcrumbs"] = [] - return if side.url == @@siteAddress && root_hide === true - - drop = Jekyll::Drops::BreadcrumbItem - position = 0 - - path = side.url.chomp("/").split(/(?=\/)/) - (-1..(path.size - 1)).each do |int| - joined_path = int == -1 ? "" : path[0..int].join - item = findAddressItem(joined_path) - if item - position += 1 - item[:position] = position - item[:root_image] = root_image - payload["breadcrumbs"] << drop.new(item) - end - end - end - - # Config - def self.loadConfig(site) - config = site.config["breadcrumbs"] || {"root" => {"hide" => false, "image" => false}} - root = config["root"] - @@config[:root_hide] = root["hide"] || false - @@config[:root_image] = root["image"] || false - - @@siteAddress = site.config["baseurl"] || "/" - @@siteAddress = "/" if @@siteAddress.empty? - end - - def self.root_hide - @@config[:root_hide] - end - - def self.root_image - @@config[:root_image] - end - end -end - -Jekyll::Hooks.register :site, :pre_render do |site, payload| - Jekyll::Breadcrumbs::loadConfig(site) - Jekyll::Breadcrumbs::loadAddressCache(site) -end - -Jekyll::Hooks.register [:pages, :documents], :pre_render do |side, payload| - Jekyll::Breadcrumbs::buildSideBreadcrumbs(side, payload) -end diff --git a/_plugins/drops/breadcrumb_item.rb b/_plugins/drops/breadcrumb_item.rb deleted file mode 100644 index 8e3b2cf..0000000 --- a/_plugins/drops/breadcrumb_item.rb +++ /dev/null @@ -1,29 +0,0 @@ -module Jekyll - module Drops - class BreadcrumbItem < Liquid::Drop - extend Forwardable - - def initialize(side) - @side = side - end - - def position - @side[:position] - end - - def title - @side[:title] - end - - def url - @side[:url] - end - - def rootimage - @side[:root_image] - end - - end - end - end -
\ No newline at end of file |