39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
---
|
|
tags: api/syscall
|
|
references:
|
|
- plug-api/syscalls/index.ts
|
|
- client/plugos/syscalls/index.ts
|
|
- client/data/object_index.ts
|
|
---
|
|
|
|
The `index` API provides functions for interacting with SilverBullet's [[Object Index]], including query collections used by [[Space Lua/Integrated Query]], schema introspection, ad-hoc Markdown indexing, and direct object-index operations.
|
|
|
|
The main query API is `index.objects`; the other collection functions are mostly convenient filters over the same index.
|
|
|
|
${spacelua.renderApiDocumentation("index")}
|
|
|
|
## Integrated Query examples
|
|
|
|
Query one page:
|
|
|
|
${query[[from index.pages() limit 1]]}
|
|
|
|
Query three sub-pages below the API page:
|
|
|
|
${query[[from p = index.subPages("API") limit 3 select p.name]]}
|
|
|
|
Render three incomplete tasks:
|
|
|
|
${query[[from t = index.tasks() where not t.done limit 3 select templates.taskItem(t)]]}
|
|
|
|
Ad-hoc index a Markdown fragment and select its list items:
|
|
|
|
${query[[
|
|
from index.markdown("* Item 1\n* [ ] Task 1")
|
|
where _.tag == "item"
|
|
]]}
|
|
|
|
`index.extractFrontmatter` can inspect and optionally transform frontmatter and top-level tags. For example, this returns the frontmatter of the current page:
|
|
|
|
${(index.extractFrontmatter(editor.getText())).frontmatter}
|