284284    )
285285end 
286286
287+ const  output_path =  joinpath (buildroot, " doc" " _build" ?  " pdf" :  " html" " en" 
287288makedocs (
288-     build     =  joinpath (buildroot,  " doc " ,  " _build " , (render_pdf  ?   " pdf "   :   " html " ),  " en " ) ,
289+     build     =  output_path ,
289290    modules   =  [Main, Base, Core, [Base. root_module (Base, stdlib. stdlib) for  stdlib in  STDLIB_DOCS]. .. ],
290291    clean     =  true ,
291292    doctest   =  (" doctest=fix" in  ARGS ) ?  (:fix ) :  (" doctest=only" in  ARGS ) ?  (:only ) :  (" doctest=true" in  ARGS ) ?  true  :  false ,
@@ -299,6 +300,31 @@ makedocs(
299300    pages     =  PAGES,
300301)
301302
303+ #  Update URLs to external stdlibs (JuliaLang/julia#43199)
304+ for  (root, _, files) in  walkdir (output_path), file in  joinpath .(root, files)
305+     endswith (file, " .html" ||  continue 
306+     str =  read (file, String)
307+     #  Index page links, update
308+     #    https://github.com/JuliaLang/julia/blob/master/stdlib/${STDLIB_NAME}-${STDLIB_COMMIT}/path/to.md
309+     #  to
310+     #    https://github.com/JuliaLang/${STDLIB_NAME}.jl/blob/master/docs/src/index.md
311+     str =  replace (str, r" https://github.com/JuliaLang/julia/blob/master/stdlib/(.*)-\w {40}/(.*\. md)" => 
312+                        s "\1 .jl/blob/master/\2 " 
313+     #  Link to source links, update
314+     #    https://github.com/JuliaLang/julia/blob/${JULIA_COMMIT}/stdlib/${STDLIB_NAME}-${STDLIB_COMMIT}/path/to.jl#${LINES}
315+     #  to
316+     #    https://github.com/JuliaLang/${STDLIB_NAME}.jl/blob/${STDLIB_COMMIT}/path/to.jl#${LINES}
317+     str =  replace (str, r" https://github\. com/JuliaLang/julia/blob/\w {40}/stdlib/(.*)-(\w {40})/(.*\. jl#L\d +(?:-L\d +)?)" => 
318+                        s "\1 .jl/blob/\2 /\3 " 
319+     #  Some stdlibs are not hosted by JuliaLang
320+     str =  replace (str, r" (https://github\. com)/JuliaLang/(ArgTools\. jl/blob)" =>  s "\1 /JuliaIO/\2 " 
321+     str =  replace (str, r" (https://github\. com)/JuliaLang/(LibCURL\. jl/blob)" =>  s "\1 /JuliaWeb/\2 " 
322+     str =  replace (str, r" (https://github\. com)/JuliaLang/(SHA\. jl/blob)" =>  s "\1 /JuliaCrypto/\2 " 
323+     str =  replace (str, r" (https://github\. com)/JuliaLang/(Tar\. jl/blob)" =>  s "\1 /JuliaIO/\2 " 
324+     #  Write back to the file
325+     write (file, str)
326+ end 
327+ 
302328#  Define our own DeployConfig
303329struct  BuildBotConfig <:  Documenter.DeployConfig  end 
304330function  Documenter. deploy_folder (:: BuildBotConfig ; devurl, repo, branch, kwargs... )
0 commit comments