This post was originally published at AMP ⚡ using Gatsby.
I created gatsby plugin (called gatsby-plugin-html2amp) for generating AMP (Accelerated Mobile Pages). I try to explain how to use it.
It’s easy to use 😁
Prepare Gatsby blog
$ npm install --global gatsby-cli $ gatsby new gatsby-blog https://github.com/gatsbyjs/gatsby-starter-blog
then check the blog
$ cd gatsby-blog $ npm start # Access http://localhost:8000
Make it AMP !
Add plugin
$ npm install --save gatsby-plugin-html2amp
Set plugin configuration to gatsby-config.js
at bottom of file.
{ resolve: 'gatsby-plugin-html2amp', options: { files: ['**/*.html'], dist: 'public/amp' } }
Modify blog post template
To make your post page valid as AMP add canonical
in <head>
src/templates/blog-post.js
export const pageQuery = graphql` query BlogPostBySlug($slug: String!) { site { siteMetadata { title author } } markdownRemark(fields: { slug: { eq: $slug } }) { id excerpt html fields { // ⚡ Add this fields.slug into Graphql slug } frontmatter { title date(formatString: "MMMM DD, YYYY") } } } `
then add canonical
src/templates/blog-post.js
<Helmet htmlAttributes={{ lang: 'en' }} meta={[{ name: 'description', content: siteDescription }]} title={`${post.frontmatter.title} | ${siteTitle}`}> <link rel="canonical" href={`${post.fields.slug}`} /> // ⚡ Add canonical </Helmet>
Generate
$ npm run build
Now you can see AMP source at public/amp
⚡
Top comments (1)