runeblog 0.3.34 → 0.3.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/global.lt3 +3 -3
- data/empty_view/global.lt3 +20 -0
- data/empty_view/themes/standard/banner/top.lt3 +1 -1
- data/empty_view/themes/standard/blog/generate.lt3 +1 -1
- data/empty_view/themes/standard/blog/index.lt3 +8 -4
- data/empty_view/themes/standard/etc/blog.css.lt3 +1 -1
- data/empty_view/themes/standard/post/generate.lt3 +1 -1
- data/empty_view/themes/standard/post/permalink.lt3 +1 -1
- data/lib/exceptions.rb +2 -0
- data/lib/helpers-blog.rb +3 -3
- data/lib/liveblog.rb +25 -24
- data/lib/lowlevel.rb +47 -0
- data/lib/menus.rb +2 -2
- data/lib/processing.rb +9 -17
- data/lib/publish.rb +3 -6
- data/lib/repl.rb +5 -9
- data/lib/runeblog.rb +95 -25
- data/lib/runeblog_version.rb +6 -2
- data/lib/view.rb +7 -3
- data/runeblog.gemspec +5 -3
- data/test/.blogs/data/EDITOR +1 -0
- data/test/.blogs/data/ROOT +1 -0
- data/test/.blogs/data/VERSION +2 -0
- data/test/.blogs/data/VIEW +1 -0
- data/test/.blogs/data/features.txt +18 -0
- data/test/.blogs/data/global.lt3 +20 -0
- data/test/.blogs/data/sequence +1 -0
- data/test/.blogs/data/universal.lt3 +20 -0
- data/test/.blogs/drafts/0001-whats-at-stubbs.lt3 +13 -0
- data/test/.blogs/drafts/0002-the-new-amphitheatre-is-overrated.lt3 +14 -0
- data/test/.blogs/drafts/0003-the-graffiti-wall.lt3 +42 -0
- data/test/.blogs/drafts/0004-the-waller-creek-project.lt3 +13 -0
- data/test/.blogs/drafts/0005-life-on-sabine-street.lt3 +13 -0
- data/test/.blogs/drafts/0006-remember-modest-mouse.lt3 +14 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/guts.html +6 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/metadata.txt +7 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/teaser.txt +1 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/guts.html +6 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/metadata.txt +7 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/teaser.txt +1 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/guts.html +6 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/metadata.txt +7 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/teaser.txt +1 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/guts.html +6 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/metadata.txt +7 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/teaser.txt +1 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/guts.html +6 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/metadata.txt +7 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/assets/austin-pano.jpg +0 -0
- data/test/.blogs/views/around_austin/assets/back-icon.png +0 -0
- data/test/.blogs/views/around_austin/assets/reddit-logo.png +0 -0
- data/test/.blogs/views/around_austin/assets/sky2.jpg +0 -0
- data/test/.blogs/views/around_austin/config/exper/2svg.lt3 +38 -0
- data/test/.blogs/views/around_austin/config/exper/gen_svg.rb +60 -0
- data/test/.blogs/views/around_austin/config/exper/meta.html +10 -0
- data/test/.blogs/views/around_austin/config/exper/s2.html +25 -0
- data/test/.blogs/views/around_austin/config/exper/varmint.rb +50 -0
- data/test/.blogs/views/around_austin/config/facebook/credentials.txt +7 -0
- data/test/.blogs/views/around_austin/config/facebook/facebook.rb +42 -0
- data/test/.blogs/views/around_austin/config/facebook/fb.html +10 -0
- data/test/.blogs/views/around_austin/config/facebook/fb.js.lt3 +15 -0
- data/test/.blogs/views/around_austin/config/reddit/credentials.txt +6 -0
- data/test/.blogs/views/around_austin/config/reddit/notes.txt +4 -0
- data/test/.blogs/views/around_austin/config/reddit/reddit_post_url.py +34 -0
- data/test/.blogs/views/around_austin/config/reddit/redpost.rb +38 -0
- data/test/.blogs/views/around_austin/config/twitter/credentials.txt +3 -0
- data/test/.blogs/views/around_austin/config/twitter/tw.html +12 -0
- data/test/.blogs/views/around_austin/config/twitter/tw.js +5 -0
- data/test/.blogs/views/around_austin/config/twitter/twitter.rb +35 -0
- data/test/.blogs/views/around_austin/data/GIT_IS_DUMB +0 -0
- data/test/.blogs/views/around_austin/global.lt3 +20 -0
- data/test/.blogs/views/around_austin/last_published +1 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/assets/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/GIT_IS_DUMB +0 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/about.html +10 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/contact.html +10 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/faq.html +46 -0
- data/test/.blogs/views/around_austin/remote/etc/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/etc/blog.css +66 -0
- data/test/.blogs/views/around_austin/remote/history +6 -0
- data/test/.blogs/views/around_austin/remote/life-on-sabine-street.html +2 -0
- data/test/.blogs/views/around_austin/remote/permalink/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/recent.html +4 -0
- data/test/.blogs/views/around_austin/remote/remember-modest-mouse.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-graffiti-wall.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-new-amphitheatre-is-overrated.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-waller-creek-project.html +2 -0
- data/test/.blogs/views/around_austin/remote/whats-at-stubbs.html +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/ad/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/links.rb +90 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/list.data +3 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/news.rb +88 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/local.rb +0 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/pages.rb +130 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/search.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/.blogs/views/around_austin/settings/features.txt +18 -0
- data/test/.blogs/views/around_austin/settings/publish.txt +5 -0
- data/test/.blogs/views/around_austin/settings/recent.txt +11 -0
- data/test/.blogs/views/around_austin/settings/view.txt +4 -0
- data/test/.blogs/views/around_austin/themes/standard/README +59 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/banner.lt3 +5 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/about.lt3 +18 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/contact.lt3 +18 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/faq.lt3 +1 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/list.data +3 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/navbar.html +10 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/top.html +22 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/top.lt3 +20 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/generate.lt3 +21 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/head.lt3 +16 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/index.lt3 +20 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/post_entry.lt3 +21 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css +66 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css.lt3 +62 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/externals.lt3 +24 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/github.css +209 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/misc.js +20 -0
- data/test/.blogs/views/around_austin/themes/standard/post/generate.lt3 +39 -0
- data/test/.blogs/views/around_austin/themes/standard/post/head.lt3 +7 -0
- data/test/.blogs/views/around_austin/themes/standard/post/index.lt3 +24 -0
- data/test/.blogs/views/around_austin/themes/standard/post/permalink.lt3 +31 -0
- data/test/.blogs/views/around_austin/widgets/README +4 -0
- data/test/.blogs/views/around_austin/widgets/bydates/README +2 -0
- data/test/.blogs/views/around_austin/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/bydates/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/bydates/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/links/README +2 -0
- data/test/.blogs/views/around_austin/widgets/links/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/links/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/links/links-card.html +18 -0
- data/test/.blogs/views/around_austin/widgets/links/links-main.html +13 -0
- data/test/.blogs/views/around_austin/widgets/links/links.rb +90 -0
- data/test/.blogs/views/around_austin/widgets/links/list.data +3 -0
- data/test/.blogs/views/around_austin/widgets/links/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/news/README +2 -0
- data/test/.blogs/views/around_austin/widgets/news/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/news/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/widgets/news/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/news/news.rb +88 -0
- data/test/.blogs/views/around_austin/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/widgets/pages/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/pages/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/views/around_austin/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/views/around_austin/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/views/around_austin/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/widgets/pages/local.rb +0 -0
- data/test/.blogs/views/around_austin/widgets/pages/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/views/around_austin/widgets/pages/pages.rb +130 -0
- data/test/.blogs/views/around_austin/widgets/pinned/README +2 -0
- data/test/.blogs/views/around_austin/widgets/pinned/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/pinned/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/views/around_austin/widgets/search/README +2 -0
- data/test/.blogs/views/around_austin/widgets/search/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/search/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/search/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/search/search.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/README +2 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/README +2 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/.blogs/widgets/README +4 -0
- data/test/.blogs/widgets/bydates/README +2 -0
- data/test/.blogs/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/widgets/bydates/card.css +1 -0
- data/test/.blogs/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/widgets/bydates/main.css +2 -0
- data/test/.blogs/widgets/links/README +2 -0
- data/test/.blogs/widgets/links/card.css +1 -0
- data/test/.blogs/widgets/links/custom.rb +1 -0
- data/test/.blogs/widgets/links/links.rb +90 -0
- data/test/.blogs/widgets/links/list.data +3 -0
- data/test/.blogs/widgets/links/main.css +2 -0
- data/test/.blogs/widgets/news/README +2 -0
- data/test/.blogs/widgets/news/card.css +1 -0
- data/test/.blogs/widgets/news/custom.rb +1 -0
- data/test/.blogs/widgets/news/list.data +4 -0
- data/test/.blogs/widgets/news/main.css +2 -0
- data/test/.blogs/widgets/news/news.rb +88 -0
- data/test/.blogs/widgets/pages/README +2 -0
- data/test/.blogs/widgets/pages/card.css +1 -0
- data/test/.blogs/widgets/pages/custom.rb +1 -0
- data/test/.blogs/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/widgets/pages/list.data +4 -0
- data/test/.blogs/widgets/pages/local.rb +0 -0
- data/test/.blogs/widgets/pages/main.css +2 -0
- data/test/.blogs/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/widgets/pages/pages.rb +130 -0
- data/test/.blogs/widgets/pinned/README +2 -0
- data/test/.blogs/widgets/pinned/card.css +1 -0
- data/test/.blogs/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/widgets/pinned/main.css +2 -0
- data/test/.blogs/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/widgets/search/README +2 -0
- data/test/.blogs/widgets/search/card.css +1 -0
- data/test/.blogs/widgets/search/custom.rb +1 -0
- data/test/.blogs/widgets/search/main.css +2 -0
- data/test/.blogs/widgets/search/search.rb +18 -0
- data/test/.blogs/widgets/sitemap/README +2 -0
- data/test/.blogs/widgets/sitemap/card.css +1 -0
- data/test/.blogs/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/widgets/sitemap/main.css +2 -0
- data/test/.blogs/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/widgets/tag-cloud/README +2 -0
- data/test/.blogs/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/austin.rb +8 -3
- data/test/binblog.txt +2 -0
- data/test/stderr.out +0 -0
- metadata +290 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea9b85dbf3f321c19a1d899e4a6497b519d7cfa5c9fc03845aa3afa4b13e7638
|
4
|
+
data.tar.gz: b5f8701cbe8582e1ce91236a5780ee7a1e8a718116a6ce82139dde6b555bb81a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
6
|
+
.variables view settings/view.txt
|
7
7
|
|
8
|
-
.variables recent
|
8
|
+
.variables recent settings/recent.txt
|
9
9
|
|
10
|
-
.variables publish
|
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
|
+
|
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
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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]
|
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
|
-
|
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
|
-
|
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 =>
|
93
|
-
|
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
|
-
|
17
|
+
# CHANGED redefining "global" location
|
18
|
+
dir = @blog.root/:views/view # /"themes/standard/"
|
18
19
|
gfile = dir/"global.lt3"
|
19
|
-
|
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
|
-
|
237
|
+
checkpoint! "Generating index..."
|
240
238
|
@blog.generate_index(@blog.view)
|
241
|
-
|
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}/
|
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
|
-
|
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
|
-
|
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
|
-
|
77
|
-
|
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
|
-
|
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
|
-
|
569
|
-
depend = [vdir/"remote/etc/blog.css.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
|
-
|
584
|
-
|
585
|
-
|
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
|
-
|
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,
|
685
|
-
|
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,
|
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")
|