From a5d263dba8c7022c4bd737228e43526f691836c6 Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Mon, 11 Nov 2024 18:28:41 +0000 Subject: [PATCH] Updates commonmark gem version to 1.1.5 which switches from libcmark-gfm to comrak/Rust (#40197). git-svn-id: https://svn.redmine.org/redmine/trunk@23247 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- Gemfile | 2 +- lib/redmine.rb | 2 +- .../wiki_formatting/common_mark/formatter.rb | 29 +++++++++---------- .../common_mark/markdown_filter.rb | 14 +++++---- .../common_mark/application_helper_test.rb | 2 +- .../common_mark/external_links_filter_test.rb | 2 +- .../fixup_auto_links_filter_test.rb | 2 +- .../common_mark/formatter_test.rb | 2 +- .../common_mark/markdown_filter_test.rb | 2 +- .../common_mark/sanitization_filter_test.rb | 2 +- .../syntax_highlight_filter_test.rb | 2 +- 11 files changed, 31 insertions(+), 30 deletions(-) diff --git a/Gemfile b/Gemfile index 1737bc0af..1afed558d 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ end # Optional CommonMark support, not for JRuby group :common_mark do - gem "commonmarker", '~> 0.23.8' + gem "commonmarker", '~> 1.1.0' gem 'deckar01-task_list', '2.3.2' end diff --git a/lib/redmine.rb b/lib/redmine.rb index 2edfa55e9..95b3b7f3f 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -25,7 +25,7 @@ rescue LoadError # MiniMagick is not available end begin - require 'commonmarker' unless Object.const_defined?(:CommonMarker) + require 'commonmarker' unless Object.const_defined?(:Commonmarker) rescue LoadError # CommonMarker is not available end diff --git a/lib/redmine/wiki_formatting/common_mark/formatter.rb b/lib/redmine/wiki_formatting/common_mark/formatter.rb index 42cae4f3a..4a0a7ec53 100644 --- a/lib/redmine/wiki_formatting/common_mark/formatter.rb +++ b/lib/redmine/wiki_formatting/common_mark/formatter.rb @@ -26,29 +26,26 @@ module Redmine # configuration of the rendering pipeline PIPELINE_CONFIG = { # https://github.com/gjtorikian/commonmarker#extension-options - commonmarker_extensions: [ - :table, - :strikethrough, - :tagfilter, - :autolink - ].freeze, + commonmarker_extensions: { + table: true, + strikethrough: true, + tagfilter: true, + autolink: true, + footnotes: true, + }.freeze, # https://github.com/gjtorikian/commonmarker#parse-options - commonmarker_parse_options: [ - :FOOTNOTES, - :STRIKETHROUGH_DOUBLE_TILDE, - :UNSAFE, - :VALIDATE_UTF8 - ].freeze, + commonmarker_parse_options: { + }.freeze, # https://github.com/gjtorikian/commonmarker#render-options - commonmarker_render_options: [ - :UNSAFE - ], + commonmarker_render_options: { + unsafe: true + }, }.freeze if Redmine::Configuration['common_mark_enable_hardbreaks'] == true - PIPELINE_CONFIG[:commonmarker_render_options].push(:HARDBREAKS) + PIPELINE_CONFIG[:commonmarker_render_options].merge!({hardbreaks: true}) end PIPELINE_CONFIG[:commonmarker_render_options].freeze diff --git a/lib/redmine/wiki_formatting/common_mark/markdown_filter.rb b/lib/redmine/wiki_formatting/common_mark/markdown_filter.rb index 916c8883c..abde25443 100644 --- a/lib/redmine/wiki_formatting/common_mark/markdown_filter.rb +++ b/lib/redmine/wiki_formatting/common_mark/markdown_filter.rb @@ -32,8 +32,12 @@ module Redmine end def call - doc = CommonMarker.render_doc(@text, parse_options, extensions) - html = doc.to_html render_options, extensions + html = Commonmarker.to_html(@text, options: { + extension: extensions, + render: render_options, + parse: parse_options + }) + html.rstrip! html end @@ -41,15 +45,15 @@ module Redmine private def extensions - context.fetch :commonmarker_extensions, [] + context.fetch :commonmarker_extensions, {} end def parse_options - context.fetch :commonmarker_parse_options, :DEFAULT + context.fetch :commonmarker_parse_options, {} end def render_options - context.fetch :commonmarker_render_options, :DEFAULT + context.fetch :commonmarker_render_options, {} end end end diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/application_helper_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/application_helper_test.rb index 7b5915f7d..46057f132 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/application_helper_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/application_helper_test.rb @@ -20,7 +20,7 @@ require_relative '../../../../../test_helper' class Redmine::WikiFormatting::CommonMark::ApplicationHelperTest < Redmine::HelperTest - if Object.const_defined?(:CommonMarker) + if Object.const_defined?(:Commonmarker) include ERB::Util diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/external_links_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/external_links_filter_test.rb index 179ff9bbf..cde6381b8 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/external_links_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/external_links_filter_test.rb @@ -19,7 +19,7 @@ require_relative '../../../../../test_helper' -if Object.const_defined?(:CommonMarker) +if Object.const_defined?(:Commonmarker) require 'redmine/wiki_formatting/common_mark/external_links_filter' class Redmine::WikiFormatting::CommonMark::ExternalLinksFilterTest < ActiveSupport::TestCase diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/fixup_auto_links_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/fixup_auto_links_filter_test.rb index 2ed04df8f..1b093d718 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/fixup_auto_links_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/fixup_auto_links_filter_test.rb @@ -19,7 +19,7 @@ require_relative '../../../../../test_helper' -if Object.const_defined?(:CommonMarker) +if Object.const_defined?(:Commonmarker) require 'redmine/wiki_formatting/common_mark/fixup_auto_links_filter' class Redmine::WikiFormatting::CommonMark::FixupAutoLinksFilterTest < ActiveSupport::TestCase diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb index f7ffb3e97..5214a1e00 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb @@ -20,7 +20,7 @@ require_relative '../../../../../test_helper' class Redmine::WikiFormatting::CommonMark::FormatterTest < ActionView::TestCase - if Object.const_defined?(:CommonMarker) + if Object.const_defined?(:Commonmarker) def setup @formatter = Redmine::WikiFormatting::CommonMark::Formatter diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/markdown_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/markdown_filter_test.rb index 374705423..d5e416d2c 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/markdown_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/markdown_filter_test.rb @@ -19,7 +19,7 @@ require_relative '../../../../../test_helper' -if Object.const_defined?(:CommonMarker) +if Object.const_defined?(:Commonmarker) require 'redmine/wiki_formatting/common_mark/markdown_filter' class Redmine::WikiFormatting::CommonMark::MarkdownFilterTest < ActiveSupport::TestCase diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb index d3956e802..4c0282f2d 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/sanitization_filter_test.rb @@ -19,7 +19,7 @@ require_relative '../../../../../test_helper' -if Object.const_defined?(:CommonMarker) +if Object.const_defined?(:Commonmarker) require 'redmine/wiki_formatting/common_mark/sanitization_filter' class Redmine::WikiFormatting::CommonMark::SanitizationFilterTest < ActiveSupport::TestCase diff --git a/test/unit/lib/redmine/wiki_formatting/common_mark/syntax_highlight_filter_test.rb b/test/unit/lib/redmine/wiki_formatting/common_mark/syntax_highlight_filter_test.rb index 630d9a273..70cc95301 100644 --- a/test/unit/lib/redmine/wiki_formatting/common_mark/syntax_highlight_filter_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/common_mark/syntax_highlight_filter_test.rb @@ -18,7 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. require_relative '../../../../../test_helper' -if Object.const_defined?(:CommonMarker) +if Object.const_defined?(:Commonmarker) require 'redmine/wiki_formatting/common_mark/syntax_highlight_filter' class Redmine::WikiFormatting::CommonMark::SyntaxHighlightFilterTest < ActiveSupport::TestCase -- 2.39.5