let md = import ../nixite/md.nix; elems = import ../nixite/elems.nix; it = import ./it.nix; in with md; [ (it "gets md heading" { actual = mdBlock "# title of the page"; expected = elems.h1 "title of the page"; }) (it "gets md heading 2" { actual = mdBlock "## a subheading"; expected = elems.h2 "a subheading"; }) (it "limits to 6 #" { actual = mdBlock "######## super ultra tiny heading"; expected = elems.h6 "super ultra tiny heading"; }) (it "makes a code block" ( let code = '' this is my code ''; in { actual = mdBlock '' ```${code}```''; expected = elems.code code; })) (it "matches a list of one element" ( { actual = list '' - something ''; expected = { matched = true; block = elems.List ["something\n"];}; })) (it "matches a list of many elements" ( { actual = list '' - something - something else ''; expected = { matched = true; block = elems.List ["something\n" "something else\n"];}; })) (it "matches a list with no whitespace around" ( { actual = list "- something\n- something else"; expected = { matched = true; block = elems.List ["something\n" "something else"];}; })) (it "doesnt match not a list" ( let str = "blah blah"; in { actual = list str; expected = { matched = false; block = str;}; })) (it "makes a list" ( { actual = mdBlock '' - something ''; expected = elems.List ["something\n"]; })) (it "processes md block" { actual = readMd '' # foo bar lorem ipsum ''; expected = [ (elems.h1 { } "foo bar") "" (elems.p { } '' lorem ipsum '') ]; asString = true; }) (it "can fix file appendixes" { actual = fixAppendix "index.md"; expected = "index.html"; }) (it "converts markdown to a page" { actual = mdToPage ./blog/index.md; expected = '' markdown file

yeee

ye

&

dir home

''; asString = true; }) (it "recursively reads dir" { actual = recReadMd ./blog; expected = { "index.md" = mdToPage ./blog/index.md; "dir" = { "index.md" = mdToPage ./blog/dir/index.md; }; }; asJSON = true; }) (it "recursively fixes filename" { actual = recFixAppendix { "index.md" = "something"; dir = { "index.md" = "something else"; }; }; expected = { "index.html" = "something"; dir = { "index.html" = "something else"; }; }; }) (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; }; }; }) ]