jekyll-import 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +5 -2
- data/History.markdown +14 -0
- data/README.markdown +24 -10
- data/jekyll-import.gemspec +2 -1
- data/lib/jekyll-import/importers/csv.rb +15 -7
- data/lib/jekyll-import/importers/google_reader.rb +1 -5
- data/lib/jekyll-import/importers/wordpress.rb +54 -11
- data/lib/jekyll-import/importers/wordpressdotcom.rb +44 -3
- data/lib/jekyll-import/util.rb +2 -2
- data/lib/jekyll-import/version.rb +1 -1
- data/site/_config.yml +1 -1
- data/site/_posts/2014-05-23-jekyll-import-0-3-0-released.markdown +22 -0
- data/site/docs/csv.md +12 -0
- data/site/docs/history.md +28 -1
- data/site/docs/wordpress.md +1 -0
- data/site/docs/wordpressdotcom.md +5 -2
- data/test/helper.rb +5 -6
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b5d74f3eddb29a55ff845369991337d004ab36f
|
4
|
+
data.tar.gz: a06bcfad396653de2fd03b1146c3719ea83d73d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7eb1b3daf5ffd72d1127dee1298c998402987bd8eb254f293cd773b3bd5f12e2db11f12a3b97bc82cb33f54b6bdeb1842b14aac1b49b77cb91fba754e9a2567
|
7
|
+
data.tar.gz: b29b9ecafc01d25924932b73d5a48d272013e2523b7da7b94c4e298cc14321e108917a99f6918acedf4f89250fbffada82aa91e55af09d2769db940859533ae3
|
data/.travis.yml
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
language: ruby
|
2
2
|
before_install:
|
3
3
|
- gem install bundler
|
4
|
+
install:
|
5
|
+
- export NOKOGIRI_USE_SYSTEM_LIBRARIES=true
|
6
|
+
- travis_retry bundle install
|
4
7
|
rvm:
|
5
|
-
- 2.
|
8
|
+
- 2.1
|
9
|
+
- 2.0
|
6
10
|
- 1.9.3
|
7
|
-
- 1.9.2
|
8
11
|
script: bundle exec rake
|
9
12
|
notifications:
|
10
13
|
irc: "irc.freenode.org#jekyll"
|
data/History.markdown
CHANGED
@@ -10,6 +10,20 @@
|
|
10
10
|
|
11
11
|
### Development Fixes
|
12
12
|
|
13
|
+
## 0.3.0 / 2014-05-23
|
14
|
+
|
15
|
+
### Minor Enhancements
|
16
|
+
|
17
|
+
* Import WordPress.org `author` data as hash (#139)
|
18
|
+
* Add `socket` option to the WordPress importer (#140)
|
19
|
+
* Allow the CSV importer to skip writing front matter (#143)
|
20
|
+
* WordPress.com: Download images locally and update links to them (#134)
|
21
|
+
* WordPress: Import WP pages as proper Jekyll pages instead of as posts (#137)
|
22
|
+
|
23
|
+
### Bug Fixes
|
24
|
+
|
25
|
+
* Replace errant `continue` expression with the valid `next` expression (#133)
|
26
|
+
|
13
27
|
## 0.2.0 / 2014-03-16
|
14
28
|
|
15
29
|
### Major Enhancements
|
data/README.markdown
CHANGED
@@ -1,18 +1,32 @@
|
|
1
|
-
jekyll-import
|
2
|
-
|
1
|
+
# jekyll-import
|
2
|
+
|
3
|
+
[![Build Status](https://travis-ci.org/jekyll/jekyll-import.svg?branch=master)](https://travis-ci.org/jekyll/jekyll-import)
|
3
4
|
|
4
5
|
The new __Jekyll__ command for importing from various blogs to Jekyll format.
|
5
6
|
|
6
7
|
**Note: _migrators_ are now called _importers_ and are only available if one installs the `jekyll-import` _gem_.**
|
7
8
|
|
8
|
-
How `jekyll-import` works:
|
9
|
-
|
9
|
+
## How `jekyll-import` works:
|
10
|
+
|
11
|
+
### Jekyll v2.x
|
12
|
+
|
13
|
+
1. Install the _rubygem_ with `gem install jekyll-import`.
|
14
|
+
2. Run `jekyll import IMPORTER [options]`
|
15
|
+
|
16
|
+
### Jekyll v1.x
|
17
|
+
|
18
|
+
Launch IRB:
|
10
19
|
|
11
|
-
|
12
|
-
|
13
|
-
|
20
|
+
```ruby
|
21
|
+
# 1. Require jekyll-import
|
22
|
+
irb> require 'jekyll-import'
|
23
|
+
# 2. Choose the importer you'd like to use.
|
24
|
+
irb> importer_class = "Behance" # an example, there are many others!
|
25
|
+
# 3. Run it!
|
26
|
+
irb> JekyllImport::Importers.const_get(importer_class).run(options_hash)
|
27
|
+
```
|
14
28
|
|
15
|
-
|
29
|
+
## Documentation
|
16
30
|
|
17
|
-
|
18
|
-
|
31
|
+
jekyll-import has its own documentation site, found at http://import.jekyllrb.com.
|
32
|
+
Dedicated [documentation for each migrator](http://import.jekyllrb.com/docs/home/) is available there.
|
data/jekyll-import.gemspec
CHANGED
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
|
|
40
40
|
|
41
41
|
# test dependencies:
|
42
42
|
s.add_development_dependency('redgreen', "~> 1.2")
|
43
|
-
s.add_development_dependency('shoulda', "~> 3.
|
43
|
+
s.add_development_dependency('shoulda', "~> 3.5")
|
44
44
|
s.add_development_dependency('rr', "~> 1.0")
|
45
45
|
s.add_development_dependency('simplecov', "~> 0.7")
|
46
46
|
s.add_development_dependency('simplecov-gem-adapter', "~> 1.0.1")
|
@@ -53,6 +53,7 @@ Gem::Specification.new do |s|
|
|
53
53
|
s.add_development_dependency('pg', "~> 0.12")
|
54
54
|
s.add_development_dependency('mysql2', "~> 0.3")
|
55
55
|
s.add_development_dependency('behance', "~> 0.3")
|
56
|
+
s.add_development_dependency('unidecode')
|
56
57
|
|
57
58
|
# site dependencies:
|
58
59
|
s.add_development_dependency('launchy', '~> 2.4')
|
@@ -10,6 +10,7 @@ module JekyllImport
|
|
10
10
|
|
11
11
|
def self.specify_options(c)
|
12
12
|
c.option 'file', '--file NAME', 'The CSV file to import (default: "posts.csv")'
|
13
|
+
c.option 'no-front-matter', '--no-front-matter', 'Do not add the default front matter to the post body'
|
13
14
|
end
|
14
15
|
|
15
16
|
# Reads a csv with title, permalink, body, published_at, and filter.
|
@@ -25,26 +26,33 @@ module JekyllImport
|
|
25
26
|
next if row[0] == "title"
|
26
27
|
posts += 1
|
27
28
|
name = build_name(row)
|
28
|
-
write_post(name, row[0], row[2])
|
29
|
+
write_post(name, row[0], row[2], options)
|
29
30
|
end
|
30
31
|
"Created #{posts} posts!"
|
31
32
|
end
|
32
33
|
|
33
|
-
def self.write_post(name, title, content)
|
34
|
+
def self.write_post(name, title, content, options)
|
34
35
|
File.open("_posts/#{name}", "w") do |f|
|
36
|
+
write_frontmatter(f, title, options)
|
37
|
+
f.puts content
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.build_name(row)
|
42
|
+
row[3].split(" ")[0]+"-"+row[1]+(row[4] =~ /markdown/ ? ".markdown" : ".textile")
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.write_frontmatter(f, title, options)
|
46
|
+
no_frontmatter = options.fetch('no-front-matter', false)
|
47
|
+
unless no_frontmatter
|
35
48
|
f.puts <<-HEADER
|
36
49
|
---
|
37
50
|
layout: post
|
38
51
|
title: #{title}
|
39
52
|
---
|
40
53
|
HEADER
|
41
|
-
f.puts content
|
42
54
|
end
|
43
55
|
end
|
44
|
-
|
45
|
-
def self.build_name(row)
|
46
|
-
row[3].split(" ")[0]+"-"+row[1]+(row[4] =~ /markdown/ ? ".markdown" : ".textile")
|
47
|
-
end
|
48
56
|
end
|
49
57
|
end
|
50
58
|
end
|
@@ -1,7 +1,3 @@
|
|
1
|
-
# Usage:
|
2
|
-
# (Local file)
|
3
|
-
# ruby -r 'jekyll/jekyll-import/rss' -e "JekyllImport::GoogleReader.process(:source => './somefile/on/your/computer.xml')"
|
4
|
-
|
5
1
|
module JekyllImport
|
6
2
|
module Importers
|
7
3
|
class GoogleReader < Importer
|
@@ -21,7 +17,7 @@ module JekyllImport
|
|
21
17
|
rss
|
22
18
|
fileutils
|
23
19
|
safe_yaml
|
24
|
-
open-
|
20
|
+
open-uri
|
25
21
|
rexml/document
|
26
22
|
date
|
27
23
|
])
|
@@ -17,11 +17,13 @@ module JekyllImport
|
|
17
17
|
sequel
|
18
18
|
fileutils
|
19
19
|
safe_yaml
|
20
|
+
unidecode
|
20
21
|
])
|
21
22
|
end
|
22
23
|
|
23
24
|
def self.specify_options(c)
|
24
25
|
c.option 'dbname', '--dbname DB', 'Database name (default: "")'
|
26
|
+
c.option 'socket', '--socket SOCKET', 'Database socket (default: "")'
|
25
27
|
c.option 'user', '--user USER', 'Database user name (default: "")'
|
26
28
|
c.option 'password', '--password PW', "Database user's password (default: "")"
|
27
29
|
c.option 'host', '--host HOST', 'Database host name (default: "localhost")'
|
@@ -41,6 +43,7 @@ module JekyllImport
|
|
41
43
|
# user:: The database user name
|
42
44
|
# pass:: The database user's password
|
43
45
|
# host:: The address of the MySQL database host. Default: 'localhost'
|
46
|
+
# socket:: The database socket's path
|
44
47
|
# options:: A hash table of configuration options.
|
45
48
|
#
|
46
49
|
# Supported options are:
|
@@ -78,6 +81,7 @@ module JekyllImport
|
|
78
81
|
:user => opts.fetch('user', ''),
|
79
82
|
:pass => opts.fetch('password', ''),
|
80
83
|
:host => opts.fetch('host', 'localhost'),
|
84
|
+
:socket => opts.fetch('socket', ''),
|
81
85
|
:dbname => opts.fetch('dbname', ''),
|
82
86
|
:table_prefix => opts.fetch('prefix', 'wp_'),
|
83
87
|
:clean_entities => opts.fetch('clean_entities', true),
|
@@ -102,10 +106,31 @@ module JekyllImport
|
|
102
106
|
FileUtils.mkdir_p("_posts")
|
103
107
|
|
104
108
|
db = Sequel.mysql2(options[:dbname], :user => options[:user], :password => options[:pass],
|
105
|
-
:host => options[:host], :encoding => 'utf8')
|
109
|
+
:socket => options[:socket], :host => options[:host], :encoding => 'utf8')
|
106
110
|
|
107
111
|
px = options[:table_prefix]
|
108
112
|
|
113
|
+
page_name_list = {}
|
114
|
+
|
115
|
+
page_name_query = "
|
116
|
+
SELECT
|
117
|
+
posts.ID AS `id`,
|
118
|
+
posts.post_title AS `title`,
|
119
|
+
posts.post_name AS `slug`,
|
120
|
+
posts.post_parent AS `parent`
|
121
|
+
FROM #{px}posts AS `posts`
|
122
|
+
WHERE posts.post_type = 'page'"
|
123
|
+
|
124
|
+
db[page_name_query].each do |page|
|
125
|
+
if !page[:slug] or page[:slug].empty?
|
126
|
+
page[:slug] = sluggify(page[:title])
|
127
|
+
end
|
128
|
+
page_name_list[ page[:id] ] = {
|
129
|
+
:slug => page[:slug],
|
130
|
+
:parent => page[:parent]
|
131
|
+
}
|
132
|
+
end
|
133
|
+
|
109
134
|
posts_query = "
|
110
135
|
SELECT
|
111
136
|
posts.ID AS `id`,
|
@@ -138,12 +163,12 @@ module JekyllImport
|
|
138
163
|
end
|
139
164
|
|
140
165
|
db[posts_query].each do |post|
|
141
|
-
process_post(post, db, options)
|
166
|
+
process_post(post, db, options, page_name_list)
|
142
167
|
end
|
143
168
|
end
|
144
169
|
|
145
170
|
|
146
|
-
def self.process_post(post, db, options)
|
171
|
+
def self.process_post(post, db, options, page_name_list)
|
147
172
|
px = options[:table_prefix]
|
148
173
|
|
149
174
|
title = post[:title]
|
@@ -269,7 +294,12 @@ module JekyllImport
|
|
269
294
|
'status' => post[:status].to_s,
|
270
295
|
'published' => (post[:status].to_s == "publish"),
|
271
296
|
'title' => title.to_s,
|
272
|
-
'author' =>
|
297
|
+
'author' => {
|
298
|
+
'display_name'=> post[:author].to_s,
|
299
|
+
'login' => post[:author_login].to_s,
|
300
|
+
'email' => post[:author_email].to_s,
|
301
|
+
'url' => post[:author_url].to_s,
|
302
|
+
},
|
273
303
|
'author_login' => post[:author_login].to_s,
|
274
304
|
'author_email' => post[:author_email].to_s,
|
275
305
|
'author_url' => post[:author_url].to_s,
|
@@ -284,8 +314,15 @@ module JekyllImport
|
|
284
314
|
'comments' => options[:comments] ? comments : nil,
|
285
315
|
}.delete_if { |k,v| v.nil? || v == '' }.to_yaml
|
286
316
|
|
317
|
+
if post[:type] == 'page'
|
318
|
+
filename = page_path(post[:id], page_name_list) + 'index.markdown'
|
319
|
+
FileUtils.mkdir_p(File.dirname(filename))
|
320
|
+
else
|
321
|
+
filename = "_posts/#{name}"
|
322
|
+
end
|
323
|
+
|
287
324
|
# Write out the data and content to file
|
288
|
-
File.open(
|
325
|
+
File.open(filename, "w") do |f|
|
289
326
|
f.puts data
|
290
327
|
f.puts "---"
|
291
328
|
f.puts Util.wpautop(content)
|
@@ -311,13 +348,19 @@ module JekyllImport
|
|
311
348
|
|
312
349
|
|
313
350
|
def self.sluggify( title )
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
351
|
+
title = title.to_ascii.downcase.gsub(/[^0-9A-Za-z]+/, " ").strip.gsub(" ", "-")
|
352
|
+
end
|
353
|
+
|
354
|
+
def self.page_path( page_id, page_name_list )
|
355
|
+
if page_name_list.key?(page_id)
|
356
|
+
[
|
357
|
+
page_path(page_name_list[page_id][:parent],page_name_list),
|
358
|
+
page_name_list[page_id][:slug],
|
359
|
+
'/'
|
360
|
+
].join("")
|
361
|
+
else
|
362
|
+
""
|
319
363
|
end
|
320
|
-
title.downcase.gsub(/[^0-9A-Za-z]+/, " ").strip.gsub(" ", "-")
|
321
364
|
end
|
322
365
|
|
323
366
|
end
|
@@ -13,19 +13,54 @@ module JekyllImport
|
|
13
13
|
safe_yaml
|
14
14
|
hpricot
|
15
15
|
time
|
16
|
+
open-uri
|
16
17
|
])
|
17
18
|
end
|
18
19
|
|
19
20
|
def self.specify_options(c)
|
20
21
|
c.option 'source', '--source FILE', 'WordPress export XML file (default: "wordpress.xml")'
|
22
|
+
c.option 'no_fetch_images', '--no-fetch-images', 'Do not fetch the images referenced in the posts'
|
23
|
+
c.option 'assets_folder', '--assets_folder FOLDER', 'Folder where assets such as images will be downloaded to (default: assets)'
|
24
|
+
end
|
25
|
+
|
26
|
+
# Will modify post DOM tree
|
27
|
+
def self.download_images(title, post_hpricot, assets_folder)
|
28
|
+
images = (post_hpricot/"img")
|
29
|
+
if images.length == 0
|
30
|
+
return
|
31
|
+
end
|
32
|
+
puts "Downloading images for " + title
|
33
|
+
images.each do |i|
|
34
|
+
uri = i["src"]
|
35
|
+
|
36
|
+
i["src"] = assets_folder + "/" + File.basename(uri)
|
37
|
+
dst = File.join(assets_folder, File.basename(uri))
|
38
|
+
puts " " + uri
|
39
|
+
if File.exist?(dst)
|
40
|
+
puts " Already in cache. Clean assets folder if you want a redownload."
|
41
|
+
next
|
42
|
+
end
|
43
|
+
begin
|
44
|
+
open(uri) {|f|
|
45
|
+
File.open(dst, "wb") do |out|
|
46
|
+
out.puts f.read
|
47
|
+
end
|
48
|
+
}
|
49
|
+
puts " OK!"
|
50
|
+
rescue => e
|
51
|
+
puts " Errorr: #{e.message}"
|
52
|
+
end
|
53
|
+
end
|
21
54
|
end
|
22
55
|
|
23
56
|
def self.process(options)
|
24
|
-
source
|
57
|
+
source = options.fetch('source', "wordpress.xml")
|
58
|
+
fetch = !options.fetch('no_fetch_images', false)
|
59
|
+
assets_folder = options.fetch('assets_folder', 'assets')
|
60
|
+
FileUtils.mkdir_p(assets_folder)
|
25
61
|
|
26
62
|
import_count = Hash.new(0)
|
27
63
|
doc = Hpricot::XML(File.read(source))
|
28
|
-
|
29
64
|
# Fetch authors data from header
|
30
65
|
authors = Hash[
|
31
66
|
(doc/:channel/'wp:author').map do |author|
|
@@ -83,11 +118,17 @@ module JekyllImport
|
|
83
118
|
}
|
84
119
|
|
85
120
|
begin
|
121
|
+
content = Hpricot(item.at('content:encoded').inner_text)
|
122
|
+
|
123
|
+
if fetch
|
124
|
+
download_images(title, content, assets_folder)
|
125
|
+
end
|
126
|
+
|
86
127
|
FileUtils.mkdir_p "_#{type}s"
|
87
128
|
File.open("_#{type}s/#{name}", "w") do |f|
|
88
129
|
f.puts header.to_yaml
|
89
130
|
f.puts '---'
|
90
|
-
f.puts Util.wpautop(
|
131
|
+
f.puts Util.wpautop(content.to_html)
|
91
132
|
end
|
92
133
|
rescue => e
|
93
134
|
puts "Couldn't import post!"
|
data/lib/jekyll-import/util.rb
CHANGED
data/site/_config.yml
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
layout: news_item
|
3
|
+
title: 'jekyll-import 0.3.0 Released'
|
4
|
+
date: 2014-05-23 23:06:43 -0400
|
5
|
+
author: parkr
|
6
|
+
version: 0.3.0
|
7
|
+
categories: [release]
|
8
|
+
---
|
9
|
+
|
10
|
+
Hey! This release is just to get a few fixes that have lain stale for a bit
|
11
|
+
out into the open. Notably, the WordPress and WordPress.com importers have
|
12
|
+
been markedly improved. Check out the full changelog for more details
|
13
|
+
|
14
|
+
Highlights:
|
15
|
+
|
16
|
+
* Import WordPress.org `author` data as hash
|
17
|
+
* Add `socket` option to the WordPress importer
|
18
|
+
* Allow the CSV importer to skip writing front matter
|
19
|
+
* WordPress.com: Download images locally and update links to them
|
20
|
+
* WordPress: Import WP pages as proper Jekyll pages instead of as posts
|
21
|
+
|
22
|
+
Happy Jekylling!
|
data/site/docs/csv.md
CHANGED
@@ -23,3 +23,15 @@ Your file CSV file will be read in with the following columns:
|
|
23
23
|
3. body
|
24
24
|
4. published_at
|
25
25
|
5. filter (e.g. markdown, textile)
|
26
|
+
|
27
|
+
If you wish to specify custom front matter for each of your posts, you
|
28
|
+
can use the `no-front-matter` option to prevent the default front matter
|
29
|
+
from being written to the imported files:
|
30
|
+
|
31
|
+
{% highlight bash %}
|
32
|
+
$ ruby -rubygems -e 'require "jekyll-import";
|
33
|
+
JekyllImport::Importers::CSV.run({
|
34
|
+
"file" => "my_posts.csv",
|
35
|
+
"no-front-matter" => true
|
36
|
+
})'
|
37
|
+
{% endhighlight %}
|
data/site/docs/history.md
CHANGED
@@ -1,10 +1,37 @@
|
|
1
1
|
---
|
2
2
|
layout: docs
|
3
3
|
title: History
|
4
|
-
permalink: /docs/history/
|
4
|
+
permalink: "/docs/history/"
|
5
5
|
prev_section: contributing
|
6
6
|
---
|
7
7
|
|
8
|
+
## 0.2.0 / 2014-03-16
|
9
|
+
|
10
|
+
### Major Enhancements
|
11
|
+
- Add comments to MovableType importer ([#66]({{ site.repository }}/issues/66))
|
12
|
+
- Support auto-paragraph Wordpress convention ([#125]({{ site.repository }}/issues/125))
|
13
|
+
|
14
|
+
### Minor Enhancements
|
15
|
+
- Extract author info from wordpress XML files ([#131]({{ site.repository }}/issues/131))
|
16
|
+
|
17
|
+
### Bug Fixes
|
18
|
+
- Require YAML library in Enki importer ([#112]({{ site.repository }}/issues/112))
|
19
|
+
- Fix !ruby/string:Sequel::SQL::Blob error in MT excerpts ([#113]({{ site.repository }}/issues/113))
|
20
|
+
- Drupal6: Ensure post "tags" is "", never nil ([#117]({{ site.repository }}/issues/117))
|
21
|
+
- Fixes a bug where the Tumblr importer would write posts with `nil`
|
22
|
+
content ([#118]({{ site.repository }}/issues/118))
|
23
|
+
- Change Drupal7 layout to `post` rather than `default` ([#124]({{ site.repository }}/issues/124))
|
24
|
+
- WordPress: Use explicit `#to_s` when outputting post dates ([#129]({{ site.repository }}/issues/129))
|
25
|
+
|
26
|
+
### Site Enhancements
|
27
|
+
- Fixed error in quickstart code, added required design changes/reflow ([#120]({{ site.repository }}/issues/120))
|
28
|
+
- Fix example parameter names for Tumblr importer ([#122]({{ site.repository }}/issues/122))
|
29
|
+
- Add note to WordPress installer docs page that indicates what the importer
|
30
|
+
does and doesn't do. ([#127]({{ site.repository }}/issues/127))
|
31
|
+
|
32
|
+
### Development Fixes
|
33
|
+
- Bring gemspec into the 2010's ([#130]({{ site.repository }}/issues/130))
|
34
|
+
|
8
35
|
## 0.1.0 / 2013-12-18
|
9
36
|
|
10
37
|
### Major Enhancements
|
data/site/docs/wordpress.md
CHANGED
@@ -12,11 +12,14 @@ To import your posts from a [WordPress.com](http://wordpress.com) blog, run:
|
|
12
12
|
{% highlight bash %}
|
13
13
|
$ ruby -rubygems -e 'require "jekyll-import";
|
14
14
|
JekyllImport::Importers::WordpressDotCom.run({
|
15
|
-
"source" => "wordpress.xml"
|
15
|
+
"source" => "wordpress.xml",
|
16
|
+
"no_fetch_images" => false,
|
17
|
+
"assets_folder" => "assets"
|
16
18
|
})'
|
17
19
|
{% endhighlight %}
|
18
20
|
|
19
|
-
The `source`
|
21
|
+
The `source`, `no_fetch_images`, and `assets_folder` fields are not required.
|
22
|
+
Their default values are what you see above.
|
20
23
|
|
21
24
|
<div class="note">
|
22
25
|
<h5>ProTip™: WordPress.com Export Tool</h5>
|
data/test/helper.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
|
-
if
|
1
|
+
if ENV["COVERAGE"] == "true"
|
2
2
|
require 'simplecov'
|
3
3
|
require 'simplecov-gem-adapter'
|
4
4
|
SimpleCov.start('gem')
|
5
5
|
end
|
6
6
|
|
7
7
|
require 'test/unit'
|
8
|
-
require 'redgreen' if RUBY_VERSION < '1.9'
|
9
8
|
require 'shoulda'
|
10
9
|
require 'rr'
|
11
10
|
|
@@ -15,14 +14,14 @@ unless defined?(Test::Unit::AssertionFailedError)
|
|
15
14
|
end
|
16
15
|
end
|
17
16
|
|
18
|
-
|
19
|
-
require f
|
20
|
-
end
|
17
|
+
require File.expand_path('../../lib/jekyll-import.rb', __FILE__)
|
21
18
|
|
22
19
|
include JekyllImport
|
23
20
|
|
21
|
+
JekyllImport::Importer.subclasses.each(&:require_deps)
|
22
|
+
|
24
23
|
# Send STDERR into the void to suppress program output messages
|
25
|
-
STDERR.reopen(test(?e, '/dev/null') ? '/dev/null' : 'NUL:')
|
24
|
+
#STDERR.reopen(test(?e, '/dev/null') ? '/dev/null' : 'NUL:')
|
26
25
|
|
27
26
|
class Test::Unit::TestCase
|
28
27
|
include RR::Adapters::TestUnit
|
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.
|
4
|
+
version: 0.3.0
|
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: 2014-
|
11
|
+
date: 2014-05-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 3.
|
117
|
+
version: '3.5'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 3.
|
124
|
+
version: '3.5'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rr
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -262,6 +262,20 @@ dependencies:
|
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0.3'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: unidecode
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
265
279
|
- !ruby/object:Gem::Dependency
|
266
280
|
name: launchy
|
267
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -343,6 +357,7 @@ files:
|
|
343
357
|
- site/_posts/2013-11-18-jekyll-import-0-1-0-rc1-released.markdown
|
344
358
|
- site/_posts/2013-12-17-jekyll-import-0-1-0-released.markdown
|
345
359
|
- site/_posts/2014-03-16-jekyll-import-0-2-0-released.markdown
|
360
|
+
- site/_posts/2014-05-23-jekyll-import-0-3-0-released.markdown
|
346
361
|
- site/css/gridism.css
|
347
362
|
- site/css/normalize.css
|
348
363
|
- site/css/pygments.css
|