Files
plainleaf/website/API/index.md
T
Zef Hemel 6078452a6c Breaking Lua API changes:
* tpl -> template.new
* define_command -> command.define
* define_event_listener -> event.listen
* tag -> index.tag

Updated in the docs
2025-01-19 14:32:11 +01:00

1.0 KiB

The index API provides functions for interacting with SilverBullet's Objects, allowing you to store and query page-associated data.

Object Operations

index.tag(name)

Returns a given Objects#Tags as a query collection, to be queried using Space Lua/Lua Integrated Query.

Example:

${queryfrom index.tag("page") limit 1}

index.index_objects(page, objects)

Indexes an array of objects for a specific page.

Example:

local objects = {
    {tag = "mytask", ref="task1", content = "Buy groceries"},
    {tag = "mytask", ref="task2", content = "Write docs"}
}
index.index_objects("my page", objects)

index.query_lua_objects(tag, query, scoped_variables?)

Queries objects using a Lua-based collection query.

Example:

local tasks = index.query_lua_objects("mytask", {limit=3})

index.get_object_by_ref(page, tag, ref)

Retrieves a specific object by its reference.

Example:

local task = index.get_object_by_ref("my page", "mytask", "task1")
if task then
    print("Found task: " .. task.content)
end