Gozer เป็นเครื่องมือสร้างเว็บไซต์แบบสแตติกที่รวดเร็วและง่ายดายซึ่งเขียนด้วยภาษา Golang
ตัวอย่างเว็บไซต์ที่ใช้ Gozer:
คุณสามารถติดตั้ง Gozer ได้ด้วยการติดตั้งคอมไพเลอร์ Go ก่อนแล้วจึงเรียกใช้:
go install git.sr.ht/~dvko/gozer@latest
เรียกใช้ gozer new
เพื่อสร้างโครงสร้างไดเร็กทอรีว่างอย่างรวดเร็ว
├── config.toml # Configuration file
├── content # Posts and pages
│ └── index.md
├── public # Static files
└── templates # Template files
└── default.html
จากนั้นรัน gozer build
เพื่อสร้างเว็บไซต์ของคุณ
ไฟล์ Markdown ใดๆ ที่วางอยู่ในไดเร็กทอรี content/
ของคุณจะส่งผลให้มีหน้า HTML ในไดเร็กทอรี build ของคุณหลังจากรัน gozer build
ตัวอย่างเช่น:
content/index.md
สร้างไฟล์ build/index.html
เพื่อให้สามารถเข้าถึงได้ผ่าน HTTP ที่ /
content/about.md
สร้างไฟล์ build/about/index.html
เพื่อให้สามารถเข้าถึงได้ผ่าน HTTP ที่ /about/
เรียกใช้ gozer
โดยไม่มีข้อโต้แย้งเพื่อดูข้อความช่วยเหลือ
Gozer - a fast & simple static site generator
Usage: gozer [OPTIONS] <COMMAND>
Commands:
build Deletes the output directory if there is one and builds the site
serve Builds the site and starts an HTTP server on http://localhost:8080
new Creates a new site structure in the given directory
Options:
-r, --root <ROOT> Directory to use as root of project (default: .)
-c, --config <CONFIG> Path to configuration file (default: config.toml)
แต่ละไฟล์ในไดเร็กทอรี content/
ของคุณควรลงท้ายด้วย .md
และมีส่วนหน้าของ TOML ที่ระบุชื่อหน้า:
+++
title = " My page title "
+++
Page content here.
เทมเพลตเริ่มต้นสำหรับทุกหน้าคือ default.html
คุณสามารถแทนที่ได้โดยการตั้งค่าตัวแปร template
ในส่วนส่วนหน้าของคุณ
+++
title = " My page title "
template = " special-page.html "
+++
Page content here.
เทมเพลตขับเคลื่อนโดยแพ็คเกจ html/template
มาตรฐานของ Go ดังนั้นคุณสามารถใช้การดำเนินการทั้งหมดที่อธิบายไว้ที่นี่
ทุกเทมเพลตจะได้รับชุดตัวแปรต่อไปนี้:
Pages # Slice of all pages in the site
Posts # Slice of all posts in the site (any page with a date in the filename)
Site # Global site properties: Url, Title
Page # The current page: Title, Permalink, UrlPath, DatePublished, DateModified
Title # The current page title, shorthand for Page.Title
Content # The current page's HTML content.
ตัวแปร Page
เป็นอินสแตนซ์ของออบเจ็กต์ด้านล่าง:
type Page struct {
// Title of this page
Title string
// Template this page uses for rendering. Defaults to "default.html".
Template string
// Time this page was published (parsed from file name).
DatePublished time.Time
// Time this page was last modified on the filesystem.
DateModified time.Time
// The full URL to this page, including the site URL.
Permalink string
// URL path for this page, relative to site URL
UrlPath string
// Path to source file for this page, relative to content root
Filepath string
}
หากต้องการแสดงรายการโพสต์ล่าสุด 5 รายการ:
{{ range (slice .Posts 0 5) }}
<a href="{{ .Permalink }}">{{ .Title }}</a> <small>{{ .DatePublished.Format "Jan 02, 2006" }}</small><br />
{{ end }}
การพัฒนา Gozer เกิดขึ้นบน Sourcehut แพตช์ได้รับการยอมรับทางอีเมล
Gozer เป็นโอเพ่นซอร์สภายใต้ใบอนุญาต MIT