mirror of
https://github.com/apache/superset.git
synced 2026-05-22 08:15:36 +00:00
Copilot flagged two stragglers on editors.md where the previous file-by-file conversion stopped halfway. Sweeping for the same pattern across the active content tree found 76 bare relative internal links total — 14 in this PR's already-modified files (Copilot's two plus twelve more) and 62 in unchanged files. Why the build doesn't catch this ───────────────────────────────── `onBrokenLinks: 'throw'` (set in this PR) only validates *file-based* markdown references — links whose URL ends in `.md` / `.mdx`. Those go through Docusaurus's file resolver, which can prove the target exists. Bare relative URL paths like `[Foo](../foo)` skip that resolver entirely; Docusaurus emits them as raw hrefs. The browser then resolves them against the *current* page URL, and for trailing-slash routes that almost always lands in the wrong directory. Page navigates client-side and 404s. The linkinator job in CI *can* catch these, but it's `continue-on-error: true` so findings are advisory. What this commit does ────────────────────── 1. Fix all 76 bare relative internal links across the active docs tree by appending `.md` to each one (preserving anchors / query strings). All 76 targets resolved to real files; no link targets changed, only the form of the reference. 2. Fix the component-page generator. 54 of the 76 bare links lived in two auto-generated index files (`components/ui/index.mdx` and `components/design-system/index.mdx`). The next regeneration would have undone the manual fixes without this. The two emission sites in `generate-superset-components.mjs` now emit `.md`-suffixed links; comment at the call site explains why. 3. Add `docs/scripts/lint-docs-links.mjs` — fast source-level linter that scans `.md`/`.mdx` files under the active content trees (skipping `versioned_docs/` snapshots) and fails if it finds any markdown link whose URL starts with `./` or `../` and does not end in `.md`/`.mdx`. Excludes asset paths (.png, .json, etc.) and ignores fenced code blocks. Wired up as `yarn lint:docs-links`. 4. Add a `Lint docs links` step to `superset-docs-verify.yml`, running before the build step so PRs that introduce the pattern fail in seconds rather than at build-time / not at all. Blocking, not advisory — exactly the gap linkinator's `continue-on-error` leaves open. Verified ──────── - `yarn lint:docs-links` exits 0 on the cleaned tree - Re-introducing one bare link makes the linter report the exact file:line with the offending URL, exit code 1 - All 76 originally-flagged targets resolved to real `.md` / `.mdx` files; only the form of the reference changed
71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
---
|
|
title: UI Components Overview
|
|
sidebar_label: Overview
|
|
sidebar_position: 0
|
|
---
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
|
|
import { ComponentIndex } from '@site/src/components/ui-components';
|
|
import componentData from '@site/static/data/components.json';
|
|
|
|
# UI Components
|
|
|
|
<ComponentIndex data={componentData} />
|
|
|
|
---
|
|
|
|
## Design System
|
|
|
|
A design system is a complete set of standards intended to manage design at scale using reusable components and patterns.
|
|
|
|
The Superset Design System uses [Atomic Design](https://bradfrost.com/blog/post/atomic-web-design/) principles with adapted terminology:
|
|
|
|
| Atomic Design | Atoms | Molecules | Organisms | Templates | Pages / Screens |
|
|
|---|:---:|:---:|:---:|:---:|:---:|
|
|
| **Superset Design** | Foundations | Components | Patterns | Templates | Features |
|
|
|
|
<img src="/img/atomic-design.png" alt="Atoms = Foundations, Molecules = Components, Organisms = Patterns, Templates = Templates, Pages / Screens = Features" style={{maxWidth: '100%'}} />
|
|
|
|
## Usage
|
|
|
|
All components are exported from `@superset-ui/core/components`:
|
|
|
|
```tsx
|
|
import { Button, Modal, Select } from '@superset-ui/core/components';
|
|
```
|
|
|
|
## Contributing
|
|
|
|
This documentation is auto-generated from Storybook stories. To add or update component documentation:
|
|
|
|
1. Create or update the component's `.stories.tsx` file
|
|
2. Add a descriptive `title` and `description` in the story meta
|
|
3. Export an interactive story with `args` for configurable props
|
|
4. Run `yarn generate:superset-components` in the `docs/` directory
|
|
|
|
:::info Work in Progress
|
|
This component library is actively being documented. See the [Components TODO](./TODO.md) page for a list of components awaiting documentation.
|
|
:::
|
|
|
|
---
|
|
|
|
*Auto-generated from Storybook stories in the [Design System/Introduction](https://github.com/apache/superset/blob/master/superset-frontend/packages/superset-ui-core/src/components/DesignSystem.stories.tsx) story.*
|