forked from witten/novel-stats
137 lines
3.2 KiB
Markdown
137 lines
3.2 KiB
Markdown
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." You might find this useful if you're
|
|
already using tools like Git and Markdown processing as part of your writing
|
|
workflow (or are looking to start) and want some basic statistics about your
|
|
novel as you're writing it.
|
|
|
|
novel-stats is 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:
|
|
|
|
```bash
|
|
$ 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 (~34%)
|
|
act 2: 212 words (~39%)
|
|
act 3: 137 words (~25%)
|
|
drafted: 239 words (~44%)
|
|
dev edited: 83 words (~15%)
|
|
total: 539 words
|
|
```
|
|
|
|
## Installation
|
|
|
|
Start by cloning the project with git. Then install it with Python's `pip`.
|
|
Example:
|
|
|
|
```bash
|
|
pip3 install /path/to/novel-stats
|
|
```
|
|
|
|
Or, if you'd like to install it "editable" (making development/updates
|
|
easier):
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```yaml
|
|
# 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:
|
|
|
|
```yaml
|
|
## 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. This is useful for tracking the progress of your novel
|
|
chapter-by-chapter as you write or revise.
|
|
|
|
Example:
|
|
|
|
```yaml
|
|
## 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. This is
|
|
useful for keeping an eye on how big your acts are in relation to one another.
|
|
|
|
Example:
|
|
|
|
```yaml
|
|
## 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
|
|
```
|