Repository navigation
Relative path link with ':ignore' dosen't work #1929
Copy link
Copy link
Closed
Labels
bugconfirmed as a bugconfirmed as a bug
Description
Activity
I think, this part has some probrem...
In
/src/core/render/compiler/link.js, Line 21:
(+ my guessing note)if ( !isAbsolutePath(href) && // -> true !compilerClass._matchNotCompileLink(href) && // -> true !config.ignore // -> false ) { /* in this case: this part will not run */ if (href === compilerClass.config.homepage) { href = 'README'; } href = router.toURL(href, null, router.getCurrentPath()); // Relative path resolving to absolute path? } else { /* in this case: this part will run */ if (!isAbsolutePath(href) && href.slice(0, 2) === './') { // -> true -> true /* in this case: this part will run */ href = document.URL.replace(/\/(?!.*\/).*/, '/').replace('#/./', '') + href; // Remove from last '/' to end of URL, and reemove '#/./' (for compile ignored link) ? } // for 'mailto:' link process? // ... }
About this part:
href = document.URL.replace(/\/(?!.*\/).*/, '/').replace('#/./', '') + href; // Remove string from last '/', remove '#/./' (for compile ignored link) ?
If current document URL:
http://localhost:3000/#/page/any_doc
If wrote link:./any_file.pdfdocument.URL // -> http://localhost:3000/#/page/any_doc document.URL.replace(/\/(?!.*\/).*/, '/').replace('#/./', '') // -> http://localhost:3000/#/page/ href // -> ./any_file.pdf document.URL.replace(/\/(?!.*\/).*/, '/').replace('#/./', '') + href // -> http://localhost:3000/#/page/./any_file.pdf // (but should be: http://localhost:3000/page/any_file.pdf)
Reacted by Koy ZhuangI think we should be letting the browser handle URLs natively. F.e. maybe we can use
new URL('./relative/file.foo', base)wherebasecould be the site base path likehttp://localhost:3000/#/page/any_doc. So that we avoid doing relative path logic if the browser already can.Does URL support having
#in thebase? If not, then that would prevent the idea from being feasible. Need to try it- addedbugconfirmed as a bugconfirmed as a bugand removed
on Jul 25, 2025
Metadata
Metadata
Assignees
Labels
bugconfirmed as a bugconfirmed as a bug
Bug Report
As far as I know, there are no same issues on here, no same questions on StackOverflow.
Sorry if already exist same one.
Steps to reproduce
index.html:any_doc.md:Make any PDF file as
docs/page/any_file.pdfAccess to
http://localhost:3000/#/page/any_docWhat is current behaviour
The link follows
http://localhost:3000/#/page/./any_file.pdfIt looks
':ignore'(no compile option) and relative path resolving are not works.What is the expected behaviour
The link follows
http://localhost:3000/page/any_file.pdfOther relevant information
Bug does still occur when all/other plugins are disabled?
Your OS: Linux Mint 20.3 Uma
Node.js version: 16.16.0
npm/yarn version: 9.1.2
Browser version: Brave 1.45.127 Chromium: 107.0.5304.110(Official Build)
Docsify version: 4.13.0
Docsify plugins: none (running in default)
Please create a reproducible sandbox
Mention the docsify version in which this bug was not present (if any)
Supplement
I tried specifying absolute path like this:
It works on local environment. But on GitHub pages, not works.
On local environment:
follows:
http://localhost:3000/page/any_file.pdfOn GitHub pages (github.io):
follows:
https://{user_name}.github.io/page/any_file.pdfshould be:
https://{user_name}.github.io/{repo_name}/page/any_file.pdf