# @atomist/slack-messages 中文文档

规范地址：https://npmcn.com/package/%40atomist/slack-messages/

版本：1\.2\.2
npm 元数据更新时间：2023-02-23T18:00:06.421Z
中文译文更新时间：2026-11-07T03:39:25.085Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40atomist/slack-messages
原文对照：https://npmcn.com/package/%40atomist/slack-messages/?lang=original
项目主页：https://github.com/atomist/slack-messages#readme
源码仓库：https://github.com/atomist/slack-messages

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：70.4 kB，28 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=8\.2\.0
- 运行依赖：0 个
- 首次发布：2017-05-09T15:48:45.883Z
- 最新版本发布：2021-03-15T18:13:56.478Z
- 近 30 天下载量：37543（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：60（近 12 个月 0 个）

## 中文简介

用于创建格式化Slack消息的原子主义工具

## 安装

```sh
npm install @atomist/slack-messages
```

也可以使用：`pnpm add @atomist/slack-messages`、`yarn add @atomist/slack-messages`、`bun add @atomist/slack-messages`

## README

# @atomist/slack-messages (解剖学家)

[![atomist sdm goals](http://badge.atomist.com/T29E48P34/atomist/slack-messages/9e7d7699-14a8-4273-945b-9e5ca08aa38f)](https://app.atomist.com/workspace/T29E48P34) [![npm version](https://img.shields.io/npm/v/@atomist/slack-messages.svg)](https://www.npmjs.com/package/@atomist/slack-messages)

[节点.js](https://nodejs.org/ "Node.js") 模块,有助于创建格式良好的 [偷懒](https://slack.com/ "Slack") 通过 `@atomist` 从你的机器人 软件传送机(SDM). 此模块还有利于添加 执行 SDM 命令的 Slack 信件的动作.

对发送Slack Block消息的支持也得到了支持.

见 [原子学文献](https://docs.atomist.com/ "Atomist Documentation") 更多信息,请访问infofinland上的 sDM是什么,他们能为你做什么 使用原子学 API 软件.

## 使用

将信件建构为 : [错误消息 格式化 API](https://api.slack.com/docs/message-formatting "Slack message formatting API")。 。 。 .

```typescript
import { SlackMessage } from "@atomist/slack-messages";
// A very simple message
const msg: SlackMessage = { text: "Simple message" };
```

```typescript
import {
    escape,
    SlackMessage,
    url,
} from "@atomist/slack-messages";
// Here is an example of a message with a Slack action (button).
const msg: SlackMessage = {
    text: `${url(user.url, "@" + user.name)} opened issue: ${url(issue.url, issue.title)}`,
    attachments: [
        {
            text: escape(issue.body),
            fallback: escape(issue.title),
            mrkdwn_in: ["text"],
            actions: [
                {
                    text: "Close issue",
                    type: "button",
                    name: "closeissue",
                    value: "somebuttonid",
                },
            ],
            callback_id: "cllbck1",
        },
    ],
};
```

然后将信息传递给 `render(msg)`这将构建一个 JSON 消息的字符串表示 :

```typescript
import { render } from "@atomist/slack-messages"

const renderedMsg = render(msg);
```

或者制作一个漂亮的JSON字符串:

```typescript
const renderedMsg = render(msg, true);
```

这将产生以下 JSON 字符串( 纯版) :

```json
{
  "text": "<https://github.com/anna|@anna> opened issue: <https://github.com/someorg/somerepo/issues/484|This issue title contains &lt;unsafe&gt; characters and &amp;>",
  "attachments": [
    {
      "text": "This is a very important issue with body containing &lt;unsafe&gt; characters and even &amp;",
      "fallback": "This issue title contains &lt;unsafe&gt; characters and &amp;",
      "mrkdwn_in": [
        "text"
      ],
      "callback_id": "cllbck1",
      "actions": [
        {
          "text": "Close issue",
          "type": "button",
          "name": "rug",
          "value": "somebuttonid"
        }
      ]
    }
  ]
}
```

注意 `render` 函数将自动指定一个唯一 `callback_id` 每个附件都有动作。 不过,如果你 提供您的自定义 `callback_id` 将保留下来.

### 其他帮助功能

#### 特殊字符

```typescript
escape("Slack requires you to escape <, > and &");
// => "Slack requires you to escape &lt;, &gt; and &amp;"
```

#### 链接

```typescript
// Simple link
url("https://www.atomist.com");
// => "<https://www.atomist.com>"

// Link with label
url("https://www.atomist.com", "atomist");
// => "<https://www.atomist.com|atomist>"
```

#### 用户频道链接( T)

```typescript
// @some-user (Slack will display user name for provided user ID)
user("U123");
// => "<@U123>"

// #some-channel (Slack will display channel name for provided channel ID)
channel("C123");
// => "<#C123>"
```

#### 特殊变量

```typescript
// @channel
atChannel();
// => "<!channel>"

// @here
atHere();
// => "<!here>"

// @everyone
atEveryone();
// => "<!everyone>"
```

#### 爱莫吉

```typescript
emoji("smile");
// => ":smile:";
```

#### 标记

如果存在下限的字段, Slack 将会使标记降值 列入 `mrkdwn_in` 阵列.

```typescript
bold("This text will appear bold");
// => "*This text will appear bold*"

italic("This text will appear italic");
// => "_This text will appear italic_"

strikethrough("This text will appear strike-through");
// => "~This text will appear strike-through~"

// Single line code block
codeLine("var a = new A();");
// =>  "`var a = new A();`"

// Multi line code block
codeBlock("var a = new A();\nvar b = new B();");
// => "```var a = new A();\nvar b = new B();```"

// List
listItem("Item 1");
// => "• Item 1"
```

### GitHub 到黑标记下转换

GitHub 和Slack markdown 都不同了 让你的GitHub 或 GitHub PRs 默认在 Slack 中看起来相当糟糕。 你用得着 页:1 `githubToSlack` 函数从 `Markdown` 转换使用的文本 GitHub 标记为在 Slack 中看起来不错的文本 :

```typescript
import { githubToSlack } from "@atomist/slack-messages"

githubToSlack("* list item 1\n* list item 2\n\**some bold text** and *some italic text* with a link [click here](http://someplace.com)");
// => "• list item 1\n• list item 2\n*some bold text* and _some italic text_ with a link <http://someplace.com|click here>"
```

## 支助

一般性支持问题应在缔约方会议 `#help` 频道 [原子主义社区](https://join.atomist.com/ "Atomist Community Slack")。 。 。 .

如果你发现问题,请创建 [问题](https://github.com/atomist/slack-messages/issues)。 。 。 .

## 发展

您需要安装 [节点.js](https://nodejs.org/ "Node.js") 来建立和测试这个 项目.

### 构建和测试

安装依赖关系 .

```
$ npm install
```

使用 `build` 用于编译、测试、嵌入和构建 文档.

```
$ npm run build
```

### 释放

释放是通过 [原子学家SDM](https://github.com/atomist/atomist-sdm "Atomist Software Delivery Machine")按钮 在原子仪表板或Slack上的“证明”按钮.

* * *

创建于 [原子学家](https://atomist.com/ "Atomist - How Teams Deliver Software")。 。 。 . 需要帮忙吗? [加入我们的黑工作区](https://join.atomist.com/ "Atomist Community Slack")。 。 。 .

## 常见问题

### @atomist/slack-messages 是什么？

用于创建格式化Slack消息的原子主义工具

### 如何安装 @atomist/slack-messages？

在项目目录运行 npm install @atomist/slack-messages，或使用 pnpm add / yarn add / bun add。

### @atomist/slack-messages 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @atomist/slack-messages 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @atomist/slack-messages 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=8\.2\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @atomist/slack-messages 可以商用吗？

@atomist/slack-messages 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @atomist/slack-messages 的下载量有多少？

根据 npm 官方下载统计，@atomist/slack-messages 在 2026/10/07 – 2026/11/05 这 30 天内被下载 37,543 次，日均约 1,251 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @atomist/slack-messages 还在维护吗？

最新版本 1\.2\.2 发布于 2021/03/16（5 年前）；至今共发布 60 个版本，其中过去 12 个月发布了 0 个；首次发布于 2017/05/09。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

