Read in:
English

Markdown syntax

Notes in trip2g are Markdown files. Write them in Obsidian, sync, and they appear on your site with formatting intact. This page covers the syntax trip2g renders and a few rendering behaviors specific to the platform.

Headings

# Heading 1
## Heading 2
### Heading 3
#### Heading 4

More # symbols mean a smaller heading. Use ## and ### for most sections — # is reserved for the page title.

Text emphasis

**bold**
*italic*
***bold and italic***
~~strikethrough~~
`inline code`

Result: bold, italic, bold and italic, strikethrough, inline code

Lists

Unordered:

- first item
- second item
  - nested item

Ordered:

1. first item
2. second item
3. third item

Task lists

- [x] done
- [ ] not done

Rendered as checkboxes on the published page. The state is visual only — readers cannot check or uncheck them.

External link:

[link text](https://example.com)

Wikilink to another note:

[[Note name]]
[[Note name|Custom display text]]

Wikilinks work the same way as in Obsidian. trip2g resolves them globally across the vault: [[note]] finds the file by name regardless of where in the vault the linking note lives. If two files share the same name, the one closer to the vault root takes priority — use [[folder/note]] to be explicit.

A wikilink to a note that exists on the site becomes a live <a> tag. A wikilink to a note that does not exist on the site renders as underlined text (no link).

Images

From the vault (wikilink embed):

![[assets/photo.png]]
![[assets/photo.png|alt text]]
![[assets/photo.png|alt text|300x200]]
![[assets/photo.png|300]]

Size can be specified after a | as widthxheight or just width. Height is optional.

External image:

![alt text](https://example.com/image.png)

Standard Markdown image syntax also works with local vault files:

![](photo.png)

Video files

Embed a video file from the vault with ![[...]]:

![[demo.mp4]]

Supported formats: .mp4, .avi, .mov, .mkv, .webm, .m4v. The file renders as a <video> player with controls.

Audio files

Embed an audio file the same way:

![[recording.mp3]]

Supported formats: .mp3, .wav, .ogg, .flac, .m4a, .aac. The file renders as an <audio> player with controls. Readers can play, pause, and scrub without leaving the page.

Standard Markdown image syntax also triggers the audio player for audio files:

![](recording.mp3)

When you embed a document file, trip2g renders it as a download link rather than trying to display it inline:

![[report.pdf]]
![[data.xlsx]]

Supported as download links: .pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .rtf, .odt, .ods, .odp, .csv, .zip, .rar, .7z.

The link shows the filename and downloads the file when clicked.

Blockquotes

> A blockquote.
> This continues on the next line.
>
> A new paragraph within the same quote.

Callouts

A callout is a blockquote whose first line is a [!type] marker. trip2g renders it as a styled block with an icon and title.

Basic callout — the type name becomes the title:

> [!note]
> Content of the callout.

Custom title — add text after the type:

> [!info] Getting Started
> This title overrides the default.

Foldable collapsed — readers click to expand:

> [!tip]- How to fold a callout
> Add `-` after the type to start collapsed.

Foldable expanded — starts open, can be collapsed:

> [!faq]+ Is this open by default?
> Yes. `+` means expanded by default.

Built-in types with distinct icons: note, abstract, summary, tldr, info, todo, tip, hint, important, success, check, done, question, help, faq, warning, caution, attention, failure, fail, missing, danger, error, bug, example, quote, cite. Custom types are also valid — they render with a fallback icon.

Comments

Text wrapped in %% is an Obsidian comment and is removed from the rendered output.

Inline comment — stripped between surrounding text:

The word BEFORE%%this is hidden%%AFTER is visible.

Block comment — a standalone %% on its own line opens the comment; a second standalone %% closes it. Everything in between is hidden:

%%
This entire block is stripped from the page.
Multiple lines are hidden.
%%

Literal %% inside fenced code blocks and inline code spans is preserved as-is.

Code

Inline: `code`

Fenced block with syntax highlighting:

```python
def greet(name):
    return f"Hello, {name}!"
```

Specify the language after the opening fence. Supported languages include python, javascript, typescript, go, bash, json, yaml, sql, and many others.

A block without a language tag renders as plain monospace text.

Tables

| Column 1 | Column 2 | Column 3 |
|----------|----------|----------|
| A        | B        | C        |
| D        | E        | F        |

Column alignment:

| Left     | Center   | Right    |
|:---------|:--------:|---------:|
| text     | text     | text     |

Horizontal rule

---

Three dashes produce a horizontal divider.

Escaping

Prefix a special character with \ to render it literally:

\*not italic\*
\`not code\`
\[[not a wikilink\]]

Frontmatter

A YAML block at the top of the file sets metadata for the note:

---
title: "My note title"
free: true
---

Note body starts here.

Frontmatter controls how trip2g publishes the note: its URL, access level, scheduled Telegram posts, and more. See en/user/publishing for the full property reference.


Rendering specifics

What trip2g renders

The renderer is built on Goldmark with the GitHub Flavored Markdown (GFM) extension. This means the following work out of the box:

  • Standard Markdown: headings, bold, italic, blockquotes, fenced code blocks, horizontal rules
  • GFM additions: tables, strikethrough (~~), task lists (- [x]), autolinks (bare URLs become clickable links)
  • Wikilinks and embed syntax (![[...]])
  • Syntax highlighting in code blocks (via the Chroma library, server-side — no client-side JS needed)
  • Obsidian callouts (> [!type]) rendered as styled blocks with icon and title
  • Obsidian %% comments stripped from output (inline and block)
  • YouTube URLs in image syntax render as embedded players: ![](https://youtube.com/watch?v=...)
  • Audio files embed as <audio controls> players
  • Video files embed as <video controls> players
  • Document files embed as download links

What is not rendered

  • Obsidian %% comments — text inside %%...%% (inline or block) is stripped from the output. It does not appear on the published page.
  • Footnotes — the [^1] / [^1]: ... syntax is not processed. The markers appear as literal text.
  • Math / LaTeX$...$ and $$...$$ blocks are not rendered. The content appears as plain text.
  • Smart quotes — straight quotes "..." and '...' are not converted to curly quotes.
  • Raw HTML — arbitrary inline HTML is sanitized. Only a small set of safe tags passes through (<u>, <mark>, <sup>, <sub>, <strong>, <em>).

trip2g resolves wikilinks the same way Obsidian does: globally, by filename, not by relative path. [[note]] matches any file named note.md anywhere in the vault. When names conflict, the file with the shorter path from the vault root wins.

Use an explicit path to target a specific file: [[folder/note]].

Asset URLs

Files you attach to a note (images, audio, video, documents) are stored in the cloud and served from a signed URL. URLs are refreshed automatically — you do not need to re-sync files to keep them accessible.