obsidian-dev-utils
Version:
This is the collection of useful functions that you can use for your Obsidian plugin development
108 lines (105 loc) • 12.3 kB
JavaScript
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&"default"in module?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var Backlink_exports = {};
__export(Backlink_exports, {
renderBacklinksTable: () => renderBacklinksTable,
renderDelayedBacklinks: () => renderDelayedBacklinks,
renderDelayedBacklinksForFolder: () => renderDelayedBacklinksForFolder
});
module.exports = __toCommonJS(Backlink_exports);
var import_Error = require('../Error.cjs');
var import_Callout = require('./Callout.cjs');
var import_Dataview = require('./Dataview.cjs');
var import_DataviewLink = require('./DataviewLink.cjs');
var import_FileSystem = require('./FileSystem.cjs');
var import_Link = require('./Link.cjs');
var import_MetadataCache = require('./MetadataCache.cjs');
async function renderBacklinksTable(dv, pathOrFiles) {
pathOrFiles ??= [];
const files = pathOrFiles.flatMap((abstractFileOrPath) => {
const abstractFile = (0, import_FileSystem.getAbstractFileOrNull)(dv.app, abstractFileOrPath);
if (!abstractFile) {
return [];
}
if ((0, import_FileSystem.isFile)(abstractFile)) {
return [abstractFile];
}
return (0, import_FileSystem.getMarkdownFiles)(dv.app, abstractFile, true);
});
const backlinkRows = [];
for (const file of files) {
const link = (0, import_DataviewLink.fixTitle)(dv, file.path);
const backlinks = await (0, import_MetadataCache.getBacklinksForFileSafe)(dv.app, file);
const backlinkLinks = backlinks.keys().map((backLinkPath) => {
const markdownLink = (0, import_Link.generateMarkdownLink)({
app: dv.app,
sourcePathOrFile: dv.current().file.path,
targetPathOrFile: dv.app.metadataCache.getFirstLinkpathDest(backLinkPath, file.path) ?? (0, import_Error.throwExpression)(new Error("Link not found"))
});
return `${markdownLink} (${backLinkPath})`;
});
if (backlinkLinks.length) {
backlinkRows.push([link, backlinkLinks]);
}
}
await (0, import_Dataview.renderPaginatedTable)({
dv,
headers: ["Note", "Backlinks"],
rows: backlinkRows
});
}
function renderDelayedBacklinks(options) {
const {
dv,
files,
title = "Backlinks"
} = options;
(0, import_Callout.renderCallout)({
async contentProvider() {
await renderBacklinksTable(dv, files);
},
dv,
header: title
});
}
function renderDelayedBacklinksForFolder(options) {
const {
dv,
folder,
title = "Folder Backlinks"
} = options;
const folder2 = folder ?? dv.current().file.folder;
renderDelayedBacklinks({
dv,
files: (0, import_FileSystem.getMarkdownFiles)(dv.app, folder2, true),
title
});
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
renderBacklinksTable,
renderDelayedBacklinks,
renderDelayedBacklinksForFolder
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0JhY2tsaW5rLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYmFja2xpbmtzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgVEZpbGUsXG4gIFRGb2xkZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIERhdGF2aWV3SW5saW5lQXBpLFxuICBMaW5rXG59IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHR5cGUge1xuICBQYXRoT3JBYnN0cmFjdEZpbGUsXG4gIFBhdGhPckZpbGVcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcblxuaW1wb3J0IHsgdGhyb3dFeHByZXNzaW9uIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuaW1wb3J0IHsgcmVuZGVyQ2FsbG91dCB9IGZyb20gJy4vQ2FsbG91dC50cyc7XG5pbXBvcnQgeyByZW5kZXJQYWdpbmF0ZWRUYWJsZSB9IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHsgZml4VGl0bGUgfSBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5pbXBvcnQge1xuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGlzRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVNYXJrZG93bkxpbmsgfSBmcm9tICcuL0xpbmsudHMnO1xuaW1wb3J0IHsgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUgfSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJlbmRlcmluZyBkZWxheWVkIGJhY2tsaW5rcyBmb3IgYSBmb2xkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlck9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIHBhdGguIElmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgZmlsZSdzIGZvbGRlciB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBmb2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBmb3IgdGhlIHJlbmRlcmVkIGJhY2tsaW5rcy4gRGVmYXVsdHMgdG8gXCJGb2xkZXIgQmFja2xpbmtzXCIuXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRGVsYXllZEJhY2tsaW5rc09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICAgKi9cbiAgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXRoT3JGaWxlLlxuICAgKi9cbiAgZmlsZXM6IFBhdGhPckZpbGVbXTtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIGZvciB0aGUgcmVuZGVyZWQgYmFja2xpbmtzLiBEZWZhdWx0cyB0byBcIkJhY2tsaW5rc1wiLlxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGJhY2tsaW5rcyB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgYW5kIG9wdGlvbmFsIGFycmF5IG9mIFBhdGhPckFic3RyYWN0RmlsZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZXMgLSBBbiBvcHRpb25hbCBhcnJheSBvZiBQYXRoT3JBYnN0cmFjdEZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJhY2tsaW5rcyB0YWJsZSBoYXMgYmVlbiByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckJhY2tsaW5rc1RhYmxlKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcGF0aE9yRmlsZXM/OiBQYXRoT3JBYnN0cmFjdEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICBwYXRoT3JGaWxlcyA/Pz0gW107XG4gIGNvbnN0IGZpbGVzOiBURmlsZVtdID0gcGF0aE9yRmlsZXMuZmxhdE1hcCgoYWJzdHJhY3RGaWxlT3JQYXRoKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGR2LmFwcCwgYWJzdHJhY3RGaWxlT3JQYXRoKTtcbiAgICBpZiAoIWFic3RyYWN0RmlsZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgcmV0dXJuIFthYnN0cmFjdEZpbGVdO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRNYXJrZG93bkZpbGVzKGR2LmFwcCwgYWJzdHJhY3RGaWxlIGFzIFRGb2xkZXIsIHRydWUpO1xuICB9KTtcblxuICBjb25zdCBiYWNrbGlua1Jvd3M6IFtMaW5rLCBzdHJpbmdbXV1bXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgIGNvbnN0IGxpbmsgPSBmaXhUaXRsZShkdiwgZmlsZS5wYXRoKTtcbiAgICBjb25zdCBiYWNrbGlua3MgPSBhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShkdi5hcHAsIGZpbGUpO1xuICAgIGNvbnN0IGJhY2tsaW5rTGlua3MgPSBiYWNrbGlua3Mua2V5cygpLm1hcCgoYmFja0xpbmtQYXRoKSA9PiB7XG4gICAgICBjb25zdCBtYXJrZG93bkxpbmsgPSBnZW5lcmF0ZU1hcmtkb3duTGluayh7XG4gICAgICAgIGFwcDogZHYuYXBwLFxuICAgICAgICBzb3VyY2VQYXRoT3JGaWxlOiBkdi5jdXJyZW50KCkuZmlsZS5wYXRoLFxuICAgICAgICB0YXJnZXRQYXRoT3JGaWxlOiBkdi5hcHAubWV0YWRhdGFDYWNoZS5nZXRGaXJzdExpbmtwYXRoRGVzdChiYWNrTGlua1BhdGgsIGZpbGUucGF0aCkgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignTGluayBub3QgZm91bmQnKSlcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYCR7bWFya2Rvd25MaW5rfSAoJHtiYWNrTGlua1BhdGh9KWA7XG4gICAgfSk7XG4gICAgaWYgKGJhY2tsaW5rTGlua3MubGVuZ3RoKSB7XG4gICAgICBiYWNrbGlua1Jvd3MucHVzaChbbGluaywgYmFja2xpbmtMaW5rc10pO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZFRhYmxlKHtcbiAgICBkdixcbiAgICBoZWFkZXJzOiBbJ05vdGUnLCAnQmFja2xpbmtzJ10sXG4gICAgcm93czogYmFja2xpbmtSb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgZGVsYXllZCBiYWNrbGlua3MuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIGRlbGF5ZWQgYmFja2xpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVsYXllZEJhY2tsaW5rcyhvcHRpb25zOiBSZW5kZXJEZWxheWVkQmFja2xpbmtzT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgZmlsZXMsXG4gICAgdGl0bGUgPSAnQmFja2xpbmtzJ1xuICB9ID0gb3B0aW9ucztcbiAgcmVuZGVyQ2FsbG91dCh7XG4gICAgYXN5bmMgY29udGVudFByb3ZpZGVyKCkge1xuICAgICAgYXdhaXQgcmVuZGVyQmFja2xpbmtzVGFibGUoZHYsIGZpbGVzKTtcbiAgICB9LFxuICAgIGR2LFxuICAgIGhlYWRlcjogdGl0bGVcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBkZWxheWVkIGJhY2tsaW5rcyBmb3IgYSBzcGVjaWZpYyBmb2xkZXIuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBmb3IgcmVuZGVyaW5nIGRlbGF5ZWQgYmFja2xpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlcihvcHRpb25zOiBSZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyT3B0aW9ucyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgZm9sZGVyLFxuICAgIHRpdGxlID0gJ0ZvbGRlciBCYWNrbGlua3MnXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBmb2xkZXIyID0gZm9sZGVyID8/IGR2LmN1cnJlbnQoKS5maWxlLmZvbGRlcjtcbiAgcmVuZGVyRGVsYXllZEJhY2tsaW5rcyh7XG4gICAgZHYsXG4gICAgZmlsZXM6IGdldE1hcmtkb3duRmlsZXMoZHYuYXBwLCBmb2xkZXIyLCB0cnVlKSxcbiAgICB0aXRsZVxuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW9CQSxtQkFBZ0M7QUFDaEMscUJBQThCO0FBQzlCLHNCQUFxQztBQUNyQywwQkFBeUI7QUFDekIsd0JBSU87QUFDUCxrQkFBcUM7QUFDckMsMkJBQXdDO0FBaUR4QyxlQUFzQixxQkFBcUIsSUFBdUIsYUFBbUQ7QUFDbkgsa0JBQWdCLENBQUM7QUFDakIsUUFBTSxRQUFpQixZQUFZLFFBQVEsQ0FBQyx1QkFBdUI7QUFDakUsVUFBTSxtQkFBZSx5Q0FBc0IsR0FBRyxLQUFLLGtCQUFrQjtBQUNyRSxRQUFJLENBQUMsY0FBYztBQUNqQixhQUFPLENBQUM7QUFBQSxJQUNWO0FBRUEsWUFBSSwwQkFBTyxZQUFZLEdBQUc7QUFDeEIsYUFBTyxDQUFDLFlBQVk7QUFBQSxJQUN0QjtBQUVBLGVBQU8sb0NBQWlCLEdBQUcsS0FBSyxjQUF5QixJQUFJO0FBQUEsRUFDL0QsQ0FBQztBQUVELFFBQU0sZUFBbUMsQ0FBQztBQUUxQyxhQUFXLFFBQVEsT0FBTztBQUN4QixVQUFNLFdBQU8sOEJBQVMsSUFBSSxLQUFLLElBQUk7QUFDbkMsVUFBTSxZQUFZLFVBQU0sOENBQXdCLEdBQUcsS0FBSyxJQUFJO0FBQzVELFVBQU0sZ0JBQWdCLFVBQVUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7QUFDM0QsWUFBTSxtQkFBZSxrQ0FBcUI7QUFBQSxRQUN4QyxLQUFLLEdBQUc7QUFBQSxRQUNSLGtCQUFrQixHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQUEsUUFDcEMsa0JBQWtCLEdBQUcsSUFBSSxjQUFjLHFCQUFxQixjQUFjLEtBQUssSUFBSSxTQUFLLDhCQUFnQixJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFBQSxNQUNySSxDQUFDO0FBRUQsYUFBTyxHQUFHLFlBQVksS0FBSyxZQUFZO0FBQUEsSUFDekMsQ0FBQztBQUNELFFBQUksY0FBYyxRQUFRO0FBQ3hCLG1CQUFhLEtBQUssQ0FBQyxNQUFNLGFBQWEsQ0FBQztBQUFBLElBQ3pDO0FBQUEsRUFDRjtBQUVBLFlBQU0sc0NBQXFCO0FBQUEsSUFDekI7QUFBQSxJQUNBLFNBQVMsQ0FBQyxRQUFRLFdBQVc7QUFBQSxJQUM3QixNQUFNO0FBQUEsRUFDUixDQUFDO0FBQ0g7QUFPTyxTQUFTLHVCQUF1QixTQUE4QztBQUNuRixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLFFBQVE7QUFBQSxFQUNWLElBQUk7QUFDSixvQ0FBYztBQUFBLElBQ1osTUFBTSxrQkFBa0I7QUFDdEIsWUFBTSxxQkFBcUIsSUFBSSxLQUFLO0FBQUEsSUFDdEM7QUFBQSxJQUNBO0FBQUEsSUFDQSxRQUFRO0FBQUEsRUFDVixDQUFDO0FBQ0g7QUFPTyxTQUFTLGdDQUFnQyxTQUF1RDtBQUNyRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLFFBQVE7QUFBQSxFQUNWLElBQUk7QUFDSixRQUFNLFVBQVUsVUFBVSxHQUFHLFFBQVEsRUFBRSxLQUFLO0FBQzVDLHlCQUF1QjtBQUFBLElBQ3JCO0FBQUEsSUFDQSxXQUFPLG9DQUFpQixHQUFHLEtBQUssU0FBUyxJQUFJO0FBQUEsSUFDN0M7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K