import type { NextPage } from "next"; import gen from "random-seed"; import Layout from "../components/Blog/Layout"; import type { ContentList, Project, Diary } from "../lib/content/types"; import ProjectCard from "../components/Blog/Card"; import { getContentList } from "../lib/content/generateBackend"; import styles from "../styles/Blog/Front.module.scss"; const Blog: NextPage<{ content: ContentList }> = ({content}) => { const clearDescription = (description: string) => { const linkRegex = /#%\{([a-z0-9 \.-\/:]*)\|([a-z0-9 \/:\.-]*)\}/ig; const cmdRegex = /%\{([a-z0-9 \.-\/:]*)}/ig; return description.replace(linkRegex, "$1").replace(cmdRegex, "\"$1\""); }; const shuffleArray = (arr: any[]) => { // We want shuffle but only between days const date = new Date(); const generator = gen.create(`${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`); // https://stackoverflow.com/a/6274381 for (let i = arr.length - 1; i > 0; i--) { const j = generator.intBetween(0, i); [arr[i], arr[j]] = [arr[j], arr[i]]; } generator.done(); return arr; }; const generateCards = (type: string) => { return
{ (shuffleArray(content.filter(p => p.type === type)) as (Project|Diary)[]) .map(p => )}
; }; return

Hello there!

Miaumiau Lorem ipsum

Projects

{ generateCards("project") }

Diaries

{ generateCards("diary") }
; }; export async function getServerSideProps() { return { props: { content: await getContentList() } }; } export default Blog;