Feature #32424 » configuration-setting-for-hardbreaks.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 |
<em class="info"> |
|
25 |
<strong>Hardbreaks:</strong> <%= Redmine::Configuration['common_mark_enable_hardbreaks'] === true ? l(:label_enabled) : l(:label_disabled) %>. |
|
26 |
</em> |
|
27 |
<em class="info"> |
|
28 |
You can configure the behaviour in config/configuration.yml. Please restart the application after editing it. |
|
29 |
</em> |
|
30 |
</span> |
|
31 |
</p> |
|
23 | 32 | |
24 | 33 |
<p><%= setting_check_box :cache_formatted_text %></p> |
25 | 34 | |
... | ... | |
32 | 41 | |
33 | 42 |
<%= submit_tag l(:button_save) %> |
34 | 43 |
<% end %> |
44 | ||
45 |
<%= javascript_tag do %> |
|
46 |
$('#settings_text_formatting').on('change', function(e){ |
|
47 |
const formatter = e.target.value; |
|
48 |
const parent_block = document.getElementById("common_mark_info"); |
|
49 | ||
50 |
if (formatter == "common_mark") { |
|
51 |
parent_block.classList.remove('hidden'); |
|
52 |
} else { |
|
53 |
parent_block.classList.add('hidden'); |
|
54 |
} |
|
55 |
}); |
|
56 |
<% 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 | ||
---|---|---|
893 | 893 |
label_copied_to: Copied to |
894 | 894 |
label_copied_from: Copied from |
895 | 895 |
label_stay_logged_in: Stay logged in |
896 |
label_enabled: enabled |
|
896 | 897 |
label_disabled: disabled |
897 | 898 |
label_optional: optional |
898 | 899 |
label_show_completed_versions: Show completed versions |
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, |