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 blob = await ssb.messageContentGet(id); if (blob) { let content = JSON.parse(utf8Decode(blob)); let md = content?.text; if (content?.type == 'blog') { md = utf8Decode(await ssb.blobGet(content?.blog)); } respond({data: ` ${blog.markdown(md)} `, 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'}); });