Skip to content

Commit cd4330d

Browse files
committed
rc docs: hack Documenter to insert rc docs in the version selector.
1 parent 50c4e67 commit cd4330d

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

doc/make.jl

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,33 @@ end
233233

234234
const devurl = "v$(VERSION.major).$(VERSION.minor)-dev"
235235

236+
# Hack to make rc docs visible in the version selector
237+
struct Versions versions end
238+
function Documenter.Writers.HTMLWriter.expand_versions(dir::String, v::Versions)
239+
# Find all available docs
240+
available_folders = readdir(dir)
241+
cd(() -> filter!(!islink, available_folders), dir)
242+
filter!(x -> occursin(Base.VERSION_REGEX, x), available_folders)
243+
244+
# Look for docs for an "active" release candidate and insert it
245+
vnums = [VersionNumber(x) for x in available_folders]
246+
master_version = maximum(vnums)
247+
filter!(x -> x.major == 1 && x.minor == master_version.minor-1, vnums)
248+
rc = maximum(vnums)
249+
if !isempty(rc.prerelease) && occursin(r"^rc", rc.prerelease[1])
250+
src = "v$(rc)"
251+
@assert src available_folders
252+
push!(v.versions, src => src, pop!(v.versions))
253+
end
254+
255+
return Documenter.Writers.HTMLWriter.expand_versions(dir, v.versions)
256+
end
257+
236258
deploydocs(
237259
repo = "github.com/JuliaLang/docs.julialang.org.git",
238260
deploy_config = BuildBotConfig(),
239261
target = joinpath(buildroot, "doc", "_build", "html", "en"),
240262
dirname = "en",
241263
devurl = devurl,
242-
versions = ["v#.#", devurl => devurl]
264+
versions = Versions(["v#.#", devurl => devurl]),
243265
)

0 commit comments

Comments
 (0)