class Markdown2Html::LinkFilter

Public Class Methods

new(source, repository) click to toggle source
# File lib/markdown2html/link_filter.rb, line 3
def initialize(source, repository)
  @source = source
  @repository = repository
end

Public Instance Methods

call() click to toggle source
# File lib/markdown2html/link_filter.rb, line 8
def call
  @result = @source.gsub(/\[\[.*\]\]/) do |page_name|
    page_name.gsub!(/[\[\]]/, '')
    link = page_name_to_path(page_name)
    "<a href=\"#{link}\">#{page_name}</a>"
  end

  if @repository
    @result.gsub!(/"(https:\/\/github.com\/#{@repository}\/wiki\/)(.*)"/) do |explicit_link|
      url, path = $1, $2

      next explicit_link if path =~ /^_pages/

      explicit_link.gsub!(url, '')
      explicit_link.gsub!(path, page_name_to_path(path))
    end
  end

  @result
end
page_name_to_path(page_name) click to toggle source
# File lib/markdown2html/link_filter.rb, line 29
def page_name_to_path(page_name)
  "#{page_name.downcase.gsub(/\s/,'-').gsub(':', '%3A')}.html"
end