【问题标题】:How to get only a portion of the mdx rendered article with gatsby? For example, first several sentences of a mdx blog article?如何使用 gatsby 仅获取 mdx 渲染文章的一部分?例如,一篇 mdx 博客文章的前几句?
【发布时间】:2022-02-09 23:09:26
【问题描述】:

我正在使用 GatsbyJS + MDX 制作博客。对于文章列表页面,我想显示每篇文章的前几个句子/段落(就像您在普通博客中几乎总是看到的那样)。但是,我想不出在 mdx 中这样做的方法。

例如,我不能简单地截断 .mdx 文件(比如截断前 1000 个字节),否则我们最终可能会得到未闭合的标签等,从而使 mdx 混淆。

【问题讨论】:

    标签: javascript typescript gatsby gatsby-plugin-mdx


    【解决方案1】:

    gatsby-transformer-remark 公开了一个 excerpt 字段,可以使用 pruneLength 将其截断为任何所需的长度,这是 markdown 正文的一部分。

    例如:

    {
      allMarkdownRemark {
        edges {
          node {
            excerpt(pruneLength: 280)
          }
        }
      }
    }
    

    使用 MDX,外部节点将与上面的 sn-p 不同,但只要您使用 gatsby-transformer-remarkexcerpt 将可用。你可以通过填充gatsbyRemarkPlugins对象来使用gatsby-transformer-remark

    {
      resolve: `gatsby-plugin-mdx`,
      options: {
        gatsbyRemarkPlugins: [
          {
            resolve: `gatsby-transformer-remark`,
          },
        ],
      },
    

    对于高度可定制的场景,您可以使用gatsby-plugin-excerpts 插件。

    【讨论】:

    • 非常感谢!你是盖茨比专家!
    猜你喜欢
    • 2021-10-17
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多