Ruby implementation of the MediaWiki markup language.
Ruby Lua CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples
lang
lib
sample_documents
tasks
test Keep html entities intact Jan 30, 2015
.gitignore
.travis.yml
Gemfile
MIT-LICENSE
README updated readme Aug 13, 2011
README.textile
Rakefile
init.rb
run_tests.rb
wikicloth.gemspec

README.textile

WikiCloth

Ruby implementation of the MediaWiki markup language.

Supports

  • Variables, Templates {{ … }}
  • Links
    • External Links [ … ]
    • Internal Links, Images [[ … ]]
  • Markup
    • == Headings ==
    • Lists (*#;:)
    • bold ('''), italic ('') or both (''''')
    • Horizontal rule (——)
    • Tables
    • Table of Contents [__NOTOC__, __FORCETOC__, __TOC__]
  • <code>,<nowiki>,<pre> (disable wiki markup)
  • <ref> and <references/> support
  • html sanitization

For more information about the MediaWiki markup see https://www.mediawiki.org/wiki/Markup_spec

Install

  git clone git://github.com/nricciar/wikicloth.git
  cd wikicloth/
  rake install

Usage

  @wiki = WikiCloth::Parser.new({
    :data => "<nowiki>{{test}}</nowiki> ''Hello {{test}}!''\n",
    :params => { "test" => "World" } })

  @wiki.to_html => "<p>&#123;&#123;test&#125;&#125;  <i>Hello World!</i></p>"

Advanced Usage

Most features of WikiCloth can be overriden as needed…

  class WikiParser < WikiCloth::Parser

    url_for do |page|
      "javascript:alert('You clicked on: #{page}');"
    end

    link_attributes_for do |page|
      { :href => url_for(page) }
    end

    template do |template|
      "Hello {{{1}}}" if template == "hello"
    end

    external_link do |url,text|
      "<a href=\"#{url}\" target=\"_blank\" class=\"exlink\">#{text.blank? ? url : text}</a>"
    end

  end

  @wiki = WikiParser.new({ 
    :params => { "PAGENAME" => "Testing123" }, 
    :data => "{{hello|world}} From {{ PAGENAME }} -- [www.google.com]"; 
  })

  @wiki.to_html =>
  <p>
  Hello world From Testing123 -- <a href="http://www.google.com" target="_blank" class="exlink">http://www.google.com</a>
  </p>