~cadence/nodejs-discord-markdown

2881b447 — Cadence Ember 3 months ago
Create version 2.6.1
0008fb00 — Wonder Collective 3 months ago
add tests for bracket edge cases
05414f14 — Wonder Collective 3 months ago
stricten discord object reference matchers

clone

read-only
https://git.sr.ht/~cadence/nodejs-discord-markdown
read/write
git@git.sr.ht:~cadence/nodejs-discord-markdown

You can also use your local clone with git send-email.

#discord-markdown

A markdown parser for Discord messages.

#Using

yarn add discord-markdown
npm i discord-markdown

For browser use, import dist/discord-markdown.min.js

const { parser, htmlOutput, toHTML } = require('discord-markdown');

console.log(toHTML('This **is** a __test__'));
// => This <strong>is</strong> a <u>test</u>

Fenced codeblocks will include highlight.js tags and classes.

#Options

const { toHTML } = require('discord-markdown');
toHTML('This **is** a __test__', options);

options is an object with the following properties (all are optional):

  • embed: Boolean (default: false), if it should parse embed contents (rules are slightly different)
  • escapeHTML: Boolean (default: true), if it should escape HTML
  • discordOnly: Boolean (default: false), if it should only parse the discord-specific stuff
  • discordCallback: Object, callbacks used for discord parsing. Each receive an object with different properties, and are expected to return an HTML escaped string
    • user: (id: Number) User mentions "@someperson"
    • channel: (id: Number) Channel mentions "#somechannel"
    • role: (id: Number) Role mentions "@somerole"
    • everyone: () Everyone mention "@everyone"
    • here: () Here mention "@here"

#Mention and Emoji Handling

Using the discordCallback option you can define custom functions to handle parsing mention and emoji content. You can use these to turn IDs into names.

Example:

const { toHTML } = require('discord-markdown');
toHTML('This is a mention for <@95286900801146880>', {
	discordCallback: {
		user: node => '@' + users[node.id];
	}
}); // -> This is a mention for @Brussell

#Customizing

It is possible to change the rules used by discord-markdown. Take a look at the code to see how to create your own modified rule set.

#Contributing

Find an inconsistency? File an issue or submit a pull request with the fix and updated test(s).