[{"data":1,"prerenderedAt":76},["Reactive",2],{"blog-post-discord-markdown-quickstart-guide":3},{"slug":4,"title":5,"description":6,"excerpt":7,"date":8,"category":9,"author":10,"keywords":11,"readingMinutes":12,"html":13,"headings":14,"tools":49,"related":52},"discord-markdown-quickstart-guide","Discord Markdown Guide: Bold, Spoilers, Headers, Code Blocks and What Doesn't Work","Every Discord text formatting option in one place: bold, italics, underline, spoilers, headers, lists, quotes, code blocks with syntax highlighting, masked links, and how to escape characters.","Discord uses its own flavor of Markdown. Most of the basics match what you know from GitHub or any other Markdown editor, but a few things are different: underline exists, spoilers exist, and…","2024-07-06","Tutorial","Matthew Rathbone","discord markdown, discord markdown guide, discord text formatting, discord spoiler, discord code block",4,"\u003Cp>Discord uses its own flavor of Markdown. Most of the basics match what you know from GitHub or any other Markdown editor, but a few things are different: underline exists, spoilers exist, and tables and images do not. This page is a reference for what works in a Discord message today.\u003C/p>\n\u003Ch2 id=\"quick-reference\">Quick reference\u003C/h2>\n\u003Cdiv class=\"table-responsive\">\u003Ctable class=\"table\">\n\u003Cthead>\n\u003Ctr>\n\u003Cth>You type\u003C/th>\n\u003Cth>You get\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>*italic*\u003C/code> or \u003Ccode>_italic_\u003C/code>\u003C/td>\n\u003Ctd>\u003Cem>italic\u003C/em>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>**bold**\u003C/code>\u003C/td>\n\u003Ctd>\u003Cstrong>bold\u003C/strong>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>***bold italic***\u003C/code>\u003C/td>\n\u003Ctd>\u003Cem>\u003Cstrong>bold italic\u003C/strong>\u003C/em>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>__underline__\u003C/code>\u003C/td>\n\u003Ctd>underlined text\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>~~strikethrough~~\u003C/code>\u003C/td>\n\u003Ctd>\u003Cdel>strikethrough\u003C/del>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>`inline code`\u003C/code>\u003C/td>\n\u003Ctd>\u003Ccode>inline code\u003C/code>\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>&gt; quote\u003C/code>\u003C/td>\n\u003Ctd>single-line block quote\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>&gt;&gt;&gt; quote\u003C/code>\u003C/td>\n\u003Ctd>quote that runs to the end of the message\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode># Heading\u003C/code>\u003C/td>\n\u003Ctd>large heading\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>-# small text\u003C/code>\u003C/td>\n\u003Ctd>small grey subtext\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>[text](https://example.com)\u003C/code>\u003C/td>\n\u003Ctd>masked link\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\u003C/div>\n\u003Cp>You can combine them. \u003Ccode>__**bold underline**__\u003C/code> works, and spoilers (covered below) can wrap any other style.\u003C/p>\n\u003Ch2 id=\"text-styles\">Text styles\u003C/h2>\n\u003Cp>Wrap the text in the symbols on both sides, with no space between the symbol and the text:\u003C/p>\n\u003Cpre>\u003Ccode>*italic* or _italic_\n**bold**\n__underline__\n~~strikethrough~~\n***bold italic***\n__***underline bold italic***__\n\u003C/code>\u003C/pre>\u003Cp>The one that surprises people coming from other Markdown tools is underline. In standard Markdown, double underscores mean bold. In Discord, \u003Ccode>__text__\u003C/code> is underline and \u003Ccode>**text**\u003C/code> is bold.\u003C/p>\n\u003Ch2 id=\"spoilers\">Spoilers\u003C/h2>\n\u003Cp>Wrap text in two vertical bars on each side:\u003C/p>\n\u003Cpre>\u003Ccode>||this is hidden until someone clicks it||\n\u003C/code>\u003C/pre>\u003Cp>For an image or file attachment, tick &quot;Mark as spoiler&quot; in the upload dialog, or put \u003Ccode>SPOILER_\u003C/code> at the start of the file name.\u003C/p>\n\u003Ch2 id=\"headers\">Headers\u003C/h2>\n\u003Cp>Discord supports three heading levels at the start of a line, followed by a space:\u003C/p>\n\u003Cpre>\u003Ccode># Large heading\n## Medium heading\n### Small heading\n\u003C/code>\u003C/pre>\u003Cp>Headers need to be at the very start of the line. Indenting them or putting text in front of the \u003Ccode>#\u003C/code> turns them back into plain text. Only three levels exist, so \u003Ccode>####\u003C/code> is not a heading.\u003C/p>\n\u003Cp>For small, dim text under a message, start the line with \u003Ccode>-#\u003C/code>:\u003C/p>\n\u003Cpre>\u003Ccode>-# This renders as small subtext\n\u003C/code>\u003C/pre>\u003Ch2 id=\"lists\">Lists\u003C/h2>\n\u003Cp>Start a line with \u003Ccode>-\u003C/code> or \u003Ccode>*\u003C/code> followed by a space for bullets, or use \u003Ccode>1.\u003C/code> for numbered lists. Indent two spaces to nest:\u003C/p>\n\u003Cpre>\u003Ccode>- First item\n  - Nested item\n- Second item\n\n1. Step one\n2. Step two\n\u003C/code>\u003C/pre>\u003Cp>If you want a line that starts with a literal number and a period without it turning into a list, put a backslash before the period: \u003Ccode>1\\. text\u003C/code>.\u003C/p>\n\u003Ch2 id=\"quotes\">Quotes\u003C/h2>\n\u003Cpre>\u003Ccode>&gt; One-line quote\n\n&gt;&gt;&gt; Everything after this\nis part of the quote,\nincluding new lines.\n\u003C/code>\u003C/pre>\u003Cp>\u003Ccode>&gt;\u003C/code> quotes one line. \u003Ccode>&gt;&gt;&gt;\u003C/code> quotes everything to the end of the message, which makes it the better choice for multi-paragraph quotes. You cannot close a \u003Ccode>&gt;&gt;&gt;\u003C/code> quote, so put it last in the message.\u003C/p>\n\u003Ch2 id=\"code\">Code\u003C/h2>\n\u003Cp>Use single backticks for inline code and triple backticks for blocks. Add a language name right after the opening backticks to get syntax highlighting:\u003C/p>\n\u003Cpre>\u003Ccode>```js\nconst greeting = &#39;hello&#39;;\nconsole.log(greeting);\n```\n\u003C/code>\u003C/pre>\u003Cp>Discord uses highlight.js for this, so common names like \u003Ccode>js\u003C/code>, \u003Ccode>python\u003C/code>, \u003Ccode>json\u003C/code>, \u003Ccode>css\u003C/code>, \u003Ccode>bash\u003C/code>, \u003Ccode>diff\u003C/code> and \u003Ccode>sql\u003C/code> all work. The \u003Ccode>diff\u003C/code> language is useful for showing changes, with lines starting \u003Ccode>+\u003C/code> in green and \u003Ccode>-\u003C/code> in red.\u003C/p>\n\u003Cp>Formatting characters inside a code block are not interpreted, so it is also the easiest way to show someone the raw Markdown you typed.\u003C/p>\n\u003Ch2 id=\"links\">Links\u003C/h2>\n\u003Cp>Pasted URLs become links automatically. To show different text, use the masked link form:\u003C/p>\n\u003Cpre>\u003Ccode>[Markdown reference](https://www.markdowntools.com)\n\u003C/code>\u003C/pre>\u003Cp>Masked links work in normal messages and in embeds. To stop Discord from generating a preview card, wrap the URL in angle brackets: \u003Ccode>&lt;https://example.com&gt;\u003C/code>.\u003C/p>\n\u003Ch2 id=\"escaping-characters\">Escaping characters\u003C/h2>\n\u003Cp>Put a backslash in front of a formatting character to show it literally:\u003C/p>\n\u003Cpre>\u003Ccode>\\*not italic\\*\n\\_\\_not underlined\\_\\_\n\\# not a heading\n\u003C/code>\u003C/pre>\u003Cp>This is what you need when a username, filename or message contains underscores or asterisks that Discord keeps trying to format.\u003C/p>\n\u003Ch2 id=\"what-does-not-work\">What does not work\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Tables.\u003C/strong> Discord does not render Markdown tables. If you need a table in a message, put it in a code block so the spacing stays aligned. You can build and align one with the \u003Ca href=\"/tools/markdown-table-formatter\">Markdown Table Formatter\u003C/a>.\u003C/li>\n\u003Cli>\u003Cstrong>Images.\u003C/strong> The \u003Ccode>![alt](url)\u003C/code> syntax does nothing. Upload the image or paste its URL.\u003C/li>\n\u003Cli>\u003Cstrong>Horizontal rules.\u003C/strong> \u003Ccode>---\u003C/code> is shown as plain text.\u003C/li>\n\u003Cli>\u003Cstrong>HTML.\u003C/strong> Tags like \u003Ccode>&lt;b&gt;\u003C/code> or \u003Ccode>&lt;br&gt;\u003C/code> are not interpreted.\u003C/li>\n\u003Cli>\u003Cstrong>Task lists.\u003C/strong> \u003Ccode>- [ ]\u003C/code> shows as literal text.\u003C/li>\n\u003Cli>\u003Cstrong>Colored text.\u003C/strong> There is no color syntax. The only colors come from code block syntax highlighting, which is a workaround rather than a feature.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"where-the-rules-differ\">Where the rules differ\u003C/h2>\n\u003Cp>Formatting is processed by the client. Bots and webhooks send the same Markdown, but embed descriptions and field values support a slightly different subset than normal messages (for example, masked links work in embed descriptions and field values but not in some other embed fields). If a bot message looks wrong, test the same text in a regular message first to see whether the problem is your Markdown or the embed.\u003C/p>\n\u003Cp>For how Discord compares with GitHub, Slack, Notion and other tools, see the \u003Ca href=\"/blog/markdown-platform-compatibility-guide\">platform compatibility guide\u003C/a>. If you are pasting Markdown from another tool into Discord, the \u003Ca href=\"/tools/markdown-to-plain-text\">Markdown to Plain Text\u003C/a> converter strips the syntax Discord does not support. For the standard syntax behind these examples, see our posts on \u003Ca href=\"/blog/markdown-hyperlink\">hyperlinks\u003C/a>, \u003Ca href=\"/blog/markdown-strikethrough\">strikethrough\u003C/a> and \u003Ca href=\"/blog/how-to-underline-text-in-markdown\">underlining text\u003C/a>.\u003C/p>\n",[15,19,22,25,28,31,34,37,40,43,46],{"id":16,"text":17,"level":18},"quick-reference","Quick reference",2,{"id":20,"text":21,"level":18},"text-styles","Text styles",{"id":23,"text":24,"level":18},"spoilers","Spoilers",{"id":26,"text":27,"level":18},"headers","Headers",{"id":29,"text":30,"level":18},"lists","Lists",{"id":32,"text":33,"level":18},"quotes","Quotes",{"id":35,"text":36,"level":18},"code","Code",{"id":38,"text":39,"level":18},"links","Links",{"id":41,"text":42,"level":18},"escaping-characters","Escaping characters",{"id":44,"text":45,"level":18},"what-does-not-work","What does not work",{"id":47,"text":48,"level":18},"where-the-rules-differ","Where the rules differ",[50,51],"markdown-table-formatter","markdown-to-plain-text",[53,61,68],{"slug":54,"title":55,"description":56,"excerpt":57,"date":58,"category":9,"author":10,"keywords":59,"readingMinutes":60},"markdown-syntax-highlighting-complete-guide","Markdown Syntax Highlighting: Complete Guide for Code Blocks","Master syntax highlighting in Markdown code blocks across platforms. Learn language identifiers, custom highlighting, and platform-specific features for better code presentation.","Code blocks are one of Markdown's most powerful features for technical writing, and syntax highlighting transforms plain code into readable, professionally formatted content. Understanding how to…","2025-08-18","markdown syntax highlighting, markdown code blocks, language highlighting, code formatting markdown, syntax coloring markdown, programming language markdown",8,{"slug":62,"title":63,"description":64,"excerpt":65,"date":66,"category":9,"author":10,"keywords":67,"readingMinutes":18},"markdown-escape-backticks","How to Escape Backticks in Markdown for Code Blocks","Learn how to escape backticks in Markdown to correctly format code blocks. This guide provides simple examples and solutions.","One of the most common issues developers encounter when writing in Markdown concerns the use of backticks. Backticks () are used in Markdown to denote code blocks, but what if you want to use a…","2024-07-13","Markdown escape backticks",{"slug":69,"title":70,"description":71,"excerpt":72,"date":73,"category":9,"author":10,"keywords":74,"readingMinutes":75},"how-to-add-line-numbers-to-code-blocks-in-markdown","How to Add Line Numbers to Code Blocks in Markdown: Complete Guide","Learn how to display line numbers in Markdown code blocks using GitHub, Jekyll, Hugo, and other platforms. Includes syntax highlighting and customization options.","Line numbers in code blocks significantly improve code readability and make it easier to reference specific lines in documentation, tutorials, and code reviews. While standard Markdown doesn't…","2025-08-13","markdown line numbers, code block line numbers, markdown syntax highlighting, numbered code blocks, markdown programming examples",6,1792184940479]