func main() {
	mainParseArguments(os.Args)
	mainOpenFiles()
	err := bbgo.Process(mainInput, mainOutput)
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error on processing bbcode file: %s.\n", err.Error())
		os.Exit(1)
	}
}
func (page *page) AddMessage(format string, args ...interface{}) {
	msg := fmt.Sprintf(format, args...)
	bb := bytes.NewBuffer([]byte{})
	err := bbgo.Process(strings.NewReader(msg), bb)
	if err != nil {
		page.Fatalf("Failed to convert '%s' from BBCode to HTML: %s", err.Error())
	}
	imsgs, err := page.GetField("page-messages")
	if err != nil {
		page.Fatalf("page-messages field not set")
	}
	msgs, ok := imsgs.([]template.HTML)
	if !ok {
		fmt.Printf("%T", imsgs)
		page.Fatalf("Failed to convert field data for 'page-messages' into []template.HTML.")
	}
	page.SetField("page-messages", append(msgs, template.HTML(bb.String())))
}
func infoDir(page *page, req *http.Request) {
	topic := path.Base(req.URL.Path)
	filepath := page.main.conf.AssetsPath() + "/info/" + topic + ".txt"
	file, err := os.Open(filepath)
	if err != nil {
		page.SetField("content", "Fant ikke noen slik side.")
		page.WriteHeader(404)
	} else {
		defer file.Close()
		buf := bytes.NewBuffer([]byte{})
		err = bbgo.Process(file, buf)
		if err != nil {
			page.Fatalf("Failed to convert file from BBCode to HTML: %s", err.Error())
		}
		page.SetField("content", template.HTML(buf.String()))
	}

	page.ExecuteTemplate("info")
}