runeblog 0.2.50 → 0.2.51
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/themes/standard/navbar/navbar.lt3 +1 -1
- data/lib/liveblog.rb +37 -6
- data/lib/repl.rb +4 -0
- data/lib/runeblog.rb +25 -5
- data/lib/runeblog_version.rb +1 -1
- data/lib/xlate.rb +9 -4
- 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: 600dac0389d976fd41b8c3a5f4f63e4896a1b3f330525faa6b703dfb38e0b825
|
4
|
+
data.tar.gz: 52472d46f783f209ad13e95f8e230c89173780a98867389a075833fb3cb1edd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a650511f857069328ec4295e4ab1c70add5730118b68c16d45113844215f8db540bad78580225228b24ae4b26022abda6ab1e5af487edc231360d1a1c50fbda
|
7
|
+
data.tar.gz: 641d6ae9269a77d36929f36810ff779736cee66e81e0bb27660f8e7832f2f6ecce57977362a2128585789365d503a4f79b03580674293bf7a8575facadc296ac
|
data/lib/liveblog.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'ostruct'
|
2
2
|
require 'pp'
|
3
3
|
require 'date'
|
4
|
+
require 'find'
|
4
5
|
|
5
6
|
require 'runeblog'
|
6
7
|
require 'pathmagic'
|
@@ -96,15 +97,19 @@ def banner # still experimental
|
|
96
97
|
_out " <td colspan=#{span}>"
|
97
98
|
case
|
98
99
|
when piece.start_with?("hnav")
|
99
|
-
|
100
|
+
# horizontal navbar
|
101
|
+
# _out "<center>hnav1 hnav2 hnav3 hnav4</center>"
|
100
102
|
when piece.start_with?("vnav")
|
101
|
-
|
103
|
+
# vertical navbar
|
104
|
+
# _out "vnav1<br>vnav2<br>vnav3<br>vnav4<br>"
|
102
105
|
when piece.start_with?("text")
|
103
106
|
file = piece.split(":")[1]
|
107
|
+
file ||= "banner/text.html"
|
104
108
|
_out File.read(file)
|
105
109
|
when piece.start_with?("image")
|
106
|
-
|
107
|
-
|
110
|
+
image = piece.split(":")[1]
|
111
|
+
image ||= "banner/banner.jpg"
|
112
|
+
_out " <img src=#{image} height=100></img>"
|
108
113
|
else
|
109
114
|
_out " '#{piece}' isn't known"
|
110
115
|
end
|
@@ -461,7 +466,12 @@ def sidebar
|
|
461
466
|
end
|
462
467
|
end
|
463
468
|
|
464
|
-
|
469
|
+
depend = %w[card.css main.css custom.rb local.rb]
|
470
|
+
depend += ["#{wtag}.lt3", "#{wtag}.rb"]
|
471
|
+
depend += %w[pieces/card-head.lt3 pieces/card-tail.lt3]
|
472
|
+
depend += %w[pieces/main-head.lt3 pieces/main-tail.lt3]
|
473
|
+
depend.map! {|x| @blog.view.dir/"themes/standard/widgets"/wtag/x }
|
474
|
+
xlate cwd: wtag, src: tag, dst: tcard, force: true, deps: depend , debug: (tag == "ad")
|
465
475
|
_include_file wtag/tcard
|
466
476
|
end
|
467
477
|
_out %[</div>]
|
@@ -471,6 +481,26 @@ rescue => err
|
|
471
481
|
exit
|
472
482
|
end
|
473
483
|
|
484
|
+
=begin
|
485
|
+
ets/widgets/pages//card.css
|
486
|
+
ets/widgets/pages//custom.rb
|
487
|
+
ets/widgets/pages//disclaim.lt3
|
488
|
+
ets/widgets/pages//faq.lt3
|
489
|
+
ets/widgets/pages//like-dislike.lt3
|
490
|
+
ets/widgets/pages//list.data
|
491
|
+
ets/widgets/pages//local-vars.lt3
|
492
|
+
ets/widgets/pages//local.rb
|
493
|
+
ets/widgets/pages//main.css
|
494
|
+
ets/widgets/pages//other-stuff.lt3
|
495
|
+
ets/widgets/pages//pages.lt3
|
496
|
+
ets/widgets/pages//pages.rb
|
497
|
+
ets/widgets/pages//pieces
|
498
|
+
ets/widgets/pages//pieces/card-head.lt3
|
499
|
+
ets/widgets/pages//pieces/card-tail.lt3
|
500
|
+
ets/widgets/pages//pieces/main-head.lt3
|
501
|
+
ets/widgets/pages//pieces/main-tail.lt3
|
502
|
+
=end
|
503
|
+
|
474
504
|
def stylesheet
|
475
505
|
lines = _body
|
476
506
|
url = lines[0]
|
@@ -688,7 +718,8 @@ def navbar
|
|
688
718
|
first = false # hardcode this part??
|
689
719
|
_out %[<li class="nav-item active"> <a class="nav-link" href="index.html">#{cdata}<span class="sr-only">(current)</span></a> </li>]
|
690
720
|
else
|
691
|
-
|
721
|
+
depend = Find.find(@blog.root/:views/@blog.view.to_s/"themes/standard/navbar/").to_a
|
722
|
+
xlate cwd: "navbar", src: basename, dst: vdir/"remote/navbar"/basename+".html", deps: depend # , debug: true
|
692
723
|
_out %[<li class="nav-item"> <a class="nav-link" #{href_main}>#{cdata}</a> </li>]
|
693
724
|
end
|
694
725
|
end
|
data/lib/repl.rb
CHANGED
@@ -265,6 +265,10 @@ puts "Got to #{__method__}"
|
|
265
265
|
|
266
266
|
def cmd_new_view(arg, testing = false)
|
267
267
|
reset_output
|
268
|
+
if arg.nil?
|
269
|
+
arg = ask("\nFilename: ")
|
270
|
+
puts
|
271
|
+
end
|
268
272
|
@blog.create_view(arg)
|
269
273
|
edit_file(@blog.view.dir/"themes/standard/global.lt3")
|
270
274
|
@blog.change_view(arg)
|
data/lib/runeblog.rb
CHANGED
@@ -116,7 +116,13 @@ class RuneBlog
|
|
116
116
|
log!(enter: __method__, args: [dir], level: 1)
|
117
117
|
Dir.chdir(dir) do
|
118
118
|
views = _retrieve_metadata(:views)
|
119
|
-
views.each
|
119
|
+
views.each do |v|
|
120
|
+
unless @blog.view?(v)
|
121
|
+
puts "Warning: '#{v}' is not a view"
|
122
|
+
next
|
123
|
+
end
|
124
|
+
system!("cp *html #@root/views/#{v}/remote")
|
125
|
+
end
|
120
126
|
end
|
121
127
|
rescue => err
|
122
128
|
_tmp_error(err)
|
@@ -152,6 +158,7 @@ class RuneBlog
|
|
152
158
|
nslug = sourcefile.sub(/.lt3/, "")
|
153
159
|
dir = @root/:posts/nslug
|
154
160
|
create_dir(dir)
|
161
|
+
# FIXME dependencies?
|
155
162
|
xlate cwd: dir, src: sourcefile # , debug: true
|
156
163
|
_deploy_local(dir)
|
157
164
|
rescue => err
|
@@ -323,7 +330,8 @@ class RuneBlog
|
|
323
330
|
text = nil
|
324
331
|
@theme = @view.dir/"themes/standard"
|
325
332
|
post_entry_name = @theme/"blog/post_entry.lt3"
|
326
|
-
|
333
|
+
depend = [post_entry_name]
|
334
|
+
xlate src: post_entry_name, dst: "/tmp/post_entry.html", deps: depend # , debug: true
|
327
335
|
@_post_entry ||= File.read("/tmp/post_entry.html")
|
328
336
|
vp = post_lookup(id)
|
329
337
|
nslug, aslug, title, date, teaser_text =
|
@@ -436,9 +444,12 @@ class RuneBlog
|
|
436
444
|
log!(enter: __method__, args: [view])
|
437
445
|
vdir = @root/:views/view
|
438
446
|
@theme = @root/:views/view/:themes/:standard
|
439
|
-
|
447
|
+
depend = [vdir/"remote/etc/blog.css", @theme/"global.lt3",
|
448
|
+
@theme/"blog/head.lt3", @theme/"navbar/navbar.lt3",
|
449
|
+
@theme/"blog/index.lt3"] # FIXME what about assets?
|
450
|
+
xlate cwd: vdir/"themes/standard/etc", deps: depend,
|
440
451
|
src: "blog.css.lt3", copy: vdir/"remote/etc/blog.css" # , debug: true
|
441
|
-
xlate cwd: vdir/"themes/standard",
|
452
|
+
xlate cwd: vdir/"themes/standard", deps: depend,
|
442
453
|
src: "blog/generate.lt3", dst: vdir/:remote/"index.html"
|
443
454
|
copy("#{vdir}/assets/*", "#{vdir}/remote/assets/")
|
444
455
|
rescue => err
|
@@ -543,6 +554,7 @@ class RuneBlog
|
|
543
554
|
@theme = @root/:views/view_name/:themes/:standard
|
544
555
|
# Step 1...
|
545
556
|
create_dirs(pdraft)
|
557
|
+
# FIXME dependencies?
|
546
558
|
xlate cwd: pdraft, src: draft, dst: "guts.html" # , debug: true
|
547
559
|
_post_metadata(draft, pdraft)
|
548
560
|
# Step 2...
|
@@ -552,8 +564,10 @@ class RuneBlog
|
|
552
564
|
copy(pdraft/"guts.html", @theme/:post)
|
553
565
|
copy(pdraft/"vars.lt3", @theme/:post)
|
554
566
|
# Step 4...
|
567
|
+
# FIXME dependencies?
|
555
568
|
xlate cwd: @theme/:post, src: "generate.lt3", force: true,
|
556
569
|
dst: remote/ahtml, copy: @theme/:post # , debug: true
|
570
|
+
# FIXME dependencies?
|
557
571
|
xlate cwd: @theme/:post, src: "permalink.lt3",
|
558
572
|
dst: remote/:permalink/ahtml # , debug: true
|
559
573
|
copy_widget_html(view_name)
|
@@ -564,7 +578,13 @@ class RuneBlog
|
|
564
578
|
def generate_post(draft)
|
565
579
|
log!(enter: __method__, args: [draft], level: 1)
|
566
580
|
views = _get_views(draft)
|
567
|
-
views.each
|
581
|
+
views.each do |view|
|
582
|
+
unless self.view?(view)
|
583
|
+
puts "Warning: '#{view}' is not a view"
|
584
|
+
next
|
585
|
+
end
|
586
|
+
_handle_post(draft, view)
|
587
|
+
end
|
568
588
|
rescue => err
|
569
589
|
_tmp_error(err)
|
570
590
|
end
|
data/lib/runeblog_version.rb
CHANGED
data/lib/xlate.rb
CHANGED
@@ -1,19 +1,24 @@
|
|
1
1
|
|
2
2
|
LEXT = ".lt3"
|
3
3
|
|
4
|
-
def
|
4
|
+
def newer?(f1, f2)
|
5
|
+
File.mtime(f1) > File.mtime(f2)
|
6
|
+
end
|
7
|
+
|
8
|
+
def stale?(src, dst, deps, force = false)
|
5
9
|
meh = File.new("/tmp/dammit-#{src.gsub(/\//, "-")}", "w")
|
6
10
|
log!(enter: __method__, args: [src, dst], level: 3)
|
7
11
|
raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
|
8
12
|
return true if force
|
9
13
|
return true unless File.exist?(dst)
|
10
|
-
return true if
|
14
|
+
return true if newer?(src, dst)
|
15
|
+
deps.each {|dep| return true if newer?(dep, dst) }
|
11
16
|
return false
|
12
17
|
end
|
13
18
|
|
14
19
|
def xlate(cwd: Dir.pwd, src:,
|
15
20
|
dst: (strip = true; src.sub(/.lt3$/,"")),
|
16
|
-
copy: nil, debug: false, force: false)
|
21
|
+
deps: [], copy: nil, debug: false, force: false)
|
17
22
|
src += LEXT unless src.end_with?(LEXT)
|
18
23
|
dst += ".html" unless dst.end_with?(".html") || strip
|
19
24
|
indent = " "*12
|
@@ -24,7 +29,7 @@ def xlate(cwd: Dir.pwd, src:,
|
|
24
29
|
STDERR.puts "#{indent} from: #{caller[0]}"
|
25
30
|
STDERR.puts "#{indent} copy: #{copy}" if copy
|
26
31
|
end
|
27
|
-
stale = stale?(src, dst, force)
|
32
|
+
stale = stale?(src, dst, deps, force)
|
28
33
|
if stale
|
29
34
|
rc = system("livetext #{src} >#{dst}")
|
30
35
|
STDERR.puts "...completed (shell returned #{rc})" if debug
|
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.51
|
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-10-
|
11
|
+
date: 2019-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: livetext
|