From 60ba1cdc86f259a1ca809af59c13a0acd021fb79 Mon Sep 17 00:00:00 2001 From: koehr Date: Sun, 10 Dec 2023 11:36:27 +0100 Subject: [PATCH] feat: consider max width for rendering figlet --- .vitepress/theme/Layout.vue | 6 ++++-- .vitepress/theme/useFiglet.ts | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.vitepress/theme/Layout.vue b/.vitepress/theme/Layout.vue index 8fdd366..2712e5e 100644 --- a/.vitepress/theme/Layout.vue +++ b/.vitepress/theme/Layout.vue @@ -19,7 +19,9 @@ const footer = ref([]) const figlet = useFiglet() function getHeaderArt(header: string, font: string) { - return figlet.render(header, font) + // Why is that so simple to approximate? Pretty sure, there is a mistake somewhere... + const maxWidth = Math.round(textArea.value?.getBoundingClientRect().width / 10) - 2 + return figlet.render(header, font, maxWidth) } function parsedContent(src: string) { @@ -42,7 +44,7 @@ function getCurrentPage(title: string) { console.error('☠️ current page not found in the list. This should never happen.') return { title: 'not_found', - headerArt: getTitleArt('not_found'), + headerArt: getHeaderArt('404', 'chunky'), content: 'The page could not be found.', uris: [], } diff --git a/.vitepress/theme/useFiglet.ts b/.vitepress/theme/useFiglet.ts index 04ff0f0..15bc964 100644 --- a/.vitepress/theme/useFiglet.ts +++ b/.vitepress/theme/useFiglet.ts @@ -22,7 +22,8 @@ function getFont(name: string) { export default function useFiglet() { const flm = new FontLayoutManager() - function render(text: string, fontName: string) { + function render(text: string, fontName: string, maxWidth: number) { + flm.width.set(maxWidth) const figFont = getFont(fontName) const output = flm.renderText(text, figFont) return output