2

我的网站目前有一些表单页面:

<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 并发现如果我<div>在 .md 文件中编写内联:

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

幻灯片内容不作为 Markdown 处理。据说,添加一个markdown="1"属性应该可以完成这项工作。但事实并非如此。也许Sundown不明白这一点。

我最近的尝试是使用内联替换来预/后处理内容(不确定在哪个阶段进行了替换)。我将以下内联替换添加到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?

4

2 回答 2

1

Markdown 实际上只是用于基本的类似博客的文本输入。你可能想考虑一下生态模板,它可以让你有更多的控制权,而 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>

听上去怎么样?

于 2013-05-02T10:29:44.057 回答
0

CoffeeKup 还提供了类似 javascript 风格的 html 结构

于 2014-06-08T09:54:46.007 回答