Changed wiki parser to wikicloth.
* Temporarly removing of TOC.
This commit is contained in:
parent
55729e20f9
commit
5d9385cde4
39 changed files with 3474 additions and 64 deletions
|
|
@ -1,51 +1,34 @@
|
|||
module PagesHelper
|
||||
include WikiCloth
|
||||
|
||||
def wiki_link(wiki_words, link_text = nil)
|
||||
permalink = Page.permalink(wiki_words)
|
||||
if Page.exists?(:permalink => permalink)
|
||||
link_to((link_text || wiki_words), wiki_page_url(permalink))
|
||||
else
|
||||
link_to((link_text || wiki_words), wiki_page_url(permalink), :class => "new_wiki_link")
|
||||
end
|
||||
end
|
||||
|
||||
def build_internal_links(body)
|
||||
body.gsub(/\[\[(.*?)(\|(.*?))?\]\]/) { wiki_link($1, $3) }
|
||||
end
|
||||
|
||||
def build_anchors(body)
|
||||
body.gsub(/(<h\d{1}>(.+)<\/h\d{1}>)/) do
|
||||
header = $1
|
||||
token = $2.downcase.gsub(' ', '-')
|
||||
"<a name='#{token}'> </a>#{header}"
|
||||
end
|
||||
end
|
||||
# def build_anchors(body)
|
||||
# body.gsub(/(<h\d{1}>(.+)<\/h\d{1}>)/) do
|
||||
# header = $1
|
||||
# token = $2.downcase.gsub(' ', '-')
|
||||
# "<a name='#{token}'> </a>#{header}"
|
||||
# end
|
||||
# end
|
||||
|
||||
def wikified_body(body)
|
||||
body = Wikitext::Parser.new.parse body
|
||||
build_anchors(body)
|
||||
end
|
||||
|
||||
def wiki_header(body)
|
||||
body.gsub(/^(={1,6})\s*(.*)\s*={1,6}$/) { "h#{$1.size}. #{$2}" }
|
||||
WikiCloth.new({:data => body, :link_handler => Wikilink.new}).to_html
|
||||
end
|
||||
|
||||
def generate_toc(body)
|
||||
toc = ""
|
||||
body.gsub(/<h(\d{1})>(.+)<\/h\d{1}>/) do
|
||||
number = $1.to_i - 1
|
||||
name = $2
|
||||
|
||||
toc << "#" * number + " #{name}\n"
|
||||
end
|
||||
toc = Wikitext::Parser.new.parse toc
|
||||
|
||||
toc.gsub(/<li>([^<>\n]*)/) do
|
||||
name = $1
|
||||
token = name.downcase.gsub(' ', '-')
|
||||
|
||||
"<li><a href='##{token}'>#{name}</a>"
|
||||
end
|
||||
end
|
||||
# def generate_toc(body)
|
||||
# toc = ""
|
||||
# body.gsub(/^([=]{1,6})\s*(.*?)\s*(\1)/) do
|
||||
# number = $1.length - 1
|
||||
# name = $2
|
||||
#
|
||||
# toc << "#" * number + " #{name}\n"
|
||||
# end
|
||||
# toc = WikiCloth.new({:data => toc, :link_handler => Wikilink.new}).to_html
|
||||
#
|
||||
# toc.gsub(/<li>([^<>\n]*)/) do
|
||||
# name = $1
|
||||
# token = name.downcase.gsub(' ', '-')
|
||||
#
|
||||
# "<li><a href='##{token}'>#{name}</a>"
|
||||
# end
|
||||
# end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class Page < ActiveRecord::Base
|
|||
after_update :create_redirect
|
||||
|
||||
def self.permalink(title)
|
||||
title.gsub(" ", "_")
|
||||
title.gsub(/[\/\.,;@\s]/, "_").gsub(/[\"\']/, "")
|
||||
end
|
||||
|
||||
def set_permalink
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
- content = wikified_body @page.body
|
||||
#toc
|
||||
%h2 Inhaltsverzeichnis
|
||||
= generate_toc content
|
||||
//#toc
|
||||
//%h2 Inhaltsverzeichnis
|
||||
//= generate_toc @page.body
|
||||
#wiki_content= content
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
%ul
|
||||
- for version in @page.versions.reverse
|
||||
%li
|
||||
= link_to format_datetime(version.updated_at), version_page_path(@page, :version => version.lock_version)
|
||||
= link_to I18n.l(version.updated_at, :format => "%d.%m.%y %H:%M"), version_page_path(@page, :version => version.lock_version)
|
||||
= "(#{User.find(version.updated_by).nick})"
|
||||
|
||||
= render :partial => 'body'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue