Skip to content

Reorganize site with modern landing page and interactive SQL demo#59

Open
sdanyliv wants to merge 8 commits into
masterfrom
refactor/site-reorganization
Open

Reorganize site with modern landing page and interactive SQL demo#59
sdanyliv wants to merge 8 commits into
masterfrom
refactor/site-reorganization

Conversation

@sdanyliv

Copy link
Copy Markdown
Member

Summary

  • Reorganize site into three main sections: Documentation, Articles, API
  • Modern landing page with gradient hero, .NET Foundation badge, and interactive SQL demo
  • 7 tabbed demo examples showing real SQL generated by linq2db: Query, Associations, ExpressionMethod, CTE, Window Functions, Merge, Temp Table
  • Edit this page links enabled for documentation pages (disabled for auto-generated API docs)
  • Maintenance guide for rebuilding/extending demo tabs at tools/sql-demo/README.md

Screenshots

Dark Mode

Dark Mode

Light Mode

Light Mode

Test plan

  • Verify all 7 demo tabs switch correctly
  • Check Documentation, Articles, API navigation links work
  • Verify edit links appear on documentation pages but not API pages
  • Test responsive layout on mobile/tablet viewports
  • Verify dark/light mode theme switching

🤖 Generated with Claude Code

sdanyliv and others added 8 commits April 10, 2026 13:56
- 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 &#10; 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>
@sdanyliv sdanyliv moved this from Todo to In Review in PR Review Queue Jun 14, 2026
@sdanyliv sdanyliv self-assigned this Jun 14, 2026
@sdanyliv sdanyliv requested a review from MaceWindu June 14, 2026 21:10

@MaceWindu MaceWindu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.
  • Order entity and Product.CreatedAt in SqlDemoGenerator.cs are unused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Review

Development

Successfully merging this pull request may close these issues.

2 participants