oxie is a static site/blog generator written in Python. It converts Markdown files into a styled, SEO-friendly static website using Jinja2 templates and Tailwind CSS. It is designed for personal blogs and supports posts, pages, categories, tags, and structured data (JSON-LD).
- Converts Markdown posts and pages to HTML
- Uses Jinja2 templates for flexible theming
- Tailwind CSS for modern styling
- Category and tag pages
- Blog index and category index generation
- JSON-LD structured data for SEO
- Static asset copying (images, etc.)
- Google Spreadsheet integration for updates (requires configuration)
- Easy to extend and customize
source/
index.md
post/
*.md
page/
*.md
docs/
index.html
post/
*.html
page/
*.html
styles.css
image/
src/
*.html (templates)
styles.css
build.py
requirements.txt
package.json
tailwind.config.js
postcss.config.js
- Python 3.8+
- Node.js & npm
Python dependencies (see requirements.txt):
- Jinja2
- Markdown
- pymdown-extensions
- MarkupSafe
- pandas
Node.js dependencies (see package.json):
- tailwindcss
- autoprefixer
- daisyui
- postcss
- @tailwindcss/typography
- @tailwindcss/forms
- tailwindcss-animate
-
Install Python dependencies:
pip install -r requirements.txt
-
Install Node.js dependencies:
npm install
-
Build the site:
python build.py
This will:
- Clean old files in
docs/ - Convert Markdown to HTML using templates
- Copy static assets (images, etc.)
- Build CSS with Tailwind
- Clean old files in
-
Serve the site:
- Open
docs/index.htmlin your browser, or use a static file server.
- Open
- Edit templates in
src/ - Add or edit Markdown files in
source/post/andsource/page/ - Update site metadata in
src/meta_data.json - Configure Tailwind in
tailwind.config.js