4

在不小心在 HTML 模板中使用 CSS 选择器后,我开始想知道是否有模板语言或扩展允许这种语法,以及它是否有用。所以不要写这个:

<div id="mydiv">
  <div class="first column">1</div>
  <div class="second column">2</div>
</div>

我们可以这样写:

<div#mydiv>
  <div.first.column>1</div>
  <div.second.column>2</div>
</div>

这样的事情存在吗?

4

3 回答 3

5

也许您的意思是Jade 之类的东西?

它是一个 HTML 预处理器。

以下:

doctype 5
html(lang="en")
  head
    title= pageTitle
    script(type='text/javascript')
      if (foo) {
         bar()
      }
  body
    h1 Jade - node template engine
    #container
      if youAreUsingJade
        p You are amazing
      else
        p Get on it!

将被翻译成:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Jade</title>
    <script type="text/javascript">
      if (foo) {
        bar()
      }
    </script>
  </head>
  <body>
    <h1>Jade - node template engine</h1>
    <div id="container">
      <p>You are amazing</p>
    </div>
  </body>
</html>

此外,这不是您要问的,但您可能喜欢Zen Coding。它是一个高速编码 HTML 的插件。GIF 展示了它的作用:

禅宗编码动画 gif

基本上是:

  1. 编写伪html。
  2. 点击快捷方式。
  3. 获取完整的 HTML。
  4. ???
  5. 利润!

你应该与你的编辑核实它是否支持这一点。FWIW,我在 VIM 中使用,它很棒。

于 2012-06-11T07:33:03.067 回答
2

有一个工具使用类似(虽然不相同)的语法,称为Zen Coding。在启用 Zen Coding 的编辑器中输入:

div#page>div.logo+ul#navigation>li*5>a

...并将其扩展到:

<div id="page">
        <div class="logo"></div>
        <ul id="navigation">
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
                <li><a href=""></a></li>
        </ul>
</div>

这与您描述的不同之处在于它不需要预处理器来运行模板,它只是一个编辑器助手来编写最终的 HTML。它可能适合您的需求,也可能不适合。

于 2012-06-11T08:29:23.100 回答
1

也许haml会满足您的需求?它看起来非常相似。

于 2012-06-11T07:34:49.417 回答