Как ссылка на любой локальный файл с синтаксисом уценки?
У меня есть локальный файл уценки, содержащий несколько ссылок, и я хочу, чтобы эти ссылки шли к локальному файлу, например, pdf.
Я использую следующий синтаксис:
[my link](file:///C:/my_file.pdf)
Но когда я открываю файл уценки на странице Firefox и нажимаю на ссылку, ничего не происходит.
Что именно я пропустил? Можно ли открыть локальный файл?
Ответы
Ответ 1
Как вы открываете рендеринг Markdown?
Если вы размещаете его через HTTP, т.е. вы получаете доступ к нему через http://
или https://
, большинство современных браузеров откажутся открывать локальные ссылки, например. с file://
. Это функция безопасности:
В целях безопасности приложения Mozilla блокируют ссылки на локальные файлы (и каталоги) из удаленных файлов. Сюда входят ссылки на файлы на вашем жестком диске, на подключенных сетевых дисках и доступные через Uniform Naming Convention (UNC). Это предотвращает ряд неприятных возможностей, в том числе:
- Разрешить сайтам обнаруживать вашу операционную систему, проверяя пути установки по умолчанию
- Разрешить сайтам использовать уязвимости системы (например,
C:\con\con
в Windows 95/98) - Разрешить сайтам определять предпочтения браузера или читать конфиденциальные данные
На этой странице есть некоторые обходные пути, но я рекомендую избегать этого, если вы можете.
Ответ 2
Ни один из ответов не работал у меня. Но, вдохновленный ответом BarryPye, я узнал, что он работает при использовании относительных путей!
# Contents from the '/media/user/README_1.md' markdown file:
Read more [here](./README_2.md) # It works!
Read more [here](file:///media/user/README_2.md) # Doesn't work
Read more [here](/media/user/README_2.md) # Doesn't work
Ответ 3
Вы ссылаетесь на локальный файл так же, как вы ссылаетесь на локальные изображения. Ниже приведен пример ссылки на файл start_caQtDM_7id.sh
в том же каталоге, что и источник уценки:

Ответ 4
Да, это возможно. Я попробовал именно этот пример, и мой PDF был открыт в Firefox. Я распространяю файлы MD, HTML и PDF в разных каталогах, чтобы исключить возможность того, что мой редактор Markdown каким-то образом преобразует ссылку файла в относительную.
Использование [my file](\C:\\my_file.pdf)
должно работать также.
Ответ 5
Если файл находится в той же директории, где находится файл .md, тогда просто поместите [Click here](MY-FILE.md)
.
В противном случае можно создать путь из корневого каталога проекта. Поэтому, если весь корневой каталог проекта /git-repo называется "my-app", и кто-то хочет указать на my-app/client/read-me.md, то попробуйте [My hyperlink](/client/read-me.md)
.
По крайней мере, работает от Chrome.