You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For a taste of Pathos, let's generate a static site from Markdown!
import Pathos
// Set the CWD and execute a closure
tryPath("markdown-source-dir").asWorkingDirectory{
// Build the site in a unique, temporary directory
lettemporaryRoot=tryPath.makeTemporaryDirectory()
// Joining path components that works across OSes.
// E.g. `articles/**/*.md` on POSIX systems.
letpattern=Path("articles")+"**"+"*.md"
// Use glob to find files that matches the pattern
formarkdownintry pattern.glob(){
// path/to/file.md => path/to/file
leturl= markdown.base
// path that contains index.html
lethtmlDirectory= temporaryRoot + url
// make a directory, including multiple levels
try htmlDirectory.makeDirectory(withParents:true)
// read content of a file
letsource=try markdown.readUTF8String()
// write out the html, imagine `markdown2html` exists
try(htmlDirectory +"index.html").write(utf8:markdown2html(source))}
// all done! move the built site to output directory
try temporaryRoot.move(to:"output")}
// CWD is restored after the closure is done
As you can see, Pathos offers a whole suite of APIs for inspecting and manipulating the file system. Programs built with Pathos compile and work on all supported OS without the need to use #if OS() in the source.