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 /docs folder via pull requests (no issue required)

Development Setup

Prerequisites: Node.js 20+, pnpm

npm install -g pnpm
  1. Fork and clone the repository
  2. Install dependencies:
    pnpm install
    
  3. Start the development server (watch mode):
    pnpm dev
    
    The build automatically copies output to test/vault/.obsidian/plugins/templater-obsidian/, so you can point a local Obsidian instance at test/vault to test changes live.

Code Style

  • TypeScript with strict mode — run pnpm typecheck before 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.

  1. Create or find an existing issue and get agreement on the approach
  2. Create a branch off master
  3. Make your changes, ensuring pnpm typecheck, pnpm lint, and pnpm test all pass
  4. Open a PR with a title in conventional-commit format (e.g. fix(parser): handle edge case)
  5. 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:
    cd docs
    mdbook serve
    
    This serves the docs at http://localhost:3000
  • Documentation changes in docs/** are deployed to GitHub Pages automatically on merge

Release Process (maintainers only)

  1. Run pnpm release — this invokes standard-version to bump versions and update CHANGELOG.md
  2. Versions are synced across package.json, manifest.json, and versions.json via scripts/versions-updater.cjs
  3. Push the resulting tag to trigger the release.yml workflow, which builds and publishes the GitHub release