2022-10-14 13:11:33 +00:00
|
|
|
import { editor, space } from "$sb/silverbullet-syscall/mod.ts";
|
2022-08-01 09:04:48 +00:00
|
|
|
|
|
|
|
function countWords(str: string): number {
|
|
|
|
const matches = str.match(/[\w\d\'-]+/gi);
|
|
|
|
return matches ? matches.length : 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
function readingTime(wordCount: number): number {
|
|
|
|
// 225 is average word reading speed for adults
|
|
|
|
return Math.ceil(wordCount / 225);
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function statsCommand() {
|
2022-10-14 13:11:33 +00:00
|
|
|
const text = await editor.getText();
|
|
|
|
const allPages = await space.listPages();
|
2022-08-01 09:04:48 +00:00
|
|
|
const wordCount = countWords(text);
|
|
|
|
const time = readingTime(wordCount);
|
2022-10-14 13:11:33 +00:00
|
|
|
await editor.flashNotification(
|
2022-10-12 09:47:13 +00:00
|
|
|
`${wordCount} words; ${time} minutes read; ${allPages.length} total pages in space.`,
|
2022-08-01 16:27:50 +00:00
|
|
|
);
|
2022-08-01 09:04:48 +00:00
|
|
|
}
|