jekyll-pandoc-mermaid 1.0.2

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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/jekyll-pandoc-mermaid.rb +71 -0
  3. metadata +105 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6aba17e8a43e1f92f3c18c2f9b15e80452c93bab1adfb6676111718de646da6a
4
+ data.tar.gz: 23f8be9f5cc20173a2cdcfe553e6c21410f563671eb7048a12f4aa7424df72f6
5
+ SHA512:
6
+ metadata.gz: e6014e780b03cf828755f8cf8cdebda9b5d39190acc48546872a1a41a7a285d43c981a394e1ec6f5e787de15b511f33565a13744e7d3f1d6c3ded5484102b60b
7
+ data.tar.gz: e8b2a760042c2fb6ec19878868a6ef715c25f936c93bbef9762e5f9d5396384dc3fbd28c3335e5683c3d7b09378cdc12e21331dca5c6c375ce7c47c9891a7212
@@ -0,0 +1,71 @@
1
+ Jekyll::Hooks.register :documents, :pre_render do |doc|
2
+ next if not jekyll_pandoc_mermaid_is_enable(doc.site.config)
3
+
4
+ doc.content = replace_mermaid_format_to_html_entites_before_rendering(doc.content)
5
+ end
6
+
7
+ #
8
+
9
+ def replace_mermaid_format_to_html_entites_before_rendering(input_text)
10
+ regex = /{% mermaid %}([\w\W]*?){% endmermaid %}/
11
+
12
+ output_text = input_text.gsub(regex) { |_|
13
+ match = Regexp.last_match
14
+ mermaid_block_text = Regexp.last_match[0]
15
+
16
+ mermaid_block_text.gsub!(/\n/, '
')
17
+ mermaid_block_text.gsub!(/-/, '-')
18
+ mermaid_block_text.gsub!(/"/, '\"')
19
+
20
+ mermaid_block_text
21
+ }
22
+
23
+ return output_text
24
+ end
25
+
26
+ #
27
+
28
+ # can modify not doc.content(unrendered content of the document),
29
+ # but doc.output(rendered output) after rendering
30
+ Jekyll::Hooks.register :documents, :post_render do |doc|
31
+ next if not jekyll_pandoc_mermaid_is_enable(doc.site.config)
32
+
33
+ doc.output = replace_html_entites_to_mermaid_format_after_rendering(doc.output)
34
+ end
35
+
36
+ #
37
+
38
+ def replace_html_entites_to_mermaid_format_after_rendering(input_text)
39
+
40
+ regex = /<div class="mermaid">([\w\W]*?)<\/div>/
41
+
42
+ output_text = input_text.gsub(regex) { |_|
43
+ match = Regexp.last_match
44
+ mermaid_block_text = Regexp.last_match[0]
45
+
46
+ mermaid_block_text.gsub!(/‘/, "'")
47
+ mermaid_block_text.gsub!(/’/, "'")
48
+ mermaid_block_text.gsub!(/“/, '"')
49
+ mermaid_block_text.gsub!(/”/, '"')
50
+
51
+ mermaid_block_text
52
+ }
53
+
54
+ return output_text
55
+ end
56
+
57
+ #
58
+
59
+ def jekyll_pandoc_mermaid_is_enable(config)
60
+ Jekyll::External.require_with_graceful_fail "jekyll-pandoc"
61
+ Jekyll::External.require_with_graceful_fail "jekyll-mermaid"
62
+
63
+ if config['markdown'] != 'Pandoc'
64
+ return false
65
+ elsif config['mermaid'] == nil or config['mermaid']['src'] == nil
66
+ return false
67
+ end
68
+
69
+ return true
70
+ end
71
+
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-pandoc-mermaid
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jihoon Kim
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-01-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4.0'
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: jekyll-pandoc
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 2.0.1
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: 2.0.1
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 2.0.1
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: 2.0.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: jekyll-mermaid
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 1.0.0
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.0
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.0.0
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: 1.0.0
73
+ description: jekyll-pandoc-mermaid can solve rendering issue that occures when using
74
+ jekyll-pandoc and jekyll-mermaid plugin together
75
+ email: hoonti06@gmail.com
76
+ executables: []
77
+ extensions: []
78
+ extra_rdoc_files: []
79
+ files:
80
+ - lib/jekyll-pandoc-mermaid.rb
81
+ homepage: https://github.com/hoonti06/jekyll-pandoc-mermaid
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubygems_version: 3.0.3
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: jekyll-pandoc-mermaid can help to use jekyll-mermaid plugin when using jekyll-pandoc
104
+ plugin
105
+ test_files: []