마크 다운 구문을 사용하여 로컬 파일에 어떻게 링크합니까?


89

여러 링크가 포함 된 로컬 마크 다운 파일이 있고 해당 링크가 pdf와 같은 로컬 파일로 연결되기를 원합니다.

다음 구문을 사용합니다.

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

하지만 마크 다운 파일을 Firefox 페이지로 열고 링크를 클릭하면 아무 일도 일어나지 않습니다.

내가 정확히 무엇을 놓쳤습니까? 로컬 파일을 열 수 있습니까?


또한 여기에 대답, 중복 질문 인 것 같습니까? : stackoverflow.com/a/58317580/5890679
Akul Aggarwal

Vim은 클릭 가능한 웹 링크를 포함하여 마크 다운을 멋지게 강조합니다. 아아 로컬 링크는 강조 표시되어 있지만 열리지 않습니다.
user2023370

답변:


32

렌더링 된 마크 다운을 어떻게 여나요?

당신이 HTTP 그것을 통해 호스팅하는 경우, 당신은을 통해 액세스 즉 http://https://, 대부분의 최신 브라우저가 열려 지역 링크, 예를 들면와를 거부합니다 file://. 이것은 보안 기능입니다 .

보안상의 이유로 Mozilla 응용 프로그램은 원격 파일에서 로컬 파일 (및 디렉토리) 로의 링크를 차단합니다. 여기에는 하드 드라이브, 매핑 된 네트워크 드라이브의 파일에 대한 링크가 포함되며 UNC ( Uniform Naming Convention ) 경로 를 통해 액세스 할 수 있습니다 . 이것은 다음과 같은 여러 가지 불쾌한 가능성을 방지 합니다.

  • 사이트가 기본 설치 경로를 확인하여 운영 체제를 감지하도록 허용
  • 사이트가 시스템 취약성을 악용하도록 허용 (예 : C:\con\conWindows 95/98)
  • 사이트가 브라우저 기본 설정을 감지하거나 민감한 데이터를 읽을 수 있도록 허용

해당 페이지에 몇 가지 해결 방법이 나열되어 있지만 가능한 경우이 작업을 피하는 것이 좋습니다.


1
말했듯이 플러그인 'Markdown Viewer'를 사용하여 Mozilla Firefox 40.0.3에서 마크 다운 파일을 엽니 다.
Alexis Le Provost

아, 전에 그 플러그인에 대해 언급하지 않으 셨습니다 ;-) MarkdownPad의 HTML 내보내기 ( "Firefox 페이지"가 ​​의미한다고 생각한 것)로 사용해 보았습니다. 플러그인의 도움말 / 지원 채널을 확인하세요.
Katrin Leinweber 2015 년

80

대답 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 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

5
@BarryPye의 답변과 어떻게 다른가요?
StephenBoesch

@javadba BarryPye의 답변에서 느낌표 (!)는 파일을 이미지로 렌더링합니다. 질문은 다른 파일에 대한 링크를 나타냅니다. (저는 귀하의 질문에 대한 응답을 느리게, 느리게 알고 있지만 다른 사람들이 대답을 알고 싶어 할 것이라고 생각했습니다.)
RichTBreak

]와 (문자 사이에 공백을 두지 않는 것이 중요합니다.
jbustamovej

20

로컬 이미지에 링크하는 것과 동일한 방식으로 로컬 파일에 링크합니다. 다음은 start_caQtDM_7id.sh마크 다운 소스와 동일한 디렉토리에있는 파일 에 링크하는 예입니다 .

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

이 "!" 중요하다! 감사!
Yuriy Kulikov

이미지를 렌더링하는 것은 Github의 마크 다운 구문의 일부입니다. guides.github.com/features/mastering-markdown의
BarryPye

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작동했습니다.

참고 : 절대 경로는 편집기에서 작동하지만 마크 다운 미리보기 모드에서는 작동하지 않습니다!


귀하의 메모는 매우 중요합니다!
Thinh NV

7

파일 이름에 공백이 있으면 다음을 시도하십시오.

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

첫 번째는 더 신뢰할 수있는 것 같습니다


귀하의 문제가 무엇이며 무엇을 요구하는지 명확하지 않습니다. 질문 : 어떤 파일 이름이 더 신뢰할 수 있습니까?
Seymour

1

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)됩니다.

그렇지 않으면 프로젝트의 루트 디렉터리에서 경로를 만들 수 있습니다. 따라서 전체 프로젝트 / git-repo 루트 디렉토리가 'my-app'이고 my-app / client / read-me.md를 가리키고 싶다면 다음을 시도하십시오.[My hyperlink](/client/read-me.md) .

적어도 Chrome에서 작동합니다.


0

이것은 오래된 질문이지만 나에게는 여전히 OP의 질문에 대한 완전한 대답이없는 것 같습니다. 가능한 문제인 보안에 대해 선택한 대답은 실제로 Firefox 'Markdown Viewer'플러그인을 사용할 때 실제로 문제가 되지 않는 경우가 많습니다 . 또한 OP는 MS-Windows를 사용하는 것으로 보이므로 다른 드라이브를 지정하는 추가 문제가 있습니다.

따라서 여기에 Windows (및 내가 본 다른 Markdown 렌더러)의 'Markdown Viewer'플러그인에 대한 좀 더 완전하면서도 간단한 대답이 있습니다. 평상시처럼 로컬 경로를 입력하고 절대 경로 인 경우 슬래시로 시작해야합니다. 그래서:

[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.