# File lib/kramdown/parser/kramdown/extensions.rb, line 100
      def handle_extension(name, opts, body, type)
        case name
        when 'comment'
          @tree.children << Element.new(:comment, body, nil, :category => type) if body.kind_of?(String)
          true
        when 'nomarkdown'
          @tree.children << Element.new(:raw, body, nil, :category => type, :type => opts['type'].to_s.split(/\s+/)) if body.kind_of?(String)
          true
        when 'options'
          opts.select do |k,v|
            k = k.to_sym
            if Kramdown::Options.defined?(k)
              begin
                val = Kramdown::Options.parse(k, v)
                @options[k] = val
                (@root.options[:options] ||= {})[k] = val
              rescue
              end
              false
            else
              true
            end
          end.each do |k,v|
            warning("Unknown kramdown option '#{k}'")
          end
          @tree.children << Element.new(:eob, :extension) if type == :block
          true
        else
          false
        end
      end