runeblog 0.3.34 → 0.3.36

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 (302) hide show
  1. checksums.yaml +4 -4
  2. data/data/global.lt3 +3 -3
  3. data/empty_view/global.lt3 +20 -0
  4. data/empty_view/themes/standard/banner/top.lt3 +1 -1
  5. data/empty_view/themes/standard/blog/generate.lt3 +1 -1
  6. data/empty_view/themes/standard/blog/index.lt3 +8 -4
  7. data/empty_view/themes/standard/etc/blog.css.lt3 +1 -1
  8. data/empty_view/themes/standard/post/generate.lt3 +1 -1
  9. data/empty_view/themes/standard/post/permalink.lt3 +1 -1
  10. data/lib/exceptions.rb +2 -0
  11. data/lib/helpers-blog.rb +3 -3
  12. data/lib/liveblog.rb +25 -24
  13. data/lib/lowlevel.rb +47 -0
  14. data/lib/menus.rb +2 -2
  15. data/lib/processing.rb +9 -17
  16. data/lib/publish.rb +3 -6
  17. data/lib/repl.rb +5 -9
  18. data/lib/runeblog.rb +95 -25
  19. data/lib/runeblog_version.rb +6 -2
  20. data/lib/view.rb +7 -3
  21. data/runeblog.gemspec +5 -3
  22. data/test/.blogs/data/EDITOR +1 -0
  23. data/test/.blogs/data/ROOT +1 -0
  24. data/test/.blogs/data/VERSION +2 -0
  25. data/test/.blogs/data/VIEW +1 -0
  26. data/test/.blogs/data/features.txt +18 -0
  27. data/test/.blogs/data/global.lt3 +20 -0
  28. data/test/.blogs/data/sequence +1 -0
  29. data/test/.blogs/data/universal.lt3 +20 -0
  30. data/test/.blogs/drafts/0001-whats-at-stubbs.lt3 +13 -0
  31. data/test/.blogs/drafts/0002-the-new-amphitheatre-is-overrated.lt3 +14 -0
  32. data/test/.blogs/drafts/0003-the-graffiti-wall.lt3 +42 -0
  33. data/test/.blogs/drafts/0004-the-waller-creek-project.lt3 +13 -0
  34. data/test/.blogs/drafts/0005-life-on-sabine-street.lt3 +13 -0
  35. data/test/.blogs/drafts/0006-remember-modest-mouse.lt3 +14 -0
  36. data/test/.blogs/posts/0001-whats-at-stubbs/guts.html +6 -0
  37. data/test/.blogs/posts/0001-whats-at-stubbs/metadata.txt +7 -0
  38. data/test/.blogs/posts/0001-whats-at-stubbs/teaser.txt +1 -0
  39. data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
  40. data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
  41. data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
  42. data/test/.blogs/posts/0003-the-graffiti-wall/guts.html +6 -0
  43. data/test/.blogs/posts/0003-the-graffiti-wall/metadata.txt +7 -0
  44. data/test/.blogs/posts/0003-the-graffiti-wall/teaser.txt +1 -0
  45. data/test/.blogs/posts/0004-the-waller-creek-project/guts.html +6 -0
  46. data/test/.blogs/posts/0004-the-waller-creek-project/metadata.txt +7 -0
  47. data/test/.blogs/posts/0004-the-waller-creek-project/teaser.txt +1 -0
  48. data/test/.blogs/posts/0005-life-on-sabine-street/guts.html +6 -0
  49. data/test/.blogs/posts/0005-life-on-sabine-street/metadata.txt +7 -0
  50. data/test/.blogs/posts/0005-life-on-sabine-street/teaser.txt +1 -0
  51. data/test/.blogs/posts/0006-remember-modest-mouse/guts.html +6 -0
  52. data/test/.blogs/posts/0006-remember-modest-mouse/metadata.txt +7 -0
  53. data/test/.blogs/posts/0006-remember-modest-mouse/teaser.txt +1 -0
  54. data/test/.blogs/views/around_austin/assets/austin-pano.jpg +0 -0
  55. data/test/.blogs/views/around_austin/assets/back-icon.png +0 -0
  56. data/test/.blogs/views/around_austin/assets/reddit-logo.png +0 -0
  57. data/test/.blogs/views/around_austin/assets/sky2.jpg +0 -0
  58. data/test/.blogs/views/around_austin/config/exper/2svg.lt3 +38 -0
  59. data/test/.blogs/views/around_austin/config/exper/gen_svg.rb +60 -0
  60. data/test/.blogs/views/around_austin/config/exper/meta.html +10 -0
  61. data/test/.blogs/views/around_austin/config/exper/s2.html +25 -0
  62. data/test/.blogs/views/around_austin/config/exper/varmint.rb +50 -0
  63. data/test/.blogs/views/around_austin/config/facebook/credentials.txt +7 -0
  64. data/test/.blogs/views/around_austin/config/facebook/facebook.rb +42 -0
  65. data/test/.blogs/views/around_austin/config/facebook/fb.html +10 -0
  66. data/test/.blogs/views/around_austin/config/facebook/fb.js.lt3 +15 -0
  67. data/test/.blogs/views/around_austin/config/reddit/credentials.txt +6 -0
  68. data/test/.blogs/views/around_austin/config/reddit/notes.txt +4 -0
  69. data/test/.blogs/views/around_austin/config/reddit/reddit_post_url.py +34 -0
  70. data/test/.blogs/views/around_austin/config/reddit/redpost.rb +38 -0
  71. data/test/.blogs/views/around_austin/config/twitter/credentials.txt +3 -0
  72. data/test/.blogs/views/around_austin/config/twitter/tw.html +12 -0
  73. data/test/.blogs/views/around_austin/config/twitter/tw.js +5 -0
  74. data/test/.blogs/views/around_austin/config/twitter/twitter.rb +35 -0
  75. data/test/.blogs/views/around_austin/data/GIT_IS_DUMB +0 -0
  76. data/test/.blogs/views/around_austin/global.lt3 +20 -0
  77. data/test/.blogs/views/around_austin/last_published +1 -0
  78. data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/guts.html +6 -0
  79. data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/metadata.txt +7 -0
  80. data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/teaser.txt +1 -0
  81. data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
  82. data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
  83. data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
  84. data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/guts.html +6 -0
  85. data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/metadata.txt +7 -0
  86. data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/teaser.txt +1 -0
  87. data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/guts.html +6 -0
  88. data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/metadata.txt +7 -0
  89. data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/teaser.txt +1 -0
  90. data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/guts.html +6 -0
  91. data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/metadata.txt +7 -0
  92. data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/teaser.txt +1 -0
  93. data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/guts.html +6 -0
  94. data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/metadata.txt +7 -0
  95. data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/teaser.txt +1 -0
  96. data/test/.blogs/views/around_austin/posts/GIT_IS_DUMB +1 -0
  97. data/test/.blogs/views/around_austin/remote/assets/GIT_IS_DUMB +1 -0
  98. data/test/.blogs/views/around_austin/remote/banner/navbar/GIT_IS_DUMB +0 -0
  99. data/test/.blogs/views/around_austin/remote/banner/navbar/about.html +10 -0
  100. data/test/.blogs/views/around_austin/remote/banner/navbar/contact.html +10 -0
  101. data/test/.blogs/views/around_austin/remote/banner/navbar/faq.html +46 -0
  102. data/test/.blogs/views/around_austin/remote/etc/GIT_IS_DUMB +1 -0
  103. data/test/.blogs/views/around_austin/remote/etc/blog.css +66 -0
  104. data/test/.blogs/views/around_austin/remote/history +6 -0
  105. data/test/.blogs/views/around_austin/remote/life-on-sabine-street.html +2 -0
  106. data/test/.blogs/views/around_austin/remote/permalink/GIT_IS_DUMB +1 -0
  107. data/test/.blogs/views/around_austin/remote/recent.html +4 -0
  108. data/test/.blogs/views/around_austin/remote/remember-modest-mouse.html +2 -0
  109. data/test/.blogs/views/around_austin/remote/the-graffiti-wall.html +2 -0
  110. data/test/.blogs/views/around_austin/remote/the-new-amphitheatre-is-overrated.html +2 -0
  111. data/test/.blogs/views/around_austin/remote/the-waller-creek-project.html +2 -0
  112. data/test/.blogs/views/around_austin/remote/whats-at-stubbs.html +2 -0
  113. data/test/.blogs/views/around_austin/remote/widgets/ad/GIT_IS_DUMB +2 -0
  114. data/test/.blogs/views/around_austin/remote/widgets/bydates/README +2 -0
  115. data/test/.blogs/views/around_austin/remote/widgets/bydates/bydates.rb +18 -0
  116. data/test/.blogs/views/around_austin/remote/widgets/bydates/card.css +1 -0
  117. data/test/.blogs/views/around_austin/remote/widgets/bydates/custom.rb +1 -0
  118. data/test/.blogs/views/around_austin/remote/widgets/bydates/main.css +2 -0
  119. data/test/.blogs/views/around_austin/remote/widgets/links/GIT_IS_DUMB +2 -0
  120. data/test/.blogs/views/around_austin/remote/widgets/links/README +2 -0
  121. data/test/.blogs/views/around_austin/remote/widgets/links/card.css +1 -0
  122. data/test/.blogs/views/around_austin/remote/widgets/links/custom.rb +1 -0
  123. data/test/.blogs/views/around_austin/remote/widgets/links/links.rb +90 -0
  124. data/test/.blogs/views/around_austin/remote/widgets/links/list.data +3 -0
  125. data/test/.blogs/views/around_austin/remote/widgets/links/main.css +2 -0
  126. data/test/.blogs/views/around_austin/remote/widgets/news/GIT_IS_DUMB +2 -0
  127. data/test/.blogs/views/around_austin/remote/widgets/news/README +2 -0
  128. data/test/.blogs/views/around_austin/remote/widgets/news/card.css +1 -0
  129. data/test/.blogs/views/around_austin/remote/widgets/news/custom.rb +1 -0
  130. data/test/.blogs/views/around_austin/remote/widgets/news/list.data +4 -0
  131. data/test/.blogs/views/around_austin/remote/widgets/news/main.css +2 -0
  132. data/test/.blogs/views/around_austin/remote/widgets/news/news.rb +88 -0
  133. data/test/.blogs/views/around_austin/remote/widgets/pages/GIT_IS_DUMB +2 -0
  134. data/test/.blogs/views/around_austin/remote/widgets/pages/README +2 -0
  135. data/test/.blogs/views/around_austin/remote/widgets/pages/card.css +1 -0
  136. data/test/.blogs/views/around_austin/remote/widgets/pages/custom.rb +1 -0
  137. data/test/.blogs/views/around_austin/remote/widgets/pages/disclaim.lt3 +10 -0
  138. data/test/.blogs/views/around_austin/remote/widgets/pages/faq.lt3 +41 -0
  139. data/test/.blogs/views/around_austin/remote/widgets/pages/like-dislike.lt3 +11 -0
  140. data/test/.blogs/views/around_austin/remote/widgets/pages/list.data +4 -0
  141. data/test/.blogs/views/around_austin/remote/widgets/pages/local.rb +0 -0
  142. data/test/.blogs/views/around_austin/remote/widgets/pages/main.css +2 -0
  143. data/test/.blogs/views/around_austin/remote/widgets/pages/other-stuff.lt3 +10 -0
  144. data/test/.blogs/views/around_austin/remote/widgets/pages/pages.rb +130 -0
  145. data/test/.blogs/views/around_austin/remote/widgets/pinned/GIT_IS_DUMB +2 -0
  146. data/test/.blogs/views/around_austin/remote/widgets/pinned/README +2 -0
  147. data/test/.blogs/views/around_austin/remote/widgets/pinned/card.css +1 -0
  148. data/test/.blogs/views/around_austin/remote/widgets/pinned/custom.rb +1 -0
  149. data/test/.blogs/views/around_austin/remote/widgets/pinned/main.css +2 -0
  150. data/test/.blogs/views/around_austin/remote/widgets/pinned/pinned.rb +111 -0
  151. data/test/.blogs/views/around_austin/remote/widgets/search/README +2 -0
  152. data/test/.blogs/views/around_austin/remote/widgets/search/card.css +1 -0
  153. data/test/.blogs/views/around_austin/remote/widgets/search/custom.rb +1 -0
  154. data/test/.blogs/views/around_austin/remote/widgets/search/main.css +2 -0
  155. data/test/.blogs/views/around_austin/remote/widgets/search/search.rb +18 -0
  156. data/test/.blogs/views/around_austin/remote/widgets/sitemap/README +2 -0
  157. data/test/.blogs/views/around_austin/remote/widgets/sitemap/card.css +1 -0
  158. data/test/.blogs/views/around_austin/remote/widgets/sitemap/custom.rb +1 -0
  159. data/test/.blogs/views/around_austin/remote/widgets/sitemap/main.css +2 -0
  160. data/test/.blogs/views/around_austin/remote/widgets/sitemap/sitemap.rb +18 -0
  161. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/OLD-example.lt3 +12 -0
  162. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/README +2 -0
  163. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/card.css +1 -0
  164. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/custom.rb +1 -0
  165. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/main.css +2 -0
  166. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.lt3 +3 -0
  167. data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.rb +18 -0
  168. data/test/.blogs/views/around_austin/settings/features.txt +18 -0
  169. data/test/.blogs/views/around_austin/settings/publish.txt +5 -0
  170. data/test/.blogs/views/around_austin/settings/recent.txt +11 -0
  171. data/test/.blogs/views/around_austin/settings/view.txt +4 -0
  172. data/test/.blogs/views/around_austin/themes/standard/README +59 -0
  173. data/test/.blogs/views/around_austin/themes/standard/banner/banner.lt3 +5 -0
  174. data/test/.blogs/views/around_austin/themes/standard/banner/navbar/about.lt3 +18 -0
  175. data/test/.blogs/views/around_austin/themes/standard/banner/navbar/contact.lt3 +18 -0
  176. data/test/.blogs/views/around_austin/themes/standard/banner/navbar/faq.lt3 +1 -0
  177. data/test/.blogs/views/around_austin/themes/standard/banner/navbar/list.data +3 -0
  178. data/test/.blogs/views/around_austin/themes/standard/banner/navbar/navbar.html +10 -0
  179. data/test/.blogs/views/around_austin/themes/standard/banner/top.html +22 -0
  180. data/test/.blogs/views/around_austin/themes/standard/banner/top.lt3 +20 -0
  181. data/test/.blogs/views/around_austin/themes/standard/blog/generate.lt3 +21 -0
  182. data/test/.blogs/views/around_austin/themes/standard/blog/head.lt3 +16 -0
  183. data/test/.blogs/views/around_austin/themes/standard/blog/index.lt3 +20 -0
  184. data/test/.blogs/views/around_austin/themes/standard/blog/post_entry.lt3 +21 -0
  185. data/test/.blogs/views/around_austin/themes/standard/etc/blog.css +66 -0
  186. data/test/.blogs/views/around_austin/themes/standard/etc/blog.css.lt3 +62 -0
  187. data/test/.blogs/views/around_austin/themes/standard/etc/externals.lt3 +24 -0
  188. data/test/.blogs/views/around_austin/themes/standard/etc/favicon.ico +0 -0
  189. data/test/.blogs/views/around_austin/themes/standard/etc/github.css +209 -0
  190. data/test/.blogs/views/around_austin/themes/standard/etc/misc.js +20 -0
  191. data/test/.blogs/views/around_austin/themes/standard/post/generate.lt3 +39 -0
  192. data/test/.blogs/views/around_austin/themes/standard/post/head.lt3 +7 -0
  193. data/test/.blogs/views/around_austin/themes/standard/post/index.lt3 +24 -0
  194. data/test/.blogs/views/around_austin/themes/standard/post/permalink.lt3 +31 -0
  195. data/test/.blogs/views/around_austin/widgets/README +4 -0
  196. data/test/.blogs/views/around_austin/widgets/bydates/README +2 -0
  197. data/test/.blogs/views/around_austin/widgets/bydates/bydates.rb +18 -0
  198. data/test/.blogs/views/around_austin/widgets/bydates/card.css +1 -0
  199. data/test/.blogs/views/around_austin/widgets/bydates/custom.rb +1 -0
  200. data/test/.blogs/views/around_austin/widgets/bydates/main.css +2 -0
  201. data/test/.blogs/views/around_austin/widgets/links/README +2 -0
  202. data/test/.blogs/views/around_austin/widgets/links/card.css +1 -0
  203. data/test/.blogs/views/around_austin/widgets/links/custom.rb +1 -0
  204. data/test/.blogs/views/around_austin/widgets/links/links-card.html +18 -0
  205. data/test/.blogs/views/around_austin/widgets/links/links-main.html +13 -0
  206. data/test/.blogs/views/around_austin/widgets/links/links.rb +90 -0
  207. data/test/.blogs/views/around_austin/widgets/links/list.data +3 -0
  208. data/test/.blogs/views/around_austin/widgets/links/main.css +2 -0
  209. data/test/.blogs/views/around_austin/widgets/news/README +2 -0
  210. data/test/.blogs/views/around_austin/widgets/news/card.css +1 -0
  211. data/test/.blogs/views/around_austin/widgets/news/custom.rb +1 -0
  212. data/test/.blogs/views/around_austin/widgets/news/list.data +4 -0
  213. data/test/.blogs/views/around_austin/widgets/news/main.css +2 -0
  214. data/test/.blogs/views/around_austin/widgets/news/news.rb +88 -0
  215. data/test/.blogs/views/around_austin/widgets/pages/README +2 -0
  216. data/test/.blogs/views/around_austin/widgets/pages/card.css +1 -0
  217. data/test/.blogs/views/around_austin/widgets/pages/custom.rb +1 -0
  218. data/test/.blogs/views/around_austin/widgets/pages/disclaim.lt3 +10 -0
  219. data/test/.blogs/views/around_austin/widgets/pages/faq.lt3 +41 -0
  220. data/test/.blogs/views/around_austin/widgets/pages/like-dislike.lt3 +11 -0
  221. data/test/.blogs/views/around_austin/widgets/pages/list.data +4 -0
  222. data/test/.blogs/views/around_austin/widgets/pages/local.rb +0 -0
  223. data/test/.blogs/views/around_austin/widgets/pages/main.css +2 -0
  224. data/test/.blogs/views/around_austin/widgets/pages/other-stuff.lt3 +10 -0
  225. data/test/.blogs/views/around_austin/widgets/pages/pages.rb +130 -0
  226. data/test/.blogs/views/around_austin/widgets/pinned/README +2 -0
  227. data/test/.blogs/views/around_austin/widgets/pinned/card.css +1 -0
  228. data/test/.blogs/views/around_austin/widgets/pinned/custom.rb +1 -0
  229. data/test/.blogs/views/around_austin/widgets/pinned/main.css +2 -0
  230. data/test/.blogs/views/around_austin/widgets/pinned/pinned.rb +111 -0
  231. data/test/.blogs/views/around_austin/widgets/search/README +2 -0
  232. data/test/.blogs/views/around_austin/widgets/search/card.css +1 -0
  233. data/test/.blogs/views/around_austin/widgets/search/custom.rb +1 -0
  234. data/test/.blogs/views/around_austin/widgets/search/main.css +2 -0
  235. data/test/.blogs/views/around_austin/widgets/search/search.rb +18 -0
  236. data/test/.blogs/views/around_austin/widgets/sitemap/README +2 -0
  237. data/test/.blogs/views/around_austin/widgets/sitemap/card.css +1 -0
  238. data/test/.blogs/views/around_austin/widgets/sitemap/custom.rb +1 -0
  239. data/test/.blogs/views/around_austin/widgets/sitemap/main.css +2 -0
  240. data/test/.blogs/views/around_austin/widgets/sitemap/sitemap.rb +18 -0
  241. data/test/.blogs/views/around_austin/widgets/tag-cloud/OLD-example.lt3 +12 -0
  242. data/test/.blogs/views/around_austin/widgets/tag-cloud/README +2 -0
  243. data/test/.blogs/views/around_austin/widgets/tag-cloud/card.css +1 -0
  244. data/test/.blogs/views/around_austin/widgets/tag-cloud/custom.rb +1 -0
  245. data/test/.blogs/views/around_austin/widgets/tag-cloud/main.css +2 -0
  246. data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.lt3 +3 -0
  247. data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.rb +18 -0
  248. data/test/.blogs/widgets/README +4 -0
  249. data/test/.blogs/widgets/bydates/README +2 -0
  250. data/test/.blogs/widgets/bydates/bydates.rb +18 -0
  251. data/test/.blogs/widgets/bydates/card.css +1 -0
  252. data/test/.blogs/widgets/bydates/custom.rb +1 -0
  253. data/test/.blogs/widgets/bydates/main.css +2 -0
  254. data/test/.blogs/widgets/links/README +2 -0
  255. data/test/.blogs/widgets/links/card.css +1 -0
  256. data/test/.blogs/widgets/links/custom.rb +1 -0
  257. data/test/.blogs/widgets/links/links.rb +90 -0
  258. data/test/.blogs/widgets/links/list.data +3 -0
  259. data/test/.blogs/widgets/links/main.css +2 -0
  260. data/test/.blogs/widgets/news/README +2 -0
  261. data/test/.blogs/widgets/news/card.css +1 -0
  262. data/test/.blogs/widgets/news/custom.rb +1 -0
  263. data/test/.blogs/widgets/news/list.data +4 -0
  264. data/test/.blogs/widgets/news/main.css +2 -0
  265. data/test/.blogs/widgets/news/news.rb +88 -0
  266. data/test/.blogs/widgets/pages/README +2 -0
  267. data/test/.blogs/widgets/pages/card.css +1 -0
  268. data/test/.blogs/widgets/pages/custom.rb +1 -0
  269. data/test/.blogs/widgets/pages/disclaim.lt3 +10 -0
  270. data/test/.blogs/widgets/pages/faq.lt3 +41 -0
  271. data/test/.blogs/widgets/pages/like-dislike.lt3 +11 -0
  272. data/test/.blogs/widgets/pages/list.data +4 -0
  273. data/test/.blogs/widgets/pages/local.rb +0 -0
  274. data/test/.blogs/widgets/pages/main.css +2 -0
  275. data/test/.blogs/widgets/pages/other-stuff.lt3 +10 -0
  276. data/test/.blogs/widgets/pages/pages.rb +130 -0
  277. data/test/.blogs/widgets/pinned/README +2 -0
  278. data/test/.blogs/widgets/pinned/card.css +1 -0
  279. data/test/.blogs/widgets/pinned/custom.rb +1 -0
  280. data/test/.blogs/widgets/pinned/main.css +2 -0
  281. data/test/.blogs/widgets/pinned/pinned.rb +111 -0
  282. data/test/.blogs/widgets/search/README +2 -0
  283. data/test/.blogs/widgets/search/card.css +1 -0
  284. data/test/.blogs/widgets/search/custom.rb +1 -0
  285. data/test/.blogs/widgets/search/main.css +2 -0
  286. data/test/.blogs/widgets/search/search.rb +18 -0
  287. data/test/.blogs/widgets/sitemap/README +2 -0
  288. data/test/.blogs/widgets/sitemap/card.css +1 -0
  289. data/test/.blogs/widgets/sitemap/custom.rb +1 -0
  290. data/test/.blogs/widgets/sitemap/main.css +2 -0
  291. data/test/.blogs/widgets/sitemap/sitemap.rb +18 -0
  292. data/test/.blogs/widgets/tag-cloud/OLD-example.lt3 +12 -0
  293. data/test/.blogs/widgets/tag-cloud/README +2 -0
  294. data/test/.blogs/widgets/tag-cloud/card.css +1 -0
  295. data/test/.blogs/widgets/tag-cloud/custom.rb +1 -0
  296. data/test/.blogs/widgets/tag-cloud/main.css +2 -0
  297. data/test/.blogs/widgets/tag-cloud/tag-cloud.lt3 +3 -0
  298. data/test/.blogs/widgets/tag-cloud/tag-cloud.rb +18 -0
  299. data/test/austin.rb +8 -3
  300. data/test/binblog.txt +2 -0
  301. data/test/stderr.out +0 -0
  302. metadata +290 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b835a9fea2fa013b708dd9b6f99b411f34517fe6a04f27c130b4fbf3f802881
4
- data.tar.gz: 818099d61bdfa21031f7e6c13580536b64cdbd27ab2e69c196fccb4c765bd135
3
+ metadata.gz: ea9b85dbf3f321c19a1d899e4a6497b519d7cfa5c9fc03845aa3afa4b13e7638
4
+ data.tar.gz: b5f8701cbe8582e1ce91236a5780ee7a1e8a718116a6ce82139dde6b555bb81a
5
5
  SHA512:
6
- metadata.gz: e87e7985ebb4302986520fe593d16bca67cc03f2be97b821c3a0ca5f5f0eda172df6509b148eacc701f85cc86a3199e24876d40d0648c9ad5f8248034caeaa4d
7
- data.tar.gz: 8b764722bae84a9bc73b3aadbae80599b3cd69252f4f83b7e208bde3b6aadb8cd183d0fb806e5985b77fcc0b75f80abe22dbe813615ca08eb5f5de3dcbcd53bd
6
+ metadata.gz: e883273032e6248242617fa9d6bf268ec941362662a02f8675eca3e1f5ede9bd0937480c4682bc59511d4e44c16708c3d34ab4e023e89af763ff9770c77b9aed
7
+ data.tar.gz: 5d55bed811723a81323e3850d0481340b6f24d66845c57d555b2587a9194661dc6890acf142b8650a8f9bb3b512259519b705ab6975084028a3e09096a1b7a03
data/data/global.lt3 CHANGED
@@ -3,11 +3,11 @@
3
3
  . <variable> <value>
4
4
  . --------------------------------------------------
5
5
 
6
- .variables view ../settings/view.txt
6
+ .variables view settings/view.txt
7
7
 
8
- .variables recent ../settings/recent.txt
8
+ .variables recent settings/recent.txt
9
9
 
10
- .variables publish ../settings/publish.txt
10
+ .variables publish settings/publish.txt
11
11
 
12
12
  .variables
13
13
  host http://SITE
@@ -0,0 +1,20 @@
1
+ . --------------------------------------------------
2
+ . Global settings are stored here in the form
3
+ . <variable> <value>
4
+ . --------------------------------------------------
5
+
6
+ .variables view settings/view.txt
7
+
8
+ .variables recent settings/recent.txt
9
+
10
+ .variables publish settings/publish.txt
11
+
12
+ .variables
13
+ host http://SITE
14
+ charset utf-8
15
+ url http://SITE
16
+ locale en_US
17
+
18
+ font.family verdana
19
+ .end
20
+
@@ -1,4 +1,4 @@
1
- .include $ViewDir/data/global.lt3
1
+ .include $ViewDir/global.lt3
2
2
 
3
3
  <svg width="98%" height="120"
4
4
  viewBox="0 0 98% 100">
@@ -8,7 +8,7 @@
8
8
  <html>
9
9
  <!-- Generated from $File on $$date.
10
10
  Editing not recommended. -->
11
- $.include $ViewDir/data/global.lt3
11
+ $.include $ViewDir/global.lt3
12
12
  $.include blog/head.lt3
13
13
  <body>
14
14
  $.include banner/banner.lt3
@@ -8,9 +8,13 @@
8
8
  .recent_posts
9
9
 
10
10
  .sidebar
11
- links
12
- pinned
13
- pages
14
- news
11
+ links
15
12
  .end
16
13
 
14
+ . .sidebar
15
+ . links
16
+ . pinned
17
+ . pages
18
+ . news
19
+ . .end
20
+
@@ -3,7 +3,7 @@
3
3
  . Most of the global CSS goes here
4
4
  . --------------------------------------------------
5
5
 
6
- .include $ViewDir/data/global.lt3
6
+ .include $ViewDir/global.lt3
7
7
 
8
8
  body { font-family: $font.family }
9
9
 
@@ -8,7 +8,7 @@
8
8
  <html>
9
9
  <!-- Generated from $File on $$date; editing not recommended. -->
10
10
 
11
- .include $ViewDir/data/global.lt3
11
+ .include $ViewDir/global.lt3
12
12
 
13
13
  .variables! post metadata.txt
14
14
 
@@ -12,7 +12,7 @@
12
12
  <!-- Editing this file is not recommended. -->
13
13
  <!-- It was generated from $File on $$date. -->
14
14
 
15
- .include $ViewDir/data/global.lt3
15
+ .include $ViewDir/global.lt3
16
16
 
17
17
  .head
18
18
  og:title $title
data/lib/exceptions.rb CHANGED
@@ -36,3 +36,5 @@ make_exception(:NoNumericPrefix, "No numeric prefix on slug '%1'")
36
36
  make_exception(:NoExtensionExpected, "No file extension expected on '%1'")
37
37
  make_exception(:FilenameHasBlank, "File '%1' contains a blank space.")
38
38
 
39
+ make_exception(:MissingGlobal, "File global.lt3 is missing.")
40
+
data/lib/helpers-blog.rb CHANGED
@@ -67,13 +67,13 @@ module RuneBlog::Helpers
67
67
  end
68
68
 
69
69
  def get_all_widgets(dest)
70
- wdir = RuneBlog::Path + "/widgets" # files kept inside gem
70
+ wdir = RuneBlog::Path + "/widgets" # files kept inside gem (or dev repo)
71
71
  copy!(wdir/"*", dest)
72
72
  end
73
73
 
74
74
  def get_widget(dest, widget: :all) # recursive
75
75
  wdir = ".blogs/widgets"
76
- wdir = RuneBlog::Path + "/widgets" # files kept inside gem
76
+ wdir = RuneBlog::Path + "/widgets" # files kept inside gem (or dev repo)
77
77
  if widget == :all
78
78
  copy!(wdir/"*", dest)
79
79
  else
@@ -82,7 +82,7 @@ module RuneBlog::Helpers
82
82
  end
83
83
 
84
84
  def copy_data(dest)
85
- data = RuneBlog::Path + "/../data" # files kept inside gem
85
+ data = RuneBlog::Path + "/../data" # files kept inside gem (or dev repo)
86
86
  files = %w[ROOT VIEW EDITOR universal.lt3 global.lt3 features.txt]
87
87
  files.each {|file| copy(data + "/" + file, dest) unless File.exist?(dest/file) }
88
88
  end
data/lib/liveblog.rb CHANGED
@@ -7,10 +7,6 @@ require 'runeblog'
7
7
  require 'pathmagic'
8
8
  require 'processing'
9
9
 
10
- # top = Livetext::Path + "/../plugin/liveblog/"
11
- # eval(File.read("#{top}/testing.rb"))
12
-
13
-
14
10
  def init_liveblog # FIXME - a lot of this logic sucks
15
11
  log!(enter: __method__)
16
12
  dir = Dir.pwd.sub(/\.blogs.*/, "")
@@ -65,27 +61,31 @@ def post
65
61
  api.out " <!-- Post number #{@meta.num} -->\n "
66
62
  end
67
63
 
68
- def _got_python?
69
- log!(enter: __method__)
70
- # Dumb - fix later - check up front as needed
71
- # Should also check for praw lib
72
- str = `which python3`
73
- str.length > 0
74
- end
64
+ ### reddit integration broke at their end...
75
65
 
76
- def _reddit_post_url(vdir, date, title, url)
77
- log!(enter: __method__)
78
- _got_python?
79
- tmpfile = "/tmp/reddit-post-url.txt"
80
- File.open(tmpfile, "w") do |tmp|
81
- tmp.puts "[#{date}] #{title}"
82
- tmp.puts url
83
- end
84
- rid = nil
85
- Dir.chdir(vdir/:config) { rid = `python3 reddit/reddit_post_url.py` }
86
- system("rm #{tmpfile}")
87
- rid # returns reddit id
66
+ def _got_python?
67
+ log!(enter: __method__)
68
+ # Dumb - fix later - check up front as needed
69
+ # Should also check for praw lib
70
+ str = `which python3`
71
+ str.length > 0
72
+ end
73
+
74
+ def _reddit_post_url(vdir, date, title, url)
75
+ log!(enter: __method__)
76
+ _got_python?
77
+ tmpfile = "/tmp/reddit-post-url.txt"
78
+ File.open(tmpfile, "w") do |tmp|
79
+ tmp.puts "[#{date}] #{title}"
80
+ tmp.puts url
88
81
  end
82
+ rid = nil
83
+ Dir.chdir(vdir/:config) { rid = `python3 reddit/reddit_post_url.py` }
84
+ system("rm #{tmpfile}")
85
+ rid # returns reddit id
86
+ end
87
+
88
+ ### ...end of reddit piece
89
89
 
90
90
  def post_toolbar
91
91
  log!(enter: __method__)
@@ -197,7 +197,7 @@ def banner
197
197
  count += 1
198
198
  tag, *data = line.split
199
199
  data ||= []
200
- deps = [@blog.view.globals[:ViewDir]/:data/"global.lt3"]
200
+ deps = [@blog.view.globals[:ViewDir]/"global.lt3"]
201
201
  case tag
202
202
  when "width"; wide = data[0]
203
203
  when "height"; high = data[0]
@@ -646,6 +646,7 @@ def sidebar
646
646
  raise "Nonstandard widget?"
647
647
  end
648
648
 
649
+ checkpoint "Running api.include_file... wtag = #{wtag.inspect} tcard = #{tcard.inspect} pwd = #{Dir.pwd}"
649
650
  api.include_file wtag/tcard
650
651
  end
651
652
  api.out %[</div>]
data/lib/lowlevel.rb CHANGED
@@ -1,3 +1,50 @@
1
+ private def whence(back = 0)
2
+ file, line, inmeth = caller[back].split(":")
3
+ meth = inmeth[4..-2]
4
+ [file, line, meth]
5
+ end
6
+
7
+ private def display(file, line, meth, msg)
8
+ puts "--- #{meth} #{line} in #{file}"
9
+ puts "::: " + msg if msg
10
+ end
11
+
12
+ def checkpoint(msg = nil)
13
+ file, line, meth = whence(1)
14
+ display(file, line, meth, msg)
15
+ end
16
+
17
+ def checkpoint?(msg = nil) # with sleep 3
18
+ file, line, meth = whence(1)
19
+ display(file, line, meth, msg)
20
+ end
21
+
22
+ def checkpoint!(msg = nil) # with pause
23
+ file, line, meth = whence(1)
24
+ display(file, line, meth, msg)
25
+ print "::: Pause..."
26
+ gets
27
+ end
28
+
29
+ def warning(err)
30
+ file, line, meth = whence(2) # 2 = skip rescue
31
+ puts "Error in #{meth} in #{file} (non-fatal?)"
32
+ puts " err = #{err.inspect}"
33
+ puts " #{err.backtrace[0]}" if err.respond_to?(:backtrace)
34
+ puts
35
+ end
36
+
37
+ def fatal(err)
38
+ file, line, meth = whence(2) # 2 = skip rescue
39
+ puts "Error in #{meth} in #{file}"
40
+ puts "WTF??"
41
+ puts " err = #{err.inspect}"
42
+ if err.respond_to?(:backtrace)
43
+ context = err.backtrace.map {|x| " " + x + "\n" }
44
+ puts context
45
+ end
46
+ abort "Terminated."
47
+ end
1
48
 
2
49
  def _tmp_error(err)
3
50
  STDERR.puts err
data/lib/menus.rb CHANGED
@@ -51,7 +51,8 @@ def edit_post_index
51
51
  end
52
52
 
53
53
  def edit_view_global
54
- edit_file("#@data/global.lt3")
54
+ # CHANGED redefining "global" location
55
+ edit_file("global.lt3")
55
56
  end
56
57
 
57
58
  def edit_settings_view
@@ -93,7 +94,6 @@ end
93
94
  # dir = @blog.view.dir/"themes/standard/"
94
95
 
95
96
  @std = "themes/standard"
96
- @data = "." # CHANGED
97
97
 
98
98
  Menu.top_config = {
99
99
  "View: generator" => proc { edit_blog_generate },
data/lib/processing.rb CHANGED
@@ -25,6 +25,10 @@ def preprocess(cwd: Dir.pwd, src:,
25
25
  deps: [], copy: nil, debug: false, force: false,
26
26
  mix: [], call: [],
27
27
  vars: {})
28
+ params = "cwd = #{cwd.inspect}\n src = #{src.inspect}\n dst = #{dst.inspect}"
29
+ params << "\n deps = #{deps.inspect}\n copy = #{copy.inspect}\n debug = #{debug} force = #{force}"
30
+ params << "\n mix = #{mix.inspect} call = #{call.inspect}\n vars = #{vars.inspect}"
31
+ # checkpoint! "args: #{params}"
28
32
  src += LEXT unless src.end_with?(LEXT)
29
33
  if strip
30
34
  dst = File.basename(src).sub(/.lt3$/,"")
@@ -61,38 +65,26 @@ def preprocess(cwd: Dir.pwd, src:,
61
65
  EOF
62
66
  if stale
63
67
  live = Livetext.customize(mix: "liveblog", call: call, vars: vars)
68
+ checkpoint! "Calling xform_file"
64
69
  log!(str: "Calling xform_file... src = #{src} pwd = #{Dir.pwd}")
65
70
  out = live.xform_file(src)
71
+ checkpoint!
66
72
  File.write(dst, out)
67
73
  system!("cp #{dst} #{copy}") if copy
68
74
  end
69
75
  puts "#{sp} -- ^ Already up to date!" if debug && ! stale
70
76
  end
71
77
  rescue => err
72
- msg = err.to_s
73
- msg << err.backtrace.join("\n") if err.respond_to?(:backtrace)
74
- STDERR.puts msg
75
- STDERR.flush
76
- log!(str: msg)
78
+ fatal(err)
77
79
  end
78
80
 
79
- # glv 2 - No such file or directory @ rb_check_realpath_internal - /Users/Hal/.blogs/views/computing/themes/standard/settings/view.txt
80
-
81
81
  def get_live_vars(src)
82
82
  dir, base = File.dirname(src), File.basename(src)
83
- # puts "glv 1: src = #{src.inspect} dir,base = #{dir.inspect}, #{base.inspect}"
84
83
  live = Livetext.customize(call: [".nopara"])
85
- puts "glv 2: cd #{dir} xform #{base}\n "
86
- # HAL9000:~ Hal$ find .blogs/views/computing/ -name global.lt3
87
- # .blogs/views/computing//themes/standard/global.lt3
88
- # HAL9000:~ Hal$ find .blogs/views/computing/ -name view.txt
89
- # .blogs/views/computing//settings/view.txt
90
84
  Dir.chdir(dir) { live.xform_file(base) }
91
85
  live
92
- rescue => e
93
- puts e
94
- puts $!
95
- gets
86
+ rescue => err
87
+ fatal(err)
96
88
  end
97
89
 
98
90
  end
data/lib/publish.rb CHANGED
@@ -14,15 +14,12 @@ class RuneBlog::Publishing
14
14
  def initialize(view)
15
15
  log!(enter: __method__, args: [view.to_s])
16
16
  @blog = RuneBlog.blog
17
- dir = @blog.root/:views/view/"themes/standard/"
17
+ # CHANGED redefining "global" location
18
+ dir = @blog.root/:views/view # /"themes/standard/"
18
19
  gfile = dir/"global.lt3"
19
- there = File.exist?(gfile)
20
- puts "Pub#init 0 gfile = $ gfile.inspect} exist = #{there}"
21
- return unless File.exist?(gfile) # FIXME Hackish as hell
20
+ raise MissingGlobal unless File.exist?(gfile)
22
21
 
23
- # puts "Pub#init 1"
24
22
  live = get_live_vars(gfile)
25
- # puts "Pub#init 2 - vars = #{live.vars.inspect}\n "
26
23
  @user = live.vars["publish.user"]
27
24
  @server = live.vars["publish.server"]
28
25
  @docroot = live.vars["publish.docroot"]
data/lib/repl.rb CHANGED
@@ -231,14 +231,12 @@ log! str: "=== Calling generate_post(#{orig})"
231
231
  end
232
232
 
233
233
  def cmd_rebuild
234
- log! str: "=== Starting cmd_rebuild..."
235
234
  puts
236
235
  regen_posts
237
- log! str: "=== Generating view..."
238
236
  @blog.generate_view(@blog.view)
239
- log! str: "=== Generating index..."
237
+ checkpoint! "Generating index..."
240
238
  @blog.generate_index(@blog.view)
241
- log! str: "=== ...finished!"
239
+ checkpoint! "...finished!"
242
240
  rescue => err
243
241
  _tmp_error(err)
244
242
  end
@@ -269,7 +267,7 @@ log! str: "=== ...finished!"
269
267
 
270
268
  # move to helpers
271
269
  def modify_view_global(view_name)
272
- gfile = "#{@blog.root}/views/#{view_name}/data/global.lt3"
270
+ gfile = "#{@blog.root}/views/#{view_name}/global.lt3"
273
271
  lines = File.readlines(gfile).map(&:chomp)
274
272
  vars = <<~EOF
275
273
  .variables
@@ -311,12 +309,10 @@ log! str: "=== ...finished!"
311
309
  end
312
310
  @blog.create_view(arg)
313
311
  lines = File.read("#{@blog.root}/data/global.lt3")
314
- # File.write("#{@blog.root}/views/#{@blog.view}/themes/standard/global.lt3",
315
- File.write("#{@blog.root}/views/#{@blog.view}/data/global.lt3",
312
+ File.write("#{@blog.root}/views/#{@blog.view}/global.lt3",
316
313
  text.gsub(/VIEW_NAME/, @blog.view.to_s))
317
314
  vim_params = '-c ":set hlsearch" -c ":hi Search ctermfg=2 ctermbg=6" +/"\(VIEW_.*\|SITE.*\)"'
318
- # edit_file(@blog.view.dir/"themes/standard/global.lt3", vim: vim_params)
319
- edit_file(@blog.view.dir/"data/global.lt3", vim: vim_params)
315
+ edit_file(@blog.view.dir/"global.lt3", vim: vim_params)
320
316
  @blog.change_view(arg)
321
317
  rescue ViewAlreadyExists
322
318
  puts 'Blog already exists'
data/lib/runeblog.rb CHANGED
@@ -73,8 +73,9 @@ class RuneBlog
73
73
  def RuneBlog.post_template(num: 0, title: "No title", date: nil, view: "test_view",
74
74
  teaser: "No teaser", body: "No body", tags: ["untagged"],
75
75
  views: [], back: "javascript:history.go(-1)", home: "no url")
76
- log!(enter: __method__, args: [num, title, date, view, teaser, body, tags, views, back, home], level: 3)
77
- viewlist = (views + [view.to_s]).join(" ").uniq
76
+ arglist = [num, title, date, view, teaser, body, tags, views, back, home]
77
+ log!(enter: __method__, args: arglist, level: 3)
78
+ viewlist = (views + [view.to_s]).uniq.join(" ")
78
79
  taglist = ".tags " + tags.join(" ")
79
80
 
80
81
  <<~TEXT
@@ -91,7 +92,14 @@ class RuneBlog
91
92
  #{body}
92
93
  TEXT
93
94
  end
94
-
95
+ rescue => err
96
+ puts "Error in #{__method__} in #{__FILE__}
97
+ puts " #{err.inspect}"
98
+ if err.respond_to?(:backtrace)
99
+ context = err.backtrace.map {|x| " " + x}.join("\n")
100
+ puts context
101
+ end
102
+ abort "\nTerminated."
95
103
  end
96
104
 
97
105
  def self.create_new_blog_repo(root_rel = ".blogs")
@@ -132,10 +140,7 @@ class RuneBlog
132
140
  log!(enter: "RuneBlog.read", args: [root_rel])
133
141
  RuneBlog.new(root_rel)
134
142
  rescue => err
135
- puts "ERROR - #{err.inspect}"
136
- # puts "Error - see stderr.out"
137
- puts err.inspect # + "\n" + err&.backtrace
138
- sleep 3
143
+ fatal(err)
139
144
  end
140
145
 
141
146
  def initialize(root_rel = ".blogs") ##### FIXME ??
@@ -152,6 +157,9 @@ class RuneBlog
152
157
  @sequence, @post_views, @post_tags = get_sequence, [], []
153
158
  get_repo_config
154
159
  read_features
160
+ rescue => err
161
+ puts "Error: #{__method__} - #{err.inspect}\n#{err.backtrace.join("\n")}\n "
162
+ abort "Terminated."
155
163
  end
156
164
 
157
165
  def complete_file(name, vars, hash)
@@ -165,6 +173,12 @@ class RuneBlog
165
173
 
166
174
  hash.each_pair {|key, var| text.gsub!(key, vars[var]) }
167
175
  File.write(name, text)
176
+ rescue => err
177
+ puts "Error in #{__method__} in #{__FILE__}
178
+ puts " #{err.inspect}"
179
+ context = err.backtrace.map {|x| " " + x}.join("\n")
180
+ puts context
181
+ abort "\nTerminated."
168
182
  end
169
183
 
170
184
  def _generate_settings(view = nil)
@@ -203,6 +217,14 @@ class RuneBlog
203
217
  # recent.txt - SKIP THIS?
204
218
  complete_file(settings/"recent.txt", {})
205
219
  end
220
+ rescue => err
221
+ puts "Error in #{__method__} in #{__FILE__}
222
+ puts " #{err.inspect}"
223
+ if err.respond_to?(:backtrace)
224
+ context = err.backtrace.map {|x| " " + x}.join("\n")
225
+ puts context
226
+ end
227
+ abort "\nTerminated."
206
228
  end
207
229
 
208
230
  def _generate_global
@@ -215,6 +237,14 @@ class RuneBlog
215
237
  /LOCALE/ => :locale}
216
238
  complete_file(gfile, vars, hash)
217
239
  _generate_settings
240
+ rescue => err
241
+ puts "Error in #{__method__} in #{__FILE__}
242
+ puts " #{err.inspect}"
243
+ if err.respond_to?(:backtrace)
244
+ context = err.backtrace.map {|x| " " + x}.join("\n")
245
+ puts context
246
+ end
247
+ abort "\nTerminated."
218
248
  end
219
249
 
220
250
  # FIXME reconcile with _get_draft data
@@ -225,6 +255,14 @@ class RuneBlog
225
255
  meta.tags = meta.tags.split
226
256
  RuneBlog.blog.post = meta
227
257
  meta
258
+ rescue => err
259
+ puts "Error in #{__method__} in #{__FILE__}
260
+ puts " #{err.inspect}"
261
+ if err.respond_to?(:backtrace)
262
+ context = err.backtrace.map {|x| " " + x}.join("\n")
263
+ puts context
264
+ end
265
+ abort "\nTerminated."
228
266
  end
229
267
 
230
268
  def _deploy_local(dir)
@@ -346,12 +384,21 @@ class RuneBlog
346
384
  File.write(@root/"data/VIEW", view_name)
347
385
  @views << view # all views
348
386
  view
387
+ rescue => err
388
+ puts "Error in #{__method__} in #{__FILE__}
389
+ puts " #{err.inspect}"
390
+ if err.respond_to?(:backtrace)
391
+ context = err.backtrace.map {|x| " " + x}.join("\n")
392
+ puts context
393
+ end
394
+ abort "\nTerminated."
349
395
  end
350
396
 
351
397
  def make_empty_view_tree(view_name)
352
398
  log!(enter: __method__, args: [view_name], level: 2)
353
399
  Dir.chdir(@root) do
354
400
  cmd = "cp -r #{RuneBlog::Path}/../empty_view views/#{view_name}"
401
+ puts "#{__method__}: cmd = #{cmd.inspect}"
355
402
  system!(cmd)
356
403
  cmd = "cp -r widgets views/#{view_name}"
357
404
  system!(cmd)
@@ -373,9 +420,10 @@ class RuneBlog
373
420
  log!(enter: __method__, args: [view_name], level: 2)
374
421
  make_empty_view_tree(view_name)
375
422
  add_view(view_name)
423
+ # FIXME - fundamentally illogical?? what is "global" really?
424
+ src, dst = "#@root/data/global.lt3", "#@root/views/#{view_name}/global.lt3"
425
+ system("cp #{src} #{dst}")
376
426
  mark_last_published("Initial creation")
377
- # system("cp #@root/data/global.lt3 #@root/views/#{view_name}/themes/standard/global.lt3")
378
- system("cp #@root/data/global.lt3 #@root/views/#{view_name}/data/global.lt3")
379
427
  @view.get_globals(true)
380
428
  rescue => err
381
429
  _tmp_error(err)
@@ -534,6 +582,14 @@ class RuneBlog
534
582
  end
535
583
  # curr_drafts
536
584
  list.sort
585
+ rescue => err
586
+ puts "Error in #{__method__} in #{__FILE__}
587
+ puts " #{err.inspect}"
588
+ if err.respond_to?(:backtrace)
589
+ context = err.backtrace.map {|x| " " + x}.join("\n")
590
+ puts context
591
+ end
592
+ abort "\nTerminated."
537
593
  end
538
594
 
539
595
  def all_drafts
@@ -541,6 +597,14 @@ class RuneBlog
541
597
  dir = @root/:drafts
542
598
  drafts = Dir.entries(dir).grep(/^\d{4}.*/)
543
599
  drafts.sort
600
+ rescue => err
601
+ puts "Error in #{__method__} in #{__FILE__}
602
+ puts " #{err.inspect}"
603
+ if err.respond_to?(:backtrace)
604
+ context = err.backtrace.map {|x| " " + x}.join("\n")
605
+ puts context
606
+ end
607
+ abort "\nTerminated."
544
608
  end
545
609
 
546
610
  def change_view(view)
@@ -549,6 +613,14 @@ class RuneBlog
549
613
  File.write(@root/"data/VIEW", view)
550
614
  # write_repo_config
551
615
  self.view = view # error checking?
616
+ rescue => err
617
+ puts "Error in #{__method__} in #{__FILE__}
618
+ puts " #{err.inspect}"
619
+ if err.respond_to?(:backtrace)
620
+ context = err.backtrace.map {|x| " " + x}.join("\n")
621
+ puts context
622
+ end
623
+ abort "\nTerminated."
552
624
  end
553
625
 
554
626
  def generate_index(view)
@@ -565,8 +637,9 @@ class RuneBlog
565
637
  log!(enter: __method__, args: [view])
566
638
  vdir = @root/:views/view
567
639
  @theme = @root/:views/view/:themes/:standard
568
- @data = @root/:views/view/:data
569
- depend = [vdir/"remote/etc/blog.css.lt3", @data/"global.lt3",
640
+ # CHANGED - redefining "global"
641
+ # depend = [vdir/"remote/etc/blog.css.lt3", @theme/"global.lt3",
642
+ depend = [vdir/"remote/etc/blog.css.lt3", vdir/"global.lt3",
570
643
  @theme/"blog/head.lt3",
571
644
  # @theme/"navbar/navbar.lt3",
572
645
  @theme/"blog/index.lt3"] # FIXME what about assets?
@@ -580,9 +653,13 @@ class RuneBlog
580
653
  # rebuild widgets?
581
654
  copy_widget_html(view)
582
655
  rescue => err
583
- STDERR.puts err
584
- STDERR.puts err.backtrace.join("\n")
585
- # _tmp_error(err)
656
+ puts "Error in #{__method__} in #{__FILE__}
657
+ puts " #{err.inspect}"
658
+ if err.respond_to?(:backtrace)
659
+ context = err.backtrace.map {|x| " " + x}.join("\n")
660
+ puts context
661
+ end
662
+ abort "\nTerminated."
586
663
  end
587
664
 
588
665
  def _get_views(draft)
@@ -642,25 +719,19 @@ class RuneBlog
642
719
 
643
720
  def copy_widget_html(view)
644
721
  log!(enter: __method__, level: 2)
645
- log! str: "=== cwh cp 1"
646
722
  vdir = @root/:views/view
647
723
  remote = vdir/:remote
648
724
  wdir = vdir/:widgets
649
725
  widgets = Dir[wdir/"*"].select {|w| File.directory?(w) }
650
- log! str: "=== cwh cp 2"
651
726
  widgets.each do |w|
652
727
  dir = File.basename(w)
653
728
  rem = w.sub(/widgets/, "remote/widgets")
654
- log! str: "=== cwh cp 3 w = #{w.inspect}"
655
729
  create_dirs(rem)
656
730
  files = Dir[w/"*"]
657
731
  # files = files.select {|x| x =~ /(html|css)$/ }
658
732
  tag = File.basename(w)
659
- log! str: "=== cwh cp 4 tag = #{tag.inspect}"
660
- files.each {|file| system!("cp #{file} #{rem}", show: true) }
661
- log! str: "=== cwh cp 5 tag was #{tag.inspect}"
733
+ files.each {|file| system!("cp #{file} #{rem}") } # , show: true) }
662
734
  end
663
- log! str: "=== cwh cp 6"
664
735
  rescue => err
665
736
  _tmp_error(err)
666
737
  end
@@ -681,10 +752,9 @@ log! str: "=== cwh cp 6"
681
752
 
682
753
  create_dirs(pdraft) # Step 1...
683
754
  @view.globals ||= {}
684
- args = {cwd: pdraft, src: draft, debug: true, dst: "guts.html",
685
- mix: "liveblog", vars: @view.globals}
755
+ # args = {cwd: pdraft, src: draft, dst: "guts.html",
756
+ # mix: "liveblog", vars: @view.globals}
686
757
  preprocess cwd: pdraft, src: draft, # FIXME dependencies?
687
- debug: true,
688
758
  dst: "guts.html", mix: "liveblog", vars: @view.globals
689
759
  hash = _post_metadata(draft, pdraft)
690
760
  hash[:CurrentPost] = pmeta
@@ -693,7 +763,7 @@ args = {cwd: pdraft, src: draft, debug: true, dst: "guts.html",
693
763
  copy(pdraft/"guts.html", vposts/nslug) # Step 3...
694
764
  # Step 4...
695
765
  preprocess cwd: pmeta, src: "../../themes/standard/post/generate.lt3",
696
- force: true, vars: hash, debug: true,
766
+ force: true, vars: hash,
697
767
  dst: remote/ahtml, call: ".nopara"
698
768
  FileUtils.rm_f(remote/"published")
699
769
  timelog("Generated", remote/"history")