wiki_md 0.2.1 → 0.3.0

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: 48d74d9d3dde58b596253dbf779021a392551d1efcfcb6aad84471f262030701
4
- data.tar.gz: 6753153ad3063cbc7ecd5fea30e9dfc59a9b1809e4c8f77ac3de7cf0c1952bbd
3
+ metadata.gz: 4b60a7007c10767ee1798adb195e34cfffc69c384697428120dbd379f6fb315e
4
+ data.tar.gz: cd50df1dc362a16e0babe375154d29519a21bc60b715eb4df44d9d8fb2969645
5
5
  SHA512:
6
- metadata.gz: c71a0c426a8d9f212c68b2024c3520d03d5ad01de48db8209a07dc8d9bba799e39692350aa87c0b133abc912be989134e73374e4a07429813b595d67b369f8e1
7
- data.tar.gz: 5930d61119d430948b9820dd45fa8c79a15e7da322963a7292d15bbeb143718c76615b1fa104086f19fbb237ab2af8a60dddb84e9998ddd7e33cd4c122f994c6
6
+ metadata.gz: d1b9e4275ff9cc4c6d323bfc4faa4e681a2abab6922cc459ad1231dc5e77f62b21e9ef7e654e5728c9a60e5ab37eeaa042b280c78474e0edb4977a9c92928286
7
+ data.tar.gz: 8a1b78aa69fe3c3f02c13ba9a94345a1d2e53b010909807b1a1ceaec88192ccd52c861025248195a284b5dca109391b80090b43e33b9a8a5cd0519c8a31abf83
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/wiki_md.rb CHANGED
@@ -8,9 +8,9 @@ require 'dxsectionx'
8
8
  class WikiMd
9
9
  include RXFHelperModule
10
10
 
11
- attr_reader :active_heading, :filename
11
+ attr_reader :active_heading, :filename, :dx
12
12
 
13
- def initialize(wiki=nil, domain: nil, debug: false, base_url: '/',
13
+ def initialize(wiki=nil, domain: nil, debug: false, base_url: '',
14
14
  tag_base_url: '/tag')
15
15
 
16
16
  @domain, @debug, @base_url, @tag_base_url = domain, debug, base_url,
@@ -35,20 +35,48 @@ class WikiMd
35
35
  new_md()
36
36
 
37
37
  end
38
+
39
+ save()
38
40
 
39
41
  end
40
-
41
-
42
+
42
43
  def create_section(s)
44
+
45
+ @active_heading = title = s[/(?<=^# ).*/]
46
+ url = [@base_url, File.basename(@filename)[/.*(?=\.\w+)/],
47
+ URI.escape(title)].join('/')
43
48
 
49
+ if s.rstrip.lines.last =~ /^\+\s+/ then
50
+
51
+ @dxsx.create(x: s, url: url)
52
+
53
+ else
54
+
55
+ a = title.split(/ +/)
56
+ tag = a.length > 1 ? a.map(&:capitalize).join : a.first
57
+
58
+ @dxsx.create(x: s + "\n\n+ " + tag, url: url)
59
+
60
+ end
61
+
62
+ FileX.write @filename, @dxsx.to_s if @filename
63
+
64
+ end
65
+
66
+ def create_section(s)
67
+
44
68
  @active_heading = title = s[/(?<=^# ).*/]
45
- tag = title.split(/ +/).map(&:capitalize).join
46
69
 
47
- @dxsx.create(x: s + "\n\n+ " + tag)
48
- @dx.create title: title + ' #' + tag,
49
- url: [@base_url, File.basename(@filename),
70
+ s2 = s.rstrip.lines.last =~ /^\+\s+/ ? s : s + "\n\n+ " + tag
71
+
72
+ @dxsx.create(x: s2)
73
+
74
+ tag = s.rstrip.lines.last[/(?<=^\+\s).*/]
75
+ @dx.create title: title + ' #' + tag.lstrip,
76
+ url: [@base_url, File.basename(@filename)[/.*(?=\.\w+)/],
50
77
  URI.escape(title)].join('/')
51
78
  FileX.write @filename, @dxsx.to_s if @filename
79
+
52
80
  end
53
81
 
54
82
  alias add_section create_section
@@ -143,7 +171,7 @@ EOF
143
171
  end
144
172
  end
145
173
 
146
- def save(filename=@filename)
174
+ def save(filename=@filename || 'mywiki.md')
147
175
 
148
176
  @filename = filename
149
177
  @filepath = File.dirname(@filename)
@@ -202,6 +230,42 @@ EOF
202
230
  content = val =~ /# / ? val : r.x.lines.first + "\n" + val
203
231
  @active_heading = content[/(?<=^# ).*/]
204
232
  r.x = content
233
+
234
+ rx = @dx.all.find {|x| x.title =~ /#{q}/}
235
+ tagline1 = content.lines.last[/^\+\s+(.*)/,1]
236
+
237
+ if rx then
238
+
239
+ # update the index entry if the title or tags have been modified
240
+
241
+ title, tagline2 = rx.title.split(/\s+#/)
242
+
243
+
244
+ if title != @active_heading or tagline2 != tagline1 then
245
+
246
+ rx.update title: @active_heading + ' #' + tagline1.split.join(' #'),
247
+ url: [@base_url, File.basename(@filename)[/.*(?=\.\w+)/],
248
+ URI.escape(title)].join('/')
249
+
250
+ end
251
+
252
+
253
+ else
254
+
255
+ # create a new index entry
256
+
257
+ newtagline = if tagline1 then
258
+ tagline1.split.join(' #')
259
+ else
260
+ a = @active_heading.split(/ +/)
261
+ a.length > 1 ? a.map(&:capitalize).join : a.first
262
+ end
263
+
264
+ @dx.create title: @active_heading + ' #' + newtagline,
265
+ url: [@base_url, File.basename(@filename),
266
+ URI.escape(@active_heading)].join('/')
267
+ end
268
+
205
269
  end
206
270
 
207
271
  private
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.2.1
4
+ version: 0.3.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: 2018-11-01 00:00:00.000000000 Z
38
+ date: 2018-11-02 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dxsectionx
metadata.gz.sig CHANGED
Binary file