Kamis, 05 Juni 2014

Cara Menambahkan Syntax Highlighter di Blogger

Syntax Highlighter cukup dikenal oleh berbagai platform, misalnya WordPress, Apache, Mozilla, Yahoo, Aptana, dan banyak lainnya. Apa itu Syntax Highlighter? Kita para bloggerseringkali berbagi script/kode untuk blogger atau siapapun yang membutuhkannya untuk pengembangan web/blog. Kebanyakan dari kita menggunakan blockquote sebagai "wadah" dari script/kode tersebut dan menandai dengan beberapa warna khusus sebagai indikator atau petunjuk. Nah, SyntaxHighlighting adalah upaya untuk mempresentasikan script/kode tersebut dengan cara dan tampilan yang lebih baik berdasarkan jenis kode, misalnya Javascript, CSS, HTML, Phyton, PHP, dan masih banyak lagi. Ide ini tak lain datang dari si pembuat SyntaxHighlighter, Alex Gorbachev (thanks for the script).

Script SyntaxHighlighter ada beberapa jenis, yang terbaru sebenarnya lebih canggih lagi. Tetapi saya akan membagi versi standard-nya karena memiliki beberapa opsi saat mouse diarahkan ke atas script (muncul di pojok kanan atas) yaitu: View Source (dalam blank page, pop out), Copy to Clipboard, dan Print. Ketiganya sangat memudahkan dalam meng-copy, melihat kode dalam bentuk dan susunan aslinya, serta cetak kode. Masing-masing kode diterjemahkan oleh script yang disebut Brush.

Di beberapa platform seperti WordPress, Drupal, dan Joomla, kita bisa menggunakan berbagai jenis modul atau plugin SyntaxHighlighter siap pakai, tetapi di Blogger, kita harus menambahkannya secara manual. Berikut step by step-nya:

Menambahkan Script dan Brush ke dalam Template

1. Buka dashboard > template > edit HTML
2. Cari ]]></b:skin> (ctrl + F dan masukkan ke dalam kotak pencarian, enter)
3.Sekaligus sebagai demo, berikut adalah contoh syntax highlighting-nya. Arahkan mouse ke atas script, di bagian pojok kanan atas akan muncul opsi, View Source, Copy to Clipboard, dan Print. Juga ada info script dari pembuatnya. Copy script berikut tepat di bawah ]]></b:skin>.
01<link href='http://alexgorbatchev.com/pub/sh/2.1.382/styles/shCore.css'rel='stylesheet' type='text/css'/>
02<link href='http://alexgorbatchev.com/pub/sh/2.1.382/styles/shThemeDefault.css'rel='stylesheet' type='text/css'/>
03<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shCore.js'type='text/javascript'/>
04<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushCpp.js'type='text/javascript'/>
06<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushCss.js'type='text/javascript'/>
09<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushPhp.js'type='text/javascript'/>
11<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushRuby.js'type='text/javascript'/>
12<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushSql.js'type='text/javascript'/>
13<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushVb.js'type='text/javascript'/>
14<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushXml.js'type='text/javascript'/>
15<script src='http://alexgorbatchev.com/pub/sh/2.1.382/scripts/shBrushPerl.js'type='text/javascript'/>
16<script language='javascript'>
17SyntaxHighlighter.config.bloggerMode = true;
18SyntaxHighlighter.config.clipboardSwf = &#39;http://alexgorbatchev.com/pub/sh/2.1.382/scripts/clipboard.swf&#39;;
19SyntaxHighlighter.all();
20</script>
4. Save template.

Masing-masing script brush di atas berfungsi untuk menerjemahkan dan memberi style (warna) pada berbagai jenis script/kode seperti HTML, JS, CSS, PHP, Perl, Phyton, Ruby, XML, Java, dan berbagai script standard lainnya. Jika anda hanya membutuhkannya untuk highlighting script tertentu yang anda butuhkan, hapus yang tidak diperlukan.

Cara Menggunakan SyntaxHighlighther di dalam Post/Artikel Blog

Setiap jenis kode yang ingin ditampilkan di dalam halaman sebuah web biasanya menggunakan tag <pre>, meskipun dalam beberapa hal juga bisa menggunakan tag <code>. Untuk post blogger, kita akan menggunakan tag yang pertama. Kemudian masing-masing brush yang dibutuhkan dipanggil menggunakan atribut class. Contoh penulisannya:
<pre class="brush:css, brush:html, brush:js, brush:php, brush:sql, brush:python">
Kode Di Sini
</pre>
Pada contoh di atas, kita lihat nantinya jenis-jenis kode yang akan di highlight adalah gabungan antara CSS, JS, PHP, SQL, dan Phyton. Jika anda hanya membutuhkan beberapa jenis saja, sekiranya yang diperlukan, maka gunakan brush sesuai jenis script saja. Misalnya, jika saya hanya butuh highlight HTML, JS, dan CSS, maka yang dibutuhkan adalah:
<pre class="brush:css, brush:html, brush:js">
Kode Di Sini
</pre>
Menggunakan yang diperlukan saja akan menghemat waktu load dan menghindari load script yang tidak perlu. Jadi jika anda biasanya hanya berbagi kode campuran yang terdiri dari 3 script umum di atas, gunakan susunan seperti contoh terakhir itu.

Berikut langkah-langkah menambahkan Syntax Highlighter ke dalam Post:
1. Ketika akan memasukkan kode, pindah dari mode "Compose" ke mode "HTML"
2. Kemudian masukkan tag <pre> dan class sesuai yang diinginkan, atau anda bisa copy contoh saya di atas.
3. Sebelum memasukkan kode di antara tag <pre>, anda harus parse dulu kode tersebut. Ini Penting. Karena jika tidak di parse, maka kode yang dimasukkan ke dalam editor HTML akan diterjemahkan sebagai perintah, bukan teks biasa. Gunakan HTML/Script Parser, parse kode ke dalam tool tersebut, copy hasilnya, dan sisipkan ke dalam tag <pre>.
Contoh yang benar:
<pre class="brush:css, brush:html, brush:js"> &lt;script type=&#039;text/javascript&#039;&gt;
//&lt;![CDATA[
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = &quot;//connect.facebook.net/en_US/all.js#xfbml=1&amp;appId=App-ID&quot;;
  fjs.parentNode.insertBefore(js, fjs);
}(document, &#039;script&#039;, &#039;facebook-jssdk&#039;));
//]]&gt;
&lt;/script&gt;
</pre>
Dan berikut hasilnya:
01<div id='fb-root'/>
02<script type='text/javascript'>
03//<![CDATA[
04(function(d, s, id) {
05  var js, fjs = d.getElementsByTagName(s)[0];
06  if (d.getElementById(id)) return;
07  js = d.createElement(s); js.id = id;
08  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=App-ID";
09  fjs.parentNode.insertBefore(js, fjs);
10}(document, 'script', 'facebook-jssdk'));
11//]]>
12</script>
4. Anda bisa kembali ke mode "compose" jika ingin melanjutkan menulis, sebelum mempublikasikan artikel.
5. Done.

catatan: script akan diload paling akhir oleh browser, jadi akan muncul belakangan setelah semua script dan elemen diload terlebih dahulu. Jadi syntaxt highlighter akan muncul paling akhir.
Itu dia bagaimana cara menggunakan Syntax Highlighter dengan benar di Blogger. Anda sebenarnya juga bisa menggunakan metode yang sama pada website lain, apabila ingin menambahkannya secara manual tentunya. Syntax Highlighter untuk Blogger di atas masih menggunakan skema warna default, ada beberapa variasi skema warna lain yang ke depan Insya Allah akan saya share. Juga. That's it for now and have a nice blogging, as always. :)

Membuat Semua Link Eksternal Terbuka di Window Baru Otomatis (Jquery)

otomatis buka link eksternal di window baru!
Kita sering menggunakan fitur membuka link di window baru pada interface link Blogger saat membuat post, atau menambahkan atribut link (hyperlink) target="_blank". Untuk beberapa langkah manual, tentu ini bukan masalah. Tapi jika anda sudah memiliki banyak link eksternal, baik di bagian post maupun bagian lain, misalnya widget, footer, dll, tentupekerjaan edit menjadi hal yang memakan waktu lama. Selain itu, link eksternal yang terbuka di window sama akan meningkatkan bounce rate, sehingga bisa mengurangi banyak penilaian, terutama ranking alexa.

Script ini cukup sederhana, berupa jquery, yang difungsikan untuk melakukan cek link eksternal di dalam sebuah halaman website kemudian menginjeksikan target="_blank" pada setiap link eksternal yang ditemukan pada halaman tersebut. Jadi sebenarnya script ini tidak hanya bekerja di Blogger, namun bisa di berbagai platform website/blog, misalnya WordPress (meski anda akan menemui plugin sejenis dengan mudah).

Cara Menambahkan Script Pembuka Link Eksternal Otomatis


Cukup ikuti beberapa langkah sederhana ini:

1. Seperti biasanya, jika anda sudah memiliki jquery source code, abaikan script pada bagian pertama dan langsung copy script yang kedua. Jika belum, copy keduanya dan letakkan secara berurutan. Jika tidak yakin apakah anda sudah memiliki jquery source code, cari di dalam template dengan keyword jquery dan lihat apakah sudah memiliki source code sejenis.
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'></script>
 (abaikan script di atas jika sudah punya yang sejenis)
<script type='text/javascript'>
$(document).ready(function(){$("a[href^='http://']").each(function(){if(this.href.indexOf(location.hostname)==-1){$(this).attr("target","_blank")}});$("a[href^='https://']").each(function(){if(this.href.indexOf(location.hostname)==-1){$(this).attr("target","_blank")}})});
</script>
 2. Buka dashboard Blogger > Template > Edit HTML

3. Cari </head> (cara mencari kode di template editor Blogger)

4. Letakkan script yang sudah dicopy tepat di atas </head>.

5. Save template and done!

Anda bisa cek link eksternal pada blog yang belum memiliki atribut target="_blank", atau coba buat link eksternal baru tanpa atribut target. Cek apakah script bekerja.

Catatan Singkat: Bagaimana Script Bekerja & Info Tambahan


Jika anda memperhatikan script, disitu ada perintah cek dua kali, yaitu pada link berawalan http:// dan https:// (secure connection protocol), artinya script juga bekerja pada host dan link esternal sejenis yang menggunakan secured connection protocol, misalnya WordPress dan berbagai platform website yang dihosting sendiri.

Conditional tag (if) digunakan untuk mengajukan persyaratan/cek kedua protocol tersebut, dan jika nilainya sama dengan -1, maka link yang harus dicari (disyaratkan) adalah link yang tidak berada di dalam host yang sama (bukan link yg menuju website/blog anda), alias bersifat eksternal (External Links).

Setelah link-link sesuai persyaratan ditemukan, maka disisipkan / diinjeksikan atribut target="_blank" [{$(this).attr("target","_blank")}].

Logikanya, karena value -1 berarti adalah link yang tidak berada di host yang sama (link yang tidak menuju website/blog anda), maka value 1 berarti sebaliknya (nilai positif), yaitu jika diubah dari -1 ke 1, maka semua link internal anda akan terbuka di window baru.

Jika anda menginginkan semua link, baik internal maupun eksternal terbuka di window baru (meski saya tidak menyarankan), tidak perlu menggunakan script demikian, cukup gunakan tag base targettting berikut dan letakkan di dalam tag head (sebelum </head>):
<base target="_blank"/>
Simak selengkapnya dalam cara membuat link terbuka di window/tab baru.

That's it, and have a nice blogging, fellow brothers and sisters ;)

TENTANG KALENDER GREGORIAN DAN PERAYAAN TAHUN BARU

Besok adalah 1 januari 2013 M, awal bulan dalam sistem kalender Masehi atau sistem kalender Gregorian. Dunia akan merayakan tahun baru 2013, termasuk Indonesia. Artis-artis mendulang rizki dari moment ini, dan tepat jam 00.00 1 Januari 2013 akan dibakar kembang api.  Masyarakat Indonesia juga ikut arus tradisi perayaan tahun baru ini, dengan bakar jagung dan ayam. Pesta-pesta, pesta menyambut tahun baru dunia!
Saya tidak bermaksud mempengaruhi anda semua untuk merubah persepsi waktu, karena arus perhitungan waktu dari sistem kalender Gregorian ini sudah sedemikian mapan dan kuatnya. Tapi sebaiknya anda tahu tentang sejarah dari kalender masehi ini.
Sejarahnya, menurut catatan di Encarta Reference Library Premium 2005, orang pertama yang membuat penanggalan kalender adalah seorang kaisar Romawi yang terkenal bernama Gaisus Julius Caesar. Itu dibuat pada tahun 45 SM jika mengunakan standar tahun yang dihitung mundur dari kelahiran Yesus Kristus.
scriptoriumTapi pada perkembangannya, ada seorang pendeta Nasrani yang bernama Dionisius yang kemudian memanfaatkan’ penemuan kalender dari Julius Caesar ini untuk diadopsi sebagai penanggalan yang didasarkan pada tahun kelahiran Yesus Kristus. Itu sebabnya, penanggalan tahun setelah kelahiran Yesus Kristus diberi tanda AD (bahasa Latin:Anno Domini yang berarti: in the year of our lord) alias Masehi. Sementara untuk jamanprasejarahnya disematkan BC (Before Christ) alias SM (Sebelum Masehi).
Lalu Pope (Paus) Gregory III kemudian memoles kalender yang sebelumnya dengan beberapa modifikasi dan kemudianmengukuhkannya sebagai sistem penanggalan yang harus digunakan oleh seluruh bangsa Eropa, bahkan kini di seluruh negara di dunia dan berlaku umum bagi siapa saja.Kalender Gregorian yang kita kenal sebagai kalender masehi dibuat berdasarkan kelahiran Yesus Kristus dalam keyakinan Nasrani.
The Gregorian calendar is also called the Christian calendar because it uses the birth of Jesus Christ as a starting date.
Pada zaman Romawi, pesta tahun baru adalah untuk menghormati Dewa Janus (Dewa yang digambarkan bermuka dua-ini bukan munafik maksudnya, tapi merupakan Dewa pintu dan semua permulaan. Jadi mukanya dua: depan dan belakan, Kemudian perayaan ini terus dilestarikan dan menyebar ke Eropa (abad permulaan Masehi). Seiring muncul dan berkembangnya agama Nasrani, akhirnya perayaan ini diwajibkan oleh para pemimpin gereja sebagai satu perayaan “suci” sepaket dengan Natal . Itulah sebabnya mengapa kalo ucapan Natal dan Tahun baru dijadikan satu: Merry Christmas and Happy New Year.
Sumber :