Slack 块降价语法在哈希表中不起作用
Slack block markdown syntax not working in hashtable
我正在使用 Powershell 中的哈希表生成 Slack 消息。
哈希表的生成方式如下:
$serviceitems = foreach ($r in $rows) {
@{
type = 'section'
text = @{
type = 'mrkdwn'
text = "*{0}*\n{1:C2}" -f $r[1], $r[0]
}
}
@{
type = 'divider'
}
}
消息显示在 Slack 中,但 \n
打印出来,而不是像它应该的那样换行。两个 *
使文本按预期加粗。我尝试在 \n
之前添加一个反引号,还尝试添加一个额外的 \
。两者都没有改变。
\
在 PowerShell 字符串中没有特殊含义。
PowerShell 使用 `
(so-called 反引号)作为转义字符,因此您需要在 expandable (double-quoted) string ("..."
) 中使用转义序列 `n
以嵌入实际的换行符(LF 字符)在字符串中。
简单示例:
PS> "line 1`nline 2" | ForEach-Object { "[$_]" }
[line 1
line 2]
PowerShell 愉快地接受单独的 LF 作为换行符;如果您确实需要 CRLF 换行符,请使用 `r`n
。要引用 platform-native 换行序列,请使用 [Environment]::NewLine
($([Environment]::NewLine)
在 "..."
中使用它)。
另请参阅:
- 概念性 about_Special_Characters 帮助主题。
至于你试过的:
I tried adding a backtick to before \n
and also tried adding an extra \
.
正如顶部所暗示的,\
根本不应该出现在图片中。
尝试 `\n
导致 `
转义 \
字符,这没有任何效果(忽略转义 non-special 字符);换句话说:"`\n"
与 "\n"
相同,即 verbatim \n
我正在使用 Powershell 中的哈希表生成 Slack 消息。
哈希表的生成方式如下:
$serviceitems = foreach ($r in $rows) {
@{
type = 'section'
text = @{
type = 'mrkdwn'
text = "*{0}*\n{1:C2}" -f $r[1], $r[0]
}
}
@{
type = 'divider'
}
}
消息显示在 Slack 中,但 \n
打印出来,而不是像它应该的那样换行。两个 *
使文本按预期加粗。我尝试在 \n
之前添加一个反引号,还尝试添加一个额外的 \
。两者都没有改变。
\
在 PowerShell 字符串中没有特殊含义。
PowerShell 使用 `
(so-called 反引号)作为转义字符,因此您需要在 expandable (double-quoted) string ("..."
) 中使用转义序列 `n
以嵌入实际的换行符(LF 字符)在字符串中。
简单示例:
PS> "line 1`nline 2" | ForEach-Object { "[$_]" }
[line 1
line 2]
PowerShell 愉快地接受单独的 LF 作为换行符;如果您确实需要 CRLF 换行符,请使用 `r`n
。要引用 platform-native 换行序列,请使用 [Environment]::NewLine
($([Environment]::NewLine)
在 "..."
中使用它)。
另请参阅:
- 概念性 about_Special_Characters 帮助主题。
至于你试过的:
I tried adding a backtick to before
\n
and also tried adding an extra\
.
正如顶部所暗示的,\
根本不应该出现在图片中。
尝试 `\n
导致 `
转义 \
字符,这没有任何效果(忽略转义 non-special 字符);换句话说:"`\n"
与 "\n"
相同,即 verbatim \n