Vulnerabilities | |||||
---|---|---|---|---|---|
Version | Suggest | Low | Medium | High | Critical |
5.0.1 | 0 | 0 | 0 | 0 | 0 |
5.0.0 | 0 | 0 | 0 | 0 | 0 |
4.0.1 | 0 | 0 | 0 | 0 | 0 |
4.0.0 | 0 | 0 | 0 | 0 | 0 |
3.1.2 | 0 | 0 | 0 | 0 | 0 |
3.1.1 | 0 | 0 | 0 | 0 | 0 |
3.1.0 | 0 | 0 | 0 | 0 | 0 |
3.0.2 | 0 | 0 | 0 | 0 | 0 |
3.0.1 | 0 | 0 | 0 | 0 | 0 |
3.0.0 | 0 | 0 | 0 | 0 | 0 |
2.2.0 | 0 | 0 | 0 | 0 | 0 |
2.1.0 | 0 | 0 | 0 | 0 | 0 |
2.0.2 | 0 | 0 | 0 | 0 | 0 |
2.0.1 | 0 | 0 | 0 | 0 | 0 |
2.0.0 | 0 | 0 | 0 | 0 | 0 |
1.1.1 | 0 | 0 | 0 | 0 | 0 |
1.1.0 | 0 | 0 | 0 | 0 | 0 |
1.0.0 | 0 | 0 | 0 | 0 | 0 |
5.0.1 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT Licenseremark-emoji is a remark plugin to replace :emoji:
to real UTF-8
emojis in Markdown text. This plugin is built on top of node-emoji.
The accessibility support and Emoticon support are optionally available.
You can find a demo in the following Codesandbox.
remark().use(emoji [, options]);
import { remark } from 'remark';
import emoji from 'remark-emoji';
const doc = 'Emojis in this text will be replaced: :dog::+1:';
const processor = remark().use(emoji);
const file = await processor.process(doc);
console.log(String(file));
// => Emojis in this text will be replaced: πΆπ
Note:
Setting to true
makes the converted emoji text accessible with role
and aria-label
attributes. Each emoji
text is wrapped with <span>
element. The role
and aria-label
attribute are not allowed by default. Please
add them to the sanitization schema used by remark's HTML transformer. The default sanitization schema is exported
from rehype-sanitize package.
For example,
import remarkParse from 'remark-parse';
import toRehype from 'remark-rehype';
import sanitize, { defaultSchema } from 'rehype-sanitize';
import stringify from 'rehype-stringify';
import emoji from 'remark-emoji';
import { unified } from 'unified';
// Allow using `role` and `aria-label` attributes in transformed HTML document
const schema = structuredClone(defaultSchema);
if ('span' in schema.attributes) {
schema.attributes.span.push('role', 'ariaLabel');
} else {
schema.attributes.span = ['role', 'ariaLabel'];
}
// Markdown text processor pipeline
const processor = unified()
.use(remarkParse)
.use(emoji, { accessible: true })
.use(toRehype)
.use(sanitize, schema)
.use(stringify);
const file = await processor.process('Hello :dog:!');
console.log(String(file));
yields
Hello <span role="img" aria-label="dog emoji">πΆ</span>!
Default value is false
.
Setting to true
means that an extra whitespace is added after emoji.
This is useful when browser handle emojis with half character length and following character is hidden.
Default value is false
.
Setting to true
means that emoticon shortcodes are supported (e.g. :-)
will be replaced by π). Default value is false
.
remark-emoji package contains TypeScript type definitions. The package is ready for use with TypeScript.
Note that the legacy node
(or node10
) resolution at moduleResolution
is not available since it enforces CommonJS module resolution and this package is ESM only. Please use node16
,
bundler
, or nodenext
to enable ESM module resolution.
Distributed under the MIT License.