scaffdog
Get StartedDocsPlayground

scaffdog

Markdown driven scaffolding tool.
scaffdog speeds up the first steps of your creative activity.

Get Started
---
name: 'component'
root: '.'
output: '.'
questions:
name: 'Please enter a component name.'
---
# `{{ inputs.name | pascal }}/index.ts`
```typescript
export * from './{{ inputs.name }}';
```
# `{{ inputs.name | pascal }}/{{ inputs.name | pascal }}.tsx`
```typescript
export type Props = React.PropsWithChildren<{}>;
export const {{ inputs.name | pascal }}: React.FC<Props> = ({ children }) => {
return (
<div>{children}</div>
);
};
```
$ scaffdog generate

? Please select a document. component
i Output destination directory: "."
? Please enter a component name. PrettyDog

🐶 Generated 2 files!

PrettyDog/index.ts
PrettyDog/PrettyDog.tsx
// PrettyDog/index.ts
export * from './PrettyDog';
// PrettyDog/PrettyDog.tsx
export type Props = React.PropsWithChildren<{}>;
export const PrettyDog: React.FC<Props> = ({ children }) => {
return (
<div>{children}</div>
);
};

Just one markdown file will generate multiple files.

Learn Template

Features

Markdown driven

You can define a template with <h1> and code block. It will be a Documetable template ! Define meta information with extended syntax using Front Matter.

Ready to use

You can quickly start using $ scaffdog init
Other useful commands are provided for immediate scaffolding.

Intuitive template

It provides a simple yet powerful template engine inspired by ECMAScript and go text/template. Many built-in helper functions required to define templates are also provided.

Prettier Integration

Markdown works very well with Prettier, and the templates maintain beautiful code. We also offer a Prettier Plugin for scaffdog's template engine.

Playground

An online playground is useful for experimenting with templates and checking syntax.
Enjoy the world of scaffdog!

Go Playground

Copyright © 2022 wadackel

Released under the MIT License

Built with Next.js

Source Code