First commit
This commit is contained in:
7
.obsidian/plugins/custom-font-loader/data.json
vendored
Normal file
7
.obsidian/plugins/custom-font-loader/data.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"font_folder": ".obsidian/fonts/",
|
||||
"font": "JetBrainsMonoNL-Regular.ttf",
|
||||
"force_mode": false,
|
||||
"custom_css_mode": false,
|
||||
"custom_css": "/* Example CSS for your font: jetbrainsmononl-regular */\n\n/* Apply to all text */\n:root * {\n\t--font-default: 'jetbrainsmononl-regular';\n\t--default-font: 'jetbrainsmononl-regular';\n\t--font-family-editor: 'jetbrainsmononl-regular';\n\t--font-interface-override: 'jetbrainsmononl-regular';\n\t--font-text-override: 'jetbrainsmononl-regular';\n}\n\n/* Example: Apply to custom CSS class */\n.custom-font * {\n\tfont-family: 'jetbrainsmononl-regular' !important;\n}\n\n/* Example: Apply to specific elements only */\n.custom-font h1, .custom-font h2, .custom-font h3 {\n\tfont-family: 'jetbrainsmononl-regular' !important;\n}"
|
||||
}
|
||||
5
.obsidian/plugins/custom-font-loader/jetbrainsmononl-regular_ttf.css
vendored
Normal file
5
.obsidian/plugins/custom-font-loader/jetbrainsmononl-regular_ttf.css
vendored
Normal file
File diff suppressed because one or more lines are too long
389
.obsidian/plugins/custom-font-loader/main.js
vendored
Normal file
389
.obsidian/plugins/custom-font-loader/main.js
vendored
Normal file
@@ -0,0 +1,389 @@
|
||||
/*
|
||||
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: () => FontPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
font_folder: "",
|
||||
font: "None",
|
||||
force_mode: false,
|
||||
custom_css_mode: false,
|
||||
custom_css: ""
|
||||
};
|
||||
function get_default_css(font_family_name, css_class = ":root *") {
|
||||
return `${css_class} {
|
||||
--font-default: '${font_family_name}';
|
||||
--default-font: '${font_family_name}';
|
||||
--font-family-editor: '${font_family_name}';
|
||||
--font-monospace-default: '${font_family_name}';
|
||||
--font-interface-override: '${font_family_name}';
|
||||
--font-text-override: '${font_family_name}';
|
||||
--font-monospace-override: '${font_family_name}';
|
||||
}
|
||||
`;
|
||||
}
|
||||
function get_custom_css(font_family_name, css_class = ":root *") {
|
||||
return `${css_class} * {
|
||||
font-family: '${font_family_name}' !important;
|
||||
}`;
|
||||
}
|
||||
function arrayBufferToBase64(buffer) {
|
||||
let binary = "";
|
||||
const bytes = new Uint8Array(buffer);
|
||||
for (let i = 0; i < bytes.byteLength; i++) {
|
||||
binary += String.fromCharCode(bytes[i]);
|
||||
}
|
||||
return btoa(binary);
|
||||
}
|
||||
function applyCss(css, css_id, appendMode = false) {
|
||||
const existingStyle = document.getElementById(css_id);
|
||||
if (existingStyle && appendMode) {
|
||||
existingStyle.innerHTML += css;
|
||||
} else {
|
||||
const style = document.createElement("style");
|
||||
style.innerHTML = css;
|
||||
document.head.appendChild(style);
|
||||
if (existingStyle) {
|
||||
existingStyle.remove();
|
||||
}
|
||||
style.id = css_id;
|
||||
}
|
||||
}
|
||||
var FontPlugin = class extends import_obsidian.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.config_dir = this.app.vault.configDir;
|
||||
this.plugin_folder_path = `${this.config_dir}/plugins/custom-font-loader`;
|
||||
this.processingNoticeShown = false;
|
||||
}
|
||||
async load_plugin() {
|
||||
await this.loadSettings();
|
||||
try {
|
||||
const font_file_name = this.settings.font;
|
||||
if (font_file_name && font_file_name.toLowerCase() != "none") {
|
||||
if (font_file_name != "all") {
|
||||
await this.process_and_load_font(font_file_name, false);
|
||||
} else {
|
||||
applyCss("", "custom_font_base64");
|
||||
const files = await this.app.vault.adapter.list(
|
||||
this.settings.font_folder
|
||||
);
|
||||
for (const file of files.files) {
|
||||
const file_name = file.replace(
|
||||
this.settings.font_folder,
|
||||
""
|
||||
);
|
||||
await this.process_and_load_font(file_name, true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
applyCss("", "custom_font_base64");
|
||||
applyCss("", "custom_font_general");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error loading fonts:", error);
|
||||
new import_obsidian.Notice(`Error loading fonts: ${error.message || error}`);
|
||||
}
|
||||
}
|
||||
async process_and_load_font(font_file_name, load_all_fonts) {
|
||||
try {
|
||||
console.log("loading %s", font_file_name);
|
||||
const css_font_path = `${this.plugin_folder_path}/${font_file_name.toLowerCase().replace(".", "_")}.css`;
|
||||
if (!await this.app.vault.adapter.exists(css_font_path)) {
|
||||
await this.convert_font_to_css(font_file_name, css_font_path);
|
||||
await this.load_font(css_font_path, load_all_fonts);
|
||||
await this.load_css(font_file_name);
|
||||
} else {
|
||||
await this.load_font(css_font_path, load_all_fonts);
|
||||
await this.load_css(font_file_name);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Error processing font ${font_file_name}:`, error);
|
||||
new import_obsidian.Notice(`Failed to process font: ${font_file_name}`);
|
||||
}
|
||||
}
|
||||
async load_font(css_font_path, appendMode) {
|
||||
const content = await this.app.vault.adapter.read(css_font_path);
|
||||
applyCss(content, "custom_font_base64", appendMode);
|
||||
}
|
||||
async load_css(font_file_name) {
|
||||
let css_string = "";
|
||||
const font_family_name = font_file_name.split(".")[0].toLowerCase();
|
||||
if (this.settings.custom_css_mode) {
|
||||
css_string = this.settings.custom_css;
|
||||
} else {
|
||||
css_string = get_default_css(font_family_name);
|
||||
}
|
||||
if (this.settings.force_mode)
|
||||
css_string += `
|
||||
* {
|
||||
font-family: '${font_family_name}' !important;
|
||||
}
|
||||
`;
|
||||
applyCss(css_string, "custom_font_general");
|
||||
}
|
||||
async convert_font_to_css(font_file_name, css_font_path) {
|
||||
try {
|
||||
if (!this.processingNoticeShown) {
|
||||
new import_obsidian.Notice("Processing Font files");
|
||||
this.processingNoticeShown = true;
|
||||
setTimeout(() => {
|
||||
this.processingNoticeShown = false;
|
||||
}, 5e3);
|
||||
}
|
||||
const file = `${this.settings.font_folder}/${font_file_name}`;
|
||||
const arrayBuffer = await this.app.vault.adapter.readBinary(file);
|
||||
const font_family_name = font_file_name.split(".")[0].toLowerCase();
|
||||
const font_extension_name = font_file_name.split(".")[1].toLowerCase();
|
||||
const fontBlob = new Blob([arrayBuffer]);
|
||||
const fontUrl = URL.createObjectURL(fontBlob);
|
||||
const fontFace = new FontFace(font_family_name, `url(${fontUrl})`, {
|
||||
display: "swap"
|
||||
// Better loading performance
|
||||
});
|
||||
try {
|
||||
await fontFace.load();
|
||||
const fonts = document.fonts;
|
||||
if (fonts && typeof fonts.add === "function") {
|
||||
fonts.add(fontFace);
|
||||
console.log(`Font ${font_family_name} loaded successfully using CSS Font Loading API`);
|
||||
} else {
|
||||
console.log(`CSS Font Loading API not fully supported, falling back to traditional method for ${font_family_name}`);
|
||||
throw new Error("CSS Font Loading API not supported");
|
||||
}
|
||||
const base64 = arrayBufferToBase64(arrayBuffer);
|
||||
const css_type = font_extension_name === "woff" ? "font/woff" : font_extension_name === "woff2" ? "font/woff2" : font_extension_name === "otf" ? "font/opentype" : "font/truetype";
|
||||
const base64_css = `@font-face{
|
||||
font-family: '${font_family_name}';
|
||||
src: url(data:${css_type};base64,${base64});
|
||||
font-display: swap;
|
||||
}`;
|
||||
await this.app.vault.adapter.write(css_font_path, base64_css);
|
||||
URL.revokeObjectURL(fontUrl);
|
||||
} catch (fontLoadError) {
|
||||
console.warn(`CSS Font Loading API failed for ${font_family_name}, falling back to traditional method:`, fontLoadError);
|
||||
URL.revokeObjectURL(fontUrl);
|
||||
const base64 = arrayBufferToBase64(arrayBuffer);
|
||||
const css_type = font_extension_name === "woff" ? "font/woff" : font_extension_name === "woff2" ? "font/woff2" : font_extension_name === "otf" ? "font/opentype" : "font/truetype";
|
||||
const base64_css = `@font-face{
|
||||
font-family: '${font_family_name}';
|
||||
src: url(data:${css_type};base64,${base64});
|
||||
font-display: swap;
|
||||
}`;
|
||||
await this.app.vault.adapter.write(css_font_path, base64_css);
|
||||
}
|
||||
console.log("saved font %s into %s", font_family_name, css_font_path);
|
||||
} catch (error) {
|
||||
console.error(`Error converting font ${font_file_name} to CSS:`, error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
async onload() {
|
||||
this.load_plugin();
|
||||
this.addSettingTab(new FontSettingTab(this.app, this));
|
||||
}
|
||||
async onunload() {
|
||||
applyCss("", "custom_font_base64");
|
||||
applyCss("", "custom_font_general");
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign(
|
||||
{},
|
||||
DEFAULT_SETTINGS,
|
||||
await this.loadData()
|
||||
);
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
};
|
||||
var FontSettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
async display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
const infoContainer = containerEl.createDiv();
|
||||
infoContainer.setText(
|
||||
"In Order to set the font, copy your font into fonts directory that you set"
|
||||
);
|
||||
new import_obsidian.Setting(containerEl).setName("Fonts Folder").setDesc("Folder to look for your custom fonts").addText((text) => {
|
||||
text.onChange(async (value) => {
|
||||
this.plugin.settings.font_folder = value;
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.loadSettings();
|
||||
});
|
||||
if (this.plugin.settings.font_folder.trim() == "") {
|
||||
this.plugin.settings.font_folder = `${this.app.vault.configDir}/fonts`;
|
||||
}
|
||||
if (!this.plugin.settings.font_folder.endsWith("/"))
|
||||
this.plugin.settings.font_folder = this.plugin.settings.font_folder + "/";
|
||||
text.setValue(this.plugin.settings.font_folder);
|
||||
});
|
||||
const font_folder_path = this.plugin.settings.font_folder;
|
||||
const options = [{ name: "none", value: "None" }];
|
||||
try {
|
||||
if (!await this.app.vault.adapter.exists(font_folder_path)) {
|
||||
await this.app.vault.adapter.mkdir(font_folder_path);
|
||||
}
|
||||
if (await this.app.vault.adapter.exists(font_folder_path)) {
|
||||
const files = await this.app.vault.adapter.list(
|
||||
font_folder_path
|
||||
);
|
||||
for (const file of files.files) {
|
||||
const file_name = file.replace(font_folder_path, "");
|
||||
if (file_name.startsWith("."))
|
||||
continue;
|
||||
options.push({ name: file_name, value: file_name });
|
||||
}
|
||||
}
|
||||
options.push({ name: "all", value: "Multiple fonts" });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
new import_obsidian.Setting(containerEl).setName("Reload fonts from folder").setDesc(
|
||||
"This button reloades from the folder you specified (it also creates the folder for you)"
|
||||
).addButton((button) => {
|
||||
button.setButtonText("Reload");
|
||||
button.onClick((callback) => {
|
||||
this.plugin.saveSettings();
|
||||
this.plugin.load_plugin();
|
||||
this.display();
|
||||
});
|
||||
});
|
||||
this.containerEl.createDiv();
|
||||
new import_obsidian.Setting(containerEl).setName("Font").setDesc(
|
||||
`Choose font (If you can't see your fonts, make sure your fonts are in the folder you specified and hit reload.
|
||||
Also if you choose multiple fonts option, we will load and process all fonts in the folder for you. In that Case, enable Custom CSS Mode)`
|
||||
).addDropdown((dropdown) => {
|
||||
for (const opt of options) {
|
||||
dropdown.addOption(opt.name, opt.value);
|
||||
}
|
||||
dropdown.setValue(this.plugin.settings.font).onChange(async (value) => {
|
||||
this.plugin.settings.font = value;
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.load_plugin();
|
||||
this.display();
|
||||
});
|
||||
});
|
||||
if (this.plugin.settings.font.toLowerCase() != "none") {
|
||||
new import_obsidian.Setting(containerEl).setName("Force Style").setDesc(
|
||||
"This option should only be used if you have installed a community theme and normal mode doesn't work"
|
||||
).addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.force_mode);
|
||||
toggle.onChange(async (value) => {
|
||||
this.plugin.settings.force_mode = value;
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.load_plugin();
|
||||
});
|
||||
});
|
||||
new import_obsidian.Setting(containerEl).setName("Custom CSS Mode").setDesc(
|
||||
"If you want to apply a custom css style rather than default style, choose this."
|
||||
).addToggle((toggle) => {
|
||||
toggle.setValue(this.plugin.settings.custom_css_mode);
|
||||
toggle.onChange(async (value) => {
|
||||
if (this.plugin.settings.custom_css_mode == false) {
|
||||
this.plugin.settings.custom_css = "";
|
||||
}
|
||||
this.plugin.settings.custom_css_mode = value;
|
||||
this.plugin.saveSettings();
|
||||
this.plugin.load_plugin();
|
||||
this.display();
|
||||
});
|
||||
});
|
||||
if (this.plugin.settings.custom_css_mode) {
|
||||
new import_obsidian.Setting(containerEl).setName("Custom CSS Style").setDesc("Input your custom css style. Use the font filename without extension (in lowercase) as the font-family name. For example, if your font file is 'MyFont.ttf', use 'myfont' in your CSS.").addTextArea(async (text) => {
|
||||
text.onChange(async (new_value) => {
|
||||
this.plugin.settings.custom_css = new_value;
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.load_plugin();
|
||||
});
|
||||
text.setDisabled(!this.plugin.settings.custom_css_mode);
|
||||
if (this.plugin.settings.custom_css == "") {
|
||||
let font_family_name = "";
|
||||
try {
|
||||
font_family_name = this.plugin.settings.font.split(".")[0].toLowerCase();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
if (font_family_name == "all") {
|
||||
if (await this.app.vault.adapter.exists(
|
||||
font_folder_path
|
||||
)) {
|
||||
const files = await this.app.vault.adapter.list(
|
||||
font_folder_path
|
||||
);
|
||||
let final_str = "";
|
||||
for (const file of files.files) {
|
||||
const file_name = file.split("/")[2];
|
||||
const font_family = file_name.split(".")[0].toLowerCase();
|
||||
final_str += "\n" + get_custom_css(
|
||||
font_family,
|
||||
"." + font_family
|
||||
);
|
||||
}
|
||||
text.setValue(final_str);
|
||||
}
|
||||
} else {
|
||||
const template = `/* Example CSS for your font: ${font_family_name} */
|
||||
|
||||
/* Apply to all text */
|
||||
:root * {
|
||||
--font-default: '${font_family_name}';
|
||||
--default-font: '${font_family_name}';
|
||||
--font-family-editor: '${font_family_name}';
|
||||
--font-interface-override: '${font_family_name}';
|
||||
--font-text-override: '${font_family_name}';
|
||||
}
|
||||
|
||||
/* Example: Apply to custom CSS class */
|
||||
.custom-font * {
|
||||
font-family: '${font_family_name}' !important;
|
||||
}
|
||||
|
||||
/* Example: Apply to specific elements only */
|
||||
.custom-font h1, .custom-font h2, .custom-font h3 {
|
||||
font-family: '${font_family_name}' !important;
|
||||
}`;
|
||||
text.setValue(template);
|
||||
}
|
||||
} else {
|
||||
text.setValue(this.plugin.settings.custom_css);
|
||||
}
|
||||
text.onChanged();
|
||||
text.inputEl.style.width = "100%";
|
||||
text.inputEl.style.height = "100px";
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* nosourcemap */
|
||||
10
.obsidian/plugins/custom-font-loader/manifest.json
vendored
Normal file
10
.obsidian/plugins/custom-font-loader/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "custom-font-loader",
|
||||
"name": "Custom Font Loader",
|
||||
"version": "1.9.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Customize your Obsidian vault with any font you want (+ Support for Android and IOS)",
|
||||
"author": "Amir Pourmand",
|
||||
"authorUrl": "https://amirpourmand.ir",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
13
.obsidian/plugins/obsidian-hider/data.json
vendored
Normal file
13
.obsidian/plugins/obsidian-hider/data.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"hideStatus": false,
|
||||
"hideTabs": false,
|
||||
"hideScroll": true,
|
||||
"hideSidebarButtons": true,
|
||||
"hideTooltips": false,
|
||||
"hideFileNavButtons": true,
|
||||
"hideSearchSuggestions": false,
|
||||
"hideSearchCounts": false,
|
||||
"hideInstructions": false,
|
||||
"hidePropertiesReading": false,
|
||||
"hideVault": true
|
||||
}
|
||||
8
.obsidian/plugins/obsidian-hider/main.js
vendored
Normal file
8
.obsidian/plugins/obsidian-hider/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/obsidian-hider/manifest.json
vendored
Normal file
11
.obsidian/plugins/obsidian-hider/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "obsidian-hider",
|
||||
"name": "Hider",
|
||||
"version": "1.6.2",
|
||||
"minAppVersion": "1.11.1",
|
||||
"description": "Hide UI elements such as tooltips, status, titlebar and more.",
|
||||
"author": "@kepano",
|
||||
"authorUrl": "https://www.twitter.com/kepano",
|
||||
"fundingUrl": "https://www.buymeacoffee.com/kepano",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
66
.obsidian/plugins/obsidian-hider/styles.css
vendored
Normal file
66
.obsidian/plugins/obsidian-hider/styles.css
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
/* Hides vault name */
|
||||
.hider-vault .workspace-sidedock-vault-profile,
|
||||
body.hider-vault:not(.is-mobile) .workspace-split.mod-left-split .workspace-sidedock-vault-profile {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide tabs */
|
||||
.hider-tabs .mod-root .workspace-tabs .workspace-tab-header-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.hider-tabs .mod-top-left-space .view-header {
|
||||
padding-left: var(--frame-left-space);
|
||||
}
|
||||
|
||||
/* Hide sidebar buttons */
|
||||
.hider-sidebar-buttons .sidebar-toggle-button.mod-right,
|
||||
.hider-sidebar-buttons .sidebar-toggle-button.mod-left {
|
||||
display: none;
|
||||
}
|
||||
.hider-sidebar-buttons.mod-macos.is-hidden-frameless:not(.is-popout-window) .workspace .workspace-tabs.mod-top-right-space .workspace-tab-header-container {
|
||||
padding-right: 4px;
|
||||
}
|
||||
.hider-sidebar-buttons.mod-macos {
|
||||
--frame-left-space: 60px;
|
||||
}
|
||||
|
||||
/* Hide meta */
|
||||
.hider-meta .markdown-reading-view .metadata-container {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide scrollbars */
|
||||
.hider-scroll ::-webkit-scrollbar {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide status */
|
||||
.hider-status .status-bar {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide tooltips */
|
||||
.hider-tooltips .tooltip {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide search suggestions */
|
||||
.hider-search-suggestions .suggestion-container.mod-search-suggestion {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide search count flair */
|
||||
.hider-search-counts .tree-item-flair:not(.tag-pane-tag-count) {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide instructions */
|
||||
.hider-instructions .prompt-instructions {
|
||||
display:none;
|
||||
}
|
||||
|
||||
/* Hide file nav header */
|
||||
.hider-file-nav-header .workspace-leaf-content[data-type=file-explorer] .nav-header {
|
||||
display: none;
|
||||
}
|
||||
121
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
121
.obsidian/plugins/obsidian-icon-folder/data.json
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
{
|
||||
"settings": {
|
||||
"migrated": 6,
|
||||
"iconPacksPath": ".obsidian/icons",
|
||||
"fontSize": 16,
|
||||
"emojiStyle": "native",
|
||||
"iconColor": null,
|
||||
"recentlyUsedIcons": [
|
||||
"LiSquareCheckBig",
|
||||
"LiStar",
|
||||
"LiBookOpen",
|
||||
"LiBook"
|
||||
],
|
||||
"recentlyUsedIconsSize": 5,
|
||||
"rules": [
|
||||
{
|
||||
"rule": "^00 INBOX$",
|
||||
"icon": "LiInbox",
|
||||
"for": "everything",
|
||||
"order": 0
|
||||
},
|
||||
{
|
||||
"rule": "^01 sources$",
|
||||
"icon": "LiBookOpen",
|
||||
"for": "everything",
|
||||
"order": 1
|
||||
},
|
||||
{
|
||||
"rule": "^02 tags$",
|
||||
"icon": "LiTags",
|
||||
"for": "everything",
|
||||
"order": 2
|
||||
},
|
||||
{
|
||||
"rule": "^03 index$",
|
||||
"icon": "LiHash",
|
||||
"for": "everything",
|
||||
"order": 3
|
||||
},
|
||||
{
|
||||
"rule": "^04 notes$",
|
||||
"icon": "LiNotepadText",
|
||||
"for": "everything",
|
||||
"order": 4
|
||||
},
|
||||
{
|
||||
"rule": "^05 journal$",
|
||||
"icon": "LiCalendar",
|
||||
"for": "everything",
|
||||
"order": 5
|
||||
},
|
||||
{
|
||||
"rule": "^99 meta$",
|
||||
"icon": "LiSettings",
|
||||
"for": "everything",
|
||||
"order": 6
|
||||
},
|
||||
{
|
||||
"rule": "^attachments$",
|
||||
"icon": "LiPaperclip",
|
||||
"for": "everything",
|
||||
"order": 7
|
||||
},
|
||||
{
|
||||
"rule": "^templates$",
|
||||
"icon": "LiRuler",
|
||||
"for": "everything",
|
||||
"order": 8
|
||||
},
|
||||
{
|
||||
"rule": ".*claude|CLAUDE.*",
|
||||
"icon": "SiClaude",
|
||||
"for": "everything",
|
||||
"order": 9
|
||||
},
|
||||
{
|
||||
"rule": ".*obsidian.*",
|
||||
"icon": "SiObsidian",
|
||||
"for": "everything",
|
||||
"order": 10
|
||||
},
|
||||
{
|
||||
"rule": ".*wishlist.*",
|
||||
"icon": "LiStar",
|
||||
"for": "everything",
|
||||
"order": 11
|
||||
},
|
||||
{
|
||||
"rule": ".*pokemon.*",
|
||||
"icon": "CiPokeball",
|
||||
"for": "everything",
|
||||
"order": 12
|
||||
}
|
||||
],
|
||||
"extraMargin": {
|
||||
"top": 0,
|
||||
"right": 4,
|
||||
"bottom": 0,
|
||||
"left": 0
|
||||
},
|
||||
"iconInTabsEnabled": true,
|
||||
"iconInTitleEnabled": false,
|
||||
"iconInTitlePosition": "above",
|
||||
"iconInFrontmatterEnabled": true,
|
||||
"iconInFrontmatterFieldName": "icon",
|
||||
"iconColorInFrontmatterFieldName": "iconColor",
|
||||
"iconsBackgroundCheckEnabled": false,
|
||||
"iconsInNotesEnabled": true,
|
||||
"iconsInLinksEnabled": true,
|
||||
"iconIdentifier": ":",
|
||||
"lucideIconPackType": "native",
|
||||
"debugMode": false,
|
||||
"useInternalPlugins": false
|
||||
},
|
||||
"04 notes/alternate checkboxes preview.md": {
|
||||
"iconName": "LiSquareCheckBig"
|
||||
},
|
||||
"04 notes/study list.md": {
|
||||
"iconName": "LiBookOpen"
|
||||
}
|
||||
}
|
||||
7158
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
7158
.obsidian/plugins/obsidian-icon-folder/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-icon-folder/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-icon-folder",
|
||||
"name": "Iconize",
|
||||
"version": "2.14.7",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "Add icons to anything you desire in Obsidian, including files, folders, and text.",
|
||||
"author": "Florian Woelki",
|
||||
"authorUrl": "https://florianwoelki.com/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
120
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
120
.obsidian/plugins/obsidian-icon-folder/styles.css
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
.iconize-inline-title-wrapper {
|
||||
width: var(--line-width);
|
||||
max-width: var(--max-width);
|
||||
margin-inline: var(--content-margin);
|
||||
}
|
||||
|
||||
.iconize-title-icon {
|
||||
max-width: var(--max-width);
|
||||
margin-right: var(--size-4-2);
|
||||
}
|
||||
|
||||
.iconize-icon-in-link {
|
||||
transform: translateY(20%);
|
||||
margin-right: var(--size-2-2);
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.iconize-icon {
|
||||
border: 1px solid transparent;
|
||||
margin: 0px 4px 0px 0px;
|
||||
display: flex;
|
||||
align-self: center;
|
||||
margin: auto 0;
|
||||
}
|
||||
|
||||
.nav-folder-title,
|
||||
.nav-file-title {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.iconize-setting input[type='color'] {
|
||||
margin: 0 6px;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results {
|
||||
margin: 0;
|
||||
overflow-y: auto;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.prompt .iconize-subheadline {
|
||||
margin-top: 12px;
|
||||
font-size: 12px;
|
||||
color: gray;
|
||||
grid-column-start: 1;
|
||||
grid-column-end: 6;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.iconize-modal.prompt-results {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
.prompt .iconize-subheadline {
|
||||
grid-column-end: 4;
|
||||
}
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results .suggestion-item {
|
||||
cursor: pointer;
|
||||
white-space: pre-wrap;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
flex-direction: column-reverse;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
padding: 16px 8px;
|
||||
line-break: auto;
|
||||
word-break: break-word;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.iconize-modal.prompt-results .suggestion-item.suggestion-item__center {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-icon-preview {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.iconize-icon-preview svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
color: currentColor;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.iconize-dragover {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.iconize-dragover-el {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-secondary-alt);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Custom rule modal. */
|
||||
.iconize-custom-modal .modal-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.iconize-custom-modal .modal-content input {
|
||||
width: 100%;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
34
.obsidian/plugins/obsidian-minimal-settings/data.json
vendored
Normal file
34
.obsidian/plugins/obsidian-minimal-settings/data.json
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"lightStyle": "minimal-light",
|
||||
"darkStyle": "minimal-dark",
|
||||
"lightScheme": "minimal-default-light",
|
||||
"darkScheme": "minimal-dracula-dark",
|
||||
"editorFont": "",
|
||||
"lineHeight": 1.5,
|
||||
"lineWidth": 40,
|
||||
"lineWidthWide": 50,
|
||||
"maxWidth": 88,
|
||||
"textNormal": 16,
|
||||
"textSmall": 13,
|
||||
"imgGrid": false,
|
||||
"imgWidth": "img-default-width",
|
||||
"tableWidth": "table-default-width",
|
||||
"iframeWidth": "iframe-default-width",
|
||||
"mapWidth": "map-default-width",
|
||||
"chartWidth": "chart-default-width",
|
||||
"colorfulHeadings": true,
|
||||
"colorfulFrame": false,
|
||||
"colorfulActiveStates": false,
|
||||
"trimNames": true,
|
||||
"labeledNav": false,
|
||||
"fullWidthMedia": true,
|
||||
"bordersToggle": true,
|
||||
"minimalStatus": true,
|
||||
"focusMode": false,
|
||||
"underlineInternal": true,
|
||||
"underlineExternal": true,
|
||||
"folding": true,
|
||||
"lineNumbers": true,
|
||||
"readableLineLength": false,
|
||||
"devBlockWidth": false
|
||||
}
|
||||
8
.obsidian/plugins/obsidian-minimal-settings/main.js
vendored
Normal file
8
.obsidian/plugins/obsidian-minimal-settings/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
11
.obsidian/plugins/obsidian-minimal-settings/manifest.json
vendored
Normal file
11
.obsidian/plugins/obsidian-minimal-settings/manifest.json
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": "obsidian-minimal-settings",
|
||||
"name": "Minimal Theme Settings",
|
||||
"version": "8.2.3",
|
||||
"minAppVersion": "1.11.1",
|
||||
"description": "Change the colors, fonts and features of Minimal Theme.",
|
||||
"author": "@kepano",
|
||||
"authorUrl": "https://www.twitter.com/kepano",
|
||||
"fundingUrl": "https://www.buymeacoffee.com/kepano",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
3
.obsidian/plugins/obsidian-minimal-settings/styles.css
vendored
Normal file
3
.obsidian/plugins/obsidian-minimal-settings/styles.css
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
.setting-group > .setting-item-heading .setting-item-description {
|
||||
margin-top: 4px;
|
||||
}
|
||||
165
.obsidian/plugins/obsidian-style-settings/main.js
vendored
Normal file
165
.obsidian/plugins/obsidian-style-settings/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
10
.obsidian/plugins/obsidian-style-settings/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-style-settings/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-style-settings",
|
||||
"name": "Style Settings",
|
||||
"version": "1.0.9",
|
||||
"minAppVersion": "0.11.5",
|
||||
"description": "Offers controls for adjusting theme, plugin, and snippet CSS variables.",
|
||||
"author": "mgmeyers",
|
||||
"authorUrl": "https://github.com/mgmeyers/obsidian-style-settings",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
243
.obsidian/plugins/obsidian-style-settings/styles.css
vendored
Normal file
243
.obsidian/plugins/obsidian-style-settings/styles.css
vendored
Normal file
File diff suppressed because one or more lines are too long
14
.obsidian/plugins/obsidian-vimrc-support/data.json
vendored
Normal file
14
.obsidian/plugins/obsidian-vimrc-support/data.json
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"vimrcFileName": ".obsidian.vimrc",
|
||||
"displayChord": true,
|
||||
"displayVimMode": true,
|
||||
"fixedNormalModeLayout": false,
|
||||
"capturedKeyboardMap": {},
|
||||
"supportJsCommands": false,
|
||||
"vimStatusPromptMap": {
|
||||
"normal": "🟢",
|
||||
"insert": "🟠",
|
||||
"visual": "🟡",
|
||||
"replace": "🔴"
|
||||
}
|
||||
}
|
||||
1247
.obsidian/plugins/obsidian-vimrc-support/main.js
vendored
Normal file
1247
.obsidian/plugins/obsidian-vimrc-support/main.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
10
.obsidian/plugins/obsidian-vimrc-support/manifest.json
vendored
Normal file
10
.obsidian/plugins/obsidian-vimrc-support/manifest.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "obsidian-vimrc-support",
|
||||
"name": "Vimrc Support",
|
||||
"version": "0.10.2",
|
||||
"description": "Auto-load a startup file with Obsidian Vim commands.",
|
||||
"minAppVersion": "0.15.3",
|
||||
"author": "esm",
|
||||
"authorUrl": "",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
6
.obsidian/plugins/table-editor-obsidian/data.json
vendored
Normal file
6
.obsidian/plugins/table-editor-obsidian/data.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"formatType": "normal",
|
||||
"showRibbonIcon": true,
|
||||
"bindEnter": true,
|
||||
"bindTab": true
|
||||
}
|
||||
236
.obsidian/plugins/table-editor-obsidian/main.js
vendored
Normal file
236
.obsidian/plugins/table-editor-obsidian/main.js
vendored
Normal file
File diff suppressed because one or more lines are too long
15
.obsidian/plugins/table-editor-obsidian/manifest.json
vendored
Normal file
15
.obsidian/plugins/table-editor-obsidian/manifest.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"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.23.2",
|
||||
"fundingUrl": {
|
||||
"Github Sponsor": "https://github.com/sponsors/tgrosinger",
|
||||
"Buy me a Coffee": "https://buymeacoffee.com/tgrosinger",
|
||||
"Paypal": "https://paypal.me/tgrosinger"
|
||||
}
|
||||
}
|
||||
78
.obsidian/plugins/table-editor-obsidian/styles.css
vendored
Normal file
78
.obsidian/plugins/table-editor-obsidian/styles.css
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
: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 {
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user