wiki_md 0.6.1 → 0.7.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/wiki_md.rb +69 -16
- data.tar.gz.sig +0 -0
- metadata +2 -2
- 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: 39807ec060776358c5aced8404ef1ea984764344f62f3e2780fba7f643eb1ac5
|
4
|
+
data.tar.gz: b3cf99153dd820c632300f47727c3201b657f500be7798cfbf62e6651b0e699a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77b76727a5f71fcbf949d93f87b992bf5f0b2ef774994a69b6e0b3301629f0e759d7fac63c0f95f3b4c76c03475894e55b390c560307c9052e229a809c6a67ff
|
7
|
+
data.tar.gz: 46ed0505da571590568c795c8e5794a3edeb59470b80f5a67649789c9302a43f26f2bfd7dc80650615ed574cd84b96f15420e592b4d4e790351dc76b98e81e74
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/wiki_md.rb
CHANGED
@@ -12,6 +12,47 @@ class WikiMd
|
|
12
12
|
|
13
13
|
attr_reader :active_heading, :filename, :dx
|
14
14
|
|
15
|
+
class Entry
|
16
|
+
|
17
|
+
attr_reader :heading, :body, :footer, :tags, :x
|
18
|
+
|
19
|
+
def initialize(rx)
|
20
|
+
|
21
|
+
@rx = rx
|
22
|
+
@x = @rx.x
|
23
|
+
parse_x()
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def body=(s)
|
28
|
+
text_entry = "%s\n\n%s\n\n%s" % [self.heading, s, self.footer]
|
29
|
+
self.x = text_entry
|
30
|
+
end
|
31
|
+
|
32
|
+
def footer=(s)
|
33
|
+
a = @x.lines
|
34
|
+
a[-1] = s
|
35
|
+
self.x = a.join
|
36
|
+
end
|
37
|
+
|
38
|
+
def x=(s)
|
39
|
+
@rx.x = s
|
40
|
+
parse_x()
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def parse_x()
|
46
|
+
|
47
|
+
a = @rx.x.lines
|
48
|
+
@heading, @footer, @body = a.shift.chomp[/(?<=# ).*/], a.pop,
|
49
|
+
a.join.strip
|
50
|
+
@tags = @footer[1..-1].strip.split
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
|
15
56
|
def initialize(wiki=nil, domain: nil, debug: false, base_url: '',
|
16
57
|
tag_base_url: '/tag', order: 'ascending', title: 'MyWiki')
|
17
58
|
|
@@ -136,16 +177,17 @@ class WikiMd
|
|
136
177
|
def find(q)
|
137
178
|
|
138
179
|
puts ('WikiMd::find q: ' + q.inspect).debug if @debug
|
139
|
-
return @dxsx.dx.find q if q =~ /^\d+$/
|
180
|
+
return Entry.new(@dxsx.dx.find q) if q =~ /^\d+$/
|
140
181
|
regex = q.is_a?(String) ? /#{q}/i : q
|
141
182
|
r = @dxsx.dx.all.find {|section| section.x.lines.first =~ regex }
|
142
183
|
puts (' r: ' + r.inspect).debug if @debug
|
143
184
|
return unless r
|
144
185
|
|
145
186
|
heading2 = r.x.lines.last[/(?<=redirect ).*/]
|
146
|
-
heading2 ? find(heading2) : r
|
187
|
+
heading2 ? find(heading2) : Entry.new(r)
|
147
188
|
|
148
|
-
end
|
189
|
+
end
|
190
|
+
|
149
191
|
|
150
192
|
def find_tag(tag)
|
151
193
|
@dxtags.find tag
|
@@ -228,7 +270,7 @@ EOF
|
|
228
270
|
@dxsx.save filename.sub(/\.md$/, '.xml')
|
229
271
|
@dx = new_index(File.join(@filepath, 'index.xml')) unless @dx
|
230
272
|
|
231
|
-
end
|
273
|
+
end
|
232
274
|
|
233
275
|
def title()
|
234
276
|
@dxsx.dx.title()
|
@@ -297,18 +339,7 @@ EOF
|
|
297
339
|
|
298
340
|
# update the index entry if the title or tags have been modified
|
299
341
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
if title != @active_heading or tagline2 != tagline1 then
|
304
|
-
|
305
|
-
record = {title: @active_heading + ' #' + tagline1.split.join(' #'),
|
306
|
-
url: [@base_url, File.basename(@filename)[/.*(?=\.\w+)/],
|
307
|
-
URI.escape(title)].join('/')}
|
308
|
-
rx.update record
|
309
|
-
@dxtags.add record
|
310
|
-
|
311
|
-
end
|
342
|
+
update_index(rx, tagline1, @active_heading)
|
312
343
|
|
313
344
|
|
314
345
|
else
|
@@ -338,6 +369,28 @@ EOF
|
|
338
369
|
@dxsx.dx
|
339
370
|
end
|
340
371
|
|
372
|
+
def save_files()
|
373
|
+
@filepath = File.dirname(@filename)
|
374
|
+
FileX.write @filename=filename, @dxsx.to_s
|
375
|
+
@dx.save
|
376
|
+
end
|
377
|
+
|
378
|
+
def update_index(rx, tagline1, active_heading=nil)
|
379
|
+
|
380
|
+
title, tagline2 = rx.title.split(/\s+#/)
|
381
|
+
active_heading ||= title
|
382
|
+
|
383
|
+
if title != active_heading or tagline2 != tagline1 then
|
384
|
+
|
385
|
+
record = {title: active_heading + ' #' + tagline1.split.join(' #'),
|
386
|
+
url: [@base_url, File.basename(@filename)[/.*(?=\.\w+)/],
|
387
|
+
URI.escape(title.gsub(/ /,'_'))].join('/')}
|
388
|
+
rx.update record
|
389
|
+
@dxtags.add record
|
390
|
+
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
341
394
|
private
|
342
395
|
|
343
396
|
def load_index(indexfile)
|
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.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
nEQURKgvgTAqVg9tuqcjEE861mSCPc+12rmUHVBZDxMDQF6CQbnOxrYRIS+7fnia
|
36
36
|
kikBQtN17cUMyGOrZTVRhVGR
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2019-01-
|
38
|
+
date: 2019-01-05 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: dxsectionx
|
metadata.gz.sig
CHANGED
Binary file
|