สร้างไซต์แบบคงที่และฟีด 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