문제

블로그를 유지하기 위해 표준 Jekyll 설치를 사용하고 있습니다. 모든 것이 잘 진행되고 있습니다. 내 게시물을 정말로 태그하고 싶습니다.

~할 수 있다 Yaml Front Matter를 사용하여 게시물을 태그하지만 태그의 모든 게시물을 나열 할 수있는 각 태그에 대한 페이지를 어떻게 생성합니까?

도움이 되었습니까?

해결책

이 요점은 카테고리 당 페이지를 생성합니다. https://gist.github.com/524748

Jekyll Generator 플러그인과 페이지 서브 클래스를 사용합니다.

다른 팁

여기에 해결책이 있습니다 단일 페이지에 알파벳순으로 정렬 된 태그가 있습니다.
액체 만 사용하므로 GitHub 페이지에서 작동 함을 의미합니다.

{% capture tags %}
  {% for tag in site.tags %}
    {{ tag[0] }}
  {% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}

{% for tag in sortedtags %}
  <h3 id="{{ tag }}">{{ tag }}</h3>
  <ul>
  {% for post in site.tags[tag] %}
    <li><a href="{{ post.url }}">{{ post.title }}</a></li>
  {% endfor %}
  </ul>
{% endfor %}

당신은 그것을 실제로 볼 수 있습니다 여기.


편집하다:

플러그인없이 각 태그에 대해 별도의 페이지를 생성하는 방법도 있습니다. (Github 페이지에서 작동합니다).

내 블로그에 더 자세한 설명이 있습니다.
Jekyll (플러그인 없음)을 사용한 태그/카테고리 별 별도 페이지

먼저 새 레이아웃 파일이 필요합니다.

/_layouts/tagpage.html:

---
layout: default
---

<h1>{{ page.tag }}</h1>

<ul>
{% for post in site.tags[page.tag] %}
  <li>
    {{ post.date | date: "%B %d, %Y" }}: <a href="{{ post.url }}">{{ post.title }}</a>
  </li>
{% endfor %}
</ul>

이 레이아웃 파일을 사용하면 yaml 프론트 라 줄로 새 파일을 추가하여 새 태그 페이지를 추가 할 수 있습니다.

다음은 다음에 대한 예입니다 jekyll 꼬리표:

/tags/jekyll/index.html:

---
layout: tagpage
tag: jekyll
---

이 접근법의 유일한 단점 : 처음으로 새 태그를 사용할 때마다 새 2 라인 파일을 만들어야합니다.

루트 인덱스 파일을 생성합니다 (즉, 링크하는 태그 목록 /tags/jekyll/index.html 등.),이 답변 위에있는 것과 같은 유사한 솔루션을 사용할 수 있으며,이 답변은 알페 바이로 정렬 된 태그로 단일 페이지를 생성 할 수 있습니다.

{% capture tags %}
  {% for tag in site.tags %}
    {{ tag[0] }}
  {% endfor %}
{% endcapture %}
{% assign sortedtags = tags | split:' ' | sort %}
{% for tag in sortedtags %}
    <a href="/tags/{{ tag }}/">{{ tag }}</a><br>
{% endfor %}

이것은 다음과 같은 링크 목록을 생성합니다.

<ul>
    <li><a href="/tags/.net/">.net</a></li>
    <li><a href="/tags/authentication/">authentication</a></li>
    <li><a href="/tags/backup/">backup</a></li>
</ul>

이 솔루션은 빈 공백을 사용하여 태그를 분할하여 태그를 분할하기 때문에 태그에 공백이 포함되어있을 때 작동하지 않습니다. Yevgeniy Brikman의 의견 여기에도 적용됩니다.

살펴보십시오 Jekyll을 사용하는 사이트. 태깅 기능을 구현 한 몇 가지 커스텀 포크가 있습니다.

나는 같은 질문을했고 이것을 우연히 발견했다. http://gist.github.com/143571.

태그 목록을 생성하는 갈퀴 작업입니다. 약간 수정했고 내 버전은 다음과 같습니다.http://github.com/mattfoster/mattfoster.github.com/blob/master/rakefile.

이것은 태그 당 페이지를 제공하지 않지만 앵커를 사용할 수 있습니다.

나는 위대한 것을 사용합니다 Jekyll 태깅 태그 클라우드 및 태그 페이지를 자동으로 생성하는 플러그인. 설치 및 사용이 쉽습니다.

여기에 있습니다 "사진"태그의 페이지 내 블로그에서 (프랑스어), 바닥에 태그가 클라우드를 볼 수 있습니다.

위의 그리스도인의 대답을 바탕으로 나는 그가 묘사 한 바쉬 스크립트를 만들었습니다.

https://github.com/objectivetruth/objectivetruth.github.io/blob/master/rebuild_tags.sh

14 라인에 반드시 있어야합니다 VIM 스크립트 에서 /non_website_resources/ 예배 규칙서

그리고

만들기 /_layouts/tagpage.html 위의 Christian의 답변에 표시되지만 이름을 바꾸십시오. /_layouts/tag_pages.html

파일 구조는 다음과 같아야합니다.

.jekyll_website_root
├── _posts
├── _layout
│   ├── tag_pages.html
├── rebuild_tags.sh

루트 디렉토리에서 실행됩니다 ./rebuild_tags.sh

허가가 거부되면 오류가 발생하십시오. chmod 777 rebuild_tags.sh


스크립트 댓글을 보면 상당히 간단합니다.

  • 용도 sed 모든 태그를 찾기 위해 .md 파일에 _post 예배 규칙서

  • 용도 sed 데이터를 적절한 형식으로 마사지합니다

  • 모든 고유 한 태그를 가져 와서 디렉토리와 index.html 각각

이렇게하면 새 태그가있는 경우 GitHub로 밀기 전에 페이지를 재건하기 위해 스크립트를 실행하십시오.

태그를 수행하는 멋진 간단한 비 플러그 인 방법


편집하다

다른 파일에 대한 종속성이 제거되었습니다. 하나의 스크립트 만 필요합니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top