New upstream version 13.8.6+ds1
This commit is contained in:
parent
81ade28521
commit
6c59edc6d3
5 changed files with 72 additions and 2 deletions
|
@ -2,6 +2,13 @@
|
||||||
documentation](doc/development/changelog.md) for instructions on adding your own
|
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||||
entry.
|
entry.
|
||||||
|
|
||||||
|
## 13.8.6 (2021-03-17)
|
||||||
|
|
||||||
|
### Security (1 change)
|
||||||
|
|
||||||
|
- Patch Kramdown syntax highlighter gem.
|
||||||
|
|
||||||
|
|
||||||
## 13.8.5 (2021-03-04)
|
## 13.8.5 (2021-03-04)
|
||||||
|
|
||||||
### Security (6 changes)
|
### Security (6 changes)
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
13.8.5
|
13.8.6
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
||||||
13.8.5
|
13.8.6
|
25
config/initializers/kramdown_patch.rb
Normal file
25
config/initializers/kramdown_patch.rb
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
#
|
||||||
|
# This pulls in https://github.com/gettalong/kramdown/pull/708 for kramdown v2.3.0.
|
||||||
|
# Remove this file when that pull request is merged and released.
|
||||||
|
require 'kramdown/converter'
|
||||||
|
require 'kramdown/converter/syntax_highlighter/rouge'
|
||||||
|
|
||||||
|
module Kramdown::Converter::SyntaxHighlighter
|
||||||
|
module Rouge
|
||||||
|
def self.formatter_class(opts = {})
|
||||||
|
case formatter = opts[:formatter]
|
||||||
|
when Class
|
||||||
|
formatter
|
||||||
|
when /\A[[:upper:]][[:alnum:]_]*\z/
|
||||||
|
::Rouge::Formatters.const_get(formatter, false)
|
||||||
|
else
|
||||||
|
# Available in Rouge 2.0 or later
|
||||||
|
::Rouge::Formatters::HTMLLegacy
|
||||||
|
end
|
||||||
|
rescue NameError
|
||||||
|
# Fallback to Rouge 1.x
|
||||||
|
::Rouge::Formatters::HTML
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
38
spec/initializers/kramdown_patch_spec.rb
Normal file
38
spec/initializers/kramdown_patch_spec.rb
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
RSpec.describe 'Kramdown patch for syntax highlighting formatters' do
|
||||||
|
subject { Kramdown::Document.new(options + "\n" + code).to_html }
|
||||||
|
|
||||||
|
let(:code) do
|
||||||
|
<<-RUBY
|
||||||
|
~~~ ruby
|
||||||
|
def what?
|
||||||
|
42
|
||||||
|
end
|
||||||
|
~~~
|
||||||
|
RUBY
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with invalid formatter' do
|
||||||
|
let(:options) { %({::options auto_ids="false" footnote_nr="5" syntax_highlighter="rouge" syntax_highlighter_opts="{formatter: CSV, line_numbers: true\\}" /}) }
|
||||||
|
|
||||||
|
it 'falls back to standard HTML and disallows CSV' do
|
||||||
|
expect(CSV).not_to receive(:new)
|
||||||
|
expect(::Rouge::Formatters::HTML).to receive(:new).and_call_original
|
||||||
|
|
||||||
|
expect(subject).to be_present
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with valid formatter' do
|
||||||
|
let(:options) { %({::options auto_ids="false" footnote_nr="5" syntax_highlighter="rouge" syntax_highlighter_opts="{formatter: HTMLLegacy\\}" /}) }
|
||||||
|
|
||||||
|
it 'allows formatter' do
|
||||||
|
expect(::Rouge::Formatters::HTMLLegacy).to receive(:new).and_call_original
|
||||||
|
|
||||||
|
expect(subject).to be_present
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue