2013-02-03 15 views
35

Muhtemelen basit bir şeyi kaçırıyorum ama Jekyll'i yerel olarak test etmenin hiçbir yolu yok.Siteler dizininde bir Jekyll işaretleme sayfası nasıl oluşturulur

Jekyll işlemek için GitHub sayfalarını kullanıyorum, yalnızca başlangıçlar için bir işaretleme sayfasından ana index.html işaretleme içeriğini oluşturmak istiyorum.

yapısı şöyledir:

Index.html

--- 
layout: default 
--- 

_layouts
- kök klasöründe default.html'dir

//html stuff.. 
<section> 

{{page.content}} 

</section> 

Ben content.md adlı bir sayfa olduğunuiçin render etmek istiyorumdüzeni oluşturuyor, ancak sıvı etiketleri bölümü boş.

content.md nasıl oluşturulur?

Örnek: https://github.com/wycks/wordpress-gears-jekyll

cevap

37

burada bunun birkaç şey vardır. yerine

  1. sizin _layouts/default.html dosyasında

    (ve bu konuda diğer _layouts dizin dosyaların herhangi biri),:

    {{ content }} 
    
  2. Jekyll sadece:

    {{ page.content }} 
    

    Kullanmak gerek Site kök düzeyindeki _includes dizinindeki dosyaları eklemenize izin verir. Yani, content.md'unuzu kökten bu dizine taşımanız gerekir (eğer mevcut değilse). Son olarak, gerçekten de index.html dosyanızdan içerme dosyasına çağrı yapmanız gerekir. Bu şekilde index.html dosyasının içeriğini değiştirerek yapılabilir:

    --- 
    layout: default 
    --- 
    
    {% include content.md %} 
    

Yani kuracağız Aradığınız davranışı.

  1. Sen .md için .html adresinin dizin dosyasının uzantısını değiştirerek daha iyi çalıştığını görebilirsiniz

    :


    iki başka şeyler işaret ediyorum. Ancak önemli bir not: sayfalandırma istiyorsanız .html'u kullanmanız gerekir. Jekyll Pagination documentation uyarınca, bu özellik yalnızca dosyaya index.html adı verildiğinde çalışır.

  2. Dizin dosyanızda yaptığınız her şey yalnızca bu sayfada bulunan bir içeriği çağırıyorsa, içeriği doğrudan dizin dosyasına koymanız yeterli olabilir.

+0

Teşekkürler Alan, bahsettiğiniz şeyi yaptım ve hiçbir şey işlenmiyor. Ayrıca sadece bir 'index.md 'oluşturma önerileriniz için başlangıçta bunu denedim ve çalışmadı. GitHub bağlantısı bununla güncellenir ve 'old_index.html' öğesindeki ilk önerinizi içerir. – Wyck

+1

Şu anda başka bir şey var. Index.md dosyanızın, başlangıçta ayrıştırıcıyı attıran bazı görünmez karakterler var. Dosyada 'kafa' okuduğumda, ilk satır için '---' görmek yerine '--- ---' döndürür. Çizgiyi silmekle bundan kurtulamadım. Dosyayı yeniden oluşturmak zorundaydım. Öyleyse, onu uçurmayı ve bunu yeniden oluşturmayı deneyin (http://pastebin.com/i4zMEAaV). Ayrıca, contrel.md dosyasını _layouts dizininden de kaldırmanız gerekir. Aynı garip görünmez karakterlere sahip ve yerel olarak çalıştırmaya çalıştığımda jekyll çöküyor. Bu iki şeyi bir kez yaptım, jekyll çalıştı. –

+0

Evet, bu, her türlü garip karakterlerdi, çünkü muhtemelen orijinal html'i işaretlemeye dönüştürmek için Pandoc'u kullandım, ya da belki sadece yanlış anlaşılan pencerelerdi, teşekkürler – Wyck

0

include yalnızca doğrudan _includes/ altındaki dosyaları eklemenize olanak verir. Yolları kullanmanıza ve başka yerlerden eklemenize olanak veren include_relative da vardır. Ancak verilen dosyasına göre olmak zorundadır içerir: Dahil dosyasında ön madde varsa Jekyll onu şerit değil:

{% include_relative somedir/footer.html %} 

biriyle bir sorun var ben çözemezse yöntemini içerir dışarı. Yani, belirli meta verileri saklamak için ön maddeyi kullanamazsınız - "başlık" gibi. Tabi ki değişkenleri kullanabilirsiniz - {% assign title = "My Title" %} fakat buna eşdeğer değildir, çünkü eğer içeriğinizin bir koleksiyonun parçası olması veya bağımsız olarak işlenmesini istiyorsanız, bir önünüzün olması gerekir.

İlgili konular