runeblog 0.1.94 → 0.1.99
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/default.rb +0 -3
- data/lib/helpers-blog.rb +14 -3
- data/lib/liveblog.rb +102 -60
- data/lib/repl.rb +3 -2
- data/lib/runeblog.rb +6 -22
- data/lib/runeblog_version.rb +1 -1
- data/runeblog.gemspec +1 -1
- data/themes/standard/README +31 -31
- data/themes/standard/blog/head.lt3 +2 -3
- data/themes/standard/blog/index.lt3 +3 -1
- data/themes/standard/etc/blog.css.lt3 +36 -0
- data/themes/standard/etc/misc.js +6 -0
- data/themes/standard/global.lt3 +10 -1
- data/themes/standard/navbar/about.html +4 -2
- data/themes/standard/navbar/contact.html +6 -0
- data/themes/standard/post/generate.lt3 +4 -2
- data/themes/standard/post/permalink.lt3 +26 -0
- data/themes/standard/sidebar/README +3 -0
- data/themes/standard/widgets/README +4 -0
- data/themes/standard/widgets/ad/ad.lt3 +11 -0
- data/themes/standard/widgets/ad/ad2.lt3 +12 -0
- data/themes/standard/{sidebar → widgets/calendar}/calendar.lt3 +0 -0
- data/themes/standard/widgets/news/card-news.html +17 -0
- data/themes/standard/widgets/news/list.data +4 -0
- data/themes/standard/widgets/news/main-news.html +9 -0
- data/themes/standard/widgets/news/news.lt3 +4 -0
- data/themes/standard/widgets/pages/README +2 -0
- data/themes/standard/widgets/pages/disclaim.lt3 +6 -0
- data/themes/standard/widgets/pages/faq.lt3 +6 -0
- data/themes/standard/widgets/pages/generated.lt3 +4 -0
- data/themes/standard/widgets/pages/lifestory.lt3 +6 -0
- data/themes/standard/widgets/pages/like-dislike.lt3 +6 -0
- data/themes/standard/widgets/pages/list.data +4 -0
- data/themes/standard/widgets/pages/main.html +9 -0
- data/themes/standard/widgets/pages/main.lt3 +18 -0
- data/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +10 -0
- metadata +27 -13
- data/themes/standard/etc/blog.css +0 -34
- data/themes/standard/liveblog.out +0 -27
- data/themes/standard/meta.lt3 +0 -3
- data/themes/standard/sidebar/ad.lt3 +0 -5
- data/themes/standard/sidebar/news.lt3 +0 -7
- data/themes/standard/sidebar/tag-cloud.lt3 +0 -10
- data/themes/standard/tryme.lt3 +0 -47
- data/themes/standard/vars +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aec5b477d7f2cb604623e089adbaae8bb87d5ddcb784ebc3d2935aa02892e9d1
|
4
|
+
data.tar.gz: f3a03f9555b4bc7a4d9e6149e0cd9606e1d1269ceb184cac04e8d579797647ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2956b5197b0d57215fdf7701eb3369755cdc04494b357b0dbfe538e8614c8f41f643f78cd26e67d6687a925a47b9486f6375af0d3a16810d2598625b7156ae0e
|
7
|
+
data.tar.gz: f788243f1c0c1802ecc99218de1d92f87d51a67093f8d31fbf330a8825b43e8c70f478c6b756c993a295f26c76dbe0dbcd5e7d3a9d4fa39e3b22bd365cc1c482
|
data/lib/default.rb
CHANGED
data/lib/helpers-blog.rb
CHANGED
@@ -12,9 +12,20 @@ module RuneBlog::Helpers
|
|
12
12
|
system("cp -r #{src} #{dst}")
|
13
13
|
end
|
14
14
|
|
15
|
-
def
|
15
|
+
def stale?(src, dst)
|
16
|
+
return true unless File.exist?(dst)
|
17
|
+
return true if File.mtime(src) > File.mtime(dst)
|
18
|
+
return false
|
19
|
+
end
|
20
|
+
|
21
|
+
def livetext(src, dst=nil)
|
16
22
|
src << ".lt3" unless src.end_with?(".lt3")
|
17
|
-
|
23
|
+
if dst
|
24
|
+
dst << ".html" unless dst.end_with?(".html")
|
25
|
+
else
|
26
|
+
dst = src.sub(/.lt3$/, "")
|
27
|
+
end
|
28
|
+
return unless stale?(src, dst)
|
18
29
|
system("livetext #{src} >#{dst}")
|
19
30
|
end
|
20
31
|
|
@@ -65,7 +76,7 @@ module RuneBlog::Helpers
|
|
65
76
|
vals
|
66
77
|
end
|
67
78
|
|
68
|
-
def put_config(root:, view:"test_view", editor: "/bin/vim")
|
79
|
+
def put_config(root:, view:"test_view", editor: "/usr/local/bin/vim")
|
69
80
|
Dir.mkdir(root) unless Dir.exist?(root)
|
70
81
|
Dir.chdir(root) do
|
71
82
|
File.open("config", "w") do |cfg|
|
data/lib/liveblog.rb
CHANGED
@@ -5,7 +5,7 @@ require 'date'
|
|
5
5
|
require 'livetext'
|
6
6
|
require 'runeblog'
|
7
7
|
|
8
|
-
errfile = File.new("liveblog.out", "w")
|
8
|
+
errfile = File.new("/tmp/liveblog.out", "w")
|
9
9
|
STDERR.reopen(errfile)
|
10
10
|
|
11
11
|
def init_liveblog # FIXME - a lot of this logic sucks
|
@@ -28,12 +28,6 @@ def post
|
|
28
28
|
_out " <!-- Post number #{@meta.num} -->\n "
|
29
29
|
end
|
30
30
|
|
31
|
-
def _view_from_cwd
|
32
|
-
md = Dir.pwd.match(%r[.*/views/(.*?)/])
|
33
|
-
return md[1] if md
|
34
|
-
nil
|
35
|
-
end
|
36
|
-
|
37
31
|
def quote
|
38
32
|
_passthru "<blockquote>"
|
39
33
|
_passthru _body
|
@@ -60,11 +54,68 @@ def h6; _passthru "
#{@_data}"; end |
|
60
54
|
|
61
55
|
def hr; _passthru "<hr>"; end
|
62
56
|
|
63
|
-
def
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
57
|
+
def list
|
58
|
+
_out "<ul>"
|
59
|
+
_body {|line| _out "<li>#{line}</li>" }
|
60
|
+
_out "</ul>"
|
61
|
+
_optional_blank_line
|
62
|
+
end
|
63
|
+
|
64
|
+
def list!
|
65
|
+
_out "<ul>"
|
66
|
+
lines = _body.each
|
67
|
+
loop do
|
68
|
+
line = lines.next
|
69
|
+
line = _format(line)
|
70
|
+
if line[0] == " "
|
71
|
+
_out line
|
72
|
+
else
|
73
|
+
_out "<li>#{line}</li>"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
_out "</ul>"
|
77
|
+
_optional_blank_line
|
78
|
+
end
|
79
|
+
|
80
|
+
def html_body(file)
|
81
|
+
file.puts "<html>\n <body>"
|
82
|
+
yield
|
83
|
+
file.puts " </body>\n</html>"
|
84
|
+
end
|
85
|
+
|
86
|
+
def make_magic_links
|
87
|
+
# FIXME remember strings may not be safe
|
88
|
+
line = _data.chomp
|
89
|
+
input, cardfile, mainfile, card_title = *line.split(" ", 4)
|
90
|
+
pairs = File.readlines(input).map {|line| line.chomp.split(",", 2) }
|
91
|
+
# HTML for main area (iframe)
|
92
|
+
File.open("#{mainfile}.html", "w") do |f|
|
93
|
+
html_body(f) do
|
94
|
+
f.puts "<h1>#{card_title}</h1>"
|
95
|
+
pairs.each {|file, title| f.puts %[<a href="#{file}">#{title}</a> <br>] }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
# HTML for sidebar card
|
99
|
+
File.open("#{cardfile}.html", "w") do |f|
|
100
|
+
f.puts <<-EOS
|
101
|
+
<div class="card mb-3">
|
102
|
+
<div class="card-body">
|
103
|
+
<h5 class="card-title">
|
104
|
+
<a href="javascript: void(0)"
|
105
|
+
onclick="javascript:open_main('#{mainfile}')"
|
106
|
+
style="text-decoration: none; color: black">#{card_title}</a>
|
107
|
+
</h5>
|
108
|
+
EOS
|
109
|
+
pairs.each do |file, title|
|
110
|
+
f.puts <<-EOS
|
111
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
112
|
+
onclick="javascript:open_main('#{file}')">#{title}</a> </li>
|
113
|
+
EOS
|
114
|
+
end
|
115
|
+
f.puts <<-EOS
|
116
|
+
</div>
|
117
|
+
</div>
|
118
|
+
EOS
|
68
119
|
end
|
69
120
|
end
|
70
121
|
|
@@ -164,29 +215,6 @@ def pin
|
|
164
215
|
_optional_blank_line
|
165
216
|
end
|
166
217
|
|
167
|
-
def list
|
168
|
-
_out "<ul>"
|
169
|
-
_body {|line| _out "<li>#{line}</li>" }
|
170
|
-
_out "</ul>"
|
171
|
-
_optional_blank_line
|
172
|
-
end
|
173
|
-
|
174
|
-
def list!
|
175
|
-
_out "<ul>"
|
176
|
-
lines = _body.each
|
177
|
-
loop do
|
178
|
-
line = lines.next
|
179
|
-
line = _format(line)
|
180
|
-
if line[0] == " "
|
181
|
-
_out line
|
182
|
-
else
|
183
|
-
_out "<li>#{line}</li>"
|
184
|
-
end
|
185
|
-
end
|
186
|
-
_out "</ul>"
|
187
|
-
_optional_blank_line
|
188
|
-
end
|
189
|
-
|
190
218
|
def write_post
|
191
219
|
raise "'post' was not called" unless @meta
|
192
220
|
save = Dir.pwd
|
@@ -277,6 +305,8 @@ class Livetext::Functions
|
|
277
305
|
end
|
278
306
|
end
|
279
307
|
|
308
|
+
###
|
309
|
+
|
280
310
|
def _var(name) # FIXME scope issue!
|
281
311
|
::Livetext::Vars[name] || "[:#{name} is undefined]"
|
282
312
|
end
|
@@ -291,12 +321,12 @@ def head # Does NOT output tags
|
|
291
321
|
defaults = {}
|
292
322
|
defaults = { "charset" => %[<meta charset="utf-8">],
|
293
323
|
"http-equiv" => %[<meta http-equiv="X-UA-Compatible" content="IE=edge">],
|
294
|
-
"title" => %[<title>\n #{_var(:blog)} | #{_var(
|
324
|
+
"title" => %[<title>\n #{_var(:blog)} | #{_var("blog.desc")}\n </title>],
|
295
325
|
"generator" => %[<meta name="generator" content="Runeblog v #@version">],
|
296
326
|
"og:title" => %[<meta property="og:title" content="#{_var(:blog)}">],
|
297
327
|
"og:locale" => %[<meta property="og:locale" content="#{_var(:locale)}">],
|
298
|
-
"description" => %[<meta name="description" content="#{_var(
|
299
|
-
"og:description" => %[<meta property="og:description" content="#{_var(
|
328
|
+
"description" => %[<meta name="description" content="#{_var("blog.desc")}">],
|
329
|
+
"og:description" => %[<meta property="og:description" content="#{_var("blog.desc")}">],
|
300
330
|
"linkc" => %[<link rel="canonical" href="#{_var(:host)}">],
|
301
331
|
"og:url" => %[<meta property="og:url" content="#{_var(:host)}">],
|
302
332
|
"og:site_name" => %[<meta property="og:site_name" content="#{_var(:blog)}">],
|
@@ -367,9 +397,12 @@ end
|
|
367
397
|
def sidebar
|
368
398
|
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
369
399
|
_body do |line|
|
370
|
-
tag = line.chomp.strip
|
371
|
-
|
372
|
-
|
400
|
+
tag = line.chomp.strip.downcase
|
401
|
+
Dir.chdir("widgets/#{tag}") do
|
402
|
+
source = "#{tag}.lt3"
|
403
|
+
livetext source, "/dev/null"
|
404
|
+
_include_file "card-#{source}.html"
|
405
|
+
end
|
373
406
|
end
|
374
407
|
_out %[</div>]
|
375
408
|
end
|
@@ -378,8 +411,11 @@ def sidebar!
|
|
378
411
|
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
379
412
|
_args do |line|
|
380
413
|
tag = line.chomp.strip
|
381
|
-
|
382
|
-
|
414
|
+
source = "sidebar/#{tag.downcase}.lt3"
|
415
|
+
unless File.exist?(source)
|
416
|
+
source = "widgets/#{tag.downcase}/main.lt3"
|
417
|
+
end
|
418
|
+
_include_file source
|
383
419
|
end
|
384
420
|
_out %[</div>]
|
385
421
|
end
|
@@ -451,7 +487,7 @@ def all_teasers
|
|
451
487
|
end
|
452
488
|
text << "</body></html>"
|
453
489
|
File.write("recent.html", text)
|
454
|
-
_out %[<iframe style="width: 100vw;height: 100vh;position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
490
|
+
_out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
455
491
|
end
|
456
492
|
|
457
493
|
def _post_lookup(postid) # side-effect
|
@@ -512,7 +548,7 @@ def card_iframe
|
|
512
548
|
stuff = lines[1..-1].join(" ") # FIXME later
|
513
549
|
middle = <<-HTML
|
514
550
|
<iframe src="#{url}" #{stuff}
|
515
|
-
style="border: 0"
|
551
|
+
style="border: 0" #{stuff}
|
516
552
|
frameborder="0" scrolling="no">
|
517
553
|
</iframe>
|
518
554
|
HTML
|
@@ -520,23 +556,30 @@ def card_iframe
|
|
520
556
|
_card_generic(card_title: title, middle: middle, extra: "bg-dark text-white")
|
521
557
|
end
|
522
558
|
|
559
|
+
def _main(url)
|
560
|
+
%[href="javascript: void(0)" onclick="javascript:open_main('#{url}')"]
|
561
|
+
end
|
562
|
+
|
523
563
|
def card1
|
524
564
|
title, lines = _data, _body
|
525
565
|
lines.map!(&:chomp)
|
526
566
|
|
527
567
|
card_text = lines[0]
|
528
|
-
url,
|
568
|
+
url, classname, cdata = lines[1].split(",", 4)
|
569
|
+
main = _main(url)
|
529
570
|
|
530
571
|
middle = <<-HTML
|
531
572
|
<p class="card-text">#{card_text}</p>
|
532
|
-
<a
|
573
|
+
<a #{main} class="#{classname}">#{cdata}</a>
|
533
574
|
HTML
|
534
575
|
|
535
576
|
_card_generic(card_title: title, middle: middle, extra: "bg-dark text-white")
|
536
577
|
end
|
537
578
|
|
538
579
|
def card2
|
539
|
-
|
580
|
+
str = _data
|
581
|
+
file, card_title = str.chomp.split(" ", 2)
|
582
|
+
card_title = %[<a #{_main(file)} style="text-decoration: none; color: black">#{card_title}</a>]
|
540
583
|
|
541
584
|
# FIXME is this wrong??
|
542
585
|
|
@@ -544,18 +587,16 @@ def card2
|
|
544
587
|
<div class="card mb-3">
|
545
588
|
<div class="card-body">
|
546
589
|
<h5 class="card-title">#{card_title}</h5>
|
547
|
-
</div>
|
548
590
|
<ul class="list-group list-group-flush">
|
549
591
|
HTML
|
550
592
|
_out open
|
551
593
|
_body do |line|
|
552
|
-
url,
|
553
|
-
|
594
|
+
url, cdata = line.chomp.split(",", 3)
|
595
|
+
main = _main(url)
|
596
|
+
_out %[<li class="list-group-item"><a #{main}}">#{cdata}</a> </li>]
|
554
597
|
end
|
555
|
-
close = %[ </ul>\n </div>]
|
598
|
+
close = %[ </ul>\n </div>\n </div>]
|
556
599
|
_out close
|
557
|
-
rescue
|
558
|
-
puts @live.body
|
559
600
|
end
|
560
601
|
|
561
602
|
def tag_cloud
|
@@ -569,15 +610,15 @@ def tag_cloud
|
|
569
610
|
_out open
|
570
611
|
_body do |line|
|
571
612
|
line.chomp!
|
572
|
-
url,
|
573
|
-
|
613
|
+
url, classname, cdata = line.split(",", 4)
|
614
|
+
main = _main(url)
|
615
|
+
_out %[<a #{main} class="#{classname}">#{cdata}</a>]
|
574
616
|
end
|
575
|
-
rescue
|
576
|
-
puts @live.body
|
577
617
|
end
|
578
618
|
|
579
619
|
def navbar
|
580
620
|
title = _var(:blog)
|
621
|
+
|
581
622
|
open = <<-HTML
|
582
623
|
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
583
624
|
<a class="navbar-brand" href="index.html">#{title}</a>
|
@@ -590,7 +631,6 @@ def navbar
|
|
590
631
|
aria-label="Toggle navigation">
|
591
632
|
<span class="navbar-toggler-icon"></span>
|
592
633
|
</button>
|
593
|
-
|
594
634
|
<div class="collapse navbar-collapse pull-right"
|
595
635
|
id="navbarSupportedContent">
|
596
636
|
<ul class="navbar-nav mr-auto">
|
@@ -605,11 +645,13 @@ def navbar
|
|
605
645
|
_out open
|
606
646
|
_body do |line|
|
607
647
|
href, cdata = line.chomp.strip.split(" ", 2)
|
648
|
+
main = _main(href)
|
608
649
|
if first
|
609
650
|
first = false
|
610
651
|
_out %[<li class="nav-item active"> <a class="nav-link" href="#{href}">#{cdata}<span class="sr-only">(current)</span></a> </li>]
|
611
652
|
else
|
612
|
-
|
653
|
+
main = _main("navbar/#{href}")
|
654
|
+
_out %[<li class="nav-item"> <a class="nav-link" #{main}>#{cdata}</a> </li>]
|
613
655
|
end
|
614
656
|
end
|
615
657
|
_out close
|
data/lib/repl.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
-
|
1
|
+
require 'runeblog'
|
2
2
|
require 'global'
|
3
3
|
require 'ostruct'
|
4
4
|
require 'helpers-repl' # FIXME structure
|
5
5
|
|
6
6
|
make_exception(:PublishError, "Error during publishing")
|
7
|
-
|
7
|
+
make_exception(:EditorProblem, "Could not edit $1")
|
8
8
|
|
9
9
|
module RuneBlog::REPL
|
10
10
|
|
11
11
|
def edit_file(file)
|
12
12
|
result = system("#{@blog.editor} #{file}")
|
13
|
+
STDERR.puts "editor = #{@blog.editor} FILE = #{file}"
|
13
14
|
raise EditorProblem(file) unless result
|
14
15
|
sleep 0.1
|
15
16
|
STDSCR.clear
|
data/lib/runeblog.rb
CHANGED
@@ -177,7 +177,8 @@ class RuneBlog
|
|
177
177
|
x = RuneBlog::Default
|
178
178
|
copy!("#{Themes}", "themes")
|
179
179
|
create_dirs(:assets, :posts)
|
180
|
-
create_dirs(:staging,
|
180
|
+
create_dirs(:staging, "remote/permalink", "remote/navbar")
|
181
|
+
livetext "themes/standard/etc/blog.css.lt3" # strip ext
|
181
182
|
copy!("themes/standard/*", "staging/")
|
182
183
|
copy!("themes/standard/etc", "remote/")
|
183
184
|
copy!("themes/standard/assets", "remote/")
|
@@ -185,8 +186,6 @@ class RuneBlog
|
|
185
186
|
pub = "user: xxx\nserver: xxx\ndocroot: xxx\npath: xxx\nproto: xxx\n"
|
186
187
|
dump(pub, "publish")
|
187
188
|
|
188
|
-
# Add to global.lt3 here? FIXME
|
189
|
-
|
190
189
|
view = RuneBlog::View.new(arg)
|
191
190
|
self.view = view
|
192
191
|
vdir = self.view.dir
|
@@ -212,14 +211,6 @@ class RuneBlog
|
|
212
211
|
files.reject! {|f| File.mtime(f) < File.mtime("#{vdir}/last_published") }
|
213
212
|
end
|
214
213
|
|
215
|
-
def files_by_id(id) # FIXME get rid of this later
|
216
|
-
raise ArgumentError unless id.is_a?(Integer)
|
217
|
-
files = Find.find(self.view.dir).to_a
|
218
|
-
tag = prefix(id)
|
219
|
-
result = files.grep(/#{tag}-/)
|
220
|
-
result
|
221
|
-
end
|
222
|
-
|
223
214
|
def post_lookup(postid) # side-effect?
|
224
215
|
# .. = templates, ../.. = views/thisview
|
225
216
|
slug = title = date = teaser_text = nil
|
@@ -278,11 +269,10 @@ class RuneBlog
|
|
278
269
|
text << "</body></html>"
|
279
270
|
File.write(file, text) # FIXME ???
|
280
271
|
iframe_text = <<-HTML
|
281
|
-
<iframe style="width: 100vw;height: 100vh;position: relative;"
|
272
|
+
<iframe name="main" style="width: 100vw;height: 100vh;position: relative;"
|
282
273
|
src='recent.html' width=100% frameborder="0" allowfullscreen>
|
283
274
|
</iframe>
|
284
275
|
HTML
|
285
|
-
# _out iframe_text # FIXME ??
|
286
276
|
end
|
287
277
|
|
288
278
|
def create_new_post(title, testing = false, teaser: nil, body: nil, other_views: [])
|
@@ -392,12 +382,10 @@ class RuneBlog
|
|
392
382
|
lt3 = draft.split("/")[-1]
|
393
383
|
# Remember: Some posts may be in more than one view -- careful with links back
|
394
384
|
# system("livetext #{draft} >staging/#{name}/index.html") # permalink?
|
395
|
-
# Structure is borked?
|
396
385
|
copy!("#{@theme}/*", "#{staging}")
|
397
386
|
copy(lt3, staging)
|
398
387
|
html = noext[5..-1]
|
399
388
|
livetext draft, html
|
400
|
-
STDERR.puts "pwd = #{Dir.pwd}"
|
401
389
|
copy(draft, "../../staging/post/index.html")
|
402
390
|
title_line = File.readlines(draft).grep(/^.title /).first
|
403
391
|
title = title_line.split(" ", 2)[1]
|
@@ -408,8 +396,10 @@ STDERR.puts "pwd = #{Dir.pwd}"
|
|
408
396
|
File.open("vars.lt3", "w") {|f| f.puts vars }
|
409
397
|
livetext "post/generate.lt3", html
|
410
398
|
copy html, "../remote"
|
399
|
+
livetext "post/permalink.lt3", "../remote/permalink/#{html}"
|
411
400
|
collect_recent_posts("recent.html")
|
412
401
|
copy("recent.html", "../remote")
|
402
|
+
copy!("navbar/*html", "../remote/navbar/")
|
413
403
|
livetext "blog/generate", "../remote/index"
|
414
404
|
end
|
415
405
|
end
|
@@ -425,7 +415,7 @@ STDERR.puts "pwd = #{Dir.pwd}"
|
|
425
415
|
check_meta(meta, "index_entry1")
|
426
416
|
raise ArgumentError unless view.is_a?(String) || view.is_a?(RuneBlog::View)
|
427
417
|
check_meta(meta, "index_entry2")
|
428
|
-
self.make_slug(meta)
|
418
|
+
self.make_slug(meta)
|
429
419
|
check_meta(meta, "index_entry3")
|
430
420
|
# FIXME clean up and generalize
|
431
421
|
ref = "#{view}/#{meta.slug}/index.html"
|
@@ -490,12 +480,6 @@ STDERR.puts "pwd = #{Dir.pwd}"
|
|
490
480
|
system("rm -rf #@root/drafts/#{tag}-*")
|
491
481
|
end
|
492
482
|
|
493
|
-
def post_exists?(num)
|
494
|
-
raise ArgumentError unless num.is_a?(Integer)
|
495
|
-
list = files_by_id(num) # FIXME search under view dirs
|
496
|
-
list.empty? ? nil : list
|
497
|
-
end
|
498
|
-
|
499
483
|
def make_slug(meta)
|
500
484
|
raise ArgumentError unless meta.title.is_a?(String)
|
501
485
|
label = '%04d' % meta.num # FIXME can do better
|
data/lib/runeblog_version.rb
CHANGED
data/runeblog.gemspec
CHANGED
@@ -20,7 +20,7 @@ spec = Gem::Specification.new do |s|
|
|
20
20
|
s.authors = ["Hal Fulton"]
|
21
21
|
s.email = 'rubyhacker@gmail.com'
|
22
22
|
s.executables << "blog"
|
23
|
-
s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.
|
23
|
+
s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.92'
|
24
24
|
s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.16'
|
25
25
|
|
26
26
|
# Files...
|
data/themes/standard/README
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
New
|
1
|
+
New structure:
|
2
2
|
|
3
|
-
|
4
|
-
├── README
|
5
|
-
├── assets
|
6
|
-
├── banner
|
7
|
-
├── blog
|
8
|
-
│ ├── generate.lt3
|
9
|
-
│ ├── head.lt3
|
10
|
-
│ ├── index.lt3
|
11
|
-
│ └── post_entry.lt3
|
12
|
-
├── etc
|
13
|
-
│ ├── blog.css
|
14
|
-
│ ├── externals.lt3
|
15
|
-
│ └── favicon.ico
|
16
|
-
├── global.lt3
|
17
|
-
├──
|
18
|
-
├──
|
19
|
-
|
20
|
-
├──
|
21
|
-
|
22
|
-
│
|
23
|
-
├──
|
24
|
-
├──
|
25
|
-
│
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
├── news.lt3
|
32
|
-
└── tag-cloud.lt3
|
3
|
+
themes/standard The first "default theme" - more later
|
4
|
+
├── README This file
|
5
|
+
├── assets Assets (images/videos/etc) for entire view
|
6
|
+
├── banner Top banner for the view
|
7
|
+
├── blog All files/info for view
|
8
|
+
│ ├── generate.lt3 Generate index.html from wrapper (rarely edited)
|
9
|
+
│ ├── head.lt3 Header info for index.html
|
10
|
+
│ ├── index.lt3 "Guts" of view (user-edited, wrapped by generate.lt3)
|
11
|
+
│ └── post_entry.lt3
|
12
|
+
├── etc
|
13
|
+
│ ├── blog.css
|
14
|
+
│ ├── externals.lt3
|
15
|
+
│ └── favicon.ico
|
16
|
+
├── global.lt3
|
17
|
+
├── navbar
|
18
|
+
│ ├── about.html
|
19
|
+
│ └── navbar.lt3
|
20
|
+
├── pages
|
21
|
+
├── post
|
22
|
+
│ ├── generate.lt3
|
23
|
+
│ ├── head.lt3
|
24
|
+
│ ├── index.lt3
|
25
|
+
│ └── permalink.lt3
|
26
|
+
└── sidebar
|
27
|
+
├── ad.lt3
|
28
|
+
├── calendar.lt3
|
29
|
+
├── news.lt3
|
30
|
+
└── tag-cloud.lt3
|
33
31
|
|
34
32
|
|
33
|
+
Old structure:
|
34
|
+
|
35
35
|
templates The first "default theme" - more later
|
36
36
|
├── README This file
|
37
37
|
├── about.html An "about" file (will move)
|
@@ -0,0 +1,36 @@
|
|
1
|
+
.nopara
|
2
|
+
.include themes/standard/global.lt3
|
3
|
+
|
4
|
+
\.post-title a {
|
5
|
+
color: $post.title.color;
|
6
|
+
font-size: $post.title.size;
|
7
|
+
float: right;
|
8
|
+
display: inline-block;
|
9
|
+
text-align: top;
|
10
|
+
text-decoration: none;
|
11
|
+
}
|
12
|
+
|
13
|
+
\.post-title a:hover {
|
14
|
+
text-decoration: none;
|
15
|
+
}
|
16
|
+
|
17
|
+
\.post-title-text a {
|
18
|
+
color: $post.text.color;
|
19
|
+
font-size: $post.text.size;
|
20
|
+
# float: right;
|
21
|
+
display: block;
|
22
|
+
text-decoration: none;
|
23
|
+
}
|
24
|
+
|
25
|
+
\.post-title-text a:hover {
|
26
|
+
text-decoration: none;
|
27
|
+
}
|
28
|
+
|
29
|
+
\.post-date {
|
30
|
+
color: $post.date.color;
|
31
|
+
font-size: $post.date.size;
|
32
|
+
display: block;
|
33
|
+
float: left;
|
34
|
+
text-align: top;
|
35
|
+
}
|
36
|
+
|
data/themes/standard/global.lt3
CHANGED
@@ -1,12 +1,21 @@
|
|
1
1
|
.variables
|
2
2
|
author Hal Fulton
|
3
3
|
blog My Blog (and Welcome To It)
|
4
|
-
|
4
|
+
blog.desc All the stuff you never needed to know
|
5
5
|
host localhost:4000//
|
6
6
|
charset utf-8
|
7
7
|
site rubyhacker.com
|
8
8
|
url localhost:4000//
|
9
9
|
locale en_US
|
10
|
+
|
11
|
+
post.title.color #010101
|
12
|
+
post.title.size 28px
|
13
|
+
|
14
|
+
post.text.color #0101a1
|
15
|
+
post.text.size 22px
|
16
|
+
|
17
|
+
post.date.color #9a9a9a
|
18
|
+
post.date.size 15px
|
10
19
|
.end
|
11
20
|
|
12
21
|
. Maybe move publish info here?
|
@@ -6,10 +6,9 @@
|
|
6
6
|
<!-- Editing this file is not recommended. -->
|
7
7
|
<!-- It was generated from $File on $$date. -->
|
8
8
|
|
9
|
-
.include meta.lt3
|
10
9
|
.include global.lt3
|
11
|
-
|
12
10
|
.include vars.lt3
|
11
|
+
|
13
12
|
.head
|
14
13
|
og:title $title
|
15
14
|
description $teaser
|
@@ -20,5 +19,8 @@ description $teaser
|
|
20
19
|
$.include post/index.html
|
21
20
|
</div>
|
22
21
|
</section>
|
22
|
+
|
23
|
+
<br>
|
24
|
+
<a href="javascript:history.go(-1)">[Back]</a>
|
23
25
|
</body>
|
24
26
|
</html>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
.mixin liveblog
|
2
|
+
|
3
|
+
. FIXME?
|
4
|
+
|
5
|
+
<html>
|
6
|
+
<!-- Editing this file is not recommended. -->
|
7
|
+
<!-- It was generated from $File on $$date. -->
|
8
|
+
|
9
|
+
.include global.lt3
|
10
|
+
.include vars.lt3
|
11
|
+
|
12
|
+
.head
|
13
|
+
og:title $title
|
14
|
+
description $teaser
|
15
|
+
.end
|
16
|
+
|
17
|
+
<section class="post">
|
18
|
+
<div class="entry-content">
|
19
|
+
$.include post/index.html
|
20
|
+
</div>
|
21
|
+
</section>
|
22
|
+
|
23
|
+
<br>
|
24
|
+
<a href="../index.html">[Home: $blog]</a>
|
25
|
+
</body>
|
26
|
+
</html>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
. This is the "card" (sidebar) version.
|
2
|
+
|
3
|
+
. In real life, there may be complex code here
|
4
|
+
. referencing some advertiser or ad network
|
5
|
+
. which will bring up a random ad.
|
6
|
+
|
7
|
+
.card1 Advertisement
|
8
|
+
Build your amazing website with blabla.com.
|
9
|
+
https://google.com/,btn btn-light float-right,Visit Page
|
10
|
+
.end
|
11
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
.set classname="btn btn-light float-right"
|
2
|
+
.set card.title="Advertisement"
|
3
|
+
.set card.text="Build your amazing website with blabla.com."
|
4
|
+
.set extra="bg-dark text-white"
|
5
|
+
|
6
|
+
<div class="card #{_var[:extra]} mb-3">
|
7
|
+
<div class="card-body">
|
8
|
+
<h5 class="card-title">#{_var["card.title"]}</h5>
|
9
|
+
<p class="card-text">#{_var["card.text"]}</p>
|
10
|
+
<a #{main} class="#{classname}">#{_var["card.text"]}</a>
|
11
|
+
</div>
|
12
|
+
</div>
|
File without changes
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="card mb-3">
|
2
|
+
<div class="card-body">
|
3
|
+
<h5 class="card-title">
|
4
|
+
<a href="javascript: void(0)"
|
5
|
+
onclick="javascript:open_main('main-news')"
|
6
|
+
style="text-decoration: none; color: black">Recent News</a>
|
7
|
+
</h5>
|
8
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
9
|
+
onclick="javascript:open_main('https://techcrunch.com/2019/09/16/fossa-scores-8-5-million-series-a-to-help-enterprise-manage-open-source-licenses/')">FOSSA scores \$8.5 million Series A to help enterprise manage open-source licenses</a> </li>
|
10
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
11
|
+
onclick="javascript:open_main('https://techcrunch.com/2019/09/17/spacexs-orbital-starship-prototype-construction-progress-detailed-in-new-photos/')">SpaceX’s orbital Starship prototype construction progress detailed in new photos</a> </li>
|
12
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
13
|
+
onclick="javascript:open_main('https://developers.googleblog.com/2019/05/Flutter-io19.html')">Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop</a> </li>
|
14
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
15
|
+
onclick="javascript:open_main('https://jaycarlson.net/microcontrollers/')">The Amazing \$1 Microcontroller (2017)</a> </li>
|
16
|
+
</div>
|
17
|
+
</div>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
https://techcrunch.com/2019/09/16/fossa-scores-8-5-million-series-a-to-help-enterprise-manage-open-source-licenses/,FOSSA scores \$8.5 million Series A to help enterprise manage open-source licenses
|
2
|
+
https://techcrunch.com/2019/09/17/spacexs-orbital-starship-prototype-construction-progress-detailed-in-new-photos/,SpaceX’s orbital Starship prototype construction progress detailed in new photos
|
3
|
+
https://developers.googleblog.com/2019/05/Flutter-io19.html,Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop
|
4
|
+
https://jaycarlson.net/microcontrollers/,The Amazing \$1 Microcontroller (2017)
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<html>
|
2
|
+
<body>
|
3
|
+
<h1>Recent News</h1>
|
4
|
+
<a href="https://techcrunch.com/2019/09/16/fossa-scores-8-5-million-series-a-to-help-enterprise-manage-open-source-licenses/">FOSSA scores \$8.5 million Series A to help enterprise manage open-source licenses</a> <br>
|
5
|
+
<a href="https://techcrunch.com/2019/09/17/spacexs-orbital-starship-prototype-construction-progress-detailed-in-new-photos/">SpaceX’s orbital Starship prototype construction progress detailed in new photos</a> <br>
|
6
|
+
<a href="https://developers.googleblog.com/2019/05/Flutter-io19.html">Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop</a> <br>
|
7
|
+
<a href="https://jaycarlson.net/microcontrollers/">The Amazing \$1 Microcontroller (2017)</a> <br>
|
8
|
+
</body>
|
9
|
+
</html>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.card_iframe
|
2
|
+
<h1>Pages</h1>
|
3
|
+
|
4
|
+
.def make_links
|
5
|
+
pairs = File.readlines("list.data").map {|line| line.chomp.split(" ", 2) }
|
6
|
+
File.open("generated.lt3", "w") do |f|
|
7
|
+
pairs.each do |file, title|
|
8
|
+
f.puts <<-EOS
|
9
|
+
<a href="#{file}">#{title}</a> <br>
|
10
|
+
EOS
|
11
|
+
end
|
12
|
+
end
|
13
|
+
.end
|
14
|
+
|
15
|
+
.make_links
|
16
|
+
|
17
|
+
.include generated.lt3
|
18
|
+
.end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.tag_cloud
|
2
|
+
https://google.com/,btn btn-dark m-1,Programming
|
3
|
+
https://google.com/,btn btn-danger m-1,Science Fiction
|
4
|
+
https://google.com/,btn btn-light m-1,Art
|
5
|
+
https://google.com/,btn btn-dark m-1,Robotics
|
6
|
+
https://google.com/,btn btn-warning m-1,Food and Travel
|
7
|
+
https://google.com/,btn btn-light m-1,DIY Hacks
|
8
|
+
https://google.com/,btn btn-info m-1,Surfing
|
9
|
+
.end
|
10
|
+
|
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.99
|
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-09-
|
11
|
+
date: 2019-09-19 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.8'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.8.
|
22
|
+
version: 0.8.92
|
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.8'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.8.
|
32
|
+
version: 0.8.92
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rubytext
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,23 +82,37 @@ files:
|
|
82
82
|
- themes/standard/blog/head.lt3
|
83
83
|
- themes/standard/blog/index.lt3
|
84
84
|
- themes/standard/blog/post_entry.lt3
|
85
|
-
- themes/standard/etc/blog.css
|
85
|
+
- themes/standard/etc/blog.css.lt3
|
86
86
|
- themes/standard/etc/externals.lt3
|
87
87
|
- themes/standard/etc/favicon.ico
|
88
|
+
- themes/standard/etc/misc.js
|
88
89
|
- themes/standard/global.lt3
|
89
|
-
- themes/standard/liveblog.out
|
90
|
-
- themes/standard/meta.lt3
|
91
90
|
- themes/standard/navbar/about.html
|
91
|
+
- themes/standard/navbar/contact.html
|
92
92
|
- themes/standard/navbar/navbar.lt3
|
93
93
|
- themes/standard/post/generate.lt3
|
94
94
|
- themes/standard/post/head.lt3
|
95
95
|
- themes/standard/post/index.lt3
|
96
|
-
- themes/standard/
|
97
|
-
- themes/standard/sidebar/
|
98
|
-
- themes/standard/
|
99
|
-
- themes/standard/
|
100
|
-
- themes/standard/
|
101
|
-
- themes/standard/
|
96
|
+
- themes/standard/post/permalink.lt3
|
97
|
+
- themes/standard/sidebar/README
|
98
|
+
- themes/standard/widgets/README
|
99
|
+
- themes/standard/widgets/ad/ad.lt3
|
100
|
+
- themes/standard/widgets/ad/ad2.lt3
|
101
|
+
- themes/standard/widgets/calendar/calendar.lt3
|
102
|
+
- themes/standard/widgets/news/card-news.html
|
103
|
+
- themes/standard/widgets/news/list.data
|
104
|
+
- themes/standard/widgets/news/main-news.html
|
105
|
+
- themes/standard/widgets/news/news.lt3
|
106
|
+
- themes/standard/widgets/pages/README
|
107
|
+
- themes/standard/widgets/pages/disclaim.lt3
|
108
|
+
- themes/standard/widgets/pages/faq.lt3
|
109
|
+
- themes/standard/widgets/pages/generated.lt3
|
110
|
+
- themes/standard/widgets/pages/lifestory.lt3
|
111
|
+
- themes/standard/widgets/pages/like-dislike.lt3
|
112
|
+
- themes/standard/widgets/pages/list.data
|
113
|
+
- themes/standard/widgets/pages/main.html
|
114
|
+
- themes/standard/widgets/pages/main.lt3
|
115
|
+
- themes/standard/widgets/tag-cloud/tag-cloud.lt3
|
102
116
|
homepage: https://github.com/Hal9000/runeblog
|
103
117
|
licenses:
|
104
118
|
- Ruby
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# include variables before this file?
|
2
|
-
|
3
|
-
.post-title a {
|
4
|
-
color: #010101;
|
5
|
-
font-size: 28px;
|
6
|
-
float: right;
|
7
|
-
display: inline-block;
|
8
|
-
text-align: top;
|
9
|
-
text-decoration: none;
|
10
|
-
}
|
11
|
-
|
12
|
-
.post-title a:hover {
|
13
|
-
text-decoration: none;
|
14
|
-
}
|
15
|
-
|
16
|
-
.post-title-text a {
|
17
|
-
color: #0101a1;
|
18
|
-
font-size: 22px;
|
19
|
-
# float: right;
|
20
|
-
display: block;
|
21
|
-
text-decoration: none;
|
22
|
-
}
|
23
|
-
|
24
|
-
.post-title-text a:hover {
|
25
|
-
text-decoration: none;
|
26
|
-
}
|
27
|
-
|
28
|
-
.post-date {
|
29
|
-
color: #9a9a9a;
|
30
|
-
font-size: 15px;
|
31
|
-
display: block;
|
32
|
-
float: left;
|
33
|
-
text-align: top;
|
34
|
-
}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
2
|
-
- about to process global.lt3
|
3
|
-
...finished
|
4
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
5
|
-
- about to process blog/head.lt3
|
6
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
7
|
-
- about to process meta.lt3
|
8
|
-
...finished
|
9
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
10
|
-
- about to process navbar.lt3
|
11
|
-
...finished
|
12
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
13
|
-
- about to process blog-index.lt3
|
14
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
15
|
-
- about to process sidebar/ad.lt3
|
16
|
-
...finished
|
17
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
18
|
-
- about to process sidebar/news.lt3
|
19
|
-
...finished
|
20
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
21
|
-
- about to process sidebar/calendar.lt3
|
22
|
-
...finished
|
23
|
-
In /Users/Hal/Dropbox/files/runeblog/themes/standard
|
24
|
-
- about to process sidebar/tag-cloud.lt3
|
25
|
-
...finished
|
26
|
-
...finished
|
27
|
-
...finished
|
data/themes/standard/meta.lt3
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
.card2 Recent News
|
2
|
-
https://nest.com/whats-happening/,_blank,Google Is Turning Off the Works-with-Nest API
|
3
|
-
https://developers.googleblog.com/2019/05/Flutter-io19.html,_blank,Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop
|
4
|
-
https://github.com/kkuchta/css-only-chat,_blank,Css-only-chat: A truly monstrous async web chat using no JS on the front end
|
5
|
-
https://jaycarlson.net/microcontrollers/,_blank,The Amazing $1 Microcontroller (2017)
|
6
|
-
.end
|
7
|
-
|
@@ -1,10 +0,0 @@
|
|
1
|
-
.tag_cloud
|
2
|
-
https://google.com/,_blank,btn btn-dark m-1,Programming
|
3
|
-
https://google.com/,_blank,btn btn-danger m-1,Science Fiction
|
4
|
-
https://google.com/,_blank,btn btn-light m-1,Art
|
5
|
-
https://google.com/,_blank,btn btn-dark m-1,Robotics
|
6
|
-
https://google.com/,_blank,btn btn-warning m-1,Food and Travel
|
7
|
-
https://google.com/,_blank,btn btn-light m-1,DIY Hacks
|
8
|
-
https://google.com/,_blank,btn btn-info m-1,Surfing
|
9
|
-
.end
|
10
|
-
|
data/themes/standard/tryme.lt3
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
# include variables before this file?
|
2
|
-
|
3
|
-
.set postcolor=#010101
|
4
|
-
|
5
|
-
.raw
|
6
|
-
.post-title a {
|
7
|
-
.end
|
8
|
-
color: $postcolor;
|
9
|
-
font-size: 28px;
|
10
|
-
float: right;
|
11
|
-
display: inline-block;
|
12
|
-
text-align: top;
|
13
|
-
text-decoration: none;
|
14
|
-
}
|
15
|
-
|
16
|
-
.raw
|
17
|
-
.post-title a:hover {
|
18
|
-
.end
|
19
|
-
text-decoration: none;
|
20
|
-
}
|
21
|
-
|
22
|
-
.raw
|
23
|
-
.post-title-text a {
|
24
|
-
.end
|
25
|
-
color: #0101a1;
|
26
|
-
font-size: 22px;
|
27
|
-
# float: right;
|
28
|
-
display: block;
|
29
|
-
text-decoration: none;
|
30
|
-
}
|
31
|
-
|
32
|
-
.raw
|
33
|
-
.post-title-text a:hover {
|
34
|
-
.end
|
35
|
-
text-decoration: none;
|
36
|
-
}
|
37
|
-
|
38
|
-
.raw
|
39
|
-
.post-date {
|
40
|
-
.end
|
41
|
-
color: #9a9a9a;
|
42
|
-
font-size: 15px;
|
43
|
-
display: block;
|
44
|
-
float: left;
|
45
|
-
text-align: top;
|
46
|
-
}
|
47
|
-
|
data/themes/standard/vars
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
|
2
|
-
charset: utf-8
|
3
|
-
blog: My Blog (and Welcome To It)
|
4
|
-
blog_desc: All the stuff you never needed to know
|
5
|
-
site: rubyhacker.com
|
6
|
-
url: localhost:4000//
|
7
|
-
locale: en_US
|
8
|
-
|
9
|
-
<meta charset="utf-8">
|
10
|
-
** <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
11
|
-
** <meta name="viewport" content="width=device-width,initial-scale=1">
|
12
|
-
|
13
|
-
<p>
|
14
|
-
<title>
|
15
|
-
My Blog (and Welcome To It) | All the stuff you never needed to know
|
16
|
-
</title>
|
17
|
-
<meta name="generator" content="Runeblog v 0.1.93">
|
18
|
-
<meta property="og:title" content="My Blog (and Welcome To It)">
|
19
|
-
<meta property="og:locale" content="en_US">
|
20
|
-
<meta name="description" content="All the stuff you never needed to know">
|
21
|
-
<meta property="og:description" content="All the stuff you never needed to know">
|
22
|
-
<link rel="canonical" href="localhost:4000//">
|
23
|
-
<meta property="og:url" content="localhost:4000//">
|
24
|
-
<meta property="og:site_name" content="My Blog (and Welcome To It)">
|
25
|
-
<link rel="stylesheet" href="etc/blog.css">
|
26
|
-
<link type="application/atom+xml" rel="alternate" href="localhost:4000///feed.xml" title="My Blog (and Welcome To It)">
|
27
|
-
<link rel="shortcut icon" type="image/x-icon" href="../etc/favicon.ico">
|
28
|
-
<link rel="apple-touch-icon" href="../etc/favicon.ico">
|
29
|
-
<body>
|