ahmedelgabri
Version:
A personal card for Ahmed El Gabri (@ahmedelgabri)
51 lines (50 loc) • 2.07 kB
JavaScript
import "./_dnt.polyfills.js";
import * as dntShim from "./_dnt.shims.js";
import * as c from "./deps/jsr.io/@std/fmt/0.221.0/colors.js";
import boxen from "boxen";
const fullname = "Ahmed El Gabri";
const social = fullname.toLowerCase().replaceAll(" ", "");
const jsrUserName = fullname.toLowerCase().split(" ").at(0);
const domain = fullname.toLowerCase().split(" ").at(-1);
const handle = c.blue(social);
const work = c.reset(`Principal Engineer ${c.yellow("@Mirohq")}`);
const twitter = c.blue(`https://twitter.com/${handle}`);
const github = c.blue(`https://github.com/${handle}`);
const linkedin = c.blue(`https://linkedin.com/in/${handle}`);
const web = c.blue(`https://${domain}.me`);
const npx = c.reset(`npx ${handle}@latest`);
const deno = c.reset(`deno run -r --allow-env jsr:@${c.blue(jsrUserName)}/card`);
const labelWork = c.gray(" Work: ");
const labelTwitter = c.dim(" Twitter/X: ");
const labelGitHub = c.dim(" GitHub: ");
const labelLinkedIn = c.dim(" LinkedIn: ");
const labelWeb = c.dim(" Web: ");
const labelNode = c.gray(" Node: ");
const labelDeno = c.gray(" Deno: ");
const working = `${labelWork} ${work}`;
const twittering = `${labelTwitter} ${twitter}`;
const githubing = `${labelGitHub} ${github}`;
const linkedining = `${labelLinkedIn} ${linkedin}`;
const webing = `${labelWeb} ${web}`;
const npming = `${labelNode} ${npx}`;
const denoing = `${labelDeno} ${deno}`;
const output = `${working}\n\n${githubing}\n${linkedining}\n${twittering}\n${webing}\n\n${denoing}\n${npming}`;
/**
* Returns a boxed and colored personal card containing personal information
*
* @returns {string}
*/
export function getCard() {
return boxen(output, {
title: fullname,
padding: 1,
margin: 5,
borderStyle: "round",
borderColor: dntShim.Deno.env.get("NO_COLOR") ? undefined : "blue",
});
}
// Needed for deno run ...
// card.ts is needed for npx ...
if ((import.meta.url === ("file:///" + process.argv[1].replace(/\\/g, "/")).replace(/\/{3,}/, "///"))) {
console.log(getCard());
}