Sapling Works19 downloadsCounts readable Chinese and English text in Markdown notes, with common-character and custom-term statistics.
WordScope is an Obsidian plugin for counting readable Chinese and English text in the active Markdown note. It presents whole-note counts, common-character statistics, and user-defined term statistics in a right sidebar view.
的, 了, 地, 著, 是, 也, and 而.binary ribbon icon.WordScope does not refresh continuously while you edit. Use the refresh button when you want to recalculate the current note. Selected-text counting is not implemented.
The plugin renders Markdown with Obsidian's MarkdownRenderer and extracts readable text from the rendered result.
It keeps headings, paragraphs, formatted text, link display text, WikiLink display names, quotes, lists, and callout body text. It excludes YAML frontmatter, Markdown syntax, URLs behind links, code blocks, inline code, images, media, embeds, and non-body controls.
All word, common-character, and custom-term statistics use the same extracted readable text.
U+4E00–U+9FFF range. Rare extension characters, Japanese kana, and Korean characters are not included in the Chinese count.don't count as one word; accented letters and other non-ASCII letter forms are not fully supported.After the plugin is published in the Obsidian Community Plugins directory:
main.js, manifest.json, and styles.css from the matching GitHub release.<Vault>/.obsidian/plugins/word-count/.binary icon in the left ribbon, or run WordScope: 開啟字數統計 from the command palette.To configure custom terms, open Settings → WordScope, then enter one or more terms separated by commas or line breaks. Settings are stored per vault and shared by all notes in that vault.
Note content is processed locally in memory through Obsidian's Markdown rendering APIs. This plugin does not contain telemetry or make explicit network requests. Obsidian itself, remote resources referenced by a note, and Markdown processors registered by other plugins may have their own behavior during rendering.
The only persistent plugin data is the custom-term list, stored in the vault's plugin data through Obsidian's loadData() and saveData() APIs. The plugin does not modify note files.
Automated tests cover counting rules, Markdown source preparation, DOM text extraction, common and custom terms, refresh scheduling, and settings persistence logic. Representative DOM tests do not replace verification against the real Obsidian runtime.
npm test
npm run check
npm run build
The production build creates main.js. A Community Plugins release must attach main.js, manifest.json, and styles.css as individual release assets.
WordScope is licensed under the PolyForm Noncommercial License 1.0.0.
Noncommercial use is permitted under the license terms. Commercial use requires separate permission from Sapling Works.