module Thoth::Helper::Wiki

Private Instance Methods

wiki_to_html(string) click to toggle source

Parse wiki-style markup into HTML markup.

# File lib/thoth/helper/wiki.rb, line 35
def wiki_to_html(string)
  # [[page_name|link text]]
  string.gsub!(/\[\[([0-9a-z_-]+)\|(.+?)\]\]/i) do
    PageController.a($2, :/, $1.downcase)
  end

  # [[page_name]]
  string.gsub!(/\[\[([0-9a-z_-]+)\]\]/i) do
    PageController.a($1, :/, $1.downcase)
  end

  # [[@post_name|link text]]
  # [[@123|link text]]
  string.gsub!(/\[\[@(\d+|[0-9a-z_-]+)\|(.+?)\]\]/i) do
    PostController.a($2, :/, $1.downcase)
  end

  # [[@post_name]]
  # [[@123]]
  string.gsub!(/\[\[@(\d+|[0-9a-z_-]+)\]\]/i) do
    PostController.a($1, :/, $1.downcase)
  end

  # [[media:filename|link text]]
  string.gsub!(/\[\[media:([^\]]+)\|(.+?)\]\]/i) do
    MediaController.a($2, :/, $1)
  end

  # [[media:filename]]
  string.gsub!(/\[\[media:([^\]]+)\]\]/i) do
    MediaController.a($1, :/, $1)
  end

  # [[media_url:filename]]
  string.gsub!(/\[\[media_url:([^\]]+)\]\]/i) do
    MediaController.r(:/, $1).to_s
  end

  string
end