Feature #32424 » 0001-Add-setting-to-controll-the-hardbreaks-behaviour-fro.patch
app/views/settings/_general.html.erb | ||
---|---|---|
19 | 19 | |
20 | 20 |
<p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p> |
21 | 21 | |
22 |
<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p> |
|
22 |
<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %> |
|
23 |
<span id="common_mark_info" class="<%= "hidden" unless Setting.text_formatting == "common_mark" %>"> |
|
24 |
<label class="block"> |
|
25 |
<%= check_box_tag(nil, '', Redmine::Configuration['common_mark_enable_hardbreaks'] === true, disabled: true) %> |
|
26 |
Hardbreaks |
|
27 |
</label> |
|
28 |
<em class="info"> |
|
29 |
<%= l(:text_setting_config_change) %> |
|
30 |
</em> |
|
31 |
</span> |
|
32 |
</p> |
|
23 | 33 | |
24 | 34 |
<p><%= setting_check_box :cache_formatted_text %></p> |
25 | 35 | |
... | ... | |
32 | 42 | |
33 | 43 |
<%= submit_tag l(:button_save) %> |
34 | 44 |
<% end %> |
45 | ||
46 |
<%= javascript_tag do %> |
|
47 |
$('#settings_text_formatting').on('change', function(e){ |
|
48 |
const formatter = e.target.value; |
|
49 |
const parent_block = document.getElementById("common_mark_info"); |
|
50 | ||
51 |
if (formatter == "common_mark") { |
|
52 |
parent_block.classList.remove('hidden'); |
|
53 |
} else { |
|
54 |
parent_block.classList.add('hidden'); |
|
55 |
} |
|
56 |
}); |
|
57 |
<% end %> |
config/configuration.yml.example | ||
---|---|---|
224 | 224 |
#avatar_server_url: https://www.gravatar.com # default |
225 | 225 |
#avatar_server_url: https://seccdn.libravatar.org |
226 | 226 | |
227 |
# Configure CommonMark hardbreaks behaviour |
|
228 |
# |
|
229 |
# allowed values: true, false |
|
230 |
# true: treats regular line break (\n) as hardbreaks |
|
231 |
# false: switches to default common mark where two or more spaces are required |
|
232 |
# common_mark_enable_hardbreaks: true |
|
233 | ||
227 | 234 |
# specific configuration options for production environment |
228 | 235 |
# that overrides the default ones |
229 | 236 |
production: |
config/locales/en.yml | ||
---|---|---|
1284 | 1284 |
text_avatar_server_config_html: The current avatar server is <a href="%{url}">%{url}</a>. You can configure it in config/configuration.yml. |
1285 | 1285 |
text_no_subject: no subject |
1286 | 1286 |
text_allowed_queries_to_select: Public (to any users) queries only selectable |
1287 | ||
1287 |
text_setting_config_change: You can configure the behaviour in config/configuration.yml. Please restart the application after editing it. |
|
1288 | 1288 | |
1289 | 1289 |
default_role_manager: Manager |
1290 | 1290 |
default_role_developer: Developer |
lib/redmine/configuration.rb | ||
---|---|---|
24 | 24 |
@defaults = { |
25 | 25 |
'avatar_server_url' => 'https://www.gravatar.com', |
26 | 26 |
'email_delivery' => nil, |
27 |
'max_concurrent_ajax_uploads' => 2 |
|
27 |
'max_concurrent_ajax_uploads' => 2, |
|
28 |
'common_mark_enable_hardbreaks' => true |
|
28 | 29 |
} |
29 | 30 | |
30 | 31 |
@config = nil |
lib/redmine/wiki_formatting/common_mark/formatter.rb | ||
---|---|---|
43 | 43 |
# https://github.com/gjtorikian/commonmarker#render-options |
44 | 44 |
commonmarker_render_options: [ |
45 | 45 |
:UNSAFE |
46 |
].freeze,
|
|
46 |
], |
|
47 | 47 |
}.freeze |
48 | 48 | |
49 |
if Redmine::Configuration['common_mark_enable_hardbreaks'] === true |
|
50 |
PIPELINE_CONFIG[:commonmarker_render_options].push(:HARDBREAKS) |
|
51 |
end |
|
52 |
PIPELINE_CONFIG[:commonmarker_render_options].freeze |
|
53 | ||
49 | 54 |
MarkdownPipeline = HTML::Pipeline.new [ |
50 | 55 |
MarkdownFilter, |
51 | 56 |
SanitizationFilter, |