Module: Asciidoctor::Html::Figure
- Included in:
- Converter
- Defined in:
- lib/asciidoctor/html/figure.rb
Overview
Helper functions for the image/figure conversion. Mixed into the Converter class.
Instance Method Summary collapse
- #convert_figlist(node) ⇒ Object
- #display_figure(node) ⇒ Object
- #display_image(node, target, title_attr: false) ⇒ Object
- #image_attrs(node, title_attr: false) ⇒ Object
Instance Method Details
#convert_figlist(node) ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/asciidoctor/html/figure.rb', line 32 def convert_figlist(node) result = node.items.map do |item| %(<li#{Utils.id_class_attr_str item.id, item.role}><figure>\n#{item.text}\n</figure></li>) end content = Utils.wrap_id_classes result.join("\n"), nil, "figlist", :ol title = %(<div class="figlist-title">#{Utils.display_title_prefix(node)}#{node.title}</div>) classes = ["figlist-wrapper", node.role].compact.join(" ") Utils.wrap_id_classes %(#{content}#{title}), node.id, classes end |
#display_figure(node) ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/asciidoctor/html/figure.rb', line 24 def display_figure(node) target = node.attr "target" title = node.title? ? node.title : "" image = display_image node, target caption = %( <figcaption>#{Utils.display_title_prefix node}#{title}</figcaption>) %(<figure>\n #{image}\n#{caption}\n</figure>) end |
#display_image(node, target, title_attr: false) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/asciidoctor/html/figure.rb', line 8 def display_image(node, target, title_attr: false) return read_svg_contents(node, target) if node.option?("inline") attrs = image_attrs(node, title_attr:) %(<img src="#{node.image_uri target}" #{attrs}#{@void_element_slash}>) end |
#image_attrs(node, title_attr: false) ⇒ Object
15 16 17 18 19 20 21 22 |
# File 'lib/asciidoctor/html/figure.rb', line 15 def image_attrs(node, title_attr: false) width = node.attr?("width") ? %( width="#{node.attr "width"}") : "" height = node.attr?("height") ? %( height="#{node.attr "height"}") : "" title = encode_attribute_value node.attr("title") if node.attr?("title") && title_attr title = title ? %( data-bs-toggle="tooltip" data-bs-title="#{title}") : "" alt = encode_attribute_value node.alt %(alt="#{alt}"#{width}#{height}#{title}) end |