runeblog 0.2.90 → 0.2.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/bin/blog +10 -7
  3. data/{lib → empty_view/config}/exper/2svg.lt3 +0 -0
  4. data/{lib → empty_view/config}/exper/gen_svg.rb +0 -0
  5. data/empty_view/config/exper/meta.html +10 -0
  6. data/{lib → empty_view/config}/exper/s2.html +0 -0
  7. data/{lib → empty_view/config}/exper/varmint.rb +0 -0
  8. data/empty_view/config/facebook/facebook.rb +37 -0
  9. data/empty_view/config/facebook/fb.html +10 -0
  10. data/empty_view/config/facebook/fb.js +13 -0
  11. data/empty_view/config/reddit/config.txt +6 -0
  12. data/empty_view/config/reddit/notes.txt +4 -0
  13. data/empty_view/config/reddit/reddit_post_url.py +34 -0
  14. data/empty_view/config/reddit/redpost.rb +43 -0
  15. data/empty_view/config/reddit/the-graffiti-wall.html +91 -0
  16. data/empty_view/config/twitter/tw.html +12 -0
  17. data/empty_view/config/twitter/tw.js +5 -0
  18. data/{lib/exper/fbtw.rb → empty_view/config/twitter/twitter.rb} +1 -23
  19. data/empty_view/themes/standard/{blog → banner}/banner.lt3 +0 -0
  20. data/empty_view/themes/standard/banner/{about.lt3 → navbar/about.lt3} +0 -0
  21. data/empty_view/themes/standard/banner/{contact.lt3 → navbar/contact.lt3} +0 -0
  22. data/empty_view/themes/standard/banner/navbar/faq.lt3 +1 -0
  23. data/empty_view/themes/standard/banner/{list.data → navbar/list.data} +0 -0
  24. data/empty_view/themes/standard/blog/generate.lt3 +1 -1
  25. data/empty_view/themes/standard/global.lt3 +1 -1
  26. data/empty_view/themes/standard/post/generate.lt3 +1 -1
  27. data/empty_view/themes/standard/post/index.lt3 +8 -8
  28. data/empty_view/themes/standard/widgets/links/links.rb +1 -1
  29. data/empty_view/themes/standard/widgets/news/news.rb +1 -1
  30. data/empty_view/themes/standard/widgets/pages/pages.rb +2 -2
  31. data/empty_view/themes/standard/widgets/pinned/pinned.rb +1 -1
  32. data/lib/helpers-blog.rb +30 -63
  33. data/lib/helpers-repl.rb +3 -13
  34. data/lib/liveblog.rb +56 -42
  35. data/lib/lowlevel.rb +73 -0
  36. data/lib/publish.rb +6 -22
  37. data/lib/repl.rb +25 -16
  38. data/lib/runeblog.rb +46 -15
  39. data/lib/runeblog_version.rb +1 -17
  40. metadata +24 -16
  41. data/empty_view/remote/banner/austin-pano.jpg +0 -0
  42. data/empty_view/themes/standard/banner/faq.lt3 +0 -1
  43. data/lib/default.rb +0 -31
  44. data/lib/exper/callout.js +0 -10
  45. data/lib/exper/fbtw-js +0 -48
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 365e66737ee3be0800f04dd3bda9eaca37cd6f76cd17db5d343eceff16749573
4
- data.tar.gz: da092312fc42edd3a662b45ca686b5c942353bb7f0d43bed209ff7085eb2718c
3
+ metadata.gz: a8c06b3d51a33a85b3420099bf6f6c40e3ac38bdc80b2c2ea5a77de81936f280
4
+ data.tar.gz: a28b089f368d4941418ace35fba818f13d7458362863002ab25d9ebefdfae706
5
5
  SHA512:
6
- metadata.gz: 67a954e3ce658970aadb244d6b35aee27c770a3e441033f3878deb6f991838418ecb59530163c42bfe88425d6c4c1e9684145b0c62e87b6f6a5244dd604f4e32
7
- data.tar.gz: 3e160483e7e9ec205d086db168d2b1254603fc2a4a6a18b789a360b38cc6c22eee4b221fbe0da6a132de4df7436f6bf18414e3bcab07db36cf683cb480178b38
6
+ metadata.gz: ffd6c82a51c01169b5a045d3f8c2a4f3f2db2230458c8cc4e7eff2740a0d3a0cf424a198a3187a888dd92b3c4976dd41597bae012514b3829c4921ad8750ef04
7
+ data.tar.gz: b47ac4fd2c6733a5433cf83d6c11c71f8b41bd71681826fadc9f4f98f57338fccc45491babbac7389f51cdd2927b04dee07f85aecfe68c8c75af0807ad03bd67
data/bin/blog CHANGED
@@ -25,8 +25,8 @@ end
25
25
  def get_universal
26
26
  univ = "#{@blog.root}/data/universal.lt3"
27
27
  if yesno("Faster initial setup? (no: edit universal.lt3)")
28
- author = ask("Author name: ")
29
- site = ask("Site/domain: ")
28
+ author = ask!("Author name: ")
29
+ site = ask!("Site/domain: ")
30
30
  # Now stash it...
31
31
  str = File.read(univ)
32
32
  str = str.gsub(/AUTHOR/, author)
@@ -39,10 +39,10 @@ end
39
39
 
40
40
  def get_global
41
41
  if yesno("Faster view setup? (no: edit global.lt3)")
42
- view_name = ask("\nFilename: ")
42
+ view_name = ask!("\nFilename: ")
43
43
  @blog.create_view(view_name) # call change_view??
44
- title = ask("View title: ")
45
- subtitle = ask("Subtitle : ")
44
+ title = ask!("View title: ")
45
+ subtitle = ask!("Subtitle : ")
46
46
  gname = "#{@blog.root}/views/#{view_name}/themes/standard/global.lt3"
47
47
  text = File.read(gname)
48
48
  text = text.gsub(/VIEW_NAME/, view_name)
@@ -50,7 +50,7 @@ def get_global
50
50
  text = text.gsub(/VIEW_SUBTITLE/, subtitle)
51
51
  File.write(gname, text)
52
52
  else
53
- view_name = ask("\nFilename: ")
53
+ view_name = ask!("\nFilename: ")
54
54
  @blog.create_view(view_name) # call change_view??
55
55
  vim_params = '-c ":set hlsearch" -c ":hi Search ctermfg=2 ctermbg=6" +/"\(VIEW_.*\|SITE.*\)"'
56
56
  edit_file(@blog.view.dir/"themes/standard/global.lt3", vim: vim_params)
@@ -146,7 +146,10 @@ end
146
146
 
147
147
  major, minor = RUBY_VERSION.split(".").values_at(0,1)
148
148
  ver = major.to_i*10 + minor.to_i
149
- abort "Need Ruby 2.4 or greater" unless ver >= 24
149
+ unless ver >= 24
150
+ RubyText.stop
151
+ abort "Need Ruby 2.4 or greater"
152
+ end
150
153
 
151
154
  include RuneBlog::Helpers # for try_read_config
152
155
 
@@ -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
+
File without changes
@@ -0,0 +1,37 @@
1
+ class Livetext::Functions
2
+
3
+ def facebook_init
4
+ fb_appid = _var("facebook.appid")
5
+ <<~HTML
6
+ window.fbAsyncInit = function() {
7
+ FB.init({
8
+ appId : '#{fb_appid}',
9
+ xfbml : true,
10
+ version : 'v2.4'
11
+ });
12
+ };
13
+ HTML
14
+ end
15
+
16
+ =begin
17
+ <!-- Needed: btw what is 'content'?
18
+ <meta property='fb:admins' content='767352779'/>
19
+ <meta property='og:url' content='http://rubyhacker.com/blog2/#{slug}.html'/>
20
+ <meta property='og:type' content='article'/>
21
+ <meta property='og:title' content='#{title}'/>
22
+ <meta property='og:image' content='http://rubyhacker.com/blog2/blog3b.gif'/>
23
+ <meta property='og:description' content='#{teaser}'/>
24
+ -->
25
+ =end
26
+
27
+ def facebook_likes
28
+ <<~HTML
29
+ <div class='fb-like'
30
+ data-share='true'
31
+ data-width='450'
32
+ data-show-faces='true'>
33
+ </div>
34
+ HTML
35
+ end
36
+
37
+ end
@@ -0,0 +1,10 @@
1
+
2
+ <!-- facebook -->
3
+
4
+ <div
5
+ class='fb-like'
6
+ data-share='true'
7
+ data-width='450'
8
+ data-show-faces='true'>
9
+ </div>
10
+
@@ -0,0 +1,13 @@
1
+ <script>
2
+ window.fbAsyncInit = function() {
3
+ FB.init({
4
+ appId : '1176481582378716',
5
+ xfbml : true,
6
+ version : 'v2.4'
7
+ });
8
+ };
9
+
10
+ callout(document, 'facebook-jssdk',
11
+ '//connect.facebook.net/en_US/sdk.js');
12
+ </script>
13
+
@@ -0,0 +1,6 @@
1
+ subreddit RubyElixirEtc
2
+ user_agent RuneBlog comments
3
+ client_id rAyZILgqGB7uHQ
4
+ client_secret 0CqLXyFu6ABb1MrErWRsB7Bo-i8
5
+ username hal_fulton
6
+ password adnar1m1
@@ -0,0 +1,4 @@
1
+ When a post is generated:
2
+ - check for reddit.id under VIEW/posts/nnnn-title/
3
+ - if it doesn't exist, post to reddit
4
+ - create the reddit.id
@@ -0,0 +1,34 @@
1
+
2
+ import re
3
+ import praw
4
+
5
+ f = open("reddit/config.txt", "r")
6
+ lines = f.readlines()
7
+ f.close()
8
+
9
+ dict = {}
10
+ for line in lines:
11
+ data = re.split(" +", line)
12
+ dict[data[0]] = data[1].rstrip()
13
+
14
+
15
+ reddit = praw.Reddit(user_agent = dict['user_agent'],
16
+ client_id = dict['client_id'],
17
+ client_secret = dict['client_secret'],
18
+ username = dict['username'],
19
+ password = dict['password'])
20
+
21
+ file = open("/tmp/reddit-post-url.txt", "r") # gaahhh
22
+ lines = file.readlines()
23
+ title = lines[0].rstrip()
24
+ url = lines[1].rstrip()
25
+
26
+ subred = reddit.subreddit(dict['subreddit'])
27
+ rid = subred.submit(title = title, url = url)
28
+
29
+ print(rid)
30
+
31
+ # submission = reddit.submission(id='edmcwf')
32
+ # print(submission.title)
33
+ # print(submission.url)
34
+
@@ -0,0 +1,43 @@
1
+ app_name = "raido1"
2
+ app_client = "rAyZILgqGB7uHQ"
3
+ secret = "0CqLXyFu6ABb1MrErWRsB7Bo-i8"
4
+
5
+ https://www.reddit.com/api/v1/authorize?client_id=rAyZILgqGB7uHQ&response_type=code&state=abc237def&redirect_uri=http%3A%2F%2Frubyhacker.com&duration=permanent&scope=identity%20edit%20flair%20history%20modconfig%20modflair%20modlog%20modposts%20modwiki%20mysubreddits%20privatemessages%20read%20report%20save%20submit%20subscribe%20vote%20wikiedit%20wikiread
6
+
7
+
8
+
9
+ require 'net/http'
10
+ require 'uri'
11
+ require 'json'
12
+
13
+
14
+ =begin
15
+ get_token = URI.parse("https://www.reddit.com/api/v1/access_token")
16
+ data = {
17
+ grant_type: authorization_code
18
+ code=CODE
19
+ redirect_uri=URI
20
+ }
21
+ =end
22
+
23
+
24
+
25
+ uri = URI.parse("http://reddit.com/api/submit")
26
+
27
+ header = {'Content-Type': 'text/json'}
28
+ data = {
29
+ sr: "RubyElixirEtc",
30
+ kind: "link",
31
+ title: "[Post] This is my title",
32
+ url: "http://rubyhacker.com/around_austin/permalink/the-graffiti-wall.html"
33
+ }
34
+
35
+ # Create the HTTP objects
36
+ http = Net::HTTP.new(uri.host, uri.port)
37
+ request = Net::HTTP::Post.new(uri.request_uri, header)
38
+ request.body = user.to_json
39
+
40
+ # Send the request
41
+ response = http.request(request)
42
+
43
+
@@ -0,0 +1,91 @@
1
+
2
+ <html>
3
+ <!-- Generated from /Users/Hal/Dropbox/files/runeblog/.blogs/views/around_austin/themes/standard/global.lt3 on 2019-12-19; editing not recommended. -->
4
+
5
+
6
+
7
+
8
+ <meta charset="utf-8">
9
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
10
+ <title>
11
+ Around Austin | The view from downtown...
12
+ </title>
13
+ <meta name="generator" content="Runeblog v 0.2.91">
14
+ <meta property="og:title" content="The graffiti wall ">
15
+ <meta property="og:locale" content="en_US">
16
+ <meta property="description" content="RIP, Hope Gallery">
17
+ <meta property="og:description" content="The view from downtown...">
18
+ <link rel="canonical" href="http://SITE">
19
+ <meta property="og:url" content="http://SITE">
20
+ <meta property="og:site_name" content="Around Austin">
21
+ <link type="application/atom+xml" rel="alternate" href="http://SITE/feed.xml" title="Around Austin">
22
+ <link rel="shortcut icon" type="image/x-icon" href="etc/favicon.ico">
23
+ <link rel="apple-touch-icon" href="etc/favicon.ico">
24
+ <link rel="stylesheet" href="etc/blog.css">
25
+ <body>
26
+
27
+ <section class="post">
28
+ <div class="entry-content">
29
+ <table border=0 width=100%><tr>
30
+ <td align=left valign=bottom><h2 class="post-title">The graffiti wall</h2></td>
31
+ <td align=right valign=top><font size=-5><br></font>December 2, 2019</td>
32
+ </tr></table><hr>
33
+ <!-- Post number 3 -->
34
+
35
+
36
+ RIP, Hope Gallery
37
+
38
+
39
+ <div class='mydrop'>I</div>
40
+ <div style="padding-top: 1px">t's been a while since I was there. They say it was torn down
41
+ while I wasn't looking. Never tagged anything there, of course, nor
42
+ anywhere else. Spraypainting public places isn't my thing, but in this
43
+ case I condoned it because it was sort of there for that purpose.
44
+
45
+ <p>
46
+ This fake entry is a long one so as to demonstrate both drop-caps
47
+ (above) and an inset quote. Blah blah blah. Lorem ipsum dolor and
48
+ a partridge in a pear tree.
49
+
50
+ <p>
51
+ </p>
52
+ Wherever you go, there you are. Last night I saw upon the stair
53
+ a little man who was not there. He wasn't there again today; I
54
+ wish, I wish he'd go away. As far as we know, our computer has
55
+ <div style='float:left; width: 20%; padding:8px; padding-right:12px'><b><i> On a clean disk, you can seek forever.</i></b></div>
56
+ never had an undetected error.
57
+ On a clean disk, you can seek forever.
58
+ And never let it be denied that
59
+ pobbles are happier without their toes. And may your snark never
60
+ be a boojum. How do you know you aren't dreaming right now? When
61
+ you see a butterfly, think of Chuang Tzu.
62
+ <p>
63
+ Contact light. Houston, this is Tranquility Base. The Eagle has
64
+ landed. That's one small step for (a) man, one giant leap for
65
+ mankind.
66
+
67
+ <p>
68
+ Here's the PDF of <a style='text-decoration: none' href='http://rubyhacker.com/blog2/rubydino.pdf'>"Ruby for the Old-Time C Programmer"</a>
69
+
70
+ <p>
71
+ Pity this busy monster, manunkind, not. Pity rather... Listen:
72
+ There's a hell of a universe next door; let's go.
73
+
74
+ <p>
75
+ </div>
76
+ </section>
77
+
78
+ <br>
79
+ <!-- <script src='https://redditjs.com/subreddit.js' data-subreddit='RubyElixirEtc' data-width=600></script> -->
80
+ <!-- https://www.reddit.com/r/RubyElixirEtc/comments/ed48ra/post_this_is_only_a_test/ -->
81
+
82
+ <hr>
83
+ <table width=100%><tr>
84
+ <td width=10%><a style="text-decoration: none" href="javascript:history.go(-1)">[Back]</a></td>
85
+ <td width=10%><a style="text-decoration: none" href="http://SITE/VIEW_NAME/permalink/the-graffiti-wall.html"> [permalink] </a></td>
86
+ <td width=80% align=right><font size=-3></font></td></tr></table>
87
+ <hr>
88
+ <script src='https://redditjs.com/post.js' data-url="ed48ra" data-width=800 ></script>
89
+
90
+ </body>
91
+ </html>
@@ -0,0 +1,12 @@
1
+
2
+ <!-- Twitter: share, follow -->
3
+
4
+ <a href='https://twitter.com/share'
5
+ class='twitter-share-button'
6
+ data-text='#{title}'
7
+ data-url='#{'url'}'
8
+ data-via='hal_fulton'
9
+ data-related='hal_fulton'>Tweet</a>
10
+
11
+ <a href='https://twitter.com/hal_fulton' class='twitter-follow-button' data-show-count='false'>Follow @hal_fulton</a>
12
+
@@ -0,0 +1,5 @@
1
+ <script>
2
+ callout(document, 'script', 'twitter-wjs',
3
+ '//platform.twitter.com/widgets.js';
4
+ </script>
5
+
@@ -1,18 +1,6 @@
1
-
2
1
  class Livetext::Functions
3
2
 
4
- def facebook_init
5
- fb_appid = _var("facebook.appid")
6
- <<~HTML
7
- window.fbAsyncInit = function() {
8
- FB.init({
9
- appId : '#{fb_appid}',
10
- xfbml : true,
11
- version : 'v2.4'
12
- });
13
- };
14
- HTML
15
- end
3
+ # Needed for Twitter??
16
4
 
17
5
  =begin
18
6
  <!-- Needed: btw what is 'content'?
@@ -25,16 +13,6 @@ class Livetext::Functions
25
13
  -->
26
14
  =end
27
15
 
28
- def facebook_likes
29
- <<~HTML
30
- <div class='fb-like'
31
- data-share='true'
32
- data-width='450'
33
- data-show-faces='true'>
34
- </div>
35
- HTML
36
- end
37
-
38
16
  def twitter_share
39
17
  name, title, url = "", "", "" # FIXME
40
18
  <<~HTML
@@ -0,0 +1 @@
1
+ .include ../../widgets/pages/faq.lt3
@@ -11,7 +11,7 @@
11
11
  $.seek global.lt3
12
12
  $.include blog/head.lt3
13
13
  <body>
14
- $.include blog/banner.lt3
14
+ $.include banner/banner.lt3
15
15
  <div class="content container-fluid mt-4">
16
16
  <div class="row">
17
17
  $.include blog/index.lt3
@@ -29,7 +29,7 @@ post.date.size 15px
29
29
  publish.user root
30
30
  publish.server rubyhacker.com
31
31
  publish.docroot /var/www/
32
- publish.path around_austin
32
+ publish.path stuff
33
33
  publish.proto http
34
34
  .end
35
35
 
@@ -33,6 +33,6 @@ style blog.css
33
33
 
34
34
  <br>
35
35
  <hr>
36
- .post_trailer
36
+ .post_trailer
37
37
  </body>
38
38
  </html>
@@ -6,19 +6,19 @@
6
6
  . likely be the place.
7
7
  . --------------------------------------------------
8
8
 
9
- .mixin liveblog
10
- . ^ get rid of this later
11
-
12
9
  .post 0
13
10
 
14
- .title The new amphitheatre is overrated
11
+ .title This is my title
15
12
  .pubdate 2019-07-09
16
- .views around_austin
13
+ .views stuff
17
14
  .tags
18
15
 
19
16
  .teaser
20
- It used to be that all major concerts played the Erwin Center.
21
-
17
+ This is only a short excerpt from the top of the blog post.
22
18
  .end
23
- Now, depending on what you consider "major," blah blah blah...
19
+
20
+ And now we continue the post.
21
+ Do we have anything to say?
22
+
23
+ Apparently not much.
24
24