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 --alertsSee Task Runner Documentation for detailed usage.
Advanced sync plugin combining settings sync, Git integration, and Scripton Cloud connectivity
- Settings Profiles: Create and switch between multiple settings configurations
- Git Integration: Auto-commit/push with AI-powered commit messages (OpenAI/Anthropic)
- Branch Strategies: develop/hostname auto-branching with squash merge support
- Cloud Sync: Download/upload settings from Scripton Cloud
- Conflict Resolution: Manual or automatic merge conflict handling
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
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
Bidirectional synchronization with WikiJS
- Real-time file watching and sync
- GraphQL API integration
- Conflict detection and resolution
- Selective sync with exclude patterns
Export notes to various blog platforms
- Multi-platform support (Hugo, Jekyll, WikiJS)
- Profile-based export configurations
- Asset management and image handling
- Markdown conversion with platform-specific formatting
- 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/scripton-sync" "/path/to/your/vault/.obsidian/plugins/scripton-sync"
ln -s "$(pwd)/plugins/template-generator" "/path/to/your/vault/.obsidian/plugins/template-generator"
ln -s "$(pwd)/plugins/metadata-manager" "/path/to/your/vault/.obsidian/plugins/metadata-manager"
ln -s "$(pwd)/plugins/publisher-scripton" "/path/to/your/vault/.obsidian/plugins/publisher-scripton"
ln -s "$(pwd)/plugins/wikijs-sync" "/path/to/your/vault/.obsidian/plugins/wikijs-sync"
ln -s "$(pwd)/plugins/blog-platform-export" "/path/to/your/vault/.obsidian/plugins/blog-platform-export"make dev-setupmake 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.jsonandmanifest.json - Run
make buildto create distribution files - Run
make releaseto create GitHub release
The plugin provides several configuration options:
- Template Folder: Specify the folder containing your templates
- Auto Metadata: Enable/disable automatic metadata generation
- Scripton Sync: Advanced sync settings (Git, Cloud, Profiles)
- 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
- Sync All: Complete sync cycle (pull, commit, push)
- Commit Changes: Create a commit with current changes
- 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 lintandmake 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 combines features from settings-sync and git-sync plugins
- Publishing features inspired by obsidian-publish