Sha256: c12d45df48217c74c1cb62e294e76d34544b9e63c476782144bbb3d66d81776d

Contents?: true

Size: 916 Bytes

Versions: 3

Compression:

Stored size: 916 Bytes

Contents

# frozen_string_literal: true

require 'redcarpet'

module Archival
  class MarkdownRenderer < Redcarpet::Render::HTML
    def autolink(link, _link_type, _opts)
      # TODO: handle link_type?
      "<a href=\"#{rewrite_link(link)}\">#{rewrite_link(link)}</a>"
    end

    def link(link, title, content)
      "<a href=\"#{rewrite_link(link)}\" title=\"#{title}\">#{content}</a>"
    end

    def image(link, title, alt_text)
      "<img src=\"#{rewrite_link(link)}\" \
title=\"#{title}\" alt=\"#{alt_text}\"/>"
    end

    private

    def rewrite_link(link)
      if link.start_with?('http') || link.start_with?('mailto') ||
         link.start_with?('www') || link.start_with?('/')
        link
      end
      template_dir = File.dirname(@options[:template_file])
      resolved_link = Pathname.new(File.join(@options[:pages_root], link))
      resolved_link.relative_path_from(template_dir)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
archival-0.0.10 lib/archival/markdown_renderer.rb
archival-0.0.9 lib/archival/markdown_renderer.rb
archival-0.0.8 lib/archival/markdown_renderer.rb