ZMediumToMarkdown 1.9.3 → 1.9.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f0fc52b06f84a2ed70165d88f47432ec7e7eb3a139f3adb91ce1405b5cf69bc
4
- data.tar.gz: c57e9ba90accc6f4654176a67851d1eae97e87109e66cf14862f7b3c84f636a3
3
+ metadata.gz: acc5589c92b8dd859f91b98fe7c2f1073a39af102ee8ebce27f1351824ffcab7
4
+ data.tar.gz: b14f257296741edd700bf484c37da6b2e386ddfb96dffca540b60cea8c04fecc
5
5
  SHA512:
6
- metadata.gz: 300208c7b673ccdb46c27b1871ad15b4cf14baa1a5d33260ff779932c4684b7887e03bb4c95c7b623cca302caab85d81b199b7de04e40408f3989d6cc3e86df8
7
- data.tar.gz: 6c2bec3f95a1da0e82a86ef917e62fcdc5e880a979821dc2c13dfbe8fae5bc329e38fe8566bf456be9e839ab48904d28ca3b2f939a2057ebcff16979ca5a937d
6
+ metadata.gz: da41323a9b967724f758535d4ad8bb191cc1c015929b8af49e94851c7ff83b8a45d0ee8eb25298e2712b4acfbe1d3263cf4d327609cfc9f170e16cffadd347a9
7
+ data.tar.gz: c8a491d922669dd8ac947e658367fcbc093a007bda351ed9f7627213ad635c0d4246d36d09862ae597312147d4627f0314f12547df2c37d95a8bc400064c0897
@@ -65,7 +65,6 @@ class Main
65
65
 
66
66
  opts.on('-v', '--version', 'Print current ZMediumToMarkdown Version & Output Path') do
67
67
  puts "Version:#{Helper.getLocalVersion().to_s}"
68
- puts "Output Path:#{outputFilePath.getAbsolutePath(nil)}"
69
68
 
70
69
  Helper.printNewVersionMessageIfExists()
71
70
  end
@@ -4,7 +4,11 @@ require "Parsers/Parser"
4
4
  require 'Models/Paragraph'
5
5
 
6
6
  class CodeBlockParser < Parser
7
- attr_accessor :nextParser
7
+ attr_accessor :nextParser, :isForJekyll
8
+
9
+ def initialize(isForJekyll)
10
+ @isForJekyll = isForJekyll
11
+ end
8
12
 
9
13
  def self.getTypeString()
10
14
  'CODE_BLOCK'
@@ -20,7 +24,17 @@ class CodeBlockParser < Parser
20
24
 
21
25
  def parse(paragraph)
22
26
  if CodeBlockParser.isCodeBlock(paragraph)
23
- "```\n#{paragraph.text}\n```"
27
+ result = "```\n"
28
+ if isForJekyll
29
+ result += "{% raw %}\n"
30
+ end
31
+
32
+ result += paragraph.text
33
+
34
+ if isForJekyll
35
+ result += "\n{% endraw %}"
36
+ end
37
+ result += "\n```"
24
38
  else
25
39
  if !nextParser.nil?
26
40
  nextParser.parse(paragraph)
@@ -74,7 +74,18 @@ class IframeParser < Parser
74
74
  gistHTML.search('a').each do |a|
75
75
  if a.text == 'view raw'
76
76
  gistRAW = Request.body(Request.URL(a['href']))
77
- result = "```#{lang}\n#{gistRAW}\n```"
77
+
78
+ result = "```#{lang}\n"
79
+ if isForJekyll
80
+ result += "{% raw %}\n"
81
+ end
82
+
83
+ result += gistRAW
84
+
85
+ if isForJekyll
86
+ result += "\n{% endraw %}"
87
+ end
88
+ result += "\n```"
78
89
  end
79
90
  end
80
91
  else
@@ -5,9 +5,9 @@ require 'Models/Paragraph'
5
5
  class LinkParser
6
6
  attr_accessor :usersPostURLs, :isForJekyll
7
7
 
8
- def initialize(usersPostURLs, isForJekyll)
9
- @usersPostURLs = usersPostURLs
10
- @isForJekyll = isForJekyll
8
+ def initialize()
9
+ @usersPostURLs = nil
10
+ @isForJekyll = false
11
11
  end
12
12
 
13
13
  def parse(markdownString, markupLinks)
@@ -17,6 +17,13 @@ class LinkParser
17
17
 
18
18
  matchLinks.each do |matchLink|
19
19
  link = matchLink[0]
20
+ linkMarkdown = "(#{link})"
21
+ newLinkMarkdown = linkMarkdown
22
+
23
+ if isForJekyll
24
+ newLinkMarkdown = "(#{link}){:target=\"_blank\"}"
25
+ end
26
+
20
27
 
21
28
  if !usersPostURLs.nil?
22
29
  # if have provide user's post urls
@@ -30,12 +37,16 @@ class LinkParser
30
37
 
31
38
  if !usersPostURLs.find { |usersPostURL| usersPostURL.split("/").last.split("-").last == postPath.split("-").last }.nil?
32
39
  if isForJekyll
33
- markdownString = markdownString.sub! link, "../#{postPath}"
40
+ newLinkMarkdown = "(../#{postPath})"
34
41
  else
35
- markdownString = markdownString.sub! link, "#{postPath}"
42
+ newLinkMarkdown = "(#{postPath})"
36
43
  end
37
44
  end
38
45
  end
46
+
47
+ if linkMarkdown != newLinkMarkdown
48
+ markdownString = markdownString.sub! linkMarkdown, newLinkMarkdown
49
+ end
39
50
  end
40
51
  end
41
52
  end
@@ -4,7 +4,11 @@ require "Parsers/Parser"
4
4
  require 'Models/Paragraph'
5
5
 
6
6
  class PREParser < Parser
7
- attr_accessor :nextParser
7
+ attr_accessor :nextParser, :isForJekyll
8
+
9
+ def initialize(isForJekyll)
10
+ @isForJekyll = isForJekyll
11
+ end
8
12
 
9
13
  def self.isPRE(paragraph)
10
14
  if paragraph.nil?
@@ -17,10 +21,19 @@ class PREParser < Parser
17
21
  def parse(paragraph)
18
22
  if PREParser.isPRE(paragraph)
19
23
  result = "```\n"
24
+ if isForJekyll
25
+ result += "{% raw %}\n"
26
+ end
27
+
20
28
  paragraph.text.each_line do |p|
21
29
  result += p
22
30
  end
31
+
32
+ if isForJekyll
33
+ result += "\n{% endraw %}"
34
+ end
23
35
  result += "\n```"
36
+
24
37
  result
25
38
  else
26
39
  if !nextParser.nil?
@@ -71,7 +71,7 @@ class ZMediumFetcher
71
71
 
72
72
  def initialize
73
73
  @progress = Progress.new()
74
- @linkParser = LinkParser.new(nil, false)
74
+ @linkParser = LinkParser.new()
75
75
  @isForJekyll = false
76
76
  end
77
77
 
@@ -101,9 +101,9 @@ class ZMediumFetcher
101
101
  iframeParser.setNext(imgParser)
102
102
  bqParser = BQParser.new()
103
103
  imgParser.setNext(bqParser)
104
- preParser = PREParser.new()
104
+ preParser = PREParser.new(isForJekyll)
105
105
  bqParser.setNext(preParser)
106
- codeBlockParser = CodeBlockParser.new()
106
+ codeBlockParser = CodeBlockParser.new(isForJekyll)
107
107
  preParser.setNext(codeBlockParser)
108
108
  fallbackParser = FallbackParser.new()
109
109
  codeBlockParser.setNext(fallbackParser)
@@ -223,6 +223,8 @@ class ZMediumFetcher
223
223
  progress.message = "Converting Post..."
224
224
  progress.printLog()
225
225
 
226
+ linkParser.isForJekyll = isForJekyll
227
+
226
228
  postWithDatePath = "#{postInfo.firstPublishedAt.strftime("%Y-%m-%d")}-#{postPath}"
227
229
 
228
230
  absolutePath = postPathPolicy.getAbsolutePath("#{postWithDatePath}.md")
@@ -248,10 +250,7 @@ class ZMediumFetcher
248
250
  end
249
251
 
250
252
  result = startParser.parse(paragraph)
251
-
252
- if !linkParser.nil?
253
- result = linkParser.parse(result, paragraph.markupLinks)
254
- end
253
+ result = linkParser.parse(result, paragraph.markupLinks)
255
254
 
256
255
  file.puts(result)
257
256
 
@@ -295,7 +294,7 @@ class ZMediumFetcher
295
294
  nextID = postPageInfo["nextID"]
296
295
  end while !nextID.nil?
297
296
 
298
- @linkParser = LinkParser.new(postURLS, isForJekyll)
297
+ linkParser.usersPostURLs = postURLS
299
298
 
300
299
  progress.totalPostsLength = postURLS.length
301
300
  progress.currentPostIndex = 0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ZMediumToMarkdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.3
4
+ version: 1.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - ZhgChgLi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-20 00:00:00.000000000 Z
11
+ date: 2022-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri