A collection of Obsidian plugins managed as a monorepo using pnpm workspaces. This repository contains multiple plugins that enhance your Obsidian experience with template generation, metadata management, git synchronization, and publishing capabilities.
This project includes an automated TODO task processor for managing development tasks:
# Show next incomplete task
pnpm task-runner
# Process next task interactively
pnpm task-runner --process
# Convert alert files to TODOs
pnpm task-runner --alerts
See Task Runner Documentation for detailed usage.
Template insertion plugin with dynamic content generation
- Handlebars/eta template engine support
- Dynamic variables (date, weather, fortune)
- External API integration
- Template preview and selection UI
Automatic git synchronization with AI-powered commit messages
- Periodic auto-commit to
tmp
branch - LLM-powered commit message generation
- Auto-pull on startup
- Conflict resolution support
Frontmatter metadata management and linting
- Auto-insert frontmatter on new documents
- Template-based metadata rules
- Metadata validation and linting
- Auto-formatting capabilities
Publish notes to scripton.cloud platform
- API key management
- Selective note/folder publishing
- Markdown to HTML/JSON conversion
- Publishing status tracking
- Open Obsidian Settings
- Go to Community Plugins
- Search for "Awesome Plugin"
- Install and enable
- Download the latest release from GitHub
- Extract to your
.obsidian/plugins/
folder - Enable the plugin in settings
# Clone the repository
git clone https://github.com/yourusername/sb-obsidian-plugins.git
cd sb-obsidian-plugins
# Install pnpm if not already installed
npm install -g pnpm
# Install dependencies
pnpm install
# Build all plugins
pnpm build
# Build specific plugin
pnpm --filter @sb-obsidian-plugins/template-generator build
# Link plugins to your Obsidian vault
ln -s "$(pwd)/plugins/template-generator" "/path/to/your/vault/.obsidian/plugins/template-generator"
ln -s "$(pwd)/plugins/git-sync" "/path/to/your/vault/.obsidian/plugins/git-sync"
# ... repeat for other plugins
make dev-setup
make watch
- Build and watch for changesmake build
- Build the pluginmake lint
- Run lintermake test
- Run testsmake test-coverage
- Run tests with coverage
- Update version in
package.json
andmanifest.json
- Run
make build
to create distribution files - Run
make release
to create GitHub release
The plugin provides several configuration options:
- Template Folder: Specify the folder containing your templates
- Auto Metadata: Enable/disable automatic metadata generation
- Git Sync: Enable/disable git synchronization features
- Publishing: Enable/disable publishing capabilities
The plugin uses Vitest for testing:
# Run tests
make test
# Run tests with coverage
make test-coverage
- Insert Template: Insert a template at cursor position
- Auto-generate Metadata: Add frontmatter metadata to current note
- Git Sync: Synchronize with git repository
- Publish Note: Publish current note to configured destination
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and add tests
- Run
make lint
andmake test
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
tasks/
├── todo/ # Active TODO files ([ ] items)
├── done/ # Completed files (__DONE_YYYYMMDD.md)
└── alert/ # Alert files to be converted to TODOs
- Find Next Task: Scans files alphabetically, finds first
[ ]
item - Analysis: Reviews dependencies, related code/docs
- Implementation: Code changes, tests, documentation
- Format & Commit: Runs formatter, commits with proper message
- File Movement: Moves completed files to
/tasks/done/
[ ]
- Incomplete task[x]
- Completed task[>]
- Blocked/impossible task (document reason)
- Inspired by Templater
- Metadata features inspired by MetaEdit
- Git integration inspired by obsidian-git
- Publishing features inspired by obsidian-publish