class Gollum::Filter::Metadata

Extract metadata for data and build metadata table. Metadata consists of key/value pairs in “key:value” format found between markers. Each key/value pair must be on its own line. Internal whitespace in keys and values is preserved, but external whitespace is ignored.

Because ri and ruby 1.8.7 are awesome, the markers can't be included in this documentation without triggering `Unhandled special: Special: type=17` Please read the source code for the exact markers

Public Instance Methods

extract(data) click to toggle source
# File lib/gollum-lib/filter/metadata.rb, line 11
def extract(data)
  # The markers are `<!-- ---` and `-->`
  data.gsub(/\<\!--+\s+---(.*?)--+\>/m) do
    @markup.metadata ||= {}
    # Split untrusted input on newlines, then remove bits that look like
    # HTML elements before parsing each line.
    Regexp.last_match[1].split("\n").each do |line|
      line.gsub!(/<[^>]*>/, '')
      k, v                      = line.split(':', 2)
      @markup.metadata[k.strip] = (v ? v.strip : '') if k
    end
    ''
  end
end
process(data) click to toggle source
# File lib/gollum-lib/filter/metadata.rb, line 26
def process(data)
  data
end