amp-html 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
- */