Docs overhaul

pull/483/head
Zef Hemel 2023-07-25 17:33:24 +02:00
parent 6510f06e0e
commit b501b51a56
10 changed files with 110 additions and 60 deletions

42
website/Attributes.md Normal file
View File

@ -0,0 +1,42 @@
Attributes can contribute additional [[Metadata]] to various entities:
* Pages
* Items
* Tasks
## Syntax
The syntax for attributes in inspired by [Obsidians Dataview](https://blacksmithgu.github.io/obsidian-dataview/annotation/add-metadata/) plugin, as well as [LogSeq](https://logseq.com/)s:
```
[attributeName:: value]
```
Attribute names need to be alphanumeric. Values are interpreted as text by default, unless they take the shape of a number, in which case theyre parsed as a number.
Multiple attributes can be attached to a single entity, e.g. like so:
* Some item [attribute1:: sup][attribute2:: 22]
And queried like so:
<!-- #query item where page = "Attributes" and name =~ /Some item/ -->
|name |attribute1|attribute2|page |pos|
|---------|---|--|----------|---|
|Some item|sup|22|Attributes|569|
<!-- /query -->
## Scope
Depending on where these attributes appear, they attach to different things. For instance here:
[pageAttribute:: hello]
The attribute attaches to a page, whereas
* Item [itemAttribute:: hello]
it attaches to an item, and finally:
* [ ] Task [taskAttribute:: hello]
Here it attaches to a task.

View File

@ -6,11 +6,13 @@ release.
## Next
* [Mobile view improvements](https://github.com/silverbulletmd/silverbullet/pull/452) for tables and directives (vertical spacing) by [vuau](https://github.com/vuau)
* Internal work on [color theming](https://github.com/silverbulletmd/silverbullet/pull/455) by [TheLD6978](https://github.com/TheLD6978)
* **Bug fix**: Renaming of pages now works again on iOS
* Re-implemented fuzzy search in the page picker, command palette etc. with [Fuse.js](https://www.fusejs.io/) — lets see if people like this better.
* Backlinks (as queried via the `link` data source) now contains richer data, namely `inDirective` (if the link appears in the context of a directive) and `alias` (if the backlink has an alias name). This also fixes not updating page references inside directives. This introduced a backwards incompatible data. To update your indexes, please run {[Space: Reindex]} on your clients (once).
* Initial work on [[Attributes]] (inline [[Metadata]]) such as this [importance:: high]
* Added {[Debug: Reset Client]} command that flushes the local databases and caches (and service worker) for debugging purposes.
* Added {[Editor: Center Cursor]} command.
* New template helper `replaceRegexp`, see [[🔌 Core/Templates@vars]]
* **Bug fix**: Renaming of pages now works again on iOS
* Big internal code refactor
---

View File

@ -1,5 +1,7 @@
Frontmatter is a common format to attach additional metadata (data about data) to markdown documents.
In SilverBullet there are multiple ways to attach [[Metadata]] to a page, frontmatter is one of them.
You create it by starting your markdown document with `---` followed by [[YAML]] encoded attributes and then ending with `---` again. Followed by the regular body of your document.
Here is an example:

View File

@ -134,7 +134,7 @@ You will need three things:
* A debit/credit card 💳.
* A domain name (you can buy it on [Njalla](https://njal.la/) 😉, your real name will not be shown if someone uses whois tools).
We assume you've already [signed up to Cloudflare](https://www.cloudflare.com/), if not you can go and do it now, it's free but you'll need to add a real debit/credit card to have access to the tunnels and zero access. If you don't want to do that, you can use **alternatives** like [Caddy](https://caddyserver.com/docs/quick-starts/reverse-proxy) or [Nginx](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) for reverse proxy and [Authelia](https://www.authelia.com/) or you can use the [BasicAuth build-in](https://silverbullet.md/Authentication) for authentication.
We assume you've already [signed up to Cloudflare](https://www.cloudflare.com/), if not you can go and do it now, it's free but you'll need to add a real debit/credit card to have access to the tunnels and zero access. If you don't want to do that, you can use **alternatives** like [Caddy](https://caddyserver.com/docs/quick-starts/reverse-proxy) or [Nginx](https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/) for reverse proxy and [Authelia](https://www.authelia.com/) or you can use the [basic authentication built-in](https://silverbullet.md/Authentication) for authentication.
## Add your Site/Domain Name to Cloudflare

View File

@ -10,6 +10,7 @@ You have two options to install and run SilverBullet as a server:
In either case, check the notes [[@tls|on using TLS]].
## Installation via Deno
$deno
This consists of two steps (unless Deno is already installed — in which case were down to one):
1. [Install Deno](https://deno.land/manual/getting_started/installation) (if youre using a Raspberry Pi, follow [[Raspberry Pi Installation]]-specific instructions)
@ -46,8 +47,15 @@ silverbullet upgrade
And restart SilverBullet. You should be good to go.
## Installing SilverBullet with Docker
$docker
There is a [docker image on docker hub](https://hub.docker.com/r/zefhemel/silverbullet). The image comes in two flavors:
There is a [docker image on docker hub](https://hub.docker.com/r/zefhemel/silverbullet). To use it, first create a volume to keep your space (markdown) files:
* 64-bit Intel
* 64-bit ARM (e.g. for Raspberry Pis and Macs)
There is no 32-bit version of Deno, and therefore we cannot offer a 32-bit version of SilverBullet either.
To use the docker container, first create a volume to keep your space (markdown) files:
```shell
docker volume create myspace

22
website/Manual.md Normal file
View File

@ -0,0 +1,22 @@
A full manual is still missing, but this is an attempt to give pointers on topics you may be interested in.
## Keeping up-to-date
* [[CHANGELOG]]: whats new in SilverBullet
## Installation and deployment
* [[Install]]
* [[Deployments]]: various deployment options
* [[Install/Deno Deploy|Deploying on Deno Deploy with S3]] (experimental)
* [[Authelia]]: configuring SilverBullet with [Authelia](https://www.authelia.com/) authentication.
* [[Guide/Deployment/Cloudflare and Portainer]]: configuring SilverBullet with a Cloudflare tunnel, portainer and optionall Cloudflare zero trust authentication.
## Usage
* [[Markdown]]
* [[Markdown/Syntax Highlighting]]
* [[Markdown/Code Widgets]]
* [[Metadata]]
* [[Frontmatter]]
* [[Attributes]]
* [[🔌 Directive|Directives]]
* [[🔌 Directive/Query]]
* [[SETTINGS]]: A few settings you can tweak

29
website/Metadata.md Normal file
View File

@ -0,0 +1,29 @@
Metadata is data about data. There are a few entities you can add meta data to:
* **page**: Pages have a default set of meta data built-in, but this can be expanded through mechanisms described below. The available metadata for a page is:
* `name`: The full name of the page
* `lastModified`: a timestamp (in ms since 1970-01-01) of when the page was last modified
* `perm`: either `ro` (read-only) or `rw`: this determines whether the editor opens in read-write or read-only mode.
* `contentType`: for pages always `text/markdown`
* `size`: the size of the file in bytes
* `tags`: A list of tags used in the top-level of the page (if any)
* **item**: Every list item appearing in a numbered, or unordered list is indexed and contains the following default set of metadata:
* `name`: The full content of the item minus attributes (see later)
* `page`: The page the item appears in
* `pos`: The offset (number of characters from the beginning of the page) where the item starts
* `tags`: A list of tags used in the item (if any)
* **task**: Every task defined in the space using the `* [ ] Task name` syntax
* `name`: The full task name/description
* `done`: Whether the task has been marked as done
* `page`: The page where the task appears
* `pos`: The offset (number of characters from the beginning of the page) where the item starts
* `tags`: A list of tags used in the task (if any)
* **tag**: Every tag used in the space
* `name`: The name of the tag (without `#`)
* `freq`: The frequency of the use of the tag
In addition, this metadata can be augmented in a few additional ways:
* [[🔌 Core/Tags]]: adds to the `tags` attribute
* [[Frontmatter]]: at the top of pages, a [[YAML]] encoded block can be used to define additional attributes to a page
* [[Attributes]]

View File

@ -1,45 +0,0 @@
There are currently no official 64-bit ARM Linux builds available of [Deno](https://deno.land/). However, there are [unofficial ones](https://github.com/LukeChannings/deno-arm64). Heres how to set that up.
> **Note** Compatibility note
> This only works on **64-bit** versions of Linux. 32-bit is currently unsupported by Deno.
For the record, this was tested on a 64-bit Ubuntu server install on a Raspberry Pi 4. But it should work on any 64-bit Linux.
## Installing Deno
```shell
# Make sure you have unzip installed
$ apt install unzip
# Download a recent Deno build
$ wget https://github.com/LukeChannings/deno-arm64/releases/download/v1.29.1/deno-linux-arm64.zip
# Deno will use this directory for other binaries, so let's put Deno there too
$ mkdir -p ~/.deno/bin
$ cd ~/.deno/bin
$ unzip ~/deno-linux-arm64.zip
```
Thats it. You should now be able to run `~/.deno/bin/deno` just fine.
Add `~/.deno/bin` to PATH, e.g. in `~/.bashrc` add:
```
export PATH=$PATH:~/.deno/bin
```
Then to verify:
```shell
$ source ~/.bashrc
$ deno -V
```
Then, just follow the standard [[SilverBullet]] installation instructions:
```shell
$ deno install -f --name silverbullet -A --unstable https://get.silverbullet.md
$ mkdir ~/Notes
$ silverbullet ~/Notes --hostname 0.0.0.0
```
And access it on `http://ip-of-pi:3000`
Have fun!

View File

@ -28,8 +28,4 @@ spaceIgnore: |
dist
largefolder
*.mp4
# Federation
#federate:
#- someserver
```

View File

@ -2,7 +2,7 @@ SilverBullet is an extensible, [open source](https://github.com/silverbulletmd/s
Youve been told there is _no such thing_ as a [silver bullet](https://en.wikipedia.org/wiki/Silver_bullet). You were told wrong.
Before we get to the nitty gritty, some _quick links_ for the impatient reader: [[Install]], [[CHANGELOG]], [Roadmap](https://github.com/orgs/silverbulletmd/projects/2/views/1), [Issues](https://github.com/silverbulletmd/silverbullet/issues), [Discussions](https://github.com/silverbulletmd/silverbullet/discussions), [Mastodon](https://hachyderm.io/@silverbullet), [Discord](https://discord.gg/EvXbFucTxn), [Docker Hub](https://hub.docker.com/r/zefhemel/silverbullet).
Before we get to the nitty gritty, some _quick links_ for the impatient reader: [[Install]], [[Manual]], [[CHANGELOG]], [Roadmap](https://github.com/orgs/silverbulletmd/projects/2/views/1), [Issues](https://github.com/silverbulletmd/silverbullet/issues), [Discussions](https://github.com/silverbulletmd/silverbullet/discussions), [Mastodon](https://hachyderm.io/@silverbullet), [Discord](https://discord.gg/EvXbFucTxn), [Docker Hub](https://hub.docker.com/r/zefhemel/silverbullet).
Now that we got that out of the way lets have a look at some of SilverBullets features.
@ -75,13 +75,7 @@ rating: 5
Has your mind been sufficiently blown to commit to an install? Took you long enough, alright then. Please proceed to the [[Install]] and enjoy!
## Where to go from here
Click on the links below to explore various aspects of SilverBullet more in-depth:
* [[CHANGELOG]]: Whats new?
* [[🔌 Plugs]]: extensions available for, and as part of SilverBullet
* [[SETTINGS]]: What settings exist and how to change them
* [[Special Pages]]: a few page names in Silver Bullet have special meaning
* [[🔨 Development]]: how to start hacking on SilverBullet itself
Have a lock at our work-in-progress [[Manual]].
## 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).