Changeset 60 in code


Ignore:
Timestamp:
Apr 21, 2023, 8:25:31 PM (2 years ago)
Author:
Izuru Yakumo
Message:

Add functions to build Amber and GCSS (taken from original project)

Signed-off-by: Izuru Yakumo <yakumo.izuru@…>

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/cmd/aya/main.go

    r59 r60  
    1717        "marisa.chaotic.ninja/aya"
    1818        log "github.com/sirupsen/logrus"
     19        "github.com/eknkc/amber"
     20        "github.com/yosssi/gcss"
    1921)
    2022
     
    222224}
    223225
     226// Renders .amber file into .html
     227func buildAmber(path string, w io.Writer, vars Vars) error {
     228        v, body, err := getVars(path, vars)
     229        if err != nil {
     230                return err
     231        }
     232        a := amber.New()
     233        if err := a.Parse(body); err != nil {
     234                fmt.Println(body)
     235                return err
     236        }
     237
     238        t, err := a.Compile()
     239        if err != nil {
     240                return err
     241        }
     242
     243        htmlBuf := &bytes.Buffer{}
     244        if err := t.Execute(htmlBuf, v); err != nil {
     245                return err
     246        }
     247
     248        if body, err = render(string(htmlBuf.Bytes()), v); err != nil {
     249                return err
     250        }
     251
     252        if w == nil {
     253                f, err := os.Create(filepath.Join(PUBDIR, renameExt(path, ".amber", ".html")))
     254                if err != nil {
     255                        return err
     256                }
     257                defer f.Close()
     258                w = f
     259        }
     260        _, err = io.WriteString(w, body)
     261        return err
     262}
     263// Compiles .gcss into .css
     264func buildGCSS(path string, w io.Writer) error {
     265        f, err := os.Open(path)
     266        if err != nil {
     267                return err
     268        }
     269        defer f.Close()
     270
     271        if w == nil {
     272                s := strings.TrimSuffix(path, ".gcss") + ".css"
     273                css, err := os.Create(filepath.Join(PUBDIR, s))
     274                if err != nil {
     275                        return err
     276                }
     277                defer css.Close()
     278                w = css
     279        }
     280        _, err = gcss.Compile(w, f)
     281        return err
     282}
     283
    224284// Copies file as is from path to writer
    225285func buildRaw(path string, w io.Writer) error {
     
    247307        } else if ext == ".html" || ext == ".xml" {
    248308                return buildHTML(path, w, vars)
     309        } else if ext == ".amber" {
     310                return buildAmber(path, w, vars)
     311        } else if ext == ".gcss" {
     312                return buildGCSS(path, w)
    249313        } else {
    250314                return buildRaw(path, w)
  • trunk/go.mod

    r59 r60  
    44
    55require (
     6        github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385
    67        github.com/russross/blackfriday/v2 v2.1.0
    78        github.com/sirupsen/logrus v1.9.0
     9        github.com/yosssi/gcss v0.1.0
    810        gopkg.in/yaml.v2 v2.4.0
    911)
  • trunk/go.sum

    r59 r60  
    22github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
    33github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
     4github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o=
     5github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
    46github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
    57github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
     
    1113github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
    1214github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
     15github.com/yosssi/gcss v0.1.0 h1:jRuino7qq7kqntBIhT+0xSUI5/sBgCA/zCQ1Tuzd6Gg=
     16github.com/yosssi/gcss v0.1.0/go.mod h1:M3mTPOWZWjVROkXKZ2AiDzOBOXu2MqQeDXF/nKO44sI=
    1317golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ=
    1418golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Note: See TracChangeset for help on using the changeset viewer.