slack-message-parser

JavaScript library for parsing Slack message format (mrkdwn)

  1. 1
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{282:function(e,a,s){"use strict";s.r(a);var t=s(14),r=Object(t.a)({},(function(){var e=this,a=e._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"guide"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#guide"}},[e._v("#")]),e._v(" Guide")]),e._v(" "),a("p",[e._v("slack-message-parser is a JavaScript library which parses the message returned by Slack API and give you a tree object (imagine AST).\nYou could use the result tree to create a message viewer (HTML, React component, etc...) or whatever you want 😃")]),e._v(" "),a("h2",{attrs:{id:"installation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[e._v("#")]),e._v(" Installation")]),e._v(" "),a("p",[e._v("The package is available as "),a("code",[e._v("slack-message-parser")]),e._v(" on npm.")]),e._v(" "),a("div",{staticClass:"language-sh extra-class"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[a("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" slack-message-parser\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# npm i --save slack-message-parser")]),e._v("\n")])])]),a("h2",{attrs:{id:"quick-start"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#quick-start"}},[e._v("#")]),e._v(" Quick Start")]),e._v(" "),a("p",[e._v("Just parse the message!")]),e._v(" "),a("div",{staticClass:"language-ts extra-class"},[a("pre",{pre:!0,attrs:{class:"language-ts"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("import")]),e._v(" slackMessageParser "),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("from")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'slack-message-parser'")]),e._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" tree "),a("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("slackMessageParser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[e._v("'Slack *message* ~to~ _parse_'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n\n"),a("span",{pre:!0,attrs:{class:"token builtin"}},[e._v("console")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),a("span",{pre:!0,attrs:{class:"token function"}},[e._v("dir")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("tree"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),a("h2",{attrs:{id:"supported-message-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#supported-message-features"}},[e._v("#")]),e._v(" Supported Message Features")]),e._v(" "),a("ul",[a("li",[e._v("Plain text")]),e._v(" "),a("li",[e._v("Links\n"),a("ul",[a("li",[e._v("Channels ("),a("code",[e._v("#channel")]),e._v(")")]),e._v(" "),a("li",[e._v("User ("),a("code",[e._v("@someone")]),e._v(")")]),e._v(" "),a("li",[e._v("URL ("),a("code",[e._v("https://foo.bar")]),e._v(", "),a("code",[e._v("mailto:foo@bar")]),e._v(")")]),e._v(" "),a("li",[e._v("Commands (Represented as "),a("code",[e._v("<!foo>")]),e._v(", more detail "),a("a",{attrs:{href:"https://api.slack.com/docs/message-formatting",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),a("OutboundLink")],1),e._v(")")])])]),e._v(" "),a("li",[e._v("Emojis 😍")]),e._v(" "),a("li",[e._v("Code block")]),e._v(" "),a("li",[e._v("Inline code ("),a("code",[e._v("`foo`")]),e._v(")")]),e._v(" "),a("li",[e._v("Italic ("),a("code",[e._v("_foo_")]),e._v(")")]),e._v(" "),a("li",[e._v("Bold ("),a("code",[e._v("*foo*")]),e._v(")")]),e._v(" "),a("li",[e._v("Strikethrough ("),a("code",[e._v("~foo~")]),e._v(")")]),e._v(" "),a("li",[e._v("Quotes ("),a("code",[e._v("> foo")]),e._v(")")])]),e._v(" "),a("h2",{attrs:{id:"examples"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),a("h3",{attrs:{id:"plain-html-with-typescript"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#plain-html-with-typescript"}},[e._v("#")]),e._v(" Plain HTML with TypeScript")]),e._v(" "),a("iframe",{staticStyle:{width:"100%",height:"500px",border:"0","border-radius":"4px",overflow:"hidden"},attrs:{src:"https://codesandbox.io/embed/gracious-rgb-kmqbu?fontsize=14&module=%2Fsrc%2Findex.ts&view=editor",title:"slack-message-parser--ts-vanilla",allow:"geolocation; microphone; camera; midi; vr; accelerometer; gyroscope; payment; ambient-light-sensor; encrypted-media; usb",sandbox:"allow-modals allow-forms allow-popups allow-scripts allow-same-origin"}}),e._v(" "),a("h3",{attrs:{id:"react-with-typescript"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#react-with-typescript"}},[e._v("#")]),e._v(" React with TypeScript")]),e._v(" "),a("iframe",{staticStyle:{width:"100%",height:"500px",border:"0","border-radius":"4px",overflow:"hidden"},attrs:{src:"https://codesandbox.io/embed/condescending-heyrovsky-y5jw3?fontsize=14&module=%2Fsrc%2FSlackMessage.tsx",title:"slack-message-parser--react-ts",allow:"geolocation; microphone; camera; midi; vr; accelerometer; gyroscope; payment; ambient-light-sensor; encrypted-media; usb",sandbox:"allow-modals allow-forms allow-popups allow-scripts allow-same-origin"}})])}),[],!1,null,null,null);a.default=r.exports}}]);