Sha256: 3b60894d37ce2385746e4016d48d0f5d25d153f754f68e57aa7d146e167c124f
Contents?: true
Size: 1.18 KB
Versions: 21
Compression:
Stored size: 1.18 KB
Contents
module Nexmo module OAS module Renderer module Filters class Modal < Banzai::Filter def call(input) modals = [] input.gsub!(/@\[(.+?)\]\((.+?)\)/) do |_s| id = 'M' + SecureRandom.hex(12) modals << { document: $2, id: id } "<a href='javascript:void(0)' data-modal='#{id}' class='Vlt-modal-trigger Vlt-text-link'>#{$1}</a>" end modals = modals.map do |modal| filename = modal[:document] raise "Could not find modal #{filename}" unless File.exist? filename document = File.read(filename) output = MarkdownPipeline.new.call(document) modal = <<~HEREDOC <div class="Vlt-modal" id="#{modal[:id]}"> <div class="Vlt-modal__panel"> <div class="Vlt-modal__content"> #{output} </div> </div> </div> HEREDOC "FREEZESTART#{Base64.urlsafe_encode64(modal)}FREEZEEND" end input + modals.join("\n") end end end end end end
Version data entries
21 entries across 21 versions & 1 rubygems