Socket
Socket
Sign inDemoInstall

remark-emoji

Package Overview
Dependencies
13
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    remark-emoji

Emoji transformer plugin for Remark


Version published
Weekly downloads
385K
decreased by-14.23%
Maintainers
1
Install size
571 kB
Created
Weekly downloads
 

Package description

What is remark-emoji?

The remark-emoji npm package is a plugin for the remark processor that allows you to convert text-based emoji shortcodes into their corresponding Unicode emoji characters. This can be particularly useful for rendering markdown content with emojis in a more visually appealing way.

What are remark-emoji's main functionalities?

Convert Emoji Shortcodes to Unicode

This feature allows you to convert text-based emoji shortcodes (e.g., :heart:) into their corresponding Unicode emoji characters (❤️). The code sample demonstrates how to use the remark-emoji plugin with the remark processor to achieve this conversion.

const remark = require('remark');
const emoji = require('remark-emoji');

const markdown = 'I :heart: remark-emoji!';

remark()
  .use(emoji)
  .process(markdown, function (err, file) {
    if (err) throw err;
    console.log(String(file));
  });

Other packages similar to remark-emoji

Changelog

Source

v4.0.0 - 10 Aug 2023

  • Breaking Change Update node-emoji from v1 to v2. This change introduces support for many new emojis and removes old emoji short codes which are no longer valid on GitHub.

[Changes][v4.0.0]

<!-- Generated by https://github.com/rhysd/changelog-from-release v3.7.2 -->

Readme

Source

remark-emoji

CI npm

remark-emoji is a remark plugin to replace :emoji: to real UTF-8 emojis in text. Accessibility support and Emoticon support are optionally available.

Demo

You can find a demo in the following Codesandbox.

Usage

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 that this package is ESM only from v3.0.0 since remark packages migrated to ESM.

Options

options.accessible

Setting to true makes the converted emoji text accessible with role and aria-label attributes. Each emoji text is wrapped with <span> element. Note that role attribute is not allowed by default. Please add it to the sanitization schema used by remark's HTML transformer.

For example,

import {remark} from 'remark';
import toHtml from 'remark-html';
import {defaultSchema} from 'hast-util-sanitize'
import emoji from 'remark-emoji';

// Allow using `role` attribute in transformed HTML document
const schema = structuredClone(defaultSchema);
if ('span' in schema.attributes) {
    schema.attributes.span.push('role');
} else {
    schema.attributes.span = ['role'];
}

const processor = remark()
    .use(emoji, { accessible: true })
    .use(toHtml, { sanitize: schema });
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.

options.padSpaceAfter

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.

options.emoticon

Setting to true means that emoticon shortcodes are supported (e.g. :-) will be replaced by 😃). Default value is false.

TypeScript support

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.

License

Distributed under the MIT License.

Keywords

FAQs

Last updated on 10 Aug 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc