implement the auto_discovery_link_tag liquid filter (feature #206)

This commit is contained in:
Didier Lafforgue 2012-03-23 00:18:32 +01:00
parent a9aeffba9b
commit b7424b1fd4
2 changed files with 24 additions and 0 deletions

View File

@ -3,6 +3,20 @@ module Locomotive
module Filters module Filters
module Html module Html
# Returns a link tag that browsers and news readers can use to auto-detect an RSS or ATOM feed.
# input: url of the feed
# example:
# {{ '/foo/bar' | auto_discovery_link_tag: 'rel:alternate', 'type:atom', 'title:A title' }}
def auto_discovery_link_tag(input, *args)
options = args_to_options(args)
rel = options[:rel] || 'alternate'
type = options[:type] || Mime::Type.lookup_by_extension('rss').to_s
title = options[:title] || 'RSS'
%{<link rel="#{rel}" type="#{type}" title="#{title}" href="#{input}" />}
end
# Write the url to a stylesheet resource # Write the url to a stylesheet resource
# input: name of the css file # input: name of the css file
def stylesheet_url(input) def stylesheet_url(input)

View File

@ -8,6 +8,16 @@ describe Locomotive::Liquid::Filters::Html do
@context = build_context @context = build_context
end end
it 'writes the tag to display a rss/atom feed' do
auto_discovery_link_tag('/foo/bar').should == %(
<link rel="alternate" type="application/rss+xml" title="RSS" href="/foo/bar" />
).strip
auto_discovery_link_tag('/foo/bar', 'rel:alternate2', 'type:atom', 'title:Hello world').should == %(
<link rel="alternate2" type="atom" title="Hello world" href="/foo/bar" />
).strip
end
it 'should return a url for a stylesheet file' do it 'should return a url for a stylesheet file' do
result = "/sites/000000000000000000000042/theme/stylesheets/main.css" result = "/sites/000000000000000000000042/theme/stylesheets/main.css"
stylesheet_url('main.css').should == result stylesheet_url('main.css').should == result