2012-01-07 15 views
6

Sto creando un sito utilizzando jekyll.rb.
Ho una pagina chiamata about.html:Jekyll not interpretation markdown

<div class="grid_10 page"> 
    {% include about_content.markdown %} 
</div> 

In about_content.markdown ho qualche Markdown dummy:

A First Level Header 
==================== 

A Second Level Header 
--------------------- 

Hello! 

Per qualche ragione, quando la pagina viene visualizzata, il risultato è questo:

result http://gabrielecirulli.com/p/20120107-203135.png

Anche se aggiungo la questione davanti ai miei YAML riduzione dei prezzi modifiche del file nulla.

Questo è il mio _config.yml

safe:  false 
auto:  false 
server:  false 
server_port: 4000 
baseurl: /

source:  . 
destination: ./_site 
plugins:  ./_plugins 

future:  true 
lsi:   false 
pygments: false 
markdown: maruku 
permalink: date 

maruku: 
    use_tex: false 
    use_divs: false 
    png_engine: blahtex 
    png_dir: images/latex 
    png_url: /images/latex 

rdiscount: 
    extensions: [] 

kramdown: 
    auto_ids: true, 
    footnote_nr: 1 
    entity_output: as_char 
    toc_levels: 1..6 
    use_coderay: false 

    coderay: 
    coderay_wrap: div 
    coderay_line_numbers: inline 
    coderay_line_numbers_start: 1 
    coderay_tab_width: 4 
    coderay_bold_every: 10 
    coderay_css: style 

Come posso fare Jekyll interpretano Markdown?

risposta

14

Si dovrà passare attraverso il markdownify filtro:

<div class="grid_10 page"> 
    {% capture about_content %} 
    {% include about_content.markdown %} 
    {% endcapture %} 
    {{ about_content | unindent | markdownify }} 
</div> 

Per mantenere il codice Markdown rientrato, ma rimuovere il rientro prima di markdownification, vorrei scrivere un plugin dedicato, chiamato ad esempio _plugins/unindent.rb:

module Jekyll 
    module UnindentFilter 
    def unindent input 
     input.lstrip 
    end 
    end 
end 

Liquid::Template.register_filter Jekyll::UnindentFilter 
+0

Grazie, questa soluzione ha funzionato, ma sto riscontrando un problema in cui avere un rientro prima di "{% include about_content.markdown%}" renderà invalida la prima riga del markdown mettendo degli spazi davanti a esso. Questo può essere evitato senza dover sacrificare l'indentazione? –

+0

Buon punto, @GabrieleCirulli. Ho aggiornato il codice. – manatwork

+0

Va notato che questo (e tutti i plugin) NON funzionano con GitHub Pages. Mi ci è voluto un po 'per capirlo e sembra che non ci sia una buona soluzione se non quella di outdenting della linea di inclusione (sembra strano) o di spingere le pagine compilate SENZA file sorgente (inutile). [Https://help.github.com/articles/pages-don-t-build-unable-to-run-jekyll](Reference) – user478798