Language design / Meaning / microarticle
Where the Meaning Lives
Conventions, tags, editors and the definition hiding on page 40.
01 / Type it how it looks
Fountain is plain text for screenplays. A line in capitals can identify a character. A line starting INT. becomes a scene heading. No tags, no menus. The convention careful writers already followed becomes the grammar.
But capitals alone don’t identify a character. The surrounding lines matter. That’s hidden context.
Python does something similar with indentation. The code block is what your eye already sees.
02 / Invisible attributes, visible consequences
The price: what you can’t see matters. Tabs or spaces. Miss a blank line and dialogue becomes action. A deliberate blank line inside a Fountain speech is two spaces on an otherwise empty line.
It works while your habits match the language. When they don’t, the mistake is invisible.
03 / A tag is not understanding
Final Draft saves .fdx. It’s XML: <Paragraph Type="Character"><Text>LARA</Text></Paragraph>.
That Type identifies a character cue. Write LANA a page later and you have two names, both beautifully formatted.
The file knows this is a character cue. It doesn’t know whether you meant Lara.
04 / Borrowed grammar carries borrowed costs
INT. ARCHIVE BASEMENT – NIGHT is a scheduling instruction. Studio or location. Lighting rigs. Night-shoot overtime. That’s why film breakdowns start by sorting slug lines.
Comic templates copy it. A night exterior costs the artist the same as a noon interior.
In comics the page is the unit of cost. Crowds and detailed backgrounds are the expensive shots. Night is a note for the colourist. Name the distinctions your craft actually pays for.
05 / Short commands, long memories
A dot at the start of a line. troff did it in the 1970s; man[ual] pages still do. .SH, .PP. Quick to type. Cryptic to everyone else except me, probably.
Try it for comics. .l: location or lighting? .P page, .p panel: case works for two options. Then someone hits Caps Lock.
Alternative: accept the shortest unambiguous prefix. .lo and .li. .pag and .pan. Always accept the full word. When it’s ambiguous, say so: “.pa: page or panel?” A useful error beats a silent guess.
There’s a maintenance cost. Add .line later and .li no longer uniquely means lighting. Yesterday’s valid shorthand becomes today’s ambiguity. An editor can expand the abbreviation before saving; the file keeps the full word.
06 / The editor’s language and the file’s language
Shortcuts, Tab cycling and completion belong to the editor. Final Draft already does this: Enter after a character name and you’re in dialogue. Speed lives in the editor.
Your work has to survive the application you wrote it in. Plain text with documented markup helps. The commands should still make sense when you open the file five years later, without remembering which buttons you pressed.
The editor can help you write it. It shouldn’t be needed to explain it.
07 / Definitions hiding in the file
GraphicNovel’s LaTeX class in 0.5: a Bible entry can go anywhere, even inside a panel. Define a character twice and the second quietly replaces the first. Print the Bible early and later entries are missing.
These are problems in the class itself. The hosted compiler adds a separate validator; restrictions there don’t repair the underlying class.
Flexible. Also bugs. Hoisted by my own technique, again.
Definitions should be gathered where collaborators expect them. The printed Bible should contain everything. A duplicate should be noticed. If the definition is on page 40, nothing about finding it is inevitable.
08 / Make the convention checkable
Conventions are the working language. Use them. But if layout carries meaning, the tool should check it and explain it.
“This looks like dialogue, but no character comes before it.” “LANA isn’t in the Bible. Did you mean Lara?”
A convention the tool can’t explain is just one more thing to remember.

