Files
sim/scripts/README.md
Waleed Latif 54e1439224 feat(docs): added script to auto-generate docs for integrations/tools (#293)
* added scaffolding for auto-generating docs for integrations based on block definition, get rendering error for mdx pages

* page renders, have to add more useful information

* standardized tool naming convention, added script to autogenerate docs for integrations, added docs for each tool

* re-generated docs, updated CONTRIBUTING.md to reflect new format

* added a dedicated tools page

* added additional information for tools, added manual section logic to docs producer

* added a link back to sim studio, fixed z level issue on mobile, added better intro

* updated script to more accurately reflect the params for each tool, as well as the overall blocks' output
2025-04-22 20:04:21 -07:00

109 lines
3.7 KiB
Markdown

# Block Documentation Generator
This directory contains scripts to automatically generate documentation for all blocks in the Sim Studio platform.
## Available Scripts
- `generate-docs.sh`: Generates documentation for all blocks
- `setup-doc-generator.sh`: Installs dependencies required for the documentation generator
## How It Works
The documentation generator:
1. Scans the `sim/blocks/blocks/` directory for all block definition files
2. Extracts metadata from each block including:
- Name, description, and category
- Input and output specifications
- Configuration parameters
3. Generates standardized Markdown documentation for each block
4. Updates the navigation metadata in `meta.json`
## Running the Generator
To generate documentation manually:
```bash
# From the project root
./scripts/generate-docs.sh
```
## Troubleshooting TypeScript Errors
If you encounter TypeScript errors when running the documentation generator, run the setup script to install the necessary dependencies:
```bash
./scripts/setup-doc-generator.sh
```
This will:
1. Install TypeScript, ts-node, and necessary type definitions
2. Create a proper tsconfig.json for the scripts directory
3. Configure the scripts directory to use ES modules
### Common Issues
1. **Missing Type Declarations**: Run the setup script to install @types/node and @types/react
2. **JSX Errors in block-info-card.tsx**: These don't affect functionality and can be ignored if you've run the setup script
3. **Module Resolution**: The setup script configures proper ES module support
## CI Integration
The documentation generator runs automatically as part of the CI/CD pipeline whenever changes are pushed to the main branch. The updated documentation is committed back to the repository.
## Adding Support for New Block Properties
If you add new properties to block definitions that should be included in the documentation, update the `generateMarkdownForBlock` function in `scripts/generate-block-docs.ts`.
## Preserving Manual Content
The documentation generator now supports preserving manually added content when regenerating docs. This allows you to enhance the auto-generated documentation with custom examples, additional context, or any other content without losing your changes when the docs are regenerated.
### How It Works
1. The generator creates clean documentation without any placeholders or markers
2. If you add manual content to a file using special comment markers, that content will be preserved during regeneration
3. The manual content is intelligently inserted at the appropriate section when docs are regenerated
### Using Manual Content Markers
To add custom content to any tool's documentation, insert MDX comment blocks with section markers:
```markdown
{/* MANUAL-CONTENT-START:sectionName */}
Your custom content here (Markdown formatting supported)
{/* MANUAL-CONTENT-END */}
```
Replace `sectionName` with one of the supported section names:
- `intro` - Content at the top of the document after the BlockInfoCard
- `usage` - Additional usage instructions and examples
- `configuration` - Custom configuration details
- `outputs` - Additional output information or examples
- `notes` - Extra notes at the end of the document
### Example
To add custom examples to a tool doc:
```markdown
{/* MANUAL-CONTENT-START:usage */}
## Examples
### Basic Usage
```json
{
"parameter": "value",
"anotherParameter": "anotherValue"
}
```
### Advanced Configuration
Here's how to use this tool for a specific use case...
{/* MANUAL-CONTENT-END */}
```
When the documentation is regenerated, your manual content will be preserved in the appropriate section automatically. The script will not add any placeholders or markers to files by default.