Project Home Page

Web-based PKM system with Markdown support and interoperability with Obsidian.

Sync Strategy with Obsidian

I use Syncthing to copy notes between different machines. The silverbullet server. Files that we want to avoid copying onto the server can be blacklisted via .stignore like so:

.git

// most important one. this keeps track of your open panes and files in the app
.obsidian/workspace
.obsidian/workspace.json
.silverbullet.db
.silverbullet.db-wal

// Ignore the files versioned by Syncthing
.stversions

Git Sync

Additionally, I like to use silverbullet-git to sync my notes with Forgejo in order to facilitate My Publication Workflow.

Silverbullet Config

For Automatically Selecting Template

Select a page template based on the path to the note. Code lifted from this forum post:

-- Create pages from template automatically based on path
event.listen {
  name = "editor:pageCreating",
  run = function(e)
    -- Daily Note journal template
    if e.data.name:startsWith("Journal/Day/") then
      return {
        space.readPage("Library/Journal/New Page/Daily Note"),
        perm = "rw"
      }
    -- Weekly Note journal template
    elseif e.data.name:startsWith("Journal/Week/") then
      return {
        --space.readPage("Library/Templates/Weekly Note"),
        perm = "rw"
      }
     -- Meeting template
    elseif e.data.name:startsWith("Meeting/") then
      return {
        --space.readPage("Library/Templates/Meeting"),
        perm = "rw"
      }
     -- Person template
    elseif e.data.name:startsWith("Person/") then
      return {
        --space.readPage("Library/Templates/Person"),
        perm = "rw"
      }   
    -- Organization template
    elseif e.data.name:startsWith("Organization/") then
      return {
        --space.readPage("Library/Templates/Organization"),
        perm = "rw"
      }
    else
      return
    end
  end
}