diff --git a/.eslintrc.json b/.eslintrc.json index 7645890..d362c70 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,13 +1,12 @@ { - "env": { - "node": true, - "commonjs": true, - "es2021": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": "latest" - }, - "rules": { - } + "env": { + "node": true, + "commonjs": true, + "es2021": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": "latest" + }, + "rules": {} } diff --git a/fonts/asian.json b/fonts/asian.json index de91e12..e65edf1 100644 --- a/fonts/asian.json +++ b/fonts/asian.json @@ -1,64 +1,64 @@ { - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "8", - "9": "9", - "a": "\u5342", - "b": "\u4e43", - "c": "\u531a", - "d": "\u15ea", - "e": "\u4e47", - "f": "\u5343", - "g": "\u13b6", - "h": "\u5344", - "i": "\u4e28", - "j": "\uff8c", - "k": "\u049c", - "l": "\u3125", - "m": "\u722a", - "n": "\u51e0", - "o": "\u3116", - "p": "\u5369", - "q": "\u024a", - "r": "\u5c3a", - "s": "\u4e02", - "t": "\u3112", - "u": "\u3129", - "v": "\u142f", - "w": "\u5c71", - "x": "\u4e42", - "y": "\u311a", - "z": "\u4e59", - "A": "\u5342", - "B": "\u4e43", - "C": "\u531a", - "D": "\u15ea", - "E": "\u4e47", - "F": "\u5343", - "G": "\u13b6", - "H": "\u5344", - "I": "\u4e28", - "J": "\uff8c", - "K": "\u049c", - "L": "\u3125", - "M": "\u722a", - "N": "\u51e0", - "O": "\u3116", - "P": "\u5369", - "Q": "\u024a", - "R": "\u5c3a", - "S": "\u4e02", - "T": "\u3112", - "U": "\u3129", - "V": "\u142f", - "W": "\u5c71", - "X": "\u4e42", - "Y": "\u311a", - "Z": "\u4e59" + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "a": "\u5342", + "b": "\u4e43", + "c": "\u531a", + "d": "\u15ea", + "e": "\u4e47", + "f": "\u5343", + "g": "\u13b6", + "h": "\u5344", + "i": "\u4e28", + "j": "\uff8c", + "k": "\u049c", + "l": "\u3125", + "m": "\u722a", + "n": "\u51e0", + "o": "\u3116", + "p": "\u5369", + "q": "\u024a", + "r": "\u5c3a", + "s": "\u4e02", + "t": "\u3112", + "u": "\u3129", + "v": "\u142f", + "w": "\u5c71", + "x": "\u4e42", + "y": "\u311a", + "z": "\u4e59", + "A": "\u5342", + "B": "\u4e43", + "C": "\u531a", + "D": "\u15ea", + "E": "\u4e47", + "F": "\u5343", + "G": "\u13b6", + "H": "\u5344", + "I": "\u4e28", + "J": "\uff8c", + "K": "\u049c", + "L": "\u3125", + "M": "\u722a", + "N": "\u51e0", + "O": "\u3116", + "P": "\u5369", + "Q": "\u024a", + "R": "\u5c3a", + "S": "\u4e02", + "T": "\u3112", + "U": "\u3129", + "V": "\u142f", + "W": "\u5c71", + "X": "\u4e42", + "Y": "\u311a", + "Z": "\u4e59" } diff --git a/fonts/asian2.json b/fonts/asian2.json index 934c854..de77478 100644 --- a/fonts/asian2.json +++ b/fonts/asian2.json @@ -1,64 +1,64 @@ { - "0": "0", - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "8", - "9": "9", - "a": "\uff91", - "b": "\u4e43", - "c": "\u1103", - "d": "\u308a", - "e": "\u4e47", - "f": "\uff77", - "g": "\u30e0", - "h": "\u3093", - "i": "\uff89", - "j": "\uff8c", - "k": "\u30ba", - "l": "\uff9a", - "m": "\uffb6", - "n": "\u5200", - "o": "\u306e", - "p": "\uff71", - "q": "\u3090", - "r": "\u5c3a", - "s": "\u4e02", - "t": "\uff72", - "u": "\u3072", - "v": "\u221a", - "w": "W", - "x": "\uff92", - "y": "\uff98", - "z": "\u4e59", - "A": "\uff91", - "B": "\u4e43", - "C": "\u1103", - "D": "\u308a", - "E": "\u4e47", - "F": "\uff77", - "G": "\u30e0", - "H": "\u3093", - "I": "\uff89", - "J": "\uff8c", - "K": "\u30ba", - "L": "\uff9a", - "M": "\uffb6", - "N": "\u5200", - "O": "\u306e", - "P": "\uff71", - "Q": "\u3090", - "R": "\u5c3a", - "S": "\u4e02", - "T": "\uff72", - "U": "\u3072", - "V": "\u221a", - "W": "W", - "X": "\uff92", - "Y": "\uff98", - "Z": "\u4e59" + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "a": "\uff91", + "b": "\u4e43", + "c": "\u1103", + "d": "\u308a", + "e": "\u4e47", + "f": "\uff77", + "g": "\u30e0", + "h": "\u3093", + "i": "\uff89", + "j": "\uff8c", + "k": "\u30ba", + "l": "\uff9a", + "m": "\uffb6", + "n": "\u5200", + "o": "\u306e", + "p": "\uff71", + "q": "\u3090", + "r": "\u5c3a", + "s": "\u4e02", + "t": "\uff72", + "u": "\u3072", + "v": "\u221a", + "w": "W", + "x": "\uff92", + "y": "\uff98", + "z": "\u4e59", + "A": "\uff91", + "B": "\u4e43", + "C": "\u1103", + "D": "\u308a", + "E": "\u4e47", + "F": "\uff77", + "G": "\u30e0", + "H": "\u3093", + "I": "\uff89", + "J": "\uff8c", + "K": "\u30ba", + "L": "\uff9a", + "M": "\uffb6", + "N": "\u5200", + "O": "\u306e", + "P": "\uff71", + "Q": "\u3090", + "R": "\u5c3a", + "S": "\u4e02", + "T": "\uff72", + "U": "\u3072", + "V": "\u221a", + "W": "W", + "X": "\uff92", + "Y": "\uff98", + "Z": "\u4e59" } diff --git a/fonts/squiggle5.json b/fonts/squiggle5.json index 3708a31..36a0a46 100644 --- a/fonts/squiggle5.json +++ b/fonts/squiggle5.json @@ -1,64 +1,64 @@ { - "0":"0", - "1":"1", - "2":"2", - "3":"3", - "4":"4", - "5":"5", - "6":"6", - "7":"7", - "8":"8", - "9":"9", - "a":"ą", - "b":"ც", - "c":"ƈ", - "d":"ɖ", - "e":"ɛ", - "f":"ʄ", - "g":"ɠ", - "h":"ɧ", - "i":"ı", - "j":"ʝ", - "k":"ƙ", - "l":"Ɩ", - "m":"ɱ", - "n":"ŋ", - "o":"ơ", - "p":"℘", - "q":"զ", - "r":"ཞ", - "s":"ʂ", - "t":"ɬ", - "u":"ų", - "v":"۷", - "w":"ῳ", - "x":"ҳ", - "y":"ყ", - "z":"ʑ", - "A":"ą", - "B":"ც", - "C":"ƈ", - "D":"ɖ", - "E":"ɛ", - "F":"ʄ", - "G":"ɠ", - "H":"ɧ", - "I":"ı", - "J":"ʝ", - "K":"ƙ", - "L":"Ɩ", - "M":"ɱ", - "N":"ŋ", - "O":"ơ", - "P":"℘", - "Q":"զ", - "R":"ཞ", - "S":"ʂ", - "T":"ɬ", - "U":"ų", - "V":"۷", - "W":"ῳ", - "X":"ҳ", - "Y":"ყ", - "Z":"ʑ" + "0": "0", + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "a": "ą", + "b": "ც", + "c": "ƈ", + "d": "ɖ", + "e": "ɛ", + "f": "ʄ", + "g": "ɠ", + "h": "ɧ", + "i": "ı", + "j": "ʝ", + "k": "ƙ", + "l": "Ɩ", + "m": "ɱ", + "n": "ŋ", + "o": "ơ", + "p": "℘", + "q": "զ", + "r": "ཞ", + "s": "ʂ", + "t": "ɬ", + "u": "ų", + "v": "۷", + "w": "ῳ", + "x": "ҳ", + "y": "ყ", + "z": "ʑ", + "A": "ą", + "B": "ც", + "C": "ƈ", + "D": "ɖ", + "E": "ɛ", + "F": "ʄ", + "G": "ɠ", + "H": "ɧ", + "I": "ı", + "J": "ʝ", + "K": "ƙ", + "L": "Ɩ", + "M": "ɱ", + "N": "ŋ", + "O": "ơ", + "P": "℘", + "Q": "զ", + "R": "ཞ", + "S": "ʂ", + "T": "ɬ", + "U": "ų", + "V": "۷", + "W": "ῳ", + "X": "ҳ", + "Y": "ყ", + "Z": "ʑ" } diff --git a/sofancy.js b/sofancy.js index 5a1cabe..9f98a73 100755 --- a/sofancy.js +++ b/sofancy.js @@ -2,13 +2,13 @@ const fs = require("fs").promises; const path = require("path"); let charmap, - find, - font, - str = "", - titles = false; + find, + font, + str = "", + titles = false; function usage() { - console.log(`usage: sofancy [-f (font) | -t] string + console.log(`usage: sofancy [-f (font) | -t] string flags: -f|--font (font) : output in a single font @@ -22,71 +22,71 @@ txt: ᒪᒪᗩᗰᗩᔕ sofancy -t some string | fzf | xsel -i git commit -m "style(docs): $(sofancy -f bolditalic STYLIN)" `); - process.exit(); + process.exit(); } function reverse(s) { - return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0); + return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0); } function setArgs() { - const { parseArgs } = require("node:util"); - const args = process.argv.slice(2); - const options = { - font: { - type: "string", - short: "f", - }, - titles: { - type: "boolean", - short: "t", - }, - }; - try { - const { values, positionals } = parseArgs({ - args, - options, - allowPositionals: true, - }); - font = values.font || false; - find = !font ? /.*json$/ : new RegExp(`\\b${font}.json\\b`, "gi"); - titles = values.titles || false; - str = (font == "upsidedown" || font == "mirrorflip") - ? reverse(positionals.join(" ")) - : positionals.join(" ") || usage(); - } catch (e) { - usage(); - } + const { parseArgs } = require("node:util"); + const args = process.argv.slice(2); + const options = { + font: { + type: "string", + short: "f", + }, + titles: { + type: "boolean", + short: "t", + }, + }; + try { + const { values, positionals } = parseArgs({ + args, + options, + allowPositionals: true, + }); + font = values.font || false; + find = !font ? /.*json$/ : new RegExp(`\\b${font}.json\\b`, "gi"); + titles = values.titles || false; + str = (font == "upsidedown" || font == "mirrorflip") + ? reverse(positionals.join(" ")) + : positionals.join(" ") || usage(); + } catch (e) { + usage(); + } } const walk = async (dir, filelist = []) => { - const files = await fs.readdir(dir); + const files = await fs.readdir(dir); - for (const file of files) { - const filepath = path.join(dir, file); - const stat = await fs.stat(filepath); + for (const file of files) { + const filepath = path.join(dir, file); + const stat = await fs.stat(filepath); - if (stat.isDirectory()) { - filelist = await walk(filepath, filelist); - } else { - if (file.match(find)) { - filelist.push(file); - charmap = require(__dirname + `/fonts/${file}`); - let title = titles ? file.replace(".json", "").padEnd(15) : ""; - console.log( - title + - str.replace(/./g, function (s) { - if (s in charmap) { - return charmap[s]; - } else if (s.toLowerCase() in charmap) { - return charmap[s.toLowerCase()]; - } else if (s.toUpperCase() in charmap) { - return charmap[s.toUpperCase()]; - } else { - return s; - } - }) + " " - ); - } - } - } + if (stat.isDirectory()) { + filelist = await walk(filepath, filelist); + } else { + if (file.match(find)) { + filelist.push(file); + charmap = require(__dirname + `/fonts/${file}`); + let title = titles ? file.replace(".json", "").padEnd(15) : ""; + console.log( + title + + str.replace(/./g, function(s) { + if (s in charmap) { + return charmap[s]; + } else if (s.toLowerCase() in charmap) { + return charmap[s.toLowerCase()]; + } else if (s.toUpperCase() in charmap) { + return charmap[s.toUpperCase()]; + } else { + return s; + } + }) + " " + ); + } + } + } }; setArgs(); walk(__dirname + "/fonts");