Skip to content

Kbd hints#8

Open
joshribakoff wants to merge 19 commits intomainfrom
kbd-hints
Open

Kbd hints#8
joshribakoff wants to merge 19 commits intomainfrom
kbd-hints

Conversation

@joshribakoff
Copy link
Owner

No description provided.

joshribakoff and others added 17 commits December 14, 2025 21:49
Wikipedia-style magic links with build-time resolution for markdown.

Features:
- Link resolver with priority: exact ID → aliases → slug → unresolved
- Remark plugin supporting [:id] and [[id]] syntax
- Fallback IDs: [:id1|:id2] tries each until one resolves
- Custom display text: [[id|Display Text]]
- Graceful degradation: unresolved links become plain text
- Placeholder support with custom CSS class
- Link checker for detecting broken links in content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove complex target registry, link resolver, and link checker.
The plugin now just transforms [[id]] syntax using a urlBuilder callback.

- Delete link-resolver.ts, link-checker.ts, types.ts
- Simplify remark-magic-links.ts to ~100 lines
- Update tests with synthetic data
- Update README

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Verify AST-based parsing handles arbitrary nesting levels (1-5) with
alternating list/blockquote containers around code blocks and inline code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace simple /concepts/ example with a fun pet store catalog
showing how urlBuilder enables routing to different paths per
content type. Add error handling example and link to tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document that wiki-link syntax works natively in Neovim,
Obsidian, and VS Code - content is navigable without building.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document the lineage: MediaWiki, Org mode, Roam/Obsidian.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove definitive language like "origin of" - just list examples.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Keyboard shortcut visibility components:
- KbdBadge.astro: render individual <kbd> badges
- KbdLegend.astro: render grouped binding lists
- bindings.ts: transform teleport bindings for display

No detection module - components accept `enabled` prop,
sites decide visibility (e.g., via CSS media queries).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Unique prefix avoids collisions:
- .kbd-hints-legend, .kbd-hints-legend--compact
- .kbd-hints-title, .kbd-hints-row, .kbd-hints-group
- .kbd-hints-badge, .kbd-hints-label

Update README with detection strategy docs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests for keyboard detection logic:
- Breakpoint defaults (desktop=show, mobile=hide)
- Touch interaction (hides unless localStorage flag)
- Keyboard interaction (shows + persists to localStorage)
- Consumer overrides (always/never/auto)
- Precedence rules
- Subscription pattern

14 tests failing, stub implementation returns false.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- @bearing-dev/atlas → @sailkit/atlas
- @bearing-dev/compass → @sailkit/compass
- @bearing-dev/lantern → @sailkit/lantern
- @bearing-dev/teleport → @sailkit/teleport
- Root package: bearing-dev → sailkit
- Add exports for clean imports (sailkit/atlas, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshribakoff and others added 2 commits December 21, 2025 20:10
Detection logic:
1. localStorage 'kbd:hasKeyboard' flag trumps all
2. Consumer override (always/never/auto)
3. Keydown → show + persist to localStorage permanently
4. Touch → hide (unless localStorage flag set)
5. Breakpoint default (desktop=show, mobile=hide)

All 18 tests passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Removes noExternal: ['@bearing-dev/compass'] from tsup config.
This was causing build failures when installing from git URL
because tsup tried to bundle compass before it was built.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant