Sha256: 9bb0691863f081cbaa8e3f8bf6cc0b553bedd92e3660d4a5f0b8fadf3e278986

Contents?: true

Size: 1.45 KB

Versions: 10

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

module DocTemplate
  module Tags
    class DefTag < BaseTag
      include ERB::Util

      STYLE_RE = /<span (style=[^.>]*)>[^<]*$/i.freeze
      TAG_NAME = 'def'
      TAG_SEPARATOR = '[separator]'
      TEMPLATES = {
        default: 'def.html.erb',
        gdoc: 'gdoc/def.html.erb'
      }.freeze

      def parse(node, opts = {})
        # Need to extract the Tag and preserves all the styling inside it
        node_html = node.inner_html
        start_pos = node_html.index '['
        end_pos = node_html.rindex ']'
        needle = node_html[start_pos..end_pos]

        preserved_style = STYLE_RE.match(needle).try(:[], 1)
        subject = (opts[:metadata].try(:[], 'subject').presence || 'ela').downcase
        definition, description = opts[:value].split(';').map(&:strip)

        data = node_html.sub(needle, TAG_SEPARATOR).split(TAG_SEPARATOR, 2).map(&:squish)

        params = {
          append: data[1],
          definition: definition,
          description: description,
          prepend: data[0],
          preserved_style: preserved_style,
          subject: subject
        }

        @content = "<p>#{parse_template(params, template_name(opts))}</p>"

        if node.name == 'li'
          @result = node.replace "<li class='#{node['class']}'>#{placeholder}</li>"
        else
          replace_tag node
        end
        self
      end
    end
  end

  Template.register_tag(Tags::DefTag::TAG_NAME, Tags::DefTag)
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
lcms-engine-0.5.5 lib/doc_template/tags/def_tag.rb
lcms-engine-0.5.4 lib/doc_template/tags/def_tag.rb
lcms-engine-0.5.3 lib/doc_template/tags/def_tag.rb
lcms-engine-0.5.2 lib/doc_template/tags/def_tag.rb
lcms-engine-0.5.1 lib/doc_template/tags/def_tag.rb
lcms-engine-0.5.0 lib/doc_template/tags/def_tag.rb
lcms-engine-0.4.2 lib/doc_template/tags/def_tag.rb
lcms-engine-0.4.1 lib/doc_template/tags/def_tag.rb
lcms-engine-0.4.0 lib/doc_template/tags/def_tag.rb
lcms-engine-0.3.1 lib/doc_template/tags/def_tag.rb