You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ma...@apache.org on 2026/01/19 18:21:23 UTC

(flink) branch release-1.17 updated (c9acb4e03e9 -> e5fa4794d1f)

This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a change to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git


    from c9acb4e03e9 [hotfix] Add missing backslash to skip webui build during Javadoc generation
     new 5a2075dd92a [hotfix][docs] Remove .zh suffix from refs in standalone/overview.md
     new df0dd7976af [FLINK-38914][docs] Preserve page path when linking to stable version
     new d0c850ccef0 [FLINK-38914][docs] Add canonical tags pointing to stable docs
     new f6f45abd805 [FLINK-38925][docs] Update Matomo URL to the right domain
     new 06888e60abf [FLINK-38924][docs] Redirect users to documentation home page when encountering a 404
     new 2311f02cbae [hotfix][docs] Configures Apache to serve the custom 404.html page with proper 404 status code and always serve index.html for dirs
     new 44377428381 [hotfix][python] Update miniconda to version that supports Python 3.10
     new e5fa4794d1f [hotfix][python] Pin sphinxcontrib packages for Sphinx 4.5.0 compatibility

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/docs.sh                          |   2 +-
 .../resource-providers/standalone/overview.md      |   8 +-
 docs/layouts/404.html                              | 119 +++++++++++++++++++++
 docs/layouts/_default/baseof.html                  |   2 +-
 .../partials/docs/inject/content-before.html       |   6 +-
 docs/layouts/partials/docs/inject/head.html        |  10 ++
 .../archetype.properties => docs/static/.htaccess  |  11 +-
 flink-python/dev/lint-python.sh                    |  10 +-
 8 files changed, 151 insertions(+), 17 deletions(-)
 create mode 100644 docs/layouts/404.html
 copy flink-quickstart/flink-quickstart-java/src/test/resources/projects/testArtifact/archetype.properties => docs/static/.htaccess (77%)


(flink) 08/08: [hotfix][python] Pin sphinxcontrib packages for Sphinx 4.5.0 compatibility

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit e5fa4794d1f503d2d0d6b7759f6527462165e5df
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Mon Jan 19 14:52:28 2026 +0100

    [hotfix][python] Pin sphinxcontrib packages for Sphinx 4.5.0 compatibility
    
    Backport from release-1.19. The newer sphinxcontrib packages require
    Sphinx v5.0+, which is incompatible with the Sphinx 4.5.0 version
    used by this release.
---
 flink-python/dev/lint-python.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/flink-python/dev/lint-python.sh b/flink-python/dev/lint-python.sh
index 3ad4b126e96..c178cb9e73e 100755
--- a/flink-python/dev/lint-python.sh
+++ b/flink-python/dev/lint-python.sh
@@ -330,7 +330,7 @@ function install_sphinx() {
         fi
     fi
 
-    $CURRENT_DIR/install_command.sh -q Sphinx==4.5.0 importlib-metadata==4.4.0 Docutils==0.17.1 pydata_sphinx_theme==0.11.0 sphinx_mdinclude==0.5.3 "Jinja2<3.1.0" 2>&1 >/dev/null
+    $CURRENT_DIR/install_command.sh -q Sphinx==4.5.0 importlib-metadata==4.4.0 Docutils==0.17.1 pydata_sphinx_theme==0.11.0 sphinx_mdinclude==0.5.3 "Jinja2<3.1.0" "sphinxcontrib-applehelp<1.0.8" "sphinxcontrib.devhelp<1.0.6" "sphinxcontrib.htmlhelp<2.0.5" "sphinxcontrib-serializinghtml<1.1.10" "sphinxcontrib-qthelp<1.0.7" 2>&1 >/dev/null
     if [ $? -ne 0 ]; then
         echo "pip install sphinx failed \
         please try to exec the script again.\


(flink) 04/08: [FLINK-38925][docs] Update Matomo URL to the right domain

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit f6f45abd805f039f5ed736d61b949aaa51b20f35
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Thu Jan 15 14:21:30 2026 +0100

    [FLINK-38925][docs] Update Matomo URL to the right domain
---
 .github/workflows/docs.sh         | 2 +-
 docs/layouts/_default/baseof.html | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/docs.sh b/.github/workflows/docs.sh
index 8acf70126f9..1c0a2f5b2fe 100755
--- a/.github/workflows/docs.sh
+++ b/.github/workflows/docs.sh
@@ -58,7 +58,7 @@ mvn javadoc:aggregate -B \
     -Dcheckstyle.skip=true \
     -Dspotless.check.skip=true \
     -Denforcer.skip=true \
-    -Dheader="<a href=\"http://flink.apache.org/\" target=\"_top\"><h1>Back to Flink Website</h1></a> <script>var _paq=window._paq=window._paq||[];_paq.push([\"disableCookies\"]),_paq.push([\"setDomains\",[\"*.flink.apache.org\",\"*.nightlies.apache.org/flink\"]]),_paq.push([\"trackPageView\"]),_paq.push([\"enableLinkTracking\"]),function(){var u=\"//matomo.privacy.apache.org/\";_paq.push([\"setTrackerUrl\",u+\"matomo.php\"]),_paq.push([\"setSiteId\",\"1\"]);var d=document, g=d.createEle [...]
+    -Dheader="<a href=\"http://flink.apache.org/\" target=\"_top\"><h1>Back to Flink Website</h1></a> <script>var _paq=window._paq=window._paq||[];_paq.push([\"disableCookies\"]),_paq.push([\"setDomains\",[\"*.flink.apache.org\",\"*.nightlies.apache.org/flink\"]]),_paq.push([\"trackPageView\"]),_paq.push([\"enableLinkTracking\"]),function(){var u=\"//analytics.apache.org/\";_paq.push([\"setTrackerUrl\",u+\"matomo.php\"]),_paq.push([\"setSiteId\",\"1\"]);var d=document, g=d.createElement( [...]
 mv target/site/apidocs docs/target/api/java
 mvn -pl flink-scala scala:doc -B \
     -Dcheckstyle.skip=true \
diff --git a/docs/layouts/_default/baseof.html b/docs/layouts/_default/baseof.html
index f9b76002fa0..7ce1dad33e3 100644
--- a/docs/layouts/_default/baseof.html
+++ b/docs/layouts/_default/baseof.html
@@ -34,7 +34,7 @@ under the License.
       _paq.push(['trackPageView']);
       _paq.push(['enableLinkTracking']);
       (function() {
-        var u="//matomo.privacy.apache.org/";
+        var u="//analytics.apache.org/";
         _paq.push(['setTrackerUrl', u+'matomo.php']);
         _paq.push(['setSiteId', '1']);
         var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];


(flink) 07/08: [hotfix][python] Update miniconda to version that supports Python 3.10

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 4437742838115e1cdf74deb1f2ef0ab939c8f049
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Mon Jan 19 14:11:28 2026 +0100

    [hotfix][python] Update miniconda to version that supports Python 3.10
    
    Backport of miniconda update from FLINK-33029. The old miniconda 4.7.10
    (from 2019) cannot properly create Python 3.10 environments, causing
    documentation builds to fail with path errors (python3.1 vs python3.10).
---
 flink-python/dev/lint-python.sh | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/flink-python/dev/lint-python.sh b/flink-python/dev/lint-python.sh
index 1a0235db491..3ad4b126e96 100755
--- a/flink-python/dev/lint-python.sh
+++ b/flink-python/dev/lint-python.sh
@@ -185,10 +185,12 @@ function install_wget() {
 # some packages including checks such as tox and flake8.
 
 function install_miniconda() {
-    OS_TO_CONDA_URL=("https://repo.continuum.io/miniconda/Miniconda3-4.7.10-MacOSX-x86_64.sh" \
-        "https://repo.continuum.io/miniconda/Miniconda3-4.7.10-Linux-x86_64.sh")
+    local sys_machine=$(uname -m)
+    echo "Detected machine: ${sys_machine}"
+    OS_TO_CONDA_URL=("https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-MacOSX-${sys_machine}.sh" \
+        "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-${sys_machine}.sh")
     if [ ! -f "$CONDA_INSTALL" ]; then
-        print_function "STEP" "download miniconda..."
+        print_function "STEP" "download miniconda from ${OS_TO_CONDA_URL[$1]}..."
         download ${OS_TO_CONDA_URL[$1]} $CONDA_INSTALL_SH
         chmod +x $CONDA_INSTALL_SH
         if [ $? -ne 0 ]; then


(flink) 01/08: [hotfix][docs] Remove .zh suffix from refs in standalone/overview.md

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 5a2075dd92ac9998193a9bbf3e60b4ee159e8236
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Mon Jan 19 17:13:45 2026 +0100

    [hotfix][docs] Remove .zh suffix from refs in standalone/overview.md
---
 .../docs/deployment/resource-providers/standalone/overview.md     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/content.zh/docs/deployment/resource-providers/standalone/overview.md b/docs/content.zh/docs/deployment/resource-providers/standalone/overview.md
index 229d028c24c..5bd663aa9c9 100644
--- a/docs/content.zh/docs/deployment/resource-providers/standalone/overview.md
+++ b/docs/content.zh/docs/deployment/resource-providers/standalone/overview.md
@@ -116,12 +116,12 @@ cd flink-*
 
 Flink 目录必须放在所有 worker 节点的相同目录下。你可以使用共享的 NFS 目录,或将 Flink 目录复制到每个 worker 节点上。
 
-请参考 [配置参数页面]({{< ref "docs/deployment/config.zh" >}}) 获取更多细节以及额外的配置项。
+请参考 [配置参数页面]({{< ref "docs/deployment/config" >}}) 获取更多细节以及额外的配置项。
 
 特别地,
 
 * 每个 JobManager 的可用内存值(`jobmanager.memory.process.size`),
-* 每个 TaskManager 的可用内存值 (`taskmanager.memory.process.size`,并检查 [内存调优指南]({{< ref "docs/deployment/memory/mem_tuning.zh" >}}#configure-memory-for-standalone-deployment)),
+* 每个 TaskManager 的可用内存值 (`taskmanager.memory.process.size`,并检查 [内存调优指南]({{< ref "docs/deployment/memory/mem_tuning" >}}#configure-memory-for-standalone-deployment)),
 * 每台机器的可用 CPU 数(`taskmanager.numberOfTaskSlots`),
 * 集群中所有 CPU 数(`parallelism.default`)和
 * 临时目录(`io.tmp.dirs`)
@@ -172,7 +172,7 @@ bin/taskmanager.sh start|start-foreground|stop|stop-all
 
 ## High-Availability with Standalone
 
-In order to enable HA for a standalone cluster, you have to use the [ZooKeeper HA services]({{< ref "docs/deployment/ha/zookeeper_ha.zh" >}}).
+In order to enable HA for a standalone cluster, you have to use the [ZooKeeper HA services]({{< ref "docs/deployment/ha/zookeeper_ha" >}}).
 
 Additionally, you have to configure your cluster to start multiple JobManagers.
 
@@ -188,7 +188,7 @@ In order to start an HA-cluster configure the *masters* file in `conf/masters`:
   jobManagerAddressX:webUIPortX
   </pre>
 
-By default, the job manager will pick a *random port* for inter process communication. You can change this via the [high-availability.jobmanager.port]({{< ref "docs/deployment/config.zh" >}}#high-availability-jobmanager-port) key. This key accepts single ports (e.g. `50010`), ranges (`50000-50025`), or a combination of both (`50010,50011,50020-50025,50050-50075`).
+By default, the job manager will pick a *random port* for inter process communication. You can change this via the [high-availability.jobmanager.port]({{< ref "docs/deployment/config" >}}#high-availability-jobmanager-port) key. This key accepts single ports (e.g. `50010`), ranges (`50000-50025`), or a combination of both (`50010,50011,50020-50025,50050-50075`).
 
 ### Example: Standalone Cluster with 2 JobManagers
 


(flink) 03/08: [FLINK-38914][docs] Add canonical tags pointing to stable docs

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit d0c850ccef08d930e73ea34e9326d5f907507cbd
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Wed Jan 14 14:42:50 2026 +0100

    [FLINK-38914][docs] Add canonical tags pointing to stable docs
    
    All documentation pages now include a canonical link tag pointing to the stable version (flink-docs-stable). This prevents search engines from indexing duplicate content across master, release, and stable versions, consolidating SEO value on the stable docs where users should land.
---
 docs/layouts/partials/docs/inject/head.html | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/docs/layouts/partials/docs/inject/head.html b/docs/layouts/partials/docs/inject/head.html
index f456c36bdc2..822b64ae3f3 100644
--- a/docs/layouts/partials/docs/inject/head.html
+++ b/docs/layouts/partials/docs/inject/head.html
@@ -19,6 +19,16 @@ under the License.
 <!--
     Misc other content that should run in the header
 -->
+<!-- Canonical URL pointing to stable docs to avoid duplicate content issues across versions -->
+{{- $basePath := (urls.Parse .Site.BaseURL).Path -}}
+{{- $pagePath := strings.TrimPrefix $basePath .RelPermalink -}}
+{{- if eq $pagePath "" -}}
+  {{- $pagePath = "/" -}}
+{{- else if not (hasPrefix $pagePath "/") -}}
+  {{- $pagePath = printf "/%s" $pagePath -}}
+{{- end -}}
+<link rel="canonical" href="https://nightlies.apache.org/flink/flink-docs-stable{{ $pagePath }}" />
+
 <link rel="stylesheet" type="text/css" href="{{.Site.BaseURL}}/font-awesome/css/font-awesome.min.css">
 <script src="{{.Site.BaseURL}}/js/anchor.min.js"></script>
 <script src="{{.Site.BaseURL}}/js/flink.js"></script>


(flink) 05/08: [FLINK-38924][docs] Redirect users to documentation home page when encountering a 404

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 06888e60abf96299920399dc78da0e7bc94a2f50
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Thu Jan 15 13:56:27 2026 +0100

    [FLINK-38924][docs] Redirect users to documentation home page when encountering a 404
    
    (cherry picked from commit 1047406a76620bf8ee5898c795b0009fb8fb5d64)
---
 docs/layouts/404.html | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/docs/layouts/404.html b/docs/layouts/404.html
new file mode 100644
index 00000000000..0a90ca9a5fb
--- /dev/null
+++ b/docs/layouts/404.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+{{- $stableUrl := "https://nightlies.apache.org/flink/flink-docs-stable/" -}}
+{{- $stableUrlZh := "https://nightlies.apache.org/flink/flink-docs-stable/zh/" -}}
+{{- $isZh := eq .Site.Language.Lang "zh" -}}
+<html lang="{{ .Site.Language.Lang }}" dir={{ .Site.Language.LanguageDirection }}>
+
+<head>
+  {{ hugo.Generator }}
+  {{ partial "docs/html-head" . }}
+  {{ partial "docs/inject/head" . }}
+  <style>
+    .not-found-options {
+      display: flex;
+      flex-wrap: wrap;
+      gap: 1rem;
+      margin-top: 1.5rem;
+    }
+    .not-found-option {
+      flex: 1;
+      min-width: 200px;
+      max-width: 300px;
+    }
+    .not-found-option a {
+      display: block;
+      padding: 0.75rem 1rem;
+      border: 1px solid var(--color-link);
+      border-radius: 4px;
+      text-decoration: none;
+      font-weight: 500;
+    }
+    .not-found-option a:hover {
+      background: var(--color-link);
+      color: white;
+    }
+    .not-found-option small {
+      display: block;
+      margin-top: 0.5rem;
+      color: var(--gray-600, #666);
+      font-size: 0.875rem;
+    }
+  </style>
+</head>
+
+<body dir={{ .Site.Language.LanguageDirection }}>
+  <input type="checkbox" class="hidden toggle" id="menu-control" />
+  <input type="checkbox" class="hidden toggle" id="toc-control" />
+  <main class="container flex">
+    <aside class="book-menu">
+      {{ partial "docs/menu" . }}
+    </aside>
+
+    <div class="book-page">
+      <header class="book-header">
+        {{ partial "docs/header" . }}
+      </header>
+
+      <article class="markdown">
+        {{- if $isZh }}
+        <h1>页面未找到</h1>
+        <p>我们无法在当前版本中找到此页面。这有时发生在页面在版本之间移动或内容是特定版本的情况下。尝试使用搜索来查找您要找的内容。</p>
+        <div class="not-found-options">
+          <div class="not-found-option">
+            <a href="{{ $stableUrlZh }}">查看最新版本文档</a>
+            <small>推荐大多数用户使用。查看稳定版文档。</small>
+          </div>
+          <div class="not-found-option">
+            <a href="{{ .Site.Home.RelPermalink }}">留在当前版本</a>
+            <small>继续浏览 {{ .Site.Params.VersionTitle }} 开发文档。</small>
+          </div>
+        </div>
+        {{- else }}
+        <h1>Page Not Found</h1>
+        <p>We couldn't find this page in the current version. This sometimes happens when pages move between releases or when content is version-specific. Try using the search to find what you're looking for.</p>
+        <div class="not-found-options">
+          <div class="not-found-option">
+            <a href="{{ $stableUrl }}">View Latest Release Docs</a>
+            <small>Recommended for most users. View the stable documentation.</small>
+          </div>
+          <div class="not-found-option">
+            <a href="{{ .Site.Home.RelPermalink }}">Stay on This Version</a>
+            <small>Continue browsing {{ .Site.Params.VersionTitle }} development docs.</small>
+          </div>
+        </div>
+        {{- end }}
+      </article>
+
+      {{ partial "docs/inject/content-after" . }}
+
+      <footer class="book-footer">
+        {{ partial "docs/footer" . }}
+        {{ partial "docs/inject/footer" . }}
+      </footer>
+
+      <label for="menu-control" class="hidden book-menu-overlay"></label>
+    </div>
+  </main>
+
+  {{ partial "docs/inject/body" . }}
+</body>
+
+</html>


(flink) 06/08: [hotfix][docs] Configures Apache to serve the custom 404.html page with proper 404 status code and always serve index.html for dirs

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 2311f02cbae8a805103a3d564c4f13afed6a96ca
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Mon Jan 19 16:33:49 2026 +0100

    [hotfix][docs] Configures Apache to serve the custom 404.html page with proper 404 status code and always serve index.html for dirs
---
 docs/static/.htaccess | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/docs/static/.htaccess b/docs/static/.htaccess
new file mode 100644
index 00000000000..9161973ba5c
--- /dev/null
+++ b/docs/static/.htaccess
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Ensure index.html is served for directory requests
+DirectoryIndex index.html
+
+# Custom 404 error page
+ErrorDocument 404 /flink/flink-docs-release-1.17/404.html


(flink) 02/08: [FLINK-38914][docs] Preserve page path when linking to stable version

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

martijnvisser pushed a commit to branch release-1.17
in repository https://gitbox.apache.org/repos/asf/flink.git

commit df0dd7976af506abc8c186b2a4cf7185757a5e44
Author: Martijn Visser <29...@users.noreply.github.com>
AuthorDate: Mon Dec 29 13:08:42 2025 +0100

    [FLINK-38914][docs] Preserve page path when linking to stable version
    
    The "stable version" link in the warning banner for unreleased/out-of-date docs now redirects to the equivalent page in the stable docs instead of always redirecting to the homepage.
---
 docs/layouts/partials/docs/inject/content-before.html | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/docs/layouts/partials/docs/inject/content-before.html b/docs/layouts/partials/docs/inject/content-before.html
index bfbea6ce7ab..35d7dde271f 100644
--- a/docs/layouts/partials/docs/inject/content-before.html
+++ b/docs/layouts/partials/docs/inject/content-before.html
@@ -20,16 +20,18 @@ under the License.
     Partial that renders before the content on every page.
 -->
 {{ if $.Site.Params.ShowOutDatedWarning }}
+{{ $stableURL := replaceRE "/flink-docs-[^/]+/" "/flink-docs-stable/" .Permalink }}
 <article class="markdown">
     <blockquote style="border-color:#f66">
-        {{ markdownify "This documentation is for an out-of-date version of Apache Flink. We recommend you use the latest [stable version](https://nightlies.apache.org/flink/flink-docs-stable/)."}}
+        {{ markdownify (printf "This documentation is for an out-of-date version of Apache Flink. We recommend you use the latest [stable version](%s)." $stableURL) }}
     </blockquote>
 </article>
 {{ end }}
 {{ if (not $.Site.Params.IsStable) }}
+{{ $stableURL := replaceRE "/flink-docs-[^/]+/" "/flink-docs-stable/" .Permalink }}
 <article class="markdown">
     <blockquote style="border-color:#f66">
-        {{ markdownify "This documentation is for an unreleased version of Apache Flink. We recommend you use the latest [stable version](https://nightlies.apache.org/flink/flink-docs-stable/)."}}
+        {{ markdownify (printf "This documentation is for an unreleased version of Apache Flink. We recommend you use the latest [stable version](%s)." $stableURL) }}
     </blockquote>
 </article>
 {{ end }}