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
data/test/helper.rb
CHANGED
@@ -15,10 +15,12 @@ unless defined?(Test::Unit::AssertionFailedError)
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
Dir.glob(File.expand_path('../../lib
|
18
|
+
Dir.glob(File.expand_path('../../lib/*.rb', __FILE__)).each do |f|
|
19
19
|
require f
|
20
20
|
end
|
21
21
|
|
22
|
+
include JekyllImport
|
23
|
+
|
22
24
|
# Send STDERR into the void to suppress program output messages
|
23
25
|
STDERR.reopen(test(?e, '/dev/null') ? '/dev/null' : 'NUL:')
|
24
26
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'time'
|
3
|
+
|
4
|
+
class TestJrnlMigrator < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "jrnl" do
|
7
|
+
setup do
|
8
|
+
@journal = "2013-09-24 11:36 jrnl test case 1.\nThis is a test case for jekyll-import."
|
9
|
+
@entries = @journal.split("\n\n")
|
10
|
+
@entry = @entries.first.split("\n")
|
11
|
+
@date_length = Time.now().strftime("%Y-%m-%d %H:%M").length
|
12
|
+
end
|
13
|
+
|
14
|
+
should "have posts" do
|
15
|
+
assert_equal(1, @entries.size)
|
16
|
+
end
|
17
|
+
|
18
|
+
should "have content" do
|
19
|
+
assert_equal("This is a test case for jekyll-import.", Importers::Jrnl.get_post_content(@entry))
|
20
|
+
end
|
21
|
+
|
22
|
+
should "have date" do
|
23
|
+
assert_equal("2013-09-24 11:36", Importers::Jrnl.get_date(@entry[0], @date_length))
|
24
|
+
end
|
25
|
+
|
26
|
+
should "have title" do
|
27
|
+
assert_equal("jrnl test case 1.", Importers::Jrnl.get_title(@entry[0], @date_length))
|
28
|
+
end
|
29
|
+
|
30
|
+
should "have slug" do
|
31
|
+
assert_equal("jrnl-test-case-1", Importers::Jrnl.create_slug(Importers::Jrnl.get_title(@entry[0], @date_length)))
|
32
|
+
end
|
33
|
+
|
34
|
+
should "have filename" do
|
35
|
+
assert_equal("2013-09-24-jrnl-test-case-1.md", Importers::Jrnl.create_filename(Importers::Jrnl.get_date(@entry[0], @date_length), Importers::Jrnl.create_slug(Importers::Jrnl.get_title(@entry[0], @date_length)), 'md'))
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
data/test/test_mt_importer.rb
CHANGED
@@ -8,7 +8,7 @@ class TestMTMigrator < Test::Unit::TestCase
|
|
8
8
|
{
|
9
9
|
:entry_id => 1,
|
10
10
|
:entry_blog_id => 1,
|
11
|
-
:entry_status =>
|
11
|
+
:entry_status => Importers::MT::STATUS_PUBLISHED,
|
12
12
|
:entry_author_id => 1,
|
13
13
|
:entry_allow_comments => 0,
|
14
14
|
:entry_allow_pings => 0,
|
@@ -38,67 +38,67 @@ class TestMTMigrator < Test::Unit::TestCase
|
|
38
38
|
end
|
39
39
|
|
40
40
|
should "set layout to post" do
|
41
|
-
assert_equal("post",
|
41
|
+
assert_equal("post", Importers::MT.post_metadata(stub_entry_row)["layout"])
|
42
42
|
end
|
43
43
|
|
44
44
|
should "extract authored_on as date, formatted as 'YYYY-MM-DD HH:MM:SS Z'" do
|
45
45
|
post = stub_entry_row
|
46
46
|
expected_date = post[:entry_authored_on].strftime('%Y-%m-%d %H:%M:%S %z')
|
47
|
-
assert_equal(expected_date,
|
47
|
+
assert_equal(expected_date, Importers::MT.post_metadata(post)["date"])
|
48
48
|
end
|
49
49
|
|
50
50
|
should "extract entry_excerpt as excerpt" do
|
51
51
|
post = stub_entry_row
|
52
|
-
assert_equal(post[:entry_excerpt],
|
52
|
+
assert_equal(post[:entry_excerpt], Importers::MT.post_metadata(post)["excerpt"])
|
53
53
|
end
|
54
54
|
|
55
55
|
should "extract entry_id as mt_id" do
|
56
56
|
post = stub_entry_row(:entry_id => 123)
|
57
|
-
assert_equal(123,
|
57
|
+
assert_equal(123, Importers::MT.post_metadata(post)["mt_id"])
|
58
58
|
end
|
59
59
|
|
60
60
|
should "extract entry_title as title" do
|
61
61
|
post = stub_entry_row
|
62
|
-
assert_equal(post[:entry_title],
|
62
|
+
assert_equal(post[:entry_title], Importers::MT.post_metadata(post)["title"])
|
63
63
|
end
|
64
64
|
|
65
65
|
should "set published to false if entry_status is not published" do
|
66
|
-
post = stub_entry_row(:entry_status =>
|
67
|
-
assert_equal(false,
|
66
|
+
post = stub_entry_row(:entry_status => Importers::MT::STATUS_DRAFT)
|
67
|
+
assert_equal(false, Importers::MT.post_metadata(post)["published"])
|
68
68
|
end
|
69
69
|
|
70
70
|
should "not set published if entry_status is published" do
|
71
|
-
post = stub_entry_row(:entry_status =>
|
72
|
-
assert_equal(nil,
|
71
|
+
post = stub_entry_row(:entry_status => Importers::MT::STATUS_PUBLISHED)
|
72
|
+
assert_equal(nil, Importers::MT.post_metadata(post)["published"])
|
73
73
|
end
|
74
74
|
|
75
75
|
should "include entry_text" do
|
76
76
|
post = stub_entry_row
|
77
|
-
assert
|
77
|
+
assert Importers::MT.post_content(post).include?(post[:entry_text])
|
78
78
|
end
|
79
79
|
|
80
80
|
should "include entry_text_more" do
|
81
81
|
post = stub_entry_row
|
82
|
-
assert
|
82
|
+
assert Importers::MT.post_content(post).include?(post[:entry_text_more])
|
83
83
|
end
|
84
84
|
|
85
85
|
should "include a <!--MORE--> separator when there is entry_text_more" do
|
86
86
|
post = stub_entry_row(:entry_text_more => "Some more entry")
|
87
|
-
assert
|
87
|
+
assert Importers::MT.post_content(post).include?(Importers::MT::MORE_CONTENT_SEPARATOR)
|
88
88
|
end
|
89
89
|
|
90
90
|
should "not include a <!--MORE--> separator when there is no entry_text_more" do
|
91
91
|
post = stub_entry_row(:entry_text_more => "")
|
92
|
-
assert !
|
92
|
+
assert !Importers::MT.post_content(post).include?(Importers::MT::MORE_CONTENT_SEPARATOR)
|
93
93
|
end
|
94
94
|
|
95
95
|
should "include the entry_authored_on date in the file name" do
|
96
96
|
post = stub_entry_row(:entry_authored_on => Time.parse("2013-01-02 00:00:00 -00:00").utc)
|
97
|
-
assert
|
97
|
+
assert Importers::MT.post_file_name(post).include?("2013-01-02")
|
98
98
|
end
|
99
99
|
|
100
100
|
should "include entry_basename in the file name" do
|
101
101
|
post = stub_entry_row(:entry_basename => "my_blog-entry")
|
102
|
-
assert
|
102
|
+
assert Importers::MT.post_file_name(post).include?("my_blog-entry")
|
103
103
|
end
|
104
104
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class TestTumblrImporter < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "A Tumblr blog" do
|
7
|
+
setup do
|
8
|
+
Importers::Tumblr.require_deps
|
9
|
+
@jsonPayload = '{"tumblelog":{"title":"JekyllImport","description":"Jekyll Importer Test.","name":"JekyllImport","timezone":"Canada\/Atlantic","cname":"https://github.com/jekyll/jekyll-import/","feeds":[]},"posts-start":0,"posts-total":"1","posts-type":false,"posts":[{"id":54759400073,"url":"https:\/\/github.com\/post\/54759400073","url-with-slug":"http:\/\/github.com\/post\/54759400073\/jekyll-test","type":"regular","date-gmt":"2013-07-06 16:27:23 GMT","date":"Sat, 06 Jul 2013 13:27:23","bookmarklet":null,"mobile":null,"feed-item":"","from-feed-id":0,"unix-timestamp":1373128043,"format":"html","reblog-key":"0L6yPcHr","slug":"jekyll-test","regular-title":"Jekyll: Test","regular-body":"<p>Testing...<\/p>","tags":["jekyll"]}]}'
|
10
|
+
@posts = JSON.parse(@jsonPayload)
|
11
|
+
end
|
12
|
+
|
13
|
+
should "have a post" do
|
14
|
+
assert_equal(1, @posts["posts"].size)
|
15
|
+
end
|
16
|
+
|
17
|
+
should "have a regular post" do
|
18
|
+
assert_equal("regular", @posts['posts'][0]['type'])
|
19
|
+
end
|
20
|
+
|
21
|
+
should "convert post into hash" do
|
22
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
23
|
+
refute_nil(batch, "a batch with a valid post should exist")
|
24
|
+
end
|
25
|
+
|
26
|
+
should "have a hash with a valid name" do
|
27
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
28
|
+
assert_equal("2013-07-06-jekyll-test.html", batch[0][:name])
|
29
|
+
end
|
30
|
+
|
31
|
+
should "have a hash with a valid layout" do
|
32
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
33
|
+
assert_equal("post", batch[0][:header]['layout'])
|
34
|
+
end
|
35
|
+
|
36
|
+
should "have a hash with a valid title" do
|
37
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
38
|
+
assert_equal("Jekyll: Test", batch[0][:header]['title'])
|
39
|
+
end
|
40
|
+
|
41
|
+
should "have a hash with valid tags" do
|
42
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
43
|
+
assert_equal("jekyll", batch[0][:header]['tags'][0])
|
44
|
+
end
|
45
|
+
|
46
|
+
should "have a hash with valid content" do
|
47
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
48
|
+
assert_equal("<p>Testing...</p>", batch[0][:content])
|
49
|
+
end
|
50
|
+
|
51
|
+
should "have a hash with a valid url" do
|
52
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
53
|
+
assert_equal("https://github.com/post/54759400073", batch[0][:url])
|
54
|
+
end
|
55
|
+
|
56
|
+
should "have a hash with a valid slug" do
|
57
|
+
batch = @posts["posts"].map { |post| Importers::Tumblr.post_to_hash(post, 'html') }
|
58
|
+
assert_equal("http://github.com/post/54759400073/jekyll-test", batch[0][:slug])
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -4,6 +4,6 @@ require 'htmlentities'
|
|
4
4
|
class TestWordpressMigrator < Test::Unit::TestCase
|
5
5
|
should "clean slashes from slugs" do
|
6
6
|
test_title = "blogs part 1/2"
|
7
|
-
assert_equal("blogs-part-1-2",
|
7
|
+
assert_equal("blogs-part-1-2", Importers::WordPress.sluggify(test_title))
|
8
8
|
end
|
9
9
|
end
|
@@ -3,6 +3,6 @@ require 'helper'
|
|
3
3
|
class TestWordpressDotComMigrator < Test::Unit::TestCase
|
4
4
|
should "clean slashes from slugs" do
|
5
5
|
test_title = "blogs part 1/2"
|
6
|
-
assert_equal("blogs-part-1-2",
|
6
|
+
assert_equal("blogs-part-1-2", Importers::WordpressDotCom.sluggify(test_title))
|
7
7
|
end
|
8
8
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.beta4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -16,40 +16,40 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fastercsv
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: nokogiri
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.7
|
61
|
+
version: 0.9.7
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.7
|
68
|
+
version: 0.9.7
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 10.0
|
75
|
+
version: 10.1.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 10.0
|
82
|
+
version: 10.1.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rdoc
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -248,6 +248,20 @@ dependencies:
|
|
248
248
|
- - ~>
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0.12'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: mysql2
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ~>
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0.3'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ~>
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0.3'
|
251
265
|
description: Provides the Import command for Jekyll.
|
252
266
|
email: tom@mojombo.com
|
253
267
|
executables: []
|
@@ -263,29 +277,34 @@ files:
|
|
263
277
|
- Rakefile
|
264
278
|
- jekyll-import.gemspec
|
265
279
|
- lib/jekyll-import.rb
|
280
|
+
- lib/jekyll-import/importer.rb
|
281
|
+
- lib/jekyll-import/importers.rb
|
282
|
+
- lib/jekyll-import/importers/csv.rb
|
283
|
+
- lib/jekyll-import/importers/drupal6.rb
|
284
|
+
- lib/jekyll-import/importers/drupal7.rb
|
285
|
+
- lib/jekyll-import/importers/enki.rb
|
286
|
+
- lib/jekyll-import/importers/google_reader.rb
|
287
|
+
- lib/jekyll-import/importers/joomla.rb
|
288
|
+
- lib/jekyll-import/importers/jrnl.rb
|
289
|
+
- lib/jekyll-import/importers/marley.rb
|
290
|
+
- lib/jekyll-import/importers/mephisto.rb
|
291
|
+
- lib/jekyll-import/importers/mt.rb
|
292
|
+
- lib/jekyll-import/importers/posterous.rb
|
293
|
+
- lib/jekyll-import/importers/rss.rb
|
294
|
+
- lib/jekyll-import/importers/s9y.rb
|
295
|
+
- lib/jekyll-import/importers/textpattern.rb
|
296
|
+
- lib/jekyll-import/importers/tumblr.rb
|
297
|
+
- lib/jekyll-import/importers/typo.rb
|
298
|
+
- lib/jekyll-import/importers/wordpress.rb
|
299
|
+
- lib/jekyll-import/importers/wordpressdotcom.rb
|
266
300
|
- lib/jekyll/commands/import.rb
|
267
|
-
- lib/jekyll/jekyll-import/csv.rb
|
268
|
-
- lib/jekyll/jekyll-import/drupal6.rb
|
269
|
-
- lib/jekyll/jekyll-import/drupal7.rb
|
270
|
-
- lib/jekyll/jekyll-import/enki.rb
|
271
|
-
- lib/jekyll/jekyll-import/google_reader.rb
|
272
|
-
- lib/jekyll/jekyll-import/joomla.rb
|
273
|
-
- lib/jekyll/jekyll-import/marley.rb
|
274
|
-
- lib/jekyll/jekyll-import/mephisto.rb
|
275
|
-
- lib/jekyll/jekyll-import/mt.rb
|
276
|
-
- lib/jekyll/jekyll-import/posterous.rb
|
277
|
-
- lib/jekyll/jekyll-import/rss.rb
|
278
|
-
- lib/jekyll/jekyll-import/s9y.rb
|
279
|
-
- lib/jekyll/jekyll-import/textpattern.rb
|
280
|
-
- lib/jekyll/jekyll-import/tumblr.rb
|
281
|
-
- lib/jekyll/jekyll-import/typo.rb
|
282
|
-
- lib/jekyll/jekyll-import/wordpress.rb
|
283
|
-
- lib/jekyll/jekyll-import/wordpressdotcom.rb
|
284
301
|
- test/helper.rb
|
302
|
+
- test/test_jrnl_importer.rb
|
285
303
|
- test/test_mt_importer.rb
|
304
|
+
- test/test_tumblr_importer.rb
|
286
305
|
- test/test_wordpress_importer.rb
|
287
306
|
- test/test_wordpressdotcom_importer.rb
|
288
|
-
homepage: http://github.com/
|
307
|
+
homepage: http://github.com/jekyll/jekyll-import
|
289
308
|
licenses: []
|
290
309
|
metadata: {}
|
291
310
|
post_install_message:
|
@@ -295,12 +314,12 @@ require_paths:
|
|
295
314
|
- lib
|
296
315
|
required_ruby_version: !ruby/object:Gem::Requirement
|
297
316
|
requirements:
|
298
|
-
- -
|
317
|
+
- - '>='
|
299
318
|
- !ruby/object:Gem::Version
|
300
319
|
version: 1.9.2
|
301
320
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
302
321
|
requirements:
|
303
|
-
- -
|
322
|
+
- - '>'
|
304
323
|
- !ruby/object:Gem::Version
|
305
324
|
version: 1.3.1
|
306
325
|
requirements: []
|
@@ -310,6 +329,8 @@ signing_key:
|
|
310
329
|
specification_version: 2
|
311
330
|
summary: Import command for Jekyll (static site generator).
|
312
331
|
test_files:
|
332
|
+
- test/test_jrnl_importer.rb
|
313
333
|
- test/test_mt_importer.rb
|
334
|
+
- test/test_tumblr_importer.rb
|
314
335
|
- test/test_wordpress_importer.rb
|
315
336
|
- test/test_wordpressdotcom_importer.rb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require "csv"
|
2
|
-
|
3
|
-
module JekyllImport
|
4
|
-
module CSV
|
5
|
-
# Reads a csv with title, permalink, body, published_at, and filter.
|
6
|
-
# It creates a post file for each row in the csv
|
7
|
-
def self.process(options)
|
8
|
-
file = options[:file] || "posts.csv"
|
9
|
-
FileUtils.mkdir_p "_posts"
|
10
|
-
posts = 0
|
11
|
-
abort "Cannot find the file '#{file}'. Aborting." unless File.file?(file)
|
12
|
-
::CSV.foreach(file) do |row|
|
13
|
-
next if row[0] == "title"
|
14
|
-
posts += 1
|
15
|
-
name = row[3].split(" ")[0]+"-"+row[1]+(row[4] =~ /markdown/ ? ".markdown" : ".textile")
|
16
|
-
File.open("_posts/#{name}", "w") do |f|
|
17
|
-
f.puts <<-HEADER
|
18
|
-
---
|
19
|
-
layout: post
|
20
|
-
title: #{row[0]}
|
21
|
-
---
|
22
|
-
|
23
|
-
HEADER
|
24
|
-
f.puts row[2]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
"Created #{posts} posts!"
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|