Files
linux-kernel-module-cheat/asciidoctor/link-target-up.rb
2019-07-07 00:00:01 +00:00

32 lines
674 B
Ruby

#!/usr/bin/env ruby
# https://cirosantilli.com/linux-kernel-module-cheat#asciidoctor-link-target-up-rb
require 'asciidoctor'
require 'asciidoctor/extensions'
class LinkTargetUp < Asciidoctor::Extensions::InlineMacroProcessor
use_dsl
named :link
ExternalLinkRegex = /^https?:\/\//
def target_base
'..'
end
def process parent, target, attrs
text = attrs[1]
if text.nil? || text.empty?
text = target
end
if !ExternalLinkRegex.match?(target)
target = File.join(target_base, target)
end
create_anchor parent, text, type: :link, target: target
end
end
Asciidoctor::Extensions.register do
inline_macro LinkTargetUp
end