6464
6565 # latest released stable — CHANGING IT MUST RESULT IN A CHANGE OF THE SYMLINK ON THE LIVE SERVER
6666version_stable = 34 # mapped to https://docs.nextcloud.com/server/stable/
67- display_version = release if release != 'latest' else str (version_stable + 1 )
67+ import re as _re
68+ # Detect stable branch version for display purposes.
69+ # For PRs: GITHUB_BASE_REF is the target branch (e.g. 'stable34').
70+ # For direct pushes: GITHUB_REF is 'refs/heads/stable34'.
71+ _base = os .environ .get ('GITHUB_BASE_REF' , '' )
72+ _ref = os .environ .get ('GITHUB_REF' , '' )
73+ _stable_ver = (
74+ _re .match (r'^stable(\d+)$' , _base )
75+ or _re .match (r'^refs/heads/stable(\d+)$' , _ref )
76+ )
77+ display_version = (
78+ release if release != 'latest' # PDF/ePub builds (DOCS_RELEASE set)
79+ else _stable_ver .group (1 ) if _stable_ver # stableNN branches and PRs targeting them
80+ else str (version_stable + 1 ) # master
81+ )
6882
6983# Also search for "TODO ON RELEASE" in the rst files
7084
@@ -83,11 +97,20 @@ def setup(app):
8397
8498def generateVersionsDocs (current_docs ):
8599 versions_doc = []
100+
101+ # If viewing an unsupported (older than version_start) branch, prepend it so it
102+ # appears last after the template's |reverse — e.g. "26 (unsupported)" at the bottom.
103+ if _stable_ver :
104+ branch_ver = int (_stable_ver .group (1 ))
105+ if branch_ver < version_start :
106+ url = 'https://docs.nextcloud.com/server/%s/%s' % (str (branch_ver ), current_docs )
107+ versions_doc .append ((branch_ver , url , '%s (unsupported)' % branch_ver ))
108+
86109 for v in range (version_start , version_stable ):
87110 url = 'https://docs.nextcloud.com/server/%s/%s' % (str (v ), current_docs )
88111 versions_doc .append ((v , url , str (v )))
89112 versions_doc .append (('stable' , 'https://docs.nextcloud.com/server/stable/%s' % current_docs , '%s (stable)' % version_stable ))
90- versions_doc .append (('latest' , 'https://docs.nextcloud.com/server/latest/%s' % current_docs , '%s (latest)' % display_version ))
113+ versions_doc .append (('latest' , 'https://docs.nextcloud.com/server/latest/%s' % current_docs , '%s (latest)' % str ( version_stable + 1 ) ))
91114 return versions_doc
92115
93116if version .isdigit ():
@@ -96,7 +119,7 @@ def generateVersionsDocs(current_docs):
96119 github_branch = 'master'
97120
98121html_context = {
99- 'current_version' : version ,
122+ 'current_version' : int ( _stable_ver . group ( 1 )) if _stable_ver else version ,
100123 'display_version' : display_version ,
101124 'READTHEDOCS' : True ,
102125
0 commit comments