diff --git a/apps/web-clipper-manifestv3/README.md b/apps/web-clipper-manifestv3/README.md new file mode 100644 index 000000000..12f917e6c --- /dev/null +++ b/apps/web-clipper-manifestv3/README.md @@ -0,0 +1,148 @@ +# Trilium Web Clipper (Manifest V3) + +A modern Chrome extension for saving web content to [Trilium Notes](https://github.com/zadam/trilium) built with Manifest V3, TypeScript, and modern web standards. + +## ✨ Features + +- 🔥 **Modern Manifest V3** - Built with latest Chrome extension standards +- 📝 **Multiple Save Options** - Selection, full page, screenshots, links, and images +- ⌨️ **Keyboard Shortcuts** - Quick access with customizable hotkeys +- 🎨 **Modern UI** - Clean, responsive popup interface +- 🛠️ **TypeScript** - Full type safety and developer experience +- 🔍 **Enhanced Error Handling** - Comprehensive logging and user feedback +- 🚀 **Developer Friendly** - Modern build tools and hot reload + +## 🚀 Installation + +### From Source + +1. Clone the repository and navigate to the extension directory +2. Install dependencies: + ```bash + npm install + ``` +3. Build the extension: + ```bash + npm run build + ``` +4. Load the extension in Chrome: + - Open `chrome://extensions/` + - Enable "Developer mode" + - Click "Load unpacked" and select the `dist` folder + +## 🎯 Usage + +### Save Content + +- **Selection**: Highlight text and use `Ctrl+Shift+S` or right-click menu +- **Full Page**: Use `Alt+Shift+S` or click the extension icon +- **Screenshot**: Use `Ctrl+Shift+E` or right-click menu +- **Links & Images**: Right-click on links or images to save directly + +### Keyboard Shortcuts + +- `Ctrl+Shift+S` (Mac: `Cmd+Shift+S`) - Save selection +- `Alt+Shift+S` (Mac: `Option+Shift+S`) - Save full page +- `Ctrl+Shift+E` (Mac: `Cmd+Shift+E`) - Save screenshot + +### Extension Popup + +Click the extension icon to: +- Save current page or selection +- Take a screenshot +- Configure settings +- View save status + +## ⚙️ Configuration + +1. Right-click the extension icon and select "Options" +2. Enter your Trilium server URL (e.g., `http://localhost:8080`) +3. Configure default note title format +4. Set up saving preferences + +### Trilium Server Setup + +Ensure your Trilium server is accessible and ETAPI is enabled: +1. In Trilium, go to Options → ETAPI +2. Create a new token or use an existing one +3. Enter the token in the extension options + +## 🔧 Development + +### Prerequisites + +- Node.js 18+ (22+ recommended) +- npm or yarn +- Chrome/Chromium 88+ (for Manifest V3 support) + +### Development Workflow + +```bash +# Install dependencies +npm install + +# Start development mode (watch for changes) +npm run dev + +# Build for production +npm run build + +# Type checking +npm run type-check + +# Lint and format code +npm run lint +npm run format +``` + +### Project Structure + +``` +src/ +├── background/ # Service worker (background script) +├── content/ # Content scripts +├── popup/ # Extension popup UI +├── options/ # Options page +├── shared/ # Shared utilities and types +└── manifest.json # Extension manifest +``` + +## 🐛 Troubleshooting + +**Extension not loading:** +- Ensure you're using Chrome 88+ (Manifest V3 support) +- Check that the `dist` folder was created after running `npm run build` +- Look for errors in Chrome's extension management page + +**Can't connect to Trilium:** +- Verify Trilium server is running and accessible +- Check that ETAPI is enabled in Trilium options +- Ensure the server URL in extension options is correct + +**Content not saving:** +- Check browser console for error messages +- Verify your Trilium ETAPI token is valid +- Ensure the target note or location exists in Trilium + +## 📝 License + +This project is licensed under the same license as the main Trilium project. + +## 🤝 Contributing + +Contributions are welcome! Please: + +1. Fork the repository +2. Create a feature branch +3. Make your changes +4. Add tests if applicable +5. Submit a pull request + +## 📋 Changelog + +### v1.0.0 +- Complete rebuild with Manifest V3 +- Modern TypeScript architecture +- Enhanced error handling and logging +- Improved user interface +- Better developer experience \ No newline at end of file