# Nested unique header generation require 'middleman-core/renderers/redcarpet' class NestingUniqueHeadCounter < Middleman::Renderers::MiddlemanRedcarpetHTML def initialize super @@headers_history = {} if !defined?(@@headers_history) end def header(text, header_level) friendly_text = text.gsub(/<[^>]*>/,"").parameterize @@headers_history[header_level] = text.parameterize if header_level > 1 for i in (header_level - 1).downto(1) friendly_text.prepend("#{@@headers_history[i]}-") if @@headers_history.key?(i) end end return "#{text}" end end