UNPKG

astro-cc2ks

Version:

Astro plugin to generate Keystatic config from content collections

74 lines (47 loc) 2.93 kB
# Astro Keystatic Config Generator ## Overview Astro Keystatic Config Generator is an Astro integration that automatically generates a Keystatic configuration based on your Astro content collections. This plugin simplifies the process of setting up Keystatic with Astro by creating and maintaining the necessary configuration files. ## Features - Automatically generates a Keystatic configuration file based on your Astro content collections - Creates a default content collection configuration if one doesn't exist - Watches for changes in your content configuration and updates the Keystatic config accordingly - Provides detailed logging for easy debugging ## Installation To install the Astro Keystatic Config Generator, run the following command in your Astro project directory: npm install astro-CC2KS ## Usage 1. Add the integration to your `astro.config.mjs`: import { defineConfig } from 'astro/config'; import { astroCC2KS } from 'astro-cc2ks'; export default defineConfig({ integrations: [astroCC2KS()], }); 2. Run your Astro build process: npm run build The plugin will automatically generate two files in your project root: - `keystatic.generated.ts`: Contains the generated Keystatic collections based on your Astro content collections. - `keystatic.config.ts`: A default Keystatic configuration file that imports and uses the generated collections. 3. (Optional) Customize your `keystatic.config.ts` file to add any additional Keystatic-specific configurations. ## Configuration Currently, the plugin works out of the box without any additional configuration. Future versions may include customizable options. ## How It Works 1. The plugin reads your Astro content collections from `src/content/config.ts`. 2. It parses the collection schemas and transforms them into Keystatic field definitions. 3. The plugin generates a `keystatic.generated.ts` file with these field definitions. 4. If a `keystatic.config.ts` file doesn't exist, the plugin creates a default one that imports the generated collections. ## Structure / ├── astro-cc2ks.ts # Main entry point, exports the plugin ├── src/ │ └── astro-cc2ks/ # Plugin-specific subfolder │ ├── cc2ks-Parser.ts # Parses Astro content collection configurations and extracts schema information. │ └── cc2ks-Transformer.ts # Transforms the parsed Astro content collection schemas into Keystatic-compatible configuration objects. ├── package.json ├── README.md └── tsconfig.json ## Troubleshooting If you encounter any issues, check the console output for detailed error messages and stack traces. The plugin provides verbose logging to help diagnose problems. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.