runeblog 0.1.80 → 0.1.85

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 57d59b2120fa25efd7d1542b31200079497991ae27240e30c936701a3ac1e066
4
- data.tar.gz: 3b5c8f7bde8e3ca0c7989406ecca1edb6cc35c6b8ad1b76ea55dd25cddf15f9b
3
+ metadata.gz: cb6100ad69994f06dcb9d75dcef71d5f485f56119725efb419607c3ca5521b89
4
+ data.tar.gz: 025a5cc03d7203cd32db22c2bb283c3db7ad6aa1eb4b110ec5f1613bb5740fe9
5
5
  SHA512:
6
- metadata.gz: e1dc62eedd0bca2d772c3363fc0a8565499d4b92911fc3f418cb0b5ab1e2d9eecd44b637040fdb52f424375a13ddf94a71118d1244b9410b61b0aaeff1e98c1c
7
- data.tar.gz: 271ba003372c3562aa83f2e1bd84021a4ae333ab2d863fc2473df915d1b667f9303d0c3681ff3156da11fe6f22cf4c0e91f7e255a361b201c8e55e0d9d65c6af
6
+ metadata.gz: b89cca81ab11b4a2b7ea4694cb0f9c6f875f0691629a7eb14daa4ce3dc6b77b167db71eb5be3abc4777da3940ccc62a250d513119cebe775f6af09bea50c781d
7
+ data.tar.gz: 7b495793aeb39e03d7ca07002c66fcf309d330fe877b712ceaa524cd7e09d8da25dae2d9fcfd64ba014aa291fc177981b254fc0d5063047142b38d65741ad43c
@@ -23,6 +23,9 @@ def RuneBlog.post_template(num: 0, title: "No title", date: nil, view: "test_vie
23
23
  #{teaser}
24
24
  .end
25
25
  #{body}
26
+
27
+ <br>
28
+ <a href="javascript:history.go(-1)">[Back]</a>
26
29
  TEXT
27
30
 
28
31
  end
@@ -4,6 +4,20 @@ require 'runeblog_version'
4
4
 
5
5
  module RuneBlog::Helpers
6
6
 
7
+ def copy(src, dst)
8
+ system("cp #{src} #{dst}")
9
+ end
10
+
11
+ def copy!(src, dst)
12
+ system("cp -r #{src} #{dst}")
13
+ end
14
+
15
+ def livetext(src, dst)
16
+ src << ".lt3" unless src.end_with?(".lt3")
17
+ dst << ".html" unless src.end_with?(".html")
18
+ system("livetext #{src} >#{dst}")
19
+ end
20
+
7
21
  def get_root
8
22
  if $_blog
9
23
  if $_blog.root
@@ -51,6 +65,17 @@ module RuneBlog::Helpers
51
65
  vals
52
66
  end
53
67
 
68
+ def put_config(root:, view:"test_view", editor: "/bin/vim")
69
+ Dir.mkdir(root) unless Dir.exist?(root)
70
+ Dir.chdir(root) do
71
+ File.open("config", "w") do |cfg|
72
+ cfg.puts "root: #{root}"
73
+ cfg.puts "current_view: #{view}"
74
+ cfg.puts "editor: #{editor}"
75
+ end
76
+ end
77
+ end
78
+
54
79
  def write_config(obj, file)
55
80
  hash = obj.to_h
56
81
  # Dir.chdir(::Home)
@@ -72,9 +97,10 @@ module RuneBlog::Helpers
72
97
  # end
73
98
  end
74
99
 
75
- def new_dotfile(root: "./.blogs/data", current_view: "no_default", editor: "vi")
76
- raise BlogAlreadyExists if Dir.exist?(".blogs")
77
- Dir.mkdir(".blogs")
100
+ def new_dotfile(root: ".blogs", current_view: "test_view", editor: "vi")
101
+ # raise BlogAlreadyExists if Dir.exist?(".blogs")
102
+ # Dir.mkdir(".blogs")
103
+ root = Dir.pwd + "/" + root
78
104
  x = OpenStruct.new
79
105
  x.root, x.current_view, x.editor = root, current_view, editor
80
106
  write_config(x, ".blogs/" + RuneBlog::ConfigFile)
@@ -87,8 +113,10 @@ module RuneBlog::Helpers
87
113
  end
88
114
 
89
115
  def subdirs(dir)
116
+ STDERR.puts "== SUB dir = #{dir}"
90
117
  verify(Dir.exist?(dir) => "Directory #{dir} not found")
91
118
  dirs = Dir.entries(dir) - %w[. ..]
119
+ STDERR.puts "== SUB dirs = #{dirs.inspect}"
92
120
  dirs.reject! {|x| ! File.directory?("#@root/views/#{x}") }
93
121
  dirs
94
122
  end
@@ -114,9 +142,9 @@ module RuneBlog::Helpers
114
142
  raise CantCreateDir(dir) unless result
115
143
  end
116
144
 
117
- def interpolate(str)
145
+ def interpolate(str, binding)
118
146
  wrap = "<<-EOS\n#{str}\nEOS"
119
- eval wrap
147
+ eval wrap, binding
120
148
  end
121
149
 
122
150
  def error(err) # Hmm, this is duplicated
@@ -20,7 +20,11 @@ STDERR.reopen(errfile)
20
20
  =end
21
21
 
22
22
  def init_liveblog # FIXME - a lot of this logic sucks
23
- @blog = $_blog = RuneBlog.new(false)
23
+ here = Dir.pwd
24
+ dir = here
25
+ loop { dir = Dir.pwd; break if File.exist?("config"); Dir.chdir("..") }
26
+ Dir.chdir(here)
27
+ @blog = $_blog = RuneBlog.new(dir)
24
28
  @root = @blog.root
25
29
  @view = @blog.view
26
30
  @view_name = @blog.view.name
@@ -32,6 +36,7 @@ end
32
36
  def post
33
37
  @meta = OpenStruct.new
34
38
  @meta.num = _args[0]
39
+ _out " <!-- Post number #{@meta.num} -->\n "
35
40
  end
36
41
 
37
42
  def _view_from_cwd
@@ -235,6 +240,7 @@ def finalize
235
240
  @slug = @blog.make_slug(@meta)
236
241
  slug_dir = @slug
237
242
  @postdir = @blog.view.dir + "/posts/#{slug_dir}"
243
+ STDERR.puts "--- finalize: pwd = #{Dir.pwd} postdir = #@postdir"
238
244
  write_post
239
245
  @meta
240
246
  end
@@ -272,17 +278,18 @@ end
272
278
  ###### experimental...
273
279
 
274
280
  class Livetext::Functions
275
-
276
281
  def _var(name)
277
282
  ::Livetext::Vars[name] || "[:#{name} is undefined]"
278
283
  end
279
284
 
280
-
281
285
  def link
282
286
  file, cdata = self.class.param.split("||", 2)
283
287
  %[<link type="application/atom+xml" rel="alternate" href="#{_var(:host)}#{file}" title="#{_var(:title)}">]
284
288
  end
289
+ end
285
290
 
291
+ def _var(name) # FIXME scope issue!
292
+ ::Livetext::Vars[name] || "[:#{name} is undefined]"
286
293
  end
287
294
 
288
295
  def head
@@ -299,7 +306,7 @@ def head
299
306
  "linkc" => %[<link rel="canonical" href="#{_var(:host)}">],
300
307
  "og:url" => %[<meta property="og:url" content="#{_var(:host)}">],
301
308
  "og:site_name" => %[<meta property="og:site_name" content="#{_var(:title)}">],
302
- "style" => %[<link rel="stylesheet" href="blog-application.css">],
309
+ "style" => %[<link rel="stylesheet" href="assets/blog.css">],
303
310
  "feed" => %[<link type="application/atom+xml" rel="alternate" href="#{_var(:host)}/feed.xml" title="#{_var(:title)}">],
304
311
  "favicon" => %[<link rel="shortcut icon" type="image/x-icon" href="../assets/favicon.ico">\n <link rel="apple-touch-icon" href="../assets/favicon.ico">]
305
312
  }
@@ -324,7 +331,7 @@ def head
324
331
  end
325
332
  end
326
333
  hash = defaults.dup.update(result) # FIXME collisions?
327
- _out "<html lang=en_US>"
334
+ # _out "<html lang=en_US>"
328
335
  _out "<head>"
329
336
  hash.each_value {|x| _out " " + x }
330
337
  _out "</head>"
@@ -401,6 +408,7 @@ def script
401
408
  _out %[<script src="#{url}" integrity="#{integ}" crossorigin="#{cross}"></script>]
402
409
  end
403
410
 
411
+
404
412
  ### How this next bit works:
405
413
  ###
406
414
  ### all_teasers will call _find_recent_posts
@@ -438,7 +446,7 @@ def all_teasers
438
446
 
439
447
  text = <<-HTML
440
448
  <html>
441
- <head><link rel="stylesheet" href="blog-application.css"></head>
449
+ <head><link rel="stylesheet" href="assets/blog.css"></head>
442
450
  <body>
443
451
  HTML
444
452
  posts = _find_recent_posts
@@ -490,6 +498,7 @@ def _teaser(slug)
490
498
  text
491
499
  end
492
500
 
501
+
493
502
  def card_iframe
494
503
  title = _data
495
504
  lines = _body
@@ -139,6 +139,7 @@ end
139
139
  class RuneBlog::ViewPost
140
140
  attr_reader :path, :nslug, :aslug, :title, :date,
141
141
  :teaser_text
142
+
142
143
  def initialize(view, postdir)
143
144
  # Assumes already parsed/processed
144
145
  @blog = RuneBlog.blog || raise(NoBlogAccessor)
@@ -153,5 +154,18 @@ class RuneBlog::ViewPost
153
154
  @title = lines.grep(/title:/).first[7..-1].chomp
154
155
  @date = lines.grep(/pubdate:/).first[9..-1].chomp
155
156
  end
157
+
158
+ def get_dirs
159
+ fname = File.basename(draft)
160
+ noext = fname.sub(/.lt3$/, "")
161
+ vdir = "#@root/views/#{view}"
162
+ dir = "#{vdir}/posts/#{noext}/"
163
+ Dir.mkdir(dir) unless Dir.exist?(dir)
164
+ system("cp #{draft} #{dir}")
165
+ viewdir, slugdir, aslug = vdir, dir, noext[5..-1]
166
+ theme = viewdir + "/themes/standard"
167
+ [noext, viewdir, slugdir, aslug, theme]
168
+ end
169
+
156
170
  end
157
171
 
@@ -1,4 +1,5 @@
1
- require 'livetext'
1
+ require 'date'
2
+ # require 'livetext'
2
3
 
3
4
  require 'runeblog_version'
4
5
  require 'global'
@@ -14,7 +15,7 @@ class RuneBlog
14
15
 
15
16
  DotDir = ".blogs"
16
17
  ConfigFile = "config"
17
- GemData = RuneBlog::Path + "/../data"
18
+ GemData = RuneBlog::Path + "/../themes"
18
19
 
19
20
  make_exception(:FileNotFound, "File $1 was not found")
20
21
  make_exception(:BlogRepoAlreadyExists, "Blog repo $1 already exists")
@@ -24,7 +25,7 @@ class RuneBlog
24
25
  make_exception(:CantCreateDir, "Can't create directory $1")
25
26
  make_exception(:EditorProblem, "Could not edit $1")
26
27
  make_exception(:NoSuchView, "No such view: $1")
27
- make_exception(:LivetextError, "Livetext#process_file returned nil for $1")
28
+ # make_exception(:LivetextError, "Livetext#process_file returned nil for $1")
28
29
  make_exception(:NoBlogAccessor, "Runeblog.blog is not set")
29
30
 
30
31
 
@@ -40,40 +41,54 @@ class RuneBlog
40
41
 
41
42
  include Helpers
42
43
 
43
- def self.create_new_blog_repo(first_view, dir = ".blogs/data")
44
+ def self.create_new_blog_repo(dir = ".blogs")
44
45
  raise ArgumentError unless dir.is_a?(String) && ! dir.empty?
45
46
  root_dir = Dir.pwd + "/" + dir
46
- raise BlogRepoAlreadyExists if Dir.exist?(root_dir)
47
- new_dotfile(root: root_dir, current_view: first_view)
48
- create_dir(dir)
49
- Dir.chdir(dir) do
47
+ self.create(dir)
48
+ rescue => err
49
+ puts "Can't create blog repo: '#{dir}' - #{err}"
50
+ puts err.backtrace.join("\n")
51
+ end
52
+
53
+ def self.create(root = ".blogs")
54
+ # Crude - FIXME later - # What views are there? Publishing, etc.
55
+ self.blog = self # Weird. Like a singleton - dumbass circular dependency?
56
+ $_blog = self # Dumber still?
57
+ root = Dir.pwd + "/" + root
58
+ raise BlogRepoAlreadyExists if Dir.exist?(root)
59
+ create_dir(root)
60
+ Dir.chdir(root) do
50
61
  create_dir("drafts")
51
62
  create_dir("views")
52
63
  #? create_dir("assets")
53
64
  new_sequence
54
65
  end
55
- blog = self.new
56
- blog.create_view(first_view)
57
- rescue => err
58
- puts "Can't create blog repo: '#{dir}' - #{err}"
59
- puts err.backtrace.join("\n")
66
+ put_config(root: root)
67
+ @blog = self.new(root)
68
+ @blog.create_view("test_view")
69
+ @blog
60
70
  end
61
71
 
62
- def initialize(top = true) # at top? always assumes existing blog
72
+ def self.open(root = ".blogs")
73
+ # Crude - FIXME later - # What views are there? Publishing, etc.
74
+ self.blog = self # Weird. Like a singleton - dumbass circular dependency?
75
+ $_blog = self # Dumber still?
76
+ root = Dir.pwd + "/" + root
77
+ blog = self.new(root)
78
+ end
79
+
80
+ def initialize(root_dir = ".blogs") # always assumes existing blog
63
81
  # Crude - FIXME later - # What views are there? Publishing, etc.
64
82
  self.class.blog = self # Weird. Like a singleton - dumbass circular dependency?
65
83
  $_blog = self # Dumber still?
66
- dir = ""
67
- unless top
68
- md = Dir.pwd.match(%r[.*.blogs])
69
- dir = md[0]
70
- end
71
- file = dir.empty? ? ConfigFile : dir + "/" + ConfigFile
84
+
85
+ @root = root_dir
86
+ file = @root + "/" + ConfigFile
87
+ STDERR.puts "--- init: file = #{file}"
72
88
  errmsg = "No config file! file = #{file.inspect} dir = #{Dir.pwd}"
73
89
  raise errmsg unless File.exist?(file)
74
- # Hmm. current_view doesn't belong?
75
- @root, @view_name, @editor = read_config(file, :root, :current_view, :editor)
76
90
 
91
+ @root, @view_name, @editor = read_config(file, :root, :current_view, :editor)
77
92
  md = Dir.pwd.match(%r[.*/views/(.*?)/])
78
93
  @view_name = md[1] if md
79
94
  @views = get_views
@@ -169,8 +184,14 @@ class RuneBlog
169
184
  create_dir('assets')
170
185
  create_dir('posts')
171
186
 
187
+ create_dir('staging')
188
+ create_dir('staging/assets')
189
+ create_dir('remote')
190
+ create_dir('remote/assets')
191
+
172
192
  Dir.chdir("themes") { system("tar zxvf #{GemData}/standard.tgz >/dev/null 2>&1") }
173
- # system("cp themes/standard/blog/assets/* assets/")
193
+ copy!("themes/standard/*", "staging/")
194
+ copy("themes/standard/assets/*", "remote/assets/")
174
195
 
175
196
  pub = "user: xxx\nserver: xxx\ndocroot: xxx\npath: xxx\nproto: xxx\n"
176
197
  dump(pub, "publish")
@@ -210,6 +231,71 @@ class RuneBlog
210
231
  result
211
232
  end
212
233
 
234
+ def post_lookup(postid) # side-effect?
235
+ # .. = templates, ../.. = views/thisview
236
+ slug = title = date = teaser_text = nil
237
+
238
+ dir_posts = @vdir + "/posts"
239
+ posts = Dir.entries(dir_posts).grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
240
+ posts.select! {|x| File.directory?(x) }
241
+
242
+ post = posts.select {|x| File.basename(x).to_i == postid }
243
+ raise "Error: More than one post #{postid}" if post.size > 1
244
+ postdir = post.first
245
+ vp = RuneBlog::ViewPost.new(self.view, postdir)
246
+ vp
247
+ end
248
+
249
+ def teaser(slug)
250
+ id = slug.to_i
251
+ text = nil
252
+ post_entry_name = @theme + "/blog-_postentry.lt3"
253
+ @_post_entry ||= File.read(post_entry_name)
254
+ vp = post_lookup(id)
255
+ nslug, aslug, title, date, teaser_text =
256
+ vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
257
+ path = vp.path
258
+ # url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
259
+ url = "#{aslug}.html" # Should be relative to .blogs!! FIXME
260
+ date = ::Date.parse(date)
261
+ date = date.strftime("%B %e<br>%Y")
262
+ text = interpolate(@_post_entry, binding)
263
+ text
264
+ end
265
+
266
+ def collect_recent_posts(file)
267
+ @vdir = ".."
268
+ posts = nil
269
+ dir_posts = @vdir + "/posts"
270
+ entries = Dir.entries(dir_posts)
271
+ posts = entries.grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
272
+ posts.select! {|x| File.directory?(x) }
273
+ # directories that start with four digits
274
+ posts = posts.sort {|a, b| b.to_i <=> a.to_i } # sort descending
275
+ posts = posts[0..19] # return 20 at most
276
+ text = <<-HTML
277
+ <html>
278
+ <head><link rel="stylesheet" href="assets/blog.css"></head>
279
+ <body>
280
+ HTML
281
+ # posts = _find_recent_posts
282
+ wanted = [5, posts.size].min # estimate how many we want?
283
+ enum = posts.each
284
+ wanted.times do
285
+ postid = File.basename(enum.next)
286
+ postid = postid.to_i
287
+ text << teaser(postid) # side effect! calls _out
288
+ end
289
+ text << "</body></html>"
290
+ File.write(file, text) # FIXME ???
291
+ iframe_text = <<-HTML
292
+ <iframe style="width: 100vw;height: 100vh;position: relative;"
293
+ src='recent.html' width=100% frameborder="0" allowfullscreen>
294
+ </iframe>
295
+ HTML
296
+ # _out iframe_text # FIXME ??
297
+ end
298
+
213
299
  def create_new_post(title, testing = false, teaser: nil, body: nil, other_views: [])
214
300
  save = Dir.pwd
215
301
  Dir.chdir(self.view.dir)
@@ -276,6 +362,8 @@ class RuneBlog
276
362
  raise "No .views call!" if view_line.size < 1
277
363
  view_line = view_line.first
278
364
  views = view_line[7..-1].split
365
+ STDERR.puts "--- gv: #{views.inspect}"
366
+ views
279
367
  end
280
368
 
281
369
  # Remember: A post in multiple views will trigger multiple
@@ -309,25 +397,27 @@ class RuneBlog
309
397
  def generate_post(draft)
310
398
  views = _get_views(draft)
311
399
  views.each do |view|
312
- noext, viewdir, slugdir, aslug, theme = _copy_get_dirs(draft, view)
400
+ noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
401
+ staging = viewdir + "/staging"
313
402
  Dir.chdir(slugdir) do
314
- html = noext[5..-1] + ".html"
315
- system("livetext #{draft} >#{html}")
316
-
317
- Dir.mkdir("sidebar") unless Dir.exist?("sidebar")
318
- system("cp #{theme}/sidebar/*.lt3 ./sidebar/")
319
- files = ["blog-generate.lt3", "blog-index.lt3", "global.lt3", "blog-head.lt3",
320
- "meta.lt3", "navbar.lt3", "blog-application.css"]
321
- files2 = files.map {|x| theme + "/" + x }
322
- files2.each do |f|
323
- system("cp #{f} .")
403
+ copy(draft, ".")
404
+ lt3 = draft.split("/")[-1]
405
+ # Remember: Some posts may be in more than one view -- careful with links back
406
+ # system("livetext #{draft} >staging/#{name}/index.html") # permalink?
407
+ # Structure is borked?
408
+ copy!("#{@theme}/*", "#{staging}")
409
+ copy(lt3, staging)
410
+ html = noext[5..-1]
411
+ Dir.chdir(staging) do
412
+ STDERR.puts "--- gp: pwd = #{Dir.pwd} draft = #{draft} html = #{html}"
413
+ livetext draft, html
414
+ # link to POST??
415
+ copy html, "../remote"
416
+ collect_recent_posts("recent.html")
417
+ copy("recent.html", "../remote")
418
+ livetext "blog-generate", "../remote/index"
324
419
  end
325
-
326
- # system("livetext blog-generate.lt3 >bgen.html")
327
- # files.each {|fname| system("rm ./#{fname}") }
328
- # system("rm -rf ./sidebar/")
329
420
  end
330
- # create framed pure slug (where?)
331
421
  end
332
422
  end
333
423
 
@@ -2,7 +2,7 @@
2
2
  if ! (Object.constants.include?(:RuneBlog) && RuneBlog.constants.include?(:Path))
3
3
 
4
4
  class RuneBlog
5
- VERSION = "0.1.80"
5
+ VERSION = "0.1.85"
6
6
 
7
7
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
8
8
  end
@@ -25,7 +25,7 @@ class RuneBlog::View
25
25
  end
26
26
 
27
27
  def local_index
28
- dir + "/generated/index.html"
28
+ dir + "/remote/index.html"
29
29
  end
30
30
 
31
31
  def index
@@ -39,7 +39,7 @@ class RuneBlog::View
39
39
  def publishable_files
40
40
  vdir = dir()
41
41
  files = [local_index()]
42
- others = Dir.entries(vdir + "/generated").grep(/^\d\d\d\d/).map {|x| "#{vdir}/generated/#{x}" }
42
+ others = Dir.entries(vdir + "/remote").grep(/^\d\d\d\d/).map {|x| "#{vdir}/remote/#{x}" }
43
43
  abort "FIXME... publishable_files"
44
44
  deep_assets = Dir["#{vdir}/themes/standard/assets/*"]
45
45
  deep_assets.each do |file| # Do this at view creation
@@ -27,11 +27,7 @@ spec = Gem::Specification.new do |s|
27
27
  main = Find.find("bin").to_a +
28
28
  Find.find("lib").to_a
29
29
 
30
- Dir.chdir("data") do
31
- system("tar zcvf standard.tgz standard/ >/dev/null 2>&1")
32
- end
33
-
34
- std_theme = ["data/standard.tgz"]
30
+ std_theme = ["themes/standard.tgz"]
35
31
 
36
32
  misc = %w[./README.lt3 ./README.md ./runeblog.gemspec]
37
33
  test = Find.find("test").to_a
@@ -19,7 +19,8 @@ def debug(str)
19
19
  end
20
20
 
21
21
  def make_post(x, title, teaser, body, views=[])
22
- STDERR.puts "\n========= make_post '#{title}'"
22
+ # STDERR.puts "\n========= make_post '#{title}'"
23
+ print "."
23
24
  meta = OpenStruct.new
24
25
  num = x.create_new_post(title, true, teaser: teaser, body: body, other_views: views)
25
26
  num
@@ -32,15 +33,19 @@ def show_lines(text)
32
33
  str
33
34
  end
34
35
 
36
+
37
+
38
+ puts
39
+
35
40
  system("rm -rf .blogs")
36
- RuneBlog.create_new_blog_repo('test_view', ".blogs/data")
37
- x = RuneBlog.new
41
+ RuneBlog.create_new_blog_repo(".blogs")
42
+ x = RuneBlog.new(".blogs")
38
43
 
39
44
  x.create_view("around_austin") # FIXME remember view title!
40
45
 
41
46
  # Hack:
42
47
  if File.exist?("publish")
43
- system("cp publish .blogs/data/views/around_austin/publish")
48
+ system("cp publish .blogs/views/around_austin/publish")
44
49
  end
45
50
 
46
51
  x.create_view("computing")
@@ -61,36 +66,36 @@ EXCERPT
61
66
  Now, depending on what you consider "major," blah blah blah...
62
67
  BODY
63
68
 
64
- # x.change_view("computing") # 3 5 6
65
- #
66
- # make_post(x, "Elixir Conf coming up...", <<-EXCERPT, <<-BODY)
67
- # The next Elixir Conf is always coming up.
68
- # EXCERPT
69
- # I mean, unless the previous one was the last one ever, which I don't expect to
70
- # happen for a couple of decades.
71
- # BODY
72
- #
73
- # x.change_view("music") # 4 10
74
- #
75
- # make_post(x, "Does indie still matter?", <<-EXCERPT, <<-BODY)
76
- # Indie msic blah blah blah blah....
77
- # EXCERPT
78
- # And more about indie music.
79
- # BODY
80
- #
81
- # x.change_view("computing")
82
- #
83
- # make_post(x, "The genius of Scenic", <<-EXCERPT, <<-BODY)
84
- # Boyd Multerer is a genius.
85
- # EXCERPT
86
- # And so is Scenic.
87
- # BODY
88
- #
89
- # make_post(x, "The future of coding", <<-EXCERPT, <<-BODY)
90
- # Someday you can forget your text editor entirely.
91
- # EXCERPT
92
- # But that day hasn't come yet.
93
- # BODY
69
+ x.change_view("computing") # 3 5 6
70
+
71
+ make_post(x, "Elixir Conf coming up...", <<-EXCERPT, <<-BODY)
72
+ The next Elixir Conf is always coming up.
73
+ EXCERPT
74
+ I mean, unless the previous one was the last one ever, which I don't expect to
75
+ happen for a couple of decades.
76
+ BODY
77
+
78
+ x.change_view("music") # 4 10
79
+
80
+ make_post(x, "Does indie still matter?", <<-EXCERPT, <<-BODY)
81
+ Indie msic blah blah blah blah....
82
+ EXCERPT
83
+ And more about indie music.
84
+ BODY
85
+
86
+ x.change_view("computing")
87
+
88
+ make_post(x, "The genius of Scenic", <<-EXCERPT, <<-BODY)
89
+ Boyd Multerer is a genius.
90
+ EXCERPT
91
+ And so is Scenic.
92
+ BODY
93
+
94
+ make_post(x, "The future of coding", <<-EXCERPT, <<-BODY)
95
+ Someday you can forget your text editor entirely.
96
+ EXCERPT
97
+ But that day hasn't come yet.
98
+ BODY
94
99
 
95
100
  x.change_view("around_austin")
96
101
 
@@ -124,3 +129,4 @@ BODY
124
129
 
125
130
  x.change_view("around_austin")
126
131
 
132
+ puts
Binary file
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.80
4
+ version: 0.1.85
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-08-21 00:00:00.000000000 Z
11
+ date: 2019-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext
@@ -61,7 +61,6 @@ files:
61
61
  - "./README.md"
62
62
  - "./runeblog.gemspec"
63
63
  - bin/blog
64
- - data/standard.tgz
65
64
  - lib/Javascript.stuff
66
65
  - lib/default.rb
67
66
  - lib/global.rb
@@ -78,6 +77,7 @@ files:
78
77
  - test/general_test.rb
79
78
  - test/make_blog.rb
80
79
  - test/test
80
+ - themes/standard.tgz
81
81
  homepage: https://github.com/Hal9000/runeblog
82
82
  licenses:
83
83
  - Ruby
Binary file