Index: /trunk/README.md
===================================================================
--- /trunk/README.md	(revision 60)
+++ /trunk/README.md	(revision 61)
@@ -18,5 +18,5 @@
 Build it manually assuming you have Go installed:
 
-	$ go install marisa.chaotic.ninja/aya@latest
+	$ go install marisa.chaotic.ninja/aya/cmd/aya@latest
 
 ## Ideology
@@ -67,8 +67,8 @@
 			"<item>" \
 			"<title>$title</title>" \
-			"<link>http://ayaerge.com/$url</link>" \
+			"<link>http://zserge.com/$url</link>" \
 			"<description>$descr</description>" \
 			"<pubDate>$(date --date @$timestamp -R)</pubDate>" \
-			"<guid>http://ayaerge.com/$url</guid>" \
+			"<guid>http://zserge.com/$url</guid>" \
 		"</item>"
 	fi
@@ -94,5 +94,5 @@
 `aya build <file>` re-builds one file and prints resulting content to stdout.
 
-`aya watch` rebuilds your site every time you modify any file.
+`aya serve` serves your site over HTTP.
 
 `aya var <filename> [var1 var2...]` prints a list of variables defined in the
@@ -100,4 +100,6 @@
 it's an empty string).
 
+`aya watch` rebuilds your site every time you modify any file. 
+
 ## License
 
Index: /trunk/aya.1
===================================================================
--- /trunk/aya.1	(revision 60)
+++ /trunk/aya.1	(revision 61)
@@ -17,19 +17,20 @@
 .El
 .Sh USAGE
-.Ss (Re-)build your site.
-.Nm 
-.Cm build
-.Ss (Re-)build one file and prints resulting content to standard output.
+.Bl -tag
+.It build
+(Re-)build a site or a file in particular
+.It serve
+Serve generated site over HTTP
+.It var
+Print a list of variables defined in a given markdown file.
+.It watch
+(Re-)build a site if any file changed
+.Sh HISTORY
 .Nm
-.Cm build
-.Ar <file>
-.Ss (Re-)build your site every time you modify any file.
-.Nm
-.Cm watch
-.Ss Print a list of variables defined in the header of a given markdown file.
-.Nm 
-.Cm var
-.Ar <file>
-.Ar <var1> <var2> ...
+was originally forked from prologic/zs by Izuru
+out of disgust with the latest revision, so he
+used a earlier commit as a base, and then
+eventually reimplemented older features from
+zserge's original project.
 .Sh AUTHORS
 .Nm
Index: /trunk/cmd/aya/main.go
===================================================================
--- /trunk/cmd/aya/main.go	(revision 60)
+++ /trunk/cmd/aya/main.go	(revision 61)
@@ -5,5 +5,5 @@
 	"fmt"
 	"io"
-	"io/ioutil"
+	"net/http"
 	"os"
 	"os/exec"
@@ -60,5 +60,5 @@
 func run(vars Vars, cmd string, args ...string) (string, error) {
 	// First check if partial exists (.html)
-	if b, err := ioutil.ReadFile(filepath.Join(AYADIR, cmd+".html")); err == nil {
+	if b, err := os.ReadFile(filepath.Join(AYADIR, cmd+".html")); err == nil {
 		return string(b), nil
 	}
@@ -91,5 +91,5 @@
 // If no empty newline is found - file is treated as content-only.
 func getVars(path string, globals Vars) (Vars, string, error) {
-	b, err := ioutil.ReadFile(path)
+	b, err := os.ReadFile(path)
 	if err != nil {
 		return nil, "", err
@@ -360,4 +360,10 @@
 	}
 }
+// Serve the public directory over HTTP
+func servePubDir() {
+	rootdir := http.Dir(PUBDIR)
+	http.Handle("/", http.FileServer(rootdir))
+	log.Fatal(http.ListenAndServe(":8000", nil))
+}
 
 func init() {
@@ -373,7 +379,8 @@
 	fmt.Printf("Where <command> is:\n")
 	fmt.Printf("\tbuild\tGenerate site\n")
+	fmt.Printf("\tserve\tServe %v over HTTP\n", PUBDIR)
+	fmt.Printf("\tvar\tQuery variable(s) from a markdown file\n")
+	fmt.Printf("\tversion\tPrint program version and exit\n")
 	fmt.Printf("\twatch\t(Re)generate site while looking for changes\n")
-	fmt.Printf("\tvar\tQuery a variable from a markdown file\n")
-	fmt.Printf("\tversion\tPrint version and exit\n")
 	fmt.Printf("\n")
 	fmt.Printf("Other commands may be dynamically added by plugins found in %v\n", AYADIR)
@@ -398,6 +405,6 @@
 			fmt.Println("ERROR: too many arguments")
 		}
-	case "watch":
-		buildAll(true)
+	case "serve":
+		servePubDir()
 	case "var":
 		if len(args) == 0 {
@@ -421,6 +428,8 @@
 		}
 	case "version":
-		fmt.Printf("%v\n", aya.Version)
+		fmt.Printf("%v\n", aya.FullVersion())
 		os.Exit(0)
+	case "watch":
+		buildAll(true)
 	default:
 		if s, err := run(globals(), cmd, args...); err != nil {
