const fs = require("node:fs/promises"); const path = require("node:path"); const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args)); const { html: beautifyHtml } = require('js-beautify'); const data = { outputDirectory: "./out", navigationLinks: [ {link: "index.html", text: "home", name: "index"}, {link: "projects.html", text: "projects", name: "projects"}, {link: "https://git.hippoz.xyz", text: "git", name: "__ext_git"}, ], postProcessing: { beautifyOutput: true, beautifyOutputOptions: { indent_size: 2, preserve_newlines: false }, minifyOutputOptions: { indent_size: 0, preserve_newlines: false, end_with_newline: false, eol: "" } }, repositoryList: { gitTargetUsername: "hippoz", repositoryFetchUrl: `https://git.hippoz.xyz/api/v1/users/hippoz/repos?page=1&limit=100`, _cache: null, fetchProjects: async function() { if (this._cache) return this._cache; const response = await fetch(this.repositoryFetchUrl); const json = await response.json(); this._cache = json; return json; } }, navigationBrandingText: "hippoz." }; const linkButton = ({ link, text, selected=false }) => ` ${text} `; const navigation = ({currentName}) => ` `; const makePage = ({ name, description, title }) => content => [`
i think
`); const projectsPage = async () => makePage({ title: "hippoz", description: "hippoz projects", name: "projects", })(` ${ (await data.repositoryList.fetchProjects()) .sort((a, b) => b.size - a.size) // biggest projects first .filter(a => !a.archived) .map( repo =>`${repo.description}
` : ""}