package session
import (
"fmt"
"html"
"os"
"strings"
)
// ExportHTML writes the active branch as a standalone HTML document.
func (s *Store) ExportHTML(path string) error {
msgs, err := s.Load()
if err != nil {
return err
}
var b strings.Builder
b.WriteString("
")
title := s.Name()
if title == "" {
title = "session"
}
b.WriteString(html.EscapeString(title))
b.WriteString("\n")
for _, m := range msgs {
fmt.Fprintf(&b, "%s
%s
\n",
html.EscapeString(string(m.Role)),
html.EscapeString(string(m.Role)),
html.EscapeString(m.Content))
}
b.WriteString("\n")
return os.WriteFile(path, []byte(b.String()), 0o644)
}