首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将包含Markdown的YAML转换为在Gatsby中显示

将包含Markdown的YAML转换为在Gatsby中显示可以通过以下步骤实现:

  1. 首先,确保你已经安装了Node.js和Gatsby CLI(如果没有安装,可以通过官方文档进行安装)。
  2. 创建一个新的Gatsby项目。在命令行中运行以下命令:
代码语言:txt
复制
gatsby new my-gatsby-project
  1. 进入到项目目录:
代码语言:txt
复制
cd my-gatsby-project
  1. 安装所需的依赖项。在命令行中运行以下命令:
代码语言:txt
复制
npm install gatsby-transformer-remark gatsby-plugin-react-helmet react-helmet
  1. 在Gatsby配置文件gatsby-config.js中添加必要的插件。打开文件并添加以下内容:
代码语言:txt
复制
module.exports = {
  plugins: [
    'gatsby-transformer-remark',
    'gatsby-plugin-react-helmet'
  ]
}
  1. 创建一个文件夹,用于存放Markdown和YAML文件。在项目根目录中创建一个名为content的文件夹。
  2. content文件夹中创建一个Markdown文件,命名为post.md,并在其中添加Markdown内容。
  3. 在同一目录下创建一个YAML文件,命名为post.yaml,并在其中添加YAML数据。
  4. 在Gatsby项目的页面文件夹中创建一个新的页面。在src/pages目录下创建一个名为markdownPage.js的文件。
  5. markdownPage.js文件中添加以下代码:
代码语言:txt
复制
import React from 'react'
import { graphql } from 'gatsby'
import { Helmet } from 'react-helmet'

const MarkdownPage = ({ data }) => {
  const { markdownRemark } = data
  const { frontmatter, html } = markdownRemark

  return (
    <div>
      <Helmet>
        <title>{frontmatter.title}</title>
      </Helmet>
      <h1>{frontmatter.title}</h1>
      <div dangerouslySetInnerHTML={{ __html: html }} />
    </div>
  )
}

export const query = graphql`
  query($slug: String!) {
    markdownRemark(fields: { slug: { eq: $slug } }) {
      html
      frontmatter {
        title
      }
    }
  }
`

export default MarkdownPage
  1. 在项目的页面文件夹中创建一个新的模板文件。在src/templates目录下创建一个名为markdownTemplate.js的文件。
  2. markdownTemplate.js文件中添加以下代码:
代码语言:txt
复制
import React from 'react'
import { graphql } from 'gatsby'
import MarkdownPage from '../pages/markdownPage'

const MarkdownTemplate = ({ data }) => {
  return (
    <MarkdownPage data={data} />
  )
}

export const query = graphql`
  query($slug: String!) {
    markdownRemark(fields: { slug: { eq: $slug } }) {
      html
      frontmatter {
        title
      }
    }
  }
`

export default MarkdownTemplate
  1. 在项目的gatsby-node.js文件中添加以下代码:
代码语言:txt
复制
const path = require('path')

exports.createPages = ({ graphql, actions }) => {
  const { createPage } = actions

  return new Promise((resolve, reject) => {
    const markdownTemplate = path.resolve('src/templates/markdownTemplate.js')

    resolve(
      graphql(`
        {
          allMarkdownRemark {
            edges {
              node {
                fields {
                  slug
                }
              }
            }
          }
        }
      `).then(result => {
        if (result.errors) {
          console.error(result.errors)
          reject(result.errors)
        }

        result.data.allMarkdownRemark.edges.forEach(({ node }) => {
          createPage({
            path: node.fields.slug,
            component: markdownTemplate,
            context: {
              slug: node.fields.slug
            }
          })
        })
      })
    )
  })
}

exports.onCreateNode = ({ node, actions, getNode }) => {
  const { createNodeField } = actions

  if (node.internal.type === 'MarkdownRemark') {
    const value = path.basename(node.fileAbsolutePath, '.md')

    createNodeField({
      name: 'slug',
      node,
      value: `/${value}`
    })
  }
}
  1. 运行Gatsby开发服务器。在命令行中运行以下命令:
代码语言:txt
复制
gatsby develop
  1. 在浏览器中打开http://localhost:8000/post,其中post是你在第7步中创建的Markdown文件的文件名,不包括文件扩展名。你应该能够看到Markdown内容在Gatsby中成功显示。

这样,你就可以将包含Markdown的YAML转换为在Gatsby中显示了。你可以在Gatsby中创建多个页面来显示不同的Markdown内容,并在每个页面中使用不同的YAML数据。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Gatsby 创建一个博客

变压器插件 正如前面提到,transformer插件采用了一些底层数据格式,这种格式在当前表单是不可用Markdown,json,yaml等),我们可以用GraphQL查询把它转换成 Gatsby...filesystem源插件将从我们文件系统中加载文件节点(如 Markdown ),然后 Markdown 转换器将接管并转换为可用 HTML 。...我们定义每个键都可以被注入到查询。 现在,我们已经安装了一堆插件来从磁盘加载文件,将 Markdown换为HTML。我们有一个单独 Markdown 文件,它将作为一个博客发布。...我们博客文章模板采用了类似的方法,因此这应该看起来非常熟悉。我们再一次导出包含了 GraphQL 查询 pageQuery。...现在我们有一个由 Gatsby 所生成功能完整博客,其中有真正内容 Markdown 里,有一个博客列表,以及博客浏览能力。

2.5K30

:蝶形算法文档管理软件运用包含哪些具体优势

文档管理软件,蝶形算法可以用于分析信号,如音频或视频流,并从中提取相关信息。例如,它可以用于检测网络流量异常或模式,监视系统性能,或识别安全威胁。...总的来说,蝶形算法是一种强大信号分析和处理工具,文档管理软件应用可以帮助提高各种系统性能和安全性。...蝶形算法文档管理软件具体应用有很多,以下是几个例子:声音信号处理:文档管理软件,可以使用麦克风录制环境声音信号,并使用蝶形算法分析声音信号频率成分,以识别环境是否存在噪声、交通声等异常声音...视频流处理:文档管理软件,可以使用摄像头捕捉视频流,并使用蝶形算法分析视频流频率成分,以检测视频流是否存在异常活动,例如行人违规、车辆逆行等。...这些例子只是蝶形算法文档管理软件应用一部分,实际上还有很多其他应用场景,可以根据具体需求和情况进行选择和应用。

21330
  • 博客用不着什么JavaScript框架

    如果你开发关注可访问性单页应用程序,那么你可能会试着使用 JavaScript 来模拟浏览器行为。Gatsby 试图通过包含一个 RouteAnnouncer 组件来为你解决这个问题。...Gatsby Starter Low Tech 博客使用 no-javascript 插件和其他一些技术(包括将所有图像转换为灰度),来帮助你创建一个轻量且节能博客。...我挑选了一些不需要添加客户端 JavaScript 也能添加功能插件: 帖子显示代码段时,通常会包含特定于语言语法高亮显示。...有一些 JavaScript 库可以做到这一点,其中最流行似乎是 Prism——你可以客户端运行它,但由于我们使用是 JavaScript SSG,因此可以构建时运行它,并将语法高亮显示所需...你可以随意在 markdown 文件包含 nunjucks 标签,或将基于 yaml frontmatter 换成 JavaScript,但这会破坏语法高亮显示、linting 和自动格式化。

    4.1K10

    学习gatsby,从这里开始!

    使用场景 如果你有一堆用 Markdown 编辑文章,想要发布到网上,又不想浪费时间在编辑排版上,那么用 Gatsby 生成一个博客网站,是一个非常不错解决方案。...--- 三、安装 Gatsby 并新建网站 Gatsby Node.js 基础上建立,使用 Gatsby 之前必须先安装 Node.js 且版本 ≥ 12.13。...--- 4、使用 MDX 文件新增页面 MDX文件是指 markdown 文件中直接插入 jsx 代码 混合文件,怎么用在Gatsby?详细步骤,看这里!...--- 五、其他重要功能 1、Gatsby 怎么加载显示图片? 详细步骤,看这里! 2、怎么跳转到其他页面? 详细步骤,看这里! --- 3、怎么使用 css ? 详细步骤,看这里!...同样也可以阿里云上购买一个ESC; 第三步:阿里云后台设置域名解析到第二步服务器; 第四步:服务器上安装nginx; 第五步:开发机器上编译 gatsby 项目 gatsby clean gatsby

    2.2K20

    一杯茶时间,上手 Gatsby 搭建个人博客

    Remark 插件坑 Gatsby 处理 markdown 最常用也是默认插件是 gatsby-transformer-remark。...另外一种处理方式是 /gatsby-node.js 通过 onCreateNode 钩子,在生成 markdown 相关节点时手工处理,确保节点存在。...修改 Markdown 节点 Remark 插件生成 Markdown 节点中,我们可以往 fields 域放一些自定义变量。这里我们把自定义路径存到 fields.slug 。...通过实现自定义路径基本上可以了解 Gatsby 页面生成方式了。下节我会继续谈谈其它个性化配置,如草稿模式和显示上下篇博文。 草稿模式 草稿模式即可以将文章保存为草稿而不被渲染出来。...首先是普通文章页面生成,这个是 createPages 钩子,如果你博客只有文章用到 Markdown 的话,可以 GraphQL 查询中直接过滤,否则我们用前面文章方法,先取所有 Markdown

    3.2K20

    Gatsby还是Next.js,微言码道官网折腾事记

    所以这次主要是添加了一些功能,更新了基础技术依赖等,更新点包括: •添加了DocSearch文档搜索功能•添加了gittalk评论功能•调整与美化了对Markdown显示•从Gatsby V2升级最新...因此,2020年底了解了Jamstack理念以及基于ReactGatsby技术后,决定基于Gatsby完全开发一个网站,这个2021年元旦用了三天假期完成。...更新说明 本次折腾更新说明如下: 添加了DocSearch文档搜索功能 集成了免费DocSearch文档搜索服务,现在开始,你可以官网搜索文章或其它内容。...调整与美化了对Markdown显示 博客都是基于Markdown编写,因此这次调整与美化了对Mardown渲染与显示样式。整体上来说比以前更简洁与雅致了。...所以,尝试与权衡后,决定仍然使用了Gatsby+MUI搭配。 永不停止折腾 当然,微言码道官网不会就折腾到此为止。对它折腾仍然是永不停止。 而我最迫切想折腾其实是UI。

    2.2K30

    博客生成静态站点工具 Top 20

    ,越来越多的人选择博客平台上写博客。...正如它声称那样,在你用来搭建静态网站所有工具,Nuxt 可以做到功能和灵活性两全其美。他们还提供了一个 Nuxt 线上沙盒,让你不费吹灰之力就能直接测试它。...Eleventy 基于 JavaScript 实现,是一个简单、灵活、快速静态站点生成器,可以将各种模板语言(如 Markdown、Pug、Liquid、Handlebars 等)转换为 HTML、CSS...Middleman 是一个用 Ruby 编写静态站点生成器,它可以将 Markdown、ERB 模板和 YAML 配置文件转换为静态 HTML 文件。...这些工具大多数都支持 Markdown 等轻量级格式,并提供了许多主题和插件,可以方便地创建漂亮博客。此外,这些工具也有很好文档和社区支持,使得学习和使用它们变得更加容易。

    3.5K21

    进击JAMStack

    本篇文章主要包含以下内容: 什么是JAMStack JAMStack有什么优势 JAMStack适合什么应用 我个人思考 什么是JAMStack 概念 JAMStackJAM其实是三个词缩写,...接着我们再具体看一下JavaScript,APIs和Markdown这三种技术JAMStack世界是起到什么作用。...JavaScript JAMStack概念,JavaScript指的是客户端(client)实现动态网页效果JavaScript,它既可以是React和Vue这种Web框架,也可以是原生JavaScript...Markdown Mardown是一种轻量级标记语言。JAMStack世界Markdown类型文件通常是用来作为生成静态HTML文件数据源。...templates: 网站模板文件夹,该文件夹底下只有一个叫做blog-post.js模板文件,Gatsby构建网站时候blogs文件夹底下每一个Markdown文件都会通过这个模板文件生成一个对应

    2.9K30

    【Web架构】静态站点生成器概述 Gatsby ,Hugo 和Jekyll对比

    这可能是一个困难过程,当您打算进行更改时,许多问题会浮出水面,而扩展不是您所期待Gatsby、Hugo和Jekyll是最受欢迎静态站点生成器三种,它们受欢迎原因有很多。...缺点 学习Golang 可能是困难。 不支持XML作为数据文件类型。但是,支持YAML、JSON和CSV。...虽然Jekyll对页面内容使用Markdown,但它也使用液体模板语言来处理页面。Jekyll也使用Sass,这对于喜欢CSS预处理器开发人员来说非常重要。...杰基尔在建筑工地时候速度很慢。 选择静态站点生成器 尝试从这三种静态站点生成器挑选可能是一项困难任务。它们本身都是伟大工具。让我们来看看为什么你可能想要选择一个在其余原因。 ?...本文中,您已经看到了三种最好静态站点生成器。您应该能够更好地决定下一个静态站点项目使用哪种工具。 有什么问题吗?你认为还有什么静态网站生成器可以与这三种匹敌?你可以评论区分享你想法。

    3K20

    如何利用机器学习和Gatsby.js创建假新闻网站​

    一个重要插件是Gatsby -source-filesystem,它允许Gatsby从存储本地文件系统文件中提取数据。...gatsby-transformer-sharp和gatsby-transformer-remark也是重要插件。它们可以自动将markdown 文件转换为可用于web格式。...下面是运行代码时应该看到内容。 ? 当我查看驱动器上文章文件夹时,我会看到一堆包含假文章markdown 文件。 ?...编程式页面生成 我们已经使用谷歌Colab生成了文章,并且使用gatsby-source-drive插件将文件直接归档到我们本地文件系统。现在我们需要使用markdown文件以编程方式生成网页。...,为每个markdown文件创建数据节点,然后所有这些节点将与页面模板一起使用,以创建实际页面。

    4.5K60

    构建快速、安全、可扩展静态站点:终极指南

    解释静态站点概念和优势,包括性能、安全性和扩展性。 1.2 静态站点生成器 介绍静态站点生成器,如Jekyll、Hugo和Gatsby,以及它们工作原理。...# 示例代码:使用Gatsby创建新静态站点 npm install -g gatsby-cli gatsby new my-site 第二部分:内容管理和数据源 2.1 内容管理系统(CMS) 如何选择和集成内容管理系统...2.2 数据源和API 讲解如何获取数据,包括从API、Markdown文件、数据库或其他来源获取数据。...部署到静态托管服务 讲解如何将静态站点部署到托管服务,如Netlify、Vercel和GitHub Pages。...5.2 SEO优化 如何配置静态站点以搜索引擎获得更好排名,包括Sitemap和元数据。 <?

    27870

    Vue.js最佳静态站点生成器对比

    VuePress ,每个页面都被视为一个 markdown 文件,它们被渲染为 HTML 页面,并在加载页面时充当一个单页应用程序。...根据他们官方文档,VuePress 包含两个主要部分: 带有基于 Vue.js 主题系统静态站点生成器。 插件 API,用于添加全局级别的功能,还有一个针对文档优化默认主题。...提供内置 markdown 扩展。 包括强大搜索插件、PWA 功能、Google Analytics 等。 默认处理 markdown 到 HTML 转换任务。...与 React Gatsby 相似,Gridsome 是一个数据驱动框架。Gridsome 使用一个 GraphQL 层从各种源获取内容,然后从中动态生成页面。...此外,Gridsome 性能、学习曲线、社区规模等方面都能与 Gatsby 相提并论。

    4.9K10

    9个不错前端开源项目

    为了帮助你2020年成为前端大师,我收集了9个不同项目,每个项目都有不同主题和不同JavaScript框架或库作为技术栈,您可以构建它们并将它们添加到学习计划。...下图显示了最终应用外观: ? 您将学到什么 构建此应用程序时,您将使用相对较新Hooks API来提高React技能。...您将学到什么 本教程,您将学习如何利用Gatsby构建出色博客,以便在使用React和GraphQL同时编写自己文章。...,但是使用Gatsby,您可以使用React同时创建高性能网站——这是一个了不起组合。...8.用Gridsome建立博客 Gridsome是Vue……好吧,我们已经Next/Nuxt中有了它。 但是对于Gridsome和Gatsby也是如此。

    6.7K30

    Gatsby 博客部署到腾讯云教程

    WordPress 搭建起来,与传统服务端语言 + 数据库架构相比,近年流行静态编译博客,如 Hexo、Jekyll、Hugo 显然更容易部署和维护,这里我选择了 Gatsby,并用 wp-gatsby-markdown-exporter...插件,把原来 WordPress 文章转成 Markdown 完成数据迁移。...因工作原因我选择腾讯云上部署自己个人网站,你也可以 GitHub Pages 或国内 Coding 上托管 Gatsby 项目,然后 CNAME 绑定到指定域名就可以,更加方便。...安装 Node.js; 安装 Git; Gatsby 开发环境 Gatsby CLI 工具非常方便,终端全局安装 gatsby-cli npm install -g gatsby-cli 切换到开发目录...本地安装 gh-pages 包 npm install gh-pages --save-dev 配置 package.json, scripts 添加 deploy 发布指令,这段指令意思是运行

    4.3K111
    领券