markdown: new utility module

Since we've started using Markdown, why not a simple utility function
to start using it?
This commit is contained in:
Jordi Gutiérrez Hermoso 2024-07-29 19:13:20 -04:00 committed by jordigh
parent 4621b67c8e
commit 0bf3f9bc43

View File

@ -0,0 +1,11 @@
import { sanitizeHTML } from 'app/client/ui/sanitizeHTML';
import { BindableValue, DomElementMethod, subscribeElem } from 'grainjs';
import { marked } from 'marked';
export function markdown(markdownObs: BindableValue<string>): DomElementMethod {
return elem => subscribeElem(elem, markdownObs, value => setMarkdownValue(elem, value));
}
function setMarkdownValue(elem: Element, markdownValue: string): void {
elem.innerHTML = sanitizeHTML(marked(markdownValue));
}