@dada78641/marked-discord
v1.0.6
Published
Markdown parser for Discord content
Downloads
516
Readme
@dada78641/marked-discord
Markdown parsing library for Discord flavored Markdown.
This uses the Marked library as basis and adds a number of Discord-specific extensions.
This library only lexes the input and does not do a full conversion to e.g. HTML or another language.
Usage
To parse Markdown content, pass it as string:
import {MarkedDiscord} from '@dada78641/marked-discord'
const markdownContent = `Here's a Discord emoji: <:zergling:901461081384452187>`
const parser = new MarkedDiscord()
const res = parser.getMarkdownTokens(markdownContent)
console.log(res)
This will log the following data:
{
tokens: [
{
type: 'paragraph',
raw: "Here's a Discord emoji: <:zergling:901461081384452187>",
text: "Here's a Discord emoji: <:zergling:901461081384452187>",
tokens: [
{
type: 'text',
raw: "Here's a Discord emoji: ",
text: "Here's a Discord emoji: ",
escaped: false
},
{
type: 'discordServerEmoji',
raw: '<:zergling:901461081384452187>',
emojiIsAnimated: false,
emojiName: 'zergling',
emojiId: '901461081384452187',
}
]
}
],
entities: {
'901461081384452187': {
type: 'Emoji',
id: '901461081384452187',
isAnimated: false,
name: 'zergling'
}
}
}
Features
This library extends the standard Marked syntax with the following Discord-specific features:
- Channel, role and user mentions
- @here and @everyone mentions
- Server emojis (not including Unicode emoji characters)
- Timestamps (aka. HammerTime tags)
- Spoiler tags
- Subtext
Discord flavored Markdown also has the following syntax, which is already parsed by Marked by default:
- Strikethrough
- Headings
- Code blocks
- Blockquotes
Note that there are slight differences between standard Marked syntax and Discord syntax. These differences are minor and should not lead to significant deviations in rendering for regular use cases.
External links
- Discord Support - Markdown Text 101
- Marked Documentation
- Discord Markdown 201
- Discord developer documentation - Message formatting
License
MIT licensed.