2016-04-16 5 views
0

GitHub Seiten ab April 2016 uses Jekyll 3.0. Nach dem Wechsel, wann immer ich ein Commit drücke, erhalte ich die Page build failed. E-Mail-Benachrichtigung.Github Pages zu Jekyll 3 gewechselt und meine Links wurden gebrochen

Da der Fehler so wenig informativ war, musste ich die GitHub-Unterstützung kontaktieren. Es stellte sich heraus, ob Sie die exclude in _config.yaml verwenden, muss der Inhalt jetzt in Klammer gesetzt werden, zum Beispiel:

exclude: [excludethis] 

Auch Redcarpet und Pygments waren nicht mehr vorhanden, so müssen sie durch kramdown ersetzt werden und rouge in _config.yaml:

markdown: kramdown 
highlighter: rouge 

Und jetzt standardmäßig Zukunft Beiträge (Beiträge mit date in der Zukunft) werden nicht veröffentlicht. Also wenn du date: 2016-04-25 09:30:00 in deinem Post hast und jetzt 10:00 bei dir bist, aber du bist in Asien und der Server ist in den USA, dann wird dieser Post in Zukunft betrachtet und nicht veröffentlicht. Einstellung timezone in _config.yml hilft nicht (Bug?). Sie müssen Offset zum Datum wie folgt hinzufügen:

date: 2016-04-25 09:30:00 +0700 

Nach diesen Änderungen Commit Push nicht mehr produziert Fehler. Aber ich stieß auf einen anderen Fehler, alle meine Links sind kaputt, und alle alten URLs für Beiträge zurückgegeben 404.

Wie behebe ich das?

Antwort

0

Es stellte sich heraus, mit Jekyll 3 Beiträge nicht mehr mit einem abschließenden Schrägstrich enden.

Früher habe ich die URL für Beiträge in _config.yaml so sein:

permalink: /article/:title 

Beispiel URL wäre: http://mysite/article/apost/

Mit Jekyll 3 dieser URL kann nicht gefunden werden (404). Aber ich kann es mit http://mysite/article/apost bekommen.

Also, wenn Sie alte URLs beibehalten werden soll, muss permalink geändert werden Schrägstrich haben:

permalink: /article/:title/ 

und Links zu Beiträge müssen den Schrägstrich entfernen geändert werden. Zum Beispiel, wenn vorher würden Sie haben:

für Beiträge
<a href="{{post.url}}"> 

Dies löst das Problem:

<a href="{{post.url}}/"> 

Es geändert werden muss. Non-Post-Seiten haben ein anderes Problem. Zuvor, wenn Sie zum Beispiel about.md in root haben, würde Jekyll es in http://mysite/about.html konvertieren. Jekyll 3 wird .html am Ende nicht anhängen, es würde http://mysite/about werden.

--- 
permalink: /about.html 
--- 
+0

Yep:

Wenn Sie die alte URL erhalten möchten, können Sie als Link in der 'Titelei' von jeder Seite hinzufügen! Als Referenz zum Upgrade von Jekyll 2 auf 3 mit GitHub Pages lesen Sie diesen [Artikel] (http://blog.virtuacreative.com.br/upgrade-jekyll-2-to-3-gh-pages.html) –

Verwandte Themen