lib/rabbit/parser/rd/ext/block-verbatim.rb in rabbit-3.0.0 vs lib/rabbit/parser/rd/ext/block-verbatim.rb in rabbit-3.0.1
- old
+ new
@@ -1,6 +1,6 @@
-# Copyright (C) 2004-2017 Kouhei Sutou <kou@cozmixng.org>
+# Copyright (C) 2004-2021 Kouhei Sutou <kou@cozmixng.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
@@ -24,10 +24,11 @@
require "rabbit/parser/rd/ext/video"
require "rabbit/parser/ext/enscript"
require "rabbit/parser/ext/tex"
require "rabbit/parser/ext/aafigure"
require "rabbit/parser/ext/blockdiag"
+require "rabbit/parser/ext/charty"
require "rabbit/parser/ext/coderay"
require "rabbit/parser/ext/emacs"
require "rabbit/parser/ext/rouge"
module Rabbit
@@ -84,11 +85,11 @@
make_video(visitor, prop["src"], prop)
end
def ext_block_verb_enscript(label, source, content, visitor)
return nil unless /\Aenscript (\w+)\z/i =~ label
- lang = $1.downcase.untaint
+ lang = $1.downcase
src, prop = parse_source(source)
logger = visitor.logger
result = nil
@@ -127,22 +128,22 @@
end
end
def ext_block_verb_coderay(label, source, content, visitor)
return nil unless /\Acoderay (\w+)\z/i =~ label
- lang = $1.downcase.untaint
+ lang = $1.downcase
src, prop = parse_source(source)
logger = visitor.logger
result = Parser::Ext::CodeRay.highlight(lang, src, logger)
result || default_ext_block_verbatim(label, src, src, visitor)
end
def ext_block_verb_emacs(label, source, content, visitor)
return nil unless /\Aemacs(?:\s+(.+))?\z/i =~ label
- mode_line = $1.untaint
+ mode_line = $1
src, prop = parse_source(source)
logger = visitor.logger
result = Parser::Ext::Emacs.highlight(src, logger, mode_line)
@@ -191,16 +192,23 @@
PreformattedBlock.new(PreformattedText.new(text))
end
def ext_block_verb_rouge(label, source, content, visitor)
return nil unless /\Arouge (\w+)\z/i =~ label
- lang = $1.downcase.untaint
+ lang = $1.downcase
src, prop = parse_source(source)
logger = visitor.logger
result = Parser::Ext::Rouge.highlight(lang, src, logger)
result || default_ext_block_verbatim(label, src, src, visitor)
+ end
+
+ def ext_block_verb_charty(label, source, content, visitor)
+ return nil unless /\Acharty\z/i =~ label
+ make_image_from_file(source, visitor) do |src_file_path, prop|
+ Parser::Ext::Charty.make_image(src_file_path, prop, visitor)
+ end
end
end
end
end
end