vim-jp-emojisのデータ作成用script
scrapbox.io/vim-jp-emojisのscrapbox json dataを作成するscript
vim-jpのemoji情報をscrapbox json dataに変換するscriptからの変更点
標準のSlack絵文字を外した
以下を含む絵文字をタグ分けした
alphabet
blob
neonblob
ablob
apartyblob
alisue
有末, matryoshkaも同様
cw
gopher
/^rage/
mattn
nyan
denops
denoopsも同様
/^spin/,rotate, rotating
ujihisa
gorilla
vim
thinking
parrot
[party parrot]
wa-
zabuton, 座布団
/^ie/
日本語アイコンも分けたかったが、自動でやれる方法がなさそうだったので断念
代わりに手動でつける
800個以上も絵文字があって草takker.icon
code:sh
deno run --allow-write=./vim-jp-emojis.json --allow-net=raw.githubusercontent.com -r=https://scrapbox.io https://scrapbox.io/api/code/takker/vim-jp-emojisのデータ作成用script/script.ts
code:script.ts
import { getEmojis } from "../vim-jpのemoji情報をscrapbox_json_dataに変換/mod.ts";
import { getTags } from "./utils.ts";
const customEmojis = await getEmojis();
const pages = customEmojis.map(({
name,
...rest
}) =>{
const href = ("src" in rest) ? rest.src : customEmojis.find(emoji => emoji.name === rest.alias)?.src;
return {
title: name,
lines: [
name,
...(href ? [[${href}]] : []),
'',
...(("alias" in rest) ? [[${rest.alias}]] : []),
...getTags(name).map((tag) => #${tag.replaceAll(" ", "_")}),
],
};
});
await Deno.writeTextFile('vim-jp-emojis.json', JSON.stringify({ pages }));
code:utils.ts
const config: RegExp, string[] = [
/alisue|有末|matryoshka/, "alisue",
/apartyblob/, "apartyblob",
/neonblob/, "neonblob",
/alphabet/, "alphabet",
/mattn/, "mattn",
/denoo?ps/, "denops",
/ujihisa/, "ujihisa",
/gorilla/, "gorilla",
/gopher|party_go/, "gopher",
/zabuton|座布団/, "座布団",
/^rage/, "rage",
/ablob/, "ablob",
/blob/, "blob",
/nyan/, "nyan",
/vim/, "vim",
/parrot/, "Party_Parrot",
/wa-/, "ワーワー",
/cw_/, "cw",
/miku/, "初音ミク",
/^ie/, "Internet_Explorer",
/thinking/, "thinking",
/party/, "party",
[/(?:^spin)|rotatei/, "rotate"],
];
export function getTags(name: string): string[] {
return config.flatMap((regExp, tag) => regExp.test(name) ? tag : []);
}
#2022-02-03 08:17:17