From 43c431a793affe2fa41ead816268d6af760f72d0 Mon Sep 17 00:00:00 2001 From: Leitwolf11 <238872178+Leitwolf11@users.noreply.github.com> Date: Sun, 18 Oct 2026 01:45:32 +0300 Subject: [PATCH] Give each site a calm landing page with a "Why" section tala.run, talac.tala.run and tazel.tala.run now each open on a landing page of their own. talac.tala.run and tazel.tala.run used to redirect "/" to their first documentation topic. Every landing page has one headline, two ways in, a "Why Tala?", "Why Talac?" or "Why Tazel?" section of tabs over one code panel, and a short row of next links. The tabs follow the ARIA tabs pattern: arrow keys, Home and End move between them. The code panel stays left to right on the Hebrew pages and has a copy button. Every sample is something that works today. The Tala tabs show HelloWorld and PrimeNumbers, which are copies of Examples/ (a test compares them), a small program that shows an argument evaluated by need, the LLVM IR that talac -O2 made of the gcd loop of Examples/GCD, and a Tazel project file. The Talac tabs show the terminal output of talac 0.6.0 for one command, --emit=metadata, each --emit stage, the optimized IR and a type error. The Tazel tabs show the project file, the everyday commands, target selection, lock graph and a did-you-mean hint. Of the fifteen programs in Examples/, talac 0.6.0 builds four (HelloWorld, GCD, PrimeNumbers, CollatzTrace), so the classes, generators and pattern matching of the others are not shown yet. The old home page said in nearly every paragraph that the work was unfinished, linked "Why Tala?" three times, and numbered its sections. It is gone. The state of the project is said once, as a small badge beside the name in the header. The header no longer repeats a Home link, since the name leads home. On talac and tazel it lists their documentation topics. Styles that only the old home page used are removed. The titles and descriptions of "/" come from the landing content of each site, and the talac and tazel sitemaps list "/". The tests follow: siteHome is "/" everywhere, the tazel canonical path is "/", and the example comparison reads the landing samples. --- frontend/public/hosts/talac/sitemap.xml | 5 + frontend/public/hosts/tazel/sitemap.xml | 5 + frontend/src/App.vue | 20 +- frontend/src/components/WhyTabs.vue | 97 +++ frontend/src/content/landing.ts | 752 ++++++++++++++++++++++++ frontend/src/main.ts | 17 +- frontend/src/pages/HomePage.vue | 336 ----------- frontend/src/pages/LandingPage.vue | 58 ++ frontend/src/seo.ts | 43 +- frontend/src/site.ts | 6 +- frontend/src/styles/site.css | 357 +++++------ frontend/tests/site-integrity.test.mjs | 35 +- frontend/tests/sites.test.mjs | 7 +- 13 files changed, 1126 insertions(+), 612 deletions(-) create mode 100644 frontend/src/components/WhyTabs.vue create mode 100644 frontend/src/content/landing.ts delete mode 100644 frontend/src/pages/HomePage.vue create mode 100644 frontend/src/pages/LandingPage.vue diff --git a/frontend/public/hosts/talac/sitemap.xml b/frontend/public/hosts/talac/sitemap.xml index 47937fa..9697332 100644 --- a/frontend/public/hosts/talac/sitemap.xml +++ b/frontend/public/hosts/talac/sitemap.xml @@ -2,6 +2,11 @@ + + https://talac.tala.run/ + monthly + 1.0 + https://talac.tala.run/docs/command-line monthly diff --git a/frontend/public/hosts/tazel/sitemap.xml b/frontend/public/hosts/tazel/sitemap.xml index 6623a07..c2bb90d 100644 --- a/frontend/public/hosts/tazel/sitemap.xml +++ b/frontend/public/hosts/tazel/sitemap.xml @@ -2,6 +2,11 @@ + + https://tazel.tala.run/ + monthly + 1.0 + https://tazel.tala.run/docs/commands monthly diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 0f2ae03..79a418b 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -6,7 +6,8 @@ import { computed } from "vue"; import { RouterLink, RouterView } from "vue-router"; import { localeLabels } from "./locales"; import { locale, supportedLocales, theme } from "./preferences"; -import { forumUrl, site, siteHome, siteUrl, type Site } from "./site"; +import { contentRoutes } from "./content/routes"; +import { forumUrl, site, siteHome, siteTopics, siteUrl, type Site } from "./site"; const labels = { "en-US": { @@ -70,6 +71,14 @@ const siblings = (["language", "talac", "tazel"] as const) href: siteUrl(other, siteHome[other], hostname), })); +// Talac and Tazel list their documentation topics in the header, by the names their sidebars use. +const topicLinks = computed(() => + siteTopics[site].map((path) => { + const route = contentRoutes[site].find((candidate) => candidate.path === path); + return { path, label: route ? route.topic[locale.value].nav : path }; + }), +); + function toggleTheme() { theme.value = theme.value === "dark" ? "light" : "dark"; } @@ -79,17 +88,22 @@ function toggleTheme() {