From b56b0d7bbbfff674501508d78ee37fcbbbdcd44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marius=20B=C4=82LTEANU?= Date: Wed, 28 Aug 2024 00:43:12 +0300 Subject: [PATCH] Updates commonmark gem version to 1.1.5 which switches from libcmark-gfm to comrak/Rust. diff --git a/Gemfile b/Gemfile index 09aae4c63..c12c545fa 100644 --- a/Gemfile +++ b/Gemfile @@ -51,7 +51,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 63961614d..b2e5eb8e1 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -30,7 +30,7 @@ rescue LoadError # Redcarpet 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/preparation.rb b/lib/redmine/preparation.rb index ab6cbdff6..ffe2ff423 100644 --- a/lib/redmine/preparation.rb +++ b/lib/redmine/preparation.rb @@ -396,7 +396,7 @@ module Redmine WikiFormatting.map do |format| format.register :textile format.register :markdown, label: 'Markdown (deprecated)' if Object.const_defined?(:Redcarpet) - if Object.const_defined?(:CommonMarker) + if Object.const_defined?(:Commonmarker) format.register :common_mark, label: 'CommonMark Markdown (GitHub Flavored)' end 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.3 (Apple Git-146)