Attributes
The meta of a template document is called Attributes. Several options can be combined for flexible file generation.
Options#
List of attributes that can be specified with Front Matter.
| key | type | description |
|---|---|---|
name(required) | string | Name of template. |
root(required) | string | The directory as the starting point of the output destination. |
output(required) | string string[] | Directory starting from root and being a destination candidate. You can use glob syntax. (see globby document) |
ignore | string[] | Directory to exclude from candidate output destination. You can use glob syntax. (see globby document) |
questions | object | Message to display when accepting input. |
Questions#
questions is a protocol for accepting the necessary input for the template. scaffdog provides several options so that you can define a suitable question type.
Free text#
Invokes the most commonly used prompt that accepts strings.
questions:# syntax sugarvalue1: 'Please enter any text.'# with messagevalue2:message: 'Please enter any text.'# with default valuevalue3:message: 'Please enter any text.'initial: 'scaffdog'

Boolean#
Invoke a prompt that accepts a Boolean.
questions:# basicbool1:confirm: 'Do you need something?'# with default valuebool2:confirm: 'Do you need something?'initial: false

Choice#
Invokes a prompt to select a single value from a list.
questions:# basicvalue1:message: 'Please select a value.'choices:- 'A'- 'B'- 'C'# with default valuevalue2:message: 'Please select a value.'choices:- 'A'- 'B'- 'C'initial: 'B'

Array#
Invokes a prompt to select multiple selections from the list.
questions:# basicvalue1:message: 'Please select a value.'multiple: truechoices:- 'A'- 'B'- 'C'# with default valuevalue2:message: 'Please select a value.'multiple: truechoices:- 'A'- 'B'- 'C'initial: ['B']

Conditional Prompt#
If the result of the expression in the if field is true, Prompt is invoked. If it false, skip Prompt and assign initial values. The initial value is assigned to the initial field if it exists. If not, a zero value is assigned according to the Prompt type.
questions:name:message: 'Please enter a component name.'# Invokes confirm prompt only when input includes "Form".test:if: contains(inputs.name, 'Form')confirm: 'Do you need a test?'
This is useful when you want to use a Prompt that is only needed for some use cases in the target file.
Last edited on