readingTime()

Estima el tiempo de lectura del documento y lo incluye en el resultado de compilación.

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

Firma

function readingTime(options?: ReadingTimePluginOptions): UnifastPlugin

Parámetros

options?

Configuración de la estimación del tiempo de lectura

PropiedadTipoPor defectoDescripción
wordsPerMinutenumber200Palabras por minuto para texto latino
cjkCharsPerMinutenumber500Caracteres por minuto para texto CJK

Retorna

El plugin añade una propiedad readingTime al resultado de compilación:

PropiedadTipoDescripción
result.readingTime.minutesnumberTiempo estimado de lectura en minutos (mínimo 1, redondeado hacia arriba al 0,5 más cercano)
result.readingTime.wordsnumberTotal de palabras (palabras 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 }

Ejemplos

Palabras por minuto personalizadas

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);

Contenido 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 mixto latino y CJK

El tiempo de lectura se calcula por separado para las palabras latinas y los caracteres CJK, y luego se combinan. Los bloques de código se excluyen del conteo de palabras.

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);