Started building out the site.
This commit is contained in:
parent
f119683b57
commit
b62458d7cd
14 changed files with 368 additions and 31 deletions
61
cmd/gendocs/main.go
Normal file
61
cmd/gendocs/main.go
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"embed"
|
||||
"flag"
|
||||
"github.com/yuin/goldmark"
|
||||
"github.com/yuin/goldmark/parser"
|
||||
"go.abhg.dev/goldmark/frontmatter"
|
||||
"html/template"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
//go:embed frame.tmpl
|
||||
var frameTmpl embed.FS
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
if flag.NArg() != 1 {
|
||||
log.Fatalln("usage: gendocs [markdown]")
|
||||
}
|
||||
|
||||
md := goldmark.New(goldmark.WithExtensions(&frontmatter.Extender{}))
|
||||
|
||||
mdData, err := os.ReadFile(flag.Arg(0))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
ctx := parser.NewContext()
|
||||
|
||||
var buf bytes.Buffer
|
||||
if err := md.Convert(mdData, &buf, parser.WithContext(ctx)); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
var frontMatter struct {
|
||||
Title string `yaml:"title"`
|
||||
}
|
||||
if fm := frontmatter.Get(ctx); fm != nil {
|
||||
if err := fm.Decode(&frontMatter); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
frameTmpls, err := template.ParseFS(frameTmpl, "*.tmpl")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
var res bytes.Buffer
|
||||
if err := frameTmpls.ExecuteTemplate(&res, "frame.tmpl", map[string]interface{}{
|
||||
"Title": frontMatter.Title,
|
||||
"Body": template.HTML(buf.Bytes()),
|
||||
}); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
os.Stdout.Write(res.Bytes())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue