class Playbook::HTMLBlockCode

def header(title, level)

def header(title, level)
  if level == 7
    @headers ||= []
    permalink = title.gsub(/\W+/, "-")
    if @headers.include?(permalink)
      permalink += "_1"
      loop do
        break unless @headers.include?(permalink)
        permalink.gsub!(/\_(\d+)$/, "_#{Regexp.last_match(1).to_i + 1}")
      end
    end
    @headers << permalink
    %(\n<a name="#{permalink}" class="markdown-header-anchor anchor" href="##{permalink}"><span class="fa fa-link anchor-icon"></span></a><h#{level} id=\"#{permalink}\">#{title}</h#{level}>\n)
  else
    %(\n<h#{level}>#{title}</h#{level}>\n)
  end
end

def image(link, title, alt_text)

def image(link, title, alt_text)
  image_tag(link, title: title, alt: alt_text, class: "imageloader lazyload")
end

def list(contents, _list_type)

def list(contents, _list_type)
  @contents = contents
  @list_items = contents.split("\n")
  if @list_items[0].include?("[do]") || @list_items[0].include?("[dont]")
    @element_items = []
    @list_items.each do |item, _index|
      item.gsub(%r{\<li>(.*)\</li>}) do
        @element_items.push(Regexp.last_match(1))
      end
    end
    # Doing both because we could have either/both
    # clean up
    @dont_items, @trash_items_dont = @element_items.partition { |x, _i| x.include? "[dont]" }
    @do_items, @trash_items_do = @element_items.partition { |x, _i| x.include? "[do]" }
    @do_list = []
    @do_items.each do |item, _index|
      @do_list.push("<li>#{item.sub('[do] ', '')}</li>")
    end
    @do_list = "<ul class='uix-ruleset do-list'>#{@do_list.join('')}</ul>"
    @dont_list = []
    @dont_items.each do |item, _index|
      @dont_list.push("<li>#{item.sub('[dont] ', '')}</li>")
    end
    @dont_list = "<ul class='uix-ruleset dont-list'>#{@dont_list.join('')}</ul>"
    "<div class='row uix-ruleset-block'><div class='col-sm-6'>#{@do_list}</div><div class='col-sm-6'>#{@dont_list}</div></div>"
  else
    @contents
  end
end

def preprocess(full_document)

def preprocess(full_document)
  full_document.gsub(/\[component (.*)\]/) do
    @string = Regexp.last_match(1)
    @default_height = "160"
    @attr = ["", @default_height]
    # Set src from attributes
    @string.gsub(/src="(.*?)"/) do
      @attr[0] = Regexp.last_match(1)
    end
    # Set height from attributes
    @string.gsub(/height="(.*?)"/) do
      @attr[1] = (Regexp.last_match(1) || @default_height)
    end
    %(\n<div class="uix-component-frame"><iframe scrolling="no" id="component-preview" src="#{@attr[0]}" width="100%" height="#{@attr[1]}"></iframe><a href="#{@attr[0]}" target="_blank" class="uix-component-link">View component</a></div>\n)
  end
end