1

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

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

4

1 回答 1

1

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

例如:

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

使用 MDX,外部节点将与上面的代码片段不同,但只要您使用它就gatsby-transformer-remark可用excerpt。您可以gatsby-transformer-remark通过填充gatsbyRemarkPlugins对象来使用

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

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

于 2022-02-04T17:39:30.523 回答