clwiki 3.2.4 → 3.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cl_wiki/engine.rb +6 -0
- data/lib/cl_wiki/format_blockquote.rb +12 -10
- data/lib/cl_wiki/format_graphviz_di_graph.rb +11 -9
- data/lib/cl_wiki/format_opml.rb +21 -19
- data/lib/cl_wiki/format_pre_blockquote.rb +11 -9
- data/lib/cl_wiki/format_simple_table.rb +22 -20
- data/lib/cl_wiki/version.rb +1 -1
- data/lib/cl_wiki_lib.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88f3646fc174c186690fa0704bf8eea487dd0b9aa04192d1dada2048215a84b1
|
4
|
+
data.tar.gz: 19e1e949c5db182f1ccd98069f9a6bbe8b251db3d3cd557d7229c1d4204f0d75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adb5a002ccaaf9eb214008caf18922f55e4f1c64aea000f46cc15815c7d0b72d54b36ba78440aba9a2e4d95740453c0de1b6a0d5ee04e8f2cc1c99403519e423
|
7
|
+
data.tar.gz: 7de2d1f85a2f7b42aeea640da0822c6a81a269a4ee7f07d5efacfccee5e649ce801f01fa8bbd585e21fc4265657ffc0ad98f4e605d4754424bab64df591add23
|
data/lib/cl_wiki/engine.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# This seems a little unnecessary here, having done a bunch of zeitwerk stuff
|
4
|
+
# for auto-loading, but the formatters need to be referenced somehow in order to
|
5
|
+
# be loaded, and then registered ... but - this is working, and this ain't for
|
6
|
+
# nothing but my silly website.
|
7
|
+
require_relative '../cl_wiki_lib'
|
8
|
+
|
3
9
|
module ClWiki
|
4
10
|
class Engine < ::Rails::Engine
|
5
11
|
isolate_namespace ClWiki
|
@@ -1,17 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module ClWiki
|
4
|
+
class FormatBlockquote < ClWiki::CustomFormatter
|
5
|
+
def self.match_re
|
6
|
+
%r{\[\].*\[/\]}m
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def self.format_content(content, page)
|
10
|
+
if content
|
11
|
+
content.gsub!(/\[\]/, '<blockquote>')
|
12
|
+
content.gsub!(%r{\[/\]}, '</blockquote>')
|
13
|
+
content
|
14
|
+
end
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
|
-
ClWiki::CustomFormatters.instance.register(FormatBlockquote)
|
19
|
+
ClWiki::CustomFormatters.instance.register(ClWiki::FormatBlockquote)
|
@@ -1,17 +1,19 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
module ClWiki
|
4
|
+
class FormatGraphVizDiGraph < ClWiki::CustomFormatter
|
5
|
+
def self.match_re
|
6
|
+
/digraph.*\}/m
|
7
|
+
end
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
def self.format_content(content, page)
|
10
|
+
content.sub!(/digraph.*\}/m,
|
11
|
+
"<a href=\"dot.rb?fn=#{page.file_full_path_and_name}\">
|
11
12
|
<img src=\"dot.rb?fn=#{page.file_full_path_and_name}\">
|
12
13
|
</a>")
|
13
|
-
|
14
|
+
content
|
15
|
+
end
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
|
-
ClWiki::CustomFormatters.instance.register(FormatGraphVizDiGraph)
|
19
|
+
ClWiki::CustomFormatters.instance.register(ClWiki::FormatGraphVizDiGraph)
|
data/lib/cl_wiki/format_opml.rb
CHANGED
@@ -5,33 +5,35 @@ if $PROGRAM_NAME == __FILE__
|
|
5
5
|
require 'clwikipage'
|
6
6
|
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
module ClWiki
|
9
|
+
class FormatOPML < ClWiki::CustomFormatter
|
10
|
+
def self.match_re
|
11
|
+
%r{<opml.*?>.*?</opml>}m
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
14
|
+
def self.format_content(content, page)
|
15
|
+
out = ['<NoWikiLinks>']
|
16
|
+
content.grep(%r{<outline.*?>|</outline>}).each do |ln|
|
17
|
+
title = ln.scan(/title=\"(.*?)\"/).compact
|
18
|
+
html = ln.scan(/htmlUrl=\"(.*?)\"/).compact
|
19
|
+
xml = ln.scan(/xmlUrl=\"(.*?)\"/).compact
|
20
|
+
if html.empty? && xml.empty?
|
21
|
+
if !title.empty?
|
22
|
+
out << "<h4>#{title}</h4>"
|
23
|
+
out << '<blockquote>'
|
24
|
+
else
|
25
|
+
out << '</blockquote>'
|
26
|
+
end
|
23
27
|
else
|
24
|
-
out << '</
|
28
|
+
out << "<a href='#{xml}'>[xml]</a> <a href='#{html}'>#{title}</a>"
|
25
29
|
end
|
26
|
-
else
|
27
|
-
out << "<a href='#{xml}'>[xml]</a> <a href='#{html}'>#{title}</a>"
|
28
30
|
end
|
31
|
+
out.join("\n") + content
|
29
32
|
end
|
30
|
-
out.join("\n") + content
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
34
|
-
ClWiki::CustomFormatters.instance.register(FormatOPML)
|
36
|
+
ClWiki::CustomFormatters.instance.register(ClWiki::FormatOPML)
|
35
37
|
|
36
38
|
if $PROGRAM_NAME == __FILE__
|
37
39
|
sample_opml = <<-OPMLTEXT
|
@@ -2,16 +2,18 @@
|
|
2
2
|
|
3
3
|
require 'cgi'
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
module ClWiki
|
6
|
+
class FormatPreBlockquote < ClWiki::CustomFormatter
|
7
|
+
def self.match_re
|
8
|
+
%r{\[p\].*?\[/p\]}mi
|
9
|
+
end
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
def self.format_content(content, page)
|
12
|
+
content = CGI.escapeHTML(content)
|
13
|
+
content.gsub!(/\[p\]/i, '<blockquote><pre>')
|
14
|
+
content.gsub!(%r{\[/p\]}i, '</pre></blockquote>')
|
15
|
+
end
|
14
16
|
end
|
15
17
|
end
|
16
18
|
|
17
|
-
ClWiki::CustomFormatters.instance.register(FormatPreBlockquote)
|
19
|
+
ClWiki::CustomFormatters.instance.register(ClWiki::FormatPreBlockquote)
|
@@ -1,27 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
def self.format_content(content, page = nil)
|
9
|
-
table_attr = content.scan(/<simpletable(.*?)>/m).to_s.strip
|
10
|
-
table_attr = 'border="1"' if table_attr.empty?
|
11
|
-
content.gsub!(/<simpletable.*?>/m, '')
|
12
|
-
content.gsub!(%r{</simpletable>}m, '')
|
13
|
-
content.strip!
|
14
|
-
lines = content.split("\n")
|
15
|
-
lines.collect! do |ln|
|
16
|
-
ln.gsub!(/\t/, ' ')
|
17
|
-
'<tr><td>' + ln.gsub(/ +/, '</td><td>') + '</td></tr>'
|
3
|
+
module ClWiki
|
4
|
+
class FormatSimpleTable < ClWiki::CustomFormatter
|
5
|
+
def self.match_re
|
6
|
+
%r{<simpletable.*?>.*?</simpletable>}m
|
18
7
|
end
|
19
|
-
lines.collect! { |ln| ln.gsub(%r{<td>\s*?</td>}, '<td> </td>') }
|
20
8
|
|
21
|
-
|
22
|
-
|
23
|
-
|
9
|
+
def self.format_content(content, page = nil)
|
10
|
+
table_attr = content.scan(/<simpletable(.*?)>/m).to_s.strip
|
11
|
+
table_attr = 'border="1"' if table_attr.empty?
|
12
|
+
content.gsub!(/<simpletable.*?>/m, '')
|
13
|
+
content.gsub!(%r{</simpletable>}m, '')
|
14
|
+
content.strip!
|
15
|
+
lines = content.split("\n")
|
16
|
+
lines.collect! do |ln|
|
17
|
+
ln.gsub!(/\t/, ' ')
|
18
|
+
'<tr><td>' + ln.gsub(/ +/, '</td><td>') + '</td></tr>'
|
19
|
+
end
|
20
|
+
lines.collect! { |ln| ln.gsub(%r{<td>\s*?</td>}, '<td> </td>') }
|
21
|
+
|
22
|
+
# if you do a .join("\n"), then the \n will be converted to <br>
|
23
|
+
# ... so don't do that
|
24
|
+
"<table #{table_attr}>\n#{lines.join('')}</table>"
|
25
|
+
end
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
27
|
-
ClWiki::CustomFormatters.instance.register(FormatSimpleTable)
|
29
|
+
ClWiki::CustomFormatters.instance.register(ClWiki::FormatSimpleTable)
|
data/lib/cl_wiki/version.rb
CHANGED
data/lib/cl_wiki_lib.rb
CHANGED
@@ -16,7 +16,7 @@ require File.expand_path('cl_wiki/custom_footers', __dir__)
|
|
16
16
|
require File.expand_path('cl_wiki/custom_formatter', __dir__)
|
17
17
|
require File.expand_path('cl_wiki/custom_formatters', __dir__)
|
18
18
|
|
19
|
-
Dir[File.join(__dir__, 'cl_wiki', '
|
19
|
+
Dir[File.join(__dir__, 'cl_wiki', 'format_*.rb')].each do |fn|
|
20
20
|
require fn
|
21
21
|
end
|
22
22
|
|