jekyll-import 0.1.0.rc1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.markdown +17 -0
- data/jekyll-import.gemspec +8 -2
- data/lib/jekyll-import.rb +1 -1
- data/lib/jekyll-import/importer.rb +9 -0
- data/lib/jekyll-import/importers/behance.rb +78 -0
- data/lib/jekyll-import/importers/ghost.rb +69 -0
- data/lib/jekyll-import/importers/s9y.rb +1 -1
- data/lib/jekyll/commands/import.rb +8 -9
- data/site/_includes/docs_contents.html +1 -1
- data/site/_includes/news_contents.html +1 -1
- data/site/_includes/news_contents_mobile.html +1 -1
- data/site/_posts/2013-12-17-jekyll-import-0-1-0-released.markdown +67 -0
- data/site/docs/behance.md +20 -0
- data/site/docs/csv.md +1 -1
- data/site/docs/enki.md +1 -1
- data/site/docs/ghost.md +19 -0
- data/site/docs/history.md +62 -0
- data/site/docs/installation.md +1 -1
- data/site/docs/usage.md +5 -4
- data/site/index.html +1 -1
- metadata +24 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73973a4031143ccdeea68fe8cabfc7ca023b4e8b
|
4
|
+
data.tar.gz: dd7ae5ee74214be7467c7a2ca0ebd92ef2db8178
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe41f15390fec872bd74c8f232f3b2d2c2f355367dbbfc741e8d75351ae46352f3ddd18cbddd35cfca47cd01ac0ecb9880de1f99d3de371f34aa690b9e88cc6f
|
7
|
+
data.tar.gz: 9d97135a8616376d69646f72ca81a80f1c452964c681e2722e0ff57bc564e74af445803c2479a52550254215a93e078016724cf574fe150d5e23ab5260aee886
|
data/History.markdown
CHANGED
@@ -1,6 +1,20 @@
|
|
1
1
|
## HEAD
|
2
2
|
|
3
3
|
### Major Enhancements
|
4
|
+
|
5
|
+
### Minor Enhancements
|
6
|
+
|
7
|
+
### Bug Fixes
|
8
|
+
|
9
|
+
### Site Enhancements
|
10
|
+
|
11
|
+
### Development Fixes
|
12
|
+
|
13
|
+
## 0.1.0 / 2013-12-18
|
14
|
+
|
15
|
+
### Major Enhancements
|
16
|
+
* Add 'Ghost' importer (#100)
|
17
|
+
* Add 'Behance' importer (#46, #104)
|
4
18
|
* Add the optional ability to include images in a posterous migration (#5)
|
5
19
|
* Posterous archive (unzipped directory) importer added (#12)
|
6
20
|
* Improve MovableType importer (#13)
|
@@ -43,6 +57,9 @@
|
|
43
57
|
* Fix interface of importers' `#process` method (#69)
|
44
58
|
* RSS importer should specify `--source` option (#81)
|
45
59
|
* Fix fetching of parameters from options hash (#86)
|
60
|
+
* Drupal6: Fix NoMethodError on untagged post (#93)
|
61
|
+
* S9Y: Use RSS parser from `rss` package, not the RSS importer (#102)
|
62
|
+
* Support as much of the current Commander interface as possible (#103)
|
46
63
|
|
47
64
|
### Site Enhancements
|
48
65
|
* Add the site (#87)
|
data/jekyll-import.gemspec
CHANGED
@@ -5,8 +5,8 @@ Gem::Specification.new do |s|
|
|
5
5
|
s.required_ruby_version = '>= 1.9.2'
|
6
6
|
|
7
7
|
s.name = 'jekyll-import'
|
8
|
-
s.version = '0.1.0
|
9
|
-
s.date = '2013-
|
8
|
+
s.version = '0.1.0'
|
9
|
+
s.date = '2013-12-18'
|
10
10
|
s.rubyforge_project = 'jekyll-import'
|
11
11
|
|
12
12
|
s.summary = "Import command for Jekyll (static site generator)."
|
@@ -46,6 +46,7 @@ Gem::Specification.new do |s|
|
|
46
46
|
s.add_development_dependency('mysql', "~> 2.8")
|
47
47
|
s.add_development_dependency('pg', "~> 0.12")
|
48
48
|
s.add_development_dependency('mysql2', "~> 0.3")
|
49
|
+
s.add_development_dependency('behance', "~> 0.3.0")
|
49
50
|
|
50
51
|
# = MANIFEST =
|
51
52
|
s.files = %w[
|
@@ -58,10 +59,12 @@ Gem::Specification.new do |s|
|
|
58
59
|
lib/jekyll-import.rb
|
59
60
|
lib/jekyll-import/importer.rb
|
60
61
|
lib/jekyll-import/importers.rb
|
62
|
+
lib/jekyll-import/importers/behance.rb
|
61
63
|
lib/jekyll-import/importers/csv.rb
|
62
64
|
lib/jekyll-import/importers/drupal6.rb
|
63
65
|
lib/jekyll-import/importers/drupal7.rb
|
64
66
|
lib/jekyll-import/importers/enki.rb
|
67
|
+
lib/jekyll-import/importers/ghost.rb
|
65
68
|
lib/jekyll-import/importers/google_reader.rb
|
66
69
|
lib/jekyll-import/importers/joomla.rb
|
67
70
|
lib/jekyll-import/importers/jrnl.rb
|
@@ -100,15 +103,18 @@ Gem::Specification.new do |s|
|
|
100
103
|
site/_layouts/news_item.html
|
101
104
|
site/_posts/2013-11-09-jekyll-import-0-1-0-beta4-release.markdown
|
102
105
|
site/_posts/2013-11-18-jekyll-import-0-1-0-rc1-released.markdown
|
106
|
+
site/_posts/2013-12-17-jekyll-import-0-1-0-released.markdown
|
103
107
|
site/css/gridism.css
|
104
108
|
site/css/normalize.css
|
105
109
|
site/css/pygments.css
|
106
110
|
site/css/style.css
|
111
|
+
site/docs/behance.md
|
107
112
|
site/docs/contributing.md
|
108
113
|
site/docs/csv.md
|
109
114
|
site/docs/drupal6.md
|
110
115
|
site/docs/drupal7.md
|
111
116
|
site/docs/enki.md
|
117
|
+
site/docs/ghost.md
|
112
118
|
site/docs/google_reader.md
|
113
119
|
site/docs/history.md
|
114
120
|
site/docs/index.md
|
data/lib/jekyll-import.rb
CHANGED
@@ -8,7 +8,16 @@ module JekyllImport
|
|
8
8
|
@subclasses ||= []
|
9
9
|
end
|
10
10
|
|
11
|
+
def self.stringify_keys(hash)
|
12
|
+
the_hash = hash.clone
|
13
|
+
the_hash.keys.each do |key|
|
14
|
+
the_hash[(key.to_s rescue key) || key] = the_hash.delete(key)
|
15
|
+
end
|
16
|
+
the_hash
|
17
|
+
end
|
18
|
+
|
11
19
|
def self.run(options = {})
|
20
|
+
options = stringify_keys(options)
|
12
21
|
self.require_deps
|
13
22
|
self.validate(options) if self.respond_to?(:validate)
|
14
23
|
self.process(options)
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module JekyllImport
|
2
|
+
module Importers
|
3
|
+
class Behance < Importer
|
4
|
+
def self.require_deps
|
5
|
+
JekyllImport.require_with_fallback(%w[
|
6
|
+
fileutils
|
7
|
+
safe_yaml
|
8
|
+
date
|
9
|
+
time
|
10
|
+
behance
|
11
|
+
])
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.specify_options(c)
|
15
|
+
c.option 'user', '--user NAME', 'The username of the account'
|
16
|
+
c.option 'api_token', '--api_token TOKEN', 'The API access token for the account'
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.validate(options)
|
20
|
+
%w[user api_token].each do |option|
|
21
|
+
if options[option].nil?
|
22
|
+
abort "Missing mandatory option --#{option}."
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Process the import.
|
28
|
+
#
|
29
|
+
# user - the behance user to retrieve projects (ID or username)
|
30
|
+
# api_token - your developer API Token
|
31
|
+
#
|
32
|
+
# Returns nothing.
|
33
|
+
def self.process(options)
|
34
|
+
user = options.fetch('user')
|
35
|
+
token = options.fetch('api_token')
|
36
|
+
|
37
|
+
projects = fetch_projects(token, user)
|
38
|
+
|
39
|
+
puts "#{projects.length} project(s) found. Importing now..."
|
40
|
+
|
41
|
+
projects.each do |project|
|
42
|
+
|
43
|
+
details = client.project(project['id'])
|
44
|
+
title = project['name'].to_s
|
45
|
+
formatted_date = Time.at(project['published_on'].to_i).to_date.to_s
|
46
|
+
|
47
|
+
post_name = title.split(%r{ |!|/|:|&|-|$|,}).map do |character|
|
48
|
+
character.downcase unless character.empty?
|
49
|
+
end.compact.join('-')
|
50
|
+
|
51
|
+
name = "#{formatted_date}-#{post_name}"
|
52
|
+
|
53
|
+
header = {
|
54
|
+
"layout" => "post",
|
55
|
+
"title" => title,
|
56
|
+
"project" => details
|
57
|
+
}
|
58
|
+
|
59
|
+
FileUtils.mkdir_p("_posts")
|
60
|
+
|
61
|
+
File.open("_posts/#{name}.md", "w") do |f|
|
62
|
+
f.puts header.to_yaml
|
63
|
+
f.puts "---\n\n"
|
64
|
+
f.puts details['description']
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
puts "Finished importing."
|
69
|
+
end
|
70
|
+
|
71
|
+
private
|
72
|
+
|
73
|
+
def self.fetch_projects(token, user)
|
74
|
+
Behance::Client.new(access_token: token).user_projects(user)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# NOTE: This migrator is made for Ghost sqlite databases.
|
2
|
+
module JekyllImport
|
3
|
+
module Importers
|
4
|
+
class Ghost < Importer
|
5
|
+
|
6
|
+
def self.specify_options(c)
|
7
|
+
c.option 'dbfile', '--dbfile', 'Database file (default: ghost.db)'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.require_deps
|
11
|
+
JekyllImport.require_with_fallback(%w[
|
12
|
+
rubygems
|
13
|
+
sequel
|
14
|
+
fileutils
|
15
|
+
safe_yaml
|
16
|
+
])
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.process(options)
|
20
|
+
posts = fetch_posts(options.fetch('dbfile', 'ghost.db'))
|
21
|
+
if !posts.empty?
|
22
|
+
FileUtils.mkdir_p("_posts")
|
23
|
+
FileUtils.mkdir_p("_drafts")
|
24
|
+
posts.each do |post|
|
25
|
+
write_post_to_file(post)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def self.fetch_posts(dbfile)
|
32
|
+
db = Sequel.sqlite(dbfile)
|
33
|
+
query = "SELECT `title`, `slug`, `markdown`, `created_at`, `status` FROM posts"
|
34
|
+
db[query]
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.write_post_to_file(post)
|
38
|
+
# detect if the post is a draft
|
39
|
+
draft = post[:status].eql?('draft')
|
40
|
+
|
41
|
+
# Ghost saves the time in an weird format with 3 more numbers.
|
42
|
+
# But the time is correct when we remove the last 3 numbers.
|
43
|
+
date = Time.at(post[:created_at].to_i.to_s[0..-4].to_i)
|
44
|
+
|
45
|
+
# the directory where the file will be saved to. either _drafts or _posts
|
46
|
+
directory = draft ? "_drafts" : "_posts"
|
47
|
+
|
48
|
+
# the filename under which the post is stored
|
49
|
+
filename = File.join(directory, "#{date.strftime('%Y-%m-%d')}-#{post[:slug]}.markdown")
|
50
|
+
|
51
|
+
# the YAML FrontMatter
|
52
|
+
frontmatter = { 'layout' => 'post', 'title' => post[:title] }
|
53
|
+
frontmatter['date'] = date if !draft # only add the date to the frontmatter when the post is published
|
54
|
+
frontmatter.delete_if { |k,v| v.nil? || v == '' } # removes empty fields
|
55
|
+
|
56
|
+
# write the posts to disk
|
57
|
+
write_file(filename, frontmatter.to_yaml, post[:markdown])
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.write_file(filename, frontmatter, content)
|
61
|
+
File.open(filename, "w") do |f|
|
62
|
+
f.puts frontmatter
|
63
|
+
f.puts "---"
|
64
|
+
f.puts content
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -1,16 +1,19 @@
|
|
1
1
|
$:.unshift File.expand_path("../../", File.dirname(__FILE__)) # load from jekyll-import/lib
|
2
2
|
require 'jekyll/command'
|
3
|
+
require 'jekyll-import'
|
3
4
|
|
4
5
|
module Jekyll
|
5
6
|
module Commands
|
6
7
|
class Import < Command
|
7
8
|
IMPORTERS = {
|
9
|
+
:behance => 'Behance',
|
8
10
|
:csv => 'CSV',
|
9
11
|
:drupal6 => 'Drupal6',
|
10
12
|
:drupal7 => 'Drupal7',
|
11
13
|
:enki => 'Enki',
|
12
14
|
:joomla => 'Joomla',
|
13
15
|
:jrnl => 'Jrnl',
|
16
|
+
:ghost => 'Ghost',
|
14
17
|
:google_reader => 'GoogleReader',
|
15
18
|
:marley => 'Marley',
|
16
19
|
:mephisto => 'Mephisto',
|
@@ -34,16 +37,12 @@ module Jekyll
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def self.process(migrator, options)
|
37
|
-
|
38
|
-
migrator = migrator.to_s.downcase
|
40
|
+
migrator = migrator.to_s.downcase
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
klass
|
44
|
-
klass.validate(options.__hash__) if klass.respond_to?(:validate)
|
45
|
-
puts 'Importing...'
|
46
|
-
klass.process(options.__hash__)
|
42
|
+
if IMPORTERS.keys.include?(migrator.to_sym)
|
43
|
+
if JekyllImport::Importers.const_defined?(IMPORTERS[migrator.to_sym])
|
44
|
+
klass = JekyllImport::Importers.const_get(IMPORTERS[migrator.to_sym])
|
45
|
+
klass.run(options.__hash__)
|
47
46
|
end
|
48
47
|
else
|
49
48
|
abort_on_invalid_migrator(migrator)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
<h4>Getting Started</h4>
|
4
4
|
{% include docs_ul.html items='home installation usage' %}
|
5
5
|
<h4>Importers</h4>
|
6
|
-
{% include docs_ul.html items='csv drupal6 drupal7 enki google_reader joomla jrnl marley mephisto mt posterous rss s9y textpattern tumblr typo wordpress wordpressdotcom' %}
|
6
|
+
{% include docs_ul.html items='csv drupal6 drupal7 enki ghost google_reader joomla jrnl marley mephisto mt posterous rss s9y textpattern tumblr typo wordpress wordpressdotcom' %}
|
7
7
|
<h4>Meta</h4>
|
8
8
|
{% include docs_ul.html items='third-party contributing history' %}
|
9
9
|
</aside>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<select onchange="if (this.value) window.location.href=this.value">
|
3
3
|
<option value="">Navigate the blog…</option>
|
4
4
|
<option value="/news/">Home</option>
|
5
|
-
<optgroup label="
|
5
|
+
<optgroup label="v0.x">
|
6
6
|
{% for post in site.posts %}
|
7
7
|
<option value="{{ post.url }}">{{ post.title }}</option>
|
8
8
|
{% endfor %}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
---
|
2
|
+
layout: news_item
|
3
|
+
title: 'jekyll-import 0.1.0 Released'
|
4
|
+
date: 2013-12-17 15:31:57 -0500
|
5
|
+
author: parkr
|
6
|
+
version: 0.1.0
|
7
|
+
categories: [release]
|
8
|
+
---
|
9
|
+
|
10
|
+
After a much-needed [bump from @schneems][], jekyll-import 0.1.0 has been
|
11
|
+
released! The first public (mostly-stable) release of jekyll-import, it includes
|
12
|
+
importers for the following services/formats:
|
13
|
+
|
14
|
+
- CSV
|
15
|
+
- Drupal (6 & 7)
|
16
|
+
- Enki
|
17
|
+
- Ghost
|
18
|
+
- Google Reader
|
19
|
+
- Joomla
|
20
|
+
- jrnl
|
21
|
+
- Marley
|
22
|
+
- Mephisto
|
23
|
+
- MovableType (MT)
|
24
|
+
- Posterous
|
25
|
+
- RSS
|
26
|
+
- S9Y
|
27
|
+
- TextPattern
|
28
|
+
- Tumblr
|
29
|
+
- Typo
|
30
|
+
- WordPress (database)
|
31
|
+
- WordPress.com (an exported `.xml` file)
|
32
|
+
|
33
|
+
We're still working out the kinks, so if you encounter any problems, please
|
34
|
+
[let us know!][]
|
35
|
+
|
36
|
+
Special thanks to all the contributors that helped make this project happen:
|
37
|
+
[@aniketpant](https://github.com/aniketpant),
|
38
|
+
[@ryangreenberg](https://github.com/ryangreenberg),
|
39
|
+
[@RayFranco](https://github.com/RayFranco),
|
40
|
+
[@mojombo](https://github.com/mojombo), [@gr4y](https://github.com/gr4y),
|
41
|
+
[@jinghao](https://github.com/jinghao),
|
42
|
+
[@benguild](https://github.com/benguild), [@tekkub](https://github.com/tekkub),
|
43
|
+
[@georgeanderson](https://github.com/georgeanderson),
|
44
|
+
[@joschi](https://github.com/joschi), [@drewish](https://github.com/drewish),
|
45
|
+
[@markhepburn](https://github.com/markhepburn),
|
46
|
+
[@x3ro](https://github.com/x3ro), [@dlo](https://github.com/dlo),
|
47
|
+
[@boone](https://github.com/boone), [@skopp](https://github.com/skopp),
|
48
|
+
[@timmillwood](https://github.com/timmillwood),
|
49
|
+
[@stevenbedrick](https://github.com/stevenbedrick),
|
50
|
+
[@arshad](https://github.com/arshad),
|
51
|
+
[@carols10cents](https://github.com/carols10cents),
|
52
|
+
[@chrisivens](https://github.com/chrisivens),
|
53
|
+
[@grobmeier](https://github.com/grobmeier),
|
54
|
+
[@vosechu](https://github.com/vosechu),
|
55
|
+
[@erikwebb](https://github.com/erikwebb),
|
56
|
+
[@clioweb](https://github.com/clioweb),
|
57
|
+
[@joeyates](https://github.com/joeyates), [@tjun](https://github.com/tjun),
|
58
|
+
[@lewisnyman](https://github.com/lewisnyman),
|
59
|
+
[@mbainter](https://github.com/mbainter),
|
60
|
+
[@mattrose](https://github.com/mattrose),
|
61
|
+
[@shigeya](https://github.com/shigeya),
|
62
|
+
[@albertogg](https://github.com/albertogg),
|
63
|
+
[@clayt0nk](https://github.com/clayt0nk), and
|
64
|
+
[@docunext](https://github.com/docunext)!
|
65
|
+
|
66
|
+
[bump from @schneems]: https://github.com/jekyll/jekyll-import/issues/110
|
67
|
+
[let us know!]: https://github.com/jekyll/jekyll-import/issues/72
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Behance
|
4
|
+
prev_section: usage
|
5
|
+
link_source: behance
|
6
|
+
next_section: csv
|
7
|
+
permalink: /docs/behance/
|
8
|
+
---
|
9
|
+
|
10
|
+
To import your posts from your [Behance](http://behance.com), generate an API token for your user account and run:
|
11
|
+
|
12
|
+
{% highlight bash %}
|
13
|
+
$ ruby -rubygems -e 'require "jekyll-import";
|
14
|
+
JekyllImport::Importers::Behance.run({
|
15
|
+
"user" => "my_username",
|
16
|
+
"api_token" => "my_api_token"
|
17
|
+
})'
|
18
|
+
{% endhighlight %}
|
19
|
+
|
20
|
+
Both `user` and `api_token` are required.
|
data/site/docs/csv.md
CHANGED
data/site/docs/enki.md
CHANGED
data/site/docs/ghost.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
layout: docs
|
3
|
+
title: Ghost
|
4
|
+
prev_section: enki
|
5
|
+
link_source: ghost
|
6
|
+
next_section: google_reader
|
7
|
+
permalink: /docs/ghost/
|
8
|
+
---
|
9
|
+
|
10
|
+
To import your posts from your self-hosted Ghost instance, you first have to download your ghost.db from your server and run:
|
11
|
+
|
12
|
+
{% highlight bash %}
|
13
|
+
$ ruby -rubygems -e 'require "jekyll-import";
|
14
|
+
JekyllImport::Importers::Ghost.run({
|
15
|
+
"dbfile" => "/path/to/your/ghost.db"
|
16
|
+
})'
|
17
|
+
{% endhighlight %}
|
18
|
+
|
19
|
+
There are no required fields. `dbfile` defaults to `"ghost.db"`.
|
data/site/docs/history.md
CHANGED
@@ -5,3 +5,65 @@ permalink: /docs/history/
|
|
5
5
|
prev_section: contributing
|
6
6
|
---
|
7
7
|
|
8
|
+
## 0.1.0 / 2013-12-18
|
9
|
+
|
10
|
+
### Major Enhancements
|
11
|
+
- Add 'Ghost' importer ([#100]({{ site.repository }}/issues/100))
|
12
|
+
- Add 'Behance' importer ([#46]({{ site.repository }}/issues/46), [#104]({{ site.repository }}/issues/104))
|
13
|
+
- Add the optional ability to include images in a posterous migration ([#5]({{ site.repository }}/issues/5))
|
14
|
+
- Posterous archive (unzipped directory) importer added ([#12]({{ site.repository }}/issues/12))
|
15
|
+
- Improve MovableType importer ([#13]({{ site.repository }}/issues/13))
|
16
|
+
- Add an importer for Google Reader blog exports ([#36]({{ site.repository }}/issues/36))
|
17
|
+
- Remove dependency on html2text in the tumblr importer ([#33]({{ site.repository }}/issues/33))
|
18
|
+
- Add the ability to import .jrnl files ([#51]({{ site.repository }}/issues/51))
|
19
|
+
- Handle missing gems a bit more gracefully ([#59]({{ site.repository }}/issues/59))
|
20
|
+
|
21
|
+
### Minor Enhancements
|
22
|
+
- Add date and redirection pages for blogs imported from Tumblr ([#54]({{ site.repository }}/issues/54))
|
23
|
+
- Various Tumblr Enhancements ([#27]({{ site.repository }}/issues/27))
|
24
|
+
- Adding tags to Typo and forcing their encoding to UTF-8 ([#11]({{ site.repository }}/issues/11))
|
25
|
+
- S9Y Importer: specify data source using --source option ([#18]({{ site.repository }}/issues/18))
|
26
|
+
- Add taxonomy (`tags`) to Drupal6 migration ([#15]({{ site.repository }}/issues/15))
|
27
|
+
- Differentiate between categories and tags in the WordpressDotCom
|
28
|
+
importer ([#31]({{ site.repository }}/issues/31))
|
29
|
+
- Use tumblr slug for post is available, use that instead ([#39]({{ site.repository }}/issues/39), [#40]({{ site.repository }}/issues/40))
|
30
|
+
- Drupal 7 importer should use latest revision of a post ([#38]({{ site.repository }}/issues/38))
|
31
|
+
- Improve the handling of tags in the Drupal 6 importer. Tags with
|
32
|
+
spaces are handled now and the importer doesn't eat tags anymore. ([#42]({{ site.repository }}/issues/42))
|
33
|
+
- Upgrade to `jekyll ~> 1.3` and `safe_yaml ~> 0.9.7`
|
34
|
+
- Add license to gemspec ([#83]({{ site.repository }}/issues/83))
|
35
|
+
- Add an `Importer.run` method for easy invocation ([#88]({{ site.repository }}/issues/88))
|
36
|
+
|
37
|
+
### Bug Fixes
|
38
|
+
- Remove usage of `Hash#at` in Tumblr importer ([#14]({{ site.repository }}/issues/14))
|
39
|
+
- Force encoding of Drupal 6.x titles to UTF-8 ([#22]({{ site.repository }}/issues/22))
|
40
|
+
- Update wordpressdotcom.rb to use its method parameter correctly ([#24]({{ site.repository }}/issues/24))
|
41
|
+
- Use MySQL2 adapter for WordPress importer to fix broken front-matter ([#20]({{ site.repository }}/issues/20))
|
42
|
+
- Fix WordPress import initialize parameters due to new Jekyll setup ([#19]({{ site.repository }}/issues/19))
|
43
|
+
- Fixed misspelling in method name ([#17]({{ site.repository }}/issues/17))
|
44
|
+
- Fix Drupal 7 importer so it compares node ID's properly between `node` and
|
45
|
+
`field_data_body` tables ([#38]({{ site.repository }}/issues/38))
|
46
|
+
- Fix prefix replacement for Drupal6 ([#41]({{ site.repository }}/issues/41))
|
47
|
+
- Fix an exception when a Movable Type blog did not have additional
|
48
|
+
entry text ([#45]({{ site.repository }}/issues/45))
|
49
|
+
- Create `_layouts/` before writing refresh.html in Drupal migrators ([#48]({{ site.repository }}/issues/48))
|
50
|
+
- Fix bug where post date in `MT` importer was not imported for older versions
|
51
|
+
of MT sites ([#62]({{ site.repository }}/issues/62))
|
52
|
+
- Fix interface of importers' `#process` method ([#69]({{ site.repository }}/issues/69))
|
53
|
+
- RSS importer should specify `--source` option ([#81]({{ site.repository }}/issues/81))
|
54
|
+
- Fix fetching of parameters from options hash ([#86]({{ site.repository }}/issues/86))
|
55
|
+
- Drupal6: Fix NoMethodError on untagged post ([#93]({{ site.repository }}/issues/93))
|
56
|
+
- S9Y: Use RSS parser from `rss` package, not the RSS importer ([#102]({{ site.repository }}/issues/102))
|
57
|
+
- Support as much of the current Commander interface as possible ([#103]({{ site.repository }}/issues/103))
|
58
|
+
|
59
|
+
### Site Enhancements
|
60
|
+
- Add the site ([#87]({{ site.repository }}/issues/87))
|
61
|
+
|
62
|
+
### Development Fixes
|
63
|
+
- Update usage docs in RSS importer ([#35]({{ site.repository }}/issues/35))
|
64
|
+
- Added initial version of a test case for Tumblr ([#43]({{ site.repository }}/issues/43))
|
65
|
+
- Remove some outdated comments in the Drupal migrators ([#50]({{ site.repository }}/issues/50))
|
66
|
+
- Update the README to be more informative ([#52]({{ site.repository }}/issues/52))
|
67
|
+
- Add comment to Wordpress importer on how to install mysql with
|
68
|
+
MacPorts ([#56]({{ site.repository }}/issues/56))
|
69
|
+
- Correcting the homepage URL so links from rubygems.org will work ([#63]({{ site.repository }}/issues/63))
|
data/site/docs/installation.md
CHANGED
@@ -13,7 +13,7 @@ you need to do is install the gem, and they will become available as part of
|
|
13
13
|
Jekyll's standard command line interface.
|
14
14
|
|
15
15
|
{% highlight bash %}
|
16
|
-
$ gem install jekyll-import
|
16
|
+
$ gem install jekyll-import
|
17
17
|
{% endhighlight %}
|
18
18
|
|
19
19
|
<div class="note warning">
|
data/site/docs/usage.md
CHANGED
@@ -6,12 +6,13 @@ next_section: csv
|
|
6
6
|
permalink: /docs/usage/
|
7
7
|
---
|
8
8
|
|
9
|
-
You should now be all set to run the importers
|
10
|
-
can see help for each importer:
|
9
|
+
You should now be all set to run the importers with the following incantation:
|
11
10
|
|
12
11
|
{% highlight bash %}
|
13
|
-
$
|
14
|
-
|
12
|
+
$ ruby -rubygems -e 'require "jekyll-import";
|
13
|
+
JekyllImport::Importers::MyImporter.run({
|
14
|
+
# options for this importer
|
15
|
+
})'
|
15
16
|
{% endhighlight %}
|
16
17
|
|
17
18
|
Where IMPORTER is the name of the specific importer.
|
data/site/index.html
CHANGED
@@ -46,7 +46,7 @@ overview: true
|
|
46
46
|
<p class="line">
|
47
47
|
<span class="path">~</span>
|
48
48
|
<span class="prompt">$</span>
|
49
|
-
<span class="command">gem install jekyll</span>
|
49
|
+
<span class="command">gem install jekyll jekyll-import</span>
|
50
50
|
</p>
|
51
51
|
<p class="line">
|
52
52
|
<span class="path">~</span>
|
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
|
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-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -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: behance
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ~>
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: 0.3.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.3.0
|
265
279
|
description: Provides the Import command for Jekyll.
|
266
280
|
email: tom@mojombo.com
|
267
281
|
executables: []
|
@@ -279,10 +293,12 @@ files:
|
|
279
293
|
- lib/jekyll-import.rb
|
280
294
|
- lib/jekyll-import/importer.rb
|
281
295
|
- lib/jekyll-import/importers.rb
|
296
|
+
- lib/jekyll-import/importers/behance.rb
|
282
297
|
- lib/jekyll-import/importers/csv.rb
|
283
298
|
- lib/jekyll-import/importers/drupal6.rb
|
284
299
|
- lib/jekyll-import/importers/drupal7.rb
|
285
300
|
- lib/jekyll-import/importers/enki.rb
|
301
|
+
- lib/jekyll-import/importers/ghost.rb
|
286
302
|
- lib/jekyll-import/importers/google_reader.rb
|
287
303
|
- lib/jekyll-import/importers/joomla.rb
|
288
304
|
- lib/jekyll-import/importers/jrnl.rb
|
@@ -321,15 +337,18 @@ files:
|
|
321
337
|
- site/_layouts/news_item.html
|
322
338
|
- site/_posts/2013-11-09-jekyll-import-0-1-0-beta4-release.markdown
|
323
339
|
- site/_posts/2013-11-18-jekyll-import-0-1-0-rc1-released.markdown
|
340
|
+
- site/_posts/2013-12-17-jekyll-import-0-1-0-released.markdown
|
324
341
|
- site/css/gridism.css
|
325
342
|
- site/css/normalize.css
|
326
343
|
- site/css/pygments.css
|
327
344
|
- site/css/style.css
|
345
|
+
- site/docs/behance.md
|
328
346
|
- site/docs/contributing.md
|
329
347
|
- site/docs/csv.md
|
330
348
|
- site/docs/drupal6.md
|
331
349
|
- site/docs/drupal7.md
|
332
350
|
- site/docs/enki.md
|
351
|
+
- site/docs/ghost.md
|
333
352
|
- site/docs/google_reader.md
|
334
353
|
- site/docs/history.md
|
335
354
|
- site/docs/index.md
|
@@ -384,12 +403,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
384
403
|
version: 1.9.2
|
385
404
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
386
405
|
requirements:
|
387
|
-
- - '
|
406
|
+
- - '>='
|
388
407
|
- !ruby/object:Gem::Version
|
389
|
-
version:
|
408
|
+
version: '0'
|
390
409
|
requirements: []
|
391
410
|
rubyforge_project: jekyll-import
|
392
|
-
rubygems_version: 2.0.
|
411
|
+
rubygems_version: 2.0.14
|
393
412
|
signing_key:
|
394
413
|
specification_version: 2
|
395
414
|
summary: Import command for Jekyll (static site generator).
|