我的网站目前有一些形式的页面:
<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 / Sundown并且发现如果我在.md文件中编写<div>
内联:
<div class="slide">
( slide content )
</div>
幻灯片内容不会作为Markdown处理。据说,添加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?
答案 0 :(得分:1)
Markdown实际上只适用于类似博客的基本文本输入。您可能想要考虑生态模板,它可以为您提供更多的控制权,而降价则不会。在eco中你会看到这样的东西:
<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>
听起来怎么样?
答案 1 :(得分:0)
CoffeeKup还提供类似javascript风格的html结构