runeblog 0.3.34 → 0.3.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/global.lt3 +3 -3
- data/empty_view/global.lt3 +20 -0
- data/empty_view/themes/standard/banner/top.lt3 +1 -1
- data/empty_view/themes/standard/blog/generate.lt3 +1 -1
- data/empty_view/themes/standard/blog/index.lt3 +8 -4
- data/empty_view/themes/standard/etc/blog.css.lt3 +1 -1
- data/empty_view/themes/standard/post/generate.lt3 +1 -1
- data/empty_view/themes/standard/post/permalink.lt3 +1 -1
- data/lib/exceptions.rb +2 -0
- data/lib/helpers-blog.rb +3 -3
- data/lib/liveblog.rb +25 -24
- data/lib/lowlevel.rb +47 -0
- data/lib/menus.rb +2 -2
- data/lib/processing.rb +9 -17
- data/lib/publish.rb +3 -6
- data/lib/repl.rb +5 -9
- data/lib/runeblog.rb +95 -25
- data/lib/runeblog_version.rb +6 -2
- data/lib/view.rb +7 -3
- data/runeblog.gemspec +5 -3
- data/test/.blogs/data/EDITOR +1 -0
- data/test/.blogs/data/ROOT +1 -0
- data/test/.blogs/data/VERSION +2 -0
- data/test/.blogs/data/VIEW +1 -0
- data/test/.blogs/data/features.txt +18 -0
- data/test/.blogs/data/global.lt3 +20 -0
- data/test/.blogs/data/sequence +1 -0
- data/test/.blogs/data/universal.lt3 +20 -0
- data/test/.blogs/drafts/0001-whats-at-stubbs.lt3 +13 -0
- data/test/.blogs/drafts/0002-the-new-amphitheatre-is-overrated.lt3 +14 -0
- data/test/.blogs/drafts/0003-the-graffiti-wall.lt3 +42 -0
- data/test/.blogs/drafts/0004-the-waller-creek-project.lt3 +13 -0
- data/test/.blogs/drafts/0005-life-on-sabine-street.lt3 +13 -0
- data/test/.blogs/drafts/0006-remember-modest-mouse.lt3 +14 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/guts.html +6 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/metadata.txt +7 -0
- data/test/.blogs/posts/0001-whats-at-stubbs/teaser.txt +1 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
- data/test/.blogs/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/guts.html +6 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/metadata.txt +7 -0
- data/test/.blogs/posts/0003-the-graffiti-wall/teaser.txt +1 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/guts.html +6 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/metadata.txt +7 -0
- data/test/.blogs/posts/0004-the-waller-creek-project/teaser.txt +1 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/guts.html +6 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/metadata.txt +7 -0
- data/test/.blogs/posts/0005-life-on-sabine-street/teaser.txt +1 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/guts.html +6 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/metadata.txt +7 -0
- data/test/.blogs/posts/0006-remember-modest-mouse/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/assets/austin-pano.jpg +0 -0
- data/test/.blogs/views/around_austin/assets/back-icon.png +0 -0
- data/test/.blogs/views/around_austin/assets/reddit-logo.png +0 -0
- data/test/.blogs/views/around_austin/assets/sky2.jpg +0 -0
- data/test/.blogs/views/around_austin/config/exper/2svg.lt3 +38 -0
- data/test/.blogs/views/around_austin/config/exper/gen_svg.rb +60 -0
- data/test/.blogs/views/around_austin/config/exper/meta.html +10 -0
- data/test/.blogs/views/around_austin/config/exper/s2.html +25 -0
- data/test/.blogs/views/around_austin/config/exper/varmint.rb +50 -0
- data/test/.blogs/views/around_austin/config/facebook/credentials.txt +7 -0
- data/test/.blogs/views/around_austin/config/facebook/facebook.rb +42 -0
- data/test/.blogs/views/around_austin/config/facebook/fb.html +10 -0
- data/test/.blogs/views/around_austin/config/facebook/fb.js.lt3 +15 -0
- data/test/.blogs/views/around_austin/config/reddit/credentials.txt +6 -0
- data/test/.blogs/views/around_austin/config/reddit/notes.txt +4 -0
- data/test/.blogs/views/around_austin/config/reddit/reddit_post_url.py +34 -0
- data/test/.blogs/views/around_austin/config/reddit/redpost.rb +38 -0
- data/test/.blogs/views/around_austin/config/twitter/credentials.txt +3 -0
- data/test/.blogs/views/around_austin/config/twitter/tw.html +12 -0
- data/test/.blogs/views/around_austin/config/twitter/tw.js +5 -0
- data/test/.blogs/views/around_austin/config/twitter/twitter.rb +35 -0
- data/test/.blogs/views/around_austin/data/GIT_IS_DUMB +0 -0
- data/test/.blogs/views/around_austin/global.lt3 +20 -0
- data/test/.blogs/views/around_austin/last_published +1 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0001-whats-at-stubbs/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0002-the-new-amphitheatre-is-overrated/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0003-the-graffiti-wall/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0004-the-waller-creek-project/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0005-life-on-sabine-street/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/guts.html +6 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/metadata.txt +7 -0
- data/test/.blogs/views/around_austin/posts/0006-remember-modest-mouse/teaser.txt +1 -0
- data/test/.blogs/views/around_austin/posts/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/assets/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/GIT_IS_DUMB +0 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/about.html +10 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/contact.html +10 -0
- data/test/.blogs/views/around_austin/remote/banner/navbar/faq.html +46 -0
- data/test/.blogs/views/around_austin/remote/etc/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/etc/blog.css +66 -0
- data/test/.blogs/views/around_austin/remote/history +6 -0
- data/test/.blogs/views/around_austin/remote/life-on-sabine-street.html +2 -0
- data/test/.blogs/views/around_austin/remote/permalink/GIT_IS_DUMB +1 -0
- data/test/.blogs/views/around_austin/remote/recent.html +4 -0
- data/test/.blogs/views/around_austin/remote/remember-modest-mouse.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-graffiti-wall.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-new-amphitheatre-is-overrated.html +2 -0
- data/test/.blogs/views/around_austin/remote/the-waller-creek-project.html +2 -0
- data/test/.blogs/views/around_austin/remote/whats-at-stubbs.html +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/ad/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/bydates/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/links.rb +90 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/list.data +3 -0
- data/test/.blogs/views/around_austin/remote/widgets/links/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/news/news.rb +88 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/local.rb +0 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/views/around_austin/remote/widgets/pages/pages.rb +130 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/GIT_IS_DUMB +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/search/search.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/README +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/views/around_austin/remote/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/.blogs/views/around_austin/settings/features.txt +18 -0
- data/test/.blogs/views/around_austin/settings/publish.txt +5 -0
- data/test/.blogs/views/around_austin/settings/recent.txt +11 -0
- data/test/.blogs/views/around_austin/settings/view.txt +4 -0
- data/test/.blogs/views/around_austin/themes/standard/README +59 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/banner.lt3 +5 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/about.lt3 +18 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/contact.lt3 +18 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/faq.lt3 +1 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/list.data +3 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/navbar/navbar.html +10 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/top.html +22 -0
- data/test/.blogs/views/around_austin/themes/standard/banner/top.lt3 +20 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/generate.lt3 +21 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/head.lt3 +16 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/index.lt3 +20 -0
- data/test/.blogs/views/around_austin/themes/standard/blog/post_entry.lt3 +21 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css +66 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/blog.css.lt3 +62 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/externals.lt3 +24 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/favicon.ico +0 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/github.css +209 -0
- data/test/.blogs/views/around_austin/themes/standard/etc/misc.js +20 -0
- data/test/.blogs/views/around_austin/themes/standard/post/generate.lt3 +39 -0
- data/test/.blogs/views/around_austin/themes/standard/post/head.lt3 +7 -0
- data/test/.blogs/views/around_austin/themes/standard/post/index.lt3 +24 -0
- data/test/.blogs/views/around_austin/themes/standard/post/permalink.lt3 +31 -0
- data/test/.blogs/views/around_austin/widgets/README +4 -0
- data/test/.blogs/views/around_austin/widgets/bydates/README +2 -0
- data/test/.blogs/views/around_austin/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/bydates/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/bydates/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/links/README +2 -0
- data/test/.blogs/views/around_austin/widgets/links/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/links/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/links/links-card.html +18 -0
- data/test/.blogs/views/around_austin/widgets/links/links-main.html +13 -0
- data/test/.blogs/views/around_austin/widgets/links/links.rb +90 -0
- data/test/.blogs/views/around_austin/widgets/links/list.data +3 -0
- data/test/.blogs/views/around_austin/widgets/links/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/news/README +2 -0
- data/test/.blogs/views/around_austin/widgets/news/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/news/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/news/list.data +4 -0
- data/test/.blogs/views/around_austin/widgets/news/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/news/news.rb +88 -0
- data/test/.blogs/views/around_austin/widgets/pages/README +2 -0
- data/test/.blogs/views/around_austin/widgets/pages/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/pages/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/views/around_austin/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/views/around_austin/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/views/around_austin/widgets/pages/list.data +4 -0
- data/test/.blogs/views/around_austin/widgets/pages/local.rb +0 -0
- data/test/.blogs/views/around_austin/widgets/pages/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/views/around_austin/widgets/pages/pages.rb +130 -0
- data/test/.blogs/views/around_austin/widgets/pinned/README +2 -0
- data/test/.blogs/views/around_austin/widgets/pinned/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/pinned/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/views/around_austin/widgets/search/README +2 -0
- data/test/.blogs/views/around_austin/widgets/search/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/search/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/search/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/search/search.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/README +2 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/README +2 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/views/around_austin/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/.blogs/widgets/README +4 -0
- data/test/.blogs/widgets/bydates/README +2 -0
- data/test/.blogs/widgets/bydates/bydates.rb +18 -0
- data/test/.blogs/widgets/bydates/card.css +1 -0
- data/test/.blogs/widgets/bydates/custom.rb +1 -0
- data/test/.blogs/widgets/bydates/main.css +2 -0
- data/test/.blogs/widgets/links/README +2 -0
- data/test/.blogs/widgets/links/card.css +1 -0
- data/test/.blogs/widgets/links/custom.rb +1 -0
- data/test/.blogs/widgets/links/links.rb +90 -0
- data/test/.blogs/widgets/links/list.data +3 -0
- data/test/.blogs/widgets/links/main.css +2 -0
- data/test/.blogs/widgets/news/README +2 -0
- data/test/.blogs/widgets/news/card.css +1 -0
- data/test/.blogs/widgets/news/custom.rb +1 -0
- data/test/.blogs/widgets/news/list.data +4 -0
- data/test/.blogs/widgets/news/main.css +2 -0
- data/test/.blogs/widgets/news/news.rb +88 -0
- data/test/.blogs/widgets/pages/README +2 -0
- data/test/.blogs/widgets/pages/card.css +1 -0
- data/test/.blogs/widgets/pages/custom.rb +1 -0
- data/test/.blogs/widgets/pages/disclaim.lt3 +10 -0
- data/test/.blogs/widgets/pages/faq.lt3 +41 -0
- data/test/.blogs/widgets/pages/like-dislike.lt3 +11 -0
- data/test/.blogs/widgets/pages/list.data +4 -0
- data/test/.blogs/widgets/pages/local.rb +0 -0
- data/test/.blogs/widgets/pages/main.css +2 -0
- data/test/.blogs/widgets/pages/other-stuff.lt3 +10 -0
- data/test/.blogs/widgets/pages/pages.rb +130 -0
- data/test/.blogs/widgets/pinned/README +2 -0
- data/test/.blogs/widgets/pinned/card.css +1 -0
- data/test/.blogs/widgets/pinned/custom.rb +1 -0
- data/test/.blogs/widgets/pinned/main.css +2 -0
- data/test/.blogs/widgets/pinned/pinned.rb +111 -0
- data/test/.blogs/widgets/search/README +2 -0
- data/test/.blogs/widgets/search/card.css +1 -0
- data/test/.blogs/widgets/search/custom.rb +1 -0
- data/test/.blogs/widgets/search/main.css +2 -0
- data/test/.blogs/widgets/search/search.rb +18 -0
- data/test/.blogs/widgets/sitemap/README +2 -0
- data/test/.blogs/widgets/sitemap/card.css +1 -0
- data/test/.blogs/widgets/sitemap/custom.rb +1 -0
- data/test/.blogs/widgets/sitemap/main.css +2 -0
- data/test/.blogs/widgets/sitemap/sitemap.rb +18 -0
- data/test/.blogs/widgets/tag-cloud/OLD-example.lt3 +12 -0
- data/test/.blogs/widgets/tag-cloud/README +2 -0
- data/test/.blogs/widgets/tag-cloud/card.css +1 -0
- data/test/.blogs/widgets/tag-cloud/custom.rb +1 -0
- data/test/.blogs/widgets/tag-cloud/main.css +2 -0
- data/test/.blogs/widgets/tag-cloud/tag-cloud.lt3 +3 -0
- data/test/.blogs/widgets/tag-cloud/tag-cloud.rb +18 -0
- data/test/austin.rb +8 -3
- data/test/binblog.txt +2 -0
- data/test/stderr.out +0 -0
- metadata +290 -10
data/lib/runeblog_version.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
if !defined?(RuneBlog::Path)
|
2
2
|
|
3
|
+
require 'pathname'
|
4
|
+
|
3
5
|
class RuneBlog
|
4
|
-
VERSION = "0.3.
|
6
|
+
VERSION = "0.3.36"
|
5
7
|
|
6
8
|
path = Gem.find_files("runeblog").grep(/runeblog-/).first
|
7
|
-
|
9
|
+
path ||= Pathname(__FILE__).realpath.dirname.to_s
|
10
|
+
|
11
|
+
Path = File.dirname(path) # inside gem or dev repo
|
8
12
|
end
|
9
13
|
|
10
14
|
# skeleton
|
data/lib/view.rb
CHANGED
@@ -12,10 +12,11 @@ class RuneBlog::View
|
|
12
12
|
@blog = RuneBlog.blog
|
13
13
|
@name = name
|
14
14
|
@publisher = RuneBlog::Publishing.new(name)
|
15
|
-
# puts "view #{name}: pub = #{@publisher.inspect}"
|
16
15
|
@can_publish = true # FIXME
|
17
16
|
# @blog.view = self # NOOOO??
|
18
17
|
get_globals
|
18
|
+
rescue => err
|
19
|
+
fatal(err)
|
19
20
|
end
|
20
21
|
|
21
22
|
def dump_globals_stderr
|
@@ -30,13 +31,14 @@ class RuneBlog::View
|
|
30
31
|
end
|
31
32
|
STDERR.puts
|
32
33
|
log!(str: "")
|
34
|
+
rescue => err
|
35
|
+
fatal(err)
|
33
36
|
end
|
34
37
|
|
35
38
|
def get_globals(force = false)
|
36
39
|
return if @globals && !force
|
37
40
|
|
38
|
-
|
39
|
-
gfile = @blog.root/"views/#@name/data/global.lt3"
|
41
|
+
gfile = @blog.root/"views/#@name/global.lt3"
|
40
42
|
return unless File.exist?(gfile) # Hackish!! how is View.new called from create_view??
|
41
43
|
|
42
44
|
live = Livetext.customize(call: ".nopara")
|
@@ -45,6 +47,8 @@ class RuneBlog::View
|
|
45
47
|
live.setvar("View", @name)
|
46
48
|
@globals = live.vars
|
47
49
|
# dump_globals_stderr
|
50
|
+
rescue => err
|
51
|
+
fatal(err)
|
48
52
|
end
|
49
53
|
|
50
54
|
def dir
|
data/runeblog.gemspec
CHANGED
@@ -7,6 +7,8 @@ require "runeblog_version"
|
|
7
7
|
|
8
8
|
Gem.post_install do |spec|
|
9
9
|
Dir.chdir(RuneBlog::Path)
|
10
|
+
# FIXME - depends on livetext being installed
|
11
|
+
# How to deal with this??
|
10
12
|
system("livetext -i liveblog.rb")
|
11
13
|
system("livetext -i code_rouge.rb")
|
12
14
|
end
|
@@ -21,11 +23,11 @@ spec = Gem::Specification.new do |s|
|
|
21
23
|
s.authors = ["Hal Fulton"]
|
22
24
|
s.email = 'rubyhacker@gmail.com'
|
23
25
|
s.executables << "blog"
|
24
|
-
s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.
|
25
|
-
s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.
|
26
|
+
s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.45'
|
27
|
+
s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.27'
|
26
28
|
s.add_runtime_dependency 'rouge', '~> 3.25', '>= 3.25.0'
|
27
29
|
|
28
|
-
s.add_development_dependency 'minitest', '~> 5.
|
30
|
+
s.add_development_dependency 'minitest', '~> 5.20', '>= 5.20.0'
|
29
31
|
|
30
32
|
# Files...
|
31
33
|
main = Find.find("bin").to_a +
|
@@ -0,0 +1 @@
|
|
1
|
+
/usr/local/bin/vim
|
@@ -0,0 +1 @@
|
|
1
|
+
/Users/Hal/Dropbox/topx/git/runeblog/test/.blogs
|
@@ -0,0 +1 @@
|
|
1
|
+
around_austin
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# 0 = disabled (installed but disabled)
|
2
|
+
# 1 = enabled (implies installed)
|
3
|
+
# x = excluded (not installed; does it even exist?)
|
4
|
+
|
5
|
+
reddit 0 # autopost, embed thread after blog post
|
6
|
+
facebook 0 # reader-like, reader post, autopost?
|
7
|
+
twitter 0 # reader-tweet, reader-follow, autotweet?
|
8
|
+
|
9
|
+
links 1 # widget: external links
|
10
|
+
news 1 # widget: news (external)
|
11
|
+
pages 1 # widget: internal pages
|
12
|
+
pinned 1 # widget: pinned posts
|
13
|
+
|
14
|
+
ad x # widget: embed advertising
|
15
|
+
bydates x # widget: browse posts by date
|
16
|
+
search x # widget: search posts
|
17
|
+
sitemap x # widget: site map
|
18
|
+
tag_cloud x # widget: tag cloud (clickable)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
. --------------------------------------------------
|
2
|
+
. Global settings are stored here in the form
|
3
|
+
. <variable> <value>
|
4
|
+
. --------------------------------------------------
|
5
|
+
|
6
|
+
.variables view settings/view.txt
|
7
|
+
|
8
|
+
.variables recent settings/recent.txt
|
9
|
+
|
10
|
+
.variables publish settings/publish.txt
|
11
|
+
|
12
|
+
.variables
|
13
|
+
host http://SITE
|
14
|
+
charset utf-8
|
15
|
+
url http://SITE
|
16
|
+
locale en_US
|
17
|
+
|
18
|
+
font.family verdana
|
19
|
+
.end
|
20
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
6
|
@@ -0,0 +1,20 @@
|
|
1
|
+
. "Universal" settings -- new defaults for global.lt3
|
2
|
+
. work in progress - defaults for each global.lt3
|
3
|
+
|
4
|
+
. --------------------------------------------------
|
5
|
+
. Global settings are stored here in the form
|
6
|
+
. <variable> <value>
|
7
|
+
. --------------------------------------------------
|
8
|
+
.nopara
|
9
|
+
|
10
|
+
.set Root=REPO_ROOT
|
11
|
+
|
12
|
+
.variables
|
13
|
+
univ.author AUTHOR
|
14
|
+
univ.site SITE_DOMAIN
|
15
|
+
|
16
|
+
font.family verdana
|
17
|
+
|
18
|
+
charset utf-8
|
19
|
+
locale en_US
|
20
|
+
.end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.post 2
|
2
|
+
|
3
|
+
.title The new amphitheatre is overrated
|
4
|
+
.pubdate 2024-05-03
|
5
|
+
.views around_austin
|
6
|
+
.tags
|
7
|
+
|
8
|
+
.teaser
|
9
|
+
It used to be that all major concerts played the Erwin Center.
|
10
|
+
|
11
|
+
.end
|
12
|
+
.pin around_austin
|
13
|
+
Now, depending on what you consider "major," blah blah blah...
|
14
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
.post 3
|
2
|
+
|
3
|
+
.title The graffiti wall
|
4
|
+
.pubdate 2024-05-05
|
5
|
+
.views around_austin
|
6
|
+
.tags
|
7
|
+
|
8
|
+
.teaser
|
9
|
+
RIP, Hope Gallery
|
10
|
+
|
11
|
+
.end
|
12
|
+
|
13
|
+
.dropcap It's been a while since I was there. They say it was torn down
|
14
|
+
while I wasn't looking. Never tagged anything there, of course, nor
|
15
|
+
anywhere else. Spraypainting public places isn't my thing, but in this
|
16
|
+
case I condoned it because it was sort of there for that purpose.
|
17
|
+
|
18
|
+
This fake entry is a long one so as to demonstrate both drop-caps
|
19
|
+
(above) and an inset quote. Blah blah blah. Lorem ipsum dolor and
|
20
|
+
a partridge in a pear tree.
|
21
|
+
|
22
|
+
.inset left 20
|
23
|
+
Wherever you go, there you are. Last night I saw upon the stair
|
24
|
+
a little man who was not there. He wasn't there again today; I
|
25
|
+
wish, I wish he'd go away. As far as we know, our computer has
|
26
|
+
never had an undetected error.
|
27
|
+
|On a clean disk, you can seek forever.
|
28
|
+
And never let it be denied that
|
29
|
+
pobbles are happier without their toes. And may your snark never
|
30
|
+
be a boojum. How do you know you aren't dreaming right now? When
|
31
|
+
you see a butterfly, think of Chuang Tzu.
|
32
|
+
.end
|
33
|
+
|
34
|
+
Contact light. Houston, this is Tranquility Base. The Eagle has
|
35
|
+
landed. That's one small step for (a) man, one giant leap for
|
36
|
+
mankind.
|
37
|
+
|
38
|
+
Here's the PDF of $$link["Ruby for the Old-Time C Programmer"|http://rubyhacker.com/blog2/rubydino.pdf]
|
39
|
+
|
40
|
+
Pity this busy monster, manunkind, not. Pity rather... Listen:
|
41
|
+
There's a hell of a universe next door; let's go.
|
42
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
Stubbs has been around for longer than civilization.
|
@@ -0,0 +1 @@
|
|
1
|
+
It used to be that all major concerts played the Erwin Center.
|
@@ -0,0 +1 @@
|
|
1
|
+
RIP, Hope Gallery
|
@@ -0,0 +1 @@
|
|
1
|
+
Will it ever be finished?
|
@@ -0,0 +1 @@
|
|
1
|
+
It's like Pooh Corner, except not.
|
@@ -0,0 +1 @@
|
|
1
|
+
They date to the 90s or before.
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,38 @@
|
|
1
|
+
.nopara
|
2
|
+
.variables
|
3
|
+
blog Around Austin
|
4
|
+
blog.desc The view from downtown
|
5
|
+
|
6
|
+
viewbox.wide 550
|
7
|
+
viewbox.high 90
|
8
|
+
|
9
|
+
rect.wide 550
|
10
|
+
rect.high 90
|
11
|
+
rect.fill blue
|
12
|
+
|
13
|
+
title.font bold 58px sans-serif
|
14
|
+
title.fill white
|
15
|
+
title.xoff 280
|
16
|
+
title.yoff 55
|
17
|
+
|
18
|
+
subtitle.font italic 24px sans-serif
|
19
|
+
subtitle.fill lightblue
|
20
|
+
subtitle.xoff 280
|
21
|
+
subtitle.yoff 80
|
22
|
+
.end
|
23
|
+
|
24
|
+
<svg width=$viewbox.wide height=$viewbox.high
|
25
|
+
viewBox="0 0 $viewbox.wide $viewbox.high"
|
26
|
+
xmlns="http://www.w3.org/2000/svg">
|
27
|
+
<style>
|
28
|
+
.subtitle { font: $subtitle.font; fill: $subtitle.fill }
|
29
|
+
.title { font: $title.font; fill: $title.fill }
|
30
|
+
</style>
|
31
|
+
|
32
|
+
<rect x="0" y="0" rx="10" ry="10" width="$rect.wide" height="$rect.high" fill="$rect.fill"/>
|
33
|
+
|
34
|
+
<text text-anchor="middle" x=$title.xoff y=$title.yoff class=title>$blog</text>
|
35
|
+
<text text-anchor="middle" x=$subtitle.xoff y=$subtitle.yoff class=subtitle>$blog.desc</text>
|
36
|
+
</svg>
|
37
|
+
<br>
|
38
|
+
Here we are
|
@@ -0,0 +1,60 @@
|
|
1
|
+
width = 550
|
2
|
+
title = "My Stuff" # 13 -> 58, 8 -> 13/8 * 58
|
3
|
+
sub = "I always wanted a place for it" # 22 -> 24, 31 -> 15
|
4
|
+
|
5
|
+
tlen, slen = title.length, sub.length
|
6
|
+
tfont = 58
|
7
|
+
sfont = 18
|
8
|
+
|
9
|
+
=begin
|
10
|
+
.svg_titles
|
11
|
+
title style: bold size: 20px face: sans-serif color: white
|
12
|
+
title2 italic 10px sans-serif
|
13
|
+
width 550
|
14
|
+
height 90
|
15
|
+
bgcolor blue
|
16
|
+
title_xy 82 55 left
|
17
|
+
title2_xy 210 80
|
18
|
+
.end
|
19
|
+
=end
|
20
|
+
|
21
|
+
puts <<-EOS
|
22
|
+
.nopara
|
23
|
+
.variables
|
24
|
+
blog #{title}
|
25
|
+
blog.desc #{sub}
|
26
|
+
|
27
|
+
viewbox.wide 550
|
28
|
+
viewbox.high 90
|
29
|
+
|
30
|
+
rect.wide 550
|
31
|
+
rect.high 90
|
32
|
+
rect.fill blue
|
33
|
+
|
34
|
+
title.font bold #{tfont}px sans-serif
|
35
|
+
title.fill white
|
36
|
+
title.xoff 82
|
37
|
+
title.yoff 55
|
38
|
+
|
39
|
+
subtitle.font italic #{sfont}px sans-serif
|
40
|
+
subtitle.fill lightblue
|
41
|
+
subtitle.xoff 210
|
42
|
+
subtitle.yoff 80
|
43
|
+
.end
|
44
|
+
|
45
|
+
<svg width=$viewbox.wide height=$viewbox.high
|
46
|
+
viewBox="0 0 $viewbox.wide $viewbox.high"
|
47
|
+
xmlns="http://www.w3.org/2000/svg">
|
48
|
+
<style>
|
49
|
+
.subtitle { font: $subtitle.font; fill: $subtitle.fill }
|
50
|
+
.title { font: $title.font; fill: $title.fill }
|
51
|
+
</style>
|
52
|
+
|
53
|
+
<rect x="0" y="0" rx="10" ry="10" width="$rect.wide" height="$rect.high" fill="$rect.fill"/>
|
54
|
+
|
55
|
+
<text x=$title.xoff y=$title.yoff class=title>$blog</text>
|
56
|
+
<text x=$subtitle.xoff y=$subtitle.yoff class=subtitle>$blog.desc</text>
|
57
|
+
</svg>
|
58
|
+
<br>
|
59
|
+
Here we are
|
60
|
+
EOS
|
@@ -0,0 +1,10 @@
|
|
1
|
+
|
2
|
+
<!-- meta tags: separate out? -->
|
3
|
+
|
4
|
+
<!-- meta property='fb:admins' content='767352779' /> -->
|
5
|
+
<meta property='og:url' content='http://rubyhacker.com/blog2/#{slug}.html'/>
|
6
|
+
<meta property='og:type' content='article'/>
|
7
|
+
<meta property='og:title' content='#{title}'/>
|
8
|
+
<meta property='og:image' content='http://rubyhacker.com/blog2/blog3b.gif'/>
|
9
|
+
<meta property='og:description' content='#{teaser}'/>
|
10
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<table>
|
2
|
+
<tr>
|
3
|
+
<td wudth=300>
|
4
|
+
<h1>And here we are...</h1>
|
5
|
+
</td>
|
6
|
+
|
7
|
+
<td>
|
8
|
+
<svg width=550 height=90
|
9
|
+
viewBox="0 0 550 90"
|
10
|
+
xmlns="http://www.w3.org/2000/svg">
|
11
|
+
<style>
|
12
|
+
.subtitle { font: italic 24px sans-serif; fill: lightblue }
|
13
|
+
.title { font: bold 58px sans-serif; fill: white }
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<rect x="0" y="0" rx="10" ry="10" width="550" height="90" fill="blue"/>
|
17
|
+
|
18
|
+
<text text-anchor="middle" x=280 y=55 class=title>Around Austin</text>
|
19
|
+
<text text-anchor="middle" x=280 y=80 class=subtitle>The view from downtown</text>
|
20
|
+
</svg>
|
21
|
+
</td>
|
22
|
+
</tr>
|
23
|
+
<table>
|
24
|
+
<br>
|
25
|
+
Here we are
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
3
|
+
class OpenStruct
|
4
|
+
def to_s
|
5
|
+
"[not a value]"
|
6
|
+
end
|
7
|
+
|
8
|
+
def inspect
|
9
|
+
to_s
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class OpenVar
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@hash = {}
|
17
|
+
@obj = OpenStruct.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def [](var)
|
21
|
+
puts "self = #{self.inspect}"
|
22
|
+
# @hash[var] = nil
|
23
|
+
pieces = var.split(".")
|
24
|
+
this = @obj
|
25
|
+
pieces.each do |piece|
|
26
|
+
puts "piece = #{piece}"
|
27
|
+
# this.send(piece.to_s+"=", OpenStruct.new)
|
28
|
+
this = this.send(piece)
|
29
|
+
puts "this = #{this.inspect}"
|
30
|
+
end
|
31
|
+
this
|
32
|
+
end
|
33
|
+
|
34
|
+
def method_missing(meth, *args)
|
35
|
+
setter = meth.to_s + "="
|
36
|
+
meh = @obj.send(setter, OpenStruct.new)
|
37
|
+
@obj
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
var = OpenVar.new
|
44
|
+
|
45
|
+
var.foo.bar = 237
|
46
|
+
|
47
|
+
puts var.foo.inspect
|
48
|
+
puts var.foo.bar.inspect
|
49
|
+
|
50
|
+
puts var["foo.bar"]
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Livetext::Functions
|
2
|
+
|
3
|
+
def facebook_init
|
4
|
+
fb_appid = _var("facebook.appid")
|
5
|
+
xfbml = _var("facebook.xfbml")
|
6
|
+
ver = _var("facebook.version")
|
7
|
+
width = _var("facebook.width")
|
8
|
+
share = _var("facebook.share")
|
9
|
+
faces = _var("facebook.faces")
|
10
|
+
<<~HTML
|
11
|
+
window.fbAsyncInit = function() {
|
12
|
+
FB.init({
|
13
|
+
appId : '#{fb_appid}',
|
14
|
+
xfbml : #{xfbml},
|
15
|
+
version : '#{ver}'
|
16
|
+
});
|
17
|
+
};
|
18
|
+
HTML
|
19
|
+
end
|
20
|
+
|
21
|
+
=begin
|
22
|
+
<!-- Needed:
|
23
|
+
<meta property='fb:admins' content='$facebook.admins'/>
|
24
|
+
<meta property='og:url' content='http://rubyhacker.com/blog2/#{slug}.html'/>
|
25
|
+
<meta property='og:type' content='article'/>
|
26
|
+
<meta property='og:title' content='#{title}'/>
|
27
|
+
<meta property='og:image' content='http://rubyhacker.com/blog2/blog3b.gif'/>
|
28
|
+
<meta property='og:description' content='#{teaser}'/>
|
29
|
+
-->
|
30
|
+
=end
|
31
|
+
|
32
|
+
def facebook_likes
|
33
|
+
<<~HTML
|
34
|
+
<div class='fb-like'
|
35
|
+
data-share='#{share}'
|
36
|
+
data-width='#{width}'
|
37
|
+
data-show-faces='#{faces}'>
|
38
|
+
</div>
|
39
|
+
HTML
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|