{"title":"markdown - Liquid Filter Reference","slug":"markdown-filter-reference","url":"https://support.storeconnect.com/articles/markdown-filter-reference","url_markdown":"https://support.storeconnect.com/articles/markdown-filter-reference.md","subtitle":null,"summary":"Converts a Markdown string to sanitized HTML using GitHub-Flavored Markdown . Output is filtered through an HTML allowlist of permitted tags and attributes.","type":"Developer_Documentation","video_url":"","keywords":"liquid, filters, markdown, text, storeconnect","last_modified":"2026-08-21T07:12:35+0000","body_markdown":"## Description\n\nConverts a Markdown string to HTML using GitHub-Flavored Markdown (GFM). The output is sanitized using an HTML allowlist — only permitted tags and attributes pass through; all others are stripped.\n\n**Permitted HTML tags:** `p`, `br`, `h1`–`h6`, `ul`, `ol`, `li`, `a`, `strong`, `em`, `code`, `pre`, `blockquote`, `table`, `thead`, `tbody`, `tr`, `th`, `td`, `hr`, `del`, `img`, `span`, `div`\n\n**Permitted HTML attributes:** `href`, `src`, `alt`, `title`, `id`, `class`, `lang`\n\n| Property | Value |\n|----------|-------|\n| **Return Type** | String (HTML) |\n| **Category** | Text |\n\n## Syntax\n\n\n```liquid\n\n{{ string | markdown }}\n```\n\n\n## Supported Markdown features\n\n- Headings (`#` through `######`, with auto-generated IDs)\n- Bold (`**text**`), italic (`*text*`), strikethrough (`~~text~~`)\n- Inline code (`` `code` ``) and fenced code blocks with optional language\n- Links and images\n- Ordered and unordered lists (with nesting)\n- Blockquotes\n- Tables\n- Horizontal rules\n\n## Examples\n\n### Inline formatting\n\n\n```liquid\n\n{{ \"This is **bold**, *italic*, and `inline code`.\" | markdown }}\n```\n\n\n**Output:**\n\n```html\n\n\u003cp\u003eThis is \u003cstrong\u003ebold\u003c/strong\u003e, \u003cem\u003eitalic\u003c/em\u003e, and \u003ccode\u003einline code\u003c/code\u003e.\u003c/p\u003e\n```\n\n### Headings\n\n\n```liquid\n\n{{ \"# Page title\" | markdown }}\n```\n\n\n**Output:**\n\n```html\n\n\u003ch1 id=\"page-title\"\u003ePage title\u003c/h1\u003e\n```\n\n### Links\n\n\n```liquid\n\n{{ \"[Visit our store](https://example.com)\" | markdown }}\n```\n\n\n**Output:**\n\n```html\n\n\u003cp\u003e\u003ca href=\"https://example.com\"\u003eVisit our store\u003c/a\u003e\u003c/p\u003e\n```\n\n### Unordered list\n\n\n```liquid\n\n{{ \"- Item 1\\n- Item 2\\n- Item 3\" | markdown }}\n```\n\n\n**Output:**\n\n```html\n\n\u003cul\u003e\n  \u003cli\u003eItem 1\u003c/li\u003e\n  \u003cli\u003eItem 2\u003c/li\u003e\n  \u003cli\u003eItem 3\u003c/li\u003e\n\u003c/ul\u003e\n```\n\n### Ordered list\n\n\n```liquid\n\n{{ \"1. First\\n2. Second\\n3. Third\" | markdown }}\n```\n\n\n**Output:**\n\n```html\n\n\u003col\u003e\n  \u003cli\u003eFirst\u003c/li\u003e\n  \u003cli\u003eSecond\u003c/li\u003e\n  \u003cli\u003eThird\u003c/li\u003e\n\u003c/ol\u003e\n```\n\n### Using a Liquid variable\n\n\n```liquid\n\n{% assign description = product.s_c__description__c %}\n{{ description | markdown }}\n```\n\n\n:::note\nIf the input is `nil` or an empty string, the filter returns an empty string.\n:::"}