Changeset 35 in code for trunk


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

added explicit yaml separator, fixed amber compilation sequence

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/testdata/blog/.test/index.html

    r34 r35  
     1<html>
     2        <head>
     3                <title>My blog</title>
     4                <link href="styles.css" rel="stylesheet" type="text/css" />
     5        </head>
     6        <body>
     7                <p>Here goes list of posts</p>
     8                <ul>
     9                        <li>
     10                                <a href="/posts/hello.html">First post</a>
     11                        </li>
     12                        <li>
     13                                <a href="/posts/update.html">Second post</a>
     14                        </li>
     15                </ul>
     16        </body>
     17</html>
  • trunk/testdata/blog/about.md

    r22 r35  
    11title: About myself
    22date: 28-08-2015
     3---
    34
    45# {{title}}
  • trunk/testdata/blog/posts/hello.md

    r22 r35  
    11title: First post
    22date: 28-08-2015
     3---
    34
    45# {{title}}
  • trunk/testdata/blog/posts/update.md

    r22 r35  
    11title: Second post
    22date: 29-08-2015
     3---
    34
    45# {{title}}
  • 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
  • trunk/zs_test.go

    r34 r35  
    5454foo: bar
    5555title: Hello, world!
    56 
     56---
    5757Some content in markdown
    5858`: Vars{
     
    6464                        "__content": "Some content in markdown\n",
    6565                },
    66                 `url: "example.com/foo.html"
    67 
     66                `
     67url: "example.com/foo.html"
     68---
    6869Hello
    6970`: Vars{
Note: See TracChangeset for help on using the changeset viewer.