jekyll markdown 내부 링크


143

Jekyll은 Markdown 형식의 링크를 사용하지만 내부 컨텐츠에 어떻게 링크 할 수 있습니까?

[[link]] 

답변:


249

이제 다음을 사용하여 내부 링크를 게시 할 수 있습니다.

[Some Link]({% post_url 2010-07-21-name-of-post %})

이것은 Jekyll Documentation 에서도 참조됩니다 .

https://github.com/mojombo/jekyll/pull/369


17
내부적으로 페이지에 링크하는 방법에 대한 아이디어가 있습니까?
Dogweather

1
페이지에 연결할 수없는 것 같습니다. 이 PR은 합병되지 않고 종료되었습니다 : github.com/jekyll/jekyll/pull/369
northben

1
제목을 쉽게 표시 할 수 [Title of post](/correct/permalink)있습니까 ( 예 : 단일 명령으로 렌더링) ? 너무 장황한 필터링으로 만 할 수 있습니다.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

하위 디렉토리가있는 경우 : [링크 텍스트] ({% post_url / dirname / 2010-07-21-post %})
alexsalo

하나의 작은 실수 : 지킬 문서 그건 post-url하지post_url
한 치우

40

이제 link태그를 사용하여 게시물 이외의 페이지에 연결할 수 있습니다. link게시물, 페이지, 컬렉션의 문서 및 파일에서 작동합니다.

{{ site.baseurl }}{% link _collection/name-of-document.md %}
{{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %}
{{ site.baseurl }}{% link news/index.html %}
{{ site.baseurl }}{% link /assets/files/doc.pdf %}

link태그를 사용할 때 파일 확장자를 포함시켜야합니다 . 이를 사용하여 링크를 작성하려면 다음을 수행하십시오.

[Link to a document]({{ site.baseurl }}{% link _collection/name-of-document.md %})
[Link to a post]({{ site.baseurl }}{% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({{ site.baseurl }}{% link news/index.html %})
[Link to a file]({{ site.baseurl }}{% link /assets/files/doc.pdf %})

Jekyll 설명서를 참조하십시오 .


2
또한이 문서 페이지가 유용하다는 것을 알았습니다. jekyllrb.com/docs/liquid/tags/#link
David Douglas

2
방금 {{ site.baseurl }}생성 된 href에서 baseurl 값을 두 배로 늘리므로 사용할 필요가 없다는 것을 알았 습니다. [Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
oleksa

Jekyll 3.x에서는 site.baseurl을 사용해야하며, 4.x에서는 더 이상 필요하지 않습니다. 그러나 Pages는 여전히 최대 버전 인 AFAIK로 3.x에 붙어 있습니다.
헨리 슈 라이너

26

페이지 의 경우 어쨌든 페이지의 경로를 알아야하므로 태그 를 추가하지 않기로 결정했습니다page_url . 따라서 수동으로 연결해야합니다.

[My page](/path/to/page.html)

또는 프로그래밍 방식으로 페이지 제목을 얻으려면 다음과 같이 크고 추한 것을 수행 할 수 있습니다.

{% for page in site.pages %}
  {% if page.url == '/path/to/page.html' %}
[{{ page.title }}]({{ page.url }})
  {% endif %}
{% endfor %}

14

경우 내부 내용이 동일한 페이지에 다음의 사용에 링크 할 수 있습니다 auto_ids기능. 당신은 이것을 활성화합니다 _config.yml:

kramdown:
    auto_ids: true

이 기능을 사용하면 각 제목이 id제목 텍스트를 기반으로 심판을 받습니다 . 예를 들어

### My Funky Heading

될 것입니다

<h3 id="my-funky-heading">My Funky Heading</h3>

다음과 같은 방법으로 동일한 문서 내에서이 문서에 연결할 수 있습니다.

The funky text is [described below](#my-funky-heading)

원하는 경우 명시 적 ID를 지정할 수 있습니다.

### My Funky Heading
{: #funky }

그리고 그것에 연결

The funky text is [described below](#funky)

제목 이외의 다른 요소를 참조하려는 경우에도 작동합니다.
Antonio Vinicius Menezes Medei

1
이것이 바로 내가 찾던 것입니다. 감사!
Wimateeka

그런 우아한 솔루션!
Robur_131

다른 페이지의 링크로 확장 할 수도 있습니다. 예 : [text] (/ path / to / file / # funky)
Robur_131

8

Jekyll에는 여러 가지 연결 방법이 있으며 그중 일부는 구식입니다.

링크 태그

내부 파일에 연결하는 권장 방법은

[Link]({{ site.baseurl }}{% link path/to/file.md %})

파일이 이동하거나 삭제되면 오류가 발생합니다.

퍼머 링크로

오류없이 페이지에 링크하려면 (링크가 끊어짐) :

[Link]({{ '/path/to/page/' | relative_url }})

여기서는 페이지의 퍼머 링크를 알고 relative_url필터를 통과 하여 사이트의 기본 URL이 접두어로 표시되도록해야합니다.

페이지의 영구 링크는 permalink구성 파일의 설정과 파일 permalink앞면 의 키에 따라 다릅니다 .

jekyll 기준 링크

상대 경로를 사용하고 링크가 GitHub의 마크 다운보기에서 작동하도록하려면을 사용해야합니다 jekyll-relative-links. 이를 통해 다음과 같은 링크를 작성할 수 있습니다.

[Link](./path/to/file.md)

[Link to file in parent folder](../file.md)

0

이것이 프로젝트 디렉토리라고 상상해보십시오.

프로젝트 디렉토리

"index.md"를 "20190920-post1.md"라는 "blog"폴더 내의 파일에 링크하려면 다음을 수행하십시오.

  1. "index.md"파일을여십시오.
  2. 다음을 추가하십시오.

    [모든 텍스트] (./ 상대 경로)

예를 들면 다음과 같습니다.

- [Sept 20th 2019 - Kikucare's Journey](./blog/20190920-post1.md)

산출:

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.