amp-html 1.1.0 → 1.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 545c3ea0572405fdb0d68675d7eeabc50ec1b7dcf39142f60781f7e6a7f18f04
4
- data.tar.gz: 2674f97ab93a296c165c861f48edad638b5ad172ac2029ccaf77045faa7bd47e
3
+ metadata.gz: e3cad4f6ae213a043323c0f759a63c934c836a157c3361f422f0ca4b698f9a36
4
+ data.tar.gz: 3219480ff79226a0da61cdabb800846017090b90cab5d09f2a3daf8eebe926d5
5
5
  SHA512:
6
- metadata.gz: 179936be1a66a8449d283f8e9ee5644a2d903e16d0dae2bd752e619d2bedfb3a73347d852688f3f88eb4de245c083a659d150c91e94773ba827e8af8f079c1ae
7
- data.tar.gz: 8d86222cce4f0d7189dc0ca3dade379a3fee5ed73c9e19a4946d7ad02de1430ce396fd3747315ab94b1ee6e6c92946dcfe51cf4df1eb5f46ddfb51213c3ce12e
6
+ metadata.gz: d5f1334e1f4525199c2746c47103580233fd54f6f399b5023f70a69a8292aa756541b9ab1ea7ff1581412c8e39fd33e64e96eefbbfd7b7f343bf546b04552874
7
+ data.tar.gz: 4a65426b0516f365392743accde3bb60823340ec50ca324f00efe46529c7525dadb53ac5988dd676d6183a0aa7326a61f0403ff80e0f6e662360bf2a1b43c61c
@@ -4,6 +4,16 @@
4
4
 
5
5
  * nothing yet
6
6
 
7
+ ### 1.2.0 - 2018/01/30
8
+
9
+ * features
10
+ * automatically load controller action specific stylesheets
11
+ * enhancements
12
+ * allow options to be passed to the `amp/doctype` component
13
+ * bugfixes
14
+ * fix `amp/canonical-link` component for apps without SplitView
15
+ * fix media components
16
+
7
17
  ### 1.1.0 - 2018/01/17
8
18
 
9
19
  * features
data/README.md CHANGED
@@ -30,11 +30,6 @@ Use the powerful features of AMP to make your Rails app consistently fast, beaut
30
30
  * [Controllers](#controllers)
31
31
  * [SplitView](#splitview)
32
32
  * [Guides](#guides)
33
- * [Getting started](#getting-started)
34
- * [Utilizing features](#utilizing-features)
35
- * [Essentials](#essentials)
36
- * [Powerful features](#powerful-features)
37
- * [Testing](#testing)
38
33
  * [Components](#components)
39
34
  * [Configuration](#configuration)
40
35
  * [To Do](#to-do)
@@ -207,11 +202,10 @@ You can configure amp-html by passing a block to `configure`. This can be done i
207
202
 
208
203
  ```ruby
209
204
  AmpHtml.configure do |config|
210
- config.inherit_stylesheets = false
205
+ config.split_view = false
211
206
  end
212
207
  ```
213
208
 
214
- * `inherit_stylesheets` Use your regular stylesheets bundled with `app/assets/stylesheets/application.css` in your AMP views. Takes a boolean. Defaults to `false`.
215
209
  * `split_view` Enable SplitView to allow for AMP enabled and AMP disabled versions of your views. Takes a boolean. Defaults to `false`.
216
210
  * `split_view_default` The default view version if no `amp` param is present in the request. Must be either `'amp'` or `'html'`. Defaults to `'amp'`.
217
211
 
@@ -10,15 +10,20 @@ module AmpHtml
10
10
  end
11
11
  end
12
12
 
13
- # Fix for accessing AMP assets in different environments
14
- def get_asset name
15
- if Rails.application.assets
16
- asset = Rails.application.assets[name]
17
- return asset.to_s if asset
18
- end
19
- asset = Rails.application.assets_manifest.assets[name]
20
- return nil unless asset
21
- return File.binread(File.join(Rails.application.assets_manifest.dir, asset))
13
+ def amp_packaged_css
14
+ global = Rails.application.assets.find_asset('amp/application.css').to_s
15
+ package = Rails.application.assets.find_asset("amp/packages/#{params[:controller]}/#{action_name}.css").to_s
16
+ # if Rails.env.development?
17
+ # ::Sass::Engine.new(global + package, {
18
+ # syntax: :scss,
19
+ # cache: false,
20
+ # read_cache: false,
21
+ # style: :compressed
22
+ # }).render
23
+ # else
24
+ # global + package
25
+ # end
26
+ global + package
22
27
  end
23
28
 
24
29
  def amp= value = true
@@ -1,4 +1,4 @@
1
1
  <!doctype html>
2
- <html ⚡>
2
+ <%= content_tag 'html', options do %>
3
3
  <%= block %>
4
- </html>
4
+ <% end %>
@@ -7,7 +7,6 @@
7
7
 
8
8
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
9
9
  <style amp-custom>
10
- <%= get_asset 'application.css' if AmpHtml.configuration.inherit_stylesheets %>
11
- <%= get_asset 'amp/application.css' %>
10
+ <%= amp_packaged_css %>
12
11
  <%= area :css %>
13
12
  </style>
@@ -11,12 +11,10 @@ module AmpHtml
11
11
 
12
12
  class Configuration
13
13
 
14
- attr_accessor :inherit_stylesheets
15
14
  attr_accessor :split_view
16
15
  attr_accessor :split_view_default
17
16
 
18
17
  def initialize
19
- @inherit_stylesheets = false
20
18
  @split_view = false
21
19
  @split_view_default = 'amp'
22
20
  end
@@ -3,29 +3,35 @@ require 'rails/railtie'
3
3
  module AmpHtml
4
4
  class Railtie < ::Rails::Railtie
5
5
 
6
+ include ActionView::Helpers::AssetUrlHelper
7
+
6
8
  initializer 'amp-html.mozaic' do
7
9
  Mozaic.configure do |config|
8
10
 
9
11
 
10
12
  ### Base
11
13
 
12
- config.define_component 'amp/doctype'
14
+ config.define_component 'amp/doctype', '⚡': ''
13
15
  config.define_component 'amp/amp-link', rel: 'amphtml' do |options|
14
- return false unless AmpHtml.configuration.split_view
15
- href = options[:href].split('?').first
16
- unless AmpHtml.configuration.split_view_default == 'amp'
17
- options[:href] ||= "#{href}?#{{ amp: true }.to_query}"
16
+ if AmpHtml.configuration.split_view
17
+ href = options[:href].split('?').first
18
+ unless AmpHtml.configuration.split_view_default == 'amp'
19
+ options[:href] ||= "#{href}?#{{ amp: true }.to_query}"
20
+ else
21
+ options[:href] ||= href
22
+ end
18
23
  else
19
- options[:href] ||= href
24
+ false
20
25
  end
21
26
  end
22
27
  config.define_component 'amp/canonical-link', rel: 'canonical' do |options|
23
- return false unless AmpHtml.configuration.split_view
24
- href = options[:href].split('?').first
25
- if AmpHtml.configuration.split_view_default == 'amp'
26
- options[:href] ||= "#{href}?#{{ amp: false }.to_query}"
27
- else
28
- options[:href] ||= href
28
+ if AmpHtml.configuration.split_view
29
+ href = options[:href].split('?').first
30
+ if AmpHtml.configuration.split_view_default == 'amp'
31
+ options[:href] ||= "#{href}?#{{ amp: false }.to_query}"
32
+ else
33
+ options[:href] ||= href
34
+ end
29
35
  end
30
36
  end
31
37
  config.define_component 'amp/head'
@@ -101,6 +107,12 @@ module AmpHtml
101
107
 
102
108
  initializer 'amp-html.assets' do
103
109
  Rails.application.config.assets.precompile += ['amp/application.css']
110
+ Dir.glob Rails.root.join('app', 'assets', 'stylesheets', 'amp', 'packages', '**', '*') do |path|
111
+ next if File.directory? path
112
+ path = path.split('stylesheets').last
113
+ path.slice! 0
114
+ Rails.application.config.assets.precompile += [path]
115
+ end
104
116
  end
105
117
 
106
118
  initializer 'amp-html.action_controller' do
@@ -1,5 +1,5 @@
1
1
  module AmpHtml
2
2
 
3
- VERSION = '1.1.0'
3
+ VERSION = '1.2.0'
4
4
 
5
5
  end
@@ -14,7 +14,8 @@ module AmpHtml
14
14
  end
15
15
 
16
16
  def create_assets
17
- template 'application.css', 'app/assets/stylesheets/amp/application.css'
17
+ template 'application.sass', 'app/assets/stylesheets/amp/application.sass'
18
+ template '.keep-file', 'app/assets/stylesheets/amp/packages/.keep'
18
19
  end
19
20
 
20
21
  def create_initializer
@@ -0,0 +1,6 @@
1
+ // This is a manifest file that'll be compiled into amp/application.css, which will include all the files
2
+ // listed below.
3
+ //
4
+ // This manifest is only used for application wide styles. Add view specific files to the /packages subfolder.
5
+ //
6
+ // Don't use `require_tree .` in this file, as that would include all view specific files in this manifest.
@@ -1,9 +1,5 @@
1
1
  AmpHtml.configure do |config|
2
2
 
3
- # Use your regular stylesheets bundled with `app/assets/stylesheets/application.css` in your AMP views. Takes a boolean.
4
- # config.inherit_stylesheets = false
5
-
6
-
7
3
  ### SplitView
8
4
 
9
5
  # Enable SplitView to allow for AMP enabled and AMP disabled versions of your views. Takes a boolean.
@@ -2,7 +2,7 @@
2
2
  <head>
3
3
  <%%= component 'amp/head' %>
4
4
  <title>Hello AMP world</title>
5
- <%% if AmpHtml.configuration.split_view %><%%= component 'amp/canonical-link', href: request.original_url %><%% end %>
5
+ <%%= component 'amp/canonical-link', href: request.original_url %>
6
6
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
7
7
  <%%= csrf_meta_tags %>
8
8
  </head>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amp-html
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Hübotter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-17 00:00:00.000000000 Z
11
+ date: 2018-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sass-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: mozaic
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -133,7 +147,7 @@ files:
133
147
  - lib/amp-html/railtie.rb
134
148
  - lib/amp-html/version.rb
135
149
  - lib/generators/amp_html_generator.rb
136
- - lib/generators/templates/application.css
150
+ - lib/generators/templates/application.sass
137
151
  - lib/generators/templates/components/assets/javascripts/application.js
138
152
  - lib/generators/templates/components/helpers/ad_tag_helper.rb
139
153
  - lib/generators/templates/components/helpers/analytics_tag_helper.rb
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into amp/application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's
6
- * vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
- * files in this directory. Styles in this file should be added after the last require_* statement.
11
- * It is generally better to create a new file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */