% # Props taxon = local_assigns.fetch(:taxon, nil) separator = local_assigns.fetch(:separator, ' » ') base_class = local_assigns.fetch(:base_class, nil) # Methods def breadcrumbs(taxon, separator, breadcrumb_class = 'inline') return '' if current_page?('/') || taxon.nil? crumbs = [[t('spree.home'), spree.root_path]] crumbs << [t('spree.products'), products_path] if taxon crumbs += taxon.ancestors.collect { |ancestor| [ancestor.name, spree.nested_taxons_path(ancestor.permalink)] } unless taxon.ancestors.empty? crumbs << [taxon.name, spree.nested_taxons_path(taxon.permalink)] end separator = raw(separator) items = crumbs.each_with_index.collect do |crumb, index| content_tag(:li, itemprop: 'itemListElement', itemscope: '', itemtype: 'https://schema.org/ListItem') do link_to(crumb.last, itemprop: 'item') do content_tag(:span, crumb.first, itemprop: 'name') + tag('meta', { itemprop: 'position', content: (index + 1).to_s }, false, false) end + (crumb == crumbs.last ? '' : separator) end end content_tag( :nav, content_tag( :ol, raw(items.map(&:mb_chars).join), itemscope: '', itemtype: 'https://schema.org/BreadcrumbList'), class: breadcrumb_class ) end %> <% breadcrumbs = breadcrumbs(taxon, separator, "#{base_class}__content") %> <% if breadcrumbs.present? %>