docs(www): point the website, docs and badges back at GitHub (#35)
* docs(www): point the website, docs and badges back at GitHub
GitHub is the release destination again, so every user-facing reference to the
self-hosted Gitea instance now points at github.com/AdrianBonpin:
- www: nav + footer links, Download / Releases buttons, 'View on GitHub' and
'Star on GitHub' CTAs, landing.js download fallback label, the repo
preconnect/dns-prefetch hints, and the ROADMAP link (Gitea's
src/branch/prod path becomes GitHub's blob/prod)
- www/src/lib/seo.test.ts: matching structured-data fixtures
- README: shields.io badge and the tap prose
- ROADMAP: Homebrew tap URL
Deliberately left pointing at Gitea (they are the fallback, not destinations):
.gitea/workflows/release.yml and scripts/release-mac.sh use git.ranio.xyz as
an API host, so rewriting those would break the fallback path.
* fix(www): update the stale FAQ count assertion
faq.test.ts asserted exactly 5 FAQ items but the list has had 6 since
bdf2bb5 (Release 0.7.15), so the www suite has been red since then. No CI
runs the www tests, which is why it went unnoticed. Found while verifying the
docs change above; unrelated to it.
This commit is contained in:
@@ -18,7 +18,7 @@
|
|||||||
<a href="https://react.dev/"><img src="https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB" alt="React" /></a>
|
<a href="https://react.dev/"><img src="https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB" alt="React" /></a>
|
||||||
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" /></a>
|
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" /></a>
|
||||||
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-D22128.svg?style=for-the-badge" alt="Apache 2.0 License" /></a>
|
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-D22128.svg?style=for-the-badge" alt="Apache 2.0 License" /></a>
|
||||||
<a href="https://github.com/AdrianBonpin/gridline"><img src="https://img.shields.io/badge/Open_Source-Gitea-4183C4.svg?style=for-the-badge" alt="Open source on GitHub" /></a>
|
<a href="https://github.com/AdrianBonpin/gridline"><img src="https://img.shields.io/badge/Open_Source-GitHub-181717.svg?style=for-the-badge" alt="Open source on GitHub" /></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -44,7 +44,7 @@ Grab the installer for your OS from the [latest release](https://github.com/Adri
|
|||||||
**macOS via Homebrew** (recommended for Mac users):
|
**macOS via Homebrew** (recommended for Mac users):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# one-time setup (the tap is hosted on Gitea, not GitHub):
|
# one-time setup (the tap is hosted on GitHub):
|
||||||
brew tap AdrianBonpin/gridline https://github.com/AdrianBonpin/homebrew-gridline.git
|
brew tap AdrianBonpin/gridline https://github.com/AdrianBonpin/homebrew-gridline.git
|
||||||
brew trust adrianbonpin/gridline
|
brew trust adrianbonpin/gridline
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -104,7 +104,7 @@ Still deferred from 0.7.0, slated for this bucket:
|
|||||||
## ✅ Shipped (0.7.14)
|
## ✅ Shipped (0.7.14)
|
||||||
|
|
||||||
- **No more repeated macOS keychain prompts** — saved connection passwords and SSH secrets are ACL-pinned to the app's code signature when stored, so app upgrades never re-trigger the macOS keychain access dialog (users upgrading from older builds see one final prompt — choose Always Allow)
|
- **No more repeated macOS keychain prompts** — saved connection passwords and SSH secrets are ACL-pinned to the app's code signature when stored, so app upgrades never re-trigger the macOS keychain access dialog (users upgrading from older builds see one final prompt — choose Always Allow)
|
||||||
- **Install via Homebrew** — add the Gitea tap (`brew tap AdrianBonpin/gridline https://git.ranio.xyz/adrianbonpin/homebrew-gridline.git`) and run `brew install --cask gridline`
|
- **Install via Homebrew** — add the Homebrew tap (`brew tap AdrianBonpin/gridline https://github.com/AdrianBonpin/homebrew-gridline.git`) and run `brew install --cask gridline`
|
||||||
- **Version bump** 0.7.13 → **0.7.14**.
|
- **Version bump** 0.7.13 → **0.7.14**.
|
||||||
|
|
||||||
## ✅ Shipped (0.7.13)
|
## ✅ Shipped (0.7.13)
|
||||||
@@ -112,7 +112,7 @@ Still deferred from 0.7.0, slated for this bucket:
|
|||||||
- **Developer-ID signed + notarized macOS** — the app is properly code-signed with a Developer ID Application certificate and notarized by Apple, so macOS opens it without the Gatekeeper "Open Anyway" prompt or the `xattr` quarantine workaround
|
- **Developer-ID signed + notarized macOS** — the app is properly code-signed with a Developer ID Application certificate and notarized by Apple, so macOS opens it without the Gatekeeper "Open Anyway" prompt or the `xattr` quarantine workaround
|
||||||
- **Version bump** 0.7.12 → **0.7.13**.
|
- **Version bump** 0.7.12 → **0.7.13**.
|
||||||
|
|
||||||
## ✅ Shipped (0.7.12) *(includes 0.7.11: release-pipeline/docs refresh — README download links moved from GitHub to the self-hosted Gitea `git.ranio.xyz`)*
|
## ✅ Shipped (0.7.12) *(includes 0.7.11: release-pipeline/docs refresh)*
|
||||||
|
|
||||||
- **Reliable cell editing for non-text columns** — editing a PostgreSQL cell whose type isn't text (integers, booleans, UUIDs, json/jsonb, timestamps, enums, numerics) now works; edited values are sent to PostgreSQL in text wire format so the server parses them into the column's own type
|
- **Reliable cell editing for non-text columns** — editing a PostgreSQL cell whose type isn't text (integers, booleans, UUIDs, json/jsonb, timestamps, enums, numerics) now works; edited values are sent to PostgreSQL in text wire format so the server parses them into the column's own type
|
||||||
- **Recent connections fix** — the Recent strip no longer renders empty on first launch when the connections list hadn't loaded yet
|
- **Recent connections fix** — the Recent strip no longer renders empty on first launch when the connections list hadn't loaded yet
|
||||||
|
|||||||
@@ -59,12 +59,12 @@
|
|||||||
const isMobile = /Mobi|Android|iPhone|iPad|iPod/i.test(userAgent);
|
const isMobile = /Mobi|Android|iPhone|iPad|iPod/i.test(userAgent);
|
||||||
const keepLabel = downloadBtn.hasAttribute("data-download-label");
|
const keepLabel = downloadBtn.hasAttribute("data-download-label");
|
||||||
|
|
||||||
const releasesUrl = "https://git.ranio.xyz/adrianbonpin/gridline/releases";
|
const releasesUrl = "https://github.com/AdrianBonpin/gridline/releases";
|
||||||
const version = "0.8.0";
|
const version = "0.8.0";
|
||||||
|
|
||||||
if (isMobile) {
|
if (isMobile) {
|
||||||
downloadBtn.href = releasesUrl;
|
downloadBtn.href = releasesUrl;
|
||||||
if (!keepLabel) downloadBtn.textContent = "Get it on Gitea";
|
if (!keepLabel) downloadBtn.textContent = "Get it on GitHub";
|
||||||
} else if (isMac) {
|
} else if (isMac) {
|
||||||
downloadBtn.href = `${releasesUrl}/download/v${version}/Gridline_${version}_aarch64.dmg`;
|
downloadBtn.href = `${releasesUrl}/download/v${version}/Gridline_${version}_aarch64.dmg`;
|
||||||
if (!keepLabel) downloadBtn.textContent = "Download for macOS";
|
if (!keepLabel) downloadBtn.textContent = "Download for macOS";
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export const changelogEntries: ChangelogEntry[] = [
|
|||||||
date: "2026-09-04",
|
date: "2026-09-04",
|
||||||
highlights: [
|
highlights: [
|
||||||
"No more repeated macOS keychain prompts — saved connection passwords and SSH secrets are now ACL-pinned to the app's code signature when stored, so app upgrades never re-trigger the macOS keychain access dialog (users upgrading from older builds see one final prompt — choose Always Allow).",
|
"No more repeated macOS keychain prompts — saved connection passwords and SSH secrets are now ACL-pinned to the app's code signature when stored, so app upgrades never re-trigger the macOS keychain access dialog (users upgrading from older builds see one final prompt — choose Always Allow).",
|
||||||
"Install via Homebrew — add the Gitea tap (brew tap AdrianBonpin/gridline https://git.ranio.xyz/adrianbonpin/homebrew-gridline.git) and run brew install --cask gridline.",
|
"Install via Homebrew — add the Homebrew tap (brew tap AdrianBonpin/gridline https://github.com/AdrianBonpin/homebrew-gridline.git) and run brew install --cask gridline.",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import { describe, it, expect } from "vitest";
|
|||||||
import { faqItems } from "./faq";
|
import { faqItems } from "./faq";
|
||||||
|
|
||||||
describe("faqItems", () => {
|
describe("faqItems", () => {
|
||||||
it("has exactly 5 items", () => {
|
it("has exactly 6 items", () => {
|
||||||
expect(faqItems).toHaveLength(5);
|
expect(faqItems).toHaveLength(6);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("every item has a non-empty question and answer", () => {
|
it("every item has a non-empty question and answer", () => {
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ const isProd = import.meta.env.PROD;
|
|||||||
<link rel="manifest" href="/site.webmanifest" />
|
<link rel="manifest" href="/site.webmanifest" />
|
||||||
<link rel="preload" as="image" href="/og.png" />
|
<link rel="preload" as="image" href="/og.png" />
|
||||||
<link rel="preconnect" href="https://stat.ranio.xyz" crossorigin />
|
<link rel="preconnect" href="https://stat.ranio.xyz" crossorigin />
|
||||||
<link rel="preconnect" href="https://git.ranio.xyz" />
|
<link rel="preconnect" href="https://github.com" />
|
||||||
<link rel="dns-prefetch" href="https://stat.ranio.xyz" />
|
<link rel="dns-prefetch" href="https://stat.ranio.xyz" />
|
||||||
<link rel="dns-prefetch" href="https://git.ranio.xyz" />
|
<link rel="dns-prefetch" href="https://github.com" />
|
||||||
|
|
||||||
<meta property="og:title" content={title} />
|
<meta property="og:title" content={title} />
|
||||||
<meta property="og:description" content={description} />
|
<meta property="og:description" content={description} />
|
||||||
@@ -104,7 +104,7 @@ const isProd = import.meta.env.PROD;
|
|||||||
</a>
|
</a>
|
||||||
<div class="hidden md:flex items-center gap-6 text-sm">
|
<div class="hidden md:flex items-center gap-6 text-sm">
|
||||||
<a href="/#features" class="nav-link">Features</a>
|
<a href="/#features" class="nav-link">Features</a>
|
||||||
<a href="https://git.ranio.xyz/adrianbonpin/gridline" target="_blank" rel="noopener" class="nav-link">Gitea</a>
|
<a href="https://github.com/AdrianBonpin/gridline" target="_blank" rel="noopener" class="nav-link">GitHub</a>
|
||||||
<a href="/#download" data-download data-download-label class="nav-link">Download</a>
|
<a href="/#download" data-download data-download-label class="nav-link">Download</a>
|
||||||
<button id="theme-toggle" class="p-2 rounded-full hover:bg-[var(--surface-elevated)] transition-colors" aria-label="Toggle theme">
|
<button id="theme-toggle" class="p-2 rounded-full hover:bg-[var(--surface-elevated)] transition-colors" aria-label="Toggle theme">
|
||||||
<span class="theme-icon-sun hidden">☀</span>
|
<span class="theme-icon-sun hidden">☀</span>
|
||||||
@@ -139,9 +139,9 @@ const isProd = import.meta.env.PROD;
|
|||||||
<div>
|
<div>
|
||||||
<h4 class="font-semibold text-sm mb-4">Project</h4>
|
<h4 class="font-semibold text-sm mb-4">Project</h4>
|
||||||
<ul class="space-y-2 text-sm text-[var(--text-muted)]">
|
<ul class="space-y-2 text-sm text-[var(--text-muted)]">
|
||||||
<li><a href="https://git.ranio.xyz/adrianbonpin/gridline" target="_blank" rel="noopener" class="footer-link">Gitea</a></li>
|
<li><a href="https://github.com/AdrianBonpin/gridline" target="_blank" rel="noopener" class="footer-link">GitHub</a></li>
|
||||||
<li><a href="https://git.ranio.xyz/adrianbonpin/gridline/issues" target="_blank" rel="noopener" class="footer-link">Issues</a></li>
|
<li><a href="https://github.com/AdrianBonpin/gridline/issues" target="_blank" rel="noopener" class="footer-link">Issues</a></li>
|
||||||
<li><a href="https://git.ranio.xyz/adrianbonpin/gridline/src/branch/prod/ROADMAP.md" target="_blank" rel="noopener" class="footer-link">Roadmap</a></li>
|
<li><a href="https://github.com/AdrianBonpin/gridline/blob/prod/ROADMAP.md" target="_blank" rel="noopener" class="footer-link">Roadmap</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ describe("seo builders", () => {
|
|||||||
applicationCategory: "DeveloperApplication",
|
applicationCategory: "DeveloperApplication",
|
||||||
offersPrice: 0,
|
offersPrice: 0,
|
||||||
offersCurrency: "USD",
|
offersCurrency: "USD",
|
||||||
downloadUrl: "https://git.ranio.xyz/adrianbonpin/gridline/releases",
|
downloadUrl: "https://github.com/AdrianBonpin/gridline/releases",
|
||||||
});
|
});
|
||||||
expect(ld["@type"]).toBe("SoftwareApplication");
|
expect(ld["@type"]).toBe("SoftwareApplication");
|
||||||
expect(ld.name).toBe("Gridline");
|
expect(ld.name).toBe("Gridline");
|
||||||
@@ -43,10 +43,10 @@ describe("seo builders", () => {
|
|||||||
name: "Gridline",
|
name: "Gridline",
|
||||||
url: "https://getgridline.app/",
|
url: "https://getgridline.app/",
|
||||||
logo: "https://getgridline.app/gridline-icon.svg",
|
logo: "https://getgridline.app/gridline-icon.svg",
|
||||||
sameAs: ["https://git.ranio.xyz/adrianbonpin/gridline"],
|
sameAs: ["https://github.com/AdrianBonpin/gridline"],
|
||||||
});
|
});
|
||||||
expect(ld["@type"]).toBe("Organization");
|
expect(ld["@type"]).toBe("Organization");
|
||||||
expect(ld.sameAs).toContain("https://git.ranio.xyz/adrianbonpin/gridline");
|
expect(ld.sameAs).toContain("https://github.com/AdrianBonpin/gridline");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("buildWebSiteJsonLd includes SearchAction", () => {
|
it("buildWebSiteJsonLd includes SearchAction", () => {
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ const jsonLd = [
|
|||||||
|
|
||||||
<p class="mt-8 text-sm text-[var(--text-muted)]">
|
<p class="mt-8 text-sm text-[var(--text-muted)]">
|
||||||
Full release history on{" "}
|
Full release history on{" "}
|
||||||
<a href="https://git.ranio.xyz/adrianbonpin/gridline/releases" target="_blank" rel="noopener" class="text-[var(--primary)] hover:text-[var(--primary-hover)]">
|
<a href="https://github.com/AdrianBonpin/gridline/releases" target="_blank" rel="noopener" class="text-[var(--primary)] hover:text-[var(--primary-hover)]">
|
||||||
Gitea Releases
|
GitHub Releases
|
||||||
</a>.
|
</a>.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const jsonLd = [
|
|||||||
applicationCategory: "DeveloperApplication",
|
applicationCategory: "DeveloperApplication",
|
||||||
offersPrice: 0,
|
offersPrice: 0,
|
||||||
offersCurrency: "USD",
|
offersCurrency: "USD",
|
||||||
downloadUrl: "https://git.ranio.xyz/adrianbonpin/gridline/releases",
|
downloadUrl: "https://github.com/AdrianBonpin/gridline/releases",
|
||||||
}),
|
}),
|
||||||
buildFaqJsonLd(faqItems),
|
buildFaqJsonLd(faqItems),
|
||||||
buildOrganizationJsonLd({
|
buildOrganizationJsonLd({
|
||||||
@@ -36,7 +36,7 @@ const jsonLd = [
|
|||||||
url: `${site}/`,
|
url: `${site}/`,
|
||||||
logo: `${site}/gridline-icon.svg`,
|
logo: `${site}/gridline-icon.svg`,
|
||||||
sameAs: [
|
sameAs: [
|
||||||
"https://git.ranio.xyz/adrianbonpin/gridline",
|
"https://github.com/AdrianBonpin/gridline",
|
||||||
"https://x.com/AdrianBonpin",
|
"https://x.com/AdrianBonpin",
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
@@ -73,11 +73,11 @@ const jsonLd = [
|
|||||||
Query, explore, sync, and edit PostgreSQL, MySQL, SQLite, and Redis, with no paywalls, no tab limits, no account required.
|
Query, explore, sync, and edit PostgreSQL, MySQL, SQLite, and Redis, with no paywalls, no tab limits, no account required.
|
||||||
</p>
|
</p>
|
||||||
<div class="mt-8 flex flex-wrap items-center justify-center gap-3">
|
<div class="mt-8 flex flex-wrap items-center justify-center gap-3">
|
||||||
<a id="download" href="https://git.ranio.xyz/adrianbonpin/gridline/releases" class="primary-btn" data-download>
|
<a id="download" href="https://github.com/AdrianBonpin/gridline/releases" class="primary-btn" data-download>
|
||||||
Download
|
Download
|
||||||
</a>
|
</a>
|
||||||
<a href="https://git.ranio.xyz/adrianbonpin/gridline" target="_blank" rel="noopener" class="ghost-btn">
|
<a href="https://github.com/AdrianBonpin/gridline" target="_blank" rel="noopener" class="ghost-btn">
|
||||||
View on Gitea
|
View on GitHub
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -181,8 +181,8 @@ const jsonLd = [
|
|||||||
Gridline is Apache 2.0 and developed openly. Contributions, issues, and feature requests are welcome.
|
Gridline is Apache 2.0 and developed openly. Contributions, issues, and feature requests are welcome.
|
||||||
</p>
|
</p>
|
||||||
<div class="flex flex-wrap items-center justify-center gap-3">
|
<div class="flex flex-wrap items-center justify-center gap-3">
|
||||||
<a href="https://git.ranio.xyz/adrianbonpin/gridline" target="_blank" rel="noopener" class="ghost-btn">
|
<a href="https://github.com/AdrianBonpin/gridline" target="_blank" rel="noopener" class="ghost-btn">
|
||||||
Star on Gitea
|
Star on GitHub
|
||||||
</a>
|
</a>
|
||||||
<a href="https://ko-fi.com/adrianbonpin" target="_blank" rel="noopener" class="ghost-btn">
|
<a href="https://ko-fi.com/adrianbonpin" target="_blank" rel="noopener" class="ghost-btn">
|
||||||
☕ Support on Ko-fi
|
☕ Support on Ko-fi
|
||||||
|
|||||||
Reference in New Issue
Block a user