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:


相关文章
|
7月前
|
JavaScript 前端开发 搜索推荐
从零开始:用Python和Vue开发个人博客
【4月更文挑战第10天】本文指导无技术背景的读者使用Python和Vue从零开始搭建个人博客。选择Python的Django框架因其易学和高效,通过环境搭建、创建Django项目和应用、定义数据模型、构建Vue前端、整合前后端及部署博客等步骤,逐步实现个人博客的建立。这个过程不仅帮助你分享知识和观点,同时也助力提升编程技能。
125 5
|
JavaScript 前端开发 算法
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— Web APIs(七)放大镜实战
96 0
|
JavaScript 前端开发 API
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
Vue.js入门指南:从基础到进阶,掌握现代JavaScript框架的核心概念与高级特性(2W字小白教程)
185 0
|
域名解析
如何使用Gatsby创建自己的博客
首先使用npm安装gatsby,使用gatsby –version命令可以查看是否安装
103 0
如何使用Gatsby创建自己的博客
|
Python
Django框架开发004期 Python编程调用自定义Django框架template模板网页
Django框架开发004期 Python编程调用自定义Django框架template模板网页
131 0
|
JavaScript
js基础笔记学习275练习5之三
js基础笔记学习275练习5之三
78 0
js基础笔记学习275练习5之三
|
JavaScript
js基础笔记学习104-类得简介2
js基础笔记学习104-类得简介2
50 0
js基础笔记学习104-类得简介2
|
JavaScript
js基础笔记学习104-类得简介1
js基础笔记学习104-类得简介1
64 0
js基础笔记学习104-类得简介1
|
JavaScript
js基础笔记学习77-参数简介
js基础笔记学习77-参数简介
94 0
js基础笔记学习77-参数简介
|
JavaScript
js基础笔记学习78-参数简介2
js基础笔记学习78-参数简介2
95 0
js基础笔记学习78-参数简介2