From 3b403a762d76af432f436b900ecd83c325835675 Mon Sep 17 00:00:00 2001 From: Chenhe Gu Date: Thu, 27 Nov 2025 23:48:35 +0900 Subject: [PATCH] improve redirects section (#559) * fix redirect language code prefixes * fix syntax in wildcard redirect links * delete stale file & more redirect cosmetics --- docs.json | 1110 +---------------------- en/use-dify/nodes/rename-test-gamma.mdx | 41 - 2 files changed, 43 insertions(+), 1108 deletions(-) delete mode 100644 en/use-dify/nodes/rename-test-gamma.mdx diff --git a/docs.json b/docs.json index d1b85dcd..0bb5fac7 100644 --- a/docs.json +++ b/docs.json @@ -4172,6 +4172,18 @@ "source": "/ja-jp/guides/workflow/node/plugin-trigger", "destination": "/jp/use-dify/nodes/trigger/plugin-trigger" }, + { + "source": "/en/getting-started/dify-for-education", + "destination": "/en/use-dify/workspace/subscription-management#dify-for-education" + }, + { + "source": "/zh-hans/getting-started/dify-for-education", + "destination": "/cn/use-dify/workspace/subscription-management#dify-for-education" + }, + { + "source": "/ja-jp/getting-started/dify-for-education", + "destination": "/jp/use-dify/workspace/subscription-management#dify-for-education" + }, { "source": "plugins/schema-definition/model", "destination": "versions/legacy/en/plugins/schema-definition/model/model-designing-rules" @@ -4180,1101 +4192,89 @@ "source": "plugins/schema-definition", "destination": "versions/legacy/en/plugins/schema-definition/manifest" }, - { - "source": "guides/application-orchestrate/app-toolkits", - "destination": "guides/application-orchestrate/app-toolkits/readme" - }, - { - "source": "versions/legacy/jp/plugins/plugin-auto-publish-pr", - "destination": "versions/legacy/jp/plugins/publish-plugins/plugin-auto-publish-pr" - }, - { - "source": "versions/legacy/cn/plugins/plugin-auto-publish-pr", - "destination": "versions/legacy/cn/plugins/publish-plugins/plugin-auto-publish-pr" - }, - { - "source": "versions/legacy/en/plugins/plugin-auto-publish-pr", - "destination": "versions/legacy/en/plugins/publish-plugins/plugin-auto-publish-pr" - }, - { - "source": "versions/legacy/cn/getting-started/install-self-hosted", - "destination": "versions/legacy/cn/getting-started/install-self-hosted/readme" - }, - { - "source": "versions/legacy/cn/guides/model-configuration", - "destination": "versions/legacy/cn/guides/model-configuration/readme" - }, - { - "source": "versions/legacy/cn/guides/application-orchestrate", - "destination": "versions/legacy/cn/guides/application-orchestrate/readme" - }, - { - "source": "versions/legacy/cn/guides/application-orchestrate/app-toolkits", - "destination": "versions/legacy/cn/guides/application-orchestrate/app-toolkits/readme" - }, - { - "source": "versions/legacy/cn/guides/workflow", - "destination": "versions/legacy/cn/guides/workflow/readme" - }, - { - "source": "versions/legacy/cn/guides/workflow/node", - "destination": "versions/legacy/cn/guides/workflow/node/start" - }, - { - "source": "versions/legacy/cn/guides/workflow/error-handling", - "destination": "versions/legacy/cn/guides/workflow/error-handling/readme" - }, - { - "source": "versions/legacy/cn/guides/workflow/debug-and-preview", - "destination": "versions/legacy/cn/guides/workflow/debug-and-preview/preview-and-run" - }, - { - "source": "versions/legacy/cn/guides/workflow/debug-and-preview/yu-lan-yu-yun-hang", - "destination": "versions/legacy/cn/guides/workflow/debug-and-preview/preview-and-run" - }, - { - "source": "versions/legacy/cn/guides/knowledge-base", - "destination": "versions/legacy/cn/guides/knowledge-base/readme" - }, - { - "source": "versions/legacy/cn/guides/knowledge-base/create-knowledge-and-upload-documents", - "destination": "versions/legacy/cn/guides/knowledge-base/knowledge-base-creation/introduction" - }, - { - "source": "versions/legacy/cn/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data", - "destination": "versions/legacy/cn/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/readme" - }, - { - "source": "versions/legacy/cn/guides/knowledge-base/knowledge-and-documents-maintenance", - "destination": "versions/legacy/cn/guides/knowledge-base/knowledge-and-documents-maintenance/introduction" - }, - { - "source": "versions/legacy/cn/guides/tools", - "destination": "versions/legacy/cn/guides/tools/readme" - }, - { - "source": "versions/legacy/cn/guides/tools/tool-configuration", - "destination": "versions/legacy/cn/guides/tools/tool-configuration/readme" - }, - { - "source": "versions/legacy/cn/guides/application-publishing", - "destination": "versions/legacy/cn/guides/application-publishing/readme" - }, - { - "source": "versions/legacy/cn/guides/application-publishing/launch-your-webapp-quickly", - "destination": "versions/legacy/cn/guides/application-publishing/launch-your-webapp-quickly/readme" - }, - { - "source": "versions/legacy/cn/guides/annotation", - "destination": "versions/legacy/cn/guides/annotation/readme" - }, - { - "source": "versions/legacy/cn/guides/monitoring", - "destination": "versions/legacy/cn/guides/monitoring/readme" - }, - { - "source": "versions/legacy/cn/guides/monitoring/integrate-external-ops-tools", - "destination": "versions/legacy/cn/guides/monitoring/integrate-external-ops-tools/readme" - }, - { - "source": "versions/legacy/cn/guides/extension", - "destination": "versions/legacy/cn/guides/extension/readme" - }, - { - "source": "versions/legacy/cn/guides/extension/api-based-extension", - "destination": "versions/legacy/cn/guides/extension/api-based-extension/readme" - }, - { - "source": "versions/legacy/cn/guides/extension/code-based-extension", - "destination": "versions/legacy/cn/guides/extension/code-based-extension/readme" - }, - { - "source": "versions/legacy/cn/guides/workspace", - "destination": "versions/legacy/cn/guides/workspace/readme" - }, - { - "source": "versions/legacy/cn/guides/management", - "destination": "versions/legacy/cn/guides/management/readme" - }, - { - "source": "versions/legacy/cn/workshop/basic", - "destination": "versions/legacy/cn/workshop/readme" - }, - { - "source": "versions/legacy/cn/workshop/intermediate", - "destination": "versions/legacy/cn/workshop/intermediate/readme" - }, - { - "source": "versions/legacy/cn/plugins/quick-start", - "destination": "versions/legacy/cn/plugins/quick-start/readme" - }, - { - "source": "versions/legacy/cn/plugins/quick-start/develop-plugins", - "destination": "versions/legacy/cn/plugins/quick-start/develop-plugins/readme" - }, - { - "source": "versions/legacy/cn/plugins/quick-start/develop-plugins/model-plugin", - "destination": "versions/legacy/cn/plugins/quick-start/develop-plugins/model-plugin/readme" - }, - { - "source": "versions/legacy/cn/plugins/schema-definition", - "destination": "versions/legacy/cn/plugins/schema-definition/readme" - }, - { - "source": "versions/legacy/cn/plugins/schema-definition/model", - "destination": "versions/legacy/cn/plugins/schema-definition/model/readme" - }, - { - "source": "versions/legacy/cn/plugins/schema-definition/reverse-invocation-of-the-dify-service", - "destination": "versions/legacy/cn/plugins/schema-definition/reverse-invocation-of-the-dify-service/readme" - }, - { - "source": "versions/legacy/cn/plugins/best-practice", - "destination": "versions/legacy/cn/plugins/best-practice/develop-a-slack-bot-plugin" - }, - { - "source": "versions/legacy/cn/plugins/publish-plugins", - "destination": "versions/legacy/cn/plugins/publish-plugins/readme" - }, - { - "source": "versions/legacy/cn/plugins/publish-plugins/publish-to-dify-marketplace", - "destination": "versions/legacy/cn/plugins/publish-plugins/publish-to-dify-marketplace/readme" - }, - { - "source": "versions/legacy/cn/development/backend", - "destination": "versions/legacy/cn/development/backend/readme" - }, - { - "source": "versions/legacy/cn/development/backend/sandbox", - "destination": "versions/legacy/cn/development/backend/sandbox/readme" - }, - { - "source": "versions/legacy/cn/development/models-integration", - "destination": "versions/legacy/cn/development/models-integration/readme" - }, - { - "source": "versions/legacy/cn/development/migration", - "destination": "versions/legacy/cn/development/migration/readme" - }, - { - "source": "versions/legacy/cn/learn-more/use-cases", - "destination": "versions/legacy/cn/learn-more/use-cases/readme" - }, - { - "source": "versions/legacy/cn/learn-more/extended-reading", - "destination": "versions/legacy/cn/learn-more/extended-reading/readme" - }, - { - "source": "versions/legacy/cn/learn-more/extended-reading/retrieval-augment", - "destination": "versions/legacy/cn/learn-more/extended-reading/retrieval-augment/readme" - }, - { - "source": "versions/legacy/cn/learn-more/faq", - "destination": "versions/legacy/cn/learn-more/faq/readme" - }, - { - "source": "versions/legacy/cn/policies/agreement", - "destination": "versions/legacy/cn/policies/agreement/readme" - }, { "source": "/zh-hans", - "destination": "/cn/introduction" + "destination": "/cn/getting-started/introduction" }, { "source": "/introduction", - "destination": "/en/introduction" + "destination": "/en/getting-started/introduction" }, { "source": "/getting-started/readme/features-and-specifications", - "destination": "/en/getting-started/readme/features-and-specifications" + "destination": "/en/getting-started/introduction" }, { "source": "/getting-started/readme/model-providers", - "destination": "/en/getting-started/readme/model-providers" + "destination": "/en/getting-started/introduction" }, { "source": "/getting-started/install-self-hosted", - "destination": "/en/getting-started/install-self-hosted/readme" + "destination": "/en/self-host/quick-start/docker-compose" }, { "source": "/getting-started/install-self-hosted/docker-compose", - "destination": "/en/getting-started/install-self-hosted/docker-compose" + "destination": "/en/self-host/quick-start/docker-compose" }, { "source": "/getting-started/install-self-hosted/local-source-code", - "destination": "/en/getting-started/install-self-hosted/local-source-code" + "destination": "/en/self-host/advanced-deployments/local-source-code" }, { "source": "/getting-started/install-self-hosted/bt-panel", - "destination": "/en/getting-started/install-self-hosted/bt-panel" + "destination": "/en/self-host/platform-guides/bt-panel" }, { "source": "/getting-started/install-self-hosted/start-the-frontend-docker-container", - "destination": "/en/getting-started/install-self-hosted/start-the-frontend-docker-container" + "destination": "/en/self-host/advanced-deployments/start-the-frontend-docker-container" }, { "source": "/getting-started/install-self-hosted/environments", - "destination": "/en/getting-started/install-self-hosted/environments" + "destination": "/en/self-host/configuration/environments" }, { "source": "/getting-started/install-self-hosted/faqs", - "destination": "/en/getting-started/install-self-hosted/faqs" + "destination": "/en/self-host/quick-start/faqs" }, { "source": "/getting-started/cloud", - "destination": "/en/getting-started/cloud" + "destination": "/en/getting-started/introduction" }, { "source": "/getting-started/dify-premium", - "destination": "/en/getting-started/dify-premium" + "destination": "/en/self-host/platform-guides/dify-premium" }, { - "source": "/guides/model-configuration", - "destination": "/en/guides/model-configuration/readme" - }, - { - "source": "/guides/model-configuration/new-provider", - "destination": "/en/guides/model-configuration/new-provider" - }, - { - "source": "/guides/model-configuration/predefined-model", - "destination": "/en/guides/model-configuration/predefined-model" - }, - { - "source": "/guides/model-configuration/customizable-model", - "destination": "/en/guides/model-configuration/customizable-model" - }, - { - "source": "/guides/model-configuration/interfaces", - "destination": "/en/guides/model-configuration/interfaces" - }, - { - "source": "/guides/model-configuration/schema", - "destination": "/en/guides/model-configuration/schema" - }, - { - "source": "/guides/model-configuration/load-balancing", - "destination": "/en/guides/model-configuration/load-balancing" - }, - { - "source": "/guides/application-orchestrate", - "destination": "/en/guides/application-orchestrate/readme" - }, - { - "source": "/guides/application-orchestrate/creating-an-application", - "destination": "/en/guides/application-orchestrate/creating-an-application" - }, - { - "source": "/guides/application-orchestrate/chatbot-application", - "destination": "/en/guides/application-orchestrate/chatbot-application" - }, - { - "source": "/guides/application-orchestrate/multiple-llms-debugging", - "destination": "/en/guides/application-orchestrate/multiple-llms-debugging" - }, - { - "source": "/guides/application-orchestrate/agent", - "destination": "/en/guides/application-orchestrate/agent" - }, - { - "source": "/guides/application-orchestrate/app-toolkits", - "destination": "/en/guides/application-orchestrate/app-toolkits/readme" - }, - { - "source": "/guides/application-orchestrate/app-toolkits/moderation-tool", - "destination": "/en/guides/application-orchestrate/app-toolkits/moderation-tool" - }, - { - "source": "/guides/workflow", - "destination": "/en/guides/workflow/readme" - }, - { - "source": "/guides/workflow/key-concepts", - "destination": "/en/guides/workflow/key-concepts" - }, - { - "source": "/guides/workflow/variables", - "destination": "/en/guides/workflow/variables" - }, - { - "source": "/guides/workflow/node", - "destination": "/en/guides/workflow/node/start" - }, - { - "source": "/guides/workflow/node/start", - "destination": "/en/guides/workflow/node/start" - }, - { - "source": "/guides/workflow/node/end", - "destination": "/en/guides/workflow/node/end" - }, - { - "source": "/guides/workflow/node/answer", - "destination": "/en/guides/workflow/node/answer" - }, - { - "source": "/guides/workflow/node/llm", - "destination": "/en/guides/workflow/node/llm" - }, - { - "source": "/guides/workflow/node/knowledge-retrieval", - "destination": "/en/guides/workflow/node/knowledge-retrieval" - }, - { - "source": "/guides/workflow/node/question-classifier", - "destination": "/en/guides/workflow/node/question-classifier" - }, - { - "source": "/guides/workflow/node/ifelse", - "destination": "/en/guides/workflow/node/ifelse" - }, - { - "source": "/guides/workflow/node/code", - "destination": "/en/guides/workflow/node/code" - }, - { - "source": "/guides/workflow/node/template", - "destination": "/en/guides/workflow/node/template" - }, - { - "source": "/guides/workflow/node/doc-extractor", - "destination": "/en/guides/workflow/node/doc-extractor" - }, - { - "source": "/guides/workflow/node/list-operator", - "destination": "/en/guides/workflow/node/list-operator" - }, - { - "source": "/guides/workflow/node/variable-aggregator", - "destination": "/en/guides/workflow/node/variable-aggregator" - }, - { - "source": "/guides/workflow/node/variable-assigner", - "destination": "/en/guides/workflow/node/variable-assigner" - }, - { - "source": "/guides/workflow/node/iteration", - "destination": "/en/guides/workflow/node/iteration" - }, - { - "source": "/guides/workflow/node/parameter-extractor", - "destination": "/en/guides/workflow/node/parameter-extractor" - }, - { - "source": "/guides/workflow/node/http-request", - "destination": "/en/guides/workflow/node/http-request" - }, - { - "source": "/guides/workflow/node/agent", - "destination": "/en/guides/workflow/node/agent" - }, - { - "source": "/guides/workflow/node/tools", - "destination": "/en/guides/workflow/node/tools" - }, - { - "source": "/guides/workflow/node/loop", - "destination": "/en/guides/workflow/node/loop" - }, - { - "source": "/guides/workflow/shortcut-key", - "destination": "/en/guides/workflow/shortcut-key" - }, - { - "source": "/guides/workflow/orchestrate-node", - "destination": "/en/guides/workflow/orchestrate-node" - }, - { - "source": "/guides/workflow/file-upload", - "destination": "/en/guides/workflow/file-upload" - }, - { - "source": "/guides/workflow/error-handling", - "destination": "/en/guides/workflow/error-handling/readme" - }, - { - "source": "/guides/workflow/error-handling/predefined-error-handling-logic", - "destination": "/en/guides/workflow/error-handling/predefined-error-handling-logic" - }, - { - "source": "/guides/workflow/error-handling/error-type", - "destination": "/en/guides/workflow/error-handling/error-type" - }, - { - "source": "/guides/workflow/additional-features", - "destination": "/en/guides/workflow/additional-features" - }, - { - "source": "/guides/workflow/debug-and-preview", - "destination": "/en/guides/workflow/debug-and-preview/readme" - }, - { - "source": "/guides/workflow/debug-and-preview/yu-lan-yu-yun-hang", - "destination": "/en/guides/workflow/debug-and-preview/yu-lan-yu-yun-hang" - }, - { - "source": "/guides/workflow/debug-and-preview/preview-and-run", - "destination": "/en/guides/workflow/debug-and-preview/preview-and-run" - }, - { - "source": "/guides/workflow/debug-and-preview/step-run", - "destination": "/en/guides/workflow/debug-and-preview/step-run" - }, - { - "source": "/guides/workflow/publish", - "destination": "/en/guides/workflow/publish" - }, - { - "source": "/guides/workflow/bulletin", - "destination": "/en/guides/workflow/bulletin" - }, - { - "source": "/guides/knowledge-base", - "destination": "/en/guides/knowledge-base/readme" - }, - { - "source": "/guides/knowledge-base/knowledge-base-creation/introduction", - "destination": "/en/guides/knowledge-base/knowledge-base-creation/introduction" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/readme" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/sync-from-notion", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/sync-from-notion" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/sync-from-website", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents/import-content-data/sync-from-website" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents/chunking-and-cleaning-text", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents/chunking-and-cleaning-text" - }, - { - "source": "/guides/knowledge-base/create-knowledge-and-upload-documents/setting-indexing-methods", - "destination": "/en/guides/knowledge-base/create-knowledge-and-upload-documents/setting-indexing-methods" - }, - { - "source": "/guides/knowledge-base/knowledge-and-documents-maintenance", - "destination": "/en/guides/knowledge-base/knowledge-and-documents-maintenance/readme" - }, - { - "source": "/guides/knowledge-base/knowledge-and-documents-maintenance/introduction", - "destination": "/en/guides/knowledge-base/knowledge-and-documents-maintenance/introduction" - }, - { - "source": "/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-knowledge-documents", - "destination": "/en/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-knowledge-documents" - }, - { - "source": "/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api", - "destination": "/en/guides/knowledge-base/knowledge-and-documents-maintenance/maintain-dataset-via-api" - }, - { - "source": "/guides/knowledge-base/metadata", - "destination": "/en/guides/knowledge-base/metadata" - }, - { - "source": "/guides/knowledge-base/integrate-knowledge-within-application", - "destination": "/en/guides/knowledge-base/integrate-knowledge-within-application" - }, - { - "source": "/guides/knowledge-base/retrieval-test-and-citation", - "destination": "/en/guides/knowledge-base/retrieval-test-and-citation" - }, - { - "source": "/guides/knowledge-base/knowledge-request-rate-limit", - "destination": "/en/guides/knowledge-base/knowledge-request-rate-limit" - }, - { - "source": "/guides/knowledge-base/connect-external-knowledge-base", - "destination": "/en/guides/knowledge-base/connect-external-knowledge-base" - }, - { - "source": "/guides/knowledge-base/external-knowledge-api", - "destination": "/en/guides/knowledge-base/external-knowledge-api" - }, - { - "source": "/guides/knowledge-base/external-knowledge-api-documentation", - "destination": "/en/guides/knowledge-base/external-knowledge-api-documentation" - }, - { - "source": "/guides/tools", - "destination": "/en/guides/tools/readme" - }, - { - "source": "/guides/tools/quick-tool-integration", - "destination": "/en/guides/tools/quick-tool-integration" - }, - { - "source": "/guides/tools/advanced-tool-integration", - "destination": "/en/guides/tools/advanced-tool-integration" - }, - { - "source": "/guides/tools/tool-configuration", - "destination": "/en/guides/tools/tool-configuration/readme" - }, - { - "source": "/guides/tools/tool-configuration/google", - "destination": "/en/guides/tools/tool-configuration/google" - }, - { - "source": "/guides/tools/tool-configuration/bing", - "destination": "/en/guides/tools/tool-configuration/bing" - }, - { - "source": "/guides/tools/tool-configuration/searchapi", - "destination": "/en/guides/tools/tool-configuration/searchapi" - }, - { - "source": "/guides/tools/tool-configuration/stable-diffusion", - "destination": "/en/guides/tools/tool-configuration/stable-diffusion" - }, - { - "source": "/guides/tools/tool-configuration/dall-e", - "destination": "/en/guides/tools/tool-configuration/dall-e" - }, - { - "source": "/guides/tools/tool-configuration/perplexity", - "destination": "/en/guides/tools/tool-configuration/perplexity" - }, - { - "source": "/guides/tools/tool-configuration/alphavantage", - "destination": "/en/guides/tools/tool-configuration/alphavantage" - }, - { - "source": "/guides/tools/tool-configuration/youtube", - "destination": "/en/guides/tools/tool-configuration/youtube" - }, - { - "source": "/guides/tools/tool-configuration/searxng", - "destination": "/en/guides/tools/tool-configuration/searxng" - }, - { - "source": "/guides/tools/tool-configuration/serper", - "destination": "/en/guides/tools/tool-configuration/serper" - }, - { - "source": "/guides/tools/tool-configuration/siliconflow", - "destination": "/en/guides/tools/tool-configuration/siliconflow" - }, - { - "source": "/guides/tools/tool-configuration/comfyui", - "destination": "/en/guides/tools/tool-configuration/comfyui" - }, - { - "source": "/guides/application-publishing", - "destination": "/en/guides/application-publishing/readme" - }, - { - "source": "/guides/application-publishing/launch-your-webapp-quickly", - "destination": "/en/guides/application-publishing/launch-your-webapp-quickly/readme" - }, - { - "source": "/guides/application-publishing/launch-your-webapp-quickly/web-app-settings", - "destination": "/en/guides/application-publishing/launch-your-webapp-quickly/web-app-settings" - }, - { - "source": "/guides/application-publishing/launch-your-webapp-quickly/text-generator", - "destination": "/en/guides/application-publishing/launch-your-webapp-quickly/text-generator" - }, - { - "source": "/guides/application-publishing/launch-your-webapp-quickly/conversation-application", - "destination": "/en/guides/application-publishing/launch-your-webapp-quickly/conversation-application" - }, - { - "source": "/guides/application-publishing/embedding-in-websites", - "destination": "/en/guides/application-publishing/embedding-in-websites" - }, - { - "source": "/guides/application-publishing/developing-with-apis", - "destination": "/en/guides/application-publishing/developing-with-apis" - }, - { - "source": "/guides/application-publishing/based-on-frontend-templates", - "destination": "/en/guides/application-publishing/based-on-frontend-templates" - }, - { - "source": "/guides/annotation", - "destination": "/en/guides/annotation/readme" - }, - { - "source": "/guides/annotation/logs", - "destination": "/en/guides/annotation/logs" - }, - { - "source": "/guides/annotation/annotation-reply", - "destination": "/en/guides/annotation/annotation-reply" - }, - { - "source": "/guides/monitoring", - "destination": "/en/guides/monitoring/readme" - }, - { - "source": "/guides/monitoring/analysis", - "destination": "/en/guides/monitoring/analysis" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/readme" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools/integrate-arize", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/integrate-arize" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools/integrate-phoenix", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/integrate-phoenix" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools/integrate-langsmith", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/integrate-langsmith" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools/integrate-langfuse", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/integrate-langfuse" - }, - { - "source": "/guides/monitoring/integrate-external-ops-tools/integrate-opik", - "destination": "/en/guides/monitoring/integrate-external-ops-tools/integrate-opik" - }, - { - "source": "/guides/extension", - "destination": "/en/guides/extension/readme" - }, - { - "source": "/guides/extension/api-based-extension", - "destination": "/en/guides/extension/api-based-extension/readme" - }, - { - "source": "/guides/extension/api-based-extension/external-data-tool", - "destination": "/en/guides/extension/api-based-extension/external-data-tool" - }, - { - "source": "/guides/extension/api-based-extension/cloudflare-workers", - "destination": "/en/guides/extension/api-based-extension/cloudflare-workers" - }, - { - "source": "/guides/extension/api-based-extension/moderation", - "destination": "/en/guides/extension/api-based-extension/moderation" - }, - { - "source": "/guides/extension/code-based-extension", - "destination": "/en/guides/extension/code-based-extension/readme" - }, - { - "source": "/guides/extension/code-based-extension/external-data-tool", - "destination": "/en/guides/extension/code-based-extension/external-data-tool" - }, - { - "source": "/guides/extension/code-based-extension/moderation", - "destination": "/en/guides/extension/code-based-extension/moderation" - }, - { - "source": "/guides/workspace", - "destination": "/en/guides/workspace/readme" - }, - { - "source": "/guides/workspace/app", - "destination": "/en/guides/workspace/app" - }, - { - "source": "/guides/workspace/invite-and-manage-members", - "destination": "/en/guides/workspace/invite-and-manage-members" - }, - { - "source": "/guides/management", - "destination": "/en/guides/management/readme" - }, - { - "source": "/guides/management/app-management", - "destination": "/en/guides/management/app-management" - }, - { - "source": "/guides/management/team-members-management", - "destination": "/en/guides/management/team-members-management" - }, - { - "source": "/guides/management/personal-account-management", - "destination": "/en/guides/management/personal-account-management" - }, - { - "source": "/guides/management/subscription-management", - "destination": "/en/guides/management/subscription-management" - }, - { - "source": "/guides/management/version-control", - "destination": "/en/guides/management/version-control" - }, - { - "source": "/workshop", - "destination": "/en/workshop/readme" - }, - { - "source": "/workshop/basic", - "destination": "/en/workshop/basic/readme" - }, - { - "source": "/workshop/basic/build-ai-image-generation-app", - "destination": "/en/workshop/basic/build-ai-image-generation-app" - }, - { - "source": "/workshop/intermediate", - "destination": "/en/workshop/intermediate/readme" - }, - { - "source": "/workshop/intermediate/article-reader", - "destination": "/en/workshop/intermediate/article-reader" - }, - { - "source": "/workshop/intermediate/customer-service-bot", - "destination": "/en/workshop/intermediate/customer-service-bot" - }, - { - "source": "/workshop/intermediate/twitter-chatflow", - "destination": "/en/workshop/intermediate/twitter-chatflow" - }, - { - "source": "/community/support", - "destination": "/en/community/support" - }, - { - "source": "/community/contribution", - "destination": "/en/community/contribution" - }, - { - "source": "/community/docs-contribution", - "destination": "/en/community/docs-contribution" - }, - { - "source": "/plugins/introduction", - "destination": "/en/plugins/introduction" + "source": "/plugins/:slug*", + "destination": "/plugin-dev-en/0111-getting-started-dify-plugin" }, { "source": "/plugins/quick-start", - "destination": "/en/plugins/quick-start/readme" + "destination": "/plugin-dev-en/0111-getting-started-dify-plugin" }, { "source": "/plugins/quick-start/install-plugins", - "destination": "/en/plugins/quick-start/install-plugins" + "destination": "/plugin-dev-en/0111-getting-started-dify-plugin" }, { "source": "/plugins/quick-start/develop-plugins", - "destination": "/en/plugins/quick-start/develop-plugins/readme" + "destination": "/plugin-dev-en/0131-cheatsheet" }, { "source": "/plugins/quick-start/develop-plugins/initialize-development-tools", - "destination": "/en/plugins/quick-start/develop-plugins/initialize-development-tools" + "destination": "/plugin-dev-en/0221-initialize-development-tools" }, { "source": "/plugins/quick-start/develop-plugins/tool-plugin", - "destination": "/en/plugins/quick-start/develop-plugins/tool-plugin" + "destination": "/plugin-dev-en/0222-tool-plugin" }, { "source": "/plugins/quick-start/develop-plugins/model-plugin", - "destination": "/en/plugins/quick-start/develop-plugins/model-plugin/readme" + "destination": "/plugin-dev-en/0411-model-plugin-introduction" }, { "source": "/plugins/quick-start/develop-plugins/model-plugin/create-model-providers", - "destination": "/en/plugins/quick-start/develop-plugins/model-plugin/create-model-providers" - }, - { - "source": "/plugins/quick-start/develop-plugins/model-plugin/predefined-model", - "destination": "/en/plugins/quick-start/develop-plugins/model-plugin/predefined-model" - }, - { - "source": "/plugins/quick-start/develop-plugins/model-plugin/customizable-model", - "destination": "/en/plugins/quick-start/develop-plugins/model-plugin/customizable-model" - }, - { - "source": "/plugins/quick-start/develop-plugins/agent-strategy-plugin", - "destination": "/en/plugins/quick-start/develop-plugins/agent-strategy-plugin" - }, - { - "source": "/plugins/quick-start/develop-plugins/extension-plugin", - "destination": "/en/plugins/quick-start/develop-plugins/extension-plugin" - }, - { - "source": "/plugins/quick-start/develop-plugins/bundle", - "destination": "/en/plugins/quick-start/develop-plugins/bundle" - }, - { - "source": "/plugins/quick-start/debug-plugin", - "destination": "/en/plugins/quick-start/debug-plugin" - }, - { - "source": "/plugins/manage-plugins", - "destination": "/en/plugins/manage-plugins" - }, - { - "source": "/plugins/schema-definition", - "destination": "/en/plugins/schema-definition/readme" - }, - { - "source": "/plugins/schema-definition/manifest", - "destination": "/en/plugins/schema-definition/manifest" - }, - { - "source": "/plugins/schema-definition/endpoint", - "destination": "/en/plugins/schema-definition/endpoint" - }, - { - "source": "/plugins/schema-definition/tool", - "destination": "/en/plugins/schema-definition/tool" - }, - { - "source": "/plugins/schema-definition/agent", - "destination": "/en/plugins/schema-definition/agent" - }, - { - "source": "/plugins/schema-definition/model", - "destination": "/en/plugins/schema-definition/model/readme" - }, - { - "source": "/plugins/schema-definition/model/model-designing-rules", - "destination": "/en/plugins/schema-definition/model/model-designing-rules" - }, - { - "source": "/plugins/schema-definition/model/model-schema", - "destination": "/en/plugins/schema-definition/model/model-schema" - }, - { - "source": "/plugins/schema-definition/general-specifications", - "destination": "/en/plugins/schema-definition/general-specifications" - }, - { - "source": "/plugins/schema-definition/persistent-storage", - "destination": "/en/plugins/schema-definition/persistent-storage" - }, - { - "source": "/plugins/schema-definition/reverse-invocation-of-the-dify-service", - "destination": "/en/plugins/schema-definition/reverse-invocation-of-the-dify-service/readme" - }, - { - "source": "/plugins/schema-definition/reverse-invocation-of-the-dify-service/app", - "destination": "/en/plugins/schema-definition/reverse-invocation-of-the-dify-service/app" - }, - { - "source": "/plugins/schema-definition/reverse-invocation-of-the-dify-service/model", - "destination": "/en/plugins/schema-definition/reverse-invocation-of-the-dify-service/model" - }, - { - "source": "/plugins/schema-definition/reverse-invocation-of-the-dify-service/tool", - "destination": "/en/plugins/schema-definition/reverse-invocation-of-the-dify-service/tool" - }, - { - "source": "/plugins/schema-definition/reverse-invocation-of-the-dify-service/node", - "destination": "/en/plugins/schema-definition/reverse-invocation-of-the-dify-service/node" - }, - { - "source": "/plugins/best-practice", - "destination": "/en/plugins/best-practice/readme" - }, - { - "source": "/plugins/best-practice/develop-a-slack-bot-plugin", - "destination": "/en/plugins/best-practice/develop-a-slack-bot-plugin" - }, - { - "source": "/plugins/publish-plugins", - "destination": "/en/plugins/publish-plugins/readme" - }, - { - "source": "/plugins/publish-plugins/publish-to-dify-marketplace", - "destination": "/en/plugins/publish-plugins/publish-to-dify-marketplace/README" - }, - { - "source": "/cn/plugins/publish-plugins/publish-to-dify-marketplace", - "destination": "/cn/plugins/publish-plugins/publish-to-dify-marketplace/README" - }, - { - "source": "/jp/plugins/publish-plugins/publish-to-dify-marketplace", - "destination": "/jp/plugins/publish-plugins/publish-to-dify-marketplace/README" - }, - { - "source": "/plugins/publish-plugins/publish-to-dify-marketplace/plugin-developer-guidelines", - "destination": "/en/plugins/publish-plugins/publish-to-dify-marketplace/plugin-developer-guidelines" - }, - { - "source": "/plugins/publish-plugins/publish-to-dify-marketplace/plugin-privacy-protection-guidelines", - "destination": "/en/plugins/publish-plugins/publish-to-dify-marketplace/plugin-privacy-protection-guidelines" - }, - { - "source": "/plugins/publish-plugins/publish-plugin-on-personal-github-repo", - "destination": "/en/plugins/publish-plugins/publish-plugin-on-personal-github-repo" - }, - { - "source": "/plugins/publish-plugins/package-plugin-file-and-publish", - "destination": "/en/plugins/publish-plugins/package-plugin-file-and-publish" - }, - { - "source": "/plugins/faq", - "destination": "/en/plugins/faq" - }, - { - "source": "/development/backend", - "destination": "/en/development/backend/sandbox/readme" - }, - { - "source": "/development/backend/sandbox", - "destination": "/en/development/backend/sandbox/readme" - }, - { - "source": "/development/backend/sandbox/contribution", - "destination": "/en/development/backend/sandbox/contribution" - }, - { - "source": "/development/models-integration", - "destination": "/en/development/models-integration/hugging-face" - }, - { - "source": "/development/models-integration/hugging-face", - "destination": "/en/development/models-integration/hugging-face" - }, - { - "source": "/development/models-integration/replicate", - "destination": "/en/development/models-integration/replicate" - }, - { - "source": "/development/models-integration/xinference", - "destination": "/en/development/models-integration/xinference" - }, - { - "source": "/development/models-integration/openllm", - "destination": "/en/development/models-integration/openllm" - }, - { - "source": "/development/models-integration/localai", - "destination": "/en/development/models-integration/localai" - }, - { - "source": "/development/models-integration/ollama", - "destination": "/en/development/models-integration/ollama" - }, - { - "source": "/development/models-integration/litellm", - "destination": "/en/development/models-integration/litellm" - }, - { - "source": "/development/models-integration/gpustack", - "destination": "/en/development/models-integration/gpustack" - }, - { - "source": "/development/models-integration/aws-bedrock-deepseek", - "destination": "/en/development/models-integration/aws-bedrock-deepseek" - }, - { - "source": "/development/migration", - "destination": "/en/development/migration/migrate-to-v1" - }, - { - "source": "/development/migration/migrate-to-v1", - "destination": "/en/development/migration/migrate-to-v1" - }, - { - "source": "/learn-more/use-cases", - "destination": "/en/learn-more/use-cases/integrate-deepseek-to-build-an-ai-app" - }, - { - "source": "/learn-more/use-cases/integrate-deepseek-to-build-an-ai-app", - "destination": "/en/learn-more/use-cases/integrate-deepseek-to-build-an-ai-app" - }, - { - "source": "/learn-more/use-cases/private-ai-ollama-deepseek-dify", - "destination": "/en/learn-more/use-cases/private-ai-ollama-deepseek-dify" - }, - { - "source": "/learn-more/use-cases/build-an-notion-ai-assistant", - "destination": "/en/learn-more/use-cases/build-an-notion-ai-assistant" - }, - { - "source": "/learn-more/use-cases/create-a-midjourney-prompt-bot-with-dify", - "destination": "/en/learn-more/use-cases/create-a-midjourney-prompt-bot-with-dify" - }, - { - "source": "/learn-more/use-cases/create-an-ai-chatbot-with-business-data-in-minutes", - "destination": "/en/learn-more/use-cases/create-an-ai-chatbot-with-business-data-in-minutes" - }, - { - "source": "/learn-more/use-cases/how-to-integrate-dify-chatbot-to-your-wix-website", - "destination": "/en/learn-more/use-cases/how-to-integrate-dify-chatbot-to-your-wix-website" - }, - { - "source": "/learn-more/use-cases/how-to-connect-aws-bedrock", - "destination": "/en/learn-more/use-cases/how-to-connect-aws-bedrock" - }, - { - "source": "/learn-more/use-cases/dify-schedule", - "destination": "/en/learn-more/use-cases/dify-schedule" - }, - { - "source": "/learn-more/use-cases/building-an-ai-thesis-slack-bot", - "destination": "/en/learn-more/use-cases/building-an-ai-thesis-slack-bot" - }, - { - "source": "/learn-more/extended-reading", - "destination": "/en/learn-more/extended-reading/what-is-llmops" - }, - { - "source": "/learn-more/extended-reading/what-is-llmops", - "destination": "/en/learn-more/extended-reading/what-is-llmops" - }, - { - "source": "/learn-more/extended-reading/retrieval-augment", - "destination": "/en/learn-more/extended-reading/retrieval-augment/readme" - }, - { - "source": "/learn-more/extended-reading/retrieval-augment/hybrid-search", - "destination": "/en/learn-more/extended-reading/retrieval-augment/hybrid-search" - }, - { - "source": "/learn-more/extended-reading/retrieval-augment/rerank", - "destination": "/en/learn-more/extended-reading/retrieval-augment/rerank" - }, - { - "source": "/learn-more/extended-reading/retrieval-augment/retrieval", - "destination": "/en/learn-more/extended-reading/retrieval-augment/retrieval" - }, - { - "source": "/learn-more/extended-reading/how-to-use-json-schema-in-dify", - "destination": "/en/learn-more/extended-reading/how-to-use-json-schema-in-dify" - }, - { - "source": "/learn-more/faq", - "destination": "/en/learn-more/faq/install-faq" - }, - { - "source": "/learn-more/faq/install-faq", - "destination": "/en/learn-more/faq/install-faq" - }, - { - "source": "/learn-more/faq/use-llms-faq", - "destination": "/en/learn-more/faq/use-llms-faq" - }, - { - "source": "/learn-more/faq/plugins", - "destination": "/en/learn-more/faq/plugins" - }, - { - "source": "/policies/open-source", - "destination": "/en/policies/open-source" - }, - { - "source": "/policies/agreement", - "destination": "/en/policies/agreement/readme" - }, - { - "source": "/policies/agreement/get-compliance-report", - "destination": "/en/policies/agreement/get-compliance-report" - }, - { - "source": "/features/workflow", - "destination": "/en/guides/workflow/readme" + "destination": "/plugin-dev-en/0222-creating-new-model-provider" }, { "source": "/en/guides/workflow/node/:slug*", @@ -5358,19 +4358,15 @@ }, { "source": "/en/plugins/:slug*", - "destination": "/en/use-dify/workspace/plugins" + "destination": "/plugin-dev-en/0111-getting-started-dify-plugin" }, { "source": "/en/development/backend/:slug*", "destination": "/en/api-reference/:slug*" }, - { - "source": "/en/development/models-integration/:slug*", - "destination": "/en/use-dify/workspace/model-providers" - }, { "source": "/en/development/:slug*", - "destination": "/en/api-reference/:slug*" + "destination": "/plugin-dev-en/0111-getting-started-dify-plugin" }, { "source": "/en/learn-more/extended-reading/retrieval-augment/:slug*", @@ -5380,10 +4376,6 @@ "source": "/en/learn-more/extended-reading/dify-docs-mcp", "destination": "/en/use-dify/build/mcp" }, - { - "source": "/en/learn-more/faq/:slug*", - "destination": "/en/use-dify/getting-started/introduction" - }, { "source": "/en/learn-more/:slug*", "destination": "/en/use-dify/getting-started/introduction" @@ -5392,14 +4384,6 @@ "source": "/en/guides/:slug*", "destination": "/en/use-dify/getting-started/introduction" }, - { - "source": "/en/getting-started/cloud", - "destination": "/en/use-dify/getting-started/introduction" - }, - { - "source": "/en/getting-started/dify-premium", - "destination": "/en/use-dify/getting-started/introduction" - }, { "source": "/en/getting-started/:slug*", "destination": "/en/use-dify/getting-started/:slug*" @@ -5532,17 +4516,9 @@ "source": "/ja-jp/guides/:slug*", "destination": "/jp/use-dify/getting-started/introduction" }, - { - "source": "/ja-jp/getting-started/cloud", - "destination": "/jp/use-dify/getting-started/introduction" - }, - { - "source": "/ja-jp/getting-started/dify-premium", - "destination": "/jp/use-dify/getting-started/introduction" - }, { "source": "/ja-jp/getting-started/:slug*", - "destination": "/jp/use-dify/getting-started/:slug*" + "destination": "/jp/use-dify/getting-started/introduction" }, { "source": "/ja-jp/community/:slug*", @@ -5693,16 +4669,16 @@ "destination": "/cn/use-dify/getting-started/introduction" }, { - "source": "/en/getting-started/dify-for-education", - "destination": "/en/use-dify/workspace/subscription-management#dify-for-education" + "source": "/use-dify/:slug*", + "destination": "/en/use-dify/:slug*" }, { - "source": "/zh-hans/getting-started/dify-for-education", - "destination": "/cn/use-dify/workspace/subscription-management#dify-for-education" + "source": "/self-host/:slug*", + "destination": "/en/self-host/:slug*" }, { - "source": "/ja-jp/getting-started/dify-for-education", - "destination": "/jp/use-dify/workspace/subscription-management#dify-for-education" + "source": "/api-reference/:slug*", + "destination": "/en/api-reference/:slug*" } ], "navbar": { diff --git a/en/use-dify/nodes/rename-test-gamma.mdx b/en/use-dify/nodes/rename-test-gamma.mdx deleted file mode 100644 index d2631adb..00000000 --- a/en/use-dify/nodes/rename-test-gamma.mdx +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Rename Test Alpha -description: Complete validation of all three rename fixes ---- - -# Rename Test Alpha - -This test validates all three critical fixes for the rename bug: - -## The Three Fixes - -**Fix #1 - Extension Stripping (Location Lookup)**: -- Problem: `_handle_rename` looked up `"en/.../file.mdx"` but docs.json has `"en/.../file"` -- Solution: Strip `.mdx`/`.md` before location lookup -- Commit: 8bf899c6 - -**Fix #2 - Conditional Rename Detection**: -- Problem: Reconcile always skipped rename detection, treating R100 renames as delete+add -- Solution: Only skip when git actually detected renames -- Commit: 532e97cf - -**Fix #3 - Extension Stripping (New Target)**: -- Problem: Added entries with extension like `"cn/.../file.mdx"` instead of `"cn/.../file"` -- Solution: Strip extension before adding to docs.json -- Commit: b9489a0a - -## Test Plan - -1. **Alpha** (this file) → Translated to cn/jp -2. **Alpha → Beta** → Validate both physical files AND docs.json entries renamed -3. **Beta → Gamma** → Validate consistency across multiple renames - -## Expected Results - -After each rename: -- ✅ Physical files renamed: `cn/rename-test-*.mdx`, `jp/rename-test-*.mdx` -- ✅ docs.json entries updated: `cn/.../rename-test-*` (no extension) -- ✅ NO deletions of cn/jp entries -- ✅ Entries match English structure exactly - -🤖 Generated by Claude Code for complete rename fix validation