{ describe, it, ... }: let md = import ../nixite/md.nix; html = import ../nixite/html.nix; elems = import ../nixite/elems.nix; in with md; [ ( describe "list" [ (it "matches a list of one element" { actual = list [ '' - something '' ]; expected = [(elems.List ["something"])]; asJSON = true; }) (it "makes a list of many elements" { actual = list [ '' - something - something else '' ]; expected = [(elems.List ["something" "something else"])]; asJSON = true; }) (it "makes a list of many checkboxes" { actual = list [ '' - [ ] something - [X] something else '' ]; expected = [ (elems.List [ [ (elems.input { type = "checkbox"; disabled = true; checked = false; } "") "something" ] [ (elems.input { type = "checkbox"; disabled = true; checked = true; } "") "something else" ] ]) ]; asJSON = true; }) (it "doesnt match not a list" (let str = "blah blah"; in { actual = list [str]; expected = [str]; })) ] ) ( describe "process string" [ (it "processes whole string with all rules" { actual = processStr '' this text **may** *or may not* contain **bold** words *inside* it. ''; expected = [ (elems.p [ "this text " (elems.strong "may") " " (elems.em "or may not") " contain " (elems.strong "bold") " words " (elems.em "inside") " it." ]) ]; asString = true; }) (it "makes paragraphs" { actual = processStr '' lorem ipsum dolor sit foo bar ''; expected = ''

lorem ipsum dolor sit

foo bar

''; asString = true; }) ] ) ( describe "fix appendix" [ (it "can fix file appendixes" { actual = fixAppendix "index.md"; expected = "index.html"; }) ] ) ( describe "mdToPage" [ (it "converts markdown to a page" { asString = true; actual = mdToPage '' # Markdown This is *markdown*! ''; expected = html.document { head = []; body = [ (elems.main (elems.article [ (elems.h1 "Markdown") (elems.p [ "This is" (elems.em "markdown") "!" ]) ])) ]; }; }) ] ) ( describe "recReadMd" [ (it "recursively reads dir" { actual = recReadMd ./blog; expected = { "index.md" = mdToPage ./blog/index.md; "dir" = {"index.md" = mdToPage ./blog/dir/index.md;}; }; asJSON = true; }) ] ) ( describe "recFixAppendix" [ (it "recursively fixes filename" { actual = recFixAppendix { "index.md" = "something"; dir = {"index.md" = "something else";}; }; expected = { "index.html" = "something"; dir = {"index.html" = "something else";}; }; }) ] ) ( describe "readDir" [ (it "recursively translates md to html" { actual = builtins.toJSON (readDir ./blog); expected = builtins.toJSON { "index.html" = mdToPage ./blog/index.md; "dir" = {"index.html" = mdToPage ./blog/dir/index.md;}; }; }) ] ) ]