Add ability to run shell commands on blocks

Add ability to run blocks/pages through external shell commands, replacing the current block/page.

Use cases

  • Copy text from wikipedia and run through pandoc to convert to markdown
  • Call external scripts to generate blocks

Example 1: Run the clipboard through pandoc, convert to markdown, and replace the block with stdout from the process.

/shell pandoc -f mediawiki -t markdown %c

Example 2: Get a webpage.

/shell curl

Example 3: Filter a block. All the lines below a /shell command will be piped into the command and replaced by its output.

/shell sed "s/red/blue/"
This is a red block.
This block will be piped into sed and red will be replaced by blue