From 6f8db9e0507b06ab56d1571c1257622b5a3bdaff Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Wed, 8 Apr 2026 13:13:05 +0200 Subject: [PATCH] Generate frontmatter for new files not yet on disk When reading body of a newly created note that hasn't been saved, generate YAML frontmatter from the note's metadata instead of returning empty string. --- internal/p9/server/server.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/p9/server/server.go b/internal/p9/server/server.go index c41545b..891f86a 100644 --- a/internal/p9/server/server.go +++ b/internal/p9/server/server.go @@ -1025,13 +1025,16 @@ func (s *server) getFileContent(path string) string { // readBody reads the file content, normalizing frontmatter tags if needed. // Malformed tags are fixed in place and the file is renamed if necessary. +// For new files not yet on disk, generates frontmatter from metadata. func (s *server) readBody(note *metadata.Metadata) string { if note.Path == "" { return "" } data, err := os.ReadFile(note.Path) if err != nil { - return "" + // File doesn't exist yet - generate frontmatter from metadata + fm := metadata.NewFrontMatter(note.Title, note.Signature, note.Tags, note.Identifier) + return string(frontmatter.Marshal(fm, metadata.FileTypeMdYaml)) } ext := filepath.Ext(note.Path) fm, fileType, _ := frontmatter.Unmarshal(data, ext)