簡體   English   中英

如何使用 Markdown 語法鏈接到任何本地文件?

[英]How link to any local file with markdown syntax?

我有一個包含多個鏈接的本地降價文件,我希望該鏈接指向本地文件,如 pdf。

我使用以下語法:

[my link](file:///C:/my_file.pdf)

但是當我將 Markdown 文件打開到 Firefox 頁面並單擊鏈接時,沒有任何反應。

我到底錯過了什么? 是否可以打開本地文件?

沒有一個答案對我有用。 但是受到 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

你是如何打開渲染的 Markdown 的?

如果您通過 HTTP 托管它,即您通過http://https://訪問它,大多數現代瀏覽器將拒絕打開本地鏈接,例如使用file:// 這是一個安全功能

出於安全目的,Mozilla 應用程序會阻止從遠程文件到本地文件(和目錄)的鏈接。 這包括鏈接到硬盤驅動器、映射網絡驅動器上的文件,以及通過統一命名約定(UNC) 路徑訪問的文件。 可以防止許多不愉快的可能性,包括:

  • 允許站點通過檢查默認安裝路徑來檢測您的操作系統
  • 允許站點利用系統漏洞(例如,Windows 95/98 中的C:\\con\\con
  • 允許站點檢測瀏覽器首選項或讀取敏感數據

該頁面上列出了一些解決方法,但我的建議是盡可能避免這樣做。

鏈接到本地​​文件的方式與鏈接到本地​​圖像的方式相同。 下面是一個鏈接到與 markdown 源相同目錄中的文件start_caQtDM_7id.sh的示例:

![start_caQtDM_7id.sh](./start_caQtDM_7id.sh) 

在弄亂@BringBackCommodore64 答案后,我想通了

[link](file:///d:/absolute.md)    # absolute filesystem path
[link](./relative1.md)            # relative to opened file
[link](/relativeToProject.md)     # relative to opened project

所有這些都在Visual Studio Code進行了測試並且可以正常工作,

注意:絕對路徑在編輯器中有效,但在降價預覽模式下無效!

如果文件名中有空格,請嘗試以下操作:

[file](./file%20with%20spaces.md)
[file](<./file with spaces.md>)

第一個似乎更可靠

這是一個老問題,但對我來說,它似乎仍然沒有對 OP 的問題提供完整的答案。 根據我的經驗,在使用 Firefox 'Markdown Viewer' 插件時,選擇的關於安全性可能是問題的答案實際上通常不是問題。 此外,OP 似乎使用 MS-Windows,因此存在指定不同驅動器的附加問題。

因此,對於 Windows 上的“Markdown Viewer”插件(以及我見過的其他 Markdown 渲染器),這里有一個更完整但更簡單的答案:只需像往常一樣輸入本地路徑,如果它是絕對路徑確保以斜線開頭。 所以:

[a relative link](../../some/dir/filename.md)
[Link to file in another dir on same drive](/another/dir/filename.md)
[Link to file in another dir on a different drive](/D:/dir/filename.md)

考慮到他們的例子,最后一個可能是 OP 正在尋找的。 請注意,這也可用於顯示目錄而不是文件。

雖然晚了,但我希望這會有所幫助!

謝謝你!

第一個解決方案,它的工作原理!

[a relative link](../../some/dir/filename.md)
[Link to file in another dir on same drive](/another/dir/filename.md)
[Link to file in another dir on a different drive](/D:/dir/filename.md)

但我需要放置更多../直到我的文件所在的文件夾,如下所示:

[FileToOpen](../../../../folderW/folderX/folderY/folderZ/FileToOpen.txt)

如果該文件與 .md 所在的目錄位於同一目錄中,則只需輸入[Click here](MY-FILE.md)

否則,可以從項目的根目錄創建路徑。 所以如果整個project/git-repo根目錄都叫'my-app',並且想指向my-app/client/read-me.md,那么試試[My hyperlink](/client/read-me.md)

至少適用於 Chrome。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM