diff options
| -rw-r--r-- | main.go | 18 | ||||
| -rw-r--r-- | post/post.go | 23 | ||||
| -rw-r--r-- | site/init.go | 9 | ||||
| -rw-r--r-- | vlog/vlog.go | 14 | 
4 files changed, 43 insertions, 21 deletions
| @@ -9,8 +9,8 @@ import (  	"snkt/render"  	"snkt/site"  	"snkt/web" +	"snkt/vlog"  	"fmt" -	"log"  )  func main() { @@ -18,13 +18,13 @@ func main() {  	var configFile, init_dir string  	var build, preview, version, verbose, help bool -	flag.StringVar(&configFile, "c", "config.yml", "configuration file") +	flag.StringVar(&configFile, "c", "config.yml", "`configuration` file")  	flag.StringVar(&init_dir, "init", "", "initialize new site at `directory`") -	flag.BoolVar(&build, "b", false, "build the site") -	flag.BoolVar(&preview, "p", false, "start local HTTP server for preview") +	flag.BoolVar(&build, "b", false, "build site") +	flag.BoolVar(&preview, "p", false, "preview site with local HTTP server")  	flag.BoolVar(&version, "v", false, "print version number")  	flag.BoolVar(&help, "h", false, "help") -	flag.BoolVar(&verbose, "verbose", false, "log more actions while building") +	flag.BoolVar(&verbose, "verbose", false, "log actions during build")  	flag.Parse()  	if !help && !build && !preview && !version && init_dir=="" { @@ -32,7 +32,7 @@ func main() {  		return  	}  	if(init_dir != "") { -		fmt.Printf("Initializing new site in %s\n", init_dir) +		fmt.Printf("initializing new site in %s\n", init_dir)  		site.Init(init_dir)  		return  	} @@ -51,14 +51,16 @@ func main() {  	render.Init()  	if build { -		log.Printf("Building site...\n") +		vlog.Printf("building site...\n")  		var s site.Site +		vlog.Printf("reading posts...\n")  		s.Read() +		vlog.Printf("writing posts and archives...\n")  		s.Write()  	}  	if preview { -		log.Printf("Spawning preview at [%s] of [%s]\n", +		fmt.Printf("spawning preview at [%s] of [%s]\n",  			config.Config.PreviewDir, config.Config.PreviewServer)  		web.Serve(config.Config.PreviewServer, config.Config.PreviewDir)  	} diff --git a/post/post.go b/post/post.go index 19a8e73..ab1ccb6 100644 --- a/post/post.go +++ b/post/post.go @@ -8,6 +8,7 @@ import (  	"snkt/config"  	"snkt/render"  	"snkt/text" +	"snkt/vlog"  	"github.com/russross/blackfriday"  	"io/ioutil"  	"log" @@ -130,18 +131,20 @@ func (p *Post) parse() {  	if len(ds) > 0 {  		date_str = ds[0]  	} -	var err error -	p.Time, err = time.Parse("2006-1-2", date_str) -	if err != nil { - -		if config.Config.Verbose { -			log.Println(err) -		} -		// fallback is to use file modtime -		// should use create time but that doesn't seem to be in stdlib -		// TODO: figure out how to use file birth time +	if date_str == "" {  		p.Time = p.FileInfo.ModTime() +		vlog.Printf("no date field in post %s, using file modification time\n", p.SourceFile) +	} else { +		var err error +		p.Time, err = time.Parse("2006-1-2", date_str) +		if err != nil { +			// fallback is to use file modtime +			// should use create time but that doesn't seem to be in stdlib +			// TODO: figure out how to use file birth time +			vlog.Printf("no valid date parsed for post %s, using file modification time\n", p.SourceFile) +			p.Time = p.FileInfo.ModTime() +		}  	}  	p.Year, p.Month, p.Day = p.Time.Date() diff --git a/site/init.go b/site/init.go index dc17cfa..02a7586 100644 --- a/site/init.go +++ b/site/init.go @@ -27,7 +27,6 @@ var skeletons = []skeleton {        <title>{{template "title" .}}</title>    </head>    <body> -      <h1>{{template "title"}}</h1>        {{template "content" .}}        <hr />        <p><a href="{{.Site.URL}}/index.html">Home</a></p> @@ -55,9 +54,10 @@ var skeletons = []skeleton {  			Dir: "tmpl",  			Filename: "post",  			Content: []byte( -`{{define "title"}}{{ .Post.Title }}{{end}} +`{{define "title"}}{{.Post.Title}} - {{.Site.Title}}{{end}}  {{define "content"}} -<h2>{{ .Post.Title }}</h2> +<h1>{{.Site.Title}}</h1> +<h2>{{.Post.Title}}</h2>  {{.Post.Content}}  {{if .Post.Next.Title}}  <p><a href="{{.Post.Next.Permalink}}">{{.Post.Next.Title}}</a></p> @@ -74,6 +74,7 @@ var skeletons = []skeleton {  `{{define "title"}}{{.Site.Title}} Archives{{end}}  {{define "content"}}  <h1>{{ .Site.Title }}</h1> +<h2>Archives</h2>  {{range .Posts}}  {{if .}}<h2><a href="{{.Permalink}}">{{.Title}}</a></h2>{{end}}  {{end}} @@ -124,6 +125,8 @@ func Init(directory string) {  	}  	var cfg = config.Settings{ +		SiteTitle: "snkt", +		SiteURL: "",  		TxtDir: path.Join(init_dir, "txt"),  		HtmlDir: path.Join(init_dir, "html"),  		TmplDir: path.Join(init_dir, "tmpl"), diff --git a/vlog/vlog.go b/vlog/vlog.go new file mode 100644 index 0000000..9ef771c --- /dev/null +++ b/vlog/vlog.go @@ -0,0 +1,14 @@ +// package vlog wraps log actions and only performs them if "verbose" config is set +package vlog + +import ( +	"snkt/config" +	"log" +) + +func Printf(format string, v ...interface{}) { +	if config.Config.Verbose { +		log.Printf(format, v...) +	} +} +	 | 
