runeblog 0.3.13 → 0.3.14
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/empty_view/themes/standard/banner/navbar/faq.lt3 +1 -1
- data/empty_view/themes/standard/blog/index.lt3 +0 -1
- data/lib/helpers-blog.rb +15 -0
- data/lib/liveblog.rb +6 -12
- data/lib/publish.rb +0 -1
- data/lib/repl.rb +4 -4
- data/lib/runeblog.rb +9 -4
- data/lib/runeblog_version.rb +1 -1
- data/lib/widgets/pages/pages.rb +1 -1
- metadata +2 -63
- data/empty_view/themes/standard/widgets/README +0 -4
- data/empty_view/themes/standard/widgets/ad/ad.lt3 +0 -22
- data/empty_view/themes/standard/widgets/ad/ad1.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad2.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad3.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad4.png +0 -0
- data/empty_view/themes/standard/widgets/bydates/README +0 -2
- data/empty_view/themes/standard/widgets/bydates/bydates.rb +0 -18
- data/empty_view/themes/standard/widgets/bydates/card.css +0 -1
- data/empty_view/themes/standard/widgets/bydates/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/bydates/main.css +0 -2
- data/empty_view/themes/standard/widgets/links/README +0 -2
- data/empty_view/themes/standard/widgets/links/card.css +0 -1
- data/empty_view/themes/standard/widgets/links/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/links/links.rb +0 -90
- data/empty_view/themes/standard/widgets/links/list.data +0 -3
- data/empty_view/themes/standard/widgets/links/main.css +0 -2
- data/empty_view/themes/standard/widgets/news/README +0 -2
- data/empty_view/themes/standard/widgets/news/card.css +0 -1
- data/empty_view/themes/standard/widgets/news/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/news/list.data +0 -4
- data/empty_view/themes/standard/widgets/news/main.css +0 -2
- data/empty_view/themes/standard/widgets/news/news.rb +0 -88
- data/empty_view/themes/standard/widgets/pages/README +0 -2
- data/empty_view/themes/standard/widgets/pages/card.css +0 -1
- data/empty_view/themes/standard/widgets/pages/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/pages/disclaim.lt3 +0 -10
- data/empty_view/themes/standard/widgets/pages/faq.lt3 +0 -41
- data/empty_view/themes/standard/widgets/pages/like-dislike.lt3 +0 -11
- data/empty_view/themes/standard/widgets/pages/list.data +0 -4
- data/empty_view/themes/standard/widgets/pages/local.rb +0 -0
- data/empty_view/themes/standard/widgets/pages/main.css +0 -2
- data/empty_view/themes/standard/widgets/pages/other-stuff.lt3 +0 -10
- data/empty_view/themes/standard/widgets/pages/pages.rb +0 -130
- data/empty_view/themes/standard/widgets/pinned/README +0 -2
- data/empty_view/themes/standard/widgets/pinned/card.css +0 -1
- data/empty_view/themes/standard/widgets/pinned/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/pinned/main.css +0 -2
- data/empty_view/themes/standard/widgets/pinned/pinned.rb +0 -111
- data/empty_view/themes/standard/widgets/search/README +0 -2
- data/empty_view/themes/standard/widgets/search/card.css +0 -1
- data/empty_view/themes/standard/widgets/search/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/search/main.css +0 -2
- data/empty_view/themes/standard/widgets/search/search.rb +0 -18
- data/empty_view/themes/standard/widgets/sitemap/README +0 -2
- data/empty_view/themes/standard/widgets/sitemap/card.css +0 -1
- data/empty_view/themes/standard/widgets/sitemap/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/sitemap/main.css +0 -2
- data/empty_view/themes/standard/widgets/sitemap/sitemap.rb +0 -18
- data/empty_view/themes/standard/widgets/tag-cloud/OLD-example.lt3 +0 -12
- data/empty_view/themes/standard/widgets/tag-cloud/README +0 -2
- data/empty_view/themes/standard/widgets/tag-cloud/card.css +0 -1
- data/empty_view/themes/standard/widgets/tag-cloud/custom.rb +0 -1
- data/empty_view/themes/standard/widgets/tag-cloud/main.css +0 -2
- data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -3
- data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb +0 -18
- data/lib/widgets/ad/ad.lt3 +0 -22
- data/lib/widgets/ad/ad1.png +0 -0
- data/lib/widgets/ad/ad2.png +0 -0
- data/lib/widgets/ad/ad3.png +0 -0
- data/lib/widgets/ad/ad4.png +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 64a729dfa24a259870fdbc4129113a907c979d7d7f4b2c60dd586bba124616f6
|
|
4
|
+
data.tar.gz: 43bad50390b14013c46eebe2d1f1539ead81f490c9823e396cf9f17dc1a09eff
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6afa86cb6cfdaa4b0960f9249d931dca0e60a3d212c0f56d82b5ed1ca2c91006efd3fc23f518d060b096d2b257bc4bd16c7b8ebf67f70413097fa0339225b24d
|
|
7
|
+
data.tar.gz: 8c0d94a211aaaa39bd8916446750fedb33fd5f97a8f60bbe33b24bbd37b89dc342e3855b590548687416cccceeb36730ab131c52ae466b6fedb301bb8ac1cd87
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.include
|
|
1
|
+
.include ../../../../widgets/pages/faq.lt3
|
data/lib/helpers-blog.rb
CHANGED
|
@@ -39,6 +39,21 @@ module RuneBlog::Helpers
|
|
|
39
39
|
puts "dir = #{Dir.pwd}"
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
def get_all_widgets(dest)
|
|
43
|
+
wdir = RuneBlog::Path + "/widgets" # files kept inside gem
|
|
44
|
+
copy!(wdir/"*", dest)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def get_widget(dest, widget: :all) # recursive
|
|
48
|
+
wdir = ".blogs/widgets"
|
|
49
|
+
wdir = RuneBlog::Path + "/widgets" # files kept inside gem
|
|
50
|
+
if widget == :all
|
|
51
|
+
copy!(wdir/"*", dest)
|
|
52
|
+
else
|
|
53
|
+
copy!(wdir/widget, dest)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
42
57
|
def copy_data(dest)
|
|
43
58
|
data = RuneBlog::Path + "/../data" # files kept inside gem
|
|
44
59
|
files = %w[ROOT VIEW EDITOR universal.lt3 global.lt3 features.txt]
|
data/lib/liveblog.rb
CHANGED
|
@@ -408,7 +408,7 @@ def pin
|
|
|
408
408
|
pinned = @_args
|
|
409
409
|
@meta.pinned = pinned
|
|
410
410
|
pinned.each do |pinview|
|
|
411
|
-
dir = @blog.root/:views/pinview/"
|
|
411
|
+
dir = @blog.root/:views/pinview/"widgets/pinned/"
|
|
412
412
|
datafile = dir/"list.data"
|
|
413
413
|
pins = _get_data?(datafile)
|
|
414
414
|
pins << "#{@meta.num} #{@meta.title}\n"
|
|
@@ -552,7 +552,7 @@ def _make_class_name(app)
|
|
|
552
552
|
end
|
|
553
553
|
|
|
554
554
|
def _load_local(widget)
|
|
555
|
-
Dir.chdir("widgets/#{widget}") do
|
|
555
|
+
Dir.chdir("../../widgets/#{widget}") do
|
|
556
556
|
rclass = _make_class_name(widget)
|
|
557
557
|
found = (require("./#{widget}") if File.exist?("#{widget}.rb"))
|
|
558
558
|
code = found ? ::RuneBlog::Widget.class_eval(rclass) : nil
|
|
@@ -566,7 +566,7 @@ rescue => err
|
|
|
566
566
|
end
|
|
567
567
|
|
|
568
568
|
def _handle_standard_widget(tag)
|
|
569
|
-
wtag =
|
|
569
|
+
wtag = "../../widgets"/tag
|
|
570
570
|
code = _load_local(tag)
|
|
571
571
|
if code
|
|
572
572
|
Dir.chdir(wtag) do
|
|
@@ -589,21 +589,15 @@ def sidebar
|
|
|
589
589
|
|
|
590
590
|
_body do |token|
|
|
591
591
|
tag = token.chomp.strip.downcase
|
|
592
|
-
wtag =
|
|
592
|
+
wtag = "../../widgets"/tag
|
|
593
593
|
raise "Can't find #{wtag}" unless Dir.exist?(wtag)
|
|
594
594
|
tcard = "#{tag}-card.html"
|
|
595
595
|
|
|
596
596
|
case
|
|
597
597
|
when standard.include?(tag)
|
|
598
598
|
_handle_standard_widget(tag)
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
img = "widgets/ad/ad#{num}.png"
|
|
602
|
-
src, dst = img, @root/:views/@view_name/"remote/widgets/ad/"
|
|
603
|
-
system!("cp #{src} #{dst}")
|
|
604
|
-
File.open(wtag/"vars.lt3", "w") {|f| f.puts ".set ad.image = #{img}" }
|
|
605
|
-
preprocess cwd: wtag, src: tag, dst: tcard, call: ".nopara",
|
|
606
|
-
force: true # , debug: true # , deps: depend
|
|
599
|
+
else
|
|
600
|
+
raise "Nonstandard widget?"
|
|
607
601
|
end
|
|
608
602
|
|
|
609
603
|
_include_file wtag/tcard
|
data/lib/publish.rb
CHANGED
|
@@ -52,7 +52,6 @@ class RuneBlog::Publishing
|
|
|
52
52
|
view_name = @blog.view.name
|
|
53
53
|
viewpath = dir
|
|
54
54
|
cmd = "rsync -r -z #{@blog.root}/views/#{@blog.view}/remote/ #@user@#@server:#{viewpath}/"
|
|
55
|
-
puts cmd
|
|
56
55
|
system!(cmd)
|
|
57
56
|
check_new_posts
|
|
58
57
|
dump("#{@blog.view} at #{Time.now}", "#{@blog.view.dir}/last_published")
|
data/lib/repl.rb
CHANGED
|
@@ -81,7 +81,7 @@ module RuneBlog::REPL
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
def _manage_pinned # cloned from manage_links
|
|
84
|
-
dir = @blog.view.dir/"
|
|
84
|
+
dir = @blog.view.dir/"widgets/pinned"
|
|
85
85
|
data = dir/"list.data"
|
|
86
86
|
edit_file(data)
|
|
87
87
|
end
|
|
@@ -116,13 +116,13 @@ module RuneBlog::REPL
|
|
|
116
116
|
end
|
|
117
117
|
|
|
118
118
|
def _manage_links
|
|
119
|
-
dir = @blog.view.dir/"
|
|
119
|
+
dir = @blog.view.dir/"widgets/links"
|
|
120
120
|
data = dir/"list.data"
|
|
121
121
|
edit_file(data)
|
|
122
122
|
end
|
|
123
123
|
|
|
124
124
|
def _manage_pages # FIXME move into widget code
|
|
125
|
-
dir = @blog.view.dir/"
|
|
125
|
+
dir = @blog.view.dir/"widgets/pages"
|
|
126
126
|
# Assume child files already generated (and list.data??)
|
|
127
127
|
data = dir/"list.data"
|
|
128
128
|
lines = _get_data?(data)
|
|
@@ -376,7 +376,7 @@ module RuneBlog::REPL
|
|
|
376
376
|
puts " ", fx(num, Red), " ", fx(title, Black)
|
|
377
377
|
other = @blog._get_views(@blog.root/:drafts/draft) - [@blog.view.to_s]
|
|
378
378
|
unless other.empty?
|
|
379
|
-
print fx(" "*9 + "also in: ",
|
|
379
|
+
print fx(" "*9 + "also in: ", :bold)
|
|
380
380
|
puts other.join(", ")
|
|
381
381
|
end
|
|
382
382
|
end
|
data/lib/runeblog.rb
CHANGED
|
@@ -114,7 +114,9 @@ class RuneBlog
|
|
|
114
114
|
|
|
115
115
|
create_dirs(repo_root)
|
|
116
116
|
Dir.chdir(repo_root) do
|
|
117
|
-
create_dirs(:data, :config, :drafts, :views, :posts)
|
|
117
|
+
create_dirs(:data, :config, :widgets, :drafts, :views, :posts) # ?? widgets?
|
|
118
|
+
# FIXME
|
|
119
|
+
get_all_widgets("widgets")
|
|
118
120
|
new_sequence
|
|
119
121
|
end
|
|
120
122
|
unless File.exist?(repo_root/"data/VIEW")
|
|
@@ -361,6 +363,8 @@ class RuneBlog
|
|
|
361
363
|
Dir.chdir(@root) do
|
|
362
364
|
cmd = "cp -r #{RuneBlog::Path}/../empty_view views/#{view_name}"
|
|
363
365
|
system!(cmd)
|
|
366
|
+
cmd = "cp -r widgets views/#{view_name}"
|
|
367
|
+
system!(cmd)
|
|
364
368
|
end
|
|
365
369
|
rescue => err
|
|
366
370
|
_tmp_error(err)
|
|
@@ -660,14 +664,14 @@ class RuneBlog
|
|
|
660
664
|
log!(enter: __method__, level: 2)
|
|
661
665
|
vdir = @root/:views/view
|
|
662
666
|
remote = vdir/:remote
|
|
663
|
-
wdir = vdir/:
|
|
667
|
+
wdir = vdir/:widgets
|
|
664
668
|
widgets = Dir[wdir/"*"].select {|w| File.directory?(w) }
|
|
665
669
|
widgets.each do |w|
|
|
666
670
|
dir = File.basename(w)
|
|
667
|
-
rem = w.sub(/
|
|
671
|
+
rem = w.sub(/widgets/, "remote/widgets")
|
|
668
672
|
create_dirs(rem)
|
|
669
673
|
files = Dir[w/"*"]
|
|
670
|
-
files = files.select {|x| x =~ /(html|css)$/ }
|
|
674
|
+
# files = files.select {|x| x =~ /(html|css)$/ }
|
|
671
675
|
tag = File.basename(w)
|
|
672
676
|
files.each {|file| system!("cp #{file} #{rem}", show: (tag == "zzz")) }
|
|
673
677
|
end
|
|
@@ -688,6 +692,7 @@ class RuneBlog
|
|
|
688
692
|
pdraft = @root/:posts/nslug
|
|
689
693
|
remote = @root/:views/view_name/:remote
|
|
690
694
|
@theme = @root/:views/view_name/:themes/:standard
|
|
695
|
+
|
|
691
696
|
# Step 1...
|
|
692
697
|
create_dirs(pdraft)
|
|
693
698
|
# FIXME dependencies?
|
data/lib/runeblog_version.rb
CHANGED
data/lib/widgets/pages/pages.rb
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.3.
|
|
4
|
+
version: 0.3.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hal Fulton
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-01-
|
|
11
|
+
date: 2020-01-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: livetext
|
|
@@ -142,62 +142,6 @@ files:
|
|
|
142
142
|
- empty_view/themes/standard/post/head.lt3
|
|
143
143
|
- empty_view/themes/standard/post/index.lt3
|
|
144
144
|
- empty_view/themes/standard/post/permalink.lt3
|
|
145
|
-
- empty_view/themes/standard/widgets/README
|
|
146
|
-
- empty_view/themes/standard/widgets/ad/ad.lt3
|
|
147
|
-
- empty_view/themes/standard/widgets/ad/ad1.png
|
|
148
|
-
- empty_view/themes/standard/widgets/ad/ad2.png
|
|
149
|
-
- empty_view/themes/standard/widgets/ad/ad3.png
|
|
150
|
-
- empty_view/themes/standard/widgets/ad/ad4.png
|
|
151
|
-
- empty_view/themes/standard/widgets/bydates/README
|
|
152
|
-
- empty_view/themes/standard/widgets/bydates/bydates.rb
|
|
153
|
-
- empty_view/themes/standard/widgets/bydates/card.css
|
|
154
|
-
- empty_view/themes/standard/widgets/bydates/custom.rb
|
|
155
|
-
- empty_view/themes/standard/widgets/bydates/main.css
|
|
156
|
-
- empty_view/themes/standard/widgets/links/README
|
|
157
|
-
- empty_view/themes/standard/widgets/links/card.css
|
|
158
|
-
- empty_view/themes/standard/widgets/links/custom.rb
|
|
159
|
-
- empty_view/themes/standard/widgets/links/links.rb
|
|
160
|
-
- empty_view/themes/standard/widgets/links/list.data
|
|
161
|
-
- empty_view/themes/standard/widgets/links/main.css
|
|
162
|
-
- empty_view/themes/standard/widgets/news/README
|
|
163
|
-
- empty_view/themes/standard/widgets/news/card.css
|
|
164
|
-
- empty_view/themes/standard/widgets/news/custom.rb
|
|
165
|
-
- empty_view/themes/standard/widgets/news/list.data
|
|
166
|
-
- empty_view/themes/standard/widgets/news/main.css
|
|
167
|
-
- empty_view/themes/standard/widgets/news/news.rb
|
|
168
|
-
- empty_view/themes/standard/widgets/pages/README
|
|
169
|
-
- empty_view/themes/standard/widgets/pages/card.css
|
|
170
|
-
- empty_view/themes/standard/widgets/pages/custom.rb
|
|
171
|
-
- empty_view/themes/standard/widgets/pages/disclaim.lt3
|
|
172
|
-
- empty_view/themes/standard/widgets/pages/faq.lt3
|
|
173
|
-
- empty_view/themes/standard/widgets/pages/like-dislike.lt3
|
|
174
|
-
- empty_view/themes/standard/widgets/pages/list.data
|
|
175
|
-
- empty_view/themes/standard/widgets/pages/local.rb
|
|
176
|
-
- empty_view/themes/standard/widgets/pages/main.css
|
|
177
|
-
- empty_view/themes/standard/widgets/pages/other-stuff.lt3
|
|
178
|
-
- empty_view/themes/standard/widgets/pages/pages.rb
|
|
179
|
-
- empty_view/themes/standard/widgets/pinned/README
|
|
180
|
-
- empty_view/themes/standard/widgets/pinned/card.css
|
|
181
|
-
- empty_view/themes/standard/widgets/pinned/custom.rb
|
|
182
|
-
- empty_view/themes/standard/widgets/pinned/main.css
|
|
183
|
-
- empty_view/themes/standard/widgets/pinned/pinned.rb
|
|
184
|
-
- empty_view/themes/standard/widgets/search/README
|
|
185
|
-
- empty_view/themes/standard/widgets/search/card.css
|
|
186
|
-
- empty_view/themes/standard/widgets/search/custom.rb
|
|
187
|
-
- empty_view/themes/standard/widgets/search/main.css
|
|
188
|
-
- empty_view/themes/standard/widgets/search/search.rb
|
|
189
|
-
- empty_view/themes/standard/widgets/sitemap/README
|
|
190
|
-
- empty_view/themes/standard/widgets/sitemap/card.css
|
|
191
|
-
- empty_view/themes/standard/widgets/sitemap/custom.rb
|
|
192
|
-
- empty_view/themes/standard/widgets/sitemap/main.css
|
|
193
|
-
- empty_view/themes/standard/widgets/sitemap/sitemap.rb
|
|
194
|
-
- empty_view/themes/standard/widgets/tag-cloud/OLD-example.lt3
|
|
195
|
-
- empty_view/themes/standard/widgets/tag-cloud/README
|
|
196
|
-
- empty_view/themes/standard/widgets/tag-cloud/card.css
|
|
197
|
-
- empty_view/themes/standard/widgets/tag-cloud/custom.rb
|
|
198
|
-
- empty_view/themes/standard/widgets/tag-cloud/main.css
|
|
199
|
-
- empty_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3
|
|
200
|
-
- empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb
|
|
201
145
|
- lib/Javascript.stuff
|
|
202
146
|
- lib/helpers-blog.rb
|
|
203
147
|
- lib/helpers-repl.rb
|
|
@@ -213,11 +157,6 @@ files:
|
|
|
213
157
|
- lib/runeblog_version.rb
|
|
214
158
|
- lib/view.rb
|
|
215
159
|
- lib/widgets/README
|
|
216
|
-
- lib/widgets/ad/ad.lt3
|
|
217
|
-
- lib/widgets/ad/ad1.png
|
|
218
|
-
- lib/widgets/ad/ad2.png
|
|
219
|
-
- lib/widgets/ad/ad3.png
|
|
220
|
-
- lib/widgets/ad/ad4.png
|
|
221
160
|
- lib/widgets/bydates/README
|
|
222
161
|
- lib/widgets/bydates/bydates.rb
|
|
223
162
|
- lib/widgets/bydates/card.css
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
. In real life, ads won't work this way...
|
|
2
|
-
|
|
3
|
-
.include vars.lt3
|
|
4
|
-
|
|
5
|
-
.set classname="btn btn-light float-right"
|
|
6
|
-
.set card.title="Advertisement"
|
|
7
|
-
.set card.text="Build your amazing website with blabla.com."
|
|
8
|
-
. set extra="bg-dark text-white"
|
|
9
|
-
|
|
10
|
-
<!-- "$ad.image" -->
|
|
11
|
-
|
|
12
|
-
<div class="card $extra mb-3">
|
|
13
|
-
<div class="card-body">
|
|
14
|
-
<!--
|
|
15
|
-
<h5 class="card-title">$card.title</h5>
|
|
16
|
-
<p class="card-text">$card.text</p>
|
|
17
|
-
<a href="javascript: void(0)" onclick="javascript:open_main('widgets/ad/ad.html')" class="$classname">Visit page</a>
|
|
18
|
-
-->
|
|
19
|
-
<img style="max-height: 100%; max-width: 100%" src="$ad.image"></img>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Custom code for 'links' widget
|
|
2
|
-
|
|
3
|
-
require 'liveblog'
|
|
4
|
-
|
|
5
|
-
class ::RuneBlog::Widget
|
|
6
|
-
class Links
|
|
7
|
-
Type, Title = "links", "External links"
|
|
8
|
-
|
|
9
|
-
def initialize(repo)
|
|
10
|
-
@blog = repo
|
|
11
|
-
@datafile = input = "list.data"
|
|
12
|
-
@lines = _get_data(@datafile)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def build
|
|
16
|
-
write_main
|
|
17
|
-
write_card
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def _html_body(file, css = nil)
|
|
21
|
-
file.puts "<html>"
|
|
22
|
-
if css
|
|
23
|
-
file.puts " <head>"
|
|
24
|
-
file.puts " <style>\n#{css}\n </style>"
|
|
25
|
-
file.puts " </head>"
|
|
26
|
-
end
|
|
27
|
-
file.puts " <body>"
|
|
28
|
-
yield
|
|
29
|
-
file.puts " </body>\n</html>"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def write_main
|
|
33
|
-
@data = @lines.map! {|x| x.chomp.split(/, */, 3) }
|
|
34
|
-
css = "body { font-family: verdana }"
|
|
35
|
-
card_title = Title
|
|
36
|
-
File.open("#{Type}-main.html", "w") do |f|
|
|
37
|
-
_html_body(f, css) do
|
|
38
|
-
f.puts "<h1>#{card_title}</h1><br><hr>"
|
|
39
|
-
url_ref = nil
|
|
40
|
-
@data.each do |url, frameable, title|
|
|
41
|
-
url_ref = "href = '#{url}'"
|
|
42
|
-
url_ref << " target=blank" if frameable == "yes"
|
|
43
|
-
css = "color: #8888FF; text-decoration: none; font-size: 21px"
|
|
44
|
-
f.puts %[<a style="#{css}" #{url_ref}>#{title}</a> <br>]
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def write_card
|
|
51
|
-
tag = "links"
|
|
52
|
-
url = :widgets/tag/tag+"-main.html"
|
|
53
|
-
card_title = "External links" # FIXME
|
|
54
|
-
cardfile = "#{Type}-card"
|
|
55
|
-
File.open("#{cardfile}.html", "w") do |f|
|
|
56
|
-
f.puts <<-EOS
|
|
57
|
-
<div class="card mb-3">
|
|
58
|
-
<div class="card-body">
|
|
59
|
-
<h5 class="card-title">
|
|
60
|
-
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{tag}">+</button>
|
|
61
|
-
<a href="javascript: void(0)"
|
|
62
|
-
onclick="javascript:open_main('#{url}')"
|
|
63
|
-
style="text-decoration: none; color: black"> #{card_title}</a>
|
|
64
|
-
</h5>
|
|
65
|
-
<div class="collapse" id="#{tag}">
|
|
66
|
-
EOS
|
|
67
|
-
@data.each do |url2, frameable, title|
|
|
68
|
-
f.puts "<!-- #{[url2, frameable, title].inspect} -->"
|
|
69
|
-
main_ref = %[href="javascript: void(0)" onclick="javascript:open_main('#{url2}')"]
|
|
70
|
-
tab_ref = %[href="#{url2}"]
|
|
71
|
-
url_ref = (frameable == "yes") ? main_ref : tab_ref
|
|
72
|
-
anchor = %[<a #{url_ref}>#{title}</a>]
|
|
73
|
-
wrapper = %[<li class="list-group-item">#{anchor}</li>]
|
|
74
|
-
f.puts wrapper
|
|
75
|
-
end
|
|
76
|
-
f.puts <<-EOS
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
EOS
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def edit_menu
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
def refresh
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
https://techcrunch.com/2019/09/16/fossa-scores-8-5-million-series-a-to-help-enterprise-manage-open-source-licenses/, yes, 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/, yes, SpaceX’s orbital Starship prototype construction progress detailed in new photos
|
|
3
|
-
https://developers.googleblog.com/2019/05/Flutter-io19.html, yes, Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktop
|
|
4
|
-
https://jaycarlson.net/microcontrollers/, no, The Amazing \$1 Microcontroller (2017)
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# Custom code for 'news' widget
|
|
2
|
-
|
|
3
|
-
class ::RuneBlog::Widget
|
|
4
|
-
class News
|
|
5
|
-
Type, Title = "news", "News"
|
|
6
|
-
|
|
7
|
-
def initialize(repo)
|
|
8
|
-
@blog = repo
|
|
9
|
-
@datafile = "list.data"
|
|
10
|
-
lines = _get_data(@datafile)
|
|
11
|
-
@data = lines.map {|line| line.chomp.split(/, */) }
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def build
|
|
15
|
-
write_main
|
|
16
|
-
write_card
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def _html_body(file, css = nil)
|
|
20
|
-
file.puts "<html>"
|
|
21
|
-
if css
|
|
22
|
-
file.puts " <head>"
|
|
23
|
-
file.puts " <style>\n#{css}\n </style>"
|
|
24
|
-
file.puts " </head>"
|
|
25
|
-
end
|
|
26
|
-
file.puts " <body>"
|
|
27
|
-
yield
|
|
28
|
-
file.puts " </body>\n</html>"
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def write_main
|
|
32
|
-
mainfile = "#{Type}-main"
|
|
33
|
-
css = "body { font-family: verdana }"
|
|
34
|
-
File.open("#{mainfile}.html", "w") do |f|
|
|
35
|
-
_html_body(f, css) do
|
|
36
|
-
f.puts "<h1>#{Title}</h1><br><hr>"
|
|
37
|
-
@data.each do |file, frameable, title|
|
|
38
|
-
title = title.gsub(/\\/, "") # kludge
|
|
39
|
-
case frameable
|
|
40
|
-
when "yes"; url_ref = "href = '#{file}'"
|
|
41
|
-
when "no"; url_ref = %[href='#{file}' target='blank']
|
|
42
|
-
end
|
|
43
|
-
css = "color: #8888FF; text-decoration: none; font-size: 21px"
|
|
44
|
-
f.puts %[<a style="#{css}" #{url_ref}>#{title}</a> <br>]
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def write_card
|
|
51
|
-
cardfile = "#{Type}-card"
|
|
52
|
-
url = "widgets/#{Type}/#{Type}-main.html"
|
|
53
|
-
File.open("#{cardfile}.html", "w") do |f|
|
|
54
|
-
f.puts <<-EOS
|
|
55
|
-
<div class="card mb-3">
|
|
56
|
-
<div class="card-body">
|
|
57
|
-
<h5 class="card-title">
|
|
58
|
-
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{Type}">+</button>
|
|
59
|
-
<a href="javascript: void(0)"
|
|
60
|
-
onclick="javascript:open_main('#{url}')"
|
|
61
|
-
style="text-decoration: none; color: black"> #{Title}</a>
|
|
62
|
-
</h5>
|
|
63
|
-
<div class="collapse" id="#{Type}">
|
|
64
|
-
EOS
|
|
65
|
-
@data.each do |file, frameable, title|
|
|
66
|
-
case frameable
|
|
67
|
-
when "yes"; url_ref = _main(file) # remote, frameable
|
|
68
|
-
when "no"; url_ref = _blank(file) # remote, not frameable
|
|
69
|
-
end
|
|
70
|
-
anchor = %[<a #{url_ref}>#{title}</a>]
|
|
71
|
-
wrapper = %[<li class="list-group-item">#{anchor}</li>]
|
|
72
|
-
f.puts wrapper
|
|
73
|
-
end
|
|
74
|
-
f.puts <<-EOS
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
EOS
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def edit_menu
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def refresh
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
.nopara # FIXME later
|
|
2
|
-
.mixin liveblog
|
|
3
|
-
|
|
4
|
-
<html>
|
|
5
|
-
<head>
|
|
6
|
-
|
|
7
|
-
<style>
|
|
8
|
-
body { font-family: verdana }
|
|
9
|
-
</style>
|
|
10
|
-
|
|
11
|
-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
|
12
|
-
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"></link>
|
|
13
|
-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap-theme.min.css"></link>
|
|
14
|
-
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
|
15
|
-
|
|
16
|
-
</head>
|
|
17
|
-
|
|
18
|
-
<body>
|
|
19
|
-
|
|
20
|
-
<h2>Frequently Asked Questions</h2>
|
|
21
|
-
|
|
22
|
-
.faq Are you a rabbit?
|
|
23
|
-
Yes, I am.
|
|
24
|
-
.end
|
|
25
|
-
|
|
26
|
-
.faq Are you a frog?
|
|
27
|
-
Don't be stupid. I just told you I was a rabbit.
|
|
28
|
-
.end
|
|
29
|
-
|
|
30
|
-
.faq Why do you answer a question with a question?
|
|
31
|
-
*Do I in fact answer a question with a question?
|
|
32
|
-
.end
|
|
33
|
-
|
|
34
|
-
.faq Are you serious?
|
|
35
|
-
No, I'm a rabbit.
|
|
36
|
-
.end
|
|
37
|
-
|
|
38
|
-
.backlink
|
|
39
|
-
|
|
40
|
-
</body>
|
|
41
|
-
</html>
|
|
File without changes
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# Custom code for 'pages' widget
|
|
2
|
-
|
|
3
|
-
# How to update repl code?
|
|
4
|
-
|
|
5
|
-
class ::RuneBlog::Widget
|
|
6
|
-
class Pages
|
|
7
|
-
Type, Title = "pages", "My Pages"
|
|
8
|
-
|
|
9
|
-
def initialize(repo)
|
|
10
|
-
@blog = repo
|
|
11
|
-
@datafile = "list.data"
|
|
12
|
-
@lines = _get_data(@datafile)
|
|
13
|
-
@data = @lines.map {|x| x.chomp.split(/, */, 2) }
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def build
|
|
17
|
-
# build child pages
|
|
18
|
-
children = Dir["*.lt3"] - ["pages.lt3"]
|
|
19
|
-
children.each do |child|
|
|
20
|
-
dest = child.sub(/.lt3$/, ".html")
|
|
21
|
-
preprocess src: child, dst: dest
|
|
22
|
-
end
|
|
23
|
-
write_main
|
|
24
|
-
write_card
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def _html_body(file, css = nil)
|
|
28
|
-
file.puts "<html>"
|
|
29
|
-
if css
|
|
30
|
-
file.puts " <head>"
|
|
31
|
-
file.puts " <style>\n#{css}\n </style>"
|
|
32
|
-
file.puts " </head>"
|
|
33
|
-
end
|
|
34
|
-
file.puts " <body>"
|
|
35
|
-
yield
|
|
36
|
-
file.puts " </body>\n</html>"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def write_main
|
|
40
|
-
css = "body { font-family: verdana }"
|
|
41
|
-
card_title = Title
|
|
42
|
-
File.open("#{Type}-main.html", "w") do |f|
|
|
43
|
-
_html_body(f, css) do
|
|
44
|
-
f.puts "<h1>#{card_title}</h1><br><hr>"
|
|
45
|
-
url_ref = nil
|
|
46
|
-
@data.each do |url, title|
|
|
47
|
-
url_ref = "href = '#{url}'"
|
|
48
|
-
css = "color: #8888FF; text-decoration: none; font-size: 21px"
|
|
49
|
-
f.puts %[<a style="#{css}" #{url_ref}>#{title}</a> <br>]
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def write_card
|
|
56
|
-
tag = Type
|
|
57
|
-
url = :widgets/tag/tag+"-main.html"
|
|
58
|
-
card_title = "Pages" # FIXME
|
|
59
|
-
cardfile = "#{Type}-card"
|
|
60
|
-
File.open("#{cardfile}.html", "w") do |f|
|
|
61
|
-
f.puts <<-EOS
|
|
62
|
-
<div class="card mb-3">
|
|
63
|
-
<div class="card-body">
|
|
64
|
-
<h5 class="card-title">
|
|
65
|
-
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{tag}">+</button>
|
|
66
|
-
<a href="javascript: void(0)"
|
|
67
|
-
onclick="javascript:open_main('#{url}')"
|
|
68
|
-
style="text-decoration: none; color: black">#{card_title}</a>
|
|
69
|
-
</h5>
|
|
70
|
-
<div class="collapse" id="#{tag}">
|
|
71
|
-
EOS
|
|
72
|
-
@data.each do |url2, title|
|
|
73
|
-
f.puts "<!-- #{[url2, title].inspect} -->"
|
|
74
|
-
url3 = :widgets/tag/url2
|
|
75
|
-
f.puts "<!-- url3 = #{url3.inspect} -->"
|
|
76
|
-
url_ref = %[href="javascript: void(0)" onclick="javascript:open_main('#{url3}')"]
|
|
77
|
-
anchor = %[<a #{url_ref}>#{title}</a>]
|
|
78
|
-
wrapper = %[<li class="list-group-item">#{anchor}</li>]
|
|
79
|
-
f.puts wrapper
|
|
80
|
-
end
|
|
81
|
-
f.puts <<-EOS
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
EOS
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def manage
|
|
90
|
-
dir = @blog.view.dir/"themes/standard/widgets/pages"
|
|
91
|
-
# Assume child files already generated (and list.data??)
|
|
92
|
-
data = dir/"list.data"
|
|
93
|
-
lines = _get_data?(data)
|
|
94
|
-
hash = {}
|
|
95
|
-
lines.each do |line|
|
|
96
|
-
url, name = line.chomp.split(",")
|
|
97
|
-
source = url.sub(/.html$/, ".lt3")
|
|
98
|
-
hash[name] = source
|
|
99
|
-
end
|
|
100
|
-
new_item = "[New page]"
|
|
101
|
-
num, fname = STDSCR.menu(title: "Edit page:", items: hash.keys + [new_item])
|
|
102
|
-
return if fname.nil?
|
|
103
|
-
if fname == new_item
|
|
104
|
-
print "Page title: "
|
|
105
|
-
title = RubyText.gets
|
|
106
|
-
title.chomp!
|
|
107
|
-
print "File name (.lt3): "
|
|
108
|
-
fname = RubyText.gets
|
|
109
|
-
fname << ".lt3" unless fname.end_with?(".lt3")
|
|
110
|
-
fhtml = fname.sub(/.lt3$/, ".html")
|
|
111
|
-
File.open(data, "a") {|f| f.puts "#{fhtml},#{title}" }
|
|
112
|
-
new_file = dir/fname
|
|
113
|
-
File.open(new_file, "w") do |f|
|
|
114
|
-
f.puts "<h1>#{title}</h1>\n\n\n "
|
|
115
|
-
f.puts ".backlink"
|
|
116
|
-
end
|
|
117
|
-
edit_file(new_file)
|
|
118
|
-
else
|
|
119
|
-
target = hash[fname]
|
|
120
|
-
edit_file(dir/target)
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
def edit_menu
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
def refresh
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# Custom code for 'pinned' widget
|
|
2
|
-
|
|
3
|
-
class ::RuneBlog::Widget
|
|
4
|
-
class Pinned
|
|
5
|
-
Type, Title = "pinned", "Pinned posts"
|
|
6
|
-
|
|
7
|
-
def initialize(repo)
|
|
8
|
-
@blog = repo
|
|
9
|
-
@datafile = "list.data"
|
|
10
|
-
@lines = _get_data?(@datafile)
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def read_metadata
|
|
14
|
-
meta = read_pairs!("metadata.txt")
|
|
15
|
-
meta.views = meta.views.split
|
|
16
|
-
meta.tags = meta.tags.split
|
|
17
|
-
meta
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def _html_body(file, css = nil) # FIXME
|
|
21
|
-
file.puts "<html>"
|
|
22
|
-
if css
|
|
23
|
-
file.puts " <head>"
|
|
24
|
-
file.puts " <style>\n#{css}\n </style>"
|
|
25
|
-
file.puts " </head>"
|
|
26
|
-
end
|
|
27
|
-
file.puts " <body>"
|
|
28
|
-
yield
|
|
29
|
-
file.puts " </body>\n</html>"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def build
|
|
33
|
-
dir = @blog.root/:posts
|
|
34
|
-
posts = nil
|
|
35
|
-
Dir.chdir(dir) { posts = Dir["*"] }
|
|
36
|
-
hash = {}
|
|
37
|
-
@links = []
|
|
38
|
-
@lines.each do |x|
|
|
39
|
-
num, title = x.chomp.split(" ", 2)
|
|
40
|
-
hash[num] = title
|
|
41
|
-
pre = '%04d' % num
|
|
42
|
-
nslug = posts.grep(/#{pre}-/).first
|
|
43
|
-
meta = nil
|
|
44
|
-
Dir.chdir(dir/nslug) { meta = read_metadata }
|
|
45
|
-
pubdate = meta.pubdate
|
|
46
|
-
name = nslug[5..-1]
|
|
47
|
-
link = name+".html"
|
|
48
|
-
@links << [pubdate, title, link]
|
|
49
|
-
end
|
|
50
|
-
write_main
|
|
51
|
-
write_card
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def write_main
|
|
55
|
-
tag = Type
|
|
56
|
-
card_title = Title
|
|
57
|
-
css = "body { font-family: verdana }"
|
|
58
|
-
mainfile = "#{tag}-main"
|
|
59
|
-
File.open("#{mainfile}.html", "w") do |f|
|
|
60
|
-
_html_body(f, css) do
|
|
61
|
-
f.puts "<!-- #{@lines.inspect} in #{Dir.pwd} -->"
|
|
62
|
-
f.puts "<h1>#{card_title}</h1><br><hr>"
|
|
63
|
-
@links.each do |pubdate, title, file|
|
|
64
|
-
title = title.gsub(/\\/, "") # kludge
|
|
65
|
-
css = "color: #8888FF; text-decoration: none; font-size: 21px"
|
|
66
|
-
f.puts "<!-- pubdate = #{pubdate.inspect} -->"
|
|
67
|
-
f.puts %[#{pubdate} <a style="#{css}" href="../../#{file}">#{title}</a> <br>]
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def write_card
|
|
74
|
-
tag = Type
|
|
75
|
-
url = :widgets/tag/tag+"-main.html"
|
|
76
|
-
card_title = Title
|
|
77
|
-
cardfile = "#{tag}-card"
|
|
78
|
-
File.open("#{cardfile}.html", "w") do |f|
|
|
79
|
-
f.puts <<-EOS
|
|
80
|
-
<div class="card mb-3">
|
|
81
|
-
<div class="card-body">
|
|
82
|
-
<h5 class="card-title">
|
|
83
|
-
<button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{tag}">+</button>
|
|
84
|
-
<a href="javascript: void(0)"
|
|
85
|
-
onclick="javascript:open_main('#{url}')"
|
|
86
|
-
style="text-decoration: none; color: black"> #{card_title}</a>
|
|
87
|
-
</h5>
|
|
88
|
-
<div class="collapse" id="#{tag}">
|
|
89
|
-
EOS
|
|
90
|
-
@links.each do |pubdate, title, file|
|
|
91
|
-
url2 = file
|
|
92
|
-
url_ref = %[href="javascript: void(0)" onclick="javascript:open_main('#{url2}')"]
|
|
93
|
-
anchor = %[<a #{url_ref}>#{title}</a>]
|
|
94
|
-
wrapper = %[<li class="list-group-item">#{anchor}</li>]
|
|
95
|
-
f.puts wrapper
|
|
96
|
-
end
|
|
97
|
-
f.puts <<-EOS
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</div>
|
|
101
|
-
EOS
|
|
102
|
-
end
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def edit_menu
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def refresh
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
.mixin liveblog
|
|
2
|
-
|
|
3
|
-
.tag_cloud
|
|
4
|
-
https://google.com/,btn btn-dark m-1,Programming
|
|
5
|
-
https://google.com/,btn btn-danger m-1,Science Fiction
|
|
6
|
-
https://google.com/,btn btn-light m-1,Art
|
|
7
|
-
https://google.com/,btn btn-dark m-1,Robotics
|
|
8
|
-
https://google.com/,btn btn-warning m-1,Food and Travel
|
|
9
|
-
https://google.com/,btn btn-light m-1,DIY Hacks
|
|
10
|
-
https://google.com/,btn btn-info m-1,Surfing
|
|
11
|
-
.end
|
|
12
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# CSS for sidebar card
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This is for specialized livetext add-ons (Ruby methods)
|
data/lib/widgets/ad/ad.lt3
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
. In real life, ads won't work this way...
|
|
2
|
-
|
|
3
|
-
.include vars.lt3
|
|
4
|
-
|
|
5
|
-
.set classname="btn btn-light float-right"
|
|
6
|
-
.set card.title="Advertisement"
|
|
7
|
-
.set card.text="Build your amazing website with blabla.com."
|
|
8
|
-
. set extra="bg-dark text-white"
|
|
9
|
-
|
|
10
|
-
<!-- "$ad.image" -->
|
|
11
|
-
|
|
12
|
-
<div class="card $extra mb-3">
|
|
13
|
-
<div class="card-body">
|
|
14
|
-
<!--
|
|
15
|
-
<h5 class="card-title">$card.title</h5>
|
|
16
|
-
<p class="card-text">$card.text</p>
|
|
17
|
-
<a href="javascript: void(0)" onclick="javascript:open_main('widgets/ad/ad.html')" class="$classname">Visit page</a>
|
|
18
|
-
-->
|
|
19
|
-
<img style="max-height: 100%; max-width: 100%" src="$ad.image"></img>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
|
data/lib/widgets/ad/ad1.png
DELETED
|
Binary file
|
data/lib/widgets/ad/ad2.png
DELETED
|
Binary file
|
data/lib/widgets/ad/ad3.png
DELETED
|
Binary file
|
data/lib/widgets/ad/ad4.png
DELETED
|
Binary file
|