Commit Graph

27 Commits

Author SHA1 Message Date
Ricardo
924a21b9f8 fix: correct variable name in updateTotalCount call
Changed newMentions.length to mentionsToShow.length to fix
JavaScript error that was breaking webmention display.
2026-01-28 16:53:23 +01:00
Ricardo
44e8983da8 fix: show all webmentions when no build-time data exists
When build-time webmentions section doesn't exist, show ALL webmentions
from the API instead of filtering to only new ones.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:33:19 +01:00
Ricardo
b20f371647 fix: use webmentions proxy in client-side fetcher
Prevents direct calls to webmention.io API which may fail without token

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:12:08 +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
637b0d41d3 refactor: use dedicated webmentions proxy endpoint
Switch from /rssapi/api/webmentions to /webmentions-api/api/mentions
for cleaner separation of concerns.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 08:02:15 +01:00
Ricardo
ba83e3c791 feat: add inbound webmentions to interactions page
- Add tabbed interface: "My Activity" (outbound) and "Received" (inbound)
- Fetch webmentions from webmention.io API client-side for real-time data
- Filter by type: likes, reposts, replies, mentions
- Show author avatar, action type badge, date, and target post
- Load more pagination for large webmention sets
- Default to inbound tab to highlight interactions from others

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:11:11 +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
1392991466 feat: make /news page fully client-side with real-time updates
- Fetches data from /rssapi/api/* on page load
- Auto-refresh every 5 minutes
- Manual refresh button
- Loading and error states
- Pagination support
- Real-time sync status display
- No more dependency on Eleventy build for fresh data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 12:10:24 +01:00
Ricardo
9b7f6d1485 feat: prefer sourceTitle over feedTitle in news page
For aggregated feeds (like FreshRSS), display the original source
title (e.g., "Hacker News") instead of the aggregator name.

Falls back to feedTitle for direct RSS feeds.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 11:03:50 +01:00
Ricardo
40a9babf55 feat: add news page and data file for RSS feed reader
- newsActivity.js: Fetch items/feeds/status from /rssapi/api
- news.njk: News page with list/card/full view modes and feed filtering

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:10:42 +01:00
Ricardo
5be3d02be3 fix: prevent overflow on mobile in featured repos commits list
Add overflow-hidden and min-w-0 to fix truncation issues on mobile.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 20:36:55 +01:00
Ricardo
9a0c1a5111 feat: fetch contributions data from Indiekit API
Enables Contributions/PRs section when using Indiekit backend

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:16:08 +01:00
Ricardo
f5c19727e1 feat: reorder GitHub page sections
New order:
1. Featured Projects
2. Recent Commits
3. Contributions/PRs
4. My Repositories
5. Starred Repositories

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:05:11 +01:00
Ricardo
fbb7653dc4 fix: add fallback for commits when GitHub Events API lacks details
GitHub's Events API no longer includes commit details in PushEvent
payloads. This adds a fallback that fetches commits directly from
the user's recently pushed repositories when events don't have them.

- Try events API first (existing behavior)
- If no commits, fetch from user's top 5 recently pushed repos
- Sort combined results by date

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 17:09:04 +01:00
Ricardo
a1520b0299 docs: add CLAUDE.md with submodule sync instructions
Ensures Claude Code knows to update the indiekit-cloudron submodule
after making changes to this theme repo.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:55:34 +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
3c21393989 fix: improve redirect map file discovery
- Fix fallback logic (empty object is truthy)
- Try multiple paths for Docker and local dev
- Add debug logging for file discovery

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 15:13:11 +01:00
Ricardo
46f4559fe3 feat: add Last.fm integration to listening page
- Add lastfmActivity.js data fetcher for Indiekit Last.fm API
- Add listening.njk combined page with Funkwhale + Last.fm data
- Source filter tabs, combined stats, recent listens timeline
- Loved tracks section for Last.fm

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:59:39 +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
f711278890 fix: disable gitignore for Eleventy processing
content/ is in .gitignore because it's a symlink at runtime,
but Eleventy 3.x respects .gitignore by default which was
preventing content files from being processed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 13:14:59 +01:00
Ricardo
6ba66515cb docs: comprehensive IndieWeb-focused README with plugin integration guide 2026-01-24 12:15:14 +01:00
Ricardo
2b225197b4 Initial commit: Indiekit Eleventy theme 2026-01-24 12:13:34 +01:00