amp-html 1.0.1 → 1.1.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 +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
|