Skip to main content

A lightweight, elegant blogging platform built with FastHTML

Project description


title: Vyāsa

Vyāsa icon

Markdown feeds Python
Instant sites, no code juggling
CSS reigns supreme

Vyasa turns a folder of Markdown into a navigable site served by Python. It is for people who want notes, docs, books, or a blog to feel like a real site without adding a JavaScript build stack. This README is the shortest path from pip install vyasa to a working local site. By the end, you should know how to run it, what it is good at, and which manual page to open next when the simple path stops being enough.

Vyasa

Vyasa is a lightweight Markdown site engine built on FastHTML. It gives you a live local server, folder-aware navigation, rich Markdown features, CSS-first theming, and a static build path from the same content tree.

Start Here

pip install vyasa
mkdir my-notes
cd my-notes
printf '# Hello\n\nThis is my first Vyasa page.\n' > index.md
vyasa .

Open http://127.0.0.1:5001.

If you want Google login later, install pip install "vyasa[auth]". If you want a static export instead of a live server, run vyasa build . -o ./dist.

The First Configuration Most People Add

title = "My Notes"
theme_preset = "serene-manuscript"
sidebars_open = true

Put that in a .vyasa file at the root of your content folder. Configuration precedence is CLI args > .vyasa > environment variables > defaults, so you can start simple and still override behavior when you need to.

What It Buys You

  • Write plain Markdown, then opt into Vyasa features like callouts, tabs, Mermaid, D2, math, task lists, footnotes as sidenotes, and code snippet includes only when the page needs them.
  • Keep content organized as folders; index.md or README.md becomes the landing page for that branch.
  • Use a blog-style homepage at / when you want the newest posts first, or set home_sort = "name_asc" / home_sort = "name_desc" to order homepage cards by filename instead.
  • Style the site with normal CSS and bundled theme presets instead of introducing a component system.
  • Use the same content tree for a live local server and a static export.
  • Add auth and RBAC when the content stops being public or personal.

What A Content Tree Looks Like

my-notes/
├── .vyasa
├── index.md
├── posts/
│   ├── first-post.md
│   └── second-post.md
└── manual/
    ├── README.md
    └── architecture.md

Folders become navigation groups. index.md or README.md gives a folder its own landing page, so a blog, a manual, and a notebook can live in the same tree without special routing setup.

When You Need The Next Layer

If your next question is about shaping the site, open the configuration guide. If the question is about what the authoring surface can do, go to Markdown writing features. Diagram-specific behavior lives in the Mermaid guide and the D2 guide, while shell styling and theme presets are covered in theming.

Use security when the site needs login or path rules, architecture when you want the request and rendering model, and advanced behavior when you are past the happy path and want the edges.

The manual itself starts at vyasa manual/README.md, but you should not need it before the quick start above works.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vyasa-0.5.3.tar.gz (173.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vyasa-0.5.3-py3-none-any.whl (189.8 kB view details)

Uploaded Python 3

File details

Details for the file vyasa-0.5.3.tar.gz.

File metadata

  • Download URL: vyasa-0.5.3.tar.gz
  • Upload date:
  • Size: 173.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for vyasa-0.5.3.tar.gz
Algorithm Hash digest
SHA256 96c2c2993640821141a66336fcbf4e5c5087b95c8812ba1aebd47037349af872
MD5 8587dbfb7dbb5f22911ccaa55fac7f3e
BLAKE2b-256 9fa9a93d39752f27aa53e357c5cdd2794f9a2b64b0b18e6fff86317d17677186

See more details on using hashes here.

File details

Details for the file vyasa-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: vyasa-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 189.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for vyasa-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4c235814cfbd94416d60eacfc3ce3f8c93f48d69dbc91e458ffda80a99809d5f
MD5 e6e6473c7272cfa5a8b693f322b03914
BLAKE2b-256 d8d5bb7288c9e1e947a57a2ef314ae4c8422492c0800670d8ce2ca642b3ed28c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page