package main import ( "flag" "log" "os" ) func main() { contentDir := flag.String("content", "./content", "directory containing images and .toml sidecars") outputDir := flag.String("output", "./public", "directory for generated site output") baseURL := flag.String("base-url", "http://localhost:8080", "public base URL, no trailing slash") port := flag.String("port", "8080", "port to listen on") serve := flag.Bool("serve", false, "serve the generated site on the same port (for local development)") author := flag.String("author", "Ashik Salahudeen", "author name shown on the profile header, photo pages and in the copyright footer") handle := flag.String("handle", "@puttaalu@inflo.ws", "handle line shown under the author name on the profile header") bio := flag.String("bio", "Personal photo journal.", "primary bio line shown on the profile header") bioAlt := flag.String("bio-alt", "എന്തിനോ വേണ്ടി തിളയ്ക്കുന്ന സാമ്പാർ", "secondary bio line rendered on a new line in the alt-script font") fontsURL := flag.String("fonts-url", "https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,400;0,600;0,700;1,400&family=Manjari:wght@100;400;700&display=swap", "stylesheet URL loading the two web fonts") serifFamily := flag.String("serif-family", "Crimson Pro", "CSS font-family for the primary serif text") mlFamily := flag.String("ml-family", "Manjari", "CSS font-family for the alt-script (Malayalam) bio line") flag.Parse() for _, d := range []string{*contentDir, *outputDir} { if err := os.MkdirAll(d, 0755); err != nil { log.Fatalf("mkdir %s: %v", d, err) } } g := NewGenerator(*contentDir, *outputDir, *baseURL, *author, *handle, *bio, *bioAlt, *fontsURL, *serifFamily, *mlFamily) if err := g.Build(); err != nil { log.Printf("initial build: %v", err) } w, err := NewWatcher(*contentDir, g) if err != nil { log.Fatalf("watcher: %v", err) } defer w.Close() go w.Watch() s := NewServer(*port, *contentDir, *outputDir, *serve, g) log.Fatal(s.Listen()) }