runeblog 0.2.60 → 0.2.65

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.lt3 +48 -11
  3. data/README.md +50 -11
  4. data/bin/blog +4 -3
  5. data/bin/mkwidget +65 -110
  6. data/empty_view/remote/widgets/ad/GIT_IS_DUMB +2 -0
  7. data/empty_view/remote/widgets/links/GIT_IS_DUMB +2 -0
  8. data/empty_view/remote/widgets/news/GIT_IS_DUMB +2 -0
  9. data/empty_view/remote/widgets/pages/GIT_IS_DUMB +2 -0
  10. data/empty_view/remote/widgets/pinned/GIT_IS_DUMB +2 -0
  11. data/empty_view/themes/standard/blog/generate.lt3 +1 -1
  12. data/empty_view/themes/standard/widgets/pinned/pinned.rb +1 -4
  13. data/lib/liveblog.rb +38 -259
  14. data/lib/repl.rb +4 -0
  15. data/lib/runeblog.rb +6 -17
  16. data/lib/runeblog_version.rb +1 -1
  17. data/test/austin.rb +4 -5
  18. metadata +7 -49
  19. data/empty_view/themes/standard/widgets/bydates/bydates.lt3 +0 -2
  20. data/empty_view/themes/standard/widgets/bydates/local-vars.lt3 +0 -12
  21. data/empty_view/themes/standard/widgets/bydates/pieces/card-head.lt3 +0 -8
  22. data/empty_view/themes/standard/widgets/bydates/pieces/card-tail.lt3 +0 -4
  23. data/empty_view/themes/standard/widgets/bydates/pieces/main-head.lt3 +0 -10
  24. data/empty_view/themes/standard/widgets/bydates/pieces/main-tail.lt3 +0 -4
  25. data/empty_view/themes/standard/widgets/links/links.lt3 +0 -2
  26. data/empty_view/themes/standard/widgets/links/local-vars.lt3 +0 -12
  27. data/empty_view/themes/standard/widgets/links/pieces/card-head.lt3 +0 -8
  28. data/empty_view/themes/standard/widgets/links/pieces/card-tail.lt3 +0 -4
  29. data/empty_view/themes/standard/widgets/links/pieces/main-head.lt3 +0 -10
  30. data/empty_view/themes/standard/widgets/links/pieces/main-tail.lt3 +0 -4
  31. data/empty_view/themes/standard/widgets/news/local-vars.lt3 +0 -12
  32. data/empty_view/themes/standard/widgets/news/news.lt3 +0 -2
  33. data/empty_view/themes/standard/widgets/news/pieces/card-head.lt3 +0 -8
  34. data/empty_view/themes/standard/widgets/news/pieces/card-tail.lt3 +0 -4
  35. data/empty_view/themes/standard/widgets/news/pieces/main-head.lt3 +0 -10
  36. data/empty_view/themes/standard/widgets/news/pieces/main-tail.lt3 +0 -4
  37. data/empty_view/themes/standard/widgets/pages/local-vars.lt3 +0 -12
  38. data/empty_view/themes/standard/widgets/pages/pages.lt3 +0 -2
  39. data/empty_view/themes/standard/widgets/pages/pieces/card-head.lt3 +0 -1
  40. data/empty_view/themes/standard/widgets/pages/pieces/card-tail.lt3 +0 -1
  41. data/empty_view/themes/standard/widgets/pages/pieces/main-head.lt3 +0 -10
  42. data/empty_view/themes/standard/widgets/pages/pieces/main-tail.lt3 +0 -2
  43. data/empty_view/themes/standard/widgets/pinned/local-vars.lt3 +0 -12
  44. data/empty_view/themes/standard/widgets/pinned/pieces/card-head.lt3 +0 -8
  45. data/empty_view/themes/standard/widgets/pinned/pieces/card-tail.lt3 +0 -4
  46. data/empty_view/themes/standard/widgets/pinned/pieces/main-head.lt3 +0 -10
  47. data/empty_view/themes/standard/widgets/pinned/pieces/main-tail.lt3 +0 -4
  48. data/empty_view/themes/standard/widgets/pinned/pinned.lt3 +0 -2
  49. data/empty_view/themes/standard/widgets/search/local-vars.lt3 +0 -12
  50. data/empty_view/themes/standard/widgets/search/pieces/card-head.lt3 +0 -8
  51. data/empty_view/themes/standard/widgets/search/pieces/card-tail.lt3 +0 -4
  52. data/empty_view/themes/standard/widgets/search/pieces/main-head.lt3 +0 -10
  53. data/empty_view/themes/standard/widgets/search/pieces/main-tail.lt3 +0 -4
  54. data/empty_view/themes/standard/widgets/search/search.lt3 +0 -2
  55. data/empty_view/themes/standard/widgets/sitemap/local-vars.lt3 +0 -12
  56. data/empty_view/themes/standard/widgets/sitemap/pieces/card-head.lt3 +0 -8
  57. data/empty_view/themes/standard/widgets/sitemap/pieces/card-tail.lt3 +0 -4
  58. data/empty_view/themes/standard/widgets/sitemap/pieces/main-head.lt3 +0 -10
  59. data/empty_view/themes/standard/widgets/sitemap/pieces/main-tail.lt3 +0 -4
  60. data/empty_view/themes/standard/widgets/sitemap/sitemap.lt3 +0 -2
  61. data/empty_view/themes/standard/widgets/tag-cloud/local-vars.lt3 +0 -12
  62. data/empty_view/themes/standard/widgets/tag-cloud/pieces/card-head.lt3 +0 -8
  63. data/empty_view/themes/standard/widgets/tag-cloud/pieces/card-tail.lt3 +0 -4
  64. data/empty_view/themes/standard/widgets/tag-cloud/pieces/main-head.lt3 +0 -10
  65. data/empty_view/themes/standard/widgets/tag-cloud/pieces/main-tail.lt3 +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2e2d6239b2bc6f88fb80687c6facad5415fac4427618a7b2e47e760d326dc9e
4
- data.tar.gz: 0e051d0b4adcc856fdf39451dfc2e85bcf80c80e4fc96b98edd34f736ac44796
3
+ metadata.gz: 7caeb0a5892f06a910b453c290278ae3950f989d617e9368c9702734eaf75ad0
4
+ data.tar.gz: 033b710cf6b4fc0fe40683fada9e2c560fa26dddc921aa475ec567076e20e0ae
5
5
  SHA512:
6
- metadata.gz: 400005cd7790c4d6af7e098f28c28697ea1a5a7e4b97a80dfcd121143a904f9504493d48f98085bcc07876cabd40f5ecbffcc4a5b7d7d37efca46780fd6ffb1c
7
- data.tar.gz: f0713c12bb117df71c84f0f41ae9fc2d11c0cc9479882b7fe2154b5567dc68d2295bd099b8597fcac209738c86f6c511f256d25443e8bf95e6e9dd2b00b34207
6
+ metadata.gz: 7c6588fb31cc2d2854b93fd1087941e7610f9e322d664c6bd02d64b30e2d7647bd18634b6188c6bbecbb7283d6c5cb43b4cf8b8d5e2f18e52a726f3db8893f20
7
+ data.tar.gz: 01d610980deb44a78467c75347736a1009d462c251dff80b3b5e6398cdbe6b587f06a27f9c88df349ddbaaad3f086e353b06daf325b490d30a014bba6d289260
data/README.lt3 CHANGED
@@ -1,6 +1,6 @@
1
1
  .mixin markdown
2
2
  <div style="float: left; align: left; vertical-align: bottom">
3
- <img src="raido4.png" width="210" height="295" align="left"></img>
3
+ <img src="readme/raido4.png" width="210" height="295" align="left"></img>
4
4
  </div>
5
5
  <h1>runeblog</h1><b>Runeblog</b> is a blogging tool written in Ruby. It has these basic characteristics:
6
6
  <ul>
@@ -80,11 +80,12 @@ a new blog repo. Enter `y for yes.
80
80
 
81
81
  You'll then enter the editor (vim for now) to add configuration info to the `global.lt3 file.
82
82
 
83
- <pre><b>FIXME add menu screenshot here</b></pre>
84
- <pre><b>FIXME add vim screenshot here</b></pre>
83
+ <!-- <pre><b>FIXME add menu screenshot here</b></pre> -->
84
+ <!-- <pre><b>FIXME add vim screenshot here</b></pre> -->
85
+ <img src="readme/vim-global.png" width="494" height="696" align="center"></img>
85
86
 
86
- The next thing you should do is to create at least one view of your own. Use the
87
- `[new view] command for this. Note that the current view is displayed as part of the prompt.
87
+ The next thing you should do is to create at least one view of your own. Use the `[new view]
88
+ command for this. Note that the current view is displayed as part of the prompt.
88
89
 
89
90
  <pre>
90
91
  <b>[no view]</b> new view mystuff<br>
@@ -95,13 +96,13 @@ To create a new post, use the `[new post] command (also abbreviated `post or sim
95
96
  prompted for a title:
96
97
 
97
98
  <pre>
98
- <b>[around_austin]</b> new post<br>
99
+ <b>[mystuff]</b> new post<br>
99
100
  <b>Title:</b> This is my first post
100
101
  </pre>
101
102
 
102
103
  Then you'll be sent into the editor (currently vim but can be others):
103
104
 
104
- <pre><b>FIXME add example here</b></pre>
105
+ <img src="readme/edit-first.png" width="506" height="383" align="center"></img>
105
106
 
106
107
  <pre>
107
108
  <b>FIXME wizard?</b>
@@ -118,7 +119,7 @@ browse...
118
119
 
119
120
  You can use the `config command to choose a file to edit.
120
121
 
121
- <pre><b>FIXME add screenshot here</b></pre>
122
+ <img src="readme/config-menu.png" width="700" height="547" align="center"></img>
122
123
 
123
124
  The meaning and interaction of these files will be explained later. *FIXME
124
125
 
@@ -127,6 +128,42 @@ are needed.
127
128
 
128
129
  .h2 The directory structure for a view
129
130
 
131
+ <b>Subject to change</b>
132
+ TBD: Add details
133
+
134
+ <pre>
135
+ .blogs/views/mystuff/
136
+ ├── assets
137
+ ├── posts
138
+ ├── remote
139
+ │   ├── assets
140
+ │   ├── banner
141
+ │   ├── etc
142
+ │   ├── permalink
143
+ │   └── widgets
144
+ │   ├── ad
145
+ │   ├── links
146
+ │   ├── news
147
+ │   ├── pages
148
+ │   └── pinned
149
+ └── themes
150
+ └── standard
151
+ ├── banner
152
+ ├── blog
153
+ ├── etc
154
+ ├── post
155
+ └── widgets
156
+ ├── ad
157
+ ├── bydates
158
+ ├── links
159
+ ├── news
160
+ ├── pages
161
+ ├── pinned
162
+ ├── search
163
+ ├── sitemap
164
+ └── tag-cloud
165
+ </pre>
166
+
130
167
  <pre><b>FIXME add details here</b></pre>
131
168
 
132
169
 
@@ -157,11 +194,11 @@ are needed.
157
194
  <b>Predefined functions and variables</b>
158
195
  <pre>
159
196
  \$File
160
- \$\$date
197
+ `[\$\$date]
161
198
  etc.
162
199
  </pre>
163
200
 
164
- .h2 Runeblog-specific features (Liveblog</b>
201
+ .h2 Runeblog-specific features (Liveblog)</b>
165
202
 
166
203
  <b>TBD</b>
167
204
 
@@ -224,7 +261,7 @@ are needed.
224
261
 
225
262
  <b>Creating your own widgets</b>
226
263
 
227
- <b>Special tags coming "soon"</b>
264
+ <b>Special tags/functions coming "soon"</b>
228
265
  <pre>
229
266
  github, gitlab, gist
230
267
  wikipedia
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <div style="float: left; align: left; vertical-align: bottom">
2
- <img src="raido4.png" width="210" height="295" align="left"></img>
2
+ <img src="readme/raido4.png" width="210" height="295" align="left"></img>
3
3
  </div>
4
4
  <h1>runeblog</h1><b>Runeblog</b> is a blogging tool written in Ruby. It has these basic characteristics:
5
5
  <ul>
@@ -82,12 +82,13 @@ a new blog repo. Enter y for yes.
82
82
  You'll then enter the editor (vim for now) to add configuration info to the <font size=+1><tt>global.lt3</tt></font> file.
83
83
  <p>
84
84
 
85
- <pre><b>FIXME add menu screenshot here</b></pre>
86
- <pre><b>FIXME add vim screenshot here</b></pre>
85
+ <!-- <pre><b>FIXME add menu screenshot here</b></pre> -->
86
+ <!-- <pre><b>FIXME add vim screenshot here</b></pre> -->
87
+ <img src="readme/vim-global.png" width="494" height="696" align="center"></img>
87
88
  <p>
88
89
 
89
- The next thing you should do is to create at least one view of your own. Use the
90
- `[new view] command for this. Note that the current view is displayed as part of the prompt.
90
+ The next thing you should do is to create at least one view of your own. Use the <font size=+1><tt>new view</tt></font>
91
+ command for this. Note that the current view is displayed as part of the prompt.
91
92
  <p>
92
93
 
93
94
  <pre>
@@ -101,7 +102,7 @@ prompted for a title:
101
102
  <p>
102
103
 
103
104
  <pre>
104
- <b>[around_austin]</b> new post<br>
105
+ <b>[mystuff]</b> new post<br>
105
106
  <b>Title:</b> This is my first post
106
107
  </pre>
107
108
  <p>
@@ -109,7 +110,7 @@ prompted for a title:
109
110
  Then you'll be sent into the editor (currently vim but can be others):
110
111
  <p>
111
112
 
112
- <pre><b>FIXME add example here</b></pre>
113
+ <img src="readme/edit-first.png" width="506" height="383" align="center"></img>
113
114
  <p>
114
115
 
115
116
  <pre>
@@ -129,7 +130,7 @@ browse...
129
130
  You can use the <font size=+1><tt>config</tt></font> command to choose a file to edit.
130
131
  <p>
131
132
 
132
- <pre><b>FIXME add screenshot here</b></pre>
133
+ <img src="readme/config-menu.png" width="700" height="547" align="center"></img>
133
134
  <p>
134
135
 
135
136
  The meaning and interaction of these files will be explained later. <b>FIXME</b>
@@ -140,6 +141,44 @@ are needed.
140
141
  <p>
141
142
 
142
143
  ## The directory structure for a view
144
+ <b>Subject to change</b>
145
+ TBD: Add details
146
+ <p>
147
+
148
+ <pre>
149
+ .blogs/views/mystuff/
150
+ ├── assets
151
+ ├── posts
152
+ ├── remote
153
+ │   ├── assets
154
+ │   ├── banner
155
+ │   ├── etc
156
+ │   ├── permalink
157
+ │   └── widgets
158
+ │   ├── ad
159
+ │   ├── links
160
+ │   ├── news
161
+ │   ├── pages
162
+ │   └── pinned
163
+ └── themes
164
+ └── standard
165
+ ├── banner
166
+ ├── blog
167
+ ├── etc
168
+ ├── post
169
+ └── widgets
170
+ ├── ad
171
+ ├── bydates
172
+ ├── links
173
+ ├── news
174
+ ├── pages
175
+ ├── pinned
176
+ ├── search
177
+ ├── sitemap
178
+ └── tag-cloud
179
+ </pre>
180
+ <p>
181
+
143
182
  <pre><b>FIXME add details here</b></pre>
144
183
  <p>
145
184
 
@@ -175,12 +214,12 @@ are needed.
175
214
  <b>Predefined functions and variables</b>
176
215
  <pre>
177
216
  $File
178
- $\[date is undefined]
217
+ <font size=+1><tt></tt></font>
179
218
  etc.
180
219
  </pre>
181
220
  <p>
182
221
 
183
- ## Runeblog-specific features (Liveblog</b>
222
+ ## Runeblog-specific features (Liveblog)</b>
184
223
  <b>TBD</b>
185
224
  <p>
186
225
 
@@ -252,7 +291,7 @@ are needed.
252
291
  <b>Creating your own widgets</b>
253
292
  <p>
254
293
 
255
- <b>Special tags coming "soon"</b>
294
+ <b>Special tags/functions coming "soon"</b>
256
295
  <pre>
257
296
  github, gitlab, gist
258
297
  wikipedia
data/bin/blog CHANGED
@@ -56,10 +56,11 @@ end
56
56
 
57
57
  def cmdline_rebuild
58
58
  _need_view
59
- puts "Generating view..."
59
+ print "Generating view... "
60
60
  @blog.generate_view(@view)
61
- puts "Generating index..."
62
- @blog.generate_index(@view)
61
+ print "Generating index... "
62
+ num = @blog.generate_index(@view)
63
+ puts "#{num} posts\n "
63
64
  end
64
65
 
65
66
  def handle_cmdline
@@ -1,96 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- =begin
3
- std-widget/
4
- std-widget/local-vars.lt3
5
- std-widget//list.data
6
- std-widget//pieces
7
- std-widget//pieces/card-head.lt3
8
- std-widget//pieces/card-tail.lt3
9
- std-widget//pieces/card.css
10
- std-widget//pieces/main-head.lt3
11
- std-widget//pieces/main-tail.lt3
12
- std-widget//pieces/main.css
13
- std-widget//README
14
- std-widget//WIDGET.lt3
15
- std-widget//WIDGET.rb
16
- =end
17
-
18
- # FIXME Also fix the
19
-
20
- def write_local_vars
21
- File.open("std_widget/local-vars.lt3", "w") do |f|
22
- f.puts <<~LIVE
23
- # #@app: #@title
24
- .set widget.name = "#@title"
25
-
26
- . heredocs (in case of embedded commas)
27
-
28
- .heredoc card.title
29
- $widget.name
30
- .end
31
-
32
- .heredoc main.title
33
- $widget.name
34
- .end
35
- LIVE
36
- end
37
- end
38
2
 
39
- def write_card_head
40
- File.open("std_widget/pieces/card-head.lt3", "w") do |f|
41
- f.puts <<~LIVE
42
- .include ../local_vars.lt3
43
- . Material (if any) to go before card data
44
- <html>
45
- <head>
46
- <style src="card.css"></style>
47
- </head>
48
- <body>
49
- <h1>#@title</h1>
50
- LIVE
51
- # </html> damned syntax highlighting
52
- end
53
- end
54
-
55
- def write_card_tail
56
- File.open("std_widget/pieces/card-tail.lt3", "w") do |f|
57
- f.puts <<~LIVE
58
- .include ../local_vars.lt3
59
- . Material (if any) to go after main data
60
- </body>
61
- </html>
62
- LIVE
63
- # </html> damned syntax highlighting
64
- end
65
- end
66
-
67
- def write_main_head
68
- File.open("std_widget/pieces/main-head.lt3", "w") do |f|
69
- f.puts <<~LIVE
70
- .include ../local_vars.lt3
71
- . Material (if any) to go before main data
72
- <html>
73
- <head>
74
- <style src="main.css"></style>
75
- </head>
76
- <body>
77
- <h1>$card.title</h1>
78
- LIVE
79
- # </html> damned syntax highlighting
80
- end
81
- end
82
-
83
- def write_main_tail
84
- File.open("std_widget/pieces/main-tail.lt3", "w") do |f|
85
- f.puts <<~LIVE
86
- .include ../local_vars.lt3
87
- . Material (if any) to go after main data
88
- </body>
89
- </html>
90
- LIVE
91
- # </html> damned syntax highlighting
92
- end
93
- end
94
3
 
95
4
  def write_css
96
5
  # Need .lt3 file?
@@ -123,13 +32,75 @@ def write_widget_ruby
123
32
 
124
33
  class ::RuneBlog::Widget
125
34
  class #{_make_class_name(@app)}
126
- def self.build
35
+ Type, Title = "#@app", "#@title"
36
+
37
+ def initialize(repo)
38
+ @blog = repo
39
+ @datafile = "list.data"
40
+ @lines = File.exist?(@datafile) ? File.readlines(@datafile) : []
41
+ end
42
+
43
+ def _html_body(file, css = nil) # FIXME move to common file
44
+ file.puts "<html>"
45
+ if css
46
+ file.puts " <head>"
47
+ file.puts " <style>\n#{css}\n </style>"
48
+ file.puts " </head>"
49
+ end
50
+ file.puts " <body>"
51
+ yield
52
+ file.puts " </body>\n</html>"
53
+ end
54
+
55
+ def build
56
+ # ...insert logic here
57
+ write_main
58
+ write_card
59
+ end
60
+
61
+ def write_main
62
+ tag = Type
63
+ card_title = Title
64
+ css = "* { font-family: verdana }"
65
+ mainfile = "#{tag}-main"
66
+ File.open("#{mainfile}.html", "w") do |f|
67
+ _html_body(f, css) do
68
+ f.puts "<h1>#{card_title}</h1><br><hr>"
69
+ # ...insert logic here
70
+ end
71
+ end
72
+ end
73
+
74
+ def write_card
75
+ tag = Type
76
+ url = :widgets/tag/tag+"-main.html"
77
+ card_title = Title
78
+ cardfile = "#{tag}-card"
79
+ File.open("#{cardfile}.html", "w") do |f|
80
+ f.puts <<-EOS
81
+ <div class="card mb-3">
82
+ <div class="card-body">
83
+ <h5 class="card-title">
84
+ <button type="button" class="btn btn-primary" data-toggle="collapse" data-target="##{tag}">+</button>
85
+ <a href="javascript: void(0)"
86
+ onclick="javascript:open_main('#{url}')"
87
+ style="text-decoration: none; color: black"> #{card_title}</a>
88
+ </h5>
89
+ <div class="collapse" id="#{tag}">
90
+ EOS
91
+ # ...insert logic here
92
+ f.puts <<-EOS
93
+ </div>
94
+ </div>
95
+ </div>
96
+ EOS
97
+ end
127
98
  end
128
99
 
129
- def self.edit_menu
100
+ def edit_menu
130
101
  end
131
102
 
132
- def self.refresh
103
+ def refresh
133
104
  end
134
105
  end
135
106
  end
@@ -137,15 +108,6 @@ def write_widget_ruby
137
108
  end
138
109
  end
139
110
 
140
- def write_widget_livetext
141
- File.open("std_widget/#@app.lt3", "w") do |f|
142
- f.puts <<~LIVE
143
- .mixin liveblog
144
- .make_main_links #@app #@title
145
- LIVE
146
- end
147
- end
148
-
149
111
  def write_custom_ruby
150
112
  File.open("std_widget/custom.rb", "w") do |f|
151
113
  f.puts <<~LIVE
@@ -194,15 +156,8 @@ abort 'Need app, "title..."' if ARGV.empty?
194
156
  system("rm -rf std_widget")
195
157
  system("mkdir -p std_widget/pieces")
196
158
 
197
- write_local_vars
198
- write_main_head
199
- write_main_tail
200
- write_card_head
201
- write_card_tail
202
159
  write_css
203
-
204
160
  write_widget_ruby
205
- write_widget_livetext
206
161
  write_custom_ruby
207
162
  write_README
208
163