jekyll-analytics 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/analytics/Analytics.rb +9 -0
- data/lib/analytics/GoogleAnalytics.rb +45 -0
- data/lib/jekyll-analytics.rb +23 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 26b409ff39cfbd5b49df05e30ce2b0a7e928eaf5
|
4
|
+
data.tar.gz: 2db63505cd4beef74da2141e440cd5f528c463bc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 72c4284cf709792fe366982228c754febb2e9eddfdb260dd9e753e1e4d73fc56aa8e9954cc17fbab04a0ee4c022702192c9218403913f4c043e4c240796ede56
|
7
|
+
data.tar.gz: a964c7e8f8bc0b37722f458220770a837d53cca1fbac3378752b6df2eb5a668efe153efbac5e7e0a6eb4f7baa143cad2920158babeb4ba21d18c37aff738e88d
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require_relative 'Analytics'
|
2
|
+
|
3
|
+
class GoogleAnalytics < Analytics
|
4
|
+
#source: https://developers.google.com/analytics/devguides/collection/analyticsjs/
|
5
|
+
SETUP_CODE = """
|
6
|
+
<!-- Google Analytics -->
|
7
|
+
<script>
|
8
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
9
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
10
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
11
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
12
|
+
|
13
|
+
%s
|
14
|
+
</script>
|
15
|
+
<!-- End Google Analytics -->
|
16
|
+
"""
|
17
|
+
|
18
|
+
ID_REGEX = /^UA-\d+-\d+$/
|
19
|
+
|
20
|
+
INITIALIZE_CODE = "ga('create', '%s', 'auto');"
|
21
|
+
PAGEVIEW_CODE = "ga('send', 'pageview');"
|
22
|
+
ANONYMIZE_IP_CODE = "ga('set', 'anonymizeIp', %s);"
|
23
|
+
|
24
|
+
@@commands = nil
|
25
|
+
|
26
|
+
def initialize(config)
|
27
|
+
if !(ID_REGEX.match(config["id"]))
|
28
|
+
raise ArgumentError, 'Invalid Google analytics key. Id must look like UA-XXXXXX-Y'
|
29
|
+
end
|
30
|
+
|
31
|
+
@@commands = []
|
32
|
+
@@commands.push(INITIALIZE_CODE % config["id"])
|
33
|
+
@@commands.push(PAGEVIEW_CODE)
|
34
|
+
self._get_other_commands(config)
|
35
|
+
end
|
36
|
+
|
37
|
+
def render()
|
38
|
+
return SETUP_CODE % @@commands.join("\n\t")
|
39
|
+
end
|
40
|
+
|
41
|
+
def _get_other_commands(config)
|
42
|
+
@@commands.push(ANONYMIZE_IP_CODE % config.fetch(:anonymizeIp, false))
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'analytics/GoogleAnalytics'
|
2
|
+
|
3
|
+
def inject(site)
|
4
|
+
if ENV['JEKYLL_ENV']
|
5
|
+
config = site.site.config["jekyll_analytics"]["ga"]
|
6
|
+
analytics_object = GoogleAnalytics.new(config)
|
7
|
+
site.output = site.output.gsub(/(?=<\/head>)/i, analytics_object.render())
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
Jekyll::Hooks.register :pages, :post_render do |page|
|
13
|
+
inject(page)
|
14
|
+
end
|
15
|
+
|
16
|
+
Jekyll::Hooks.register :post, :post_render do |post|
|
17
|
+
inject(post)
|
18
|
+
end
|
19
|
+
|
20
|
+
Jekyll::Hooks.register :site, :post_render do |site|
|
21
|
+
#puts site.config
|
22
|
+
#inject(site)
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jekyll-analytics
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hendrik Schneider
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-16 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Plugin to easily add web analytics to your jekyll site
|
14
|
+
email: ''
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/analytics/Analytics.rb
|
20
|
+
- lib/analytics/GoogleAnalytics.rb
|
21
|
+
- lib/jekyll-analytics.rb
|
22
|
+
homepage: https://github.com/hendrik91/jekyll-analytics
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.5.1
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Jekyll plugin
|
46
|
+
test_files: []
|