- Home
- Quickstart
- CLI Overview
- Templates & Markdown
- Live Reload

# Quickstart

Previous Next

This guide walks through the smallest useful Engrave setup: a template, a Markdown snippet, and a local build.

## Install

    pip install engrave

## Create a simple site

One possible layout:

    site/
      base.html
      index.html
      includes/intro.md
      assets/site.css

Example `base.html`:

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>{{ title or "Engrave demo" }}</title>
        <link rel="stylesheet" href="/assets/site.css" />
      </head>
      <body>
        <main>
          {{ markdown("includes/intro.md") }}
          {% block content %}{% endblock %}
        </main>
      </body>
    </html>

Example `index.html`:

    {% extends "base.html" %}
    {% set title = "Home" %}
    {% block content %}
      <h1>Welcome</h1>
      <p>This page is rendered by Engrave.</p>
    {% endblock %}

Example `includes/intro.md`:

    ## Engrave

    This text comes from a Markdown file included inside a template.

## Build the site

    engrave build site build

This renders your templates into `build/`. For more advanced options, check the CLI help with `engrave build --help`.

## Preview while you work

    engrave server site build

This gives you a local preview server while you edit templates and content. When you only want rebuilds without serving HTTP, use `engrave watch` instead.

Home CLI Overview
Menu
Home Quickstart CLI Overview Templates & Markdown Live Reload

On This Page

Install Create a simple site Build the site Preview while you work