Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/external-api/mcp-prompts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ Picking `explain_table` from your client's prompt menu makes TablePro read the t

The result is a `description` and one user message. Argument values must be scalars: a number or a boolean is read as its text, an array or object is rejected. An argument the prompt does not declare is rejected with `-32602`, as is a missing required one.

<MCPGates what="render" /> The read is recorded in the activity log.
<MCPGates what="render" />

The read is recorded in the activity log.

## Shared arguments

Expand Down
6 changes: 5 additions & 1 deletion docs/external-api/mcp-resources.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ description: Read-only resources for connections, schema, tables, and query hist

import MCPGates from "/snippets/mcp-gates.mdx";

Eight URIs, all read-only, all JSON. A client reads them to find its way around before it calls a tool. <MCPGates what="read" /> Reads count against the caller's [request rate](/external-api/tokens#rate-limits) like anything else.
Eight URIs, all read-only, all JSON. A client reads them to find its way around before it calls a tool.

<MCPGates what="read" />

Reads count against the caller's [request rate](/external-api/tokens#rate-limits) like anything else.

## Discovery

Expand Down
4 changes: 3 additions & 1 deletion docs/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ Its driver is probably not installed yet. The database type chooser badges regis
</Accordion>

<Accordion title="Why does a driver need downloading?">
<DriverCounts /> Each one must match the SHA-256 checksum in the registry manifest and carry a valid code signature before it loads.
<DriverCounts />

Each one must match the SHA-256 checksum in the registry manifest and carry a valid code signature before it loads.
</Accordion>

<Accordion title="Why does a plugin need updating after I update the app?">
Expand Down
4 changes: 3 additions & 1 deletion docs/features/change-tracking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ description: Queue cell edits, row inserts and deletions, review the SQL, then s

import StagedUntilSave from "/snippets/staged-until-save.mdx";

<StagedUntilSave what="Cell edits, inserts and deletes" /> The toolbar counts what is pending, modified cells stay highlighted, `Cmd+Shift+P` shows the statements the queue will produce, and `Cmd+S` runs them. The queue belongs to the tab, so switching tabs leaves it alone.
<StagedUntilSave what="Cell edits, inserts and deletes" />

The toolbar counts what is pending, modified cells stay highlighted, `Cmd+Shift+P` shows the statements the queue will produce, and `Cmd+S` runs them. The queue belongs to the tab, so switching tabs leaves it alone.

<Frame caption="Data grid with pending changes highlighted">
<img className="block dark:hidden" src="/images/change-tracking.png" alt="Pending edits, inserts, and deletions highlighted in the data grid" />
Expand Down
4 changes: 3 additions & 1 deletion docs/features/plugins.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ description: Install database drivers, import and export formats, and themes fro

import DriverCounts from "/snippets/driver-counts.mdx";

Pick a database type badged **Not Installed** in the chooser and the download runs before the connection opens, with no restart. <DriverCounts />
Pick a database type badged **Not Installed** in the chooser and the download runs before the connection opens, with no restart.

<DriverCounts />

## Bundled plugins

Expand Down
4 changes: 3 additions & 1 deletion docs/features/table-structure.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ Right-click a foreign key and choose **Open [table]** to jump to the referenced

## Saving changes

<StagedUntilSave what="Column, index and key changes" /> [Change Tracking](/features/change-tracking) covers the queue, undo (`Cmd+Z`) and redo (`Cmd+Shift+Z`). A save runs on the tab's own connection, database, and schema, the ones it was opened on, and never moves the sidebar or the toolbar.
<StagedUntilSave what="Column, index and key changes" />

[Change Tracking](/features/change-tracking) covers the queue, undo (`Cmd+Z`) and redo (`Cmd+Shift+Z`). A save runs on the tab's own connection, database, and schema, the ones it was opened on, and never moves the sidebar or the toolbar.

- **Save Changes** (`Cmd+S` or the toolbar checkmark) applies the queue. Changes that can lose data, dropping a column, changing a type, adding NOT NULL, changing the primary key, first show a confirmation listing each one.
- **Preview SQL** (`Cmd+Shift+P`) shows the generated statements without executing them.
Expand Down
35 changes: 22 additions & 13 deletions docs/scripts/check-links.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,22 @@ def nav_pages(node, out, collecting=False):


IMPORT = re.compile(r'^import\s+(\w+)\s+from\s+"(/snippets/[^"]+)"', re.M)
CONTINUES = re.compile(r"^[,;:)]|^(and|or|but|so|then|which|while|with)\b")


def check_snippets(path, raw, failures):
"""A snippet may end a line, but the sentence may not carry on past it.

Snippets are block content: several sentences, sometimes a markdown link that wraps. Starting a
new sentence after one on the same line renders fine. Continuing the same sentence does not:
`features/query-results.mdx` shipped `<RowCap />, and ...`, which built green under
`mint validate` and returned HTTP 500 in production.
"""A snippet has to be the only thing on its line.

A snippet is block content: several sentences, sometimes a table, sometimes a markdown link
that wraps. Mintlify renders it as a block, and any prose sharing the line with it returns
HTTP 500 in production while `mint validate` and the Mintlify deploy both report success.

An earlier version of this check only rejected text that carried the SAME sentence past the
snippet, on the premise that "starting a new sentence after one on the same line renders fine".
That premise was wrong. `features/table-structure.mdx` was edited to start a new sentence and
kept returning 500, and six other pages were down for the same reason: four with a new sentence
after the snippet, one with a markdown link after it, and `features/plugins.mdx` with prose
BEFORE it, which the old check never looked at. All 24 pages that render put the snippet alone
on its line; all 7 that returned 500 did not.
"""
rel = path.relative_to(DOCS)
declared = {}
Expand All @@ -58,12 +64,15 @@ def check_snippets(path, raw, failures):
if in_fence:
continue
for match in re.finditer(rf"<({used})\b[^>]*/>", line):
trailing = line[match.end():].strip()
if trailing and CONTINUES.match(trailing):
failures.append(
f"{rel}:{line_no} carries the sentence on past <{match.group(1)} />; "
f"a snippet is block content, so start a new sentence or a new line"
)
before = line[: match.start()].strip()
after = line[match.end() :].strip()
if not before and not after:
continue
where = "before and after" if before and after else ("before" if before else "after")
failures.append(
f"{rel}:{line_no} puts prose {where} <{match.group(1)} /> on the same line; "
f"a snippet is block content and returns HTTP 500 unless it is alone on its line"
)


def main() -> int:
Expand Down
4 changes: 3 additions & 1 deletion docs/switching.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ Two other routes exist.

## If your database is not supported yet

<DriverCounts /> A database missing from the connection form may still be one click away in **Settings > Plugins > Browse**.
<DriverCounts />

A database missing from the connection form may still be one click away in **Settings > Plugins > Browse**.

<Frame caption="Settings > Plugins > Browse">
<img className="block dark:hidden" src="/images/settings-plugins-browse.png" alt="Plugin registry browser" />
Expand Down
Loading