api_docs/lib/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

17 lines
No EOL
532 B
Ruby

# Unique header generation
require 'middleman-core/renderers/redcarpet'
class UniqueHeadCounter < Middleman::Renderers::MiddlemanRedcarpetHTML
def initialize
super
@head_count = {}
end
def header(text, header_level)
friendly_text = text.parameterize
@head_count[friendly_text] ||= 0
@head_count[friendly_text] += 1
if @head_count[friendly_text] > 1
friendly_text += "-#{@head_count[friendly_text]}"
end
return "<h#{header_level} id='#{friendly_text}'>#{text}</h#{header_level}>"
end
end