runeblog 0.1.98 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/empty_view.tgz +0 -0
- data/lib/BAD.liveblog.rb +724 -0
- data/lib/KEEP.liveblog +646 -0
- data/lib/NEW-liveblog.rb +757 -0
- data/lib/OLD-liveblog.rb +661 -0
- data/lib/default.rb +1 -0
- data/lib/global.rb +5 -0
- data/lib/helpers-blog.rb +41 -6
- data/lib/liveblog.rb +105 -61
- data/lib/logging.rb +58 -0
- data/lib/post.rb +9 -0
- data/lib/publish.rb +7 -0
- data/lib/runeblog.rb +120 -50
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +8 -0
- data/runeblog.gemspec +1 -1
- data/test/.blogs/VERSION +2 -0
- data/test/.blogs/config +3 -0
- data/test/.blogs/drafts/0001-whats-at-stubbs.lt3 +16 -0
- data/test/.blogs/drafts/0002-the-new-amphitheatre-is-overrated.lt3 +16 -0
- data/test/.blogs/drafts/0003-elixir-conf-coming-up.lt3 +17 -0
- data/test/.blogs/drafts/0004-does-indie-still-matter.lt3 +16 -0
- data/test/.blogs/drafts/0005-the-genius-of-scenic.lt3 +16 -0
- data/test/.blogs/drafts/0006-the-future-of-coding.lt3 +16 -0
- data/test/.blogs/drafts/0007-the-graffiti-wall.lt3 +17 -0
- data/test/.blogs/drafts/0008-the-waller-creek-project.lt3 +16 -0
- data/test/.blogs/drafts/0009-life-on-sabine-street.lt3 +16 -0
- data/test/.blogs/drafts/0010-remember-modest-mouse.lt3 +17 -0
- data/test/.blogs/sequence +1 -0
- data/test/.blogs/views/around_austin/last_published +1 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/0001-whats-at-stubbs.lt3 +16 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/metadata.txt +6 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/whats-at-stubbs.html +11 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/0002-the-new-amphitheatre-is-overrated.lt3 +16 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +6 -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/0002-the-new-amphitheatre-is-overrated/the-new-amphitheatre-is-overrated.html +11 -0
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/0007-the-graffiti-wall.lt3 +17 -0
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/metadata.txt +6 -0
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/the-graffiti-wall.html +12 -0
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/0008-the-waller-creek-project.lt3 +16 -0
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/metadata.txt +6 -0
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/the-waller-creek-project.html +11 -0
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/0009-life-on-sabine-street.lt3 +16 -0
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/life-on-sabine-street.html +11 -0
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/metadata.txt +6 -0
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/publish +5 -0
- data/test/.blogs/views/around_austin/remote/etc/blog.css +34 -0
- data/test/.blogs/views/around_austin/remote/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/around_austin/remote/etc/externals.lt3 +19 -0
- data/test/.blogs/views/around_austin/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/remote/etc/misc.js +6 -0
- data/test/.blogs/views/around_austin/remote/life-on-sabine-street.html +10 -0
- data/test/.blogs/views/around_austin/remote/permalink/life-on-sabine-street.html +10 -0
- data/test/.blogs/views/around_austin/remote/permalink/the-graffiti-wall.html +10 -0
- data/test/.blogs/views/around_austin/remote/permalink/the-new-amphitheatre-is-overrated.html +50 -0
- data/test/.blogs/views/around_austin/remote/permalink/the-waller-creek-project.html +50 -0
- data/test/.blogs/views/around_austin/remote/permalink/whats-at-stubbs.html +50 -0
- data/test/.blogs/views/around_austin/remote/recent.html +104 -0
- data/test/.blogs/views/around_austin/remote/the-graffiti-wall.html +10 -0
- data/test/.blogs/views/around_austin/remote/the-new-amphitheatre-is-overrated.html +50 -0
- data/test/.blogs/views/around_austin/remote/the-waller-creek-project.html +50 -0
- data/test/.blogs/views/around_austin/remote/whats-at-stubbs.html +50 -0
- data/test/.blogs/views/around_austin/remote/widgets/README +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/ad/ad.lt3 +12 -0
- data/{themes/standard/sidebar → test/.blogs/views/around_austin/remote/widgets/calendar}/calendar.lt3 +0 -0
- data/{themes/standard/sidebar/news.lt3 → test/.blogs/views/around_austin/remote/widgets/news/list.data} +2 -5
- data/test/.blogs/views/around_austin/remote/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/main.html +9 -0
- data/{themes/standard → test/.blogs/views/around_austin/remote}/widgets/pages/main.lt3 +2 -2
- data/{themes/standard/sidebar → test/.blogs/views/around_austin/remote/widgets/tag-cloud}/tag-cloud.lt3 +2 -0
- data/test/.blogs/views/around_austin/staging/0001-whats-at-stubbs.lt3 +16 -0
- data/test/.blogs/views/around_austin/staging/0002-the-new-amphitheatre-is-overrated.lt3 +16 -0
- data/test/.blogs/views/around_austin/staging/0007-the-graffiti-wall.lt3 +17 -0
- data/test/.blogs/views/around_austin/staging/0008-the-waller-creek-project.lt3 +16 -0
- data/test/.blogs/views/around_austin/staging/0009-life-on-sabine-street.lt3 +16 -0
- data/test/.blogs/views/around_austin/staging/README +59 -0
- data/test/.blogs/views/around_austin/staging/blog/generate.lt3 +17 -0
- data/test/.blogs/views/around_austin/staging/blog/head.lt3 +9 -0
- data/test/.blogs/views/around_austin/staging/blog/index.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/around_austin/staging/etc/blog.css +34 -0
- data/test/.blogs/views/around_austin/staging/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/around_austin/staging/etc/externals.lt3 +19 -0
- data/test/.blogs/views/around_austin/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/staging/etc/misc.js +6 -0
- data/test/.blogs/views/around_austin/staging/global.lt3 +22 -0
- data/test/.blogs/views/around_austin/staging/life-on-sabine-street.html +10 -0
- data/test/.blogs/views/around_austin/staging/navbar/about.html +6 -0
- data/test/.blogs/views/around_austin/staging/navbar/contact.html +6 -0
- data/test/.blogs/views/around_austin/staging/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/post/generate.lt3 +26 -0
- data/test/.blogs/views/around_austin/staging/post/head.lt3 +4 -0
- data/test/.blogs/views/around_austin/staging/post/index.html +16 -0
- data/test/.blogs/views/around_austin/staging/post/index.lt3 +16 -0
- data/test/.blogs/views/around_austin/staging/post/permalink.lt3 +26 -0
- data/test/.blogs/views/around_austin/staging/recent.html +104 -0
- data/test/.blogs/views/around_austin/staging/sidebar/README +3 -0
- data/test/.blogs/views/around_austin/staging/the-graffiti-wall.html +10 -0
- data/test/.blogs/views/around_austin/staging/the-new-amphitheatre-is-overrated.html +50 -0
- data/test/.blogs/views/around_austin/staging/the-waller-creek-project.html +50 -0
- data/test/.blogs/views/around_austin/staging/vars.lt3 +2 -0
- data/test/.blogs/views/around_austin/staging/whats-at-stubbs.html +50 -0
- data/test/.blogs/views/around_austin/staging/widgets/README +4 -0
- data/test/.blogs/views/around_austin/staging/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/around_austin/staging/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/staging/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/main.html +9 -0
- data/test/.blogs/views/around_austin/staging/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/around_austin/staging/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/around_austin/themes/standard/README +59 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/generate.lt3 +17 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/head.lt3 +9 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/index.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css +34 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/externals.lt3 +19 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/misc.js +6 -0
- data/test/.blogs/views/around_austin/themes/standard/global.lt3 +22 -0
- data/test/.blogs/views/around_austin/themes/standard/navbar/about.html +6 -0
- data/test/.blogs/views/around_austin/themes/standard/navbar/contact.html +6 -0
- data/test/.blogs/views/around_austin/themes/standard/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/post/generate.lt3 +26 -0
- data/test/.blogs/views/around_austin/themes/standard/post/head.lt3 +4 -0
- data/test/.blogs/views/around_austin/themes/standard/post/index.lt3 +16 -0
- data/test/.blogs/views/around_austin/themes/standard/post/permalink.lt3 +26 -0
- data/test/.blogs/views/around_austin/themes/standard/sidebar/README +3 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/README +4 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/main.html +9 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/around_austin/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/computing/last_published +1 -0
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/0003-elixir-conf-coming-up.lt3 +17 -0
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/elixir-conf-coming-up.html +12 -0
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/metadata.txt +6 -0
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/teaser.txt +1 -0
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/0005-the-genius-of-scenic.lt3 +16 -0
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/metadata.txt +6 -0
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/teaser.txt +1 -0
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/the-genius-of-scenic.html +11 -0
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/0006-the-future-of-coding.lt3 +16 -0
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/metadata.txt +6 -0
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/teaser.txt +1 -0
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/the-future-of-coding.html +11 -0
- data/test/.blogs/views/computing/publish +5 -0
- data/test/.blogs/views/computing/remote/elixir-conf-coming-up.html +51 -0
- data/test/.blogs/views/computing/remote/etc/blog.css +34 -0
- data/test/.blogs/views/computing/remote/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/computing/remote/etc/externals.lt3 +19 -0
- data/test/.blogs/views/computing/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/remote/etc/misc.js +6 -0
- data/test/.blogs/views/computing/remote/permalink/elixir-conf-coming-up.html +51 -0
- data/test/.blogs/views/computing/remote/permalink/the-future-of-coding.html +50 -0
- data/test/.blogs/views/computing/remote/permalink/the-genius-of-scenic.html +50 -0
- data/test/.blogs/views/computing/remote/recent.html +64 -0
- data/test/.blogs/views/computing/remote/the-future-of-coding.html +50 -0
- data/test/.blogs/views/computing/remote/the-genius-of-scenic.html +50 -0
- data/test/.blogs/views/computing/remote/widgets/README +4 -0
- data/test/.blogs/views/computing/remote/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/computing/remote/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/computing/remote/widgets/news/list.data +4 -0
- data/test/.blogs/views/computing/remote/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/computing/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/computing/remote/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/computing/remote/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/computing/remote/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/computing/remote/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/computing/remote/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/computing/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/computing/remote/widgets/pages/main.html +9 -0
- data/test/.blogs/views/computing/remote/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/computing/remote/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/computing/staging/0003-elixir-conf-coming-up.lt3 +17 -0
- data/test/.blogs/views/computing/staging/0005-the-genius-of-scenic.lt3 +16 -0
- data/test/.blogs/views/computing/staging/0006-the-future-of-coding.lt3 +16 -0
- data/test/.blogs/views/computing/staging/README +59 -0
- data/test/.blogs/views/computing/staging/blog/generate.lt3 +17 -0
- data/test/.blogs/views/computing/staging/blog/head.lt3 +9 -0
- data/test/.blogs/views/computing/staging/blog/index.lt3 +6 -0
- data/test/.blogs/views/computing/staging/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/computing/staging/elixir-conf-coming-up.html +51 -0
- data/test/.blogs/views/computing/staging/etc/blog.css +34 -0
- data/test/.blogs/views/computing/staging/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/computing/staging/etc/externals.lt3 +19 -0
- data/test/.blogs/views/computing/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/staging/etc/misc.js +6 -0
- data/test/.blogs/views/computing/staging/global.lt3 +22 -0
- data/test/.blogs/views/computing/staging/navbar/about.html +6 -0
- data/test/.blogs/views/computing/staging/navbar/contact.html +6 -0
- data/test/.blogs/views/computing/staging/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/computing/staging/post/generate.lt3 +26 -0
- data/test/.blogs/views/computing/staging/post/head.lt3 +4 -0
- data/test/.blogs/views/computing/staging/post/index.html +16 -0
- data/test/.blogs/views/computing/staging/post/index.lt3 +16 -0
- data/test/.blogs/views/computing/staging/post/permalink.lt3 +26 -0
- data/test/.blogs/views/computing/staging/recent.html +64 -0
- data/test/.blogs/views/computing/staging/sidebar/README +3 -0
- data/test/.blogs/views/computing/staging/the-future-of-coding.html +50 -0
- data/test/.blogs/views/computing/staging/the-genius-of-scenic.html +50 -0
- data/test/.blogs/views/computing/staging/vars.lt3 +2 -0
- data/test/.blogs/views/computing/staging/widgets/README +4 -0
- data/test/.blogs/views/computing/staging/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/computing/staging/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/computing/staging/widgets/news/list.data +4 -0
- data/test/.blogs/views/computing/staging/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/computing/staging/widgets/pages/README +2 -0
- data/test/.blogs/views/computing/staging/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/computing/staging/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/computing/staging/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/computing/staging/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/computing/staging/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/computing/staging/widgets/pages/list.data +4 -0
- data/test/.blogs/views/computing/staging/widgets/pages/main.html +9 -0
- data/test/.blogs/views/computing/staging/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/computing/staging/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/computing/themes/standard/README +59 -0
- data/test/.blogs/views/computing/themes/standard/blog/generate.lt3 +17 -0
- data/test/.blogs/views/computing/themes/standard/blog/head.lt3 +9 -0
- data/test/.blogs/views/computing/themes/standard/blog/index.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/computing/themes/standard/etc/blog.css +34 -0
- data/test/.blogs/views/computing/themes/standard/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/computing/themes/standard/etc/externals.lt3 +19 -0
- data/test/.blogs/views/computing/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/themes/standard/etc/misc.js +6 -0
- data/test/.blogs/views/computing/themes/standard/global.lt3 +22 -0
- data/test/.blogs/views/computing/themes/standard/navbar/about.html +6 -0
- data/test/.blogs/views/computing/themes/standard/navbar/contact.html +6 -0
- data/test/.blogs/views/computing/themes/standard/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/post/generate.lt3 +26 -0
- data/test/.blogs/views/computing/themes/standard/post/head.lt3 +4 -0
- data/test/.blogs/views/computing/themes/standard/post/index.lt3 +16 -0
- data/test/.blogs/views/computing/themes/standard/post/permalink.lt3 +26 -0
- data/test/.blogs/views/computing/themes/standard/sidebar/README +3 -0
- data/test/.blogs/views/computing/themes/standard/widgets/README +4 -0
- data/test/.blogs/views/computing/themes/standard/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/computing/themes/standard/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/widgets/news/list.data +4 -0
- data/test/.blogs/views/computing/themes/standard/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/README +2 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/list.data +4 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/main.html +9 -0
- data/test/.blogs/views/computing/themes/standard/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/computing/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/music/last_published +1 -0
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/0004-does-indie-still-matter.lt3 +16 -0
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/does-indie-still-matter.html +11 -0
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/metadata.txt +6 -0
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/teaser.txt +1 -0
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/0010-remember-modest-mouse.lt3 +17 -0
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/metadata.txt +6 -0
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/remember-modest-mouse.html +12 -0
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/teaser.txt +1 -0
- data/test/.blogs/views/music/publish +5 -0
- data/test/.blogs/views/music/remote/does-indie-still-matter.html +50 -0
- data/test/.blogs/views/music/remote/etc/blog.css +34 -0
- data/test/.blogs/views/music/remote/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/music/remote/etc/externals.lt3 +19 -0
- data/test/.blogs/views/music/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/remote/etc/misc.js +6 -0
- data/test/.blogs/views/music/remote/permalink/does-indie-still-matter.html +50 -0
- data/test/.blogs/views/music/remote/permalink/remember-modest-mouse.html +51 -0
- data/test/.blogs/views/music/remote/recent.html +44 -0
- data/test/.blogs/views/music/remote/remember-modest-mouse.html +51 -0
- data/test/.blogs/views/music/remote/widgets/README +4 -0
- data/test/.blogs/views/music/remote/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/music/remote/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/music/remote/widgets/news/list.data +4 -0
- data/test/.blogs/views/music/remote/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/music/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/music/remote/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/music/remote/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/music/remote/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/music/remote/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/music/remote/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/music/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/music/remote/widgets/pages/main.html +9 -0
- data/test/.blogs/views/music/remote/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/music/remote/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/music/staging/0004-does-indie-still-matter.lt3 +16 -0
- data/test/.blogs/views/music/staging/0010-remember-modest-mouse.lt3 +17 -0
- data/test/.blogs/views/music/staging/README +59 -0
- data/test/.blogs/views/music/staging/blog/generate.lt3 +17 -0
- data/test/.blogs/views/music/staging/blog/head.lt3 +9 -0
- data/test/.blogs/views/music/staging/blog/index.lt3 +6 -0
- data/test/.blogs/views/music/staging/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/music/staging/does-indie-still-matter.html +50 -0
- data/test/.blogs/views/music/staging/etc/blog.css +34 -0
- data/test/.blogs/views/music/staging/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/music/staging/etc/externals.lt3 +19 -0
- data/test/.blogs/views/music/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/staging/etc/misc.js +6 -0
- data/test/.blogs/views/music/staging/global.lt3 +22 -0
- data/test/.blogs/views/music/staging/navbar/about.html +6 -0
- data/test/.blogs/views/music/staging/navbar/contact.html +6 -0
- data/test/.blogs/views/music/staging/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/music/staging/post/generate.lt3 +26 -0
- data/test/.blogs/views/music/staging/post/head.lt3 +4 -0
- data/test/.blogs/views/music/staging/post/index.html +17 -0
- data/test/.blogs/views/music/staging/post/index.lt3 +16 -0
- data/test/.blogs/views/music/staging/post/permalink.lt3 +26 -0
- data/test/.blogs/views/music/staging/recent.html +44 -0
- data/test/.blogs/views/music/staging/remember-modest-mouse.html +51 -0
- data/test/.blogs/views/music/staging/sidebar/README +3 -0
- data/test/.blogs/views/music/staging/vars.lt3 +2 -0
- data/test/.blogs/views/music/staging/widgets/README +4 -0
- data/test/.blogs/views/music/staging/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/music/staging/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/music/staging/widgets/news/list.data +4 -0
- data/test/.blogs/views/music/staging/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/music/staging/widgets/pages/README +2 -0
- data/test/.blogs/views/music/staging/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/music/staging/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/music/staging/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/music/staging/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/music/staging/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/music/staging/widgets/pages/list.data +4 -0
- data/test/.blogs/views/music/staging/widgets/pages/main.html +9 -0
- data/test/.blogs/views/music/staging/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/music/staging/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/music/themes/standard/README +59 -0
- data/test/.blogs/views/music/themes/standard/blog/generate.lt3 +17 -0
- data/test/.blogs/views/music/themes/standard/blog/head.lt3 +9 -0
- data/test/.blogs/views/music/themes/standard/blog/index.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/music/themes/standard/etc/blog.css +34 -0
- data/test/.blogs/views/music/themes/standard/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/music/themes/standard/etc/externals.lt3 +19 -0
- data/test/.blogs/views/music/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/themes/standard/etc/misc.js +6 -0
- data/test/.blogs/views/music/themes/standard/global.lt3 +22 -0
- data/test/.blogs/views/music/themes/standard/navbar/about.html +6 -0
- data/test/.blogs/views/music/themes/standard/navbar/contact.html +6 -0
- data/test/.blogs/views/music/themes/standard/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/post/generate.lt3 +26 -0
- data/test/.blogs/views/music/themes/standard/post/head.lt3 +4 -0
- data/test/.blogs/views/music/themes/standard/post/index.lt3 +16 -0
- data/test/.blogs/views/music/themes/standard/post/permalink.lt3 +26 -0
- data/test/.blogs/views/music/themes/standard/sidebar/README +3 -0
- data/test/.blogs/views/music/themes/standard/widgets/README +4 -0
- data/test/.blogs/views/music/themes/standard/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/music/themes/standard/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/widgets/news/list.data +4 -0
- data/test/.blogs/views/music/themes/standard/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/README +2 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/list.data +4 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/main.html +9 -0
- data/test/.blogs/views/music/themes/standard/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/music/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/test_view/last_published +1 -0
- data/test/.blogs/views/test_view/publish +5 -0
- data/test/.blogs/views/test_view/remote/etc/blog.css +34 -0
- data/test/.blogs/views/test_view/remote/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/test_view/remote/etc/externals.lt3 +19 -0
- data/test/.blogs/views/test_view/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/remote/etc/misc.js +6 -0
- data/test/.blogs/views/test_view/remote/widgets/README +4 -0
- data/test/.blogs/views/test_view/remote/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/test_view/remote/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/test_view/remote/widgets/news/list.data +4 -0
- data/test/.blogs/views/test_view/remote/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/main.html +9 -0
- data/test/.blogs/views/test_view/remote/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/test_view/remote/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/test_view/staging/README +59 -0
- data/test/.blogs/views/test_view/staging/blog/generate.lt3 +17 -0
- data/test/.blogs/views/test_view/staging/blog/head.lt3 +9 -0
- data/test/.blogs/views/test_view/staging/blog/index.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/test_view/staging/etc/blog.css +34 -0
- data/test/.blogs/views/test_view/staging/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/test_view/staging/etc/externals.lt3 +19 -0
- data/test/.blogs/views/test_view/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/staging/etc/misc.js +6 -0
- data/test/.blogs/views/test_view/staging/global.lt3 +22 -0
- data/test/.blogs/views/test_view/staging/navbar/about.html +6 -0
- data/test/.blogs/views/test_view/staging/navbar/contact.html +6 -0
- data/test/.blogs/views/test_view/staging/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/post/generate.lt3 +26 -0
- data/test/.blogs/views/test_view/staging/post/head.lt3 +4 -0
- data/test/.blogs/views/test_view/staging/post/index.lt3 +16 -0
- data/test/.blogs/views/test_view/staging/post/permalink.lt3 +26 -0
- data/test/.blogs/views/test_view/staging/sidebar/README +3 -0
- data/test/.blogs/views/test_view/staging/widgets/README +4 -0
- data/test/.blogs/views/test_view/staging/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/test_view/staging/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/widgets/news/list.data +4 -0
- data/test/.blogs/views/test_view/staging/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/README +2 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/list.data +4 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/main.html +9 -0
- data/test/.blogs/views/test_view/staging/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/test_view/staging/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/.blogs/views/test_view/themes/standard/README +59 -0
- data/test/.blogs/views/test_view/themes/standard/blog/generate.lt3 +17 -0
- data/test/.blogs/views/test_view/themes/standard/blog/head.lt3 +9 -0
- data/test/.blogs/views/test_view/themes/standard/blog/index.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/blog/post_entry.lt3 +19 -0
- data/test/.blogs/views/test_view/themes/standard/etc/blog.css +34 -0
- data/test/.blogs/views/test_view/themes/standard/etc/blog.css.lt3 +36 -0
- data/test/.blogs/views/test_view/themes/standard/etc/externals.lt3 +19 -0
- data/test/.blogs/views/test_view/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/themes/standard/etc/misc.js +6 -0
- data/test/.blogs/views/test_view/themes/standard/global.lt3 +22 -0
- data/test/.blogs/views/test_view/themes/standard/navbar/about.html +6 -0
- data/test/.blogs/views/test_view/themes/standard/navbar/contact.html +6 -0
- data/test/.blogs/views/test_view/themes/standard/navbar/navbar.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/post/generate.lt3 +26 -0
- data/test/.blogs/views/test_view/themes/standard/post/head.lt3 +4 -0
- data/test/.blogs/views/test_view/themes/standard/post/index.lt3 +16 -0
- data/test/.blogs/views/test_view/themes/standard/post/permalink.lt3 +26 -0
- data/test/.blogs/views/test_view/themes/standard/sidebar/README +3 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/README +4 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/ad/ad.lt3 +12 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/calendar/calendar.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/news/list.data +4 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/news/news.lt3 +3 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/README +2 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/disclaim.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/faq.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/generated.lt3 +4 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/lifestory.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/like-dislike.lt3 +6 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/list.data +4 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/main.html +9 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/main.lt3 +18 -0
- data/test/.blogs/views/test_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- data/test/config +3 -0
- data/test/make_blog.rb +9 -5
- data/themes/standard/blog/index.lt3 +3 -2
- data/themes/standard/blog/recent.lt3 +2 -0
- data/themes/standard/post/generate.lt3 +0 -2
- data/themes/standard/sidebar/README +3 -0
- data/themes/standard/widgets/ad/ad.lt3 +15 -0
- data/themes/standard/widgets/calendar/calendar.lt3 +6 -0
- data/themes/standard/widgets/news/list.data +4 -0
- data/themes/standard/widgets/news/news.lt3 +2 -0
- data/themes/standard/widgets/pages/disclaim.html +6 -0
- data/themes/standard/widgets/pages/disclaim.lt3 +2 -3
- data/themes/standard/widgets/pages/faq.html +7 -0
- data/themes/standard/widgets/pages/faq.lt3 +1 -1
- data/themes/standard/widgets/pages/lifestory.html +7 -0
- data/themes/standard/widgets/pages/lifestory.lt3 +1 -1
- data/themes/standard/widgets/pages/like-dislike.html +7 -0
- data/themes/standard/widgets/pages/like-dislike.lt3 +1 -1
- data/themes/standard/widgets/pages/list.data +4 -4
- data/themes/standard/widgets/pages/pages.lt3 +2 -0
- data/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +12 -0
- metadata +486 -7
- data/themes/standard/sidebar/ad.lt3 +0 -5
data/lib/default.rb
CHANGED
@@ -6,6 +6,7 @@ class RuneBlog::Default
|
|
6
6
|
def RuneBlog.post_template(num: 0, title: "No title", date: nil, view: "test_view",
|
7
7
|
teaser: "No teaser", body: "No body", tags: ["untagged"],
|
8
8
|
views: [], back: "javascript:history.go(-1)", home: "no url")
|
9
|
+
log!(enter: __method__, args: [num, title, date, view, teaser, body, tags, views, back, home])
|
9
10
|
viewlist = (views + [view.to_s]).join(" ")
|
10
11
|
taglist = ".tags " + tags.join(" ")
|
11
12
|
<<-TEXT
|
data/lib/global.rb
CHANGED
@@ -20,6 +20,7 @@ end
|
|
20
20
|
# Refactor, move stuff elsewhere?
|
21
21
|
|
22
22
|
def make_exception(sym, str)
|
23
|
+
log!(enter: __method__, args: [sym, str])
|
23
24
|
return if Object.constants.include?(sym)
|
24
25
|
Object.const_set(sym, StandardError.dup)
|
25
26
|
define_method(sym) do |*args|
|
@@ -30,10 +31,12 @@ def make_exception(sym, str)
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def prefix(num)
|
34
|
+
log!(enter: __method__, args: [num])
|
33
35
|
"#{'%04d' % num.to_i}"
|
34
36
|
end
|
35
37
|
|
36
38
|
def check_meta(meta, where = "")
|
39
|
+
log!(enter: __method__, args: [meta, where])
|
37
40
|
str = "--- #{where}\n"
|
38
41
|
str << "\ncheck_meta: \n" + caller.join("\n") + "\n meta = #{meta.inspect}\n"
|
39
42
|
str << " title missing!\n" unless meta.title
|
@@ -46,12 +49,14 @@ def check_meta(meta, where = "")
|
|
46
49
|
end
|
47
50
|
|
48
51
|
def verify(hash)
|
52
|
+
log!(enter: __method__, args: [hash])
|
49
53
|
hash.each_pair do |expr, msg|
|
50
54
|
puts "<< #{msg}" unless expr
|
51
55
|
end
|
52
56
|
end
|
53
57
|
|
54
58
|
def assure(hash) # really the same as verify for now...
|
59
|
+
log!(enter: __method__, args: [hash])
|
55
60
|
hash.each_pair do |expr, msg|
|
56
61
|
puts "<< #{msg}" unless expr
|
57
62
|
end
|
data/lib/helpers-blog.rb
CHANGED
@@ -1,35 +1,57 @@
|
|
1
1
|
require 'runeblog_version'
|
2
|
+
require 'fileutils'
|
2
3
|
|
3
4
|
# Home = Dir.pwd # unless Home
|
4
5
|
|
5
6
|
module RuneBlog::Helpers
|
6
7
|
|
7
8
|
def copy(src, dst)
|
8
|
-
|
9
|
+
log!(enter: __method__, args: [src, dst])
|
10
|
+
cmd = "cp #{src} #{dst} 2>/dev/null"
|
11
|
+
# puts "\n--- pwd = #{Dir.pwd} \n Trying: #{cmd}"
|
12
|
+
# if src =~ /\*/
|
13
|
+
rc = system(cmd)
|
14
|
+
puts " FROM #{caller[0]}" unless rc
|
15
|
+
exit unless rc
|
16
|
+
# else
|
17
|
+
# FileUtils.cp(src, dst)
|
18
|
+
# end
|
9
19
|
end
|
10
20
|
|
11
21
|
def copy!(src, dst)
|
12
|
-
|
22
|
+
log!(enter: __method__, args: [src, dst])
|
23
|
+
cmd = "cp -r #{src} #{dst} 2>/dev/null"
|
24
|
+
# puts "\n--- pwd = #{Dir.pwd} \n Trying: #{cmd}"
|
25
|
+
# if src =~ /\*/
|
26
|
+
rc = system(cmd)
|
27
|
+
puts " FROM #{caller[0]}" unless rc
|
28
|
+
exit unless rc
|
29
|
+
# else
|
30
|
+
# FileUtils.cp_r(src, dst)
|
31
|
+
# end
|
13
32
|
end
|
14
33
|
|
15
34
|
def stale?(src, dst)
|
35
|
+
log!(enter: __method__, args: [src, dst])
|
16
36
|
return true unless File.exist?(dst)
|
17
37
|
return true if File.mtime(src) > File.mtime(dst)
|
18
38
|
return false
|
19
39
|
end
|
20
40
|
|
21
41
|
def livetext(src, dst=nil)
|
42
|
+
log!(enter: __method__, args: [src, dst])
|
22
43
|
src << ".lt3" unless src.end_with?(".lt3")
|
23
44
|
if dst
|
24
45
|
dst << ".html" unless dst.end_with?(".html")
|
25
46
|
else
|
26
47
|
dst = src.sub(/.lt3$/, "")
|
27
48
|
end
|
28
|
-
|
49
|
+
# return unless stale?(src, dst)
|
29
50
|
system("livetext #{src} >#{dst}")
|
30
51
|
end
|
31
52
|
|
32
53
|
def get_root
|
54
|
+
log!(enter: __method__)
|
33
55
|
if $_blog
|
34
56
|
if $_blog.root
|
35
57
|
puts "0. Returned: #{$_blog.root}/"
|
@@ -45,7 +67,7 @@ module RuneBlog::Helpers
|
|
45
67
|
end
|
46
68
|
|
47
69
|
def read_config(file, *syms)
|
48
|
-
|
70
|
+
log!(enter: __method__, args: [file, *syms])
|
49
71
|
lines = File.readlines(file).map(&:chomp)
|
50
72
|
obj = ::OpenStruct.new
|
51
73
|
lines.each do |line|
|
@@ -70,6 +92,7 @@ module RuneBlog::Helpers
|
|
70
92
|
end
|
71
93
|
|
72
94
|
def try_read_config(file, hash)
|
95
|
+
log!(enter: __method__, args: [file, hash])
|
73
96
|
return hash.values unless File.exist?(file)
|
74
97
|
vals = read_config(file, *hash.keys)
|
75
98
|
# STDERR.puts vals.inspect
|
@@ -77,6 +100,7 @@ module RuneBlog::Helpers
|
|
77
100
|
end
|
78
101
|
|
79
102
|
def put_config(root:, view:"test_view", editor: "/usr/local/bin/vim")
|
103
|
+
log!(enter: __method__, args: [root, view, editor])
|
80
104
|
Dir.mkdir(root) unless Dir.exist?(root)
|
81
105
|
Dir.chdir(root) do
|
82
106
|
File.open("config", "w") do |cfg|
|
@@ -88,6 +112,7 @@ def put_config(root:, view:"test_view", editor: "/usr/local/bin/vim")
|
|
88
112
|
end
|
89
113
|
|
90
114
|
def write_config(obj, file)
|
115
|
+
log!(enter: __method__, args: [obj, file])
|
91
116
|
hash = obj.to_h
|
92
117
|
# Dir.chdir(::Home)
|
93
118
|
# puts "--- wc: pwd = #{Dir.pwd}"
|
@@ -99,6 +124,7 @@ end
|
|
99
124
|
end
|
100
125
|
|
101
126
|
def get_views # read from filesystem
|
127
|
+
log!(enter: __method__)
|
102
128
|
# Dir.chdir(::Home) do
|
103
129
|
verify(@root => "#@root is nil",
|
104
130
|
Dir.exist?(@root) => "#@root doesn't exist",
|
@@ -109,6 +135,7 @@ end
|
|
109
135
|
end
|
110
136
|
|
111
137
|
def new_dotfile(root: ".blogs", current_view: "test_view", editor: "vi")
|
138
|
+
log!(enter: __method__, args: [root, current_view, editor])
|
112
139
|
# raise BlogAlreadyExists if Dir.exist?(".blogs")
|
113
140
|
# Dir.mkdir(".blogs")
|
114
141
|
root = Dir.pwd + "/" + root
|
@@ -118,12 +145,14 @@ end
|
|
118
145
|
end
|
119
146
|
|
120
147
|
def new_sequence
|
148
|
+
log!(enter: __method__)
|
121
149
|
dump(0, "sequence")
|
122
150
|
version_info = "#{RuneBlog::VERSION}\nBlog created: #{Time.now.to_s}"
|
123
151
|
dump(version_info, "VERSION")
|
124
152
|
end
|
125
153
|
|
126
154
|
def subdirs(dir)
|
155
|
+
log!(enter: __method__, args: [dir])
|
127
156
|
verify(Dir.exist?(dir) => "Directory #{dir} not found")
|
128
157
|
dirs = Dir.entries(dir) - %w[. ..]
|
129
158
|
dirs.reject! {|x| ! File.directory?("#@root/views/#{x}") }
|
@@ -131,6 +160,7 @@ end
|
|
131
160
|
end
|
132
161
|
|
133
162
|
def find_draft_slugs
|
163
|
+
log!(enter: __method__)
|
134
164
|
verify(@root => "#@root is nil",
|
135
165
|
Dir.exist?(@root) => "#@root doesn't exist",
|
136
166
|
Dir.exist?("#@root/drafts") => "#@root/drafts doesn't exist")
|
@@ -145,6 +175,7 @@ end
|
|
145
175
|
end
|
146
176
|
|
147
177
|
def create_dirs(*dirs)
|
178
|
+
log!(enter: __method__, args: [*dirs])
|
148
179
|
dirs.each do |dir|
|
149
180
|
dir = dir.to_s # symbols allowed
|
150
181
|
next if Dir.exist?(dir)
|
@@ -154,24 +185,28 @@ end
|
|
154
185
|
end
|
155
186
|
end
|
156
187
|
|
157
|
-
def interpolate(str,
|
188
|
+
def interpolate(str, bind)
|
189
|
+
log!(enter: __method__, args: [str, bind])
|
158
190
|
wrap = "<<-EOS\n#{str}\nEOS"
|
159
|
-
eval wrap,
|
191
|
+
eval wrap, bind
|
160
192
|
end
|
161
193
|
|
162
194
|
def error(err) # Hmm, this is duplicated
|
195
|
+
log!(str: "duplicated method", enter: __method__, args: [err])
|
163
196
|
str = "\n Error: #{err}"
|
164
197
|
puts str
|
165
198
|
puts err.backtrace.join("\n")
|
166
199
|
end
|
167
200
|
|
168
201
|
def dump(obj, name)
|
202
|
+
log!(enter: __method__, args: [obj, name])
|
169
203
|
File.write(name, obj)
|
170
204
|
end
|
171
205
|
|
172
206
|
end
|
173
207
|
|
174
208
|
def dump(obj, name) # FIXME scope
|
209
|
+
log!(str: "scope problem", enter: __method__, args: [obj, name])
|
175
210
|
File.write(name, obj)
|
176
211
|
end
|
177
212
|
|
data/lib/liveblog.rb
CHANGED
@@ -5,7 +5,7 @@ require 'date'
|
|
5
5
|
require 'livetext'
|
6
6
|
require 'runeblog'
|
7
7
|
|
8
|
-
errfile = File.new("liveblog.out", "w")
|
8
|
+
errfile = File.new("/tmp/liveblog.out", "w")
|
9
9
|
STDERR.reopen(errfile)
|
10
10
|
|
11
11
|
def init_liveblog # FIXME - a lot of this logic sucks
|
@@ -22,18 +22,31 @@ def init_liveblog # FIXME - a lot of this logic sucks
|
|
22
22
|
@theme = @vdir + "/themes/standard/"
|
23
23
|
end
|
24
24
|
|
25
|
+
# FIXME - stale? and livetext are duplicated from helpers-blog
|
26
|
+
|
27
|
+
def stale?(src, dst)
|
28
|
+
return true unless File.exist?(dst)
|
29
|
+
return true if File.mtime(src) > File.mtime(dst)
|
30
|
+
return false
|
31
|
+
end
|
32
|
+
|
33
|
+
def livetext(src, dst=nil)
|
34
|
+
src += ".lt3" unless src.end_with?(".lt3")
|
35
|
+
if dst
|
36
|
+
dst += ".html" unless dst.end_with?(".html")
|
37
|
+
else
|
38
|
+
dst = src.sub(/.lt3$/, "")
|
39
|
+
end
|
40
|
+
return unless stale?(src, dst)
|
41
|
+
system("livetext #{src} >#{dst}")
|
42
|
+
end
|
43
|
+
|
25
44
|
def post
|
26
45
|
@meta = OpenStruct.new
|
27
46
|
@meta.num = _args[0]
|
28
47
|
_out " <!-- Post number #{@meta.num} -->\n "
|
29
48
|
end
|
30
49
|
|
31
|
-
def _view_from_cwd
|
32
|
-
md = Dir.pwd.match(%r[.*/views/(.*?)/])
|
33
|
-
return md[1] if md
|
34
|
-
nil
|
35
|
-
end
|
36
|
-
|
37
50
|
def quote
|
38
51
|
_passthru "<blockquote>"
|
39
52
|
_passthru _body
|
@@ -60,11 +73,70 @@ def h6; _passthru "
#{@_data}"; end |
|
60
73
|
|
61
74
|
def hr; _passthru "<hr>"; end
|
62
75
|
|
63
|
-
def
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
76
|
+
def list
|
77
|
+
_out "<ul>"
|
78
|
+
_body {|line| _out "<li>#{line}</li>" }
|
79
|
+
_out "</ul>"
|
80
|
+
_optional_blank_line
|
81
|
+
end
|
82
|
+
|
83
|
+
def list!
|
84
|
+
_out "<ul>"
|
85
|
+
lines = _body.each
|
86
|
+
loop do
|
87
|
+
line = lines.next
|
88
|
+
line = _format(line)
|
89
|
+
if line[0] == " "
|
90
|
+
_out line
|
91
|
+
else
|
92
|
+
_out "<li>#{line}</li>"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
_out "</ul>"
|
96
|
+
_optional_blank_line
|
97
|
+
end
|
98
|
+
|
99
|
+
def html_body(file)
|
100
|
+
file.puts "<html>\n <body>"
|
101
|
+
yield
|
102
|
+
file.puts " </body>\n</html>"
|
103
|
+
end
|
104
|
+
|
105
|
+
def make_news_links
|
106
|
+
# FIXME remember strings may not be safe
|
107
|
+
line = _data.chomp
|
108
|
+
input, cardfile, mainfile, card_title = *line.split(" ", 4)
|
109
|
+
pairs = File.readlines(input).map {|line| line.chomp.split(",", 2) }
|
110
|
+
# HTML for main area (iframe)
|
111
|
+
File.open("#{mainfile}.html", "w") do |f|
|
112
|
+
html_body(f) do
|
113
|
+
f.puts "<h1>#{card_title}</h1>"
|
114
|
+
pairs.each do |file, title|
|
115
|
+
f.puts %[<a style="text-decoration: none; font-size: 24px" href="#{file}">#{title}</a> <br>]
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
# HTML for sidebar card
|
120
|
+
File.open("#{cardfile}.html", "w") do |f|
|
121
|
+
f.puts <<-EOS
|
122
|
+
<div class="card mb-3">
|
123
|
+
<div class="card-body">
|
124
|
+
<h5 class="card-title">
|
125
|
+
<a href="javascript: void(0)"
|
126
|
+
onclick="javascript:open_main('widgets/news/#{mainfile}.html')"
|
127
|
+
style="text-decoration: none; color: black">#{card_title}</a>
|
128
|
+
</h5>
|
129
|
+
EOS
|
130
|
+
pairs.each do |file, title|
|
131
|
+
f.puts <<-EOS
|
132
|
+
<li class="list-group-item"> <a href="javascript: void(0)"
|
133
|
+
onclick="javascript:open_main('#{file}')">#{title}</a> </li>
|
134
|
+
EOS
|
135
|
+
end
|
136
|
+
f.puts <<-EOS
|
137
|
+
</div>
|
138
|
+
</div>
|
139
|
+
EOS
|
68
140
|
end
|
69
141
|
end
|
70
142
|
|
@@ -164,29 +236,6 @@ def pin
|
|
164
236
|
_optional_blank_line
|
165
237
|
end
|
166
238
|
|
167
|
-
def list
|
168
|
-
_out "<ul>"
|
169
|
-
_body {|line| _out "<li>#{line}</li>" }
|
170
|
-
_out "</ul>"
|
171
|
-
_optional_blank_line
|
172
|
-
end
|
173
|
-
|
174
|
-
def list!
|
175
|
-
_out "<ul>"
|
176
|
-
lines = _body.each
|
177
|
-
loop do
|
178
|
-
line = lines.next
|
179
|
-
line = _format(line)
|
180
|
-
if line[0] == " "
|
181
|
-
_out line
|
182
|
-
else
|
183
|
-
_out "<li>#{line}</li>"
|
184
|
-
end
|
185
|
-
end
|
186
|
-
_out "</ul>"
|
187
|
-
_optional_blank_line
|
188
|
-
end
|
189
|
-
|
190
239
|
def write_post
|
191
240
|
raise "'post' was not called" unless @meta
|
192
241
|
save = Dir.pwd
|
@@ -277,6 +326,8 @@ class Livetext::Functions
|
|
277
326
|
end
|
278
327
|
end
|
279
328
|
|
329
|
+
###
|
330
|
+
|
280
331
|
def _var(name) # FIXME scope issue!
|
281
332
|
::Livetext::Vars[name] || "[:#{name} is undefined]"
|
282
333
|
end
|
@@ -359,33 +410,23 @@ def meta
|
|
359
410
|
end
|
360
411
|
|
361
412
|
def recent_posts # side-effect
|
362
|
-
_out
|
363
|
-
|
364
|
-
|
413
|
+
_out <<-HTML
|
414
|
+
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-12">
|
415
|
+
<iframe id="main" style="width: 100vw; height: 100vh; position: relative;"
|
416
|
+
src='recent.html' width=100% frameborder="0" allowfullscreen>
|
417
|
+
</iframe>
|
418
|
+
</div>
|
419
|
+
HTML
|
365
420
|
end
|
366
421
|
|
367
422
|
def sidebar
|
368
423
|
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
369
|
-
|
370
|
-
tag =
|
371
|
-
|
372
|
-
|
373
|
-
|
424
|
+
_args do |token|
|
425
|
+
tag = token.chomp.strip.downcase
|
426
|
+
Dir.chdir("widgets/#{tag}") do
|
427
|
+
livetext tag, "card-#{tag}.html"
|
428
|
+
_include_file "card-#{tag}.html"
|
374
429
|
end
|
375
|
-
_include_file source
|
376
|
-
end
|
377
|
-
_out %[</div>]
|
378
|
-
end
|
379
|
-
|
380
|
-
def sidebar!
|
381
|
-
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
382
|
-
_args do |line|
|
383
|
-
tag = line.chomp.strip
|
384
|
-
source = "sidebar/#{tag.downcase}.lt3"
|
385
|
-
unless File.exist?(source)
|
386
|
-
source = "widgets/#{tag.downcase}/main.lt3"
|
387
|
-
end
|
388
|
-
_include_file source
|
389
430
|
end
|
390
431
|
_out %[</div>]
|
391
432
|
end
|
@@ -457,7 +498,7 @@ def all_teasers
|
|
457
498
|
end
|
458
499
|
text << "</body></html>"
|
459
500
|
File.write("recent.html", text)
|
460
|
-
_out %[<iframe id="main" style="width: 100vw;height: 100vh;position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
501
|
+
_out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
461
502
|
end
|
462
503
|
|
463
504
|
def _post_lookup(postid) # side-effect
|
@@ -547,7 +588,9 @@ def card1
|
|
547
588
|
end
|
548
589
|
|
549
590
|
def card2
|
550
|
-
|
591
|
+
str = _data
|
592
|
+
file, card_title = str.chomp.split(" ", 2)
|
593
|
+
card_title = %[<a #{_main(file)} style="text-decoration: none; color: black">#{card_title}</a>]
|
551
594
|
|
552
595
|
# FIXME is this wrong??
|
553
596
|
|
@@ -555,7 +598,6 @@ def card2
|
|
555
598
|
<div class="card mb-3">
|
556
599
|
<div class="card-body">
|
557
600
|
<h5 class="card-title">#{card_title}</h5>
|
558
|
-
</div>
|
559
601
|
<ul class="list-group list-group-flush">
|
560
602
|
HTML
|
561
603
|
_out open
|
@@ -564,7 +606,7 @@ def card2
|
|
564
606
|
main = _main(url)
|
565
607
|
_out %[<li class="list-group-item"><a #{main}}">#{cdata}</a> </li>]
|
566
608
|
end
|
567
|
-
close = %[ </ul>\n </div>]
|
609
|
+
close = %[ </ul>\n </div>\n </div>]
|
568
610
|
_out close
|
569
611
|
end
|
570
612
|
|
@@ -583,6 +625,8 @@ def tag_cloud
|
|
583
625
|
main = _main(url)
|
584
626
|
_out %[<a #{main} class="#{classname}">#{cdata}</a>]
|
585
627
|
end
|
628
|
+
close = %[ </div>\n </div>]
|
629
|
+
_out close
|
586
630
|
end
|
587
631
|
|
588
632
|
def navbar
|