前言
在现代 Web 开发中,使用静态网站生成器(SSG)成为一种趋势,这些 SSG 工具能够帮助我们在无需后端服务器的情况下构建网站,从而使网站变得更快、更安全并且可伸缩性也更好。Gatsby 是其中一个流行的 SSG 的工具,其结合了 React、GraphQL 和其他 Web 技术,可以帮助我们创建高度优化的静态网站,并且与 Netlify CMS 结合使用,可以进一步增强其功能。
在本文中,我们将介绍如何使用 Gatsby 和 Netlify CMS 来快速搭建一个静态网站。这个网站有以下功能:
- 响应式设计
- 支持 Markdown 编写的博客文章
- 简单易用的 CMS 管理系统
- 支持 SEO 和社交分享
步骤一:安装 Gatsby
首先,我们需要安装 Gatsby。要安装 Gatsby,您需要先安装 Node.js 和 npm,可以在命令行中通过运行以下命令来测试是否安装成功:
node -v npm -v
如果您能够看到正确的版本号,说明安装成功了。然后,您可以通过以下命令来安装 Gatsby:
npm install -g gatsby-cli
步骤二:创建一个 Gatsby 项目
现在您已经安装了 Gatsby CLI,接下来我们要创建一个新的 Gatsby 项目。您可以通过在终端中运行以下命令来创建一个新的 Gatsby 项目:
gatsby new my-gatsby-project
运行完毕后,进入 my-gatsby-project 目录并启动项目(该命令会自动在本地启动一个 Web 服务器):
cd my-gatsby-project gatsby develop
然后打开浏览器,访问 http://localhost:8000/ ,应该会看到一个空的 Gatsby 网站。
步骤三:添加 Netlify CMS
现在,我们要为我们的 Gatsby 网站添加管理系统。Netlify CMS 可以让我们通过简单的用户界面来编辑内容,而且它是免费并且易于使用的。
要将 Netlify CMS 添加到 Gatsby 项目中,请按照以下步骤进行操作:
安装 Netlify CMS
在项目根目录中安装 Netlify CMS:
npm install netlify-cms-app
配置 Gatsby 网站
在
gatsby-config.js
中添加下面的配置:-- -------------------- ---- ------- -------------- - - -- --- -------- - -- --- - -------- ---------------------------- -------- - -- ------ --- --- ------- ---- --------------------- ----- -- -- -- --- -- -- --- -
配置 Netlify
在 Netlify 中设置您的新网站,并创建一个 CMS 身份验证提供程序。为此,请按照以下步骤进行操作:
- 在 Netlify 新建项目,并将 Git 项目链接到 Netlify。
- 然后转到
Settings -> Identity
并启用身份验证(请参阅 Netlify 文档)。 - 最后,在 Identity 的
Services
下添加一个新的服务作为身份验证提供程序:选择“Git Gateway”并保存更改。
创建一个 CMS 配置文件
在项目根目录下创建
static/admin/config.yml
文件,然后添加以下内容:-- -------------------- ---- ------- -------- ----- ----------- ------- ---- ------------- ----------------------- -------------- ----------------- ------------ - ----- ------- ------ ------- ------- --------------- ------- ---- ------- - - ----- -------- ------ ------- - - - ----- ------- ------ ------- ------- ---------- - - - ----- ------- ------ ------- ------- ---------- -
这个配置文件描述了我们 CMS 的设置,包括使用 git-gateway 作为 CMS 程序、使用主要分支、定义内容与存储的路径、创建的数据模板(例如
posts
)和那些字段需要输入。
现在,当您访问您的 Gatsby 网站时,应该会看到一个链接到 CMS 的登录按钮。您登录后将能够添加、编辑和删除内容。
步骤四:创建博客文章
在这一步,我们将为我们的 Gatsby 网站添加博客文章,从而使其充实起来。我们将使用 Markdown 文件作为我们的博客文章格式。
创建博客文章
在项目根目录下,创建一个名为
content/posts
的文件夹,然后在其中创建一个 Markdown 文件(例如hello-gatsby.md
),并将以下内容添加到文件中:--- title: "Hello Gatsby" date: "2021-05-18" --- # Hello World This is my first Gatsby blog post!
您可以添加更多的博客文章,每个 Markdown 文件代表一篇博客文章。
显示博客文章
在项目的
src/pages
目录下,创建一个名为blog.js
的文件,并添加以下代码:-- -------------------- ---- ------- ------ ----- ---- ------- ------ - ------- - ---- -------- ------ ------- -- ---- -- -- - ----- ----- - ---------------------------- ------ - ----- ------------- ---- -- -- - ----- ----- - ---------------------- -- ---------------- ------ - ---- ----------------------- ---- ------- ----- ---- -------------------------- ------- --------- -- -- ------ - --- ------ - - ------ ----- ----- - -------- ----- - ----------------------- - ------- --------------------- ------ ---- -- - ----- - ---- - ------- ------ - ---- - ----------- - ------------------ ----- --- ------ ----- - ---- - - - - -
这段代码将查询所有 Markdown 文件,并按日期排序。然后,它会将每篇博客文章的标题和正文显示在页面上。
创建博客文章页面
为了让用户能够单独查看每篇博客文章,我们要创建一个页面,用于显示每篇文章的详细内容。
在
src/templates
目录下创建一个名为blog-post.js
的文件,并添加以下代码:-- -------------------- ---- ------- ------ ----- ---- ------- ------ - ------- - ---- -------- ------ ------- -- ---- -- -- - ----- ---- - ------------------- ------ - ----- --------------------------------- ---- -------------------------- ------- --------- -- -- ------ - - ------ ----- ----- - -------- ------------ -------- - ---------------------- - ----- - --- ----- - -- - ---- ----------- - ----- ------------------ ----- --- ------ - - - -
这段代码将查询特定的 Markdown 文件,并包含该文章的标题和正文的内容。
更改博客链接
现在我们已经创建了博客文章的页面,我们需要将博客列表的链接指向这个新的页面。要在我们的
blog.js
中链接到每篇博客文章的详细页面,我们需要将每篇文章的链接添加到代码中。-- -------------------- ---- ------- ------ - ---- - ---- -------- -- --- ------------- ---- -- -- - ----- ----- - ---------------------- -- ---------------- ------ - ---- ----------------------- ---- ----- ---------------------- ------- ------- ----- ---- -------------------------- ------- ------------ -- -- ------ - ---
现在,每篇博客文章都应该有一个链接,可以让用户单独查看该文章。
步骤五:使用 CSS 样式美化网站
最后一步,我们要使用 CSS 样式为网站添加更多的样式。在 Gatsby 网站中,样式可以通过 CSS、Sass、less 和 styled-components 等方式来实现。在本文中,我们将使用 CSS 来为我们的网站添加样式。
添加全局样式
在项目的
src
目录下创建名为styles.css
的新文件,并添加以下代码:-- -------------------- ---- ------- ---- - ----------------- -------- ------- -- -------- -- ------------ ------ ----------- - - - ------ -------- - --- --- --- --- --- -- - ------------ ----- - --- - ---------- ----- ------- ----- -
这些代码将为我们的网站添加一些全局的样式,例如背景色、链接颜色、标题字体粗细、图片最大宽度等。
添加局部样式
在您的
blog.js
和blog-post.js
中,可以使用特定的 CSS 样式来美化博客列表和博客文章页面的显示效果。例如,您可以使用以下样式为博客列表添加渐变背景色:.blog-list { background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.1)); padding: 20px; margin: 20px; border-radius: 10px; }
您可以在这两个文件中添加更多的 CSS 样式,以达到您想要的样式效果。
总结
使用 Gatsby 和 Netlify CMS,您可以快速地搭建出一个完整的静态网站,并且具有博客、CMS 管理、SEO 和社交分享等必要功能。本教程涵盖了所有的主要步骤,并提供了示例代码和相应的讲解。如果您还没有尝试过 Gatsby 和 Netlify CMS,那么现在就是一个好的时机,因为这是一个非常有趣和有趣的项目。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648fb85d48841e9894ddfad6