class KramdownRFC::ParameterSet

def ele(pn, attr=nil, defcontent=nil, markdown=false)

def ele(pn, attr=nil, defcontent=nil, markdown=false)
  val, an = van(pn)
  val ||= defcontent
  val = [val] if Hash === val
  Array(val).map do |val1|
    a = Array(attr).dup
    if Hash === val1
      val1.each do |k, v|
        if k == ":"
          val1 = v
        else
          k = Kramdown::Element.attrmangle(k) || k
          a.unshift(%{#{k}="#{escattr(v)}"})
        end
      end
    end
    v = val1.to_s.strip
    contents =
      if markdown
        ::Kramdown::Converter::Rfc2629::process_markdown(v)
      else
        escape_html(v)
      end
    %{<#{[an, *a.map(&:to_s)].join(" ").strip}>#{contents}</#{an}>}
  end.join(" ")
end