runeblog 0.2.5 → 0.2.10
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 +16 -2
- data/lib/liveblog.rb +53 -68
- data/lib/logging.rb +24 -24
- data/lib/runeblog.rb +70 -82
- data/lib/runeblog_version.rb +1 -1
- data/runeblog.gemspec +2 -0
- data/test/make_blog.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a037d087baf23e47f7b3c254dac3348048cc9c498ad439a5f235149b9bbf96cb
|
|
4
|
+
data.tar.gz: f82a11b32ee3eb3738abdc1a60f3fc1606efb5252a29f5902d53591117199c6c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9fa1d23bd68596356383676b5d4c5c9fba04afaba2d98ccf8bb1d27fb4b68aba8b9a1078aaebcc7a61cefb8d8bb5102e51d09ecd68e82ce436afaa734c028862
|
|
7
|
+
data.tar.gz: aae6ba4be7009d1cfcc7461f6dfb5f4459d880b796a7842e67050863e6f48d9ede6923a8995c4945a0923153b7f97c051f18691f8e0d343ed450dcba586c88e0
|
data/empty_view.tgz
CHANGED
|
Binary file
|
data/lib/helpers-blog.rb
CHANGED
|
@@ -38,7 +38,7 @@ exit unless rc
|
|
|
38
38
|
return false
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
def livetext(src, dst=nil)
|
|
41
|
+
def livetext(src, dst=nil, dir=".")
|
|
42
42
|
log!(enter: __method__, args: [src, dst])
|
|
43
43
|
src << ".lt3" unless src.end_with?(".lt3")
|
|
44
44
|
if dst
|
|
@@ -47,7 +47,21 @@ exit unless rc
|
|
|
47
47
|
dst = src.sub(/.lt3$/, "")
|
|
48
48
|
end
|
|
49
49
|
# return unless stale?(src, dst)
|
|
50
|
-
system("livetext #{src} >#{dst}")
|
|
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$/, "")
|
|
60
|
+
end
|
|
61
|
+
# return unless stale?(src, dst)
|
|
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"
|
|
51
65
|
end
|
|
52
66
|
|
|
53
67
|
def get_root
|
data/lib/liveblog.rb
CHANGED
|
@@ -423,6 +423,7 @@ def sidebar
|
|
|
423
423
|
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
|
424
424
|
_args do |token|
|
|
425
425
|
tag = token.chomp.strip.downcase
|
|
426
|
+
# Doesn't handle "split personality" widgets yet
|
|
426
427
|
Dir.chdir("widgets/#{tag}") do
|
|
427
428
|
livetext tag, "card-#{tag}.html"
|
|
428
429
|
_include_file "card-#{tag}.html"
|
|
@@ -447,59 +448,43 @@ def script
|
|
|
447
448
|
_out %[<script src="#{url}" integrity="#{integ}" crossorigin="#{cross}"></script>]
|
|
448
449
|
end
|
|
449
450
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
<html>
|
|
488
|
-
<head><link rel="stylesheet" href="etc/blog.css"></head>
|
|
489
|
-
<body>
|
|
490
|
-
HTML
|
|
491
|
-
posts = _find_recent_posts
|
|
492
|
-
wanted = [5, posts.size].min # estimate how many we want?
|
|
493
|
-
enum = posts.each
|
|
494
|
-
wanted.times do
|
|
495
|
-
postid = File.basename(enum.next)
|
|
496
|
-
postid = postid.to_i
|
|
497
|
-
text << _teaser(postid) # side effect! calls _out
|
|
498
|
-
end
|
|
499
|
-
text << "</body></html>"
|
|
500
|
-
File.write("recent.html", text)
|
|
501
|
-
_out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
|
502
|
-
end
|
|
451
|
+
# def _find_recent_posts
|
|
452
|
+
# @vdir = _var(:FileDir).match(%r[(^.*/views/.*?)/])[1]
|
|
453
|
+
# posts = nil
|
|
454
|
+
# dir_posts = @vdir + "/posts"
|
|
455
|
+
# entries = Dir.entries(dir_posts)
|
|
456
|
+
# posts = entries.grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
|
|
457
|
+
# posts.select! {|x| File.directory?(x) }
|
|
458
|
+
# # directories that start with four digits
|
|
459
|
+
# posts = posts.sort {|a, b| b.to_i <=> a.to_i } # sort descending
|
|
460
|
+
# posts[0..19] # return 20 at most
|
|
461
|
+
# end
|
|
462
|
+
#
|
|
463
|
+
# def all_teasers
|
|
464
|
+
# open = <<-HTML
|
|
465
|
+
# <section class="posts">
|
|
466
|
+
# HTML
|
|
467
|
+
# close = <<-HTML
|
|
468
|
+
# </section>
|
|
469
|
+
# HTML
|
|
470
|
+
#
|
|
471
|
+
# text = <<-HTML
|
|
472
|
+
# <html>
|
|
473
|
+
# <head><link rel="stylesheet" href="etc/blog.css"></head>
|
|
474
|
+
# <body>
|
|
475
|
+
# HTML
|
|
476
|
+
# posts = _find_recent_posts
|
|
477
|
+
# wanted = [5, posts.size].min # estimate how many we want?
|
|
478
|
+
# enum = posts.each
|
|
479
|
+
# wanted.times do
|
|
480
|
+
# postid = File.basename(enum.next)
|
|
481
|
+
# postid = postid.to_i
|
|
482
|
+
# text << _teaser(postid) # side effect! calls _out
|
|
483
|
+
# end
|
|
484
|
+
# text << "</body></html>"
|
|
485
|
+
# File.write("recent.html", text)
|
|
486
|
+
# _out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
|
487
|
+
# end
|
|
503
488
|
|
|
504
489
|
def _post_lookup(postid) # side-effect
|
|
505
490
|
# .. = templates, ../.. = views/thisview
|
|
@@ -521,21 +506,21 @@ def _interpolate(str, context) # FIXME move this later
|
|
|
521
506
|
eval(wrapped, context)
|
|
522
507
|
end
|
|
523
508
|
|
|
524
|
-
def _teaser(slug)
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
end
|
|
509
|
+
# def _teaser(slug)
|
|
510
|
+
# id = slug.to_i
|
|
511
|
+
# text = nil
|
|
512
|
+
# post_entry_name = @theme + "blog/post_entry.lt3"
|
|
513
|
+
# @_post_entry ||= File.read(post_entry_name)
|
|
514
|
+
# vp = _post_lookup(id)
|
|
515
|
+
# nslug, aslug, title, date, teaser_text =
|
|
516
|
+
# vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
|
|
517
|
+
# path = vp.path
|
|
518
|
+
# url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
|
|
519
|
+
# date = Date.parse(date)
|
|
520
|
+
# date = date.strftime("%B %e<br>%Y")
|
|
521
|
+
# text = _interpolate(@_post_entry, binding)
|
|
522
|
+
# text
|
|
523
|
+
# end
|
|
539
524
|
|
|
540
525
|
def _card_generic(card_title:, middle:, extra: "")
|
|
541
526
|
front = <<-HTML
|
data/lib/logging.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
unless self.respond_to?("log!")
|
|
2
2
|
$logging = true
|
|
3
|
-
$log = File.new("/tmp/runeblog
|
|
3
|
+
$log = File.new("/tmp/runeblog.log","w")
|
|
4
4
|
|
|
5
5
|
def log!(str: "", enter: nil, args: [], pwd: false, dir: false)
|
|
6
6
|
return unless $logging
|
|
@@ -31,28 +31,28 @@ unless self.respond_to?("log!")
|
|
|
31
31
|
$log = File.new("/tmp/runeblog.log","a")
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
34
|
+
# def log(str: "", enter: nil, args: [], pwd: false, dir: false)
|
|
35
|
+
# return unless $logging
|
|
36
|
+
# time = Time.now.strftime("%H:%M:%S")
|
|
37
|
+
# meth = ""
|
|
38
|
+
# meth = "#{enter}" if enter
|
|
39
|
+
# para = " args: #{args.inspect[1..-2]}"
|
|
40
|
+
# source = caller[0].sub(/.*\//, " in ").sub(/:/, " line ").sub(/:.*/, "")
|
|
41
|
+
# source = " in #{source} (probably liveblog.rb)" if source.include? "(eval)"
|
|
42
|
+
# str = " ... #{str}" unless str.empty?
|
|
43
|
+
# indent = " "*12
|
|
44
|
+
# STDERR.puts "#{time} #{str} #{meth}"
|
|
45
|
+
# STDERR.puts "#{indent} #{source}"
|
|
46
|
+
# STDERR.puts "#{indent} pwd = #{Dir.pwd} " if pwd
|
|
47
|
+
# if dir
|
|
48
|
+
# files = (Dir.entries('.') - %w[. ..]).join(" ")
|
|
49
|
+
# STDERR.puts "#{indent} dir/* = #{files}"
|
|
50
|
+
# end
|
|
51
|
+
# STDERR.puts "#{indent} #{para} " unless args.empty?
|
|
52
|
+
# # STDERR.puts "#{indent} livetext params = #{livedata.inpect} " unless livedata.nil?
|
|
53
|
+
# STDERR.puts
|
|
54
|
+
# # $log.close
|
|
55
|
+
# # $log = File.new("/tmp/runeblog.log","a")
|
|
56
|
+
# end
|
|
57
57
|
end
|
|
58
58
|
|
data/lib/runeblog.rb
CHANGED
|
@@ -59,7 +59,6 @@ class RuneBlog
|
|
|
59
59
|
raise BlogRepoAlreadyExists if Dir.exist?(root)
|
|
60
60
|
create_dirs(root)
|
|
61
61
|
Dir.chdir(root) do
|
|
62
|
-
# puts " pwd = #{Dir.pwd} Trying: cp #{RuneBlog::Path}/../empty_view.tgz ."
|
|
63
62
|
system("cp #{RuneBlog::Path}/../empty_view.tgz .")
|
|
64
63
|
create_dirs(:drafts, :views)
|
|
65
64
|
new_sequence
|
|
@@ -108,7 +107,6 @@ class RuneBlog
|
|
|
108
107
|
val = self.instance_variable_get(iv)
|
|
109
108
|
str << "#{iv}: #{val} "
|
|
110
109
|
end
|
|
111
|
-
# str << "]]"
|
|
112
110
|
str
|
|
113
111
|
end
|
|
114
112
|
|
|
@@ -200,32 +198,15 @@ class RuneBlog
|
|
|
200
198
|
vdir = arg.dup
|
|
201
199
|
raise DirAlreadyExists(vdir) if Dir.exist?(vdir)
|
|
202
200
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
cmd2 = "cp -r empty_view views/#{arg}"
|
|
210
|
-
system(cmd1)
|
|
211
|
-
# puts " pwd = #{Dir.pwd}"
|
|
212
|
-
# puts " . => #{`echo *`}"
|
|
213
|
-
# puts " ./views => #{`ls views`}"
|
|
214
|
-
# puts " #{cmd1}\n #{cmd2}"
|
|
215
|
-
system(cmd2)
|
|
216
|
-
end
|
|
217
|
-
# create_dirs(vdir)
|
|
201
|
+
Dir.chdir(@root) do
|
|
202
|
+
cmd1 = "tar zxvf empty_view.tgz >/dev/null 2>&1"
|
|
203
|
+
cmd2 = "cp -r empty_view views/#{arg}"
|
|
204
|
+
system(cmd1)
|
|
205
|
+
system(cmd2)
|
|
206
|
+
end
|
|
218
207
|
|
|
219
|
-
# puts "vdir = #{vdir} pwd = #{Dir.pwd}"
|
|
220
208
|
Dir.chdir("#@root/views/#{vdir}") do
|
|
221
|
-
|
|
222
|
-
# x = RuneBlog::Default
|
|
223
|
-
# copy!("#{Themes}", "themes")
|
|
224
|
-
# create_dirs(:assets, :posts, :staging, "remote/permalink", "remote/navbar")
|
|
225
|
-
# livetext "themes/standard/etc/blog.css.lt3" # strip ext
|
|
226
|
-
# _copy_to_staging
|
|
227
|
-
# _copy_to_remote
|
|
228
|
-
livetext "themes/standard/blog/generate", "remote/index"
|
|
209
|
+
livetext "generate", "../../../remote/index", "themes/standard/blog"
|
|
229
210
|
pub = "user: xxx\nserver: xxx\ndocroot: xxx\npath: xxx\nproto: xxx\n"
|
|
230
211
|
dump(pub, "publish")
|
|
231
212
|
|
|
@@ -257,7 +238,6 @@ class RuneBlog
|
|
|
257
238
|
|
|
258
239
|
def post_lookup(postid) # side-effect?
|
|
259
240
|
log!(enter: __method__, args: [postid])
|
|
260
|
-
# .. = templates, ../.. = views/thisview
|
|
261
241
|
slug = title = date = teaser_text = nil
|
|
262
242
|
|
|
263
243
|
dir_posts = @vdir + "/posts"
|
|
@@ -281,7 +261,6 @@ class RuneBlog
|
|
|
281
261
|
nslug, aslug, title, date, teaser_text =
|
|
282
262
|
vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
|
|
283
263
|
path = vp.path
|
|
284
|
-
# url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
|
|
285
264
|
url = "#{aslug}.html" # Should be relative to .blogs!! FIXME
|
|
286
265
|
date = ::Date.parse(date)
|
|
287
266
|
date = date.strftime("%B %e<br>%Y")
|
|
@@ -379,7 +358,7 @@ class RuneBlog
|
|
|
379
358
|
|
|
380
359
|
def generate_view(view) # huh?
|
|
381
360
|
log!(enter: __method__, args: [view])
|
|
382
|
-
generate_index(view)
|
|
361
|
+
generate_index(view) # recent posts (recent.html)
|
|
383
362
|
Dir.chdir(@root + "/views/#{view}/themes/standard") do
|
|
384
363
|
livetext "blog/generate.lt3", "../../remote/index.html"
|
|
385
364
|
end
|
|
@@ -396,22 +375,6 @@ class RuneBlog
|
|
|
396
375
|
views
|
|
397
376
|
end
|
|
398
377
|
|
|
399
|
-
# Remember: A post in multiple views will trigger multiple
|
|
400
|
-
# views needing to be rebuilt (and published)
|
|
401
|
-
|
|
402
|
-
# generate a post:
|
|
403
|
-
# given draft 9999-title.lt3
|
|
404
|
-
# create VIEW/posts/9999-title/index.lt3
|
|
405
|
-
# LATER: metadata!! or is it in head?
|
|
406
|
-
# Generate VIEW/posts/9999-title/head.lt3?
|
|
407
|
-
# livetext draft_wrapper_plain.lt3 >generated/posts/plain-title.html # unframed
|
|
408
|
-
# livetext draft_generate.lt3 >generated/posts/real-title.html # framed
|
|
409
|
-
# livetext draft_wrapper_perma.lt3 >generated/posts/perma-title.html # permaframed
|
|
410
|
-
#
|
|
411
|
-
# Generate associated views:
|
|
412
|
-
# livetext ??/recent.lt3 >VIEW/working/recent.html
|
|
413
|
-
# livetext VIEW/blog/generate.lt3 ??
|
|
414
|
-
|
|
415
378
|
def _copy_get_dirs(draft, view)
|
|
416
379
|
log!(enter: __method__, args: [draft, view])
|
|
417
380
|
fname = File.basename(draft)
|
|
@@ -425,48 +388,73 @@ class RuneBlog
|
|
|
425
388
|
[noext, viewdir, slugdir, aslug, theme]
|
|
426
389
|
end
|
|
427
390
|
|
|
391
|
+
def _handle_post(draft, view)
|
|
392
|
+
noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
|
|
393
|
+
html = noext[5..-1] # strip "nnnn-"
|
|
394
|
+
remote = viewdir + "/remote"
|
|
395
|
+
Dir.chdir(slugdir) do
|
|
396
|
+
copy(draft, ".") # copy source into slugdir
|
|
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]
|
|
406
|
+
excerpt = File.read("teaser.txt")
|
|
407
|
+
vars = %[.set title="#{title.chomp}"\n] +
|
|
408
|
+
%[.set teaser="#{excerpt.chomp}"]
|
|
409
|
+
theme = "#{viewdir}/themes/standard"
|
|
410
|
+
File.open("#{theme}/post/vars.lt3", "w") {|f| f.puts vars }
|
|
411
|
+
|
|
412
|
+
livetext! "generate.lt3", "#{remote}/html", "#{theme}/post"
|
|
413
|
+
copy("#{remote}/#{html}", "#{theme}/post")
|
|
414
|
+
|
|
415
|
+
livetext! "permalink.lt3", "#{remote}/permalink/#{html}", "#{theme}/post"
|
|
416
|
+
log!(str: "About to enter remote/", pwd: true, dir: true)
|
|
417
|
+
Dir.chdir(remote) do
|
|
418
|
+
log!(str: "Now in remote/", pwd: true, dir: true)
|
|
419
|
+
system("cp -r ../themes/standard/widgets .")
|
|
420
|
+
log!(str: "finished with remote/", pwd: true, dir: true)
|
|
421
|
+
end
|
|
422
|
+
end
|
|
423
|
+
end
|
|
424
|
+
|
|
428
425
|
def generate_post(draft)
|
|
429
426
|
log!(enter: __method__, args: [draft])
|
|
430
427
|
views = _get_views(draft)
|
|
431
428
|
views.each do |view|
|
|
432
|
-
|
|
433
|
-
# staging = viewdir + "/staging"
|
|
434
|
-
remote = viewdir + "/remote"
|
|
435
|
-
Dir.chdir(slugdir) do
|
|
436
|
-
copy(draft, ".")
|
|
437
|
-
lt3 = draft.split("/")[-1]
|
|
438
|
-
# Remember: Some posts may be in more than one view -- careful with links back
|
|
439
|
-
# system("livetext #{draft} >staging/#{name}/index.html") # permalink?
|
|
440
|
-
# copy!("#{@theme}/*", "#{staging}")
|
|
441
|
-
# copy(lt3, staging)
|
|
442
|
-
copy(lt3, remote)
|
|
443
|
-
html = noext[5..-1]
|
|
444
|
-
livetext draft, html # livetext "foobar.lt3", "foobar.html"
|
|
445
|
-
# copy(html, "../../staging/post/index.html")
|
|
446
|
-
copy(html, "../../remote/post/index.html")
|
|
447
|
-
title_line = File.readlines(draft).grep(/^.title /).first
|
|
448
|
-
title = title_line.split(" ", 2)[1]
|
|
449
|
-
excerpt = File.read("teaser.txt")
|
|
450
|
-
vars = %[.set title="#{title.chomp}"\n] +
|
|
451
|
-
%[.set teaser="#{excerpt.chomp}"]
|
|
452
|
-
theme = "../../theme/standard"
|
|
453
|
-
File.open("vars.lt3", "w") {|f| f.puts vars }
|
|
454
|
-
livetext "#{theme}/post/generate.lt3", "#{remote}/#{html}"
|
|
455
|
-
livetext "#{theme}/post/permalink.lt3", "#{remote}/permalink/#{html}"
|
|
456
|
-
# puts <<-TEXT
|
|
457
|
-
# File.open("vars.lt3", "w") {|f| f.puts vars }
|
|
458
|
-
# livetext "../post/generate.lt3", "#{remote}/#{html}"
|
|
459
|
-
# livetext "../post/permalink.lt3", "#{remote}/permalink/#{html}"
|
|
460
|
-
# TEXT
|
|
461
|
-
# system("bash")
|
|
462
|
-
log!(str: "About to enter remote/", pwd: true, dir: true)
|
|
463
|
-
Dir.chdir(remote) do
|
|
464
|
-
log!(str: "Now in remote/", pwd: true, dir: true)
|
|
465
|
-
system("cp -r ../themes/standard/widgets .")
|
|
466
|
-
log!(str: "finished with remote/", pwd: true, dir: true)
|
|
467
|
-
end
|
|
468
|
-
end
|
|
429
|
+
_handle_post(draft, view)
|
|
469
430
|
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
|
|
470
458
|
end
|
|
471
459
|
|
|
472
460
|
def relink
|
data/lib/runeblog_version.rb
CHANGED
data/runeblog.gemspec
CHANGED
|
@@ -30,6 +30,8 @@ spec = Gem::Specification.new do |s|
|
|
|
30
30
|
test = Find.find("test").to_a
|
|
31
31
|
misc = %w[./README.lt3 ./README.md ./runeblog.gemspec]
|
|
32
32
|
|
|
33
|
+
# system("tar zcvf empty_view.tgz empty_view")
|
|
34
|
+
|
|
33
35
|
s.files = main + misc + test + ["empty_view.tgz"]
|
|
34
36
|
s.homepage = 'https://github.com/Hal9000/runeblog'
|
|
35
37
|
s.license = "Ruby"
|
data/test/make_blog.rb
CHANGED
|
@@ -21,7 +21,7 @@ end
|
|
|
21
21
|
def make_post(x, title, teaser, body, views=[])
|
|
22
22
|
# STDERR.puts "\n========= make_post '#{title}'"
|
|
23
23
|
print "."
|
|
24
|
-
|
|
24
|
+
x.create_new_post(title, true, teaser: teaser, body: body, other_views: views)
|
|
25
25
|
views.each {|view| x.generate_index(view) } # recent.html
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -132,5 +132,6 @@ BODY
|
|
|
132
132
|
|
|
133
133
|
x.change_view("around_austin")
|
|
134
134
|
|
|
135
|
+
puts
|
|
135
136
|
puts Time.now
|
|
136
137
|
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.10
|
|
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-09-
|
|
11
|
+
date: 2019-09-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: livetext
|