Fix truncation of overly long post names.
Delete the old truncate_post_name; it was called too late (if url rewriting is enabled which it is by default), didn't run (it tried to use + to concat a Fixnum onto a String), and even with those problems fixed, didn't actually shorten the string enough to use as a pathname. Instead, apply simple string truncation at the point we generate the slug, which is used in the filename and is the part that could be unboundedly long. I arbitrarily chose 200 as the maximum length; even shorter might be better (really long slugs are just visually ugly); it might also be nicer to truncate at a hyphen boundary. This fixes the rest of issue #773 (subissue 4).
This commit is contained in:
parent
863643c7e8
commit
fbc9d0c663
|
@ -34,7 +34,6 @@ module Jekyll
|
|||
post[:content] = html_to_markdown post[:content]
|
||||
post[:content] = add_syntax_highlights post[:content] if add_highlights
|
||||
end
|
||||
post[:name] = truncate_post_name post[:name] if post[:name].size > 255
|
||||
File.open("_posts/tumblr/#{post[:name]}", "w") do |f|
|
||||
f.puts post[:header].to_yaml + "---\n" + post[:content]
|
||||
end
|
||||
|
@ -43,11 +42,6 @@ module Jekyll
|
|||
|
||||
private
|
||||
|
||||
def self.truncate_post_name name
|
||||
post = name.match(/^(.+)\.(.+)$/).captures
|
||||
post[0][0..(-1 - post[1].size)] + post[1].size
|
||||
end
|
||||
|
||||
# Converts each type of Tumblr post to a hash with all required
|
||||
# data for Jekyll.
|
||||
def self.post_to_hash(post, format)
|
||||
|
@ -103,6 +97,7 @@ module Jekyll
|
|||
date = Date.parse(post['date']).to_s
|
||||
title = Nokogiri::HTML(title).text
|
||||
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
||||
slug = slug.slice(0..200) if slug.length > 200
|
||||
{
|
||||
:name => "#{date}-#{slug}.#{format}",
|
||||
:header => {
|
||||
|
|
Loading…
Reference in New Issue