* Resolves authors with their Bluesky avatars and profile URLs.
(authors: Author[], avatarMap: Map<string, string>)
| 75 | * Resolves authors with their Bluesky avatars and profile URLs. |
| 76 | */ |
| 77 | function resolveAuthors(authors: Author[], avatarMap: Map<string, string>): ResolvedAuthor[] { |
| 78 | return authors.map(author => ({ |
| 79 | ...author, |
| 80 | avatar: author.blueskyHandle ? (avatarMap.get(author.blueskyHandle) ?? null) : null, |
| 81 | profileUrl: author.blueskyHandle ? `https://bsky.app/profile/${author.blueskyHandle}` : null, |
| 82 | })) |
| 83 | } |
| 84 | |
| 85 | /** |
| 86 | * Scans the blog directory for .md files and extracts validated frontmatter. |