Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Liquid Templates

oenoen5k downloads

Create your templates with LiquidJS tags support.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates9

This is a plugin for Obsidian (https://obsidian.md).

With this plugin, you can write your templates using LiquidJS tags

Disclaimer

This plugin is still under heavy development, so it's not optimized yet and has basic features.

Autocomplete

There is an autocomplete feature that by default is triggered by ;; but can be customized in the options

Examples

This means that you can create a template made from smaller ones, for example (assuming that your templates folder is templates):

templates/header.md

# Header

Insert a common header

templates/footer.md

---
I'm just a footer

templates/awesome_template.md

{% include "header" %}

This is the body of my note: {{title}}
link to today note [[{{date}}]]

{% include "footer" %}

When you create a note with the "Awesome template" template, you'll end up with:

A cool title.md

# Header

Insert a common header

This is the body of my note: A cool title
link to today note [[2021-05-21]

---
I'm just a footer

But other than that, you can use all the basic tags and filters

Custom Filters

For now I'll keep the documentation of the filters here, when they become more I'll move it somewhere more convenient

date filter

The LiquidJS built-in date filter has been replaced with a custom one. For now, if there is a % character in the date format the old filter is used, otherwise the new one will take place.

The new date filter uses date-fns as library to handle dates, and the format strings to use are showed here: date-fns formats

There are also some special words that can be used with this filter:

"now"
{{ "now" | date: "yyyy-MM-dd" }}
Use the date from new Date and formatted with the given format

"today"
{{ "today" | date: "yyyy-MM-dd" }}
same as now

"yesterday"
{{ "yesterday" | date: "yyyy-MM-dd" }}
use the subDays function to subtract 1 from Date.now() and formatted with the given format

"tomorrow"
{{ "tomorrow" | date: "yyyy-MM-dd" }}
use the addDays function to add 1 to Date.now() and formatted with the given format

date Default format

Now you can use the "Date Format" you defined inside the plugin settings in a easier way:

Before: {{ "now" | date: default_date_format }}

Now: {{ "now" | date }} the format you specified in the settings is now used as default

days_ago filter

A simple filter that uses the subDays to subtract days from the current date (Date.now())

Keep in mind that this filter returns a date that needs to be formatted, so needs to be used with the date filter, like this:

  • {{ 1 | days_ago | date }} same as {{ "yesterday" | date }}
  • {{ 2 | days_ago | date }} return the date from two days ago

This can be used for a "Weekly Review" template, something like:

- [[{{ 7 | days_ago | date }}]]
- [[{{ 6 | days_ago | date }}]]
- [[{{ 5 | days_ago | date }}]]
- [[{{ 4 | days_ago | date }}]]
- [[{{ 3 | days_ago | date }}]]
- [[{{ 2 | days_ago | date }}]]
- [[{{ 1 | days_ago | date }}]]

days_after filter

A simple filter that uses the addDays to add days to the current date (Date.now())

Keep in mind that this filter returns a date that needs to be formatted, so needs to be used with the date filter, like this:

  • {{ 1 | days_after | date }} same as {{ "tomorrow" | date }}
  • {{ 2 | days_after | date }} return the date from two days from now

Template context

Other than the classic, date, time and title variable you also have:

Name Description
default_date_format The date format that you have specified in the plugin settings and can be used like this: {{ "now" | date: default_date_format }}
default_time_format The time format that you have specified in the plugin settings and can be used like this: {{ "now" | date: default_time_format }}

Roadmap

For now, this plugin just includes the basic version of LiquidJS, but I want to extend it to allow:

  • Add autocomplete to the template folder, excluded folder settings
  • Implement a fuzzy finder for the autocomplete
  • Implement/install a filter that allows you to write {{ 1 | days_ago | date: default_date_format }}
  • Parse a selected template string, something like you select {{ "dQw4w9WgXcQ" | youtube_iframe }} run a command and end up with the parsed result, in this case, the youtube iframe. (the youtube_iframe tag does not exist yet)
61%
HealthFair
ReviewCaution
About
Write templates using LiquidJS tags inside Obsidian and compose notes by including other template files. Apply Liquid filters, including a custom date filter powered by date-fns with keywords like now, today, yesterday, and tomorrow, and enjoy autocomplete while editing templates.
TemplatingAutocompleteDates
Details
Current version
0.3.1
Last updated
4 years ago
Created
5 years ago
Updates
9 releases
Downloads
5k
Compatible with
Obsidian 0.13.10+
Platforms
Desktop only
License
AGPL-3.0
Report bugRequest featureReport plugin
Author
oenoen
diomedet.com/
GitHuboen
  1. Community
  2. Plugins
  3. Templating
  4. Liquid Templates

Related plugins

Weread

Sync Tencent Weread highlights and annotations.

Periodic Notes

Manage your daily, weekly, and monthly notes.

LifeOS

Life management system.

Journals

Manage your journals.

Calendar

Explore your daily notes.

Persian Calendar

Persian Calendar for managing periodic notes based on persian solar (shamsi) calendar.

Modal forms

Define forms for capturing data that you will be able to open from anywhere you can run JavaScript.

QuickAdd

Quickly add new notes or content to your vault.

Templater

Create and use dynamic templates.

Day Planner

Day planning from a task list in a Markdown note with enhanced time block functionality.