npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

emj

v0.0.7

Published

Emoji Object Notation

Downloads

3

Readme

Emojion

Emoji Object Notation

Build Status Dependencies Version License

{
  "name": "Emojion",
  "keywords": ["emoji", "notation"],
  "created": 2019,
  "isAbsurd": true,
  "fileExtension": "🙌"
}
🙌😶😠🤑😳👡🐘🐁🦉🦒🐖🦉🦏😚😳🤩😉😮😭🤤
😢🤜🐘🐁🦉🦒🐖🤝🦏🦉🐢🐜🐢🐖🦉🦏🤛😖😭😳
😠😛😳🤤🕑🕛🕐🕘🤔😢👠😠🥺😢🙃😭🤤💚🙁🤔
🥰😳👠😳😵😛😳😶😢🤔😮😶🗺🖌📋📏🔎📓✋

Use

Call parse() to turn Emojion into a JavaScript object, and call generate() to go the other way.

import { generate, parse } from 'emj';

const object = parse('🙌😶😠🤑😳👡🐘🐁🦉🦒🐖🦉🦏✋');
// { name: "Emojion" }

const emojion = generate({ created: 2019 });
// 🙌😖😭😳😠😛😳🤤🕑🕛🕐🕘✋

Syntax

Every Emojion document begins with 🙌 — because as soon as you start typing Emojion, you're a winner in this author's eyes. Emojion documents end with — because... stop.

Objects are enclosed by 👉 and 👈, arrays are enclosed by 🤜 and 🤛, and array items are separated by 🤝.

Keys are encoded with face emoji, such as 😠, 🥺, 😖, 😺, 😸, and 😽 (a, b, c, 1, 2, 3 ). Capital letters are prefixed with 👠. 🗝 represents an empty key.

Strings are encoded with animals and plants, such as 🐜, 🐝, 🐄, 🌹, 🌱, and 🌵 (a, b, c, 1, 2, 3 ). Capital letters are prefixed with 👡. 🧵 represents an empty string.

Numbers are encoded with with clocks, such as 🕛, 🕐, and 🕑 (0, 1, 2). Decimal points are encoded with ⛳️ and negative numbers are prefixed with (because alarms are annoying).

💚 is true, 💔 is false, and 🕳 is null.

In keys, Unicode characters can be encoded using 🌎 followed by fruit, such as 🌎🍏🍊🍈🍓 for U+0398 (which is Θ). In values, Unicode characters are encoded using 🗺 followed by office supplies, such as 🗺🖋🖊🧷🔎 for U+0394 (which is Δ).

See characters.ts for the full character map.

Design Goals

  • Unique syntax — Emojion should be its own format, not a trivial character substitution of a different object notation language like JSON.
  • Borderline legibility — It should be possible, though likely slow, for a human to read an Emojion document, after some amount of memorization.
  • Sense of humor — Object notation is boring. Emojion should be less so.

Questions

Wait... but why?

No good reason.

No, but actually?

Well... Emojion is an exploration of emoji as first-class units of information storage. Although emoji have become utterly prevalent in modern communication, they typically either play an auxiliary role or convey only trivial information. Emojion uses solely emoji to encode complete thoughts (or, at least, valid data documents), thus exploring their ability to stand on their own.

When should I use this?

When your coworker tells you YAML is "too hard to read".

Tech

Emojion is built with the excellent Moo lexer and Nearley parser engines.