Chat Transcripts

Chat Transcripts

A fenced code block with the language chat renders as a conversation: one speech bubble per message, each speaker in their own colour, some speakers on the right. It is rendered on the server into plain HTML and CSS, so it works in static builds, in QuickLook previews and with JavaScript off.

A chat transcript rendered as speech bubbles, each speaker in a different colour, one speaker aligned to the right

A chat block rendered as speech bubbles.

The syntax is the chat format of the Obsidian Chat View plugin, so notes written for it render here without changes. Renderers that know nothing about it (GitHub, a plain markdown viewer) show the raw code block, which still reads as a transcript.

Live Example

```chat
> Bob
# Monday, 9:02 AM
{{Alice|Did you see the [release notes](../modes/build.md)?|9:02 AM}}
{{Bob|Not yet. Anything **breaking**?|9:03 AM}}
{{Alice|Nothing breaking. Two things worth knowing:

1. builds are faster
2. `--fail-on-broken-links` is new
|9:04 AM}}
{{|And [[tasks|the task docs]] are updated.|9:04 AM}}
...
Bob went to read them. This line is ordinary markdown between bubbles.
{{Bob|Looks good 👍|9:30 AM}}
```

Monday, 9:02 AM

Alice

Did you see the release notes?

9:02 AM
Bob

Not yet. Anything breaking?

9:03 AM
Alice

Nothing breaking. Two things worth knowing:

  1. builds are faster
  2. --fail-on-broken-links is new
9:04 AM

And the task docs are updated.

9:04 AM

Bob went to read them. This line is ordinary markdown between bubbles.

Bob

Looks good 👍

9:30 AM

Syntax

Every construct starts at the beginning of a line.

LineMeaning
{{Name|message|subtext}}A message from Name, with subtext (usually a time) under it
...A divider across the conversation
# textA centred note outside the bubbles
> Name, Other NameThese speakers’ bubbles go on the right
^ NameThese speakers’ bubbles go in the centre
anything elseOrdinary markdown, shown between the bubbles

Messages

Colours and sides

Each speaker gets one of eight colours, picked from their name, so a person keeps their colour from note to note. The colours adapt to light and dark themes. Override --mbr-chat-c0 through --mbr-chat-c7 in .mbr/user.css to change the palette.

Alignment lines may appear anywhere in the block, even after the messages they affect, and list names separated by commas. Speakers not listed are on the left.

Compatibility with Obsidian Chat View

Featurembr
chat blocks (2.x syntax)Supported
Messages, ..., # comments, > and ^ alignmentSupported
Markdown in message bodiesSupported
Lines that match nothingRendered as markdown (the plugin drops them)
A > quote inside a message bodyStays a quote (the plugin also treats it as an alignment line)
1.x configuration lines ([Name=color], {mw=60, mode=minimal})Silently ignored, so old notes do not show stray config
Per-speaker colours from configurationNot supported — colours come from the name
chat-old, chat-webvtt, chat-zendesk, chat-intercom blocksNot supported; shown as ordinary code blocks

Things to know