マークダウン構文でローカルファイルにどのようにリンクしますか?


93

いくつかのリンクを含むローカルマークダウンファイルがあり、そのリンクをpdfなどのローカルファイルにリンクさせたいです。

次の構文を使用します。

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

しかし、マークダウンファイルをFirefoxページで開いてリンクをクリックしても、何も起こりません。

私は正確に何を逃しましたか?ローカルファイルを開くことはできますか?


また、ここで回答されましたが、重複した質問のようです?:stackoverflow.com/a/58317580/5890679
AkulAggarwal19年

Vimは、クリック可能なWebリンクを含め、マークダウンをうまく強調しています。残念ながら、ローカルリンクは強調表示されていますが、開きません。
user20233 7020年

回答:


32

レンダリングされたマークダウンをどのように開きますか?

HTTP経由でホストする場合、つまりhttp://またはを介してアクセスする場合https://、最近のほとんどのブラウザは、などを使用してローカルリンクを開くことを拒否しますfile://。これはセキュリティ機能です

セキュリティ上の理由から、Mozillaアプリケーションはリモートファイルからローカルファイル(およびディレクトリ)へのリンクをブロックします。これには、ハードドライブ、マップされたネットワークドライブ、および汎用名前付け規則(UNC)パスを介してアクセスできるファイルへのリンクが含まれます。これにより、次のような多くの不快な可能性が防止されます。

  • デフォルトのインストールパスを確認することにより、サイトがオペレーティングシステムを検出できるようにする
  • サイトがシステムの脆弱性を悪用できるようにする(例:C:\con\conWindows 95/98)
  • サイトがブラウザの設定を検出したり、機密データを読み取ったりできるようにする

そのページにリストされているいくつかの回避策がありますが、可能であればこれを避けることをお勧めします。


1
私が言ったように、私はプラグイン「MarkdownViewer」を備えたMozilla Firefox40.0.3でマークダウンファイルを開きます。
Alexis Le Provost 2015

ああ、あなたは前にそのプラグインについて言及していませんでした;-)私はMarkdownPadのHTMLエクスポート(私が「Firefoxページ」が意味すると思っていたもの)でそれを試しました。プラグインのヘルプ/サポートチャネルを確認してください。
Katrin Leinweber 2015

88

答えはどれも私にはうまくいきませんでした。しかし、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

1
「./」で始まるURLパスはローカルディレクトリでの検索を意​​味し、「/」で始まることは「ベースディレクトリでの検索」を意味します。これは広く普及しているLinuxの慣習です。多分あなたは完全なベースディレクトリを持っていなかったのではないかと思いますか?
holdOffHunger 2018

5
これは@BarryPyeの答えとどう違うのですか?
StephenBoesch 2018年

@javadba BarryPyeの回答の感嘆符(!)は、ファイルを画像としてレンダリングします。質問は別のファイルへのリンクについて言及しています。(私はあなたの質問への応答が遅い、遅い、知っていますが、他の人が答えを知りたいと思うかもしれないと思いました。)
RichTBreak20年

]と(文字の間にスペースを入れないことが重要です。
jbustamovej20年

21

ローカル画像にリンクするのと同じ方法で、ローカルファイルにリンクします。start_caQtDM_7id.shマークダウンソースと同じディレクトリにあるファイルにリンクする例を次に示します。

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

この "!" は重要!ありがとう!
YuriyKulikov19年

これは、画像をレンダリングするためのGithubフレーバーマークダウン
features /

13

@ 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、動作しています、

:絶対パスはエディターでは機能しますが、マークダウンプレビューモードでは機能しません!


あなたのメモは非常に重要です!
ThinhNV20年

8

ファイル名にスペースがある場合は、次のことを試してください。

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

最初のものはより信頼できるようです


あなたの問題が何であり、何を求めているのかは明確ではありません。質問は:どのファイル名がより信頼できるか?
シーモア

2

ありがとう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)

0

ファイルが.mdと同じディレクトリにある場合は、置くだけで機能する[Click here](MY-FILE.md)はずです。

それ以外の場合は、プロジェクトのルートディレクトリからパスを作成できます。したがって、project / git-repoルートディレクトリ全体が「my-app」と呼ばれ、my-app / client / read-me.mdをポイントしたい場合は、を試してください[My hyperlink](/client/read-me.md)

少なくともChromeで動作します。


0

これは古い質問ですが、私にはまだ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が彼らの例を考えて探していたものでした。これは、ファイルではなくディレクトリを表示するためにも使用できることに注意してください。

遅くなりましたが、これがお役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.