The Space Lua API provides functions for working with Lua expressions and templates.
spacelua.baseUrl
spacelua.baseUrl()
Returns the SilverBullet instance’s base URL, or nil when run on the server.
Returns:
string|nil
Example:
local url = spacelua.baseUrl()
print(url)spacelua.describe
spacelua.describe(functionOrName)
Returns structured documentation for a Lua function value or dotted API name.
Parameters:
functionOrName(function|string) — Function value or dotted API name to inspect.
Returns:
table|nil— Structured function metadata, ornilwhen the target is not a function.
Example:
local info = spacelua.describe(editor.getText)
print(info.name, info.kind, info.see)
local sameInfo = spacelua.describe("editor.getText")spacelua.evalExpression
spacelua.evalExpression(parsedExpr, envAugmentation?)
Evaluates a parsed Lua expression, optionally with additional environment values.
Parameters:
parsedExpr(table) — Parsed expression AST.envAugmentation?(table) — Values added to the expression environment.
Returns:
- Value — Evaluated result.
Example:
local parsed = spacelua.parseExpression("x + y")
local result = spacelua.evalExpression(parsed, {x = 1, y = 2})
print(result)spacelua.interpolate
spacelua.interpolate(template, envAugmentation?)
Interpolates ``````````````xpressions in a string, optionally with additional environment values.
Parameters:
- ```mplate```````````` — Template containing ```````````````````````````````````````````````
envAugmentation?(table) — Values added to the interpolation environment.
Returns:
string— Interpolated string.
Example:
local greeting = spacelua.interpolate("Hello ${name}!", {name = "Pete"})
print(greeting)spacelua.listFunctions
spacelua.listFunctions(namespace?)
Lists documented functions in the global environment or an API namespace.
Parameters:
namespace?(table|string) — Namespace table or dotted name; omit for globals.
Returns:
table— Function metadata records.
Example:
for info in each(spacelua.listFunctions("editor")) do
print(info.name, info.description or info.see)
endspacelua.parseBlock
spacelua.parseBlock(code)
Parses a Lua chunk and returns its AST. Blocks retain comments in source order with their exact text, kind, and source range.
Parameters:
code(string) — Lua code to parse.
Returns:
table— Parsed block AST.
Example:
local parsed = spacelua.parseBlock("local x = 1\nreturn x + 2")spacelua.parseExpression
spacelua.parseExpression(luaExpression)
Parses a Lua expression and returns its AST.
Parameters:
luaExpression(string) — Lua expression to parse.
Returns:
table— Parsed expression AST.
Example:
local parsed = spacelua.parseExpression("1 + 1")spacelua.prettyPrintBlock
spacelua.prettyPrintBlock(block, options?)
Pretty-prints a parsed Lua block AST. Comments are preserved while their placement and indentation are normalized.
Parameters:
block(table) — Parsed block AST.options?(table) — Formatting options:indentWidth,quote, andtrailingComma.
Returns:
string— Formatted Lua source.
Example:
local formatted = spacelua.prettyPrintBlock(spacelua.parseBlock("if a then return 1 end"))
print(formatted)spacelua.prettyPrintExpression
spacelua.prettyPrintExpression(parsedExpr, options?)
Pretty-prints a parsed Lua expression AST.
Parameters:
parsedExpr(table) — Parsed expression AST.options?(table) — Formatting options:indentWidth,quote, andtrailingComma.
Returns:
string— Formatted Lua source.
Example:
local parsed = spacelua.parseExpression("{a=1,b=2}")
print(spacelua.prettyPrintExpression(parsed))spacelua.renderApiDocumentation
spacelua.renderApiDocumentation(target?)
Renders API documentation for a function, namespace, or the global environment as Markdown.
Parameters:
target?(function|table|string) — Function value, namespace table, or dotted API name to document; omit for globals.
Returns:
string— Rendered Markdown.
Examples:
Render a namespace as a live API-page directive.
${spacelua.renderApiDocumentation("lua")}Render one function by its dotted API name.
${spacelua.renderApiDocumentation("editor.getText")}