Changeset 35 in code for trunk/zs.go


Ignore:
Timestamp:
Sep 2, 2015, 5:35:26 PM (10 years ago)
Author:
zaitsev.serge
Message:

added explicit yaml separator, fixed amber compilation sequence

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zs.go

    r34 r35  
    1717        "github.com/russross/blackfriday"
    1818        "github.com/yosssi/gcss"
    19         "gopkg.in/yaml.v1"
     19        "gopkg.in/yaml.v2"
    2020)
    2121
     
    116116        v["output"] = filepath.Join(PUBDIR, v["url"])
    117117
    118         if sep := strings.Index(s, "\n\n"); sep == -1 {
     118        delim := "\n---\n"
     119        if sep := strings.Index(s, delim); sep == -1 {
    119120                return v, s, nil
    120121        } else {
    121122                header := s[:sep]
    122                 body := s[sep+len("\n\n"):]
     123                body := s[sep+len(delim):]
     124
    123125                vars := Vars{}
    124126                if err := yaml.Unmarshal([]byte(header), &vars); err != nil {
    125127                        fmt.Println("ERROR: failed to parse header", err)
     128                        return nil, "", err
    126129                } else {
    127130                        for key, value := range vars {
    128131                                v[key] = value
     132                                log.Println(key, value)
    129133                        }
    130134                }
     
    227231                return err
    228232        }
    229         if body, err = render(body, v); err != nil {
    230                 return err
    231         }
    232 
    233233        a := amber.New()
    234234        if err := a.Parse(body); err != nil {
     235                fmt.Println(body)
    235236                return err
    236237        }
     
    240241                return err
    241242        }
     243
     244        htmlBuf := &bytes.Buffer{}
     245        if err := t.Execute(htmlBuf, v); err != nil {
     246                return err
     247        }
     248
     249        if body, err = render(string(htmlBuf.Bytes()), v); err != nil {
     250                return err
     251        }
     252
    242253        if w == nil {
    243254                f, err := os.Create(filepath.Join(PUBDIR, renameExt(path, ".amber", ".html")))
     
    248259                w = f
    249260        }
    250         return t.Execute(w, vars)
     261        _, err = io.WriteString(w, body)
     262        return err
    251263}
    252264
Note: See TracChangeset for help on using the changeset viewer.