2013-05-02 55 views
2

我的網站目前有形式的某些頁面構建降價文件:在DocPad

<div class="main"> 
    <div class="slide"> 
    (slide content) 
    </div> 
    <div class="examples"> 
    (examples content) 
    </div> 
    <div class="remarks"> 
    (remarks content) 
    </div> 
    ... 
</div> 

的「實例」和「備註」部分都是可選的,並且可以有多個「幻燈片」的部分。

我正在將網站移至DocPad,並決定將所有現有的標記轉換爲Markdown格式。 Markdown缺乏結構化頁面的方法,所以我嘗試了各種技術來重新引入我所需的結構,但沒有成功。

我使用Robotskirt /日落,並已發現,如果我寫的.MD文件<div>在線:

<div class="slide"> 
    (slide content) 
</div> 

幻燈片內容不處理爲降價。據說,增加一個markdown="1"屬性應該使這項工作。但事實並非如此。也許日落不明白這一點。

我最近的嘗試是使用內聯替換來預/後處理內容(不確定在哪個階段進行了替換)。我增加了以下的內聯替換到docpad.config

plugins: 
    robotskirt: 
    inline: 
     # Slides etc. 
     out = out.replace /^---\s*start (\w+)\s*---$/g, (whole, m1) -> 
     hash '<div class="' + m1 + '">' 
     out = out.replace /^---\s*end (\w+)\s*---$/g, (whole, m1) -> 
     hash '</div>' 

並添加標記到.MD文件:

--- start slide --- 

(slide content) 

--- end slide --- 

這工作,但由於對「普通文本」時更換我結束了虛假的段落:

<p><div class="slide"></p> 

是否有任何可行的技術,或者我應該只是打包Markdown?

回答

1

Markdown真的只是基本的博客文本輸入。你可能想考慮一下生態模板,它可以讓你減少更多的控制。在生態,你會看這樣的事:

<div class="main"> 
<% if (@something > 2): %> 
    <div class="slide"> 
    (slide content) 
    </div> 
<% end %> 
    <div class="examples"> 
    (examples content) 
    </div> 
<% if (@somethingElse > 2): %> 
    <div class="remarks"> 
    (remarks content) 
    </div> 
<% end %> 
    ... 
</div> 

你覺得如何?

0

CoffeeKup還提供了一個javascript風格的html結構