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

Dynbedded

Marcus BreidenMarcus Breiden5k downloads

Dynamic embeds.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates18

Embed snippets, templates and any linkable by delegating the current scope to the embedded file either by using a direct reference or as reference with date naming format relative from today.

🔄 Full Quoth replacement. Dynbedded renders Quoth code blocks directly (Quoth is deprecated — last release 2023). Enable Render quoth blocks in the settings and your existing quoth notes keep working with no rewrites. See Quoth compatibility below.

Features

Embedded other notes

Notes can be embedded and will execute any dynamic content from the context of the active note. You can also use Headers in the embedded.

e.g.

```dynbedded
[[Note with Dataview#Pick any header level you like]]
```

This will then include the content of that note into the current note, and execute any dynamic content from the included note in the context of the current note.

As an example: a Dataview script to show inline links

```dataview
LIST FROM [[]]
```

will show the inline links of the current note, not the inline links of the note you are embedding.

Dataview Inliks

Current Date substitution of note names and headers

Date Formatting 📅

You can substitute part of the note name with the current date in any format you like based on Moment.js Date format.

e.g.

```dynbedded
[[{{YYYY-MM-DD}}#Header is possible too]]
```

will embed the content of the "Header is possible too" section of the note with a name of the current date in "YYYY-MM-DD" format, e.g 2022-10-14

Please Note 💡: You need to have the full note name inside the curly brackets, so if you want to use something like DP-2022-10-14 the syntax looks like:

```dynbedded
[[{{[DP-]YYYY-MM-DD}}#Header is possible too]]
```

This will also work for the headers!

e.g.

```dynbedded
[[{{YYYY-MM-DD}}#{{YYYY-MM-DD}}]]
```

Flexible Date 🚀📆

You can also change the date to be used by "adding" a specific duration to the actual date, either as

  • Number (positive or negative) "of days"
  • String based on ISO8601 format for example, P-1D, for more information click here

e.g.

```dynbedded
[[{{YYYY-MM-DD|P-1D}}#Header is possible too]]
```

will return the section of the note from "yesterday" starting with header "#Header is possible too".

This will also work for the headers!

e.g.

```dynbedded
[[{{YYYY-MM-DD|P-1D}}#{{YYYY-MM-DD|P-1D}}]]
```

BTW: You can mix and match filename and headers too:

e.g.

```dynbedded
[[{{YYYY-MM-DD}}#{{YYYY-MM-DD|P-1D}}]]
```

Header Hierarchy

By default, a section ends at the next heading of any level. To include subheadings in the embedded section, add headerHierarchy: true as a second line:

```dynbedded
[[MyNote#Section]]
headerHierarchy: true
```

Auto-Refresh

Dynbedded blocks can automatically re-render at a configurable interval — useful for date-based embeds that should update without reopening the note.

Enable Auto-Refresh in the plugin settings and set the desired interval (10–3600 seconds, default 60). The setting is off by default and changes take effect when the note is reopened.

Range embedding

Embed only part of a note, not just a whole note or a whole #section.

  • after: "anchor" — everything from the anchor line (exclusive) to the end of the file. The anchor is matched against the raw line text, so a heading anchor includes its #:
```dynbedded
[[{{[DP-]YYYY-MM-DD}}]]
after: "# Schedule"
```
  • from: "X" / to: "Y" — a text-anchored range, both ends inclusive:
```dynbedded
[[MyNote]]
from: "## Start"
to: "## End"
```

Anchors support date substitution ({{...}}) just like the note name. Note that after: runs to the end of the file, which is deliberately different from a #Header embed (that stops at the next heading).

Inline display

By default an embed renders as a block. Set display: inline to drop the surrounding paragraph so the content flows as one run:

```dynbedded
[[MyNote#Quote]]
display: inline
```

display accepts embedded (the default, block) or inline. The default can be changed in the settings (Default display mode).

Source attribution

Add a citation footer after the embedded content with show::

```dynbedded
[[MyNote#Quote]]
show: title, author
```

title falls back to the note's file name; author is read from the note's frontmatter.

Display options

These are settings (off by default, so existing notes are unchanged):

  • Quote styling — render embedded (block) content with a coloured left accent and a slight indent, like a quote. A block can override the setting with quoteStyle: true or quoteStyle: false.
  • Show source link — add a small link icon to each embed that opens the original note. A block can override the setting with showSourceLink: true or showSourceLink: false.
  • Include heading in section — when embedding a #Heading section, also render the heading line itself. Off keeps the original behaviour of starting below the heading; this does not affect after: ranges. A block can override the setting with includeHeading: true or includeHeading: false:
```dynbedded
[[MyNote#Section]]
includeHeading: true
```

Error messages

When a block cannot be resolved — a missing header being the common case — the error message links to the note the block points at, so you can open it and check the actual headings without leaving the page:

  • the [[Target note]] in the message is clickable (Ctrl/Cmd-click opens it in a new tab), and a link icon follows the message;
  • if the target note does not exist at all, the link is shown muted and clicking it creates the note, just like a normal unresolved [[link]] in Obsidian;
  • the icon is always shown here — it does not depend on the Show source link setting, because in an error there is no embedded content to click;
  • with Enable silent mode on, nothing is rendered at all, as before.

Commands

  • Copy reference — turns the current selection (or cursor) in the active note into a ready-to-paste dynbedded block on the clipboard.
  • Convert quoth blocks in current note — rewrites every quoth block in the active note as an equivalent dynbedded block.

Quoth compatibility

Dynbedded can render code blocks written for the deprecated Quoth plugin, so you can uninstall Quoth without rewriting any notes.

Enable Render quoth blocks in the settings, then reload Obsidian and uninstall Quoth — only one plugin can own the quoth code block, so Quoth must be gone first.

```quoth
path: [[DP-2026-06-09]]
ranges: after "# Schedule"
display: inline
```

Supported Quoth fields: path (incl. #heading and #^block subpaths), ranges (after, "X" to "Y", line:col, multiple ranges), join, display (embedded/inline) and show (author/title). The setting is off by default.

To match Quoth showing the heading line in a #section embed, turn on Include heading in section (or set includeHeading: true per block).

Minor gaps: #-list-item subpaths are not yet supported, and line:col positions are resolved per line (the column is ignored). These do not affect the common after "# Heading" / heading-section workflow.

Possible P+1D features

PS: No, I won't deliver those features tomorrow 😀

  • Name of the day as relative dates, e.g. DWed for this week Wednesday
  • Relative name of the day as relative dates, e.g. D-1Wed for last week Wednesday

Styling

You can style the embedded content with a style sheet. The following styles are available:

  • .dynbedded = for the normal display. There is no default value for this at the moment. (This styling needs to be in front of the error Styling if you restyle both!)
  • .dynbedded-error = for error messages, by default red. See styles.css
  • .dynbedded-error-link = the clickable target-note link inside an error message; it also carries .is-unresolved when the target note does not exist.
  • .dynbedded-inline = wraps content rendered with display: inline.
  • .dynbedded-attribution = the show: source-attribution footer.
  • .dynbedded-quote-style = the optional quote accent + indent (when Quote styling is on).
  • .dynbedded-source-link = the optional source-link icon (when Show source link is on).

After creating your own style sheet you need to copy it to the .obsidian/snippets folder and enable the style sheet in Appearance / CSS Snippets.

Working with other plugins

Some plugins are just the perfect partner for Dynbedded, and were one of the reasons this plugin was created 😀

  • Dataview will not only be able to show information referenced from the current note (like the inlinks example) but will also allow you to work with Tasks! No Fake checking of Task boxes. It is the real thing.
  • Buttons also works quite well with Dynbedded, allowing you to create a "master note" with some reusable buttons.

Examples

If you want to see more examples take a look into the Test Vault under Dynbedded in this repository.

You can also read more about the plugin on my website:

  • MMoMM.org English Version
  • MMoMM.org Deutsche Version

Or if you are more the Video type of person take a look at the following video examples:

  • YouTube English version
  • YouTube Deutsche Version

Limitations

There are some limitations to the plugin (some might be overcome in the future, some not.)

  • Checkboxes are displayed and can be checked but this is only fake. The original checkboxes are not checked! The same is true for Tasks from the Tasks Plugin. See [Working with other plugins](#Working with other plugins) for a workaround.
  • The links inside the code-block to embed the other notes data are NOT links, so if you rename your targeted note the connection breaks.
  • By default, Dynbedded stops at the next heading of any level when extracting a section. Use headerHierarchy: true to include subheadings. See Issue #2.

Installing

Installing via Obsidian Community Plugins

Just install the plugin via the community plugin dialog as soon as it becomes available. After enabling you are ready to go. The settings tab covers silent mode, auto-refresh, default display mode, quote styling, source link, include-heading, and Quoth compatibility — all opt-in and off by default (plus debug logging and a link to my Ko-Fi support).

Installing via BRAT

You can install this plugin via BRAT as long as it is not officially available or if you want to test beta versions (there is none at the moment, so let me know if you want to know when I make one)

For more information on BRAT and how to install this plugin take a look here: https://github.com/TfTHacker/obsidian42-brat#Quick-Guide-for-using-BRAT

Manually installing the plugin

Copy over main.js, styles.css, manifest.json from the build directory to your vault VaultFolder/.obsidian/plugins/obsidian-dynbedded/.

Acknowledgement

Based on the general idea from Dynamic Embed.

HealthExcellent
ReviewSatisfactory
About
Embed notes, templates and snippets and run their dynamic content in the context of the current note, including specific headers. Substitute parts of note names and headers with Moment.js date formats and apply offsets (ISO8601 or day counts) to target dated notes or sections.
TemplatingDatesLinks
Details
Current version
1.6.3
Last updated
Last week
Created
4 years ago
Updates
18 releases
Downloads
5k
Compatible with
Obsidian 1.4.0+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Sponsor
Ko-fi
GitHub Sponsors
Buy Me a Coffee
Author
Marcus BreidenMarcus Breidenmmomm-org
www.mmomm.org
GitHubmmomm-org
marcusbreiden
xing.com
mmomm-org
  1. Community
  2. Plugins
  3. Templating
  4. Dynbedded

Related plugins

LifeOS

Life management system.

Periodic Notes

Manage your daily, weekly, and monthly notes.

Journals

Manage your journals.

Calendar

Explore your daily notes.

Excalidraw

Visual PKM powerhouse. Create and edit Excalidraw drawings.

Advanced URI

Control everything with URI.

Tasks

Track tasks across your vault. Supports due dates, recurring tasks, done dates, sub-set of checklist items, and filtering. Maintained by Clare Macrae and Ilyas Landikov, created by Martin Schenck.

Breadcrumbs

Visualise the hierarchy of your vault using a breadcrumb trail or matrix view.

Day Planner

Turn tasks from daily notes, the Tasks plugin, and calendars into time blocks on an editable timeline, with built-in time tracker.

Find orphaned files and broken links

Find files that are not linked anywhere and would otherwise be lost in your vault. In other words: files with no backlinks.