Reorganize site with modern landing page and interactive SQL demo#59
Reorganize site with modern landing page and interactive SQL demo#59sdanyliv wants to merge 8 commits into
Conversation
- Create landing page with hero section and three main navigation cards - Move guide content from articles/ to new documentation/ section with hub page - Repurpose articles/ for blog/news content (Release Notes) - Add Documentation to top-level navigation - Update docfx.json content globs for new structure - Add custom CSS for card layouts, navbar logo sizing, and hover effects - Add CLAUDE.md with project guidance Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Redesign hero section with dark gradient background and split layout - Add syntax-highlighted C# code sample with terminal-style chrome - Replace basic Bootstrap cards with custom styled navigation cards - Add four-column feature highlights with gradient icon badges - Full-width sections breaking out of DocFX container - Dark/light mode aware via CSS variables - Responsive layout with mobile-first breakpoints - Fix code block formatting (use entities to prevent paragraph wrapping) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove global _disableContribution flag - Add _gitContribute pointing to linq2db/docs repo on master branch - Disable edit links on API pages only (auto-generated, not hand-edited) - Documentation pages now show "Edit this page" linking to GitHub source Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Query: basic WHERE + ORDER BY + SELECT - Associations: navigation properties → LEFT JOIN + subquery COUNT - ExpressionMethod: reusable [ExpressionMethod] with let keyword - CTE: named CTE reused in both join and subquery - Window Functions: ROW_NUMBER, RANK, SUM OVER with PARTITION BY - Merge: MERGE INTO with WHEN MATCHED/NOT MATCHED (SQL Server) - Temp Table: CreateTempTable with Enumerable.Range + join All SQL is real output from linq2db's ToSqlQuery() API. Tabs use pure CSS (radio inputs + :checked selectors, no JavaScript). Add tools/sql-demo/ with SqlDemoGenerator.cs test file and README.md maintenance guide for extending/rebuilding demo tabs. Update CLAUDE.md with new site structure and demo docs reference. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace generic badge with linked .NET Foundation member badge - Add hover effects and checkmark icon to badge - Links to https://dotnetfoundation.org/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Disable contribution/edit link on landing page via frontmatter - Reduce hero padding from 5rem/4rem to 3rem/2.5rem - Reduce title font size from 3.5rem to 3rem - Tighten subtitle line-height and margins - Reduce cards and features section padding Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix CI build failure — submodule update during local development accidentally advanced LinqToDB.Identity and linq2db pointers to commits not reachable via shallow clone in Azure Pipelines. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MaceWindu
left a comment
There was a problem hiding this comment.
Review of the site reorg + landing page. Structure is sound — pure-CSS radio/label tabs (7 inputs ↔ 7 panels ↔ 7 :checked pairs, all consistent), dark/light via Bootstrap CSS vars, clean renames (articles/ → documentation/), net-zero submodule change. Two blocking items, rest is polish.
BLOCKING · 1 — Remove the .NET Foundation Member badge
linq2db has retired from the .NET Foundation, so this hero badge in source/index.md is now a false claim (only .NET Foundation reference in the PR):
-<a href="https://dotnetfoundation.org/" class="landing-badge mb-3"><i class="bi bi-patch-check-fill"></i> .NET Foundation Member</a>Drop the anchor. The .landing-badge rules in main.css then go unused — delete them too, or repurpose the badge for something current (MIT / Open Source).
BLOCKING · 2 — SqlDemoGenerator.TempTableDemo can't reproduce the Temp Table tab
tools/sql-demo/README.md presents SqlDemoGenerator.cs as the reproducible source of the displayed SQL. But TempTableDemo() is a group-by aggregation with no temp table at all — unrelated to the tab, which shows CreateTempTable("#FilterIds", …) + BulkCopy + join. A maintainer copying it back per the guide gets wrong output. Either implement the real CreateTempTable path or remove the method and state in the guide that this tab has no generator.
MINOR · 3 — WindowFunctions generator drifts from its tab
WindowFunctions() computes three window columns (RowNum, Rank, Total); the tab shows only RowNum and Total. Align them.
MINOR · 4 — MergeDemo calls ToSqlQuery on the un-finalized builder
The tab code ends with .Merge(); the generator omits it and calls merge.ToSqlQuery(...) on the IMergeable builder. Confirm that path actually emits the displayed MERGE INTO … — otherwise it's another non-reproducing reference.
MINOR · 5 — "Real SQL" claim is fragile
The displayed SQL is hand-re-indented HTML; nothing keeps it in sync with the generator after merge. Soften the README from "real output" to "based on real output, hand-formatted."
MINOR · 6 — Edit-link suppression covers .yml only
docfx.json fileMetadata._disableContribution targets api/**/**.yml. The PR body says edit links are disabled for auto-generated API docs — confirm API output is yml-only, else any generated api/**/*.md / toc.yml still renders an edit link to uneditable content.
Nits
- A11y: radio/label tabs work with arrow keys but lack
role="tablist/tab/tabpanel"/aria-selected; screen readers announce them as radios. Orderentity andProduct.CreatedAtinSqlDemoGenerator.csare unused.
Summary
tools/sql-demo/README.mdScreenshots
Dark Mode
Light Mode
Test plan
🤖 Generated with Claude Code