Sha256: d781b0c305244eea0abf540831f521c35eaf74c37e6c05ed67bf0611606d6cda

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

description  'Creole wiki text filter'
require 'creole'

class OleloCreole < ::Creole::Parser
  include PageHelper
  include Util

  def make_image(path, title)
    args = title.to_s.split('|')
    image_path = path.dup
    if path !~ %r{^(\w+)://}
      geometry = args.grep(/(\d+x)|(x\d+)|(\d+%)/).first
      image_path += (path.include?('?') ? '&' : '?') + 'aspect=image'
      if geometry
        args.delete(geometry)
        image_path += "&geometry=#{geometry}"
      end
    end
    image_path = escape_html(image_path)
    path = escape_html(path)
    nolink = args.delete('nolink')
    box = args.delete('box')
    alt = escape_html(args[0] ? args[0] : path)
    if nolink
      %{<img src="#{image_path}" alt="#{alt}"/>}
    elsif box
      caption = args[0] ? %{<span class="caption">#{escape_html args[0]}</span>} : ''
      %{<span class="img"><a href="#{path}"><img src="#{image_path}" alt="#{alt}"/>#{caption}</a></span>}
    else
      %{<a href="#{path}" class="img"><img src="#{image_path}" alt="#{alt}"/></a>}
    end
  end
end

Filter.create :creole do |context, content|
  OleloCreole.new(content, :extensions => true, :no_escape => true).to_html
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
olelo-0.9.3 plugins/filters/creole.rb
olelo-0.9.2 plugins/filters/creole.rb
olelo-0.9.1 plugins/filters/creole.rb
olelo-0.9.0 plugins/filters/creole.rb