changeset 78:5583ff07e384 draft

Separate the build<FORMAT> functions into their own source files Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Mon, 11 Dec 2023 17:23:49 +0000
parents e1f9fda6986a
children 7b122b71fcfa
files cmd/aya/amber.go cmd/aya/gcss.go cmd/aya/html.go cmd/aya/main.go cmd/aya/markdown.go cmd/aya/raw.go version.go
diffstat 7 files changed, 170 insertions(+), 133 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmd/aya/amber.go	Mon Dec 11 17:23:49 2023 +0000
@@ -0,0 +1,47 @@
+// Render .amber files into .html
+package main
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"os"
+	"path/filepath"
+	"github.com/eknkc/amber"
+)
+
+func buildAmber(path string, w io.Writer, vars Vars) error {
+        v, body, err := getVars(path, vars)
+        if err != nil {
+                return err
+        }
+        a := amber.New()
+        if err := a.Parse(body); err != nil {
+                fmt.Println(body)
+                return err
+        }
+
+        t, err := a.Compile()
+        if err != nil {
+                return err
+        }
+
+        htmlBuf := &bytes.Buffer{}
+        if err := t.Execute(htmlBuf, v); err != nil {
+                return err
+        }
+
+        if body, err = render(string(htmlBuf.Bytes()), v); err != nil {
+                return err
+        }
+        if w == nil {
+                f, err := os.Create(filepath.Join(PUBDIR, renameExt(path, ".amber", ".html")))
+                if err != nil {
+                        return err
+                }
+                defer f.Close()
+                w = f
+        }
+        _, err = io.WriteString(w, body)
+        return err
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmd/aya/gcss.go	Mon Dec 11 17:23:49 2023 +0000
@@ -0,0 +1,30 @@
+// Render .gcss files into .css
+package main
+
+import (
+	"io"
+	"os"
+	"path/filepath"
+	"strings"
+	"github.com/yosssi/gcss"
+)
+
+func buildGCSS(path string, w io.Writer) error {
+        f, err := os.Open(path)
+        if err != nil {
+                return err
+        }
+        defer f.Close()
+
+        if w == nil {
+                s := strings.TrimSuffix(path, ".gcss") + ".css"
+                css, err := os.Create(filepath.Join(PUBDIR, s))
+                if err != nil {
+                        return err
+                }
+                defer css.Close()
+                w = css
+        }
+        _, err = gcss.Compile(w, f)
+        return err
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmd/aya/html.go	Mon Dec 11 17:23:49 2023 +0000
@@ -0,0 +1,32 @@
+// Renders hypertext files expanding all variable macros inside it
+package main
+
+import (
+	"io"
+	"os"
+	"path/filepath"
+	"text/template"
+)
+
+func buildHTML(path string, w io.Writer, vars Vars) error {
+        v, body, err := getVars(path, vars)
+        if err != nil {
+                return err
+        }
+        if body, err = render(body, v); err != nil {
+                return err
+        }
+        tmpl, err := template.New("").Delims("<%", "%>").Parse(body)
+        if err != nil {
+                return err
+        }
+        if w == nil {
+                f, err := os.Create(filepath.Join(PUBDIR, path))
+                if err != nil {
+                        return err
+                }
+                defer f.Close()
+                w = f
+        }
+        return tmpl.Execute(w, vars)
+}
--- a/cmd/aya/main.go	Sun Dec 10 23:57:40 2023 +0000
+++ b/cmd/aya/main.go	Mon Dec 11 17:23:49 2023 +0000
@@ -1,4 +1,4 @@
-// $TheSupernovaDuo: marisa.chaotic.ninja/aya/cmd/aya, v0.6.9 2023-12-09 23:30:07+0000, yakumo_izuru Exp $
+// $TheSupernovaDuo: marisa.chaotic.ninja/aya/cmd/aya, v0.7.0 2023-12-11 17:22:51+0000, yakumo_izuru Exp $
 package main
 
 import (
@@ -9,12 +9,8 @@
 	"os/exec"
 	"path/filepath"
 	"strings"
-	"text/template"
 	"time"
 
-	"github.com/eknkc/amber"
-	"github.com/russross/blackfriday/v2"
-	"github.com/yosssi/gcss"
 	"gopkg.in/yaml.v3"
 	"marisa.chaotic.ninja/aya"
 )
@@ -174,133 +170,6 @@
 
 }
 
-// Renders markdown with the given layout into html expanding all the macros
-func buildMarkdown(path string, w io.Writer, vars Vars) error {
-	v, body, err := getVars(path, vars)
-	extensions := blackfriday.CommonExtensions|blackfriday.AutoHeadingIDs|blackfriday.Strikethrough|blackfriday.Footnotes
-	if err != nil {
-		return err
-	}
-	content, err := render(body, v)
-	if err != nil {
-		return err
-	}
-	v["content"] = string(blackfriday.Run([]byte(content),
-		blackfriday.WithExtensions(extensions),
-	))
-	if w == nil {
-		out, err := os.Create(filepath.Join(PUBDIR, renameExt(path, "", ".html")))
-		if err != nil {
-			return err
-		}
-		defer out.Close()
-		w = out
-	}
-	return buildHTML(filepath.Join(AYADIR, v["layout"]), w, v)
-}
-
-// Renders hypertext file expanding all variable macros inside it
-func buildHTML(path string, w io.Writer, vars Vars) error {
-	v, body, err := getVars(path, vars)
-	if err != nil {
-		return err
-	}
-	if body, err = render(body, v); err != nil {
-		return err
-	}
-	tmpl, err := template.New("").Delims("<%", "%>").Parse(body)
-	if err != nil {
-		return err
-	}
-	if w == nil {
-		f, err := os.Create(filepath.Join(PUBDIR, path))
-		if err != nil {
-			return err
-		}
-		defer f.Close()
-		w = f
-	}
-	return tmpl.Execute(w, vars)
-}
-
-// Renders .amber file into .html
-func buildAmber(path string, w io.Writer, vars Vars) error {
-	v, body, err := getVars(path, vars)
-	if err != nil {
-		return err
-	}
-	a := amber.New()
-	if err := a.Parse(body); err != nil {
-		fmt.Println(body)
-		return err
-	}
-
-	t, err := a.Compile()
-	if err != nil {
-		return err
-	}
-
-	htmlBuf := &bytes.Buffer{}
-	if err := t.Execute(htmlBuf, v); err != nil {
-		return err
-	}
-
-	if body, err = render(string(htmlBuf.Bytes()), v); err != nil {
-		return err
-	}
-
-	if w == nil {
-		f, err := os.Create(filepath.Join(PUBDIR, renameExt(path, ".amber", ".html")))
-		if err != nil {
-			return err
-		}
-		defer f.Close()
-		w = f
-	}
-	_, err = io.WriteString(w, body)
-	return err
-}
-
-// Compiles .gcss into .css
-func buildGCSS(path string, w io.Writer) error {
-	f, err := os.Open(path)
-	if err != nil {
-		return err
-	}
-	defer f.Close()
-
-	if w == nil {
-		s := strings.TrimSuffix(path, ".gcss") + ".css"
-		css, err := os.Create(filepath.Join(PUBDIR, s))
-		if err != nil {
-			return err
-		}
-		defer css.Close()
-		w = css
-	}
-	_, err = gcss.Compile(w, f)
-	return err
-}
-
-// Copies file as is from path to writer
-func buildRaw(path string, w io.Writer) error {
-	in, err := os.Open(path)
-	if err != nil {
-		return err
-	}
-	defer in.Close()
-	if w == nil {
-		if out, err := os.Create(filepath.Join(PUBDIR, path)); err != nil {
-			return err
-		} else {
-			defer out.Close()
-			w = out
-		}
-	}
-	_, err = io.Copy(w, in)
-	return err
-}
-
 // This function passes the files to build to their corresponding functions
 // As far as I'm aware, Markdown has three possible filename extensions,
 // but .md is the most common one known.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmd/aya/markdown.go	Mon Dec 11 17:23:49 2023 +0000
@@ -0,0 +1,33 @@
+// Renders markdown with the given layout into html expanding all the macros
+package main
+
+import (
+	"io"
+	"os"
+	"path/filepath"
+	"github.com/russross/blackfriday/v2"
+)
+
+func buildMarkdown(path string, w io.Writer, vars Vars) error {
+        v, body, err := getVars(path, vars)
+        extensions := blackfriday.CommonExtensions|blackfriday.AutoHeadingIDs|blackfriday.Strikethrough|blackfriday.Footnotes
+        if err != nil {
+                return err
+        }
+        content, err := render(body, v)
+        if err != nil {
+                return err
+        }
+        v["content"] = string(blackfriday.Run([]byte(content),
+                blackfriday.WithExtensions(extensions),
+        ))
+        if w == nil {
+                out, err := os.Create(filepath.Join(PUBDIR, renameExt(path, "", ".html")))
+                if err != nil {
+                        return err
+                }
+                defer out.Close()
+                w = out
+        }
+        return buildHTML(filepath.Join(AYADIR, v["layout"]), w, v)
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmd/aya/raw.go	Mon Dec 11 17:23:49 2023 +0000
@@ -0,0 +1,26 @@
+// Copy files as-is from source to destination
+package main
+
+import (
+	"io"
+	"os"
+	"path/filepath"
+)
+
+func buildRaw(path string, w io.Writer) error {
+        in, err := os.Open(path)
+        if err != nil {
+                return err
+        }
+        defer in.Close()
+        if w == nil {
+                if out, err := os.Create(filepath.Join(PUBDIR, path)); err != nil {
+                        return err
+                } else {
+                        defer out.Close()
+                        w = out
+                }
+        }
+        _, err = io.Copy(w, in)
+        return err
+}
--- a/version.go	Sun Dec 10 23:57:40 2023 +0000
+++ b/version.go	Mon Dec 11 17:23:49 2023 +0000
@@ -8,7 +8,7 @@
 
 var (
 	// Set to current tag
-	Version = "v0.6.9"
+	Version = "v0.7.0"
 	Time = time.Now()
 )