From d3e932803102d515a5fa6cd0008ba6f8e564ec7c Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 9 Jun 2026 08:57:13 +0100 Subject: [PATCH] appview/timeline: use embedFS for blogs Signed-off-by: oppiliappan --- appview/state/router.go | 3 ++- appview/timeline/router.go | 14 ++++++-------- blog/blog.go | 4 ++++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/appview/state/router.go b/appview/state/router.go index 84cc95f7..d95b22d1 100644 --- a/appview/state/router.go +++ b/appview/state/router.go @@ -26,6 +26,7 @@ import ( "tangled.org/core/appview/state/userutil" avstrings "tangled.org/core/appview/strings" avtimeline "tangled.org/core/appview/timeline" + "tangled.org/core/blog" "tangled.org/core/log" ) @@ -164,7 +165,7 @@ func (s *State) StandardRouter(mw *middleware.Middleware) http.Handler { r.Handle("/static/*", s.pages.Static()) - tl := avtimeline.New(s.oauth, s.db, s.config, s.pages, s.logger, "blog/posts") + tl := avtimeline.New(s.oauth, s.db, s.config, s.pages, s.logger, blog.PostsFS) r.Get("/", tl.HomeOrTimeline) r.Get("/home", tl.Home) r.Get("/timeline", tl.Timeline) diff --git a/appview/timeline/router.go b/appview/timeline/router.go index 86757d75..5d2087a1 100644 --- a/appview/timeline/router.go +++ b/appview/timeline/router.go @@ -5,7 +5,6 @@ import ( "io/fs" "log/slog" "net/http" - "os" "strings" "time" @@ -40,7 +39,7 @@ func New( config *config.Config, pages *pages.Pages, logger *slog.Logger, - postsDir string, + postsFS fs.FS, ) *Timeline { t := &Timeline{ oauth: oauth, @@ -49,7 +48,7 @@ func New( pages: pages, logger: logger, } - t.recentPosts = loadRecentPosts(postsDir, logger) + t.recentPosts = loadRecentPosts(postsFS, logger) return t } @@ -61,11 +60,10 @@ func (t *Timeline) Router() http.Handler { return r } -func loadRecentPosts(postsDir string, logger *slog.Logger) []pages.BlogPost { - fsys := os.DirFS(postsDir) - entries, err := fs.ReadDir(fsys, ".") +func loadRecentPosts(postsFS fs.FS, logger *slog.Logger) []pages.BlogPost { + entries, err := fs.ReadDir(postsFS, "posts") if err != nil { - logger.Warn("failed to read blog posts dir", "dir", postsDir, "err", err) + logger.Warn("failed to read blog posts", "err", err) return nil } @@ -74,7 +72,7 @@ func loadRecentPosts(postsDir string, logger *slog.Logger) []pages.BlogPost { if entry.IsDir() || !strings.HasSuffix(entry.Name(), ".md") { continue } - data, err := fs.ReadFile(fsys, entry.Name()) + data, err := fs.ReadFile(postsFS, "posts/"+entry.Name()) if err != nil { continue } diff --git a/blog/blog.go b/blog/blog.go index 623a8415..424a7149 100644 --- a/blog/blog.go +++ b/blog/blog.go @@ -3,6 +3,7 @@ package blog import ( "bytes" "cmp" + "embed" "html/template" "io" "io/fs" @@ -19,6 +20,9 @@ import ( textension "tangled.org/core/appview/pages/markup/extension" ) +//go:embed posts +var PostsFS embed.FS + type Author struct { Name string `yaml:"name"` Email string `yaml:"email"` -- 2.51.2