lib/jekyll-diagrams/block.rb in jekyll-diagrams-0.9.2 vs lib/jekyll-diagrams/block.rb in jekyll-diagrams-0.9.3

- old
+ new

@@ -1,26 +1,51 @@ # frozen_string_literal: true module Jekyll module Diagrams class Block < Liquid::Block - include Util + include Rendering def render(context) - svg = render_svg(super.to_s, read_config(context)) - wrap_class(svg) + config = Diagrams.config_for(context, block_name) + + output = render_svg(super.to_s, config) + wrap_class(output) + rescue StandardError => e + error_mode = Diagrams.error_mode(context) + + output = handle_error(e, error_mode) + wrap_class(output) end - def render_svg(_, _) + private + + def render_svg(_code, _config) '' end - def read_config(context) - config_for(context, block_name) + def wrap_class(content) + <<~CONTENT + <div class='jekyll-diagrams diagrams #{block_name}'> + #{content} + </div>" + CONTENT end - def wrap_class(content) - "<div class='jekyll-diagrams diagrams #{block_name}'>#{content}</div>" + def handle_error(error, mode) + topic = 'Jekyll Diagrams:' + msg = error.message + + case mode + when :lax + Jekyll.logger.info topic, msg + '' + when :warn + Jekyll.logger.warn topic, msg + msg + when :strict + Jekyll.logger.abort_with topic, msg + end end end end end