使用 Gatsby 和 Netlify CMS 快速搭建静态网站

阅读时长 11 分钟读完

前言

在现代 Web 开发中,使用静态网站生成器(SSG)成为一种趋势,这些 SSG 工具能够帮助我们在无需后端服务器的情况下构建网站,从而使网站变得更快、更安全并且可伸缩性也更好。Gatsby 是其中一个流行的 SSG 的工具,其结合了 React、GraphQL 和其他 Web 技术,可以帮助我们创建高度优化的静态网站,并且与 Netlify CMS 结合使用,可以进一步增强其功能。

在本文中,我们将介绍如何使用 Gatsby 和 Netlify CMS 来快速搭建一个静态网站。这个网站有以下功能:

  • 响应式设计
  • 支持 Markdown 编写的博客文章
  • 简单易用的 CMS 管理系统
  • 支持 SEO 和社交分享

步骤一:安装 Gatsby

首先,我们需要安装 Gatsby。要安装 Gatsby,您需要先安装 Node.js 和 npm,可以在命令行中通过运行以下命令来测试是否安装成功:

如果您能够看到正确的版本号,说明安装成功了。然后,您可以通过以下命令来安装 Gatsby:

步骤二:创建一个 Gatsby 项目

现在您已经安装了 Gatsby CLI,接下来我们要创建一个新的 Gatsby 项目。您可以通过在终端中运行以下命令来创建一个新的 Gatsby 项目:

运行完毕后,进入 my-gatsby-project 目录并启动项目(该命令会自动在本地启动一个 Web 服务器):

然后打开浏览器,访问 http://localhost:8000/ ,应该会看到一个空的 Gatsby 网站。

步骤三:添加 Netlify CMS

现在,我们要为我们的 Gatsby 网站添加管理系统。Netlify CMS 可以让我们通过简单的用户界面来编辑内容,而且它是免费并且易于使用的。

要将 Netlify CMS 添加到 Gatsby 项目中,请按照以下步骤进行操作:

  1. 安装 Netlify CMS

    在项目根目录中安装 Netlify CMS:

  2. 配置 Gatsby 网站

    gatsby-config.js 中添加下面的配置:

    -- -------------------- ---- -------
    -------------- - -
      -- ---
      -------- -
        -- ---
        -
          -------- ----------------------------
          -------- -
            -- ------ --- --- ------- ----
            --------------------- -----
          --
        --
        -- ---
      --
      -- ---
    -
  3. 配置 Netlify

    在 Netlify 中设置您的新网站,并创建一个 CMS 身份验证提供程序。为此,请按照以下步骤进行操作:

    • 在 Netlify 新建项目,并将 Git 项目链接到 Netlify。
    • 然后转到 Settings -> Identity 并启用身份验证(请参阅 Netlify 文档)。
    • 最后,在 Identity 的 Services 下添加一个新的服务作为身份验证提供程序:选择“Git Gateway”并保存更改。

  4. 创建一个 CMS 配置文件

    在项目根目录下创建 static/admin/config.yml 文件,然后添加以下内容:

    -- -------------------- ---- -------
    --------
      ----- -----------
      ------- ----
    ------------- -----------------------
    -------------- -----------------
    ------------
      - ----- -------
        ------ -------
        ------- ---------------
        ------- ----
        -------
          - - ----- -------- ------ ------- -
          - - ----- ------- ------ ------- ------- ---------- -
          - - ----- ------- ------ ------- ------- ---------- -

    这个配置文件描述了我们 CMS 的设置,包括使用 git-gateway 作为 CMS 程序、使用主要分支、定义内容与存储的路径、创建的数据模板(例如 posts)和那些字段需要输入。

现在,当您访问您的 Gatsby 网站时,应该会看到一个链接到 CMS 的登录按钮。您登录后将能够添加、编辑和删除内容。

步骤四:创建博客文章

在这一步,我们将为我们的 Gatsby 网站添加博客文章,从而使其充实起来。我们将使用 Markdown 文件作为我们的博客文章格式。

  1. 创建博客文章

    在项目根目录下,创建一个名为 content/posts 的文件夹,然后在其中创建一个 Markdown 文件(例如 hello-gatsby.md),并将以下内容添加到文件中:

    您可以添加更多的博客文章,每个 Markdown 文件代表一篇博客文章。

  2. 显示博客文章

    在项目的 src/pages 目录下,创建一个名为 blog.js 的文件,并添加以下代码:

    -- -------------------- ---- -------
    ------ ----- ---- -------
    ------ - ------- - ---- --------
    
    ------ ------- -- ---- -- -- -
      ----- ----- - ----------------------------
    
      ------ -
        -----
          ------------- ---- -- -- -
            ----- ----- - ---------------------- -- ----------------
            ------ -
              ---- -----------------------
                ----
                  -------
                -----
                ---- -------------------------- ------- --------- -- --
              ------
            -
          ---
        ------
      -
    -
    
    ------ ----- ----- - --------
      ----- -
        ----------------------- - ------- --------------------- ------ ---- -- -
          ----- -
            ---- -
              -------
              ------ -
                ----
              -
              ----------- -
                ------------------ ----- --- ------
                -----
              -
              ----
            -
          -
        -
      -
    -

    这段代码将查询所有 Markdown 文件,并按日期排序。然后,它会将每篇博客文章的标题和正文显示在页面上。

  3. 创建博客文章页面

    为了让用户能够单独查看每篇博客文章,我们要创建一个页面,用于显示每篇文章的详细内容。

    src/templates 目录下创建一个名为 blog-post.js 的文件,并添加以下代码:

    -- -------------------- ---- -------
    ------ ----- ---- -------
    ------ - ------- - ---- --------
    
    ------ ------- -- ---- -- -- -
      ----- ---- - -------------------
    
      ------ -
        -----
          ---------------------------------
          ---- -------------------------- ------- --------- -- --
        ------
      -
    -
    
    ------ ----- ----- - --------
      ------------ -------- -
        ---------------------- - ----- - --- ----- - -- -
          ----
          ----------- -
            -----
            ------------------ ----- --- ------
          -
        -
      -
    -

    这段代码将查询特定的 Markdown 文件,并包含该文章的标题和正文的内容。

  4. 更改博客链接

    现在我们已经创建了博客文章的页面,我们需要将博客列表的链接指向这个新的页面。要在我们的 blog.js 中链接到每篇博客文章的详细页面,我们需要将每篇文章的链接添加到代码中。

    -- -------------------- ---- -------
    ------ - ---- - ---- --------
    
    -- ---
    
    ------------- ---- -- -- -
       ----- ----- - ---------------------- -- ----------------
       ------ -
         ---- -----------------------
           ----
             ----- ----------------------
               -------
             -------
           -----
           ---- -------------------------- ------- ------------ -- --
         ------
       -
    ---

    现在,每篇博客文章都应该有一个链接,可以让用户单独查看该文章。

步骤五:使用 CSS 样式美化网站

最后一步,我们要使用 CSS 样式为网站添加更多的样式。在 Gatsby 网站中,样式可以通过 CSS、Sass、less 和 styled-components 等方式来实现。在本文中,我们将使用 CSS 来为我们的网站添加样式。

  1. 添加全局样式

    在项目的 src 目录下创建名为 styles.css 的新文件,并添加以下代码:

    -- -------------------- ---- -------
    ---- -
      ----------------- --------
      ------- --
      -------- --
      ------------ ------ -----------
    -
    
    - -
      ------ --------
    -
    
    --- --- --- --- --- -- -
      ------------ -----
    -
    
    --- -
      ---------- -----
      ------- -----
    -

    这些代码将为我们的网站添加一些全局的样式,例如背景色、链接颜色、标题字体粗细、图片最大宽度等。

  2. 添加局部样式

    在您的 blog.jsblog-post.js 中,可以使用特定的 CSS 样式来美化博客列表和博客文章页面的显示效果。例如,您可以使用以下样式为博客列表添加渐变背景色:

    您可以在这两个文件中添加更多的 CSS 样式,以达到您想要的样式效果。

总结

使用 Gatsby 和 Netlify CMS,您可以快速地搭建出一个完整的静态网站,并且具有博客、CMS 管理、SEO 和社交分享等必要功能。本教程涵盖了所有的主要步骤,并提供了示例代码和相应的讲解。如果您还没有尝试过 Gatsby 和 Netlify CMS,那么现在就是一个好的时机,因为这是一个非常有趣和有趣的项目。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648fb85d48841e9894ddfad6

纠错
反馈