big style update

This commit is contained in:
Daniel Ledda
2025-12-20 21:16:00 +01:00
parent 51e44db779
commit 498cb37561
17 changed files with 562 additions and 322 deletions

39
main.ts
View File

@@ -100,6 +100,45 @@ async function getAPIResponse(apiReq: Request): Promise<Response> {
}
result.sort((a, b) => a.titleDe.localeCompare(b.titleDe));
jsonResponse = result;
} else if (apiPath === "/blog-entries") {
const paths: string[] = [];
const contentDir = './public/blog/content/';
for await (const dirEnt of Deno.readDir(contentDir)) {
if (dirEnt.isFile && dirEnt.name.endsWith('.html')) {
paths.push(`${contentDir}${dirEnt.name}`);
}
}
const result: DjAPIResultMap['/blog-entries'] = [];
for (const filePath of paths) {
const [ stat, content ] = await Promise.all([Deno.stat(filePath), Deno.readTextFile(filePath)]);
const dom = parser.parseFromString(content, 'text/html');
const metadata = {
slug: '',
tags: [] as string[],
title: '',
createdAt: '',
updatedAt: '',
};
const metaTags = dom.querySelectorAll('meta') as unknown as NodeListOf<HTMLMetaElement>;
for (const metaTag of metaTags) {
const name = metaTag.attributes.getNamedItem('name')?.value ?? '';
const content = metaTag.attributes.getNamedItem('content')?.value ?? '';
if (name === 'title') {
metadata.title = content;
} else if (name === 'tags') {
metadata.tags = content ? content.split(",") : [];
} else if (name === 'slug') {
metadata.slug = content;
} else if (name === 'updatedAt') {
metadata.createdAt = content;
} else if (name === 'createdAt') {
metadata.updatedAt = content;
}
}
result.push(metadata);
}
result.sort((a, b) => new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime());
jsonResponse = result;
}
if (!jsonResponse) {