diff --git a/scribble-lib/scribble/html-render.rkt b/scribble-lib/scribble/html-render.rkt index 978c5f88..c97c28ec 100644 --- a/scribble-lib/scribble/html-render.rkt +++ b/scribble-lib/scribble/html-render.rkt @@ -1336,10 +1336,15 @@ `((a ([href ,(cond [(and ext-id external-root-url - (let ([rel (find-relative-path - (find-doc-dir) - (relative->path (dest-path dest)))]) - (and (relative-path? rel) + (let* ([ref-path (relative->path (dest-path dest))] + [rel (if (relative-path? ref-path) + #f + (find-relative-path + (find-doc-dir) + ref-path))]) + (and rel + (relative-path? rel) + (not (memq 'up (explode-path rel))) rel))) => (lambda (rel) (url->string*