2014-09-11 15 views
11

Come nascondere una pagina in Jekyll? Ho una pagina Contattaci (come modulo di Google Documenti) e c'è una pagina di risposta. Una volta creato, viene visualizzato nella navigazione come figlio della pagina Contattaci, ma non voglio che venga visualizzato.Nascondere una pagina nel sito Web Jekyll servita da GitHub

Al momento ho questo set up in materia di fronte in questo modo:

--- 
layout: page 
title: Thanks 
permalink: /contact/thanks/ 
--- 

risposta

1

Basta aggiungere un show_in_nav: false nella pagina di materia anteriore e nella barra di navigazione, fare un:

<ul> 
{% for p in pages %} 
    {% unless show_in_nav == false %} 
    <li><a href="{{ site.baseurl }}{{ p.url }}">{{ p.title }}</a></li> 
    {% endunless %} 
{% endfor %} 
</ul> 

Questo impedirà alla tua pagina di apparire nella barra di navigazione.

10

Se non si inserisce alcun titolo nella pagina, non viene visualizzato nella barra di navigazione. Qualcosa di simile

--- 
layout: page 
permalink: /contact/thanks/ 
--- 
+0

Questa è la risposta corretta per coloro che utilizzano Jekyll per Github pagine. – Xogle

+0

non ha funzionato per me - genera ancora una voce di menu – rhoerbe

10

Invece di 'opting out' di includere alcune pagine, è possibile 'opt-in' per includere solo le pagine che fanno da includere nella vostra navigazione. Questo è utile se hai un gran numero di pagine.

Includere una variabile menu in materia di fronte a ogni pagina fai da includere nella navigazione:

--- 
layout: blog 
title: Blog 
menu: main 
permalink: /blog/ 
--- 

e quindi aggiungere un if dove si genera la navigazione:

<ul> 
    {% for page in site.pages %} 
    {% if page.menu == 'main' %} 
     <li><a href="{{ page.url | prepend: site.baseurl }}">{{ page.title }}</a></li> 
    {% endif %} 
    {% endfor %} 
</ul> 

Grazie alla risposta di David Jaquel su questa domanda per l'ispirazione: Excluding page from Jekyll navigation bar

+0

Come si modifica la posizione in cui viene generata la navigazione in un'impostazione GITHUB PAGES? – Xogle

+0

Non sono sicuro di cosa intendi, potresti fornire un esempio? – Sam

-1

Secondo documenti, impostare pubblicato su false nella vostra materia fronte:

--- 
layout: post 
title: Blogging Like a Hacker 
published: false 
--- 

Front Matter

+0

Questo non è l'approccio corretto. Questo non funzionerebbe per la pagina 404 che non vorresti vedere nell'intestazione, ma volevi comunque che fosse pubblicato. – Xogle

+0

Suppongo che la mia soluzione sia più appropriata per i post anziché per le pagine. Ma l'OP vuole nascondere una pagina e impostare la variabile globale predefinita 'published: false' funziona. Inoltre, 'title' non è una variabile predefinita in Jekyll (sua custom) e la tua soluzione si basa sul controllo per vedere se' title' esiste nell'argomento ('{% per mia_page in site.pages%}' '{% se my_page.title%} '), a meno che non sia il modo in cui viene gestito nelle pagine GitHub e che non può essere modificato. – kimbaudi

Problemi correlati