Hasilkan situs statis dan feed Atom, dengan Markdown, shell, dan pandoc.
git clone pdssg, idealnya di samping direktori sumber situs Anda.
git clone https://github.com/torresjrjr/pdssg
Untuk menjalankan pdssg dan membangun situs statis, jalankan skrip pdssg dalam satu direktori di atas direktori sumber situs.
$ ls
src/ pdssg/
$ ./pdssg/pdssg
pdssg adalah skrip shell tunggal yang dapat dieksekusi, tanpa tanda baris perintah. Ini hanya menghasilkan direktori situs tetangga dst/
(tujuan) dari direktori tetangga yang ada src/
(sumber) dengan konten situs (file penurunan harga yang akan dikonversi ke halaman web HTML, dan file lainnya).
Desain pdssg bersifat modular dan berbasis pohon. Berikut ini contoh direktori sumber situs .
src/
|-- _ignore
|-- _feeds
|-- index.md
|-- about.md
|-- posts.md
|-- posts/
| |-- _drafts/
| | `--- 2020-04-01-bored.md
| |-- 2020-01-01-new-year.md
| |-- 2020-02-01-corona-what.md
| `-- 2020-03-01-stuck-at-home.md
|-- feeds/
| `-- posts.md
|-- assets/
| `-- style.css
|-- _templates/
| |-- atom.xml
| `-- main.html
`-- _includes/
|-- header.html
|-- footer.html
`-- meta.html
Inilah direktori build yang dihasilkan.
dst/
|-- index.html
|-- about.html
|-- posts.html
|-- posts/
| |--- 2020-01-01-new-year.html
| |--- 2020-02-01-corona-what.html
| `--- 2020-03-01-stuck-at-home.html
|-- feeds/
| `--- posts.html
`-- assets/
`--- style.css
Catatan: file dan direktori yang diawali dengan garis bawah _
akan dibuang.
File penurunan harga akan dikonversi ke file HTML, siap sebagai halaman web. Pengecualiannya adalah jalur file yang cocok dengan pola dalam file ./_ignore
, seperti file .gitignore
.
pdssg mengharapkan file Markdown memiliki blok frontmatter YAML, yang merupakan blok metadata YAML yang dikelilingi oleh sepasang ---
, sebelum konten file lainnya.
Frontmatter setidaknya harus memiliki nilai title
, yang akan digunakan untuk membuat judul judul <h1>
. nilai author
dan date
adalah hal yang umum, dan direkomendasikan jika perlu.
Contoh file penurunan harga:
---
title : My Webpage Title
author : John Smith
date : 2020-12-30
---
## Subheading
contents...
Seperti pada contoh, direktori _includes
dan _templates
akan digunakan untuk menghasilkan file HTML dan Atom. Mereka kemudian dibuang.
Untuk file di _templates
:
atom.xml
digunakan untuk membuat dokumen HTML.main.html
digunakan untuk membuat feed Atom. Untuk file di _includes
:
meta.html
disisipkan di header dokumen di dalam tag <meta>
.header.html
disisipkan di badan dalam tag <body>
, sebelum konten utama.footer.html
disisipkan di badan dalam tag <body>
, setelah konten utama.Umpan atom adalah umpan mirip RSS berdasarkan format sindikasi yang lebih baru dan lebih kuat. Mereka pada dasarnya digunakan seperti RSS dan disebut demikian. Umpan atom memungkinkan pembaca berlangganan konten baru situs web, seperti blog.
pdssg dapat membuat feed Atom dari direktori, dengan file direktori sebagai entri feed. Untuk melakukan ini, Anda perlu membuat direktori tertentu untuk feed Anda, dan membuat "file benih Atom" seperti:
./feeds/
) dan tulis jalurnya di file konfigurasi _feeds
./posts/
)../feeds/posts/
)..md
ke jalur (misalnya ./feeds/posts.md
). Lihat contoh situs di atas untuk demonstrasi (direktori posts/
).
File benih Atom akan dikonversi menjadi file umpan Atom. Umpan yang dihasilkan ini akan ada di jalur baru tetapi dengan ekstensi .xml
bukan .md
. Dalam contoh ini, feed atom akan muncul di example.com/feeds/posts.xml
. Catatan, file ./posts.md
tidak diperlukan untuk feed, hanya direktori.
CATATAN: Entri atom diurutkan secara alfanumerik berdasarkan nama file terkait, bukan berdasarkan date
yang ditentukan oleh frontmatter YAML.
Proyek ini lahir dari tantangan pribadi, untuk situs saya sendiri. Atas permintaan seorang blogger yang ramah, saya membersihkannya dan mempublikasikannya.
Hubungi saya: t.me/torresjrjr