
Membuat Static Blog Menggunakan Wintersmith - Static blog adalah blog yang tidak memiliki data dinamis atau hanya terdiri dari sekumpulan file-file static seperti HTML, CSS, Javascript serta Images. Dan salah satu platform yang paling sering digunakan untuk membuat blog static ini adalah Jekyll. Kepopuleran Jekyll semakin menjadi-jadi setelah menjadi official static site generator yang diusung oleh Github Pages, yang artinya kita tidak perlu melakukan build file di lokal komputer kita baru kemudian commit ke repository namun dari Github Pages bisa langsung melakukan auto build ketika kode kita commit.
Namun pada tulisan kali ini kita tidak akan membahas Jekyll, tentu saja karena memang sudah terlalu populer dan berbagai tutorial bisa ditemukan dengan mudah bahkan banyak yang berbahasa Indonesia. Kali ini kita akan bahas static site generator lain yakni Wintersmith.
Wintersmith seperti official website-nya menawarkan Flexible, minimalistic, multi-platform static site generator built on top of node.js memiliki beberapa keunggulan dibanding Jekyll menurut saya, diantaranya sebagai berikut :
Menggunakan Engine NodeJs
Templating dengan PUG/Jade
Sudah Tersedia Banyak Plugin Standard
Yuk, cusss kita mulai saja belajar membuat Blog Static menggunakan Wintersmith. Silahkan disimak langkah-langkahnya berikut ini :
1. Instalasi Wintersmith
Wintersmith seperti yang dijelaskan diatas menggunakan engine NodeJS sehingga untuk memasangnya tinggal menggunakan npm saja.
npm install wintersmith -g2. Membuat Project Baru
wintersmith new [project_name]Setelahnya akan langsung digenerate hampir semua kebutuhan dasar dalam blog static termasuk dengan beberapa plugin dasar yang dibutuhkan, dan untuk menjalankan project ini Anda bisa menggunakan perintah :
cd [project_name]
wintersmith preview3. Build File Static
Dan untuk men-generate static file yang nanti bisa kita host dimanapun, termasuk Github Pages , kita bisa menggunakan perintah :
wintersmith buildFile static akan di generate ke dalam folder build, kita bisa copykan ke branch berbeda sebagai static blog, contoh yang direkomendasikan menggunakan branch gh-pages.
4. Memodifikasi Konfigurasi
Konfigurasi dasar dari wintersmith terdapat pada file config.json, disini terdapat setup dasar seperti title, url, serta plugin yang kita gunakan. Kali ini kita akan coba memodifikasi dan menambahkan beberapa keterangan di config.json dan berikut adalah contohnya, dimana kita menambahkan beberapa keterangan di locals sesuai dengan blog yang akan kita buat :
{
"locals": {
"url": "https://ft-umj-4.github.io/story",
"logoUrl": "https://ft-umj-4.github.io/ft-umj-iv.jpg",
"name": "FT UMJ IV",
"owner": "GROUP FT UMJ IV",
"description": "Secuil cerita dan dokumentasi kegiatan dari group FT UMJ IV",
"sitemap": "sitemap.xml",
"discuss_id": "ft-umj-4-github-io"
},
"plugins": [
"./plugins/paginator.coffee"
],
"require": {
"moment": "moment",
"_": "underscore",
"typogr": "typogr"
},
"jade": {
"pretty": true
},
"markdown": {
"smartLists": true,
"smartypants": true
},
"paginator": {
"perPage": 3
}
}5. Menambahkan Plugin Baru
Wintersmith punya beberapa plugin yang mungkin akan kita butuhkan, daftar lengkapnya bisa dilihat di wiki plugins mereka.
Yang pertama perlu ditambahkan ketika ingin menggunakan plugin adalah depedency di dalam package.json, kemudian menginstall semua depedency dengan npm install, dan berikut contoh instalasi beberapa pluginyang saya gunakan juga :
5.a. Menambahkan wintersmith-sassify
wintersmith-sassify merupakan plugin yang digunakan ketika kita ingin menggunakan SASS pre-processor dibandingkan CSS biasa, kita menginstall dengan cara
npm install wintersmith-sassifySetelahnya akan ada depedency tambahan di package.json kita, selanjutnya kita akan menambahkan konfigurasi baru di config.json seperti berikut :
"sassify": {
"outputStyle": "compressed",
"sourceComments": false,
"sourceMap": false
}Sehingga config.json kita selengkapnya akan menjadi seperti ini :
{
"locals": {
"url": "https://ft-umj-4.github.io/story",
"logoUrl": "https://ft-umj-4.github.io/ft-umj-iv.jpg",
"name": "FT UMJ IV",
"owner": "GROUP FT UMJ IV",
"description": "Secuil cerita dan dokumentasi kegiatan dari group FT UMJ IV",
"sitemap": "sitemap.xml",
"discuss_id": "ft-umj-4-github-io"
},
"plugins": [
"./plugins/paginator.coffee",
"wintersmith-sassify"
],
"require": {
"moment": "moment",
"_": "underscore",
"typogr": "typogr"
},
"jade": {
"pretty": true
},
"markdown": {
"smartLists": true,
"smartypants": true
},
"paginator": {
"perPage": 10
},
"sassify": {
"outputStyle": "compressed",
"sourceComments": false,
"sourceMap": false
}
}5.b. Menambahkan wintersmith-tag
wintersmith-tag digunakan untuk menambahkan tag pada artikel yang kita post, instalasinya menggunakan
npm install wintersmith-tagSetelahnya kita akan mengubah Sehingga config.json kita seperti ini :
{
"locals": {
"url": "https://ft-umj-4.github.io/story",
"logoUrl": "https://ft-umj-4.github.io/ft-umj-iv.jpg",
"name": "FT UMJ IV",
"owner": "GROUP FT UMJ IV",
"description": "Secuil cerita dan dokumentasi kegiatan dari group FT UMJ IV",
"sitemap": "sitemap.xml",
"discuss_id": "ft-umj-4-github-io"
},
"plugins": [
"./plugins/paginator.coffee",
"wintersmith-sassify",
"wintersmith-tag"
],
"require": {
"moment": "moment",
"_": "underscore",
"typogr": "typogr"
},
"jade": {
"pretty": true
},
"markdown": {
"smartLists": true,
"smartypants": true
},
"paginator": {
"perPage": 10
},
"tag": {
"perPage": 10
},
"sassify": {
"outputStyle": "compressed",
"sourceComments": false,
"sourceMap": false
}
}Dan untuk menggunakannya, kita hanya perlu menambah tags ditiap atikel markdown yang kita buat, seperti contoh :
---
title: Daftar Anggota FT UMJ IV
author: ft-umj-iv
date: 2009-12-12
template: article.jade
tags: people
---5.b. Menambahkan wintersmith-sitemap
wintersmith-sitemap digunakan untuk men-generate file sitemap.xml yang bisa kita submit ke webmaster search engine nantinya, untuk instalasinya kita juga harus menambahakan plugin lainnya yang juga menjadi depedency dari wintersmith-sitemap, seperti berikut :
npm install wintersmith-sitemap wintersmith-contentsSetelahnya kita akan menambahkan di config.json pada bagian plugins
{
"plugins": [
"./plugins/paginator.coffee",
"wintersmith-sassify",
"wintersmith-tag",
"wintersmith-contents",
"wintersmith-sitemap",
"wintersmith-tag"
]
}Plugin ini akan menghasilkan file sitemap.xml pada saat kita build.
Salah satu contoh blog static yang sudah live dibuat menggunakan wintersmith bisa dilihat di https://ft-umj-4.github.io/story/ dimana kodenya juga bisa dilihat dan dipelajari secara gratis di github https://github.com/ft-umj-4/story, atau lebih lengkap silahkan kunjungi showcase mereka disini.
Demikian panduan membuat blog static menggunakan wintersmith dari saya.
Semoga bermanfaat,
Ditulis oleh Irfan Maulana di siang hari.
Salam