export function markdown(md) { var reader = new commonmark.Parser({safe: true}); var writer = new commonmark.HtmlRenderer(); var parsed = reader.parse(md || ''); var walker = parsed.walker(); var event, node; while ((event = walker.next())) { node = event.node; if (event.entering) { if (node.type == 'link') { if (node.destination.startsWith('@') && node.destination.endsWith('.ed25519')) { node.destination = '#' + node.destination; } else if (node.destination.startsWith('%') && node.destination.endsWith('.sha256')) { node.destination = '#' + node.destination; } else if (node.destination.startsWith('&') && node.destination.endsWith('.sha256')) { node.destination = '/' + node.destination + '/view'; } } else if (node.type == 'image') { if (node.destination.startsWith('&')) { node.destination = '/' + node.destination + '/view'; } } } } return writer.render(parsed); }