silverbullet/plugs/editor/editor.plug.yaml

439 lines
9.3 KiB
YAML

name: editor
requiredPermissions:
- fetch
config:
schema.config.properties:
shortcuts:
type: array
items:
type: object
properties:
command:
type: string
key:
type: string
nullable: true
mac:
type: string
nullable: true
slashCommand:
type: string
nullable: true
priority:
type: number
nullable: true
required:
- command
nullable: true
useSmartQuotes:
type: boolean
nullable: true
pwaOpenLastPage:
type: boolean
nullable: true
hideEditButton:
type: boolean
nullable: true
hideSyncButton:
type: boolean
nullable: true
actionButtons:
type: array
items:
type: object
properties:
icon:
type: string
description:
type: string
nullable: true
command:
type: string
args:
type: array
items:
type: object
nullable: true
mobile:
type: boolean
nullable: true
required:
- icon
- command
defaultLinkStyle:
type: string
nullable: true
plugs:
type: array
items:
type: string
functions:
setEditorMode:
path: "./editor.ts:setEditorMode"
events:
- editor:init
toggleDarkMode:
path: "./editor.ts:toggleDarkMode"
command:
name: "Editor: Toggle Dark Mode"
newWindow:
path: editor.ts:newWindowCommand
command:
name: "Editor: New Window"
key: "Ctrl-n"
mac: "Cmd-n"
openCommandPalette:
path: editor.ts:openCommandPalette
command:
name: "Open Command Palette"
key: "Ctrl-/"
mac: "Cmd-/"
openPageNavigator:
path: editor.ts:openPageNavigator
command:
name: "Navigate: Page Picker"
key: "Ctrl-k"
mac: "Cmd-k"
openMetaNavigator:
path: editor.ts:openMetaNavigator
command:
name: "Navigate: Meta Picker"
key: "Ctrl-Shift-k"
mac: "Cmd-Shift-k"
openAllNavigator:
path: editor.ts:openAllNavigator
command:
name: "Navigate: All Pages Picker"
# Page operations
deletePage:
path: "./page.ts:deletePage"
command:
name: "Page: Delete"
requireMode: rw
copyPage:
path: "./page.ts:copyPage"
command:
name: "Page: Copy"
requireMode: rw
# Completion
pageComplete:
path: "./complete.ts:pageComplete"
events:
- editor:complete
commandComplete:
path: "./command.ts:commandComplete"
events:
- editor:complete
reloadSystem:
path: editor.ts:reloadSystem
command:
name: "System: Reload"
key: Ctrl-Alt-r
# Navigation
linkNavigate:
path: "./navigate.ts:linkNavigate"
command:
name: "Navigate: To This Page"
key: Ctrl-Enter
mac: Cmd-Enter
clickNavigate:
path: "./navigate.ts:clickNavigate"
events:
- page:click
navigateHome:
path: "./navigate.ts:navigateCommand"
command:
name: "Navigate: Home"
key: "Alt-h"
page: ""
navigateToSettings:
path: "./navigate.ts:navigateCommand"
command:
name: "Navigate: Open SETTINGS"
key: "Ctrl-,"
mac: "Cmd-,"
page: "SETTINGS"
moveToPos:
path: "./editor.ts:moveToPosCommand"
command:
name: "Navigate: To Position"
moveToLine:
path: "./editor.ts:moveToLineCommand"
command:
name: "Navigate: To Line"
navigateToPage:
path: "./navigate.ts:navigateToPage"
command:
name: "Navigate: To Page"
hide: true
navigateToURL:
path: "./navigate.ts:navigateToURL"
command:
name: "Navigate: To URL"
hide: true
navigateBack:
path: "./navigate.ts:navigateBack"
command:
name: "Navigate: Back in History"
navigateForward:
path: "./navigate.ts:navigateForward"
command:
name: "Navigate: Forward in History"
# Text editing commands
quoteSelectionCommand:
path: ./text.ts:quoteSelection
command:
name: "Text: Quote Selection"
key: "Ctrl-Shift-."
mac: "Cmd-Shift-."
requireMode: rw
listifySelection:
path: ./text.ts:listifySelection
command:
name: "Text: Listify Selection"
key: "Ctrl-Shift-8"
mac: "Cmd-Shift-8"
requireMode: rw
numberListifySelection:
path: ./text.ts:numberListifySelection
command:
name: "Text: Number Listify Selection"
requireMode: rw
linkSelection:
path: ./text.ts:linkSelection
command:
name: "Text: Link Selection"
requireMode: rw
bold:
path: ./text.ts:wrapSelection
command:
name: "Text: Bold"
key: "Ctrl-b"
mac: "Cmd-b"
wrapper: "**"
requireMode: rw
italic:
path: ./text.ts:wrapSelection
command:
name: "Text: Italic"
key: "Ctrl-i"
mac: "Cmd-i"
wrapper: "_"
requireMode: rw
strikethrough:
path: ./text.ts:wrapSelection
command:
name: "Text: Strikethrough"
key: "Ctrl-Shift-s"
wrapper: "~~"
requireMode: rw
marker:
path: ./text.ts:wrapSelection
command:
name: "Text: Marker"
key: "Alt-m"
wrapper: "=="
requireMode: rw
centerCursor:
path: "./editor.ts:centerCursorCommand"
command:
name: "Navigate: Center Cursor"
key: "Ctrl-Alt-l"
requireMode: rw
deleteLine:
path: "./editor.ts:deleteLineCommand"
command:
name: "Delete Line"
key: "Ctrl-d"
requireMode: rw
# Debug commands
parseCommand:
path: ./debug.ts:parsePageCommand
command:
name: "Debug: Parse Document"
# Link unfurl infrastructure
unfurlLink:
path: ./link.ts:unfurlCommand
command:
name: "Link: Unfurl"
key: "Ctrl-Shift-u"
mac: "Cmd-Shift-u"
requireMode: rw
# Title-based link unfurl
titleUnfurlOptions:
path: ./link.ts:titleUnfurlOptions
events:
- unfurl:options
titleUnfurl:
path: ./link.ts:titleUnfurl
events:
- unfurl:title-unfurl
# Title-based link unfurl
youtubeUnfurlOptions:
path: ./link.ts:youtubeUnfurlOptions
events:
- unfurl:options
youtubeUnfurl:
path: ./link.ts:youtubeUnfurl
events:
- unfurl:youtube-unfurl
embedWidget:
path: ./embed.ts:embedWidget
codeWidget: embed
# Vim
toggleVimMode:
path: "./vim.ts:toggleVimMode"
command:
name: "Editor: Toggle Vim Mode"
loadVimRc:
path: "./vim.ts:loadVimRc"
command:
name: "Editor: Vim: Load VIMRC"
events:
- editor:modeswitch
# Random stuff
statsCommand:
path: ./stats.ts:statsCommand
command:
name: "Stats: Show"
reloadUICommand:
path: ./debug.ts:reloadUICommand
command:
name: "Debug: Reload UI"
resetClientCommand:
path: ./debug.ts:resetClientCommand
command:
name: "Debug: Reset Client"
versionCommand:
path: ./help.ts:versionCommand
command:
name: "Help: Version"
gettingStartedCommand:
path: ./help.ts:gettingStartedCommand
command:
name: "Help: Getting Started"
accountLogoutCommand:
path: clean.ts:cleanCommand
command:
name: "Clear Local Storage & Logout"
uploadFileCommand:
path: ./upload.ts:uploadFile
command:
name: "Upload: File"
requireMode: rw
# Outline commands
outlineMoveUp:
path: ./outline.ts:moveItemUp
command:
name: "Outline: Move Up"
key: "Alt-ArrowUp"
requireMode: rw
outlineMoveDown:
path: ./outline.ts:moveItemDown
command:
name: "Outline: Move Down"
key: "Alt-ArrowDown"
requireMode: rw
outlineIndent:
path: ./outline.ts:indentItem
command:
name: "Outline: Move Right"
key: "Alt->"
requireMode: rw
outlineOutdent:
path: ./outline.ts:outdentItem
command:
name: "Outline: Move Left"
key: "Alt-<"
requireMode: rw
# Outline folding commands
foldCommand:
path: ./outline.ts:foldCommand
command:
name: "Outline: Fold"
key: "Ctrl-Alt-["
unfoldCommand:
path: ./outline.ts:unfoldCommand
command:
name: "Outline: Unfold"
key: "Ctrl-Alt-]"
toggleFoldCommand:
path: ./outline.ts:toggleFoldCommand
command:
name: "Outline: Toggle Fold"
key: "Alt-Shift-f"
foldAllCommand:
path: ./outline.ts:foldAllCommand
command:
name: "Outline: Fold All"
key: "Ctrl-Alt-Shift-["
unfoldAllCommand:
path: ./outline.ts:unfoldAllCommand
command:
name: "Outline: Unfold All"
key: "Ctrl-Alt-Shift-]"
findInPageCommand:
path: editor.ts:findInPageCommand
command:
name: "Editor: Find in Page"
key: "Ctrl-f"
mac: "Cmd-f"
# Outline helper functions
determineItemBounds:
path: ./outline.ts:determineItemBounds
ensureNewLine:
path: ./outline.ts:ensureNewLine
# Undo/redo
undoCommand:
path: ./editor.ts:undoCommand
command:
name: "Editor: Undo"
key: "Ctrl-z"
mac: "Cmd-z"
requireMode: rw
redoCommand:
path: ./editor.ts:redoCommand
command:
name: "Editor: Redo"
key: "Ctrl-y"
mac: "Cmd-Shift-z"
requireMode: rw
# Demo
customFlashMessage:
path: editor.ts:customFlashMessage
command:
name: "Flash: Custom Message"
hide: true
contexts:
- internal