runeblog 0.2.11 → 0.2.17
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/default.rb +0 -1
- data/lib/helpers-blog.rb +11 -94
- data/lib/helpers-repl.rb +0 -27
- data/lib/liveblog.rb +87 -111
- data/lib/logging.rb +0 -23
- data/lib/pathmagic.rb +14 -0
- data/lib/post.rb +9 -20
- data/lib/publish.rb +6 -9
- data/lib/repl.rb +0 -2
- data/lib/runeblog.rb +75 -78
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +2 -3
- data/lib/xlate.rb +31 -0
- data/runeblog.gemspec +1 -2
- data/test/make_blog.rb +13 -5
- metadata +4 -509
- data/lib/BAD.liveblog.rb +0 -724
- data/lib/KEEP.liveblog +0 -646
- data/lib/NEW-liveblog.rb +0 -757
- data/lib/OLD-liveblog.rb +0 -661
- data/test/.blogs/VERSION +0 -2
- data/test/.blogs/config +0 -3
- data/test/.blogs/drafts/0001-whats-at-stubbs.lt3 +0 -16
- data/test/.blogs/drafts/0002-the-new-amphitheatre-is-overrated.lt3 +0 -16
- data/test/.blogs/drafts/0003-elixir-conf-coming-up.lt3 +0 -17
- data/test/.blogs/drafts/0004-does-indie-still-matter.lt3 +0 -16
- data/test/.blogs/drafts/0005-the-genius-of-scenic.lt3 +0 -16
- data/test/.blogs/drafts/0006-the-future-of-coding.lt3 +0 -16
- data/test/.blogs/drafts/0007-the-graffiti-wall.lt3 +0 -17
- data/test/.blogs/drafts/0008-the-waller-creek-project.lt3 +0 -16
- data/test/.blogs/drafts/0009-life-on-sabine-street.lt3 +0 -16
- data/test/.blogs/drafts/0010-remember-modest-mouse.lt3 +0 -17
- data/test/.blogs/sequence +0 -1
- data/test/.blogs/views/around_austin/last_published +0 -1
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/0001-whats-at-stubbs.lt3 +0 -16
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/metadata.txt +0 -6
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/teaser.txt +0 -1
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/whats-at-stubbs.html +0 -11
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/0002-the-new-amphitheatre-is-overrated.lt3 +0 -16
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +0 -6
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +0 -1
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/the-new-amphitheatre-is-overrated.html +0 -11
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/0007-the-graffiti-wall.lt3 +0 -17
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/metadata.txt +0 -6
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/teaser.txt +0 -1
- data/test/.blogs/views/around_austin/posts/0007-the-graffiti-wall/the-graffiti-wall.html +0 -12
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/0008-the-waller-creek-project.lt3 +0 -16
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/metadata.txt +0 -6
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/teaser.txt +0 -1
- data/test/.blogs/views/around_austin/posts/0008-the-waller-creek-project/the-waller-creek-project.html +0 -11
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/0009-life-on-sabine-street.lt3 +0 -16
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/life-on-sabine-street.html +0 -11
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/metadata.txt +0 -6
- data/test/.blogs/views/around_austin/posts/0009-life-on-sabine-street/teaser.txt +0 -1
- data/test/.blogs/views/around_austin/publish +0 -5
- data/test/.blogs/views/around_austin/remote/etc/blog.css +0 -34
- data/test/.blogs/views/around_austin/remote/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/around_austin/remote/etc/externals.lt3 +0 -19
- data/test/.blogs/views/around_austin/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/remote/etc/misc.js +0 -6
- data/test/.blogs/views/around_austin/remote/life-on-sabine-street.html +0 -10
- data/test/.blogs/views/around_austin/remote/permalink/life-on-sabine-street.html +0 -10
- data/test/.blogs/views/around_austin/remote/permalink/the-graffiti-wall.html +0 -10
- data/test/.blogs/views/around_austin/remote/permalink/the-new-amphitheatre-is-overrated.html +0 -50
- data/test/.blogs/views/around_austin/remote/permalink/the-waller-creek-project.html +0 -50
- data/test/.blogs/views/around_austin/remote/permalink/whats-at-stubbs.html +0 -50
- data/test/.blogs/views/around_austin/remote/recent.html +0 -104
- data/test/.blogs/views/around_austin/remote/the-graffiti-wall.html +0 -10
- data/test/.blogs/views/around_austin/remote/the-new-amphitheatre-is-overrated.html +0 -50
- data/test/.blogs/views/around_austin/remote/the-waller-creek-project.html +0 -50
- data/test/.blogs/views/around_austin/remote/whats-at-stubbs.html +0 -50
- data/test/.blogs/views/around_austin/remote/widgets/README +0 -4
- data/test/.blogs/views/around_austin/remote/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/around_austin/remote/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/around_austin/remote/widgets/news/list.data +0 -4
- data/test/.blogs/views/around_austin/remote/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/around_austin/remote/widgets/pages/README +0 -2
- data/test/.blogs/views/around_austin/remote/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/around_austin/remote/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/around_austin/remote/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/around_austin/remote/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/around_austin/remote/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/around_austin/remote/widgets/pages/list.data +0 -4
- data/test/.blogs/views/around_austin/remote/widgets/pages/main.html +0 -9
- data/test/.blogs/views/around_austin/remote/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/around_austin/staging/0001-whats-at-stubbs.lt3 +0 -16
- data/test/.blogs/views/around_austin/staging/0002-the-new-amphitheatre-is-overrated.lt3 +0 -16
- data/test/.blogs/views/around_austin/staging/0007-the-graffiti-wall.lt3 +0 -17
- data/test/.blogs/views/around_austin/staging/0008-the-waller-creek-project.lt3 +0 -16
- data/test/.blogs/views/around_austin/staging/0009-life-on-sabine-street.lt3 +0 -16
- data/test/.blogs/views/around_austin/staging/README +0 -59
- data/test/.blogs/views/around_austin/staging/blog/generate.lt3 +0 -17
- data/test/.blogs/views/around_austin/staging/blog/head.lt3 +0 -9
- data/test/.blogs/views/around_austin/staging/blog/index.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/around_austin/staging/etc/blog.css +0 -34
- data/test/.blogs/views/around_austin/staging/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/around_austin/staging/etc/externals.lt3 +0 -19
- data/test/.blogs/views/around_austin/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/staging/etc/misc.js +0 -6
- data/test/.blogs/views/around_austin/staging/global.lt3 +0 -22
- data/test/.blogs/views/around_austin/staging/life-on-sabine-street.html +0 -10
- data/test/.blogs/views/around_austin/staging/navbar/about.html +0 -6
- data/test/.blogs/views/around_austin/staging/navbar/contact.html +0 -6
- data/test/.blogs/views/around_austin/staging/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/post/generate.lt3 +0 -26
- data/test/.blogs/views/around_austin/staging/post/head.lt3 +0 -4
- data/test/.blogs/views/around_austin/staging/post/index.html +0 -16
- data/test/.blogs/views/around_austin/staging/post/index.lt3 +0 -16
- data/test/.blogs/views/around_austin/staging/post/permalink.lt3 +0 -26
- data/test/.blogs/views/around_austin/staging/recent.html +0 -104
- data/test/.blogs/views/around_austin/staging/sidebar/README +0 -3
- data/test/.blogs/views/around_austin/staging/the-graffiti-wall.html +0 -10
- data/test/.blogs/views/around_austin/staging/the-new-amphitheatre-is-overrated.html +0 -50
- data/test/.blogs/views/around_austin/staging/the-waller-creek-project.html +0 -50
- data/test/.blogs/views/around_austin/staging/vars.lt3 +0 -2
- data/test/.blogs/views/around_austin/staging/whats-at-stubbs.html +0 -50
- data/test/.blogs/views/around_austin/staging/widgets/README +0 -4
- data/test/.blogs/views/around_austin/staging/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/around_austin/staging/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/widgets/news/list.data +0 -4
- data/test/.blogs/views/around_austin/staging/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/around_austin/staging/widgets/pages/README +0 -2
- data/test/.blogs/views/around_austin/staging/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/around_austin/staging/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/around_austin/staging/widgets/pages/list.data +0 -4
- data/test/.blogs/views/around_austin/staging/widgets/pages/main.html +0 -9
- data/test/.blogs/views/around_austin/staging/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/around_austin/staging/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/around_austin/themes/standard/README +0 -59
- data/test/.blogs/views/around_austin/themes/standard/blog/generate.lt3 +0 -17
- data/test/.blogs/views/around_austin/themes/standard/blog/head.lt3 +0 -9
- data/test/.blogs/views/around_austin/themes/standard/blog/index.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css +0 -34
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/around_austin/themes/standard/etc/externals.lt3 +0 -19
- data/test/.blogs/views/around_austin/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/misc.js +0 -6
- data/test/.blogs/views/around_austin/themes/standard/global.lt3 +0 -22
- data/test/.blogs/views/around_austin/themes/standard/navbar/about.html +0 -6
- data/test/.blogs/views/around_austin/themes/standard/navbar/contact.html +0 -6
- data/test/.blogs/views/around_austin/themes/standard/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/post/generate.lt3 +0 -26
- data/test/.blogs/views/around_austin/themes/standard/post/head.lt3 +0 -4
- data/test/.blogs/views/around_austin/themes/standard/post/index.lt3 +0 -16
- data/test/.blogs/views/around_austin/themes/standard/post/permalink.lt3 +0 -26
- data/test/.blogs/views/around_austin/themes/standard/sidebar/README +0 -3
- data/test/.blogs/views/around_austin/themes/standard/widgets/README +0 -4
- data/test/.blogs/views/around_austin/themes/standard/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/around_austin/themes/standard/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/widgets/news/list.data +0 -4
- data/test/.blogs/views/around_austin/themes/standard/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/README +0 -2
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/list.data +0 -4
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/main.html +0 -9
- data/test/.blogs/views/around_austin/themes/standard/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/around_austin/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/computing/last_published +0 -1
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/0003-elixir-conf-coming-up.lt3 +0 -17
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/elixir-conf-coming-up.html +0 -12
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/metadata.txt +0 -6
- data/test/.blogs/views/computing/posts/0003-elixir-conf-coming-up/teaser.txt +0 -1
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/0005-the-genius-of-scenic.lt3 +0 -16
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/metadata.txt +0 -6
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/teaser.txt +0 -1
- data/test/.blogs/views/computing/posts/0005-the-genius-of-scenic/the-genius-of-scenic.html +0 -11
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/0006-the-future-of-coding.lt3 +0 -16
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/metadata.txt +0 -6
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/teaser.txt +0 -1
- data/test/.blogs/views/computing/posts/0006-the-future-of-coding/the-future-of-coding.html +0 -11
- data/test/.blogs/views/computing/publish +0 -5
- data/test/.blogs/views/computing/remote/elixir-conf-coming-up.html +0 -51
- data/test/.blogs/views/computing/remote/etc/blog.css +0 -34
- data/test/.blogs/views/computing/remote/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/computing/remote/etc/externals.lt3 +0 -19
- data/test/.blogs/views/computing/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/remote/etc/misc.js +0 -6
- data/test/.blogs/views/computing/remote/permalink/elixir-conf-coming-up.html +0 -51
- data/test/.blogs/views/computing/remote/permalink/the-future-of-coding.html +0 -50
- data/test/.blogs/views/computing/remote/permalink/the-genius-of-scenic.html +0 -50
- data/test/.blogs/views/computing/remote/recent.html +0 -64
- data/test/.blogs/views/computing/remote/the-future-of-coding.html +0 -50
- data/test/.blogs/views/computing/remote/the-genius-of-scenic.html +0 -50
- data/test/.blogs/views/computing/remote/widgets/README +0 -4
- data/test/.blogs/views/computing/remote/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/computing/remote/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/computing/remote/widgets/news/list.data +0 -4
- data/test/.blogs/views/computing/remote/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/computing/remote/widgets/pages/README +0 -2
- data/test/.blogs/views/computing/remote/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/computing/remote/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/computing/remote/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/computing/remote/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/computing/remote/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/computing/remote/widgets/pages/list.data +0 -4
- data/test/.blogs/views/computing/remote/widgets/pages/main.html +0 -9
- data/test/.blogs/views/computing/remote/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/computing/remote/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/computing/staging/0003-elixir-conf-coming-up.lt3 +0 -17
- data/test/.blogs/views/computing/staging/0005-the-genius-of-scenic.lt3 +0 -16
- data/test/.blogs/views/computing/staging/0006-the-future-of-coding.lt3 +0 -16
- data/test/.blogs/views/computing/staging/README +0 -59
- data/test/.blogs/views/computing/staging/blog/generate.lt3 +0 -17
- data/test/.blogs/views/computing/staging/blog/head.lt3 +0 -9
- data/test/.blogs/views/computing/staging/blog/index.lt3 +0 -6
- data/test/.blogs/views/computing/staging/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/computing/staging/elixir-conf-coming-up.html +0 -51
- data/test/.blogs/views/computing/staging/etc/blog.css +0 -34
- data/test/.blogs/views/computing/staging/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/computing/staging/etc/externals.lt3 +0 -19
- data/test/.blogs/views/computing/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/staging/etc/misc.js +0 -6
- data/test/.blogs/views/computing/staging/global.lt3 +0 -22
- data/test/.blogs/views/computing/staging/navbar/about.html +0 -6
- data/test/.blogs/views/computing/staging/navbar/contact.html +0 -6
- data/test/.blogs/views/computing/staging/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/computing/staging/post/generate.lt3 +0 -26
- data/test/.blogs/views/computing/staging/post/head.lt3 +0 -4
- data/test/.blogs/views/computing/staging/post/index.html +0 -16
- data/test/.blogs/views/computing/staging/post/index.lt3 +0 -16
- data/test/.blogs/views/computing/staging/post/permalink.lt3 +0 -26
- data/test/.blogs/views/computing/staging/recent.html +0 -64
- data/test/.blogs/views/computing/staging/sidebar/README +0 -3
- data/test/.blogs/views/computing/staging/the-future-of-coding.html +0 -50
- data/test/.blogs/views/computing/staging/the-genius-of-scenic.html +0 -50
- data/test/.blogs/views/computing/staging/vars.lt3 +0 -2
- data/test/.blogs/views/computing/staging/widgets/README +0 -4
- data/test/.blogs/views/computing/staging/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/computing/staging/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/computing/staging/widgets/news/list.data +0 -4
- data/test/.blogs/views/computing/staging/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/computing/staging/widgets/pages/README +0 -2
- data/test/.blogs/views/computing/staging/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/computing/staging/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/computing/staging/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/computing/staging/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/computing/staging/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/computing/staging/widgets/pages/list.data +0 -4
- data/test/.blogs/views/computing/staging/widgets/pages/main.html +0 -9
- data/test/.blogs/views/computing/staging/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/computing/staging/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/computing/themes/standard/README +0 -59
- data/test/.blogs/views/computing/themes/standard/blog/generate.lt3 +0 -17
- data/test/.blogs/views/computing/themes/standard/blog/head.lt3 +0 -9
- data/test/.blogs/views/computing/themes/standard/blog/index.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/computing/themes/standard/etc/blog.css +0 -34
- data/test/.blogs/views/computing/themes/standard/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/computing/themes/standard/etc/externals.lt3 +0 -19
- data/test/.blogs/views/computing/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/computing/themes/standard/etc/misc.js +0 -6
- data/test/.blogs/views/computing/themes/standard/global.lt3 +0 -22
- data/test/.blogs/views/computing/themes/standard/navbar/about.html +0 -6
- data/test/.blogs/views/computing/themes/standard/navbar/contact.html +0 -6
- data/test/.blogs/views/computing/themes/standard/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/post/generate.lt3 +0 -26
- data/test/.blogs/views/computing/themes/standard/post/head.lt3 +0 -4
- data/test/.blogs/views/computing/themes/standard/post/index.lt3 +0 -16
- data/test/.blogs/views/computing/themes/standard/post/permalink.lt3 +0 -26
- data/test/.blogs/views/computing/themes/standard/sidebar/README +0 -3
- data/test/.blogs/views/computing/themes/standard/widgets/README +0 -4
- data/test/.blogs/views/computing/themes/standard/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/computing/themes/standard/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/widgets/news/list.data +0 -4
- data/test/.blogs/views/computing/themes/standard/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/computing/themes/standard/widgets/pages/README +0 -2
- data/test/.blogs/views/computing/themes/standard/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/computing/themes/standard/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/computing/themes/standard/widgets/pages/list.data +0 -4
- data/test/.blogs/views/computing/themes/standard/widgets/pages/main.html +0 -9
- data/test/.blogs/views/computing/themes/standard/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/computing/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/music/last_published +0 -1
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/0004-does-indie-still-matter.lt3 +0 -16
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/does-indie-still-matter.html +0 -11
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/metadata.txt +0 -6
- data/test/.blogs/views/music/posts/0004-does-indie-still-matter/teaser.txt +0 -1
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/0010-remember-modest-mouse.lt3 +0 -17
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/metadata.txt +0 -6
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/remember-modest-mouse.html +0 -12
- data/test/.blogs/views/music/posts/0010-remember-modest-mouse/teaser.txt +0 -1
- data/test/.blogs/views/music/publish +0 -5
- data/test/.blogs/views/music/remote/does-indie-still-matter.html +0 -50
- data/test/.blogs/views/music/remote/etc/blog.css +0 -34
- data/test/.blogs/views/music/remote/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/music/remote/etc/externals.lt3 +0 -19
- data/test/.blogs/views/music/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/remote/etc/misc.js +0 -6
- data/test/.blogs/views/music/remote/permalink/does-indie-still-matter.html +0 -50
- data/test/.blogs/views/music/remote/permalink/remember-modest-mouse.html +0 -51
- data/test/.blogs/views/music/remote/recent.html +0 -44
- data/test/.blogs/views/music/remote/remember-modest-mouse.html +0 -51
- data/test/.blogs/views/music/remote/widgets/README +0 -4
- data/test/.blogs/views/music/remote/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/music/remote/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/music/remote/widgets/news/list.data +0 -4
- data/test/.blogs/views/music/remote/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/music/remote/widgets/pages/README +0 -2
- data/test/.blogs/views/music/remote/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/music/remote/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/music/remote/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/music/remote/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/music/remote/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/music/remote/widgets/pages/list.data +0 -4
- data/test/.blogs/views/music/remote/widgets/pages/main.html +0 -9
- data/test/.blogs/views/music/remote/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/music/remote/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/music/staging/0004-does-indie-still-matter.lt3 +0 -16
- data/test/.blogs/views/music/staging/0010-remember-modest-mouse.lt3 +0 -17
- data/test/.blogs/views/music/staging/README +0 -59
- data/test/.blogs/views/music/staging/blog/generate.lt3 +0 -17
- data/test/.blogs/views/music/staging/blog/head.lt3 +0 -9
- data/test/.blogs/views/music/staging/blog/index.lt3 +0 -6
- data/test/.blogs/views/music/staging/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/music/staging/does-indie-still-matter.html +0 -50
- data/test/.blogs/views/music/staging/etc/blog.css +0 -34
- data/test/.blogs/views/music/staging/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/music/staging/etc/externals.lt3 +0 -19
- data/test/.blogs/views/music/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/staging/etc/misc.js +0 -6
- data/test/.blogs/views/music/staging/global.lt3 +0 -22
- data/test/.blogs/views/music/staging/navbar/about.html +0 -6
- data/test/.blogs/views/music/staging/navbar/contact.html +0 -6
- data/test/.blogs/views/music/staging/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/music/staging/post/generate.lt3 +0 -26
- data/test/.blogs/views/music/staging/post/head.lt3 +0 -4
- data/test/.blogs/views/music/staging/post/index.html +0 -17
- data/test/.blogs/views/music/staging/post/index.lt3 +0 -16
- data/test/.blogs/views/music/staging/post/permalink.lt3 +0 -26
- data/test/.blogs/views/music/staging/recent.html +0 -44
- data/test/.blogs/views/music/staging/remember-modest-mouse.html +0 -51
- data/test/.blogs/views/music/staging/sidebar/README +0 -3
- data/test/.blogs/views/music/staging/vars.lt3 +0 -2
- data/test/.blogs/views/music/staging/widgets/README +0 -4
- data/test/.blogs/views/music/staging/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/music/staging/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/music/staging/widgets/news/list.data +0 -4
- data/test/.blogs/views/music/staging/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/music/staging/widgets/pages/README +0 -2
- data/test/.blogs/views/music/staging/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/music/staging/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/music/staging/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/music/staging/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/music/staging/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/music/staging/widgets/pages/list.data +0 -4
- data/test/.blogs/views/music/staging/widgets/pages/main.html +0 -9
- data/test/.blogs/views/music/staging/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/music/staging/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/music/themes/standard/README +0 -59
- data/test/.blogs/views/music/themes/standard/blog/generate.lt3 +0 -17
- data/test/.blogs/views/music/themes/standard/blog/head.lt3 +0 -9
- data/test/.blogs/views/music/themes/standard/blog/index.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/music/themes/standard/etc/blog.css +0 -34
- data/test/.blogs/views/music/themes/standard/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/music/themes/standard/etc/externals.lt3 +0 -19
- data/test/.blogs/views/music/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/music/themes/standard/etc/misc.js +0 -6
- data/test/.blogs/views/music/themes/standard/global.lt3 +0 -22
- data/test/.blogs/views/music/themes/standard/navbar/about.html +0 -6
- data/test/.blogs/views/music/themes/standard/navbar/contact.html +0 -6
- data/test/.blogs/views/music/themes/standard/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/post/generate.lt3 +0 -26
- data/test/.blogs/views/music/themes/standard/post/head.lt3 +0 -4
- data/test/.blogs/views/music/themes/standard/post/index.lt3 +0 -16
- data/test/.blogs/views/music/themes/standard/post/permalink.lt3 +0 -26
- data/test/.blogs/views/music/themes/standard/sidebar/README +0 -3
- data/test/.blogs/views/music/themes/standard/widgets/README +0 -4
- data/test/.blogs/views/music/themes/standard/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/music/themes/standard/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/widgets/news/list.data +0 -4
- data/test/.blogs/views/music/themes/standard/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/music/themes/standard/widgets/pages/README +0 -2
- data/test/.blogs/views/music/themes/standard/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/music/themes/standard/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/music/themes/standard/widgets/pages/list.data +0 -4
- data/test/.blogs/views/music/themes/standard/widgets/pages/main.html +0 -9
- data/test/.blogs/views/music/themes/standard/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/music/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/test_view/last_published +0 -1
- data/test/.blogs/views/test_view/publish +0 -5
- data/test/.blogs/views/test_view/remote/etc/blog.css +0 -34
- data/test/.blogs/views/test_view/remote/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/test_view/remote/etc/externals.lt3 +0 -19
- data/test/.blogs/views/test_view/remote/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/remote/etc/misc.js +0 -6
- data/test/.blogs/views/test_view/remote/widgets/README +0 -4
- data/test/.blogs/views/test_view/remote/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/test_view/remote/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/test_view/remote/widgets/news/list.data +0 -4
- data/test/.blogs/views/test_view/remote/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/test_view/remote/widgets/pages/README +0 -2
- data/test/.blogs/views/test_view/remote/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/test_view/remote/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/test_view/remote/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/test_view/remote/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/test_view/remote/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/test_view/remote/widgets/pages/list.data +0 -4
- data/test/.blogs/views/test_view/remote/widgets/pages/main.html +0 -9
- data/test/.blogs/views/test_view/remote/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/test_view/remote/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/test_view/staging/README +0 -59
- data/test/.blogs/views/test_view/staging/blog/generate.lt3 +0 -17
- data/test/.blogs/views/test_view/staging/blog/head.lt3 +0 -9
- data/test/.blogs/views/test_view/staging/blog/index.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/test_view/staging/etc/blog.css +0 -34
- data/test/.blogs/views/test_view/staging/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/test_view/staging/etc/externals.lt3 +0 -19
- data/test/.blogs/views/test_view/staging/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/staging/etc/misc.js +0 -6
- data/test/.blogs/views/test_view/staging/global.lt3 +0 -22
- data/test/.blogs/views/test_view/staging/navbar/about.html +0 -6
- data/test/.blogs/views/test_view/staging/navbar/contact.html +0 -6
- data/test/.blogs/views/test_view/staging/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/post/generate.lt3 +0 -26
- data/test/.blogs/views/test_view/staging/post/head.lt3 +0 -4
- data/test/.blogs/views/test_view/staging/post/index.lt3 +0 -16
- data/test/.blogs/views/test_view/staging/post/permalink.lt3 +0 -26
- data/test/.blogs/views/test_view/staging/sidebar/README +0 -3
- data/test/.blogs/views/test_view/staging/widgets/README +0 -4
- data/test/.blogs/views/test_view/staging/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/test_view/staging/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/widgets/news/list.data +0 -4
- data/test/.blogs/views/test_view/staging/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/test_view/staging/widgets/pages/README +0 -2
- data/test/.blogs/views/test_view/staging/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/test_view/staging/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/test_view/staging/widgets/pages/list.data +0 -4
- data/test/.blogs/views/test_view/staging/widgets/pages/main.html +0 -9
- data/test/.blogs/views/test_view/staging/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/test_view/staging/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/test/.blogs/views/test_view/themes/standard/README +0 -59
- data/test/.blogs/views/test_view/themes/standard/blog/generate.lt3 +0 -17
- data/test/.blogs/views/test_view/themes/standard/blog/head.lt3 +0 -9
- data/test/.blogs/views/test_view/themes/standard/blog/index.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/blog/post_entry.lt3 +0 -19
- data/test/.blogs/views/test_view/themes/standard/etc/blog.css +0 -34
- data/test/.blogs/views/test_view/themes/standard/etc/blog.css.lt3 +0 -36
- data/test/.blogs/views/test_view/themes/standard/etc/externals.lt3 +0 -19
- data/test/.blogs/views/test_view/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/test_view/themes/standard/etc/misc.js +0 -6
- data/test/.blogs/views/test_view/themes/standard/global.lt3 +0 -22
- data/test/.blogs/views/test_view/themes/standard/navbar/about.html +0 -6
- data/test/.blogs/views/test_view/themes/standard/navbar/contact.html +0 -6
- data/test/.blogs/views/test_view/themes/standard/navbar/navbar.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/post/generate.lt3 +0 -26
- data/test/.blogs/views/test_view/themes/standard/post/head.lt3 +0 -4
- data/test/.blogs/views/test_view/themes/standard/post/index.lt3 +0 -16
- data/test/.blogs/views/test_view/themes/standard/post/permalink.lt3 +0 -26
- data/test/.blogs/views/test_view/themes/standard/sidebar/README +0 -3
- data/test/.blogs/views/test_view/themes/standard/widgets/README +0 -4
- data/test/.blogs/views/test_view/themes/standard/widgets/ad/ad.lt3 +0 -12
- data/test/.blogs/views/test_view/themes/standard/widgets/calendar/calendar.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/widgets/news/list.data +0 -4
- data/test/.blogs/views/test_view/themes/standard/widgets/news/news.lt3 +0 -3
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/README +0 -2
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/disclaim.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/faq.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/generated.lt3 +0 -4
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/lifestory.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/like-dislike.lt3 +0 -6
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/list.data +0 -4
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/main.html +0 -9
- data/test/.blogs/views/test_view/themes/standard/widgets/pages/main.lt3 +0 -18
- data/test/.blogs/views/test_view/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -12
- data/themes/standard/README +0 -59
- data/themes/standard/blog/generate.lt3 +0 -17
- data/themes/standard/blog/head.lt3 +0 -9
- data/themes/standard/blog/index.lt3 +0 -5
- data/themes/standard/blog/post_entry.lt3 +0 -19
- data/themes/standard/blog/recent.lt3 +0 -2
- data/themes/standard/etc/blog.css.lt3 +0 -36
- data/themes/standard/etc/externals.lt3 +0 -19
- data/themes/standard/etc/favicon.ico +0 -0
- data/themes/standard/etc/misc.js +0 -6
- data/themes/standard/global.lt3 +0 -22
- data/themes/standard/navbar/about.html +0 -6
- data/themes/standard/navbar/contact.html +0 -6
- data/themes/standard/navbar/navbar.lt3 +0 -6
- data/themes/standard/post/generate.lt3 +0 -24
- data/themes/standard/post/head.lt3 +0 -4
- data/themes/standard/post/index.lt3 +0 -16
- data/themes/standard/post/permalink.lt3 +0 -26
- data/themes/standard/sidebar/README +0 -3
- data/themes/standard/widgets/README +0 -4
- data/themes/standard/widgets/ad/ad.lt3 +0 -15
- data/themes/standard/widgets/calendar/calendar.lt3 +0 -6
- data/themes/standard/widgets/news/list.data +0 -4
- data/themes/standard/widgets/news/news.lt3 +0 -2
- data/themes/standard/widgets/pages/README +0 -2
- data/themes/standard/widgets/pages/disclaim.html +0 -6
- data/themes/standard/widgets/pages/disclaim.lt3 +0 -5
- data/themes/standard/widgets/pages/faq.html +0 -7
- data/themes/standard/widgets/pages/faq.lt3 +0 -6
- data/themes/standard/widgets/pages/generated.lt3 +0 -4
- data/themes/standard/widgets/pages/lifestory.html +0 -7
- data/themes/standard/widgets/pages/lifestory.lt3 +0 -6
- data/themes/standard/widgets/pages/like-dislike.html +0 -7
- data/themes/standard/widgets/pages/like-dislike.lt3 +0 -6
- data/themes/standard/widgets/pages/list.data +0 -4
- data/themes/standard/widgets/pages/main.html +0 -9
- data/themes/standard/widgets/pages/pages.lt3 +0 -2
- data/themes/standard/widgets/tag-cloud/tag-cloud.lt3 +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf71088966e7393574d792a3508bb35f8a581e774a250dbe88b61fee08cd7588
|
4
|
+
data.tar.gz: 991d387f3649a4defbdee3500d2a275ab2b5b6b2956ad46188c50a8c3c393513
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57eaf8b41cb76dd92e2a4f5ba45c3461248761e433e2f1fefc4ab6373ac414fcfbe2c4c04016465438b7a68b3ef7d666ad848634afa37f1cbac36c01e7be5385
|
7
|
+
data.tar.gz: 3bd8ed4c9776f71b2787cdb484c981b314b53993b3d31bb125176e576d91f752830813eba24f1cacf84b1cf455a7f4743fc0bc866009217c3afe09a44b67d8c2
|
data/empty_view.tgz
CHANGED
Binary file
|
data/lib/default.rb
CHANGED
@@ -2,7 +2,6 @@ class RuneBlog::Default
|
|
2
2
|
|
3
3
|
# This will all become much more generic later.
|
4
4
|
|
5
|
-
|
6
5
|
def RuneBlog.post_template(num: 0, title: "No title", date: nil, view: "test_view",
|
7
6
|
teaser: "No teaser", body: "No body", tags: ["untagged"],
|
8
7
|
views: [], back: "javascript:history.go(-1)", home: "no url")
|
data/lib/helpers-blog.rb
CHANGED
@@ -1,89 +1,22 @@
|
|
1
1
|
require 'runeblog_version'
|
2
2
|
require 'fileutils'
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
LEXT = ".lt3"
|
4
|
+
require 'xlate'
|
7
5
|
|
8
6
|
module RuneBlog::Helpers
|
9
7
|
|
10
8
|
def copy(src, dst)
|
11
9
|
log!(enter: __method__, args: [src, dst])
|
12
|
-
cmd = "cp #{src}
|
13
|
-
|
14
|
-
#
|
15
|
-
rc = system(cmd)
|
16
|
-
puts " FROM #{caller[0]}" unless rc
|
17
|
-
exit unless rc
|
18
|
-
# else
|
19
|
-
# FileUtils.cp(src, dst)
|
20
|
-
# end
|
10
|
+
cmd = "cp #{src} #{dst} 2>/dev/null"
|
11
|
+
rc = system(cmd)
|
12
|
+
puts " Failed: #{cmd} - from #{caller[0]}" unless rc
|
21
13
|
end
|
22
14
|
|
23
15
|
def copy!(src, dst)
|
24
16
|
log!(enter: __method__, args: [src, dst])
|
25
|
-
cmd = "cp -r #{src}
|
26
|
-
|
27
|
-
#
|
28
|
-
rc = system(cmd)
|
29
|
-
puts " FROM #{caller[0]}" unless rc
|
30
|
-
exit unless rc
|
31
|
-
# else
|
32
|
-
# FileUtils.cp_r(src, dst)
|
33
|
-
# end
|
34
|
-
end
|
35
|
-
|
36
|
-
def stale?(src, dst, force = false)
|
37
|
-
log!(enter: __method__, args: [src, dst])
|
38
|
-
raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
|
39
|
-
return true if force
|
40
|
-
return true unless File.exist?(dst)
|
41
|
-
return true if File.mtime(src) > File.mtime(dst)
|
42
|
-
return false
|
43
|
-
end
|
44
|
-
|
45
|
-
# def livetext(src, dst=nil, dir=".")
|
46
|
-
# log!(enter: __method__, args: [src, dst])
|
47
|
-
# src << ".lt3" unless src.end_with?(".lt3")
|
48
|
-
# if dst
|
49
|
-
# dst << ".html" unless dst.end_with?(".html")
|
50
|
-
# else
|
51
|
-
# dst = src.sub(/.lt3$/, "")
|
52
|
-
# end
|
53
|
-
## return unless stale?(src, dst)
|
54
|
-
# Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
55
|
-
# end
|
56
|
-
#
|
57
|
-
# def livetext!(src, dst=nil, dir=".")
|
58
|
-
# log!(enter: __method__, args: [src, dst])
|
59
|
-
# src << ".lt3" unless src.end_with?(".lt3")
|
60
|
-
# if dst
|
61
|
-
# dst << ".html" unless dst.end_with?(".html")
|
62
|
-
# else
|
63
|
-
# dst = src.sub(/.lt3$/, "")
|
64
|
-
# end
|
65
|
-
## return unless stale?(src, dst)
|
66
|
-
#STDERR.puts "-- livetext #{src} >#{dst} \n in: #{Dir.pwd}\n from: #{caller[0]}"
|
67
|
-
# Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
|
68
|
-
#STDERR.puts "... completed"
|
69
|
-
# end
|
70
|
-
|
71
|
-
def xlate(cwd: Dir.pwd, src:,
|
72
|
-
dst: (strip = true; src.sub(/.lt3$/,"")),
|
73
|
-
copy: nil, debug: false, force: false)
|
74
|
-
src += LEXT unless src.end_with?(LEXT)
|
75
|
-
dst += ".html" unless dst.end_with?(".html") || strip
|
76
|
-
Dir.chdir(cwd) do
|
77
|
-
return unless stale?(src, dst, force)
|
78
|
-
if debug
|
79
|
-
STDERR.puts "-- xlate #{src} >#{dst}"
|
80
|
-
STDERR.puts " in: #{Dir.pwd}"
|
81
|
-
STDERR.puts " from: #{caller[0]}"
|
82
|
-
STDERR.puts " copy: #{copy}" if copy
|
83
|
-
end
|
84
|
-
rc = system("livetext #{src} >#{dst}")
|
85
|
-
end
|
86
|
-
STDERR.puts "...completed (shell returned #{rc})" if debug
|
17
|
+
cmd = "cp -r #{src} #{dst} 2>/dev/null"
|
18
|
+
rc = system(cmd)
|
19
|
+
puts " Failed: #{cmd} - from #{caller[0]}" unless rc
|
87
20
|
end
|
88
21
|
|
89
22
|
def get_root
|
@@ -131,7 +64,6 @@ exit unless rc
|
|
131
64
|
log!(enter: __method__, args: [file, hash])
|
132
65
|
return hash.values unless File.exist?(file)
|
133
66
|
vals = read_config(file, *hash.keys)
|
134
|
-
# STDERR.puts vals.inspect
|
135
67
|
vals
|
136
68
|
end
|
137
69
|
|
@@ -150,30 +82,19 @@ end
|
|
150
82
|
def write_config(obj, file)
|
151
83
|
log!(enter: __method__, args: [obj, file])
|
152
84
|
hash = obj.to_h
|
153
|
-
|
154
|
-
|
155
|
-
File.open(file, "w") do |f|
|
156
|
-
hash.each_pair do |key, val|
|
157
|
-
f.puts "#{key}: #{val}"
|
158
|
-
end
|
85
|
+
File.open(file, "w") do |out|
|
86
|
+
hash.each_pair {|key, val| out.puts "#{key}: #{val}" }
|
159
87
|
end
|
160
88
|
end
|
161
89
|
|
162
90
|
def get_views # read from filesystem
|
163
91
|
log!(enter: __method__)
|
164
|
-
|
165
|
-
|
166
|
-
Dir.exist?(@root) => "#@root doesn't exist",
|
167
|
-
Dir.exist?("#@root/views") => "#@root/views doesn't exist")
|
168
|
-
dirs = subdirs("#@root/views/").sort
|
169
|
-
dirs.map {|name| RuneBlog::View.new(name) }
|
170
|
-
# end
|
92
|
+
dirs = subdirs("#@root/views/").sort
|
93
|
+
dirs.map {|name| RuneBlog::View.new(name) }
|
171
94
|
end
|
172
95
|
|
173
96
|
def new_dotfile(root: ".blogs", current_view: "test_view", editor: "vi")
|
174
97
|
log!(enter: __method__, args: [root, current_view, editor])
|
175
|
-
# raise BlogAlreadyExists if Dir.exist?(".blogs")
|
176
|
-
# Dir.mkdir(".blogs")
|
177
98
|
root = Dir.pwd + "/" + root
|
178
99
|
x = OpenStruct.new
|
179
100
|
x.root, x.current_view, x.editor = root, current_view, editor
|
@@ -189,7 +110,6 @@ end
|
|
189
110
|
|
190
111
|
def subdirs(dir)
|
191
112
|
log!(enter: __method__, args: [dir])
|
192
|
-
verify(Dir.exist?(dir) => "Directory #{dir} not found")
|
193
113
|
dirs = Dir.entries(dir) - %w[. ..]
|
194
114
|
dirs.reject! {|x| ! File.directory?("#@root/views/#{x}") }
|
195
115
|
dirs
|
@@ -197,9 +117,6 @@ end
|
|
197
117
|
|
198
118
|
def find_draft_slugs
|
199
119
|
log!(enter: __method__)
|
200
|
-
verify(@root => "#@root is nil",
|
201
|
-
Dir.exist?(@root) => "#@root doesn't exist",
|
202
|
-
Dir.exist?("#@root/drafts") => "#@root/drafts doesn't exist")
|
203
120
|
files = Dir["#@root/drafts/**"].grep /\d{4}.*.lt3$/
|
204
121
|
flagfile = "#@root/drafts/last_rebuild"
|
205
122
|
last = File.exist?(flagfile) ? File.mtime(flagfile) : (Time.now - 86_400)
|
data/lib/helpers-repl.rb
CHANGED
@@ -161,7 +161,6 @@ module RuneBlog::REPL
|
|
161
161
|
n.times { @out << "\n" }
|
162
162
|
end
|
163
163
|
|
164
|
-
|
165
164
|
def check_empty(arg)
|
166
165
|
raise InternalError(caller[0], arg.inspect) unless arg.nil?
|
167
166
|
end
|
@@ -209,8 +208,6 @@ module RuneBlog::REPL
|
|
209
208
|
end
|
210
209
|
|
211
210
|
def ask_publishing_info # returns Publishing object
|
212
|
-
verify(@blog => "@blog is nil",
|
213
|
-
@blog.view => "@blog.view is nil")
|
214
211
|
# user, server, root, path, protocol = "http"
|
215
212
|
puts "Please enter publishing data for view #{@blog.view}..."
|
216
213
|
user = ask("User: ")
|
@@ -241,28 +238,4 @@ module RuneBlog::REPL
|
|
241
238
|
all.sort + ["NEW TAG"]
|
242
239
|
end
|
243
240
|
|
244
|
-
### find_asset
|
245
|
-
|
246
|
-
# FIXME is this per-post?
|
247
|
-
|
248
|
-
def find_asset(asset_name) # , views)
|
249
|
-
search_path = proc do |path|
|
250
|
-
full_path = path + asset_name
|
251
|
-
return full_path if File.exist?(full_path)
|
252
|
-
end
|
253
|
-
check_meta(@meta, "find_asset")
|
254
|
-
views = @meta.views
|
255
|
-
views.each do |view| search_path.call("#{view.dir}/#{@meta.slug}/assets/") end
|
256
|
-
views.each do |view| search_path.call(view.dir + "/assets/") end
|
257
|
-
search_path.call(@root + "/assets/", asset_name)
|
258
|
-
# If all fail... return nil
|
259
|
-
return nil
|
260
|
-
end
|
261
|
-
|
262
|
-
### find_all_assets
|
263
|
-
|
264
|
-
def find_all_assets(list, views)
|
265
|
-
list ||= []
|
266
|
-
list.each {|asset| puts "#{asset} => #{find_asset(asset, views)}" }
|
267
|
-
end
|
268
241
|
end
|
data/lib/liveblog.rb
CHANGED
@@ -2,11 +2,15 @@ require 'ostruct'
|
|
2
2
|
require 'pp'
|
3
3
|
require 'date'
|
4
4
|
|
5
|
-
require 'livetext'
|
5
|
+
# require 'livetext'
|
6
6
|
require 'runeblog'
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
require 'pathmagic'
|
9
|
+
|
10
|
+
require 'xlate'
|
11
|
+
|
12
|
+
# errfile = File.new("/tmp/liveblog.out", "w")
|
13
|
+
# STDERR.reopen(errfile)
|
10
14
|
|
11
15
|
def init_liveblog # FIXME - a lot of this logic sucks
|
12
16
|
here = Dir.pwd
|
@@ -19,26 +23,22 @@ def init_liveblog # FIXME - a lot of this logic sucks
|
|
19
23
|
@view_name = @blog.view.name
|
20
24
|
@vdir = @blog.view.dir
|
21
25
|
@version = RuneBlog::VERSION
|
22
|
-
@theme = @vdir
|
26
|
+
@theme = @vdir/:themes/:standard
|
23
27
|
end
|
24
28
|
|
25
29
|
# FIXME - stale? and livetext are duplicated from helpers-blog
|
26
30
|
|
27
|
-
def
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
else
|
38
|
-
dst = src.sub(/.lt3$/, "")
|
31
|
+
def livetext(src, dst=nil, cwd=Dir.pwd)
|
32
|
+
Dir.chdir(cwd) do
|
33
|
+
src += ".lt3" unless src.end_with?(".lt3")
|
34
|
+
if dst
|
35
|
+
dst += ".html" unless dst.end_with?(".html")
|
36
|
+
else
|
37
|
+
dst = src.sub(/.lt3$/, "")
|
38
|
+
end
|
39
|
+
return unless stale?(src, dst)
|
40
|
+
system("livetext #{src} >#{dst}")
|
39
41
|
end
|
40
|
-
return unless stale?(src, dst)
|
41
|
-
system("livetext #{src} >#{dst}")
|
42
42
|
end
|
43
43
|
|
44
44
|
def post
|
@@ -96,41 +96,33 @@ def list!
|
|
96
96
|
_optional_blank_line
|
97
97
|
end
|
98
98
|
|
99
|
-
def
|
99
|
+
def _html_body(file)
|
100
100
|
file.puts "<html>\n <body>"
|
101
101
|
yield
|
102
102
|
file.puts " </body>\n</html>"
|
103
103
|
end
|
104
104
|
|
105
|
-
def
|
106
|
-
#
|
107
|
-
|
108
|
-
|
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
|
105
|
+
def _write_card(cardfile, mainfile, pairs, card_title, tag, relative: true)
|
106
|
+
# HTML for card
|
107
|
+
log!(str: "Creating #{cardfile}.html", pwd: true)
|
108
|
+
# TTY.puts "Creating #{cardfile}.html - pwd = #{Dir.pwd}"
|
120
109
|
File.open("#{cardfile}.html", "w") do |f|
|
121
110
|
f.puts <<-EOS
|
122
111
|
<div class="card mb-3">
|
123
112
|
<div class="card-body">
|
124
113
|
<h5 class="card-title">
|
125
114
|
<a href="javascript: void(0)"
|
126
|
-
onclick="javascript:open_main('widgets
|
115
|
+
onclick="javascript:open_main('widgets/#{tag}/#{mainfile}.html')"
|
127
116
|
style="text-decoration: none; color: black">#{card_title}</a>
|
128
117
|
</h5>
|
129
118
|
EOS
|
119
|
+
log!(str: "Writing data pairs to #{cardfile}.html", pwd: true)
|
120
|
+
top = ""
|
121
|
+
top = :widgets/tag + "/" unless tag == "news" # FIXME !!
|
130
122
|
pairs.each do |file, title|
|
131
123
|
f.puts <<-EOS
|
132
124
|
<li class="list-group-item"> <a href="javascript: void(0)"
|
133
|
-
onclick="javascript:open_main('#{file}')">#{title}</a> </li>
|
125
|
+
onclick="javascript:open_main('#{top}#{file}')">#{title}</a> </li>
|
134
126
|
EOS
|
135
127
|
end
|
136
128
|
f.puts <<-EOS
|
@@ -140,6 +132,34 @@ def make_news_links
|
|
140
132
|
end
|
141
133
|
end
|
142
134
|
|
135
|
+
def _write_main(mainfile, pairs, card_title)
|
136
|
+
log!(str: "Creating #{mainfile}.html", pwd: true)
|
137
|
+
File.open("#{mainfile}.html", "w") do |f|
|
138
|
+
_html_body(f) do
|
139
|
+
f.puts "<h1>#{card_title}</h1>"
|
140
|
+
pairs.each do |file, title|
|
141
|
+
main = _main(file)
|
142
|
+
f.puts %[<a style="text-decoration: none; font-size: 24px" #{main}>#{title}</a> <br>]
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def make_main_links
|
149
|
+
log!(enter: __method__)
|
150
|
+
# FIXME remember strings may not be safe
|
151
|
+
line = _data.chomp
|
152
|
+
tag, card_title = *line.split(" ", 2)
|
153
|
+
cardfile, mainfile = "#{tag}-card", "#{tag}-main"
|
154
|
+
input = "list.data"
|
155
|
+
log!(str: "Reading #{input}", pwd: true)
|
156
|
+
pairs = File.readlines(input).map {|line| line.chomp.split(",", 2) }
|
157
|
+
_write_main(mainfile, pairs, card_title)
|
158
|
+
widget_relative = false # (tag != "news") # FIXME kludge!!!
|
159
|
+
_write_card(cardfile, mainfile, pairs, card_title, tag, relative: widget_relative)
|
160
|
+
log!(str: "...returning from method", pwd: true)
|
161
|
+
end
|
162
|
+
|
143
163
|
### inset
|
144
164
|
|
145
165
|
def inset
|
@@ -209,7 +229,7 @@ end
|
|
209
229
|
def image # primitive so far
|
210
230
|
_debug "img: huh? <img src=#{_args.first}></img>"
|
211
231
|
fname = _args.first
|
212
|
-
path =
|
232
|
+
path = :assets/fname
|
213
233
|
_out "<img src=#{path}></img>"
|
214
234
|
_optional_blank_line
|
215
235
|
end
|
@@ -264,25 +284,18 @@ def teaser
|
|
264
284
|
end
|
265
285
|
|
266
286
|
def finalize
|
267
|
-
STDERR.puts :cp1
|
268
287
|
unless @meta
|
269
288
|
puts @live.body
|
270
289
|
return
|
271
290
|
end
|
272
|
-
STDERR.puts :cp4
|
273
291
|
if @blog.nil?
|
274
292
|
return @meta
|
275
293
|
end
|
276
294
|
|
277
|
-
STDERR.puts :cp6
|
278
295
|
@slug = @blog.make_slug(@meta)
|
279
|
-
STDERR.puts :cp7
|
280
296
|
slug_dir = @slug
|
281
|
-
@postdir = @blog.view.dir
|
282
|
-
STDERR.puts "--- finalize: pwd = #{Dir.pwd} postdir = #@postdir"
|
283
|
-
STDERR.puts :cp8
|
297
|
+
@postdir = @blog.view.dir/:posts/slug_dir
|
284
298
|
write_post
|
285
|
-
STDERR.puts :cp9
|
286
299
|
@meta
|
287
300
|
end
|
288
301
|
|
@@ -375,10 +388,8 @@ def head # Does NOT output tags
|
|
375
388
|
# Later: allow other overrides
|
376
389
|
when ""; break
|
377
390
|
else
|
378
|
-
STDERR.puts "-- got '#{word}'; old value = #{result[word].inspect}"
|
379
391
|
if defaults[word]
|
380
392
|
result[word] = %[<meta property="#{word}" content="#{remain}">]
|
381
|
-
STDERR.puts "-- new value = #{result[word].inspect}"
|
382
393
|
else
|
383
394
|
puts "Unknown tag '#{word}'"
|
384
395
|
end
|
@@ -386,7 +397,6 @@ STDERR.puts "-- new value = #{result[word].inspect}"
|
|
386
397
|
end
|
387
398
|
hash = defaults.dup.update(result) # FIXME collisions?
|
388
399
|
|
389
|
-
# _out "<!-- "; _out hash.inspect; _out "--> "
|
390
400
|
hash.each_value {|x| _out " " + x }
|
391
401
|
_out "<body>"
|
392
402
|
end
|
@@ -423,14 +433,34 @@ def recent_posts # side-effect
|
|
423
433
|
end
|
424
434
|
|
425
435
|
def sidebar
|
436
|
+
STDERR.puts "---- SIDEBAR pwd = #{Dir.pwd}"
|
437
|
+
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
438
|
+
_body do |token|
|
439
|
+
tag = token.chomp.strip.downcase
|
440
|
+
wtag = :widgets/tag
|
441
|
+
raise "Can't find #{wtag}" unless Dir.exist?(wtag)
|
442
|
+
tcard = "#{tag}-card.html"
|
443
|
+
# livetext tag, tcard, wtag
|
444
|
+
xlate cwd: wtag, src: tag, dst: tcard, debug: true
|
445
|
+
_include_file wtag/tcard
|
446
|
+
end
|
447
|
+
_out %[</div>]
|
448
|
+
end
|
449
|
+
|
450
|
+
def sidebar!
|
451
|
+
# if _args.include? "off"
|
452
|
+
# _body { } # iterate, do nothing
|
453
|
+
# return
|
454
|
+
# end
|
426
455
|
_out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
|
427
456
|
_args do |token|
|
428
457
|
tag = token.chomp.strip.downcase
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
458
|
+
wtag = :widgets/tag
|
459
|
+
raise "Can't find #{wtag}" unless Dir.exist?(wtag)
|
460
|
+
tcard = "#{tag}-card.html"
|
461
|
+
# livetext tag, tcard, wtag
|
462
|
+
xlate cwd: wtag, src: tag, dst: tcard, debug: true
|
463
|
+
_include_file wtag/tcard
|
434
464
|
end
|
435
465
|
_out %[</div>]
|
436
466
|
end
|
@@ -451,50 +481,12 @@ def script
|
|
451
481
|
_out %[<script src="#{url}" integrity="#{integ}" crossorigin="#{cross}"></script>]
|
452
482
|
end
|
453
483
|
|
454
|
-
# def _find_recent_posts
|
455
|
-
# @vdir = _var(:FileDir).match(%r[(^.*/views/.*?)/])[1]
|
456
|
-
# posts = nil
|
457
|
-
# dir_posts = @vdir + "/posts"
|
458
|
-
# entries = Dir.entries(dir_posts)
|
459
|
-
# posts = entries.grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
|
460
|
-
# posts.select! {|x| File.directory?(x) }
|
461
|
-
# # directories that start with four digits
|
462
|
-
# posts = posts.sort {|a, b| b.to_i <=> a.to_i } # sort descending
|
463
|
-
# posts[0..19] # return 20 at most
|
464
|
-
# end
|
465
|
-
#
|
466
|
-
# def all_teasers
|
467
|
-
# open = <<-HTML
|
468
|
-
# <section class="posts">
|
469
|
-
# HTML
|
470
|
-
# close = <<-HTML
|
471
|
-
# </section>
|
472
|
-
# HTML
|
473
|
-
#
|
474
|
-
# text = <<-HTML
|
475
|
-
# <html>
|
476
|
-
# <head><link rel="stylesheet" href="etc/blog.css"></head>
|
477
|
-
# <body>
|
478
|
-
# HTML
|
479
|
-
# posts = _find_recent_posts
|
480
|
-
# wanted = [5, posts.size].min # estimate how many we want?
|
481
|
-
# enum = posts.each
|
482
|
-
# wanted.times do
|
483
|
-
# postid = File.basename(enum.next)
|
484
|
-
# postid = postid.to_i
|
485
|
-
# text << _teaser(postid) # side effect! calls _out
|
486
|
-
# end
|
487
|
-
# text << "</body></html>"
|
488
|
-
# File.write("recent.html", text)
|
489
|
-
# _out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
|
490
|
-
# end
|
491
|
-
|
492
484
|
def _post_lookup(postid) # side-effect
|
493
485
|
# .. = templates, ../.. = views/thisview
|
494
486
|
slug = title = date = teaser_text = nil
|
495
487
|
|
496
|
-
dir_posts = @vdir
|
497
|
-
posts = Dir.entries(dir_posts).grep(/^\d\d\d\d/).map {|x| dir_posts
|
488
|
+
dir_posts = @vdir/:posts
|
489
|
+
posts = Dir.entries(dir_posts).grep(/^\d\d\d\d/).map {|x| dir_posts/x }
|
498
490
|
posts.select! {|x| File.directory?(x) }
|
499
491
|
|
500
492
|
post = posts.select {|x| File.basename(x).to_i == postid }
|
@@ -509,22 +501,6 @@ def _interpolate(str, context) # FIXME move this later
|
|
509
501
|
eval(wrapped, context)
|
510
502
|
end
|
511
503
|
|
512
|
-
# def _teaser(slug)
|
513
|
-
# id = slug.to_i
|
514
|
-
# text = nil
|
515
|
-
# post_entry_name = @theme + "blog/post_entry.lt3"
|
516
|
-
# @_post_entry ||= File.read(post_entry_name)
|
517
|
-
# vp = _post_lookup(id)
|
518
|
-
# nslug, aslug, title, date, teaser_text =
|
519
|
-
# vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
|
520
|
-
# path = vp.path
|
521
|
-
# url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
|
522
|
-
# date = Date.parse(date)
|
523
|
-
# date = date.strftime("%B %e<br>%Y")
|
524
|
-
# text = _interpolate(@_post_entry, binding)
|
525
|
-
# text
|
526
|
-
# end
|
527
|
-
|
528
504
|
def _card_generic(card_title:, middle:, extra: "")
|
529
505
|
front = <<-HTML
|
530
506
|
<div class="card #{extra} mb-3">
|
@@ -609,7 +585,7 @@ def tag_cloud
|
|
609
585
|
_out open
|
610
586
|
_body do |line|
|
611
587
|
line.chomp!
|
612
|
-
url, classname, cdata = line.split(",",
|
588
|
+
url, classname, cdata = line.split(",", 3)
|
613
589
|
main = _main(url)
|
614
590
|
_out %[<a #{main} class="#{classname}">#{cdata}</a>]
|
615
591
|
end
|
@@ -651,7 +627,7 @@ def navbar
|
|
651
627
|
first = false
|
652
628
|
_out %[<li class="nav-item active"> <a class="nav-link" href="#{href}">#{cdata}<span class="sr-only">(current)</span></a> </li>]
|
653
629
|
else
|
654
|
-
main = _main(
|
630
|
+
main = _main(:navbar/href)
|
655
631
|
_out %[<li class="nav-item"> <a class="nav-link" #{main}>#{cdata}</a> </li>]
|
656
632
|
end
|
657
633
|
end
|