module Jekyll::DocFilters

Public Instance Methods

notable(docs) click to toggle source
# File _plugins/doc_filters.rb, line 6
def notable(docs)
  return docs.select { |d| d.data.include?('notable') && (d.data['notable'] == true) }
end
recent(docs, num=10) click to toggle source

returns most recently created/updated docs up to the defined 'num'ber. adds a 'weather' data attribute to render on the page.

# File _plugins/doc_filters.rb, line 12
def recent(docs, num=10)
  return if docs.nil?
  num = self.to_integer(num)
  # sort docs by most recently updated
  recent_docs = docs.sort_by { |d| d.data['updated'] }.reverse[0..(num - 1)]
  # assign weather attribute: if 'created' and 'updated' happened on the same day, presume creation status.
  recent_docs.each do |docs|
    day_created = Time.at(docs.data['created']).to_date
    day_updated = Time.at(docs.data['updated']).to_date
  end
  return recent_docs
end
to_integer(num) click to toggle source

from: github.com/Shopify/liquid/blob/eab13a07d9861a38d993d2749ae25f06ff76426b/lib/liquid/utils.rb#L38

# File _plugins/doc_filters.rb, line 32
def to_integer(num)
  return num if num.is_a?(Integer)
  num = num.to_s
  begin
    Integer(num)
  rescue ::ArgumentError
    raise ArgumentError, "invalid integer"
  end
end
weather(doc) click to toggle source
# File _plugins/doc_filters.rb, line 25
def weather(doc)
  day_created = Time.at(doc['created']).to_date
  day_updated = Time.at(doc['updated']).to_date
  return day_created === day_updated ? "🌤" : "🌧"
end