Skip to content

Commit

Permalink
amp.rb: support Google Analytics
Browse files Browse the repository at this point in the history
  • Loading branch information
machu committed Jan 2, 2017
1 parent 88b8a22 commit 27362f0
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
45 changes: 45 additions & 0 deletions misc/plugin/amp.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,47 @@
ERB.new(template).result(binding)
end

add_conf_proc('amp', 'AMP') do
if @mode == 'saveconf'
@conf['amp.analytics.trackingid'] = @cgi.params['amp.analytics.trackingid'][0]
end
<<-HTML
<h3>Google Analytics</h3>
<p>your tracking ID (NNNNN-N)</p>
<p><input name="amp.analytics.trackingid" value="#{h @conf['amp.analytics.trackingid']}"></p>
HTML
end

def amp_body(diary)
apply_plugin(diary.to_html)
.gsub(/<img\s([^>]+)>/, '<amp-img \1 layout="responsive">')
.gsub(/<script[^<]+<\/script>/, '')
end

def amp_body_scripts
body_scripts = ''
if @conf['amp.analytics.trackingid'] && ! @conf['amp.analytics.trackingid'].empty?
body_scripts << <<-"HTML"
<amp-analytics type="googleanalytics" id="analytics1">
<script type="application/json">
{
"vars": {
"account": "UA-#{h @conf['amp.analytics.trackingid']}"
},
"triggers": {
"trackPageview": {
"on": "visible",
"request": "pageview"
}
}
}
</script>
</amp-analytics>
HTML
end
body_scripts
end

def amp_canonical_url(diary)
URI.join(@conf.base_url, anchor(diary.date.strftime('%Y%m%d')))
end
Expand All @@ -33,6 +68,16 @@ def amp_day_title(diary)
title_proc(Time::at(@date.to_i), diary.title)
end

def amp_header_scripts
scripts = {}
if @conf['amp.analytics.trackingid'] && ! @conf['amp.analytics.trackingid'].empty?
scripts['amp-analytics'] = 'https://cdn.ampproject.org/v0/amp-analytics-0.1.js'
end
scripts.map {|element, src|
%Q|<script async custom-element="#{element}" src="#{src}"></script>|
}.join("\n")
end

def amp_html_url(diary)
URI.join(amp_canonical_url(diary), '?plugin=amp')
end
Expand Down
2 changes: 2 additions & 0 deletions views/amp.rhtml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
<html lang="ja">
<head>
<meta charset="utf-8">
<%= amp_header_scripts %>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<title><%= amp_title %></title>
<link rel="canonical" href="<%= amp_canonical_url(diary) %>" />
Expand All @@ -12,6 +13,7 @@
</style>
</head>
<body>
<%= amp_body_scripts %>
<div class="whole-content">
<div class="adminmenu">
<%= navi_user %>
Expand Down

0 comments on commit 27362f0

Please sign in to comment.