# Optional CommonMark support, not for JRuby
group :common_mark do
- gem "commonmarker", '~> 1.1.0'
+ gem "commonmarker", '~> 0.23.8'
gem 'deckar01-task_list', '2.3.2'
end
# 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
WikiFormatting.map do |format|
format.register :textile
- if Object.const_defined?(:Commonmarker)
+ if Object.const_defined?(:CommonMarker)
format.register :common_mark, label: 'CommonMark Markdown (GitHub Flavored)'
end
end
# configuration of the rendering pipeline
PIPELINE_CONFIG = {
# https://github.com/gjtorikian/commonmarker#extension-options
- commonmarker_extensions: {
- table: true,
- strikethrough: true,
- tagfilter: true,
- autolink: true,
- footnotes: true,
- }.freeze,
+ commonmarker_extensions: [
+ :table,
+ :strikethrough,
+ :tagfilter,
+ :autolink
+ ].freeze,
# https://github.com/gjtorikian/commonmarker#parse-options
- commonmarker_parse_options: {
- }.freeze,
+ commonmarker_parse_options: [
+ :FOOTNOTES,
+ :STRIKETHROUGH_DOUBLE_TILDE,
+ :UNSAFE,
+ :VALIDATE_UTF8
+ ].freeze,
# https://github.com/gjtorikian/commonmarker#render-options
- commonmarker_render_options: {
- unsafe: true,
- hardbreaks: Redmine::Configuration['common_mark_enable_hardbreaks'] == true ? true : false,
- }.freeze,
- commonmarker_plugins: {
- syntax_highlighter: nil
- }.freeze,
+ commonmarker_render_options: [
+ :UNSAFE
+ ],
}.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,
end
def call
- html = Commonmarker.to_html(@text, options: {
- extension: extensions,
- render: render_options,
- parse: parse_options
- }, plugins: plugins )
-
+ doc = CommonMarker.render_doc(@text, parse_options, extensions)
+ html = doc.to_html render_options, extensions
html.rstrip!
html
end
private
def extensions
- context.fetch :commonmarker_extensions, {}
+ context.fetch :commonmarker_extensions, []
end
def parse_options
- context.fetch :commonmarker_parse_options, {}
+ context.fetch :commonmarker_parse_options, :DEFAULT
end
def render_options
- context.fetch :commonmarker_render_options, {}
- end
-
- def plugins
- context.fetch :commonmarker_plugins, {}
+ context.fetch :commonmarker_render_options, :DEFAULT
end
end
end
require_relative '../../../../../test_helper'
class Redmine::WikiFormatting::CommonMark::ApplicationHelperTest < Redmine::HelperTest
- if Object.const_defined?(:Commonmarker)
+ if Object.const_defined?(:CommonMarker)
include ERB::Util
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
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
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
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
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
# 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