Website copy

pull/138/head
Zef Hemel 2022-11-27 09:12:24 +01:00
parent a95ee41ddb
commit 3d96716265
12 changed files with 68 additions and 85 deletions

View File

@ -1,27 +1,24 @@
Silver Bullet is extensible, [open source](https://github.com/silverbulletmd/silverbullet), **personal
knowledge management** software. Indeed, thats fancy language for “a note taking app with links (and some other stuff).”
knowledge management** software. Indeed, at the most basic level that translates to “a note-taking app with links.” However, Silver Bullet goes a bit beyond just that.
Silver Bullet provides:
Lets have a look at some of its features.
* An enjoyable markdown writing experience using [[Live Preview|live preview]] that **reduces visual noise**, but still gives direct access to the underlying [[Markdown]] syntax.
* The ability to cross-link pages using the `[[page link]]` syntax, keeping these links automatically up-to-date as pages are renamed.
* Primarily keyboard-based operation:
## Features
* Runs in any modern browser (including mobile browsers) and is installable as a PWA.
* Provides a distraction-free, enjoyable markdown writing experience using [[Live Preview|live preview]] that **reduces visual noise**, but still gives direct access to the underlying [[Markdown]] syntax.
* Supports wiki-like page linking using the `[[page link]]` syntax, keeping links up-to-date as pages are renamed.
* Optimized for keyboard-based operation:
* Quickly navigate between pages using the page switcher (triggered with `Cmd-k` on Mac or `Ctrl-k` on Linux and Windows).
* Run commands via their keyboard shortcuts, or the command palette (triggered with `Cmd-/` or `Ctrl-/` on Linux and Windows).
* Use [[🔌 Core/Slash Commands|slash commands]] to perform common text editing operations.
* The ability to annotate pages with metadata (using [[Frontmatter]]), which can be [[🔌 Directive/Query|queried]] to build partially dynamic pages.
* A robust extension mechanism using [[🔌 Plugs]]
* Supports annotating pages with metadata (using [[Frontmatter]]).
* Provides a platform for [End-user Programming](https://www.inkandswitch.com/end-user-programming/) through its support of [[🔌 Directive|directives]] (such as [[🔌 Directive/Query|#query]]), which make parts of pages _dynamic_.
* Robust extension mechanism using [[🔌 Plugs]]
* You own your data. All content is stored as plain files in a folder on disk. Nothing fancy.
* Silver Bullet is [open source, MIT licensed](https://github.com/silverbulletmd/silverbullet) software.
Here is a screenshot of Silver Bullet in PWA mode (Silver Bullet can be installed as a PWA on Chromium-based browsers):
![Silver Bullet PWA Screenshot](silverbullet-pwa.png)
It also works in mobile browsers:
![Silver Bullet on mobile](silverbullet-ios.png)
But heres the kicker:
## Try it
Heres the kicker:
==You are looking at a (more or less) operational copy of Silver Bullet **right now**==.
@ -29,9 +26,8 @@ Thats right, this very website is powered by a quasi-read-only version of Sil
On this site, everything is editable as in a regular copy of Silver Bullet, just none of it persists (the back-end is read-only).
So, dont just sit there...
So, dont just sit there, try this!
## Try it out!
* Click on the page picker (folder tree) icon at the top right, or hit `Cmd-k` (Mac) or `Ctrl-k` (Linux and Windows) to open the **page switcher**. Type the name of a nonexistent page to create it (although it wont save in this environment).
* Click on the run button (top right) or hit `Cmd-/` (Mac) or `Ctrl-/` (Linux and Windows) to open the **command palette** (note that not all commands will work in this mode).
* Select some text and hit `Alt-m` to ==highlight== it, or `Cmd-b` (Mac) or `Ctrl-b` to make it **bold**.
@ -67,7 +63,7 @@ name: Silver Bullet
rating: 5
```
There are a few [[🤯 Features]] you dont get to fully experience in this environment, because they rely on a working back-end, such as:
There are a few Features you dont get to fully experience in this environment, because they rely on a working back-end, such as:
* Using Silver Bullet [[🔌 Directive|directives]] where part of pages are automatically rendered and kept up to date by querying various data sources (such as pages and their metadata, back links, tasks embedded in pages, and list items) with an SQL like syntax, rendered with handlebars templates.
* Intelligent **page renaming**, automatically updating any pages that link to it.
@ -83,11 +79,10 @@ Some things are just [better explained in a video](https://youtu.be/VemS-cqAD5k)
Click on the links below to explore various aspects of Silver Bullet more
in-depth:
* [[CHANGELOG]] — whats new?
* [[🤯 Features]]
* [[💡 Inspiration]]
* [[🔌 Plugs]]
* [[🔨 Development]]
* [[CHANGELOG|Whats new?]]
* [[💡 Inspiration]]: some of the projects that inspired Silver Bullet
* [[🔌 Plugs]]: extensions available in Silver Bullet
* [[🔨 Development]]: how to start hacking on Silver Bullet itself
## Installing Silver Bullet
This consists of two steps (unless Deno is already installed:
@ -117,13 +112,13 @@ Once downloaded and booted, Silver Bullet will print out a URL to open SB in you
## Upgrading Silver Bullet
Simply run:
silverbullet upgrade
```shell
silverbullet upgrade
```
And restart Silver Bullet. You should be good to go.
## Troubleshooting
If you upgraded to the new Deno-based Silver Bullet from an old version, you may have to use the `silverbullet fix <pages-path>` command to flush out your old database and plugs. Plugs will likely need to be updated.
## Support
If you (hypothetically) find bugs or have feature requests, post them in
[our issue tracker](https://github.com/silverbulletmd/silverbullet/issues). Want to contribute? [Check out the code](https://github.com/silverbulletmd/silverbullet).
[our issue tracker](https://github.com/silverbulletmd/silverbullet/issues). Want to contribute? [Check out the code](https://github.com/silverbulletmd/silverbullet). Want to chat with us? [We have a Mattermost instance](https://silverbullet.cloud.mattermost.com/), join us!

View File

@ -1 +1 @@
* [[{{name}}]] by **{{author}}** ([repo]({{repo}}))
* [[{{name}}]] {{#if author}}by **{{author}}** ([repo]({{repo}})){{/if}}

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
share-support: true
---

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
---
The core plug implements foundational functionality for Silver Bullet. It covers the following areas:

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
---
The directive plug is a built-in plug implementing various so-called “directive” that all take the form of `<!-- #directiveName ... -->` and close with `<!-- /directiveName -->`. Currently the following directives are supported:

View File

@ -151,11 +151,11 @@ For the sake of simplicity, we will use the `page` data source and limit the res
**Result:** Look at the data. This is more than we need. The query even gives us template pages. Let's try to limit it in the next step.
<!-- #query page limit 3 -->
|name |lastModified |contentType |size|perm|
|-------------|-------------|-------------|----|--|
|SETTINGS |1667053645895|text/markdown|169 |rw|
|Silver Bullet|1669379746803|text/markdown|6823|rw|
|YAML |1669378903144|text/markdown|199 |rw|
|name |lastModified |contentType |size|perm|type|uri |repo |author |
|--|--|--|--|--|--|--|--|--|
|Markdown |1669534332564|text/markdown|1022|rw| | | | |
|🔌 Graph View|1669388320673|text/markdown|1042|rw|plug|github:bbroeksema/silverbullet-graphview/graphview.plug.json|https://github.com/bbroeksema/silverbullet-graphview|Bertjan Broeksema|
|SETTINGS |1667053645895|text/markdown|169 |rw| | | | |
<!-- /query -->
@ -166,13 +166,13 @@ For the sake of simplicity, we will use the `page` data source and limit the res
**Result:** Okay, this is what we wanted but there is also information such as `perm`, `type` and `lastModified` that we don't need.
<!-- #query page where type = "plug" order by lastModified desc limit 5 -->
|name |lastModified |contentType |size|perm|type|repo |author |uri |
|--|--|--|--|--|--|--|--|--|
|🔌 Directive |1669382855582|text/markdown|2572|rw|plug|https://github.com/silverbulletmd/silverbullet |Silver Bullet Authors| |
|🔌 Github |1669302595740|text/markdown|2202|rw|plug|https://github.com/silverbulletmd/silverbullet-github|Zef Hemel |github:silverbulletmd/silverbullet-github/github.plug.json |
|🔌 Core |1668787355449|text/markdown|3418|rw|plug|https://github.com/silverbulletmd/silverbullet |Silver Bullet Authors|builtin:core |
|🔌 Ghost |1667053645897|text/markdown|1071|rw|plug|https://github.com/silverbulletmd/silverbullet-ghost |Zef Hemel |github:silverbulletmd/silverbullet-ghost/ghost.plug.json |
|🔌 Serendipity|1667053645897|text/markdown|1179|rw|plug|https://github.com/m1lt0n/silverbullet-serendipity |Pantelis Vratsalis |github:m1lt0n/silverbullet-serendipity/serendipity.plug.json|
|name |lastModified |contentType |size|perm|type|repo |author |share-support|uri |
|--|--|--|--|--|--|--|--|--|--|
|🔌 Collab |1669389685597|text/markdown|2199|rw|plug|https://github.com/silverbulletmd/silverbullet |Silver Bullet Authors|true| |
|🔌 Share |1669389175835|text/markdown|702 |rw|plug|https://github.com/silverbulletmd/silverbullet |Silver Bullet Authors| | |
|🔌 Graph View|1669388320673|text/markdown|1042|rw|plug|https://github.com/bbroeksema/silverbullet-graphview |Bertjan Broeksema | |github:bbroeksema/silverbullet-graphview/graphview.plug.json|
|🔌 Github |1669387590823|text/markdown|2222|rw|plug|https://github.com/silverbulletmd/silverbullet-github|Zef Hemel |true|github:silverbulletmd/silverbullet-github/github.plug.json |
|🔌 Markdown |1669387575305|text/markdown|298 |rw|plug|https://github.com/silverbulletmd/silverbullet |Silver Bullet Authors|true| |
<!-- /query -->
#### 6.3 Query to select only certain fields
@ -184,13 +184,13 @@ and `repo` columns and then sort by last modified time.
from a visual perspective.
<!-- #query page select name author repo uri where type = "plug" order by lastModified desc limit 5 -->
|name |author |repo |ri|
|name |author |repo |ri|
|--|--|--|--|
|🔌 Directive |Silver Bullet Authors|https://github.com/silverbulletmd/silverbullet ||
|🔌 Github |Zef Hemel |https://github.com/silverbulletmd/silverbullet-github||
|🔌 Core |Silver Bullet Authors|https://github.com/silverbulletmd/silverbullet ||
|🔌 Ghost |Zef Hemel |https://github.com/silverbulletmd/silverbullet-ghost ||
|🔌 Serendipity|Pantelis Vratsalis |https://github.com/m1lt0n/silverbullet-serendipity ||
|🔌 Collab |Silver Bullet Authors|https://github.com/silverbulletmd/silverbullet ||
|🔌 Share |Silver Bullet Authors|https://github.com/silverbulletmd/silverbullet ||
|🔌 Graph View|Bertjan Broeksema |https://github.com/bbroeksema/silverbullet-graphview ||
|🔌 Github |Zef Hemel |https://github.com/silverbulletmd/silverbullet-github||
|🔌 Markdown |Silver Bullet Authors|https://github.com/silverbulletmd/silverbullet ||
<!-- /query -->
#### 6.4 Display the data in a format defined by a template
@ -200,11 +200,11 @@ from a visual perspective.
**Result:** Here you go. This is the result we would like to achieve 🎉. Did you see how I used `render` and `template/plug` in a query? 🚀
<!-- #query page select name author repo uri where type = "plug" order by lastModified desc limit 5 render [[template/plug]] -->
* [[🔌 Directive]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Collab]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Share]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Graph View]] by **Bertjan Broeksema** ([repo](https://github.com/bbroeksema/silverbullet-graphview))
* [[🔌 Github]] by **Zef Hemel** ([repo](https://github.com/silverbulletmd/silverbullet-github))
* [[🔌 Core]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Ghost]] by **Zef Hemel** ([repo](https://github.com/silverbulletmd/silverbullet-ghost))
* [[🔌 Serendipity]] by **Pantelis Vratsalis** ([repo](https://github.com/m1lt0n/silverbullet-serendipity))
* [[🔌 Markdown]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
<!-- /query -->
PS: You don't need to select only certain fields to use templates. Templates are

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
---
The Emoji plug provides support for auto-completion of the `:emoji:` style syntax.

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
share-support: true
---

View File

@ -1,23 +1,29 @@
Silver Bullet at its core is bare bones in terms of functionality, most of its power it gains from **plugs**.
Plugs are an extension mechanism (implemented using a library called `plugos` that runs plug code on the server in a sandboxed v8 Deno web worker, and in the browser using web workers). Plugs can hook into SB in various ways: plugs can extend the Markdown parser and its syntax, define new commands and keybindings, respond to various events triggered either on the server or client side, as well as run recurring and background tasks. Plugs can even define their own extension
mechanisms through custom events. Each plug runs in its own sandboxed
environment and communicates with SB via _syscalls_ that expose a vast range of functionality. Plugs can be loaded, unloaded, and updated without having to restart SB itself.
Plugs are an extension mechanism (implemented using a library called `plugos` that runs plug code on the server in a sandboxed v8 Deno web worker, and in the browser using web workers). Plugs can hook into SB in various ways:
* Extend the Markdown parser and its syntax
* Define new commands and keybindings
* Respond to various events triggered either on the server or client-side
* Run recurring and background tasks.
* Define their own extension mechanisms through custom events
Each plug runs in its own _sandboxed environment_ and communicates with SB via _syscalls_ that expose a vast range of functionality. Plugs can be loaded, unloaded, and updated without having to restart SB itself.
## Core plugs
These plugs are distributed with Silver Bullet and are automatically enabled:
<!-- #query page where type = "plug" and uri = null order by name render [[template/plug]] -->
* [[🔌 Collab]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Core]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Directive]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Emoji]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Markdown]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Share]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Tasks]] by **Silver Bullet Authors** ([repo](https://github.com/silverbulletmd/silverbullet))
* [[🔌 Collab]]
* [[🔌 Core]]
* [[🔌 Directive]]
* [[🔌 Emoji]]
* [[🔌 Markdown]]
* [[🔌 Share]]
* [[🔌 Tasks]]
<!-- /query -->
## Third-party plugs
These plugs are written either by third parties, or distributed separately from the main SB distribution:
These plugs are written either by third parties or distributed separately from the main SB distribution:
<!-- #query page where type = "plug" and uri != null order by name render [[template/plug]] -->
* [[🔌 Backlinks]] by **Guillermo Vayá** ([repo](https://github.com/Willyfrog/silverbullet-backlinks))

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
---
The Share plug provides infrastructure for sharing pages outside of your space. It standardizes the {[Share: Publish]} (bound to `Cmd-s` or `Ctrl-s`) to publish the current page to all share providers specified under the `$share` key in [[Frontmatter]].

View File

@ -1,7 +1,6 @@
---
type: plug
repo: https://github.com/silverbulletmd/silverbullet
author: Silver Bullet Authors
---
The Tasks plug implements a lot of the task support in Silver Bullet.
@ -27,7 +26,7 @@ This metadata is extracted and available via the `task` query source to [[🔌 D
<!-- #query task where page = "{{page}}"" -->
|name |done |page |pos|tags |deadline |
|---------------------|-----|--------|---|------|----------|
|This is a task |false|🔌 Tasks|245| | |
|This is a tagged task|false|🔌 Tasks|319|my-tag| |
|This is due |false|🔌 Tasks|605| |2022-11-26|
|This is a task |false|🔌 Tasks|215| | |
|This is a tagged task|false|🔌 Tasks|289|my-tag| |
|This is due |false|🔌 Tasks|575| |2022-11-26|
<!-- /query -->

View File

@ -1,11 +0,0 @@
## Core features
- **Free and open source**. Silver Bullet is [MIT licensed](https://github.com/silverbulletmd/silverbullet/blob/main/LICENSE.md).
- **The truth is in the markdown.** Markdown is simply text files, stored on disk. Nothing fancy. No proprietary formats or lock in. While SB uses an (SQLite) database for indexing and caching some data, all of that can be rebuilt from its markdown source at any time. If SB would ever go away, you can still read your pages with any text editor.
- [**Local first**](https://www.inkandswitch.com/local-first/): your content is under your own control.
- **Single, distraction-free mode.** SB doesnt have a separate view and edit mode. It doesnt have a “focus mode.” Youre always in focused edit mode, why wouldnt you?
* **Run anywhere**: run it on your local machine, or install it on a server. You access it via your web browser (desktop or mobile), or install it as a PWA (giving it its own window frame and dock/launcher/dock icon).
- **Keyboard oriented**. You can use SB fully using the keyboard, typin the keys.
- **Extend it your way**. SB is highly extensible with [[🔌 Plugs]], and you can customize it to your liking and your workflows.
## Advanced
* Make part of your page _dynamic_ using [[🔌 Directive]]s such as [[🔌 Directive/Query]]