func main() { var config Config config.Input = flag.String("input", "input", "Directory where blog posts are stored (in markdown format)") config.Output = flag.String("output", "output", "Directory where generated html should be stored (IT WILL REMOVE ALL FILES INSIDE THAT DIR)") config.Theme = flag.String("theme", "theme", "Directory containing theme files (templates)") config.Title = flag.String("title", "Blag.", "Blag title") config.DateFormat = flag.String("dateformat", "2006-01-02 15:04:05", "Time layout, as used in Golang's time.Time.Format()") config.BaseURL = flag.String("baseurl", "/", "URL that will be used in <base href=\"\"> element.") config.DisqusShortname = flag.String("disqus", "", "Your Disqus shortname. If empty, comments will be disabled.") config.PostsPerPage = flag.Int("pps", 10, "Post count per page") config.StoryShortLength = flag.Int("short", 250, "Length of shortened versions of stories (-1 disables shortening)") flag.Parse() pongo2.RegisterFilter("trim", func(in *pongo2.Value, param *pongo2.Value) (out *pongo2.Value, err *pongo2.Error) { out = pongo2.AsValue(strings.Trim(in.String(), "\r\n")) err = nil return out, err }) var theme Theme theme = LoadTheme(*config.Theme) var posts []BlagPost posts = LoadPosts(config) GenerateHTML(config, theme, posts) }
func Initialize() error { for name, funcdef := range GetBaseFunctions() { pongo2.RegisterFilter(name, funcdef) } return nil }
func (s *TestSuite) TestMisc(c *C) { // Must // TODO: Add better error message (see issue #18) c.Check( func() { pongo2.Must(testSuite2.FromFile("template_tests/inheritance/base2.tpl")) }, PanicMatches, `\[Error \(where: fromfile\) in .*template_tests/inheritance/doesnotexist.tpl | Line 1 Col 12 near 'doesnotexist.tpl'\] open .*template_tests/inheritance/doesnotexist.tpl: no such file or directory`, ) // Context c.Check(parseTemplateFn("", pongo2.Context{"'illegal": nil}), PanicMatches, ".*not a valid identifier.*") // Registers c.Check(func() { pongo2.RegisterFilter("escape", nil) }, PanicMatches, ".*is already registered.*") c.Check(func() { pongo2.RegisterTag("for", nil) }, PanicMatches, ".*is already registered.*") // ApplyFilter v, err := pongo2.ApplyFilter("title", pongo2.AsValue("this is a title"), nil) if err != nil { c.Fatal(err) } c.Check(v.String(), Equals, "This Is A Title") c.Check(func() { _, err := pongo2.ApplyFilter("doesnotexist", nil, nil) if err != nil { panic(err) } }, PanicMatches, `\[Error \(where: applyfilter\)\] Filter with name 'doesnotexist' not found.`) }
func init() { pongo2.DefaultSet.Debug = true pongo2.RegisterFilter("banned_filter", BannedFilterFn) pongo2.RegisterFilter("unbanned_filter", BannedFilterFn) pongo2.RegisterTag("banned_tag", tagSandboxDemoTagParser) pongo2.RegisterTag("unbanned_tag", tagSandboxDemoTagParser) pongo2.DefaultSet.BanFilter("banned_filter") pongo2.DefaultSet.BanTag("banned_tag") f, err := ioutil.TempFile("/tmp/", "pongo2_") if err != nil { panic("cannot write to /tmp/") } f.Write([]byte("Hello from pongo2")) pongo2.DefaultSet.Globals["temp_file"] = f.Name() }
// BuildTemplates builds the templates func (p *Engine) BuildTemplates() error { // Add our filters. first for k, v := range p.Config.Pongo.Filters { pongo2.RegisterFilter(k, v) } if p.Config.Asset == nil || p.Config.AssetNames == nil { return p.buildFromDir() } return p.buildFromAsset() }
func init() { pongo2.RegisterFilter("json", jsonFilter) pongo2.RegisterFilter("json_pretty", jsonPrettyFilter) pongo2.RegisterFilter("humanize_time", filterHumanizeTime) pongo2.RegisterFilter("before_now", filterBeforeNow) pongo2.RegisterFilter("after_now", filterAfterNow) pongo2.RegisterFilter("bool", filterBool) }
func main() { // setup tables db, err := genmai.New(&genmai.SQLite3Dialect{}, "./wiki.db") if err != nil { log.Fatalln(err) } if err := db.CreateTableIfNotExists(&Page{}); err != nil { log.Fatalln(err) } // setup pongo pongo2.DefaultSet.SetBaseDirectory("view") wiki := &Wiki{ URL: "/", DB: db, } pongo2.Globals["wiki"] = wiki pongo2.RegisterFilter("to_localdate", func(in *pongo2.Value, param *pongo2.Value) (out *pongo2.Value, err *pongo2.Error) { date, ok := in.Interface().(time.Time) if !ok { return nil, &pongo2.Error{ Sender: "to_localdate", ErrorMsg: fmt.Sprintf("Date must be of type time.Time not %T ('%v')", in, in), } } return pongo2.AsValue(date.Local()), nil }) goji.Use(middleware.Recoverer) goji.Use(middleware.NoCache) goji.Use(func(c *web.C, h http.Handler) http.Handler { fn := func(w http.ResponseWriter, r *http.Request) { c.Env["Wiki"] = wiki h.ServeHTTP(w, r) } return http.HandlerFunc(fn) }) goji.Get("/assets/*", http.FileServer(http.Dir("."))) goji.Get("/", showPages) goji.Get("/wiki/:title", showPage) goji.Get("/wiki/:title/edit", editPage) goji.Post("/wiki/:title", postPage) goji.Serve() }
func init() { pongo2.RegisterFilter("success", filterSuccess) pongo2.RegisterFilter("ignored", filterIgnored) pongo2.RegisterFilter("reset", filterReset) pongo2.RegisterFilter("failure", filterFailure) }
func init() { pongo2.RegisterFilter("to_under_score_case", toUnderScoreCase) pongo2.RegisterFilter("type", reflectType) pongo2.RegisterFilter("astType", astType) }
func init() { pongo2.RegisterFilter("timesince", timeSince) }
func init() { // Regulars pongo2.RegisterFilter("slugify", filterSlugify) pongo2.RegisterFilter("filesizeformat", filterFilesizeformat) pongo2.RegisterFilter("truncatesentences", filterTruncatesentences) pongo2.RegisterFilter("truncatesentences_html", filterTruncatesentencesHtml) // Markup pongo2.RegisterFilter("markdown", filterMarkdown) // Humanize pongo2.RegisterFilter("timeuntil", filterTimeuntilTimesince) pongo2.RegisterFilter("timesince", filterTimeuntilTimesince) pongo2.RegisterFilter("naturaltime", filterTimeuntilTimesince) pongo2.RegisterFilter("naturalday", filterNaturalday) pongo2.RegisterFilter("intcomma", filterIntcomma) pongo2.RegisterFilter("ordinal", filterOrdinal) }
func init() { pongo2.RegisterFilter("is_mainarch", checkMainArch) pongo2.RegisterFilter("branchicon", getBranchIcon) }
func init() { pongo2.RegisterFilter("swagger", toSwagger) pongo2.RegisterFilter("swagger_path", toSwaggerPath) }
func init() { pongo2.RegisterFilter("swagger", toSwagger) pongo2.RegisterFilter("swagger_path", toSwaggerPath) pongo2.RegisterFilter("swagger_has_id_param", hasIdParam) }
func init() { pongo2.RegisterFilter("abspath", filterAbspath) pongo2.RegisterFilter("json", filterJson) }
func init() { pongo2.RegisterFilter("addquote", filterAddquote) }
func init() { pongo2.RegisterFilter("read", filterRead) }