runeblog 0.2.26 → 0.2.31
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 +13 -13
- data/lib/helpers-repl.rb +0 -13
- data/lib/liveblog.rb +49 -41
- data/lib/post.rb +4 -3
- data/lib/publish.rb +24 -15
- data/lib/repl.rb +4 -12
- data/lib/runeblog.rb +14 -24
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +4 -7
- data/test/general_test.rb +1 -1
- data/test/make_blog.rb +29 -3
- 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: 24f0f2eb8b2b217131e1a0bf2c74edd38efd672161f4cfbbe2f32caca0f7198a
|
4
|
+
data.tar.gz: a356e607a4e20cf4e024995441966f42031f98ce58ef1bff1b616d3f44446cd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23d9b96c624032f42f9928e376c3df6d075a548b4f53278c8adecc9c7379ab999b0d2c2964f867c9379fb78d0373863a5de57b52e8c12a3dfbca463f502b288e
|
7
|
+
data.tar.gz: 50b81e2e7db6e3f418600bf529fedd1353eeffb39a1bab6f58ed72641e244d4608c44c580864e9c420a6bdd3f39d40f3a8314b551197ef5d26bcee93366852c6
|
data/empty_view.tgz
CHANGED
Binary file
|
data/lib/helpers-blog.rb
CHANGED
@@ -67,17 +67,17 @@ module RuneBlog::Helpers
|
|
67
67
|
vals
|
68
68
|
end
|
69
69
|
|
70
|
-
def put_config(root:, view:"test_view", editor: "/usr/local/bin/vim")
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
70
|
+
# def put_config(root:, view:"test_view", editor: "/usr/local/bin/vim")
|
71
|
+
# log!(enter: __method__, args: [root, view, editor])
|
72
|
+
# Dir.mkdir(root) unless Dir.exist?(root)
|
73
|
+
# Dir.chdir(root) do
|
74
|
+
# File.open("config", "w") do |cfg|
|
75
|
+
# cfg.puts "root: #{root}"
|
76
|
+
# cfg.puts "current_view: #{view}"
|
77
|
+
# cfg.puts "editor: #{editor}"
|
78
|
+
# end
|
79
|
+
# end
|
80
|
+
# end
|
81
81
|
|
82
82
|
def write_config(obj, file)
|
83
83
|
log!(enter: __method__, args: [obj, file])
|
@@ -95,10 +95,10 @@ end
|
|
95
95
|
|
96
96
|
def new_dotfile(root: ".blogs", current_view: "test_view", editor: "vi")
|
97
97
|
log!(enter: __method__, args: [root, current_view, editor])
|
98
|
-
root = Dir.pwd
|
98
|
+
root = Dir.pwd/root
|
99
99
|
x = OpenStruct.new
|
100
100
|
x.root, x.current_view, x.editor = root, current_view, editor
|
101
|
-
write_config(x,
|
101
|
+
write_config(x, root/RuneBlog::ConfigFile)
|
102
102
|
end
|
103
103
|
|
104
104
|
def new_sequence
|
data/lib/helpers-repl.rb
CHANGED
@@ -207,19 +207,6 @@ module RuneBlog::REPL
|
|
207
207
|
error(err)
|
208
208
|
end
|
209
209
|
|
210
|
-
def ask_publishing_info # returns Publishing object
|
211
|
-
# user, server, root, path, protocol = "http"
|
212
|
-
puts "Please enter publishing data for view #{@blog.view}..."
|
213
|
-
user = ask("User: ")
|
214
|
-
root = ask("Doc root: ")
|
215
|
-
server = ask("Server: ")
|
216
|
-
path = ask("View path: ")
|
217
|
-
proto = ask("Protocol (ENTER for http): ")
|
218
|
-
[user, root, server, path, proto].each {|x| x.chomp! }
|
219
|
-
proto = "http" if proto.empty?
|
220
|
-
RuneBlog::Publishing.new(user, server, root, path, proto)
|
221
|
-
end
|
222
|
-
|
223
210
|
def tags_for_view(vname = @blog.view)
|
224
211
|
Dir.chdir(vname) do
|
225
212
|
fname = "tagpool"
|
data/lib/liveblog.rb
CHANGED
@@ -13,7 +13,7 @@ def init_liveblog # FIXME - a lot of this logic sucks
|
|
13
13
|
here = Dir.pwd
|
14
14
|
dir = here
|
15
15
|
loop { dir = Dir.pwd; break if File.exist?("config"); Dir.chdir("..") }
|
16
|
-
Dir.chdir(here)
|
16
|
+
Dir.chdir(here) # here??? or dir??
|
17
17
|
@blog = RuneBlog.new(dir)
|
18
18
|
@root = @blog.root
|
19
19
|
@view = @blog.view
|
@@ -23,21 +23,6 @@ def init_liveblog # FIXME - a lot of this logic sucks
|
|
23
23
|
@theme = @vdir/:themes/:standard
|
24
24
|
end
|
25
25
|
|
26
|
-
## FIXME - livetext is duplicated from helpers-blog
|
27
|
-
#
|
28
|
-
# def livetext(src, dst=nil, cwd=Dir.pwd)
|
29
|
-
# Dir.chdir(cwd) do
|
30
|
-
# src += ".lt3" unless src.end_with?(".lt3")
|
31
|
-
# if dst
|
32
|
-
# dst += ".html" unless dst.end_with?(".html")
|
33
|
-
# else
|
34
|
-
# dst = src.sub(/.lt3$/, "")
|
35
|
-
# end
|
36
|
-
# return unless stale?(src, dst)
|
37
|
-
# system("livetext #{src} >#{dst}")
|
38
|
-
# end
|
39
|
-
# end
|
40
|
-
|
41
26
|
##################
|
42
27
|
# "dot" commands
|
43
28
|
##################
|
@@ -52,6 +37,27 @@ def backlink
|
|
52
37
|
_out %[<br><a href="javascript:history.go(-1)">[Back]</a>]
|
53
38
|
end
|
54
39
|
|
40
|
+
def dropcap
|
41
|
+
# Bad form: adds another HEAD
|
42
|
+
_out <<-HTML
|
43
|
+
<head>
|
44
|
+
<style>
|
45
|
+
p:first-child:first-letter {
|
46
|
+
color: #0000ff;
|
47
|
+
float: left;
|
48
|
+
font-family: Georgia;
|
49
|
+
font-size: 75px;
|
50
|
+
line-height: 60px;
|
51
|
+
padding-top: 4px;
|
52
|
+
padding-right: 8px;
|
53
|
+
padding-left: 3px;
|
54
|
+
}
|
55
|
+
</style>
|
56
|
+
</head>
|
57
|
+
HTML
|
58
|
+
_out " "
|
59
|
+
end
|
60
|
+
|
55
61
|
def quote
|
56
62
|
_passthru "<blockquote>"
|
57
63
|
_passthru _body
|
@@ -307,7 +313,7 @@ end
|
|
307
313
|
def recent_posts # side-effect
|
308
314
|
_out <<-HTML
|
309
315
|
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-12">
|
310
|
-
<iframe id="main" style="width:
|
316
|
+
<iframe id="main" style="width: 70vw; height: 100vh; position: relative;"
|
311
317
|
src='recent.html' width=100% frameborder="0" allowfullscreen>
|
312
318
|
</iframe>
|
313
319
|
</div>
|
@@ -557,24 +563,17 @@ def _write_card(cardfile, mainfile, pairs, card_title, tag, relative: true)
|
|
557
563
|
local = _local_tag?(tag)
|
558
564
|
pairs.each do |file, title|
|
559
565
|
url = file
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
when
|
565
|
-
url_ref = "href='#{file}'"
|
566
|
-
when ["yes", true] # can iframe, local file
|
567
|
-
url_ref = _widget_card(file, tag)
|
568
|
-
when ["no", false] # CAN'T iframe, remote file
|
569
|
-
url_ref = _blank(file)
|
570
|
-
when ["no", true] # CAN'T iframe, local file (possible?)
|
571
|
-
url_ref = _blank(file)
|
566
|
+
type, title = page_type(tag, title)
|
567
|
+
case type
|
568
|
+
when :local; url_ref = _widget_main(file, tag) # local always frameable
|
569
|
+
when :frame; url_ref = _main(file) # remote, frameable
|
570
|
+
when :noframe; url_ref = _blank(file) # remote, not frameable
|
572
571
|
end
|
573
|
-
|
574
572
|
anchor = %[<a #{url_ref}>#{title}</a>]
|
575
573
|
wrapper = %[<li class="list-group-item">#{anchor}</li>]
|
576
574
|
f.puts wrapper
|
577
575
|
end
|
576
|
+
_include_file cardfile+".html"
|
578
577
|
f.puts <<-EOS
|
579
578
|
</div>
|
580
579
|
</div>
|
@@ -594,6 +593,20 @@ def _local_tag?(tag)
|
|
594
593
|
end
|
595
594
|
end
|
596
595
|
|
596
|
+
def page_type(tag, title)
|
597
|
+
yesno = "yes"
|
598
|
+
yesno, title = title.split(/, */) if title =~ /^[yes|no]/
|
599
|
+
local = _local_tag?(tag)
|
600
|
+
frameable = (yesno == "yes")
|
601
|
+
if local
|
602
|
+
return [:local, title]
|
603
|
+
elsif frameable
|
604
|
+
return [:frame, title]
|
605
|
+
else
|
606
|
+
return [:noframe, title]
|
607
|
+
end
|
608
|
+
end
|
609
|
+
|
597
610
|
def _write_main(mainfile, pairs, card_title, tag)
|
598
611
|
log!(str: "Creating #{mainfile}.html", pwd: true)
|
599
612
|
local = _local_tag?(tag)
|
@@ -601,17 +614,12 @@ def _write_main(mainfile, pairs, card_title, tag)
|
|
601
614
|
_html_body(f) do
|
602
615
|
f.puts "<h1>#{card_title}</h1>"
|
603
616
|
pairs.each do |file, title|
|
604
|
-
|
605
|
-
|
606
|
-
case
|
607
|
-
when
|
608
|
-
|
609
|
-
when
|
610
|
-
url_ref = _widget_main(file, tag)
|
611
|
-
when ["no", false] # CAN'T iframe, remote file
|
612
|
-
url_ref = _blank(file)
|
613
|
-
when ["no", true] # CAN'T iframe, local file (possible?)
|
614
|
-
url_ref = _blank(file)
|
617
|
+
type, title = page_type(tag, title)
|
618
|
+
title = title.gsub(/\\/, "") # kludge
|
619
|
+
case type
|
620
|
+
when :local; url_ref = _widget_main(file, tag) # local always frameable
|
621
|
+
when :frame; url_ref = "href = '#{file}'" # local always frameable
|
622
|
+
when :noframe; url_ref = _blank(file) # local always frameable
|
615
623
|
end
|
616
624
|
css = "color: #8888FF; text-decoration: none; font-size: 24px; font-family: verdana"
|
617
625
|
f.puts %[<a style="#{css}" #{url_ref}>#{title}</a> <br>]
|
data/lib/post.rb
CHANGED
@@ -63,8 +63,8 @@ class RuneBlog::Post
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def self.create(title:, teaser:, body:, pubdate: Time.now.strftime("%Y-%m-%d"),
|
66
|
-
|
67
|
-
log!(enter: __method__, args: [title, teaser, body, pubdate,
|
66
|
+
views:[])
|
67
|
+
log!(enter: __method__, args: [title, teaser, body, pubdate, views])
|
68
68
|
post = self.new
|
69
69
|
# NOTE: This is the ONLY place next_sequence is called!
|
70
70
|
num = post.meta.num = post.blog.next_sequence
|
@@ -72,7 +72,8 @@ class RuneBlog::Post
|
|
72
72
|
# new_metadata
|
73
73
|
post.meta.title, post.meta.teaser, post.meta.body, post.meta.pubdate =
|
74
74
|
title, teaser, body, pubdate
|
75
|
-
post.meta.views = [post.blog.view.to_s] +
|
75
|
+
post.meta.views = [post.blog.view.to_s] + views
|
76
|
+
# STDERR.puts "Post.create: views = #{views.inspect}"
|
76
77
|
post.meta.tags = []
|
77
78
|
post.blog.make_slug(post.meta) # adds to meta
|
78
79
|
|
data/lib/publish.rb
CHANGED
@@ -7,18 +7,27 @@ class RuneBlog::Publishing
|
|
7
7
|
BadRemoteLogin = Exception.new("Can't login remotely")
|
8
8
|
BadRemotePerms = Exception.new("Bad remote permissions")
|
9
9
|
|
10
|
-
def initialize(
|
11
|
-
log!(enter: __method__, args: [
|
10
|
+
def initialize(view)
|
11
|
+
log!(enter: __method__, args: [view.to_s])
|
12
12
|
@blog = RuneBlog.blog
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
# # Clunky...
|
14
|
+
# if params.size == 1 && params[0].is_a?(OpenStruct)
|
15
|
+
# obj = params[0]
|
16
|
+
# array = obj.to_h.values_at(:user, :server, :docroot,
|
17
|
+
# :path, :proto)
|
18
|
+
# @user, @server, @docroot, @path, @proto = *array
|
19
|
+
# else
|
20
|
+
# @user, @server, @docroot, @path, @proto = *params
|
21
|
+
# end
|
22
|
+
# find a better way?
|
23
|
+
gfile = @blog.root/:views/view/"themes/standard/global.lt3"
|
24
|
+
data = File.readlines(gfile)
|
25
|
+
grab = ->(var) { data.grep(/^#{var} /).first.chomp.split(" ", 2)[1] }
|
26
|
+
@user = grab.call("publish.user")
|
27
|
+
@server = grab.call("publish.server")
|
28
|
+
@docroot = grab.call("publish.docroot")
|
29
|
+
@path = grab.call("publish.path")
|
30
|
+
@proto = grab.call("publish.proto")
|
22
31
|
end
|
23
32
|
|
24
33
|
def to_h
|
@@ -30,7 +39,7 @@ class RuneBlog::Publishing
|
|
30
39
|
def url
|
31
40
|
log!(enter: __method__)
|
32
41
|
vname = @blog.view.name # .gsub(/_/, "\\_")
|
33
|
-
url = "#@proto://#@server/#@path/#{vname}"
|
42
|
+
url = "#@proto://#@server/#@path" # /#{vname}"
|
34
43
|
end
|
35
44
|
|
36
45
|
def system!(str)
|
@@ -43,11 +52,11 @@ class RuneBlog::Publishing
|
|
43
52
|
log!(enter: __method__, args: [files, assets])
|
44
53
|
dir = @docroot/@path
|
45
54
|
view_name = @blog.view.name
|
46
|
-
viewpath = dir/view_name
|
47
|
-
|
55
|
+
viewpath = dir # /view_name
|
56
|
+
# result = system!("ssh #@user@#@server -x mkdir -p #{viewpath}")
|
48
57
|
result = system!("ssh #@user@#@server -x mkdir -p #{viewpath}/assets")
|
49
58
|
files.each do |file|
|
50
|
-
dest = "#@user@#@server:" + dir/view_name
|
59
|
+
dest = "#@user@#@server:" + dir # /view_name
|
51
60
|
file.gsub!(/\/\//, "/") # weird... :-/
|
52
61
|
cmd = "scp -r #{file} #{dest} >/dev/null 2>/tmp/wtf"
|
53
62
|
debug "cmd = #{cmd.inspect} - see /tmp/wtf"
|
data/lib/repl.rb
CHANGED
@@ -39,10 +39,7 @@ module RuneBlog::REPL
|
|
39
39
|
def cmd_config(arg, testing = false)
|
40
40
|
check_empty(arg)
|
41
41
|
dir = @blog.view.dir
|
42
|
-
|
43
|
-
items = ["publish",
|
44
|
-
"themes/standard/blogview.lt3",
|
45
|
-
"themes/standard/post-index.lt3"]
|
42
|
+
items = ["themes/standard/blogview.lt3", "themes/standard/post-index.lt3"]
|
46
43
|
num, fname = STDSCR.menu(title: "Edit file:", items: items)
|
47
44
|
edit_file("#{dir}/#{fname}")
|
48
45
|
end
|
@@ -98,8 +95,9 @@ module RuneBlog::REPL
|
|
98
95
|
reset_output
|
99
96
|
check_empty(arg)
|
100
97
|
unless @blog.view.can_publish?
|
101
|
-
|
102
|
-
|
98
|
+
msg = "Can't publish... see globals.lt3"
|
99
|
+
puts msg unless testing
|
100
|
+
output! msg
|
103
101
|
return @out
|
104
102
|
end
|
105
103
|
|
@@ -179,12 +177,6 @@ module RuneBlog::REPL
|
|
179
177
|
reset_output
|
180
178
|
@blog.create_view(arg)
|
181
179
|
@blog.change_view(arg)
|
182
|
-
resp = yesno("Add publishing/hosting info now? (Y/N): ")
|
183
|
-
if resp
|
184
|
-
@blog.view.publisher = ask_publishing_info
|
185
|
-
out = @blog.view.dir + "/publish"
|
186
|
-
write_config(@blog.view.publisher, out)
|
187
|
-
end
|
188
180
|
@out
|
189
181
|
rescue ViewAlreadyExists
|
190
182
|
puts 'Blog already exists'
|
data/lib/runeblog.rb
CHANGED
@@ -64,7 +64,10 @@ class RuneBlog
|
|
64
64
|
create_dirs(:drafts, :views, :posts)
|
65
65
|
new_sequence
|
66
66
|
end
|
67
|
-
|
67
|
+
# put_config(root: root)
|
68
|
+
x = OpenStruct.new
|
69
|
+
x.root, x.current_view, x.editor = root, "test_view", "/usr/bin/vim " # dumb - FIXME later
|
70
|
+
write_config(x, root/ConfigFile)
|
68
71
|
@blog = self.new(root)
|
69
72
|
@blog.create_view("test_view")
|
70
73
|
@blog
|
@@ -101,16 +104,13 @@ class RuneBlog
|
|
101
104
|
def _deploy_local(dir)
|
102
105
|
log!(enter: __method__, args: [dir])
|
103
106
|
Dir.chdir(dir) do
|
104
|
-
# views = File.readlines("metadata.txt").grep(/^views: /).first[7..-1].split
|
105
107
|
views = _retrieve_metadata(:views)
|
106
|
-
STDERR.puts "---- deploy: views = #{views.inspect}"
|
107
108
|
views.each {|v| system!("cp *html #@root/views/#{v}/remote") }
|
108
109
|
end
|
109
110
|
end
|
110
111
|
|
111
112
|
def _retrieve_metadata(key)
|
112
113
|
key = key.to_s
|
113
|
-
STDERR.puts "--- retrieve: key = #{key.inspect}"
|
114
114
|
lines = File.readlines("metadata.txt")
|
115
115
|
lines = lines.grep(/^#{key}: /)
|
116
116
|
case lines.size
|
@@ -118,7 +118,7 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
118
118
|
result = nil # not found
|
119
119
|
when 1
|
120
120
|
front = "#{key}: "
|
121
|
-
n = front.size
|
121
|
+
n = front.size
|
122
122
|
str = lines.first.chomp[n..-1]
|
123
123
|
case key
|
124
124
|
when "views", "tags" # plurals
|
@@ -172,10 +172,7 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
172
172
|
|
173
173
|
def _set_publisher
|
174
174
|
log!(enter: __method__)
|
175
|
-
|
176
|
-
@view.publisher = nil
|
177
|
-
return unless File.exist?(file)
|
178
|
-
@view.publisher = RuneBlog::Publishing.new(read_config(file))
|
175
|
+
@view.publisher = RuneBlog::Publishing.new(@view.to_s) # FIXME refactor
|
179
176
|
end
|
180
177
|
|
181
178
|
def view=(arg)
|
@@ -219,15 +216,6 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
219
216
|
Dir.exist?(DotDir) && File.exist?(DotDir/ConfigFile)
|
220
217
|
end
|
221
218
|
|
222
|
-
def make_dummy_publish_file(view_name)
|
223
|
-
log!(enter: __method__, args: [view_name])
|
224
|
-
vdir = @root/:views/view_name
|
225
|
-
pub = [:user, :server, :docroot, :path, :proto]
|
226
|
-
pub = pub.map {|x| x.to_s + ": undefined" }
|
227
|
-
pub = pub.join("\n") + "\n"
|
228
|
-
dump(pub, vdir/:publish)
|
229
|
-
end
|
230
|
-
|
231
219
|
def mark_last_published(str)
|
232
220
|
log!(enter: __method__, args: [str])
|
233
221
|
dump(str, "last_published")
|
@@ -267,7 +255,6 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
267
255
|
log!(enter: __method__, args: [view_name])
|
268
256
|
check_valid_new_view(view_name)
|
269
257
|
make_empty_view_tree(view_name)
|
270
|
-
make_dummy_publish_file(view_name)
|
271
258
|
mark_last_published("Initial creation")
|
272
259
|
add_view(view_name)
|
273
260
|
end
|
@@ -310,7 +297,7 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
310
297
|
id = slug.to_i
|
311
298
|
text = nil
|
312
299
|
post_entry_name = @theme/"blog/post_entry.lt3"
|
313
|
-
xlate src: post_entry_name, dst: "/tmp/post_entry.html", debug: true
|
300
|
+
xlate src: post_entry_name, dst: "/tmp/post_entry.html" # , debug: true
|
314
301
|
@_post_entry ||= File.read("/tmp/post_entry.html")
|
315
302
|
vp = post_lookup(id)
|
316
303
|
nslug, aslug, title, date, teaser_text =
|
@@ -349,11 +336,12 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
349
336
|
File.write(@vdir/:remote/file, text)
|
350
337
|
end
|
351
338
|
|
352
|
-
def create_new_post(title, testing = false, teaser: nil, body: nil,
|
353
|
-
log!(enter: __method__, args: [title, testing, teaser, body,
|
339
|
+
def create_new_post(title, testing = false, teaser: nil, body: nil, views: [])
|
340
|
+
log!(enter: __method__, args: [title, testing, teaser, body, views])
|
354
341
|
meta = nil
|
342
|
+
views = views + [self.view.to_s]
|
355
343
|
Dir.chdir(@root/:posts) do
|
356
|
-
post = Post.create(title: title, teaser: teaser, body: body,
|
344
|
+
post = Post.create(title: title, teaser: teaser, body: body, views: views)
|
357
345
|
post.edit unless testing
|
358
346
|
post.build
|
359
347
|
meta = post.meta
|
@@ -394,7 +382,7 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
394
382
|
raise ArgumentError unless view.is_a?(String) || view.is_a?(RuneBlog::View)
|
395
383
|
x = OpenStruct.new
|
396
384
|
x.root, x.current_view, x.editor = @root, view.to_s, @editor # dumb - FIXME later
|
397
|
-
write_config(x, ConfigFile)
|
385
|
+
write_config(x, @root/ConfigFile)
|
398
386
|
self.view = view # error checking?
|
399
387
|
end
|
400
388
|
|
@@ -413,6 +401,8 @@ STDERR.puts "--- retrieve: key = #{key.inspect}"
|
|
413
401
|
src: "blog.css.lt3", copy: vdir/"remote/etc/blog.css" # , debug: true
|
414
402
|
xlate cwd: vdir/"themes/standard",
|
415
403
|
src: "blog/generate.lt3", dst: vdir/:remote/"index.html"
|
404
|
+
copy("#{vdir}/assets/*", "#{vdir}/remote/assets/")
|
405
|
+
|
416
406
|
end
|
417
407
|
|
418
408
|
def _get_views(draft)
|
data/lib/runeblog_version.rb
CHANGED
data/lib/view.rb
CHANGED
@@ -12,12 +12,8 @@ class RuneBlog::View
|
|
12
12
|
raise NoBlogAccessor if RuneBlog.blog.nil?
|
13
13
|
@blog = RuneBlog.blog
|
14
14
|
@name = name
|
15
|
-
@
|
16
|
-
|
17
|
-
if File.exist?(pub_file) && File.size(pub_file) != 0
|
18
|
-
@publisher = RuneBlog::Publishing.new(read_config(pub_file))
|
19
|
-
@can_publish = true
|
20
|
-
end
|
15
|
+
@publisher = RuneBlog::Publishing.new(name)
|
16
|
+
@can_publish = true # FIXME
|
21
17
|
end
|
22
18
|
|
23
19
|
def dir
|
@@ -45,7 +41,8 @@ class RuneBlog::View
|
|
45
41
|
vdir = dir()
|
46
42
|
remote = local_index()
|
47
43
|
files = [remote]
|
48
|
-
others = Dir.entries(vdir
|
44
|
+
others = Dir.entries(vdir/:remote) - %w[. ..]
|
45
|
+
others.map! {|x| "#{vdir}/remote/#{x}" }
|
49
46
|
|
50
47
|
assets = Dir.entries("#{vdir}/assets") - %w[. ..]
|
51
48
|
assets.map! {|x| "#{vdir}/assets/#{x}" }
|
data/test/general_test.rb
CHANGED
data/test/make_blog.rb
CHANGED
@@ -29,7 +29,7 @@ end
|
|
29
29
|
|
30
30
|
def make_post(x, title, teaser, body, views=[])
|
31
31
|
debug " make_post #{bold(title)}"
|
32
|
-
x.create_new_post(title, true, teaser: teaser, body: body,
|
32
|
+
x.create_new_post(title, true, teaser: teaser, body: body, views: views)
|
33
33
|
views.each do |view|
|
34
34
|
debug
|
35
35
|
debug "** generate_index #{bold(view)}"
|
@@ -46,7 +46,7 @@ end
|
|
46
46
|
|
47
47
|
# "Main"...
|
48
48
|
|
49
|
-
puts
|
49
|
+
puts bold("\nGenerating test blog...")
|
50
50
|
|
51
51
|
system("rm -rf .blogs")
|
52
52
|
RuneBlog.create_new_blog_repo(".blogs")
|
@@ -116,8 +116,32 @@ x.change_view("around_austin")
|
|
116
116
|
make_post(x, "The graffiti wall", <<-EXCERPT, <<-BODY)
|
117
117
|
RIP, Hope Gallery
|
118
118
|
EXCERPT
|
119
|
+
.dropcap
|
120
|
+
|
119
121
|
It's been a while since I was there. They say it was torn down
|
120
122
|
while I wasn't looking.
|
123
|
+
|
124
|
+
This fake entry is a long one so as to demonstrate both drop-caps
|
125
|
+
(above) and an inset quote. Blah blah blah. Lorem ipsum dolor and
|
126
|
+
a partridge in a pear tree.
|
127
|
+
|
128
|
+
Wherever you go, there you are. Last night I saw upon the stair
|
129
|
+
a little man who was not there. He wasn't there again today; I
|
130
|
+
wish, I wish he'd go away.
|
131
|
+
|
132
|
+
As far as we know, our computer has never had an undetected error.
|
133
|
+
And never let it be denied that pobbles are happier without their
|
134
|
+
toes. And may your snark never be a boojum.
|
135
|
+
|
136
|
+
Contact light. Houston, this is Tranquility Base. The Eagle has
|
137
|
+
landed. That's one small step for (a) man, one giant leap for
|
138
|
+
mankind.
|
139
|
+
.inset left
|
140
|
+
On a clean disk, you can seek forever.
|
141
|
+
.end
|
142
|
+
|
143
|
+
Pity this busy monster, manunkind, not. Pity rather... Listen:
|
144
|
+
There's a hell of a universe next door; let's go.
|
121
145
|
BODY
|
122
146
|
|
123
147
|
make_post(x, "The Waller Creek project", <<-EXCERPT, <<-BODY)
|
@@ -145,5 +169,7 @@ BODY
|
|
145
169
|
debug
|
146
170
|
debug("** generate_view: #{bold('around_austin')}")
|
147
171
|
x.generate_view("around_austin")
|
172
|
+
x.change_view("around_austin")
|
173
|
+
|
174
|
+
puts bold("...finished.\n")
|
148
175
|
|
149
|
-
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.31
|
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-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: livetext
|