いくつかのリンクを含むローカルマークダウンファイルがあり、そのリンクをpdfなどのローカルファイルにリンクさせたいです。
次の構文を使用します。
[my link](file:///C:/my_file.pdf)
しかし、マークダウンファイルをFirefoxページで開いてリンクをクリックしても、何も起こりません。
私は正確に何を逃しましたか?ローカルファイルを開くことはできますか?
いくつかのリンクを含むローカルマークダウンファイルがあり、そのリンクをpdfなどのローカルファイルにリンクさせたいです。
次の構文を使用します。
[my link](file:///C:/my_file.pdf)
しかし、マークダウンファイルをFirefoxページで開いてリンクをクリックしても、何も起こりません。
私は正確に何を逃しましたか?ローカルファイルを開くことはできますか?
回答:
レンダリングされたマークダウンをどのように開きますか?
HTTP経由でホストする場合、つまりhttp://
またはを介してアクセスする場合https://
、最近のほとんどのブラウザは、などを使用してローカルリンクを開くことを拒否しますfile://
。これはセキュリティ機能です:
セキュリティ上の理由から、Mozillaアプリケーションはリモートファイルからローカルファイル(およびディレクトリ)へのリンクをブロックします。これには、ハードドライブ、マップされたネットワークドライブ、および汎用名前付け規則(UNC)パスを介してアクセスできるファイルへのリンクが含まれます。これにより、次のような多くの不快な可能性が防止されます。
- デフォルトのインストールパスを確認することにより、サイトがオペレーティングシステムを検出できるようにする
- サイトがシステムの脆弱性を悪用できるようにする(例:
C:\con\con
Windows 95/98)- サイトがブラウザの設定を検出したり、機密データを読み取ったりできるようにする
そのページにリストされているいくつかの回避策がありますが、可能であればこれを避けることをお勧めします。
答えはどれも私にはうまくいきませんでした。しかし、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
ローカル画像にリンクするのと同じ方法で、ローカルファイルにリンクします。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
、動作しています、
注:絶対パスはエディターでは機能しますが、マークダウンプレビューモードでは機能しません!
ありがとうdrifty0pine!
最初の解決策、それはうまくいきます!
[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で動作します。
これは古い質問ですが、私にはまだOPの質問に対する完全な答えがないようです。私の経験では、Firefoxの「MarkdownViewer」プラグインを使用する場合、セキュリティが問題になる可能性があるという選択された答えは、実際には問題ではないことがよくあります。また、OPはMS-Windowsを使用しているようであるため、異なるドライブを指定するという追加の問題があります。
したがって、Windows(および私が見た他のMarkdownレンダラー)の「MarkdownViewer」プラグインに対するもう少し完全で簡単な答えがあります:通常どおりにローカルパスを入力し、それが絶対パスである場合必ずスラッシュで始めてください。そう:
[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が彼らの例を考えて探していたものでした。これは、ファイルではなくディレクトリを表示するためにも使用できることに注意してください。
遅くなりましたが、これがお役に立てば幸いです。