资讯专栏INFORMATION COLUMN

Gatsby极速入门—添加上一页下一页功能(完结篇)

youkede / 1526人阅读

摘要:调整这个就简单了打开,增加代码如下这里是新增加的调整打开首页,点击页面跳转到对应的页面大功告成。总结到此,通过就快速的搭建了一个博客网站,我们只需书写文件就能生成对应的网页了。至于网页美化,那是切图的事儿,我就不在这里墨迹了。

1.调整gatsby-node

这个就简单了,打开gatsby-node.js,增加代码如下:

</>复制代码

  1. const path = require("path");
  2. exports.createPages = ({ actions, graphql }) => {
  3. const { createPage } = actions
  4. const blogPostTemplate = path.resolve(`src/templates/blogPost.js`)
  5. return graphql(`
  6. {
  7. allMarkdownRemark {
  8. edges {
  9. node {
  10. frontmatter {
  11. path,
  12. title,
  13. tags
  14. }
  15. }
  16. }
  17. }
  18. }
  19. `).then(result => {
  20. if (result.errors) {
  21. return Promise.reject(result.errors)
  22. }
  23. const posts = result.data.allMarkdownRemark.edges;
  24. createTagPages(createPage, posts);
  25. posts.forEach(({ node }, index) => {
  26. const path = node.frontmatter.path;
  27. const title = node.frontmatter.title;
  28. createPage({
  29. title,
  30. path,
  31. component: blogPostTemplate,
  32. context: {
  33. pathSlug: path,
  34. //这里是新增加的
  35. prev: index === 0 ? null : posts[index - 1].node,
  36. next: index === (posts.length - 1) ? null : posts[index + 1].node
  37. }, // additional data can be passed via context
  38. })
  39. })
  40. })
  41. }

2.调整blogPost.js

</>复制代码

  1. import React from "react"
  2. import { graphql,Link } from "gatsby"
  3. const Template = ({ data, pageContext }) => {
  4. const {next,prev} = pageContext;
  5. const {markdownRemark} = data;
  6. const title = markdownRemark.frontmatter.title;
  7. const html = markdownRemark.html;
  8. return (
  9. {title}

  10. {next&&Next}
  11. {prev&&Prev}
  12. )
  13. }
  14. export const query = graphql`
  15. query($pathSlug: String!) {
  16. markdownRemark(frontmatter: { path: { eq: $pathSlug } }) {
  17. html
  18. frontmatter {
  19. date(formatString: "MMMM DD, YYYY")
  20. path
  21. title
  22. }
  23. }
  24. }
  25. `
  26. export default Template;

打开首页,点击页面跳转到对应的页面大功告成。

总结

到此,通过gatsby就快速的搭建了一个博客网站,我们只需书写markdown文件就能生成对应的网页了。至于网页美化,那是切图的事儿,我就不在这里墨迹了。

当然了你不想切图可以使用各种现成的UI库,比如antdesign。我的网站就是直接用的antdesign.

如果你觉得深入学习gatsby太麻烦,你可以直接用我写好的模板就行,

开源库地址,直接克隆就可以用了:

https://github.com/leolau2012...

但是基础还是要会的,不然出错或者要根据你们公司需求改动功能,就没办法了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104461.html

相关文章

  • Gatsby极速入门—支持Markdown(1)

    摘要:安装插件我用就是因为它支持所以不墨迹,直接整支持。添加格式化文章在下面添加三篇文章,头部格式如下教程完整代码如图所示 1.安装插件 我用Gatsby就是因为它支持Markdown.所以不墨迹,直接整Md支持。 yarn add gatsby-source-filesystem yarn add gatsby-transformer-remark 2.添加格式化文章 在src>page...

    RobinTang 评论0 收藏0
  • Gatsby极速入门添加博客内容页(4)

    摘要:查数据注意,这里跟前面不一样了,我用这个文件去提供数据,没有什么为什么,规定,照做就好。很清晰明显,这里就说一点我传递了一个参数,到内容页。创建内容页模板在下创建这里只要对应的路径的那个文章查询 1.查数据 注意,这里跟前面不一样了,我用gatsby-node.js这个文件去提供数据,没有什么为什么,规定,照做就好。 const path = require(path); export...

    wean 评论0 收藏0
  • Gatsby极速入门添加博客文章列表(3)

    摘要:查数据如图所示,套页面打开打开首页,看到文章列表就大功告成了。 1.查数据 { allMarkdownRemark(sort: {order: DESC, fields: [frontmatter___date]}) { edges { node { frontmatter { title path ...

    cnTomato 评论0 收藏0
  • Gatsby极速入门—安装和博客搭建(0)

    摘要:安装创建项目开发注意报错文件空格问题,最好不要用空格和中文。直接放在硬盘根目录下就不会有问题。打开,看到如下效果就成功了构建查看效果打开浏览器看到如下效果大功告成 1.安装 yarn global add gatsby-cli 2.创建gatsby项目 gatsby new blog 3.开发 gatsby develop 注意报错: error UNHANDLED EXCEPT...

    qieangel2013 评论0 收藏0
  • Gatsby极速入门—使用GraphQL解析Markdown(2)

    摘要:什么是既是一种用于的查询语言也是一个满足你数据查询的运行时。嵌套将组件扔到下面的里面打开首页,看到网站的描述就大功告成了。 1.什么是GraphQL GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间...

    fou7 评论0 收藏0

发表评论

0条评论

youkede

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<