Link from one content node to another and let Webifier render the reachable pages.
A static website is a set of pages connected by hyperlinks. Webifier keeps that model: a page links to another source file, and the build renders that source file into the corresponding output page.
This is what makes the workflow feel natural for personal projects. Add a Markdown note, notebook, report, or YAML page. Link to it from content that is already reachable. Commit and push. The website grows from the same files you were already maintaining.
Markdown links can use explicit prefixes. md= tells Webifier to render the
Markdown file as a content page and rewrite the link to the generated HTML.
reading:
label: Reading
content: |
- [Navigation and Pages](md=pages/user-guide/03-navigation-and-pages.md)
- [Publishing Content Files](md=pages/user-guide/04-content-files.md)
index= links to another YAML page. The target YAML file gets the same page
treatment as the root index.yml: page controls at the top, sections below,
generated HTML in the output.
tutorials:
label: Tutorials
content: |
- [YAML Pages and Sections](index=pages/user-guide/tutorials/01-yaml-pages-and-sections.yml)
- [Section Controls](index=pages/user-guide/tutorials/02-section-controls.yml)
YAML lists can also describe links as objects. src points to a file that
Webifier should process. href or link points to something that already
exists.
resources:
label: Resources
links:
- src: pages/user-guide/05-configuration.md
text: Configuration Basics
description: Site config, defaults, and extension instances.
- link: https://github.com/webifier/build
text: Webifier on GitHub
Every YAML page can carry page-level controls. The root page usually defines site-wide config, but generated YAML pages can still set local page data, headers, templates, or page-specific config.
title: Experiment Report
header:
title: Experiment Report
description: A generated page linked from the main site.
config:
theme:
default: light
summary:
label: Summary
content: |
This page can use the normal defaults or override what it needs.
The default building blocks are intentionally plain. Once a structure is repeated, move it into an extension:
In other words, YAML gives you the graph and the content. Extensions let your project decide what new objects mean.
Markdown link prefixes:
[Markdown page](md=pages/report.md)
[Notebook page](md=notebooks/run.ipynb)
[YAML page](index=pages/report.yml)
[PDF asset](pdf=assets/report.pdf)
Link object shape:
links:
- src: pages/report.md
text: Report
description: Optional Markdown description.
- link: https://example.com
text: External link
Prefix summary:
| Prefix | Target | Output behavior |
|---|---|---|
md=... |
Markdown-supported content file | Render a generated content page and rewrite the link to .html. |
md=... |
Notebook file | Render a generated notebook page when the notebook extension is enabled. |
index=... |
YAML page | Render another Webifier page. |
pdf=... |
PDF file | Render an embedded PDF page when the PDF extension is enabled. |
Link object summary:
| Key | Meaning |
|---|---|
src |
Local file Webifier should render or copy. |
link / href |
Existing URL that Webifier should leave alone. |
text |
Visible link text. |
description |
Optional supporting Markdown text. |
image / icon |
Optional presentation data used by link templates. |
kind |
Optional renderer/presentation hint. |