You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12 lines
472 B
12 lines
472 B
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));
|
|
}
|