excerpt()

Extrait un extrait depuis le contenu du document.

import { excerpt } from "@unifast/node";

Signature

function excerpt(options?: ExcerptPluginOptions): UnifastPlugin

Paramètres

options?

Configuration de l’extraction d’extrait

PropriétéTypeDéfautDescription
separatorstring"<!-- more -->"Marqueur de commentaire qui sépare l’extrait du reste
fallbackParagraphsnumber1Nombre de paragraphes de tête à utiliser comme extrait lorsqu’aucun séparateur n’est trouvé
fallbackCharactersnumberundefinedLongueur maximale en caractères pour l’extrait de repli (tronqué sur une limite de mot)

Lorsque fallbackParagraphs et fallbackCharacters sont tous deux définis, fallbackParagraphs prévaut.

Valeur de retour

Le plugin ajoute une propriété excerpt au résultat de compilation :

PropriétéTypeDescription
result.excerptstring | undefinedExtrait en texte brut issu du document

Utilisation

import { compile, excerpt } from "@unifast/node";

const md = `
This is the introduction to my blog post.

<!-- more -->

The rest of the article continues here with more details.
`;

const result = compile(md, {
  plugins: [excerpt()],
});

console.log(result.excerpt);
// "This is the introduction to my blog post."

Exemples

Avec un marqueur de séparation

Placez un commentaire <!-- more --> dans votre Markdown pour indiquer explicitement la fin de l’extrait :

import { compile, excerpt } from "@unifast/node";

const md = `
# My Blog Post

This is a **bold** introduction with some content.

Here is a second paragraph still in the excerpt.

<!-- more -->

This content is not included in the excerpt.
`;

const result = compile(md, {
  plugins: [excerpt()],
});

console.log(result.excerpt);
// "My Blog Post This is a bold introduction with some content. Here is a second paragraph still in the excerpt."

Repli sur le premier paragraphe

Lorsqu’aucun marqueur de séparation n’est trouvé, le plugin se rabat sur l’extraction des N premiers paragraphes :

import { compile, excerpt } from "@unifast/node";

const md = `
# My Blog Post

This is the first paragraph of my article.

This is the second paragraph with more details.

This is the third paragraph.
`;

const result = compile(md, {
  plugins: [
    excerpt({
      fallbackParagraphs: 2,
    }),
  ],
});

console.log(result.excerpt);
// "This is the first paragraph of my article. This is the second paragraph with more details."

Repli sur une limite de caractères

Tronquez l’extrait à une longueur maximale de caractères, en coupant sur une limite de mot :

import { compile, excerpt } from "@unifast/node";

const md = `
This is a long article that goes on and on with lots of content.
`;

const result = compile(md, {
  plugins: [
    excerpt({
      fallbackCharacters: 30,
    }),
  ],
});

console.log(result.excerpt);
// "This is a long article that"