runeblog 0.1.54 → 0.1.55
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/lib/liveblog.rb +232 -0
- data/lib/post.rb +2 -2
- data/lib/repl.rb +1 -0
- data/lib/runeblog.rb +2 -0
- data/lib/runeblog_version.rb +1 -1
- data/runeblog.gemspec +3 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dfb6b74967e6212fc9e8474f483db8da090603d3b69ff77c3bdf0693ba01c77
|
4
|
+
data.tar.gz: e33b778ece67830c43c6ef717692e0987071e77c750cae360df7c354ae016b75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 438cd7ca72a2c3491d37aaab15540f176858b3d63742d2a0803baaaf7b8a038ebdefdff54d228e96a5d6e3c48595ab5a388cc6668733048d1ea8b73e5823a7a3
|
7
|
+
data.tar.gz: 95cd3836e734ee3121d00720fd71fbcade3f1920a41c8fb596e2a08aad74b32b495d7807ad8d6d99df0cf7f32e575dec67426ae565fe1a08c103ea6d092c9133
|
data/lib/liveblog.rb
ADDED
@@ -0,0 +1,232 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
require 'pp'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
require 'runeblog' # Now depends explicitly
|
6
|
+
|
7
|
+
def quote
|
8
|
+
_passthru "<blockquote>"
|
9
|
+
_passthru _body
|
10
|
+
_passthru "</blockquote>"
|
11
|
+
_optional_blank_line
|
12
|
+
end
|
13
|
+
|
14
|
+
class ::Livetext::Functions # do this differently??
|
15
|
+
|
16
|
+
def asset # FIXME this is baloney...
|
17
|
+
raise "meh"
|
18
|
+
param = ::Livetext::Functions.param
|
19
|
+
context = ::Livetext::Functions.context
|
20
|
+
main = context.eval("@main") rescue "NO MAIN?"
|
21
|
+
@meta = main.instance_eval("@main.instance_eval { @meta }")
|
22
|
+
@config = main.instance_eval("@main.instance_eval { @config }")
|
23
|
+
@root = @config.root
|
24
|
+
|
25
|
+
text, name = param.split("|")
|
26
|
+
|
27
|
+
# FIXME how should this work?
|
28
|
+
view = @blog.view
|
29
|
+
url = find_asset(name)
|
30
|
+
"<a href='#{url}'>#{text}</a>"
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def categories # does nothing right now
|
36
|
+
end
|
37
|
+
|
38
|
+
### inset
|
39
|
+
|
40
|
+
def inset
|
41
|
+
lines = _body
|
42
|
+
box = ""
|
43
|
+
lines.each do |line|
|
44
|
+
line = line.dup
|
45
|
+
if line[0] == "/" # Only into inset
|
46
|
+
line[0] = ' '
|
47
|
+
box << line.dup + " "
|
48
|
+
line.replace(" ")
|
49
|
+
end
|
50
|
+
if line[0] == "|" # Into inset and body
|
51
|
+
line[0] = ' '
|
52
|
+
box << line.dup + " "
|
53
|
+
end
|
54
|
+
_passthru(line)
|
55
|
+
end
|
56
|
+
lr = _args.first
|
57
|
+
wide = _args[1] || "25"
|
58
|
+
_passthru "<div style='float:#{lr}; width: #{wide}%; padding:8px; padding-right:12px; font-family:verdana'>"
|
59
|
+
_passthru '<b><i>'
|
60
|
+
_passthru box
|
61
|
+
_passthru_noline '</i></b></div>'
|
62
|
+
_optional_blank_line
|
63
|
+
end
|
64
|
+
|
65
|
+
### copy_asset
|
66
|
+
|
67
|
+
def copy_asset(asset)
|
68
|
+
vdir = @blog.view.dir
|
69
|
+
return if File.exist?(vdir + "/assets/" + asset)
|
70
|
+
top = vdir + "/../../assets/"
|
71
|
+
if File.exist?(top + asset)
|
72
|
+
system("cp #{top}/#{asset} #{vdir}/assets/#{asset}")
|
73
|
+
return
|
74
|
+
end
|
75
|
+
raise "Can't find #{asset.inspect}"
|
76
|
+
end
|
77
|
+
|
78
|
+
#############
|
79
|
+
|
80
|
+
def init_liveblog # FIXME - a lot of this logic sucks
|
81
|
+
@blog, num = Livetext.parameters
|
82
|
+
@meta = OpenStruct.new
|
83
|
+
@meta.num = num
|
84
|
+
@root = @blog.root rescue nil
|
85
|
+
@view = @blog.view.name rescue nil
|
86
|
+
@vdir = @blog.view.dir rescue nil
|
87
|
+
@body = ""
|
88
|
+
end
|
89
|
+
|
90
|
+
def _errout(*args)
|
91
|
+
::STDERR.puts *args
|
92
|
+
end
|
93
|
+
|
94
|
+
def _passthru(line, context = nil)
|
95
|
+
return if line.nil?
|
96
|
+
line = _formatting(line, context)
|
97
|
+
@body << line + "\n"
|
98
|
+
@body << "<p>" if line.empty? && ! @_nopara
|
99
|
+
end
|
100
|
+
|
101
|
+
def _passthru_noline(line, context = nil)
|
102
|
+
return if line.nil?
|
103
|
+
line = _formatting(line, context)
|
104
|
+
@body << line
|
105
|
+
@body << "<p>" if line.empty? && ! @_nopara
|
106
|
+
end
|
107
|
+
|
108
|
+
def title
|
109
|
+
title = @_data.chomp
|
110
|
+
@meta.title = title
|
111
|
+
@body << "<h1>#{title}</h1>"
|
112
|
+
_optional_blank_line
|
113
|
+
end
|
114
|
+
|
115
|
+
def pubdate
|
116
|
+
_debug "data = #@_data"
|
117
|
+
# Check for discrepancy?
|
118
|
+
match = /(\d{4}).(\d{2}).(\d{2})/.match @_data
|
119
|
+
junk, y, m, d = match.to_a
|
120
|
+
y, m, d = y.to_i, m.to_i, d.to_i
|
121
|
+
@meta.date = ::Date.new(y, m, d)
|
122
|
+
@meta.pubdate = "%04d-%02d-%02d" % [y, m, d]
|
123
|
+
_optional_blank_line
|
124
|
+
end
|
125
|
+
|
126
|
+
def image # primitive so far
|
127
|
+
_debug "img: huh? <img src=#{_args.first}></img>"
|
128
|
+
fname = _args.first
|
129
|
+
path = "../assets/#{fname}"
|
130
|
+
@body << "<img src=#{path}></img>"
|
131
|
+
_optional_blank_line
|
132
|
+
end
|
133
|
+
|
134
|
+
def tags
|
135
|
+
_debug "args = #{_args}"
|
136
|
+
@meta.tags = _args.dup || []
|
137
|
+
_optional_blank_line
|
138
|
+
end
|
139
|
+
|
140
|
+
def views
|
141
|
+
_debug "data = #{_args}"
|
142
|
+
@meta.views = _args.dup # + ["main"]
|
143
|
+
_optional_blank_line
|
144
|
+
end
|
145
|
+
|
146
|
+
def pin
|
147
|
+
_debug "data = #{_args}"
|
148
|
+
# verify only already-specified views?
|
149
|
+
@meta.pinned = _args.dup
|
150
|
+
_optional_blank_line
|
151
|
+
end
|
152
|
+
|
153
|
+
# def liveblog_version
|
154
|
+
# end
|
155
|
+
|
156
|
+
def list
|
157
|
+
@body << "<ul>"
|
158
|
+
_body {|line| @body << "<li>#{line}</li>" }
|
159
|
+
@body << "</ul>"
|
160
|
+
_optional_blank_line
|
161
|
+
end
|
162
|
+
|
163
|
+
def list!
|
164
|
+
@body << "<ul>"
|
165
|
+
lines = _body.each # {|line| @body << "<li>#{line}</li>" }
|
166
|
+
loop do
|
167
|
+
line = lines.next
|
168
|
+
line = _formatting(line)
|
169
|
+
if line[0] == " "
|
170
|
+
@body << line
|
171
|
+
else
|
172
|
+
@body << "<li>#{line}</li>"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
@body << "</ul>"
|
176
|
+
_optional_blank_line
|
177
|
+
end
|
178
|
+
|
179
|
+
def asset
|
180
|
+
@meta.assets ||= {}
|
181
|
+
list = _args
|
182
|
+
# For now: copies, doesn't keep record
|
183
|
+
# Later: Add to file and uniq; use in publishing
|
184
|
+
list.each {|asset| copy_asset(asset) }
|
185
|
+
_optional_blank_line
|
186
|
+
end
|
187
|
+
|
188
|
+
def assets
|
189
|
+
@meta.assets ||= []
|
190
|
+
@meta.assets += _body
|
191
|
+
_optional_blank_line
|
192
|
+
end
|
193
|
+
|
194
|
+
def write_post(meta)
|
195
|
+
save = Dir.pwd
|
196
|
+
@postdir.gsub!(/\/\//, "/") # FIXME unneeded?
|
197
|
+
Dir.mkdir(@postdir) unless Dir.exist?(@postdir) # FIXME remember assets!
|
198
|
+
Dir.chdir(@postdir)
|
199
|
+
meta.views = meta.views.join(" ")
|
200
|
+
meta.tags = meta.tags.join(" ") rescue ""
|
201
|
+
File.write("body.txt", @body) # Actually HTML...
|
202
|
+
File.write("teaser.txt", meta.teaser)
|
203
|
+
|
204
|
+
fields = [:num, :title, :date, :pubdate, :views, :tags]
|
205
|
+
|
206
|
+
fname2 = "metadata.txt"
|
207
|
+
f2 = File.open(fname2, "w") do |f2|
|
208
|
+
fields.each {|fld| f2.puts "#{fld}: #{meta.send(fld)}" }
|
209
|
+
end
|
210
|
+
Dir.chdir(save)
|
211
|
+
rescue => err
|
212
|
+
puts "err = #{err}"
|
213
|
+
puts err.backtrace.join("\n")
|
214
|
+
end
|
215
|
+
|
216
|
+
def teaser
|
217
|
+
@meta.teaser = _body_text
|
218
|
+
@body << @meta.teaser + "\n"
|
219
|
+
# FIXME
|
220
|
+
end
|
221
|
+
|
222
|
+
def finalize
|
223
|
+
if @blog.nil?
|
224
|
+
puts @body
|
225
|
+
return
|
226
|
+
end
|
227
|
+
@slug = @blog.make_slug(@meta)
|
228
|
+
@postdir = @blog.view.dir + "/#@slug"
|
229
|
+
write_post(@meta) # FIXME
|
230
|
+
@meta
|
231
|
+
end
|
232
|
+
|
data/lib/post.rb
CHANGED
@@ -98,8 +98,8 @@ class RuneBlog::Post
|
|
98
98
|
|
99
99
|
def create_draft
|
100
100
|
viewhome = @blog.view.publisher.url
|
101
|
-
print "HOME = "
|
102
|
-
p viewhome
|
101
|
+
# print "HOME = "
|
102
|
+
# p viewhome
|
103
103
|
html = RuneBlog.post_template(title: @meta.title, date: @meta.pubdate,
|
104
104
|
view: @meta.view, teaser: @meta.teaser, body: @meta.body,
|
105
105
|
views: @meta.views, tags: @meta.tags, home: viewhome)
|
data/lib/repl.rb
CHANGED
data/lib/runeblog.rb
CHANGED
data/lib/runeblog_version.rb
CHANGED
data/runeblog.gemspec
CHANGED
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.1.
|
4
|
+
version: 0.1.55
|
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-03-
|
11
|
+
date: 2019-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: livetext
|
@@ -65,6 +65,7 @@ files:
|
|
65
65
|
- lib/global.rb
|
66
66
|
- lib/helpers-blog.rb
|
67
67
|
- lib/helpers-repl.rb
|
68
|
+
- lib/liveblog.rb
|
68
69
|
- lib/post.rb
|
69
70
|
- lib/publish.rb
|
70
71
|
- lib/repl.rb
|