You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.4 KiB
37 lines
1.4 KiB
#!/usr/bin/env node
|
|
|
|
const http = require('https');
|
|
const url = require('url');
|
|
const emoji = require('emoji-datasource-twitter');
|
|
|
|
if (process.argv.length === 3) {
|
|
console.log([
|
|
'/*',
|
|
' * Autogenerated by mkemoji script from jQuery Terminal',
|
|
' * Copyright (C) Jakub T. Jankiewicz <https://jcubic.pl>',
|
|
' * ship with version: ' + process.argv[2],
|
|
' * build: ' + new Date().toUTCString(),
|
|
' */'].join('\n'));
|
|
function make_emoji(class_name, url) {
|
|
var selector = [
|
|
'.terminal-output .emoji.' + class_name,
|
|
'.cmd .emoji.' + class_name].join(',');
|
|
return `${selector}{background-image:url(${url});}`;
|
|
}
|
|
var base = 'https://unpkg.com/emoji-datasource-twitter/img/twitter/64/';
|
|
emoji.map(function(emoji) {
|
|
var url = base + emoji.image;
|
|
// escape special characters in class name
|
|
// https://mathiasbynens.be/notes/css-escapes
|
|
var class_name = emoji.short_name.replace(/\+/g, '\\+')
|
|
.replace(/^(\d)/i, '\\3$1 ');
|
|
console.log(make_emoji(class_name, url));
|
|
if (emoji.skin_variations) {
|
|
Object.values(emoji.skin_variations).forEach((emoji, i) => {
|
|
var url = base + emoji.image;
|
|
var var_class_name = `${class_name}-var-${i}`;
|
|
console.log(make_emoji(var_class_name, url));
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|