resources/asciidoctor/lib/docbook_compat/extra_docinfo.rb (48 lines of code) (raw):

# frozen_string_literal: true module DocbookCompat ## # Adds extra meta stuff to the <head> and header module ExtraDocinfo def docinfo(location = :head, suffix = nil) case location when :head [super, meta_head].compact.join "\n" else super end end private def meta_head [ extra_elastic_head, extra_docbook_compat_head, ].compact.join "\n" end def extra_elastic_head [ # Elastic meta elastic_compat_meta('product_version', attributes['dc.identifier']), elastic_compat_meta('product_name', product_name), elastic_compat_meta('website_area', 'documentation'), ] end def extra_docbook_compat_head [ # Legacy docbook meta docbook_compat_meta('DC.type', attributes['dc.type']), docbook_compat_meta('DC.subject', attributes['dc.subject']), docbook_compat_meta('DC.identifier', attributes['dc.identifier']), if attributes['noindex'] docbook_compat_meta('robots', 'noindex,nofollow') end, ].compact.join "\n" end def docbook_compat_meta(name, content) %(<meta name="#{name}" content="#{content}"/>) end def elastic_compat_meta(name, content) %(<meta class="elastic" name="#{name}" content="#{content}"/>) end def product_name attributes['meta-product-name'] || attributes['dc.subject'] end def page_title attributes['docdir'].scan(%r{(?<=en\/).*}i)[0].to_s end end end