amp-html 1.0.1 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +71 -3
- data/app/helpers/amp_html/base_helper.rb +8 -0
- data/app/views/mozaic/amp/_components.html.erb +4 -4
- data/app/views/mozaic/amp/_font.html.erb +1 -2
- data/app/views/mozaic/amp/_img.html.erb +1 -1
- data/lib/amp-html/railtie.rb +8 -4
- data/lib/amp-html/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 545c3ea0572405fdb0d68675d7eeabc50ec1b7dcf39142f60781f7e6a7f18f04
|
4
|
+
data.tar.gz: 2674f97ab93a296c165c861f48edad638b5ad172ac2029ccaf77045faa7bd47e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 179936be1a66a8449d283f8e9ee5644a2d903e16d0dae2bd752e619d2bedfb3a73347d852688f3f88eb4de245c083a659d150c91e94773ba827e8af8f079c1ae
|
7
|
+
data.tar.gz: 8d86222cce4f0d7189dc0ca3dade379a3fee5ed73c9e19a4946d7ad02de1430ce396fd3747315ab94b1ee6e6c92946dcfe51cf4df1eb5f46ddfb51213c3ce12e
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -8,14 +8,14 @@ amp-html is a universal solution to integrate the [AMP Project](https://www.ampp
|
|
8
8
|
|
9
9
|
Use the powerful features of AMP to make your Rails app consistently fast, beautiful and high-performing across devices and distribution platforms.
|
10
10
|
|
11
|
-
[**Follow the Getting Started Guide**](https://github.com/jonhue/amp-html/wiki/Getting-started)
|
11
|
+
[**Follow the Getting Started Guide**](https://github.com/jonhue/amp-html/wiki/Getting-started), [Demo](https://hello-amp.herokuapp.com)
|
12
12
|
|
13
13
|
---
|
14
14
|
|
15
15
|
## Navigation
|
16
16
|
|
17
17
|
* [Information](#information)
|
18
|
-
* [Quick info
|
18
|
+
* [Quick info](#quick-info)
|
19
19
|
* [The amp-html wiki](#the-amp-html-wiki)
|
20
20
|
* [Bug reports](#bug-reports)
|
21
21
|
* [Example applications](#example-applications)
|
@@ -26,8 +26,15 @@ Use the powerful features of AMP to make your Rails app consistently fast, beaut
|
|
26
26
|
* [Generators](#generators)
|
27
27
|
* [Test and validate AMP](#test-and-validate-amp)
|
28
28
|
* [Usage](#usage)
|
29
|
+
* [Views](#views)
|
30
|
+
* [Controllers](#controllers)
|
29
31
|
* [SplitView](#splitview)
|
30
32
|
* [Guides](#guides)
|
33
|
+
* [Getting started](#getting-started)
|
34
|
+
* [Utilizing features](#utilizing-features)
|
35
|
+
* [Essentials](#essentials)
|
36
|
+
* [Powerful features](#powerful-features)
|
37
|
+
* [Testing](#testing)
|
31
38
|
* [Components](#components)
|
32
39
|
* [Configuration](#configuration)
|
33
40
|
* [To Do](#to-do)
|
@@ -40,7 +47,7 @@ Use the powerful features of AMP to make your Rails app consistently fast, beaut
|
|
40
47
|
|
41
48
|
### Quick info
|
42
49
|
|
43
|
-
#### Latest release: 1.0.
|
50
|
+
#### Latest release: 1.0.1
|
44
51
|
|
45
52
|
[**Changelog**](CHANGELOG.md), [Grab it from Rubygems](https://rubygems.org/gems/amp-html)
|
46
53
|
|
@@ -121,16 +128,77 @@ Lastly, make sure to remove Turbolinks from your apps asset pipeline (`app/asset
|
|
121
128
|
|
122
129
|
## Usage
|
123
130
|
|
131
|
+
### Views
|
132
|
+
|
133
|
+
You can check whether your document is using AMP or not by using the `amp?` method:
|
134
|
+
|
135
|
+
```haml
|
136
|
+
- if amp?
|
137
|
+
= component 'amp/mustache' do
|
138
|
+
-# ...
|
139
|
+
```
|
140
|
+
|
141
|
+
**Note:** This method is also available at controller level.
|
142
|
+
|
143
|
+
When you are using [SplitView](#splitview) along with media/form/etc. elements, you don't have to use `amp?` to render the appropriate element. amp-html automatically overrides the default Rails helpers if your document is using AMP.
|
144
|
+
|
145
|
+
### Controllers
|
146
|
+
|
147
|
+
If you are using [SplitView](#splitview), you are able to override the default format (`html`/`amp`) by passing the `amp` parameter. However in a lot of cases you want to specify the format from within the path of the URL:
|
148
|
+
|
149
|
+
```ruby
|
150
|
+
class PostsController < ApplicationController
|
151
|
+
|
152
|
+
def index
|
153
|
+
amp_path # to use `'amp'` as path
|
154
|
+
amp_path 'custom-path' # to use `'custom-path'` as path
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
```
|
159
|
+
|
160
|
+
You are also able to manually enable or disable AMP for a specific controller action:
|
161
|
+
|
162
|
+
```ruby
|
163
|
+
class PostsController < ApplicationController
|
164
|
+
|
165
|
+
def index
|
166
|
+
amp # to enable AMP
|
167
|
+
amp = false # to disable AMP
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
171
|
+
```
|
172
|
+
|
124
173
|
### SplitView
|
125
174
|
|
175
|
+
SplitView allows you to serve `html` and `amp` versions of your views. To get started, enable and configure SplitView:
|
176
|
+
|
177
|
+
```ruby
|
178
|
+
AmpHtml.configure do |config|
|
179
|
+
config.split_view = true
|
180
|
+
config.split_view_default = 'amp'
|
181
|
+
end
|
182
|
+
```
|
183
|
+
|
184
|
+
Now you can use amp-html's [view](#views) and [controller](#controllers) methods to determine whether a document uses `html` or `amp` as format.
|
185
|
+
|
126
186
|
---
|
127
187
|
|
128
188
|
## Guides
|
129
189
|
|
190
|
+
Whether you are just getting started or you are looking to implement some of the powerful features of amp-html, the guides in the amp-html wiki are here to your rescue.
|
191
|
+
|
192
|
+
https://github.com/jonhue/amp-html/wiki/Guides
|
193
|
+
|
130
194
|
---
|
131
195
|
|
132
196
|
## Components
|
133
197
|
|
198
|
+
amp-html is component based. You can learn more about components and find the full reference in the amp-html wiki.
|
199
|
+
|
200
|
+
https://github.com/jonhue/amp-html/wiki/Docs
|
201
|
+
|
134
202
|
---
|
135
203
|
|
136
204
|
## Configuration
|
@@ -21,5 +21,13 @@ module AmpHtml
|
|
21
21
|
return File.binread(File.join(Rails.application.assets_manifest.dir, asset))
|
22
22
|
end
|
23
23
|
|
24
|
+
def amp= value = true
|
25
|
+
params[:amp] = value
|
26
|
+
end
|
27
|
+
|
28
|
+
def amp_path scope = 'amp'
|
29
|
+
params[:amp] = true if request.fullpath.include?("/#{scope}")
|
30
|
+
end
|
31
|
+
|
24
32
|
end
|
25
33
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<% if options[:components]&.include? :
|
1
|
+
<% if options[:components]&.include? :audio %><script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>
|
2
|
+
<% elsif options[:components]&.include? :font %><script async custom-element="amp-font" src="https://cdn.ampproject.org/v0/amp-font-0.1.js"></script>
|
3
|
+
<% elsif options[:components]&.include? :form %><script async custom-element="amp-form" src="https://cdn.ampproject.org/v0/amp-form-0.1.js"></script>
|
2
4
|
<% elsif options[:components]&.include? :mustache %><script async custom-template="amp-mustache" src="https://cdn.ampproject.org/v0/amp-mustache-0.1.js"></script>
|
3
5
|
<% elsif options[:components]&.include? :selector %><script async custom-element="amp-selector" src="https://cdn.ampproject.org/v0/amp-selector-0.1.js"></script>
|
4
|
-
<% elsif options[:components]&.include? :
|
5
|
-
<% elsif options[:components]&.include? :video %><script async custom-element="amp-video" src="https://cdn.ampproject.org/v0/amp-video-0.1.js"></script>
|
6
|
-
<% elsif options[:components]&.include? :font %><script async custom-element="amp-font" src="https://cdn.ampproject.org/v0/amp-font-0.1.js"></script><% end %>
|
6
|
+
<% elsif options[:components]&.include? :video %><script async custom-element="amp-video" src="https://cdn.ampproject.org/v0/amp-video-0.1.js"></script><% end %>
|
@@ -1,2 +1 @@
|
|
1
|
-
<%= content_tag 'amp-font', options
|
2
|
-
<% end %>
|
1
|
+
<%= content_tag 'amp-font', options %>
|
@@ -1 +1 @@
|
|
1
|
-
<%=
|
1
|
+
<%= content_tag 'amp-img', options %>
|
data/lib/amp-html/railtie.rb
CHANGED
@@ -12,16 +12,20 @@ module AmpHtml
|
|
12
12
|
config.define_component 'amp/doctype'
|
13
13
|
config.define_component 'amp/amp-link', rel: 'amphtml' do |options|
|
14
14
|
return false unless AmpHtml.configuration.split_view
|
15
|
-
|
15
|
+
href = options[:href].split('?').first
|
16
16
|
unless AmpHtml.configuration.split_view_default == 'amp'
|
17
|
-
options[:href]
|
17
|
+
options[:href] ||= "#{href}?#{{ amp: true }.to_query}"
|
18
|
+
else
|
19
|
+
options[:href] ||= href
|
18
20
|
end
|
19
21
|
end
|
20
22
|
config.define_component 'amp/canonical-link', rel: 'canonical' do |options|
|
21
23
|
return false unless AmpHtml.configuration.split_view
|
22
|
-
|
24
|
+
href = options[:href].split('?').first
|
23
25
|
if AmpHtml.configuration.split_view_default == 'amp'
|
24
|
-
options[:href]
|
26
|
+
options[:href] ||= "#{href}?#{{ amp: false }.to_query}"
|
27
|
+
else
|
28
|
+
options[:href] ||= href
|
25
29
|
end
|
26
30
|
end
|
27
31
|
config.define_component 'amp/head'
|
data/lib/amp-html/version.rb
CHANGED
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.0
|
4
|
+
version: 1.1.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-
|
11
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|