Frage

Ich bin mit dem Standard jekyll Installation ein Blog zu halten, alles wird gut. Mit Ausnahme möchte ich wirklich meine Beiträge markieren.

I kann einen Beitrag markieren, die YAML Titelei verwenden, aber wie kann ich generiere Seiten für jeden Tag, das alle Beiträge für einen Tag listet können?

War es hilfreich?

Lösung

Dieser Kern wird eine Seite pro Kategorie für Sie generieren: https://gist.github.com/524748

Es verwendet einen Jekyll Generator Plugin, sowie eine Seite der Unterklasse.

Andere Tipps

Hier ist eine Lösung mit alphabetisch sortierten Tags auf einer einzelnen Seite .
Es verwendet nur Flüssigkeit, was bedeutet, dass es funktioniert auf GitHub Seiten:

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

Sie können es in Aktion sehen hier .


EDIT:

Es gibt auch eine Möglichkeit, eine separate Seite für jeden Tag zu generieren, ohne Plugins (die auf GitHub Seiten arbeiten) .

Ich habe eine ausführlichere Erklärung auf meinem Blog:
Separate Seiten pro Tag / Kategorie mit Jekyll (ohne Plugins)

Zuerst müssen Sie eine neue Layout-Datei:

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

Mit dieser Layout-Datei können Sie eine neue Variable Seite hinzufügen, indem Sie eine neue Datei hinzufügen mit nur zwei Linien von YAML Front-Materie.

Hier ist ein Beispiel für den jekyll Tag:

/tags/jekyll/index.html:

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

Der einzige Nachteil dieses Ansatzes: jedes Mal, wenn Sie einen neuen Tag zum ersten Mal verwenden, müssen Sie daran denken, eine neue zweizeilige Datei für sie zu schaffen

.

das Stammindexdatei zu generieren (dh die Liste der Tags, die usw /tags/jekyll/index.html verbindet.) können Sie eine ähnliche Lösung wie die im oberen Teil der Antwort verwenden, wo ich eine einzelne Seite erzeugen mit alphebetically sortiert tags:

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

Es wird eine Liste von Links wie folgt erzeugen:

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

Beachten Sie, dass diese Lösung eine leere verwendet Tags zu spalten, so dass es nicht funktioniert, wenn Ihre Tags Leerzeichen enthalten und Yevgeniy Brikman Kommentar gilt auch hier.

Hier finden Sie aktuelle Sites mit jekyll . Es gibt ein paar individuelle Gabeln, die Tagging-Funktionalität implementiert haben, hoffentlich auch in der Art und Weise Sie wollen: -)

Ich hatte die gleiche Frage, und eher zufällig auf dieses: http://gist.github.com/143571.

Es ist eine Rake Aufgabe, die eine Tag-Liste erzeugt. Ich änderte es leicht, und meine Version ist unter: http://github.com/mattfoster/mattfoster.github.com/blob / Master / Rakefile .

Während dies Sie nicht eine Seite pro Tag nicht geben, können Sie Anker verwenden, die auf halbem Weg gibt ist!

Ich verwende den großen Jekyll Tagging Plugin, das automatisch eine Tags Cloud und das Tag-Seiten erzeugt. Einfach zu installieren und zu verwenden.

Hier ist eine Seite für den „Foto“ tag auf meinem Blog (auf Französisch ), und Sie können die Tags Wolke am Boden sehen.

Basierend auf Christians Antwort oben ich einen Bash-Skript gemacht, das tut, was er beschrieben.

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

Achten Sie darauf, die begleitende Zeile 14 haben vim Skript in dem /non_website_resources/ Verzeichnis

und

Machen Sie die /_layouts/tagpage.html in Christians Antwort gezeigt oben, aber benennen Sie sie in /_layouts/tag_pages.html

Dateistruktur sollte wie folgt sein:

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

Ausführen aus dem Stammverzeichnis ./rebuild_tags.sh

Wenn Sie die Berechtigung verweigert Fehler sicher sein, erhalten chmod 777 rebuild_tags.sh laufen


Wenn Sie Skripte aussehen, kommentiert seine ziemlich einfach:

  • Verwendet sed alle Tags in jeder .md Datei in _post Verzeichnis finden

  • Verwendet sed die Daten auf richtiges Format zu massieren

  • nimmt alle einzigartigen Tags und macht ein Verzeichnis und einen index.html für jede

Auf diese Weise, wenn Sie irgendwelche neue Tags, nur das Skript ausführen, um die Seiten neu zu erstellen, bevor zu GitHub schieben

Ein schönes, einfaches Nicht-Plug-Weg-Tags zu tun


Bearbeiten

entfernt die Abhängigkeit von anderen Dateien. Nur müssen die ein Skript!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top