runeblog 0.3.02

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+