A Google Sheets plugin for generating and importing .comapeocat category files for CoMapeo projects.
Current version: 2.0.0
Quick links: User Docs | Internal Docs | Linting Guide | API Reference
- What's New in v2.0.0
- Features
- Getting Started (Users)
- Installation (Developers)
- Development
- Testing
- Documentation Map
- Contributing & Support
- License
- References
- JSON build flow: The plugin sends a JSON build request to the v2 API, which returns a packaged
.comapeocat(ZIP) file. - Import functionality: Import existing
.comapeocatfiles back into the spreadsheet for editing. - Category ordering: Categories are built in exact spreadsheet order using
setCategorySelection. - Simplified packaging: Local ZIP creation is no longer part of the generation flow; packaging happens on the API side.
- Build: Generate
.comapeocatfiles from spreadsheet data. - Import: Load existing
.comapeocator.mapeosettingsfiles for editing. - Auto-translation: Automatically translate categories and fields using Google Translate.
- Icon generation: Generate icons using https://icons.earthdefenderstoolkit.com or provide your own SVG/PNG icons.
- Validation: Comprehensive linting and validation of spreadsheet data.
- Dual-name language support: Set primary language using English OR native names (e.g., "Portuguese" or "Português").
The user docs are the source of truth for spreadsheets, menu behavior, and end-to-end workflows. In short:
- Fill out the spreadsheet tabs (Categories, Details, Translations).
- Use the menu option Generate CoMapeo Category to build a
.comapeocat. - Use Import Category File to bring an existing config back into the spreadsheet.
Menu options, spreadsheet structure, and sharing steps are documented in docs/index.md.
- Install clasp globally:
npm install -g @google/clasp- Login to your Google account:
clasp login-
Enable the Google Apps Script API in your Google Cloud Console.
-
Push your local changes:
clasp push- Open in the Apps Script editor:
clasp open# Watch mode - auto-push on changes
npm run dev
# Manual push
npm run push
# Lint code (requires Bun)
npm run lint
# Push to all configured projects
npm run push:all
# Regenerate fixture data for manual checks
npm run fixtureRun tests from the Apps Script editor console:
runAllTests();Regression testing workflows are documented in context/process/regression-testing-guide.md.
- User docs (source of truth): docs/index.md
- Internal documentation index: context/README.md
- Linting rules: docs/reference/linting-rules.md
- Architecture & pipelines: context/reference/architecture.md, context/reference/cat-generation.md, context/reference/import-cat.md
- Formats & validation: context/reference/comapeocat-format.md, context/reference/html-validation.md, context/reference/png-sprite-limitations.md
- Process & workflows: context/process/, AGENTS.md
- Check the documentation index and Linting Guide first.
- Run linting and tests before opening a pull request.
- Use the repository issue tracker for bugs and feature requests.
See LICENSE file for details.
For more information on using clasp, refer to the @google/clasp documentation.