Pergunta

Eu estou usando a instalação Jekyll padrão para manter um bom blog, tudo está indo. Só que eu realmente gostaria de marcar minhas mensagens.

I pode tag um post usando o YAML frente assunto, mas como faço para gerar páginas para cada tag que podem irá listar todas as mensagens para um tag?

Foi útil?

Solução

Esta essência irá gerar uma página por categoria para você: https://gist.github.com/524748

Ele usa um plugin Jekyll Generator, além de uma subclasse da página.

Outras dicas

Aqui está uma solução com etiquetas alfabeticamente ordenadas em uma única página .
Ele usa líquido só, o que significa que ele funciona em Páginas 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 %}

Você pode vê-lo em ação aqui .


EDIT:

Há também uma maneira de gerar uma página separada para cada tag sem plugins (que irá funcionar em Páginas GitHub) .

Eu tenho uma explicação mais detalhada no meu blog:
páginas separadas por tag / categoria com Jekyll (sem plugins)

Primeiro, você precisa de um novo arquivo de layout:

/_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>

Com este arquivo de layout, você pode adicionar uma nova página tag, adicionando um novo arquivo com apenas duas linhas de YAML front-matéria.

Aqui está um exemplo para o tag jekyll:

/tags/jekyll/index.html:

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

A única desvantagem desta abordagem: cada vez que você usar uma nova tag, pela primeira vez, você tem que lembrar de criar um novo arquivo de duas linhas para ele

.

Para gerar o arquivo de índice raiz (ou seja, a lista de tags que links para /tags/jekyll/index.html etc.) , você pode usar uma solução semelhante como o que no topo desta resposta onde eu gerar uma única página com etiquetas alphebetically classificadas:

{% 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 %}

Isso irá gerar uma lista de links como este:

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

Note-se que esta solução usa um em branco para etiquetas de divisão, por isso não funciona quando suas tags contêm espaços em branco e o comentário de Yevgeniy Brikman se aplica aqui também.

Tenha um olhar em locais usando Jekyll . Existem algumas garfos personalizados que tenham implementado a marcação funcionalidade, espero que também na maneira que você quiser: -)

Eu tive a mesma pergunta, e tropeçavam este: http://gist.github.com/143571.

É uma tarefa rake que gera uma lista tag. Eu modifiquei um pouco, e minha versão está em: http://github.com/mattfoster/mattfoster.github.com/blob / master / Rakefile .

Enquanto isso não dar-lhe uma página por tag, você pode usar âncoras, que está a meio caminho lá!

Eu uso o grande Jekyll Tagging plugin que gera automaticamente um tags cloud e páginas de marcas. Fácil de instalar e usar.

Aqui está uma página para a "foto" tag no meu blog (em francês ), e você pode ver as tags cloud no fundo.

Com base na resposta de Christian acima Fiz um script que faz o que ele descreveu.

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

Certifique-se de ter o 14 de linha que acompanha roteiro vim no diretório /non_website_resources/

e

Faça o /_layouts/tagpage.html mostrado na resposta de Christian acima, mas renomeá-lo para /_layouts/tag_pages.html

Estrutura de arquivo deve ser assim:

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

Executar no ./rebuild_tags.sh diretório raiz

Se você obter permissão negada erro ser-se de executar chmod 777 rebuild_tags.sh


Se você olhar para roteiros comenta sua bastante simples:

  • Usos sed para encontrar todas as marcas em cada arquivo .md no diretório _post

  • Usos sed para massagear os dados para formato adequado

  • Toma todas as tags únicas e faz um diretório e uma index.html para cada

Desta forma, se você tiver quaisquer novas tags, basta executar o script para reconstruir as páginas antes de empurrar para github

Um bom simples maneira de fazer as tags

non-plugin

Editar

dependência Removido em outros arquivos. Só precisa de um roteiro!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top