Repository navigation
docs(main): redesign landing page with product index and responsive layout - #165
Conversation
Rewrite the site landing page (content/main/modules/ROOT/pages/index.adoc) as a product index: a getting-started highlight area (oCIS install guide, join.owncloud.com community hub, oCIS Field Guide) and one section per product with a short description and a link to its documentation. The old feature-comparison table and long prose are condensed into the product descriptions; page aliases and the single-H1/metadata conventions are kept. Add antora-extensions/landing-versions.js, which generates one version-list partial per multi-version component into the content catalog at contentClassified; the page includes them via include::partial$generated-versions-<component>.adoc[]. The lists are derived from the catalog, so they update automatically when versions are added, display_version labels change, or a prerelease graduates to GA. Product links use version-less xrefs and resolve to the latest stable version. Update the llms.txt landing label to match the new H1. Add extension-tests/landing-versions.test.js with five build-output guard tests covering the generated version links, link targets, latest-stable product links, metadata/aliases, and highlight links. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> Signed-off-by: David Walter <david.walter@kiteworks.com>
Make the redesigned landing page fit on one desktop screen and adapt to narrow viewports. The six product sections render as cards in a responsive grid (three columns on wide screens, fewer on narrow ones, one on phones), the getting-started highlights as a compact card row, and each product's generated version list as inline chips instead of a vertical list. The page sets :role: landing-page, which the custom layouts/default.hbs copies onto <body class="article landing-page">; every rule in the new ui/supplemental/css/landing-page.css is scoped to body.landing-page, so no other page is affected. The stylesheet is linked from partials/head-styles.hbs after owncloud.css, and all layout rules are wrapped in @media screen so print keeps the stock stacked layout. The article column widens from 46rem to 60rem on the landing page only, to fit three card columns; the intro paragraph keeps the 46rem measure. Document the mechanism in ui/AGENTS.md (new UI Supplemental CSS section) and guard it with extension-tests/landing-page-ui.test.js: the role and stylesheet link on the landing page, stylesheet publication, full scoping of its rules, and no role leakage to other pages. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> Signed-off-by: David Walter <david.walter@kiteworks.com>
- Remove the table of contents from the landing page: drop the :toc: attribute (removes the inline AsciiDoc TOC) and hide aside.toc.sidebar and aside.toc.embedded in landing-page.css, because the stock UI builds the sidebar TOC client-side from the page headings and clones it into an embedded in-body copy for narrow screens. - Expand the whole left navigation on startup on the landing page via the new ui/supplemental/js/nav-expand.js: the stock site.js expands only the current page's branch (is-active on its ancestors), which left the product groups collapsed. The script adds is-active to every .nav-item, scoped to body.landing-page via the page's :role: landing-page attribute; per-item toggles keep working. - Rework content/main/modules/ROOT/partials/nav.adoc: rename the top item Overview to Release Notes (the release-notes subtree under it is kept) and regroup the product links into oCIS (oCIS Server, oCIS Web Client, MCP Server (coming soon) -- placeholder without a link, no MCP docs exist yet), Classic (Classic Server, Classic Web -> the server classic_ui module), and Apps & Clients (Desktop Client, Android App, iOS App). Product links keep using the latest-*-version attributes, so they follow version rollovers. Guard with three new tests in extension-tests/landing-page-ui.test.js (no TOC in source or output, nav rename/regroup with latest-version hrefs and resolvable links, nav-expand.js wiring) and document the mechanisms in ui/AGENTS.md. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> Signed-off-by: David Walter <david.walter@kiteworks.com>
…e Release Notes, move How to Contribute to top level
Restructure the landing page left menu to mirror the product structure:
- Add a 'Documentation by Product' section above the product groups
(oCIS: Server, Web Client, MCP Server (coming soon); Classic: Server,
Web; Apps & Clients: Desktop, Android, iOS), linking each product to
its latest-version docs via {latest-*-version} attributes.
- Reorganize 'Release Notes' (formerly 'Overview') to the same
oCIS/Classic/Apps & Clients grouping, dropping the intermediate
'Server Releases'/'App Releases' levels.
- Move 'How to Contribute' to a top-level entry at the bottom of the
menu. An empty comment block terminates the previous list so the
entry starts a fresh untitled list; Antora's nav builder wraps it in
an empty parent whose depth-0 list is the :first-child, so the stock
CSS renders it at top-level indentation.
- The table of contents was already removed from the landing page in
the previous round (no :toc: attribute, CSS hides aside.toc, no inline
TOC in the built page); re-verified.
Replace the substring-based nav test with a full structural assertion:
parse the rendered nav into a {href, text, children} tree via the
data-depth attributes and deep-equal it against the expected product
structure, and assert every nav href resolves in public/.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
Signed-off-by: David Walter <david.walter@kiteworks.com>
- Nav: rename the top item Release Notes to Releases, and drop the redundant product prefixes inside each group, since the group label already carries the product: oCIS/Classic items are now Releases and Release Notes, and the Apps & Clients items are Desktop App, iOS App, and Android App (the Release Notes suffix is implied by the Releases parent). The Releases/Release Notes distinction is kept — two identical 'Releases' entries in one group would be indistinguishable. - Landing page: condense each of the six product descriptions under Documentation by Product from two sentences to one, keeping the SEO phrases (ownCloud Infinite Scale, oCIS, cloud-native, file sync and share, ownCloud Classic, desktop app, mobile app) and the audience clause. Cards shrink accordingly. - Update the structural nav test to the new labels. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> Signed-off-by: David Walter <david.walter@kiteworks.com>
Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> Signed-off-by: David Walter <david.walter@kiteworks.com>
|
|
|
@dj4oC the integration of the To proceed, two things are needed:
|
I like the idea on an integration.
This would need some extra work. I don't want to put the pipeline and creation of it public.
Right now, this is not my priority. My priority is got the the onboarding of the community as easy as possible. Therefore we need to remove hurds such as non self explanatory UI. |
|
Ok, understood. |
Redesigns the doc.owncloud.com landing page (
content/main/modules/ROOT/pages/index.adoc) into a proper entry point for all ownCloud products, their versions, and the most important getting-started resources.What changed
index.adoc): H1 "ownCloud Documentation", an abstract stating what the page is, a Get Started highlight area (oCIS install guide, join.owncloud.com community hub, oCIS Field Guide), and six product sections (ownCloud Infinite Scale, ownCloud Classic, Desktop App, Android App, iOS App, ownCloud Web), each with a one-sentence description and a link to the component's documentation start page. The old prose wall and feature-comparison table are gone; SEO phrases are kept naturally in headings, card text, and the:description:(141 chars).antora-extensions/landing-versions.jsgenerates one version-list partial per multi-version component into the content catalog at build time (contentClassified, registered insite.yml), so the per-version links (e.g. oCIS9.0 (dev)/8.2/8.1) update automatically when a version is added, relabeled, or graduates from prerelease. No hardcoded version list anywhere. Product links use version-lessxrefs and resolve to the latest GA version, so they survive version bumps.:role: landing-page, which the customui/supplemental/layouts/default.hbscopies onto<body>; the newui/supplemental/css/landing-page.css(every rule scoped tobody.landing-page) renders the product sections as a responsive card grid (auto-fit, minmax(min(100%, 15rem), 1fr)), the highlights as a card row, and the version lists as inline chips, all inside@media screenso print keeps the stock layout.content/main/modules/ROOT/partials/nav.adoc): the landing page has no table of contents (the stock UI builds it client-side, solanding-page.csshidesaside.toc.sidebar/aside.toc.embedded), the menu starts expanded (ui/supplemental/js/nav-expand.jsaddsis-activeto all.nav-items on this page only), and the menu is restructured as Releases by Product (oCIS / Classic / Apps & Clients release and release-notes pages) and Documentation by Product (oCIS: Server, Web Client, MCP Server (coming soon); Classic: Server, Web; Apps & Clients: Desktop, Android, iOS — all at latest GA via{latest-*-version}), with How to Contribute as a top-level entry at the bottom.extension-tests/landing-versions.test.js(5 tests) andextension-tests/landing-page-ui.test.js(7 tests), including a structuraldeepEqualof the rendered nav tree and version-list checks whose expectations are derived fromsite.ymlstart_paths+antora.yml(never hardcoded).ui/AGENTS.mddocuments the role-scoping and nav-expand mechanisms.Verification
npm run antorabuilds clean (exit 0; only pre-existing unrelated warnings).npm test: 65 tests, 64 pass, 0 fail, 1 pre-existing skip (skip confirmed pre-existing via stash baseline).public/.next@docs::index.adoc,next@docs_main::index.adocredirect stubs published.Notes / tech debt
client_releases.adoc("ownCloud App and Client Releases") is no longer referenced from the nav after the regroup — the page stays published; could be linked under Apps & Clients in a follow-up.join.owncloud.comcurrently 301s tohttps://owncloud.dev/join/; kept as the community-hub URL.site.js/CSS contract, worth a visual check in a browser.All commits are GPG-signed and DCO-signed-off.