wiki_md 0.7.8 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/wiki_md.rb +52 -4
- data.tar.gz.sig +0 -0
- metadata +27 -27
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 148a00fe5a9fcef0a37edbcd2bc78ede1069dfce519deaa69768ee2c35afd011
|
4
|
+
data.tar.gz: ab50dee21bfeb59cdc5f0405c920510dea75d985cac63a45d4677db70f6a619b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea1a9af18ed278b4c3e963428c00a637a96058b80672b749a5b6f91a2c9694acc96a50b4802bd37d3c798793ac25e9da1fea724909bad0d731c062dca7e73e9f
|
7
|
+
data.tar.gz: 7fe0eeb327e020b8bfa5a26b06fefe724c7ff2c1f2d5791a4ae9d411d15ab6727566baa1da3ee7cbadc52ba1f795c18eb490ef04ab291bf5f726121963b5b104
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/wiki_md.rb
CHANGED
@@ -6,6 +6,9 @@ require 'dxsectionx'
|
|
6
6
|
require 'dynarex-tags'
|
7
7
|
|
8
8
|
|
9
|
+
class WikiMdReadError < Exception
|
10
|
+
end
|
11
|
+
|
9
12
|
class WikiMd
|
10
13
|
include RXFHelperModule
|
11
14
|
using ColouredText
|
@@ -99,6 +102,9 @@ class WikiMd
|
|
99
102
|
elsif type == :file or type == :dfs
|
100
103
|
|
101
104
|
@filename = wiki
|
105
|
+
|
106
|
+
valid, msg = validate s
|
107
|
+
raise WikiMdReadError, msg unless valid
|
102
108
|
|
103
109
|
puts ('s: ' + s.inspect).debug if @debug
|
104
110
|
@dxsx = DxSectionX.new s, debug: debug, autosave: true,
|
@@ -331,7 +337,13 @@ EOF
|
|
331
337
|
@dxsx.save filename.sub(/\.md$/, '.xml')
|
332
338
|
@dx = new_index(File.join(@filepath, 'index.xml')) unless @dx
|
333
339
|
|
334
|
-
end
|
340
|
+
end
|
341
|
+
|
342
|
+
def sort!()
|
343
|
+
@dxsx.dx.sort_by! do |rec|
|
344
|
+
rec.element('x').value.lines.first.chomp[/(?<=^# ).*/]
|
345
|
+
end
|
346
|
+
end
|
335
347
|
|
336
348
|
def title()
|
337
349
|
@dxsx.dx.title()
|
@@ -344,12 +356,35 @@ EOF
|
|
344
356
|
def to_aztoc(base_url: '')
|
345
357
|
Yatoc.new(self.entries.map(&:to_s).join).to_aztoc.gsub(/(?<=href=')([^']+)/, base_url + '\1')
|
346
358
|
end
|
359
|
+
|
360
|
+
# generates an accordion menu in XML format. It can be rendered to
|
361
|
+
# HTML using the Martile gem
|
362
|
+
#
|
363
|
+
def to_accordion()
|
364
|
+
|
365
|
+
doc = Rexle.new('<accordion/>')
|
366
|
+
|
367
|
+
sort!()
|
368
|
+
|
369
|
+
entries.each do |x|
|
370
|
+
|
371
|
+
e = Rexle::Element.new('panel')
|
372
|
+
e.add_attribute(title: x.heading)
|
373
|
+
|
374
|
+
body = "<body>%s</body>" % Martile.new(x.body).to_html
|
375
|
+
Rexle.new(body).root.elements.each {|element| e.add element }
|
376
|
+
|
377
|
+
doc.root.add e
|
378
|
+
|
379
|
+
end
|
380
|
+
|
381
|
+
doc.root.xml pretty: true
|
382
|
+
|
383
|
+
end
|
347
384
|
|
348
385
|
def to_sections()
|
349
386
|
|
350
|
-
|
351
|
-
rec.element('x').value.lines.first.chomp[/(?<=^# ).*/]
|
352
|
-
end
|
387
|
+
sort!()
|
353
388
|
|
354
389
|
@dxsx.to_doc.root.xpath('records/section')\
|
355
390
|
.map {|x| x.xml(pretty: true)}.join("\n")
|
@@ -485,4 +520,17 @@ EOF
|
|
485
520
|
dx
|
486
521
|
|
487
522
|
end
|
523
|
+
|
524
|
+
def validate(s)
|
525
|
+
|
526
|
+
a = s[/(?<=--#\n).*/m].split(/(?=\n# )/)
|
527
|
+
valid = a.all? {|x| x.lines.last[0] == '+'}
|
528
|
+
return true if valid
|
529
|
+
|
530
|
+
r = a.detect {|x| x.lines.last[0] != '+'}
|
531
|
+
|
532
|
+
heading = r[/(?<=# ).*/]
|
533
|
+
|
534
|
+
[false, 'Tagline missing from heading # ' + heading]
|
535
|
+
end
|
488
536
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wiki_md
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -11,31 +11,31 @@ cert_chain:
|
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
13
|
MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
/
|
25
|
-
|
26
|
-
|
14
|
+
YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwMTIxMjMxNTI0WhcN
|
15
|
+
MjEwMTIwMjMxNTI0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
|
16
|
+
cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC4Ru7o
|
17
|
+
KHnj/uJU7F5Xbp5yPX2YgOohtrEf06+HIdWoYWo0+ThvAuh07+HrmGytjrzxP8wv
|
18
|
+
kA9m8tp7Gw92k1aPL60Jwbq1Dpjb68xVh1c4cnTPd5oip6MyVwPQnvSzwNpVZBHj
|
19
|
+
fPYHtEnzzSyGLQbhX0nB4ZqguSQBIpo+2n1DdG59ub2j4kJreghEsZfUKgdiSsEh
|
20
|
+
Kfk7+ZMq3wd0biOV8yO8pBNthqKcj4VKY1Zi63Dt0jqHImOXXAIuOTxoUpMeZGbL
|
21
|
+
N87LZRQu8/Wrj9M6OQu8rS1qV1+tSzPhdovBK/Z+nFuDvtr6WbyDst/RHr0y42mu
|
22
|
+
XzSexab8CwuLhfi7WvEnoYoOxBVDlS85OaFIEBbLHb/DqXEluzpGwWOKJ3Y06uF0
|
23
|
+
I/ucQCOPOV3lmgyLPfYsf8lB/qxJ+ovHFaxhsoK4wbofWPEknv2bYQ4XzBxSdgIZ
|
24
|
+
tjsyN0nwfgftpj9VUj9T9To5nvEHLYYk00zYxJaGn4+vDk90/aTk69abDeUCAwEA
|
25
|
+
AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUIe+GCuMp
|
26
|
+
s6MGlmJRJw9yMMVqzAQwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
|
27
27
|
c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
BgkqhkiG9w0BAQsFAAOCAYEAkJSE2shCsfjnUSnopr7iNTU9V8uuw3MZtOmRFS2K
|
29
|
+
ca2afbjPRPZjDSElwU9UfTQd6tJRaXNoaBcmrokxzg+qkbi8YinMg+ULuNb5K+Wq
|
30
|
+
TovMj1i7h1ORBTVcu7vWnuycXWCj4jNo0HrquxwvEBcSOwcLP3evJ+EZlJ+YEaxI
|
31
|
+
qRiNtkk4g29oPBUtNh/bEmuysSe+eh7Rv+hAN6jeor3Eoc/rgKCiJvNPbP/NTIY0
|
32
|
+
So08bfqBUrPqn/wzT8W6KLfAlCzlT7Pfj5Qq5O7wSmPZSYD66Ossm0wC5Uhg/fi4
|
33
|
+
Rxh5s0z+KhRLZ/Nk9rOtjMtflV1OHvabvyamw0p6a8cNmb1N1pV/RHULjPEyHJc9
|
34
|
+
3f6jP2IUfB7et2sBm/gB9ZnoZubDoHvy0Sws8qTfQ116vgW9vr2hH4XGB0s9uWiA
|
35
|
+
N5hZmnA6M2h3NysLCPRtwS2vMJh8qq6OS5RjU9cc5V08vyIkQ7/YC/x+7kLm5Kn0
|
36
|
+
kvoWXxa8gpUBS+qMlSYFDHlq
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2020-01-21 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: dxsectionx
|
@@ -46,7 +46,7 @@ dependencies:
|
|
46
46
|
version: '0.3'
|
47
47
|
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 0.3.
|
49
|
+
version: 0.3.2
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
version: '0.3'
|
57
57
|
- - ">="
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 0.3.
|
59
|
+
version: 0.3.2
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: dynarex-tags
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
requirements: []
|
106
|
-
rubygems_version: 3.0.
|
106
|
+
rubygems_version: 3.0.3
|
107
107
|
signing_key:
|
108
108
|
specification_version: 4
|
109
109
|
summary: 'Designed for maintaining many wiki entries within a single document in Markdown
|
metadata.gz.sig
CHANGED
Binary file
|