Awesome
Obsidian Front Matter Title Plugin Api Provider
This package provide some functions to get API from to resolve file titles by Front Matter Title which is required to be installed
Installation
npm i front-matter-plugin-api-provider
Get Api Instance
import {getDefer} from "front-matter-plugin-api-provider";
const path = 'Folder/ds1.md';
const defer = getDefer(this.app);
let api = null;
if (defer.isPluginReady()) {
api = defer.getApi();
} else {
await defer.awaitPlugin();
api = defer.getApi();
//if you want to wait features you can use the following chain
if (!defer.isFeaturesReady()) {
await defer.awaitFeatures();
}
}
or you can use Safe Wrapper
import {getApiSafe} from "front-matter-plugin-api-provider";
const path = 'Folder/ds1.md';
//Wrapper will check
const api = getApiSafe(this.app);
Use Api Instance
Get enabled features
const api: ApiInterface;
//It will return list of enabled features.
const ids = api.getEnabledFeatures();
Get resolver
const api: ApiInterface;
//Get factory and create a resolver for feature.
//WARNING: if you pass disabled feature id, you will get a resolver which returns value by settings for features.
const resolver = api.getResolverFactory().createResolver('#feature-id#');
console.log(resolver.resolve('file.md'));
Get event dispatcher
const api: ApiInterface;
const dispatcher = api.getEventDispatcher();
const event = {
name: "manager:update",
cb: console.log
}
//Keep ref to remove listener
const ref = dispatcher.addListener(event);
//Remove listener, if needed
dispatcher.removeListener(ref)