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.
- 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")
|