Run prettier.
This commit is contained in:
		| @@ -5,4 +5,4 @@ async function main() { | ||||
| 	await app.setDocument(blog.render_html(blogs)); | ||||
| } | ||||
|  | ||||
| main(); | ||||
| main(); | ||||
|   | ||||
| @@ -1,11 +1,19 @@ | ||||
| import * as commonmark from './commonmark.min.js'; | ||||
|  | ||||
| function escape(text) { | ||||
| 	return (text ?? '').replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>'); | ||||
| 	return (text ?? '') | ||||
| 		.replaceAll('&', '&') | ||||
| 		.replaceAll('<', '<') | ||||
| 		.replaceAll('>', '>'); | ||||
| } | ||||
|  | ||||
| function escapeAttribute(text) { | ||||
| 	return (text ?? '').replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", '''); | ||||
| 	return (text ?? '') | ||||
| 		.replaceAll('&', '&') | ||||
| 		.replaceAll('<', '<') | ||||
| 		.replaceAll('>', '>') | ||||
| 		.replaceAll('"', '"') | ||||
| 		.replaceAll("'", '''); | ||||
| } | ||||
|  | ||||
| export async function get_blog_message(id) { | ||||
| @@ -13,7 +21,7 @@ export async function get_blog_message(id) { | ||||
| 	await ssb.sqlAsync( | ||||
| 		'SELECT author, timestamp, content FROM messages WHERE id = ?', | ||||
| 		[id], | ||||
| 		function(row) { | ||||
| 		function (row) { | ||||
| 			let content = JSON.parse(row.content); | ||||
| 			message = { | ||||
| 				author: row.author, | ||||
| @@ -21,7 +29,8 @@ export async function get_blog_message(id) { | ||||
| 				blog: content?.blog, | ||||
| 				title: content?.title, | ||||
| 			}; | ||||
| 		}); | ||||
| 		} | ||||
| 	); | ||||
| 	if (message) { | ||||
| 		await ssb.sqlAsync( | ||||
| 			` | ||||
| @@ -34,9 +43,10 @@ export async function get_blog_message(id) { | ||||
| 				ORDER BY sequence DESC LIMIT 1 | ||||
| 			`, | ||||
| 			[message.author], | ||||
| 			function(row) { | ||||
| 			function (row) { | ||||
| 				message.name = row.name; | ||||
| 			}); | ||||
| 			} | ||||
| 		); | ||||
| 	} | ||||
| 	return message; | ||||
| } | ||||
| @@ -51,8 +61,12 @@ export function markdown(md) { | ||||
| 		node = event.node; | ||||
| 		if (event.entering) { | ||||
| 			if (node.destination?.startsWith('&')) { | ||||
| 				node.destination = '/' + node.destination + '/view?filename=' + node.firstChild?.literal; | ||||
| 			} else if (node.destination?.startsWith('@') || node.destination?.startsWith('%')) { | ||||
| 				node.destination = | ||||
| 					'/' + node.destination + '/view?filename=' + node.firstChild?.literal; | ||||
| 			} else if ( | ||||
| 				node.destination?.startsWith('@') || | ||||
| 				node.destination?.startsWith('%') | ||||
| 			) { | ||||
| 				node.destination = '/~core/ssb/#' + escape(node.destination); | ||||
| 			} | ||||
| 		} | ||||
| @@ -107,7 +121,7 @@ export function render_html(blogs) { | ||||
| 					<h1>🪵Tilde Friends Blog</h1> | ||||
| 					<div style="font-size: xx-small; vertical-align: middle"><a href="/~cory/blog/atom">atom feed</a></div> | ||||
| 				</div> | ||||
| 				${blogs.map(blog_post => render_blog_post(blog_post)).join('\n')} | ||||
| 				${blogs.map((blog_post) => render_blog_post(blog_post)).join('\n')} | ||||
| 			</body> | ||||
| 		</html>`; | ||||
| } | ||||
| @@ -135,14 +149,15 @@ export function render_atom(blogs) { | ||||
| 	<link href="${core.url}"/> | ||||
| 	<id>${core.url}</id> | ||||
| 	<updated>${new Date().toString()}</updated> | ||||
| 	${blogs.map(blog_post => render_blog_post_atom(blog_post)).join('\n')} | ||||
| 	${blogs.map((blog_post) => render_blog_post_atom(blog_post)).join('\n')} | ||||
| </feed>`; | ||||
| } | ||||
|  | ||||
| export async function get_posts() { | ||||
| 	let blogs = []; | ||||
| 	let ids = await ssb.getIdentities(); | ||||
| 	await ssb.sqlAsync(` | ||||
| 	await ssb.sqlAsync( | ||||
| 		` | ||||
| 		WITH | ||||
| 			blogs AS ( | ||||
| 				SELECT | ||||
| @@ -182,8 +197,11 @@ export async function get_posts() { | ||||
| 		JOIN public ON public.author = blogs.author | ||||
| 		LEFT OUTER JOIN names ON names.author = blogs.author | ||||
| 		ORDER BY blogs.timestamp DESC LIMIT 20 | ||||
| 	`, [JSON.stringify(ids)], function(row) { | ||||
| 		blogs.push(row); | ||||
| 	}); | ||||
| 	`, | ||||
| 		[JSON.stringify(ids)], | ||||
| 		function (row) { | ||||
| 			blogs.push(row); | ||||
| 		} | ||||
| 	); | ||||
| 	return blogs; | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -2,30 +2,50 @@ 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 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'}); | ||||
| 			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'}); | ||||
| 			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'}); | ||||
| 		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'}); | ||||
| 				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'}); | ||||
| 		respond({ | ||||
| 			data: blog.render_html(blogs), | ||||
| 			content_type: 'text/html; charset=utf-8', | ||||
| 		}); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| main().catch(function(error) { | ||||
| 	respond({data: `<!DOCTYPE html> | ||||
| 	<pre style="color: #f00">${error.message}\n${error.stack}</pre>`, content_type: 'text/html'}); | ||||
| }); | ||||
| main().catch(function (error) { | ||||
| 	respond({ | ||||
| 		data: `<!DOCTYPE html> | ||||
| 	<pre style="color: #f00">${error.message}\n${error.stack}</pre>`, | ||||
| 		content_type: 'text/html', | ||||
| 	}); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user