github.com/shyftnetwork/go-empyrean@v1.8.3-0.20191127201940-fbfca9338f04/shyft_documentation/lib/nesting_unique_head.rb (about) 1 # Nested unique header generation 2 require 'middleman-core/renderers/redcarpet' 3 4 class NestingUniqueHeadCounter < Middleman::Renderers::MiddlemanRedcarpetHTML 5 def initialize 6 super 7 @@headers_history = {} if !defined?(@@headers_history) 8 end 9 10 def header(text, header_level) 11 friendly_text = text.parameterize 12 @@headers_history[header_level] = text.parameterize 13 14 if header_level > 1 15 for i in (header_level - 1).downto(1) 16 friendly_text.prepend("#{@@headers_history[i]}-") if @@headers_history.key?(i) 17 end 18 end 19 20 return "<h#{header_level} id='#{friendly_text}'>#{text}</h#{header_level}>" 21 end 22 end