Changeset 21 in code


Ignore:
Timestamp:
Aug 29, 2015, 9:43:59 PM (10 years ago)
Author:
zaitsev.serge
Message:

replaced amber with my own fork, fixed file paths for amber and html

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zs.go

    r20 r21  
    1515        "time"
    1616
    17         "github.com/eknkc/amber"
    1817        "github.com/russross/blackfriday"
    1918        "github.com/yosssi/gcss"
     19        "github.com/zserge/amber"
    2020)
    2121
     
    5050                "url":    url,
    5151                "output": filepath.Join(PUBDIR, url),
    52                 "layout": "index.html",
    53         }
     52        }
     53        if _, err := os.Stat(filepath.Join(ZSDIR, "layout.amber")); err == nil {
     54                v["layout"] = "layout.amber"
     55        } else {
     56                v["layout"] = "layout.html"
     57        }
     58
    5459        if info, err := os.Stat(path); err == nil {
    5560                v["date"] = info.ModTime().Format("02-01-2006")
     
    116121
    117122        if errbuf.Len() > 0 {
    118                 log.Println(errbuf.String())
     123                log.Println("ERROR:", errbuf.String())
    119124        }
    120125
     
    156161        v["content"] = string(blackfriday.MarkdownBasic([]byte(content)))
    157162        if strings.HasSuffix(v["layout"], ".amber") {
    158                 return buildAmber(filepath.Join(ZSDIR, v["layout"]), funcs, v)
     163                return buildAmber(filepath.Join(ZSDIR, v["layout"]),
     164                        renameExt(path, "", ".html"), funcs, v)
    159165        } else {
    160                 return buildPlain(filepath.Join(ZSDIR, v["layout"]), funcs, v)
     166                return buildPlain(filepath.Join(ZSDIR, v["layout"]),
     167                        renameExt(path, "", ".html"), funcs, v)
    161168        }
    162169}
    163170
    164171// Renders text file expanding all variable macros inside it
    165 func buildPlain(path string, funcs template.FuncMap, vars Vars) error {
    166         b, err := ioutil.ReadFile(path)
     172func buildPlain(in, out string, funcs template.FuncMap, vars Vars) error {
     173        b, err := ioutil.ReadFile(in)
    167174        if err != nil {
    168175                return err
     
    172179                return err
    173180        }
    174         output := filepath.Join(PUBDIR, path)
     181        output := filepath.Join(PUBDIR, out)
    175182        if s, ok := vars["output"]; ok {
    176183                output = s
     
    184191
    185192// Renders .amber file into .html
    186 func buildAmber(path string, funcs template.FuncMap, vars Vars) error {
     193func buildAmber(in, out string, funcs template.FuncMap, vars Vars) error {
    187194        a := amber.New()
    188         err := a.ParseFile(path)
     195        err := a.ParseFile(in)
    189196        if err != nil {
    190197                return err
     
    195202        }
    196203        //amber.FuncMap = amber.FuncMap
    197         s := strings.TrimSuffix(path, ".amber") + ".html"
    198         f, err := os.Create(filepath.Join(PUBDIR, s))
     204        f, err := os.Create(filepath.Join(PUBDIR, out))
    199205        if err != nil {
    200206                return err
     
    271277        }
    272278        return funcs
     279}
     280
     281func renameExt(path, from, to string) string {
     282        if from == "" {
     283                from = filepath.Ext(path)
     284        }
     285        return strings.TrimSuffix(path, from) + to
    273286}
    274287
     
    314327                                } else if ext == ".html" || ext == ".xml" {
    315328                                        log.Println("html: ", path)
    316                                         return buildPlain(path, funcs, vars)
     329                                        return buildPlain(path, path, funcs, vars)
    317330                                } else if ext == ".amber" {
    318331                                        log.Println("html: ", path)
    319                                         return buildAmber(path, funcs, vars)
     332                                        return buildAmber(path, renameExt(path, ".amber", ".html"), funcs, vars)
    320333                                } else if ext == ".gcss" {
    321334                                        log.Println("css: ", path)
     
    373386                        }
    374387                } else {
    375                         log.Println(err)
     388                        log.Println("ERROR:", err)
    376389                }
    377390        default:
    378391                err := run(path.Join(ZSDIR, cmd), args, Vars{}, os.Stdout)
    379392                if err != nil {
    380                         log.Println(err)
    381                 }
    382         }
    383 }
     393                        log.Println("ERROR:", err)
     394                }
     395        }
     396}
Note: See TracChangeset for help on using the changeset viewer.