【问题标题】: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-remark,excerpt 将可用。你可以通过填充gatsbyRemarkPlugins对象来使用gatsby-transformer-remark
{
resolve: `gatsby-plugin-mdx`,
options: {
gatsbyRemarkPlugins: [
{
resolve: `gatsby-transformer-remark`,
},
],
},
对于高度可定制的场景,您可以使用gatsby-plugin-excerpts 插件。