runeblog 0.3.02

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/README.lt3 +279 -0
  3. data/README.md +312 -0
  4. data/bin/blog +200 -0
  5. data/bin/mkwidget +164 -0
  6. data/data/EDITOR +1 -0
  7. data/data/ROOT +1 -0
  8. data/data/VIEW +1 -0
  9. data/data/features.txt +18 -0
  10. data/data/global.lt3 +20 -0
  11. data/data/universal.lt3 +18 -0
  12. data/empty_view/assets/austin-pano.jpg +0 -0
  13. data/empty_view/assets/sky2.jpg +0 -0
  14. data/empty_view/config/exper/2svg.lt3 +38 -0
  15. data/empty_view/config/exper/gen_svg.rb +60 -0
  16. data/empty_view/config/exper/meta.html +10 -0
  17. data/empty_view/config/exper/s2.html +25 -0
  18. data/empty_view/config/exper/varmint.rb +50 -0
  19. data/empty_view/config/facebook/credentials.txt +7 -0
  20. data/empty_view/config/facebook/facebook.rb +42 -0
  21. data/empty_view/config/facebook/fb.html +10 -0
  22. data/empty_view/config/facebook/fb.js.lt3 +15 -0
  23. data/empty_view/config/reddit/credentials.txt +6 -0
  24. data/empty_view/config/reddit/notes.txt +4 -0
  25. data/empty_view/config/reddit/reddit_post_url.py +34 -0
  26. data/empty_view/config/reddit/redpost.rb +43 -0
  27. data/empty_view/config/reddit/the-graffiti-wall.html +91 -0
  28. data/empty_view/config/twitter/credentials.txt +3 -0
  29. data/empty_view/config/twitter/tw.html +12 -0
  30. data/empty_view/config/twitter/tw.js +5 -0
  31. data/empty_view/config/twitter/twitter.rb +35 -0
  32. data/empty_view/posts/GIT_IS_DUMB +1 -0
  33. data/empty_view/remote/assets/GIT_IS_DUMB +1 -0
  34. data/empty_view/remote/banner/navbar/GIT_IS_DUMB +0 -0
  35. data/empty_view/remote/etc/GIT_IS_DUMB +1 -0
  36. data/empty_view/remote/permalink/GIT_IS_DUMB +1 -0
  37. data/empty_view/remote/widgets/ad/GIT_IS_DUMB +2 -0
  38. data/empty_view/remote/widgets/links/GIT_IS_DUMB +2 -0
  39. data/empty_view/remote/widgets/news/GIT_IS_DUMB +2 -0
  40. data/empty_view/remote/widgets/pages/GIT_IS_DUMB +2 -0
  41. data/empty_view/remote/widgets/pinned/GIT_IS_DUMB +2 -0
  42. data/empty_view/settings/features.txt +18 -0
  43. data/empty_view/settings/publish.txt +5 -0
  44. data/empty_view/settings/recent.txt +6 -0
  45. data/empty_view/settings/view.txt +4 -0
  46. data/empty_view/themes/standard/README +59 -0
  47. data/empty_view/themes/standard/banner/banner.lt3 +5 -0
  48. data/empty_view/themes/standard/banner/navbar/about.lt3 +18 -0
  49. data/empty_view/themes/standard/banner/navbar/contact.lt3 +18 -0
  50. data/empty_view/themes/standard/banner/navbar/faq.lt3 +1 -0
  51. data/empty_view/themes/standard/banner/navbar/list.data +3 -0
  52. data/empty_view/themes/standard/banner/top.lt3 +20 -0
  53. data/empty_view/themes/standard/blog/generate.lt3 +21 -0
  54. data/empty_view/themes/standard/blog/head.lt3 +16 -0
  55. data/empty_view/themes/standard/blog/index.lt3 +17 -0
  56. data/empty_view/themes/standard/blog/post_entry.lt3 +21 -0
  57. data/empty_view/themes/standard/etc/blog.css.lt3 +62 -0
  58. data/empty_view/themes/standard/etc/externals.lt3 +24 -0
  59. data/empty_view/themes/standard/etc/favicon.ico +0 -0
  60. data/empty_view/themes/standard/etc/misc.js +20 -0
  61. data/empty_view/themes/standard/post/generate.lt3 +38 -0
  62. data/empty_view/themes/standard/post/head.lt3 +7 -0
  63. data/empty_view/themes/standard/post/index.lt3 +24 -0
  64. data/empty_view/themes/standard/post/permalink.lt3 +32 -0
  65. data/empty_view/themes/standard/widgets/README +4 -0
  66. data/empty_view/themes/standard/widgets/ad/ad.lt3 +22 -0
  67. data/empty_view/themes/standard/widgets/ad/ad1.png +0 -0
  68. data/empty_view/themes/standard/widgets/ad/ad2.png +0 -0
  69. data/empty_view/themes/standard/widgets/ad/ad3.png +0 -0
  70. data/empty_view/themes/standard/widgets/ad/ad4.png +0 -0
  71. data/empty_view/themes/standard/widgets/bydates/README +2 -0
  72. data/empty_view/themes/standard/widgets/bydates/bydates.rb +18 -0
  73. data/empty_view/themes/standard/widgets/bydates/card.css +1 -0
  74. data/empty_view/themes/standard/widgets/bydates/custom.rb +1 -0
  75. data/empty_view/themes/standard/widgets/bydates/main.css +2 -0
  76. data/empty_view/themes/standard/widgets/links/README +2 -0
  77. data/empty_view/themes/standard/widgets/links/card.css +1 -0
  78. data/empty_view/themes/standard/widgets/links/custom.rb +1 -0
  79. data/empty_view/themes/standard/widgets/links/links.rb +90 -0
  80. data/empty_view/themes/standard/widgets/links/list.data +3 -0
  81. data/empty_view/themes/standard/widgets/links/main.css +2 -0
  82. data/empty_view/themes/standard/widgets/news/README +2 -0
  83. data/empty_view/themes/standard/widgets/news/card.css +1 -0
  84. data/empty_view/themes/standard/widgets/news/custom.rb +1 -0
  85. data/empty_view/themes/standard/widgets/news/list.data +4 -0
  86. data/empty_view/themes/standard/widgets/news/main.css +2 -0
  87. data/empty_view/themes/standard/widgets/news/news.rb +88 -0
  88. data/empty_view/themes/standard/widgets/pages/README +2 -0
  89. data/empty_view/themes/standard/widgets/pages/card.css +1 -0
  90. data/empty_view/themes/standard/widgets/pages/custom.rb +1 -0
  91. data/empty_view/themes/standard/widgets/pages/disclaim.lt3 +10 -0
  92. data/empty_view/themes/standard/widgets/pages/faq.lt3 +40 -0
  93. data/empty_view/themes/standard/widgets/pages/like-dislike.lt3 +11 -0
  94. data/empty_view/themes/standard/widgets/pages/list.data +4 -0
  95. data/empty_view/themes/standard/widgets/pages/local.rb +0 -0
  96. data/empty_view/themes/standard/widgets/pages/main.css +2 -0
  97. data/empty_view/themes/standard/widgets/pages/other-stuff.lt3 +10 -0
  98. data/empty_view/themes/standard/widgets/pages/pages.rb +95 -0
  99. data/empty_view/themes/standard/widgets/pinned/README +2 -0
  100. data/empty_view/themes/standard/widgets/pinned/card.css +1 -0
  101. data/empty_view/themes/standard/widgets/pinned/custom.rb +1 -0
  102. data/empty_view/themes/standard/widgets/pinned/main.css +2 -0
  103. data/empty_view/themes/standard/widgets/pinned/pinned.rb +99 -0
  104. data/empty_view/themes/standard/widgets/search/README +2 -0
  105. data/empty_view/themes/standard/widgets/search/card.css +1 -0
  106. data/empty_view/themes/standard/widgets/search/custom.rb +1 -0
  107. data/empty_view/themes/standard/widgets/search/main.css +2 -0
  108. data/empty_view/themes/standard/widgets/search/search.rb +18 -0
  109. data/empty_view/themes/standard/widgets/sitemap/README +2 -0
  110. data/empty_view/themes/standard/widgets/sitemap/card.css +1 -0
  111. data/empty_view/themes/standard/widgets/sitemap/custom.rb +1 -0
  112. data/empty_view/themes/standard/widgets/sitemap/main.css +2 -0
  113. data/empty_view/themes/standard/widgets/sitemap/sitemap.rb +18 -0
  114. data/empty_view/themes/standard/widgets/tag-cloud/OLD-example.lt3 +12 -0
  115. data/empty_view/themes/standard/widgets/tag-cloud/README +2 -0
  116. data/empty_view/themes/standard/widgets/tag-cloud/card.css +1 -0
  117. data/empty_view/themes/standard/widgets/tag-cloud/custom.rb +1 -0
  118. data/empty_view/themes/standard/widgets/tag-cloud/main.css +2 -0
  119. data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +3 -0
  120. data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb +18 -0
  121. data/lib/Javascript.stuff +69 -0
  122. data/lib/helpers-blog.rb +155 -0
  123. data/lib/helpers-repl.rb +201 -0
  124. data/lib/liveblog.rb +825 -0
  125. data/lib/logging.rb +44 -0
  126. data/lib/lowlevel.rb +73 -0
  127. data/lib/pathmagic.rb +14 -0
  128. data/lib/post.rb +211 -0
  129. data/lib/processing.rb +60 -0
  130. data/lib/publish.rb +73 -0
  131. data/lib/repl.rb +597 -0
  132. data/lib/runeblog.rb +773 -0
  133. data/lib/runeblog_version.rb +50 -0
  134. data/lib/view.rb +69 -0
  135. data/runeblog.gemspec +42 -0
  136. data/test/austin.rb +158 -0
  137. data/test/fakeimage.jpg +0 -0
  138. data/test/general_test.rb +304 -0
  139. data/test/make_blog.rb +196 -0
  140. data/test/test +3 -0
  141. metadata +242 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: af242702c47c1cad260040a42b4fe58f5fb84e83934bfa80e0f12fd3e7083c9c
4
+ data.tar.gz: 90b1d17454ce166e5c89b1c8ed6cc43f129a708a14200b94a1bb5c2a5a721a7b
5
+ SHA512:
6
+ metadata.gz: a70f36f01ebdfc94db5b6794b8975b876b0255b154d8393d87e7728f19010c478daaa93462cbb21aa0bee539c4d4a922640d8c92f7f3707538974d5cbe60f65d
7
+ data.tar.gz: 50d5b646a4fa6e050f0aedb2789371c61fd5115ce35d03051b3ce690f113b47182782951ac8a6e7742bbf1316e7791fcccfd653d2d67911bf75b4bf3e62ae4a6
@@ -0,0 +1,279 @@
1
+ .mixin markdown
2
+ <div style="float: left; align: left; vertical-align: bottom">
3
+ <img src="readme/raido4.png" width="210" height="295" align="left"></img>
4
+ </div>
5
+ <h1>runeblog</h1><b>Runeblog</b> is a blogging tool written in Ruby. It has these basic characteristics:
6
+ <ul>
7
+ <li>It is usable entirely in text mode from the terminal</li>
8
+ <li>It publishes web pages as static HTML</li>
9
+ <li>So far, yes, like Jekyll</li>
10
+ <li>It's based on Livetext (highly extensible Ruby-based markup)</li>
11
+ <li>It has the concept of multiple "views" for a blog</li>
12
+ <li>The multiple views are in effect multiple blogs managed with the same backend.</li>
13
+ </ul>
14
+
15
+
16
+
17
+ .h2 What is Livetext?
18
+
19
+ Livetext is a markup format that is a throwback to the old, old days of text
20
+ formatters such as ``nroff. It's very flexible, and it is extensible _[in Ruby].
21
+
22
+ It is far from mature or full-featured, but it is usable. Runeblog uses Livetext,
23
+ along with some custom definitions, to try to ease the formatting of a blog entry.
24
+
25
+ .h2 What are "views"?
26
+
27
+ Think of them as multiple separate blogs with the same backend. Why would you
28
+ want to do this? Maybe you wouldn't, but I do.
29
+
30
+ The purpose is to present different "faces" to different audiences. In my case,
31
+ my computing-related stuff would go into one view, and my hometown-related things
32
+ would go into another. There might be a view that only old friends or close friends
33
+ can see. There might be a view purely for reviews of music, books, and movies.
34
+
35
+ But the important points are these:
36
+
37
+ .list
38
+ <i>All</i> the views will be managed the same way in the same place, and they will all share common data.
39
+ Any post can easily be included in a single view, in more than one, or in all of them.
40
+ Each view can have its own look and feel, and it can be linked/published separately from the others.
41
+ Each view can be hosted in a different location and/or a different server and domain
42
+ Any post can be in more than one view
43
+ .end
44
+
45
+ .h2 The <tt>blog</tt> environment
46
+
47
+ There is a command-line tool called `blog which is a REPL (read-eval-print loop).
48
+ Note that this tool is a curses-based environment (mainly so it can display menus
49
+ and such to the user).
50
+
51
+ The help message looks like this:
52
+
53
+ .mono
54
+ <b>Basics:</b> <b>Views:</b>
55
+ ------------------------------------------- -------------------------------------------
56
+ <b>h, help</b> This message <b>change view VIEW</b> Change current view
57
+ <b>q, quit</b> Exit the program <b>cv VIEW</b> Change current view
58
+ <b>v, version</b> Print version information <b>new view</b> Create a new view
59
+ <b>clear</b> Clear screen <b>list views</b> List all views available
60
+ <b>lsv</b> Same as: list views
61
+ <br>
62
+ <b>Posts:</b> <b>Advanced:</b>
63
+ ------------------------------------------- -------------------------------------------
64
+ <b>p, post</b> Create a new post <b>config</b> Edit various system files
65
+ <b>new post</b> Same as p, post <b>customize</b> (BUGGY) Change set of tags, extra views
66
+ <b>lsp, list posts</b> List posts in current view <b>preview</b> Look at current (local) view in browser
67
+ <b>lsd, list drafts</b> List all drafts (all views) <b>browse</b> Look at current (published) view in browser
68
+ <b>delete ID [ID...]</b> Remove multiple posts <b>rebuild</b> Regenerate all posts and relink
69
+ <b>undelete ID</b> Undelete a post <b>publish</b> Publish (current view)
70
+ <b>edit ID</b> Edit a post <b>ssh</b> Login to remote server
71
+ <b>import ASSETS</b> Import assets (images, etc.) <b>manage WIDGET</b> Manage content/layout of a widget
72
+ .end
73
+
74
+ .h2 Getting started
75
+
76
+ But when you first run the REPL, it checks for an existing blog repository under
77
+ the `[.blogs] directory. If it doesn't find one, it asks whether you want to create
78
+ a new blog repo. Enter `y for yes.
79
+ . If you enter `y for yes, it creates a sort of "skeleton" with a single view called `[test_view].
80
+
81
+ You'll then enter the editor (vim for now) to add configuration info to the `global.lt3 file.
82
+
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>
86
+
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.
89
+
90
+ <pre>
91
+ <b>[no view]</b> new view mystuff<br>
92
+ <b>[mystuff]</b>
93
+ </pre>
94
+
95
+ To create a new post, use the `[new post] command (also abbreviated `post or simply `[p]). You will be
96
+ prompted for a title:
97
+
98
+ <pre>
99
+ <b>[mystuff]</b> new post<br>
100
+ <b>Title:</b> This is my first post
101
+ </pre>
102
+
103
+ Then you'll be sent into the editor (currently vim but can be others):
104
+
105
+ <img src="readme/edit-first.png" width="506" height="383" align="center"></img>
106
+
107
+ <pre>
108
+ <b>FIXME wizard?</b>
109
+ (publishing one-time setup - server, ssh keys, etc.)
110
+ preview...
111
+ publish...
112
+ browse...
113
+ (and so on)
114
+ </pre>
115
+
116
+ <b>To be continued</b>
117
+
118
+ .h2 Customizing the default templates and configuration
119
+
120
+ You can use the `config command to choose a file to edit.
121
+
122
+ <img src="readme/config-menu.png" width="700" height="547" align="center"></img>
123
+
124
+ The meaning and interaction of these files will be explained later. *FIXME
125
+
126
+ When you make changes, `rebuild will detect these and regenerate whatever files
127
+ are needed.
128
+
129
+ .h2 The directory structure for a view
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
+
167
+ <pre><b>FIXME add details here</b></pre>
168
+
169
+
170
+ .h2 Basics of Livetext
171
+
172
+ <b>TBD</b>
173
+
174
+ <b>Bold, italics, etc.</b>
175
+ single, double, bracketed
176
+
177
+ <b>Common dot commands)
178
+ <pre>
179
+ .debug
180
+ .say
181
+ .nopara
182
+ .quit
183
+ indented dot-commands
184
+ </pre>
185
+
186
+ <b>Using external files</b>
187
+ <pre>
188
+ .mixin
189
+ .include
190
+ .copy
191
+ .seek
192
+ </pre>
193
+
194
+ <b>Predefined functions and variables</b>
195
+ <pre>
196
+ \$File
197
+ `[\$\$date]
198
+ etc.
199
+ </pre>
200
+
201
+ .h2 Runeblog-specific features (Liveblog)</b>
202
+
203
+ <b>TBD</b>
204
+
205
+ <b>Dot commands - the basics</b>
206
+ <pre>
207
+ .mixin liveblog
208
+ .post
209
+ .title
210
+ .views
211
+ .tags
212
+ .teaser
213
+ </pre>
214
+
215
+ <b>Dot commands - more advanced</b>
216
+ <pre>
217
+ .image
218
+ .inset
219
+ .dropcap
220
+ .pin
221
+ </pre>
222
+
223
+ <b>Variables and functions</b>
224
+ <pre>
225
+ \$view, etc.
226
+ \$\$date, \$\$link, etc.
227
+ </pre>
228
+
229
+
230
+ .h2 Defining your own features
231
+
232
+ <b>Dot commands, variables, functions</b>
233
+ <pre>
234
+ .def/.end
235
+ .set
236
+ .variables
237
+ .heredoc
238
+ .func
239
+ </pre>
240
+
241
+ <b>Defining these in Ruby</b>
242
+
243
+
244
+ .h2 More topics
245
+
246
+ <b>Meta tags, etc.</b>
247
+ <b>CSS</b>
248
+
249
+ <b>Widgets</b>
250
+ <pre>
251
+ pages
252
+ links
253
+ pinned
254
+ faq
255
+ sitemap
256
+ news
257
+ etc.
258
+ </pre>
259
+
260
+ <b>Banner and navbar</b>
261
+
262
+ <b>Creating your own widgets</b>
263
+
264
+ <b>Special tags/functions coming "soon"</b>
265
+ <pre>
266
+ github, gitlab, gist
267
+ wikipedia
268
+ youtube, vimeo
269
+ twitter, instagram
270
+ etc.
271
+ </pre>
272
+
273
+
274
+ <b>TBD</b>
275
+
276
+ .h2 More later...
277
+
278
+ <b>TBD</b>
279
+
@@ -0,0 +1,312 @@
1
+ <div style="float: left; align: left; vertical-align: bottom">
2
+ <img src="readme/raido4.png" width="210" height="295" align="left"></img>
3
+ </div>
4
+ <h1>runeblog</h1><b>Runeblog</b> is a blogging tool written in Ruby. It has these basic characteristics:
5
+ <ul>
6
+ <li>It is usable entirely in text mode from the terminal</li>
7
+ <li>It publishes web pages as static HTML</li>
8
+ <li>So far, yes, like Jekyll</li>
9
+ <li>It's based on Livetext (highly extensible Ruby-based markup)</li>
10
+ <li>It has the concept of multiple "views" for a blog</li>
11
+ <li>The multiple views are in effect multiple blogs managed with the same backend.</li>
12
+ </ul>
13
+ <p>
14
+
15
+ <p>
16
+
17
+ <p>
18
+
19
+ ## What is Livetext?
20
+ Livetext is a markup format that is a throwback to the old, old days of text
21
+ formatters such as <font size=+1><tt>roff</tt></font> It's very flexible, and it is extensible <i>in Ruby</i>.
22
+ <p>
23
+
24
+ It is far from mature or full-featured, but it is usable. Runeblog uses Livetext,
25
+ along with some custom definitions, to try to ease the formatting of a blog entry.
26
+ <p>
27
+
28
+ ## What are "views"?
29
+ Think of them as multiple separate blogs with the same backend. Why would you
30
+ want to do this? Maybe you wouldn't, but I do.
31
+ <p>
32
+
33
+ The purpose is to present different "faces" to different audiences. In my case,
34
+ my computing-related stuff would go into one view, and my hometown-related things
35
+ would go into another. There might be a view that only old friends or close friends
36
+ can see. There might be a view purely for reviews of music, books, and movies.
37
+ <p>
38
+
39
+ But the important points are these:
40
+ <p>
41
+
42
+ * <i>All</i> the views will be managed the same way in the same place, and they will all share common data.
43
+ * Any post can easily be included in a single view, in more than one, or in all of them.
44
+ * Each view can have its own look and feel, and it can be linked/published separately from the others.
45
+ * Each view can be hosted in a different location and/or a different server and domain
46
+ * Any post can be in more than one view
47
+ ## The <tt>blog</tt> environment
48
+ There is a command-line tool called <font size=+1><tt>blog</tt></font> which is a REPL (read-eval-print loop).
49
+ Note that this tool is a curses-based environment (mainly so it can display menus
50
+ and such to the user).
51
+ <p>
52
+
53
+ The help message looks like this:
54
+ <p>
55
+
56
+ <pre>
57
+ <b>Basics:</b> <b>Views:</b>
58
+ ------------------------------------------- -------------------------------------------
59
+ <b>h, help</b> This message <b>change view VIEW</b> Change current view
60
+ <b>q, quit</b> Exit the program <b>cv VIEW</b> Change current view
61
+ <b>v, version</b> Print version information <b>new view</b> Create a new view
62
+ <b>clear</b> Clear screen <b>list views</b> List all views available
63
+ <b>lsv</b> Same as: list views
64
+ <br>
65
+ <b>Posts:</b> <b>Advanced:</b>
66
+ ------------------------------------------- -------------------------------------------
67
+ <b>p, post</b> Create a new post <b>config</b> Edit various system files
68
+ <b>new post</b> Same as p, post <b>customize</b> (BUGGY) Change set of tags, extra views
69
+ <b>lsp, list posts</b> List posts in current view <b>preview</b> Look at current (local) view in browser
70
+ <b>lsd, list drafts</b> List all drafts (all views) <b>browse</b> Look at current (published) view in browser
71
+ <b>delete ID [ID...]</b> Remove multiple posts <b>rebuild</b> Regenerate all posts and relink
72
+ <b>undelete ID</b> Undelete a post <b>publish</b> Publish (current view)
73
+ <b>edit ID</b> Edit a post <b>ssh</b> Login to remote server
74
+ <b>import ASSETS</b> Import assets (images, etc.) <b>manage WIDGET</b> Manage content/layout of a widget
75
+ </pre>
76
+ ## Getting started
77
+ But when you first run the REPL, it checks for an existing blog repository under
78
+ the <font size=+1><tt>.blogs</tt></font> directory. If it doesn't find one, it asks whether you want to create
79
+ a new blog repo. Enter <font size=+1><tt>y</tt></font> for yes.
80
+ <p>
81
+
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
+ <p>
84
+
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>
88
+ <p>
89
+
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.
92
+ <p>
93
+
94
+ <pre>
95
+ <b>[no view]</b> new view mystuff<br>
96
+ <b>[mystuff]</b>
97
+ </pre>
98
+ <p>
99
+
100
+ To create a new post, use the <font size=+1><tt>new post</tt></font> command (also abbreviated <font size=+1><tt>post</tt></font> or simply <font size=+1><tt>p</tt></font>). You will be
101
+ prompted for a title:
102
+ <p>
103
+
104
+ <pre>
105
+ <b>[mystuff]</b> new post<br>
106
+ <b>Title:</b> This is my first post
107
+ </pre>
108
+ <p>
109
+
110
+ Then you'll be sent into the editor (currently vim but can be others):
111
+ <p>
112
+
113
+ <img src="readme/edit-first.png" width="506" height="383" align="center"></img>
114
+ <p>
115
+
116
+ <pre>
117
+ <b>FIXME wizard?</b>
118
+ (publishing one-time setup - server, ssh keys, etc.)
119
+ preview...
120
+ publish...
121
+ browse...
122
+ (and so on)
123
+ </pre>
124
+ <p>
125
+
126
+ <b>To be continued</b>
127
+ <p>
128
+
129
+ ## Customizing the default templates and configuration
130
+ You can use the <font size=+1><tt>config</tt></font> command to choose a file to edit.
131
+ <p>
132
+
133
+ <img src="readme/config-menu.png" width="700" height="547" align="center"></img>
134
+ <p>
135
+
136
+ The meaning and interaction of these files will be explained later. <b>FIXME</b>
137
+ <p>
138
+
139
+ When you make changes, <font size=+1><tt>rebuild</tt></font> will detect these and regenerate whatever files
140
+ are needed.
141
+ <p>
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
+
182
+ <pre><b>FIXME add details here</b></pre>
183
+ <p>
184
+
185
+ <p>
186
+
187
+ ## Basics of Livetext
188
+ <b>TBD</b>
189
+ <p>
190
+
191
+ <b>Bold, italics, etc.</b>
192
+ single, double, bracketed
193
+ <p>
194
+
195
+ <b>Common dot commands)
196
+ <pre>
197
+ .debug
198
+ .say
199
+ .nopara
200
+ .quit
201
+ indented dot-commands
202
+ </pre>
203
+ <p>
204
+
205
+ <b>Using external files</b>
206
+ <pre>
207
+ .mixin
208
+ .include
209
+ .copy
210
+ .seek
211
+ </pre>
212
+ <p>
213
+
214
+ <b>Predefined functions and variables</b>
215
+ <pre>
216
+ $File
217
+ <font size=+1><tt></tt></font>
218
+ etc.
219
+ </pre>
220
+ <p>
221
+
222
+ ## Runeblog-specific features (Liveblog)</b>
223
+ <b>TBD</b>
224
+ <p>
225
+
226
+ <b>Dot commands - the basics</b>
227
+ <pre>
228
+ .mixin liveblog
229
+ .post
230
+ .title
231
+ .views
232
+ .tags
233
+ .teaser
234
+ </pre>
235
+ <p>
236
+
237
+ <b>Dot commands - more advanced</b>
238
+ <pre>
239
+ .image
240
+ .inset
241
+ .dropcap
242
+ .pin
243
+ </pre>
244
+ <p>
245
+
246
+ <b>Variables and functions</b>
247
+ <pre>
248
+ $view, etc.
249
+ $\[date is undefined], $\[link is undefined], etc.
250
+ </pre>
251
+ <p>
252
+
253
+ <p>
254
+
255
+ ## Defining your own features
256
+ <b>Dot commands, variables, functions</b>
257
+ <pre>
258
+ .def/.end
259
+ .set
260
+ .variables
261
+ .heredoc
262
+ .func
263
+ </pre>
264
+ <p>
265
+
266
+ <b>Defining these in Ruby</b>
267
+ <p>
268
+
269
+ <p>
270
+
271
+ ## More topics
272
+ <b>Meta tags, etc.</b>
273
+ <b>CSS</b>
274
+ <p>
275
+
276
+ <b>Widgets</b>
277
+ <pre>
278
+ pages
279
+ links
280
+ pinned
281
+ faq
282
+ sitemap
283
+ news
284
+ etc.
285
+ </pre>
286
+ <p>
287
+
288
+ <b>Banner and navbar</b>
289
+ <p>
290
+
291
+ <b>Creating your own widgets</b>
292
+ <p>
293
+
294
+ <b>Special tags/functions coming "soon"</b>
295
+ <pre>
296
+ github, gitlab, gist
297
+ wikipedia
298
+ youtube, vimeo
299
+ twitter, instagram
300
+ etc.
301
+ </pre>
302
+ <p>
303
+
304
+ <p>
305
+
306
+ <b>TBD</b>
307
+ <p>
308
+
309
+ ## More later...
310
+ <b>TBD</b>
311
+ <p>
312
+