func main() { log.Info("Peach %s", APP_VER) m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Recovery()) m.Use(macaron.Statics(macaron.StaticOptions{ SkipLogging: setting.ProdMode, }, "custom/public", "public", models.HTMLRoot)) m.Use(i18n.I18n(i18n.Options{ Files: setting.Docs.Locales, })) tplDir := "templates" if setting.Page.UseCustomTpl { tplDir = "custom/templates" } m.Use(pongo2.Pongoer(pongo2.Options{ Directory: tplDir, })) m.Use(middleware.Contexter()) m.Get("/", routers.Home) m.Get("/docs", routers.Docs) m.Get("/docs/images/*", routers.DocsStatic) m.Get("/docs/*", routers.Docs) m.Post("/hook", routers.Hook) m.Get("/search", routers.Search) m.Get("/*", routers.Pages) m.NotFound(routers.NotFound) listenAddr := fmt.Sprintf("0.0.0.0:%d", setting.HTTPPort) log.Info("%s Listen on %s", setting.Site.Name, listenAddr) log.Fatal("Fail to start Peach: %v", http.ListenAndServe(listenAddr, m)) }
func App() *macaron.Macaron { m := macaron.Classic() DBOpen() if Config.Development == true { macaron.Env = "development" } else { macaron.Env = "production" } m.Use(session.Sessioner()) m.Use(csrf.Csrfer()) m.Use(pongo2.Pongoer(pongo2.Options{ Directory: "templates", Extensions: []string{".htm"}, })) // Serve static files from /assets m.Use(macaron.Static("assets", macaron.StaticOptions{Prefix: "assets"})) m.Use(func(c *macaron.Context) { c.Data["SiteTitle"] = Config.SiteTitle c.Data["Development"] = Config.Development c.Next() }) // Routes m.Get("/favicon.ico", func(c *macaron.Context) { c.ServeFileContent("favicon.ico") }) m.Get("/", func(c *macaron.Context) { c.Redirect("/habits") }) init := func(x string, r func(m *macaron.Macaron)) { m.Group(x, func() { r(m) }) } init("/habits", habitsInit) init("/journal", journalInit) init("/log", logInit) return m }
// newMacaron initializes Macaron instance. func newMacaron() *macaron.Macaron { m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Recovery()) m.Use(macaron.Static("public", macaron.StaticOptions{ SkipLogging: setting.ProdMode, }, )) m.Use(macaron.Static("raw", macaron.StaticOptions{ Prefix: "raw", SkipLogging: setting.ProdMode, })) m.Use(pongo2.Pongoer(pongo2.Options{ IndentJSON: !setting.ProdMode, })) m.Use(i18n.I18n()) m.Use(session.Sessioner()) m.Use(middleware.Contexter()) return m }
func main() { log.Debug("Starting server...") m := macaron.New() m.Use(macaron.Logger()) m.Use(macaron.Recovery()) m.Use(cache.Cacher()) m.Use(session.Sessioner(session.Options{CookieName: "s"})) m.Use(captcha.Captchaer(captcha.Options{Width: 120, Height: 40})) m.Use(macaron.Static("static", macaron.StaticOptions{Prefix: "/static"})) m.Use(pongo2.Pongoer()) //m.Use(i18n.I18n(i18n.Options{ // Langs: []string{"en-US", "zh-CN"}, // Names: []string{"English", "简体中文"}, //})) m.Use(spider.SpiderFunc()) m.Use(token.Tokener()) boot.BootStrap() router.Route(m) m.Run(boot.WebListenIP, boot.WebPort) }