如何用gatsby只获取mdx渲染文章的一部分?例如,mdx 博客文章的前几句话?
How to get only a portion of the mdx rendered article with gatsby? For example, first several sentences of a mdx blog article?
我正在使用 GatsbyJS + MDX 创建博客。对于文章列表页面,我想显示每篇文章的前几 sentences/paragraphs(就像你几乎总是在普通博客中看到的那样)。但是,我想不出在 mdx 中这样做的方法。
例如,我不能简单地截断 .mdx 文件(比如截断前 1000 个字节),否则我们可能会得到未闭合的标签等等,使 mdx 变得混乱。
gatsby-transformer-remark
公开了一个 excerpt
字段,可以使用 pruneLength
将其截断为任何所需的长度,这是降价正文的一部分。
例如:
{
allMarkdownRemark {
edges {
node {
excerpt(pruneLength: 280)
}
}
}
}
对于 MDX,外部节点将与上面的代码片段不同,但只要您使用 gatsby-transformer-remark
,excerpt
就可用。您可以通过填充 gatsbyRemarkPlugins
object
来使用 gatsby-transformer-remark
{
resolve: `gatsby-plugin-mdx`,
options: {
gatsbyRemarkPlugins: [
{
resolve: `gatsby-transformer-remark`,
},
],
},
对于高度可定制的场景,您可以使用 gatsby-plugin-excerpts
插件。
我正在使用 GatsbyJS + MDX 创建博客。对于文章列表页面,我想显示每篇文章的前几 sentences/paragraphs(就像你几乎总是在普通博客中看到的那样)。但是,我想不出在 mdx 中这样做的方法。
例如,我不能简单地截断 .mdx 文件(比如截断前 1000 个字节),否则我们可能会得到未闭合的标签等等,使 mdx 变得混乱。
gatsby-transformer-remark
公开了一个 excerpt
字段,可以使用 pruneLength
将其截断为任何所需的长度,这是降价正文的一部分。
例如:
{
allMarkdownRemark {
edges {
node {
excerpt(pruneLength: 280)
}
}
}
}
对于 MDX,外部节点将与上面的代码片段不同,但只要您使用 gatsby-transformer-remark
,excerpt
就可用。您可以通过填充 gatsbyRemarkPlugins
object
gatsby-transformer-remark
{
resolve: `gatsby-plugin-mdx`,
options: {
gatsbyRemarkPlugins: [
{
resolve: `gatsby-transformer-remark`,
},
],
},
对于高度可定制的场景,您可以使用 gatsby-plugin-excerpts
插件。