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