{"id":29492145,"url":"https://github.com/levindixon/coda2md","last_synced_at":"2025-09-19T10:41:25.761Z","repository":{"id":302433611,"uuid":"1011777829","full_name":"levindixon/coda2md","owner":"levindixon","description":"A Chrome extension for exporting Coda pages to markdown format using the Coda API.","archived":false,"fork":false,"pushed_at":"2025-07-03T13:44:38.000Z","size":91,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T22:30:35.839Z","etag":null,"topics":["browser-extension","chrome-extension","coda","coda-api","export","javascript","manifest-v3","markdown","markdown-export","productivity"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/levindixon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-01T10:23:16.000Z","updated_at":"2025-07-04T08:02:01.000Z","dependencies_parsed_at":"2025-07-03T15:02:50.116Z","dependency_job_id":null,"html_url":"https://github.com/levindixon/coda2md","commit_stats":null,"previous_names":["levindixon/coda2md"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/levindixon/coda2md","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levindixon%2Fcoda2md","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levindixon%2Fcoda2md/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levindixon%2Fcoda2md/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levindixon%2Fcoda2md/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levindixon","download_url":"https://codeload.github.com/levindixon/coda2md/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levindixon%2Fcoda2md/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268011214,"owners_count":24180717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","chrome-extension","coda","coda-api","export","javascript","manifest-v3","markdown","markdown-export","productivity"],"created_at":"2025-07-15T15:01:33.537Z","updated_at":"2025-09-19T10:41:25.597Z","avatar_url":"https://github.com/levindixon.png","language":"JavaScript","readme":"# coda2md - Export Coda Pages to Markdown\n\nA Chrome extension that enables seamless export of Coda pages to Markdown format with a single click.\n\nhttps://github.com/user-attachments/assets/53aa6702-fffe-4026-ab9b-9cc998953e4d\n\n## Features\n\n- 🚀 One-click export of any Coda page to Markdown\n- 🔐 Secure API key storage using Chrome's storage API\n- 📝 Clean Markdown output preserving formatting\n- 🎨 Professional and intuitive user interface\n- ⚡ Fast export with real-time status updates\n\n## Installation\n\n### From Source\n\n1. Clone this repository:\n   ```bash\n   git clone https://github.com/levindixon/coda2md.git\n   cd coda2md\n   ```\n\n2. Open Chrome and navigate to `chrome://extensions/`\n\n3. Enable \"Developer mode\" in the top right corner\n\n4. Click \"Load unpacked\" and select the extension directory\n\n## Setup\n\n1. **Get your Coda API token:**\n   - Go to [coda.io/account](https://coda.io/account)\n   - Scroll to \"API Settings\"\n   - Click \"Generate API token\"\n   - Copy the generated token\n\n2. **Configure the extension:**\n   - Click the extension icon in Chrome\n   - Paste your API token when prompted\n   - Click \"Save API Key\"\n\n## Usage\n\n1. Navigate to any Coda page you want to export\n2. Click the coda2md extension icon\n3. Click \"Export Current Page\"\n4. The page will be downloaded as a `.md` file to your Downloads folder\n\n## How It Works\n\nThe extension uses Coda's official API to:\n1. Extract the document and page ID from the current URL\n2. Initiate an export request for the page\n3. Poll the export status until completion\n4. Download the resulting Markdown file\n\n## Supported URL Formats\n\nThe extension works with standard Coda page URLs:\n```\nhttps://coda.io/d/Document-Name_dXXXXXXXXXX/Page-Name_suXXX\n```\n\n## Security\n\n- Your API key is stored securely in Chrome's local storage\n- The API key is never exposed in the extension UI\n- All API calls are made over HTTPS\n- The extension only requests necessary permissions\n\n## Permissions\n\nThe extension requires the following permissions:\n- **activeTab**: To read the current page URL\n- **storage**: To securely store your API key\n- **downloads**: To save the exported Markdown file\n- **host_permissions**: To make API calls to coda.io\n\n## Troubleshooting\n\n### Common Issues\n\n#### \"Invalid Coda URL format\"\n- **Cause**: You're not on a Coda page or the URL format isn't recognized\n- **Solution**: Navigate to a specific Coda page (not the homepage, workspace, or docs list)\n- **Valid URL example**: `https://coda.io/d/Document-Name_dXXXXXXXXXX/Page-Name_suXXX`\n\n#### \"API key not configured\"\n- **Cause**: No API key has been saved in the extension\n- **Solution**: \n  1. Click the extension icon\n  2. Enter your Coda API key\n  3. Click \"Save API Key\"\n\n#### \"Invalid API key\"\n- **Cause**: The API key is incorrect or has been revoked\n- **Solution**: \n  1. Go to [coda.io/account](https://coda.io/account) → API Settings\n  2. Generate a new API token\n  3. Update the key in the extension\n\n#### \"Export timed out\"\n- **Cause**: Large pages take longer to export than the 20-second timeout\n- **Solution**: \n  1. Try exporting a smaller section of the page\n  2. Break large pages into smaller sub-pages\n  3. Wait a moment and try again\n\n#### \"Export request expired\" \n- **Cause**: Attempting to re-export the same page too quickly (Coda API limitation)\n- **Solution**: \n  1. Wait at least 2-3 seconds between exports of the same page\n  2. The extension now automatically adds a delay to prevent this\n  3. If you still see this error, wait a moment and try again\n\n#### \"Could not find page\"\n- **Cause**: The page may be private or you lack access\n- **Solution**: \n  1. Ensure you're logged into Coda in your browser\n  2. Verify you have at least view access to the page\n  3. Check if the page still exists (hasn't been deleted)\n\n#### \"Rate limit exceeded\"\n- **Cause**: Too many API requests in a short time\n- **Solution**: Wait a few minutes before trying again\n\n#### Download doesn't start\n- **Cause**: Browser download settings or popup blockers\n- **Solution**: \n  1. Check Chrome's download settings\n  2. Ensure popups are allowed for the extension\n  3. Check your Downloads folder - the file may have downloaded silently\n\n### Getting Help\n\nIf you continue to experience issues:\n\n1. **Check the browser console**: Right-click the extension icon → \"Inspect popup\" → Console tab\n2. **Verify your setup**: Ensure you're using a recent version of Chrome\n3. **Report bugs**: [Open an issue](https://github.com/levindixon/coda2md/issues) with:\n   - Error message\n   - Chrome version\n   - Steps to reproduce\n   - Console error logs (if any)\n\n## Coda API Limitations\n\n### Rate Limits\n- **Default**: 10 requests per second\n- **Burst**: 20 requests allowed in short bursts\n- **Daily**: No published daily limit, but excessive use may trigger throttling\n\n### Export Limitations\n- **Page Size**: Very large pages (\u003e10MB) may fail to export\n- **Export Format**: Only Markdown format is supported by this extension\n- **Concurrent Exports**: Only one export per page at a time\n- **Export Timeout**: Exports that take longer than 5 minutes may fail\n- **Export ID Expiration**: Export IDs expire immediately after use. When re-exporting the same page, wait at least 2 seconds between exports to avoid API errors\n\n### Content Support\n- **Supported**: Text, tables, lists, headings, links, basic formatting\n- **Limited Support**: Complex formulas, some embedded content\n- **Not Exported**: Interactive elements, buttons, reactions, comments\n\n### Access Requirements\n- **Minimum Permission**: View access to the page\n- **API Key Scope**: Key must have read access to docs\n- **Authentication**: API key must be valid and not expired\n\n## Development\n\n### Project Structure\n```\ncoda2md/\n├── manifest.json      # Extension configuration\n├── background.js      # Service worker for API calls\n├── popup.html         # Extension popup UI\n├── popup.js          # Popup interaction logic\n├── popup.css         # Popup styling\n├── content.js        # Content script (minimal)\n├── CLAUDE.md         # Development guidance for AI assistants\n├── CONTRIBUTING.md   # Contribution guidelines\n├── 16.png            # Extension icon (16x16)\n├── 48.png            # Extension icon (48x48)\n├── 128.png           # Extension icon (128x128)\n└── README.md         # This file\n```\n\n### Building from Source\n\nNo build process is required - the extension runs directly from source.\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with the [Coda API](https://coda.io/developers/apis/v1)\n- Uses Chrome Extension Manifest V3\n- Extension developed by [Claude](https://claude.ai)\n\n## Support\n\nIf you encounter any issues or have feature requests, please [open an issue](https://github.com/levindixon/coda2md/issues).\n\n---\n\nMade with ❤️ by Claude for the Coda community\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevindixon%2Fcoda2md","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flevindixon%2Fcoda2md","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevindixon%2Fcoda2md/lists"}