<pre><code> <-- cut here <pre><code class="ruby"> Place you code here. </code></pre> cut here --> </pre></code> git-svn-id: http://redmine.rubyforge.org/svn/trunk@710 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.6.0
@@ -25,3 +25,7 @@ | |||
<% end %> | |||
<div id="preview" class="wiki"></div> | |||
<% content_for :header_tags do %> | |||
<%= stylesheet_link_tag 'scm' %> | |||
<% end %> |
@@ -37,3 +37,7 @@ | |||
<%= submit_tag l(:button_add) %> | |||
<% end %> | |||
<% end %> | |||
<% content_for :header_tags do %> | |||
<%= stylesheet_link_tag 'scm' %> | |||
<% end %> |
@@ -1,4 +1,5 @@ | |||
require 'redcloth' | |||
require 'coderay' | |||
module Redmine | |||
module WikiFormatting | |||
@@ -24,7 +25,22 @@ module Redmine | |||
def hard_break( text ) | |||
text.gsub!( /(.)\n(?!\n|\Z| *([#*=]+(\s|$)|[{|]))/, "\\1<br />" ) if hard_breaks | |||
end | |||
# Patch to add code highlighting support to RedCloth | |||
def smooth_offtags( text ) | |||
unless @pre_list.empty? | |||
## replace <pre> content | |||
text.gsub!(/<redpre#(\d+)>/) do | |||
content = @pre_list[$1.to_i] | |||
if content.match(/<code\s+class="(\w+)">\s?(.+)/m) | |||
content = "<code class=\"#{$1} CodeRay\">" + | |||
CodeRay.scan($2, $1).html(:escape => false, :line_numbers => :inline) | |||
end | |||
content | |||
end | |||
end | |||
end | |||
AUTO_LINK_RE = %r{ | |||
( # leading text | |||
<\w+.*?>| # leading HTML tag, or |
@@ -29,7 +29,7 @@ table.list thead th.list-filename { | |||
/************* Coderay styles *************/ | |||
.CodeRay { | |||
table.CodeRay { | |||
background-color: #fafafa; | |||
} | |||
.CodeRay pre { margin: 0px } |
@@ -25,6 +25,10 @@ module Encoders | |||
# | |||
# == Options | |||
# | |||
# === :escape | |||
# Escape html entities | |||
# Default: true | |||
# | |||
# === :tab_width | |||
# Convert \t characters to +n+ spaces (a number.) | |||
# Default: 8 | |||
@@ -70,6 +74,7 @@ module Encoders | |||
FILE_EXTENSION = 'html' | |||
DEFAULT_OPTIONS = { | |||
:escape => true, | |||
:tab_width => 8, | |||
:level => :xhtml, | |||
@@ -145,6 +150,7 @@ module Encoders | |||
@HTML_ESCAPE = HTML_ESCAPE.dup | |||
@HTML_ESCAPE["\t"] = ' ' * options[:tab_width] | |||
@escape = options[:escape] | |||
@opened = [nil] | |||
@css = CSS.new options[:style] | |||
@@ -222,7 +228,7 @@ module Encoders | |||
def token text, type | |||
if text.is_a? ::String | |||
if text =~ /#{HTML_ESCAPE_PATTERN}/o | |||
if @escape && (text =~ /#{HTML_ESCAPE_PATTERN}/o) | |||
text = text.gsub(/#{HTML_ESCAPE_PATTERN}/o) { |m| @HTML_ESCAPE[m] } | |||
end | |||
@opened[0] = type |