Convert slashes in titles to dashes when migrating from WordPress
When a post has a title that contains a slash, such as 'This is my cool blog post part 1/2', convert the slash to a dash so that the post filename is created correctly. Fixes issue #680
This commit is contained in:
parent
fa8400ab61
commit
8fb4e8fcca
|
@ -38,6 +38,9 @@ Gem::Specification.new do |s|
|
|||
s.add_development_dependency('RedCloth', "~> 4.2")
|
||||
s.add_development_dependency('rdiscount', "~> 1.6")
|
||||
s.add_development_dependency('redcarpet', "~> 1.9")
|
||||
s.add_development_dependency('sequel', "~> 3.42")
|
||||
s.add_development_dependency('htmlentities', "~> 4.3")
|
||||
s.add_development_dependency('hpricot', "~> 0.8")
|
||||
|
||||
# = MANIFEST =
|
||||
s.files = %w[
|
||||
|
|
|
@ -276,6 +276,7 @@ module Jekyll
|
|||
text.gsub!(">", ">")
|
||||
text.gsub!(""", '"')
|
||||
text.gsub!("'", "'")
|
||||
text.gsub!("/", "/")
|
||||
text
|
||||
end
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ module Jekyll
|
|||
permalink_title = item.at('wp:post_name').inner_text
|
||||
# Fallback to "prettified" title if post_name is empty (can happen)
|
||||
if permalink_title == ""
|
||||
permalink_title = title.downcase.split.join('-')
|
||||
permalink_title = sluggify(title)
|
||||
end
|
||||
|
||||
date = Time.parse(item.at('wp:post_date').inner_text)
|
||||
|
@ -66,5 +66,9 @@ module Jekyll
|
|||
puts "Imported #{value} #{key}s"
|
||||
end
|
||||
end
|
||||
|
||||
def self.sluggify(title)
|
||||
title.downcase.split.join('-').gsub('/','-')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
require 'helper'
|
||||
require 'jekyll/migrators/wordpress'
|
||||
require 'htmlentities'
|
||||
|
||||
class TestWordpressMigrator < Test::Unit::TestCase
|
||||
should "clean slashes from slugs" do
|
||||
test_title = "blogs part 1/2"
|
||||
assert_equal("blogs-part-1-2", Jekyll::WordPress.sluggify(test_title))
|
||||
end
|
||||
end
|
|
@ -0,0 +1,9 @@
|
|||
require 'helper'
|
||||
require 'jekyll/migrators/wordpressdotcom'
|
||||
|
||||
class TestWordpressDotComMigrator < Test::Unit::TestCase
|
||||
should "clean slashes from slugs" do
|
||||
test_title = "blogs part 1/2"
|
||||
assert_equal("blogs-part-1-2", Jekyll::WordpressDotCom.sluggify(test_title))
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue