# HTML, Markdown, and plain text Clipnote handles three formats, and which one a clip is decides how it looks when someone opens it. | Format | Badge | How it looks | | --- | --- | --- | | HTML | `HTML` | Rendered as written. CSS and JavaScript both run | | Markdown | `MD` | Headings, lists, tables and the rest come out formatted | | Plain text | `TXT` | Exactly the characters you saved, with line breaks and spacing preserved | ## The format is decided for you When you save from the dashboard, you don't choose a format by hand. 1. **If you loaded a file**, the extension wins (`.html` / `.htm` → HTML, `.md` / `.markdown` → Markdown, `.txt` → plain text). 2. **If you pasted**, Clipnote reads the content. Anything that looks like HTML tags makes it HTML; headings, lists, tables, code fences and other Markdown notation make it Markdown; anything else is plain text. Saving from an AI client is the one exception: the client passes `content_type` explicitly, and nothing is guessed. ## Titles are picked up automatically When you create a clip and leave the title empty, Clipnote suggests one from the content. | Format | Where it looks | | --- | --- | | HTML | The `<title>` tag, or the first `<h1>` if there isn't one | | Markdown | `title` in the front matter, or the first `# heading` if there isn't one | | Plain text | The first line that isn't blank | Once you've edited a title yourself, it's never overwritten again. ## What to know about HTML **An HTML clip does exactly what it says.** Styles and scripts aren't restricted. That's why a small tool or a quiz page your AI built can be kept in a state where it still runs. In exchange, clip content is served **from a different domain than Clipnote itself**, inside a tightly restricted frame (a sandboxed iframe). A script inside a clip can't touch your Clipnote session or any of your other clips. Neither side can interfere with the other. That isolation has consequences worth knowing about: - **Cookies and localStorage don't work.** Reopen the page and it starts from scratch. - **Forms can't be submitted.** You can put input fields on the page, but a submit button can't send the data anywhere. - **Links in the content open in a new tab.** The page can't navigate itself somewhere else. Anything self-contained — buttons, animations, a calculator — works without trouble. ## What to know about Markdown ### Front matter Start the content with a YAML block fenced by `---` and it's treated as metadata. ``` --- title: Kyoto itinerary author: me updated: 2026-09-01 --- # Day 1 ... ``` - `title` becomes **the clip's title** and doesn't appear in the body - Every other key is listed at the top of the page as a **metadata block**. Values are shown as literal text and aren't interpreted as Markdown - Don't put anything you wouldn't show a stranger in front matter. On a public clip, readers see it as-is If the content starts with `---` but never closes with a matching `---`, it's just a horizontal rule. ## What to know about plain text No syntax is interpreted at all. `#` and `<b>` show up as the characters you typed. It's the right choice for logs you don't want reformatted, or for keeping an AI's output exactly as it came out. ## Read next - [Saving and organizing clips](https://clipnote.paritto.dev/p/2813a01c-5ba9-4bca-ae90-ef4f76d3cc85) - [Using image assets](https://clipnote.paritto.dev/p/af717712-f644-40bb-b51c-19eb737dea9f) - [Publishing and sharing a clip](https://clipnote.paritto.dev/p/a921f4f9-88ce-45fa-9bf9-264f2f19e6a9)