{"id":30764409,"url":"https://github.com/bang9211/obsi-table","last_synced_at":"2026-06-20T08:31:03.334Z","repository":{"id":312892448,"uuid":"1048505755","full_name":"bang9211/obsi-table","owner":"bang9211","description":"🗂️ Advanced table management plugin for Obsidian with PowerPoint-style toolbar, cursor-based sorting, drag \u0026 drop, and CSV import/export","archived":false,"fork":false,"pushed_at":"2025-09-02T16:24:01.000Z","size":94,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-02T17:41:39.963Z","etag":null,"topics":["cell","color","delete","export","import","insert","moving","obsidian","obsidian-plugin","sorting","table"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/bang9211.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-01T14:48:31.000Z","updated_at":"2025-09-02T16:24:04.000Z","dependencies_parsed_at":"2025-09-02T17:41:41.936Z","dependency_job_id":"0d85253b-576b-41cc-971f-e9a2d2cd181a","html_url":"https://github.com/bang9211/obsi-table","commit_stats":null,"previous_names":["bang9211/obsi-table"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bang9211/obsi-table","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bang9211%2Fobsi-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bang9211%2Fobsi-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bang9211%2Fobsi-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bang9211%2Fobsi-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bang9211","download_url":"https://codeload.github.com/bang9211/obsi-table/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bang9211%2Fobsi-table/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34563535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"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":["cell","color","delete","export","import","insert","moving","obsidian","obsidian-plugin","sorting","table"],"created_at":"2025-09-04T17:03:56.409Z","updated_at":"2026-06-20T08:31:03.327Z","avatar_url":"https://github.com/bang9211.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian Table Manager\n\nAn advanced table creation and management plugin for Obsidian with comprehensive editing capabilities and intuitive visual interface.\n\n## Features\n\n### ✨ Interactive Visual Interface\n- ✅ **Smart Toolbar**: Context-aware toolbar that appears when editing tables\n- ✅ **PowerPoint-style Table Creator**: Visual grid selector with custom size input\n- ✅ **Intelligent Positioning**: Toolbar positions itself below other plugin toolbars (e.g., Make.md)\n\n### 🔧 Core Table Operations  \n- ✅ **Table Creation**: Create new tables with specified rows and columns via visual interface\n- ✅ **Row/Column Management**: Insert and delete rows/columns at cursor position\n- ✅ **Row/Column Movement**: Move rows and columns up/down/left/right\n- ✅ **Advanced Sorting**: Sort by any column with ascending/descending toggle\n- ✅ **Table Validation**: Comprehensive table structure integrity checks\n\n### 🎨 Visual Customization\n- ✅ **Cell Background Colors**: Apply colors to single or multiple selected cells\n- ✅ **Multi-cell Selection**: Drag to select rectangular areas across header and data cells  \n- ✅ **Color Picker Interface**: Preset colors and full spectrum picker with hover preview\n- ✅ **Mixed Selection Support**: Select and color both header and data cells together\n\n### 📋 Import/Export Features\n- ✅ **CSV Import**: Import tables from CSV files\n- ✅ **CSV Export**: Export tables to CSV format\n- ✅ **File Integration**: Seamless file handling with Obsidian's file system\n\n### ⚙️ Advanced Settings\n- ✅ **Configurable Defaults**: Customizable table creation settings\n- ✅ **Toolbar Control**: Enable/disable interactive toolbar\n- ✅ **Persistent Settings**: Settings saved across Obsidian sessions\n\n## Installation\n\n### Manual Installation\n1. Clone or download this repository\n2. Run `npm install` to install dependencies\n3. Run `make build` or `npm run build` to build the plugin\n4. Copy `main.js`, `manifest.json`, and `styles.css` to your Obsidian vault's `.obsidian/plugins/obsi-table/` folder\n5. Restart Obsidian and enable the plugin\n\n## Usage\n\n### Interactive Toolbar\nThe plugin provides an intuitive toolbar that appears when working with tables:\n- **Visual Table Creator**: Hover over the table icon to see a PowerPoint-style grid selector\n- **Row/Column Operations**: Insert or delete rows and columns at your cursor position  \n- **Movement Controls**: Move rows up/down or columns left/right\n- **Sorting**: Click the sort button to sort by the column where your cursor is located\n- **Color Picker**: Apply background colors to selected cells with the paint bucket tool\n- **CSV Operations**: Import from or export to CSV files\n\n### Multi-cell Selection\n- **Drag Selection**: Click and drag to select multiple cells in a rectangular area\n- **Mixed Selection**: Select both header and data cells together\n- **Color Application**: Apply colors to all selected cells at once\n\n### Commands (Ctrl/Cmd + P)\n- `Create Table`: Create a new table via command palette\n- `Insert Row at Cursor`: Add a row at current cursor position\n- `Insert Column at Cursor`: Add a column at current cursor position  \n- `Delete Row at Cursor`: Remove row where cursor is located\n- `Delete Column at Cursor`: Remove column where cursor is located\n- `Move Row Up/Down`: Reorder rows based on cursor position\n- `Move Column Left/Right`: Reorder columns based on cursor position\n- `Sort Table by Column`: Sort table by the column containing cursor\n- `Import from CSV`: Import table data from CSV file\n- `Export to CSV`: Export current table to CSV file\n\n### Settings\nAccess plugin settings through Obsidian Settings \u003e Community Plugins \u003e Table Manager:\n- **Default Table Size**: Set default rows and columns for new tables\n- **Enable Interactive Toolbar**: Toggle the visual toolbar on/off\n- **Sorting Options**: Configure sorting behavior and default directions\n- **Color Preferences**: Manage default color palettes and themes\n- **Import/Export Settings**: Configure CSV handling options\n\n## Development\n\n### Development Setup\n```bash\n# Install dependencies\nmake install\n\n# Development mode (live build)\nmake dev\n\n# Production build\nmake build\n\n# Linting\nmake lint\n\n# Code formatting\nmake format\n```\n\n### Project Structure\n```\nobsi-table/\n├── main.ts                    # Plugin entry point\n├── manifest.json             # Plugin metadata  \n├── src/\n│   ├── settings.ts          # Plugin settings configuration\n│   ├── components/\n│   │   └── TableToolbar.ts  # Interactive toolbar component\n│   ├── managers/\n│   │   ├── TableManager.ts  # Core table operations and CRUD\n│   │   └── ToolbarManager.ts # Toolbar lifecycle management  \n│   └── utils/\n│       ├── MarkdownParser.ts # Markdown table parsing utilities\n│       └── TableValidator.ts # Table structure validation\n├── plan/                     # Development planning documents\n├── tests/                    # Unit tests with Jest\n├── package.json\n├── tsconfig.json\n├── esbuild.config.mjs\n└── Makefile                  # Unified build system\n```\n\n### Tech Stack\n- **Language**: TypeScript\n- **Build**: esbuild (unified build system)\n- **Testing**: Jest with comprehensive unit tests  \n- **Linting**: ESLint with TypeScript support\n- **Formatting**: Prettier for code consistency\n- **API**: Obsidian Plugin API v1.x\n- **Architecture**: Component-based with Manager pattern\n\n## Contributing\n\n1. Fork this 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. Create a Pull Request\n\n## License\n\nMIT License\n\n## Version History\n\n### v1.0.0 (Current)\n- ✅ Interactive visual toolbar with context awareness\n- ✅ PowerPoint-style table creation interface  \n- ✅ Complete CRUD operations (Create, Read, Update, Delete)\n- ✅ Advanced row/column operations with cursor positioning\n- ✅ Row/column movement (up/down/left/right)\n- ✅ Multi-directional sorting by any column\n- ✅ Multi-cell selection with drag support\n- ✅ Cell background color customization\n- ✅ Mixed selection support (header + data cells)\n- ✅ CSV import and export functionality\n- ✅ Comprehensive table validation\n- ✅ Smart toolbar positioning (works with other plugins like Make.md)\n- ✅ Configurable settings and preferences\n- ✅ Full test coverage with Jest\n\n### Planned Future Features\n- 🔄 **Enhanced Import/Export**: Excel support, more file formats\n- 📋 **Copy/Paste Operations**: Advanced clipboard integration\n- 🔍 **Advanced Filtering**: Column-based filtering with conditions  \n- 🎨 **Extended Customization**: Borders, text alignment, cell merging\n- ⚡ **Performance Optimizations**: Better handling of large tables\n- 🔌 **Plugin Integrations**: Better compatibility with other Obsidian plugins\n\n## Support \u0026 Feedback\n\nIf you encounter any issues or have feature requests, please let us know through GitHub Issues.\n\n---\n\n**Made with ❤️ for the Obsidian community**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbang9211%2Fobsi-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbang9211%2Fobsi-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbang9211%2Fobsi-table/lists"}