runeblog 0.2.94 → 0.3.01

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/bin/blog +16 -12
  3. data/data/features.txt +18 -0
  4. data/data/global.lt3 +6 -21
  5. data/data/universal.lt3 +2 -5
  6. data/{lib → empty_view/config}/exper/2svg.lt3 +0 -0
  7. data/{lib → empty_view/config}/exper/gen_svg.rb +0 -0
  8. data/empty_view/config/exper/meta.html +10 -0
  9. data/{lib → empty_view/config}/exper/s2.html +0 -0
  10. data/{lib → empty_view/config}/exper/varmint.rb +0 -0
  11. data/empty_view/config/facebook/credentials.txt +7 -0
  12. data/empty_view/config/facebook/facebook.rb +42 -0
  13. data/empty_view/config/facebook/fb.html +10 -0
  14. data/empty_view/config/facebook/fb.js.lt3 +15 -0
  15. data/empty_view/config/reddit/credentials.txt +6 -0
  16. data/empty_view/config/reddit/notes.txt +4 -0
  17. data/empty_view/config/reddit/reddit_post_url.py +34 -0
  18. data/empty_view/config/reddit/redpost.rb +43 -0
  19. data/empty_view/config/reddit/the-graffiti-wall.html +91 -0
  20. data/empty_view/config/twitter/credentials.txt +3 -0
  21. data/empty_view/config/twitter/tw.html +12 -0
  22. data/empty_view/config/twitter/tw.js +5 -0
  23. data/{lib/exper/fbtw.rb → empty_view/config/twitter/twitter.rb} +4 -26
  24. data/empty_view/settings/features.txt +18 -0
  25. data/empty_view/settings/publish.txt +5 -0
  26. data/empty_view/settings/recent.txt +6 -0
  27. data/empty_view/settings/view.txt +4 -0
  28. data/empty_view/themes/standard/banner/top.lt3 +2 -2
  29. data/empty_view/themes/standard/blog/post_entry.lt3 +1 -1
  30. data/empty_view/themes/standard/etc/blog.css.lt3 +12 -12
  31. data/empty_view/themes/standard/post/generate.lt3 +3 -3
  32. data/empty_view/themes/standard/post/permalink.lt3 +1 -1
  33. data/lib/helpers-blog.rb +25 -16
  34. data/lib/liveblog.rb +57 -14
  35. data/lib/processing.rb +12 -2
  36. data/lib/publish.rb +11 -10
  37. data/lib/repl.rb +66 -4
  38. data/lib/runeblog.rb +106 -51
  39. data/lib/runeblog_version.rb +1 -1
  40. data/lib/view.rb +2 -0
  41. data/test/austin.rb +9 -11
  42. metadata +25 -10
  43. data/empty_view/themes/standard/global.lt3 +0 -35
  44. data/lib/exper/callout.js +0 -10
  45. data/lib/exper/fbtw-js +0 -48
@@ -1,6 +1,7 @@
1
1
  require 'runeblog'
2
2
  require 'ostruct'
3
3
  require 'helpers-repl' # FIXME structure
4
+ require 'pathmagic'
4
5
 
5
6
  make_exception(:PublishError, "Error during publishing")
6
7
  make_exception(:EditorProblem, "Could not edit $1")
@@ -37,7 +38,7 @@ module RuneBlog::REPL
37
38
  @out
38
39
  end
39
40
 
40
- def cmd_config(arg, testing = false)
41
+ def OLD_cmd_config(arg, testing = false)
41
42
  hash = {"global.lt3 Global configuration" => "global.lt3",
42
43
  "banner/top.lt3 Text portion of banner" => "banner/top.lt3",
43
44
  "blog/generate.lt3 Generator for view (usu not edited)" => "blog/generate.lt3",
@@ -58,6 +59,32 @@ module RuneBlog::REPL
58
59
  edit_file(dir/target)
59
60
  end
60
61
 
62
+ def cmd_config(arg, testing = false)
63
+ hash = {"Global configuration" => "global.lt3",
64
+ " View-specific variables" => "../../settings/view.txt",
65
+ " Recent posts" => "../../settings/recent.txt",
66
+ " Publishing vars" => "../../settings/publish.txt",
67
+ "Banner description" => "blog/banner.lt3",
68
+ " Text portion of banner" => "banner/top.lt3",
69
+ "Generator for view (usu not edited)" => "blog/generate.lt3",
70
+ " HEAD info for view" => "blog/head.lt3",
71
+ " User-edited detail for view" => "blog/index.lt3",
72
+ "Generator for post entry in recent-posts" => "blog/post_entry.lt3",
73
+ "Global CSS" => "etc/blog.css.lt3",
74
+ "External JS/CSS (Bootstrap, etc.)" => "/etc/externals.lt3",
75
+ "Generator for a post" => "post/generate.lt3",
76
+ " HEAD info for post" => "post/head.lt3",
77
+ " Content for post" => "post/index.lt3",
78
+ "Generator for permalink" => "post/permalink.lt3",
79
+ }
80
+
81
+ dir = @blog.view.dir/"themes/standard/"
82
+ num, target = STDSCR.menu(title: "Edit file:", items: hash)
83
+ edit_file(dir/target)
84
+ end
85
+
86
+
87
+
61
88
  def cmd_manage(arg, testing = false)
62
89
  case arg
63
90
  when "pages"; _manage_pages(nil, testing = false)
@@ -214,12 +241,31 @@ module RuneBlog::REPL
214
241
  puts "Error: See #{out}"
215
242
  end
216
243
 
244
+ def fresh?(src, dst)
245
+ return false unless File.exist?(dst)
246
+ File.mtime(src) <= File.mtime(dst)
247
+ end
248
+
249
+ def regen_posts
250
+ drafts = @blog.drafts # current view
251
+ drafts.each do |draft|
252
+ orig = @blog.root/:drafts/draft
253
+ html = @blog.root/:posts/draft
254
+ html.sub!(/.lt3$/, "/guts.html")
255
+ next if fresh?(orig, html)
256
+ puts " Regenerating #{draft}"
257
+ @blog.generate_post(orig) # rebuild post
258
+ end
259
+ puts
260
+ end
261
+
217
262
  def cmd_rebuild(arg, testing = false)
218
263
  debug "Starting cmd_rebuild..."
219
264
  reset_output
220
265
  puts unless testing
221
266
  @blog.generate_view(@blog.view)
222
267
  @blog.generate_index(@blog.view)
268
+ regen_posts
223
269
  @out
224
270
  rescue => err
225
271
  out = "/tmp/blog#{rand(100)}.txt"
@@ -257,7 +303,7 @@ module RuneBlog::REPL
257
303
  def cmd_new_view(arg, testing = false)
258
304
  reset_output
259
305
  if arg.nil?
260
- arg = ask("\nFilename: ")
306
+ arg = ask(fx("\nFilename: ", :bold))
261
307
  puts
262
308
  end
263
309
  @blog.create_view(arg)
@@ -359,10 +405,15 @@ module RuneBlog::REPL
359
405
  v = v.to_s
360
406
  v = fx(v, :bold) if v == @blog.view.name
361
407
  output v + "\n"
362
- puts " ", v unless testing
408
+ # FIXME: next 3 lines are crufty as hell
409
+ lines = File.readlines(@blog.root/"views/#{v}/themes/standard/global.lt3")
410
+ lines = lines.select {|x| x =~ /^blog / && x !~ /VIEW_/ }
411
+ title = lines.first.split(" ", 2)[1]
412
+ print " ", ('%15s' % v) unless testing
413
+ puts " ", fx(title, :black) unless testing
363
414
  end
364
415
  puts unless testing
365
- @out
416
+ # @out
366
417
  end
367
418
 
368
419
  def cmd_list_posts(arg, testing = false)
@@ -381,6 +432,12 @@ module RuneBlog::REPL
381
432
  base = post.sub(/.lt3$/, "")
382
433
  num, rest = base[0..3], base[4..-1]
383
434
  puts " ", fx(num, Red), fx(rest, Blue) unless testing
435
+ draft = @blog.root/:drafts/post + ".lt3"
436
+ other = @blog._get_views(draft) - [@blog.view.to_s]
437
+ unless other.empty?
438
+ print fx(" "*7 + "also in: ", :bold)
439
+ puts other.join(", ")
440
+ end
384
441
  end
385
442
  end
386
443
  puts unless testing
@@ -401,6 +458,11 @@ module RuneBlog::REPL
401
458
  base = draft.sub(/.lt3$/, "")
402
459
  num, rest = base[0..3], base[4..-1]
403
460
  puts " ", fx(num, Red), fx(rest, Blue) unless testing
461
+ other = @blog._get_views(@blog.root/:drafts/draft) - [@blog.view.to_s]
462
+ unless other.empty?
463
+ print fx(" "*7 + "also in: ", :bold)
464
+ puts other.join(", ")
465
+ end
404
466
  end
405
467
  end
406
468
  puts unless testing
@@ -40,7 +40,7 @@ class RuneBlog
40
40
  end
41
41
 
42
42
  attr_reader :views, :sequence
43
- attr_accessor :root, :editor
43
+ attr_accessor :root, :editor, :features
44
44
  attr_accessor :view # overridden
45
45
 
46
46
  attr_accessor :post_views, :post_tags, :dirty_views
@@ -92,10 +92,13 @@ class RuneBlog
92
92
  raise BlogRepoAlreadyExists if Dir.exist?(repo_root)
93
93
  create_dirs(repo_root)
94
94
  Dir.chdir(repo_root) do
95
- create_dirs(:data, :drafts, :views, :posts)
95
+ create_dirs(:data, :config, :drafts, :views, :posts)
96
96
  new_sequence
97
97
  end
98
- copy_data(:config, repo_root/:data) unless File.exist?(repo_root/"data/VIEW")
98
+ unless File.exist?(repo_root/"data/VIEW")
99
+ copy_data(:config, repo_root/:data)
100
+ end
101
+ copy_data(:extra, repo_root/:config)
99
102
  write_repo_config(root: repo_root)
100
103
  @blog = self.new
101
104
  @blog
@@ -117,8 +120,7 @@ class RuneBlog
117
120
  self.class.blog = self # Weird. Like a singleton - dumbass circular dependency?
118
121
 
119
122
  @root = Dir.pwd/root_rel
120
- # copy_data(:config, @root/:data) unless File.exist?(@root/"data/VIEW")
121
- write_repo_config(root: @root)
123
+ write_repo_config(root: @root) # ?? FIXME
122
124
  get_repo_config
123
125
  @views = retrieve_views
124
126
  self.view = File.read(@root/"data/VIEW").chomp
@@ -132,16 +134,67 @@ class RuneBlog
132
134
  @post_tags = []
133
135
  end
134
136
 
137
+ def complete_file(name, vars, hash)
138
+ debugging = vars.nil?
139
+ return if hash.empty?
140
+ text = File.read(name)
141
+ if vars.nil? # FIXME dumbest hack ever?
142
+ vars = {}
143
+ hash.values.each {|val| vars[val] = val }
144
+ end
145
+
146
+ hash.each_pair {|key, var| text.gsub!(key, vars[var]) }
147
+ File.write(name, text)
148
+ end
149
+
150
+ def _generate_settings(view = nil)
151
+ vars = read_vars("#@root/data/universal.lt3")
152
+ hash = {/AUTHOR/ => "view.author",
153
+ /SITE/ => "view.site",
154
+ /FONT/ => "font.family",
155
+ /CHARSET/ => :charset,
156
+ /LOCALE/ => :locale}
157
+
158
+ # rubytext.txt - LATER
159
+ # complete_file(settings/"rubytext.txt", {}
160
+
161
+ if view
162
+ settings = @root/view/"settings"
163
+ ### ??? Where to get hash of view-specific vars?
164
+
165
+ # features.txt - handle specially
166
+ fname = settings/"features.txt"
167
+
168
+ # view.txt
169
+ complete_file(settings/"view.txt",
170
+ /AUTHOR/ => "view.author",
171
+ /TITLE/ => "view.title",
172
+ /SUBTITLE/ => "view.subtitle",
173
+ /SITE/ => "view.site")
174
+
175
+ # publish.txt
176
+ complete_file(settings/"publish.txt",
177
+ /USER/ => "publish.user",
178
+ /SERVER/ => "publish.server",
179
+ /DOCROOT/ => "publish.docroot",
180
+ /PATH/ => "publish.path",
181
+ /PROTO/ => "publish.proto")
182
+
183
+ # recent.txt - SKIP THIS?
184
+ complete_file(settings/"recent.txt", {})
185
+ end
186
+ end
187
+
135
188
  def _generate_global
136
189
  vars = read_vars("#@root/data/universal.lt3")
137
190
  gfile = "#@root/data/global.lt3"
138
- global = File.read(gfile)
139
- global.gsub!(/AUTHOR/, vars["author"])
140
- global.gsub!(/SITE/, vars["site"])
141
- global.gsub!(/FONT/, vars["font.family"])
142
- global.gsub!(/CHARSET/, vars["charset"])
143
- global.gsub!(/LOCALE/, vars["locale"])
144
- File.write(gfile, global)
191
+ hash = {/AUTHOR/ => "univ.author",
192
+ /SITE/ => "univ.site",
193
+ /FONT/ => "font.family",
194
+ /CHARSET/ => :charset,
195
+ /LOCALE/ => :locale}
196
+ complete_file(gfile, vars, hash)
197
+ _generate_settings
145
198
  end
146
199
 
147
200
  def _deploy_local(dir)
@@ -149,10 +202,7 @@ class RuneBlog
149
202
  Dir.chdir(dir) do
150
203
  views = _retrieve_metadata(:views)
151
204
  views.each do |v|
152
- unless self.view?(v)
153
- puts "#{fx("Warning:", :red)} #{fx(v, :bold)} is not a view"
154
- next
155
- end
205
+ next unless _check_view?(v)
156
206
  system!("cp *html #@root/views/#{v}/remote", show: true)
157
207
  end
158
208
  end
@@ -160,6 +210,8 @@ class RuneBlog
160
210
  _tmp_error(err)
161
211
  end
162
212
 
213
+ # FIXME reconcile with _get_draft data
214
+
163
215
  def _retrieve_metadata(key)
164
216
  key = key.to_s
165
217
  lines = File.readlines("metadata.txt")
@@ -191,7 +243,7 @@ class RuneBlog
191
243
  dir = @root/:posts/nslug
192
244
  create_dirs(dir)
193
245
  # FIXME dependencies?
194
- preprocess cwd: dir, src: @root/:drafts/sourcefile,
246
+ preprocess cwd: dir, src: @root/:drafts/sourcefile, dst: @root/:posts/sourcefile.sub(/.lt3/, ".html"), # ZZZ
195
247
  mix: "liveblog" # , debug: true
196
248
  _deploy_local(dir)
197
249
  rescue => err
@@ -257,13 +309,13 @@ class RuneBlog
257
309
 
258
310
  def get_sequence
259
311
  log!(enter: __method__, level: 3)
260
- File.read(@root/:sequence).to_i
312
+ File.read(@root/"data/sequence").to_i
261
313
  end
262
314
 
263
315
  def next_sequence
264
316
  log!(enter: __method__, level: 3)
265
317
  @sequence += 1
266
- dump(@sequence, @root/:sequence)
318
+ dump(@sequence, @root/"data/sequence")
267
319
  @sequence
268
320
  end
269
321
 
@@ -371,7 +423,7 @@ class RuneBlog
371
423
  html = "/tmp/post_entry.html"
372
424
  preprocess src: post_entry_name, dst: html,
373
425
  call: ".nopara" # , deps: depend # , debug: true
374
- @_post_entry ||= File.read(html)
426
+ @_post_entry = File.read(html)
375
427
  vp = post_lookup(id)
376
428
  nslug, aslug, title, date, teaser_text =
377
429
  vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
@@ -497,15 +549,14 @@ class RuneBlog
497
549
  @theme/"blog/head.lt3",
498
550
  # @theme/"navbar/navbar.lt3",
499
551
  @theme/"blog/index.lt3"] # FIXME what about assets?
500
- preprocess cwd: vdir/"themes/standard/etc", # deps: depend, debug: true,
501
- src: "blog.css.lt3", copy: vdir/"remote/etc/",
502
- call: ".nopara" # , dst: "blog.css"
552
+ preprocess cwd: vdir/"themes/standard/etc", src: "blog.css.lt3",
553
+ copy: vdir/"remote/etc/", call: [".nopara"], strip: true
503
554
  preprocess cwd: vdir/"themes/standard", deps: depend, force: true,
504
555
  src: "blog/generate.lt3", dst: vdir/:remote/"index.html",
505
556
  call: ".nopara"
506
557
  copy!("#{vdir}/themes/standard/banner/*", "#{vdir}/remote/banner/") # includes navbar/
507
558
  copy("#{vdir}/assets/*", "#{vdir}/remote/assets/")
508
- # rebuild widgets
559
+ # rebuild widgets?
509
560
  copy_widget_html(view)
510
561
  rescue => err
511
562
  STDERR.puts err
@@ -513,6 +564,27 @@ class RuneBlog
513
564
  # _tmp_error(err)
514
565
  end
515
566
 
567
+ def _get_draft_data(num, sym)
568
+ tag = prefix(num)
569
+ front = @blog.root/:drafts/tag
570
+ files = Dir[front + "*"]
571
+ raise "No draft #{num} found" if files.empty?
572
+ raise "Too many files found for #{num}!" if files.size > 1
573
+ file = files.first
574
+ lines = File.readlines(file)
575
+ case sym
576
+ when :views
577
+ view_line = lines.grep(/^.views /)
578
+ raise "More than one .views call in #{draft}" if view_line.size > 1
579
+ raise "No .views call in #{draft}" if view_line.size < 1
580
+ view_line = view_line.first
581
+ views = view_line[7..-1].split
582
+ return views.uniq
583
+ else
584
+ raise "Unknown symbol #{sym.inspect}"
585
+ end
586
+ end
587
+
516
588
  def _get_views(draft)
517
589
  log!(enter: __method__, args: [draft], level: 2)
518
590
  # FIXME dumb code
@@ -602,6 +674,8 @@ class RuneBlog
602
674
  log!(enter: __method__, args: [draft, view_name], level: 2)
603
675
  # break into separate methods?
604
676
 
677
+ return unless _check_view?(view_name)
678
+
605
679
  fname = File.basename(draft) # 0001-this-is-a-post.lt3
606
680
  nslug = fname.sub(/.lt3$/, "") # 0001-this-is-a-post
607
681
  aslug = nslug.sub(/\d\d\d\d-/, "") # this-is-a-post
@@ -626,40 +700,21 @@ class RuneBlog
626
700
  preprocess cwd: @theme/:post, src: "generate.lt3", force: true,
627
701
  dst: remote/ahtml, copy: @theme/:post,
628
702
  call: ".nopara" # , debug: true
629
- # copy(remote/ahtml, remote/permalink/ahtml)
630
- # FIXME dependencies?
631
- # preprocess cwd: @theme/:post, src: "permalink.lt3",
632
- # dst: remote/:permalink/ahtml,
633
- # mix: "liveblog" # , debug: true
634
703
  copy_widget_html(view_name)
635
704
  rescue => err
636
705
  _tmp_error(err)
637
706
  end
638
707
 
639
- def generate_post(draft)
640
- log!(enter: __method__, args: [draft], level: 1)
641
- views = _get_views(draft)
642
- views.each do |view|
643
- unless self.view?(view)
644
- puts "Warning: '#{view}' is not a view"
645
- next
646
- end
647
- _handle_post(draft, view)
648
- end
649
- rescue => err
650
- _tmp_error(err)
708
+ def _check_view?(view)
709
+ flag = self.view?(view)
710
+ puts " Warning: '#{view}' is not a view" unless flag
711
+ flag
651
712
  end
652
713
 
653
- def rebuild_post(file)
654
- log!(enter: __method__, args: [file])
655
- raise "Doesn't currently work"
656
- debug "Called rebuild_post(#{file.inspect})"
657
- raise ArgumentError unless file.is_a?(String)
658
- meta = process_post(file)
659
- @views_dirty ||= []
660
- @views_dirty << meta.views
661
- @views_dirty.flatten!
662
- @views_dirty.uniq!
714
+ def generate_post(draft, force = false)
715
+ log!(enter: __method__, args: [draft], level: 1)
716
+ views = _get_views(draft)
717
+ views.each {|view| _handle_post(draft, view) }
663
718
  rescue => err
664
719
  _tmp_error(err)
665
720
  end
@@ -3,7 +3,7 @@ if !defined?(RuneBlog::Path)
3
3
  # if ! (Object.constants.include?(:RuneBlog) && RuneBlog.constants.include?(:Path))
4
4
 
5
5
  class RuneBlog
6
- VERSION = "0.2.94"
6
+ VERSION = "0.3.01"
7
7
 
8
8
  path = Gem.find_files("runeblog").grep(/runeblog-/).first
9
9
  Path = File.dirname(path)
@@ -15,6 +15,8 @@ class RuneBlog::View
15
15
  @can_publish = true # FIXME
16
16
  @blog.view = self
17
17
  gfile = @blog.root/"views/#{name}/themes/standard/global.lt3"
18
+ return unless File.exist?(gfile) # Hackish!! how is View.new called from create_view??
19
+
18
20
  live = Livetext.customize(call: ".nopara")
19
21
  live.xform_file(gfile)
20
22
  @globals = live.vars
@@ -59,19 +59,17 @@ x = RuneBlog.new(".blogs")
59
59
  debug("create_view: #{bold('around_austin')}")
60
60
  x.create_view("around_austin") # FIXME remember view title!
61
61
 
62
- #### FIXME later!!
63
- vars = <<-VARS
64
-
65
- .variables
66
- blog Around Austin
67
- blog.desc The view from downtown...
62
+ #### FIXME
68
63
 
69
- font.family verdana
70
- .end
64
+ vars = <<-VARS
65
+ author Hal Fulton
66
+ title Around Austin
67
+ subtitle The view from downtown...
68
+ domain foo.com
71
69
  VARS
72
- File.open(".blogs/views/around_austin/themes/standard/global.lt3", "a") do |f|
73
- f.puts vars
74
- end
70
+ vfile = ".blogs/views/around_austin/settings/view.txt"
71
+ File.open(vfile, "w") {|f| f.puts vars }
72
+
75
73
  ####
76
74
 
77
75
  debug("-- change_view: #{bold('around_austin')}")
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.94
4
+ version: 0.3.01
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-12-20 00:00:00.000000000 Z
11
+ date: 2019-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext
@@ -85,10 +85,29 @@ files:
85
85
  - data/EDITOR
86
86
  - data/ROOT
87
87
  - data/VIEW
88
+ - data/features.txt
88
89
  - data/global.lt3
89
90
  - data/universal.lt3
90
91
  - empty_view/assets/austin-pano.jpg
91
92
  - empty_view/assets/sky2.jpg
93
+ - empty_view/config/exper/2svg.lt3
94
+ - empty_view/config/exper/gen_svg.rb
95
+ - empty_view/config/exper/meta.html
96
+ - empty_view/config/exper/s2.html
97
+ - empty_view/config/exper/varmint.rb
98
+ - empty_view/config/facebook/credentials.txt
99
+ - empty_view/config/facebook/facebook.rb
100
+ - empty_view/config/facebook/fb.html
101
+ - empty_view/config/facebook/fb.js.lt3
102
+ - empty_view/config/reddit/credentials.txt
103
+ - empty_view/config/reddit/notes.txt
104
+ - empty_view/config/reddit/reddit_post_url.py
105
+ - empty_view/config/reddit/redpost.rb
106
+ - empty_view/config/reddit/the-graffiti-wall.html
107
+ - empty_view/config/twitter/credentials.txt
108
+ - empty_view/config/twitter/tw.html
109
+ - empty_view/config/twitter/tw.js
110
+ - empty_view/config/twitter/twitter.rb
92
111
  - empty_view/posts/GIT_IS_DUMB
93
112
  - empty_view/remote/assets/GIT_IS_DUMB
94
113
  - empty_view/remote/etc/GIT_IS_DUMB
@@ -98,6 +117,10 @@ files:
98
117
  - empty_view/remote/widgets/news/GIT_IS_DUMB
99
118
  - empty_view/remote/widgets/pages/GIT_IS_DUMB
100
119
  - empty_view/remote/widgets/pinned/GIT_IS_DUMB
120
+ - empty_view/settings/features.txt
121
+ - empty_view/settings/publish.txt
122
+ - empty_view/settings/recent.txt
123
+ - empty_view/settings/view.txt
101
124
  - empty_view/themes/standard/README
102
125
  - empty_view/themes/standard/banner/banner.lt3
103
126
  - empty_view/themes/standard/banner/navbar/about.lt3
@@ -113,7 +136,6 @@ files:
113
136
  - empty_view/themes/standard/etc/externals.lt3
114
137
  - empty_view/themes/standard/etc/favicon.ico
115
138
  - empty_view/themes/standard/etc/misc.js
116
- - empty_view/themes/standard/global.lt3
117
139
  - empty_view/themes/standard/post/generate.lt3
118
140
  - empty_view/themes/standard/post/head.lt3
119
141
  - empty_view/themes/standard/post/index.lt3
@@ -175,13 +197,6 @@ files:
175
197
  - empty_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3
176
198
  - empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb
177
199
  - lib/Javascript.stuff
178
- - lib/exper/2svg.lt3
179
- - lib/exper/callout.js
180
- - lib/exper/fbtw-js
181
- - lib/exper/fbtw.rb
182
- - lib/exper/gen_svg.rb
183
- - lib/exper/s2.html
184
- - lib/exper/varmint.rb
185
200
  - lib/helpers-blog.rb
186
201
  - lib/helpers-repl.rb
187
202
  - lib/liveblog.rb