jekyll-import 0.16.0 → 0.17.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6130f83944ddf0b9014aadff407cbd2645a7fd3af8ffff14f8a07f951ca36b1d
4
- data.tar.gz: f1a0359e7d7edce0dcfbca231febe10df7459cba5f2af3ad0a2cb8f63c2fc1bc
3
+ metadata.gz: a0dcc7e31eb1aa2846478a51d98137a9ea5531a4bf47aa053a3b413a9e6fd0e9
4
+ data.tar.gz: fc5cff2462128b3906d7047a2e7c6a39b3553cedfc58afc429cc6d352f055be3
5
5
  SHA512:
6
- metadata.gz: 3650b1cc1cedfa296c5bb0b8db5fe172d32d8f67168554280a5674deb25a0595e5005288a3a2faefb01cbc109c994f41ee7477cd09c3947f4e3db68782b924ab
7
- data.tar.gz: 3cd40ad126a4890d2dde5b84f2bef3dc6be9d4f07465a42669fe5c4e3137ac57965e32a2182ddbdc8ab1847082a166a6462e4d53675682383991f23968ba8219
6
+ metadata.gz: e3ad1ab0288e1ed20c7c423283bdc0eafb2871ac6db2af684fdc30026172c90042f8b3fa2bea564ff98aa183181ad40e46c6d6174927d5a3649b29f52ed8f950
7
+ data.tar.gz: 8d2d819c2724f4150b07f7ca0718fcd46e61deecc2579335911180163dd236711a9f6cdfaa72a59765e97ed42356426b8f2854932be18034de89de2e2952de7b
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
@@ -1,73 +1,73 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
5
5
  class Tumblr < Importer
6
- def self.require_deps
7
- JekyllImport.require_with_fallback(%w(
8
- rubygems
9
- fileutils
10
- open-uri
11
- nokogiri
12
- json
13
- uri
14
- time
15
- jekyll
16
- ))
17
- end
6
+ class << self
7
+ def require_deps
8
+ JekyllImport.require_with_fallback(%w(
9
+ rubygems
10
+ fileutils
11
+ open-uri
12
+ nokogiri
13
+ json
14
+ uri
15
+ time
16
+ jekyll
17
+ reverse_markdown
18
+ ))
19
+ end
18
20
 
19
- def self.specify_options(c)
20
- c.option "url", "--url URL", "Tumblr URL"
21
- c.option "format", "--format FORMAT", 'Output format (default: "html")'
22
- c.option "grab_images", "--grab_images", "Whether to grab images (default: false)"
23
- c.option "add_highlights", "--add_highlights", "Whether to add highlights (default: false)"
24
- c.option "rewrite_urls", "--rewrite_urls", "Whether to rewrite URLs (default: false)"
25
- end
21
+ def specify_options(c)
22
+ c.option "url", "--url URL", "Tumblr URL"
23
+ c.option "format", "--format FORMAT", 'Output format (default: "html")'
24
+ c.option "grab_images", "--grab_images", "Whether to grab images (default: false)"
25
+ c.option "add_highlights", "--add_highlights", "Whether to add highlights (default: false)"
26
+ c.option "rewrite_urls", "--rewrite_urls", "Whether to rewrite URLs (default: false)"
27
+ end
28
+
29
+ def process(options)
30
+ url = options.fetch("url")
31
+ format = options.fetch("format", "html")
32
+ grab_images = options.fetch("grab_images", false)
33
+ add_highlights = options.fetch("add_highlights", false)
34
+ rewrite_urls = options.fetch("rewrite_urls", false)
26
35
 
27
- def self.process(options)
28
- url = options.fetch("url")
29
- format = options.fetch("format", "html")
30
- grab_images = options.fetch("grab_images", false)
31
- add_highlights = options.fetch("add_highlights", false)
32
- rewrite_urls = options.fetch("rewrite_urls", false)
36
+ @grab_images = grab_images
37
+ FileUtils.mkdir_p "_posts/tumblr"
38
+ per_page = 50
39
+ posts = []
33
40
 
34
- @grab_images = grab_images
35
- FileUtils.mkdir_p "_posts/tumblr"
36
- url += "/api/read/json/"
37
- per_page = 50
38
- posts = []
41
+ # Two passes are required so that we can rewrite URLs.
42
+ # First pass builds up an array of each post as a hash.
43
+ begin
44
+ current_page = (current_page || -1) + 1
45
+ feed_url = api_feed_url(url, current_page, per_page)
46
+ Jekyll.logger.info "Fetching #{feed_url}"
39
47
 
40
- # Two passes are required so that we can rewrite URLs.
41
- # First pass builds up an array of each post as a hash.
42
- begin
43
- current_page = (current_page || -1) + 1
44
- feed_url = "#{url}?num=#{per_page}&start=#{current_page * per_page}"
45
- Jekyll.logger.info "Fetching #{feed_url}"
48
+ feed = URI.parse(feed_url).open
49
+ contents = feed.readlines.join("\n")
50
+ blog = extract_json(contents)
51
+ Jekyll.logger.info "Page: #{current_page + 1} - Posts: #{blog["posts"].size}"
46
52
 
47
- feed = URI.parse(feed_url).open
48
- contents = feed.readlines.join("\n")
49
- blog = extract_json(contents)
50
- Jekyll.logger.info "Page: #{current_page + 1} - Posts: #{blog["posts"].size}"
53
+ batch = blog["posts"].map { |post| post_to_hash(post, format) }
51
54
 
52
- batch = blog["posts"].map { |post| post_to_hash(post, format) }
55
+ # If we're rewriting, save the posts for later. Otherwise, go ahead and dump these to
56
+ # disk now
57
+ if rewrite_urls
58
+ posts += batch
59
+ else
60
+ batch.each { |post| write_post(post, format == "md", add_highlights) }
61
+ end
62
+ end until blog["posts"].size < per_page
53
63
 
54
- # If we're rewriting, save the posts for later. Otherwise, go ahead and dump these to
55
- # disk now
64
+ # Rewrite URLs, create redirects and write out out posts if necessary
56
65
  if rewrite_urls
57
- posts += batch
58
- else
59
- batch.each { |post| write_post(post, format == "md", add_highlights) }
66
+ posts = rewrite_urls_and_redirects posts
67
+ posts.each { |post| write_post(post, format == "md", add_highlights) }
60
68
  end
61
- end until blog["posts"].size < per_page
62
-
63
- # Rewrite URLs, create redirects and write out out posts if necessary
64
- if rewrite_urls
65
- posts = rewrite_urls_and_redirects posts
66
- posts.each { |post| write_post(post, format == "md", add_highlights) }
67
69
  end
68
- end
69
70
 
70
- class << self
71
71
  def extract_json(contents)
72
72
  beginning = contents.index("{")
73
73
  ending = contents.rindex("}") + 1
@@ -237,9 +237,11 @@ module JekyllImport
237
237
  preserve = %w(table tr th td)
238
238
  preserve.each do |tag|
239
239
  content.gsub!(%r!<#{tag}!i, "$$#{tag}")
240
- content.gsub!(%r!<\/#{tag}!i, "||#{tag}")
240
+ content.gsub!(%r!</#{tag}!i, "||#{tag}")
241
241
  end
242
- content = Nokogiri::HTML(content.gsub("'", "''")).text
242
+
243
+ content = ReverseMarkdown.convert(content)
244
+
243
245
  preserve.each do |tag|
244
246
  content.gsub!("$$#{tag}", "<#{tag}")
245
247
  content.gsub!("||#{tag}", "</#{tag}")
@@ -291,6 +293,13 @@ module JekyllImport
291
293
  end
292
294
  "/#{path}"
293
295
  end
296
+
297
+ private
298
+
299
+ def api_feed_url(url, page, per_page = 50)
300
+ url = File.join(url, "/api/read/json/")
301
+ "#{url}?num=#{per_page}&start=#{page * per_page}"
302
+ end
294
303
  end
295
304
  end
296
305
  end
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: true
1
+ # frozen_string_literal: false
2
2
 
3
3
  module JekyllImport
4
4
  module Importers
@@ -163,10 +163,10 @@ module JekyllImport
163
163
 
164
164
  if options[:status] && !options[:status].empty?
165
165
  status = options[:status][0]
166
- +posts_query << "
166
+ posts_query << "
167
167
  WHERE posts.post_status = '#{status}'"
168
168
  options[:status][1..-1].each do |post_status|
169
- +posts_query << " OR
169
+ posts_query << " OR
170
170
  posts.post_status = '#{post_status}'"
171
171
  end
172
172
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JekyllImport
4
- VERSION = "0.16.0"
4
+ VERSION = "0.17.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
8
+ - Parker Moore
9
+ - Matt Rogers
8
10
  autorequire:
9
11
  bindir: bin
10
12
  cert_chain: []
11
- date: 2018-11-04 00:00:00.000000000 Z
13
+ date: 2018-12-21 00:00:00.000000000 Z
12
14
  dependencies:
13
15
  - !ruby/object:Gem::Dependency
14
16
  name: fastercsv
@@ -52,6 +54,20 @@ dependencies:
52
54
  - - "~>"
53
55
  - !ruby/object:Gem::Version
54
56
  version: '1.0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: reverse_markdown
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '1.0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '1.0'
55
71
  - !ruby/object:Gem::Dependency
56
72
  name: activesupport
57
73
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +102,14 @@ dependencies:
86
102
  requirements:
87
103
  - - "~>"
88
104
  - !ruby/object:Gem::Version
89
- version: '4.0'
105
+ version: '6.0'
90
106
  type: :development
91
107
  prerelease: false
92
108
  version_requirements: !ruby/object:Gem::Requirement
93
109
  requirements:
94
110
  - - "~>"
95
111
  - !ruby/object:Gem::Version
96
- version: '4.0'
112
+ version: '6.0'
97
113
  - !ruby/object:Gem::Dependency
98
114
  name: redgreen
99
115
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +144,14 @@ dependencies:
128
144
  requirements:
129
145
  - - "~>"
130
146
  - !ruby/object:Gem::Version
131
- version: '0.3'
147
+ version: '0.4'
132
148
  type: :development
133
149
  prerelease: false
134
150
  version_requirements: !ruby/object:Gem::Requirement
135
151
  requirements:
136
152
  - - "~>"
137
153
  - !ruby/object:Gem::Version
138
- version: '0.3'
154
+ version: '0.4'
139
155
  - !ruby/object:Gem::Dependency
140
156
  name: shoulda
141
157
  requirement: !ruby/object:Gem::Requirement
@@ -262,20 +278,6 @@ dependencies:
262
278
  - - "~>"
263
279
  - !ruby/object:Gem::Version
264
280
  version: '0.12'
265
- - !ruby/object:Gem::Dependency
266
- name: reverse_markdown
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - "~>"
270
- - !ruby/object:Gem::Version
271
- version: '1.0'
272
- type: :development
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - "~>"
277
- - !ruby/object:Gem::Version
278
- version: '1.0'
279
281
  - !ruby/object:Gem::Dependency
280
282
  name: sequel
281
283
  requirement: !ruby/object:Gem::Requirement
@@ -333,7 +335,7 @@ dependencies:
333
335
  - !ruby/object:Gem::Version
334
336
  version: '2.4'
335
337
  description: Provides the Import command for Jekyll.
336
- email: tom@mojombo.com
338
+ email: maintainers@jekyllrb.com
337
339
  executables: []
338
340
  extensions: []
339
341
  extra_rdoc_files:
@@ -394,9 +396,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
394
396
  - !ruby/object:Gem::Version
395
397
  version: '0'
396
398
  requirements: []
397
- rubyforge_project:
398
- rubygems_version: 2.7.7
399
+ rubygems_version: 3.0.0
399
400
  signing_key:
400
- specification_version: 2
401
+ specification_version: 4
401
402
  summary: Import command for Jekyll (static site generator).
402
403
  test_files: []