runeblog 0.3.26 → 0.3.28
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/README.lt3 +8 -5
- data/README.md +3 -1
- data/bin/blog +5 -3
- data/bin/blog.rb +237 -0
- data/data/global.lt3 +1 -1
- data/empty_view/config/reddit/redpost.rb +1 -6
- data/lib/helpers-blog.rb +0 -7
- data/lib/liveblog.rb +92 -91
- data/lib/lowlevel.rb +6 -5
- data/lib/menus.rb +96 -22
- data/lib/processing.rb +6 -3
- data/lib/repl.rb +18 -25
- data/lib/runeblog.rb +32 -43
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +2 -2
- data/runeblog.gemspec +1 -1
- metadata +18 -17
data/lib/repl.rb
CHANGED
@@ -39,7 +39,7 @@ module RuneBlog::REPL
|
|
39
39
|
|
40
40
|
def cmd_config
|
41
41
|
hash = {"Variables (general)" => "global.lt3",
|
42
|
-
" View-specific" => "
|
42
|
+
" View-specific" => "../settings/view.txt",
|
43
43
|
" Recent posts" => "../../settings/recent.txt",
|
44
44
|
" Publishing" => "../../settings/publish.txt",
|
45
45
|
"Configuration: enable/disable" => "../../settings/features.txt",
|
@@ -253,7 +253,6 @@ log! str: "=== ...finished!"
|
|
253
253
|
name = @blog.view.name
|
254
254
|
k, name = STDSCR.menu(title: "Views", items: viewnames, curr: n, wrap: true)
|
255
255
|
return if name.nil?
|
256
|
-
log! str: "cv Setting to #{name.inspect}"
|
257
256
|
@blog.view = name
|
258
257
|
# puts "\n ", fx(name, :bold), "\n"
|
259
258
|
return
|
@@ -371,7 +370,8 @@ log! str: "cv Setting to #{name.inspect}"
|
|
371
370
|
|
372
371
|
def cmd_list_views
|
373
372
|
puts
|
374
|
-
@blog.views
|
373
|
+
list = @blog.views
|
374
|
+
list.each do |v|
|
375
375
|
v = v.to_s
|
376
376
|
title = view2title(v)
|
377
377
|
v = fx(v, :bold) if v == @blog.view.name
|
@@ -412,22 +412,16 @@ log! str: "cv Setting to #{name.inspect}"
|
|
412
412
|
if curr_drafts.empty?
|
413
413
|
puts "\n No drafts\n "
|
414
414
|
return
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
other = @blog._get_views(@blog.root/:drafts/draft) - [@blog.view.to_s]
|
426
|
-
unless other.empty?
|
427
|
-
print fx(" "*9 + "also in: ", :bold)
|
428
|
-
puts other.join(", ")
|
429
|
-
end
|
430
|
-
end
|
415
|
+
end
|
416
|
+
puts
|
417
|
+
curr_drafts.each do |draft|
|
418
|
+
base = draft.sub(/.lt3$/, "")
|
419
|
+
dir = @blog.root/:posts/base
|
420
|
+
meta = nil
|
421
|
+
Dir.chdir(dir) { meta = @blog.read_metadata }
|
422
|
+
num, title = meta.num, meta.title
|
423
|
+
num = '%4d' % num.to_s
|
424
|
+
puts " ", fx(num, Red), " ", fx(title, Black)
|
431
425
|
end
|
432
426
|
puts
|
433
427
|
end
|
@@ -438,12 +432,11 @@ log! str: "cv Setting to #{name.inspect}"
|
|
438
432
|
if assets.empty?
|
439
433
|
puts " No assets"
|
440
434
|
return
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
end
|
435
|
+
end
|
436
|
+
puts
|
437
|
+
assets.each do |name|
|
438
|
+
asset = File.basename(name)
|
439
|
+
puts " ", fx(asset, Blue)
|
447
440
|
end
|
448
441
|
puts
|
449
442
|
end
|
data/lib/runeblog.rb
CHANGED
@@ -58,9 +58,9 @@ class RuneBlog
|
|
58
58
|
include ErrorChecks
|
59
59
|
end
|
60
60
|
|
61
|
-
attr_reader
|
62
|
-
attr_accessor :root,
|
63
|
-
attr_accessor :view
|
61
|
+
attr_reader :views, :sequence
|
62
|
+
attr_accessor :root, :editor, :features
|
63
|
+
attr_accessor :view # overridden
|
64
64
|
attr_accessor :post
|
65
65
|
|
66
66
|
attr_accessor :post_views, :post_tags, :dirty_views
|
@@ -74,7 +74,7 @@ class RuneBlog
|
|
74
74
|
teaser: "No teaser", body: "No body", tags: ["untagged"],
|
75
75
|
views: [], back: "javascript:history.go(-1)", home: "no url")
|
76
76
|
log!(enter: __method__, args: [num, title, date, view, teaser, body, tags, views, back, home], level: 3)
|
77
|
-
viewlist = (views + [view.to_s]).join(" ")
|
77
|
+
viewlist = (views + [view.to_s]).join(" ").uniq
|
78
78
|
taglist = ".tags " + tags.join(" ")
|
79
79
|
|
80
80
|
<<~TEXT
|
@@ -96,9 +96,9 @@ class RuneBlog
|
|
96
96
|
|
97
97
|
def self.create_new_blog_repo(root_rel = ".blogs")
|
98
98
|
log!(enter: __method__, args: [root_rel])
|
99
|
+
check_error(BlogRepoAlreadyExists) { Dir.exist?(repo_root) }
|
99
100
|
check_nonempty_string(root_rel)
|
100
101
|
repo_root = Dir.pwd/root_rel
|
101
|
-
check_error(BlogRepoAlreadyExists) { Dir.exist?(repo_root) }
|
102
102
|
|
103
103
|
create_dirs(repo_root)
|
104
104
|
Dir.chdir(repo_root) do
|
@@ -110,7 +110,6 @@ class RuneBlog
|
|
110
110
|
unless File.exist?(repo_root/"data/VIEW")
|
111
111
|
copy_data(repo_root/:data)
|
112
112
|
end
|
113
|
-
# copy_data(:extra, repo_root/:config)
|
114
113
|
write_repo_config(root: repo_root)
|
115
114
|
# Weird. Like a singleton - dumbass circular dependency?
|
116
115
|
self.blog = blog = self.new
|
@@ -128,32 +127,35 @@ class RuneBlog
|
|
128
127
|
_tmp_error(err)
|
129
128
|
end
|
130
129
|
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
@
|
145
|
-
@view =
|
130
|
+
################
|
131
|
+
|
132
|
+
def self.read(root_rel = ".blogs") # always assumes existing blog
|
133
|
+
log!(enter: "RuneBlog.read", args: [root_rel])
|
134
|
+
instance = RuneBlog.allocate
|
135
|
+
instance.instance_eval do
|
136
|
+
@blog = instance # Duhhh
|
137
|
+
@root = Dir.pwd/root_rel
|
138
|
+
# _init_get_view ##########??????
|
139
|
+
# self.class.blog = self # Weird, like singleton. Dumbass circular dependency?
|
140
|
+
RuneBlog.blog = instance
|
141
|
+
dirs = subdirs("#@root/views/").sort
|
142
|
+
@views = dirs.map {|name| RuneBlog::View.new(name) }
|
143
|
+
@curr = str2view(File.read(@root/"data/VIEW").chomp)
|
144
|
+
@view = @curr
|
145
|
+
# ...was init_get_view
|
146
|
+
@sequence, @post_views, @post_tags = get_sequence, [], []
|
146
147
|
end
|
147
|
-
|
148
|
-
@post_views = []
|
149
|
-
@post_tags = []
|
148
|
+
return instance
|
150
149
|
rescue => err
|
151
|
-
puts "
|
152
|
-
|
153
|
-
|
150
|
+
puts "ERROR - #{err.inspect}"
|
151
|
+
# puts "Error - see stderr.out"
|
152
|
+
puts err.inspect + "\n" + err&.backtrace
|
154
153
|
sleep 3
|
155
154
|
end
|
156
155
|
|
156
|
+
def initialize ##### FIXME ??
|
157
|
+
end
|
158
|
+
|
157
159
|
def complete_file(name, vars, hash)
|
158
160
|
debugging = vars.nil?
|
159
161
|
return if hash.empty?
|
@@ -270,14 +272,6 @@ class RuneBlog
|
|
270
272
|
views.any? {|x| x.name == name }
|
271
273
|
end
|
272
274
|
|
273
|
-
# def view(name = nil)
|
274
|
-
# log!(enter: __method__, args: [name], level: 3)
|
275
|
-
# return @view if name.nil?
|
276
|
-
#
|
277
|
-
# check_nonempty_string(name)
|
278
|
-
# return str2view(name)
|
279
|
-
# end
|
280
|
-
|
281
275
|
def str2view(str)
|
282
276
|
log!(enter: __method__, args: [str], level: 3)
|
283
277
|
check_nonempty_string(str) # redundant?
|
@@ -297,15 +291,12 @@ class RuneBlog
|
|
297
291
|
@view = nil
|
298
292
|
return
|
299
293
|
end
|
300
|
-
# STDERR.puts "view= #{arg.inspect}"
|
301
|
-
|
302
294
|
case arg
|
303
295
|
when RuneBlog::View
|
304
296
|
@view = arg
|
305
297
|
@view.get_globals(true)
|
306
298
|
when String
|
307
299
|
new_view = str2view(arg)
|
308
|
-
# STDERR.puts "view= new view #{new_view.inspect}"
|
309
300
|
check_error(NoSuchView, arg) { new_view.nil? }
|
310
301
|
@view = new_view
|
311
302
|
else
|
@@ -541,11 +532,10 @@ class RuneBlog
|
|
541
532
|
next unless Dir.exist?(postdir)
|
542
533
|
meta = nil
|
543
534
|
Dir.chdir(postdir) { meta = read_metadata }
|
544
|
-
# puts [draft, meta.views].inspect
|
545
535
|
list << draft if meta.views.include?(self.view.to_s)
|
546
536
|
end
|
547
|
-
#
|
548
|
-
|
537
|
+
# curr_drafts
|
538
|
+
list.sort
|
549
539
|
end
|
550
540
|
|
551
541
|
def all_drafts
|
@@ -739,8 +729,7 @@ args = {cwd: pdraft, src: draft, debug: true, dst: "guts.html",
|
|
739
729
|
|
740
730
|
def remove_post(num)
|
741
731
|
log!(enter: __method__, args: [num], level: 1)
|
742
|
-
check_integer(num)
|
743
|
-
# FIXME update original draft .views
|
732
|
+
check_integer(num) # FIXME update original draft .views
|
744
733
|
tag = prefix(num)
|
745
734
|
files = Find.find(self.view.dir).to_a
|
746
735
|
list = files.select {|x| File.directory?(x) and x =~ /#{tag}/ }
|
data/lib/runeblog_version.rb
CHANGED
data/lib/view.rb
CHANGED
@@ -39,8 +39,8 @@ class RuneBlog::View
|
|
39
39
|
|
40
40
|
live = Livetext.customize(call: ".nopara")
|
41
41
|
live.xform_file(gfile)
|
42
|
-
live.
|
43
|
-
live.
|
42
|
+
live.setvar("ViewDir", @blog.root/:views/@name)
|
43
|
+
live.setvar("View", @name)
|
44
44
|
@globals = live.vars
|
45
45
|
# dump_globals_stderr
|
46
46
|
end
|
data/runeblog.gemspec
CHANGED
@@ -21,7 +21,7 @@ spec = Gem::Specification.new do |s|
|
|
21
21
|
s.authors = ["Hal Fulton"]
|
22
22
|
s.email = 'rubyhacker@gmail.com'
|
23
23
|
s.executables << "blog"
|
24
|
-
s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.
|
24
|
+
s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.33'
|
25
25
|
s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.23'
|
26
26
|
s.add_runtime_dependency 'rouge', '~> 3.25', '>= 3.25.0'
|
27
27
|
|
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.3.
|
4
|
+
version: 0.3.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hal Fulton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-10 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.9'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.9.
|
22
|
+
version: 0.9.33
|
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.9'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.9.
|
32
|
+
version: 0.9.33
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rubytext
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -54,42 +54,42 @@ dependencies:
|
|
54
54
|
name: rouge
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - ">="
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: 3.25.0
|
60
57
|
- - "~>"
|
61
58
|
- !ruby/object:Gem::Version
|
62
59
|
version: '3.25'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 3.25.0
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 3.25.0
|
70
67
|
- - "~>"
|
71
68
|
- !ruby/object:Gem::Version
|
72
69
|
version: '3.25'
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: 3.25.0
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: minitest
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
|
-
- - ">="
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 5.10.0
|
80
77
|
- - "~>"
|
81
78
|
- !ruby/object:Gem::Version
|
82
79
|
version: '5.10'
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 5.10.0
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 5.10.0
|
90
87
|
- - "~>"
|
91
88
|
- !ruby/object:Gem::Version
|
92
89
|
version: '5.10'
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 5.10.0
|
93
93
|
description: A blog system based on Ruby and Livetext
|
94
94
|
email: rubyhacker@gmail.com
|
95
95
|
executables:
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- "./README.md"
|
102
102
|
- "./runeblog.gemspec"
|
103
103
|
- bin/blog
|
104
|
+
- bin/blog.rb
|
104
105
|
- bin/mkwidget
|
105
106
|
- data/EDITOR
|
106
107
|
- data/ROOT
|
@@ -256,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
257
|
- !ruby/object:Gem::Version
|
257
258
|
version: '0'
|
258
259
|
requirements: []
|
259
|
-
rubygems_version: 3.
|
260
|
+
rubygems_version: 3.2.3
|
260
261
|
signing_key:
|
261
262
|
specification_version: 4
|
262
263
|
summary: A command-line blogging system
|