Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Ruby

Pengantar Haml dan Sinatra

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Johari Triana (you can also view the original English article)

Dua kali sebulan, kami mengunjungi kembali beberapa posting favorit pembaca kami dari sepanjang riwayat Nettuts+. Tutorial ini pertama kali diterbitkan pada Oktober 2010.

Tutorial ini akan memperkenalkan Haml dan Sinatra. Haml adalah bahasa markup yang menghasilkan HTML yang bersih dan terstruktur dengan baik. Sinatra adalah kerangka kerja Ruby yang sederhana namun kuat untuk membuat situs web atau layanan web. Keduanya bekerja sangat baik bersama-sama dan menyediakan alat yang ampuh untuk pengembangan web yang cepat dan sederhana. Saya menemukan mereka ideal untuk membuat prototipe.

Pada akhir tutorial ini, Anda akan membuat situs web dengan dua halaman menggunakan Sinatra dan Haml. Sepanjang jalan, Anda akan belajar bagaimana aplikasi Sinatra terstruktur, dan akan diperkenalkan ke Haml. Anda juga akan belajar cara menggunakan file tata letak untuk mengurangi jumlah kode duplikat dan memberikan konsistensi antara halaman.


Langkah 1: Instal Ruby dan Gem

Anda dapat melewati bagian ini jika Anda sudah menginstal Ruby dan bekerja di sistem Anda.

Kita perlu menginstal bahasa Ruby dan gem Sinatra dan Haml untuk memulai.

Metode untuk melakukan ini akan bervariasi tergantung pada sistem operasi Anda. Saya suka menggunakan Ruby Version Manager (RVM) untuk mengelola Ruby di OS X dan Linux. (Pengguna Windows mungkin ingin melihat Pik sebagai alternatif untuk RVM.)

Instal RVM untuk Mengelola Lingkungan Ruby kami

Bagi Anda yang belum menginstal Ruby, unduh dan instal RVM.

Ikuti instruksi pada Halaman Instalasi RVM, buka terminal dan masukkan yang berikut ini:

Ini akan mengunduh dan menginstal RVM. Kita perlu menambahkan baris ke akhir file .bashrc kita. Anda yang menggunakan alternatif untuk shell ke Bash harus mengubah profil yang sesuai. Lihat halaman instalasi RVM untuk lebih jelasnya.

Ingin mempelajari lebih lanjut tentang bekerja dengan RVM?

Tutup dan buka kembali shell Anda dan Anda harus siap!

Instal Ketergantungan dan Bahasa Ruby

Ketikkan 'rvm notes' untuk memeriksa semua dependensi yang mungkin Anda perlukan untuk sistem operasi Anda. Ada beberapa versi server Ruby berbeda yang dapat dikelola RVM. Kami akan menggunakan versi standar yang disebut MRI. Oleh karena itu, dalam output rvm notes cari bagian yang mengatakan, 'For MRI and REE...'. Kemudian salin dan tempel perintah yang disebutkan untuk 'ruby'.

Sebagai contoh, pada instalasi baru Ubuntu, saya mendapatkan output berikut dan perlu menginstal dependensi yang tercantum dengan menggunakan perintah aptitude yang diberikan dalam output. Lihat screenshot  di bawah ini.

Dengan sedikit rumit, menginstal dan menggunakan berbagai versi dan gem Ruby sekarang mudah. Instal Ruby versi 1.9.2 dengan memasukkan yang berikut:

RVM sekarang harus mengunduh dan menginstal Ruby versi 1.9.2.

Tahap terakhir adalah memasang gem Sinatra dan Haml. Mengetik:

Anda akan melihat output berikut di terminal:

Sekarang ketik gem install haml untuk menginstal gem Haml pada sistem Anda dengan cara yang sama.


Langkah 2: Buat aplikasi Sinatra

Baru ke Sinatra? Ikuti kursus gratis kami!

Untuk mulai membuat aplikasi Sinatra, buat folder yang berisi file Ruby untuk kode aplikasi. Di terminal Anda, ketik:

Buka file 'website.rb' yang baru dibuat di editor teks Anda dan masukkan yang berikut ini:

Ini adalah aplikasi dasar Sinatra. Dua baris pertama membawa perpustakaan 'rubygems' dan 'sinatra' untuk melakukan pekerjaan berat.

Bagian selanjutnya memberi tahu Sinatra bagaimana menanggapi permintaan 'get'. Secara khusus, ia memberi tahu apa yang harus dilakukan ketika url root (path '/') diminta. Dalam contoh ini, Sinatra baru saja mengembalikan string "This is Sinatra". Inilah yang akan muncul di browser ketika url root aplikasi diminta.

Untuk melihatnya beraksi, kembali ke terminal Anda dan jalankan aplikasi Sinatra menggunakan perintah berikut:

Anda harus memulai ulang file website.rb ini setiap kali Anda mengubahnya. Oleh karena itu, ide yang baik untuk membuat shell terpisah berjalan di jendela atau tab sendiri untuk memulai dan menghentikannya.

Anda harus mendapatkan respons:

Ini memberi tahu kami bahwa server web (disebut WEBrick) telah dimulai dan sekarang melayani aplikasi Anda pada port 4567.

Untuk melihatnya, buka browser Anda dan pergi ke "localhost:4567". Anda harus melihat output aplikasi:

Selamat! Aplikasi Sinatra Anda sudah aktif dan berjalan!

Mari kita mulai melihat halaman pembuatan dengan Haml dan beberapa konvensi standar Sinatra untuk file khusus.


Langkah 3: Memperkenalkan Haml

Kami akan membangun halaman kami dengan Haml. Langkah pertama adalah memberi tahu aplikasi kita bahwa kita akan menggunakan gem Haml.

Kami melakukan ini dengan menambahkan sertakan 'Haml' di bagian atas kode Anda. Ubah file 'website.rb' Anda agar terlihat seperti berikut:

Aplikasi Anda sekarang akan tahu untuk menggunakan gem Haml yang kami instal sebelumnya.

Bahasa Markup Haml 

Haml adalah cara sederhana dan bersih untuk menggambarkan HTML. Itu juga dapat menangani kode inline, seperti PHP, ASP dan skrip Ruby.

Salah satu tujuan Haml adalah untuk mengurangi jumlah duplikasi dan pengulangan yang ditemukan dalam membuat halaman web dengan HTML; salah satu contohnya adalah tag penutup. Ini dilakukan dengan mengandalkan struktur indentasi dalam kode: Ketika menulis dalam Haml, penting untuk konsisten dengan indentasi saat mereka menggambarkan struktur halaman.

Hasilnya adalah markup yang logis dan lebih mudah dibaca daripada HTML untuk semua kasus kecuali yang paling sepele.

Mari kita lihat beberapa markup Haml dan perlihatkan HTML yang dihasilkannya.

'!!!' pada awal kode memberitahu Haml untuk menampilkan tag DOCTYPE. Tag HTML dijelaskan dengan tanda '%'. Jadi% html menampilkan tag <html>,%head membuat tag <head>, %p menciptakan tag <p> dan seterusnya.

Indentasi memberi tahu Haml tag mana yang ada pada orang lain. Jadi tag heading <h1> yang dihasilkan oleh markup '%h1' ada di dalam tag <body> yang dibuat oleh markup '%body'. Tag paragraf berikut yang ditandai oleh tag '%p' ​​juga ada di dalam tag body. Mengikuti indentasi, kita dapat melihat bahwa teks terletak di dalam paragraf.

Karenanya, markup di atas memberikan output HTML berikut:

Anda dapat melihat di mana tag penutup sesuai dengan indentasi di markup Haml asli.

Menambahkan Template Haml ke Aplikasi Sinatra

Dengan perkenalan singkat tentang Haml, kita dapat mulai menggunakannya dalam aplikasi kita. Secara default, Sinatra akan mencari templat laman web di folder yang disebut 'views'. Mari tambahkan folder itu sekarang.

Buka terminal, navigasikan ke folder sinatra_app yang kami buat sebelumnya dan masukkan yang berikut ini:

Sekarang kita berada di dalam folder views, mari kita buat halaman 'index.haml'.

Buka 'index.haml' di editor teks Anda dan isi berikut ini:

Langkah selanjutnya adalah memberi tahu Sinatra untuk menggunakan file ini untuk beranda. Buka file 'website.rb' dan ubah kode di blok get '/' sehingga file tersebut sekarang terbaca:

Ini menginstruksikan aplikasi untuk mengirim output dari file Haml, yang disebut index.haml (dicari secara otomatis di folder 'views'), ketika alamat root diminta.

Kembali di terminal yang menjalankan server web, ketik 'Ctrl-C' untuk menghentikan server web dan kemudian panggil lagi menggunakan perintah ruby ​​untuk me-restart:

Refresh browser Anda dan Anda akan melihat halaman web yang dihasilkan.

Melihat sumber halaman web ini menunjukkan HTML yang dihasilkan oleh Haml:

Besar! Kami sekarang memiliki situs web kami bekerja dengan menggunakan templat Haml di direktori 'views'.

Sekarang mari kita bekerja halaman utama menjadi sesuatu yang mengikuti struktur khas dengan header, footer, area konten dan sidebar. Kami juga akan menambahkan beberapa CSS dasar ke posisi dan gaya halaman. Dalam melakukan ini, kita akan melihat bagaimana mengekspresikan tag <div> di Haml dan bagaimana cara membawa tautan ke file CSS.

Membuat Halaman Beranda

Kembali ke file 'index.haml' di editor teks Anda dan ubah tampilannya seperti berikut:

Ini adalah tata letak khas dengan header, konten, side_bar, dan footer divs. Seperti yang Anda lihat, tag <div> dibuat dengan tanda #. Seluruh halaman dibungkus dengan tag <div id= "wrapper"> yang dibuat oleh baris '#wrapper'.

Untuk memberikan id tag HTML, kami hanya rekatkan # pada bagian akhir, sehingga kami dapat menulis %body#my_ID untuk mendapatkan <body id= "my_ID">. Kelas ditandai dengan titik. Jadi %article.my_class akan memberikan <article class="my_class">.

Simpan file dan segarkan di browser Anda. Anda harus melihat sesuatu seperti ini:

Menambahkan beberapa style CSS

Sinatra menggunakan nama direktori khusus lain 'public' untuk menyimpan aset seperti file dan gambar CSS. Buat folder yang dinamai 'public' di folder root aplikasi Anda. Ubah ke direktori itu dan buat satu yang dinamai 'css' untuk menyimpan file css. Selesai dengan membuat file css kosong di direktori itu.

Lakukan ini di terminal Anda dengan mengetik:

Buka file styles.css di editor Anda dan salin dan tempel yang berikut ini di:

Saya tidak akan membahas detail css, karena ini hanya cara cepat dan kotor untuk membuat elemen halaman lebih jelas di browser.

Kita perlu menautkan ke file CSS dari dalam halaman index. Saya juga akan menambahkan tautan ke Yahoo CSS reset untuk membantu konsistensi di seluruh peramban. Buka halaman index.haml editor dan tambahkan dua baris ini ke bagian %head.

Ini menggambarkan bagaimana kita dapat menggunakan tanda kurung di Haml untuk atribut tag tambahan: rel dan href dalam kasus ini.

File akhir Anda akan terlihat seperti ini:

Refresh browser Anda, dan Anda akan melihat halaman beranda dengan gaya dan div diposisikan.

Kami sekarang memiliki template dasar untuk halaman web kami yang dapat kami gunakan kembali untuk membuat halaman tambahan.


Langkah 4: Membuat Tata Letak Umum

Sekarang setelah kita memiliki tata letak halaman dasar, kita dapat melihat bahwa sebagian besar konten dalam file index.html kita mungkin sama untuk halaman lain di situs. Dalam contoh ini, kami akan menjaga header, footer, dan sidebar umum untuk kedua halaman. Kita dapat menggunakan file layout di Sinatra untuk mencapai ini.

Kembali ke halaman index di editor teks Anda; ubah nama file dengan memilih 'Save as' ke layout.haml.

Kami sekarang akan mengedit file layout dan memperkenalkan beberapa markup templating menggunakan tag '=' di Haml.

Ubah file layout menjadi seperti:

Kuncinya di sini adalah perintah '=yield'. Tanda = memberi tahu Haml untuk memproses beberapa kode Ruby dan meletakkan hasilnya di browser. Di sini kita hanya memanggil fungsi yield Ruby yang akan mengembalikan konten halaman.

Kita sekarang dapat mengedit halaman index.haml kami untuk mengeluarkan semua kode yang digandakan dalam file layout. Ubah agar terlihat seperti:

Menyegarkan peramban harus memberikan hasil yang persis sama dengan sebelumnya. Tapi kali ini, file layout secara otomatis diambil oleh Sinatra dan halaman index di render sebagai hasil dari fungsi yield.

Membuat Halaman Tentang

Membuat halaman tambahan yang menggunakan template ini sekarang sangat mudah. Buat file baru di folder 'views' bernama about.haml

Direktori dan struktur file Anda untuk aplikasi akan terlihat seperti ini:

Masukkan kode berikut dalam file baru:

Seperti yang Anda lihat, ini adalah halaman yang sangat sederhana dengan heading dan sepotong teks di dalam tag paragraf.

Kami tidak memiliki cara untuk melihat halaman saat ini. Untuk melakukan itu, kita perlu mengubah file website.rb untuk memberitahu Sinatra untuk menangani permintaan '/about' dan untuk mengembalikan template about.haml sebagai hasilnya.

Kami melakukannya dengan menambahkan baris berikut ke file website.rb:

Blok get '/about' memberi tahu Sinatra untuk mengembalikan 'about' template Haml sebagai respons terhadap HTTP get untuk '/about'.

Mulai ulang server web WEBrick dengan menekan Ctrl-C di terminal yang menjalankannya, seperti yang kami lakukan sebelumnya, dan memanggil ruby ​​website.rb.

Anda akan melihat halaman berikut ketika Anda menavigasi ke 'localhost:4567/about' di browser Anda.

Menambahkan lebih banyak halaman akan secepat dan sesederhana itu. Ingatlah bahwa Anda harus me-restart server WEBrick jika Anda mengubah file aplikasi.


Langkah 5: Menambahkan Meny (dan Merapikan)

Kita perlu menambahkan beberapa cara menavigasi antar halaman; jadi kami akan menambahkan menu sederhana di layout. Buka file layout.haml dan tambahkan div navigasi dan tautan seperti ini:

Di sini, kami membuat div dengan id nav. Div ini berisi daftar dengan tag anchor ke '/' dan 'about'. Perhatikan bagaimana teks tertaut diindentasi pada baris berikut untuk mengelilinginya di tag anchor HTML.

Refresh browser Anda, dan Anda akan melihat menu yang menghubungkan kedua halaman:

Mengklik tautan di menu navigasi akan membawa Anda ke setiap halaman. Anda dapat bereksperimen dengan menambahkan lebih banyak halaman. Ingat, langkah-langkahnya adalah sebagai berikut:

  • Tambahkan file .haml baru ke direktori views.
  • Jelaskan tampilan menggunakan Haml dalam file itu.
  • Tambahkan navigasi ke halaman baru di bagian menu dari file layout.
  • Edit file website.rb untuk rute baru dengan cara yang sama dengan rute '/about'.
  • Jangan lupa untuk me-restart file website.rb!

Kesimpulan

Tentu saja ada lebih banyak Sinatra dan Haml daripada yang kita lihat di sini. Sinatra adalah pilihan tepat untuk situs web dan layanan web, sedangkan kerangka kerja yang lebih berat seperti Ruby on Rails mungkin berlebihan. Lebih jauh, saya menemukan kesederhanaan dan kejelasan Haml melengkapi Sinatra dengan indah, dan menjadikannya pendekatan pembangunan yang sangat produktif.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.