Browse Source

Improve handling of meta description

unreleased_contents
Frederic Hemberger 13 years ago
parent
commit
a81ef5e28b
  1. 2
      .themes/classic/source/_includes/head.html
  2. 27
      plugins/octopress_filters.rb

2
.themes/classic/source/_includes/head.html

@ -8,7 +8,7 @@
<meta name="author" content="{{ site.author }}"> <meta name="author" content="{{ site.author }}">
{% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %} {% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %}
<meta name="description" content="{{ description | strip_newlines | strip_html | truncate:150 }}"> <meta name="description" content="{{ description | strip_html | condense_spaces | truncate:150 }}">
{% if page.keywords %}<meta name="keywords" content="{{ page.keywords }}">{% endif %} {% if page.keywords %}<meta name="keywords" content="{{ page.keywords }}">{% endif %}
<!-- http://t.co/dKP3o1e --> <!-- http://t.co/dKP3o1e -->

27
plugins/octopress_filters.rb

@ -79,6 +79,33 @@ module OctopressLiquidFilters
end end
end end
# Improved version of Liquid's truncate:
# - Doesn't cut in the middle of a word.
# - Uses typographically correct ellipsis (…) insted of '...'
def truncate(input, length)
if input.length > length && input[0..(length-1)] =~ /(.+)\b.+$/im
$1.strip + ' &hellip;'
else
input
end
end
# Improved version of Liquid's truncatewords:
# - Uses typographically correct ellipsis (…) insted of '...'
def truncatewords(input, length)
truncate = input.split(' ')
if truncate.length > length
truncate[0..length-1].join(' ').strip + ' &hellip;'
else
input
end
end
# Condenses multiple spaces and tabs into a single space
def condense_spaces(input)
input.gsub(/\s{2,}/, ' ')
end
# Removes trailing forward slash from a string for easily appending url segments # Removes trailing forward slash from a string for easily appending url segments
def strip_slash(input) def strip_slash(input)
if input =~ /(.+)\/$|^\/$/ if input =~ /(.+)\/$|^\/$/

Loading…
Cancel
Save