From f9f3c4f45a5b22dacd1bc8d4cde33b5b05550fa6 Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Wed, 22 Aug 2018 23:05:50 +0200 Subject: [PATCH] Patch Documenter v0.19.6 to create a correct version selector Co-authored-by: Morten Piibeleht Co-authored-by: Fredrik Ekre --- doc/make.jl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/doc/make.jl b/doc/make.jl index 126ef0a81eac5..e4d849ec167bf 100644 --- a/doc/make.jl +++ b/doc/make.jl @@ -166,6 +166,36 @@ makedocs( assets = ["assets/julia-manual.css", ] ) +# This overloads the function in Documenter that generates versions.js, to include +# v1/ in the version selector, instead of stable/. +# +# The function is identical to the version found in Documenter v0.19.6, except that +# it includes "v1" instead of "stable". +# +# Original: +# https://github.com/JuliaDocs/Documenter.jl/blob/v0.19.6/src/Writers/HTMLWriter.jl#L481-L506 +# +import Documenter.Writers.HTMLWriter: generate_version_file +function generate_version_file(dir::AbstractString) + named_folders = ["v1", "latest"] + tag_folders = [] + for each in readdir(dir) + each == "v1" && continue # skip the v1 symlink + occursin(Base.VERSION_REGEX, each) && push!(tag_folders, each) + end + # sort tags by version number + sort!(tag_folders, lt = (x, y) -> VersionNumber(x) < VersionNumber(y), rev = true) + open(joinpath(dir, "versions.js"), "w") do buf + println(buf, "var DOC_VERSIONS = [") + for group in (named_folders, tag_folders) + for folder in group + println(buf, " \"", folder, "\",") + end + end + println(buf, "];") + end +end + # Only deploy docs from 64bit Linux to avoid committing multiple versions of the same # docs from different workers. if "deploy" in ARGS && Sys.ARCH === :x86_64 && Sys.KERNEL === :Linux