runeblog 0.2.90 → 0.2.95
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/blog +10 -7
- data/{lib → empty_view/config}/exper/2svg.lt3 +0 -0
- data/{lib → empty_view/config}/exper/gen_svg.rb +0 -0
- data/empty_view/config/exper/meta.html +10 -0
- data/{lib → empty_view/config}/exper/s2.html +0 -0
- data/{lib → empty_view/config}/exper/varmint.rb +0 -0
- data/empty_view/config/facebook/facebook.rb +37 -0
- data/empty_view/config/facebook/fb.html +10 -0
- data/empty_view/config/facebook/fb.js +13 -0
- data/empty_view/config/reddit/config.txt +6 -0
- data/empty_view/config/reddit/notes.txt +4 -0
- data/empty_view/config/reddit/reddit_post_url.py +34 -0
- data/empty_view/config/reddit/redpost.rb +43 -0
- data/empty_view/config/reddit/the-graffiti-wall.html +91 -0
- data/empty_view/config/twitter/tw.html +12 -0
- data/empty_view/config/twitter/tw.js +5 -0
- data/{lib/exper/fbtw.rb → empty_view/config/twitter/twitter.rb} +1 -23
- data/empty_view/themes/standard/{blog → banner}/banner.lt3 +0 -0
- data/empty_view/themes/standard/banner/{about.lt3 → navbar/about.lt3} +0 -0
- data/empty_view/themes/standard/banner/{contact.lt3 → navbar/contact.lt3} +0 -0
- data/empty_view/themes/standard/banner/navbar/faq.lt3 +1 -0
- data/empty_view/themes/standard/banner/{list.data → navbar/list.data} +0 -0
- data/empty_view/themes/standard/blog/generate.lt3 +1 -1
- data/empty_view/themes/standard/global.lt3 +1 -1
- data/empty_view/themes/standard/post/generate.lt3 +1 -1
- data/empty_view/themes/standard/post/index.lt3 +8 -8
- data/empty_view/themes/standard/widgets/links/links.rb +1 -1
- data/empty_view/themes/standard/widgets/news/news.rb +1 -1
- data/empty_view/themes/standard/widgets/pages/pages.rb +2 -2
- data/empty_view/themes/standard/widgets/pinned/pinned.rb +1 -1
- data/lib/helpers-blog.rb +30 -63
- data/lib/helpers-repl.rb +3 -13
- data/lib/liveblog.rb +56 -42
- data/lib/lowlevel.rb +73 -0
- data/lib/publish.rb +6 -22
- data/lib/repl.rb +25 -16
- data/lib/runeblog.rb +46 -15
- data/lib/runeblog_version.rb +1 -17
- metadata +24 -16
- data/empty_view/remote/banner/austin-pano.jpg +0 -0
- data/empty_view/themes/standard/banner/faq.lt3 +0 -1
- data/lib/default.rb +0 -31
- data/lib/exper/callout.js +0 -10
- data/lib/exper/fbtw-js +0 -48
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8c06b3d51a33a85b3420099bf6f6c40e3ac38bdc80b2c2ea5a77de81936f280
|
4
|
+
data.tar.gz: a28b089f368d4941418ace35fba818f13d7458362863002ab25d9ebefdfae706
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
|
File without changes
|
File without changes
|
@@ -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
|
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,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
|
+
|
@@ -1,18 +1,6 @@
|
|
1
|
-
|
2
1
|
class Livetext::Functions
|
3
2
|
|
4
|
-
|
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
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
.include ../../widgets/pages/faq.lt3
|
File without changes
|
@@ -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
|
11
|
+
.title This is my title
|
15
12
|
.pubdate 2019-07-09
|
16
|
-
.views
|
13
|
+
.views stuff
|
17
14
|
.tags
|
18
15
|
|
19
16
|
.teaser
|
20
|
-
|
21
|
-
|
17
|
+
This is only a short excerpt from the top of the blog post.
|
22
18
|
.end
|
23
|
-
|
19
|
+
|
20
|
+
And now we continue the post.
|
21
|
+
Do we have anything to say?
|
22
|
+
|
23
|
+
Apparently not much.
|
24
24
|
|