Files
monster-menus/main.js
2025-09-25 20:00:00 -04:00

104 lines
10 KiB
JavaScript

/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
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);
// main.ts
var main_exports = {};
__export(main_exports, {
default: () => MenuPlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian = require("obsidian");
var { shell } = require("electron");
var MenuPlugin = class extends import_obsidian.Plugin {
async onload() {
this.registerMarkdownCodeBlockProcessor("menu", (source, el, ctx) => {
const lines = source.trim().split("\n");
let cssClass = "";
const links = [];
for (const line of lines) {
const trimmed = line.trim();
if (trimmed.startsWith("class:")) {
cssClass = trimmed.substring(6).trim().replace(/[{}]/g, "");
} else if (trimmed) {
links.push(trimmed);
}
}
const finalClass = cssClass || "default";
const container = el.createEl("div", { cls: `menu-container ${finalClass}` });
for (const link of links) {
if (link.startsWith("[[") && link.endsWith("]]")) {
const linkContent = link.slice(2, -2);
let href = linkContent;
let text = linkContent;
if (linkContent.includes("|")) {
[href, text] = linkContent.split("|");
}
const a = container.createEl("a", {
text,
attr: { "data-href": href }
});
a.addClass("menu-internal-link");
} else if (link.match(/^\[.*\]\(.*\)$/)) {
const match = link.match(/^\[(.*)\]\((.*)\)$/);
if (match) {
const text = match[1];
const url = match[2];
const a = container.createEl("a", {
text,
attr: url.startsWith("file://") ? {} : { href: url, target: "_blank", rel: "noopener noreferrer" }
});
a.style.cursor = "pointer";
if (url.startsWith("file://")) {
a.addClass("menu-file-link");
} else {
a.addClass("menu-external-link");
}
a.addEventListener("click", (e) => {
e.preventDefault();
if (url.startsWith("file://")) {
try {
let filePath = decodeURIComponent(url.substring(7));
if (filePath.startsWith("/") && filePath.charAt(2) === ":") {
filePath = filePath.substring(1);
}
console.log("Opening file path:", filePath);
shell.openPath(filePath);
} catch (error) {
console.error("Failed to open file:", error);
}
} else {
window.open(url, "_blank", "noopener,noreferrer");
}
});
}
}
}
});
}
onunload() {
}
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luIH0gZnJvbSAnb2JzaWRpYW4nO1xyXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAndXJsJztcclxuXHJcbmNvbnN0IHsgc2hlbGwgfSA9IHJlcXVpcmUoJ2VsZWN0cm9uJyk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZW51UGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcclxuXHRhc3luYyBvbmxvYWQoKSB7XHJcblx0XHR0aGlzLnJlZ2lzdGVyTWFya2Rvd25Db2RlQmxvY2tQcm9jZXNzb3IoJ21lbnUnLCAoc291cmNlLCBlbCwgY3R4KSA9PiB7XHJcblx0XHRcdC8vIFBhcnNlIHRoZSBzb3VyY2VcclxuXHRcdFx0Y29uc3QgbGluZXMgPSBzb3VyY2UudHJpbSgpLnNwbGl0KCdcXG4nKTtcclxuXHRcdFx0bGV0IGNzc0NsYXNzID0gJyc7XHJcblx0XHRcdGNvbnN0IGxpbmtzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRcdFx0Zm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XHJcblx0XHRcdFx0Y29uc3QgdHJpbW1lZCA9IGxpbmUudHJpbSgpO1xyXG5cdFx0XHRcdGlmICh0cmltbWVkLnN0YXJ0c1dpdGgoJ2NsYXNzOicpKSB7XHJcblx0XHRcdFx0XHRjc3NDbGFzcyA9IHRyaW1tZWQuc3Vic3RyaW5nKDYpLnRyaW0oKS5yZXBsYWNlKC9be31dL2csICcnKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHRyaW1tZWQpIHtcclxuXHRcdFx0XHRcdGxpbmtzLnB1c2godHJpbW1lZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBDcmVhdGUgdGhlIGNvbnRhaW5lciAtIGlmIG5vIGNsYXNzIHNwZWNpZmllZCwgdXNlICdkZWZhdWx0J1xyXG5cdFx0XHRjb25zdCBmaW5hbENsYXNzID0gY3NzQ2xhc3MgfHwgJ2RlZmF1bHQnO1xyXG5cdFx0XHRjb25zdCBjb250YWluZXIgPSBlbC5jcmVhdGVFbCgnZGl2JywgeyBjbHM6IGBtZW51LWNvbnRhaW5lciAke2ZpbmFsQ2xhc3N9YCB9KTtcclxuXHJcblx0XHRcdC8vIFByb2Nlc3MgZWFjaCBsaW5rXHJcblx0XHRcdGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xyXG5cdFx0XHRcdGlmIChsaW5rLnN0YXJ0c1dpdGgoJ1tbJykgJiYgbGluay5lbmRzV2l0aCgnXV0nKSkge1xyXG5cdFx0XHRcdFx0Ly8gSW50ZXJuYWwgbGlua1xyXG5cdFx0XHRcdFx0Y29uc3QgbGlua0NvbnRlbnQgPSBsaW5rLnNsaWNlKDIsIC0yKTtcclxuXHRcdFx0XHRcdGxldCBocmVmID0gbGlua0NvbnRlbnQ7XHJcblx0XHRcdFx0XHRsZXQgdGV4dCA9IGxpbmtDb250ZW50O1xyXG5cdFx0XHRcdFx0aWYgKGxpbmtDb250ZW50LmluY2x1ZGVzKCd8JykpIHtcclxuXHRcdFx0XHRcdFx0W2hyZWYsIHRleHRdID0gbGlua0NvbnRlbnQuc3BsaXQoJ3wnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGNvbnN0IGEgPSBjb250YWluZXIuY3JlYXRlRWwoJ2EnLCB7XHJcblx0XHRcdFx0XHRcdHRleHQ6IHRleHQsXHJcblx0XHRcdFx0XHRcdGF0dHI6IHsgJ2RhdGEtaHJlZic6IGhyZWYgfVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRhLmFkZENsYXNzKCdtZW51LWludGVybmFsLWxpbmsnKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKGxpbmsubWF0Y2goL15cXFsuKlxcXVxcKC4qXFwpJC8pKSB7XHJcblx0XHRcdFx0XHQvLyBFeHRlcm5hbCBsaW5rXHJcblx0XHRcdFx0XHRjb25zdCBtYXRjaCA9IGxpbmsubWF0Y2goL15cXFsoLiopXFxdXFwoKC4qKVxcKSQvKTtcclxuXHRcdFx0XHRcdGlmIChtYXRjaCkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCB0ZXh0ID0gbWF0Y2hbMV07XHJcblx0XHRcdFx0XHRcdGNvbnN0IHVybCA9IG1hdGNoWzJdO1xyXG5cdFx0XHRcdFx0XHRjb25zdCBhID0gY29udGFpbmVyLmNyZWF0ZUVsKCdhJywge1xyXG5cdFx0XHRcdFx0XHRcdHRleHQ6IHRleHQsXHJcblx0XHRcdFx0XHRcdFx0YXR0cjogdXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSA/IHt9IDogeyBocmVmOiB1cmwsIHRhcmdldDogJ19ibGFuaycsIHJlbDogJ25vb3BlbmVyIG5vcmVmZXJyZXInIH1cclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdGEuc3R5bGUuY3Vyc29yID0gJ3BvaW50ZXInO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0Ly8gQWRkIGFwcHJvcHJpYXRlIGNsYXNzIGJhc2VkIG9uIGxpbmsgdHlwZVxyXG5cdFx0XHRcdFx0XHRpZiAodXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSkge1xyXG5cdFx0XHRcdFx0XHRcdGEuYWRkQ2xhc3MoJ21lbnUtZmlsZS1saW5rJyk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0YS5hZGRDbGFzcygnbWVudS1leHRlcm5hbC1saW5rJyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0YS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0XHRcdGlmICh1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBDb252ZXJ0IGZpbGUgVVJMIHRvIHBhdGggYW5kIGhhbmRsZSBXaW5kb3dzIHBhdGhzXHJcblx0XHRcdFx0XHRcdFx0XHRcdGxldCBmaWxlUGF0aCA9IGRlY29kZVVSSUNvbXBvbmVudCh1cmwuc3Vic3RyaW5nKDcpKTsgLy8gUmVtb3ZlICdmaWxlOi8vJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgV2luZG93cyBwYXRocyB0aGF0IHN0YXJ0IHdpdGggL0M6XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChmaWxlUGF0aC5zdGFydHNXaXRoKCcvJykgJiYgZmlsZVBhdGguY2hhckF0KDIpID09PSAnOicpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlUGF0aCA9IGZpbGVQYXRoLnN1YnN0cmluZygxKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnT3BlbmluZyBmaWxlIHBhdGg6JywgZmlsZVBhdGgpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaGVsbC5vcGVuUGF0aChmaWxlUGF0aCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gb3BlbiBmaWxlOicsIGVycm9yKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0d2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRvbnVubG9hZCgpIHtcclxuXHRcdC8vIENsZWFudXAgaWYgbmVlZGVkXHJcblx0fVxyXG59XHJcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxzQkFBdUI7QUFHdkIsSUFBTSxFQUFFLE1BQU0sSUFBSSxRQUFRLFVBQVU7QUFFcEMsSUFBcUIsYUFBckIsY0FBd0MsdUJBQU87QUFBQSxFQUM5QyxNQUFNLFNBQVM7QUFDZCxTQUFLLG1DQUFtQyxRQUFR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