Menghasilkan SDOCML Berdasarkan Dokumentasi jQuery


Pada artikel di Menambah Content Assistant Untuk jQuery di Aptana Studio 3, saya mencoba untuk mempelajari cara kerja IDE dan fitur content assist pada platform Eclipse (karena Aptana Studio memakai Eclipse Platform). Saya berhasil membuat content assist untuk jQuery yang bekerja sesuai dengan harapan saya (belum tentu sesuai dengan harapan orang lain, karena ini adalah proyek eksperimen🙂 ). Syaratnya adalah saya harus memiliki sebuah file SDOCML yang mendeskripsikan jQuery pada proyek yang sedang aktif. JavaScript memang tidak memiliki fitur dokumentasi yang standar dan SDOCML merupakan salah satu yang ada di pasaran. jQuery sendiri memiliki dokumentasi dalam bentuk XML yang mirip seperti SDOCML tapi tidak compatible sehingga saya tidak bisa memakainya secara langsung di Aptana Studio. Apa yang dilihat di http://api.jquery.com dihasilkan berdasarkan file XML tersebut.

Seiring waktu berlalu, file SDOCML yang saya buat bisa kadaluarsa karena API jQuery juga terus berevolusi. Untuk mengatasi masalah tersebut, saya membuat sebuah script Groovy yang kode programnya dapat dilihat di https://github.com/JockiHendry/sdocml-generator/blob/master/generate-jquery.groovy. Script ini akan menghasilkan SDOCML berdasarkan dokumentasi jQuery yang ada. Karena dibuat dengan bahasa pemograman Groovy, maka untuk menjalankannya dibutuhkan Java dan Groovy.

Kenapa memakai Groovy? Karena Groovy menyediakan segala sesuatu yang saya butuhkan sehingga saya bisa bekerja secara cepat. Groovy menyediakan CliBuilder sehingga saya hanya perlu mendaftarkan parameter dan Groovy (tepatnya Apache Commons CLI) akan memeriksa apakah pengguna mengisi parameter dengan benar. Groovy juga menyediakan XmlSlurper sehingga saya bisa membaca dokumentasi resmi jQuery dalam bentuk XML secara mudah. Selain itu, Groovy juga memiliki MarkupBuilder sehingga saya bisa menulis file XML dengan mudah (SDOCML pada dasarnya adalah file XML).

Script ini dapat dijalankan dengan menggunakan perintah seperti:

C:\> groovy generate-jquery.groovy -help
error: Missing required option: output
usage: generate-jquery [options]
 -file      retrieve XML API documentation from XML file
 -help            print this message
 -output    output JsDoc to this file
 -url        retrieve XML API documentation from this URL. Default
                  URL is http://api.jquery.com/resources/api.xml

Dokumentasi jQuery dipublikasikan dalam bentuk XML di lokasi http://api.jquery.com/resources/api.xml. Yang akan dilakukan oleh script ini adalah membaca dokumentasi jQuery tersebut lalu menerjemahkan menjadi file SDOCML yang dapat dipakai oleh Aptana Studio. Dengan demikian, saya bisa mendapatkan dokumentasi terbaru dengan mudah.

Bila komputer terkoneksi dengan internet, maka saya bisa menghasilkan file SDOCML berdasarkan dokumentasi jQuery yang terbaru dengan menggunakan perintah seperti:

C:\> groovy generate-jquery.groovy -url -output jquery.sdocml
Reading XML from url: http://api.jquery.com/resources/api.xml
File jquery.sdocml has been generated!

Bila seandainya saya tidak terkoneksi dengan internet, maka saya bisa menghasilkan file SDOCML berdasarkan file XML yang sudah saya download sebelumnya dengan menggunakan perintah seperti:

C:\> groovy generate-jquery.groovy -file jquery-api.xml -output jquery.sdocml
Reading XML from file: jquery-api.xml
File jquery.sdocml has been generated!

Setelah file SDOCML dihasilkan, saya tinggal meletakkannya pada proyek di Aptana Studio dan content assist-pun akan bekerja berdasarkan dokumentasi yang terbaru. Karena file SDOCML ini dihasilkan secara otomatis, bagian example akan terlihat sangat panjang sekali sesuai dengan yang ada di situs http://api.jquery.com.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: