import lib fn test_escape_html(): Unit with {Test} = { Test.assertEqualMsg("<div>", lib.escapeHtml("
"), "angle brackets") Test.assertEqualMsg("a & b", lib.escapeHtml("a & b"), "ampersand") Test.assertEqualMsg("hello", lib.escapeHtml("hello"), "no special chars") } fn test_inline_formatting(): Unit with {Test} = { Test.assertEqualMsg("bold", lib.inlineToHtml("**bold**"), "bold") Test.assertEqualMsg("italic", lib.inlineToHtml("*italic*"), "italic with asterisk") Test.assertEqualMsg("italic", lib.inlineToHtml("_italic_"), "italic with underscore") Test.assertEqualMsg("code", lib.inlineToHtml("`code`"), "inline code") Test.assertEqualMsg("strike", lib.inlineToHtml("~~strike~~"), "strikethrough") Test.assertEqualMsg("plain text", lib.inlineToHtml("plain text"), "plain text unchanged") } fn test_links(): Unit with {Test} = { Test.assertEqualMsg("click", lib.inlineToHtml("[click](https://example.com)"), "link") Test.assertEqualMsg("\"alt\"", lib.inlineToHtml("![alt](img.png)"), "image") Test.assertEqualMsg("bold link", lib.inlineToHtml("**[bold link](url)**"), "bold link") } fn test_headings(): Unit with {Test} = { Test.assertEqualMsg("

Hello

\n", lib.toHtml("# Hello"), "h1") Test.assertEqualMsg("

World

\n", lib.toHtml("## World"), "h2") Test.assertEqualMsg("

Sub

\n", lib.toHtml("### Sub"), "h3") Test.assertEqualMsg("

Deep

\n", lib.toHtml("#### Deep"), "h4") } fn test_paragraphs(): Unit with {Test} = { Test.assertEqualMsg("

hello world

\n", lib.toHtml("hello world"), "single line paragraph") } fn test_code_blocks(): Unit with {Test} = { let result = lib.toHtml("```\nhello\n```") Test.assertEqualMsg("
hello\n
\n", result, "simple code block") } fn test_lists(): Unit with {Test} = { Test.assertEqualMsg("\n", lib.toHtml("- item one\n- item two"), "unordered list") Test.assertEqualMsg("
    \n
  1. first
  2. \n
  3. second
  4. \n
\n", lib.toHtml("1. first\n2. second"), "ordered list") } fn test_heading_in_list(): Unit with {Test} = { Test.assertEqualMsg("\n", lib.toHtml("- ### Title"), "h3 inside list item") Test.assertEqualMsg("\n", lib.toHtml("- ## Big Title"), "h2 inside list item") Test.assertEqualMsg("\n", lib.toHtml("- ### [Link](/url)"), "h3 with link inside list item") } fn test_blockquotes(): Unit with {Test} = { Test.assertEqualMsg("
\n

quoted text

\n
\n", lib.toHtml("> quoted text"), "simple blockquote") } fn test_horizontal_rule(): Unit with {Test} = { Test.assertEqualMsg("
\n", lib.toHtml("---"), "hr with dashes") Test.assertEqualMsg("
\n", lib.toHtml("***"), "hr with asterisks") Test.assertEqualMsg("
\n", lib.toHtml("___"), "hr with underscores") } fn test_html_passthrough(): Unit with {Test} = { Test.assertEqualMsg("
bar
\n", lib.toHtml("
bar
"), "html element passes through") Test.assertEqualMsg("\n\n\n", lib.toHtml("\n\n"), "multi-line html passthrough") }