Обзор стартового кода
Прежде чем мы начнем добавлять код, рассмотрим в качестве примера страницу article.amp.html, которая имеет следующий вид:
<!DOCTYPE html>
<html ⚡ lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<link rel="canonical" href="/article.html" />
<link rel="shortcut icon" href="amp_favicon.png" />
<title>News Article</title>
<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
>
<style amp-custom>
body {
width: auto;
margin: 0;
padding: 0;
}
header {
background: tomato;
color: white;
font-size: 2em;
text-align: center;
}
h1 {
margin: 0;
padding: 0.5em;
background: white;
box-shadow: 0px 3px 5px grey;
}
p {
padding: 0.5em;
margin: 0.5em;
}
</style>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/my-article.html"
},
"headline": "My First AMP Article",
"image": {
"@type": "ImageObject",
"url": "https://example.com/article_thumbnail1.jpg",
"height": 800,
"width": 800
},
"datePublished": "2015-02-05T08:00:00+08:00",
"dateModified": "2015-02-05T09:20:00+08:00",
"author": {
"@type": "Person",
"name": "John Doe"
},
"publisher": {
"@type": "Organization",
"name": "⚡ AMP Times",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/amptimes_logo.jpg",
"width": 600,
"height": 60
}
},
"description": "My first experience in an AMPlified world"
}
</script>
</head>
<body>
<header>News Site</header>
<article>
<h1>Article Name</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam egestas
tortor sapien, non tristique ligula accumsan eu.
</p>
<amp-img
src="mountains.jpg"
layout="responsive"
width="266"
height="150"
></amp-img>
</article>
</body>
</html>
Это простая AMP-страница, которая проходит как валидацию AMP, так и проверку структурированных данных schema.org. Если эта страница была развернута на новостном сайте, пользователи могут найти ее с помощью расширенных возможностей на страницах результатов поисковой системы (например, с помощью кольцевой галереи главных новостей в Поиске Google).
Активация AMP-валидатора
Прежде чем вносить изменения в страницу, давайте включим AMP-валидатор, чтобы мы знали, что работаем с корректно сформированным AMP HTML. Добавьте в свой URL следующий идентификатор фрагмента:
#development=1
Например:
http://localhost:8000/article.amp.html#development=1
Откройте консоль разработчика в Chrome (или в предпочитаемом вами браузере) и убедитесь, что в ней отсутствуют ошибки AMP.
- Расширение AMP Validator для Chrome
- Расширение AMP Validator для Opera
- Веб-интерфейс AMP-валидатора
- ... и многие другие
Дополнительные сведения см. в руководстве по валидации AMP-страниц.
Имитация мобильного опыта
Мы разрабатываем страницу для мобильного устройства, поэтому давайте смоделируем работу с мобильным устройством в инструментах разработчика вашего браузера. Например, в Chrome DevTools щелкните значок мобильного телефона и выберите мобильное устройство в меню.
Теперь мы можем приступить к работе над самой страницей. Давайте добавим на нашу страницу несколько компонентов AMP.