Sha256: 23c4cc2cdf7aa0308bcd8c943b24a97baf4baed4a8907ff93ae622dd9fb859cb

Contents?: true

Size: 1.37 KB

Versions: 7

Compression:

Stored size: 1.37 KB

Contents

require 'cgi'
require 'md2man/document'

module Md2Man
module HTML

  include Document

  #---------------------------------------------------------------------------
  # block-level processing
  #---------------------------------------------------------------------------

  def normal_paragraph text
    "<p>#{text}</p>"
  end

  def tagged_paragraph text
    head, *body = text.lines.to_a
    "<dl><dt>#{head.chomp}</dt><dd>#{body.join}</dd></dl>"
  end

  def indented_paragraph text
    "<dl><dd>#{text}</dd></dl>"
  end

  def block_code code, language
    "<pre>#{codespan(super)}</pre>"
  end

  def header text, level
    id = text.gsub(/<.+?>/, '-').        # strip all HTML tags
      gsub(/\W+/, '-').gsub(/^-|-$/, '') # fold non-word chars
    %{<h#{level} id="#{id}">#{text}</h#{level}>}
  end

  #---------------------------------------------------------------------------
  # span-level processing
  #---------------------------------------------------------------------------

  def codespan code
    "<code>#{CGI.escapeHTML(super)}</code>"
  end

  def reference page, section, addendum
    url = reference_url(page, section)
    %{<a class="manpage-reference" href="#{url}">#{page}(#{section})</a>#{addendum}}
  end

  # You can override this in a derived class to compute URLs as you like!
  def reference_url page, section
    "../man#{section}/#{page}.#{section}.html"
  end

end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
md2man-1.6.2 lib/md2man/html.rb
md2man-1.6.1 lib/md2man/html.rb
md2man-1.6.0 lib/md2man/html.rb
md2man-1.5.1 lib/md2man/html.rb
md2man-1.4.2 lib/md2man/html.rb
md2man-1.4.1 lib/md2man/html.rb
md2man-1.4.0 lib/md2man/html.rb