Gatsby 入门示例

简介: Gatsby 初始化项目

初始化项目


refs:



npx gatsby new gatsby-demo https://github.com/gatsbyjs/gatsby-starter-blog


Plugins


MDX


修改项目:


  • 添加对应的依赖项 yarn add gatsby-plugin-mdx @mdx-js/mdx @mdx-js/react
  • 修改配置
  • 删除没用的依赖项 yarn remove gatsby-plugin-image gatsby-transformer-remark gatsby-plugin-gatsby-cloud
  • 修改 GraphQL 查询语句及相关页面的模板
  • 测试运行,细节调整


refs:



Sitemap


修改项目:


  • 安装插件 yarn add gatsby-plugin-sitemap
  • 修改配置
  • 打包测试(运行 develop 不生成)


配置中需要指定 GraphQL 查询,以 MDX 为例:


const siteUrl = process.env.URL || `https://fallback.net`


module.exports = {

 siteMetadata: {

  // 注意 siteUrl 需要提前赋值变量

   siteUrl,

 },

 plugins: [

    //  其他插件

   {

     resolve: `gatsby-plugin-sitemap`,

     options: {

       query: `

       {

         allSitePage {

           nodes {

             path

           }

         }

         allMdx(sort: { fields: [frontmatter___date], order: DESC }) {

           nodes {

             fields {

               slug

             }

             frontmatter {

               date

             }

           }

         }

       }

     `,

       resolveSiteUrl: () => siteUrl,

       resolvePages: ({

         allSitePage: { nodes: allPages },

         allMdx: { nodes: allNodes },

       }) => {

         const allNodeMap = allNodes.reduce((acc, node) => {

           const { slug } = node.fields

           acc[slug] = {

             path: slug,

             modifiedGmt: node.frontmatter.date,

           }


           return acc

         }, {})

         return allPages.map(page => {

           return { ...page, ...allNodeMap[page.path] }

         })

       },

       serialize: ({ path, modifiedGmt = "" }) => {

         return {

           url: path,

           lastmod: modifiedGmt,

         }

       },

     },

   },

 ],

}


refs:



Dark Mode


修改项目:


  • 安装插件 yarn add gatsby-plugin-theme-switcher
  • 修改配置
  • 添加主题切换 component
  • 添加主题样式(通过 css vars 或者其他)
  • 运行并测试效果


refs:


相关文章
|
5月前
|
资源调度 JavaScript 前端开发
TypeScript实战教程(一):表单上传与后端处理
本文是TypeScript实战教程的第一部分,介绍了使用TypeScript进行表单上传和后端处理的完整流程,包括环境配置、前端表单创建、使用TypeScript和Express框架搭建服务端、处理表单数据,并提供了详细的代码示例和运行测试方法。
TypeScript实战教程(一):表单上传与后端处理
|
JavaScript 前端开发 算法
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
104 0
|
数据库 Python
Django开发个人博客基本示例
以下是一个简单的 Django 个人博客开发示例。在这里只概述基本步骤和代码。请确保你已经安装了 Python 和 Django。1. 创建一个新的 Django 项目```bashdjango-admin startproject myblog```2. 进入项目目录并创建一个新的应用```bashcd myblogpython manage.py startapp blog```3. 在...
111 0
|
8月前
|
JavaScript 前端开发 API
用Python和Vue构建内容管理系统(CMS):一步步指南
【4月更文挑战第10天】本文介绍了如何使用Python的Django框架和前端的Vue.js构建内容管理系统(CMS)。Django提供后端支持,遵循MTV模式,Vue.js则用于创建数据驱动的用户界面。步骤包括环境准备、Django项目与应用创建、定义数据模型、创建API接口、搭建Vue项目、集成Django与Vue、性能优化及部署上线。这种结合充分利用两者优势,实现高效、可扩展的CMS解决方案,适应未来智能化、个性化的趋势。
433 0
|
Linux 数据库 Python
Flask 开发个人博客简单示例
步骤1:准备工作首先,确保您已经安装了Python和pip。然后,创建一个新的文件夹来存放项目,并在命令行中进入该文件夹。步骤2:创建虚拟环境为了隔离项目的依赖和环境,我们建议在项目文件夹中创建一个虚拟环境。在命令行中运行以下命令:python -m venv venv这将创建一个名为venv的虚拟环境文件夹。步骤3:激活虚拟环境根据您使用的操作系统,在命令行中运行适当的命令来激活虚拟环境:...
133 0
|
域名解析
如何使用Gatsby创建自己的博客
首先使用npm安装gatsby,使用gatsby –version命令可以查看是否安装
106 0
如何使用Gatsby创建自己的博客
|
XML Web App开发 设计模式
【JavaScript】实战训练小项目-WebAPI
在上一篇文章中,其实我们并没有学JS和HTML的互动,而是各干各的
262 0
|
缓存 JavaScript Serverless
从入门到项目实战 - Vue 计算属性用法解析
本文介绍 Vue 计算属性用法
7399 0
从入门到项目实战 - Vue 计算属性用法解析
|
JavaScript
js基础笔记学习78-参数简介2
js基础笔记学习78-参数简介2
98 0
js基础笔记学习78-参数简介2
|
JavaScript
js基础笔记学习77-参数简介
js基础笔记学习77-参数简介
106 0
js基础笔记学习77-参数简介

热门文章

最新文章