|
1 | | -<!-- |
2 | | ---- |
3 | | -title: "RadioAstronomy.io Website" |
4 | | -description: "Public website for the radioastronomyio GitHub organization" |
5 | | -author: "VintageDon" |
6 | | -date: "2026-04-18" |
7 | | -version: "2.0" |
8 | | -status: "Active" |
9 | | -tags: |
10 | | - - type: project-root |
11 | | - - domain: [website, static-site] |
12 | | - - tech: [astro, tailwind, typescript, azure-swa] |
13 | | -related_documents: |
14 | | - - "[Website Specification](docs/website-reference.md)" |
15 | | - - "[Live Site](https://radioastronomy.io)" |
16 | | ---- |
17 | | ---> |
18 | | - |
19 | | -# RadioAstronomy.io Website |
20 | | - |
21 | | -> Public website for the radioastronomyio GitHub organization, built with Astro, Tailwind CSS, and TypeScript. Deployed on Azure Static Web Apps. |
22 | | -
|
23 | | -[](https://radioastronomy.io) |
24 | | -[](https://azure.microsoft.com/en-us/products/app-service/static) |
25 | | -[](https://github.com/features/actions) |
26 | | -[](https://astro.build) |
27 | | -[](https://tailwindcss.com) |
28 | | -[](LICENSE) |
29 | | - |
30 | | - |
31 | | - |
32 | | -This repository contains the public website for the [radioastronomyio](https://github.com/radioastronomyio) GitHub organization, a 14-page site showcasing computational astronomy research projects, infrastructure documentation, governance practices, and the organization's open-science approach. |
33 | | - |
34 | | ---- |
35 | | - |
36 | | -## Repository Structure |
| 1 | +## Sponsor Logo Fix — File Placement Guide |
| 2 | + |
| 3 | +### 1. Asset copies (manual) |
37 | 4 |
|
38 | 5 | ``` |
39 | | -radioastronomyio-website/ |
40 | | -├── .github/workflows/ # Azure SWA CI/CD deployment |
41 | | -├── assets/ # Repo-level banners, sponsor logos, founder headshot, infographics |
42 | | -├── docs/ |
43 | | -│ ├── documentation-standards/ # Templates, tagging strategy |
44 | | -│ └── website-reference.md # v1 specification (archived) |
45 | | -├── src/ # v2 (live) - Astro + Tailwind + TypeScript |
46 | | -│ ├── src/ |
47 | | -│ │ ├── components/ # Shared UI components (15) |
48 | | -│ │ ├── content/ # Content collections (sponsors, projects) |
49 | | -│ │ ├── layouts/ # PageLayout, ProjectPageLayout |
50 | | -│ │ └── pages/ # Routes (14 pages) |
51 | | -│ ├── public/images/ # Assets (sponsors, projects, founder, heroes, og, logo) |
52 | | -│ ├── astro.config.mjs |
53 | | -│ ├── tailwind.config.mjs |
54 | | -│ ├── tsconfig.json |
55 | | -│ ├── package.json |
56 | | -│ └── staticwebapp.config.json # Caching, headers, routing, legacy redirects |
57 | | -├── legacy-v1/ # v1 (archived) - Original vanilla HTML/CSS/JS site |
58 | | -├── work-logs/ # Development history |
59 | | -├── AGENTS.md # AI agent context |
60 | | -├── CLAUDE.md # Pointer to AGENTS.md |
61 | | -├── LICENSE # MIT |
62 | | -└── README.md # This file |
| 6 | +COPY assets/sentry-icon-lg.png → src/public/images/sponsors/sentry.png |
| 7 | +COPY assets/1Password_wordmark_blue_2023.svg → src/public/images/sponsors/1password.svg |
63 | 8 | ``` |
64 | 9 |
|
65 | | ---- |
| 10 | +You can delete the old `src/public/images/sponsors/sentry.svg` after confirming the PNG works. |
66 | 11 |
|
67 | | -## Local Development |
| 12 | +### 2. Content collection files |
68 | 13 |
|
69 | | -```bash |
70 | | -cd src |
71 | | -npm install |
72 | | -npm run dev |
73 | | -# Open http://localhost:4321 |
| 14 | +``` |
| 15 | +REPLACE src/src/content/sponsors/sentry.md ← use sponsor-fixes/sentry.md |
| 16 | +CREATE src/src/content/sponsors/1password.md ← use sponsor-fixes/1password.md |
74 | 17 | ``` |
75 | 18 |
|
76 | | ---- |
77 | | - |
78 | | -## Related Projects |
79 | | - |
80 | | -This website showcases the [radioastronomyio](https://github.com/radioastronomyio) research program: |
81 | | - |
82 | | -| Project | Description | |
83 | | -|---------|-------------| |
84 | | -| [proxmox-astronomy-lab](https://github.com/radioastronomyio/proxmox-astronomy-lab) | Platform documentation, VM inventory, network architecture | |
85 | | -| [desi-cosmic-void-galaxies](https://github.com/radioastronomyio/desi-cosmic-void-galaxies) | Galaxy populations in cosmic voids using DESI DR1 | |
86 | | -| [desi-quasar-outflows](https://github.com/radioastronomyio/desi-quasar-outflows) | AGN outflow spectral fitting and Cloudy modeling | |
87 | | -| [desi-qso-anomaly-detection](https://github.com/radioastronomyio/desi-qso-anomaly-detection) | ML anomaly detection for quasar spectra | |
88 | | -| [rbh1-validation-reanalysis](https://github.com/radioastronomyio/rbh1-validation-reanalysis) | Independent validation of the RBH-1 hypervelocity SMBH candidate | |
89 | | -| [desi-lsst-transient-anomalies](https://github.com/radioastronomyio/desi-lsst-transient-anomalies) | DESI-contextualized Rubin/LSST transient anomaly detection | |
90 | | -| [cosmos2025-anomalies](https://github.com/radioastronomyio/cosmos2025-anomalies) | Anomaly detection on COSMOS-Web DR1 imaging | |
91 | | - |
92 | | ---- |
93 | | - |
94 | | -## Acknowledgments |
| 19 | +### 3. Component replacement |
95 | 20 |
|
96 | | -- [Azure Static Web Apps](https://azure.microsoft.com/en-us/products/app-service/static) for managed hosting |
97 | | -- [Cloudflare](https://www.cloudflare.com/) for DNS and CDN proxying |
98 | | -- [GitHub Actions](https://github.com/features/actions) for CI/CD pipeline |
| 21 | +``` |
| 22 | +REPLACE src/src/components/SponsorCard.astro ← use sponsor-fixes/SponsorCard.astro |
| 23 | +``` |
99 | 24 |
|
100 | | ---- |
| 25 | +### 4. index.astro — Replace the "Supported by" section |
| 26 | + |
| 27 | +Find this block in `src/src/pages/index.astro` (around line 73): |
| 28 | + |
| 29 | +```astro |
| 30 | + <section class="py-16"> |
| 31 | + <h2 class="text-2xl font-bold text-center mb-10">Supported by</h2> |
| 32 | + <div class="flex flex-wrap justify-center items-center gap-8"> |
| 33 | + {sponsors.map((sponsor) => ( |
| 34 | + <a |
| 35 | + href={sponsor.data.url} |
| 36 | + target="_blank" |
| 37 | + rel="noopener" |
| 38 | + class="group relative" |
| 39 | + > |
| 40 | + <img |
| 41 | + src={sponsor.data.logo} |
| 42 | + alt={sponsor.data.name} |
| 43 | + class:list={[ |
| 44 | + 'h-10 max-w-[120px] object-contain opacity-70 hover:opacity-100 transition-opacity', |
| 45 | + sponsor.data.logo.includes('macroscope') ? 'invert' : '', |
| 46 | + ]} |
| 47 | + /> |
| 48 | + <span class="absolute -top-8 left-1/2 -translate-x-1/2 text-xs bg-brand-navy dark:bg-dark-surface text-white px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none"> |
| 49 | + {sponsor.data.name} |
| 50 | + </span> |
| 51 | + </a> |
| 52 | + ))} |
| 53 | + </div> |
| 54 | + </section> |
| 55 | +``` |
101 | 56 |
|
102 | | -## License |
| 57 | +Replace with: |
| 58 | + |
| 59 | +```astro |
| 60 | + <section class="py-16"> |
| 61 | + <h2 class="text-2xl font-bold text-center mb-10">Supported by</h2> |
| 62 | + <div class="flex flex-wrap justify-center items-center gap-6"> |
| 63 | + {sponsors.map((sponsor) => ( |
| 64 | + <a |
| 65 | + href={sponsor.data.url} |
| 66 | + target="_blank" |
| 67 | + rel="noopener" |
| 68 | + class="group relative bg-white/10 rounded-lg px-4 py-2 hover:bg-white/20 transition-colors" |
| 69 | + > |
| 70 | + <img |
| 71 | + src={sponsor.data.logo} |
| 72 | + alt={sponsor.data.name} |
| 73 | + class="h-8 max-w-[120px] object-contain brightness-0 invert opacity-80 group-hover:opacity-100 transition-opacity" |
| 74 | + /> |
| 75 | + <span class="absolute -top-8 left-1/2 -translate-x-1/2 text-xs bg-brand-navy dark:bg-dark-surface text-white px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none"> |
| 76 | + {sponsor.data.name} |
| 77 | + </span> |
| 78 | + </a> |
| 79 | + ))} |
| 80 | + </div> |
| 81 | + </section> |
| 82 | +``` |
103 | 83 |
|
104 | | -This project is licensed under the MIT License. See [LICENSE](LICENSE) for details. |
| 84 | +### What changed and why |
| 85 | + |
| 86 | +**SponsorCard.astro:** |
| 87 | +- Removed `isWhiteLogo` / `isDarkLogo` per-sponsor conditionals |
| 88 | +- All cards get uniform `bg-white dark:bg-dark-surface` — no more navy card for Macroscope |
| 89 | +- Logo container: `bg-gray-100 dark:bg-white/15 rounded-lg px-4` gives every logo a neutral pill |
| 90 | +- Dark mode: `dark:brightness-0 dark:invert` makes all logos white, clean against the dark pill |
| 91 | +- Light mode: logos render in their natural colors against the light gray pill |
| 92 | + |
| 93 | +**index.astro "Supported by" bar:** |
| 94 | +- Removed `macroscope ? 'invert' : ''` conditional |
| 95 | +- All logos get `brightness-0 invert` (white monochrome) since this section sits on a dark background in both modes |
| 96 | +- Added `bg-white/10 rounded-lg` pill for subtle definition |
| 97 | +- Hover lifts opacity and brightens the pill |
| 98 | + |
| 99 | +**Adding a new sponsor now requires only:** |
| 100 | +1. Drop the logo file in `src/public/images/sponsors/` |
| 101 | +2. Create a `.md` file in `src/src/content/sponsors/` |
| 102 | +3. No component changes needed |
0 commit comments