jekyll-import 0.1.0.beta3 → 0.1.0.beta4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +6 -14
- data/History.markdown +18 -0
- data/README.markdown +12 -1
- data/jekyll-import.gemspec +31 -25
- data/lib/jekyll-import.rb +50 -1
- data/lib/jekyll-import/importer.rb +11 -0
- data/lib/jekyll-import/importers.rb +10 -0
- data/lib/jekyll-import/importers/csv.rb +50 -0
- data/lib/jekyll-import/importers/drupal6.rb +139 -0
- data/lib/jekyll-import/importers/drupal7.rb +102 -0
- data/lib/jekyll-import/importers/enki.rb +76 -0
- data/lib/jekyll-import/importers/google_reader.rb +68 -0
- data/lib/jekyll-import/importers/joomla.rb +83 -0
- data/lib/jekyll-import/importers/jrnl.rb +127 -0
- data/lib/jekyll-import/importers/marley.rb +72 -0
- data/lib/jekyll-import/importers/mephisto.rb +109 -0
- data/lib/jekyll-import/importers/mt.rb +169 -0
- data/lib/jekyll-import/importers/posterous.rb +139 -0
- data/lib/jekyll-import/importers/rss.rb +71 -0
- data/lib/jekyll-import/importers/s9y.rb +67 -0
- data/lib/jekyll-import/importers/textpattern.rb +76 -0
- data/lib/jekyll-import/importers/tumblr.rb +265 -0
- data/lib/jekyll-import/importers/typo.rb +89 -0
- data/lib/jekyll-import/importers/wordpress.rb +323 -0
- data/lib/jekyll-import/importers/wordpressdotcom.rb +97 -0
- data/lib/jekyll/commands/import.rb +1 -0
- data/test/helper.rb +3 -1
- data/test/test_jrnl_importer.rb +39 -0
- data/test/test_mt_importer.rb +16 -16
- data/test/test_tumblr_importer.rb +61 -0
- data/test/test_wordpress_importer.rb +1 -1
- data/test/test_wordpressdotcom_importer.rb +1 -1
- metadata +53 -32
- data/lib/jekyll/jekyll-import/csv.rb +0 -30
- data/lib/jekyll/jekyll-import/drupal6.rb +0 -112
- data/lib/jekyll/jekyll-import/drupal7.rb +0 -74
- data/lib/jekyll/jekyll-import/enki.rb +0 -49
- data/lib/jekyll/jekyll-import/google_reader.rb +0 -61
- data/lib/jekyll/jekyll-import/joomla.rb +0 -53
- data/lib/jekyll/jekyll-import/marley.rb +0 -52
- data/lib/jekyll/jekyll-import/mephisto.rb +0 -84
- data/lib/jekyll/jekyll-import/mt.rb +0 -142
- data/lib/jekyll/jekyll-import/posterous.rb +0 -122
- data/lib/jekyll/jekyll-import/rss.rb +0 -63
- data/lib/jekyll/jekyll-import/s9y.rb +0 -59
- data/lib/jekyll/jekyll-import/textpattern.rb +0 -58
- data/lib/jekyll/jekyll-import/tumblr.rb +0 -242
- data/lib/jekyll/jekyll-import/typo.rb +0 -69
- data/lib/jekyll/jekyll-import/wordpress.rb +0 -299
- data/lib/jekyll/jekyll-import/wordpressdotcom.rb +0 -84
@@ -1,84 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'hpricot'
|
5
|
-
require 'fileutils'
|
6
|
-
require 'safe_yaml'
|
7
|
-
require 'time'
|
8
|
-
|
9
|
-
module JekyllImport
|
10
|
-
# This importer takes a wordpress.xml file, which can be exported from your
|
11
|
-
# wordpress.com blog (/wp-admin/export.php).
|
12
|
-
module WordpressDotCom
|
13
|
-
def self.process(filename = {:source => "wordpress.xml"})
|
14
|
-
import_count = Hash.new(0)
|
15
|
-
doc = Hpricot::XML(File.read(filename[:source]))
|
16
|
-
|
17
|
-
(doc/:channel/:item).each do |item|
|
18
|
-
title = item.at(:title).inner_text.strip
|
19
|
-
permalink_title = item.at('wp:post_name').inner_text
|
20
|
-
# Fallback to "prettified" title if post_name is empty (can happen)
|
21
|
-
if permalink_title == ""
|
22
|
-
permalink_title = sluggify(title)
|
23
|
-
end
|
24
|
-
|
25
|
-
date = Time.parse(item.at('wp:post_date').inner_text)
|
26
|
-
status = item.at('wp:status').inner_text
|
27
|
-
|
28
|
-
if status == "publish"
|
29
|
-
published = true
|
30
|
-
else
|
31
|
-
published = false
|
32
|
-
end
|
33
|
-
|
34
|
-
type = item.at('wp:post_type').inner_text
|
35
|
-
categories = item.search('category[@domain="category"]').map{|c| c.inner_text}.reject{|c| c == 'Uncategorized'}.uniq
|
36
|
-
tags = item.search('category[@domain="post_tag"]').map{|t| t.inner_text}.uniq
|
37
|
-
|
38
|
-
metas = Hash.new
|
39
|
-
item.search("wp:postmeta").each do |meta|
|
40
|
-
key = meta.at('wp:meta_key').inner_text
|
41
|
-
value = meta.at('wp:meta_value').inner_text
|
42
|
-
metas[key] = value;
|
43
|
-
end
|
44
|
-
|
45
|
-
name = "#{date.strftime('%Y-%m-%d')}-#{permalink_title}.html"
|
46
|
-
header = {
|
47
|
-
'layout' => type,
|
48
|
-
'title' => title,
|
49
|
-
'categories' => categories,
|
50
|
-
'tags' => tags,
|
51
|
-
'status' => status,
|
52
|
-
'type' => type,
|
53
|
-
'published' => published,
|
54
|
-
'meta' => metas
|
55
|
-
}
|
56
|
-
|
57
|
-
begin
|
58
|
-
FileUtils.mkdir_p "_#{type}s"
|
59
|
-
File.open("_#{type}s/#{name}", "w") do |f|
|
60
|
-
f.puts header.to_yaml
|
61
|
-
f.puts '---'
|
62
|
-
f.puts item.at('content:encoded').inner_text
|
63
|
-
end
|
64
|
-
rescue => e
|
65
|
-
puts "Couldn't import post!"
|
66
|
-
puts "Title: #{title}"
|
67
|
-
puts "Name/Slug: #{name}\n"
|
68
|
-
puts "Error: #{e.message}"
|
69
|
-
next
|
70
|
-
end
|
71
|
-
|
72
|
-
import_count[type] += 1
|
73
|
-
end
|
74
|
-
|
75
|
-
import_count.each do |key, value|
|
76
|
-
puts "Imported #{value} #{key}s"
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def self.sluggify(title)
|
81
|
-
title.gsub(/[^[:alnum:]]+/, '-').downcase
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|