Advanced Word Count

approved

by pan4ratte

Create complex word count presets that will be displayed in the status bar or in the right pane tab. Install tens of community presets, custom metrics, and settings from the extension store. - This plugin has not been manually reviewed by Obsidian staff.

2 stars1,574 downloadsUpdated 5d agoAGPL-3.0

Advanced Word Count plugin

English | Русский

This plugin allows you to create complex word count presets that are displayed in the status bar or in the right pane tab. You can cycle presets by clicking on the status bar, the right pane header or using command palette. Thanks to community extensions — presets, metrics and advanced settings — the plugin flexibly adapts to writing, academic and other purposes.

Features

1. Create multiple word count presets

Each separate preset can have its own list of metrics and methods of counting formatting elements, which makes working on multiple projects easier. You can quickly cycle between presets by clicking on the status bar, the right pane tab header of or from the command palette.

2. View word counters in the right pane tab

  • Counters can be viewed not only in the status bar, but also in the right pane tab. You can define whether counters are visible in both places or only one.
  • Moreover, for any chosen metric you can set up a limit warning and/or a goal: a warning colors the metric orange at ≥90% of the limit and red at ≥100%, while a goal colors it green at ≥100% (a metric can have both at once, and a goal can't be set higher than its warning).
  • You can also reorder the metrics in the right pane by dragging them — the new order is applied to the status bar as well (drag-and-drop on mobile devices is experimental for now).
  • Every metric — built-in or community — can be renamed to your liking in Set custom labels, separately for the status bar and the right pane, or left without a label at all so only its number is shown.

3. Track many different counting metrics

  • Essentials:

    • Words
    • Pages
    • Characters (with spaces)
    • Characters (without spaces)
  • Additional options:

    • Lines (all lines, including blank ones)
    • Paragraphs (blocks of text, empty lines are ignored)
    • Reading time (estimated from a chosen reading speed)
    • Markdown links (url)[label] and [label](url)
    • Embeds ![[note]] or ![[file.pdf]]
    • Footnotes — complete [^1] references and inline ^[…]
  • Special "academic" options:

    • Wikilinks [[wiki]] and [[wiki|label]]
    • Citekeys [@doe2020]

4. Fine-tune "Words" and "Characters…" counting methods with advanced settings

You can specify, how formatting elements will be counted:

Advanced optionOffOn
Count links display text(url)[label] → label and url will be countedonly label will be counted
Ignore wikilinkswikilinks text will be countedwikilinks will be ignored
Count wikilinks display text[[wiki|label]] → wiki and label will be countedonly label will be counted
Ignore citekeyscitekeys text will be countedcitekeys will be ignored
Ignore commentscomments %% … %% and <!-- … --> text will be countedcomments will be ignored
Ignore HTML tagsHTML tags like <b> … </b> etc. will be countedHTML tags will be ignored

5. Install community extensions: presets, metrics and advanced settings

Community extensions are small add-ons, each of which adds one metric, one advanced (word-count) setting, or a whole ready-made preset.

  • The extension store opens in the plugin settings. Search by name, author or description, filter by type (metrics / advanced settings / presets), and install, update or remove any extension with a single click. Installed extensions are highlighted with your accent colour.
  • Ready-made presets carry their toggle states, advanced settings, warnings/goals and connected community extensions. Installing one adds it to your presets and downloads the extensions it needs automatically. Made a preset you like? Click the Share (↗) icon in its header to export a file you can suggest for the plugin's catalogue.
  • Connecting installed extensions is done separately for each of your presets — use the Add metric… / Add setting… dropdown inside a preset.
  • Dependencies are installed automatically: if an extension depends on another, everything it needs is downloaded with it.
  • Updating extensions is available manually in the store, or automatically on Obsidian startup when the Automatically update installed community extensions setting is enabled.

The official catalogue currently includes:

Metrics

NameDescription
SentencesCounts the number of sentences in a note.
EmojiCounts the number of emoji and other pictographic characters in a note.
Reference linksCounts resolved reference-style links — a [text][id] reference that has a matching [id]: URL definition elsewhere in the note.
HTTP(S) linksCounts every http(s) link in a note, wherever it appears — bare, inside a Markdown link, angle brackets or any other brackets.
CommentsCounts HTML and Obsidian comments in the note.
Unique tagsCounts the number of unique #tags in a note, ignoring repeats.
Average word lengthCalculates the average number of characters per word in a note.
Average Markdown links per pageCalculates the average number of Markdown links per page.
Average words per sentenceCalculates the average number of words per sentence in a note.
HeadingsCounts the number of Markdown headings (# … ######) in a note.
Tasks (all)Counts all task checkboxes — checked and unchecked.
Completed tasksCounts only completed task checkboxes (- [x] or - [X]).
Incomplete tasksCounts only incomplete task checkboxes (- [ ]).
ReferencesCounts the number of unique @citekeys in a note.
Average citations per pageCalculates the average number of citations per page.
Pandoc generated footnotesCounts Markdown footnotes combined with @citekey groups that will generate footnotes after Pandoc export of the note. Use if you export with a footnote citation style.
TablesCounts the number of complete Markdown tables (header + delimiter row) in a note.
TagsCounts the number of #tags in a note.

Advanced settings

NameDescription
Ignore highlightsWhen counting words and characters, ignores ==highlighted== spans.
Ignore mathWhen counting words and characters, excludes LaTeX math — block $$…$$ and inline $…$.
Ignore tablesWhen counting words and characters, excludes Markdown table rows.
Ignore URLsWhen counting words and characters, excludes bare http(s) links.
Ignore strikethroughWhen counting words and characters, excludes ~~struck-through~~ text.
Ignore backslash commandsWhen counting words and characters, excludes lines consisting solely of a backslash command such as \pagebreak or \newpage.
Ignore Dataview fieldsWhen counting words and characters, excludes inline Dataview fields — [key:: value] and (key:: value).
Ignore codeWhen counting words and characters, excludes block and inline code.
Count Telegram emoji as one symbolWhen counting words and characters, counts a custom Telegram emoji in the format 😢 as one symbol. The extension provides support for the “Publish to Telegram” plugin emojis.

Presets

NameDescription
Telegram user postPreset for posts made as a Telegram user: with limit warnings and all metrics set up to count characters the way Telegram does.
Telegram rich-text postPreset for rich-text posts in Telegram: with limit warnings and all metrics set up to count characters the way Telegram does.
Scientific articlePreset with all basic metrics and goals, necessary for academic writing purposes.

Want to build your own? See the extension contributor guide.

Installation

Option 1: Obsidian plugin store

  1. In Obsidian settings open the tab "Community plugins" and click "Browse" button.

  2. In the search bar type Advanced Word Count, click on the result, then "Install" and "Enable" buttons.

Alternatively, you can install the plugin by following the link to the community website: https://community.obsidian.md/plugins/advanced-word-count

Option 2: BRAT plugin

If you want to test beta-versions of the plugin or use previous versions, you can do that with BRAT plugin:

  1. Install BRAT plugin from the official Obsidian plugin store.

  2. In the BRAT settings, find the “Beta plugin list” section and click on the “Add beta plugin” button.

  3. In the window that appears, paste the link to the Advanced Word Count plugin repository: https://github.com/pan4ratte/obsidian-advanced-word-count

  4. Under “Select a version” choose the desired version and click the “Add plugin” button. The plugin will be automatically installed and will be ready to use.

About the Author

My name is Mark Ingram (Ingrem), I am a Religious Studies scholar. Apart from my main area of study (Protestant Political Theology in Russia), I teach the subject "Information Technologies in Scientific Research", a unique course that I developed myself from scratch. This plugin helps me in my studies and I use it in my teaching, as well as other plugins that I develop and that you can find on my GitHub profile.

Hello to every student that came across this page!

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.