Permalink
Browse files

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
  • Loading branch information...
1 parent fa8400a commit 8fb4e8fcca4cf967dc2a3eae8e8dac19e3a84b92 @mattr- mattr- committed Dec 5, 2012
View
@@ -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 @@ def self.clean_entities( text )
text.gsub!(">", ">")
text.gsub!(""", '"')
text.gsub!("'", "'")
+ text.gsub!("/", "/")
text
end
@@ -19,7 +19,7 @@ def self.process(filename = "wordpress.xml")
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 @@ def self.process(filename = "wordpress.xml")
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

0 comments on commit 8fb4e8f

Please sign in to comment.