jekyll-import 0.18.0 → 0.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/jekyll-import/importer.rb +1 -1
- data/lib/jekyll-import/importers/blogger.rb +4 -4
- data/lib/jekyll-import/importers/dotclear.rb +124 -0
- data/lib/jekyll-import/importers/marley.rb +1 -1
- data/lib/jekyll-import/importers/mephisto.rb +1 -1
- data/lib/jekyll-import/importers/mt.rb +1 -1
- data/lib/jekyll-import/importers/pluxml.rb +82 -0
- data/lib/jekyll-import/importers/roller.rb +1 -1
- data/lib/jekyll-import/importers/rss.rb +7 -6
- data/lib/jekyll-import/importers/s9y_database.rb +2 -2
- data/lib/jekyll-import/importers/tumblr.rb +2 -2
- data/lib/jekyll-import/importers/typo.rb +3 -3
- data/lib/jekyll-import/importers/wordpress.rb +1 -1
- data/lib/jekyll-import/importers/wordpressdotcom.rb +12 -2
- data/lib/jekyll-import/version.rb +1 -1
- data/lib/jekyll/commands/import.rb +1 -1
- metadata +13 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 334724ebd0dbdc9774dd2e4799dea04dc5adaacc911d05cfc26f2a5daf23bbfa
|
4
|
+
data.tar.gz: 79a4f8c6de087aebca9f726275ebb3c234361b7341a01ce10c544ff65a0b6bac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d716d81c1e596e1004a65eadaa6c4df3e130d134d0b3db0fef7e06151350a90525f59db50aefd6f771950b0698f174fe19311dca7134c3488be970b85e76737a
|
7
|
+
data.tar.gz: f5ee7ba0c29bfad8267482789e2f571ee2d6ccafd343d173c9e9408b1c6c9c25941f28476386c3076310ec630fc5ff84c7ef12aaac2bc934aa1b8ee8e11010f5
|
@@ -258,8 +258,8 @@ module JekyllImport
|
|
258
258
|
body = @in_entry_elem[:body]
|
259
259
|
|
260
260
|
# body escaping associated with liquid
|
261
|
-
body.gsub!(%r!{{!, '{{ "{{" }}') if
|
262
|
-
body.gsub!(%r!{%!, '{{ "{%" }}') if
|
261
|
+
body.gsub!(%r!{{!, '{{ "{{" }}') if %r!{{!.match?(body)
|
262
|
+
body.gsub!(%r!{%!, '{{ "{%" }}') if %r!{%!.match?(body)
|
263
263
|
|
264
264
|
{ :filename => filename, :header => header, :body => body }
|
265
265
|
elsif @in_entry_elem[:meta][:kind] == "comment"
|
@@ -291,8 +291,8 @@ module JekyllImport
|
|
291
291
|
body = @in_entry_elem[:body]
|
292
292
|
|
293
293
|
# body escaping associated with liquid
|
294
|
-
body.gsub!(%r!{{!, '{{ "{{" }}') if
|
295
|
-
body.gsub!(%r!{%!, '{{ "{%" }}') if
|
294
|
+
body.gsub!(%r!{{!, '{{ "{{" }}') if %r!{{!.match?(body)
|
295
|
+
body.gsub!(%r!{%!, '{{ "{%" }}') if %r!{%!.match?(body)
|
296
296
|
|
297
297
|
{ :filename => filename, :header => header, :body => body }
|
298
298
|
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Tested with dotClear 2.1.5
|
4
|
+
module JekyllImport
|
5
|
+
module Importers
|
6
|
+
class Dotclear < Importer
|
7
|
+
def self.specify_options(c)
|
8
|
+
c.option "datafile", "--datafile PATH", "dotClear export file"
|
9
|
+
c.option "mediafolder", "--mediafolder PATH", "dotClear media export folder (media.zip inflated)"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.require_deps
|
13
|
+
JekyllImport.require_with_fallback(%w(
|
14
|
+
rubygems
|
15
|
+
fileutils
|
16
|
+
safe_yaml
|
17
|
+
date
|
18
|
+
active_support
|
19
|
+
active_support/core_ext/string/inflections
|
20
|
+
csv
|
21
|
+
pp
|
22
|
+
))
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.validate(opts)
|
26
|
+
abort "Specify a data file !" if opts["datafile"].nil? || opts["datafile"].empty?
|
27
|
+
abort "Specify a media folder !" if opts["mediafolder"].nil? || opts["mediafolder"].empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.extract_headers_section(str)
|
31
|
+
str[1..-2].split(" ")[1].split(",")
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.extract_data_section(str)
|
35
|
+
str.gsub(%r!^"!, "").gsub(%r!"$!, "").split('","')
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.process(opts)
|
39
|
+
options = {
|
40
|
+
:datafile => opts.fetch("datafile", ""),
|
41
|
+
:mediafolder => opts.fetch("mediafolder", ""),
|
42
|
+
}
|
43
|
+
|
44
|
+
FileUtils.mkdir_p("_posts")
|
45
|
+
FileUtils.mkdir_p("_drafts")
|
46
|
+
|
47
|
+
type_data = ""
|
48
|
+
headers = {}
|
49
|
+
posts_and_drafts = {}
|
50
|
+
keywords = {}
|
51
|
+
|
52
|
+
File.readlines(options[:datafile]).each do |lineraw|
|
53
|
+
line = lineraw.strip.gsub(%r!\n$!, "")
|
54
|
+
|
55
|
+
next if line.empty?
|
56
|
+
|
57
|
+
if line.start_with?("[") # post | media \ meta | comment...
|
58
|
+
type_data = line.split(" ").first[1..-1]
|
59
|
+
headers[type_data] = extract_headers_section(line)
|
60
|
+
next
|
61
|
+
end
|
62
|
+
|
63
|
+
elts = extract_data_section(line)
|
64
|
+
|
65
|
+
if type_data == "post"
|
66
|
+
draft = (elts[headers[type_data].index("post_status")] != "1")
|
67
|
+
|
68
|
+
date_str = elts[headers[type_data].index("post_creadt")]
|
69
|
+
date_blank = (date_str.nil? || date_str.empty?)
|
70
|
+
date_str_formatted = date_blank ? Date.today : Date.parse(date_str).strftime("%Y-%m-%d")
|
71
|
+
title_param = elts[headers[type_data].index("post_title")].to_s.parameterize
|
72
|
+
|
73
|
+
content = elts[headers[type_data].index("post_content_xhtml")].to_s
|
74
|
+
content = content.gsub('\"', '"').gsub('\n', "\n").gsub("/public/", "/assets/images/")
|
75
|
+
|
76
|
+
filepath = File.join(Dir.pwd, (draft ? "_drafts" : "_posts"), "#{date_str_formatted}-#{title_param}.html")
|
77
|
+
|
78
|
+
entire_content_file = <<~POST_FILE
|
79
|
+
---
|
80
|
+
layout: post
|
81
|
+
title: "#{elts[headers[type_data].index("post_title")]}"
|
82
|
+
date: #{elts[headers[type_data].index("post_creadt")]} +0100
|
83
|
+
tags: ABC
|
84
|
+
---
|
85
|
+
|
86
|
+
#{content}
|
87
|
+
POST_FILE
|
88
|
+
|
89
|
+
posts_and_drafts[elts[headers[type_data].index("post_id")]] = { :path => filepath, :content => entire_content_file }
|
90
|
+
elsif type_data == "media"
|
91
|
+
elts[headers[type_data].index("media_title")]
|
92
|
+
mediafilepath = elts[headers[type_data].index("media_file")]
|
93
|
+
|
94
|
+
src_path = File.join(options[:mediafolder], mediafilepath)
|
95
|
+
dst_path = File.join(Dir.pwd, "assets", "images", mediafilepath.to_s)
|
96
|
+
|
97
|
+
FileUtils.mkdir_p(File.dirname(dst_path))
|
98
|
+
FileUtils.cp(src_path, dst_path)
|
99
|
+
elsif type_data == "meta"
|
100
|
+
keywords[elts[headers[type_data].index("post_id")]] ||= []
|
101
|
+
keywords[elts[headers[type_data].index("post_id")]] << elts[headers[type_data].index("meta_id")]
|
102
|
+
elsif type_data == "link"
|
103
|
+
|
104
|
+
elsif type_data == "setting"
|
105
|
+
|
106
|
+
elsif type_data == "comment"
|
107
|
+
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
# POST-process : Change media path in posts and drafts
|
112
|
+
posts_and_drafts.each do |post_id, hsh|
|
113
|
+
keywords_str = keywords[post_id].to_a.join(", ")
|
114
|
+
content_file = hsh[:content]
|
115
|
+
content_file = content_file.gsub("tags: ABC", "tags: [#{keywords_str}]")
|
116
|
+
|
117
|
+
File.open(hsh[:path], "wb") do |f|
|
118
|
+
f.write(content_file)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
@@ -48,7 +48,7 @@ module JekyllImport
|
|
48
48
|
title = file_content.scan(regexp[:title]).first.to_s.strip
|
49
49
|
prerex = file_content.scan(regexp[:perex]).first.to_s.strip
|
50
50
|
published_on = DateTime.parse(post[:published_on]) rescue File.mtime(File.dirname(f))
|
51
|
-
meta
|
51
|
+
meta = meta_content ? YAML.safe_load(meta_content.scan(regexp[:meta]).to_s) : {}
|
52
52
|
meta["title"] = title
|
53
53
|
meta["layout"] = "post"
|
54
54
|
|
@@ -69,7 +69,7 @@ module JekyllImport
|
|
69
69
|
# comments:: If true, output comments in _comments directory, like the one
|
70
70
|
# mentioned at https://github.com/mpalmer/jekyll-static-comments/
|
71
71
|
def self.process(options)
|
72
|
-
options
|
72
|
+
options = default_options.merge(options)
|
73
73
|
|
74
74
|
comments = options.fetch("comments")
|
75
75
|
posts_name_by_id = {} if comments
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JekyllImport
|
4
|
+
module Importers
|
5
|
+
class Pluxml < Importer
|
6
|
+
def self.require_deps
|
7
|
+
JekyllImport.require_with_fallback(%w(
|
8
|
+
nokogiri
|
9
|
+
fileutils
|
10
|
+
safe_yaml
|
11
|
+
))
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.specify_options(c)
|
15
|
+
c.option "source", "--source NAME", "The PluXML data directory to import"
|
16
|
+
c.option "layout", "--layout NAME", "The layout to apply"
|
17
|
+
c.option "avoid_liquid", "--avoid_liquid true", "Will add render_with_liquid: false in frontmatter"
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.validate(options)
|
21
|
+
abort "Missing mandatory option --source." if options["source"].nil?
|
22
|
+
# no layout option, layout by default is post
|
23
|
+
options["layout"] = "post" if options["layout"].nil?
|
24
|
+
# no avoid_liquid option, avoid_liquid by default is false
|
25
|
+
options["avoid_liquid"] = false if options["avoid_liquid"].nil?
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.process(options)
|
29
|
+
source = options.fetch("source")
|
30
|
+
layout = options.fetch("layout")
|
31
|
+
avoid_liquid = options.fetch("avoid_liquid")
|
32
|
+
|
33
|
+
FileUtils.mkdir_p("_posts")
|
34
|
+
FileUtils.mkdir_p("_drafts")
|
35
|
+
|
36
|
+
# for each XML file in source location
|
37
|
+
Dir.glob("*.xml", :base => source).each do |df|
|
38
|
+
df = File.join(source, df)
|
39
|
+
filename = File.basename(df, ".*")
|
40
|
+
|
41
|
+
# prepare post file name in Jekyll format
|
42
|
+
a_filename = filename.split(".")
|
43
|
+
post_name = a_filename.pop
|
44
|
+
file_date = a_filename.pop
|
45
|
+
post_date = file_date[0..3] + "-" + file_date[4..5] + "-" + file_date[6..7]
|
46
|
+
|
47
|
+
# if draft, only take post name
|
48
|
+
if filename.split(".")[1].split(",")[0] == "draft"
|
49
|
+
directory = "_drafts"
|
50
|
+
name = post_name.to_s
|
51
|
+
# if post, post date precede post name
|
52
|
+
else
|
53
|
+
directory = "_posts"
|
54
|
+
name = "#{post_date}-#{post_name}"
|
55
|
+
end
|
56
|
+
|
57
|
+
xml = File.open(df) { |f| Nokogiri::XML(f) }
|
58
|
+
raise "There doesn't appear to be any XML items at the source (#{df}) provided." unless xml
|
59
|
+
|
60
|
+
doc = xml.xpath("document")
|
61
|
+
header = {
|
62
|
+
"layout" => layout,
|
63
|
+
"title" => doc.xpath("title").text,
|
64
|
+
"tags" => doc.xpath("tags").text.split(", "),
|
65
|
+
}
|
66
|
+
header["render_with_liquid"] = false if avoid_liquid
|
67
|
+
|
68
|
+
path = File.join(directory, "#{name}.html")
|
69
|
+
File.open(path, "w") do |f|
|
70
|
+
f.puts header.to_yaml
|
71
|
+
f.puts "---\n\n"
|
72
|
+
f.puts doc.xpath("chapo").text
|
73
|
+
f.puts doc.xpath("content").text
|
74
|
+
end
|
75
|
+
|
76
|
+
Jekyll.logger.info "Wrote file #{path} successfully!"
|
77
|
+
end
|
78
|
+
nil
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -80,7 +80,7 @@ module JekyllImport
|
|
80
80
|
begin
|
81
81
|
require "htmlentities"
|
82
82
|
rescue LoadError
|
83
|
-
|
83
|
+
warn "Could not require 'htmlentities', so the :clean_entities option is now disabled."
|
84
84
|
options[:clean_entities] = false
|
85
85
|
end
|
86
86
|
end
|
@@ -41,9 +41,7 @@ module JekyllImport
|
|
41
41
|
|
42
42
|
rss.items.each do |item|
|
43
43
|
formatted_date = item.date.strftime("%Y-%m-%d")
|
44
|
-
post_name = item.title
|
45
|
-
i.downcase if i != ""
|
46
|
-
end.compact.join("-")
|
44
|
+
post_name = Jekyll::Utils.slugify(item.title, :mode => "latin")
|
47
45
|
name = "#{formatted_date}-#{post_name}"
|
48
46
|
|
49
47
|
header = {
|
@@ -51,18 +49,21 @@ module JekyllImport
|
|
51
49
|
"title" => item.title,
|
52
50
|
}
|
53
51
|
|
54
|
-
header["tag"] = options["tag"] unless options.
|
52
|
+
header["tag"] = options["tag"] unless options["tag"].nil? || options["tag"].empty?
|
55
53
|
|
56
54
|
frontmatter.each do |value|
|
57
55
|
header[value] = item.send(value)
|
58
56
|
end
|
59
57
|
|
60
|
-
output = ""
|
58
|
+
output = +""
|
61
59
|
|
62
60
|
body.each do |row|
|
63
|
-
output
|
61
|
+
output << item.send(row).to_s
|
64
62
|
end
|
65
63
|
|
64
|
+
output.strip!
|
65
|
+
output = item.content_encoded if output.empty?
|
66
|
+
|
66
67
|
FileUtils.mkdir_p("_posts")
|
67
68
|
|
68
69
|
File.open("_posts/#{name}.html", "w") do |f|
|
@@ -207,7 +207,7 @@ module JekyllImport
|
|
207
207
|
require gem_name
|
208
208
|
true
|
209
209
|
rescue LoadError
|
210
|
-
|
210
|
+
warn "Could not require '#{gem_name}', so the :#{option_name} option is now disabled."
|
211
211
|
true
|
212
212
|
end
|
213
213
|
|
@@ -278,7 +278,7 @@ module JekyllImport
|
|
278
278
|
end
|
279
279
|
|
280
280
|
def self.process_tags(db, options, post)
|
281
|
-
return [] unless options[:
|
281
|
+
return [] unless options[:tags]
|
282
282
|
|
283
283
|
px = options[:table_prefix]
|
284
284
|
|
@@ -266,7 +266,7 @@ module JekyllImport
|
|
266
266
|
lang = "python"
|
267
267
|
start = i
|
268
268
|
elsif block
|
269
|
-
lang = "javascript" if
|
269
|
+
lang = "javascript" if %r!;$!.match?(line)
|
270
270
|
block = line =~ indent && i < lines.size - 1 # Also handle EOF
|
271
271
|
unless block
|
272
272
|
lines[start] = "{% highlight #{lang} %}"
|
@@ -283,7 +283,7 @@ module JekyllImport
|
|
283
283
|
return url unless @grab_images
|
284
284
|
|
285
285
|
path = "tumblr_files/#{url.split("/").last}"
|
286
|
-
path += ext unless
|
286
|
+
path += ext unless %r!#{ext}$!.match?(path)
|
287
287
|
FileUtils.mkdir_p "tumblr_files"
|
288
288
|
|
289
289
|
# Don't fetch if we've already cached this file
|
@@ -55,7 +55,7 @@ module JekyllImport
|
|
55
55
|
raise "Unknown database server '#{server}'"
|
56
56
|
end
|
57
57
|
db[SQL].each do |post|
|
58
|
-
next unless
|
58
|
+
next unless %r!published!i.match?(post[:state])
|
59
59
|
|
60
60
|
post[:slug] = "no slug" if post[:slug].nil?
|
61
61
|
|
@@ -77,8 +77,8 @@ module JekyllImport
|
|
77
77
|
|
78
78
|
File.open("_posts/#{name}", "w") do |f|
|
79
79
|
f.puts({ "layout" => "post",
|
80
|
-
"title" =>
|
81
|
-
"tags" =>
|
80
|
+
"title" => post[:title]&.to_s&.force_encoding("UTF-8"),
|
81
|
+
"tags" => post[:keywords]&.to_s&.force_encoding("UTF-8"),
|
82
82
|
"typo_id" => post[:id], }.delete_if { |_k, v| v.nil? || v == "" }.to_yaml)
|
83
83
|
f.puts "---"
|
84
84
|
f.puts post[:body].delete("\r")
|
@@ -101,7 +101,7 @@ module JekyllImport
|
|
101
101
|
begin
|
102
102
|
require "htmlentities"
|
103
103
|
rescue LoadError
|
104
|
-
|
104
|
+
warn "Could not require 'htmlentities', so the " \
|
105
105
|
":clean_entities option is now disabled."
|
106
106
|
options[:clean_entities] = false
|
107
107
|
end
|
@@ -30,14 +30,15 @@ module JekyllImport
|
|
30
30
|
images.each do |i|
|
31
31
|
uri = i["src"]
|
32
32
|
|
33
|
-
i["src"] = format("{{ site.baseurl }}/%s/%s", assets_folder, File.basename(uri))
|
34
33
|
dst = File.join(assets_folder, File.basename(uri))
|
34
|
+
i["src"] = File.join("{{ site.baseurl }}", dst)
|
35
35
|
Jekyll.logger.info uri
|
36
36
|
if File.exist?(dst)
|
37
37
|
Jekyll.logger.info "Already in cache. Clean assets folder if you want a redownload."
|
38
38
|
next
|
39
39
|
end
|
40
40
|
begin
|
41
|
+
FileUtils.mkdir_p assets_folder
|
41
42
|
OpenURI.open_uri(uri, :allow_redirections => :safe) do |f|
|
42
43
|
File.open(dst, "wb") do |out|
|
43
44
|
out.puts f.read
|
@@ -191,7 +192,16 @@ module JekyllImport
|
|
191
192
|
content = Hpricot(item.text_for("content:encoded"))
|
192
193
|
header["excerpt"] = item.excerpt if item.excerpt
|
193
194
|
|
194
|
-
|
195
|
+
if fetch
|
196
|
+
# Put the images into a /yyyy/mm/ subfolder to reduce clashes
|
197
|
+
assets_dir_path = if item.published_at
|
198
|
+
File.join(assets_folder, item.published_at.strftime("/%Y/%m"))
|
199
|
+
else
|
200
|
+
assets_folder
|
201
|
+
end
|
202
|
+
|
203
|
+
download_images(item.title, content, assets_dir_path)
|
204
|
+
end
|
195
205
|
|
196
206
|
FileUtils.mkdir_p item.directory_name
|
197
207
|
File.open(File.join(item.directory_name, item.file_name), "w") do |f|
|
@@ -64,7 +64,7 @@ module Jekyll
|
|
64
64
|
|
65
65
|
def abort_on_invalid_migrator(migrator)
|
66
66
|
warn "Sorry, '#{migrator}' isn't a valid migrator. Valid choices:"
|
67
|
-
IMPORTERS.
|
67
|
+
IMPORTERS.each_key { |k| warn "* #{k}" }
|
68
68
|
raise "'#{migrator}' is not a valid migrator."
|
69
69
|
end
|
70
70
|
end
|
metadata
CHANGED
@@ -1,38 +1,24 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-import
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Preston-Werner
|
8
8
|
- Parker Moore
|
9
9
|
- Matt Rogers
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-09-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: fastercsv
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
requirements:
|
19
|
-
- - "~>"
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '1.0'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
requirements:
|
26
|
-
- - "~>"
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
version: '1.0'
|
29
15
|
- !ruby/object:Gem::Dependency
|
30
16
|
name: jekyll
|
31
17
|
requirement: !ruby/object:Gem::Requirement
|
32
18
|
requirements:
|
33
|
-
- - "
|
19
|
+
- - ">="
|
34
20
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
21
|
+
version: '3.7'
|
36
22
|
- - "<"
|
37
23
|
- !ruby/object:Gem::Version
|
38
24
|
version: '5.0'
|
@@ -40,9 +26,9 @@ dependencies:
|
|
40
26
|
prerelease: false
|
41
27
|
version_requirements: !ruby/object:Gem::Requirement
|
42
28
|
requirements:
|
43
|
-
- - "
|
29
|
+
- - ">="
|
44
30
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
31
|
+
version: '3.7'
|
46
32
|
- - "<"
|
47
33
|
- !ruby/object:Gem::Version
|
48
34
|
version: '5.0'
|
@@ -164,14 +150,14 @@ dependencies:
|
|
164
150
|
requirements:
|
165
151
|
- - "~>"
|
166
152
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
153
|
+
version: 0.11.0
|
168
154
|
type: :development
|
169
155
|
prerelease: false
|
170
156
|
version_requirements: !ruby/object:Gem::Requirement
|
171
157
|
requirements:
|
172
158
|
- - "~>"
|
173
159
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
160
|
+
version: 0.11.0
|
175
161
|
- !ruby/object:Gem::Dependency
|
176
162
|
name: shoulda
|
177
163
|
requirement: !ruby/object:Gem::Requirement
|
@@ -370,6 +356,7 @@ files:
|
|
370
356
|
- lib/jekyll-import/importers/behance.rb
|
371
357
|
- lib/jekyll-import/importers/blogger.rb
|
372
358
|
- lib/jekyll-import/importers/csv.rb
|
359
|
+
- lib/jekyll-import/importers/dotclear.rb
|
373
360
|
- lib/jekyll-import/importers/drupal6.rb
|
374
361
|
- lib/jekyll-import/importers/drupal7.rb
|
375
362
|
- lib/jekyll-import/importers/drupal_common.rb
|
@@ -383,6 +370,7 @@ files:
|
|
383
370
|
- lib/jekyll-import/importers/marley.rb
|
384
371
|
- lib/jekyll-import/importers/mephisto.rb
|
385
372
|
- lib/jekyll-import/importers/mt.rb
|
373
|
+
- lib/jekyll-import/importers/pluxml.rb
|
386
374
|
- lib/jekyll-import/importers/posterous.rb
|
387
375
|
- lib/jekyll-import/importers/roller.rb
|
388
376
|
- lib/jekyll-import/importers/rss.rb
|
@@ -400,7 +388,7 @@ homepage: http://github.com/jekyll/jekyll-import
|
|
400
388
|
licenses:
|
401
389
|
- MIT
|
402
390
|
metadata: {}
|
403
|
-
post_install_message:
|
391
|
+
post_install_message:
|
404
392
|
rdoc_options:
|
405
393
|
- "--charset=UTF-8"
|
406
394
|
require_paths:
|
@@ -417,7 +405,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
417
405
|
version: '0'
|
418
406
|
requirements: []
|
419
407
|
rubygems_version: 3.0.3
|
420
|
-
signing_key:
|
408
|
+
signing_key:
|
421
409
|
specification_version: 4
|
422
410
|
summary: Import command for Jekyll (static site generator).
|
423
411
|
test_files: []
|