mirror of
https://github.com/lancatlin/mdsh.git
synced 2026-11-05 19:30:12 +08:00
feat: input and output file
This commit is contained in:
1 parent
12dcbb460c
commit
3eae45479b
6 files changed
+64
-18
No files matched your search
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
var tmpl = `
|
||||
@@ -19,19 +20,40 @@ Start from {{ .from }}
|
||||
{{ sh "hledger bal assets -b $from" }}
|
||||
`
|
||||
|
||||
func loadTemplate() string {
|
||||
if len(os.Args) < 2 {
|
||||
log.Fatal("Please input a markdown template file")
|
||||
}
|
||||
filename := os.Args[1]
|
||||
dat, err := os.ReadFile(filename)
|
||||
if err != nil {
|
||||
log.Fatal("Failed to open the file", err)
|
||||
}
|
||||
return string(dat)
|
||||
}
|
||||
|
||||
func main() {
|
||||
tmpl := loadTemplate()
|
||||
frontmatter, body, err := parseDocument(tmpl)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
log.Fatal(err)
|
||||
}
|
||||
templateMeta, err := parseFrontmatter(frontmatter)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Println(templateMeta)
|
||||
ctx, err := parseParams(templateMeta)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
render(body, ctx)
|
||||
data := render(body, ctx)
|
||||
output, err := templateMeta.OutputFile(ctx)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = os.WriteFile(output, data, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user