runeblog 0.3.34 → 0.3.36

Sign up to get free protection for your applications and to get access to all the features.
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")