Skip to content

Commit d1ccc9f

Browse files
committed
Add GitHubStars component and update docs
Introduce a GitHubStars.astro component that embeds a shields.io GitHub stars badge linking to a repo, and replace inline "GitHub Repository" links across multiple docs to use this component. Also fix NuGet badge URLs in NugetBadge.astro and NugetBadge.tsx by removing the duplicated ?style param and adding the NuGet logo (&logo=nuget). Changes touch the new component and many docs (aspire, data, extensions, maui, mediator, etc.) to import and render the new badge.
1 parent 2702db3 commit d1ccc9f

17 files changed

Lines changed: 42 additions & 15 deletions

File tree

src/components/GitHubStars.astro

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
export interface Props {
3+
org: string;
4+
repo: string;
5+
}
6+
7+
const { org, repo } = Astro.props as Props;
8+
9+
const shieldsUrl = `https://img.shields.io/github/stars/${org}/${repo}?style=for-the-badge&logo=github`;
10+
const repoUrl = `https://github.com/${org}/${repo}`;
11+
---
12+
<a href={repoUrl} target="_blank" rel="noopener noreferrer"><img src={shieldsUrl} alt={`GitHub stars for ${org}/${repo}`} /></a>

src/components/NugetBadge.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface Props {
1010
const { name, showPreviewVersion, showLabel } = Astro.props as Props;
1111
1212
const v = showPreviewVersion === true ? 'vpre' : 'v';
13-
let imgUrl: string = `https://img.shields.io/nuget/${v}/${name}?style=for-the-badge?style=for-the-badge`;
13+
let imgUrl: string = `https://img.shields.io/nuget/${v}/${name}?style=for-the-badge&logo=nuget`;
1414
if (showLabel === true) {
1515
imgUrl += `&label=${name}`;
1616
}

src/components/NugetBadge.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export interface Props {
99

1010
const NugetBadge = (props: Props) => {
1111
const v = props.showPreviewVersion === true ? 'vpre' : 'v';
12-
let imgUrl: string = `https://img.shields.io/nuget/${v}/${props.name}?style=for-the-badge`;
12+
let imgUrl: string = `https://img.shields.io/nuget/${v}/${props.name}?style=for-the-badge&logo=nuget`;
1313
if (props.showLabel === true) {
1414
imgUrl += `&label=${props.name}`;
1515
}

src/content/docs/aspire/gluetun/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ title: Getting Started
33
description: Aspire hosting integration for Gluetun VPN containers
44
---
55
import NugetBadge from '/src/components/NugetBadge.tsx';
6+
import GitHubStars from '/src/components/GitHubStars.astro';
67
import { Steps } from '@astrojs/starlight/components';
78

89
Aspire hosting integration for [Gluetun](https://github.com/qdm12/gluetun), a lightweight VPN client container supporting 30+ providers. Models Gluetun as a first-class Aspire resource and lets other containers route their traffic through the VPN tunnel.
910

10-
- [GitHub Repository](https://github.com/shinyorg/aspire)
11+
- <GitHubStars org="shinyorg" repo="aspire" />
1112
- [Gluetun Wiki](https://github.com/qdm12/gluetun-wiki)
1213

1314
## Package

src/content/docs/aspire/orleans/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ title: Getting Started
33
description: Zero-friction integration between .NET Aspire and Microsoft Orleans for ADO.NET storage backends
44
---
55
import NugetBadge from '/src/components/NugetBadge.tsx';
6+
import GitHubStars from '/src/components/GitHubStars.astro';
67
import { Steps } from '@astrojs/starlight/components';
78

89
Zero-friction integration between [.NET Aspire](https://learn.microsoft.com/dotnet/aspire/) and [Microsoft Orleans](https://learn.microsoft.com/dotnet/orleans/) for ADO.NET storage backends. Automatically provisions Orleans database schemas and wires up clustering, grain persistence, and reminders from Aspire configuration — no manual SQL scripts or connection string plumbing required.
910

10-
- [GitHub Repository](https://github.com/shinyorg/aspire)
11+
- <GitHubStars org="shinyorg" repo="aspire" />
1112

1213
## Packages
1314

src/content/docs/data/spatial/geofencing.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Steps } from '@astrojs/starlight/components';
77

88
GPS-driven geofence monitoring for iOS and Android. Built on [Shiny.Locations](/client/locations/gps) for background GPS and [Shiny.Spatial](/data/spatial/) for spatial queries.
99

10-
- [GitHub Repository](https://github.com/shinyorg/spatialdb)
10+
- <GitHubStars org="shinyorg" repo="geospatialdb" />
1111
- <NugetBadge name="Shiny.Spatial.Geofencing" showLabel={true} />
1212

1313
## Why Spatial Geofencing?

src/content/docs/data/spatial/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ title: Getting Started
33
description: A dependency-free, cross-platform .NET geospatial database powered by SQLite R*Tree indexing
44
---
55
import NugetBadge from '/src/components/NugetBadge.tsx';
6+
import GitHubStars from '/src/components/GitHubStars.astro';
67
import { Steps } from '@astrojs/starlight/components';
78

89
A lightweight, dependency-free geospatial database for .NET that combines SQLite R*Tree spatial indexing with custom C# geometry algorithms for high-performance spatial queries. No SpatiaLite, no NetTopologySuite — just SQLite and math.
910

10-
- [GitHub Repository](https://github.com/shinyorg/spatialdb)
11+
- <GitHubStars org="shinyorg" repo="geospatialdb" />
1112
- <NugetBadge name="Shiny.Spatial" showLabel={true} />
1213

1314
## Features

src/content/docs/data/sqlite-docdb/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
title: SQLite Document DB
33
---
44
import NugetBadge from '/src/components/NugetBadge.tsx';
5+
import GitHubStars from '/src/components/GitHubStars.astro';
56
import { Steps } from '@astrojs/starlight/components';
67

78
A lightweight SQLite-based document store for .NET that turns SQLite into a schema-free JSON document database with LINQ querying and full AOT/trimming support. Store entire object graphs — nested objects, child collections — as JSON documents. No `CREATE TABLE`, no `ALTER TABLE`, no JOINs, no migrations.
89

9-
- [GitHub Repository](https://github.com/shinyorg/SqliteDocumentDb)
10+
- <GitHubStars org="shinyorg" repo="SqliteDocumentDb" />
1011
- <NugetBadge name="Shiny.SqliteDocumentDb" showLabel={true} />
1112

1213
## Features

src/content/docs/extensions/di/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
title: Dependency Injection
33
---
44
import NugetBadge from '/src/components/NugetBadge.tsx';
5+
import GitHubStars from '/src/components/GitHubStars.astro';
56
import { Steps } from '@astrojs/starlight/components';
67

78
Stop manually wiring up every service in your DI container. Shiny Extensions DI uses source generators to scan your attributed classes at compile time and generate all your registrations into a single file. Add an attribute, and it's registered — no reflection, no startup cost, fully AOT-compatible.
89

9-
- [GitHub Repository](https://github.com/shinyorg/extensions)
10+
- <GitHubStars org="shinyorg" repo="extensions" />
1011
- <NugetBadge name="Shiny.Extensions.DependencyInjection" />
1112

1213
## Features

src/content/docs/extensions/localizegen/index.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
title: Localization Generator
33
---
44
import NugetBadge from '/src/components/NugetBadge.tsx';
5+
import GitHubStars from '/src/components/GitHubStars.astro';
56
import { Steps } from '@astrojs/starlight/components';
67

78
`Microsoft.Extensions.Localization` provides great abstractions, but you lose the strong typing and IDE tooling that `.resx` files originally gave you. This library fixes that — it source-generates a strongly-typed class for each `.resx` file, giving you compile-time safety, IntelliSense, and format-string methods with the correct number of parameters.
89

9-
- [GitHub Repository](https://github.com/shinyorg/localizegen)
10+
- <GitHubStars org="shinyorg" repo="localizegen" />
1011
- <NugetBadge name="Shiny.Extensions.Localization.Generator" />
1112

1213
## Features

0 commit comments

Comments
 (0)