import { readFileSync } from "node:fs";
import { BasePage } from "./bases.js";
import type { Page } from "./types.js";

interface LinkData {
	title: string,
	url: string,
	tags: string[],
	description?: string,
	read?: string,
	author?: string,
}
interface Data {
	links: LinkData[];
	to_read: string[],
	authors: Record<string, {
		urls: string[],
	}>;
}
function Link(props: { link: LinkData }) {
	const link = props.link;
	return <>
		<a href={link.url}>{link.title}</a>
		{" "}
		{link.tags.join(", ")}
	</>
}
const data: Data = eval(`(${readFileSync("content/links.jsonc", "utf8")})`);
data.links.pop(); // Remove template at the end
const title = "Links!";
export const links: Page = {
	title,
	ref: "/links.html",
	content: <BasePage title={title}>
		<main>
			<h1>{title}</h1>
			<ul>
				{ data.links.map(link => <li><Link link={link} /></li>)}
			</ul>
		</main>
	</BasePage>
}
