เครื่องมือสร้างไซต์แบบสแตติกน้ำหนักเบาที่เขียนด้วย Python
คุณสมบัติ:
pip install --upgrade gnrt
คุณอาจต้องเพิ่ม $HOME/.local/bin
ให้กับ $PATH
gnrt
gnrt
จะค้นหาไฟล์ config.yml
ทางเลือกในไดเร็กทอรีการทำงานปัจจุบัน เทมเพลต Jinja2 ทางเลือกใน templates
ไฟล์มาร์กดาวน์ในโฟลเดอร์ content
จากนั้นเขียนไฟล์เอาต์พุตที่สร้างขึ้นในโฟลเดอร์ public
โดยคำนึงถึงโฟลเดอร์ content
และโฟลเดอร์ย่อย โครงสร้างโฟลเดอร์
หากต้องการรับรายการตัวเลือก ให้ใช้:
gnrt -h
การกำหนดค่าถูกเก็บไว้ใน config.yml
อนุญาตให้ใช้คู่คีย์-ค่าใดก็ได้ คีย์เหล่านี้และค่าสามารถใช้ในเนื้อหาและไฟล์เทมเพลตได้
---
sitename: My awesome blog
baseurl: https://example.com
language: en
foo: bar
หากมีไฟล์ config.yml
gnrt
จะค้นหา defaults
และ lists
ต่างๆ
นี่คือที่ที่คุณกำหนดค่าคอนฟิกูเรชันดีฟอลต์ ซึ่งสามารถแทนที่ได้ในไฟล์เนื้อหา
ตัวอย่าง:
defaults:
template: default.j2
markdown-extras:
- break-on-newline
- fenced-code-blocks
nav: includes/nav.html
bar: foo
คีย์เหล่านี้มีความหมายเฉพาะเจาะจง และสามารถแทนที่ค่าของคีย์เหล่านี้ในไฟล์เนื้อหาได้ เช่นเดียวกับ default
อื่นๆ
markdown-extras
: อนุญาตให้เปิดใช้งานส่วนขยาย Markdown โปรดดูรายการค่าพิเศษเพิ่มเติมtemplate
: ตั้งค่าเทมเพลต Jinja เริ่มต้นเพื่อใช้ในขณะที่เรนเดอร์ไฟล์เนื้อหานี่คือที่ซึ่งกำหนดรายการเนื้อหา ซึ่งช่วยให้สามารถสร้างรายการลิงก์ได้ เป็นต้น
ตัวอย่าง:
lists:
nav1:
filter:
key: category
value: page
template: nav-page.j2
nav2:
filter:
key: category
value: article
sort: published
reverse: true
template: nav-article.j2
rss:
filter:
key: category
value: article
sort: published
reverse: true
template: rss.j2
target: public/rss.xml
รายการสามารถเลือกเนื้อหาผ่าน filter
ซึ่งได้รับ key
ข้อมูลเมตาและ value
ที่จะจับคู่
สามารถจัดเรียงตามค่าเมทาดาทา (เช่น วันที่เผยแพร่ จำนวนเต็ม ...) ตามลำดับไปข้างหน้า (ค่าเริ่มต้น) หรือ reverse
ระหว่างการเรนเดอร์ เนื้อหาที่สร้างขึ้นจะถูกบันทึกในโฟลเดอร์ includes
(สำหรับการแคช) ในขณะที่เส้นทางของไฟล์สามารถปรับแต่งได้ผ่านคีย์ target
ซึ่งจะช่วยให้สามารถสร้างฟีด RSS ได้เช่น
ไฟล์เนื้อหามีนามสกุล .md
และจัดเก็บไว้ในโฟลเดอร์ content
ไฟล์เนื้อหาอาจมีส่วนหน้า เช่น ข้อมูลเมตาที่มีโครงสร้าง ซึ่งเขียนด้วย YAML
นี่คือที่ที่สามารถแทนที่ค่าเริ่มต้นได้
ตัวอย่าง:
---
id: home
title: Home
link: /
nav-order: 3
---
id
: ตัวระบุรายการปัจจุบัน ซึ่งสามารถใช้ในไฟล์เนื้อหาใดๆ เพื่อเข้าถึงข้อมูลเมตาของรายการนี้link
: URL ของเพจที่สร้างขึ้นtarget
: เส้นทางของไฟล์ที่สร้างขึ้นtitle
: ชื่อของรายการปัจจุบัน เนื้อหา body
เขียนด้วย Markdown
นอกจากนี้ยังอาจมีไวยากรณ์และตัวยึดตำแหน่ง Jinja2 ซึ่งช่วยให้สามารถแทรกค่า dataset
เช่น ลิงก์ไปยังหน้าอื่นๆ:
Check the [about]({{ data.about.link }}) page or read the [articles]({{ data.articles.link }})!
ดูเว็บไซต์ตัวอย่างใน docs/example
ซึ่งคุณสามารถสร้างได้โดยการติดตั้ง gnrt
โคลนพื้นที่เก็บข้อมูลนี้ ย้ายไปที่ gnrt/docs/example
และดำเนินการ gnrt
จากนั้นคุณสามารถเรียกดูได้ที่ http://localhost:8080/
โดยย้ายไปยังโฟลเดอร์ public
ที่สร้างขึ้นและดำเนินการ python3 -m http.server 8080
คุณอาจต้องการตรวจสอบบล็อกสดที่สร้างโดย gnrt และอ่านบทความเกี่ยวกับ gnrt