From 2ae4f61e01eddef546ebab8c2e077b47301ba361 Mon Sep 17 00:00:00 2001 From: Julien Poissonnier Date: Thu, 14 Mar 2024 15:46:11 +0100 Subject: [PATCH] Use typedoc-plugin-script-inject to add client side redirects The previous docs had all the exports on a single page and we make use of #anchor links to link to the export. --- .../pkg/nodejs/pulumi/pulumi/redirects.js | 68 +++++++++++++++++++ package.json | 3 +- scripts/run_typedoc.sh | 3 + typedoc.json | 3 + yarn.lock | 5 ++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 content/docs/reference/pkg/nodejs/pulumi/pulumi/redirects.js create mode 100644 typedoc.json diff --git a/content/docs/reference/pkg/nodejs/pulumi/pulumi/redirects.js b/content/docs/reference/pkg/nodejs/pulumi/pulumi/redirects.js new file mode 100644 index 000000000000..67db8768afbb --- /dev/null +++ b/content/docs/reference/pkg/nodejs/pulumi/pulumi/redirects.js @@ -0,0 +1,68 @@ +var pathname = location.pathname.replace(/\/$/, "") +if (pathname == "/docs/reference/pkg/nodejs/pulumi/pulumi") { + var redirects = { + "#ComponentResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/ComponentResource.html", + "#getStack": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/getStack.html", + "#isSecret": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/isSecret.html", + "#ResourceTransformArgs": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ResourceTransformArgs.html", + "#ResourceTransformationResult": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ResourceTransformationResult.html", + "#version": "/docs/reference/pkg/nodejs/pulumi/pulumi/variables/version.html", + "#ResourceError": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/ResourceError.html", + "#concat": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/concat.html", + "#output": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/output.html", + "#allAliases": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/allAliases.html", + "#NumberConfigOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/NumberConfigOptions.html", + "#jsonParse": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/jsonParse.html", + "#interpolate": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/interpolate.html", + "#unsecret": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/unsecret.html", + "#ComponentResourceOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ComponentResourceOptions.html", + "#StackReference": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/StackReference.html", + "#OutputInstance": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/OutputInstance.html", + "#Input": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/Input.html", + "#isUnknown": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/isUnknown.html", + "#StackReferenceArgs": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/StackReferenceArgs.html", + "#secret": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/secret.html", + "#ResourceTransformResult": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ResourceTransformResult.html", + "#mergeOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/mergeOptions.html", + "#InvokeOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/InvokeOptions.html", + "#UnwrappedArray": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/UnwrappedArray.html", + "#rootStackResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/variables/rootStackResource.html", + "#DependencyProviderResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/DependencyProviderResource.html", + "#Alias": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/Alias.html", + "#URN": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/URN.html", + "#Config": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/Config.html", + "#CustomResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/CustomResource.html", + "#Lifted": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/Lifted.html", + "#Output": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/Output.html", + "#ResourceOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ResourceOptions.html", + "#StringConfigOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/StringConfigOptions.html", + "#getOrganization": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/getOrganization.html", + "#DependencyResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/DependencyResource.html", + "#createUrn": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/createUrn.html", + "#UnwrappedObject": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/UnwrappedObject.html", + "#containsUnknowns": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/containsUnknowns.html", + "#LiftedObject": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/LiftedObject.html", + "#ProviderResource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/ProviderResource.html", + "#CustomResourceOptions": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/CustomResourceOptions.html", + "#Inputs": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/Inputs.html", + "#LiftedArray": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/LiftedArray.html", + "#ResourceTransformationArgs": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/ResourceTransformationArgs.html", + "#Resource": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/Resource.html", + "#CustomTimeouts": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/CustomTimeouts.html", + "#jsonStringify": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/jsonStringify.html", + "#ID": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/ID.html", + "#RunError": "/docs/reference/pkg/nodejs/pulumi/pulumi/classes/RunError.html", + "#Unwrap": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/Unwrap.html", + "#ResourceTransformation": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/ResourceTransformation.html", + "#getProject": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/getProject.html", + "#ResourceTransform": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/ResourceTransform.html", + "#UnwrapSimple": "/docs/reference/pkg/nodejs/pulumi/pulumi/types/UnwrapSimple.html", + "#StackReferenceOutputDetails": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/StackReferenceOutputDetails.html", + "#all": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/all.html", + "#isGrpcError": "/docs/reference/pkg/nodejs/pulumi/pulumi/functions/isGrpcError.html", + "#OutputConstructor": "/docs/reference/pkg/nodejs/pulumi/pulumi/interfaces/OutputConstructor.html", + } + if (redirects[location.hash]) { + location.href = redirects[location.hash]; + } +} diff --git a/package.json b/package.json index b18bda1d57c1..6ae0f0ee2660 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "postcss-cli": "^8.3.1", "sitemapper": "^3.2.2", "typedoc": "^0.25.11", + "typedoc-plugin-script-inject": "^1.0.0", "typescript": "^4.9.5" } -} \ No newline at end of file +} diff --git a/scripts/run_typedoc.sh b/scripts/run_typedoc.sh index 06cc0d562dc8..7e537f36ee4a 100755 --- a/scripts/run_typedoc.sh +++ b/scripts/run_typedoc.sh @@ -13,6 +13,7 @@ set -o errexit -o pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" TOOL_TYPEDOC="$SCRIPT_DIR/../node_modules/.bin/typedoc" +TOOL_TYPEDOC_CONFIG="$SCRIPT_DIR/../typedoc.json" OUTDIR="${SCRIPT_DIR}/../static-prebuilt/docs/reference/pkg/nodejs/pulumi" @@ -61,6 +62,8 @@ generate_docs() { --excludeInternal --excludeExternals --excludePrivate \ --cleanOutputDir \ --skipErrorChecking \ + --plugin typedoc-plugin-script-inject \ + --options "$TOOL_TYPEDOC_CONFIG" \ index.ts popd diff --git a/typedoc.json b/typedoc.json new file mode 100644 index 000000000000..47a385d518df --- /dev/null +++ b/typedoc.json @@ -0,0 +1,3 @@ +{ + "scriptSrc": "/docs/reference/pkg/nodejs/pulumi/pulumi/redirects.js" +} diff --git a/yarn.lock b/yarn.lock index c7e3e5fb5d42..2686ff20cc85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4591,6 +4591,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +typedoc-plugin-script-inject@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typedoc-plugin-script-inject/-/typedoc-plugin-script-inject-1.0.0.tgz#f0f62efaaa562f49c878370f603707caa075c41c" + integrity sha512-dxzZbuUzyJHhSxf5FGzPz6DW3Hys3pXppwgZCFW7Jne9k0cZ8g4Tll/J5FAbIJiqSgsk/Gs17JtzT2ZyriWfMw== + typedoc@^0.25.11: version "0.25.11" resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.25.11.tgz#75080c594c1e26b7676f90faebb367fb5a32dc8d"