Contributing to Templater
May 20, 2026 · View on GitHub
Thank you for your interest in contributing to Templater — a powerful templating plugin for Obsidian! Contributions of all sizes are welcome, from small bug fixes to new features and documentation improvements.
User documentation is available at https://silentvoid13.github.io/Templater/
Ways to Contribute
- Bug reports — open a GitHub issue describing the problem and steps to reproduce
- Feature requests — open a GitHub issue or discussion with your proposal
- Code contributions — bug fixes and features via pull requests (see below)
- New internal functions — see the internal functions contribution guide for details
- Documentation — improvements to the
/docsfolder via pull requests (no issue required)
Development Setup
Prerequisites: Node.js 20+, pnpm
npm install -g pnpm
- Fork and clone the repository
- Install dependencies:
pnpm install - Start the development server (watch mode):
The build automatically copies output topnpm devtest/vault/.obsidian/plugins/templater-obsidian/, so you can point a local Obsidian instance attest/vaultto test changes live.
Code Style
- TypeScript with strict mode — run
pnpm typecheckbefore submitting - Prettier for formatting (4-space tabs, semicolons) and ESLint for linting — both covered by:
pnpm lint - CI enforces these checks on every release; PRs should pass locally before submission
Commit Conventions
This project follows Conventional Commits:
type(scope): description
Common types: feat, fix, docs, refactor, test, chore
Example: fix(parser): handle nested tags correctly
Commit messages drive the automated changelog and semantic versioning, so please follow the format.
Testing
End-to-end tests run via WebdriverIO against a real Obsidian instance.
pnpm test
- Tests live in
test/specs/ - Bug fixes and new features must include tests — PRs that change behavior without tests will be asked to add them
Pull Request Process
For bug fixes and new features, please open a GitHub issue before starting work so the approach can be discussed. This avoids wasted effort on PRs that may not align with the project's direction. Documentation improvements can skip this step.
- Create or find an existing issue and get agreement on the approach
- Create a branch off
master - Make your changes, ensuring
pnpm typecheck,pnpm lint, andpnpm testall pass - Open a PR with a title in conventional-commit format (e.g.
fix(parser): handle edge case) - Describe what changed and why, and link the related issue
Documentation Contributions
- Documentation source lives in
docs/src/as Markdown files compiled by mdBook - Preview locally:
This serves the docs atcd docs mdbook servehttp://localhost:3000 - Documentation changes in
docs/**are deployed to GitHub Pages automatically on merge
Release Process (maintainers only)
- Run
pnpm release— this invokesstandard-versionto bump versions and updateCHANGELOG.md - Versions are synced across
package.json,manifest.json, andversions.jsonviascripts/versions-updater.cjs - Push the resulting tag to trigger the
release.ymlworkflow, which builds and publishes the GitHub release