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:


相关文章
|
设计模式 资源调度 JavaScript
vue脚手架基础API全面讲解【内附多个案例】
vue脚手架基础API全面讲解【内附多个案例】
vue脚手架基础API全面讲解【内附多个案例】
|
3月前
|
小程序
基于Uniapp+SpringBoot+Vue的电影交流平台小程序设计与实现(源码+lw+部署文档+讲解等)
基于Uniapp+SpringBoot+Vue的电影交流平台小程序设计与实现(源码+lw+部署文档+讲解等)
51 0
基于Uniapp+SpringBoot+Vue的电影交流平台小程序设计与实现(源码+lw+部署文档+讲解等)
|
8月前
|
前端开发
前端学习笔记202305学习笔记第二十一天-vue3.0-项目效果的展示1
前端学习笔记202305学习笔记第二十一天-vue3.0-项目效果的展示1
38 0
|
9月前
|
前端开发 数据可视化 JavaScript
Python Flask Echarts数据可视化图表实战晋级笔记(4)ajax参数传递互动
Python Flask Echarts数据可视化图表实战晋级笔记(4)ajax参数传递互动
76 0
|
6月前
|
JavaScript 前端开发 API
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
66 0
|
9月前
|
开发框架 JSON 数据可视化
Python Flask Echarts数据可视化图表实战晋级笔记(1)HTML页面渲染与参数传递
Python Flask Echarts数据可视化图表实战晋级笔记(1)HTML页面渲染与参数传递
150 1
|
9月前
|
安全 关系型数据库 MySQL
Vue+SpringBoot打造大学兼职教师管理系统(附源码文档)(一)
Vue+SpringBoot打造大学兼职教师管理系统(附源码文档)
|
9月前
|
数据可视化 API
Vue+SpringBoot打造大学兼职教师管理系统(附源码文档)(二)
Vue+SpringBoot打造大学兼职教师管理系统(附源码文档)
|
10月前
|
资源调度 前端开发 JavaScript
Axios 请求库入门教程:从零开始学习
Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。
Axios 请求库入门教程:从零开始学习
|
11月前
|
Python
Django框架开发004期 Python编程调用自定义Django框架template模板网页
Django框架开发004期 Python编程调用自定义Django框架template模板网页