Lenses
A lens is a reading pass. It colours every open note one way at a time, so a tint always means one thing: under the style checks lens a tint is a cliché, a passive, a filter verb; under the dialogue lens it is speech or thought; under the words lens it is one of your own overused words, coloured by category; under the accents lens it is a word a character uses or never says. One lens is on across the vault and is kept between sessions. Switching one on switches the other off.
The idea comes from the way Maxwell Alexander Drake revises: a dialogue pass, then an accent pass, then a bad-words pass, each with its own highlight, never all at once. Five highlights on one page cannot be read; one at a time can.
What is not a lens stays under every lens: focus fade, the current line, typewriter scrolling, the rhythm meter in Zen Mode, and Harper's underlines. The faint sentence tint of paragraph rhythm stays too unless you switch Rhythm tint underneath off under Settings → Lenses. Zen Mode shows no lens at all: the page is plain there.
Switching
- The status bar shows the lens on the right, Lens: words, or No lens. Click it for the menu: one row per lens, the one on ticked, each naming its command, and under a line the two switches that shape a lens, Rhythm tint underneath and Dim narration.
- Every lens is a command, and every lens command starts with Lens:, so typing
lensin the palette lists them all: Lens: style checks, Lens: dialogue, Lens: words, Lens: accents, Lens: next, Lens: off. A lens command toggles its lens: on when another or none is on, off when it is the one on. - None ships with a hotkey, as with every command in this plugin; bind your own in Settings → Hotkeys, where the prefix keeps them together.
- Settings → Lenses → Lens is the same switch as a dropdown.
Style checks
The offline style checks, one colour per kind, in the paragraph you are editing. Which kinds show is the row of chips under the lens.
Dialogue
Speech at full tint, thought at half, narration dimmed, so you can read only the talk and ask Drake's question: does the dialogue carry the scene without the narration? If it does, the narration is making a scene that already works better; if it does not, the scene leans on narration to happen.
How speech and thought are written is a convention, so it is a setting, and a project can override it in its project note:
| Settings → Lenses | Project note | |
|---|---|---|
| Speech | Dialogue marks: double quotes “ ”, single quotes ‘ ’, dash lines (the travessão: a paragraph that opens with — is speech, and each further — toggles narration and speech), or none. | dialogue: double · single · dash · none |
| Thought | Thought marks: a sentence or paragraph in italics (the default), any italics, single quotes, a custom pattern, or none. | thoughts: italic-paragraph · italic-any · single-quotes · none, or a regular expression of your own |
Under the default, a thought is italics that make a whole paragraph, _He is guessing. He has to be guessing._ on a line of its own, or a whole sentence: three words or more, standing where a sentence begins or followed by a thought tag, _He is guessing,_ she thought. A word or two in italics inside a sentence is emphasis and never a thought: _Alone_ was generous stays narration. A custom pattern is tested against each paragraph; every match is a thought, or its first group when the pattern has one. Dim narration fades everything that is not speech or thought; switch it off to keep the page at full strength with the tints on top.
Who is speaking
With a cast, each paragraph of speech is tinted in its speaker's colour, and the hover says who and how that was decided. The cast is the project's own character notes, inside its story folder (a type: character or a Characters/ folder, as for the story map), their names and aliases. Nothing from elsewhere in the vault; a note outside every project has no cast and speaks in one colour. A note's colour: "#c8773a" is its speaker colour; the rest take one from a palette of eight in cast order. A project note can narrow and order the cast with speakers: [Mara, Tomas #c8773a], names with no note included, a colour pinned with #hex.
The page colours only what it is sure of, and leaves the rest to you:
- dialogue tag: a name next to a speech verb in the paragraph, “Yes, well,” Tomas said. Certain.
- named in the paragraph: the one character named outside the quotes, “You came alone?” Tomas did not look up. An action beat is as good as a tag. Certain.
- pinned by you: the speaker box's choice, kept as a hidden comment right before the sentence,
%% Tomas %% “Aye.”. Certain. A sentence pinned on its own keeps its speaker even when the rest of the paragraph is someone else's. - turn-taking: the voice before the last one in a two-voice exchange, or, when only one voice has spoken, the one other character named in the scene. A guess: the line stays grey, and the guess is the box's first offer.
- speaker not found: grey. More than two narration paragraphs since the last line, or a heading or scene break, starts the exchange over.
The speaker box
Hover a grey sentence and the box appears: the cast as chips in their colours, Not speech for quotes that are not dialogue (a sign, a title), Unpin when the sentence is pinned. Click a chip and the pin is written right before that sentence, a hidden comment Obsidian never renders and the manuscript export strips; Ctrl+Z takes it back like any edit. Only a short name, or one the cast knows, standing before a sentence is read as a pin; your other comments are left alone. When the cursor rests in a line nobody is sure about, the box opens by itself, passive, so a click is enough while you read with the keyboard; Tag box opens by itself under Settings → Lenses turns that off. The command Dialogue: tag the speaker opens the box armed: the arrows choose, Enter pins, Escape closes. Bind it to a key and a two-voice scene is one keystroke a line, since a pin feeds the turns after it.
The manuscript page has the same tints and the same box under its Voices toggle, so a whole book can be read and pinned in one pass.
Switch Speaker colours off for one colour and no attribution.
The dialogue and accents lenses hide the rhythm tint whatever the Rhythm tint underneath setting says: a colour here means one thing.
Accents
Drake writes accents and wants them consistent: a Roarthian never says my, yes, no, will, into. The accents lens shows the dialogue page at a faint tint by speaker and, inside each speaker's own lines, the words their character note says they use (green) and the words they never say (red). Never in narration, never in a line nobody is pinned to: a grey line under the dialogue lens gets no accent marks here. Hover a word for whose accent it is.
The lists live in the character note:
aliases: [the Roarthian]
colour: "#c8773a"
accent: [aye, yer, ye'll, nay]
accent-never: [my, yes, no, will, into]Words or phrases, a list or a comma string, matched whole and case-insensitively. A character with neither key gets no marks. Attribution is the dialogue lens's, so a wrong guess there is a wrong mark here; add a tag and both follow.
The box as the lens's hands
Every hover card can act, not only explain:
- Style checks: Not a cliché here, and the finding is gone from that paragraph. The plugin writes
%% not cliche %%at the end of the paragraph, a hidden comment like the speaker's pin; delete it to have the check back. The model's findings respect it too. - Words: Remove "then" from Stage direction takes the word out of the list note it came from. The other way round is a command, Words: add the word under the cursor to the list…, which asks for a category from the list's headings, or a new one typed in, and writes the word under it; the note is created if it is not there yet.
- Accents: Remove "aye" from Tomas's accent edits the character note's front matter. Two commands add: Accents: the word under the cursor is the speaker's and Accents: the speaker never says the word under the cursor, both for the line's certain speaker, so pin first where the page is grey.
Words
Your own overused words, tinted wherever they occur in the visible part of the note, one colour per category. Hover a tint for the category and how many times the word occurs in the note.
The list is a note, so it syncs with the vault and you edit it like anything else. Settings → Lenses → Bad words note names it, Creative Writer/Bad words.md by default. One heading per category, the words and phrases under it, separated by commas or lines, bullets or not:
## Filtering
felt, saw, heard, noticed, realised
## Redundant motions
colour: #63b3ed
turned, shifted, moved, engaged
## Stage direction
then, and then, beforeMatching is by whole word or phrase, case-insensitive, never across a sentence boundary. Colours follow heading order from a palette of eight; a colour: #hex line under a heading pins that category's colour. Save the note and the page follows.
A project can keep its own list: bad-words: [[Bad words]] in the project note, a link or a path. Notes inside that project use it instead of the vault-wide note.
What goes on the list is yours. The built-in style checks are the same mechanism with fixed lists: filter verbs, adverbs and the rest. Generic filler words ("very", "just", "quite") are Harper's and are not shipped here; if they are your habit, they are one heading away.