Embed page content in another page

apologies if this is an obvious question however how do you write a query to embed the contents of a page into another page?

also could you do this in a way that it is editable and updates on the original page . ie editable transclusion?

thanks and loving using silverbullet. its clear to see how much hard work has gone into making such detailed software seem so simple. great job

1 Like

If you’re coming from Obsidian which uses ![[link]], its’ not quite as easy, but it is still possible to embed a page in another page. You can do this with a template block, with:

page: "[[]]"

You could also create a snippet template that looks like this:

---
tags: template
description: Embed a page inside another
hooks.snippet.slashCommand: embed
---

```template
page: "[[|^|]]"
` ` ` (the md here is getting broken, that should be an ending codeblock ```)

Then all you need to do is /embed and your cursor will drop to the right place and you can start typing. Note: You can’t embed portions or sections of a page, like you could in, e.g., Obsidian, with [[page#heading]].

There are ways of embedding just sections.
Have a look, for example, to this GitHub issue: Selective Include · Issue #338 · silverbulletmd/silverbullet · GitHub

1 Like

I did not know that! Thanks!

amazing thank you!!!
how can you include the embeded page name in the template? ive tried so many different ways but no luck.
is there a site to learn these functions?

FYI, my currently preferred way of embedding another page (as a whole) is this:

```template
{{[[link/to/page]]}}
```

In template language [[link/to/page]]] evaluates to the (verbatim) content of that page.

Why I like it? It’s relatively brief, and easy to extend, e.g. if you want to also add the page name as a header and link:

```template
# [[link/to/page]]
{{[[link/to/page]]}}
```

Using a page YAML body as suggested by @SONDLecT is legacy although it still works, although you should already see a warning suggesting you replace it with an Live Templates include block, and if you read the docs on that, you’ll see the suggestion to replace that with the the code I just listed :wink:

1 Like

This is definitely a neater approach. I think that autocomplete isn’t…autocompleting with {{[[link/to/page]]}}, but once that bug is squashed, it will definitely be the preferred method for me.

Yep:

As a follow up, on edge (so next release) completion should now be fixed.

2 Likes

Hello.
The template design {{[link / to / page]}} works correctly with images but does not display the graphical output of the mervaid plugin. Or I’m doing something wrong ?