runeblog 0.3.28 → 0.3.30
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/bin/blog +15 -4
- data/lib/exceptions.rb +1 -0
- data/lib/lowlevel.rb +0 -10
- data/lib/menus.rb +1 -1
- data/lib/repl.rb +4 -1
- data/lib/runeblog.rb +16 -18
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +13 -2
- 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: 2f1dd9b0013eda386f3152a196dcd6ee279274bdcfebca3fce17fd1a495fe93d
|
|
4
|
+
data.tar.gz: 9b1a091067233521f3a9216d84471ae31a0132b68ca22dca174555e824267c21
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ac2b3d8dd3d7f378658d138db56695e5749b0022ef19197bb6d863c077b469972e3d6a6b6adb27f20dc91e1a6a656320d8c15b657da9015935a5bd371d5a4b4e
|
|
7
|
+
data.tar.gz: ffd02d0666582b4d2a31dcc552872fc5e257e30b26054e06ebf337aca2ceac9540ff0b1506cdf272b0cdee7fa7f6b70b4c7bddc578460472684039bac5dbb05c
|
data/bin/blog
CHANGED
|
@@ -11,6 +11,8 @@ require 'repl'
|
|
|
11
11
|
|
|
12
12
|
include RuneBlog::REPL
|
|
13
13
|
|
|
14
|
+
include ErrorChecks
|
|
15
|
+
|
|
14
16
|
def yesno(question, noskip=false)
|
|
15
17
|
puts fx("\n #{question}", :bold)
|
|
16
18
|
puts unless noskip
|
|
@@ -46,18 +48,25 @@ end
|
|
|
46
48
|
|
|
47
49
|
def get_global
|
|
48
50
|
view_name = ask!(" Filename: ")
|
|
51
|
+
# FIXME test below doesn't work?
|
|
52
|
+
FilenameHasBlank(view_name) if view_name.include?(" ")
|
|
53
|
+
|
|
49
54
|
@blog.create_view(view_name) # call change_view??
|
|
50
55
|
if yesno("Faster view setup? (no: edit global.lt3)")
|
|
51
56
|
title = ask!(" View title: ")
|
|
52
57
|
subtitle = ask!(" Subtitle : ")
|
|
53
58
|
domain = ask!(" Domain : ")
|
|
54
59
|
modify_view_global(view_name)
|
|
55
|
-
modify_view_settings(name: view_name, title: title, subtitle: subtitle,
|
|
60
|
+
modify_view_settings(name: view_name, title: title, subtitle: subtitle,
|
|
56
61
|
domain: domain)
|
|
57
62
|
else
|
|
58
63
|
vim_params = '-c ":set hlsearch" -c ":hi Search ctermfg=2 ctermbg=6" +/"\(VIEW_.*\|SITE.*\)"'
|
|
59
64
|
edit_file(@blog.view.dir/"themes/standard/global.lt3", vim: vim_params)
|
|
60
65
|
end
|
|
66
|
+
rescue => err
|
|
67
|
+
puts err
|
|
68
|
+
puts "Retrying..."
|
|
69
|
+
retry
|
|
61
70
|
end
|
|
62
71
|
|
|
63
72
|
def get_started
|
|
@@ -204,6 +213,7 @@ def create_new_repo?
|
|
|
204
213
|
rescue => err
|
|
205
214
|
STDERR.puts "Error - #{err.to_s}"
|
|
206
215
|
STDERR.puts err.backtrace if err.respond_to?(:backtrace)
|
|
216
|
+
puts "Sleeping..."; sleep 10
|
|
207
217
|
end
|
|
208
218
|
|
|
209
219
|
def print_intro
|
|
@@ -234,12 +244,13 @@ reopen_stderr
|
|
|
234
244
|
|
|
235
245
|
check_ruby_version
|
|
236
246
|
handle_cmdline unless ARGV.empty?
|
|
247
|
+
|
|
237
248
|
set_fgbg
|
|
238
249
|
print_intro
|
|
239
|
-
# STDERR.puts "cp 6 - pause"; gets
|
|
240
250
|
create_new_repo?
|
|
241
|
-
|
|
251
|
+
|
|
242
252
|
cmd_history_etc
|
|
243
|
-
|
|
253
|
+
|
|
244
254
|
loop { mainloop }
|
|
255
|
+
|
|
245
256
|
exit_repl
|
data/lib/exceptions.rb
CHANGED
|
@@ -34,4 +34,5 @@ make_exception(:CantFindWidgetDir, "Can't find widget dir '%1'")
|
|
|
34
34
|
make_exception(:PublishError, "Error during publishing")
|
|
35
35
|
make_exception(:NoNumericPrefix, "No numeric prefix on slug '%1'")
|
|
36
36
|
make_exception(:NoExtensionExpected, "No file extension expected on '%1'")
|
|
37
|
+
make_exception(:FilenameHasBlank, "File '%1' contains a blank space.")
|
|
37
38
|
|
data/lib/lowlevel.rb
CHANGED
|
@@ -4,15 +4,6 @@
|
|
|
4
4
|
STDERR.puts err.backtrace.join("\n") if err.respond_to?(:backtrace)
|
|
5
5
|
log!(str: "#{err} - see also stderr.out")
|
|
6
6
|
log!(str: err.backtrace.join("\n")) if err.respond_to?(:backtrace)
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
out = "/tmp/blog#{rand(100)}.txt"
|
|
10
|
-
File.open(out, "w") do |f|
|
|
11
|
-
f.puts err.to_s + "\n--------"
|
|
12
|
-
f.puts err.backtrace.join("\n")
|
|
13
|
-
end
|
|
14
|
-
puts "Error: See #{out}"
|
|
15
|
-
# sleep 3
|
|
16
7
|
end
|
|
17
8
|
|
|
18
9
|
def dump(obj, name)
|
|
@@ -25,7 +16,6 @@
|
|
|
25
16
|
|
|
26
17
|
def system!(os_cmd, show: false)
|
|
27
18
|
log!(enter: __method__, args: [os_cmd], level: 2)
|
|
28
|
-
caller.each {|x| print "::: "; p x }
|
|
29
19
|
STDERR.puts os_cmd if show
|
|
30
20
|
rc = system(os_cmd)
|
|
31
21
|
STDERR.puts " rc = #{rc.inspect}" if show
|
data/lib/menus.rb
CHANGED
|
@@ -105,7 +105,7 @@ Menu.top_config = {
|
|
|
105
105
|
"Generator for a post" => proc { edit_post_generate },
|
|
106
106
|
" HEAD info for post" => proc { edit_post_head },
|
|
107
107
|
" Content for post" => proc { edit_post_index },
|
|
108
|
-
"Variables (general)" => proc { edit_view_global },
|
|
108
|
+
"Variables (general!)" => proc { edit_view_global },
|
|
109
109
|
" View-specific" => proc { edit_settings_view },
|
|
110
110
|
" Recent posts" => proc { edit_settings_recent },
|
|
111
111
|
" Publishing" => proc { edit_settings_publish },
|
data/lib/repl.rb
CHANGED
|
@@ -11,8 +11,10 @@ Signal.trap("INT") { puts "Don't :)" }
|
|
|
11
11
|
module RuneBlog::REPL
|
|
12
12
|
def edit_file(file, vim: "")
|
|
13
13
|
ed = @blog.editor
|
|
14
|
+
STDERR.puts ">>> edit_file: ed = #{ed.inspect}"
|
|
14
15
|
params = vim if ed =~ /vim$/
|
|
15
16
|
result = system!("#{@blog.editor} #{file} #{params}")
|
|
17
|
+
STDERR.puts ">>> edit_file: after system call"
|
|
16
18
|
raise EditorProblem(file) unless result
|
|
17
19
|
cmd_clear
|
|
18
20
|
end
|
|
@@ -38,7 +40,7 @@ module RuneBlog::REPL
|
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
def cmd_config
|
|
41
|
-
hash = {"Variables (
|
|
43
|
+
hash = {"Variables (General)" => "global.lt3",
|
|
42
44
|
" View-specific" => "../settings/view.txt",
|
|
43
45
|
" Recent posts" => "../../settings/recent.txt",
|
|
44
46
|
" Publishing" => "../../settings/publish.txt",
|
|
@@ -60,6 +62,7 @@ module RuneBlog::REPL
|
|
|
60
62
|
}
|
|
61
63
|
|
|
62
64
|
dir = @blog.view.dir/"themes/standard/"
|
|
65
|
+
STDERR.puts ">>> cmd_config: dir = #{dir.inspect}"
|
|
63
66
|
num, target = STDSCR.menu(title: "Edit file:", items: hash)
|
|
64
67
|
edit_file(dir/target)
|
|
65
68
|
end
|
data/lib/runeblog.rb
CHANGED
|
@@ -96,14 +96,13 @@ 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?(
|
|
99
|
+
check_error(BlogRepoAlreadyExists) { Dir.exist?(root_rel) }
|
|
100
100
|
check_nonempty_string(root_rel)
|
|
101
101
|
repo_root = Dir.pwd/root_rel
|
|
102
102
|
|
|
103
103
|
create_dirs(repo_root)
|
|
104
104
|
Dir.chdir(repo_root) do
|
|
105
105
|
create_dirs(:data, :config, :widgets, :drafts, :views, :posts) # ?? widgets?
|
|
106
|
-
# FIXME
|
|
107
106
|
get_all_widgets("widgets")
|
|
108
107
|
new_sequence
|
|
109
108
|
end
|
|
@@ -131,21 +130,7 @@ class RuneBlog
|
|
|
131
130
|
|
|
132
131
|
def self.read(root_rel = ".blogs") # always assumes existing blog
|
|
133
132
|
log!(enter: "RuneBlog.read", args: [root_rel])
|
|
134
|
-
|
|
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, [], []
|
|
147
|
-
end
|
|
148
|
-
return instance
|
|
133
|
+
RuneBlog.new(root_rel)
|
|
149
134
|
rescue => err
|
|
150
135
|
puts "ERROR - #{err.inspect}"
|
|
151
136
|
# puts "Error - see stderr.out"
|
|
@@ -153,7 +138,20 @@ class RuneBlog
|
|
|
153
138
|
sleep 3
|
|
154
139
|
end
|
|
155
140
|
|
|
156
|
-
def initialize ##### FIXME ??
|
|
141
|
+
def initialize(root_rel = ".blogs") ##### FIXME ??
|
|
142
|
+
# @blog = instance # Duhhh
|
|
143
|
+
@root = Dir.pwd/root_rel
|
|
144
|
+
# _init_get_view ##########??????
|
|
145
|
+
# self.class.blog = self # Weird, like singleton. Dumbass circular dependency?
|
|
146
|
+
RuneBlog.blog = self
|
|
147
|
+
dirs = subdirs("#@root/views/").sort
|
|
148
|
+
@views = dirs.map {|name| RuneBlog::View.new(name) }
|
|
149
|
+
@curr = str2view(File.read(@root/"data/VIEW").chomp)
|
|
150
|
+
@view = @curr
|
|
151
|
+
# ...was init_get_view
|
|
152
|
+
@sequence, @post_views, @post_tags = get_sequence, [], []
|
|
153
|
+
get_repo_config
|
|
154
|
+
read_features
|
|
157
155
|
end
|
|
158
156
|
|
|
159
157
|
def complete_file(name, vars, hash)
|
data/lib/runeblog_version.rb
CHANGED
data/lib/view.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require 'logging'
|
|
2
2
|
|
|
3
3
|
class RuneBlog::View
|
|
4
|
-
attr_reader :name, :state
|
|
5
|
-
attr_accessor :publisher
|
|
4
|
+
attr_reader :name, :state
|
|
5
|
+
attr_accessor :publisher, :globals
|
|
6
6
|
|
|
7
7
|
include RuneBlog::Helpers
|
|
8
8
|
|
|
@@ -33,14 +33,25 @@ class RuneBlog::View
|
|
|
33
33
|
|
|
34
34
|
def get_globals(force = false)
|
|
35
35
|
return if @globals && !force
|
|
36
|
+
|
|
36
37
|
# gfile = @blog.root/"views/#@name/themes/standard/global.lt3"
|
|
37
38
|
gfile = @blog.root/"views/#@name/data/global.lt3"
|
|
38
39
|
return unless File.exist?(gfile) # Hackish!! how is View.new called from create_view??
|
|
39
40
|
|
|
40
41
|
live = Livetext.customize(call: ".nopara")
|
|
42
|
+
puts "get_globals - 1 - transforming #{gfile}"
|
|
43
|
+
# FIXME - error here somehow:
|
|
44
|
+
# get_globals - 1 - transforming /private/tmp/.blogs/views/foobar/data/global.lt3
|
|
45
|
+
# >> variables: pre="view" file="../settings/view.txt" pwd=/private/tmp
|
|
46
|
+
# No such dir "../settings" (file ../settings/view.txt)
|
|
47
|
+
# No such dir "../settings" (file ../settings/view.txt)
|
|
48
|
+
# get_globals - 2
|
|
41
49
|
live.xform_file(gfile)
|
|
50
|
+
puts "get_globals - 2"
|
|
42
51
|
live.setvar("ViewDir", @blog.root/:views/@name)
|
|
52
|
+
puts "get_globals - 3"
|
|
43
53
|
live.setvar("View", @name)
|
|
54
|
+
puts "get_globals - 4"
|
|
44
55
|
@globals = live.vars
|
|
45
56
|
# dump_globals_stderr
|
|
46
57
|
end
|
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.30
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hal Fulton
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-
|
|
11
|
+
date: 2024-05-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: livetext
|