Python β’ Markdown β’ YAML β’ Fast β’ Minimal β’ Elegant
Read Docs: https://pycora.axcora.com/docs
- β¨ Features
- π Requirements
- π Quick Start
- π Usage
- π Project Structure
- π Content Format
- βοΈ Configuration
- π¨ Customization
- π Deployment
- π€ Contributing
- π License
- π Credits
- π Contact
| Feature | Description |
|---|---|
| β‘ Lightning Fast | Pure static HTML, no database, no server-side processing |
| π Markdown + YAML | Write content in Markdown with powerful YAML frontmatter |
| π·οΈ Tags & Categories | Automatic tag generation from your content |
| π Pagination | Built-in blog pagination |
| π SEO Ready | Meta tags, Open Graph, Twitter Cards, Sitemap, RSS feed |
| π¨ Beautiful Typography | Clean, readable design with best typography practices |
| π± Responsive | Mobile-first design with Bootstrap 5 |
| π₯ Live Development | Auto-rebuild on file changes |
| πΊοΈ Sitemap & RSS | Automatic sitemap.xml and feed.xml generation |
| π― Zero Dependencies | Minimal dependencies, lightweight |
- Python 3.8 or higher
- pip (Python package manager)
- Git (optional, for cloning)
git clone https://github.com/mesinkasir/pycora.git
cd pycorapython install.pypython run.pypython ssg.pypython dev.pyOr using npm:
npm run devpython ssg.pyGenerates the static site in the output/ directory.
Output:
π Building site...
β
Selesai! 2 posts, 2 tags.
π Output di folder: output/
python dev.pyStarts a local server with auto-rebuild on file changes.
Features:
- Auto-rebuild when files change
- Live preview at
http://localhost:8000 - Watch:
content/,templates/,static/
python run.pyInteractive menu for all commands:
[1] Build site (ssg.py)
[2] Development server (dev.py)
[3] Install/Update dependencies
[4] Exit
npm run build # Build site
npm run dev # Development server
npm run serve # Serve output directory
npm run menu # Menu interface
npm run install # Install dependenciespycora/
βββ content/
β βββ posts/ # Blog posts (Markdown + YAML)
β β βββ 2024-01-01-hello-world.md
β βββ pages/ # Static pages (Markdown + YAML)
β βββ about.md
β
βββ templates/ # Jinja2 templates
β βββ base.html # Base layout
β βββ landing.html # Homepage
β βββ blog.html # Blog listing
β βββ post.html # Single post
β βββ page.html # Static page
β βββ tags.html # Tags index
β βββ tag.html # Tag detail
β βββ feed.xml # RSS feed template
β βββ sitemap.xml # Sitemap template
β
βββ static/ # Static assets
β βββ css/
β β βββ bs.css
β β βββ main.css
β βββ images/
β βββ js/
β
βββ output/ # Generated site (build output)
β βββ index.html
β βββ blog/
β βββ tags/
β βββ feed.xml
β βββ sitemap.xml
β
βββ ssg.py # Main builder
βββ dev.py # Development server
βββ install.py # Dependency installer
βββ run.py # Menu interface
βββ config.yaml # Site configuration
βββ package.json # NPM scripts
βββ requirements.txt # Python dependencies
βββ README.md # This file
File: content/posts/2024-01-01-hello-world.md
---
title: Hello World
description: Welcome to my blog
date: 2024-01-01
author: Your Name
tags:
- python
- ssg
- markdown
image: /images/hello-world.jpg
layout: post
---
# Welcome to My Blog
This is my first post using PyCora.
## Why Static?
- **Fast** - No database queries
- **Secure** - No vulnerabilities
- **Simple** - Write in Markdown
```python
print("Hello, PyCora!")- β Markdown with YAML frontmatter
- β Beautiful typography
- β Tags & categories
- β Pagination
- β Next/Previous posts
- β Responsive design
---
### π Static Page
**File:** `content/pages/about.md`
```markdown
---
title: About Me
description: Learn more about me
date: 2024-01-01
layout: page
---
# About Me
This is the about page.
site:
name: PyCora
description: Static Site Generator with Python
url: http://localhost:8000
author: Your Name
twitter_username: yourusername
nav:
list:
- name: Home
url: /
- name: Blog
url: /blog
- name: About
url: /about
hero:
icon: fas fa-code
info: Static Site Generator
title: Write
sub_title: Content
title2: in Markdown
text: "Static Site Generator with Python - Fast, Minimal, Elegant."
button1:
text: Read blog
url: /blog/
button2:
text: Learn More
url: /about/
terminal:
title: Quick Start
info: "Simple. Fast. Elegant."
list:
- text: "$ python ssg.py build"
- text: "$ Building site..."
- text: "$ Pycora is ready for Deploy !!"
features:
title: A Features
list:
- icon: "fas fa-bolt text-primary"
title: Lightning Fast
text: "Pure static HTML. No database. No server-side processing."
- icon: "fas fa-feather text-success"
title: "Markdown + YAML"
text: "Write in Markdown with YAML frontmatter. Simple and powerful."
- icon: "fas fa-paint-brush text-warning"
title: "Beautiful Typography"
text: "Clean, readable, and elegant design with best typography practices."
footer:
list:
- name: Github
icon: fab fa-github
url: https://github.com/yourusername
- name: Twitter
icon: fab fa-twitter
url: https://twitter.com/yourusernamePlace your custom CSS in static/css/main.css
Edit Jinja2 templates in the templates/ directory:
| Template | Description |
|---|---|
base.html |
Base layout with navbar, footer, SEO meta |
landing.html |
Homepage with hero, features, latest posts |
blog.html |
Blog listing with pagination |
post.html |
Single post with author, tags, next/prev |
page.html |
Static page layout |
tags.html |
Tags index page |
tag.html |
Posts filtered by tag |
Add images, fonts, or other assets to the static/ directory.
Edit base.html to customize:
- Open Graph tags
- Twitter Cards
- Meta descriptions
- Canonical URLs
- Favicon
# Build the site
python ssg.py
# Push output/ directory to gh-pages branch
git subtree push --prefix output origin gh-pages# Build the site
python ssg.py
# Deploy the output/ directory
# Drag and drop output/ folder to Netlify/Vercel dashboardJust upload the output/ directory to any static hosting service:
- Netlify
- Vercel
- GitHub Pages
- Cloudflare Pages
- AWS S3
- Firebase Hosting
- Cpanel Hosting
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing) - Open a Pull Request
# Clone your fork
git clone https://github.com/yourusername/pycora.git
# Install dependencies
python install.py
# Start development server
python dev.py
# Build for production
python ssg.pyMIT License - see LICENSE file for details.
| Library | Purpose |
|---|---|
| Python | Core programming language |
| Python-Markdown | Markdown parsing |
| Jinja2 | Templating engine |
| Bootstrap 5 | Frontend framework |
| Font Awesome | Icons |
| PyYAML | YAML parsing |
| python-frontmatter | Frontmatter parsing |
| Watchdog | File watching |
- Axcora Technology
| Platform | Link |
|---|---|
| π Website | pycora.axcora.com |
| π» GitHub | mesinkasir |
| π§ Email | axcora@gmail.com |
| π¨β Consult | Hire Us |
If you find PyCora useful, please consider:
- β Starring the repository on GitHub
- π¦ Following us on Twitter
- π Writing about PyCora
- π Reporting issues
PyCora - Static Site Generator β’ Python β’ Markdown β’ YAML
Read Docs: https://pycora.axcora.com/docs
Made with β€οΈ by Axcora
