How to get there: Open any post for editing by clicking All Posts in the sidebar, selecting a post, then clicking Edit. The same formatting options apply in comments, knowledge base articles, and changelog entries.
ProductLift posts support Markdown plus a few extras for images, videos, alerts, mentions, and emoticons.
Newer portals use a WYSIWYG editor by default, where formatting is applied through the toolbar instead of by typing Markdown. Older portals can be set to Markdown mode in Settings, General. The features below describe Markdown input. Output in either mode looks the same.
All of the usual building blocks work.
#, ##, ### through ######.**text**, italic with *text*, ~~text~~.1.) and unordered (- or *).[label](https://example.com).>.``php) to get syntax highlighting.
For a full Markdown reference, see the Markdown Guide.
Use the standard Markdown image syntax.

You can also paste a raw image URL on its own line and ProductLift turns it into an `<img>` tag automatically. Supported extensions are `jpg`, `jpeg`, `png`, `gif`, `webp`, and `svg`.
### Resize images
Append `|widthxheight` (in pixels) to the URL inside the image syntax.
<!--DIMENSION:|600x400-->
Either dimension is optional, so `|600` sets only the width and lets the height scale automatically.
### Image uploads
You don't need to host images yourself. Upload one as a post attachment and ProductLift returns the Markdown snippet to paste into the description.
## Video embeds
Drop a video URL on its own line and ProductLift swaps it for an embedded player. The following providers are recognised.
- **YouTube** (`youtube.com/watch?v=...` or `youtu.be/...`, including the `?start=` parameter)
- **Vimeo**
- **Loom**
- **SoundCloud**
For any other provider, wrap an embed URL in the video tag.
## Alert blocks
Highlight important context with one of four alert types: `info`, `success`, `warning`, or `danger`. An alert starts with `::type` on its own line and ends with `::` on its own line.
This will appear as a blue info box.
Add a title in parentheses right after the type.
This action cannot be undone.
You can reference users and other posts inline.
<@user-uuid> renders a link to the user's profile with their name.#postkey (post not found) renders a card linking to the referenced post.User UUIDs and post keys are visible in admin views and the API. In the WYSIWYG editor, the @ and # menus insert the same tags for you.
Common text emoticons are converted to emoji.
| Text | Emoji |
|---|---|
:) :-) |
😀 |
:D |
😄 |
;) |
😉 |
:P :-P |
😝 |
:( |
😔 |
:O :0 |
😮 |
:| :-| |
😐 |
:/ :-/ |
😐 |
They only convert when surrounded by whitespace, so they won't trigger inside URLs or code.
Bare URLs are turned into clickable links automatically, so you can paste https://example.com without wrapping it in Markdown link syntax. External links open in a new tab. Links pointing back to your own portal or custom domain stay in the same tab.