Page MenuHomeSealhub

markdown.ts
No OneTemporary

markdown.ts

import { Parser, HtmlRenderer } from "commonmark";
import { Field, type Context, type ValidationResult } from "../../../main.js";
const parser = new Parser();
const renderer = new HtmlRenderer();
export default class Markdown extends Field<string> {
typeName = "markdown";
constructor() {
super();
}
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
async decode(
_: Context,
db_value: string | null,
__: unknown,
format?: "markdown" | "html"
) {
if (db_value === null) {
return null;
}
if (format === "html") {
const parsed = parser.parse(db_value);
return renderer.render(parsed);
}
if (format === "markdown") {
return db_value;
}
return db_value;
}
protected isProperValue(): Promise<ValidationResult> {
return Promise.resolve(Field.valid());
}
}

File Metadata

Mime Type
text/x-java
Expires
Fri, Nov 28, 15:42 (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1038552
Default Alt Text
markdown.ts (832 B)

Event Timeline