feat(authors): opt-in author profiles with avatars, taglines, bios, links#27
Merged
Conversation
Capture the decision to enrich author taxonomy term pages with opt-in profile content files, keeping the display name as the frontmatter key with an optional preferred-name override (X over Y). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…inks Authors can now describe themselves via an optional taxonomy term content file at content/authors/<slug>/_index.md: - Avatar resolution avatar -> gravatar_hash -> email -> identicon fallback (author-avatar.html partial; email hashed at build so a raw email is never required in the repo). - Social links partial (website/github/twitter/mastodon/linkedin/bluesky). - preferred_name overrides display only; the authors: byline stays the key, so un-enriched authors render unchanged (no migration of 1,045 files). - List page: enriched profiles sort first, then by count; cards show avatar + tagline + links; search matches name and tagline. - Profile page: avatar + preferred name + links header + Markdown bio. - new-author.ps1 scaffolds a profile at the correct Hugo slug and supports renames (rewrites the byline across content + adds an aliases redirect). - Build-time warning when a profile's slug matches no author (orphan guard). Updated archetypes/authors.md to the full commented schema. See docs/adr/0002-author-profiles.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
✅ Deploy Preview for powershellorg ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
CONTRIBUTING.md gains an "Adding Your Author Profile" section covering the slug rule, new-author.ps1, the gravatar_hash recipe, and renames. Adds the first real profile (gilbert-sanchez), using gravatar_hash to keep the email out of the repo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Website, Mastodon, LinkedIn, and Bluesky from links.gilbertsanchez.com (no Twitter/X listed there). Point the Gallery link at the real profile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Long taglines wrapped raggedly on the author list. Clamp to two lines so a truncated tagline shows a trailing ellipsis, signalling more on the profile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
## What Adds an **About the Author** section to the bottom of article and podcast pages, sourced from the author's profile (the taxonomy term content file introduced in #27). > **Stacked on #27** (`feat/author-profiles`). Review/merge that first; this PR's base is `feat/author-profiles`, so the diff here is just the article section. ## Behavior - For each author credited in `authors:` who has **opted into a profile**, renders a card with avatar, preferred name, tagline, bio, social links, and a "View profile" link. - Articles whose authors have **no profile** are unchanged — no empty section. - Co-authored posts show a card per enriched author (heading pluralizes); un-enriched co-authors are simply omitted. - Reuses the `author-avatar` and `author-links` partials from #27. ## Cleanup Replaces the legacy per-article `author_bio` front-matter block — which **0 articles** used and which rendered a generic placeholder icon — with the profile-sourced partial. ## Testing - `hugo` builds clean. - Verified on a podcast episode crediting an enriched author (Gilbert Sanchez): the section renders with the Gravatar, tagline, bio, Mastodon/LinkedIn icons, and profile link. - Verified an article by an un-enriched author renders **no** About section. - Verified an episode that only name-drops an author in the title (not in `authors:`) gets no section. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Lets authors describe themselves, turning the author list and profile pages from generic name+count cards into something richer — without migrating the 1,045 content files that credit authors today.
An author opts in by adding a taxonomy term content file at
content/authors/<slug>/_index.md. No file = unchanged behavior.Design
Decision record:
docs/adr/0002-author-profiles.md. Glossary terms (Author, Profile, name-vs-preferred-name) added toCONTEXT.md.The load-bearing choice: the display name stays the key in
authors:frontmatter (correct byline + slug for all 80 authors, zero migration). A profile's optionalpreferred_nameoverrides display only. We explicitly rejected storing slugs in frontmatter (would mangle the ~70 un-enriched authors and force a repo-wide migration).Changes
partials/author-avatar.html):avatar→gravatar_hash→email→ name-seeded identicon. Email is MD5-hashed at build, so a raw email is never required in the repo; the privacy-conscious can supplygravatar_hashinstead.partials/author-links.html): website/github/twitter/mastodon/linkedin/bluesky, unset links skipped.archetypes/authors.md: full commented schema.tools/new-author.ps1: scaffolds a profile at the correct Hugo slug;-Torename mode rewrites the byline across content and adds analiasesredirect.warnfwhen a profile's slug matches no author.Testing
hugobuilds clean.preferred_nameoverrides display, links/bio render, and the enriched card sorts ahead of higher-count bare authors.🤖 Generated with Claude Code