Rabu, 21 Januari 2015

HAML – Markup Indah Pengganti HTML

HAML – Markup Indah Pengganti HTML

Haml adalah markup seperti Html, tetapi lebih indah, human-readable (enak dibaca) dan dapat memangkas banyak waktu. Haml sendiri adalah library dari bahasa pemprograman Ruby (atau biasa disebut Gem) yang meng-compile file .haml ke file .html jadi kita tidak perlu menginstall ruby di server karena proses compile dapat dilakukan di komputer lokal. Tapi kita tetap harus menginstall Ruby di komputer lokal kita.

Haml

Untuk menginstall ruby, jika anda menggunakan sistem Window$, anda bisa mengunduh installernya di http://rubyinstaller.org/downloads/ dan pilih versi 1.9.2 untuk kestabilan. Di Linux dan Mac anda bisa menggunakan RVM, Ruby Version Manager di http://beginrescueend.com/. Untuk mengetes apa ruby sudah terinstall, buka command-line atau terminal (di Windows, Start > run > ketik ‘cmd’, atau Start > accesscories > command line)
Setelah menginstall ruby, sekarang kita perlu menginstall library dari Haml itu sendiri. Mudah kok, cukup dengan perintah pada command-line:

1
gem install haml

atau diawali dengan kata `sudo’ pada Linux atau Mac OS X.
Baiklah kini Haml (dan Ruby) sudah ter-install, saatnya kita belajar Haml dari contoh file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
!!!
%html
    %head
        %title Judul Halaman
        %link{:rel => 'stylesheet', :href => 'style.css'}
    %body
        %h1 Heading 1
        %p
            Lorem ipsum dolor sit amet,
            %strong consectetur
            adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
        .container
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
        #wrapper
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
        %div{ :class => 'container', :id => 'wrapper'}
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.

Simpan file diatas dengan nama index.haml (atau nama lain) lalu ketikkan di command line/terminal perintah:

1
haml index.haml index.html

Dimana ‘haml’ adalah nama perintah untuk meng-compile file haml, ‘index.haml’ adalah nama dari file input berupa Haml yang kita buat diatas, sedang ‘index.html’ adalah file output hasil kompilasi dari file haml. Saya sarankan file output dan file input namanya sama, misal index.haml untuk index.html, view.haml untuk view.html, dan seterusnya.

Hasilnya dalam index.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Judul Halaman</title>
    <link href='style.css' rel='stylesheet' />
  </head>
  <body>
    <h1>Heading 1</h1>
    <p>
      Lorem ipsum dolor sit amet,
      <strong>consectetur</strong>
      adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
    </p>
    <div class='container'>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
    </div>
    <div id='wrapper'>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
    </div>
    <div class='container' id='wrapper'>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent pretium justo non nibh commodo iaculis. Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
    </div>
  </body>
</html>
Tag dalam Haml, seperti dalam file Haml diatas cukup dengan tanda % di depan nama tag. Misal %html, %title, dan sebagainya.

Sedangkan untuk Tag yang berada di dalam tag lain, Haml menggunakan konsep indentasi. Biasanya indentasi dalam Haml adalah 1 tab atau 2 spasi (ala Ruby), untuk lebih jelasnya apa maksud penggunaan indentasi dalam Haml, lihat contoh berikut ini:

1
2
3
4
5
6
7
8
%body
     %p
         Lorem ipsum dolor sit amet, consectetur adipiscing elit.
         %strong
             Praesent pretium justo
             %em
                 non nibh commodo iaculis.
         Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.

Dan jika di-compile maka hasilnya:

1
2
3
4
5
6
7
8
9
10
11
12
<body>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    <strong>
      Praesent pretium justo
      <em>
        non nibh commodo iaculis.
      </em>
    </strong>
    Maecenas rhoncus varius egestas. Quisque vulputate quam eget augue rhoncus semper.
  </p>
</body>

Bagaimana? Sudah jelas maksud indentasinya?
Ya, Indentasi Haml berfungsi sebagai pengganti tag nesting pada Html. Sebuah indentasi bisa berupa 1 tab atau beberapa spasi. Syaratnya, jumlahnya harus sama dan konsisten.

Sedangkan tanda !!! diawal dokumen adalah doctype dari html. !!! melambangkan xhtml 1, dan !!! 5 adalah html 5.

Bagaimana dengan atribut Html seperti href dan title pada tag a (anchor), description dan content pada tag meta? Untuk memberikan atribut html, bisa dilakukan dengan memberi tanda kurung kurawal setelah nama tag tanpa spasi. Contohnya:

1
%a{ :href => '/page.html', :title => 'Link ke sebuah halaman'} Link

dituliskan dalam bentuk haml seperti ini:

1
<a href='/page.html' title='Link ke sebuah halaman'>Link</a>

Contoh-contoh diatas adalah sebagian kecil dari fitur Haml. Haml tidak hanya memperindah kode (dan lebih human-readable), tapi juga memangkas waktu penulisan tag-tag Html biasa. Haml banyak digunakan oleh developer Rails sebagai pengganti Erb atau developer PHP sebagai pengganti tag Html biasa.

Selamat Mencoba :)


Tidak ada komentar:

Posting Komentar