美文网首页
Pug & HTML & Vue

Pug & HTML & Vue

作者: 前端菜篮子 | 来源:发表于2020-01-07 14:38 被阅读0次

    Pug 相关介绍来自:
    作者:前端绅士
    链接:https://www.imooc.com/article/40792?block_id=tuijian_wz
    来源:慕课网
    本文原创发布于慕课网 ,转载请注明出处,谢谢合作

    Pug是啥?

    Pug听起来或许比较陌生,但是如果说起她的前生,相信各位多少会有耳闻:Jade

    每当你不停的敲打<></>的时候,可曾想过,这该死的箭头是不是可以拿掉?这不单单是看着不舒服,有时候还会因为行数过多,而导致你头晕眼花。

    那么是否有一种既能减少代码量,又能不做预翻译的方案呢,Jade这个后端模板出现了,然后改名叫Pug了,现在Vue也支持这个语法

    如何使用

    1. npm i -D pug pug-loader
    2. <template lang='pug'> 即可

    Pug也就是HTML,你可以理解成语法糖。

    功力如何

    我们先来看一段HTML代码

    HTML

    整成Pug

        label
          input(type="checkbox")
          span 记住密码
          .show-box
    

    tips

    1. Vue 使用有没有什么需要注意的地方

      没有,完全没有,该冒号,该@shift+2

    2. 一些小坑
      注意使用|符号来切割文字,如:

        span
            i
            span.red love
            | you // 这里没必要再用一个span,使用“|”即可
    
    1. Pug其他功能
    • Pug不单单是简化语法这么简单,她也有变量、混合、过滤等,但这些功能在使用中跟Vue重复,我们搭建项目主要还是Vue,所以能用Vue的就用VuePug最大的功能就是精简和整理代码。
    • 如需了解其他功能,请前往官网查阅:Pug官网

    codepen除了支持Pug的写法,也支持Haml的写法,下面是:

    HTML代码简写法:Emmet和Haml(阮一峰)

    一、Emmet的用法

    Emmet是一个编辑器插件,官方网站提供多编辑器支持。我一般使用vim,下面就以vim插件举例。

    首先,按照vim插件文档进行安装。然后,新建一个文本文件,键入

    html:5
    

    按一下"<Ctr+y>,"(先按ctrl键+y键,然后再按逗号键,不同的编辑器有不同的转化键),这一行就立刻变成下面的样子。

    <!DOCTYPE html>
    <html lang="en">
       <head>
         <meta charset="UTF-8">
         <title></title>
       </head>
       <body>
       
       </body>
    </html>
    

    这就是Emmet的基本用法:先写简写形式,然后用<Ctrl+y>将其转成HTML代码。

    Emmet支持的简写规则,类似于CSS选择器(大写的E代表一个HTML标签):

      1. E 代表HTML标签。
       2. E#id 代表id属性。
      3. E.class 代表class属性。
      4. E[attr=foo] 代表某一个特定属性。
      5. E{foo} 代表标签包含的内容是foo。
      6. E>N 代表N是E的子元素。
      7. E+N 代表N是E的同级元素。
      8. E^N 代表N是E的上级元素。
    

    请看下面的例子。

      p
      p#main.item
      a[href=http://wikipedia.org]{维基百科}
      div>p  
      div+p  
      p>span^div 
    

    对应的HTML代码为:

      <p></p>
      <p id="main" class="item"></p>   
      <a href="http://wikipedia.org">维基百科</a>   
      <div>
        <p></p>
      </div>   
      <div</div>
      <p></p>   
      <p><span></span></p>
      <div></div>
    

    Emmet还提供了连写(E*N)和自动编号(E$*N)功能。

      li*3>a   
      div#item$.class$$*3 
    

    对应的HTML代码为

      <li><a href=""></a></li>
      <li><a href=""></a></li>
      <li><a href=""></a></li>
      
      <div id="item1" class="class01"></div>
      <div id="item2" class="class02"></div>
      <div id="item3" class="class03"></div> 
    

    下面是另外一些简写的例子,读者可以自行测试,看看它们转化成怎样的HTML代码。

      header+main+footer
      
      table>(thead>tr>th*5)(tbody>tr>td*5)
      
      nav>ul>(li>a[href=#]{Link})*5
    

    Emmet使用按键<Ctrl+y>/,让一个代码块变成HTML注释。更多功能请参考文中链接......

    二、Haml的用法

    Haml不同于emmet,它是一个命令行工具。需要先安装Ruby语言,再安装Haml

    gem install haml
    

    使用时,用命令行将haml文件一次性转为html文件。

    haml input.haml output.html
    

    haml的简化规则如下:

      1. !!! 5 代表 <!DOCTYPE html>
      2. %E 代表HTML标签。
      3. %E#id 代表id属性。
      4. %E.class 代表class属性。
      5. %E(attr="xxx") 代表某一个特定属性。
      6. %E XXX 代表插入标签的内容。
      7. %E %N 代表N是E的子元素。N如果写在第二行,需要缩进。
    

    下面是Haml的代码示例,代码块的层级关系用缩进表示。

      !!! 5
      %html{lang: 'en'}
        %head
          %title Haml Demo
        %body
          %h1 Hello World
          %a(href="http://wikipedia.org" title="Wikipedia") 维基百科 
    

    对应的HTML代码为:

      <!DOCTYPE html>
      <html lang='en'>
        <head>
          <title>Haml Demo</title>
        </head>
        <body>
          <h1>Hello World</h1>
          <a href='http://wikipedia.org' title='Wikipedia'>维基百科</a>
        </body>
      </html>
    

    Haml中,/起首的行表示HTML注释,-#起首的行表示Haml注释。 更多功能请参考文中链接

    相关文章

      网友评论

          本文标题:Pug & HTML & Vue

          本文链接:https://www.haomeiwen.com/subject/jamractx.html