利用Gatsby构建静态网站

星河之舟 2021-04-22 ⋅ 13 阅读

title: 使用 Gatsby 构建静态网站 date: 2022-05-10 excerpt: 本文将介绍如何使用 Gatsby 构建静态网站,并介绍如何丰富网站内容。


什么是 Gatsby?

Gatsby 是一个基于 React 的静态网站生成器,它可以帮助开发者快速构建高性能的静态网站。Gatsby 使用 GraphQL 查询语言来获取数据,可以轻松地从各种数据源(如 CMS、Markdown 文件、API 等)中提取数据并生成静态页面。

安装 Gatsby

要使用 Gatsby 构建静态网站,首先需要安装 Node.js 和 Gatsby 的命令行工具。打开命令行工具,运行以下命令进行安装:

npm install -g gatsby-cli

安装完成后,可以使用以下命令验证安装是否成功:

gatsby --version

创建新的 Gatsby 网站

使用 Gatsby 构建新的静态网站非常简单,只需要运行以下命令:

gatsby new my-website

该命令将创建一个名为 my-website 的新文件夹,并在其中初始化一个新的 Gatsby 网站。

进入新创建的文件夹:

cd my-website

在新的 Gatsby 网站中,你会找到一个名为 src 的文件夹,其中包含用于构建网站的源代码。

创建页面

要创建新页面,只需在 src/pages 目录下创建一个新的 .js.jsx 文件,例如 about.js。Gatsby 将自动将这些文件转换为可访问的页面。

// src/pages/about.js

import React from "react"

const AboutPage = () => {
  return (
    <div>
      <h1>About Us</h1>
      <p>Welcome to our website!</p>
    </div>
  )
}

export default AboutPage

保存并在浏览器中访问 http://localhost:8000/about,就可以看到新创建的页面了。

丰富网站内容

为了使网站内容更丰富多样,我们可以使用 Markdown 文件来创建文章或博客。首先,安装 Gatsby 的 Markdown 插件:

npm install gatsby-source-filesystem gatsby-transformer-remark

然后,在 Gatsby 的配置文件 gatsby-config.js 中添加以下插件配置:

// gatsby-config.js

module.exports = {
  plugins: [
    `gatsby-source-filesystem`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `posts`,
        path: `${__dirname}/src/posts/`,
      },
    },
    `gatsby-transformer-remark`,
  ],
}

现在,在 src/posts 目录下创建一个新的 Markdown 文件,例如 my-first-blog-post.md

---
title: My First Blog Post
date: 2022-05-10
---

欢迎阅读我的第一篇博客文章!这是使用 Gatsby 构建的静态网站。

Gatsby 将自动读取 Markdown 文件的内容,并将其转换为可在网站上访问的页面。

在页面组件中使用 Markdown 数据:

// src/pages/blog.js

import React from "react"
import { graphql } from "gatsby"

const BlogPage = ({ data }) => {
  const posts = data.allMarkdownRemark.edges

  return (
    <div>
      <h1>Blog</h1>
      {posts.map(({ node }) => (
        <div key={node.id}>
          <h2>{node.frontmatter.title}</h2>
          <p>{node.frontmatter.date}</p>
          <div dangerouslySetInnerHTML={{ __html: node.html }} />
        </div>
      ))}
    </div>
  )
}

export const query = graphql`
  query {
    allMarkdownRemark {
      edges {
        node {
          id
          frontmatter {
            title
            date(formatString: "YYYY-MM-DD")
          }
          html
        }
      }
    }
  }
`

export default BlogPage

通过上述代码,我们可以在 http://localhost:8000/blog 看到博客文章的列表。

构建静态网站

在完成网站开发后,可以使用以下命令构建静态网站:

gatsby build

构建完成后,可以将生成的静态文件部署到任何静态网页托管服务,如 NetlifyVercel


通过使用 Gatsby,我们可以快速构建高性能的静态网站,并且可以方便地通过 Markdown 文件等多种数据源丰富网站内容。希望本文能帮助你开始使用 Gatsby 构建自己的静态网站!


全部评论: 0

    我有话说: