![](/static/61a827a1/assets/icons/icon-96x96.png)
![](https://lemmy.world/pictrs/image/8286e071-7449-4413-a084-1eb5242e2cf4.png)
No scripting involved in the above example though.
No scripting involved in the above example though.
Let me give you an example, I have a page with this:
```template
| Name | Keywords |
|-----------|-----------------|
{{#each {recipe}}}
| [[{{name}}]] | {{keywords}} |
{{/each}}
\ ```
Then each recipe page has a header, so for example if I have a file named Recipes/Steak.md
with the content:
---
tags: recipe
keywords: beef easy
---
# Ingredients
Yadda yadda yadda...
So that table gets populated with all of the recipes wherever they are and I can add other columns or info there. It’s very neat and customizable.
Silverbullet is open source and has a very simple architecture with slightly extended markdown files which are easy to sync using whatever you use for syncing files. Plus it syncs files locally and allows you to edit offline and sync later (with a basic sync conflict resolution to avoid losing changes) and a very cool feature is that it allows you to write your own scripts to get whatever feature you want.
Another vote for Silverbullet, I’ve been using it for a while and it’s great. There is a tree view plugin that’s very easy to install, however I disabled it after a short while because I realized that, because of the way I take notes, that is a lot less useful than other features.
For example, I have a folder with all my cooking recipes, at first I thought having a Tree view would be good there, but actually if I use the querying mechanism I can have tables that give me more information than just the name, e.g. tags, difficulty, etc. also this works regardless of where the recipes are, so if I want to create a subfolder structure or scrap recipes from elsewhere in the whole space it would work (granted, not very useful for recipes, but I also have a table for work tools, some of which are embebed on another page, some of which are a page of their own, and I have a table that lists all of the tools to give me an overview)
In that sense it is a bit of scripting, it’s a templating language similar to Jinja, so you put things you want to display between
{{ }}
, for example{{name}}
will get rendered as the content of the name variable.[[ ]]
is the way Silverbullet habgles links, so[[Something]]
is a link to the file Something.md, so[[ {{ name }} ]]
is a link to the file with the name from the variable.Also that’s because I wanted a custom view, a very similar thing could be done with:
\```query recipe \```
BTW, you can have a table of contents on Silverbullet by just putting a block named toc, i.e. ```toc and closing it on the next line.