mirror of
https://github.com/jaronpate/folio.git
synced 2026-10-18 17:06:56 +00:00
Fixed up the curl response a little
This commit is contained in:
+104
-22
@@ -1,5 +1,61 @@
|
||||
import chalk from 'chalk';
|
||||
|
||||
function box(def: {
|
||||
title: string;
|
||||
text: string;
|
||||
footer?: [string, string];
|
||||
padding?: [number, number];
|
||||
}) {
|
||||
const [LINE_WIDTH_PADDING, LINE_HEIGHT_PADDING] = def.padding ?? [0, 0];
|
||||
const lineHeight = def.text.split('\n').length;
|
||||
const lineWidth = def.text
|
||||
.split('\n')
|
||||
.reduce((agg, cur) => Math.max(agg, cur.length), 0);
|
||||
|
||||
let rendered =
|
||||
chalk.dim(`${GLYPHS.BOX.ROUND.TOP_LEFT}${GLYPHS.BOX.ROUND.XEDGE}`) +
|
||||
chalk.reset(` ${def.title} `) +
|
||||
chalk.dim(
|
||||
`${GLYPHS.BOX.ROUND.XEDGE.repeat(lineWidth - def.title.length - 3 + LINE_WIDTH_PADDING * 2)}${GLYPHS.BOX.ROUND.TOP_RIGHT}\n`,
|
||||
);
|
||||
rendered += (
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
`${' '.repeat(LINE_WIDTH_PADDING)}${' '.repeat(lineWidth)}${' '.repeat(LINE_WIDTH_PADDING)}` +
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
'\n'
|
||||
).repeat(LINE_HEIGHT_PADDING);
|
||||
|
||||
for (const line of def.text.split('\n')) {
|
||||
const padding = lineWidth - line.length;
|
||||
rendered +=
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
`${' '.repeat(LINE_WIDTH_PADDING)}${line}${' '.repeat(padding)}${' '.repeat(LINE_WIDTH_PADDING)}` +
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
'\n';
|
||||
}
|
||||
|
||||
rendered += (
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
`${' '.repeat(LINE_WIDTH_PADDING)}${' '.repeat(lineWidth)}${' '.repeat(LINE_WIDTH_PADDING)}` +
|
||||
chalk.dim(GLYPHS.BOX.ROUND.YEDGE) +
|
||||
'\n'
|
||||
).repeat(LINE_HEIGHT_PADDING);
|
||||
rendered += chalk.dim(
|
||||
`${GLYPHS.BOX.ROUND.BOTTOM_LEFT}${GLYPHS.BOX.ROUND.XEDGE.repeat(lineWidth + LINE_WIDTH_PADDING * 2)}${GLYPHS.BOX.ROUND.BOTTOM_RIGHT}`,
|
||||
);
|
||||
|
||||
if (def.footer) {
|
||||
rendered += '\n\n';
|
||||
const [left, right] = def.footer;
|
||||
const padding = lineWidth - left.length - right.length;
|
||||
rendered += chalk.dim(
|
||||
`${' '.repeat(LINE_WIDTH_PADDING)} ${left}${' '.repeat(padding)}${right} ${' '.repeat(LINE_WIDTH_PADDING)}`,
|
||||
);
|
||||
}
|
||||
|
||||
return rendered;
|
||||
}
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const userAgent = getRequestHeader(event, 'user-agent') || '';
|
||||
|
||||
@@ -12,30 +68,56 @@ export default defineEventHandler(async (event) => {
|
||||
'content-type',
|
||||
'text/plain; charset=utf-8',
|
||||
);
|
||||
const padding = chalk.reset(' ');
|
||||
return (
|
||||
chalk.bgGray(`\
|
||||
let res = '\n';
|
||||
|
||||
${padding}░█░█░█▀▀░█░░░█░░░█▀█░░░░░░░▀█▀░▀░█▄█░░░▀▀█░█▀█░█▀▄░█▀█░█▀█
|
||||
${padding}░█▀█░█▀▀░█░░░█░░░█░█░░░░░░░░█░░░░█░█░░░░░█░█▀█░█▀▄░█░█░█░█
|
||||
${padding}░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▄▀░░░░▀▀▀░░░▀░▀░░░▀▀░░▀░▀░▀░▀░▀▀▀░▀░▀
|
||||
${padding}
|
||||
${padding}┌ About ─────────────────────────────────────────────────────────────────────┐
|
||||
${padding}│ │
|
||||
${padding}│ I build things to solve problems from the ground up. │
|
||||
${padding}│ │
|
||||
${padding}│ I left school and my job at Chick-fil-A in 2022 to write code full time. │
|
||||
${padding}│ It's definitely one of the best decisions I've ever made. │
|
||||
${padding}│ I've learned a lot since then and still have so much more to learn. │
|
||||
${padding}│ │
|
||||
${padding}│ If you want to build something cool or connect hit me up │
|
||||
${padding}│ we'll grab a coffee or beer in you're in Austin! │
|
||||
${padding}│ │
|
||||
${padding}└────────────────────────────────────────────────────────────────────────────┘
|
||||
${padding}
|
||||
${padding} Austin, TX yo@jp.wtf
|
||||
`) + '\n'
|
||||
res += `\
|
||||
░█░█░█▀▀░█░░░█░░░█▀█░░░░░░░▀█▀░▀░█▄█░░░▀▀█░█▀█░█▀▄░█▀█░█▀█
|
||||
░█▀█░█▀▀░█░░░█░░░█░█░░░░░░░░█░░░░█░█░░░░░█░█▀█░█▀▄░█░█░█░█
|
||||
░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▄▀░░░░▀▀▀░░░▀░▀░░░▀▀░░▀░▀░▀░▀░▀▀▀░▀░▀\n`;
|
||||
res += '\n';
|
||||
res += box({
|
||||
title: 'About',
|
||||
text: `\
|
||||
I build things to solve problems from the ground up.
|
||||
|
||||
I left school and my job at Chick-fil-A in 2022 to write code full time.
|
||||
It's definitely one of the best decisions I've ever made.
|
||||
I've learned a lot since then and still have so much more to learn.
|
||||
|
||||
If you want to build something cool or connect hit me up
|
||||
we'll grab a coffee or beer in you're in Austin! 🤠🦇`,
|
||||
footer: ['Austin, TX', 'yo@jp.wtf'],
|
||||
padding: [2, 1],
|
||||
});
|
||||
const padding = chalk.reset(' ');
|
||||
|
||||
return (
|
||||
res
|
||||
.split('\n')
|
||||
.map((l) => padding + l)
|
||||
.join('\n') + '\n'
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const GLYPHS = {
|
||||
BOX: {
|
||||
DEFAULT: {
|
||||
TOP_LEFT: '┌',
|
||||
TOP_RIGHT: '┐',
|
||||
BOTTOM_LEFT: '└',
|
||||
BOTTOM_RIGHT: '┘',
|
||||
XEDGE: '─',
|
||||
YEDGE: '│',
|
||||
},
|
||||
ROUND: {
|
||||
TOP_LEFT: '╭',
|
||||
TOP_RIGHT: '╮',
|
||||
BOTTOM_LEFT: '╰',
|
||||
BOTTOM_RIGHT: '╯',
|
||||
XEDGE: '─',
|
||||
YEDGE: '│',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user