Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions docs/netsuke-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,11 +262,11 @@ Each entry in the `rules` list is a mapping that defines a reusable action.
field (defaulting to `/bin/sh -e`). For `/bin/sh` scripts, each interpolation
is automatically passed through the `shell_escape` filter unless a `| raw`
filter is applied. Future versions will allow configurable script languages
with their own escaping rules.
with their own escaping rules.
On Windows, scripts default to `powershell -Command` unless the manifest's
`interpreter` field overrides the setting.
Exactly one of `command` or `script` must be provided. The manifest parser
enforces this rule to prevent invalid states.
`interpreter` field overrides the setting. Exactly one of `command` or
`script` must be provided. The manifest parser enforces this rule to prevent
invalid states.

Internally, these options deserialize into a shared `Recipe` enum tagged with
a `kind` field. Serde aliases ensure manifests that omit the tag continue to
Expand Down Expand Up @@ -1386,6 +1386,23 @@ possibilities for future enhancements beyond the initial scope.
build system, allowing for massively parallel builds across a cluster of
machines. The user's `Netsukefile` manifest would remain unchanged.

## Section 10: Example Manifests

The repository includes several complete Netsuke manifests in the
`examples/` directory. They demonstrate how the YAML schema can be applied
to real-world projects.

- [`basic_c.yml`](../examples/basic_c.yml): a minimal C project compiling two
object files and linking them into a small application.
- [`photo_edit.yml`](../examples/photo_edit.yml): converts RAW photographs and
generates a simple HTML gallery for previewing the results.
- [`visual_design.yml`](../examples/visual_design.yml): rasterises a set of SVG
design assets into PNG images using Inkscape.
- [`website.yml`](../examples/website.yml): builds a static web site from
Markdown pages with Pandoc and assembles an index page.
- [`writing.yml`](../examples/writing.yml): produces a multi-chapter PDF book
by combining chapters rendered from Markdown via LaTeX.

### **Works cited**

[^1]: Ninja, a small build system with a focus on speed, accessed on July 12,
Expand Down