2013-05-13 10 views
11

Come posso utilizzare Jekyll per verificare l'esistenza di un file?Verificare l'esistenza del file utilizzando Jekyll

Per chiarire, voglio eseguire un'istruzione {% if %} per verificare se esiste un file di immagine con lo stesso nome della pagina in cui mi trovo.

sulla mia pagina in materia fronte YAML:

---- 
    reference-design: true 
---- 

Nel mio layout:

{% if page.reference-design %} 
    {% assign filename = page.path | remove_first: '.html' %} 
    <!-- How can I check if file actually exists? --> 
    <img src="images/reference_designs/{{ filename }}.png"> 
{% endif %} 

risposta

16

A partire da Jekyll 2, tutti i file del sito sono disponibili tramite site.static_files. Puoi usare questo per controllare se esiste un file. Ad esempio:

{% for static_file in site.static_files %} 
    {% if static_file.path == '/favicon.ico' %} 
     {% assign favicon = true %} 
    {% endif %} 
{% endfor %} 
+2

Incredibilmente inefficiente. – KFunk

+0

@ KFunk perché? Il controllo dell'esistenza dei file coinvolge l'I/O e potrebbe essere molto più lento di questo finché non si dispone di un bel po 'di file statici. Inoltre, se è l'unica soluzione, la prenderei. – autra

+5

@KFunk Probabilmente, ma le prestazioni non sono una grande preoccupazione per Jekyll, dal momento che si esegue la fase di compilazione solo una volta. Alla fine risulta in un semplice codice HTML statico. Se il mio processo di compilazione richiede qualche secondo in più, sinceramente non mi interessa. – Jonathan

Problemi correlati