This commit is contained in:
notes 2024-09-30 10:15:00 +00:00
parent eb376275a9
commit 142e503512
29 changed files with 219 additions and 107 deletions

View File

@ -1,16 +0,0 @@
---
description: "Create a movie"
tags: template
hooks.newPage:
suggestedName: "Media/Movies/"
confirmName: true
command: "Create Movie"
---
---
date:
author:
rating: 0
---
# Name

View File

@ -0,0 +1,12 @@
---
description: Create a New Page template
tags: template
hooks.newPage:
suggestedName: "Library/Personal/New Page/"
confirmName: true
frontmatter: |
tags: template
displayName: "|^|"
hooks.newPage:
suggestedName: ""
---

View File

@ -2,7 +2,7 @@
description: "Create a quick note" description: "Create a quick note"
tags: template tags: template
hooks.newPage: hooks.newPage:
suggestedName: "Inbox/{{today}} {{time}}" suggestedName: "Inbox/{{today}}/{{safeTime}}"
confirmName: false confirmName: false
command: "Quick Note" command: "Quick Note"
key: "Alt-Shift-n" key: "Alt-Shift-n"

View File

@ -1,24 +0,0 @@
---
description: "Create a recipe"
tags: template
hooks.newPage:
suggestedName: "Recipes/"
confirmName: true
command: "Create Recipe"
---
---
link:
rating:
time:
image:
---
# Name
---
- Ingredients
---
1. Steps

View File

@ -0,0 +1,11 @@
---
tags: template
description: Create a new Snippet template
hooks.newPage:
suggestedName: Library/Personal/Snippet/
confirmName: true
frontmatter: |
tags: template
hooks.snippet:
slashCommand: "|^|"
---

View File

@ -1,36 +1,37 @@
#meta
We would like to keep our space clean, these are some tools that help you do that. We would like to keep our space clean, these are some tools that help you do that.
# Broken links # Aspiring pages
This shows all internal links that are broken. This shows all page links that link to a page that does not (yet) exist. These could be broken links or just pages _aspiring_ to be created.
```template ```template
query: | {{#let @brokenLinks = {aspiring-page}}}
link where toPage and pageExists(toPage) = false {{#if @brokenLinks}}
template: | {{#each @brokenLinks}}
{{#if .}} * [[{{ref}}]]: broken link to [[{{name}}]]
{{#each .}}
* [[{{ref}}]]: broken link to [[{{toPage}}]]
{{/each}} {{/each}}
{{else}} {{else}}
No broken links, all good! No aspiring pages, all good!
{{/if}} {{/if}}
{{/let}}
``` ```
# Conflict copies # Conflict copies
These are pages that have conflicted copies (as a result of sync), have a look at them as well as their original (non-conflicted versions) and decide which one to keep. These are pages that have conflicted copies (as a result of sync), have a look at them as well as their original (non-conflicted versions) and decide which one to keep.
```template ```template
query: | {{#let @conflictPages = {
page where name =~ /\.conflicted\.\d+$/ page where name =~ /\.conflicted\.\d+$/
select select name as conflictedName,
name as conflictedName,
replace(name, /\.conflicted\.\d+$/, "") as cleanName replace(name, /\.conflicted\.\d+$/, "") as cleanName
template: | }}}
{{#if .}} {{#if @conflictPages}}
{{#each .}} {{#each @conflictPages}}
* [[{{cleanName}}]]: confict copy [[{{conflictedName}}]] * [[{{cleanName}}]]: confict copy [[{{conflictedName}}]]
{{/each}} {{/each}}
{{else}} {{else}}
No conflicting pages! No conflicting pages!
{{/if}} {{/if}}
{{/let}}
``` ```

View File

@ -0,0 +1,7 @@
#meta
This page lists all `#meta` tagged pages currently available in your space. You can also navigate to them via the {[Navigate: Meta Picker]}.
```query
page where tags = "meta" render [[Library/Core/Query/Page]]
```

View File

@ -0,0 +1,39 @@
#meta
This page compiles some useful things about your space and may also be useful for debugging things.
# Stats
```template
**Total pages:** {{count({page select name})}}
**Total attachments:** {{count({attachment select name})}}
**Total tags:** {{count({tag select name})}}
```
# Active [[!silverbullet.md/Space Script]]
```template
{{#each {space-script}}}
* [[{{ref}}]]
{{/each}}
```
# Active [[!silverbullet.md/Space Style]]
```template
{{#each {space-style}}}
* [[{{ref}}]]
{{/each}}
```
# Active [[!silverbullet.md/Space Config]]
You have space config defined on the following pages:
```template
{{#each {space-config select replace(ref, /@.+/, "") as page}}}
* [[{{page}}]]
{{/each}}
```
Composed, this leads to the following active configuration:
```template
~~~yaml
{{yaml(@config)}}
~~~
```

View File

@ -1,23 +1,28 @@
This page lists all templates currently available in your space. #meta
This page lists all templates currently available in your space. You can also navigate to them via the {[Navigate: Meta Picker]}. More information on templates can be found [[!silverbullet.md/Templates]]
# New Page # New Page
$newPage These [[!silverbullet.md/Page Templates]] are available through the {[Page: From Template]} command:
These [[!silverbullet.md/Page Templates]] are available through the {[Page: From Template]} command.
```query ```query
template where hooks.newPage render [[Library/Core/Query/Template]] template where hooks.newPage render [[Library/Core/Query/Template]]
``` ```
# Snippets # Snippets
$snippets
These can be used as [[!silverbullet.md/Snippets]] via [[!silverbullet.md/Slash Commands]]: These can be used as [[!silverbullet.md/Snippets]] via [[!silverbullet.md/Slash Commands]]:
```query ```template
template where hooks.snippet render [[Library/Core/Query/Template]] {{#each {
template
where hooks.snippet
order by hooks.snippet.slashCommand
}}}
* [[{{ref}}|/{{hooks.snippet.slashCommand}}]] {{description}}
{{/each}}
``` ```
# Widgets # Widgets
$widgets
Widgets can either be automatically attached to the top or bottom of pages (matching certain criteria) or used inline via [[!silverbullet.md/Live Templates]]. Widgets can either be automatically attached to the top or bottom of pages (matching certain criteria) or used inline via [[!silverbullet.md/Live Templates]].
## Top ## Top
@ -37,11 +42,11 @@ render [[Library/Core/Query/Template]]
``` ```
## Inline ## Inline
Use these as `page` in [[!silverbullet.md/Live Templates]] to render useful things in your pages: Use with [[!silverbullet.md/Live Templates#Include]] to render useful things in your pages:
```query ```query
template template
where name =~ /\/Widget\// and hooks.top = null and hooks.bottom = null where name =~ /\/Widget\// and not hooks.top and not hooks.bottom
order by order order by order
render [[Library/Core/Query/Template]] render [[Library/Core/Query/Template]]
``` ```

View File

@ -0,0 +1,5 @@
---
tags: template
description: A page reference link as a list item showing the full page path
---
* [[{{name}}|{{name}}]]

View File

@ -1,4 +1,7 @@
#template ---
tags: template
---
* [[{{ref}}]] {{description}} * [[{{ref}}]] {{description}}
{{#if usage}} {{#if usage}}
* **Usage:** {{usage}} * **Usage:** {{usage}}

View File

@ -1,5 +1,8 @@
This is your {[Quick Note]} inbox. This is your {[Quick Note]} inbox.
```query ```query
page where name =~ /^Inbox\// render [[Library/Core/Query/Page]] page
where name =~ /^Inbox\//
render [[Library/Core/Query/Full Page]]
order by lastModified desc
``` ```

View File

@ -0,0 +1,10 @@
---
description: (Template) Insert an `#each` directive
tags: template
hooks.snippet:
slashCommand: "#each"
order: 10
---
{{escapeDirective("#each |^|")}}
{{escapeDirective("/each")}}

View File

@ -3,6 +3,6 @@ tags: template
description: Make this a level 1 heading description: Make this a level 1 heading
hooks.snippet: hooks.snippet:
slashCommand: h1 slashCommand: h1
match: "^#*\\s*" matchRegex: "^#*\\s*"
--- ---
# #

View File

@ -3,6 +3,6 @@ tags: template
description: Make this a level 2 heading description: Make this a level 2 heading
hooks.snippet: hooks.snippet:
slashCommand: h2 slashCommand: h2
match: "^#*\\s*" matchRegex: "^#*\\s*"
--- ---
## ##

View File

@ -3,6 +3,6 @@ tags: template
description: Make this a level 3 heading description: Make this a level 3 heading
hooks.snippet: hooks.snippet:
slashCommand: h3 slashCommand: h3
match: "^#*\\s*" matchRegex: "^#*\\s*"
--- ---
### ###

View File

@ -3,6 +3,6 @@ tags: template
description: Make this a level 4 heading description: Make this a level 4 heading
hooks.snippet: hooks.snippet:
slashCommand: h4 slashCommand: h4
match: "^#*\\s*" matchRegex: "^#*\\s*"
--- ---
#### ####

View File

@ -0,0 +1,10 @@
---
description: (Template) Insert an `#if` directive
tags: template
hooks.snippet:
slashCommand: "#if"
order: 10
---
{{escapeDirective("#if |^|")}}
{{escapeDirective("/if")}}

View File

@ -0,0 +1,12 @@
---
description: (Template) Insert `#if` directive with 'else'
tags: template
hooks.snippet:
slashCommand: "#if-else"
order: 10
---
{{escapeDirective("#if |^|")}}
{{escapeDirective("else")}}
{{escapeDirective("/if")}}

View File

@ -0,0 +1,8 @@
---
tags: template
description: Add a live preview of a page
hooks.snippet.slashCommand: include-page
---
```include
raw: "[[|^|]]"
```

View File

@ -0,0 +1,10 @@
---
tags: template
description: Make this a bullet item
hooks.snippet:
slashCommand: item
matchRegex: "^(\\s*)[\\-\\*]?\\s*"
command: "Text: Turn into a bullet item"
key: "Ctrl-q i"
---
$1*

View File

@ -0,0 +1,10 @@
---
description: (Template) Insert a `#let` directive
tags: template
hooks.snippet:
slashCommand: "#let"
order: 10
---
{{escapeDirective("#let @|^| = ")}}
{{escapeDirective("/let")}}

View File

@ -1,10 +1,10 @@
--- ---
tags: template tags: template
description: Turn the current line into a task description: Make this a task
hooks.snippet: hooks.snippet:
slashCommand: task slashCommand: task
matchRegex: "^(\\s*)[\\-\\*]?\\s*(\\[[ xX]\\])?\\s*" matchRegex: "^(\\s*)[\\-\\*]?\\s*(\\[[ xX]\\])?\\s*"
command: "Turn into task" command: "Text: Turn into task"
key: "Ctrl-q t" key: "Ctrl-q t"
--- ---
$1* [ ] $1* [ ]

View File

@ -1,8 +1,8 @@
--- ---
description: Insert an inline template description: Insert a template
tags: template tags: template
hooks.snippet.slashCommand: "template" hooks.snippet.slashCommand: "template"
--- ---
```template ```template
page: "[[|^|]]" |^|
``` ```

View File

@ -1,18 +1,13 @@
--- ---
description: Adds Linked Mentions to pages description: Adds Linked Mentions to pages
tags: template tags: template
hooks.bottom.where: 'false' hooks.bottom.where: 'true'
--- ---
```template {{#let @linkedMentions = {link where toPage = @page.name and page != @page.name order by page}}}
# We need to escape handlebars directives here, since we're embedding {{#if @linkedMentions}}
# this template into a template (INCEPTION)
template: |
{{escape "#if ."}}
# Linked Mentions # Linked Mentions
{{escape "#each ."}} {{#each @linkedMentions}}
* [[{{escape "ref"}}]]: `{{escape "snippet"}}` * [[{{ref}}]]: “{{snippet}}”
{{escape "/each"}} {{/each}}
{{escape "/if"}} {{/if}}
query: | {{/let}}
link where toPage = "{{@page.name}}" and page != "{{@page.name}}"
```

View File

@ -2,8 +2,15 @@
tags: template tags: template
description: | description: |
Shows all tasks that contain a link the current page. For instance a task that references `[[John]]` in its name, would appear on the `John` page. Shows all tasks that contain a link the current page. For instance a task that references `[[John]]` in its name, would appear on the `John` page.
hooks.top:
where: 'true'
order: 1
--- ---
{{#let @linkedTasks = {task where not done and contains(name, "[[" + @page.name + "]]")}}}
```query {{#if @linkedTasks}}
task where name =~ /\[\[{{escapeRegexp @page.name}}\]\]/ where done = false render [[Library/Core/Query/Task]] # Linked Tasks
``` {{#each @linkedTasks}}
{{template([[Library/Core/Query/Task]], .)}}
{{/each}}
{{/if}}
{{/let}}

View File

@ -2,7 +2,7 @@
description: Adds a Table of Contents to pages description: Adds a Table of Contents to pages
tags: template tags: template
hooks.top: hooks.top:
where: 'false' where: 'not pageDecoration.disableTOC'
# Show all the way at the top # Show all the way at the top
order: 0 order: 0
--- ---

View File

@ -5,5 +5,5 @@ usage: Pass in the tag to filter on as the `value` of this template
--- ---
```query ```query
task where tags = "{{.}}" and done = false render [[Library/Core/Query/Task]] task where tags = "{{.}}" and not done render [[Library/Core/Query/Task]]
``` ```

View File

@ -1,5 +1,9 @@
```yaml ```yaml
indexPage: index indexPage: index
hideSyncButton: true
libraries:
# The "Core" library is recommended for all users
- import: "[[!silverbullet.md/Library/Core/*]]"
git: git:
autoCommitMinutes: 5 autoCommitMinutes: 5
autoSync: true # or false autoSync: true # or false