Slack Markup Language



Overview

The basic syntax outlined in John Gruber’s original design document added many of the elements needed on a day-to-day basis, but it wasn’t enough for some people. That’s where extended syntax comes in.

Several individuals and organizations took it upon themselves to extend the basic syntax by adding additional elements like tables, code blocks, syntax highlighting, URL auto-linking, and footnotes. These elements can be enabled by using a lightweight markup language that builds upon the basic Markdown syntax, or by adding an extension to a compatible Markdown processor.

Availability

Duo Access Gateway (DAG), our on-premises SSO product, layers Duo's strong authentication and flexible policy engine on top of Slack logins using the Security Assertion Markup Language (SAML) 2.0 authentication standard.

  • Using `/gone` instead of `/away` lets you mark yourself as away and set a status at the same time. Use it when off for lunch, e.g. `/gone:bread: Lunchtime`, and come back with `/gone`.
  • CommonMark and a few other lightweight markup languages let you type a backslash ( ) at the end of the line, but not all Markdown applications support this, so it isn’t a great option from a compatibility perspective. And at least a couple lightweight markup languages don’t require anything at the end of the line — just type return.

Not all Markdown applications support extended syntax elements. You’ll need to check whether or not the lightweight markup language your application is using supports the extended syntax elements you want to use. If it doesn’t, it may still be possible to enable extensions in your Markdown processor.

Slack Markup Language

Lightweight Markup Languages

There are several lightweight markup languages that are supersets of Markdown. They include Gruber’s basic syntax and build upon it by adding additional elements like tables, code blocks, syntax highlighting, URL auto-linking, and footnotes. Many of the most popular Markdown applications use one of the following lightweight markup languages:

Markdown Processors

There are dozens of Markdown processors available. Many of them allow you to add extensions that enable extended syntax elements. Check your processor’s documentation for more information.

Tables

To add a table, use three or more hyphens (---) to create each column’s header, and use pipes (|) to separate each column. You can optionally add pipes on either end of the table.

The rendered output looks like this:

SyntaxDescription
HeaderTitle
ParagraphText

Cell widths can vary, as shown below. The rendered output will look the same.

Tip: Creating tables with hyphens and pipes can be tedious. To speed up the process, try using the Markdown Tables Generator. Build a table using the graphical interface, and then copy the generated Markdown-formatted text into your file.

Alignment

You can align text in the columns to the left, right, or center by adding a colon (:) to the left, right, or on both side of the hyphens within the header row.

The rendered output looks like this:

SyntaxDescriptionTest Text
HeaderTitleHere’s this
ParagraphTextAnd more

Formatting Text in Tables

You can format the text within tables. For example, you can add links, code (words or phrases in backticks (`) only, not code blocks), and emphasis.

You can’t add headings, blockquotes, lists, horizontal rules, images, or HTML tags.

Escaping Pipe Characters in Tables

Markup Languages List

You can display a pipe (|) character in a table by using its HTML character code (|).

Fenced Code Blocks

The basic Markdown syntax allows you to create code blocks by indenting lines by four spaces or one tab. If you find that inconvenient, try using fenced code blocks. Depending on your Markdown processor or editor, you’ll use three backticks (```) or three tildes (~~~) on the lines before and after the code block. The best part? You don’t have to indent any lines!

The rendered output looks like this:

Tip: Need to display backticks inside a code block? See this section to learn how to escape them.

Syntax Highlighting

Many Markdown processors support syntax highlighting for fenced code blocks. This feature allows you to add color highlighting for whatever language your code was written in. To add syntax highlighting, specify a language next to the backticks before the fenced code block.

The rendered output looks like this:

Footnotes

Footnotes allow you to add notes and references without cluttering the body of the document. When you create a footnote, a superscript number with a link appears where you added the footnote reference. Readers can click the link to jump to the content of the footnote at the bottom of the page.

To create a footnote reference, add a caret and an identifier inside brackets ([^1]). Identifiers can be numbers or words, but they can’t contain spaces or tabs. Identifiers only correlate the footnote reference with the footnote itself — in the output, footnotes are numbered sequentially.

Add the footnote using another caret and number inside brackets with a colon and text ([^1]: My footnote.). You don’t have to put footnotes at the end of the document. You can put them anywhere except inside other elements like lists, block quotes, and tables.

The rendered output looks like this:

Here’s a simple footnote,1 and here’s a longer one.2

  1. This is the first footnote. ↩

  2. Here’s one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    { my code }

    Add as many paragraphs as you like. ↩

Heading IDs

Many Markdown processors support custom IDs for headings — some Markdown processors automatically add them. Adding custom IDs allows you to link directly to headings and modify them with CSS. To add a custom heading ID, enclose the custom ID in curly braces on the same line as the heading.

The HTML looks like this:

Linking to Heading IDs

You can link to headings with custom IDs in the file by creating a standard link with a number sign (#) followed by the custom heading ID.

MarkdownHTMLRendered Output
[Heading IDs](#heading-ids) <a href='#heading-ids'>Heading IDs</a>Heading IDs

Other websites can link to the heading by adding the custom heading ID to the full URL of the webpage (e.g, [Heading IDs](https://www.markdownguide.org/extended-syntax#heading-ids)).

Definition Lists

Some Markdown processors allow you to create definition lists of terms and their corresponding definitions. To create a definition list, type the term on the first line. On the next line, type a colon followed by a space and the definition.

The HTML looks like this:

The rendered output looks like this:

First Term
This is the definition of the first term.
Second Term
This is one definition of the second term.
This is another definition of the second term.

Strikethrough

You can strikethrough words by putting a horizontal line through the center of them. The result looks like this. This feature allows you to indicate that certain words are a mistake not meant for inclusion in the document. To strikethrough words, use two tilde symbols (~~) before and after the words.

The rendered output looks like this:

The world is flat. We now know that the world is round.

Task Lists

Task lists allow you to create a list of items with checkboxes. In Markdown applications that support task lists, checkboxes will be displayed next to the content. To create a task list, add dashes (-) and brackets with a space ([ ]) in front of task list items. To select a checkbox, add an x in between the brackets ([x]).

The rendered output looks like this:

Emoji

There are two ways to add emoji to Markdown files: copy and paste the emoji into your Markdown-formatted text, or type emoji shortcodes.

Copying and Pasting Emoji

In most cases, you can simply copy an emoji from a source like Emojipedia and paste it into your document. Many Markdown applications will automatically display the emoji in the Markdown-formatted text. The HTML and PDF files you export from your Markdown application should display the emoji.

Tip: If you're using a static site generator, make sure you encode HTML pages as UTF-8.

Using Emoji Shortcodes

Some Markdown applications allow you to insert emoji by typing emoji shortcodes. These begin and end with a colon and include the name of an emoji.

The rendered output looks like this:

Gone camping! ⛺ Be back soon.

That is so funny! 😂

Note: You can use this list of emoji shortcodes, but keep in mind that emoji shortcodes vary from application to application. Refer to your Markdown application's documentation for more information.

Automatic URL Linking

Many Markdown processors automatically turn URLs into links. That means if you type http://www.example.com, your Markdown processor will automatically turn it into a link even though you haven’t used brackets.

The rendered output looks like this:

Language

Disabling Automatic URL Linking

If you don’t want a URL to be automatically linked, you can remove the link by denoting the URL as code with backticks.

The rendered output looks like this:

http://www.example.com

Take your Markdown skills to the next level.

Learn Markdown in 60 pages. Designed for both novices and experts, The Markdown Guide book is a comprehensive reference that has everything you need to get started and master Markdown syntax.

Get the Book
Want to learn more Markdown?

Don't stop now! 😎 Star the GitHub repository and then enter your email address below to receive new Markdown tutorials via email. No spam!

Send a success/error message to your Slack group

Create an Incoming WebHook and export this as SLACK_URL. Can send a message to #channel (by default), a direct message to @username or a message to a private group group with success (green) or failure (red) status.

slack
Supported platformsios, android, mac
Author@KrauseFx

2 Examples

Parameters

KeyDescriptionDefault
messageThe message that should be displayed on Slack. This supports the standard Slack markup language
pretextThis is optional text that appears above the message attachment block. This supports the standard Slack markup language
channel#channel or @username
use_webhook_configured_username_and_iconUse webhook's default username and icon settings? (true/false)false
slack_urlCreate an Incoming WebHook for your Slack group
usernameOverrides the webhook's username property if use_webhook_configured_username_and_icon is falsefastlane
icon_urlOverrides the webhook's image property if use_webhook_configured_username_and_icon is falsehttps://fastlane.tools/assets/img/fastlane_icon.png
payloadAdd additional information to this post. payload must be a hash containing any key with any value{}
default_payloadsSpecifies default payloads to include. Pass an empty array to suppress all the default payloads['lane', 'test_result', 'git_branch', 'git_author', 'last_git_commit', 'last_git_commit_hash']
attachment_propertiesMerge additional properties in the slack attachment, see https://api.slack.com/docs/attachments{}
successWas this build successful? (true/false)true
fail_on_errorShould an error sending the slack notification cause a failure? (true/false)true
link_namesFind and link channel names and usernames (true/false)false

* = default value is dependent on the user's system

Documentation

To show the documentation in your terminal, run

Slack Markup Language Definition

CLI

It is recommended to add the above action into your Fastfile, however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal

To pass parameters, make use of the : symbol, for example

It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:'1,2,3'). Hashes are not currently supported.

It is recommended to add all fastlane actions you use to your Fastfile.

Wiki Markup Language

Source code

Simple Markup Language

This action, just like the rest of fastlane, is fully open source, view the source code on GitHub