สร้างไซต์แบบคงที่และฟีด Atom ด้วย Markdown, Shell และ Pandoc
git clone pdssg ควรจะอยู่ข้างไดเร็กทอรีแหล่งที่มาของไซต์ของคุณ
git clone https://github.com/torresjrjr/pdssgหากต้องการรัน pdssg และสร้างไซต์แบบคงที่ ให้รันสคริปต์ pdssg ในไดเร็กทอรีเดียวที่อยู่เหนือไดเร็กทอรีต้นทางของไซต์
$ ls
src/ pdssg/
$ ./pdssg/pdssg pdssg เป็นเชลล์สคริปต์ที่สามารถเรียกใช้งานได้ตัวเดียว โดยไม่มีแฟล็กบรรทัดคำสั่ง มันเพียงสร้างไดเร็กทอรีไซต์ใกล้เคียง dst/ (ปลายทาง) จากไดเร็กทอรีที่มีอยู่และใกล้เคียงกัน src/ (แหล่งที่มา) พร้อมด้วยเนื้อหาของไซต์ (ไฟล์ Markdown ที่จะแปลงเป็นเว็บเพจ HTML และไฟล์อื่นๆ)
การออกแบบของ pdssg เป็นแบบโมดูลาร์และอิงจากต้นไม้ นี่คือ ตัวอย่างไดเรกทอรีแหล่งที่มาของไซต์
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
นี่คือไดเร็กทอรี build ที่เป็นผลลัพธ์
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
หมายเหตุ: ไฟล์และไดเร็กทอรีที่ขึ้นต้นด้วยขีดล่าง _ จะถูกยกเลิก
ไฟล์ Markdown จะถูกแปลงเป็นไฟล์ HTML พร้อมเป็นหน้าเว็บ ข้อยกเว้นคือพาธของไฟล์ที่ตรงกับรูปแบบในไฟล์ ./_ignore เช่น ไฟล์ . .gitignore
pdssg คาดว่าไฟล์ Markdown จะมีบล็อก YAML frontmatter ซึ่งเป็นบล็อกของข้อมูลเมตา YAML ที่ล้อมรอบด้วยคู่ --- นำหน้าเนื้อหาไฟล์ที่เหลือ
ส่วนหน้าอย่างน้อย ควร มีค่า title ซึ่งจะใช้เพื่อสร้างส่วนหัวของหัวเรื่อง <h1> ค่า author และ date เป็นเรื่องปกติ และแนะนำตามความเหมาะสม
ตัวอย่างของไฟล์ Markdown:
---
title : My Webpage Title
author : John Smith
date : 2020-12-30
---
## Subheading
contents... ดังตัวอย่าง ไดเร็กทอรี _includes และ _templates จะถูกใช้เพื่อสร้างไฟล์ HTML และ Atom พวกเขาจะถูกทิ้งแล้ว
สำหรับไฟล์ใน _templates :
atom.xml ใช้เพื่อสร้างเอกสาร HTMLmain.html ใช้เพื่อสร้างฟีด Atom สำหรับไฟล์ใน _includes :
meta.html ถูกแทรกลงในส่วนหัวของเอกสารภายในแท็ก <meta>header.html ถูกแทรกในส่วนเนื้อหาภายในแท็ก <body> ก่อนเนื้อหาหลักfooter.html ถูกแทรกในส่วนเนื้อหาภายในแท็ก <body> หลังเนื้อหาหลักฟีด Atom เป็นฟีดที่มีลักษณะคล้าย RSS โดยอิงตามรูปแบบการเผยแพร่ที่ใหม่กว่าและมีประสิทธิภาพมากกว่า โดยพื้นฐานแล้วจะใช้เหมือนกับ RSS และเรียกเช่นนี้ ฟีด Atom ช่วยให้ผู้อ่านสามารถสมัครรับเนื้อหาใหม่ของเว็บไซต์ เช่น บล็อก
pdssg สามารถสร้างฟีด Atom จากไดเร็กทอรี โดยมีไฟล์ของไดเร็กทอรีเป็นรายการฟีด ในการดำเนินการนี้ คุณต้องสร้างไดเร็กทอรีที่ระบุสำหรับฟีดของคุณ และสร้าง "ไฟล์ Atom Seed" ดังนี้
./feeds/ ) และเขียนเส้นทางในไฟล์กำหนดค่า _feeds./posts/ )./feeds/posts/ feeds/posts/ ).md ต่อท้ายเส้นทาง (เช่น ./feeds/posts.md ) อ้างถึง ไซต์ตัวอย่าง ด้านบนสำหรับการสาธิต ( posts/ ไดเร็กทอรี)
ไฟล์เมล็ด Atom จะถูกแปลงเป็นไฟล์ฟีด Atom ฟีดผลลัพธ์นี้จะอยู่ที่เส้นทางใหม่ แต่มีนามสกุล .xml แทน .md ในตัวอย่างนี้ ฟีดอะตอมจะปรากฏที่ example.com/feeds/posts.xml โปรดทราบว่าไฟล์ ./posts.md ไม่จำเป็นสำหรับฟีด มีเพียงไดเร็กทอรีเท่านั้น
หมายเหตุ: รายการ Atom จะเรียงลำดับตามตัวอักษรและตัวเลขตามชื่อไฟล์ที่เกี่ยวข้อง ไม่ใช่ตาม date ที่ระบุโดยส่วนหน้าของ YAML
โปรเจ็กต์นี้เกิดจากความท้าทายส่วนตัวสำหรับไซต์ของฉันเอง ตามคำร้องขอของบล็อกเกอร์ที่เป็นมิตร ฉันได้ทำความสะอาดและเปิดเผยต่อสาธารณะ
ติดต่อฉัน: t.me/torresjrjr