1
0
Fork 0

cleanup and update installed plugins

This commit is contained in:
KemoNine 2024-11-22 10:53:13 -05:00
parent f119a01042
commit 008f7d9f19
30 changed files with 1420 additions and 25108 deletions

View file

@ -4,11 +4,9 @@
"note-gallery",
"smart-random-note",
"tag-word-cloud",
"obsidian-sort-and-permute-lines",
"dashboard-navigator",
"automatic-table-of-contents",
"obsidian-advanced-uri",
"table-editor-obsidian",
"folder-notes",
"waypoint"
]

View file

@ -1,17 +1,30 @@
[
"file-explorer",
"global-search",
"graph",
"backlink",
"canvas",
"outgoing-link",
"tag-pane",
"properties",
"page-preview",
"command-palette",
"editor-status",
"bookmarks",
"zk-prefixer",
"outline",
"file-recovery"
]
{
"file-explorer": true,
"global-search": true,
"switcher": false,
"graph": true,
"backlink": true,
"canvas": true,
"outgoing-link": true,
"tag-pane": true,
"properties": true,
"page-preview": true,
"daily-notes": false,
"templates": false,
"note-composer": false,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"bookmarks": true,
"markdown-importer": false,
"zk-prefixer": true,
"random-note": false,
"outline": true,
"word-count": false,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false
}

File diff suppressed because it is too large Load diff

View file

@ -1,10 +0,0 @@
{
"id": "attachment-management",
"name": "Attachment Management",
"version": "0.9.16",
"description": "Customize your attachment path of notes independently with variables and auto rename it on change.",
"author": "trganda",
"authorUrl": "https://github.com/trganda",
"fundingUrl": "https://paypal.me/trganda",
"isDesktopOnly": false
}

View file

@ -1,15 +0,0 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/
.attach_management_sub_setting {
padding-left: 2em;
}
.attach_management_sub_setting + .attach_management_sub_setting {
padding-left: 0;
margin-left: 2em;
}

View file

@ -14,5 +14,12 @@
"color_audios": "#bfbf00",
"color_pdf": "#00a300",
"color_other": "#828282",
"colored_files": false
"colored_files": false,
"hide_ext": false,
"hide_path": false,
"hide_size": false,
"hide_date": false,
"hide_tags": false,
"hide_frontmatter": false,
"hide_columns": []
}

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
{
"id": "dashboard-navigator",
"name": "Dashboard navigator",
"version": "2.0.0",
"version": "5.2.0",
"minAppVersion": "1.1.0",
"description": "Vault dashboard and navigator. Show recent files by type, files per day, week, month, search files by name, date, tags and more.",
"author": "Bernardo Pires",

View file

@ -5,6 +5,7 @@ body {
--dn-background-color: var(--background-secondary);
--dn-foreground-color: var(--text-normal);
--dn-border-color: var(--background-modifier-border);
--dn-border-color-hover: var(--background-modifier-border-hover);
--dn-file-property-color: #828282;
--dn-font-size: 16px;
@ -71,7 +72,7 @@ body {
margin-left: 0;
margin-right: 0;
margin-top: var(--size-4-1);
margin-bottom: var(--size-4-2);
margin-bottom: var(--size-4-1);
flex-wrap: wrap;
align-content: center;
}
@ -251,6 +252,7 @@ body {
display: none;
}
a.dn-ext,
a.dn-folder-path {
color: var(--text-muted);
}
@ -280,57 +282,69 @@ table#dn-table td {
text-overflow: ellipsis;
padding: var(--size-4-1) var(--size-4-2);
min-width: 50px;
width: clamp(50px, auto, unset);
font-size: var(--dn-font-size);
}
table#dn-table th {
position: sticky;
top: 80px;
z-index: 901;
text-align: left;
font-weight: var(--font-semibold);
color: var(--text-normal);
border-bottom: 1px solid var(--dn-border-color);
cursor: pointer;
background-color: var(--background-primary);
}
table#dn-table th:not(.sort-active, th:nth-child(5)):hover {
background-color: var(--tag-background);
table#dn-table th:not(th:nth-child(6), th:nth-child(7)):hover {
background-color: var(--background-secondary);
}
table#dn-table th.sort-active {
color: var(--text-normal);
background-color: var(--tag-background);
background-color: var(--background-secondary);
}
table#dn-table th.sort-active.sort-asc::before {
content: " ↑";
color: var(--text-accent);
font-weight: var(--font-bold);
color: var(--interactive-accent);
}
table#dn-table th.sort-active.sort-desc::before {
content: " ↓";
color: var(--text-accent);
font-weight: var(--font-bold);
color: var(--interactive-accent);
}
table#dn-table th:nth-child(1),
table#dn-table th:nth-child(2),
table#dn-table th:nth-child(3),
table#dn-table th:nth-child(4) {
table#dn-table th:nth-child(4),
table#dn-table th:nth-child(5),
table#dn-table th:nth-child(6) {
resize: horizontal;
}
table#dn-table td:nth-child(3) {
table#dn-table th:nth-child(2),
table#dn-table td:nth-child(2) {
width: 82px;
min-width: 82px;
}
table#dn-table td:nth-child(4) {
text-align: right;
padding-right: 1em;
}
table#dn-table th:nth-child(5) {
table#dn-table th:nth-child(6),
table#dn-table th:nth-child(7) {
cursor: default;
}
table#dn-table tr:hover td {
background-color: var(--nav-item-background-hover);
background-color: var(--nav-item-background-hover) !important;
}
.dn-search-input-container {
@ -367,25 +381,17 @@ table#dn-table tr:hover td {
}
.dn-pagination {
margin-bottom: var(--size-4-1);
position: sticky;
display: flex;
top: 40px;
padding: var(--size-4-1) var(--size-4-2);
text-align: right;
font-size: .9em;
}
.dn-pagination span {
margin-right: 1em;
}
.dn-pagination span {
margin-right: 1em;
}
.dn-pagination-total-results {
float: left;
}
.dn-pagination-total-results::after {
clear: left;
background-color: var(--background-secondary);
z-index: 900;
justify-content: space-between;
border: 1px solid var(--dn-border-color);
opacity: .9;
}
.dn-btn-prev:disabled,
@ -396,6 +402,7 @@ table#dn-table tr:hover td {
.dn-btn-prev,
.dn-btn-next {
cursor: pointer;
margin-left: var(--size-4-1);
}
/* File icons */
@ -513,6 +520,7 @@ a.dn-f-other::before {
}
.dn-no-results-found {
padding-left: var(--size-4-2);
color: var(--text-faint);
font-style: italic;
}
@ -522,12 +530,41 @@ a.dn-tag {
border-radius: var(--tag-radius);
margin-right: var(--size-4-1);
padding-inline-end: var(--tag-padding-x);
font-size: var(--tag-size);
font-size: var(--font-size);
background-color: var(--tag-background);
color: var(--tag-color);
text-decoration: none;
}
a.dn-tag:hover {
color: var(--text-accent-hover);
}
a.dn-fproperties::before {
content: '•';
color: var(--dn-border-color);
}
a.dn-fproperties:hover::before {
content: '•';
color: var(--text-accent-hover);
}
a.dn-fproperties {
display: inline-block;
border-radius: var(--tag-radius);
margin-right: var(--size-4-1);
padding-inline-end: var(--tag-padding-x);
font-size: var(--font-size);
background-color: var(--tag-background);
color: var(--tag-color);
text-decoration: none;
}
a.dn-fproperties:hover {
color: var(--text-accent-hover);
}
#dn-other,
#dn-videos,
#dn-audios,
@ -535,7 +572,8 @@ a.dn-tag {
#dn-images,
#dn-canvas,
#dn-recent-notes,
#dn-recent-files {
#dn-recent-files,
#dn-last-opened-files {
padding: var(--size-4-2);
background-color: var(--background-primary);
border: 1px solid var(--background-modifier-border);
@ -553,8 +591,7 @@ table#dn-table.dn-tbl-row tbody tr:nth-child(even) {
background-color: var(--dn-even-background-color);
}
table#dn-table.dn-tbl-column th:nth-child(even),
table#dn-table.dn-tbl-column td:nth-child(even) {
table#dn-table.dn-tbl-column td:nth-child(even of :not(.dn-hidden)) {
background-color: var(--dn-even-background-color);
}
@ -590,15 +627,60 @@ table#dn-table.dn-tbl-default td {
word-wrap: break-word;
}
.dn-div-top-preview-btns {
text-align: left;
display: flex;
justify-content: left;
gap: 8px;
}
.dn-div-bottom-properties {
text-align: center;
text-align: left;
display: flex;
justify-content: space-between;
}
.dn-btn-close-properties {
width: 30%;
.dn-div-top-preview-btns button,
.dn-div-bottom-properties button {
margin-top: var(--size-4-1);
cursor: pointer;
}
.dn-btn-properties-close {
width: 100px;
margin-left: 1em;
}
.dn-btn-properties-open-file {
width: 180px;
}
.dn-hidden {
display: none;
}
.dn-properties-frontmatter-modal,
.dn-properties-frontmatter {
overflow-y: auto;
resize: vertical;
min-height: 48px;
height: 120px;
border: 1px solid var(--dn-border-color);
padding: var(--size-4-1);
line-height: 1.8em;
font-size: 1em;
word-wrap: break-word;
word-break: break-word;
}
.modal:has(.dn-properties-modal),
.modal:has(.dn-frontmatter-modal) {
min-width: 30%;
width: 60%;
max-width: 100%;
resize: both;
}
@media screen and (max-width: 1024px) {
.dn-flex {
@ -621,10 +703,10 @@ table#dn-table.dn-tbl-default td {
width: 30%;
}
table#dn-table th:nth-child(3),
table#dn-table td:nth-child(3),
table#dn-table th:nth-child(5),
table#dn-table td:nth-child(5) {
table#dn-table th:nth-child(4),
table#dn-table td:nth-child(4),
table#dn-table th:nth-child(6),
table#dn-table td:nth-child(6) {
display: none;
}
@ -667,7 +749,11 @@ table#dn-table.dn-tbl-default td {
table#dn-table th:nth-child(4),
table#dn-table td:nth-child(4),
table#dn-table th:nth-child(5),
table#dn-table td:nth-child(5) {
table#dn-table td:nth-child(5),
table#dn-table th:nth-child(6),
table#dn-table td:nth-child(6),
table#dn-table th:nth-child(7),
table#dn-table td:nth-child(7) {
display: none;
}
@ -677,3 +763,120 @@ table#dn-table.dn-tbl-default td {
}
}
.dn-preview {
display: none;
position: fixed;
min-width: 400px;
min-height: 300px;
width: 600px;
height: 480px;
max-width: 100%;
max-height: 100%;
overflow: auto;
border: 2px solid var(--dn-border-color);
background: var(--background-primary);
padding: 0;
z-index: 90000;
border-radius: var(--radius-m);
box-shadow: 0 0 1em #00000082;
resize: both;
}
.dn-preview:hover {
border: 2px solid var(--dn-border-color-hover);
}
.dn-preview-top-bar {
background-color: var(--background-primary);
position: sticky;
top: 0;
left: 0;
padding: var(--size-4-2);
z-index: 10;
}
.dn-preview-titlebar {
width: 90%;
cursor: move;
border-left: 4px solid var(--text-faint);
padding-left: 8px;
}
.dn-preview-titlebar:hover {
border-left: 4px solid var(--text-accent);
}
.dn-preview-titlebar .dn-property-value {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.dn-preview .dn-pr-file-name::before {
content: 'File: ';
color: var(--dn-file-property-color);
}
.dn-preview .dn-pr-file-path::before {
content: 'Path: ';
color: var(--dn-file-property-color);
}
.dn-preview .dn-pr-file-path {
padding: var(--size-4-1) 0;
border-bottom: 1px solid var(--dn-border-color);
}
.dn-preview .dn-pr-content {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 1fr;
width: 100%;
background: var(--background-primary);
border-radius: var(--radius-s);
cursor: auto;
}
.dn-preview .dn-pr-content img {
width: 100%;
height: auto;
}
.dn-preview .markdown-embed-title {
display: none;
}
.dn-preview .markdown-embed {
border-inline-start: 0;
}
.dn-property-row {
display: flex;
margin-bottom: var(--size-4-1);
}
.dn-property-name-sm {
flex: 0 0 auto;
width: 62px;
text-align: left;
color: var(--dn-file-property-color);
}
.dn-property-name {
flex: 0 0 auto;
width: 108px;
text-align: left;
color: var(--dn-file-property-color);
}
.dn-property-value {
flex: 1;
padding-left: 0;
text-align: left;
}
.dn-property-value span.nav-file-tag {
margin: 0;
}

File diff suppressed because one or more lines are too long

View file

@ -1,10 +0,0 @@
{
"id": "line-arrange",
"name": "Line Arrange",
"version": "1.2.1",
"minAppVersion": "0.15.0",
"description": "Shuffle, reverse, or sort lines, using either visual width or lexical order.",
"author": "Chitwan Singh",
"authorUrl": "https://github.com/chitwan27",
"isDesktopOnly": false
}

View file

@ -1,214 +0,0 @@
/*
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: () => LiteGallery
});
module.exports = __toCommonJS(main_exports);
var import_obsidian2 = require("obsidian");
// settingtab.ts
var import_obsidian = require("obsidian");
var LiteGallerySettingTab = class extends import_obsidian.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
let { containerEl } = this;
containerEl.empty();
new import_obsidian.Setting(containerEl).setName("Image folders").setDesc("Comma separated list of folders to search for images (in order of priority).").addText(
(text) => text.setPlaceholder("/").setValue(this.plugin.settings.image_folders.join(",")).onChange(async (value) => {
this.plugin.settings.image_folders = value.split(",");
await this.plugin.save_settings();
})
);
}
};
// main.ts
var DEFAULT_SETTINGS = {
image_folders: []
};
var LiteGallery = class extends import_obsidian2.Plugin {
async load_settings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async save_settings() {
await this.saveData(this.settings);
}
async onload() {
await this.load_settings();
this.addSettingTab(new LiteGallerySettingTab(this.app, this));
this.registerMarkdownCodeBlockProcessor("litegal", async (source, el, ctx) => {
let active_slide = 0;
let preview_scroll_speed = 0;
const image_list = source.split("\n").map((line) => line.replace(/!?\[\[/, "").replace("]]", "").trim()).filter((line) => line).map(
(image) => {
let image_exists = false;
let image_path = void 0;
let path_options = this.settings.image_folders.map((folder) => {
return `${folder.slice(-1) == "/" ? folder == "/" ? "" : folder : (
// If folder doesn't need a trailing slash, don't add it (if it's root dir should just be empty string)
`${folder}/`
)}${image}`;
});
for (const test_path of path_options) {
const file = this.app.vault.getAbstractFileByPath(test_path);
if (file instanceof import_obsidian2.TFile) {
image_exists = true;
image_path = this.app.vault.adapter.getResourcePath(test_path);
break;
}
}
if (image_path == void 0) {
new import_obsidian2.Notice(`LiteGallery: Image not found: ${image}`);
}
return image_path;
}
).filter((image_path) => image_path !== void 0);
const lightbox_container = document.body.createEl("div", {
cls: "litegal-lightbox-container hidden"
});
lightbox_container.onclick = () => {
lightbox_container.addClass("hidden");
};
const lightbox = lightbox_container.createEl("div");
lightbox.classList.add("litegal-lightbox");
lightbox.onclick = (event) => {
event.stopPropagation();
};
const gallery = el.createEl("div", { cls: "litegal" });
gallery.classList.add("litegal");
if (image_list.length > 0) {
const active_image_container = gallery.createEl("div", {
cls: "litegal-active"
});
const active_image_container_inner = active_image_container.createEl("div", {
cls: "litegal-active-inner"
});
const active_image = active_image_container_inner.createEl("img");
active_image.src = image_list[active_slide];
active_image.onclick = () => {
lightbox_container.removeClass("hidden");
lightbox_image.src = image_list[active_slide];
};
const larrow = active_image_container.createEl("div", {
text: "<",
cls: "litegal-arrow litegal-arrow-left"
});
larrow.onclick = () => {
active_slide = (active_slide - 1 + image_list.length) % image_list.length;
active_image.src = image_list[active_slide];
};
const rarrow = active_image_container.createEl("div", {
text: ">",
cls: "litegal-arrow litegal-arrow-right"
});
rarrow.onclick = () => {
active_slide = (active_slide + 1) % image_list.length;
active_image.src = image_list[active_slide];
};
const preview_outer_container = gallery.createEl("div", { cls: "litegal-preview-outer" });
const preview_larrow = preview_outer_container.createEl("div", {
text: "<",
cls: "litegal-arrow litegal-arrow-left"
});
preview_larrow.onmouseenter = () => {
preview_scroll_speed = -5;
};
preview_larrow.onmouseleave = () => {
preview_scroll_speed = 0;
};
const preview_rarrow = preview_outer_container.createEl("div", {
text: ">",
cls: "litegal-arrow litegal-arrow-right"
});
preview_rarrow.onmouseenter = () => {
preview_scroll_speed = 5;
};
preview_rarrow.onmouseleave = () => {
preview_scroll_speed = 0;
};
const preview_container = preview_outer_container.createEl("div", {
cls: "litegal-preview"
});
setInterval(() => {
preview_container.scrollLeft += preview_scroll_speed;
}, 10);
image_list.forEach(async (image_path, i) => {
const preview_elem = preview_container.createEl("img", {
cls: "litegal-preview-img"
});
preview_elem.src = image_path;
preview_elem.onclick = () => {
active_slide = i;
active_image.src = `${image_list[active_slide]}`;
};
});
const lightbox_larrow = lightbox.createEl("div", {
text: "<",
cls: "litegal-arrow litegal-arrow-left"
});
lightbox_larrow.onclick = () => {
active_slide = (active_slide - 1 + image_list.length) % image_list.length;
lightbox_image.src = image_list[active_slide];
active_image.src = image_list[active_slide];
};
const lightbox_rarrow = lightbox.createEl("div", {
text: ">",
cls: "litegal-arrow litegal-arrow-right"
});
lightbox_rarrow.onclick = () => {
active_slide = (active_slide + 1) % image_list.length;
lightbox_image.src = image_list[active_slide];
active_image.src = image_list[active_slide];
};
const lightbox_image = lightbox.createEl("img", {
cls: "litegal-lightbox-image"
});
const lightbox_exit = lightbox.createEl("div", {
text: "X",
cls: "litegal-lightbox-exit"
});
lightbox_exit.onclick = () => {
lightbox_container.addClass("hidden");
};
document.addEventListener("keydown", (event) => {
if (event.key === "Escape") {
lightbox_container.addClass("hidden");
}
});
} else {
gallery.createEl("p", {
text: 'No images found, please check your image list. If your images are not found, please check your "image folders" in settings.',
cls: "litegal-no-images"
});
}
});
}
onunload() {
}
};

View file

@ -1,10 +0,0 @@
{
"id": "litegallery",
"name": "Lite Gallery",
"version": "1.0.5",
"minAppVersion": "0.15.0",
"description": "Easily create carousel galleries to better organize/view images in your notes.",
"author": "Jordan Poles",
"authorUrl": "https://github.com/jpoles1/",
"isDesktopOnly": false
}

View file

@ -1,111 +0,0 @@
.litegal {
width: 100%;
cursor: default;
}
.litegal-preview-outer {
position: relative;
}
.litegal-preview {
display: flex;
align-items: space-around;
flex-wrap: nowrap;
margin: 0 30px 0 40px;
overflow: scroll;
}
.litegal-preview-img {
width: 100px;
height: 100px;
margin: 10px;
border: 1px solid #ccc;
border-radius: 5px;
overflow: hidden;
cursor: pointer;
flex-shrink: 0;
}
.litegal-active {
position: relative;
}
.litegal-active-inner {
display: flex;
justify-content: center;
}
.litegal-arrow {
cursor: pointer;
font-size: 30px;
margin: 0 10px;
color: #999;
background-color: rgba(0, 0, 0, 0.2);
border-radius: 5px;
padding: 5px;
position: absolute;
top: 50%;
transform: translate(0, -50%);
user-select: none;
}
.litegal-arrow:hover {
color: white;
background-color: rgba(0, 0, 0, 0.6);
}
.litegal-preview-outer .litegal-arrow {
font-size: 20px;
}
.litegal-arrow-right {
right: 0;
}
.litegal-lightbox-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.8);
z-index: 1000;
cursor: pointer;
}
.litegal-lightbox {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
max-width: 90%;
max-height: 90%;
overflow: hidden;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.litegal-lightbox-image {
max-width: 100%;
max-height: 100%;
}
.litegal-lightbox-exit {
position: absolute;
top: 0;
right: 0;
font-size: 30px;
color: white;
background-color: rgba(0, 0, 0, 0.6);
border-bottom-left-radius: 5px;
border-top-right-radius: 5px;
padding: 5px;
cursor: pointer;
user-select: none;
}
.hidden {
display: none;
}
.litegal-no-images {
text-align: center;
margin: 20px;
color: #999;
font-style: italic;
}

File diff suppressed because one or more lines are too long

View file

@ -1,11 +0,0 @@
{
"id": "multi-column-markdown",
"name": "Multi-Column Markdown",
"version": "0.9.1",
"minAppVersion": "1.5.3",
"description": "This plugin adds functionality to create markdown documents with multiple columns of content viewable within Obsidian's preview mode",
"author": "Cameron Robinson",
"fundingUrl": "https://www.buymeacoffee.com/ckrobinson",
"authorUrl": "https://portfolio.ckrobinson.net",
"isDesktopOnly": false
}

View file

@ -1,249 +0,0 @@
.mcm-single-column-layout-left {
left: 10px;
}
.mcm-single-column-layout-right {
right: 10px;
}
.mcm-single-column-small {
width: 25%;
}
.mcm-single-column-medium {
width: 50%;
}
.mcm-single-column-large {
width: 75%;
}
.mcm-single-column-full {
width: 100%;
}
/* ----------------------------------- */
.mcm-singlecol-layout-right {
justify-content: right;
}
.mcm-singlecol-layout-left {
justify-content: left;
}
.mcm-singlecol-layout-center {
justify-content: center;
}
/* ----------------------------------- */
.mcm-column-spacer {
margin-inline: 0.25%;
}
/* ----------------------------------- */
.mcm-two-equal-columns {
width: 49.75%;
}
.mcm-two-column-large {
width: 66.75%;
}
.mcm-two-column-small {
width: 32.75%;
}
/* ----------------------------------- */
.mcm-three-equal-columns {
width: 32.75%;
}
/* ----------------------------------- */
.mcm-three-column-large {
width: 49.75%;
}
.mcm-three-column-small {
width: 24.5%;
}
/* ----------------------------------- */
.mcm-column-div {
padding-inline: 10px;
}
.mcm-column-border {
border: grey;
border-style: solid;
border-width: 0.5px;
}
.mcm-column-shadow {
box-shadow: 0 0.2rem 0.5rem var(--background-modifier-box-shadow);
}
.mcm-column-root-container {
margin: 1.5625em 0;
}
.mcm-column-parent-container {
padding: 0;
color: var(--text-normal);
page-break-inside: avoid;
border-radius: 0.1rem;
display:flex;
flex-direction:row;
}
.mcm-doc-reflow-container {
margin-top: 1.5625em;
}
.mcm-region-shadow {
box-shadow: 0 0.2rem 0.5rem var(--background-modifier-box-shadow);
}
.mcm-column-end-tag-wrapper,
.mcm-column-break-tag-wrapper,
.mcm-column-settings-wrapper,
.mcm-column-content-wrapper {
opacity: 0;
}
.mcm-column-div .mcm-column-content-wrapper {
opacity: 100;
}
.markdown-preview-section > .mcm-column-content-wrapper,
.mcm-column-break-tag-wrapper,
.mcm-column-end-tag-wrapper,
.mcm-column-settings-wrapper {
height: 0px !important;
overflow: hidden;
}
.mcm-original-column-element + .mcm-cloned-column-element {
display: none;
}
.mcm-cm-preview {
line-height: var(--lh);
white-space: normal;
word-break: keep-all;
word-wrap: normal;
}
.mcm-no-flex-shrink {
flex-shrink: 0;
}
.mcm-col-settings-preview {
color: var(--text-normal);
}
.cm-preview-code-block.preivew-mcm-start-block {
height: 0pt !important;
padding: 0pt !important;
}
.mcm-content-overflow-hidden-x {
overflow-x: hidden;
}
.mcm-content-overflow-auto-scroll-x {
overflow-x: auto;
}
.mcm-content-overflow-auto-scroll-y {
overflow-x: auto;
}
.mcm-content-overflow-hidden-y {
overflow-y: hidden;
}
.mcm-content-alignment-left {
text-align: left;
}
.mcm-table-alignment.mcm-content-alignment-left table {
margin-right: auto;
margin-left: 0px;
}
.mcm-content-alignment-center {
text-align: center;
}
.mcm-table-alignment.mcm-content-alignment-center table {
margin-right: auto;
margin-left: auto;
}
.mcm-content-alignment-right {
text-align: right;
}
.mcm-table-alignment.mcm-content-alignment-right table {
margin-right: 0px;
margin-left: auto;
}
.mcm-span-content-alignment-center {
display: block;
text-align: center;
}
.mcm-small-font-message {
font-size: small
}
/* ----------------------------------- */
.mcm-message-region {
max-height: 0;
overflow: hidden;
font-size: small;
transition: max-height 0.2s ease-out;
}
.mcm-column-error-message {
color: var(--text-error);
}
.mcm-column-error-padding {
padding: 0 10px;
}
.mcm-error-heading {
background-color: var(--background-secondary);
user-select: none;
}
.mcm-error-heading:after {
content: '\002B';
color: white;
font-weight: bold;
float: right;
margin-left: 5px;
}
.mcm-error-heading:hover {
background-color: var(--interactive-hover);
}
.mcm-error-heading-open:after {
content: "\2212";
}
.mcm-error-message-color {
color: var(--text-error);
}
.mcm-error-icon {
font-size: large;
margin-inline-end: 5px;
color: var(--text-error);
}
.mcm-warning-icon {
font-size: large;
margin-inline-end: 5px;
color: var(--color-yellow)
}

File diff suppressed because one or more lines are too long

View file

@ -5,7 +5,7 @@
"isDesktopOnly": false,
"js": "main.js",
"fundingUrl": "https://ko-fi.com/vinzent",
"version": "1.44.1",
"version": "1.44.2",
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03"
}

File diff suppressed because one or more lines are too long

View file

@ -1,10 +0,0 @@
{
"id": "obsidian-sort-and-permute-lines",
"name": "Sort & Permute lines",
"version": "0.7.0",
"description": "",
"author": "Vinzent",
"authorUrl": "https://github.com/Vinzent03",
"fundingUrl": "https://ko-fi.com/vinzent",
"isDesktopOnly": false
}

View file

@ -1,6 +0,0 @@
{
"formatType": "normal",
"showRibbonIcon": true,
"bindEnter": true,
"bindTab": true
}

File diff suppressed because one or more lines are too long

View file

@ -1,17 +0,0 @@
{
"id": "table-editor-obsidian",
"name": "Advanced Tables",
"author": "Tony Grosinger",
"authorUrl": "https://grosinger.net",
"description": "Improved table navigation, formatting, manipulation, and formulas",
"isDesktopOnly": false,
"minAppVersion": "1.0.0",
"version": "0.22.0",
"js": "main.js",
"fundingUrl": {
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
"Paypal": "https://paypal.me/tgrosinger"
},
"donation": "https://buymeacoffee.com/tgrosinger"
}

View file

@ -1,78 +0,0 @@
:root {
--advanced-tables-helper-size: 28px;
}
.HyperMD-table-row span.cm-inline-code {
font-size: 100%;
padding: 0px;
}
.advanced-tables-buttons>div>.title {
font-weight: var(--font-medium);
font-size: var(--nav-item-size);
color: var(--nav-item-color);
text-decoration: underline;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container {
column-gap: 0.2rem;
margin: 0.2rem 0 0.2rem 0;
justify-content: start;
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container::before {
min-width: 2.6rem;
line-height: var(--advanced-tables-helper-size);
font-size: var(--nav-item-size);
font-weight: var(--nav-item-weight);
color: var(--nav-item-color);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container>* {
height: var(--advanced-tables-helper-size);
line-height: var(--advanced-tables-helper-size);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button {
width: var(--advanced-tables-helper-size);
height: var(--advanced-tables-helper-size);
display: flex;
justify-content: center;
align-items: center;
border-radius: var(--radius-s);
}
[data-type="advanced-tables-toolbar"] .nav-buttons-container .nav-action-button:hover {
background-color: var(--nav-item-background-hover);
color: var(--nav-item-color-hover);
font-weight: var(--nav-item-weight-hover);
}
.advanced-tables-row-label {
width: 50px;
}
.widget-icon {
width: 20px;
height: 20px;
fill: var(--text-muted);
}
.widget-icon:hover {
fill: var(--text-normal);
}
.advanced-tables-csv-export textarea {
height: 200px;
width: 100%;
}
.advanced-tables-donation {
width: 70%;
margin: 0 auto;
text-align: center;
}
.advanced-tables-donate-button {
margin: 10px;
}

View file

@ -1,9 +0,0 @@
{
"tagPageDir": "_Tags/",
"frontmatterQueryProperty": "tag-page-query",
"nestedSeparator": "_",
"bulletedSubItems": true,
"includeLines": true,
"autoRefresh": true,
"fullLinkName": false
}

View file

@ -1,525 +0,0 @@
/*
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: () => TagPagePlugin
});
module.exports = __toCommonJS(main_exports);
var import_obsidian2 = require("obsidian");
// src/utils/obsidianApi.ts
var import_obsidian = require("obsidian");
var isTagPage = (app, tagPageFrontmatterKey, providedFile, tagOfInterest) => {
var _a, _b, _c;
const file = providedFile || ((_a = app.workspace.getActiveViewOfType(import_obsidian.MarkdownView)) == null ? void 0 : _a.file) || null;
if (!file)
return false;
const frontmatterValue = (_c = (_b = app.metadataCache.getFileCache(file)) == null ? void 0 : _b.frontmatter) == null ? void 0 : _c[tagPageFrontmatterKey];
if (tagOfInterest !== void 0) {
return frontmatterValue === tagOfInterest;
}
return !!frontmatterValue;
};
// src/utils/tagSearch.ts
var getIsWildCard = (tag) => {
const isWildCard = tag.endsWith("/*");
const cleanedTag = isWildCard ? tag.slice(0, -2) : tag;
return { isWildCard, cleanedTag };
};
var containsTag = (stringToSearch, tag) => {
const { isWildCard, cleanedTag } = getIsWildCard(tag);
const lowerStringToSearch = stringToSearch.toLowerCase();
const lowerCleanedTag = cleanedTag.toLowerCase();
if (isWildCard) {
return lowerStringToSearch.includes(lowerCleanedTag);
} else {
const regex = new RegExp(`${lowerCleanedTag}\\s`, "gi");
return regex.test(lowerStringToSearch);
}
};
var findSmallestUnitsContainingTag = (content, tag, excludeBullets = false) => {
const { isWildCard, cleanedTag } = getIsWildCard(tag);
const escapedSubstring = cleanedTag.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const wildcardPattern = isWildCard ? "(?:\\/[^\\s]*)?" : "";
const contentLines = content.split("\n").filter((line) => !(excludeBullets && line.trim().startsWith("-")));
const matchesMap = /* @__PURE__ */ new Map();
contentLines.forEach((line) => {
const regex = new RegExp(`${escapedSubstring}${wildcardPattern}`, "gi");
const matches = [...line.matchAll(regex)];
matches.forEach((match) => {
let key = match[0].toLowerCase();
if (isWildCard && key.endsWith("/*")) {
key = key.slice(0, -2);
}
if (!matchesMap.has(key)) {
matchesMap.set(key, [line.trim()]);
} else {
const existingLines = matchesMap.get(key);
if (!existingLines.includes(line.trim())) {
existingLines.push(line.trim());
}
}
});
});
return matchesMap;
};
var findBulletListsContainingTag = (content, tag) => {
const capturedBulletLists = /* @__PURE__ */ new Map();
const fileLines = content.split("\n").filter((line) => line.trim() !== "");
let currentBulletIndentation = 0;
const lastTagsAtCurrentIndentation = /* @__PURE__ */ new Set();
let capturingSubBullet = false;
fileLines.forEach((line) => {
const lineTrim = line.trim();
const startsWithBullet = lineTrim.startsWith("- ");
const lineIndentation = line.search(/\S/);
if (startsWithBullet) {
const { isWildCard, cleanedTag } = getIsWildCard(tag);
const tagRegex = isWildCard ? `${cleanedTag}(/[^\\s]+)?` : `${cleanedTag}(?![^\\s])`;
const regex = new RegExp(tagRegex, "gi");
const matches = line.match(regex);
if (startsWithBullet && (matches || lineIndentation <= currentBulletIndentation)) {
capturingSubBullet = false;
currentBulletIndentation = lineIndentation;
lastTagsAtCurrentIndentation.clear();
}
if (matches) {
capturingSubBullet = false;
matches.forEach((match) => {
var _a;
const trimmedMatch = isWildCard && match.endsWith("/") ? match.slice(0, -1) : match;
const trimmedMatchLowerCase = trimmedMatch.toLowerCase();
if (!capturedBulletLists.has(trimmedMatchLowerCase)) {
capturedBulletLists.set(trimmedMatchLowerCase, []);
}
(_a = capturedBulletLists.get(trimmedMatchLowerCase)) == null ? void 0 : _a.push(
lineIndentation > currentBulletIndentation && capturingSubBullet ? line : lineTrim
);
lastTagsAtCurrentIndentation.add(trimmedMatchLowerCase);
});
} else if (lineIndentation > currentBulletIndentation && lastTagsAtCurrentIndentation.size > 0) {
capturingSubBullet = true;
lastTagsAtCurrentIndentation.forEach((tag2) => {
var _a;
(_a = capturedBulletLists.get(tag2)) == null ? void 0 : _a.push(line);
});
}
}
});
return capturedBulletLists;
};
function consolidateTagInfo(fileLink, unitsContainingTag, bulletListsContainingTag) {
const consolidatedInfo = /* @__PURE__ */ new Map();
const addMatchesToConsolidatedInfo = (tag, matches) => {
const existingMatches = consolidatedInfo.get(tag) || [];
const newMatches = matches.map((matchString) => ({
stringContainingTag: matchString,
fileLink
}));
consolidatedInfo.set(tag, existingMatches.concat(newMatches));
};
unitsContainingTag == null ? void 0 : unitsContainingTag.forEach((matches, tag) => {
addMatchesToConsolidatedInfo(tag, matches);
});
bulletListsContainingTag == null ? void 0 : bulletListsContainingTag.forEach((matches, tag) => {
addMatchesToConsolidatedInfo(tag, matches);
});
return consolidatedInfo;
}
var processFile = async (vault, settings, file, tagOfInterest) => {
const fileContents = await vault.cachedRead(file);
if (!containsTag(fileContents, tagOfInterest))
return /* @__PURE__ */ new Map();
const fileLink = settings.fullLinkName ? `[[${file.basename}]]` : `[[${file.basename}|*]]`;
switch (true) {
case (settings.bulletedSubItems && settings.includeLines):
return consolidateTagInfo(
fileLink,
findSmallestUnitsContainingTag(
fileContents,
tagOfInterest,
true
),
findBulletListsContainingTag(fileContents, tagOfInterest)
);
case (settings.bulletedSubItems && !settings.includeLines):
return consolidateTagInfo(
fileLink,
void 0,
findBulletListsContainingTag(fileContents, tagOfInterest)
);
case (!settings.bulletedSubItems && settings.includeLines):
default:
return consolidateTagInfo(
fileLink,
findSmallestUnitsContainingTag(
fileContents,
tagOfInterest,
false
),
void 0
);
}
};
var fetchTagData = async (app, settings, tagOfInterest) => {
const vault = app.vault;
const allFiles = vault.getMarkdownFiles();
return await Promise.all(
allFiles.filter(
(file) => !isTagPage(app, settings.frontmatterQueryProperty, file)
).map((file) => processFile(vault, settings, file, tagOfInterest))
).then((tagInfos) => {
const consolidatedTagInfo = /* @__PURE__ */ new Map();
tagInfos.forEach((tagInfo) => {
tagInfo.forEach((details, tag) => {
const existingDetails = consolidatedTagInfo.get(tag) || [];
consolidatedTagInfo.set(tag, existingDetails.concat(details));
});
});
return consolidatedTagInfo;
});
};
// src/utils/pageContent.ts
var generateTagPageContent = async (app, settings, tagsInfo, tagOfInterest) => {
const tagPageContent = [];
tagPageContent.push(
`---
${settings.frontmatterQueryProperty}: "${tagOfInterest}"
---`
);
tagPageContent.push(`## Tag Content for ${tagOfInterest.replace("*", "")}`);
if (tagsInfo.size > 1) {
const sortedTagsInfo = Array.from(tagsInfo).sort((a, b) => {
return a[0].length - b[0].length;
});
sortedTagsInfo.forEach(([baseTag, details]) => {
tagPageContent.push(`### ${baseTag}`);
details.forEach(({ stringContainingTag, fileLink }) => {
processTagMatch(stringContainingTag, fileLink, tagPageContent);
});
});
} else {
tagsInfo.forEach((details) => {
details.forEach(({ stringContainingTag, fileLink }) => {
processTagMatch(stringContainingTag, fileLink, tagPageContent);
});
});
}
const filesWithFrontmatterTag = app.vault.getMarkdownFiles().filter((file) => {
var _a;
const metaMatter = (_a = app.metadataCache.getFileCache(file)) == null ? void 0 : _a.frontmatter;
return (metaMatter == null ? void 0 : metaMatter.tags) ? matchesTagOfInterest(metaMatter.tags, tagOfInterest) : false;
}).map((file) => `- [[${file.basename}]]`);
if (filesWithFrontmatterTag.length > 0) {
const { cleanedTag } = getIsWildCard(tagOfInterest);
tagPageContent.push(`## Files with ${cleanedTag} in frontmatter`);
tagPageContent.push(...filesWithFrontmatterTag);
}
return tagPageContent.join("\n");
};
var extractFrontMatterTagValue = (app, view, frontMatterTag) => {
var _a;
if (view.file) {
try {
const metaMatter = (_a = app.metadataCache.getFileCache(view.file)) == null ? void 0 : _a.frontmatter;
return metaMatter == null ? void 0 : metaMatter[frontMatterTag];
} catch (err) {
console.log(err);
return;
}
}
};
function processTagMatch(fullTag, fileLink, tagPageContent) {
if (fullTag.trim().startsWith("-")) {
const [firstBullet, ...bullets] = fullTag.split("\n");
const firstBulletWithLink = `${firstBullet} ${fileLink}`;
tagPageContent.push([firstBulletWithLink, ...bullets].join("\n"));
} else {
tagPageContent.push(`- ${fullTag} ${fileLink}`);
}
}
function matchesTagOfInterest(tags, tagOfInterest) {
const normalizedTags = Array.isArray(tags) ? tags : [tags];
const { isWildCard, cleanedTag: tagBase } = getIsWildCard(tagOfInterest);
if (isWildCard) {
return normalizedTags.some((tag) => {
const fullTag = `#${tag}`;
return fullTag === tagBase || fullTag.startsWith(`${tagBase}/`);
});
} else {
return normalizedTags.some((tag) => `#${tag}` === tagBase);
}
}
var swapPageContent = (activeLeaf, newPageContent) => {
var _a;
(_a = activeLeaf == null ? void 0 : activeLeaf.currentMode) == null ? void 0 : _a.set(newPageContent, true);
};
var generateFilename = (cleanedTag, isWildCard, nestedSeparator) => {
return `${cleanedTag.replace("#", "").replaceAll("/", nestedSeparator)}${isWildCard ? nestedSeparator + "nested" : ""}${nestedSeparator}Tags.md`;
};
// main.ts
var DEFAULT_SETTINGS = {
tagPageDir: "Tags/",
frontmatterQueryProperty: "tag-page-query",
nestedSeparator: "_",
bulletedSubItems: true,
includeLines: true,
autoRefresh: true,
fullLinkName: false
};
var TagPagePlugin = class extends import_obsidian2.Plugin {
async onload() {
await this.loadSettings();
this.addSettingTab(new TagPageSettingTab(this.app, this));
this.ribbonIcon = this.addRibbonIcon(
"tag-glyph",
"Refresh tag page",
() => {
this.refreshTagPageContent();
}
);
this.ribbonIcon.style.display = "none";
this.addCommand({
id: "create-tag-page",
name: "Create tag page",
callback: () => {
new CreateTagPageModal(this.app, this).open();
}
});
this.registerEvent(
this.app.workspace.on("layout-change", () => {
this.updateRibbonIconVisibility();
this.autoRefreshTagPage();
})
);
this.registerEvent(
this.app.workspace.on("file-open", () => {
this.updateRibbonIconVisibility();
this.autoRefreshTagPage();
})
);
this.updateRibbonIconVisibility();
await this.autoRefreshTagPage();
}
updateRibbonIconVisibility() {
this.ribbonIcon.style.display = isTagPage(
this.app,
this.settings.frontmatterQueryProperty
) ? "block" : "none";
}
async autoRefreshTagPage() {
if (this.settings.autoRefresh && isTagPage(this.app, this.settings.frontmatterQueryProperty)) {
await this.refreshTagPageContent();
}
}
onunload() {
}
async loadSettings() {
this.settings = Object.assign(
{},
DEFAULT_SETTINGS,
await this.loadData()
);
}
async saveSettings() {
await this.saveData(this.settings);
}
/**
* Refreshes the content of the active tag page based on the current settings.
*
* @returns {Promise<void>} - A promise that resolves when the operation is complete.
*/
async refreshTagPageContent() {
const activeLeaf = this.app.workspace.getActiveViewOfType(import_obsidian2.MarkdownView);
if (!activeLeaf)
return;
const tagOfInterest = extractFrontMatterTagValue(
this.app,
activeLeaf,
this.settings.frontmatterQueryProperty
);
if (!tagOfInterest)
return;
const tagsInfo = await fetchTagData(
this.app,
this.settings,
tagOfInterest
);
const tagPageContentString = await generateTagPageContent(
this.app,
this.settings,
tagsInfo,
tagOfInterest
);
swapPageContent(activeLeaf, tagPageContentString);
}
/**
* Creates a new tag page or navigates to an existing one.
*
* @param {string} tag - The tag for which to create or navigate to a page.
* @returns {Promise<void>} - A promise that resolves when the operation is complete.
*/
async createTagPage(tag) {
const tagOfInterest = tag.startsWith("#") ? tag : `#${tag}`;
const { isWildCard, cleanedTag } = getIsWildCard(tagOfInterest);
const filename = generateFilename(
cleanedTag,
isWildCard,
this.settings.nestedSeparator
);
const tagPage = this.app.vault.getAbstractFileByPath(
`${this.settings.tagPageDir}${filename}`
);
if (!tagPage) {
const tagsInfo = await fetchTagData(
this.app,
this.settings,
tagOfInterest
);
const tagPageContentString = await generateTagPageContent(
this.app,
this.settings,
tagsInfo,
tagOfInterest
);
const exists = await this.app.vault.adapter.exists(
(0, import_obsidian2.normalizePath)(this.settings.tagPageDir)
);
if (!exists) {
await this.app.vault.createFolder(this.settings.tagPageDir);
}
const createdPage = await this.app.vault.create(
`${this.settings.tagPageDir}${filename}`,
tagPageContentString
);
await this.app.workspace.getLeaf().openFile(createdPage);
} else {
await this.app.workspace.getLeaf().openFile(tagPage);
}
}
};
var CreateTagPageModal = class extends import_obsidian2.Modal {
constructor(app, plugin) {
super(app);
this.plugin = plugin;
}
onOpen() {
const { contentEl } = this;
contentEl.setText("Tag to create page for:");
const tagForm = contentEl.createEl("form");
contentEl.addClass("create-page-modal");
const input = tagForm.createEl("input", { type: "text" });
input.placeholder = "#tag";
input.value = "#";
input.addEventListener("keydown", (e) => {
const cursorPosition = input.selectionStart;
if (cursorPosition === 1 && (e.key === "Backspace" || e.key === "Delete")) {
e.preventDefault();
}
});
const submitButton = tagForm.createEl("button", { type: "submit" });
submitButton.innerText = "Create Tag Page";
tagForm.addEventListener("submit", async (e) => {
e.preventDefault();
const tag = input.value;
this.contentEl.empty();
this.contentEl.setText(`Creating tag page for ${tag}...`);
await this.plugin.createTagPage(tag);
this.close();
});
}
onClose() {
const { contentEl } = this;
contentEl.empty();
}
};
var TagPageSettingTab = class extends import_obsidian2.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
}
display() {
const { containerEl } = this;
containerEl.empty();
new import_obsidian2.Setting(containerEl).setName("Tag page directory").setDesc("The directory in which to create tag pages.").addText(
(text) => text.setValue(this.plugin.settings.tagPageDir).onChange(async (value) => {
if (!value.endsWith("/")) {
value = `${value}/`;
}
this.plugin.settings.tagPageDir = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Frontmatter query property").setDesc(
"The frontmatter property to use storing the query tag within the tag page. Required for page refresh."
).addText(
(text) => text.setValue(this.plugin.settings.frontmatterQueryProperty).onChange(async (value) => {
this.plugin.settings.frontmatterQueryProperty = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Nested page separator").setDesc(
`Text used to separate levels for nested tags. Avoid \\/<>:"|?* and other characters that aren't file-safe, or you won't be able to make pages for nested tags.`
).addText(
(text) => text.setValue(this.plugin.settings.nestedSeparator).onChange(async (value) => {
this.plugin.settings.nestedSeparator = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Include lines").setDesc("Include lines containing the tag in the tag page.").addToggle(
(toggle) => toggle.setValue(this.plugin.settings.includeLines).onChange(async (value) => {
this.plugin.settings.includeLines = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Bulleted sub-items").setDesc(
"Include bulleted sub-items containing the tag in the tag page."
).addToggle(
(toggle) => toggle.setValue(this.plugin.settings.bulletedSubItems).onChange(async (value) => {
this.plugin.settings.bulletedSubItems = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Auto refresh").setDesc(
"Automatically refresh tag pages when they are opened or become active."
).addToggle(
(toggle) => toggle.setValue(this.plugin.settings.autoRefresh).onChange(async (value) => {
this.plugin.settings.autoRefresh = value;
await this.plugin.saveSettings();
})
);
new import_obsidian2.Setting(containerEl).setName("Display full link name as reference").setDesc(
"Each bit of pulled content will display the full link title as a reference as an end of line. Displays * when false."
).addToggle(
(toggle) => toggle.setValue(this.plugin.settings.fullLinkName).onChange(async (value) => {
this.plugin.settings.fullLinkName = value;
await this.plugin.saveSettings();
})
);
}
};

View file

@ -1,11 +0,0 @@
{
"id": "tag-page-md",
"name": "Tag Page",
"version": "1.1.0",
"minAppVersion": "0.15.0",
"description": "Dynamically generate and update tag-specific pages, offering a consolidated view of each tag's references across your vault.",
"author": "Matthew Sumpter",
"authorUrl": "https://matthewsumpter.org",
"fundingUrl": "https://www.buymeacoffee.com/buymeacofftu",
"isDesktopOnly": false
}

View file

@ -1,29 +0,0 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/
.create-page-modal {
/* add margin to all children */
& > * {
margin: 10px;
}
display: flex;
flex-direction: column;
text-align: center;
& form {
display: flex;
flex-direction: column;
& > input {
text-align: center;
}
}
}

View file

@ -10,16 +10,53 @@
{
"id": "7d5274162457b1c7",
"type": "leaf",
"pinned": true,
"state": {
"type": "markdown",
"state": {
"file": "Readme.md",
"mode": "preview",
"source": true
}
},
"pinned": true,
"icon": "lucide-file",
"title": "Readme"
}
},
{
"id": "073b99b42ebd2844",
"type": "leaf",
"pinned": true,
"state": {
"type": "markdown",
"state": {
"file": "Notes/__Using The Vault.md",
"mode": "preview",
"source": true
},
"pinned": true,
"icon": "lucide-file",
"title": "__Using The Vault"
}
},
{
"id": "ac5db91574f2a15e",
"type": "leaf",
"pinned": true,
"state": {
"type": "markdown",
"state": {
"file": "__Dashboard.md",
"mode": "preview",
"source": true
},
"pinned": true,
"icon": "lucide-file",
"title": "__Dashboard"
}
}
]
],
"currentTab": 1
}
],
"direction": "vertical"
@ -39,7 +76,9 @@
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
@ -54,7 +93,9 @@
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
},
"icon": "lucide-search",
"title": "Search"
}
},
{
@ -62,7 +103,9 @@
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
@ -93,7 +136,9 @@
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
},
"icon": "links-coming-in",
"title": "Backlinks for Readme"
}
},
{
@ -105,7 +150,9 @@
"file": "Readme.md",
"linksCollapsed": false,
"unlinkedCollapsed": true
}
},
"icon": "links-going-out",
"title": "Outgoing links from Readme"
}
},
{
@ -116,7 +163,9 @@
"state": {
"sortOrder": "frequency",
"useHierarchy": true
}
},
"icon": "lucide-tags",
"title": "Tags"
}
},
{
@ -126,7 +175,9 @@
"type": "outline",
"state": {
"file": "Readme.md"
}
},
"icon": "lucide-list",
"title": "Outline of Readme"
}
},
{
@ -138,7 +189,9 @@
"sortOrder": "frequency",
"showSearch": false,
"searchQuery": ""
}
},
"icon": "lucide-archive",
"title": "All properties"
}
}
],
@ -160,11 +213,12 @@
"table-editor-obsidian:Advanced Tables Toolbar": true
}
},
"active": "7d5274162457b1c7",
"active": "073b99b42ebd2844",
"lastOpenFiles": [
"Notes/__Using The Vault.md",
"Readme.md",
"Notes/__Using The Vault.md",
"__Dashboard.md",
"Notes/_Troubleshooting The Vault.md",
"Notes/Obtaining Source Material.md",
"Notes/Obsidian ToC.md",
"Notes/Krita Quick Reference.md",
@ -177,7 +231,6 @@
"Notes/Convert PDF Coloring Pages.md",
"Notes/Color Palette Generator.md",
"Notes/Android Drawing Apps.md",
"Notes/_Troubleshooting The Vault.md",
"_Gallery - Favorites.md",
"Notes/attachments/Imagepipe_360.jpg",
"Notes/attachments/Imagepipe_359.jpg",