Format posts

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.

Standard Markdown

All of the usual building blocks work.

  • Headers with #, ##, ### through ######.
  • Bold with **text**, italic with *text*, strikethrough with ~~text~~.
  • Lists, both ordered (1.) and unordered (- or *).
  • Links with [label](https://example.com).
  • Blockquotes with >.
  • Inline code with backticks, and fenced code blocks with triple backticks. Add a language hint (for example `

    ``php) to get syntax highlighting.

    • Tables using the standard pipe syntax.

    For a full Markdown reference, see the Markdown Guide.

    Images

    Use the standard Markdown image syntax.


    Alt text
    
    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.
    

    Diagram<!--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.
    

    [video]https://your-host.example.com/embed/123[/video]
    
    ## 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.
    


    
    Add a title in parentheses right after the type.
    

Mentions

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.

Auto-converted emoticons

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.

Auto-linked URLs

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.