wireshark/docbook/asciidoctor-macros/cve_idlink-inline-macro/extension.rb

32 lines
781 B
Ruby

# SPDX-License-Identifier: MIT
require 'asciidoctor/extensions' unless RUBY_ENGINE == 'opal'
include ::Asciidoctor
# An inline macro that generates links to related man pages.
#
# Usage
#
# cve_idlink:<cve-number>[]
#
class CVEIdLinkInlineMacro < Extensions::InlineMacroProcessor
use_dsl
named :cve_idlink
def process parent, target, attrs
cvename = "CVE-#{target}"
cvenum = target
suffix = ''
target = %(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-{cvenum})
if parent.document.basebackend? 'html'
parent.document.register :links, target
%(#{(create_anchor parent, cvename, type: :link, target: target).render})
elsif parent.document.backend == 'manpage'
%(\\fB#{cvename})
else
%(#{cvename})
end
end
end