Jekyll

2013-05-13 9 views
11

Kullanarak dosyanın varlığını kontrol edin Bir dosyanın varlığını sınamak için Jekyll'i nasıl kullanabilirim?Jekyll

Netleştirmek için, bir görüntü dosyasının, bulunduğum sayfa ile aynı ada sahip olup olmadığını kontrol etmek için bir {% if %} ifadesini çalıştırmak istiyorum. YAML ön konuda benim sayfada

:

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

Benim düzende:

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

cevap

16

Jekyll 2'den itibaren, tüm site dosyaları site.static_files aracılığıyla edinilebilir. Bir dosyanın mevcut olup olmadığını kontrol etmek için bunu kullanabilirsiniz. Örneğin:

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

istedi. – KFunk

+0

@KFunk neden? Dosya varlığını kontrol etmek G/Ç'yi içerir ve oldukça fazla statik dosyaya sahip oluncaya kadar bundan daha yavaş olabilir. Ayrıca, eğer tek çözümse, onu alırdım. – autra

+5

@KFunk Muhtemelen, ancak derleme aşamasını sadece bir kez yaptığınız için, performans Jekyll ile çok büyük bir endişe değildir. Sonuçta düz eski statik HTML ile sonuçlanır. Yapım sürecim birkaç saniye sürerse, dürüst olmam umurumda değil. – Jonathan