介绍
botbuilder-markdown 是一个用于 Microsoft Bot Framework 的 npm 包,它提供了将 Markdown 格式的文本解析成符合 Bot Framework 要求的 Activity 的功能,从而更方便地构建聊天机器人。
本文将介绍 botbuilder-markdown 的使用方法,包括安装与配置、解析文件和字符串、Bot Framework 集成等。
安装与配置
首先需要安装 botbuilder-markdown 包,可以使用 npm 安装命令:
npm install botbuilder-markdown
接着在代码中引入 botbuilder-markdown:
const markdownMiddleware = require('botbuilder-markdown').markdownMiddleware;
botbuilder-markdown 提供了两个方法:markdownToAttachment 和 markdownMiddleware。前者接受一个字符串作为参数,返回一个 Activity,后者则返回一个 Express 中间件函数用于处理消息。
在 Bot Framework 中使用 botbuilder-markdown,只需要将 botbuilder-markdown 返回的中间件函数传入 bot 的 use 方法中即可。
const { ActivityHandler } = require('botbuilder'); const bot = new ActivityHandler(); bot.use(markdownMiddleware());
现在 bot 就可以处理 Markdown 格式的消息了!
解析 Markdown
botbuilder-markdown 由两部分组成:解析器和生成器。解析器将一个 Markdown 文件或字符串解析成一个 AST(抽象语法树),生成器根据 AST 构建出符合 Bot Framework 要求的 Activity。
解析器
首先是解析器。botbuilder-markdown 提供了两个解析器:一种解析文件,另一种解析字符串。
解析文件:
const { markdownFileToActivity } = require('botbuilder-markdown'); const activity = markdownFileToActivity('./message.md');
解析字符串:
const { markdownToActivity } = require('botbuilder-markdown'); const activity = markdownToActivity('# Hello, World!');
markdownToActivity 和 markdownFileToActivity 接受一个字符串作为参数,返回一个 Activity 对象。
生成器
完成解析后,需要将生成的 AST 转换为符合 Bot Framework 要求的 Activity。
这里提供了 markdownToAttachment 方法用于在框架中构建并返回 Activity。
const { markdownToAttachment } = require('botbuilder-markdown'); const activity = createActivity(); activity.attachments = [markdownToAttachment(markdownString)];
示例代码
-- -------------------- ---- ------- ----- - --------------- - - ---------------------- ----- ------------------ - -------------------------------------------------- ----- - -------------------- - - ------------------------------- ----- --- - --- ------------------ ------------------------------ ------------------- --------- ----- -- - ----- -------- - ----------------- -- -------------- -- ------------- --- ----------- - ----- -------------- - - - ------ ------ ---- -- - -------- ----- --- ---- -- - -------- ----- -- ---- - ---- - - ---- - - ---- - -- ----- ---- -- - --------------------------------- -- ---- ---------------- ----- --- - ------ ----------------- ------ -- -------------------- - --------------------------------------- ----- ------------------------------- - ---- - ----- ------- - ---
通过上述示例代码,当用户发送关键词 markdown
时,bot 将返回一条具有 Markdown 格式的消息。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005673981e8991b448e3bda