Skip to content

Repository files navigation

Perhaps

Roll random tables written in plain text in your notes. Perchance-style syntax, interactive rerolls, works offline and on mobile.

Write a table in a fenced code block:

```perhaps
title
  Tavern Trouble

output
  [patron] {argues with|challenges|buys a round for} [patron] over {2-12} silver

patron
  a nervous scribe
  an off-duty guard ^2
  a {cheerful|sullen} dwarf prospector
```

In reading view the block becomes a live roller. Click any underlined part of a result to reroll just that part.

Features

  • Roll a table: fuzzy picker over every table in your vault, result in a modal with in-place rerolls.
  • Roll a table into the note: inserts a result at the cursor, for session logs.
  • Live rollers for ```perhaps and ```perchance blocks in reading view, with reroll and copy.
  • Tables reference each other across notes by title; the vault index stays current as files change.

Syntax

A documented subset of Perchance list syntax plus dice notation: sections, [refs], weights ^2, choices {a|b}, ranges {2-12}, dice 2d6+1, selectUnique/selectMany. The spec lives at script-wizards/perhaps. Try it in the browser at perhaps.sh.

Development

Plugin source lives here (src/main.ts). The table engine is @scriptwizards/perhaps-engine from the perhaps monorepo, pulled in as a git dependency and bundled from source.

just install
just build
just vault-install path/to/vault

Engine and spec issues go to the monorepo; plugin issues go here.

Manual install

Copy main.js, manifest.json, and styles.css from the latest release into <vault>/.obsidian/plugins/perhaps/, then enable Perhaps under Settings, Community plugins.

About

Obsidian plugin: roll random tables written in plain text, Perchance-style. Source here; engine in script-wizards/perhaps.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages