Estoy haciendo un blog usando GatsbyJS + MDX. Para la página de lista de artículos, quiero mostrar las primeras oraciones/párrafos de cada artículo (como casi siempre se ve en un blog normal). Sin embargo, no puedo encontrar una manera de hacerlo en mdx.
Por ejemplo, no puedo simplemente truncar el archivo .mdx (por ejemplo, truncar los primeros 1000 bytes), de lo contrario, podemos terminar teniendo etiquetas sin cerrar, etc., confundiendo mdx.
gatsby-transformer-remark expone un campo de excerpt que se puede truncar a cualquier longitud deseada usando pruneLength , que es una parte del cuerpo de rebajas.
Por ejemplo:
{ allMarkdownRemark { edges { node { excerpt(pruneLength: 280) } } } } Con el MDX, el nodo externo diferirá del fragmento anterior, pero siempre que use gatsby-transformer-remark el excerpt estará disponible. Puede usar gatsby-transformer-remark llenando el objeto gatsbyRemarkPlugins
{ resolve: `gatsby-plugin-mdx`, options: { gatsbyRemarkPlugins: [ { resolve: `gatsby-transformer-remark`, }, ], }, Para escenarios extremadamente personalizables, puede usar gatsby-plugin-excerpts .
Si usa gatsby-plugin-mdx , puede exponer una parte de su archivo mdx agregando un campo de excerpt en su consulta y especificando la longitud de esa parte, Ejemplo:
query MyQuery { allMdx { nodes { excerpt(pruneLength: 100) } } }