Hier ist mein Versuch bisher. Ich erkenne, dass es andere Möglichkeiten gibt, dies zu tun.Versuch, Breadcrumbs für Octopress schreiben und Fehler
Aber warum ist mein Aufruf zum Split fehlgeschlagen?
Ich lade dies zu Github und bekomme nichts.
Hier ist mein Versuch bisher. Ich erkenne, dass es andere Möglichkeiten gibt, dies zu tun.Versuch, Breadcrumbs für Octopress schreiben und Fehler
Aber warum ist mein Aufruf zum Split fehlgeschlagen?
Ich lade dies zu Github und bekomme nichts.
Ich konnte nie split
entweder richtig funktionieren, aber breadcrumbs are still possible. Das Folgende wird von meinem Code in dieser Antwort angepasst (beachten Sie den Abschnitt, der in der if
-Anweisung geändert werden sollte und dass dies die lesbare Version ist und nicht genau so funktioniert, wie erwartet).
{% capture url_parts %} {{ page.url | remove: "/index.html" | replace:'/'," " }}{% endcapture %}
{% capture num_parts %}{{ url_parts | number_of_words }}{% endcapture %}
{% assign previous="" %}
{% if num_parts == "0" %}
<Handle being at the top of the site (i.e. "site.com/") here>
{% else %}
{% for unused in page.content limit:num_parts %}
{% capture first_word %}{{ url_parts | truncatewords:1 | remove:"…"}}{% endcapture %}
{{ first_word }} »
{% capture url_parts %}{{ url_parts | remove_first:first_word }}{% endcapture %}
{% endfor %}
{% endif %}
Wenn der Benutzer bei /a/b/c.html
ist, wird dies a » b » c »
drucken, wenn sie bei /a/b/
(oder äquivalent /a/b/index.html
) sind, wird es nur a » b »
drucken.
Zumindest wird es nahe sein: für eine Markdown-Datei gibt es zu viele Zeilenumbrüche zwischen jedem Mal first_word
gedruckt wird, so dass sie als separate Absätze betrachtet werden und die Ausgabe wird (das ist kein Problem in einem HTML-Datei, aber dann mehr Tags werden benötigt, damit es richtig funktioniert):
Dies, indem sie die ganzen for-Schleife einer Zeile gelöst werden kann, auf (dies ist der Code, der verwendet werden soll):
{% capture url_parts %} {{ page.url | remove: "/index.html" | replace:'/'," " }}{% endcapture %}
{% capture num_parts %}{{ url_parts | number_of_words }}{% endcapture %}
{% assign previous="" %}
{% if num_parts == "0" %}
<Handle being at the top of the site (i.e. "site.com/") here>
{% else %}
{% for unused in page.content limit:num_parts %}{% capture first_word %}{{ url_parts | truncatewords:1 | remove:"..."}}{% endcapture %}{{ first_word }} »{% capture url_parts %}{{ url_parts | remove_first:first_word }}{% endcapture %}{% endfor %}
{% endif %}
(NB. Die page.content
in der for-Schleife ist nur etwas zu iterieren, die Magie wird von der limit:num_parts
getan. Dies bedeutet jedoch, dass page.content
weniger Absätze als num_parts
nicht alle Breadcrumbs angezeigt wird, wenn dies wahrscheinlich ist, könnte man eine Site-Variable in _config.yml
wie breadcrumb_list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
definieren und site.breadcrumb_list
als Platzhalter anstelle von page.content
verwenden. (Von meiner anderen Antwort entfernt.))
Here is an example (es verwendet nicht genau den gleichen Code wie oben, aber es sind nur ein paar kleine Änderungen, und es ist in einer HTML-Datei, so das Problem mit neuen Zeilen erstellen Absätze ist nicht da).
Es war eigentlich deine Antwort auf den anderen Thread, die mich dazu gebracht hat, überhaupt darüber nachzudenken. Danke für die weitere Erläuterung Ihrer Methode. Ich hoffe, dass jemand erklären wird, was mit der Split-Methode nicht in Ordnung ist, da dies der natürlichere Weg ist, das Problem anzugehen. – bluekeys
Ich nehme an, Sie haben ein Beispiel im Internet, um es in Aktion zu sehen? – Toby
@Toby, yep mache ich jetzt, sehe das Ende der Frage :) – huon