user3450049
user3450049

Reputation: 865

How to insert newline into MS Teams markdown?

When I enter markdown format in MS Teams (```), how do I create a newline in a string? When a human types in markdown format, pressing Enter results in a newline. When I send a string with <br>, \n or \r\n in text to the connector, it does not create a newline. I've found that I can escape markdown, enter a <br>, and enter markdown again, but then it reformats each line to remove whitespace.

So how can I create a newline and maintain my spacing?

If this matters, I'm using pymsteams connector.

Edit: adding code example

import pymsteams
msg = pymsteams.connectorcard('...')
txt = '``` some text \n second line ```'
msg.text(txt)
msg.send()

I've also tried txt = '``` some text \r\n second line ```' and txt = '``` some text <br> second line ```', but none of the 3 options insert a newline between "some text" and "second line".

Upvotes: 18

Views: 29193

Answers (2)

Adrian Solis
Adrian Solis

Reputation: 941

If you're trying to just send a connector card w/ text in markdown, there's no need to enclose the text in triple backticks (unless you specifically want preformatted text). We automatically treat the text in a connector card as markdown, unless you set the markdown property to false.

To add line break in markdown, end the line with 3 spaces + linebreak. For example:

msg.text("Line 1   \nLine 2")

Connector cards sent by a bot:

If you added those triple backticks to get preformatted text, then you need to place the backticks on their own lines to allow multiline text. For example:

msg.text("```\nLine 1\nLine 2\n```")

Connector cards sent by a Connector:

If you're developing a connector or using the incoming webhook connector, that uses a different parser that doesn't convert "```" markdown to a <pre> tag. It's best to just fall back to HTML, as Bill suggested below. For example:

msg.text("<pre>Line 1\nLine 2</pre>")

HTML tags work inside a <pre> element, so as you found out, this is equivalent:

msg.text("<pre>Line 1<br>Line 2</pre>")

Upvotes: 40

Bill Bliss - MSFT
Bill Bliss - MSFT

Reputation: 3581

You didn't provide any code, so it's hard to say exactly what you're trying, but if I set the text value in the card to this:

"text": "text": "There is a problem with Push notifications.<br><br>They don't seem to be picked up by the connector."

This how it's rendered:

enter image description here

Upvotes: 6

Related Questions