Как получить только часть статьи, отображаемой mdx, с помощью gatsby? Например, первые несколько предложений статьи в блоге mdx?
Я делаю блог, используя GatsbyJS + MDX. Для страницы со списком статей я хочу показать первые несколько предложений/абзацев каждой статьи (точно так же, как вы почти всегда видите в обычном блоге). Однако я не могу найти способ сделать это в mdx.
Например, я не могу просто обрезать файл .mdx (скажем, обрезать первые 1000 байт), иначе мы можем получить незакрытые теги и т. д., что приведет к путанице с mdx.
2 ответа
Если вы используетеgatsby-plugin-mdx
вы можете открыть часть вашего файла mdx, добавивexcerpt
поле в свой запрос и укажите длину этой части, например:
query MyQuery {
allMdx {
nodes {
excerpt(pruneLength: 100)
}
}
}
предоставляет поле, которое может быть усечено до любой желаемой длины с помощью
pruneLength
, который является частью тела уценки.
Например:
{
allMarkdownRemark {
edges {
node {
excerpt(pruneLength: 280)
}
}
}
}
При использовании многомерных выражений внешний узел будет отличаться от приведенного выше фрагмента, но до тех пор, пока вы используете
excerpt
будет доступно. Вы можете использовать
gatsby-transformer-remark
путем заполнения
gatsbyRemarkPlugins
объект
{
resolve: `gatsby-plugin-mdx`,
options: {
gatsbyRemarkPlugins: [
{
resolve: `gatsby-transformer-remark`,
},
],
},
Для чрезвычайно настраиваемых сценариев вы можете использоватьgatsby-plugin-excerpts
плагин.