cleanup and update installed plugins
This commit is contained in:
parent
f119a01042
commit
008f7d9f19
2
.obsidian/community-plugins.json
vendored
2
.obsidian/community-plugins.json
vendored
|
@ -4,11 +4,9 @@
|
||||||
"note-gallery",
|
"note-gallery",
|
||||||
"smart-random-note",
|
"smart-random-note",
|
||||||
"tag-word-cloud",
|
"tag-word-cloud",
|
||||||
"obsidian-sort-and-permute-lines",
|
|
||||||
"dashboard-navigator",
|
"dashboard-navigator",
|
||||||
"automatic-table-of-contents",
|
"automatic-table-of-contents",
|
||||||
"obsidian-advanced-uri",
|
"obsidian-advanced-uri",
|
||||||
"table-editor-obsidian",
|
|
||||||
"folder-notes",
|
"folder-notes",
|
||||||
"waypoint"
|
"waypoint"
|
||||||
]
|
]
|
47
.obsidian/core-plugins.json
vendored
47
.obsidian/core-plugins.json
vendored
|
@ -1,17 +1,30 @@
|
||||||
[
|
{
|
||||||
"file-explorer",
|
"file-explorer": true,
|
||||||
"global-search",
|
"global-search": true,
|
||||||
"graph",
|
"switcher": false,
|
||||||
"backlink",
|
"graph": true,
|
||||||
"canvas",
|
"backlink": true,
|
||||||
"outgoing-link",
|
"canvas": true,
|
||||||
"tag-pane",
|
"outgoing-link": true,
|
||||||
"properties",
|
"tag-pane": true,
|
||||||
"page-preview",
|
"properties": true,
|
||||||
"command-palette",
|
"page-preview": true,
|
||||||
"editor-status",
|
"daily-notes": false,
|
||||||
"bookmarks",
|
"templates": false,
|
||||||
"zk-prefixer",
|
"note-composer": false,
|
||||||
"outline",
|
"command-palette": true,
|
||||||
"file-recovery"
|
"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
|
||||||
|
}
|
2076
.obsidian/plugins/attachment-management/main.js
vendored
2076
.obsidian/plugins/attachment-management/main.js
vendored
File diff suppressed because it is too large
Load diff
|
@ -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
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -14,5 +14,12 @@
|
||||||
"color_audios": "#bfbf00",
|
"color_audios": "#bfbf00",
|
||||||
"color_pdf": "#00a300",
|
"color_pdf": "#00a300",
|
||||||
"color_other": "#828282",
|
"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": []
|
||||||
}
|
}
|
1492
.obsidian/plugins/dashboard-navigator/main.js
vendored
1492
.obsidian/plugins/dashboard-navigator/main.js
vendored
File diff suppressed because one or more lines are too long
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "dashboard-navigator",
|
"id": "dashboard-navigator",
|
||||||
"name": "Dashboard navigator",
|
"name": "Dashboard navigator",
|
||||||
"version": "2.0.0",
|
"version": "5.2.0",
|
||||||
"minAppVersion": "1.1.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.",
|
"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",
|
"author": "Bernardo Pires",
|
||||||
|
|
285
.obsidian/plugins/dashboard-navigator/styles.css
vendored
285
.obsidian/plugins/dashboard-navigator/styles.css
vendored
|
@ -5,6 +5,7 @@ body {
|
||||||
--dn-background-color: var(--background-secondary);
|
--dn-background-color: var(--background-secondary);
|
||||||
--dn-foreground-color: var(--text-normal);
|
--dn-foreground-color: var(--text-normal);
|
||||||
--dn-border-color: var(--background-modifier-border);
|
--dn-border-color: var(--background-modifier-border);
|
||||||
|
--dn-border-color-hover: var(--background-modifier-border-hover);
|
||||||
--dn-file-property-color: #828282;
|
--dn-file-property-color: #828282;
|
||||||
--dn-font-size: 16px;
|
--dn-font-size: 16px;
|
||||||
|
|
||||||
|
@ -71,7 +72,7 @@ body {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
margin-top: var(--size-4-1);
|
margin-top: var(--size-4-1);
|
||||||
margin-bottom: var(--size-4-2);
|
margin-bottom: var(--size-4-1);
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
align-content: center;
|
align-content: center;
|
||||||
}
|
}
|
||||||
|
@ -251,6 +252,7 @@ body {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.dn-ext,
|
||||||
a.dn-folder-path {
|
a.dn-folder-path {
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
}
|
}
|
||||||
|
@ -280,57 +282,69 @@ table#dn-table td {
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
padding: var(--size-4-1) var(--size-4-2);
|
padding: var(--size-4-1) var(--size-4-2);
|
||||||
min-width: 50px;
|
min-width: 50px;
|
||||||
width: clamp(50px, auto, unset);
|
|
||||||
font-size: var(--dn-font-size);
|
font-size: var(--dn-font-size);
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th {
|
table#dn-table th {
|
||||||
|
position: sticky;
|
||||||
|
top: 80px;
|
||||||
|
z-index: 901;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-weight: var(--font-semibold);
|
font-weight: var(--font-semibold);
|
||||||
color: var(--text-normal);
|
color: var(--text-normal);
|
||||||
border-bottom: 1px solid var(--dn-border-color);
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
background-color: var(--background-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th:not(.sort-active, th:nth-child(5)):hover {
|
table#dn-table th:not(th:nth-child(6), th:nth-child(7)):hover {
|
||||||
background-color: var(--tag-background);
|
background-color: var(--background-secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th.sort-active {
|
table#dn-table th.sort-active {
|
||||||
color: var(--text-normal);
|
color: var(--text-normal);
|
||||||
background-color: var(--tag-background);
|
background-color: var(--background-secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th.sort-active.sort-asc::before {
|
table#dn-table th.sort-active.sort-asc::before {
|
||||||
content: " ↑";
|
content: " ↑";
|
||||||
color: var(--text-accent);
|
|
||||||
font-weight: var(--font-bold);
|
font-weight: var(--font-bold);
|
||||||
|
color: var(--interactive-accent);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th.sort-active.sort-desc::before {
|
table#dn-table th.sort-active.sort-desc::before {
|
||||||
content: " ↓";
|
content: " ↓";
|
||||||
color: var(--text-accent);
|
|
||||||
font-weight: var(--font-bold);
|
font-weight: var(--font-bold);
|
||||||
|
color: var(--interactive-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th:nth-child(1),
|
table#dn-table th:nth-child(1),
|
||||||
table#dn-table th:nth-child(2),
|
table#dn-table th:nth-child(2),
|
||||||
table#dn-table th:nth-child(3),
|
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;
|
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;
|
text-align: right;
|
||||||
padding-right: 1em;
|
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;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table tr:hover td {
|
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 {
|
.dn-search-input-container {
|
||||||
|
@ -367,25 +381,17 @@ table#dn-table tr:hover td {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dn-pagination {
|
.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;
|
text-align: right;
|
||||||
font-size: .9em;
|
font-size: .9em;
|
||||||
}
|
background-color: var(--background-secondary);
|
||||||
|
z-index: 900;
|
||||||
.dn-pagination span {
|
justify-content: space-between;
|
||||||
margin-right: 1em;
|
border: 1px solid var(--dn-border-color);
|
||||||
}
|
opacity: .9;
|
||||||
|
|
||||||
.dn-pagination span {
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dn-pagination-total-results {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dn-pagination-total-results::after {
|
|
||||||
clear: left;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.dn-btn-prev:disabled,
|
.dn-btn-prev:disabled,
|
||||||
|
@ -396,6 +402,7 @@ table#dn-table tr:hover td {
|
||||||
.dn-btn-prev,
|
.dn-btn-prev,
|
||||||
.dn-btn-next {
|
.dn-btn-next {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
margin-left: var(--size-4-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* File icons */
|
/* File icons */
|
||||||
|
@ -513,6 +520,7 @@ a.dn-f-other::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dn-no-results-found {
|
.dn-no-results-found {
|
||||||
|
padding-left: var(--size-4-2);
|
||||||
color: var(--text-faint);
|
color: var(--text-faint);
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
@ -522,12 +530,41 @@ a.dn-tag {
|
||||||
border-radius: var(--tag-radius);
|
border-radius: var(--tag-radius);
|
||||||
margin-right: var(--size-4-1);
|
margin-right: var(--size-4-1);
|
||||||
padding-inline-end: var(--tag-padding-x);
|
padding-inline-end: var(--tag-padding-x);
|
||||||
font-size: var(--tag-size);
|
font-size: var(--font-size);
|
||||||
background-color: var(--tag-background);
|
background-color: var(--tag-background);
|
||||||
color: var(--tag-color);
|
color: var(--tag-color);
|
||||||
text-decoration: none;
|
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-other,
|
||||||
#dn-videos,
|
#dn-videos,
|
||||||
#dn-audios,
|
#dn-audios,
|
||||||
|
@ -535,7 +572,8 @@ a.dn-tag {
|
||||||
#dn-images,
|
#dn-images,
|
||||||
#dn-canvas,
|
#dn-canvas,
|
||||||
#dn-recent-notes,
|
#dn-recent-notes,
|
||||||
#dn-recent-files {
|
#dn-recent-files,
|
||||||
|
#dn-last-opened-files {
|
||||||
padding: var(--size-4-2);
|
padding: var(--size-4-2);
|
||||||
background-color: var(--background-primary);
|
background-color: var(--background-primary);
|
||||||
border: 1px solid var(--background-modifier-border);
|
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);
|
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 of :not(.dn-hidden)) {
|
||||||
table#dn-table.dn-tbl-column td:nth-child(even) {
|
|
||||||
background-color: var(--dn-even-background-color);
|
background-color: var(--dn-even-background-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,15 +627,60 @@ table#dn-table.dn-tbl-default td {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dn-div-top-preview-btns {
|
||||||
|
text-align: left;
|
||||||
|
display: flex;
|
||||||
|
justify-content: left;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.dn-div-bottom-properties {
|
.dn-div-bottom-properties {
|
||||||
text-align: center;
|
text-align: left;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dn-btn-close-properties {
|
.dn-div-top-preview-btns button,
|
||||||
width: 30%;
|
.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) {
|
@media screen and (max-width: 1024px) {
|
||||||
.dn-flex {
|
.dn-flex {
|
||||||
|
@ -621,10 +703,10 @@ table#dn-table.dn-tbl-default td {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
}
|
}
|
||||||
|
|
||||||
table#dn-table th:nth-child(3),
|
table#dn-table th:nth-child(4),
|
||||||
table#dn-table td:nth-child(3),
|
table#dn-table td:nth-child(4),
|
||||||
table#dn-table th:nth-child(5),
|
table#dn-table th:nth-child(6),
|
||||||
table#dn-table td:nth-child(5) {
|
table#dn-table td:nth-child(6) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -667,7 +749,11 @@ table#dn-table.dn-tbl-default td {
|
||||||
table#dn-table th:nth-child(4),
|
table#dn-table th:nth-child(4),
|
||||||
table#dn-table td:nth-child(4),
|
table#dn-table td:nth-child(4),
|
||||||
table#dn-table th:nth-child(5),
|
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;
|
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;
|
||||||
|
}
|
141
.obsidian/plugins/line-arrange/main.js
vendored
141
.obsidian/plugins/line-arrange/main.js
vendored
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/line-arrange/manifest.json
vendored
10
.obsidian/plugins/line-arrange/manifest.json
vendored
|
@ -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
|
|
||||||
}
|
|
214
.obsidian/plugins/litegallery/main.js
vendored
214
.obsidian/plugins/litegallery/main.js
vendored
|
@ -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() {
|
|
||||||
}
|
|
||||||
};
|
|
10
.obsidian/plugins/litegallery/manifest.json
vendored
10
.obsidian/plugins/litegallery/manifest.json
vendored
|
@ -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
|
|
||||||
}
|
|
111
.obsidian/plugins/litegallery/styles.css
vendored
111
.obsidian/plugins/litegallery/styles.css
vendored
|
@ -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;
|
|
||||||
|
|
||||||
}
|
|
6555
.obsidian/plugins/multi-column-markdown/main.js
vendored
6555
.obsidian/plugins/multi-column-markdown/main.js
vendored
File diff suppressed because one or more lines are too long
|
@ -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
|
|
||||||
}
|
|
249
.obsidian/plugins/multi-column-markdown/styles.css
vendored
249
.obsidian/plugins/multi-column-markdown/styles.css
vendored
|
@ -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
|
@ -5,7 +5,7 @@
|
||||||
"isDesktopOnly": false,
|
"isDesktopOnly": false,
|
||||||
"js": "main.js",
|
"js": "main.js",
|
||||||
"fundingUrl": "https://ko-fi.com/vinzent",
|
"fundingUrl": "https://ko-fi.com/vinzent",
|
||||||
"version": "1.44.1",
|
"version": "1.44.2",
|
||||||
"author": "Vinzent",
|
"author": "Vinzent",
|
||||||
"authorUrl": "https://github.com/Vinzent03"
|
"authorUrl": "https://github.com/Vinzent03"
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -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
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"formatType": "normal",
|
|
||||||
"showRibbonIcon": true,
|
|
||||||
"bindEnter": true,
|
|
||||||
"bindTab": true
|
|
||||||
}
|
|
14109
.obsidian/plugins/table-editor-obsidian/main.js
vendored
14109
.obsidian/plugins/table-editor-obsidian/main.js
vendored
File diff suppressed because one or more lines are too long
|
@ -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"
|
|
||||||
}
|
|
|
@ -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;
|
|
||||||
}
|
|
9
.obsidian/plugins/tag-page-md/data.json
vendored
9
.obsidian/plugins/tag-page-md/data.json
vendored
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"tagPageDir": "_Tags/",
|
|
||||||
"frontmatterQueryProperty": "tag-page-query",
|
|
||||||
"nestedSeparator": "_",
|
|
||||||
"bulletedSubItems": true,
|
|
||||||
"includeLines": true,
|
|
||||||
"autoRefresh": true,
|
|
||||||
"fullLinkName": false
|
|
||||||
}
|
|
525
.obsidian/plugins/tag-page-md/main.js
vendored
525
.obsidian/plugins/tag-page-md/main.js
vendored
|
@ -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();
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
};
|
|
11
.obsidian/plugins/tag-page-md/manifest.json
vendored
11
.obsidian/plugins/tag-page-md/manifest.json
vendored
|
@ -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
|
|
||||||
}
|
|
29
.obsidian/plugins/tag-page-md/styles.css
vendored
29
.obsidian/plugins/tag-page-md/styles.css
vendored
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
79
.obsidian/workspace.json
vendored
79
.obsidian/workspace.json
vendored
|
@ -10,16 +10,53 @@
|
||||||
{
|
{
|
||||||
"id": "7d5274162457b1c7",
|
"id": "7d5274162457b1c7",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
|
"pinned": true,
|
||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Readme.md",
|
"file": "Readme.md",
|
||||||
"mode": "preview",
|
"mode": "preview",
|
||||||
"source": true
|
"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"
|
"direction": "vertical"
|
||||||
|
@ -39,7 +76,9 @@
|
||||||
"type": "file-explorer",
|
"type": "file-explorer",
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "alphabetical"
|
"sortOrder": "alphabetical"
|
||||||
}
|
},
|
||||||
|
"icon": "lucide-folder-closed",
|
||||||
|
"title": "Files"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -54,7 +93,9 @@
|
||||||
"collapseAll": false,
|
"collapseAll": false,
|
||||||
"extraContext": false,
|
"extraContext": false,
|
||||||
"sortOrder": "alphabetical"
|
"sortOrder": "alphabetical"
|
||||||
}
|
},
|
||||||
|
"icon": "lucide-search",
|
||||||
|
"title": "Search"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -62,7 +103,9 @@
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "bookmarks",
|
"type": "bookmarks",
|
||||||
"state": {}
|
"state": {},
|
||||||
|
"icon": "lucide-bookmark",
|
||||||
|
"title": "Bookmarks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -93,7 +136,9 @@
|
||||||
"searchQuery": "",
|
"searchQuery": "",
|
||||||
"backlinkCollapsed": false,
|
"backlinkCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
}
|
},
|
||||||
|
"icon": "links-coming-in",
|
||||||
|
"title": "Backlinks for Readme"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -105,7 +150,9 @@
|
||||||
"file": "Readme.md",
|
"file": "Readme.md",
|
||||||
"linksCollapsed": false,
|
"linksCollapsed": false,
|
||||||
"unlinkedCollapsed": true
|
"unlinkedCollapsed": true
|
||||||
}
|
},
|
||||||
|
"icon": "links-going-out",
|
||||||
|
"title": "Outgoing links from Readme"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -116,7 +163,9 @@
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "frequency",
|
"sortOrder": "frequency",
|
||||||
"useHierarchy": true
|
"useHierarchy": true
|
||||||
}
|
},
|
||||||
|
"icon": "lucide-tags",
|
||||||
|
"title": "Tags"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -126,7 +175,9 @@
|
||||||
"type": "outline",
|
"type": "outline",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "Readme.md"
|
"file": "Readme.md"
|
||||||
}
|
},
|
||||||
|
"icon": "lucide-list",
|
||||||
|
"title": "Outline of Readme"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -138,7 +189,9 @@
|
||||||
"sortOrder": "frequency",
|
"sortOrder": "frequency",
|
||||||
"showSearch": false,
|
"showSearch": false,
|
||||||
"searchQuery": ""
|
"searchQuery": ""
|
||||||
}
|
},
|
||||||
|
"icon": "lucide-archive",
|
||||||
|
"title": "All properties"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -160,11 +213,12 @@
|
||||||
"table-editor-obsidian:Advanced Tables Toolbar": true
|
"table-editor-obsidian:Advanced Tables Toolbar": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"active": "7d5274162457b1c7",
|
"active": "073b99b42ebd2844",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"Notes/__Using The Vault.md",
|
|
||||||
"Readme.md",
|
"Readme.md",
|
||||||
|
"Notes/__Using The Vault.md",
|
||||||
"__Dashboard.md",
|
"__Dashboard.md",
|
||||||
|
"Notes/_Troubleshooting The Vault.md",
|
||||||
"Notes/Obtaining Source Material.md",
|
"Notes/Obtaining Source Material.md",
|
||||||
"Notes/Obsidian ToC.md",
|
"Notes/Obsidian ToC.md",
|
||||||
"Notes/Krita Quick Reference.md",
|
"Notes/Krita Quick Reference.md",
|
||||||
|
@ -177,7 +231,6 @@
|
||||||
"Notes/Convert PDF Coloring Pages.md",
|
"Notes/Convert PDF Coloring Pages.md",
|
||||||
"Notes/Color Palette Generator.md",
|
"Notes/Color Palette Generator.md",
|
||||||
"Notes/Android Drawing Apps.md",
|
"Notes/Android Drawing Apps.md",
|
||||||
"Notes/_Troubleshooting The Vault.md",
|
|
||||||
"_Gallery - Favorites.md",
|
"_Gallery - Favorites.md",
|
||||||
"Notes/attachments/Imagepipe_360.jpg",
|
"Notes/attachments/Imagepipe_360.jpg",
|
||||||
"Notes/attachments/Imagepipe_359.jpg",
|
"Notes/attachments/Imagepipe_359.jpg",
|
||||||
|
|
Loading…
Reference in a new issue