jekyll-recker 1.15.0 → 2.3.1
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.
- checksums.yaml +4 -4
- data/lib/jekyll-recker.rb +6 -1
- data/lib/jekyll_recker/commands.rb +2 -2
- data/lib/jekyll_recker/date.rb +25 -0
- data/lib/jekyll_recker/entry.rb +44 -0
- data/lib/jekyll_recker/filters.rb +0 -2
- data/lib/jekyll_recker/generators.rb +85 -153
- data/lib/jekyll_recker/graphs.rb +88 -0
- data/lib/jekyll_recker/logging.rb +20 -0
- data/lib/jekyll_recker/math.rb +23 -0
- data/lib/jekyll_recker/site.rb +70 -0
- data/lib/jekyll_recker/social.rb +21 -21
- data/lib/jekyll_recker/tags.rb +5 -4
- data/lib/jekyll_recker/version.rb +1 -1
- metadata +9 -156
- data/LICENSE +0 -674
- data/README.md +0 -105
- data/_includes/figure.html +0 -14
- data/_includes/footer.html +0 -14
- data/_includes/head.html +0 -21
- data/_includes/header.html +0 -4
- data/_includes/nav.html +0 -10
- data/_includes/pager.html +0 -13
- data/_layouts/home.html +0 -13
- data/_layouts/page.html +0 -13
- data/_layouts/post.html +0 -20
- data/assets/jekyll-recker.scss +0 -121
- data/lib/jekyll_recker/mixins.rb +0 -21
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'logger'
|
4
|
+
|
5
|
+
module JekyllRecker
|
6
|
+
# Logging
|
7
|
+
module Logging
|
8
|
+
def self.included(base)
|
9
|
+
base.extend(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def info(msg)
|
13
|
+
Jekyll.logger.info 'jekyll-recker:', msg
|
14
|
+
end
|
15
|
+
|
16
|
+
def logger
|
17
|
+
::Jekyll.logger
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JekyllRecker
|
4
|
+
# Math Module
|
5
|
+
module Math
|
6
|
+
def average(numlist)
|
7
|
+
calc = numlist.inject { |sum, el| sum + el }.to_f / numlist.size
|
8
|
+
calc.round
|
9
|
+
end
|
10
|
+
|
11
|
+
def total(numlist)
|
12
|
+
numlist.inject(0) { |sum, x| sum + x }
|
13
|
+
end
|
14
|
+
|
15
|
+
def occurences(keys, targets)
|
16
|
+
results = Hash.new(0)
|
17
|
+
targets.each do |target|
|
18
|
+
results[target] += 1 if keys.include? target
|
19
|
+
end
|
20
|
+
results
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module JekyllRecker
|
4
|
+
# Site
|
5
|
+
class Site
|
6
|
+
def initialize(site)
|
7
|
+
@site = site
|
8
|
+
end
|
9
|
+
|
10
|
+
def entries
|
11
|
+
@entries ||= build_entries
|
12
|
+
end
|
13
|
+
|
14
|
+
def latest
|
15
|
+
entries.first
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
def production?
|
20
|
+
ENV['JEKYLL_ENV'] == 'production'
|
21
|
+
end
|
22
|
+
|
23
|
+
def data
|
24
|
+
@site.data
|
25
|
+
end
|
26
|
+
|
27
|
+
def url
|
28
|
+
@site.config['url']
|
29
|
+
end
|
30
|
+
|
31
|
+
def word_counts
|
32
|
+
entries.collect(&:word_count)
|
33
|
+
end
|
34
|
+
|
35
|
+
def words
|
36
|
+
entries.collect(&:words).flatten
|
37
|
+
end
|
38
|
+
|
39
|
+
def dates
|
40
|
+
entries.collect(&:date)
|
41
|
+
end
|
42
|
+
|
43
|
+
def images
|
44
|
+
exts = ['.jpg', 'jpeg', '.png', '.svg']
|
45
|
+
@site.static_files.collect(&:path).select { |f| exts.include? File.extname(f) }
|
46
|
+
end
|
47
|
+
|
48
|
+
def recker_config
|
49
|
+
@site.config.fetch('recker', {})
|
50
|
+
end
|
51
|
+
|
52
|
+
def config
|
53
|
+
@site.config
|
54
|
+
end
|
55
|
+
|
56
|
+
def graphs_dir
|
57
|
+
recker_config.fetch('graphs', 'assets/images/graphs/')
|
58
|
+
end
|
59
|
+
|
60
|
+
private
|
61
|
+
|
62
|
+
def build_entries
|
63
|
+
@site.posts.docs
|
64
|
+
.select(&:published?)
|
65
|
+
.sort_by(&:date)
|
66
|
+
.reverse
|
67
|
+
.map { |p| Entry.new(p) }
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/lib/jekyll_recker/social.rb
CHANGED
@@ -4,6 +4,7 @@ require 'slack-notifier'
|
|
4
4
|
require 'twitter'
|
5
5
|
|
6
6
|
module JekyllRecker
|
7
|
+
# Social Module
|
7
8
|
module Social
|
8
9
|
def self.action(site, args, options)
|
9
10
|
args += %w[slack twitter] if args.empty?
|
@@ -16,19 +17,21 @@ module JekyllRecker
|
|
16
17
|
# Backend base class for social sharing backends.
|
17
18
|
# @abstract
|
18
19
|
class Share
|
19
|
-
include
|
20
|
+
include Logging
|
21
|
+
|
22
|
+
attr_reader :site
|
20
23
|
|
21
24
|
def self.share(site, dry: false)
|
22
25
|
backend = new(site, dry: dry)
|
23
|
-
|
26
|
+
info "#{backend.name} - building configuration"
|
24
27
|
backend.configure!
|
25
28
|
|
26
|
-
|
29
|
+
info "#{backend.name} - sharing \"#{backend.latest_title}\""
|
27
30
|
backend.post!
|
28
31
|
end
|
29
32
|
|
30
33
|
def initialize(site, dry: false)
|
31
|
-
@site = site
|
34
|
+
@site = Site.new(site)
|
32
35
|
@dry = dry
|
33
36
|
end
|
34
37
|
|
@@ -37,29 +40,28 @@ module JekyllRecker
|
|
37
40
|
end
|
38
41
|
|
39
42
|
def config
|
40
|
-
|
43
|
+
site.recker_config.fetch(config_key, {})
|
41
44
|
end
|
42
45
|
|
43
46
|
def config_key
|
44
47
|
self.class.const_get(:KEY)
|
45
48
|
end
|
46
|
-
alias name :config_key
|
49
|
+
alias :name :config_key
|
47
50
|
|
48
51
|
def post_body
|
49
|
-
url = File.join @site.config['url'], latest.url
|
50
52
|
<<~BODY
|
51
|
-
#{latest.
|
52
|
-
#{latest.
|
53
|
-
#{url}
|
53
|
+
#{latest.title}
|
54
|
+
#{latest.subtitle}
|
55
|
+
#{File.join site.url, latest.url}
|
54
56
|
BODY
|
55
57
|
end
|
56
58
|
|
57
|
-
def
|
58
|
-
|
59
|
+
def latest_title
|
60
|
+
latest.title
|
59
61
|
end
|
60
62
|
|
61
|
-
def
|
62
|
-
latest
|
63
|
+
def latest
|
64
|
+
site.latest
|
63
65
|
end
|
64
66
|
|
65
67
|
def configure!
|
@@ -81,9 +83,7 @@ module JekyllRecker
|
|
81
83
|
@creds = {}
|
82
84
|
workspaces.each do |key, data|
|
83
85
|
webhook = ENV["SLACK_#{key.upcase}_WEBHOOK"] || extract_from_config(data)
|
84
|
-
if webhook.nil?
|
85
|
-
raise "cannot find slack webhook for #{key} workspace!"
|
86
|
-
end
|
86
|
+
raise "cannot find slack webhook for #{key} workspace!" if webhook.nil?
|
87
87
|
|
88
88
|
@creds[key] = webhook
|
89
89
|
end
|
@@ -92,9 +92,9 @@ module JekyllRecker
|
|
92
92
|
def post!
|
93
93
|
message_body = ::Slack::Notifier::Util::LinkFormatter.format(post_body)
|
94
94
|
workspaces.each do |key, config|
|
95
|
-
|
95
|
+
info "posting to #{key} workspace"
|
96
96
|
if @dry
|
97
|
-
|
97
|
+
puts "BEGIN MESSAGE\n#{message_body.strip}\nEND MESSAGE"
|
98
98
|
else
|
99
99
|
::Slack::Notifier.new(
|
100
100
|
@creds[key].strip,
|
@@ -140,8 +140,8 @@ module JekyllRecker
|
|
140
140
|
|
141
141
|
def post!
|
142
142
|
if dry?
|
143
|
-
|
144
|
-
|
143
|
+
info('tweeting in dry mode, printing message')
|
144
|
+
puts "BEGIN TWEET\n#{post_body}END TWEET"
|
145
145
|
else
|
146
146
|
@client.update(post_body)
|
147
147
|
end
|
data/lib/jekyll_recker/tags.rb
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module JekyllRecker
|
4
|
+
# Tags
|
4
5
|
module Tags
|
5
|
-
#
|
6
|
+
# Render the current plugin version
|
6
7
|
class Version < Liquid::Tag
|
7
|
-
def render(
|
8
|
-
VERSION
|
8
|
+
def render(_ctx)
|
9
|
+
"v#{JekyllRecker::VERSION}"
|
9
10
|
end
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
|
-
Liquid::Template.register_tag('
|
15
|
+
Liquid::Template.register_tag('version', JekyllRecker::Tags::Version)
|
metadata
CHANGED
@@ -1,113 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-recker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Recker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: bump
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: pry
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: yard
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: fastimage
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
13
|
- !ruby/object:Gem::Dependency
|
112
14
|
name: jekyll
|
113
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,48 +24,6 @@ dependencies:
|
|
122
24
|
- - "~>"
|
123
25
|
- !ruby/object:Gem::Version
|
124
26
|
version: '3.8'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: mini_magick
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: slack-notifier
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: twitter
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :runtime
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
27
|
description:
|
168
28
|
email:
|
169
29
|
- alex@reckerfamily.com
|
@@ -171,28 +31,21 @@ executables: []
|
|
171
31
|
extensions: []
|
172
32
|
extra_rdoc_files: []
|
173
33
|
files:
|
174
|
-
- LICENSE
|
175
|
-
- README.md
|
176
|
-
- _includes/figure.html
|
177
|
-
- _includes/footer.html
|
178
|
-
- _includes/head.html
|
179
|
-
- _includes/header.html
|
180
|
-
- _includes/nav.html
|
181
|
-
- _includes/pager.html
|
182
|
-
- _layouts/home.html
|
183
|
-
- _layouts/page.html
|
184
|
-
- _layouts/post.html
|
185
|
-
- assets/jekyll-recker.scss
|
186
34
|
- lib/jekyll-recker.rb
|
187
35
|
- lib/jekyll_recker/commands.rb
|
36
|
+
- lib/jekyll_recker/date.rb
|
37
|
+
- lib/jekyll_recker/entry.rb
|
188
38
|
- lib/jekyll_recker/filters.rb
|
189
39
|
- lib/jekyll_recker/generators.rb
|
190
|
-
- lib/jekyll_recker/
|
40
|
+
- lib/jekyll_recker/graphs.rb
|
41
|
+
- lib/jekyll_recker/logging.rb
|
42
|
+
- lib/jekyll_recker/math.rb
|
191
43
|
- lib/jekyll_recker/shell.rb
|
44
|
+
- lib/jekyll_recker/site.rb
|
192
45
|
- lib/jekyll_recker/social.rb
|
193
46
|
- lib/jekyll_recker/tags.rb
|
194
47
|
- lib/jekyll_recker/version.rb
|
195
|
-
homepage: https://www.github.com/arecker/
|
48
|
+
homepage: https://www.github.com/arecker/blog
|
196
49
|
licenses:
|
197
50
|
- GPLv3
|
198
51
|
metadata: {}
|