@@ -18,7 +18,7 | |||||
18 |
|
18 | |||
19 | <p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p> |
|
19 | <p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p> | |
20 |
|
20 | |||
21 |
<p><%= setting_select :text_formatting, Redmine::WikiFormatting.format |
|
21 | <p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p> | |
22 |
|
22 | |||
23 | <p><%= setting_check_box :cache_formatted_text %></p> |
|
23 | <p><%= setting_check_box :cache_formatted_text %></p> | |
24 |
|
24 |
@@ -28,9 +28,14 module Redmine | |||||
28 | yield self |
|
28 | yield self | |
29 | end |
|
29 | end | |
30 |
|
30 | |||
31 | def register(name, formatter, helper) |
|
31 | def register(name, formatter, helper, options={}) | |
32 | raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name.to_s] |
|
32 | name = name.to_s | |
33 | @@formatters[name.to_s] = {:formatter => formatter, :helper => helper} |
|
33 | raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name] | |
|
34 | @@formatters[name] = { | |||
|
35 | :formatter => formatter, | |||
|
36 | :helper => helper, | |||
|
37 | :label => options[:label] || name.humanize | |||
|
38 | } | |||
34 | end |
|
39 | end | |
35 |
|
40 | |||
36 | def formatter |
|
41 | def formatter | |
@@ -51,6 +56,10 module Redmine | |||||
51 | @@formatters.keys.map |
|
56 | @@formatters.keys.map | |
52 | end |
|
57 | end | |
53 |
|
58 | |||
|
59 | def formats_for_select | |||
|
60 | @@formatters.map {|name, options| [options[:label], name]} | |||
|
61 | end | |||
|
62 | ||||
54 | def to_html(format, text, options = {}) |
|
63 | def to_html(format, text, options = {}) | |
55 | text = if Setting.cache_formatted_text? && text.size > 2.kilobyte && cache_store && cache_key = cache_key_for(format, text, options[:object], options[:attribute]) |
|
64 | text = if Setting.cache_formatted_text? && text.size > 2.kilobyte && cache_store && cache_key = cache_key_for(format, text, options[:object], options[:attribute]) | |
56 | # Text retrieved from the cache store may be frozen |
|
65 | # Text retrieved from the cache store may be frozen |
@@ -30,6 +30,10 class Redmine::WikiFormattingTest < ActiveSupport::TestCase | |||||
30 | assert_equal Redmine::WikiFormatting::NullFormatter::Helper, Redmine::WikiFormatting.helper_for('') |
|
30 | assert_equal Redmine::WikiFormatting::NullFormatter::Helper, Redmine::WikiFormatting.helper_for('') | |
31 | end |
|
31 | end | |
32 |
|
32 | |||
|
33 | def test_formats_for_select | |||
|
34 | assert_include ['Textile', 'textile'], Redmine::WikiFormatting.formats_for_select | |||
|
35 | end | |||
|
36 | ||||
33 | def test_should_link_urls_and_email_addresses |
|
37 | def test_should_link_urls_and_email_addresses | |
34 | raw = <<-DIFF |
|
38 | raw = <<-DIFF | |
35 | This is a sample *text* with a link: http://www.redmine.org |
|
39 | This is a sample *text* with a link: http://www.redmine.org |
General Comments 0
You need to be logged in to leave comments.
Login now