mirror of
https://github.com/php/frankenphp.git
synced 2026-03-24 00:52:11 +01:00
47 lines
918 B
Go
47 lines
918 B
Go
package extgen
|
|
|
|
import (
|
|
"bytes"
|
|
_ "embed"
|
|
"path/filepath"
|
|
"text/template"
|
|
)
|
|
|
|
//go:embed templates/README.md.tpl
|
|
var docFileContent string
|
|
|
|
type DocumentationGenerator struct {
|
|
generator *Generator
|
|
}
|
|
|
|
type DocTemplateData struct {
|
|
BaseName string
|
|
Functions []phpFunction
|
|
Classes []phpClass
|
|
}
|
|
|
|
func (dg *DocumentationGenerator) generate() error {
|
|
filename := filepath.Join(dg.generator.BuildDir, "README.md")
|
|
content, err := dg.generateMarkdown()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return writeFile(filename, content)
|
|
}
|
|
|
|
func (dg *DocumentationGenerator) generateMarkdown() (string, error) {
|
|
tmpl := template.Must(template.New("readme").Parse(docFileContent))
|
|
|
|
var buf bytes.Buffer
|
|
if err := tmpl.Execute(&buf, DocTemplateData{
|
|
BaseName: dg.generator.BaseName,
|
|
Functions: dg.generator.Functions,
|
|
Classes: dg.generator.Classes,
|
|
}); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return buf.String(), nil
|
|
}
|