slack-message-parser

JavaScript library for parsing Slack message format (mrkdwn)

  1. 1
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{408:function(e,a,s){"use strict";s.r(a);var t=s(56),r=Object(t.a)({},(function(){var e=this,a=e.$createElement,s=e._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"guide"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#guide"}},[e._v("#")]),e._v(" Guide")]),e._v(" "),s("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(" "),s("h2",{attrs:{id:"installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[e._v("#")]),e._v(" Installation")]),e._v(" "),s("p",[e._v("The package is available as "),s("code",[e._v("slack-message-parser")]),e._v(" on npm.")]),e._v(" "),s("div",{staticClass:"language-sh extra-class"},[s("pre",{pre:!0,attrs:{class:"language-sh"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" slack-message-parser\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# npm i --save slack-message-parser")]),e._v("\n")])])]),s("h2",{attrs:{id:"quick-start"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#quick-start"}},[e._v("#")]),e._v(" Quick Start")]),e._v(" "),s("p",[e._v("Just parse the message!")]),e._v(" "),s("div",{staticClass:"language-ts extra-class"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("import")]),e._v(" slackMessageParser "),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("from")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v("'slack-message-parser'")]),e._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[e._v("const")]),e._v(" tree "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("slackMessageParser")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v("'Slack *message* ~to~ _parse_'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n\n"),s("span",{pre:!0,attrs:{class:"token builtin"}},[e._v("console")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("dir")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("(")]),e._v("tree"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v(")")]),e._v("\n")])])]),s("h2",{attrs:{id:"supported-message-features"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#supported-message-features"}},[e._v("#")]),e._v(" Supported Message Features")]),e._v(" "),s("ul",[s("li",[e._v("Plain text")]),e._v(" "),s("li",[e._v("Links\n"),s("ul",[s("li",[e._v("Channels ("),s("code",[e._v("#channel")]),e._v(")")]),e._v(" "),s("li",[e._v("User ("),s("code",[e._v("@someone")]),e._v(")")]),e._v(" "),s("li",[e._v("URL ("),s("code",[e._v("https://foo.bar")]),e._v(", "),s("code",[e._v("mailto:foo@bar")]),e._v(")")]),e._v(" "),s("li",[e._v("Commands (Represented as "),s("code",[e._v("<!foo>")]),e._v(", more detail "),s("a",{attrs:{href:"https://api.slack.com/docs/message-formatting",target:"_blank",rel:"noopener noreferrer"}},[e._v("here"),s("OutboundLink")],1),e._v(")")])])]),e._v(" "),s("li",[e._v("Emojis 😍")]),e._v(" "),s("li",[e._v("Code block")]),e._v(" "),s("li",[e._v("Inline code ("),s("code",[e._v("`foo`")]),e._v(")")]),e._v(" "),s("li",[e._v("Italic ("),s("code",[e._v("_foo_")]),e._v(")")]),e._v(" "),s("li",[e._v("Bold ("),s("code",[e._v("*foo*")]),e._v(")")]),e._v(" "),s("li",[e._v("Strikethrough ("),s("code",[e._v("~foo~")]),e._v(")")]),e._v(" "),s("li",[e._v("Quotes ("),s("code",[e._v("> foo")]),e._v(")")])]),e._v(" "),s("h2",{attrs:{id:"examples"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[e._v("#")]),e._v(" Examples")]),e._v(" "),s("h3",{attrs:{id:"plain-html-with-typescript"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#plain-html-with-typescript"}},[e._v("#")]),e._v(" Plain HTML with TypeScript")]),e._v(" "),s("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(" "),s("h3",{attrs:{id:"react-with-typescript"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#react-with-typescript"}},[e._v("#")]),e._v(" React with TypeScript")]),e._v(" "),s("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}}]);