Add frontmatter, markdown, path, xml, rss, and web packages

Sync local packages into the registry repo and update index.json
and README.md to include all 9 packages.
This commit is contained in:
2026-02-24 21:04:20 -05:00
parent c5a2276f6e
commit cbb66fbb73
42 changed files with 3844 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
import lib
fn isSome(opt: Option<String>, expected: String): Bool =
match opt {
Some(v) => v == expected,
None => false,
}
fn isNone(opt: Option<String>): Bool =
match opt {
Some(_) => false,
None => true,
}
fn test_basename(): Unit with {Test} = {
Test.assertEqualMsg("baz.txt", lib.basename("/foo/bar/baz.txt"), "basename with dirs")
Test.assertEqualMsg("file.txt", lib.basename("file.txt"), "basename no dir")
Test.assertEqualMsg("", lib.basename("/foo/bar/"), "basename trailing slash")
Test.assertEqualMsg("", lib.basename(""), "basename empty")
}
fn test_dirname(): Unit with {Test} = {
Test.assertEqualMsg("/foo/bar", lib.dirname("/foo/bar/baz.txt"), "dirname with dirs")
Test.assertEqualMsg(".", lib.dirname("file.txt"), "dirname no dir")
Test.assertEqualMsg("/", lib.dirname("/file.txt"), "dirname root")
}
fn test_extension(): Unit with {Test} = {
Test.assert(isSome(lib.extension("file.txt"), "txt"), "extension simple")
Test.assert(isSome(lib.extension("file.tar.gz"), "gz"), "extension double")
Test.assert(isNone(lib.extension("file")), "extension none")
Test.assert(isSome(lib.extension("/foo/bar.txt"), "txt"), "extension with dir")
Test.assert(isNone(lib.extension(".hidden")), "extension dotfile")
}
fn test_strip_extension(): Unit with {Test} = {
Test.assertEqualMsg("file", lib.stripExtension("file.txt"), "stripExtension simple")
Test.assertEqualMsg("file", lib.stripExtension("file"), "stripExtension none")
Test.assertEqualMsg("/foo/bar", lib.stripExtension("/foo/bar.txt"), "stripExtension with dir")
}
fn test_join(): Unit with {Test} = {
Test.assertEqualMsg("/foo/bar", lib.join("/foo", "bar"), "join basic")
Test.assertEqualMsg("/foo/bar", lib.join("/foo/", "bar"), "join trailing slash")
Test.assertEqualMsg("/foo/bar", lib.join("/foo", "/bar"), "join leading slash")
Test.assertEqualMsg("/foo/bar", lib.join("/foo/", "/bar"), "join both slashes")
Test.assertEqualMsg("bar", lib.join("", "bar"), "join empty first")
Test.assertEqualMsg("foo", lib.join("foo", ""), "join empty second")
}
fn test_has_extension(): Unit with {Test} = {
Test.assertEqualMsg(true, lib.hasExtension("file.txt", "txt"), "hasExtension true")
Test.assertEqualMsg(false, lib.hasExtension("file.md", "txt"), "hasExtension false")
}
fn test_replace_extension(): Unit with {Test} = {
Test.assertEqualMsg("file.md", lib.replaceExtension("file.txt", "md"), "replaceExtension simple")
Test.assertEqualMsg("file.md", lib.replaceExtension("file", "md"), "replaceExtension no ext")
}
fn test_stem(): Unit with {Test} = {
Test.assertEqualMsg("file", lib.stem("file.txt"), "stem simple")
Test.assertEqualMsg("bar", lib.stem("/foo/bar.txt"), "stem with dir")
Test.assertEqualMsg("file", lib.stem("file"), "stem no ext")
}
fn test_absolute_relative(): Unit with {Test} = {
Test.assertEqualMsg(true, lib.isAbsolute("/foo/bar"), "isAbsolute true")
Test.assertEqualMsg(false, lib.isAbsolute("foo/bar"), "isAbsolute false")
Test.assertEqualMsg(true, lib.isRelative("foo/bar"), "isRelative true")
Test.assertEqualMsg(false, lib.isRelative("/foo/bar"), "isRelative false")
}