class SyncReadme::Reader

Public Class Methods

new(config) click to toggle source
# File lib/sync_readme/reader.rb, line 5
def initialize(config)
  @file_contents = File.read(config.filename)
  @notice = config.notice
  @toc = config.toc
  @strip_title = config.strip_title?
  @highlighter = config.syntax_highlighting? ? 'coderay' : nil
end

Public Instance Methods

html() click to toggle source
# File lib/sync_readme/reader.rb, line 48
def html
  markdown = @file_contents
  markdown.sub!(/# .*\n/, '') if @strip_title
  options = {
    input: 'GFM',
    syntax_highlighter: @highlighter,
    syntax_highlighter_opts: {
      css: 'style',
      line_numbers: 'table'
    }
  }
  value = []
  value << "<p>#{@notice}</p>" if @notice
  value << toc if @toc
  value << Kramdown::Document.new(markdown, options).to_html
  value.join("\n")
end
toc() click to toggle source

See here for ToC parameters confluence.atlassian.com/display/CONF55/Table+of+Contents+Macro

# File lib/sync_readme/reader.rb, line 15
    def toc
      return '' unless @toc
      @toc = {} unless @toc.is_a?(Hash)
      params = {
        'printable' => true,
        'style' => 'circle',
        'maxLevel' => 2,
        'indent' => '5px',
        'minLevel' => 2,
        'exclude' => '[1/2]',
        'outline' => true,
        'type' => 'list',
        'include' => '.*',
        'class' => 'sync_readme_toc'
        }.merge(@toc)

      return <<-TOC
      <ac:structured-macro ac:name="toc">
        <ac:parameter ac:name="printable">#{params['printable']}</ac:parameter>
        <ac:parameter ac:name="style">#{params['style']}</ac:parameter>
        <ac:parameter ac:name="maxLevel">#{params['maxLevel']}</ac:parameter>
        <ac:parameter ac:name="indent">#{params['indent']}</ac:parameter>
        <ac:parameter ac:name="minLevel">#{params['minLevel']}</ac:parameter>
        <ac:parameter ac:name="class">#{params['class']}</ac:parameter>
        <ac:parameter ac:name="exclude">#{params['exclude']}</ac:parameter>
        <ac:parameter ac:name="type">#{params['type']}</ac:parameter>
        <ac:parameter ac:name="outline">#{params['outline']}</ac:parameter>
        <ac:parameter ac:name="include">#{params['include']}</ac:parameter>
      </ac:structured-macro>
      TOC
    end