slack-message-parser

JavaScript library for parsing Slack message format (mrkdwn)

  1. 1
:root{--font-size-sm:1.4rem;--font-size-md:1.6rem;--font-size-lg:1.8rem;--font-size-xl:2.2rem;--line-height-dense:1.5;--line-height-normal:1.75;--line-height-sparse:2;--gutter-xs:2px;--gutter-sm:4px;--gutter-md:8px;--gutter-lg:16px;--gutter-xl:24px;--font-family:"Inter",sans-serif;--font-family-mono:Hack,monospace;--radius:3px;--border-width:1px;--color-neutral:0,0%,93%;--color-on-neutral:0,0%,5%;--color-primary:100,35%,35%;--color-on-primary:0,0%,95%;--color-panel:100,5%,90%;--color-on-panel:0,0%,5%;--color-danger:20,50%,40%;--color-on-danger:0,0%,5%;--color-border:0,0%,0%,.25;--color-code-comment:20,0%,30%;--color-code-keyword:20,90%,30%;--color-code-string:60,60%,30%;--color-code-operator:var(--color-code-keyword);--color-code-function:200,80%,30%}@media (prefers-color-scheme:dark){:root{--color-neutral:0,0%,15%;--color-on-neutral:0,0%,95%;--color-primary:100,30%,45%;--color-on-primary:0,0%,95%;--color-panel:100,5%,10%;--color-on-panel:0,0%,95%;--color-danger:20,45%,50%;--color-on-danger:0,0%,95%;--color-border:0,0%,95%,.2;--color-code-comment:20,0%,60%;--color-code-keyword:20,80%,65%;--color-code-string:60,40%,55%;--color-code-operator:var(--color-code-keyword);--color-code-function:200,60%,50%}}*,:before,:after{box-sizing:border-box;font:inherit;margin:0;padding:0}html{font-size:62.5%}body{font-size:var(--font-size-md);line-height:var(--line-height-normal);margin:0;padding:0}html{font-family:var(--font-family)}@supports (font-variation-settings: normal){:root{--font-family:"Inter var",sans-serif}}html{--_scroll-padding-top:7rem;scroll-padding-top:var(--_scroll-padding-top);scroll-behavior:smooth}body{width:100%;background-color:hsl(var(--color-neutral));color:hsl(var(--color-on-neutral));grid-template:"logo nav"min-content"toc toc"max-content"main main"minmax(0,1fr)/min-content minmax(0,1fr);display:grid;overflow-y:auto}.layout__header{border-bottom:var(--border-width)solid hsl(var(--color-border));background-color:hsl(var(--color-panel));z-index:666;position:sticky;top:0}.layout__logo-wrapper{border-right:var(--border-width)solid hsl(var(--color-border));padding:var(--gutter-md)var(--gutter-lg);grid-area:logo;justify-content:flex-end;align-items:center;display:flex}.layout__logo{font-size:var(--font-size-sm);color:inherit;text-align:right;font-weight:700;line-height:1;text-decoration:none;display:block}.layout__logo:hover,.layout__logo:focus-visible{outline:none;text-decoration:underline}.layout__nav{padding:var(--gutter-sm)var(--gutter-lg);flex-wrap:nowrap;grid-area:nav;justify-content:flex-start;align-items:stretch;display:flex;overflow-x:auto}.layout__header-fill{grid-area:fill;display:none}.layout__toc{border-bottom:var(--border-width)solid hsl(var(--color-border));padding:var(--gutter-md);grid-area:toc;display:block}.layout__main{padding:var(--gutter-md);grid-area:main;display:block}@media (min-width:800px){body{grid-template:"logo nav"min-content"toc main"minmax(0,1fr)/20rem minmax(0,1fr)}.layout__toc{top:var(--_scroll-padding-top);border:0;justify-content:flex-end;align-self:start;display:flex;position:sticky}.layout__main{padding:var(--gutter-lg);flex:1}.layout__nav{justify-content:center}}@media (min-width:1100px){body{grid-template-columns:minmax(0,1fr) 70rem minmax(0,1fr);grid-template-areas:"logo nav fill""toc main unused"}.layout__header-fill{display:block}}.nav__list{font-size:var(--font-size-sm);justify-content:flex-start;align-items:center;list-style:none;display:flex}.nav__link{padding:var(--gutter-md)var(--gutter-lg);border:var(--border-width)solid transparent;color:inherit;border-radius:3px;text-decoration:none}.nav__link:hover{background-color:hsla(var(--color-primary),.3);border-color:hsl(var(--color-primary))}.nav__link:focus-visible{outline:none;text-decoration:underline}.toc__root{min-width:15rem}.toc__root ol{list-style:none}.toc__root ol ol{padding-left:var(--gutter-lg);list-style:square}.toc__root ol ol ol{list-style:circle}.toc__root a{font-size:var(--font-size-sm);color:hsl(var(--color-on-neutral));text-decoration:underline hsl(var(--color-border));opacity:.9}.toc__root a:hover{text-decoration:underline calc(var(--border-width)*2)hsl(var(--color-primary))}.markdown__root h1{font-size:var(--font-size-xl);font-weight:700}.markdown__root h2{font-size:var(--font-size-lg);margin-top:2em;font-weight:700}.markdown__root h3{font-size:var(--font-size-md);margin-top:1.5em;font-weight:700}.markdown__root h4{font-size:var(--font-size-md);margin-top:1em;font-weight:700}@keyframes markdown__blink{0%{color:hsl(var(--color-on-neutral))}to{color:hsl(var(--color-primary))}}.markdown__root h1:target,.markdown__root h2:target,.markdown__root h3:target{animation:.3s linear 4 alternate markdown__blink}.markdown__root p{line-height:var(--line-height-normal);margin-top:.5em}.markdown__root a{color:hsl(var(--color-primary));text-decoration:none}.markdown__root a:hover,.markdown__root a:focus-visible{text-decoration:underline}.markdown__root code:not(pre>code),.markdown__root pre{padding:var(--gutter-xs)var(--gutter-md);font-family:var(--font-family-mono);background-color:hsl(var(--color-panel));border-radius:var(--radius);color:hsl(var(--color-on-panel))}.markdown__root pre{width:100%;padding:var(--gutter-md)var(--gutter-lg);border:var(--border-width)solid hsla(var(--color-border));line-height:var(--line-height-dense);margin-top:1em;overflow-x:auto}.markdown__root details{margin-top:1em}.markdown__root [class^=language-] .token.keyword{color:hsl(var(--color-code-keyword))}.markdown__root [class^=language-] .token.string{color:hsl(var(--color-code-string))}.markdown__root [class^=language-] .token.operator{color:hsl(var(--color-code-operator))}.markdown__root [class^=language-] .token.function{color:hsl(var(--color-code-function))}.markdown__root [class^=language-] .token.comment{color:hsl(var(--color-code-comment));font-style:italic}.markdown__root ul{margin-top:.5em;padding-left:1em}.markdown__root ul ul{margin-top:0}.markdown__root iframe{width:100%;aspect-ratio:4/3;border:var(--border-width)solid hsla(var(--color-border));border-radius:var(--radius);margin-top:1em}.markdown__root table{width:100%;border-spacing:0;border:var(--border-width)solid hsla(var(--color-border));border-radius:var(--radius);margin-top:1em}.markdown__root thead{background-color:hsl(var(--color-panel));color:hsl(var(--color-on-panel))}.markdown__root th,.markdown__root tr:not(:last-child)>td{border-bottom:var(--border-width)solid hsla(var(--color-border))}.markdown__root th,.markdown__root td{padding:var(--gutter-sm)var(--gutter-md)}.pages_examples__alert{padding:var(--gutter-md);border:var(--border-width)solid hsl(var(--color-danger));background-color:hsla(var(--color-danger),.3);border-radius:var(--radius);color:hsl(var(--color-on-neutral));margin-bottom:1em}