Commit Graph

28 Commits

Author SHA1 Message Date
Ricardo
e30200067c feat: add /podroll to nav menu, sort links alphabetically
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 08:09:19 +01:00
Ricardo
ed2044dd8b feat: add theme toggle to mobile navigation
- Add theme toggle button at bottom of mobile nav
- Share toggleTheme function between desktop and mobile
- Style mobile toggle to match nav item appearance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 15:01:24 +01:00
Ricardo
ba94a6e5c8 feat: merge Activity into single "/" dropdown menu
- All slash pages now under one "/" dropdown
- Dynamic pages (from Indiekit) appear first
- Activity feeds (github, listening, funkwhale, youtube, news) below divider
- Remove standalone Activity dropdown and /news link
- Add divider styles for desktop and mobile nav

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:50:44 +01:00
Ricardo
54ddaaa5d4 feat: make slash pages a dynamic dropdown menu
- Desktop: "/" becomes dropdown showing all pages from collections.pages
- Mobile: "/" becomes collapsible section with all dynamic pages
- New pages created via Indiekit automatically appear in nav

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 14:29:49 +01:00
Ricardo
c01bdd331f feat: add slashes index to navigation
- Add "/" link to desktop and mobile nav pointing to /slashes/
- Update pages collection to find content/*.md (root-level pages)
- Keeps About and Now as featured nav items, with / for all pages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 13:58:59 +01:00
Ricardo
690b5f09f5 feat: add Now page to navigation
Add /now/ link to both desktop and mobile navigation menus,
placing it after About as a standard slash page.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 13:36:26 +01:00
Ricardo
ae8bd83a0b feat: add support for slash pages (root-level pages)
- Add pages collection in eleventy.config.js
- Add page.njk layout for slash pages
- Add /slashes/ listing page showing all site pages
- Pages created via Indiekit go to /{slug}/ instead of /content/pages/

Inspired by https://slashpages.net

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 11:13:20 +01:00
Ricardo
e2ca6c1313 feat: add mpSyndicateTo support for IndieNews syndication
Render pending syndication targets as hidden u-syndication links
for services like IndieNews that require the link before webmention.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:32:28 +01:00
Ricardo
15891a0ad2 Revert "refactor: single h-card component with variant support"
This reverts commit d6640d5 and 70c6622 which broke the sidebar rendering.
Restoring the working 3-implementation approach.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 23:06:23 +01:00
Ricardo
70c66220b8 fix: use hidden data element for reliable u-photo microformat parsing
Some microformat parsers have trouble detecting u-photo when the img is
inside an anchor tag or gets transformed by image processing. Added a
hidden <data class="u-photo"> element at the h-card root that parsers
reliably detect. Removed redundant u-photo class from visible img tags.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 17:26:11 +01:00
Ricardo
d6640d515d refactor: single h-card component with variant support
- h-card.njk is now the single source of truth
- sidebar.njk includes h-card with variant='full'
- blog-sidebar.njk includes h-card with variant='compact'
- Removed duplicate h-card code from both sidebars
2026-01-30 16:51:29 +01:00
Ricardo
721f37d23f feat: add essential h-card properties to blog sidebar
Compact author card now includes p-author, u-uid, p-locality,
p-country-name, and p-note (hidden) for microformat completeness.
2026-01-30 15:02:10 +01:00
Ricardo
2ffdb1fee2 feat: enhance sidebar h-card with full microformat properties
Added to sidebar author card:
- p-pronoun
- Structured address (p-locality, p-country-name)
- p-org (organization)
- u-email
- u-key (PGP)
- p-category (skills)
- Proper Schema.org attributes
2026-01-30 14:59:40 +01:00
Ricardo
e993353db8 feat: enhance h-card with full microformat properties
Added support for:
- u-photo (visible)
- p-note (bio)
- u-email
- p-locality, p-region, p-country-name (structured address)
- p-org (organization)
- p-pronoun
- p-category (skills/interests)
- u-key (PGP key URL)

All configurable via environment variables.
2026-01-30 13:40:28 +01:00
Ricardo
b3c30e3029 feat: add proper rel=me atproto for Bluesky and fediverse:creator meta tag
- Bluesky URLs now get rel='me atproto' for verification
- Added fediverse:creator meta tag for Mastodon creator attribution
- Meta tag populated from MASTODON_INSTANCE and MASTODON_USER env vars
2026-01-29 22:42:49 +01:00
Ricardo
13f8876298 fix: add eleventy:ignore to photo images and render photos in post template 2026-01-28 22:25:48 +01:00
Ricardo
b188edd2ee fix: handle photo array in base.njk OpenGraph/Twitter meta
The photo property can be an array for multi-photo posts.
Normalize photo to first element if array, and avoid startsWith on non-strings.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:58:29 +01:00
Ricardo
0a0718c6b2 fix: handle photo array in post.njk JSON-LD
The photo property can be an array for multi-photo posts.
Also avoid calling startsWith on non-string values.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:50:16 +01:00
Ricardo
1f3fe00ce8 fix: multiple frontend issues
- Add Alpine.js Collapse plugin for x-collapse directive
- Create favicon.svg and favicon.ico with proper linking
- Fix default-avatar references (use existing .svg instead of .png)
- Add favicon.ico to passthrough copy

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:08:01 +01:00
Ricardo
80ced7b148 feat: add dropdown navigation menus
- Add Blog dropdown with all post types (articles, notes, photos, bookmarks, likes, replies, reposts)
- Add Activity dropdown with GitHub, Listening, Funkwhale, YouTube
- Add /news and /interactions links to main nav
- Add mobile-responsive collapsible sections with Alpine.js
- Add CSS for dropdown menus and mobile nav sections

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:17:34 +01:00
Ricardo
8da928a91c fix: use timestamp filter for buildtime instead of date filter
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:22:34 +01:00
Ricardo
922ae40460 feat: add client-side webmention fetcher for real-time updates
- Add js/webmentions.js to fetch new webmentions from webmention.io API
- Supplements build-time cached webmentions with real-time data
- Shows new webmentions with 'NEW' badge and visual ring highlight
- Uses safe DOM methods to prevent XSS vulnerabilities
- Data attributes on webmentions container provide target URL and build time

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:11:48 +01:00
Ricardo
dc2856aa42 feat: add microsub endpoint discovery link for IndiePass/Indigenous support 2026-01-26 08:23:31 +01:00
Ricardo
f7db31ac27 fix: support camelCase property names from Indiekit Eleventy preset
The Indiekit Eleventy preset uses camelcaseKeys to convert frontmatter
properties (e.g., bookmark-of → bookmarkOf), but templates expected
underscore-separated names (bookmark_of).

Changes:
- Support both camelCase and underscore property names in all templates
- Update collections to filter on both property name formats
- Include interaction URLs (bookmarks, likes, replies, reposts) in
  Bridgy syndication content for proper social media posting

Fixes bookmark URLs not appearing on posts or in syndicated content.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:34:20 +01:00
Ricardo
96182cb1e4 fix: comprehensive mobile responsive design audit
- Make all headings responsive (text-2xl sm:text-3xl pattern)
- Make all section headings responsive (text-xl sm:text-2xl)
- Add responsive margins (mb-6 sm:mb-8 pattern)
- Fix flex layouts to stack on mobile (flex-col sm:flex-row)
- Make images responsive (w-20 sm:w-24 pattern)
- Add responsive padding (p-4 sm:p-6)
- Improve grid gaps for mobile (gap-3 sm:gap-4)
- Add CSS utilities for table overflow and touch scrolling
- Restyle 404 page with proper responsive design

Files updated: 22 template and CSS files across all pages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:48:23 +01:00
Ricardo
a316d3148d feat: add legacy webmention recovery from old URLs
- Add urlAliases.js to parse redirect maps and build old→new URL mappings
- Enhance webmentionsForUrl filter to check legacy URLs (micro.blog, Known/WP)
- Update webmentions.njk to pass urlAliases data
- Add webmention-debug.njk page at /debug/webmentions/

This recovers webmentions sent to old URL structures:
- micro.blog: /YYYY/MM/DD/slug.html
- Known/WordPress: /YYYY/slug

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:57:29 +01:00
Ricardo
f32565a2be feat: add unified /listening page and rename /funkwhale in nav
Navigation now includes both /listening (combined Last.fm + Funkwhale)
and /funkwhale (Funkwhale-only). Sidebar widget links to combined page.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 13:52:33 +01:00
Ricardo
2b225197b4 Initial commit: Indiekit Eleventy theme 2026-01-24 12:13:34 +01:00