api_docs/lib/nesting_unique_head.rb
Vladimir Morozov 4f915e9cb2 Add optional NestingUniqueHeadCounter header ID generator
* Move nesting generator to separate class

* Major bug fix, code simplification

* Get rid of global value, use class variable instead.
2017-11-09 09:14:43 -06:00

22 lines
643 B
Ruby

# 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.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 "<h#{header_level} id='#{friendly_text}'>#{text}</h#{header_level}>"
end
end