readingTime()

Estima o tempo de leitura do documento e o inclui no resultado da compilação.

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

Assinatura

function readingTime(options?: ReadingTimePluginOptions): UnifastPlugin

Parâmetros

options?

Configuração para a estimativa de tempo de leitura

PropriedadeTipoPadrãoDescrição
wordsPerMinutenumber200Palavras por minuto para texto latino
cjkCharsPerMinutenumber500Caracteres por minuto para texto CJK

Retorna

O plugin adiciona uma propriedade readingTime ao resultado da compilação:

PropriedadeTipoDescrição
result.readingTime.minutesnumberTempo estimado de leitura em minutos (mínimo 1, arredondado para o 0,5 mais próximo para cima)
result.readingTime.wordsnumberContagem total de palavras (palavras latinas + caracteres CJK)

Uso

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

const md = `
# My Article

This is a short article with some content that demonstrates
reading time estimation.
`;

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

console.log(result.readingTime);
// { minutes: 1, words: 16 }

Exemplos

Palavras por minuto customizadas

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

const md = `A long article with many words...`;

const result = compile(md, {
  plugins: [
    readingTime({
      wordsPerMinute: 150, // slower reading speed
    }),
  ],
});

console.log(result.readingTime.minutes);

Conteúdo CJK

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

const md = `
# 日本語の記事

今日は天気がとても良いです。公園で散歩をしました。
`;

const result = compile(md, {
  plugins: [
    readingTime({
      cjkCharsPerMinute: 400, // adjust for CJK reading speed
    }),
  ],
});

console.log(result.readingTime);
// { minutes: 1, words: ... }

Texto misto latino e CJK

O tempo de leitura é calculado separadamente para palavras latinas e caracteres CJK e depois combinado. Code blocks são excluídos da contagem de palavras.

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

const md = `
# Getting Started ガイド

This guide explains how to use the 設定ファイル for configuration.
`;

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

// Latin words counted at 200 WPM, CJK characters at 500 CPM
console.log(result.readingTime);