我正在使用 GatsbyJS + MDX 制作博客。对于文章列表页面,我想显示每篇文章的前几个句子/段落(就像您在普通博客中几乎总是看到的那样)。但是,我想不出在 mdx 中这样做的方法。
例如,我不能简单地截断 .mdx 文件(比如截断前 1000 个字节),否则我们最终可能会得到未闭合的标签等,从而使 mdx 感到困惑。
我正在使用 GatsbyJS + MDX 制作博客。对于文章列表页面,我想显示每篇文章的前几个句子/段落(就像您在普通博客中几乎总是看到的那样)。但是,我想不出在 mdx 中这样做的方法。
例如,我不能简单地截断 .mdx 文件(比如截断前 1000 个字节),否则我们最终可能会得到未闭合的标签等,从而使 mdx 感到困惑。
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
插件。