Saya berbagi pengalaman 2 tahun menggunakan generator situs statis Hugo . Posting ini ditujukan untuk pemula, tetapi posting ini tidak akan memberikan instruksi tentang cara menginstal Hugo atau cara membuat posting pertama. Posting ini akan bermanfaat bagi mereka yang memilih dan membandingkan alternatif untuk blogging.
Mengapa generator situs statis dan Hugo
Generator situs statis adalah program yang memproses file sumber terstruktur (teks, gambar, template) dan menghasilkan situs HTML statis yang dapat diunggah ke server.
Sumber situs adalah sekumpulan folder di komputer:

Dalam subfolder terpisah ada template tema, kode sumber posting, gambar umum. Beberapa file bat berisi perintah untuk operasi biasa: merekam pembaruan blog, memulai server untuk tampilan lokal, membuat posting baru dari template.
Meskipun tampak permusuhan, pendekatan ini, tidak seperti CMS, nyaman bagi mereka yang memiliki pengetahuan dalam HTML, CSS dan teknologi web lainnya, tetapi ingin blog tetap primitif secara teknis.
Secara subyektif, mengedit skrip dasar pada 5-10 baris lebih mudah daripada menggali kode sumber dari beberapa halaman CMS. Juga, Anda tidak perlu mengkonfigurasi lingkungan di server, berurusan dengan masalah keamanan instalasi dan database.
Keterbatasan situs statis adalah bahwa tidak ada cara untuk menggunakan fungsi yang terkait dengan pengguna. Sebagai contoh, Anda harus menggunakan sistem komentar pihak ketiga. Untuk blog, pembatasan seperti itu tidak penting.
Untuk situs statis, mudah untuk menemukan dan mengonfigurasi hosting
Hosting statis, sementara situs tidak memiliki volume lalu lintas, seperti Google, dikonfigurasi lebih mudah daripada untuk situs dinamis, dan dalam banyak kasus gratis.
Saya menyimpan kode sumber dan blog itu sendiri di GitLab. Begini cara kerjanya:
- Repositori git pribadi GitLab berisi kode sumber untuk blog.
- Saat memperbarui repositori, GitLab CI secara independen memulai pembuatan versi baru situs dan meletakkannya di Halaman GitLab.
Skema cara kerjanya:

Di akhir tumpukan, Cloudflare digunakan untuk mengatur sertifikat SSL untuk versi https blog.
Memperbarui situs dari membuat perubahan pada ketersediaan online dari versi baru blog dalam konfigurasi Hugo-GitLab membutuhkan waktu 0,5-1 menit. Sebagian besar waktu yang dihabiskan Gitlab mempersiapkan untuk membangun situs. Menghasilkan situs secara langsung membutuhkan 1-2 detik. Generator situs lain akan memiliki kecepatan refresh yang berbeda. Misalnya, dengan generator situs Jekyll lain yang populer, membangun halaman untuk versi baru suatu situs bisa beberapa kali lebih lambat .
Sumber dan hosting dapat dibagi - hasilkan halaman situs di komputer lokal, dan unggah hanya file HTML yang dihasilkan ke hosting. Untuk statika, ada layanan hosting yang nyaman, misalnya, Netlify. GitHub Pages sebelumnya bekerja pada prinsip ini. Beberapa waktu lalu, GitHub memperkenalkan alat otomatisasi CI, seperti GitLab.
Tidak perlu memikirkan dukungan kesehatan blog
Jika sekali tanpa kesalahan saya mengunggah situs jadi ke server dan Anda tidak mengubah apa pun, maka upaya untuk mempertahankan situs diminimalkan. Anda hanya perlu membayar untuk domain setahun sekali. Tidak perlu memikirkan keamanan (misalnya, memperbarui CMS dan plugin), membayar bulanan untuk hosting, Anda tidak perlu takut dengan pembaruan otomatis.
Kontrol penuh atas sumber dipertahankan
Setiap posting adalah folder terpisah dengan teks Penurunan harga dan segera meletakkan file gambar.
Tulisan yang disiapkan dengan cara ini, secara teori, mudah ditransfer ke platform lain. Dalam praktiknya, sulit menilai hal ini, karena sulit menemukan kasus di Internet.
Seperti inilah tampilan folder data untuk 1 posting blog:

Dan ini sedang mengedit posting itu sendiri di Sublime Text dan halaman output:

Jika Anda menambahkan kode sumber ke sistem kontrol versi, Anda dapat melihat riwayat perubahan di blog. Tangkapan layar di bawah ini menunjukkan ulasan tentang sejarah perubahan dari Mei 2018 di Sublime Merge:

Hugo dipilih di antara generator yang berbeda karena popularitasnya, kecepatan dan kemudahan instalasi
Hugo berada di 3 generator situs populer teratas di Internet dengan jumlah bintang di GitHub.
Program itu sendiri adalah file 1 exe. Memulai generator tidak memerlukan instalasi, tetapi untuk memanggilnya dengan perintah hugo, Anda harus mendaftarkan path ke sana dalam variabel sistem PATH.
Saya sudah menulis tentang kecepatan pekerjaan di atas - Hugo jauh lebih cepat daripada banyak generator lain, yang menjadi penting ketika volume situs bertambah.
Kesulitan yang dihadapi
Anda membutuhkan setidaknya sedikit pemahaman tentang pemrograman atau skrip
HUGO dan generator lainnya tidak memiliki antarmuka pengguna yang akrab. Memulai pembaruan situs dilakukan melalui serangkaian perintah atau file bat tunggal.
"Antarmuka":

Jika Anda memuat situs melalui GitLab CI, Anda harus dapat sedikit mengedit file konfigurasi CI.
GitLab menawarkan sejumlah file siap pakai untuk berbagai generator, yang dapat diambil sebagai basis:

Tapi tetap saja Anda harus terjun ke konfigurasi untuk memperbaiki sesuatu. Misalnya, dalam konfigurasi standar (dalam tangkapan layar di bawah), saya sarankan setidaknya mengubah versi Hugo (saya akan menganalisis alasannya nanti):

Komunitas Hugo yang berbahasa Rusia tidak terlalu besar, sehingga ada sangat sedikit solusi yang siap pakai yang mempertimbangkan spesifikasi audiens Rusia. Tidak ada tema berbahasa Rusia, tombol sosial disesuaikan untuk jaringan asing, tema difokuskan hanya menggunakan komentar Disqus, dan sebagainya. Saya harus menulis ulang prasasti sistem secara independen ke dalam bahasa Rusia dan memasukkan set tombol sosial dengan jaringan yang populer di kalangan audiens yang berbahasa Rusia.
Bahkan jika Anda bukan pengembang front-end, selamat datang di dunia templat HTML dengan sisipan di Go:

Di Hugo, sampai saat ini, tidak ada yang namanya plugin. Semua pengeditan harus dilakukan dalam kode sumber topik. Misalnya, jika Anda perlu memperbaiki teks di bagian bawah halaman, Anda harus mengedit template tema HTML.
Jika tema perlu diperbarui, maka Anda harus mentransfer editan secara manual di antara versi tema. Jika Anda memerlukan transfer lengkap, Anda harus menyimpan log teks dengan deskripsi semua perubahan dalam topik asli.
Pada tangkapan layar di bawah ini ~ 1/3 dari daftar perubahan:

Sulit untuk mengetahui bagaimana mesin generator bekerja.
Saya tidak mencoba, tetapi untuk semua waktu penggunaan saya tidak bisa sepenuhnya memahami bagaimana generator bekerja. Saya tidak akan dapat membuat topik atau struktur blog yang rumit dari awal.
Tidak selalu mungkin untuk menemukan solusi untuk masalah tersebut
Jika masalah umum bagi banyak pengguna, maka dengan cepat diperbaiki. Tetapi Anda dapat mengalami masalah yang hanya akan Anda temui.
Misalnya, setelah pembaruan, GitLab mulai mengubah karakter non-Inggris di jalur file ke web-encode. Jalur file ini meningkat secara signifikan jika mengandung huruf-huruf non-Inggris. Karena jalur yang terlalu panjang, proses membangun situs jatuh dengan kesalahan. Menyebutkan masalah khusus ini yang tidak dapat saya temukan. Saya mulai tiket pada pelacak masalah GitLab, tetapi tidak ada gerakan di atasnya. Saya berasumsi bahwa masalahnya terkait dengan bug yang lebih besar di GitLab CI, yang diperbaiki di suatu tempat dalam sebulan. Bulan ini, untuk sementara saya menyelesaikan masalah saya melalui transfer hosting.
Bahaya pembaruan dan alasan untuk melakukan versi Hugo
Tidak ada jaminan bahwa pengaturan Anda, dokumen dan tema selesai akan bekerja dengan benar tanpa perubahan dalam versi baru Hugo.
Misalnya, dalam Hugo versi 0.57.0, halaman utama tidak lagi dirakit dengan benar. Saya tidak dapat memahami apa masalahnya: di bug versi baru generator, dalam topik yang belum dibuka atau dalam struktur sumber saya. Saya memutuskan untuk tetap menggunakan versi 0.56. Kemudian ternyata para pengembang membuat perubahan pemecah kompatibilitas pada konfigurasi algoritma pembuatan halaman.
Pertanyaan yang relevan adalah apakah pada prinsipnya perlu memperbarui, jika tidak menggunakan fungsi baru. Memang, kurangnya pembaruan tidak memengaruhi keamanan, dan kompatibilitas dapat terputus. Contoh dari forum resmi Hugo:

Pada GitLab CI, dalam pengaturan skrip, saya sarankan Anda memperbaiki versi Hugo yang akan digunakan.
Secara default, saya menggunakan "relevan terbaru", tetapi beberapa kali saya menemukan fakta bahwa versi baru mengubah parameter penting dari rendering situs. Sampai pada titik di mana proses membangun blog rusak, atau posting yang tidak perlu muncul di RSS. Saya mengetahui hal ini hanya setelah memperbarui situs di hosting atau setelah masuk ke RSS. Pada tangkapan layar di bawah, kisah RSS feedly dengan entri yang salah disimpan secara permanen:

Untuk meringkas
Generator situs statis - cocok untuk mereka yang sudah sedikit berpengalaman di front-end, ingin dengan perendaman terbatas dalam aspek teknis untuk mendapatkan situs / blog yang sederhana secara teknis.
Hugo adalah pilihan yang baik jika kecepatan dan kemudahan instalasi adalah prioritas.
Anda tidak dapat melakukannya tanpa pengetahuan teknis. Di sana-sini Anda harus membenamkan diri dalam HTML, CSS, dan masalah teknis lainnya. Di sisi lain, sekali dikonfigurasikan suatu situs memerlukan usaha yang jauh lebih sedikit untuk mempertahankannya.