Changeset 7 in code


Ignore:
Timestamp:
Dec 5, 2014, 6:26:15 PM (11 years ago)
Author:
zaitsev.serge
Message:

rewritted default variables assignment

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/zs.go

    r6 r7  
    3333}
    3434
    35 func md(s string) (map[string]string, string) {
    36         v := map[string]string{}
     35func md(path, s string) (map[string]string, string) {
     36        url := path[:len(path)-len(filepath.Ext(path))] + ".html"
     37        v := map[string]string{
     38                "file":   path,
     39                "url":    url,
     40                "outdir": PUBDIR,
     41                "output": filepath.Join(PUBDIR, url),
     42                "layout": "index.html",
     43        }
    3744        if strings.Index(s, "\n\n") == -1 {
    3845                return map[string]string{}, s
     
    4249                key, value := split2(line, ":")
    4350                v[strings.ToLower(strings.TrimSpace(key))] = strings.TrimSpace(value)
     51        }
     52        if strings.HasPrefix(v["url"], "./") {
     53                v["url"] = v["url"][2:]
    4454        }
    4555        return v, body
     
    129139                return err
    130140        }
    131         v, body := md(string(b))
    132         defaultVars(v, path)
     141        v, body := md(path, string(b))
    133142        content, err := render(body, v, eval)
    134143        if err != nil {
     
    149158        }
    150159        return nil
    151 }
    152 
    153 func defaultVars(vars map[string]string, path string) {
    154         if _, ok := vars["file"]; !ok {
    155                 vars["file"] = path
    156         }
    157         if _, ok := vars["url"]; !ok {
    158                 vars["url"] = path[:len(path)-len(filepath.Ext(path))] + ".html"
    159                 if strings.HasPrefix(vars["url"], "./") {
    160                         vars["url"] = vars["url"][2:]
    161                 }
    162         }
    163         if _, ok := vars["outdir"]; !ok {
    164                 vars["outdir"] = PUBDIR
    165         }
    166         if _, ok := vars["output"]; !ok {
    167                 vars["output"] = filepath.Join(PUBDIR, vars["url"])
    168         }
    169         if _, ok := vars["layout"]; !ok {
    170                 vars["layout"] = "index.html"
    171         }
    172160}
    173161
     
    250238                }
    251239                if b, err := ioutil.ReadFile(args[0]); err == nil {
    252                         vars, _ := md(string(b))
    253                         defaultVars(vars, args[0])
     240                        vars, _ := md(args[0], string(b))
    254241                        if len(args) > 1 {
    255242                                for _, a := range args[1:] {
  • trunk/zs_test.go

    r6 r7  
    3333
    3434func TestMD(t *testing.T) {
    35         v, body := md(`
     35        v, body := md("foo.md", `
    3636        title: Hello, world!
    3737        keywords: foo, bar, baz
     
    5757
    5858        // Test empty md
    59         v, body = md("")
     59        v, body = md("foo.md", "")
    6060        if len(v) != 0 || len(body) != 0 {
    6161                t.Error(v, body)
     
    6363
    6464        // Test empty header
    65         v, body = md("Hello")
     65        v, body = md("foo.md", "Hello")
    6666        if len(v) != 0 || body != "Hello" {
    6767                t.Error(v, body)
Note: See TracChangeset for help on using the changeset viewer.