Files
plainleaf/plugs/index/index.plug.yaml
T
Zef HemelandGitHub dc2987a3f9 Sync engine rearchitecture (#1516)
* Don't require auth for .ping
* Finally introducing loggers
* Remove file list caching from disk_space_primitives
I don't think this is required anymore with the sync model
* Simplification of space primitives and more tests
* More reliable online status
* Add .zed settings
* Remove selfUpdate argument from `writeFile` no longer used
- Add `sync` config schema and document sync options
- Move sync config handling to client boot logic
- Move BootConfig type to ui_types.ts
- Remove sync env vars from server
- Update documentation for sync and architecture
* Improve sync logic and proxy routing for full sync state
* Add BoxProxy for late-bound client and improve Lua boot
- Add isMobile syscall for editor
* Add concurrency to sync process and log indexing duration
* Better service worker lifecycle management
2025-09-12 14:43:57 +02:00

530 lines
10 KiB
YAML

name: index
functions:
# Public API
batchSet:
path: api.ts:batchSet
indexObjects:
path: api.ts:indexObjects
syscall: index.indexObjects
query:
path: api.ts:query
syscall: index.query
queryLuaObjects:
path: api.ts:queryLuaObjects
syscall: index.queryLuaObjects
getObjectByRef:
path: api.ts:getObjectByRef
syscall: index.getObjectByRef
extractFrontmatter:
path: api.ts:extractFrontmatter
syscall: index.extractFrontmatter
patchFrontmatter:
path: api.ts:patchFrontmatter
syscall: index.patchFrontmatter
# Index management
clearIndex:
path: api.ts:clearIndex
clearDSIndex:
path: api.ts:clearFileIndex
events:
- file:deleted
reindexSpaceCommand:
path: "./command.ts:reindexCommand"
command:
name: "Space: Reindex"
requireMode: rw
processIndexQueue:
path: ./queue.ts:processIndexQueue
mqSubscriptions:
- queue: indexQueue
batchSize: 3
autoAck: true
reindexSpace:
path: "./queue.ts:reindexSpace"
indexDocument:
path: "./document.ts:indexDocument"
events:
- document:index
indexPage:
path: page.ts:indexPage
events:
- page:index
indexParagraphs:
path: "./paragraph.ts:indexParagraphs"
events:
- page:index
# Backlinks
indexLinks:
path: "./page_links.ts:indexLinks"
events:
- page:index
# Item indexing
indexItem:
path: "./item.ts:indexItems"
events:
- page:index
# Tables
indexTables:
path: "table.ts:indexTables"
events:
- page:index
# Headers
indexHeaders:
path: header.ts:indexHeaders
events:
- page:index
headerComplete:
path: header.ts:headerComplete
events:
- editor:complete
# Data
indexData:
path: data.ts:indexData
events:
- page:index
# Script
indexSpaceScript:
path: script.ts:indexSpaceScript
events:
- page:index
indexSpaceLua:
path: script.ts:indexSpaceLua
events:
- page:index
# Style
indexSpaceStyle:
path: style.ts:indexSpaceStyle
events:
- page:index
# Hashtags
indexTags:
path: tags.ts:indexTags
events:
- page:index
tagComplete:
path: tags.ts:tagComplete
events:
- editor:complete
renamePageCommand:
path: "./refactor.ts:renamePageCommand"
command:
name: "Page: Rename"
mac: Cmd-Alt-r
page: ""
requireMode: rw
requireEditor: page
renamePrefixCommand:
path: "./refactor.ts:renamePrefixCommand"
command:
name: "Page: Batch Rename Prefix"
requireMode: rw
requireEditor: page
renamePageLinkCommand:
path: "./refactor.ts:renamePageLinkCommand"
command:
name: "Page: Rename Linked Page"
mac: Cmd-Ctrl-Alt-r
key: Ctrl-Shift-Alt-r
requireMode: rw
requireEditor: page
renameDocumentCommand:
path: "./refactor.ts:renameDocumentCommand"
command:
name: "Document: Rename Document"
requireMode: rw
requireEditor: notpage
# Refactoring Commands
extractToPageCommand:
path: ./refactor.ts:extractToPageCommand
command:
name: "Page: Extract"
requireMode: rw
requireEditor: page
refreshWidgets:
path: widget.ts:refreshWidgets
lintYAML:
path: lint.ts:lintYAML
events:
- editor:lint
lintLua:
path: lint.ts:lintLua
events:
- editor:lint
config:
# Schema for the built-in tags indexed by this plug
schema.tag:
page:
type: object
additionalProperties: true
properties:
ref:
type: string
readOnly: true
tag:
type: string
readOnly: true
tags:
anyOf:
- type: array
items:
type: string
- type: string
itags:
type: array
readOnly: true
items:
type: string
nullable: true
name:
type: string
readOnly: true
pageDecoration:
type: object
properties:
prefix:
type: string
nullable: true
cssClasses:
type: array
items:
type: string
nullable: true
hide:
type: boolean
nullable: true
renderWidgets:
type: boolean
nullable: true
nullable: true
displayName:
type: string
nullable: true
aliases:
type: array
items:
type: string
nullable: true
created:
type: string
readOnly: true
contentType:
type: string
readOnly: true
size:
type: number
readOnly: true
lastModified:
type: string
readOnly: true
perm:
type: string
readOnly: true
enum:
- ro
- rw
lastOpened:
type: number
readOnly: true
nullable: true
aspiring-page:
type: object
additionalProperties: true
properties:
ref:
type: string
readOnly: true
tag:
type: string
readOnly: true
name:
type: string
readOnly: true
page:
type: string
readOnly: true
pos:
type: number
readOnly: true
document:
type: object
additionalProperties: true
properties:
ref:
type: string
readOnly: true
tag:
type: string
readOnly: true
tags:
type: array
readOnly: true
items:
type: string
nullable: true
itags:
type: array
readOnly: true
items:
type: string
nullable: true
name:
type: string
readOnly: true
created:
readOnly: true
type: string
contentType:
type: string
readOnly: true
size:
type: number
readOnly: true
lastModified:
type: string
readOnly: true
perm:
type: string
readOnly: true
enum:
- ro
- rw
extension:
readOnly: true
type: string
item:
type: object
additionalProperties: true
properties:
ref:
type: string
readOnly: true
tag:
type: string
readOnly: true
tags:
type: array
items:
type: string
nullable: true
itags:
type: array
readOnly: true
items:
type: string
nullable: true
name:
type: string
readOnly: true
page:
type: string
readOnly: true
parent:
type: string
readOnly: true
pos:
type: number
readOnly: true
text:
type: string
readOnly: true
tag:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
readOnly: true
tags:
type: array
readOnly: true
items:
type: string
nullable: true
itags:
type: array
readOnly: true
items:
type: string
nullable: true
name:
type: string
readOnly: true
page:
type: string
readOnly: true
parent:
type: string
readOnly: true
context:
type: string
readOnly: true
link:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
tags:
type: array
items:
type: string
nullable: true
itags:
type: array
items:
type: string
nullable: true
name:
type: string
page:
type: string
toFile:
type: string
nullable: true
toPage:
type: string
nullable: true
snippet:
type: string
pos:
type: number
alias:
type: string
asTemplate:
type: boolean
header:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
tags:
type: array
items:
type: string
nullable: true
itags:
type: array
items:
type: string
nullable: true
name:
type: string
page:
type: string
pos:
type: number
level:
type: string
paragraph:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
tags:
type: array
items:
type: string
nullable: true
itags:
type: array
items:
type: string
nullable: true
text:
type: string
page:
type: string
pos:
type: number
template:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
tags:
anyOf:
- type: array
items:
type: string
- type: string
itags:
type: array
items:
type: string
nullable: true
page:
type: string
pageName:
type: string
description:
type: string
pos:
type: number
hooks:
type: object
frontmatter:
anyOf:
- type: object
- type: string
table:
type: object
properties:
ref:
type: string
readOnly: true
tag:
type: string
tags:
type: array
items:
type: string
nullable: true
itags:
type: array
items:
type: string
nullable: true
page:
type: string
pos:
type: number