0c2cea8c25
Architecture:
- Cap homepage plugin list at PLUGIN_FETCH_CAP like other pages
- Declare @types/node directly instead of relying on transitive dep
- Single-source status label text (statuses.ts vs seed.json drift)
UI/UX:
- Stop auto-submitting filter selects so keyboard navigation works
- Fix heading hierarchy (add h2) on flat list pages
- Improve homepage title beyond bare "Plugins"
- Make status taxonomy descriptions self-contained
- Render only relevant statuses in the legend, not all 7
- Fix PluginCard "WordPress -> —" for missing target
- Clarify "{n} from / {n} targeting" microcopy
- Use proper count meta markup on CMS list
- Allow header nav row to wrap
- Fix bare CMS URL horizontal overflow
- Add standard line-clamp fallback to cards
- Even out footer stacked paragraph spacing
- Center plugin detail status line (drop margin-left hack)
- Raise toolbar tap targets to 44px
- Surface status badge meaning beyond title attribute
- Include source-CMS breadcrumb step on lookup miss
- Add link into filtered catalog from CMS detail
27 lines
586 B
Plaintext
27 lines
586 B
Plaintext
---
|
|
import StatusBadge from "./StatusBadge.astro";
|
|
|
|
interface Props {
|
|
entry: {
|
|
id: string;
|
|
data: {
|
|
title: string;
|
|
purpose?: string | null;
|
|
status?: string | null;
|
|
source_cms?: string | null;
|
|
target_cms?: string | null;
|
|
};
|
|
};
|
|
}
|
|
const { entry } = Astro.props;
|
|
const d = entry.data;
|
|
---
|
|
<li class="plugin-card">
|
|
<h3><a href={`/plugins/${entry.id}`}>{d.title}</a></h3>
|
|
<div class="meta">
|
|
<StatusBadge status={d.status} />
|
|
{d.source_cms && <span>{d.source_cms}{d.target_cms ? ` → ${d.target_cms}` : ""}</span>}
|
|
</div>
|
|
{d.purpose && <p>{d.purpose}</p>}
|
|
</li>
|