diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2021-10-03 05:17:18 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2021-10-03 05:17:18 +0000 |
commit | 09618a274bb1f7a1353ff1a8ad4d90fa3efef74c (patch) | |
tree | 92baf6ad80adc3299e17b4cdc88af1513a1eab91 | |
parent | 01a8167a138a7598a4716e9c04b9d77a50de7491 (diff) | |
download | redmine-09618a274bb1f7a1353ff1a8ad4d90fa3efef74c.tar.gz redmine-09618a274bb1f7a1353ff1a8ad4d90fa3efef74c.zip |
Make hardbreaks behaviour configurable in config/configuration.yml (#32424).
git-svn-id: http://svn.redmine.org/redmine/trunk@21227 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/views/settings/_general.html.erb | 25 | ||||
-rw-r--r-- | config/configuration.yml.example | 7 | ||||
-rw-r--r-- | config/locales/en.yml | 2 | ||||
-rw-r--r-- | lib/redmine/configuration.rb | 3 | ||||
-rw-r--r-- | lib/redmine/wiki_formatting/common_mark/formatter.rb | 8 |
5 files changed, 40 insertions, 5 deletions
diff --git a/app/views/settings/_general.html.erb b/app/views/settings/_general.html.erb index 23abdb3f5..b8d82486a 100644 --- a/app/views/settings/_general.html.erb +++ b/app/views/settings/_general.html.erb @@ -19,7 +19,17 @@ <p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p> -<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p> +<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %> + <span id="common_mark_info" class="<%= "hidden" unless Setting.text_formatting == "common_mark" %>"> + <label class="block"> + <%= check_box_tag(nil, '', Redmine::Configuration['common_mark_enable_hardbreaks'] === true, disabled: true) %> + Hardbreaks + </label> + <em class="info"> + <%= l(:text_setting_config_change) %> + </em> + </span> +</p> <p><%= setting_check_box :cache_formatted_text %></p> @@ -32,3 +42,16 @@ <%= submit_tag l(:button_save) %> <% end %> + +<%= javascript_tag do %> + $('#settings_text_formatting').on('change', function(e){ + const formatter = e.target.value; + const parent_block = document.getElementById("common_mark_info"); + + if (formatter == "common_mark") { + parent_block.classList.remove('hidden'); + } else { + parent_block.classList.add('hidden'); + } + }); +<% end %> diff --git a/config/configuration.yml.example b/config/configuration.yml.example index 8e350228e..e1dbb19c2 100644 --- a/config/configuration.yml.example +++ b/config/configuration.yml.example @@ -224,6 +224,13 @@ default: #avatar_server_url: https://www.gravatar.com # default #avatar_server_url: https://seccdn.libravatar.org + # Configure CommonMark hardbreaks behaviour + # + # allowed values: true, false + # true: treats regular line break (\n) as hardbreaks + # false: switches to default common mark where two or more spaces are required + # common_mark_enable_hardbreaks: true + # specific configuration options for production environment # that overrides the default ones production: diff --git a/config/locales/en.yml b/config/locales/en.yml index 952138bf4..8fd84ff13 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1287,7 +1287,7 @@ en: text_avatar_server_config_html: The current avatar server is <a href="%{url}">%{url}</a>. You can configure it in config/configuration.yml. text_no_subject: no subject text_allowed_queries_to_select: Public (to any users) queries only selectable - + text_setting_config_change: You can configure the behaviour in config/configuration.yml. Please restart the application after editing it. default_role_manager: Manager default_role_developer: Developer diff --git a/lib/redmine/configuration.rb b/lib/redmine/configuration.rb index 883dc8497..aff2651bb 100644 --- a/lib/redmine/configuration.rb +++ b/lib/redmine/configuration.rb @@ -24,7 +24,8 @@ module Redmine @defaults = { 'avatar_server_url' => 'https://www.gravatar.com', 'email_delivery' => nil, - 'max_concurrent_ajax_uploads' => 2 + 'max_concurrent_ajax_uploads' => 2, + 'common_mark_enable_hardbreaks' => true } @config = nil diff --git a/lib/redmine/wiki_formatting/common_mark/formatter.rb b/lib/redmine/wiki_formatting/common_mark/formatter.rb index 6a9c95c8e..3c2f3ad09 100644 --- a/lib/redmine/wiki_formatting/common_mark/formatter.rb +++ b/lib/redmine/wiki_formatting/common_mark/formatter.rb @@ -42,11 +42,15 @@ module Redmine # https://github.com/gjtorikian/commonmarker#render-options commonmarker_render_options: [ - :HARDBREAKS, :UNSAFE - ].freeze, + ], }.freeze + if Redmine::Configuration['common_mark_enable_hardbreaks'] === true + PIPELINE_CONFIG[:commonmarker_render_options].push(:HARDBREAKS) + end + PIPELINE_CONFIG[:commonmarker_render_options].freeze + MarkdownPipeline = HTML::Pipeline.new [ MarkdownFilter, SanitizationFilter, |