Docs menu
Getting started
IntroductionInstallationProject structureBuilding pages
RoutingPagesLayoutsStylingMarkdownContent and dataIslandsGoing live
SEO and headDeployingFormsGuides
Build a brochure siteAdvanced
Running as a serverReference
ReferenceReference
Reference
Every setting, export, prop and import in one place.
src/site.imba
| Export | Type | Purpose |
|---|---|---|
url |
string | The live address: canonical links, sitemap, robots. More |
meta |
object | Default meta for every page |
head |
def head ctx → array |
Extra <head> tags. ctx: meta, path, url, absolute() |
defaultHead |
no |
Turn off the generated SEO tags |
trailingSlash |
yes |
Canonical links and sitemap as /about/ |
prefetch |
'hover', 'tap', 'eager', no |
When to prerender linked pages (default 'hover'). More |
viewTransitions |
no |
Turn off the cross-fade between pages |
Page exports
| Export | Purpose |
|---|---|
default |
The page tag (required) |
meta |
Object, or def meta {params, data, url} |
load |
def load {params, url} → the page's data; may be async |
paths |
Dynamic routes: list of params objects to build |
layout |
A layout tag, or null for none |
post |
def post {form, params, url, request} → {redirect} or a value for the form prop |
Page and layout props
| Prop | Page | Layout | Value |
|---|---|---|---|
meta |
✓ | ✓ | Final meta |
path |
✓ | ✓ | Current URL path |
params |
✓ | ✓ | Dynamic route params |
data |
✓ | What load returned |
|
form |
✓ | What post returned |
Markdown front matter
Any meta key, plus layout: name or layout: false. Other fields reach the
layout as meta; the page's headings arrive as meta.headings.
src/content/config.imba
export const collections =
services:
required: ['title'] # fail the build if missing
sort: 'order' # sort by this field
Imports
import {getCollection, getEntry, Markdown, mode} from '@milktop/imba-pages'
import {getCollection, getEntry} from '@milktop/imba-pages/content'
import {Markdown} from '@milktop/imba-pages/markdown'
getCollection(name)→ entries;getEntry(name, id)→ an entry ornull.<Markdown html=…>places rendered HTML.modeis'dev','static'or'server'.
Commands
| Command | |
|---|---|
imba-pages dev [folder] |
Dev server with hot reload (PORT, default 3000) |
imba-pages build [folder] |
Static site in dist/ |
imba-pages start [folder] |
Production Node server |
Generated files
.pages/ (generated code and the server build) and dist/ (the static site). Both can be
deleted at any time.