Plugin: Recall - On This Day, random notes, and a word count that handles Chinese/Japanese

Hi all,

I've published a small plugin called Recall. It's in the plugin repo now; search for "Recall" under Settings → Plugins.

It started as a script I used on my own library (~3,400 notes, mostly Chinese). I wanted two things Joplin didn't give me: a way to run into old notes again, and an honest count of how much I'd written.

What it does

  • On This Day: lists the notes you created on this calendar day in earlier years, like the "memories" feature in photo apps. As far as I can tell, no other plugin does this.
  • Random note: a die icon in the note toolbar opens a random note.
  • Daily Recall: builds one note with today's On This Day list plus a few random notes, all as clickable links. It can run automatically at startup, and it updates the same note each day instead of creating duplicates.
  • Writing statistics: word count for your whole library, with totals, a 12-month heatmap, and breakdowns by year and by notebook.

Why another word counter

The existing word-count plugins I tried split words with \b\w+\b, and \w only matches ASCII letters and digits. A 500-character Chinese note comes out as 0 words. Recall counts Han characters and kana one per character, which is how Chinese and Japanese publishing counts them. Every other script is counted by word. Markdown syntax, URLs, and inline code are stripped before counting, and fenced code blocks are left out of the total and reported on their own line.

Counts are cached per note and only recomputed when a note changes. On my 3,400-note library, the first run reads every note once, and later runs only check what changed.

Where to find it

Tools → Recall has every action. Settings → Recall has four options (how many random notes, whether to skip completed to-dos, which notebook to use, and whether to build the digest at startup).

Feedback, bug reports, and feature ideas are all welcome, either here or on GitHub. I'm especially interested to hear from people who write in languages other than English, and whether the counts look right for you.