Membuat Situs Pribadi menggunakan Pelican

Ditulis tanggal 12.10.2017 di Full-Stack Web Development • 2 min read • diperbarui 2017-11-15 19:00:00+01:00


Saya ingin berbagi pengalaman saya membangun situs ini menggunakan situs generator Pelican. Dalam dua tahun terakhir, saya mencoba beberapa CMS, web framework dan generator situs-statis untuk berbagai tujuan. Pada akhirnya, saya menemukan bahwa Pelican adalah yang paling cocok untuk kebutuhan saya. Tetapi tunggu, apa motivasi saya menulis artikel ini untuk pembaca? Motivasi artikel ini adalah untuk menjelaskan cara membangun situs pribadi profesional yang gratis.

Definisi situs profesional dapat bervariasi untuk setiap orang. Inilah persyaratan saya untuk situs web profesional saya:

  • web framework yang simpel dan ringan
  • mudah dipakai dan disebarkan
  • Mendukung Markdown format
  • modularitas dan mudah diubah
  • jika mungkin, berbasis pemrograman Python

Perbandingan

Inilah beberapa CMS yang telah saya coba:

  • WordPress
  • getSimpleCMS
  • Django CMS
  • Mezzanine
  • Grav
  • Wagtail
  • Quokka CMS

Dibandingkan dengan generator situs statis, CMS di atas tidak cukup ringan dan banyak komponen yang berlebihan.

Saya mencoba Jekyll, namun, bagi saya, Jekyll memiliki terlalu sedikit fitur. Sebelum saya memutuskan untuk memilih Pelican, Nikola adalah favorit saya. Sampai akhirnya saya mengalami kesulitan untuk menyesuaikan motif (theme) yang saya pakai.

Menurut pendapat saya, Nikola memiliki terlalu banyak ketergantungan file untuk menyesuaikan motif. Setelah beberapa penelitian dan pengujian, saya menemukan bahwa motif flex sangat cocok untuk desain saya. Selanjutnya, motif ini menyediakan pengaturan konfigurasi yang sangat profesional.

Publikasi dengan Github dan Cloudflare

Untuk mempublikasikan situs saya dengan gratis, saya dapat menggunakan layanan Github Pages. Saya membuat repositori baru <username>.github.io, dan hanya mengupload (pushed) direktori output dari Pelican ke Github repository. Saya mengikuti petunjuk penggunaan di dokumen Pelican [1]. Akan tetapi, saya menggunakanpublishconf.py daripada pelicanconf.py untuk konfigurasi. SAya meringkas baris-baris perintah ini ke sebuah skrip shell:

pelican content -o output -s publishconf.py
ghp-import output
git push -f https://github.com/<username>/<username>.github.io.git gh-pages:master

Jangan lupa menginstall ghp-import dengan pip install ghp-import, dan membaca tips extra #2 disini.

Sayangnya, Saya mengalami kesulitan untuk mempublikasikan situs saya setelah mengupload CNAME. Alasan pertama adalah stylesheet dan sumber file lainnya dipanggil dengan domain khusus sebagai basis URL sehingga sumber file tidak dapat ditemukan. Alasan kedua, ada ketidakcocokan antara komunikasi HTTP dan HTTPS selama permintaan data ke server. Saya memerlukan sertifikat terpisah untuk domain saya jika saya ingin menggunakan HTTPS karena sertifikat GitHub hanya mendukung domain * .github.io.

Untuk mengatasi masalah ini, saya menggunakan layanan Cloudflare untuk mengatur situs HTTPS saya. Berkat panduan ini ([2], [3], [4]) saya dapat mengatur SSL untuk situs pribadi saya.


Referensi

  1. http://docs.getpelican.com/en/3.6.3/tips.html#publishing-to-github
  2. https://www.jonathan-petitcolas.com/2017/01/13/using-https-with-custom-domain-name-on-github-pages.html
  3. https://hackernoon.com/set-up-ssl-on-github-pages-with-custom-domains-for-free-a576bdf51bc
  4. https://www.namecheap.com/support/knowledgebase/article.aspx/9607/2210/how-to-set-up-dns-records-for-your-domain-in-cloudflare-account