diff --git a/docs/external-api/mcp-prompts.mdx b/docs/external-api/mcp-prompts.mdx index e01b0c986..6c22f4906 100644 --- a/docs/external-api/mcp-prompts.mdx +++ b/docs/external-api/mcp-prompts.mdx @@ -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. - The read is recorded in the activity log. + + +The read is recorded in the activity log. ## Shared arguments diff --git a/docs/external-api/mcp-resources.mdx b/docs/external-api/mcp-resources.mdx index 92388c23f..45d0e0c2b 100644 --- a/docs/external-api/mcp-resources.mdx +++ b/docs/external-api/mcp-resources.mdx @@ -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. 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. + + + +Reads count against the caller's [request rate](/external-api/tokens#rate-limits) like anything else. ## Discovery diff --git a/docs/faq.mdx b/docs/faq.mdx index 5c698ab8a..ce08182b1 100644 --- a/docs/faq.mdx +++ b/docs/faq.mdx @@ -64,7 +64,9 @@ Its driver is probably not installed yet. The database type chooser badges regis - Each one must match the SHA-256 checksum in the registry manifest and carry a valid code signature before it loads. + + +Each one must match the SHA-256 checksum in the registry manifest and carry a valid code signature before it loads. diff --git a/docs/features/change-tracking.mdx b/docs/features/change-tracking.mdx index cc04110f9..a183d56f0 100644 --- a/docs/features/change-tracking.mdx +++ b/docs/features/change-tracking.mdx @@ -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"; - 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. + + +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. Pending edits, inserts, and deletions highlighted in the data grid diff --git a/docs/features/plugins.mdx b/docs/features/plugins.mdx index 936e7b415..de3463e37 100644 --- a/docs/features/plugins.mdx +++ b/docs/features/plugins.mdx @@ -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. +Pick a database type badged **Not Installed** in the chooser and the download runs before the connection opens, with no restart. + + ## Bundled plugins diff --git a/docs/features/table-structure.mdx b/docs/features/table-structure.mdx index 3ebbc0e4a..f3c517eaf 100644 --- a/docs/features/table-structure.mdx +++ b/docs/features/table-structure.mdx @@ -55,7 +55,9 @@ Right-click a foreign key and choose **Open [table]** to jump to the referenced ## Saving 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. + + +[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. diff --git a/docs/scripts/check-links.py b/docs/scripts/check-links.py index 289286dcc..6cdb1a3ac 100755 --- a/docs/scripts/check-links.py +++ b/docs/scripts/check-links.py @@ -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 `, 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 = {} @@ -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: diff --git a/docs/switching.mdx b/docs/switching.mdx index bf335e99f..4ddc2feaa 100644 --- a/docs/switching.mdx +++ b/docs/switching.mdx @@ -102,7 +102,9 @@ Two other routes exist. ## If your database is not supported yet - A database missing from the connection form may still be one click away in **Settings > Plugins > Browse**. + + +A database missing from the connection form may still be one click away in **Settings > Plugins > Browse**. Plugin registry browser