import type { FlatTemplatable } from "tempstream"; import { TempstreamJSX } from "tempstream"; import type { ComponentToHTMLArgs, ExtractStructuredComponentArgumentsParsed, JDDContext, } from "@sealcode/jdd"; import { Component, ComponentArguments } from "@sealcode/jdd"; const component_arguments = { content: new ComponentArguments.Markdown(), } as const; export class Tekst extends Component { getArguments() { return component_arguments; } getTitle( _: JDDContext, args: ExtractStructuredComponentArgumentsParsed ) { return args.content.slice(0, 20) + "..." || null; } toHTML({ args: { content }, classes, jdd_context: { render_markdown, language }, index, }: ComponentToHTMLArgs): FlatTemplatable { return (
{render_markdown(language, content)}
); } getHeadings( _context: JDDContext, args: ExtractStructuredComponentArgumentsParsed<{ readonly content: ComponentArguments.Markdown; }> ) { return this.getArguments().content.extractHeadings(args.content); } }