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) }