Class: Jekyll::Documents::DocumentIconTag

Inherits:
Liquid::Tag
  • Object
show all
Includes:
Filters::URLFilters
Defined in:
lib/jekyll/documents/tags/document_icon.rb

Instance Method Summary collapse

Constructor Details

#initialize(tag_name, markup, tokens) ⇒ DocumentIconTag

Returns a new instance of DocumentIconTag.



10
11
12
13
# File 'lib/jekyll/documents/tags/document_icon.rb', line 10

def initialize(tag_name, markup, tokens)
  super
  @document_expression, @options = parse_markup(markup)
end

Instance Method Details

#render(context) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/jekyll/documents/tags/document_icon.rb', line 15

def render(context)
  document = context.find_variable(@document_expression)
  return "" unless document

  @context = context
  icon_url = document_value(document, "icon_url") || fallback_icon(document, context)
  url = relative_url(icon_url)
  file_type = document_value(document, "file_type").to_s
  alt = @options["alt"] || "#{file_type.upcase} file"
  css_class = @options["class"] || "file-icon"

  %(<img src="#{escape_html(url)}" alt="#{escape_html(alt)}" ) \
    + %(class="#{escape_html(css_class)}" />)
end