diff --git a/jekyll.gemspec b/jekyll.gemspec index ea593886..8678e498 100644 --- a/jekyll.gemspec +++ b/jekyll.gemspec @@ -42,6 +42,9 @@ Gem::Specification.new do |s| s.add_development_dependency('redcarpet', "~> 2.1.1") s.add_development_dependency('launchy', "~> 2.1.2") s.add_development_dependency('simplecov', "~> 0.7") + 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[ diff --git a/lib/jekyll/migrators/wordpress.rb b/lib/jekyll/migrators/wordpress.rb index d2d19039..61e00ad1 100644 --- a/lib/jekyll/migrators/wordpress.rb +++ b/lib/jekyll/migrators/wordpress.rb @@ -276,6 +276,7 @@ module Jekyll text.gsub!(">", ">") text.gsub!(""", '"') text.gsub!("'", "'") + text.gsub!("/", "/") text end diff --git a/lib/jekyll/migrators/wordpressdotcom.rb b/lib/jekyll/migrators/wordpressdotcom.rb index 0fc8b902..286c302f 100644 --- a/lib/jekyll/migrators/wordpressdotcom.rb +++ b/lib/jekyll/migrators/wordpressdotcom.rb @@ -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) @@ -74,5 +74,9 @@ module Jekyll puts "Imported #{value} #{key}s" end end + + def self.sluggify(title) + title.downcase.split.join('-').gsub('/','-') + end end end diff --git a/test/test_wordpress_migrator.rb b/test/test_wordpress_migrator.rb new file mode 100644 index 00000000..945fbc8b --- /dev/null +++ b/test/test_wordpress_migrator.rb @@ -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 diff --git a/test/test_wordpressdotcom_migrator.rb b/test/test_wordpressdotcom_migrator.rb new file mode 100644 index 00000000..fb38737b --- /dev/null +++ b/test/test_wordpressdotcom_migrator.rb @@ -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