From fa283d5dd7abb741ace08f67be0aad4f92619752 Mon Sep 17 00:00:00 2001 From: Max Richter Date: Sat, 4 Oct 2025 13:16:16 +0200 Subject: [PATCH] feat: also parse folder content --- server/go.mod | 12 ++++++++++++ server/go.sum | 4 ++-- server/internal/adapters/fs.go | 15 +++++++++++++++ server/internal/adapters/interface.go | 1 + 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/server/go.mod b/server/go.mod index 3653730..f4964eb 100644 --- a/server/go.mod +++ b/server/go.mod @@ -1,3 +1,15 @@ module git.max-richter.dev/max/marka/server-new go 1.24.7 + +require git.max-richter.dev/max/marka/parser v0.0.0-20251003194139-ab81c980b590 + +require ( + git.max-richter.dev/max/marka/registry v0.0.0-20250817132016-6db87db32567 // indirect + git.max-richter.dev/max/marka/renderer v0.0.0-20250819170608-69c2550f448e // indirect + git.max-richter.dev/max/marka/template v0.0.0-20250817132016-6db87db32567 // indirect + github.com/agext/levenshtein v1.2.3 // indirect + github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect + go.yaml.in/yaml/v4 v4.0.0-rc.1 // indirect + golang.org/x/text v0.14.0 // indirect +) diff --git a/server/go.sum b/server/go.sum index 8678458..2fa973e 100644 --- a/server/go.sum +++ b/server/go.sum @@ -1,5 +1,5 @@ -git.max-richter.dev/max/marka/parser v0.0.0-20250819170608-69c2550f448e h1:enZufetD3UoIVTnTNTQSFlr1Ir0jG7wObUAxb6+xwWg= -git.max-richter.dev/max/marka/parser v0.0.0-20250819170608-69c2550f448e/go.mod h1:xQK6tsgr9BOoeFw8JxjBwDkVENlOqapmcRkYyf/L+SQ= +git.max-richter.dev/max/marka/parser v0.0.0-20251003194139-ab81c980b590 h1:4C3b/KHD7+ru7nunpYIY6snVw+RI1QeVk9XcbzmdVY0= +git.max-richter.dev/max/marka/parser v0.0.0-20251003194139-ab81c980b590/go.mod h1:ykBvG4AW+fNFila0ZO2TlBqsCACYKb0AJaHsAopyRVI= git.max-richter.dev/max/marka/registry v0.0.0-20250817132016-6db87db32567 h1:oe7Xb8dE43S8mRla5hfEqagMnvhvEVHsvRlzl2v540w= git.max-richter.dev/max/marka/registry v0.0.0-20250817132016-6db87db32567/go.mod h1:qGWl42P8mgEktfor/IjQp0aS9SqmpeIlhSuVTlUOXLQ= git.max-richter.dev/max/marka/renderer v0.0.0-20250819170608-69c2550f448e h1:9Eg81l8YMTXWZC3xlZ5L/NJRuK26bksrVtEHyCTV4sM= diff --git a/server/internal/adapters/fs.go b/server/internal/adapters/fs.go index d67bcfa..83dcecd 100644 --- a/server/internal/adapters/fs.go +++ b/server/internal/adapters/fs.go @@ -6,6 +6,8 @@ import ( "path/filepath" "strings" "time" + + "git.max-richter.dev/max/marka/parser" ) type LocalFsAdapter struct { @@ -32,11 +34,24 @@ func (l LocalFsAdapter) readDir(path string, root string) (FsResponse, error) { entryType = contentTypeFor(e.Name()) } + var content any + if !e.IsDir() && entryType == "application/markdown" { + entryPath := filepath.Join(path, e.Name()) + fileContent, err := os.ReadFile(entryPath) + if err == nil { + parsedContent, err := parser.ParseFile(string(fileContent)) + if err == nil { + content = parsedContent + } + } + } + out = append(out, FsDirEntry{ Name: e.Name(), Type: entryType, IsDir: e.IsDir(), ModTime: info.ModTime(), + Content: content, }) } diff --git a/server/internal/adapters/interface.go b/server/internal/adapters/interface.go index a482676..0cb606c 100644 --- a/server/internal/adapters/interface.go +++ b/server/internal/adapters/interface.go @@ -20,6 +20,7 @@ type FsDirEntry struct { Type string `json:"type"` IsDir bool `json:"isDir,omitempty"` ModTime time.Time `json:"modTime"` + Content any `json:"content,omitempty"` } type FsDir struct {