import * as blog from './blog.js'; async function main() { if (request.path.startsWith('%') && request.path.endsWith('.sha256')) { let id = request.path.startsWith('%25') ? '%' + request.path.substring(3) : request.path; let message = await blog.get_blog_message(id); if (message) { respond({ data: await blog.render_blog_post_html(message), content_type: 'text/html; charset=utf-8', }); } else { respond({ data: `Message ${id} not found.`, content_type: 'text/html; charset=utf-8', }); } } else if (request.path == 'atom') { let blogs = await blog.get_posts(); respond({ data: blog.render_atom(blogs), content_type: 'application/atom+xml', }); } else { let blogs = await blog.get_posts(); for (let blog_post of blogs) { let title = (blog_post.title || '').replaceAll(/\W/g, '_').toLowerCase(); if (request.path === title) { respond({ data: await blog.render_blog_post_html(blog_post), content_type: 'text/html; charset=utf-8', }); return; } } respond({ data: blog.render_html(blogs), content_type: 'text/html; charset=utf-8', }); } } main().catch(function (error) { respond({ data: `
${error.message}\n${error.stack}
`, content_type: 'text/html', }); });