Sha256: 6c076bba1e57c3d2dd6dd87dc73871eefb70c26561f84222211ae1570ee1f4c2

Contents?: true

Size: 939 Bytes

Versions: 29

Compression:

Stored size: 939 Bytes

Contents

# frozen_string_literal: true

module Jekyll
  module Tags
    class Link < Liquid::Tag
      class << self
        def tag_name
          self.name.split("::").last.downcase
        end
      end

      def initialize(tag_name, relative_path, tokens)
        super

        @relative_path = relative_path.strip
      end

      def render(context)
        site = context.registers[:site]

        site.each_site_file do |item|
          return item.url if item.relative_path == @relative_path
          # This takes care of the case for static files that have a leading /
          return item.url if item.relative_path == "/#{@relative_path}"
        end

        raise ArgumentError, <<-MSG
Could not find document '#{@relative_path}' in tag '#{self.class.tag_name}'.

Make sure the document exists and the path is correct.
MSG
      end
    end
  end
end

Liquid::Template.register_tag(Jekyll::Tags::Link.tag_name, Jekyll::Tags::Link)

Version data entries

29 entries across 29 versions & 3 rubygems

Version Path
jekyll-3.10.0 lib/jekyll/tags/link.rb
jekyll-3.9.5 lib/jekyll/tags/link.rb
jekyll-3.9.4 lib/jekyll/tags/link.rb
jekyll-3.9.3 lib/jekyll/tags/link.rb
jekyll-3.9.2 lib/jekyll/tags/link.rb
liquidoc-0.12.1.pre.rc1 lib/liquid/tags/link.rb
liquidoc-0.12.0 lib/liquid/tags/link.rb
liquidoc-0.12.0.pre.rc6 lib/liquid/tags/link.rb
jekyll-3.9.1 lib/jekyll/tags/link.rb
jekyll-3.9.0 lib/jekyll/tags/link.rb
jekyll-3.8.7 lib/jekyll/tags/link.rb
jekyll-3.8.6 lib/jekyll/tags/link.rb
jekyll-3.8.5 lib/jekyll/tags/link.rb
jekyll-3.6.3 lib/jekyll/tags/link.rb
jekyll-3.8.4 lib/jekyll/tags/link.rb
jekyll-3.7.4 lib/jekyll/tags/link.rb
jekyll-3.8.3 lib/jekyll/tags/link.rb
jekyll-3.8.2 lib/jekyll/tags/link.rb
jekyll-3.8.1 lib/jekyll/tags/link.rb
jekyll-3.8.0 lib/jekyll/tags/link.rb