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