runeblog 0.2.40 → 0.2.45
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/blog +4 -7
- data/empty_view/themes/standard/blog/post_entry.lt3 +11 -10
- data/empty_view/themes/standard/etc/blog.css.lt3 +6 -1
- data/empty_view/themes/standard/navbar/faq.lt3 +1 -0
- data/empty_view/themes/standard/navbar/navbar.lt3 +1 -0
- data/empty_view/themes/standard/post/generate.lt3 +9 -4
- data/empty_view/themes/standard/widgets/ad/ad.lt3 +8 -1
- data/empty_view/themes/standard/widgets/ad/ad1.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad2.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad3.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad4.png +0 -0
- data/empty_view/themes/standard/widgets/bydates/bydates.rb +7 -3
- data/empty_view/themes/standard/widgets/links/links.rb +28 -3
- data/empty_view/themes/standard/widgets/news/news.rb +7 -3
- data/empty_view/themes/standard/widgets/pages/pages.rb +10 -3
- data/empty_view/themes/standard/widgets/pinned/pinned.rb +7 -3
- data/empty_view/themes/standard/widgets/search/search.rb +7 -3
- data/empty_view/themes/standard/widgets/sitemap/sitemap.rb +7 -3
- data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb +7 -3
- data/lib/default.rb +1 -4
- data/lib/global.rb +8 -7
- data/lib/helpers-blog.rb +15 -15
- data/lib/liveblog.rb +47 -18
- data/lib/logging.rb +17 -8
- data/lib/post.rb +6 -6
- data/lib/publish.rb +4 -4
- data/lib/repl.rb +1 -0
- data/lib/runeblog.rb +77 -47
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +2 -8
- data/lib/xlate.rb +2 -2
- data/test/austin.rb +157 -0
- metadata +8 -5
- data/empty_view/remote/widgets/links/list.data +0 -3
- data/empty_view/remote/widgets/news/list.data +0 -4
- data/empty_view/remote/widgets/pages/list.data +0 -4
data/lib/runeblog_version.rb
CHANGED
data/lib/view.rb
CHANGED
@@ -8,7 +8,7 @@ class RuneBlog::View
|
|
8
8
|
include RuneBlog::Helpers
|
9
9
|
|
10
10
|
def initialize(name)
|
11
|
-
log!(enter: __method__, args: [name])
|
11
|
+
log!(enter: __method__, args: [name], level: 3)
|
12
12
|
raise NoBlogAccessor if RuneBlog.blog.nil?
|
13
13
|
@blog = RuneBlog.blog
|
14
14
|
@name = name
|
@@ -17,27 +17,23 @@ class RuneBlog::View
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def dir
|
20
|
-
log!(enter: __method__)
|
21
20
|
@blog.root + "/views/#@name/"
|
22
21
|
end
|
23
22
|
|
24
23
|
def local_index
|
25
|
-
log!(enter: __method__)
|
26
24
|
dir + "/remote/index.html"
|
27
25
|
end
|
28
26
|
|
29
27
|
def index
|
30
|
-
log!(enter: __method__)
|
31
28
|
dir + "index.html"
|
32
29
|
end
|
33
30
|
|
34
31
|
def to_s
|
35
|
-
log!(enter: __method__)
|
36
32
|
@name
|
37
33
|
end
|
38
34
|
|
39
35
|
def publishable_files
|
40
|
-
log!(enter: __method__)
|
36
|
+
log!(enter: __method__, level: 2)
|
41
37
|
vdir = dir()
|
42
38
|
remote = local_index()
|
43
39
|
files = [remote]
|
@@ -55,12 +51,10 @@ class RuneBlog::View
|
|
55
51
|
end
|
56
52
|
|
57
53
|
def can_publish?
|
58
|
-
log!(enter: __method__)
|
59
54
|
@can_publish
|
60
55
|
end
|
61
56
|
|
62
57
|
def recent?(file)
|
63
|
-
log!(enter: __method__, args: [file])
|
64
58
|
File.mtime(file) > File.mtime("#{self.dir()}/last_published")
|
65
59
|
rescue
|
66
60
|
true
|
data/lib/xlate.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
LEXT = ".lt3"
|
3
3
|
|
4
4
|
def stale?(src, dst, force = false)
|
5
|
-
log!(enter: __method__, args: [src, dst])
|
5
|
+
log!(enter: __method__, args: [src, dst], level: 3)
|
6
6
|
raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
|
7
7
|
return true if force
|
8
8
|
return true unless File.exist?(dst)
|
@@ -29,7 +29,7 @@ LEXT = ".lt3"
|
|
29
29
|
STDERR.puts "#{indent} -- ^ Already up to date!" if debug
|
30
30
|
return
|
31
31
|
end
|
32
|
-
rc = system
|
32
|
+
rc = system("livetext #{src} >#{dst}")
|
33
33
|
STDERR.puts "...completed (shell returned #{rc})" if debug
|
34
34
|
system!("cp #{dst} #{copy}") if copy
|
35
35
|
end
|
data/test/austin.rb
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
$LOAD_PATH << "./lib"
|
2
|
+
|
3
|
+
major, minor = RUBY_VERSION.split(".").values_at(0,1)
|
4
|
+
ver = major.to_i*10 + minor.to_i
|
5
|
+
abort "Need Ruby 2.4 or greater" unless ver >= 24
|
6
|
+
|
7
|
+
# Home = Dir.pwd
|
8
|
+
|
9
|
+
require 'date'
|
10
|
+
|
11
|
+
require 'global'
|
12
|
+
require 'runeblog'
|
13
|
+
require 'repl'
|
14
|
+
|
15
|
+
def bold(str)
|
16
|
+
"\e[1m#{str}\e[0m"
|
17
|
+
end
|
18
|
+
|
19
|
+
def getch
|
20
|
+
# sleep 5
|
21
|
+
end
|
22
|
+
|
23
|
+
def debug(str = "")
|
24
|
+
t = Time.now
|
25
|
+
time = t.to_f.to_s
|
26
|
+
n = time.index(".")
|
27
|
+
msec = time[n..(n+2)]
|
28
|
+
time = t.strftime("%H:%M:%S") + msec
|
29
|
+
STDERR.puts "#{'%-11s' % time} #{str}"
|
30
|
+
end
|
31
|
+
|
32
|
+
@fake_date = Date.today - 20
|
33
|
+
|
34
|
+
def make_post(x, title, teaser, body, views=[])
|
35
|
+
debug " make_post #{bold(title)}"
|
36
|
+
pubdate = @fake_date.strftime("%Y-%m-%d")
|
37
|
+
@fake_date += (rand(2) + 1)
|
38
|
+
x.create_new_post(title, true, teaser: teaser, body: body, views: views,
|
39
|
+
pubdate: pubdate)
|
40
|
+
end
|
41
|
+
|
42
|
+
def show_lines(text)
|
43
|
+
lines = text.split("\n")
|
44
|
+
str = "#{lines.size} lines\n"
|
45
|
+
lines.each {|line| str << " #{line.inspect}\n" }
|
46
|
+
str
|
47
|
+
end
|
48
|
+
|
49
|
+
# "Main"...
|
50
|
+
|
51
|
+
t0 = Time.now
|
52
|
+
|
53
|
+
puts bold("\nGenerating test blog...")
|
54
|
+
|
55
|
+
system("rm -rf .blogs")
|
56
|
+
RuneBlog.create_new_blog_repo(".blogs")
|
57
|
+
x = RuneBlog.new(".blogs")
|
58
|
+
|
59
|
+
debug("create_view: #{bold('around_austin')}")
|
60
|
+
x.create_view("around_austin") # FIXME remember view title!
|
61
|
+
|
62
|
+
#### FIXME later!!
|
63
|
+
vars = <<-VARS
|
64
|
+
|
65
|
+
.variables
|
66
|
+
blog Around Austin
|
67
|
+
blog.desc The view from downtown...
|
68
|
+
.end
|
69
|
+
VARS
|
70
|
+
File.open(".blogs/views/around_austin/themes/standard/global.lt3", "a") do |f|
|
71
|
+
f.puts vars
|
72
|
+
end
|
73
|
+
####
|
74
|
+
|
75
|
+
debug("** generate_view: #{bold('around_austin')}")
|
76
|
+
x.generate_view("around_austin")
|
77
|
+
|
78
|
+
debug("-- change_view: #{bold('around_austin')}")
|
79
|
+
x.change_view("around_austin") # 1 2 7 8 9
|
80
|
+
|
81
|
+
make_post(x, "What's at Stubbs...", <<-EXCERPT, <<-BODY, [])
|
82
|
+
Stubbs has been around for longer than civilization.
|
83
|
+
EXCERPT
|
84
|
+
That's a good thing. But their music isn't always the greatest.
|
85
|
+
BODY
|
86
|
+
|
87
|
+
make_post(x, "The new amphitheatre is overrated", <<-EXCERPT, <<-BODY)
|
88
|
+
It used to be that all major concerts played the Erwin Center.
|
89
|
+
EXCERPT
|
90
|
+
Now, depending on what you consider "major," blah blah blah...
|
91
|
+
BODY
|
92
|
+
|
93
|
+
make_post(x, "The graffiti wall", <<-EXCERPT, <<-BODY)
|
94
|
+
RIP, Hope Gallery
|
95
|
+
EXCERPT
|
96
|
+
.dropcap
|
97
|
+
|
98
|
+
It's been a while since I was there. They say it was torn down
|
99
|
+
while I wasn't looking.
|
100
|
+
|
101
|
+
This fake entry is a long one so as to demonstrate both drop-caps
|
102
|
+
(above) and an inset quote. Blah blah blah. Lorem ipsum dolor and
|
103
|
+
a partridge in a pear tree.
|
104
|
+
|
105
|
+
Wherever you go, there you are. Last night I saw upon the stair
|
106
|
+
a little man who was not there. He wasn't there again today; I
|
107
|
+
wish, I wish he'd go away.
|
108
|
+
|
109
|
+
As far as we know, our computer has never had an undetected error.
|
110
|
+
And never let it be denied that pobbles are happier without their
|
111
|
+
toes. And may your snark never be a boojum.
|
112
|
+
|
113
|
+
Contact light. Houston, this is Tranquility Base. The Eagle has
|
114
|
+
landed. That's one small step for (a) man, one giant leap for
|
115
|
+
mankind.
|
116
|
+
.inset left 20
|
117
|
+
On a clean disk, you can seek forever.
|
118
|
+
.end
|
119
|
+
|
120
|
+
Pity this busy monster, manunkind, not. Pity rather... Listen:
|
121
|
+
There's a hell of a universe next door; let's go.
|
122
|
+
BODY
|
123
|
+
|
124
|
+
make_post(x, "The Waller Creek project", <<-EXCERPT, <<-BODY)
|
125
|
+
Will it ever be finished?
|
126
|
+
EXCERPT
|
127
|
+
Blah blah Waller Creek blah blah...
|
128
|
+
BODY
|
129
|
+
|
130
|
+
make_post(x, "Life on Sabine Street", <<-EXCERPT, <<-BODY)
|
131
|
+
It's like Pooh Corner, except not.
|
132
|
+
EXCERPT
|
133
|
+
This is about Sabine St, blah blah lorem ipsum dolor...
|
134
|
+
BODY
|
135
|
+
|
136
|
+
make_post(x, "Remember Modest Mouse?", <<-EXCERPT, <<-BODY, [])
|
137
|
+
They date to the 90s or before.
|
138
|
+
EXCERPT
|
139
|
+
But I first heard of them
|
140
|
+
in 2005.
|
141
|
+
BODY
|
142
|
+
|
143
|
+
debug
|
144
|
+
debug "** generate_index #{bold("around_austin")}"
|
145
|
+
x.generate_index("around_austin")
|
146
|
+
|
147
|
+
debug
|
148
|
+
x.change_view("around_austin")
|
149
|
+
debug
|
150
|
+
|
151
|
+
puts bold("...finished.\n")
|
152
|
+
|
153
|
+
t1 = Time.now
|
154
|
+
|
155
|
+
elapsed = t1 - t0
|
156
|
+
puts "\nElapsed: #{'%3.2f' % elapsed} secs\n "
|
157
|
+
|
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.45
|
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-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: livetext
|
@@ -67,9 +67,6 @@ files:
|
|
67
67
|
- empty_view/remote/etc/GIT_IS_DUMB
|
68
68
|
- empty_view/remote/navbar/GIT_IS_DUMB
|
69
69
|
- empty_view/remote/permalink/GIT_IS_DUMB
|
70
|
-
- empty_view/remote/widgets/links/list.data
|
71
|
-
- empty_view/remote/widgets/news/list.data
|
72
|
-
- empty_view/remote/widgets/pages/list.data
|
73
70
|
- empty_view/themes/standard/README
|
74
71
|
- empty_view/themes/standard/blog/generate.lt3
|
75
72
|
- empty_view/themes/standard/blog/head.lt3
|
@@ -82,6 +79,7 @@ files:
|
|
82
79
|
- empty_view/themes/standard/global.lt3
|
83
80
|
- empty_view/themes/standard/navbar/about.lt3
|
84
81
|
- empty_view/themes/standard/navbar/contact.lt3
|
82
|
+
- empty_view/themes/standard/navbar/faq.lt3
|
85
83
|
- empty_view/themes/standard/navbar/navbar.lt3
|
86
84
|
- empty_view/themes/standard/post/generate.lt3
|
87
85
|
- empty_view/themes/standard/post/head.lt3
|
@@ -89,6 +87,10 @@ files:
|
|
89
87
|
- empty_view/themes/standard/post/permalink.lt3
|
90
88
|
- empty_view/themes/standard/widgets/README
|
91
89
|
- empty_view/themes/standard/widgets/ad/ad.lt3
|
90
|
+
- empty_view/themes/standard/widgets/ad/ad1.png
|
91
|
+
- empty_view/themes/standard/widgets/ad/ad2.png
|
92
|
+
- empty_view/themes/standard/widgets/ad/ad3.png
|
93
|
+
- empty_view/themes/standard/widgets/ad/ad4.png
|
92
94
|
- empty_view/themes/standard/widgets/bydates/README
|
93
95
|
- empty_view/themes/standard/widgets/bydates/bydates.lt3
|
94
96
|
- empty_view/themes/standard/widgets/bydates/bydates.rb
|
@@ -201,6 +203,7 @@ files:
|
|
201
203
|
- lib/runeblog_version.rb
|
202
204
|
- lib/view.rb
|
203
205
|
- lib/xlate.rb
|
206
|
+
- test/austin.rb
|
204
207
|
- test/fakeimage.jpg
|
205
208
|
- test/general_test.rb
|
206
209
|
- test/make_blog.rb
|
@@ -1,4 +0,0 @@
|
|
1
|
-
https://techcrunch.com/2019/09/16/fossa-scores-8-5-million-series-a-to-help-enterprise-manage-open-source-licenses/, yes, FOSSA scores \$8.5 million Series A to help enterprise manage open-source licenses
|
2
|
-
https://techcrunch.com/2019/09/17/spacexs-orbital-starship-prototype-construction-progress-detailed-in-new-photos/, yes, SpaceX’s orbital Starship prototype construction progress detailed in new photos
|
3
|
-
https://developers.googleblog.com/2019/05/Flutter-io19.html, yes, Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop
|
4
|
-
https://jaycarlson.net/microcontrollers/, no, The Amazing \$1 Microcontroller (2017)
|