amp-html 0.7.7
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 +7 -0
- data/.github/issue_template.md +16 -0
- data/.github/pull_request_template.md +21 -0
- data/.gitignore +13 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +302 -0
- data/CONTRIBUTING.md +1 -0
- data/DEPRECATIONS.md +9 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +162 -0
- data/INSTALL.md +1 -0
- data/LICENSE +21 -0
- data/OWNERS.yaml +1 -0
- data/README.md +192 -0
- data/Rakefile +6 -0
- data/amp-html.gemspec +29 -0
- data/bin/amp-html +4 -0
- data/lib/amp_html.rb +27 -0
- data/lib/amp_html/cli.rb +113 -0
- data/lib/amp_html/components/docs/README.md +101 -0
- data/lib/amp_html/components/docs/ad.md +83 -0
- data/lib/amp_html/components/docs/analytics.md +131 -0
- data/lib/amp_html/components/docs/anim.md +66 -0
- data/lib/amp_html/components/docs/fonts.md +63 -0
- data/lib/amp_html/components/docs/forms.md +79 -0
- data/lib/amp_html/components/docs/iframe.md +62 -0
- data/lib/amp_html/components/docs/javascript.md +71 -0
- data/lib/amp_html/components/docs/lists.md +168 -0
- data/lib/amp_html/components/docs/media.md +52 -0
- data/lib/amp_html/components/docs/mustache.md +46 -0
- data/lib/amp_html/components/docs/notifications.md +0 -0
- data/lib/amp_html/components/docs/schema.md +80 -0
- data/lib/amp_html/components/docs/service_worker.md +60 -0
- data/lib/amp_html/components/docs/social.md +130 -0
- data/lib/amp_html/components/docs/stylesheets.md +50 -0
- data/lib/amp_html/components/help.rb +19 -0
- data/lib/amp_html/components/install.rb +34 -0
- data/lib/amp_html/components/templates/ERROR.md +5 -0
- data/lib/amp_html/components/templates/README.md +12 -0
- data/lib/amp_html/configuration.rb +170 -0
- data/lib/amp_html/configuration/docs/README.md +0 -0
- data/lib/amp_html/configuration/help.rb +11 -0
- data/lib/amp_html/helpers/docs/README.md +98 -0
- data/lib/amp_html/helpers/docs/amp.md +0 -0
- data/lib/amp_html/helpers/docs/amp_ad.md +86 -0
- data/lib/amp_html/helpers/docs/amp_analytics.md +76 -0
- data/lib/amp_html/helpers/docs/amp_anim.md +68 -0
- data/lib/amp_html/helpers/docs/amp_audio.md +54 -0
- data/lib/amp_html/helpers/docs/amp_auto_ads.md +43 -0
- data/lib/amp_html/helpers/docs/amp_close_user_notification_button.md +0 -0
- data/lib/amp_html/helpers/docs/amp_css.md +37 -0
- data/lib/amp_html/helpers/docs/amp_css_link.md +0 -0
- data/lib/amp_html/helpers/docs/amp_custom_ad.md +0 -0
- data/lib/amp_html/helpers/docs/amp_document_link.md +0 -0
- data/lib/amp_html/helpers/docs/amp_embed.md +86 -0
- data/lib/amp_html/helpers/docs/amp_facebook.md +70 -0
- data/lib/amp_html/helpers/docs/amp_fallback.md +47 -0
- data/lib/amp_html/helpers/docs/amp_font.md +0 -0
- data/lib/amp_html/helpers/docs/amp_font_link.md +0 -0
- data/lib/amp_html/helpers/docs/amp_form.md +0 -0
- data/lib/amp_html/helpers/docs/amp_form_response.md +0 -0
- data/lib/amp_html/helpers/docs/amp_gfycat.md +0 -0
- data/lib/amp_html/helpers/docs/amp_global_css.md +0 -0
- data/lib/amp_html/helpers/docs/amp_google_analytics.md +0 -0
- data/lib/amp_html/helpers/docs/amp_google_font.md +0 -0
- data/lib/amp_html/helpers/docs/amp_head.md +0 -0
- data/lib/amp_html/helpers/docs/amp_html_doctype.md +0 -0
- data/lib/amp_html/helpers/docs/amp_iframe.md +0 -0
- data/lib/amp_html/helpers/docs/amp_image.md +0 -0
- data/lib/amp_html/helpers/docs/amp_input.md +0 -0
- data/lib/amp_html/helpers/docs/amp_instagram.md +0 -0
- data/lib/amp_html/helpers/docs/amp_js.md +0 -0
- data/lib/amp_html/helpers/docs/amp_link.md +0 -0
- data/lib/amp_html/helpers/docs/amp_list.md +0 -0
- data/lib/amp_html/helpers/docs/amp_live_list.md +0 -0
- data/lib/amp_html/helpers/docs/amp_live_list_items.md +0 -0
- data/lib/amp_html/helpers/docs/amp_live_list_pagination.md +0 -0
- data/lib/amp_html/helpers/docs/amp_live_list_update.md +0 -0
- data/lib/amp_html/helpers/docs/amp_mustache.md +0 -0
- data/lib/amp_html/helpers/docs/amp_pin_it.md +0 -0
- data/lib/amp_html/helpers/docs/amp_pin_widget.md +0 -0
- data/lib/amp_html/helpers/docs/amp_pinterest_follow.md +0 -0
- data/lib/amp_html/helpers/docs/amp_pixel.md +0 -0
- data/lib/amp_html/helpers/docs/amp_placeholder.md +0 -0
- data/lib/amp_html/helpers/docs/amp_reddit.md +0 -0
- data/lib/amp_html/helpers/docs/amp_resources.md +0 -0
- data/lib/amp_html/helpers/docs/amp_selector.md +0 -0
- data/lib/amp_html/helpers/docs/amp_serviceworker.md +0 -0
- data/lib/amp_html/helpers/docs/amp_social_share.md +0 -0
- data/lib/amp_html/helpers/docs/amp_soundcloud.md +0 -0
- data/lib/amp_html/helpers/docs/amp_twitter.md +0 -0
- data/lib/amp_html/helpers/docs/amp_user_notification.md +0 -0
- data/lib/amp_html/helpers/docs/amp_video.md +0 -0
- data/lib/amp_html/helpers/docs/amp_video_ad.md +0 -0
- data/lib/amp_html/helpers/docs/amp_vine.md +0 -0
- data/lib/amp_html/helpers/docs/amp_youtube.md +0 -0
- data/lib/amp_html/helpers/docs/audio_tag.md +0 -0
- data/lib/amp_html/helpers/docs/canonical_document_link.md +0 -0
- data/lib/amp_html/helpers/docs/form_tag.md +0 -0
- data/lib/amp_html/helpers/docs/image_tag.md +0 -0
- data/lib/amp_html/helpers/docs/input_tag.md +0 -0
- data/lib/amp_html/helpers/docs/javascript_include_tag.md +0 -0
- data/lib/amp_html/helpers/docs/noscript_tag.md +0 -0
- data/lib/amp_html/helpers/docs/schema_tag.md +0 -0
- data/lib/amp_html/helpers/docs/stylesheet_link_tag.md +0 -0
- data/lib/amp_html/helpers/docs/video_tag.md +0 -0
- data/lib/amp_html/helpers/help.rb +23 -0
- data/lib/amp_html/root.rb +7 -0
- data/lib/amp_html/test.rb +169 -0
- data/lib/amp_html/test/help.rb +11 -0
- data/lib/amp_html/test/templates/README.md +43 -0
- data/lib/amp_html/test/templates/css/!important.md +1 -0
- data/lib/amp_html/test/templates/css/-amp-.md +1 -0
- data/lib/amp_html/test/templates/css/-moz-binding.md +1 -0
- data/lib/amp_html/test/templates/css/@import.md +1 -0
- data/lib/amp_html/test/templates/css/behavior.md +1 -0
- data/lib/amp_html/test/templates/css/filter.md +1 -0
- data/lib/amp_html/test/templates/css/i-amp-.md +1 -0
- data/lib/amp_html/test/templates/css/overflow.md +1 -0
- data/lib/amp_html/test/templates/html/applet.md +1 -0
- data/lib/amp_html/test/templates/html/audio.md +1 -0
- data/lib/amp_html/test/templates/html/base.md +1 -0
- data/lib/amp_html/test/templates/html/embed.md +1 -0
- data/lib/amp_html/test/templates/html/frame.md +1 -0
- data/lib/amp_html/test/templates/html/frameset.md +1 -0
- data/lib/amp_html/test/templates/html/http-equiv.md +1 -0
- data/lib/amp_html/test/templates/html/iframe.md +1 -0
- data/lib/amp_html/test/templates/html/img.md +1 -0
- data/lib/amp_html/test/templates/html/javascript_include_tag.md +1 -0
- data/lib/amp_html/test/templates/html/object.md +1 -0
- data/lib/amp_html/test/templates/html/onclick.md +1 -0
- data/lib/amp_html/test/templates/html/onmousehover.md +1 -0
- data/lib/amp_html/test/templates/html/param.md +1 -0
- data/lib/amp_html/test/templates/html/stylesheet_link_tag.md +1 -0
- data/lib/amp_html/test/templates/html/video.md +1 -0
- data/lib/amp_html/test/templates/markup/!doctype.md +1 -0
- data/lib/amp_html/test/templates/markup/amp_document_link.md +1 -0
- data/lib/amp_html/test/templates/markup/amp_head.md +1 -0
- data/lib/amp_html/test/templates/markup/amp_html_doctype.md +1 -0
- data/lib/amp_html/test/templates/markup/canonical_document_link.md +1 -0
- data/lib/amp_html/test/templates/markup/head_body.md +1 -0
- data/lib/amp_html/test/templates/markup/html.md +1 -0
- data/lib/amp_html/test/templates/markup/meta_viewport.md +1 -0
- data/lib/amp_html/validate.rb +46 -0
- data/lib/amp_html/validate/help.rb +11 -0
- data/lib/amp_html/validate/templates/README.md +32 -0
- data/lib/amp_html/version.rb +13 -0
- data/lib/generators/amphtml/assets_generator.rb +31 -0
- data/lib/generators/amphtml/bundle_generator.rb +50 -0
- data/lib/generators/amphtml/components_generator.rb +84 -0
- data/lib/generators/amphtml/helpers_generator.rb +32 -0
- data/lib/generators/amphtml/install_generator.rb +53 -0
- data/lib/generators/amphtml/views_generator.rb +62 -0
- data/lib/generators/templates/assets/README.md +0 -0
- data/lib/generators/templates/assets/stylesheets/application.scss +15 -0
- data/lib/generators/templates/components/README.md +0 -0
- data/lib/generators/templates/components/assets/javascripts/application.js +15 -0
- data/lib/generators/templates/components/helpers/ad_tag_helper.rb +83 -0
- data/lib/generators/templates/components/helpers/analytics_tag_helper.rb +30 -0
- data/lib/generators/templates/components/helpers/anim_tag_helper.rb +42 -0
- data/lib/generators/templates/components/helpers/iframe_tag_helper.rb +27 -0
- data/lib/generators/templates/components/helpers/javascript_tag_helper.rb +12 -0
- data/lib/generators/templates/components/helpers/lists_tag_helper.rb +82 -0
- data/lib/generators/templates/components/helpers/notification_tag_helper.rb +16 -0
- data/lib/generators/templates/components/helpers/serviceworker_tag_helper.rb +15 -0
- data/lib/generators/templates/components/helpers/social_tag_helper.rb +228 -0
- data/lib/generators/templates/components/public/remote.html +28 -0
- data/lib/generators/templates/components/views/_components.html.erb +141 -0
- data/lib/generators/templates/components/views/_google_analytics.html.erb +23 -0
- data/lib/generators/templates/helpers/README.md +1 -0
- data/lib/generators/templates/helpers/amp/fallback_tag_helper.rb +16 -0
- data/lib/generators/templates/helpers/amp/font_tag_helper.rb +37 -0
- data/lib/generators/templates/helpers/amp/link_tag_helper.rb +11 -0
- data/lib/generators/templates/helpers/amp/mustache_tag_helper.rb +13 -0
- data/lib/generators/templates/helpers/amp/noscript_tag_helper.rb +13 -0
- data/lib/generators/templates/helpers/amp/placeholder_tag_helper.rb +16 -0
- data/lib/generators/templates/helpers/amp/schema_tag_helper.rb +16 -0
- data/lib/generators/templates/helpers/amp/stylesheets_tag_helper.rb +21 -0
- data/lib/generators/templates/helpers/amp_tag_helper.rb.erb +65 -0
- data/lib/generators/templates/helpers/asset_tag_helper.rb.erb +119 -0
- data/lib/generators/templates/helpers/form_tag_helper.rb.erb +79 -0
- data/lib/generators/templates/install/README.md +1 -0
- data/lib/generators/templates/install/amphtml.rb.erb +19 -0
- data/lib/generators/templates/install/amphtml.yml.erb +189 -0
- data/lib/generators/templates/views/README.md +1 -0
- data/lib/generators/templates/views/application.html.erb +71 -0
- data/lib/generators/templates/views/application/_head.html.erb +47 -0
- data/lib/generators/templates/views/application/_resources.html.erb +16 -0
- data/lib/generators/templates/views/application/_schema.html.erb +6 -0
- data/lib/generators/templates/views/config/mime_types.rb +8 -0
- metadata +294 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
|
|
2
|
+
# [Components](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs) / Social BETA
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Information
|
|
6
|
+
|
|
7
|
+
The AMP-HTML Social Component allows to embed content of various social-platforms and more in an AMP document.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
### Quick info
|
|
12
|
+
|
|
13
|
+
#### Latest component release: 0.7.0 (Pre-release) - 2017-03-21
|
|
14
|
+
|
|
15
|
+
[**Changelog for version 0.7.0**](https://github.com/slooob/amp-html/blob/master/CHANGELOG.md#070-pre-release---2017-03-21)
|
|
16
|
+
|
|
17
|
+
#### Requirements
|
|
18
|
+
|
|
19
|
+
The Social Component does not depend on any other components.
|
|
20
|
+
|
|
21
|
+
#### Dependents
|
|
22
|
+
|
|
23
|
+
No other components depend on the Social Component.
|
|
24
|
+
|
|
25
|
+
#### [DeepIntegration](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs#deepintegration-components): Enabled
|
|
26
|
+
|
|
27
|
+
#### [Availability](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs#availability-of-components): Installable
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
Run in the command line:
|
|
34
|
+
|
|
35
|
+
amp-html install social
|
|
36
|
+
|
|
37
|
+
Now you are ready to use the Social Component.
|
|
38
|
+
|
|
39
|
+
To learn more about this component, without opening the documentation, run:
|
|
40
|
+
|
|
41
|
+
amp-html component social
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
## Configuration
|
|
45
|
+
|
|
46
|
+
The Social Component allows you to specify a default provider for your app.
|
|
47
|
+
|
|
48
|
+
In your AMP-HTML configuration (`config/amp-html.yml`) search for the section of the Social Component.
|
|
49
|
+
|
|
50
|
+
There you can set your default network like so:
|
|
51
|
+
|
|
52
|
+
default_provider: twitter
|
|
53
|
+
|
|
54
|
+
You can always override this provider default by passing a different provider to your social integration in your view.
|
|
55
|
+
|
|
56
|
+
A list of all by AMP preconfigured providers: https://github.com/ampproject/amp-html/blob/master/extensions/amp-social-share/0.1/amp-social-share-config.js
|
|
57
|
+
|
|
58
|
+
To use a provider that is not preconfigured by AMP, specify the default_data_share_endpoint:
|
|
59
|
+
|
|
60
|
+
default_provider: whatsapp
|
|
61
|
+
default_data_share_endpoint: whatsapp://send
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## Usage
|
|
65
|
+
|
|
66
|
+
**The AMP-HTML Social Component introduces a lot of seperate helpers. To take a look at the functionality of each of them, take a look at their references, lnked below.**
|
|
67
|
+
|
|
68
|
+
### Examples: Embed a Tweet
|
|
69
|
+
|
|
70
|
+
You can embed a tweet like so:
|
|
71
|
+
|
|
72
|
+
<%= amp_twitter(tweet_id) %>
|
|
73
|
+
<%= amp_twitter("585110598171631616", width: 486, height: 657, data: { cards: "hidden" }) %>
|
|
74
|
+
|
|
75
|
+
It also takes a block:
|
|
76
|
+
|
|
77
|
+
<%= amp_twitter("585110598171631616", width: 486, height: 657, data: { cards: "hidden" }) do %>
|
|
78
|
+
<%= amp_placeholder("blockquote", class: "twitter-tweet" data: { lang: "en" }) do %>
|
|
79
|
+
<p lang="en" dir="ltr">The story how I became what some people would call a frontend engineer and an exploration into what that even means<a href="https://t.co/HrVz4cGMWG">https://t.co/HrVz4cGMWG</a></p>— Malte Ubl (@cramforce) <a href="https://twitter.com/cramforce/status/585110598171631616">April 6, 2015</a>
|
|
80
|
+
<% end %>
|
|
81
|
+
<% end %>
|
|
82
|
+
|
|
83
|
+
Learn more about the `amp_twitter` helper in the dedicated reference linked below.
|
|
84
|
+
|
|
85
|
+
**References:** [`amp_placeholder`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_placeholder.md)
|
|
86
|
+
|
|
87
|
+
### Examples: Social Share
|
|
88
|
+
|
|
89
|
+
It is that easy to create a social share button:
|
|
90
|
+
|
|
91
|
+
<%= amp_social_share(type) %>
|
|
92
|
+
<%= amp_social_share("twitter") %>
|
|
93
|
+
|
|
94
|
+
It assumes that the current document canonical url is the URL you want to share and the page title is the text you want to share.
|
|
95
|
+
|
|
96
|
+
When you want to pass parameters to the share endpoint, you can specify `data-param-<attribute>` that will be appended to the share endpoint.
|
|
97
|
+
|
|
98
|
+
<%= amp_social_share("linkedin", width: "60", height: "44", data: { param: { text: "Hello world", url: "https://railsamp.com/" } }) %>
|
|
99
|
+
|
|
100
|
+
If the provider is not preconfigured ([preconfigured providers](https://github.com/ampproject/amp-html/blob/master/extensions/amp-social-share/0.1/amp-social-share-config.js)):
|
|
101
|
+
|
|
102
|
+
<%= amp_social_share("whatsapp", width: "60", height: "44", data: { share: { endpoint: "whatsapp://send" } param: { text: "Check out this article: TITLE - CANONICAL_URL" } }) %>
|
|
103
|
+
|
|
104
|
+
It also takes a block:
|
|
105
|
+
|
|
106
|
+
<%= amp_social_share("whatsapp", width: "60", height: "44", data: { share: { endpoint: "whatsapp://send" } param: { text: "Check out this article: TITLE - CANONICAL_URL" } }) do %>
|
|
107
|
+
Share on Whatsapp
|
|
108
|
+
<% end %>
|
|
109
|
+
|
|
110
|
+
Learn more about the `amp_social_share` helper in the dedicated reference linked below.
|
|
111
|
+
|
|
112
|
+
**References:** [AMP HTML URL Variable Substitutions](https://github.com/ampproject/amp-html/blob/master/spec/amp-var-substitutions.md)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### Helpers
|
|
116
|
+
|
|
117
|
+
The following helpers are usable with the Social Component of AMP-HTML
|
|
118
|
+
|
|
119
|
+
* [`amp_twitter`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_twitter.md)
|
|
120
|
+
* [`amp_instagram`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_instagram.md)
|
|
121
|
+
* [`amp_facebook`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_facebook.md)
|
|
122
|
+
* [`amp_youtube`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_youtube.md)
|
|
123
|
+
* [`amp_reddit`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_reddit.md)
|
|
124
|
+
* [`amp_social_share`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_social_share.md)
|
|
125
|
+
* [`amp_soundcloud`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_soundcloud.md)
|
|
126
|
+
* [`amp_vine`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_vine.md)
|
|
127
|
+
* [`amp_gfycat`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_gfycat.md)
|
|
128
|
+
* [`amp_pin_it`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pin_it.md)
|
|
129
|
+
* [`amp_pin_widget`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pin_widget.md)
|
|
130
|
+
* [`amp_pinterest_follow`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pinterest_follow.md)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
|
|
2
|
+
# [Components](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs) / Stylesheets
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Information
|
|
6
|
+
|
|
7
|
+
The AMP-HTML Stylesheets Component allows the use of stylesheets in AMP documents.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
### Quick info
|
|
12
|
+
|
|
13
|
+
#### Latest component release: 0.6.1 (Pre-release) - 2017-03-19
|
|
14
|
+
|
|
15
|
+
[**Changelog for version 0.6.1**](https://github.com/slooob/amp-html/blob/master/CHANGELOG.md#061-pre-release---2017-03-19)
|
|
16
|
+
|
|
17
|
+
#### Requirements
|
|
18
|
+
|
|
19
|
+
The Stylesheets Component does not depend on any other components.
|
|
20
|
+
|
|
21
|
+
#### Dependents
|
|
22
|
+
|
|
23
|
+
No other components depend on the Stylesheets Component.
|
|
24
|
+
|
|
25
|
+
#### [DeepIntegration](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs#deepintegration-components): Disabled
|
|
26
|
+
|
|
27
|
+
#### [Availability](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs#availability-of-components): Build-in
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
By default every stylesheet (`.scss`) file inside of your `app/assets/stylesheets/amp` (depending on your AMP-HTML configuration) directory is included in your application layout.
|
|
34
|
+
|
|
35
|
+
You can include some view specific styles utilizing the `amp_css` helper in your `<head>` tag:
|
|
36
|
+
|
|
37
|
+
<%= amp_css do %>
|
|
38
|
+
/* Your CSS here */
|
|
39
|
+
<% end %>
|
|
40
|
+
|
|
41
|
+
For a detailed reference on the `amp_css` helper, follow the link below.
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Helpers
|
|
45
|
+
|
|
46
|
+
The following helpers are usable with the Stylesheets Component of AMP-HTML
|
|
47
|
+
|
|
48
|
+
* [`amp_css`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_css.md)
|
|
49
|
+
* [`amp_css_link` (in development)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_css_link.md)
|
|
50
|
+
* [`amp_global_css` (deprecated)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_global_css.md)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module AmpHtml
|
|
2
|
+
module Components
|
|
3
|
+
class Help
|
|
4
|
+
|
|
5
|
+
def self.all
|
|
6
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'docs', 'README.md'
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def self.component name
|
|
10
|
+
begin
|
|
11
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'docs', "#{name}.md"
|
|
12
|
+
rescue Exception
|
|
13
|
+
warn 'Component is not available'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module AmpHtml
|
|
2
|
+
module Components
|
|
3
|
+
|
|
4
|
+
COMPONENTS = ['analytics', 'iframe', 'notifications', 'anim', 'ad', 'social', 'javascript', 'service_worker', 'lists']
|
|
5
|
+
|
|
6
|
+
class Install
|
|
7
|
+
|
|
8
|
+
def self.bundle
|
|
9
|
+
success1 = system "rails g amp-html:components#{ ' -s' if AmpHtml.split_view }#{ ' -f ' + AmpHtml.raw_format if AmpHtml.raw_format }#{ ' --analytics' if AmpHtml.components && AmpHtml.components.include?('analytics') || AmpHtml.components && AmpHtml.components.include?('notifications') }#{ ' --iframe' if AmpHtml.components && AmpHtml.components.include?('iframe') || AmpHtml.components && AmpHtml.components.include?('javascript') || AmpHtml.components && AmpHtml.components.include?('service_worker') }#{' --notifications' if AmpHtml.components && AmpHtml.components.include?('notifications') }#{ ' --anim' if AmpHtml.components && AmpHtml.components.include?('anim') }#{ ' --ad' if AmpHtml.components && AmpHtml.components.include?('ad') }#{ ' --social' if AmpHtml.components && AmpHtml.components.include?('social') }#{ ' --javascript' if (AmpHtml.components && AmpHtml.components.include?('javascript')) }#{ ' --service_worker' if (AmpHtml.components && AmpHtml.components.include?('service_worker')) }#{ ' --lists' if (AmpHtml.components && AmpHtml.components.include?('lists')) }"
|
|
10
|
+
success2 = system "rails g amp-html:install --only_initializer#{ ' --javascript' if (AmpHtml.components && AmpHtml.components.include?('javascript')) }"
|
|
11
|
+
if success1 && success2
|
|
12
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'templates', 'README.md'
|
|
13
|
+
else
|
|
14
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'templates', 'ERROR.md'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.install component
|
|
19
|
+
if COMPONENTS.include? component
|
|
20
|
+
success1 = system "rails g amp-html:install#{ ' -s' if AmpHtml.split_view }#{ ' -f ' + AmpHtml.raw_format if AmpHtml.raw_format }#{ ' --analytics' if (AmpHtml.components && AmpHtml.components.include?('analytics')) || AmpHtml.components && AmpHtml.components.include?('notifications') || component == 'analytics' || component == 'notifications' }#{ ' --iframe' if (AmpHtml.components && AmpHtml.components.include?('iframe')) || AmpHtml.components && AmpHtml.components.include?('javascript') || AmpHtml.components && AmpHtml.components.include?('service_worker') || component == 'iframe' || component == 'javascript' || component == 'service_worker' }#{' --notifications' if (AmpHtml.components && AmpHtml.components.include?('notifications')) || component == 'notifications' }#{ ' --anim' if (AmpHtml.components && AmpHtml.components.include?('anim')) || component == 'anim' }#{ ' --ad' if (AmpHtml.components && AmpHtml.components.include?('ad')) || component == 'ad' }#{ ' --social' if (AmpHtml.components && AmpHtml.components.include?('social')) || component == 'social' }#{ ' --javascript' if (AmpHtml.components && AmpHtml.components.include?('javascript')) || component == 'javascript' }#{ ' --service_worker' if (AmpHtml.components && AmpHtml.components.include?('service_worker')) || component == 'service_worker' }#{ ' --lists' if (AmpHtml.components && AmpHtml.components.include?('lists')) || component == 'lists' }"
|
|
21
|
+
success2 = system "rails g amp-html:components#{ ' -s' if AmpHtml.split_view }#{ ' -f ' + AmpHtml.raw_format if AmpHtml.raw_format }#{ ' --analytics' if (AmpHtml.components && AmpHtml.components.include?('analytics')) || AmpHtml.components && AmpHtml.components.include?('notifications') || component == 'analytics' || component == 'notifications' }#{ ' --iframe' if (AmpHtml.components && AmpHtml.components.include?('iframe')) || AmpHtml.components && AmpHtml.components.include?('javascript') || AmpHtml.components && AmpHtml.components.include?('service_worker') || component == 'iframe' || component == 'javascript' || component == 'service_worker' }#{' --notifications' if (AmpHtml.components && AmpHtml.components.include?('notifications')) || component == 'notifications' }#{ ' --anim' if (AmpHtml.components && AmpHtml.components.include?('anim')) || component == 'anim' }#{ ' --ad' if (AmpHtml.components && AmpHtml.components.include?('ad')) || component == 'ad' }#{ ' --social' if (AmpHtml.components && AmpHtml.components.include?('social')) || component == 'social' }#{ ' --javascript' if (AmpHtml.components && AmpHtml.components.include?('javascript')) || component == 'javascript' }#{ ' --service_worker' if (AmpHtml.components && AmpHtml.components.include?('service_worker')) || component == 'service_worker' }#{ ' --lists' if (AmpHtml.components && AmpHtml.components.include?('lists')) || component == 'lists' }"
|
|
22
|
+
success3 = system "rails g amp-html:views --only_resources#{ ' --javascript' if (AmpHtml.components && AmpHtml.components.include?('javascript')) || component == 'javascript' }"
|
|
23
|
+
if success1 && success2 && success3
|
|
24
|
+
puts "Successfully installed '#{component}' component!"
|
|
25
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'templates', 'README.md'
|
|
26
|
+
else
|
|
27
|
+
puts IO.read File.join AmpHtml.root, 'amp_html', 'components', 'templates', 'ERROR.md'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
**Your installation of AMP-HTML components completed successfully!**
|
|
3
|
+
|
|
4
|
+
You can now use the components specified in `config/amp-html.yml`.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Learn more about AMP-HTML components: https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs
|
|
9
|
+
|
|
10
|
+
Get help: https://github.com/slooob/amp-html/issues
|
|
11
|
+
|
|
12
|
+
View guides: https://github.com/slooob/amp-html/wiki/Guides
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
module AmpHtml
|
|
2
|
+
|
|
3
|
+
def self.default_format
|
|
4
|
+
config = get_config
|
|
5
|
+
if config.key :default_format
|
|
6
|
+
config[:default_format]
|
|
7
|
+
else
|
|
8
|
+
'amp'
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
def self.raw_format
|
|
12
|
+
config = get_config
|
|
13
|
+
config[:default_format]
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def self.fallback_format
|
|
17
|
+
config = get_config
|
|
18
|
+
config[:fallback_format]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def self.components
|
|
23
|
+
config = get_config
|
|
24
|
+
if config.key :components
|
|
25
|
+
config[:components]
|
|
26
|
+
else
|
|
27
|
+
nil
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def self.split_view
|
|
33
|
+
config = get_config
|
|
34
|
+
if config.key :split_view
|
|
35
|
+
config[:split_view]
|
|
36
|
+
else
|
|
37
|
+
false
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def self.assets_only_amp
|
|
43
|
+
config = get_config
|
|
44
|
+
if config.key(:assets) && config[:assets].key :only_amp
|
|
45
|
+
config[:assets][:only_amp]
|
|
46
|
+
else
|
|
47
|
+
if AmpHtml.split_view
|
|
48
|
+
false
|
|
49
|
+
else
|
|
50
|
+
true
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def self.application_name
|
|
57
|
+
config = get_config
|
|
58
|
+
if config.key(:application) && config[:application].key :name
|
|
59
|
+
config[:application][:name]
|
|
60
|
+
else
|
|
61
|
+
Rails.application.class.parent
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
def self.application_type
|
|
65
|
+
config = get_config
|
|
66
|
+
if config.key(:application) && config[:application].key :type
|
|
67
|
+
config[:application][:type]
|
|
68
|
+
else
|
|
69
|
+
nil
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
def self.application_date_published
|
|
73
|
+
config = get_config
|
|
74
|
+
if config.key(:application) && config[:application].key :date_published
|
|
75
|
+
config[:application][:date_published]
|
|
76
|
+
else
|
|
77
|
+
DateTime.now
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
def self.application_image
|
|
81
|
+
config = get_config
|
|
82
|
+
if config.key(:application) && config[:application].key :image
|
|
83
|
+
config[:application][:image]
|
|
84
|
+
else
|
|
85
|
+
nil
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def self.forms_selector
|
|
91
|
+
config = get_config
|
|
92
|
+
if config.key(:forms) && config[:forms].key :amp_selector
|
|
93
|
+
config[:forms][:amp_selector]
|
|
94
|
+
else
|
|
95
|
+
false
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def self.analytics_default_vendor
|
|
101
|
+
config = get_config
|
|
102
|
+
if config.key(:analytics) && config[:analytics].key :default_vendor
|
|
103
|
+
config[:analytics][:default_vendor]
|
|
104
|
+
else
|
|
105
|
+
nil
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
def self.google_analytics_account
|
|
110
|
+
config = get_config
|
|
111
|
+
if config.key(:analytics) && config[:analytics].key(:google_analytics) && config[:analytics][:google_analytics].key :account
|
|
112
|
+
config[:analytics][:google_analytics][:account]
|
|
113
|
+
else
|
|
114
|
+
nil
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def self.ad_default_network
|
|
120
|
+
config = get_config
|
|
121
|
+
if config.key(:ad) && config[:ad].key :default_network
|
|
122
|
+
config[:ad][:default_network]
|
|
123
|
+
else
|
|
124
|
+
nil
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def self.auto_ads_default_network
|
|
129
|
+
config = get_config
|
|
130
|
+
if config.key(:ad) && config[:ad].key(:auto_ads) && config[:ad][:auto_ads].key :default_network
|
|
131
|
+
config[:ad][:auto_ads][:default_network]
|
|
132
|
+
else
|
|
133
|
+
nil
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def self.social_share_default_provider
|
|
139
|
+
config = get_config
|
|
140
|
+
if config.key(:social) && config[:social].key(:share) && config[:social][:share].key :default_provider
|
|
141
|
+
config[:social][:share][:default_provider]
|
|
142
|
+
else
|
|
143
|
+
nil
|
|
144
|
+
end
|
|
145
|
+
end
|
|
146
|
+
def self.social_share_default_data_share_endpoint
|
|
147
|
+
config = get_config
|
|
148
|
+
if config.key(:social) && config[:social].key(:share) && config[:social][:share].key :default_data_share_endpoint
|
|
149
|
+
config[:social][:share][:default_data_share_endpoint]
|
|
150
|
+
else
|
|
151
|
+
nil
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
private
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def self.get_config
|
|
160
|
+
require 'yaml'
|
|
161
|
+
|
|
162
|
+
begin
|
|
163
|
+
YAML.load_file('config/amp-html.yml')
|
|
164
|
+
rescue Exception
|
|
165
|
+
warn 'WARNING (AMP): You need to run `rails g amp-html:bundle` first.'
|
|
166
|
+
exit
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
|
|
2
|
+
# AMP-HTML Helpers
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## About Helpers
|
|
6
|
+
|
|
7
|
+
AMP-HTML helpers are an easy way to use AMP specific tags and features in your Ruby on Rails views.
|
|
8
|
+
|
|
9
|
+
### Takes a block?
|
|
10
|
+
|
|
11
|
+
Some helpers can "take a block", others cannot. If a helper can take a block, you can wrap it around of some other code-snippet:
|
|
12
|
+
|
|
13
|
+
<%= i_am_a_wrapper do %>
|
|
14
|
+
<%= i_am_inside_of_a_block %>
|
|
15
|
+
<% end %>
|
|
16
|
+
|
|
17
|
+
### DeepIntegration Helpers
|
|
18
|
+
|
|
19
|
+
DeepIntegration helpers are parts of a [DeepIntegration component](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs#deepintegration-components).
|
|
20
|
+
|
|
21
|
+
### Availability of Helpers
|
|
22
|
+
|
|
23
|
+
The availability of helpers summarizes whether a helper is included in the vanilla version of AMP-HTML or if it needs to be installed as a part of a [component](https://github.com/slooob/amp-html/tree/master/lib/amp-html/components/docs) in order to get used.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Helpers Reference
|
|
28
|
+
|
|
29
|
+
Take a look at the references of the helpers of AMP-HTML.
|
|
30
|
+
|
|
31
|
+
### Built-in
|
|
32
|
+
|
|
33
|
+
* [`amp_audio` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_audio.md)
|
|
34
|
+
* [`amp_css`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_css.md)
|
|
35
|
+
* [`amp_css_link` (in development)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_css_link.md)
|
|
36
|
+
* [`amp_document_link` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_document_link.md)
|
|
37
|
+
* [`amp_fallback` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_fallback.md)
|
|
38
|
+
* [`amp_font_link` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_font_link.md)
|
|
39
|
+
* [`amp_form_response` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_form_response.md)
|
|
40
|
+
* [`amp_form` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_form.md)
|
|
41
|
+
* [`amp_global_css` (deprecated)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_global_css.md)
|
|
42
|
+
* [`amp_google_font` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_google_font.md)
|
|
43
|
+
* [`amp_head`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_head.md)
|
|
44
|
+
* [`amp_html_doctype`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_html_doctype.md)
|
|
45
|
+
* [`amp_image` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_image.md)
|
|
46
|
+
* [`amp_input` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_input.md)
|
|
47
|
+
* [`amp_link` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_link.md)
|
|
48
|
+
* [`amp_placeholder` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_placeholder.md)
|
|
49
|
+
* [`amp_resources` (deprecated)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_resources.md)
|
|
50
|
+
* [`amp_selector` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_selector.md)
|
|
51
|
+
* [`amp_serviceworker` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_serviceworker.md)
|
|
52
|
+
* [`amp_video` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_video.md)
|
|
53
|
+
* [`amp?` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp.md)
|
|
54
|
+
* [`audio_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/audio_tag.md)
|
|
55
|
+
* [`canonical_document_link` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/canonical_document_link.md)
|
|
56
|
+
* [`form_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/form_tag.md)
|
|
57
|
+
* [`image_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/image_tag.md)
|
|
58
|
+
* [`input_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/input_tag.md)
|
|
59
|
+
* [`javascript_include_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/javascript_include_tag.md)
|
|
60
|
+
* [`noscript_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/noscript_tag.md)
|
|
61
|
+
* [`schema_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/schema_tag.md)
|
|
62
|
+
* [`stylesheet_link_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/stylesheet_link_tag.md)
|
|
63
|
+
* [`video_tag`](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/video_tag.md)
|
|
64
|
+
|
|
65
|
+
### Installable
|
|
66
|
+
|
|
67
|
+
* [`amp_ad` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_ad.md)
|
|
68
|
+
* [`amp_analytics` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_analytics.md)
|
|
69
|
+
* [`amp_anim` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_anim.md)
|
|
70
|
+
* [`amp_auto_ads` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_auto_ads.md)
|
|
71
|
+
* [`amp_close_user_notification_button` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_close_user_notification_button.md)
|
|
72
|
+
* [`amp_custom_ad` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_custom_ad.md)
|
|
73
|
+
* [`amp_embed` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_embed.md)
|
|
74
|
+
* [`amp_facebook` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_facebook.md)
|
|
75
|
+
* [`amp_font` (in development)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_font.md)
|
|
76
|
+
* [`amp_gfycat` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_gfycat.md)
|
|
77
|
+
* [`amp_google_analytics` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_google_analytics.md)
|
|
78
|
+
* [`amp_iframe` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_iframe.md)
|
|
79
|
+
* [`amp_instagram` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_instagram.md)
|
|
80
|
+
* [`amp_js` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_js.md)
|
|
81
|
+
* [`amp_list` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_list.md)
|
|
82
|
+
* [`amp_live_list_items` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_live_list_items.md)
|
|
83
|
+
* [`amp_live_list_pagination` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_live_list_pagination.md)
|
|
84
|
+
* [`amp_live_list_update` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_live_list_update.md)
|
|
85
|
+
* [`amp_live_list` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_live_list.md)
|
|
86
|
+
* [`amp_mustache` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_mustache.md)
|
|
87
|
+
* [`amp_pin_it` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pin_it.md)
|
|
88
|
+
* [`amp_pin_widget` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pin_widget.md)
|
|
89
|
+
* [`amp_pinterest_follow` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pinterest_follow.md)
|
|
90
|
+
* [`amp_pixel` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_pixel.md)
|
|
91
|
+
* [`amp_reddit` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_reddit.md)
|
|
92
|
+
* [`amp_social_share` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_social_share.md)
|
|
93
|
+
* [`amp_soundcloud` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_soundcloud.md)
|
|
94
|
+
* [`amp_twitter` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_twitter.md)
|
|
95
|
+
* [`amp_user_notification` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_user_notification.md)
|
|
96
|
+
* [`amp_video_ad` (in development)](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_video_ad.md)
|
|
97
|
+
* [`amp_vine` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_vine.md)
|
|
98
|
+
* [`amp_youtube` BETA](https://github.com/slooob/amp-html/blob/master/lib/amp-html/helpers/docs/amp_youtube.md)
|