feat: category icon badges on projects — CLI, App, Web, Plugin, SDK
Each project now shows a colored icon badge indicating its type: - CLI (purple terminal), App (blue apple), Web (cyan globe) - WebApp (teal app), Plugin (amber puzzle), SDK (violet package) - Contrib (gray pull request)
This commit is contained in:
@@ -542,6 +542,7 @@
|
||||
"projects": [
|
||||
{
|
||||
"title": "Immich Photo Manager - AI-Powered Photo Library MCP Server",
|
||||
"category": "cli",
|
||||
"projectName": "Immich Photo Manager",
|
||||
"projectDesc": "AI-Powered Photo Library MCP Server",
|
||||
"url": "https://drolosoft.com/immich-photo-manager.html?lang=en",
|
||||
@@ -570,6 +571,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Cmux Resurrect - Terminal Session Persistence Tool",
|
||||
"category": "cli",
|
||||
"projectName": "Cmux Resurrect",
|
||||
"projectDesc": "Terminal Session Persistence Tool",
|
||||
"url": "https://drolosoft.com/cmux-resurrect.html?lang=en",
|
||||
@@ -598,6 +600,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Gotify Commander - Bidirectional Server Control Plugin",
|
||||
"category": "plugin",
|
||||
"projectName": "Gotify Commander",
|
||||
"projectDesc": "Bidirectional Server Control Plugin",
|
||||
"url": "https://github.com/drolosoft/gotify-commander",
|
||||
@@ -627,6 +630,7 @@
|
||||
},
|
||||
{
|
||||
"title": "SoundInbox - Native macOS Email Sound Alerts",
|
||||
"category": "app",
|
||||
"projectName": "SoundInbox",
|
||||
"projectDesc": "Native macOS Email Sound Alerts",
|
||||
"url": "https://drolosoft.com/soundinbox.html?lang=en",
|
||||
@@ -654,6 +658,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Somos Una Ola - Beach Cleaning Initiative",
|
||||
"category": "web",
|
||||
"projectName": "Somos Una Ola",
|
||||
"projectDesc": "Beach Cleaning Initiative",
|
||||
"url": "https://somosunaola.org",
|
||||
@@ -677,6 +682,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Herrumbre Vivo Arte - Artist Portfolio Website",
|
||||
"category": "web",
|
||||
"projectName": "Herrumbre Vivo Arte",
|
||||
"projectDesc": "Artist Portfolio Website",
|
||||
"url": "https://herrumbrevivoarte.com",
|
||||
@@ -699,6 +705,7 @@
|
||||
},
|
||||
{
|
||||
"title": "La Porra.club - Football Prediction Platform",
|
||||
"category": "webapp",
|
||||
"projectName": "La Porra.club",
|
||||
"projectDesc": "Football Prediction Platform",
|
||||
"url": "https://laporra.club",
|
||||
@@ -725,6 +732,7 @@
|
||||
},
|
||||
{
|
||||
"title": "CDC Starter Kit - SAP Customer Data Cloud Demo",
|
||||
"category": "sdk",
|
||||
"projectName": "CDC Starter Kit",
|
||||
"projectDesc": "SAP Customer Data Cloud Demo",
|
||||
"url": "https://gigyademo.com/cdc-starter-kit/",
|
||||
@@ -754,6 +762,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Third Party Contributions",
|
||||
"category": "contrib",
|
||||
"url": "",
|
||||
"projectLogo": "",
|
||||
"location": "Various",
|
||||
|
||||
@@ -542,6 +542,7 @@
|
||||
"projects": [
|
||||
{
|
||||
"title": "Immich Photo Manager - Servidor MCP para Gestión de Fotos con IA",
|
||||
"category": "cli",
|
||||
"projectName": "Immich Photo Manager",
|
||||
"projectDesc": "Servidor MCP para Gestión de Fotos con IA",
|
||||
"url": "https://drolosoft.com/immich-photo-manager.html?lang=es",
|
||||
@@ -570,6 +571,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Cmux Resurrect - Herramienta de Persistencia de Sesiones de Terminal",
|
||||
"category": "cli",
|
||||
"projectName": "Cmux Resurrect",
|
||||
"projectDesc": "Herramienta de Persistencia de Sesiones de Terminal",
|
||||
"url": "https://drolosoft.com/cmux-resurrect.html?lang=es",
|
||||
@@ -598,6 +600,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Gotify Commander - Plugin Bidireccional de Control de Servidores",
|
||||
"category": "plugin",
|
||||
"projectName": "Gotify Commander",
|
||||
"projectDesc": "Plugin Bidireccional de Control de Servidores",
|
||||
"url": "https://github.com/drolosoft/gotify-commander",
|
||||
@@ -627,6 +630,7 @@
|
||||
},
|
||||
{
|
||||
"title": "SoundInbox - Alertas Sonoras de Email para macOS",
|
||||
"category": "app",
|
||||
"projectName": "SoundInbox",
|
||||
"projectDesc": "Alertas Sonoras de Email para macOS",
|
||||
"url": "https://drolosoft.com/soundinbox.html?lang=es",
|
||||
@@ -654,6 +658,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Somos Una Ola - Iniciativa de Limpieza de Playas",
|
||||
"category": "web",
|
||||
"projectName": "Somos Una Ola",
|
||||
"projectDesc": "Iniciativa de Limpieza de Playas",
|
||||
"url": "https://somosunaola.org",
|
||||
@@ -677,6 +682,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Herrumbre Vivo Arte - Sitio Web Portfolio de Artista",
|
||||
"category": "web",
|
||||
"projectName": "Herrumbre Vivo Arte",
|
||||
"projectDesc": "Sitio Web Portfolio de Artista",
|
||||
"url": "https://herrumbrevivoarte.com",
|
||||
@@ -699,6 +705,7 @@
|
||||
},
|
||||
{
|
||||
"title": "La Porra.club - Plataforma de Predicción de Fútbol",
|
||||
"category": "webapp",
|
||||
"projectName": "La Porra.club",
|
||||
"projectDesc": "Plataforma de Predicción de Fútbol",
|
||||
"url": "https://laporra.club",
|
||||
@@ -725,6 +732,7 @@
|
||||
},
|
||||
{
|
||||
"title": "CDC Starter Kit - Demo de SAP Customer Data Cloud",
|
||||
"category": "sdk",
|
||||
"projectName": "CDC Starter Kit",
|
||||
"projectDesc": "Demo de SAP Customer Data Cloud",
|
||||
"url": "https://gigyademo.com/cdc-starter-kit/",
|
||||
@@ -754,6 +762,7 @@
|
||||
},
|
||||
{
|
||||
"title": "Contribuciones a Proyectos de Terceros",
|
||||
"category": "contrib",
|
||||
"url": "",
|
||||
"projectLogo": "",
|
||||
"location": "Varios",
|
||||
|
||||
@@ -93,6 +93,7 @@ type Language struct {
|
||||
|
||||
type Project struct {
|
||||
Title string `json:"title"`
|
||||
Category string `json:"category,omitempty"` // Project type: cli, app, web, webapp, plugin, sdk, contrib
|
||||
ProjectName string `json:"projectName,omitempty"` // Optional: linkable part of title
|
||||
ProjectDesc string `json:"projectDesc,omitempty"` // Optional: non-linkable description part
|
||||
ProjectID string `json:"projectID,omitempty"` // Unique ID for scrolling/navigation
|
||||
|
||||
@@ -98,6 +98,7 @@ type Language struct {
|
||||
|
||||
type Project struct {
|
||||
Title string `json:"title"`
|
||||
Category string `json:"category,omitempty"` // Project type: cli, app, web, webapp, plugin, sdk, contrib
|
||||
ProjectName string `json:"projectName,omitempty"` // Optional: linkable part of title
|
||||
ProjectDesc string `json:"projectDesc,omitempty"` // Optional: non-linkable description part
|
||||
ProjectID string `json:"projectID,omitempty"` // Unique ID for scrolling/navigation
|
||||
|
||||
@@ -194,6 +194,27 @@
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* Category icon badges */
|
||||
.category-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: white;
|
||||
font-size: 0.7em;
|
||||
padding: 0.2em 0.4em;
|
||||
border-radius: 3px;
|
||||
margin-left: 0.5em;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.category-cli { background: #5b21b6; } /* Purple — terminal */
|
||||
.category-app { background: #1d4ed8; } /* Blue — native app */
|
||||
.category-web { background: #0891b2; } /* Cyan — website */
|
||||
.category-webapp { background: #059669; } /* Teal — web app */
|
||||
.category-plugin { background: #d97706; } /* Amber — plugin */
|
||||
.category-sdk { background: #7c3aed; } /* Violet — SDK */
|
||||
.category-contrib { background: #6b7280; } /* Gray — contributions */
|
||||
|
||||
.stars-badge {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -105,7 +105,8 @@
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.stars-badge {
|
||||
.stars-badge,
|
||||
.category-badge {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,14 @@
|
||||
{{if .URL}}<a href="{{.URL}}" target="_blank" rel="noopener noreferrer">{{.Title}}</a>{{else}}{{.Title}}{{end}}
|
||||
{{end}}
|
||||
</strong>
|
||||
{{if eq .Category "cli"}}<span class="category-badge category-cli"><iconify-icon icon="mdi:console" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "app"}}<span class="category-badge category-app"><iconify-icon icon="mdi:apple" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "web"}}<span class="category-badge category-web"><iconify-icon icon="mdi:web" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "webapp"}}<span class="category-badge category-webapp"><iconify-icon icon="mdi:application-outline" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "plugin"}}<span class="category-badge category-plugin"><iconify-icon icon="mdi:puzzle" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "sdk"}}<span class="category-badge category-sdk"><iconify-icon icon="mdi:package-variant" width="14" height="14"></iconify-icon></span>
|
||||
{{else if eq .Category "contrib"}}<span class="category-badge category-contrib"><iconify-icon icon="mdi:source-pull" width="14" height="14"></iconify-icon></span>
|
||||
{{end}}
|
||||
{{if .Current}}<span class="live-badge"><iconify-icon icon="mdi:wifi" width="14" height="14"></iconify-icon>LIVE</span>{{end}}
|
||||
{{if .GitRepoUrl}}<a href="{{.GitRepoUrl}}" target="_blank" rel="noopener noreferrer" class="github-badge"><iconify-icon icon="mdi:github" width="14" height="14"></iconify-icon>GitHub</a>{{end}}
|
||||
{{if .GitRepoUrl}}<a href="{{.GitRepoUrl}}/stargazers" target="_blank" rel="noopener noreferrer" class="stars-badge"><iconify-icon icon="mdi:star" width="14" height="14"></iconify-icon>{{if .Stars}}{{.Stars}} {{end}}stars</a>{{end}}
|
||||
|
||||
Reference in New Issue
Block a user