# scriptorium

Scriptorium is a simple blog generator for Gleam, using [Lustre]( and

Scriptorium runs on the JavaScript target and it's tested with Node.js.

[![Package Version](](
[![Hex Docs](](

## Quickstart

To use Scriptorium, you will need to create a new Gleam project and add Scriptorium as a

gleam add scriptorium

To generate a default blog, use the following in your main file:

import gleam/result
import gleam/option
import gleam/io
import scriptorium/builder
import scriptorium/config.{type Configuration, Configuration}
import scriptorium/defaults

pub fn main() {
  let config =
      "My Blog",
        "Person McPerson",
      "© Person McPerson",


pub fn build(config: Configuration) {
  // Parse the files
  use db <- result.try(builder.parse(config))
  // Compile Markdown into HTML
  let compiled = builder.compile(db, config)
  // Render content into Lustre elements
  let rendered = builder.render(db, compiled, config)
  // Write rendered content into the filesystem
  builder.write(rendered, config)

Now you will need to add source files. Create the following directory tree in the root of the project

└── data
    ├── pages
    └── posts

In `./data/posts`, create a file `` with the following contents:

Hello, World!

This is the first blog entry.

Then run `gleam run --target javascript` to build the blog and see what was generated in `./output`.

For further usage help, see the documentation as described below.

## Documentation

- [User's Guide](
- [Scriptorium API reference](
- [Scriptorium Demo Blog](