├── .prettierrc
├── .gitignore
├── ogp
├── ogp.png
└── ogp.xcf
├── .editorconfig
├── gallery-site
├── _data
│ ├── siteUrl.js
│ └── emojis.js
├── _includes
│ ├── download-link.js
│ └── css.css
├── archive
│ └── index.11ty.js
├── feed.njk
└── index.njk
├── emojis
├── thinking_無.png
├── three_eyes.png
├── chaining_face.png
├── dinging_face.png
├── fighting_face.png
├── linking_face.png
├── oinking_face.png
├── picking_face.png
├── reading_dead.png
├── reading_face.png
├── ringing_face.png
├── singing_face.png
├── thinking_beer.png
├── thinking_bomb.png
├── thinking_bulb.png
├── thinking_dead.png
├── thinking_eyes.png
├── thinking_fire.png
├── thinking_frog.png
├── thinking_link.png
├── thinking_ogre.png
├── thinking_pien.png
├── writing_face.png
├── shrinking_face.png
├── thinking_brain.png
├── thinking_cloud.png
├── thinking_dango.png
├── thinking_dead2.png
├── thinking_devil.png
├── thinking_knife.png
├── thinking_skull.png
├── thinking_sleep.png
├── thinking_computer.png
├── thinking_pleading.png
├── dotted_thinking_face.png
├── thinking_anxious_face.png
├── thinking_dizzy_face.png
├── thinking_melting_face.png
├── thinking_money_face.png
├── thinking_rolling_eyes.png
├── slightly_smiling_angry.png
├── thinking_exploding_head.png
├── shushing_with_money_face.png
├── slightly_smiling_fearful.png
├── thinking_looking_back_face.png
├── thinking_money_with_wings.png
├── screaming_face_looking_right.png
├── thinking_face_with_sunglasses.png
├── thinking_face_with_sunglasses_gun.png
├── slightly_smiling_fearful.svg
├── screaming_face_looking_right.svg
├── thinking_fire.svg
├── thinking_looking_back_face.svg
├── slightly_smiling_angry.svg
├── three_eyes.svg
├── thinking_pien.svg
├── thinking_devil.svg
├── thinking_rolling_eyes.svg
├── thinking_anxious_face.svg
├── dinging_face.svg
├── thinking_dizzy_face.svg
├── dotted_thinking_face.svg
├── thinking_melting_face.svg
├── thinking_cloud.svg
├── picking_face.svg
├── thinking_eyes.svg
├── thinking_face_with_sunglasses.svg
├── thinking_frog.svg
├── thinking_computer.svg
├── thinking_link.svg
├── oinking_face.svg
├── linking_face.svg
├── thinking_bomb.svg
├── thinking_money_face.svg
├── reading_face.svg
├── thinking_bulb.svg
├── thinking_knife.svg
├── thinking_beer.svg
├── ringing_face.svg
├── thinking_skull.svg
├── shrinking_face.svg
├── singing_face.svg
├── thinking_dead.svg
├── writing_face.svg
└── thinking_dead2.svg
├── package.json
├── README.md
└── .eleventy.js
/.prettierrc:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /_site
--------------------------------------------------------------------------------
/ogp/ogp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/ogp/ogp.png
--------------------------------------------------------------------------------
/ogp/ogp.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/ogp/ogp.xcf
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | indent_size = 2
5 | indent_style = space
--------------------------------------------------------------------------------
/gallery-site/_data/siteUrl.js:
--------------------------------------------------------------------------------
1 | module.exports = "https://custom-emojis.uhyo.space"
--------------------------------------------------------------------------------
/emojis/thinking_無.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_無.png
--------------------------------------------------------------------------------
/emojis/three_eyes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/three_eyes.png
--------------------------------------------------------------------------------
/emojis/chaining_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/chaining_face.png
--------------------------------------------------------------------------------
/emojis/dinging_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/dinging_face.png
--------------------------------------------------------------------------------
/emojis/fighting_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/fighting_face.png
--------------------------------------------------------------------------------
/emojis/linking_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/linking_face.png
--------------------------------------------------------------------------------
/emojis/oinking_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/oinking_face.png
--------------------------------------------------------------------------------
/emojis/picking_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/picking_face.png
--------------------------------------------------------------------------------
/emojis/reading_dead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/reading_dead.png
--------------------------------------------------------------------------------
/emojis/reading_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/reading_face.png
--------------------------------------------------------------------------------
/emojis/ringing_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/ringing_face.png
--------------------------------------------------------------------------------
/emojis/singing_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/singing_face.png
--------------------------------------------------------------------------------
/emojis/thinking_beer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_beer.png
--------------------------------------------------------------------------------
/emojis/thinking_bomb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_bomb.png
--------------------------------------------------------------------------------
/emojis/thinking_bulb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_bulb.png
--------------------------------------------------------------------------------
/emojis/thinking_dead.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_dead.png
--------------------------------------------------------------------------------
/emojis/thinking_eyes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_eyes.png
--------------------------------------------------------------------------------
/emojis/thinking_fire.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_fire.png
--------------------------------------------------------------------------------
/emojis/thinking_frog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_frog.png
--------------------------------------------------------------------------------
/emojis/thinking_link.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_link.png
--------------------------------------------------------------------------------
/emojis/thinking_ogre.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_ogre.png
--------------------------------------------------------------------------------
/emojis/thinking_pien.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_pien.png
--------------------------------------------------------------------------------
/emojis/writing_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/writing_face.png
--------------------------------------------------------------------------------
/emojis/shrinking_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/shrinking_face.png
--------------------------------------------------------------------------------
/emojis/thinking_brain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_brain.png
--------------------------------------------------------------------------------
/emojis/thinking_cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_cloud.png
--------------------------------------------------------------------------------
/emojis/thinking_dango.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_dango.png
--------------------------------------------------------------------------------
/emojis/thinking_dead2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_dead2.png
--------------------------------------------------------------------------------
/emojis/thinking_devil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_devil.png
--------------------------------------------------------------------------------
/emojis/thinking_knife.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_knife.png
--------------------------------------------------------------------------------
/emojis/thinking_skull.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_skull.png
--------------------------------------------------------------------------------
/emojis/thinking_sleep.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_sleep.png
--------------------------------------------------------------------------------
/emojis/thinking_computer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_computer.png
--------------------------------------------------------------------------------
/emojis/thinking_pleading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_pleading.png
--------------------------------------------------------------------------------
/emojis/dotted_thinking_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/dotted_thinking_face.png
--------------------------------------------------------------------------------
/emojis/thinking_anxious_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_anxious_face.png
--------------------------------------------------------------------------------
/emojis/thinking_dizzy_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_dizzy_face.png
--------------------------------------------------------------------------------
/emojis/thinking_melting_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_melting_face.png
--------------------------------------------------------------------------------
/emojis/thinking_money_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_money_face.png
--------------------------------------------------------------------------------
/emojis/thinking_rolling_eyes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_rolling_eyes.png
--------------------------------------------------------------------------------
/emojis/slightly_smiling_angry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/slightly_smiling_angry.png
--------------------------------------------------------------------------------
/emojis/thinking_exploding_head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_exploding_head.png
--------------------------------------------------------------------------------
/emojis/shushing_with_money_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/shushing_with_money_face.png
--------------------------------------------------------------------------------
/emojis/slightly_smiling_fearful.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/slightly_smiling_fearful.png
--------------------------------------------------------------------------------
/emojis/thinking_looking_back_face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_looking_back_face.png
--------------------------------------------------------------------------------
/emojis/thinking_money_with_wings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_money_with_wings.png
--------------------------------------------------------------------------------
/emojis/screaming_face_looking_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/screaming_face_looking_right.png
--------------------------------------------------------------------------------
/emojis/thinking_face_with_sunglasses.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_face_with_sunglasses.png
--------------------------------------------------------------------------------
/emojis/thinking_face_with_sunglasses_gun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/uhyo/custom-emojis/HEAD/emojis/thinking_face_with_sunglasses_gun.png
--------------------------------------------------------------------------------
/gallery-site/_includes/download-link.js:
--------------------------------------------------------------------------------
1 | const png = document.querySelector("#download-png");
2 | const svg = document.querySelector("#download-svg");
3 |
4 | function setDownloadLink() {
5 | const extList = [];
6 | if (png.checked) {
7 | extList.push("png");
8 | }
9 | if (svg.checked) {
10 | extList.push("svg");
11 | }
12 |
13 | const link = document.querySelector("#download-link");
14 | link.href = `/archive/emoji${extList.map(ext => `-${ext}`).join("")}.zip`;
15 | }
16 |
17 | setDownloadLink();
18 | png.addEventListener("change", setDownloadLink);
19 | svg.addEventListener("change", setDownloadLink);
--------------------------------------------------------------------------------
/gallery-site/_includes/css.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: sans-serif;
3 | }
4 |
5 | .emoji-list {
6 | display: grid;
7 | grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
8 | grid-auto-columns: auto;
9 | grid-auto-flow: row;
10 | gap: 16px;
11 | }
12 |
13 | .emoji {
14 | display: flex;
15 | flex-flow: column;
16 | justify-content: space-between;
17 | align-items: center;
18 | text-align: center;
19 | }
20 |
21 | #download-link {
22 | padding: 0.75em;
23 | border: 1px solid #ccc;
24 | border-radius: 8px;
25 | text-decoration: none;
26 | color: rgb(51, 113, 218);
27 | }
28 |
29 | .download-type {
30 | margin: 0 0.5em;
31 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "custom-emoji",
3 | "version": "1.0.0",
4 | "description": "Custom emojis we find useful on Slack.",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "build": "eleventy",
9 | "build-cloudflare-pages": "git fetch --unshallow && npm run build",
10 | "serve": "eleventy --serve"
11 | },
12 | "repository": {
13 | "type": "git",
14 | "url": "git+https://github.com/uhyo/custom-emojis.git"
15 | },
16 | "keywords": [],
17 | "author": "uhyo
{{ update.emojiName }} was {% 22 | if update.type === "add" %}added{% 23 | elif update.type === "modify" %}updated{% 24 | endif %}!
25 | ]]> 26 | 27 | 28 | {% endfor %} 29 | -------------------------------------------------------------------------------- /.eleventy.js: -------------------------------------------------------------------------------- 1 | const htmlmin = require("html-minifier"); 2 | const CleanCSS = require("clean-css"); 3 | const { minify } = require("terser"); 4 | const pluginRss = require('@11ty/eleventy-plugin-rss') 5 | 6 | module.exports = function (eleventyConfig) { 7 | eleventyConfig.addPlugin(pluginRss); 8 | 9 | eleventyConfig.addPassthroughCopy("emojis/*.png") 10 | eleventyConfig.addPassthroughCopy("ogp/ogp.png") 11 | 12 | eleventyConfig.addFilter("cssmin", function (code) { 13 | return new CleanCSS({}).minify(code).styles; 14 | }); 15 | eleventyConfig.addNunjucksAsyncFilter("jsmin", async function ( 16 | code, 17 | callback 18 | ) { 19 | try { 20 | const minified = await minify(code); 21 | callback(null, minified.code); 22 | } catch (err) { 23 | console.error("Terser error: ", err); 24 | callback(null, code); 25 | } 26 | }); 27 | 28 | eleventyConfig.addTransform("htmlmin", function (content) { 29 | if (this.outputPath && this.outputPath.endsWith(".html")) { 30 | const minified = htmlmin.minify(content, { 31 | useShortDoctype: true, 32 | removeComments: true, 33 | collapseWhitespace: true 34 | }); 35 | return minified; 36 | } 37 | 38 | return content; 39 | }); 40 | 41 | return { 42 | dir: { 43 | input: "gallery-site", 44 | output: "_site" 45 | } 46 | } 47 | }; -------------------------------------------------------------------------------- /gallery-site/index.njk: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |These are custom emojis that enriches your Slack experience.
22 |23 | Download all emojis 24 | 28 | 32 |
33 |This work is licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
43 |This work is based on Twemoji.
44 |Contribution is welcome!
47 | {% set downloadLinkJs %} 48 | {% include "download-link.js" %} 49 | {% endset %} 50 | 51 | 52 | -------------------------------------------------------------------------------- /emojis/slightly_smiling_fearful.svg: -------------------------------------------------------------------------------- 1 | 2 | 82 | -------------------------------------------------------------------------------- /emojis/screaming_face_looking_right.svg: -------------------------------------------------------------------------------- 1 | 2 | 68 | -------------------------------------------------------------------------------- /gallery-site/_data/emojis.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | const path = require("path"); 4 | const fs = require("fs/promises"); 5 | const util = require("util"); 6 | const child_process = require("child_process"); 7 | 8 | module.exports = async () => { 9 | const emojisDir = path.join(__dirname, "../../emojis"); 10 | // get all .png files in the dir 11 | const read = await fs.readdir(emojisDir); 12 | const files = read.filter((file) => file.endsWith(".png")); 13 | const emojis = files.sort().map((file) => { 14 | const name = file.slice(0, -4); 15 | return { 16 | name, 17 | url: `/emojis/${encodeURIComponent(file)}`, 18 | }; 19 | }); 20 | 21 | const emojiUrls = new Map(emojis.map(emoji => [emoji.name, emoji.url])); 22 | 23 | const history = await getEmojiHistory(emojisDir, emojiUrls); 24 | 25 | console.log(history) 26 | return { 27 | emojisDir, 28 | emojis, 29 | history, 30 | }; 31 | }; 32 | 33 | /** 34 | * @param {string} emojisDir 35 | * @param {Map