runeblog 0.2.10 → 0.2.11
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
- data/empty_view.tgz +0 -0
- data/lib/helpers-blog.rb +46 -24
- data/lib/liveblog.rb +14 -11
- data/lib/runeblog.rb +113 -88
- data/lib/runeblog_version.rb +1 -1
- data/runeblog.gemspec +1 -1
- data/test/make_blog.rb +2 -4
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bbd97f1cfd9631550e0ef799e14f8c5dfd621d29c4231dfb9f5bbc0f065b436e
|
|
4
|
+
data.tar.gz: 449f13d68fc2a247e9e307083c7b0f4c9034bc4e85d307d7775d8a7a881284a7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 476e0804dd0085123c19019548bd7803ccfeff526d27e70b5bab1dcf3904fe8ec414b69a9562b34a9fd2e0574843cdbe66cdf9ed226b94d0d2aca92aebb1a7b5
|
|
7
|
+
data.tar.gz: 598f65529e5a1d52558142a3ad5230fa53bab77f12325efedc9a6c9f688a737633b4937088bf234e5e5b2fbee8bb17fc0778968e7547797ded0d116dbe024abc
|
data/empty_view.tgz
CHANGED
|
Binary file
|
data/lib/helpers-blog.rb
CHANGED
|
@@ -3,6 +3,8 @@ require 'fileutils'
|
|
|
3
3
|
|
|
4
4
|
# Home = Dir.pwd # unless Home
|
|
5
5
|
|
|
6
|
+
LEXT = ".lt3"
|
|
7
|
+
|
|
6
8
|
module RuneBlog::Helpers
|
|
7
9
|
|
|
8
10
|
def copy(src, dst)
|
|
@@ -31,37 +33,57 @@ exit unless rc
|
|
|
31
33
|
# end
|
|
32
34
|
end
|
|
33
35
|
|
|
34
|
-
def stale?(src, dst)
|
|
36
|
+
def stale?(src, dst, force = false)
|
|
35
37
|
log!(enter: __method__, args: [src, dst])
|
|
38
|
+
raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
|
|
39
|
+
return true if force
|
|
36
40
|
return true unless File.exist?(dst)
|
|
37
41
|
return true if File.mtime(src) > File.mtime(dst)
|
|
38
42
|
return false
|
|
39
43
|
end
|
|
40
44
|
|
|
41
|
-
def livetext(src, dst=nil, dir=".")
|
|
42
|
-
log!(enter: __method__, args: [src, dst])
|
|
43
|
-
src << ".lt3" unless src.end_with?(".lt3")
|
|
44
|
-
if dst
|
|
45
|
-
dst << ".html" unless dst.end_with?(".html")
|
|
46
|
-
else
|
|
47
|
-
dst = src.sub(/.lt3$/, "")
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def livetext!(src, dst=nil, dir=".")
|
|
54
|
-
log!(enter: __method__, args: [src, dst])
|
|
55
|
-
src << ".lt3" unless src.end_with?(".lt3")
|
|
56
|
-
if dst
|
|
57
|
-
dst << ".html" unless dst.end_with?(".html")
|
|
58
|
-
else
|
|
59
|
-
dst = src.sub(/.lt3$/, "")
|
|
45
|
+
# def livetext(src, dst=nil, dir=".")
|
|
46
|
+
# log!(enter: __method__, args: [src, dst])
|
|
47
|
+
# src << ".lt3" unless src.end_with?(".lt3")
|
|
48
|
+
# if dst
|
|
49
|
+
# dst << ".html" unless dst.end_with?(".html")
|
|
50
|
+
# else
|
|
51
|
+
# dst = src.sub(/.lt3$/, "")
|
|
52
|
+
# end
|
|
53
|
+
## return unless stale?(src, dst)
|
|
54
|
+
# Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
|
55
|
+
# end
|
|
56
|
+
#
|
|
57
|
+
# def livetext!(src, dst=nil, dir=".")
|
|
58
|
+
# log!(enter: __method__, args: [src, dst])
|
|
59
|
+
# src << ".lt3" unless src.end_with?(".lt3")
|
|
60
|
+
# if dst
|
|
61
|
+
# dst << ".html" unless dst.end_with?(".html")
|
|
62
|
+
# else
|
|
63
|
+
# dst = src.sub(/.lt3$/, "")
|
|
64
|
+
# end
|
|
65
|
+
## return unless stale?(src, dst)
|
|
66
|
+
#STDERR.puts "-- livetext #{src} >#{dst} \n in: #{Dir.pwd}\n from: #{caller[0]}"
|
|
67
|
+
# Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
|
68
|
+
#STDERR.puts "... completed"
|
|
69
|
+
# end
|
|
70
|
+
|
|
71
|
+
def xlate(cwd: Dir.pwd, src:,
|
|
72
|
+
dst: (strip = true; src.sub(/.lt3$/,"")),
|
|
73
|
+
copy: nil, debug: false, force: false)
|
|
74
|
+
src += LEXT unless src.end_with?(LEXT)
|
|
75
|
+
dst += ".html" unless dst.end_with?(".html") || strip
|
|
76
|
+
Dir.chdir(cwd) do
|
|
77
|
+
return unless stale?(src, dst, force)
|
|
78
|
+
if debug
|
|
79
|
+
STDERR.puts "-- xlate #{src} >#{dst}"
|
|
80
|
+
STDERR.puts " in: #{Dir.pwd}"
|
|
81
|
+
STDERR.puts " from: #{caller[0]}"
|
|
82
|
+
STDERR.puts " copy: #{copy}" if copy
|
|
83
|
+
end
|
|
84
|
+
rc = system("livetext #{src} >#{dst}")
|
|
60
85
|
end
|
|
61
|
-
|
|
62
|
-
STDERR.puts "-- livetext #{src} >#{dst} \n in: #{Dir.pwd}\n from: #{caller[0]}"
|
|
63
|
-
Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
|
64
|
-
STDERR.puts "... completed"
|
|
86
|
+
STDERR.puts "...completed (shell returned #{rc})" if debug
|
|
65
87
|
end
|
|
66
88
|
|
|
67
89
|
def get_root
|
data/lib/liveblog.rb
CHANGED
|
@@ -236,23 +236,20 @@ def pin
|
|
|
236
236
|
_optional_blank_line
|
|
237
237
|
end
|
|
238
238
|
|
|
239
|
-
def
|
|
240
|
-
raise "'post' was not called" unless @meta
|
|
241
|
-
save = Dir.pwd
|
|
242
|
-
@postdir.gsub!(/\/\//, "/") # FIXME unneeded?
|
|
243
|
-
Dir.mkdir(@postdir) unless Dir.exist?(@postdir) # FIXME remember assets!
|
|
244
|
-
Dir.chdir(@postdir)
|
|
245
|
-
@meta.views = @meta.views.join(" ") if @meta.views.is_a? Array
|
|
246
|
-
@meta.tags = @meta.tags.join(" ") if @meta.tags.is_a? Array
|
|
239
|
+
def _write_metadata
|
|
247
240
|
File.write("teaser.txt", @meta.teaser)
|
|
248
|
-
|
|
249
241
|
fields = [:num, :title, :date, :pubdate, :views, :tags]
|
|
250
|
-
|
|
251
242
|
fname2 = "metadata.txt"
|
|
252
243
|
f2 = File.open(fname2, "w") do |f2|
|
|
253
244
|
fields.each {|fld| f2.puts "#{fld}: #{@meta.send(fld)}" }
|
|
254
245
|
end
|
|
255
|
-
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def write_post
|
|
249
|
+
raise "'post' was not called" unless @meta
|
|
250
|
+
@meta.views = @meta.views.join(" ") if @meta.views.is_a? Array
|
|
251
|
+
@meta.tags = @meta.tags.join(" ") if @meta.tags.is_a? Array
|
|
252
|
+
_write_metadata
|
|
256
253
|
rescue => err
|
|
257
254
|
puts "err = #{err}"
|
|
258
255
|
puts err.backtrace.join("\n")
|
|
@@ -267,19 +264,25 @@ def teaser
|
|
|
267
264
|
end
|
|
268
265
|
|
|
269
266
|
def finalize
|
|
267
|
+
STDERR.puts :cp1
|
|
270
268
|
unless @meta
|
|
271
269
|
puts @live.body
|
|
272
270
|
return
|
|
273
271
|
end
|
|
272
|
+
STDERR.puts :cp4
|
|
274
273
|
if @blog.nil?
|
|
275
274
|
return @meta
|
|
276
275
|
end
|
|
277
276
|
|
|
277
|
+
STDERR.puts :cp6
|
|
278
278
|
@slug = @blog.make_slug(@meta)
|
|
279
|
+
STDERR.puts :cp7
|
|
279
280
|
slug_dir = @slug
|
|
280
281
|
@postdir = @blog.view.dir + "/posts/#{slug_dir}"
|
|
281
282
|
STDERR.puts "--- finalize: pwd = #{Dir.pwd} postdir = #@postdir"
|
|
283
|
+
STDERR.puts :cp8
|
|
282
284
|
write_post
|
|
285
|
+
STDERR.puts :cp9
|
|
283
286
|
@meta
|
|
284
287
|
end
|
|
285
288
|
|
data/lib/runeblog.rb
CHANGED
|
@@ -60,7 +60,7 @@ class RuneBlog
|
|
|
60
60
|
create_dirs(root)
|
|
61
61
|
Dir.chdir(root) do
|
|
62
62
|
system("cp #{RuneBlog::Path}/../empty_view.tgz .")
|
|
63
|
-
create_dirs(:drafts, :views)
|
|
63
|
+
create_dirs(:drafts, :views, :posts)
|
|
64
64
|
new_sequence
|
|
65
65
|
end
|
|
66
66
|
put_config(root: root)
|
|
@@ -99,6 +99,23 @@ class RuneBlog
|
|
|
99
99
|
@post_tags = []
|
|
100
100
|
end
|
|
101
101
|
|
|
102
|
+
def _deploy_local(dir)
|
|
103
|
+
log!(enter: __method__, args: [dir])
|
|
104
|
+
Dir.chdir(dir) do
|
|
105
|
+
views = File.readlines("metadata.txt").grep(/^.views /).first[7..-1].split
|
|
106
|
+
views.each {|v| system("cp *html #@root/views/#{v}/remote") }
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def process_post(sourcefile)
|
|
111
|
+
log!(enter: __method__, args: [dir])
|
|
112
|
+
nslug = sourcefile.sub(/.lt3/, "")
|
|
113
|
+
dir = @root + "/posts/#{nslug}"
|
|
114
|
+
create_dir(dir)
|
|
115
|
+
xlate cwd: dir, src: sourcefile, debug: true
|
|
116
|
+
_deploy_local(dir)
|
|
117
|
+
end
|
|
118
|
+
|
|
102
119
|
def inspect
|
|
103
120
|
log!(enter: __method__)
|
|
104
121
|
str = "blog: "
|
|
@@ -177,45 +194,59 @@ class RuneBlog
|
|
|
177
194
|
Dir.exist?(DotDir) && File.exist?(DotDir + "/" + ConfigFile)
|
|
178
195
|
end
|
|
179
196
|
|
|
180
|
-
def
|
|
181
|
-
|
|
182
|
-
|
|
197
|
+
def make_dummy_publish_file(view_name)
|
|
198
|
+
log!(enter: __method__, args: [view_name])
|
|
199
|
+
vdir = "#@root/views/#{view_name}"
|
|
200
|
+
pub = [:user, :server, :docroot, :path, :proto]
|
|
201
|
+
pub = pub.map {|x| x.to_s + ": undefined" }
|
|
202
|
+
pub = pub.join("\n") + "\n"
|
|
203
|
+
dump(pub, "#{vdir}/publish")
|
|
183
204
|
end
|
|
184
205
|
|
|
185
|
-
def
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
copy!("themes/standard/widgets", "remote/")
|
|
206
|
+
def mark_last_published(str)
|
|
207
|
+
log!(enter: __method__, args: [str])
|
|
208
|
+
dump(str, "last_published")
|
|
189
209
|
end
|
|
190
210
|
|
|
191
|
-
def
|
|
192
|
-
log!(enter: __method__, args: [
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
vdir = arg.dup
|
|
199
|
-
raise DirAlreadyExists(vdir) if Dir.exist?(vdir)
|
|
211
|
+
def add_view(view_name)
|
|
212
|
+
log!(enter: __method__, args: [view_name])
|
|
213
|
+
view = RuneBlog::View.new(view_name)
|
|
214
|
+
@view = view # current view
|
|
215
|
+
@views << view # all views
|
|
216
|
+
view
|
|
217
|
+
end
|
|
200
218
|
|
|
219
|
+
def make_empty_view_tree(view_name)
|
|
220
|
+
log!(enter: __method__, args: [view_name])
|
|
201
221
|
Dir.chdir(@root) do
|
|
202
222
|
cmd1 = "tar zxvf empty_view.tgz >/dev/null 2>&1"
|
|
203
|
-
cmd2 = "cp -r empty_view views/#{
|
|
223
|
+
cmd2 = "cp -r empty_view views/#{view_name}"
|
|
204
224
|
system(cmd1)
|
|
205
225
|
system(cmd2)
|
|
206
226
|
end
|
|
227
|
+
end
|
|
207
228
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
229
|
+
def check_valid_new_view(view_name)
|
|
230
|
+
log!(enter: __method__, args: [view_name])
|
|
231
|
+
raise ArgumentError unless view_name.is_a?(String)
|
|
232
|
+
raise ArgumentError if view_name.empty?
|
|
233
|
+
names = self.views.map(&:to_s)
|
|
234
|
+
bad = names.include?(view_name)
|
|
235
|
+
raise ViewAlreadyExists(view_name) if bad
|
|
236
|
+
vdir = "@root/views/#{view_name}"
|
|
237
|
+
raise DirAlreadyExists(view_name) if Dir.exist?(vdir)
|
|
238
|
+
return true # hm?
|
|
239
|
+
end
|
|
212
240
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
241
|
+
def create_view(view_name)
|
|
242
|
+
log!(enter: __method__, args: [view_name])
|
|
243
|
+
check_valid_new_view(view_name)
|
|
244
|
+
make_empty_view_tree(view_name)
|
|
245
|
+
# xlate cwd: "#@root/views/#{view_name}/themes/standard/blog",
|
|
246
|
+
# src: "generate", dst: "../../../remote/index"
|
|
247
|
+
make_dummy_publish_file(view_name)
|
|
248
|
+
mark_last_published("Initial creation")
|
|
249
|
+
add_view(view_name)
|
|
219
250
|
end
|
|
220
251
|
|
|
221
252
|
def delete_view(name, force = false)
|
|
@@ -304,7 +335,7 @@ class RuneBlog
|
|
|
304
335
|
def create_new_post(title, testing = false, teaser: nil, body: nil, other_views: [])
|
|
305
336
|
log!(enter: __method__, args: [title, testing, teaser, body, other_views])
|
|
306
337
|
meta = nil
|
|
307
|
-
Dir.chdir(
|
|
338
|
+
Dir.chdir("#@root/posts/") do
|
|
308
339
|
post = Post.create(title: title, teaser: teaser, body: body, other_views: other_views)
|
|
309
340
|
post.edit unless testing
|
|
310
341
|
post.build
|
|
@@ -322,6 +353,7 @@ class RuneBlog
|
|
|
322
353
|
sourcefile = "#@root/drafts/#{file}"
|
|
323
354
|
result = system("#@editor #{sourcefile} +8") unless testing
|
|
324
355
|
raise EditorProblem(sourcefile) unless result
|
|
356
|
+
process_post(sourcefile)
|
|
325
357
|
nil
|
|
326
358
|
rescue => err
|
|
327
359
|
error(err)
|
|
@@ -359,9 +391,9 @@ class RuneBlog
|
|
|
359
391
|
def generate_view(view) # huh?
|
|
360
392
|
log!(enter: __method__, args: [view])
|
|
361
393
|
generate_index(view) # recent posts (recent.html)
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
394
|
+
vdir = "#@root/views/#{view}"
|
|
395
|
+
xlate cwd: "#{vdir}/themes/standard",
|
|
396
|
+
src: "blog/generate.lt3", dst: "#{vdir}/remote/index.html"
|
|
365
397
|
end
|
|
366
398
|
|
|
367
399
|
def _get_views(draft)
|
|
@@ -388,73 +420,66 @@ class RuneBlog
|
|
|
388
420
|
[noext, viewdir, slugdir, aslug, theme]
|
|
389
421
|
end
|
|
390
422
|
|
|
391
|
-
def
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
lt3 = draft.split("/")[-1] # Remember: Some posts may be in more than
|
|
398
|
-
copy(lt3, remote) # one view -- careful with links back
|
|
399
|
-
STDERR.puts "1 pwd = #{Dir.pwd}"
|
|
400
|
-
livetext! draft, html
|
|
401
|
-
STDERR.puts " copy #{html}, #{remote}/#{html}"
|
|
402
|
-
copy(html, "#{remote}/#{html}")
|
|
403
|
-
|
|
404
|
-
title_line = File.readlines(draft).grep(/^.title /).first
|
|
405
|
-
title = title_line.split(" ", 2)[1]
|
|
423
|
+
def _post_metadata(draft, pdraft)
|
|
424
|
+
log!(enter: __method__, args: [draft, pdraft])
|
|
425
|
+
title_line = File.readlines(draft).grep(/^.title /).first
|
|
426
|
+
title = title_line.split(" ", 2)[1]
|
|
427
|
+
# pdir = "
|
|
428
|
+
Dir.chdir(pdraft) do
|
|
406
429
|
excerpt = File.read("teaser.txt")
|
|
407
430
|
vars = %[.set title="#{title.chomp}"\n] +
|
|
408
431
|
%[.set teaser="#{excerpt.chomp}"]
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
432
|
+
File.open("#{pdraft}/vars.lt3", "w") {|f| f.puts vars }
|
|
433
|
+
end
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
def copy_widget_html # FIXME make better?
|
|
437
|
+
log!(enter: __method__)
|
|
438
|
+
wdir = "../themes/standard/widgets"
|
|
439
|
+
widgets = Dir["#{wdir}/*"].select {|w| File.directory?(w) }
|
|
440
|
+
widgets.each do |w|
|
|
441
|
+
dir = File.basename(w)
|
|
442
|
+
rem = "#{remote}/#{w}"
|
|
443
|
+
create_dirs(rem)
|
|
444
|
+
system("cp #{w}/*html #{rem}")
|
|
422
445
|
end
|
|
423
446
|
end
|
|
424
447
|
|
|
448
|
+
def _handle_post(draft, view)
|
|
449
|
+
log!(enter: __method__, args: [draft, view])
|
|
450
|
+
|
|
451
|
+
fname = File.basename(draft) # 0001-this-is-a-post.lt3
|
|
452
|
+
nslug = fname.sub(/.lt3$/, "") # 0001-this-is-a-post
|
|
453
|
+
aslug = nslug.sub(/\d\d\d\d-/, "") # this-is-a-post
|
|
454
|
+
ahtml = aslug + ".html" # this-is-a-post.html
|
|
455
|
+
pdraft = "#@root/posts/#{nslug}"
|
|
456
|
+
remote = "#@root/views/#{view}/remote"
|
|
457
|
+
@theme = "#@root/views/#{view}/themes/standard"
|
|
458
|
+
# Step 1...
|
|
459
|
+
create_dirs(pdraft)
|
|
460
|
+
xlate cwd: pdraft, src: draft, dst: "guts.html"
|
|
461
|
+
_post_metadata(draft, pdraft)
|
|
462
|
+
# Step 2...
|
|
463
|
+
vposts = "#@root/views/#{view}/posts/"
|
|
464
|
+
copy!(pdraft, vposts) # ??
|
|
465
|
+
# Step 3..
|
|
466
|
+
copy(pdraft + "/guts.html", "#@theme/post")
|
|
467
|
+
copy(pdraft + "/vars.lt3", "#@theme/post")
|
|
468
|
+
# Step 4...
|
|
469
|
+
xlate cwd: "#{@theme}/post", src: "generate.lt3",
|
|
470
|
+
dst: "#{remote}/#{ahtml}", copy: "#{@theme}/post"
|
|
471
|
+
xlate cwd: "#{@theme}/post", src: "permalink.lt3",
|
|
472
|
+
dst: "#{remote}/permalink/#{ahtml}"
|
|
473
|
+
copy_widget_html
|
|
474
|
+
end
|
|
475
|
+
|
|
425
476
|
def generate_post(draft)
|
|
426
477
|
log!(enter: __method__, args: [draft])
|
|
427
478
|
views = _get_views(draft)
|
|
428
|
-
views.each do |view|
|
|
479
|
+
views.each do |view|
|
|
429
480
|
_handle_post(draft, view)
|
|
481
|
+
generate_view(view)
|
|
430
482
|
end
|
|
431
|
-
# noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
|
|
432
|
-
# remote = viewdir + "/remote"
|
|
433
|
-
# Dir.chdir(slugdir) do
|
|
434
|
-
# copy(draft, ".")
|
|
435
|
-
# lt3 = draft.split("/")[-1]
|
|
436
|
-
# # Remember: Some posts may be in more than one view -- careful with links back
|
|
437
|
-
# copy(lt3, remote)
|
|
438
|
-
# html = noext[5..-1] # strip "nnnn-"
|
|
439
|
-
# livetext! draft, html
|
|
440
|
-
# copy(html, "#{remote}/#{html}")
|
|
441
|
-
# title_line = File.readlines(draft).grep(/^.title /).first
|
|
442
|
-
# title = title_line.split(" ", 2)[1]
|
|
443
|
-
# excerpt = File.read("teaser.txt")
|
|
444
|
-
# vars = %[.set title="#{title.chomp}"\n] +
|
|
445
|
-
# %[.set teaser="#{excerpt.chomp}"]
|
|
446
|
-
# theme = "#{viewdir}/themes/standard"
|
|
447
|
-
# File.open("#{theme}/post/vars.lt3", "w") {|f| f.puts vars }
|
|
448
|
-
# livetext! "generate.lt3", "#{remote}/html", "#{theme}/post"
|
|
449
|
-
# copy("#{remote}/html", "#{theme}/post")
|
|
450
|
-
# livetext! "permalink.lt3", "#{remote}/permalink/#{html}", "#{theme}/post"
|
|
451
|
-
# log!(str: "About to enter remote/", pwd: true, dir: true)
|
|
452
|
-
# Dir.chdir(remote) do
|
|
453
|
-
# log!(str: "Now in remote/", pwd: true, dir: true)
|
|
454
|
-
# system("cp -r ../themes/standard/widgets .")
|
|
455
|
-
# log!(str: "finished with remote/", pwd: true, dir: true)
|
|
456
|
-
# end
|
|
457
|
-
# end
|
|
458
483
|
end
|
|
459
484
|
|
|
460
485
|
def relink
|
data/lib/runeblog_version.rb
CHANGED
data/runeblog.gemspec
CHANGED
|
@@ -20,7 +20,7 @@ spec = Gem::Specification.new do |s|
|
|
|
20
20
|
s.authors = ["Hal Fulton"]
|
|
21
21
|
s.email = 'rubyhacker@gmail.com'
|
|
22
22
|
s.executables << "blog"
|
|
23
|
-
s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.
|
|
23
|
+
s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.93'
|
|
24
24
|
s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.16'
|
|
25
25
|
|
|
26
26
|
# Files...
|
data/test/make_blog.rb
CHANGED
|
@@ -42,10 +42,6 @@ x = RuneBlog.new(".blogs")
|
|
|
42
42
|
|
|
43
43
|
x.create_view("around_austin") # FIXME remember view title!
|
|
44
44
|
|
|
45
|
-
# puts "=== about to call: x.generate_view('around_austin')"
|
|
46
|
-
x.generate_view("around_austin")
|
|
47
|
-
# puts "=== ...returned"
|
|
48
|
-
|
|
49
45
|
# Hack:
|
|
50
46
|
if File.exist?("publish")
|
|
51
47
|
system("cp publish .blogs/views/around_austin/publish")
|
|
@@ -130,6 +126,8 @@ But I first heard of them
|
|
|
130
126
|
in 2005.
|
|
131
127
|
BODY
|
|
132
128
|
|
|
129
|
+
x.generate_view("around_austin")
|
|
130
|
+
|
|
133
131
|
x.change_view("around_austin")
|
|
134
132
|
|
|
135
133
|
puts
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: runeblog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hal Fulton
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-10-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: livetext
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
version: '0.8'
|
|
20
20
|
- - ">="
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version: 0.8.
|
|
22
|
+
version: 0.8.93
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -29,7 +29,7 @@ dependencies:
|
|
|
29
29
|
version: '0.8'
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.8.
|
|
32
|
+
version: 0.8.93
|
|
33
33
|
- !ruby/object:Gem::Dependency
|
|
34
34
|
name: rubytext
|
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|