Produce word count statistics for novels written in Markdown format.
Go to file
Dan Helfman 5cc6cc03cf Add note about "comments". 2021-09-11 17:12:17 -07:00
novel_stats Fixing some bugs by printing after counting rather than during. 2021-09-11 16:26:56 -07:00
.gitignore .gitignore. 2021-09-11 15:40:39 -07:00
README.md Add note about "comments". 2021-09-11 17:12:17 -07:00
setup.py Add README. 2021-09-11 17:07:31 -07:00

README.md

novel-stats produces word count statistics for novels written in Markdown format, including total word count, per-chapter word counts, per-act word counts, and counts by chapter "status." It's fairly particular about the format of the novel, and doesn't currently include much in the way of error checking. Word counts may not be exact.

Example output:

$ novel-stats example.md 
chapter 1: 103 words (drafted)
chapter 2: 83 words (dev edited)
chapter 3: 115 words
chapter 4: 96 words
chapter 5: 136 words (drafted)

act 1: 187 words
act 2: 212 words
act 3: 137 words
drafted: 239 words
dev edited: 83 words
total: 539 words

Installation

Start by cloning the project with git. Then install it with Python's pip. Example:

pip3 install /path/to/novel-stats

Or, if you'd like to install it "editable" (making development/updates easier):

pip3 install --editable /path/to/novel-stats

Usage

novel-stats takes a single argument: The path to your novel file in markdown format. For instance:

novel-stats /path/to/your/novel.md

Markdown format

You'll need to format your novel in the expected format for novel-stats to work.

Title and author

Use # for the title and ### for author name. Example:

# Title of the Novel 
### Author Name

These lines are generally ignored, although they do show up in the total word count.

Chapters

novel-stats expects chapters to start with ## and to have a numeric title (no "Chapter", etc.). Example:

## 1

Once upon a time ...

Chapter status

Chapter "status" is an optional feature that lets you indicate certain chapters as "drafted", "dev edited", etc. and then get word count totals for each status. Example:

## 3

[status]: # (drafted)

Other Markdown processing tools should ignore these "comments", so they shouldn't show up in the processed contents of your novel. If you do use this feature, you should set the status at the top of each chapter, before the actual chapter contents.

There are no set values for the chapter status. Use the statuses that make sense for your writing workflow.

Acts

Acts are an optional feature that let you indicate certain chapters as part of a particular act number, and then get word count totals for each act. Example:

## 8

[act]: # (2)

You only need to set the act for the first chapter in the act. Subsequent chapters are assumed to be in the same act unless otherwise indicated.

If you do use this feature, you should set the status at the top of each chapter, before the actual chapter contents (and after any chapter status).

Example novel

novel-stats includes an example Markdown file example.md that illustrates the expected Markdown format. Try it out:

novel-stats example.md