@atomist/slack-messages

中文文档
1.2.2发布于 2021/03/16Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 3.8万

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

中文使用文档
文档目录7 节
  1. 使用
  2. 其他帮助功能
  3. GitHub 到黑标记下转换
  4. 支助
  5. 发展
  6. 构建和测试
  7. 释放

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

atomist sdm goals npm version

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

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

见 原子学文献 更多信息,请访问infofinland上的 sDM是什么,他们能为你做什么 使用原子学 API 软件.

使用

将信件建构为 : 错误消息 格式化 API。 。 。 .

import { SlackMessage } from "@atomist/slack-messages";
// A very simple message
const msg: SlackMessage = { text: "Simple message" };
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 消息的字符串表示 :

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

const renderedMsg = render(msg);

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

const renderedMsg = render(msg, true);

这将产生以下 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 将保留下来.

其他帮助功能

特殊字符

escape("Slack requires you to escape <, > and &");
// => "Slack requires you to escape &lt;, &gt; and &amp;"
// 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>"
// @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>"

特殊变量

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

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

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

爱莫吉

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

标记

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

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 中看起来不错的文本 :

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 频道 原子主义社区。 。 。 .

如果你发现问题,请创建 问题。 。 。 .

发展

您需要安装 节点.js 来建立和测试这个 项目.

构建和测试

安装依赖关系 .

$ npm install

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

$ npm run build

释放

释放是通过 原子学家SDM按钮 在原子仪表板或Slack上的“证明”按钮.


创建于 原子学家。 。 。 . 需要帮忙吗? 加入我们的黑工作区。 。 。 .

版本与发布记录

@atomist/slack-messages 共发布 60 个版本,首次发布于 2017/05/09;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.2latest2021/03/165 年前
1.2.2-master.20210315181220branch-masternext2021/03/165 年前
1.2.2-master.202103151811592021/03/165 年前
1.2.2-atomist.npm-update-master.202103151804242021/03/165 年前
1.2.2-master.202103151803242021/03/165 年前
1.2.2-atomist.npm-update-master.202103151800492021/03/165 年前

关于 @atomist/slack-messages 的常见问题

@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 和提交记录判断。