A CLI for wrangling directories of source files. Like a static generator, but for whatever.
src | ||
.gitignore | ||
biome.json | ||
bun.lock | ||
package.json | ||
README.md | ||
tsconfig.json |
Playbill Builder CLI
This is a CLI tool for compiling Markdown and YAML files into a validated Playbill for Proscenium
Usage
Usage:
muse [/path/to/binding.yaml] <options>
Options:
--check Only load and check the current binding and resources, but do not compile
--outfile, -o Specify the output file path. If not specified, output to stdout
--watch, -w Watch the directory for changes and recompile
--renderer, -r Specify the output renderer. Options: json, html
--help, -h Show this help message
Binding File
name: My Playbill # Required
author: My Name # Required
version: 0.0.1 # Required
files: # Optional
- "**/*.yaml"
styles: # Optional
- stylesheet.css
terms: # Optional
Some Term: Some Definition
Another Term: Another Definition
Definition Shapes
These YAML representations of definitions show the properties available for each Playbill component.
Note that every Playbill component definition can define the following properties:
id: some-hypenated-id # default: slug-ified file name
name: The Name of the Component # default: Name of the containing file
description: A markdown-enabled description # default: Placeholder / empty
categories: # default: No categories
- list
- of
- categories
Ability Definition
$define: ability
type: action | cue | trait
ap: 0
hp: 0
ep: 0
xp: 0
damage: 0
damageType: phy | arc
roll: none | attack | fate | <any talent>
Blueprint Definition
$define: blueprint
species: some-hypenated-id
items:
- item-id
- item-id-two
- item-id-three
abilities:
- ability-id
- ability-id-two
- ability-id-three
ap: 0
hp: 0
ep: 0
xp: 0
muscle: novice | adept | master
focus: novice | adept | master
knowledge: novice | adept | master
charm: novice | adept | master
cunning: novice | adept | master
spark: novice | adept | master
Item Definition
$define: item
type: wielded | worn | trinket
rarity: common | uncommon | rare | legendary
affinity: none | attack | fate | <any talent>
damage: 0
damageType: phy | arc
hands: 1 | 2 # Only for wielded items
slot: headgear | outfit | gloves | boots | adornment | unique # Only for worn items
Method Definition
$define: method
curator: Someone
abilities:
- [rank-1-ability-id-one, rank-1-ability-id-two]
- [rank-2-ability-id-one]
Resource Definition
$define: resource
type: text | image | table
url: https://example.com/image.jpeg # Only for image resources
data: <a 2-d array of strings> # Only for table resources
Rule Definition
$define: rule
overrule: another-rule-id # Optional
order: 0 # Optional
Species Definition
$define: species
hands: 2
abilities:
- some-ability-id
- another-ability-id
ap: 0
hp: 0
ep: 0
xp: 0
muscle: novice | adept | master
focus: novice | adept | master
knowledge: novice | adept | master
charm: novice | adept | master
cunning: novice | adept | master
spark: novice | adept | master