diff options
author | Marius Balteanu <marius.balteanu@zitec.com> | 2022-01-22 09:24:43 +0000 |
---|---|---|
committer | Marius Balteanu <marius.balteanu@zitec.com> | 2022-01-22 09:24:43 +0000 |
commit | 380a3b0345b236db9f9bc05bd27b193be89d11cc (patch) | |
tree | af433199b34b8326446f92a49c5b15bd3330b3f2 | |
parent | 8c147ca2b1cee4e707035a5d526b11c9a91e8bcc (diff) | |
download | redmine-380a3b0345b236db9f9bc05bd27b193be89d11cc.tar.gz redmine-380a3b0345b236db9f9bc05bd27b193be89d11cc.zip |
Enable task list items for Common Mark text formatting (#35742).
git-svn-id: http://svn.redmine.org/redmine/trunk@21383 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | lib/redmine/wiki_formatting/common_mark/formatter.rb | 2 | ||||
-rw-r--r-- | public/images/bt_tl.png | bin | 0 -> 479 bytes | |||
-rw-r--r-- | public/javascripts/jstoolbar/common_mark.js | 14 | ||||
-rw-r--r-- | public/stylesheets/application.css | 7 | ||||
-rw-r--r-- | public/stylesheets/jstoolbar.css | 3 | ||||
-rw-r--r-- | test/unit/lib/redmine/wiki_formatting/common_mark/formatter_test.rb | 21 |
7 files changed, 48 insertions, 0 deletions
@@ -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/images/bt_tl.png b/public/images/bt_tl.png Binary files differnew file mode 100644 index 000000000..4bf58d1de --- /dev/null +++ b/public/images/bt_tl.png diff --git a/public/javascripts/jstoolbar/common_mark.js b/public/javascripts/jstoolbar/common_mark.js index a1b1fd599..8dae000df 100644 --- a/public/javascripts/jstoolbar/common_mark.js +++ b/public/javascripts/jstoolbar/common_mark.js @@ -132,6 +132,20 @@ jsToolBar.prototype.elements.ol = { } } +// tl +jsToolBar.prototype.elements.tl = { + type: 'button', + title: 'Task list', + fn: { + wiki: function() { + this.encloseLineSelection('','',function(str) { + str = str.replace(/\r/g,''); + return str.replace(/(\n|^)[*-]?\s*/g,"$1* [ ] "); + }); + } + } +} + // spacer jsToolBar.prototype.elements.space3 = {type: 'space'} diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index eddbd4b31..0ca4f48db 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -1314,6 +1314,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/public/stylesheets/jstoolbar.css b/public/stylesheets/jstoolbar.css index 5672e694c..911ae6678 100644 --- a/public/stylesheets/jstoolbar.css +++ b/public/stylesheets/jstoolbar.css @@ -128,6 +128,9 @@ .jstb_ol { background-image: url(../images/jstoolbar/bt_ol.png); } +.jstb_tl { + background-image: url(../images/jstoolbar/bt_tl.png); +} .jstb_bq { background-image: url(../images/jstoolbar/bt_bq.png); } 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 + <p>Task list:</p> + <ul class="task-list"> + <li class="task-list-item"> + <input type="checkbox" class="task-list-item-checkbox" disabled> Task 1 + </li> + <li class="task-list-item"> + <input type="checkbox" class="task-list-item-checkbox" checked disabled> Task 2</li> + </ul> + 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) |