From 89abaf6c72d689784b3c3ea9c46540a20f2eff88 Mon Sep 17 00:00:00 2001 From: Marius BALTEANU Date: Sun, 15 Aug 2021 23:35:22 +0300 Subject: [PATCH] Enable task list for CommonMark Markdown formater #(35742). --- Gemfile | 1 + .../wiki_formatting/common_mark/formatter.rb | 2 ++ public/stylesheets/application.css | 7 +++++++ .../common_mark/formatter_test.rb | 21 +++++++++++++++++++ 4 files changed, 31 insertions(+) diff --git a/Gemfile b/Gemfile index cf6893626..2e23cca11 100644 --- a/Gemfile +++ b/Gemfile @@ -49,6 +49,7 @@ group :common_mark do gem "html-pipeline", "~> 2.13.2" gem "commonmarker", (Gem.ruby_version < Gem::Version.new('2.6.0') ? '0.21.0' : '0.23.1') gem "sanitize", "~> 6.0" + gem 'deckar01-task_list', '2.3.2' end # Include database gems for the adapters found in the database diff --git a/lib/redmine/wiki_formatting/common_mark/formatter.rb b/lib/redmine/wiki_formatting/common_mark/formatter.rb index 8510baf14..bffad6c92 100644 --- a/lib/redmine/wiki_formatting/common_mark/formatter.rb +++ b/lib/redmine/wiki_formatting/common_mark/formatter.rb @@ -18,6 +18,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. require 'html/pipeline' +require 'task_list/filter' module Redmine module WikiFormatting @@ -57,6 +58,7 @@ module Redmine SyntaxHighlightFilter, FixupAutoLinksFilter, ExternalLinksFilter, + TaskList::Filter ], PIPELINE_CONFIG class Formatter < Redmine::WikiFormatting::Markdown::Formatter diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 1cae2e6e0..20482bdd1 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -1311,6 +1311,13 @@ a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; } h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor, h4:hover a.wiki-anchor, h5:hover a.wiki-anchor, h6:hover a.wiki-anchor { display: inline; color: #ddd; } div.wiki img {vertical-align:middle; max-width:100%;} +div.wiki .task-list { + list-style-type: none; + padding-left: 0px; +} +div.wiki .task-list input.task-list-item-checkbox { + height: initial; +} /***** My page layout *****/ .block-receiver { 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 c05b8a0a0..ee46e5d8e 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 @@ -263,6 +263,27 @@ class Redmine::WikiFormatting::CommonMark::FormatterTest < ActionView::TestCase end end + def test_should_support_task_list + text = <<~STR + Task list: + * [ ] Task 1 + * [x] Task 2 + STR + + expected = <<~EXPECTED +

Task list:

+ + EXPECTED + + assert_equal expected.gsub(%r{[\r\n\t]}, ''), format(text).gsub(%r{[\r\n\t]}, '').rstrip + end + private def assert_section_with_hash(expected, text, index) -- 2.32.0 (Apple Git-132)