diff --git a/Makefile b/Makefile index 1b5b4f4..a029ad8 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,7 @@ SHELL := bash .DEFAULT_GOAL := help PROVIDER := gitlab +SOURCE_PROJECT ?= https://github.com/stackql-registry/stackql-provider-$(PROVIDER) SERVICES_DIR := provider-dev/openapi/src/$(PROVIDER) VENV := .venv PY := $(VENV)/bin/python @@ -122,7 +123,8 @@ docs: ## generate the website docs, then sanitize for MDX v3 --provider-name $(PROVIDER) \ --provider-dir ./$(SERVICES_DIR)/v00.00.00000 \ --output-dir ./website \ - --provider-data-dir ./provider-dev/docgen/provider-data + --provider-data-dir ./provider-dev/docgen/provider-data \ + --source-project $(SOURCE_PROJECT) node website/scripts/sanitize-docs.mjs website: ## build the docusaurus microsite (vendors shared config first) diff --git a/package-lock.json b/package-lock.json index b2eaa19..01ddcdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@stackql/pgwire-lite": "^1.0.2", - "@stackql/provider-utils": "^0.7.10", + "@stackql/provider-utils": "^0.7.12", "graphql": "^17.0.2", "js-yaml": "^5.2.1" }, @@ -169,9 +169,9 @@ } }, "node_modules/@stackql/provider-utils": { - "version": "0.7.10", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.10.tgz", - "integrity": "sha512-3hlaKT2ce8IaFx0E99ksW0uvmBcQgtfzWAAJz24oSM7bX++6ZrLe87j6CAUyRszowP4FLaO6UMOlHNQzibnViw==", + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.12.tgz", + "integrity": "sha512-cwlnLkW/AZ86YVthU/HmVDVlwLHsuJtiCx+w0peqO7t/NpsgLsUneH5vG2PPt+yPv3euZeQg1HeO7NOAgDQdBw==", "license": "MIT", "dependencies": { "@apidevtools/swagger-parser": "^10.1.1", diff --git a/package.json b/package.json index 5401854..bb2176b 100644 --- a/package.json +++ b/package.json @@ -1,36 +1,36 @@ -{ - "name": "stackql-provider-gitlab", - "version": "0.1.0", - "description": "StackQL provider for GitLab - read-only SQL over the GitLab GraphQL API", - "type": "module", - "scripts": { - "fetch-schema": "bash ./bin/fetch-schema.sh", - "build-inventory": "node ./provider-dev/scripts/build_inventory.mjs", - "generate-provider": "node ./provider-dev/scripts/generate_provider.mjs", - "validate-complexity": "node ./provider-dev/scripts/validate_complexity.mjs", - "generate-docs": "node ./node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", - "sanitize-docs": "node ./website/scripts/sanitize-docs.mjs", - "start-server": "bash ./bin/start-server.sh", - "stop-server": "bash ./bin/stop-server.sh", - "server-status": "bash ./bin/server-status.sh", - "test-meta-routes": "node ./bin/test-meta-routes.cjs", - "test-offline": "node ./tests/offline_validation.mjs", - "test-integration": "node ./tests/integration/run_integration_tests.mjs" - }, - "dependencies": { - "@stackql/pgwire-lite": "^1.0.2", - "@stackql/provider-utils": "^0.7.10", - "graphql": "^17.0.2", - "js-yaml": "^5.2.1" - }, - "keywords": [ - "stackql", - "gitlab", - "provider", - "graphql" - ], - "license": "MIT", - "engines": { - "node": ">=20.0.0" - } -} +{ + "name": "stackql-provider-gitlab", + "version": "0.1.0", + "description": "StackQL provider for GitLab - read-only SQL over the GitLab GraphQL API", + "type": "module", + "scripts": { + "fetch-schema": "bash ./bin/fetch-schema.sh", + "build-inventory": "node ./provider-dev/scripts/build_inventory.mjs", + "generate-provider": "node ./provider-dev/scripts/generate_provider.mjs", + "validate-complexity": "node ./provider-dev/scripts/validate_complexity.mjs", + "generate-docs": "node ./node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", + "sanitize-docs": "node ./website/scripts/sanitize-docs.mjs", + "start-server": "bash ./bin/start-server.sh", + "stop-server": "bash ./bin/stop-server.sh", + "server-status": "bash ./bin/server-status.sh", + "test-meta-routes": "node ./bin/test-meta-routes.cjs", + "test-offline": "node ./tests/offline_validation.mjs", + "test-integration": "node ./tests/integration/run_integration_tests.mjs" + }, + "dependencies": { + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "^0.7.12", + "graphql": "^17.0.2", + "js-yaml": "^5.2.1" + }, + "keywords": [ + "stackql", + "gitlab", + "provider", + "graphql" + ], + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } +} diff --git a/website/docs/index.md b/website/docs/index.md index 0df169b..90acad4 100644 --- a/website/docs/index.md +++ b/website/docs/index.md @@ -23,6 +23,7 @@ A read-only SQL layer over the GitLab control plane, built on the GitLab GraphQL total services: __18__ total resources: __244__ +source project: __[stackql-provider-gitlab](https://github.com/stackql-registry/stackql-provider-gitlab)__ ::: diff --git a/website/sidebars.js b/website/sidebars.js index f719984..fe6cbb3 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -2,6 +2,19 @@ import { providerTitle } from './provider.js'; const sidebars = { mainSidebar: [ + // Way back to the main stackql.io docs, as on the query library site. + // '/stackqldocs' is a shared-config redirect route (registered on this + // site by the vendored redirects plugin) that forwards to + // https://stackql.io/, so the link renders as internal - no external-link + // icon - and the broken-link checker validates it. The arrow and the + // divider come from the .sidebar-back-link rules in src/css/global.css. + { + type: 'link', + label: 'Back to StackQL Docs', + href: '/stackqldocs', + className: 'sidebar-back-link', + }, + // '/providers' is likewise a shared redirect, to https://stackql.io/providers. { type: 'link', label: 'All Providers', href: '/providers' }, { type: 'category', diff --git a/website/src/css/global.css b/website/src/css/global.css index 3e50218..0b80357 100644 --- a/website/src/css/global.css +++ b/website/src/css/global.css @@ -284,4 +284,24 @@ div:has(> .vhsImage) { .navbar__logo img[src$='stackql-registry-logo-white.svg'] { content: url('/img/stackql-registry-logo-white-mobile.svg'); } -} \ No newline at end of file +} + +/* +* sidebar: back link to the main stackql.io docs (the first item in +* sidebars.js). Same treatment as the query library site: bold label, +* leading arrow drawn here so the label stays plain text, divider below. +*/ +.sidebar-back-link { + border-bottom: 1px solid var(--ifm-color-emphasis-300); + padding-bottom: 0.5rem; + margin-bottom: 0.5rem !important; +} + +.sidebar-back-link .menu__link { + font-weight: 600; +} + +.sidebar-back-link .menu__link::before { + content: '\2190'; + margin-right: 0.5rem; +}