2025-01-17 03:41:52 +08:00
|
|
|
# System API
|
|
|
|
|
|
|
|
The System API provides system-level functions for interacting with the SilverBullet environment.
|
|
|
|
|
|
|
|
## Function Operations
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.invokeFunction(name, ...)
|
2025-01-17 03:41:52 +08:00
|
|
|
Invokes a plug function by name.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
|
|
|
-- Invoke a function from a plug
|
2025-02-06 17:04:45 +08:00
|
|
|
system.invokeFunction("myplug.processData", "input", 123)
|
2025-01-17 03:41:52 +08:00
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.invokeCommand(name, args)
|
2025-01-17 03:41:52 +08:00
|
|
|
Invokes a client command by name.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
system.invokeCommand("editor.save", {})
|
2025-01-17 03:41:52 +08:00
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.invokeSpaceFunction(name, ...)
|
2025-01-17 03:41:52 +08:00
|
|
|
Invokes a space function by name.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local result = system.invokeSpaceFunction("customFunction", "arg1", "arg2")
|
2025-01-17 03:41:52 +08:00
|
|
|
print("Function result:", result)
|
|
|
|
```
|
|
|
|
|
|
|
|
## System Information
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.listCommands()
|
2025-01-17 03:41:52 +08:00
|
|
|
Lists all available commands.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local commands = system.listCommands()
|
2025-01-17 03:41:52 +08:00
|
|
|
for name, def in pairs(commands) do
|
|
|
|
print(name .. ": " .. def.description)
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.listSyscalls()
|
2025-01-17 03:41:52 +08:00
|
|
|
Lists all available syscalls.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local syscalls = system.listSyscalls()
|
2025-01-17 03:41:52 +08:00
|
|
|
for _, syscall in ipairs(syscalls) do
|
|
|
|
print(syscall.name)
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.getEnv()
|
2025-01-17 03:41:52 +08:00
|
|
|
Returns the runtime environment ("server", "client", or undefined for hybrid).
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local env = system.getEnv()
|
2025-01-17 03:41:52 +08:00
|
|
|
print("Running in environment: " .. (env or "hybrid"))
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.getMode()
|
2025-01-17 03:41:52 +08:00
|
|
|
Returns the current mode of the system ("ro" or "rw").
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local mode = system.getMode()
|
2025-01-17 03:41:52 +08:00
|
|
|
print("System mode: " .. mode)
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.getVersion()
|
2025-01-17 03:41:52 +08:00
|
|
|
Returns the SilverBullet version.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
local version = system.getVersion()
|
2025-01-17 03:41:52 +08:00
|
|
|
print("SilverBullet version: " .. version)
|
|
|
|
```
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.getSpaceConfig(key, defaultValue)
|
2025-01-17 03:41:52 +08:00
|
|
|
Loads space configuration values.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
|
|
|
-- Get specific config value
|
2025-02-06 17:04:45 +08:00
|
|
|
local value = system.getSpaceConfig("theme", "light")
|
2025-01-17 03:41:52 +08:00
|
|
|
|
|
|
|
-- Get all config values
|
2025-02-06 17:04:45 +08:00
|
|
|
local config = system.getSpaceConfig()
|
2025-01-17 03:41:52 +08:00
|
|
|
for key, value in pairs(config) do
|
|
|
|
print(key .. ": " .. value)
|
|
|
|
end
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.reloadConfig()
|
2025-01-17 03:41:52 +08:00
|
|
|
Triggers an explicit reload of the configuration.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
system.reloadConfig()
|
2025-01-17 03:41:52 +08:00
|
|
|
print("Configuration reloaded")
|
|
|
|
```
|
|
|
|
|
2025-02-06 17:04:45 +08:00
|
|
|
### system.reloadPlugs()
|
2025-01-17 03:41:52 +08:00
|
|
|
Triggers a reload of all plugs.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
```lua
|
2025-02-06 17:04:45 +08:00
|
|
|
system.reloadPlugs()
|
2025-01-17 03:41:52 +08:00
|
|
|
print("All plugs reloaded")
|