# encodeji

> Encode :simple-names: for emoji as unicode codepoints.

Latest version **2.0.4** (published 2024-11-13) · ISC license · 0 weekly downloads

## Install

```sh
npm install encodeji
pnpm add encodeji
yarn add encodeji
bun add encodeji
```

## Health

**Score 25/100 (F)** — status: maintenance-mode.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.4 |
| Published | 2024-11-13 |
| First published | 2016-07-13 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 2.5 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | james@coggle.it |
| Maintainers | autopulated |
| Keywords | emoji |

## Links

- npm: https://www.npmjs.com/package/encodeji
- Repository: https://github.com/Coggle/encodeji
- Homepage: https://github.com/Coggle/encodeji#readme
- Issues: https://github.com/Coggle/encodeji/issues
- npm.io page: https://npm.io/package/encodeji

## Recent versions

- 2.0.4 (latest) — 2024-11-13
- 2.0.0 — 2017-07-30
- 1.1.1 — 2017-01-28
- 1.1.0 — 2016-07-15
- 1.0.4 — 2016-07-14
- 1.0.3 — 2016-07-14
- 1.0.2 — 2016-07-13
- 1.0.0 — 2016-07-13

## README

# encodeji
Encode emoji short names as unicode codepoints `:smile:` -> 😀

## Installation

`bower install -S encodeji`

## API

Encodeji is distributed as a requirejs module, in `dist/ecodeji.js` (compiled
from source in `lib/encodeji.js`).


### Creating an instance
```js
// require the module:
var Encodeji = require('encodeji');

// create a new instance, you could pass options here (see Advanced Use below)
var encodeji = new Encodeji();
```

### Replacing :emoji-names: with Codepoints

Both string replacement and replacement of text in the DOM is supported:
```js
// replace in a string:
var encoded = encodeji.replaceColons("my string with :smile: emoji :+1::skin-tone-3:");
console.log("encoded");

// replace in the whole document:
encodeji.replaceColons(document.body);

// or replace only in part of it:
encodeji.replaceColons(document.getElementById("someid"));
```

Unknown names will remain in the document, only primary names will be replaced.


### Getting the Primary Emoji Name From an Alternative
When saving data with :emoji-names: it's a good idea to save only the primary
name by which emoji are known, but you might want to allow people to input
other names which are automatically converted to the primary name.

To get the primary name for an alternative name, use:
```
var primary_name = encodeji.primaryShortName("thumbsup");
console.log(primary_name); // +1
```

### Getting possible auto-completions
Get the emoji names which might match partial user input (useful for
auto-completion):

```
var complations = encodeji.possibleShortNames("person");
console.log(completions);
```


## Advanced Use
It's possible to pass options to the constructor to extend the built-in data
with your own data, to replace or add the name by which emoji are known. For
example:

```js
var encodeji = new Encodeji({
    extendData: [
       { name:"PILE OF POO", short_name:"poop" }
    ]
});
```

The data format used is:
```json
[ {
    "name": "THUMBS UP SIGN",
    "unified": "1F44D",
    "short_name": "+1",
    "short_names": [
        "+1",
        "thumbsup"
    ]
}, ... ]
```

When specifying `extendData` either "name" (the official unicode name) or
"unified" (the codepoint) must be supplied for each item, to match it against
existing items.

## Changelog

### 2.0.0
 * support for skin-tone-x modifiers on female/male modified emoji (Emoji 4.0)
 * **breaking** removed toUCS2 from public API
 * add warnDuplicates option instead of always logging errors on duplicate
   short names.

---
_Source: https://npm.io/package/encodeji · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
