1
0

nesting_unique_head.rb 662 B

12345678910111213141516171819202122
  1. # Nested unique header generation
  2. require 'middleman-core/renderers/redcarpet'
  3. class NestingUniqueHeadCounter < Middleman::Renderers::MiddlemanRedcarpetHTML
  4. def initialize
  5. super
  6. @@headers_history = {} if !defined?(@@headers_history)
  7. end
  8. def header(text, header_level)
  9. friendly_text = text.gsub(/<[^>]*>/,"").parameterize
  10. @@headers_history[header_level] = text.parameterize
  11. if header_level > 1
  12. for i in (header_level - 1).downto(1)
  13. friendly_text.prepend("#{@@headers_history[i]}-") if @@headers_history.key?(i)
  14. end
  15. end
  16. return "<h#{header_level} id='#{friendly_text}'>#{text}</h#{header_level}>"
  17. end
  18. end