Documents can now specify a content-type

This commit is contained in:
Sasha Koshka 2024-12-05 14:54:26 -05:00
parent b395963709
commit abf3fc3ae3
3 changed files with 16 additions and 6 deletions

View File

@ -81,6 +81,10 @@ func (this *handler) serveFile (res http.ResponseWriter, req *http.Request, file
this.serveError(res, req, http.StatusInternalServerError, err)
return
}
if document.ContentType != "" {
log.Println(document.ContentType)
res.Header().Set("Content-Type", document.ContentType)
}
err = document.Execute(res, step.ExecutionData {
Data: req,
})

View File

@ -7,9 +7,10 @@ import "html/template"
// Document represents a STEP file.
type Document struct {
Author string
Title string
Extends string
Author string
Title string
Extends string
ContentType string
// WORM:
environment *Environment
@ -41,6 +42,7 @@ func (this *Document) Execute (output io.Writer, data ExecutionData) error {
Author: this.Author,
Title: this.Title,
Extends: this.Extends,
ContentType: this.ContentType,
FrontMatter: this.frontMatter,
Body: template.HTML(outputBuilder.String()),
},
@ -55,9 +57,10 @@ type ExecutionData struct {
// ExecutionResult is the result of executing a document.
type ExecutionResult struct {
Author string
Title string
Extends string
Author string
Title string
Extends string
ContentType string
FrontMatter FrontMatter
Body template.HTML

View File

@ -106,6 +106,9 @@ func (this *Environment) parse (name string, modTime time.Time, input io.Reader)
if extends, ok := frontMatter["extends"]; ok {
document.Extends = extends
}
if contentType, ok := frontMatter["content-type"]; ok {
document.ContentType = contentType
}
// parse template from the body
document.template.Funcs(this.funcMap)