Markdown as a platform
 
 
 
 
 
 
Go to file
Bruno Heridet 206c3f7603
doc: replace Oak mentions by Hono (#1177)
2024-12-07 15:22:27 +01:00
.github/workflows 0.10.0 2024-11-14 21:27:57 +01:00
.vscode deno fmt 2024-10-11 15:34:27 +02:00
cmd Some enhancement of the lockout mechanism 2024-11-15 16:56:54 +01:00
common markdown_parser: allow comma and semicolon in naked URLs (#1162) 2024-11-21 22:39:27 +01:00
lib Fix tests for windows paths (#1153) 2024-11-13 21:08:24 +01:00
plug-api recognise tel: uri scheme as a non-local path (#1139) 2024-11-02 22:34:26 +01:00
plugs Fix rendering on tag pages (#1151) 2024-11-13 21:14:51 +01:00
scripts WIP lua 2024-09-11 21:19:41 +02:00
server Some enhancement of the lockout mechanism 2024-11-15 16:56:54 +01:00
type Space config for smart quotes (close #1114) (#1121) 2024-10-17 22:34:47 +02:00
web fix case sensitive property (#1167) 2024-11-24 09:21:34 +01:00
website doc: replace Oak mentions by Hono (#1177) 2024-12-07 15:22:27 +01:00
.dockerignore SilverBullet pivot to become an offline-first PWA (#403) 2023-05-23 20:53:53 +02:00
.gitignore Website deployment scripts (WIP) 2024-01-28 10:22:40 +01:00
.gitpod.Dockerfile 0.10.0 2024-11-14 21:27:57 +01:00
.gitpod.yml deno fmt 2024-10-11 15:34:27 +02:00
CHANGELOG.md Work on #10 theming 2022-08-02 14:40:04 +02:00
Dockerfile 0.10.0 2024-11-14 21:27:57 +01:00
LICENSE.md Refactor of asset bundles 2022-10-12 11:47:13 +02:00
README.md doc: replace Oak mentions by Hono (#1177) 2024-12-07 15:22:27 +01:00
build_bundle.ts deno task bundle fixes 2024-10-10 14:04:51 +02:00
build_plugs.ts Fix build on windows (#1138) 2024-11-07 21:24:00 +01:00
build_web.ts Fix build on windows (#1138) 2024-11-07 21:24:00 +01:00
deno.json 0.10.1 2024-11-14 21:28:52 +01:00
docker-entrypoint.sh Upgrade to deno 1.40 2024-01-28 14:13:37 +01:00
install.sh Support arm64 arch for Linux (#906) 2024-06-28 12:22:01 +02:00
netlify.toml Giant code reorganization (#690) 2024-02-08 21:00:45 +01:00
silverbullet.ts Added Grep plug 2024-07-30 14:04:43 +02:00
version.ts 0.10.1 2024-11-14 21:28:52 +01:00

README.md

SilverBullet

SilverBullet is a note-taking application optimized for people with a hacker mindset. We all take notes. Theres a million note taking applications out there. Literally. Wouldnt it be nice to have one where your notes are more than plain text files? Where your notes essentially become a database that you can query; that you can build custom knowledge applications on top of? A hackable notebook, if you will?

This is what SilverBullet aims to be.

Absolutely. You use SilverBullet to quickly jot things down. Its a notes app after all. However, this is just the beginning. Gradually, you start to annotate your notes using Frontmatter. You realize: “Hey, this note represents a person, let me tag it as such.” Before you know it, youre turning your notes into Objects. Then you learn that in SilverBullet you can Live Query these objects. Your queries grow into reusable Templates written using a powerful Template Language. You find more and more uses of these templates, for instance to create new pages, or widgets automatically added to your pages.

And then, before you know it — you realize youre effectively building applications in your notes app. End-User Programming, yall. Its cool.

You may have been told there is no such thing as a silver bullet.

You were told wrong.

Introduction to SilverBullet

Features

SilverBullet...

  • Runs in any modern browser (including on mobile) as a PWA in two Client Modes (online and synced mode), where the synced mode enables 100% offline operation, keeping a copy of content in the browser, syncing back to the server when a network connection is available.
  • Provides an enjoyable markdown writing experience with a clean UI, rendering text using Live Preview, further reducing visual noise while still providing direct access to the underlying markdown syntax.
  • Supports wiki-style page linking using the [[page link]] syntax. Incoming links are indexed and appear as “Linked Mentions” at the bottom of the pages linked to thereby providing bi-directional linking.
  • 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 Slash Commands to perform common text editing operations.
  • Provides a platform for end-user programming through its support for Objects, Live Queries and Live Templates.
  • Robust extension mechanism using plugs.
  • Self-hosted: you own your data. All content is stored as plain files in a folder on disk. Back up, sync, edit, publish, script with any additional tools you like.
  • SilverBullet is open source, MIT licensed software.

Installing SilverBullet

Check out the instructions.

Developing SilverBullet

Open in Gitpod

SilverBullet is written in TypeScript and built on top of the excellent CodeMirror 6 editor component. Additional UI is built using Preact. ESBuild is used to build both the front-end and back-end bundles. The server backend runs as a HTTP server on Deno using and is written using Hono.

To prepare the initial web and plug build run:

deno task build

To symlink silverbullet to your locally checked-out version, run:

deno task install

You can then run the server in “watch mode” (automatically restarting when you change source files) with:

deno task watch-server <PATH-TO-YOUR-SPACE>

After this initial build, it's convenient to run three commands in parallel (in separate terminals):

deno task watch-web
deno task watch-server <PATH-TO-YOUR-SPACE>
deno task watch-plugs

To typecheck the entire codebase (recommended before submitting PR):

deno task check

To run unit tests:

deno task test

Feedback

If you (hypothetically) find bugs or have feature requests, post them in our issue tracker. Would you like to contribute? Check out the code, and the issue tracker as well for ideas on what to work on. Also be sure to check out our Discourse community.