main
iOS 3 years ago
parent 7675f73961
commit 397e97edd0

@ -181,9 +181,9 @@
"offset": 2
},
"current": {
"year": 2021,
"month": 11,
"day": 29
"year": 2022,
"month": 0,
"day": 1
},
"events": [
{
@ -319,11 +319,7 @@
"day": 21,
"month": 0
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 21,
"month": 0
}
"category": "ID_a93b8bba4be8"
},
{
"name": "Valentine's Day",
@ -350,11 +346,7 @@
"day": 25,
"month": 1
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 25,
"month": 1
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_bbf9b8d8f9f9",
@ -364,11 +356,7 @@
"day": 27,
"month": 1
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 27,
"month": 1
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_b958ab79ea9a",
@ -378,11 +366,7 @@
"day": 18,
"month": 3
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 18,
"month": 3
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_a9aa5a2a9a98",
@ -392,11 +376,7 @@
"day": 21,
"month": 3
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 21,
"month": 3
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_5bf88a4b997a",
@ -406,11 +386,7 @@
"day": 2,
"month": 4
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 2,
"month": 4
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_dbe90b49c83a",
@ -420,11 +396,7 @@
"day": 9,
"month": 4
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 9,
"month": 4
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_ebf80849cbc8",
@ -434,11 +406,7 @@
"day": 20,
"month": 5
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 20,
"month": 5
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_199be81babe8",
@ -448,11 +416,7 @@
"day": 13,
"month": 6
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 13,
"month": 6
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_7a09189b49a8",
@ -462,11 +426,7 @@
"day": 14,
"month": 6
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 14,
"month": 6
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_b88baafbb819",
@ -476,11 +436,7 @@
"day": 30,
"month": 7
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 30,
"month": 7
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_3ad87b0bc878",
@ -490,11 +446,7 @@
"day": 4,
"month": 8
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 4,
"month": 8
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_88ab49791bc8",
@ -504,11 +456,7 @@
"day": 14,
"month": 9
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 14,
"month": 9
}
"category": "ID_a93b8bba4be8"
},
{
"name": "Halloween",
@ -535,11 +483,7 @@
"day": 27,
"month": 10
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 27,
"month": 10
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_ab5bcb68b9da",
@ -549,11 +493,7 @@
"day": 4,
"month": 11
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 4,
"month": 11
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_f88bc8883aeb",
@ -563,11 +503,7 @@
"day": 7,
"month": 11
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 7,
"month": 11
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_395a7bcb5ae8",
@ -577,11 +513,7 @@
"day": 8,
"month": 11
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 8,
"month": 11
}
"category": "ID_a93b8bba4be8"
},
{
"name": "Christmas",
@ -660,12 +592,7 @@
"month": 0,
"day": 10
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2022,
"month": 0,
"day": 10
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_8bea89a97bb8",
@ -676,12 +603,7 @@
"month": 5,
"day": 15
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2022,
"month": 5,
"day": 15
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_1b3b6b0918e8",
@ -692,12 +614,7 @@
"month": 11,
"day": 31
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2021,
"month": 11,
"day": 31
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_f8aa891a388a",
@ -708,12 +625,7 @@
"month": 0,
"day": 2
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2022,
"month": 0,
"day": 2
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_98087909bb1a",
@ -724,12 +636,7 @@
"month": 0,
"day": 30
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2022,
"month": 0,
"day": 30
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_7be9fa4a18db",
@ -740,12 +647,7 @@
"month": 1,
"day": 1
},
"category": "ID_3b8a489a19da",
"end": {
"year": 2022,
"month": 1,
"day": 1
}
"category": "ID_3b8a489a19da"
},
{
"id": "ID_78fb5a1a7bfb",
@ -755,11 +657,7 @@
"day": 3,
"month": 0
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 3,
"month": 0
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_78caf95b88e8",
@ -769,11 +667,7 @@
"day": 31,
"month": 2
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 31,
"month": 2
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_68f869fbbb1b",
@ -783,11 +677,7 @@
"day": 28,
"month": 1
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 28,
"month": 1
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_1879eb4b3aea",
@ -797,11 +687,7 @@
"day": 12,
"month": 10
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 12,
"month": 10
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_3b9a7b0bfacb",
@ -811,11 +697,7 @@
"day": 19,
"month": 4
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 19,
"month": 4
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_0bb9baebda49",
@ -825,11 +707,7 @@
"day": 6,
"month": 1
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 6,
"month": 1
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_f879892aca49",
@ -839,11 +717,7 @@
"day": 14,
"month": 9
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 14,
"month": 9
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_48abe87bc9bb",
@ -853,11 +727,7 @@
"day": 24,
"month": 8
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 24,
"month": 8
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_a8a998e8ba4a",
@ -867,11 +737,7 @@
"day": 20,
"month": 3
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 20,
"month": 3
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_687be82be9aa",
@ -881,11 +747,7 @@
"day": 21,
"month": 3
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 21,
"month": 3
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_8a2a2aaac8f9",
@ -905,11 +767,7 @@
"day": 5,
"month": 8
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 5,
"month": 8
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_5b89bb781baa",
@ -919,11 +777,7 @@
"day": 26,
"month": 7
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 26,
"month": 7
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_3a2bbbe92a0b",
@ -933,11 +787,7 @@
"day": 30,
"month": 8
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 30,
"month": 8
}
"category": "ID_a93b8bba4be8"
},
{
"id": "ID_1969f9bb6a39",
@ -988,11 +838,7 @@
"day": 14,
"month": 0
},
"category": "ID_a93b8bba4be8",
"end": {
"day": 14,
"month": 0
}
"category": "ID_a93b8bba4be8"
}
],
"id": "ID_cb9b8ac84809",
@ -1033,7 +879,8 @@
"name": "Task"
}
],
"date": 1640360816890
"date": 1640509565256,
"displayWeeks": false
}
],
"currentCalendar": null,

File diff suppressed because one or more lines are too long

@ -1,7 +1,7 @@
{
"id": "fantasy-calendar",
"name": "Fantasy Calendar",
"version": "1.11.0",
"version": "1.12.0",
"minAppVersion": "0.12.10",
"author": "Jeremy Valentine",
"description": "Fantasy calendars in Obsidian!",

@ -11,6 +11,9 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
var __commonJS = (cb, mod) => function __require() {
return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
};
var __export = (target, all) => {
__markAsModule(target);
for (var name in all)
@ -48,14 +51,46 @@ var __async = (__this, __arguments, generator) => {
});
};
// node_modules/@aidenlx/obsidian-icon-shortcodes/lib/index.js
var require_lib = __commonJS({
"node_modules/@aidenlx/obsidian-icon-shortcodes/lib/index.js"(exports) {
var t = Object.create;
var o = Object.defineProperty;
var a = Object.getOwnPropertyDescriptor;
var p = Object.getOwnPropertyNames;
var d = Object.getPrototypeOf;
var l = Object.prototype.hasOwnProperty;
var r = (n) => o(n, "__esModule", { value: true });
var g = (n, e) => {
r(n);
for (var i in e)
o(n, i, { get: e[i], enumerable: true });
};
var c = (n, e, i) => {
if (e && typeof e == "object" || typeof e == "function")
for (let s of p(e))
!l.call(n, s) && s !== "default" && o(n, s, { get: () => e[s], enumerable: !(i = a(e, s)) || i.enumerable });
return n;
};
var u = (n) => c(r(o(n != null ? t(d(n)) : {}, "default", n && n.__esModule && "default" in n ? { get: () => n.default, enumerable: true } : { value: n, enumerable: true })), n);
g(exports, { getApi: () => P, isPluginEnabled: () => f });
var b = u(require("obsidian"));
var P = (n) => {
var e;
return n ? (e = n.app.plugins.plugins["obsidian-icon-shortcodes"]) == null ? void 0 : e.api : window.IconSCAPIv0;
};
var f = (n) => n.app.plugins.enabledPlugins.has("obsidian-icon-shortcodes");
}
});
// src/main.ts
__export(exports, {
default: () => FaviconPlugin
});
var import_obsidian3 = __toModule(require("obsidian"));
var import_obsidian4 = __toModule(require("obsidian"));
// src/settings.ts
var import_obsidian2 = __toModule(require("obsidian"));
var import_obsidian3 = __toModule(require("obsidian"));
// src/provider.ts
var import_obsidian = __toModule(require("obsidian"));
@ -79,15 +114,92 @@ var providers = {
}) }
};
// src/OverwrittenIconModal.ts
var import_obsidian2 = __toModule(require("obsidian"));
var import_obsidian_icon_shortcodes = __toModule(require_lib());
var OverwrittenIconModal = class extends import_obsidian2.Modal {
constructor(plugin, map, name) {
super(plugin.app);
this.name = "Domain";
this.plugin = plugin;
if (name) {
this.name = name;
}
if (map) {
this.domain = map.domain;
this.icon = map.icon;
}
}
displayPreview(contentEl) {
return __async(this, null, function* () {
if ((0, import_obsidian_icon_shortcodes.isPluginEnabled)(this.plugin) && this.icon) {
contentEl.empty();
const iconPreview = contentEl.createDiv("preview");
iconPreview.addClass("link-favicon-preview");
const iconApi = (0, import_obsidian_icon_shortcodes.getApi)(this.plugin);
const icon = iconApi.getIcon(this.icon, false);
if (icon !== null)
iconPreview.append(icon);
}
});
}
display() {
return __async(this, null, function* () {
const { contentEl } = this;
contentEl.empty();
let previewEL;
new import_obsidian2.Setting(contentEl).setName(this.name).addText((text) => {
text.setValue(this.domain).onChange((value) => {
this.domain = value;
});
});
new import_obsidian2.Setting(contentEl).setName("Icon").addText((text) => {
text.setValue(this.icon).onChange((value) => {
this.icon = value;
if (previewEL) {
this.displayPreview(previewEL);
}
});
});
previewEL = contentEl.createDiv("preview");
yield this.displayPreview(previewEL);
const footerEl = contentEl.createDiv();
const footerButtons = new import_obsidian2.Setting(footerEl);
footerButtons.addButton((b) => {
b.setTooltip("Save").setIcon("checkmark").onClick(() => __async(this, null, function* () {
this.saved = true;
this.close();
}));
return b;
});
footerButtons.addExtraButton((b) => {
b.setIcon("cross").setTooltip("Cancel").onClick(() => {
this.saved = false;
this.close();
});
return b;
});
});
}
onOpen() {
return __async(this, null, function* () {
yield this.display();
});
}
};
// src/settings.ts
var import_obsidian_icon_shortcodes2 = __toModule(require_lib());
var DEFAULT_SETTINGS = {
provider: "duckduckgo",
fallbackProvider: "google",
providerDomain: "",
fallbackProviderDomain: "",
ignored: ""
ignored: "",
overwritten: [],
protocol: []
};
var FaviconSettings = class extends import_obsidian2.PluginSettingTab {
var FaviconSettings = class extends import_obsidian3.PluginSettingTab {
constructor(app, plugin) {
super(app, plugin);
this.plugin = plugin;
@ -96,7 +208,7 @@ var FaviconSettings = class extends import_obsidian2.PluginSettingTab {
const { containerEl } = this;
containerEl.empty();
containerEl.createEl("h2", { text: "Link Favicons" });
new import_obsidian2.Setting(containerEl).setName("Icon Provider").addDropdown((dropdown) => {
new import_obsidian3.Setting(containerEl).setName("Icon Provider").addDropdown((dropdown) => {
for (const id in providers) {
if (providers.hasOwnProperty(id)) {
dropdown.addOption(id, providers[id].name);
@ -109,12 +221,12 @@ var FaviconSettings = class extends import_obsidian2.PluginSettingTab {
}));
});
if (Array.of("besticon").includes(this.plugin.settings.provider)) {
new import_obsidian2.Setting(containerEl).setName("Provider Domain").setDesc("This Provider is be selfhosted, please specify your deployment url. Refer to the readme of the provider for deployment instructions.").addText((text) => text.setValue(this.plugin.settings.providerDomain).onChange((value) => __async(this, null, function* () {
new import_obsidian3.Setting(containerEl).setName("Provider Domain").setDesc("This Provider is selfhosted, please specify your deployment url. Refer to the readme of the provider for deployment instructions.").addText((text) => text.setValue(this.plugin.settings.providerDomain).onChange((value) => __async(this, null, function* () {
this.plugin.settings.providerDomain = value;
yield this.plugin.saveSettings();
})));
}
new import_obsidian2.Setting(containerEl).setName("Fallback Icon Provider").addDropdown((dropdown) => {
new import_obsidian3.Setting(containerEl).setName("Fallback Icon Provider").addDropdown((dropdown) => {
for (const id in providers) {
if (providers.hasOwnProperty(id)) {
dropdown.addOption(id, providers[id].name);
@ -127,41 +239,158 @@ var FaviconSettings = class extends import_obsidian2.PluginSettingTab {
}));
});
if (Array.of("besticon").includes(this.plugin.settings.fallbackProvider)) {
new import_obsidian2.Setting(containerEl).setName("Fallback Provider Domain").setDesc("This Provider is be selfhosted, please specify your deployment url. Refer to the readme of the provider for deployment instructions.").addText((text) => text.setValue(this.plugin.settings.fallbackProviderDomain).onChange((value) => __async(this, null, function* () {
new import_obsidian3.Setting(containerEl).setName("Fallback Provider Domain").setDesc("This Provider is be selfhosted, please specify your deployment url. Refer to the readme of the provider for deployment instructions.").addText((text) => text.setValue(this.plugin.settings.fallbackProviderDomain).onChange((value) => __async(this, null, function* () {
this.plugin.settings.fallbackProviderDomain = value;
yield this.plugin.saveSettings();
})));
}
new import_obsidian2.Setting(containerEl).setName("Ignored Domains").setDesc("Don't show an favicon for these domains(one per line)").addTextArea((text) => {
new import_obsidian3.Setting(containerEl).setName("Ignored Domains").setDesc("Don't show an favicon for these domains(one per line)").addTextArea((text) => {
text.setValue(this.plugin.settings.ignored).onChange((value) => __async(this, null, function* () {
this.plugin.settings.ignored = value;
yield this.plugin.saveSettings();
}));
text.inputEl.setAttr("rows", 8);
});
if ((0, import_obsidian_icon_shortcodes2.isPluginEnabled)(this.plugin)) {
containerEl.createEl("h2", { text: "Custom icons" });
containerEl.createEl("h3", { text: "for Domains" });
new import_obsidian3.Setting(containerEl).setName("Add New").setDesc("Add custom icon").addButton((button) => {
return button.setTooltip("add custom icon").setIcon("plus-with-circle").onClick(() => __async(this, null, function* () {
const modal = new OverwrittenIconModal(this.plugin);
modal.onClose = () => __async(this, null, function* () {
if (modal.saved) {
this.plugin.settings.overwritten.push({
domain: modal.domain,
icon: modal.icon
});
yield this.plugin.saveSettings();
this.display();
}
});
modal.open();
}));
});
const overwrittenContainer = containerEl.createDiv("overwritten");
const overwrittenDiv = overwrittenContainer.createDiv("overwritten");
for (const overwritten of this.plugin.settings.overwritten) {
const setting = new import_obsidian3.Setting(overwrittenDiv);
const iconAPI = (0, import_obsidian_icon_shortcodes2.getApi)(this.plugin);
const desc = new DocumentFragment();
desc.createEl("p", { text: " " + overwritten.icon }).prepend(iconAPI.getIcon(overwritten.icon));
setting.setName(overwritten.domain).setDesc(desc).addExtraButton((b) => {
b.setIcon("pencil").setTooltip("Edit").onClick(() => {
const modal = new OverwrittenIconModal(this.plugin, overwritten);
modal.onClose = () => __async(this, null, function* () {
if (modal.saved) {
const setting2 = this.plugin.settings.overwritten.filter((overwritten2) => {
return overwritten2.domain !== modal.domain;
});
setting2.push({ domain: modal.domain, icon: modal.icon });
this.plugin.settings.overwritten = setting2;
yield this.plugin.saveSettings();
this.display();
}
});
modal.open();
});
}).addExtraButton((b) => {
b.setIcon("trash").setTooltip("Delete").onClick(() => __async(this, null, function* () {
this.display();
}));
});
}
containerEl.createEl("h3", { text: "for URI Schemas" });
new import_obsidian3.Setting(containerEl).setName("Add New").setDesc("Add custom icon").addButton((button) => {
return button.setTooltip("add custom icon").setIcon("plus-with-circle").onClick(() => __async(this, null, function* () {
const modal = new OverwrittenIconModal(this.plugin, null, "URI Schema");
modal.onClose = () => __async(this, null, function* () {
if (modal.saved) {
this.plugin.settings.protocol.push({
domain: modal.domain,
icon: modal.icon
});
yield this.plugin.saveSettings();
this.display();
}
});
modal.open();
}));
});
const protocolContainer = containerEl.createDiv("overwritten");
const voicesDiv = protocolContainer.createDiv("overwritten");
for (const protocol of this.plugin.settings.protocol) {
const setting = new import_obsidian3.Setting(voicesDiv);
const iconAPI = (0, import_obsidian_icon_shortcodes2.getApi)(this.plugin);
const desc = new DocumentFragment();
desc.createEl("p", { text: " " + protocol.icon }).prepend(iconAPI.getIcon(protocol.icon));
setting.setName(protocol.domain).setDesc(desc).addExtraButton((b) => {
b.setIcon("pencil").setTooltip("Edit").onClick(() => {
const modal = new OverwrittenIconModal(this.plugin, protocol, "URI Schema");
modal.onClose = () => __async(this, null, function* () {
if (modal.saved) {
const setting2 = this.plugin.settings.protocol.filter((overwritten) => {
return overwritten.domain !== modal.domain;
});
setting2.push({ domain: modal.domain, icon: modal.icon });
this.plugin.settings.protocol = setting2;
yield this.plugin.saveSettings();
this.display();
}
});
modal.open();
});
}).addExtraButton((b) => {
b.setIcon("trash").setTooltip("Delete").onClick(() => __async(this, null, function* () {
this.plugin.settings.protocol = this.plugin.settings.protocol.filter((overwritten) => {
return overwritten.domain !== protocol.domain;
});
yield this.plugin.saveSettings();
this.display();
}));
});
}
}
}
};
// src/main.ts
var FaviconPlugin = class extends import_obsidian3.Plugin {
var import_obsidian_icon_shortcodes3 = __toModule(require_lib());
var FaviconPlugin = class extends import_obsidian4.Plugin {
isDisabled(el) {
if (el.getAttribute("data-no-favicon"))
return true;
if (el.getAttribute("data-favicon"))
return true;
const style = getComputedStyle(el, ":before").getPropertyValue("background-url");
console.log(style);
}
displayCustomIcon(icons, link, domain) {
if (icons.length > 0) {
const iconApi = (0, import_obsidian_icon_shortcodes3.getApi)(this);
const icon = icons[0].icon;
const icon2 = iconApi.getIcon(icon, false);
if (icon2 !== null) {
if (typeof icon2 !== "string") {
icon2.addClass("link-favicon");
icon2.dataset.host = domain;
}
link.prepend(icon2);
return true;
}
}
return false;
}
onload() {
return __async(this, null, function* () {
console.log("enabling plugin: link favicons");
yield this.loadSettings();
this.addSettingTab(new FaviconSettings(this.app, this));
this.registerMarkdownPostProcessor((element, _) => __async(this, null, function* () {
this.registerMarkdownPostProcessor((element, ctx) => __async(this, null, function* () {
if (ctx.sourcePath.contains("no-favicon")) {
return;
}
const provider = providers[this.settings.provider];
const fallbackProvider = providers[this.settings.fallbackProvider];
if (!provider || !fallbackProvider) {
console.log("Link Favicons: misconfigured providers");
console.error("Link Favicons: misconfigured providers");
return;
}
const links = element.querySelectorAll("a.external-link:not([data-favicon])");
@ -171,21 +400,34 @@ var FaviconPlugin = class extends import_obsidian3.Plugin {
link.dataset.favicon = "true";
try {
const domain = new URL(link.href);
if (!this.settings.ignored.split("\n").contains(domain.hostname)) {
const el = document.createElement("object");
el.addClass("link-favicon");
el.dataset.host = domain.hostname;
el.data = yield provider.url(domain.hostname, this.settings);
el.data.contains(".ico") ? el.type = "image/x-icon" : el.type = "image/png";
el.style.height = "0.8em";
el.style.display = "inline-block";
const img = el.createEl("img");
img.src = yield fallbackProvider.url(domain.hostname, this.settings);
img.addClass("link-favicon");
img.style.height = "0.8em";
img.style.display = "block";
link.prepend(el);
if (!domain.protocol.contains("http")) {
if ((0, import_obsidian_icon_shortcodes3.isPluginEnabled)(this)) {
const icons = this.settings.protocol.filter((overwritten) => overwritten.domain === domain.protocol.replace(/:/g, ""));
if (this.displayCustomIcon(icons, link, domain.protocol))
continue;
}
}
if (this.settings.ignored.split("\n").contains(domain.hostname)) {
continue;
}
if ((0, import_obsidian_icon_shortcodes3.isPluginEnabled)(this)) {
const icons = this.settings.overwritten.filter((overwritten) => overwritten.domain === domain.hostname);
if (this.displayCustomIcon(icons, link, domain.hostname))
continue;
}
const el = document.createElement("object");
el.addClass("link-favicon");
el.dataset.host = domain.hostname;
el.data = yield provider.url(domain.hostname, this.settings);
el.data.contains(".ico") ? el.type = "image/x-icon" : el.type = "image/png";
el.style.height = "0.8em";
el.style.display = "inline-block";
const img = el.createEl("img");
img.src = yield fallbackProvider.url(domain.hostname, this.settings);
img.addClass("link-favicon");
img.style.height = "0.8em";
img.style.display = "block";
link.prepend(el);
} catch (e) {
console.log("Link Favicons: invalid url: " + link.href);
}

@ -1,8 +1,8 @@
{
"id": "link-favicon",
"name": "Link Favicons",
"version": "1.2.2",
"minAppVersion": "0.12.0",
"version": "1.3.2",
"minAppVersion": "0.13.14",
"description": "See the favicon for a linked website. ",
"author": "Johannes Theiner",
"authorUrl": "https://github.com/joethei",

@ -6,3 +6,12 @@
cursor: pointer !important;
image-rendering: -webkit-optimize-contrast;
}
.link-favicon-preview {
font-size: 50px;
text-align: center;
}
.link-favicon-preview img{
height: 50px;
}

File diff suppressed because one or more lines are too long

@ -9,7 +9,7 @@
"state": {
"type": "markdown",
"state": {
"file": "05.02 Networks/Selfhosting.md",
"file": "03.03 Food & Wine/@Main dishes.md",
"mode": "preview"
}
}
@ -76,7 +76,7 @@
"state": {
"type": "backlink",
"state": {
"file": "05.02 Networks/Selfhosting.md",
"file": "03.03 Food & Wine/@Main dishes.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -112,18 +112,18 @@
}
},
{
"id": "45fc71e3d6839ed8",
"id": "eb3a8f6b12662774",
"type": "leaf",
"state": {
"type": "FANTASY_CALENDAR",
"type": "RSS_FEED",
"state": {}
}
},
{
"id": "eb3a8f6b12662774",
"id": "cdca8558c4980152",
"type": "leaf",
"state": {
"type": "RSS_FEED",
"type": "FANTASY_CALENDAR",
"state": {}
}
}
@ -132,15 +132,15 @@
},
"active": "f02b54d5135a4e7e",
"lastOpenFiles": [
"05.02 Networks/Selfhosting.md",
"05.02 Networks/Domains.md",
"01.01 Life Orga/Finances.md",
"01.02 Home/MRCK.md",
"01.01 Life Orga/IT & Computer.md",
"03.03 Food & Wine/@Main dishes.md",
"03.03 Food & Wine/Pasta e Ceci.md",
"03.03 Food & Wine/@Side dishes.md",
"03.03 Food & Wine/Chili Oil.md",
"03.03 Food & Wine/Wonton sauce.md",
"03.03 Food & Wine/Spicy Pork Wontons.md",
"03.03 Food & Wine/@@Recipes.md",
"06.02 Investments/@Investment Task master.md",
"01.01 Life Orga/@Life Organisation.md"
"01.03 Family/Achille Bédier.md",
"01.03 Family/Aglaé de Villeneuve.md",
"05.02 Networks/Selfhosting.md",
"05.02 Networks/Domains.md"
]
}

@ -48,6 +48,8 @@ id CreateNote
```button
name Save
type command

@ -76,5 +76,21 @@ dv.view("00.01 Admin/dv-views/query_recipe", {course: "Side Dish", category: "Sa
[[#^Top|TOP]]
 
---
 
### Condiment
 
```dataviewjs
dv.view("00.01 Admin/dv-views/query_recipe", {course: "Side Dish", category: "Condiment"})
```
[[#^Top|TOP]]
 
 

@ -0,0 +1,146 @@
---
ServingSize: 6
cssclass: recipeTable
Tag: ["Condiment", "Spicy"]
Date: 2021-09-21
DocType: "Recipe"
Hierarchy: "NonRoot"
location: [51.514678599999996, -0.18378583926867909]
CollapseMetaTable: Yes
Meta:
IsFavourite: False
Rating: 4
Recipe:
Courses: "Side dish"
Categories: "Condiment"
Collections: "Chinese"
Source: https://thewoksoflife.com/how-to-make-chili-oil/
PreparationTime:
CookingTime: 75
OServingSize: 6
Ingredients:
- 500 ml neutral oil
- 5 whole star anise
- 1 whole cinnamon stick (preferably cassia cinnamon)
- 2 whole bay leaves
- 3 tablespoons Sichuan peppercorns
- 2 whole black cardamom pods (optional)
- 4 nuggets dried sand ginger (optional about 1 tablespoon)
- 2 teaspoons cloves (optional)
- 3 cloves garlic (optional crushed)
- 1.5 whole shallots (optional halved)
- 90 grams Sichuan chili flakes
- 1.5 teaspoons salt (to taste)
---
Parent:: [[@@Recipes|Recipes]], [[@Side dishes|Side dishes]]
---
 
```button
name Edit Recipe parameters
type command
action MetaEdit: Run MetaEdit
id EditMetaData
```
^button-ChiliOilEdit
```button
name Save
type command
action Save current file
id Save
```
^button-ChiliOilNSave
 
# Chili Oil
 
```toc
style: number
```
 
---
 
### Practical Informations
| |
|-|-
**Courses**: | `$=dv.current().Recipe.Courses`
**Categories**: | `$=dv.current().Recipe.Categories`
**Collections**: | `$=dv.current().Recipe.Collections`
**Serving size**: | `$=dv.current().ServingSize`
**Cooking time**: | `$=dv.current().Recipe.CookingTime` min
 
---
 
### Ingredients
 
```dataviewjs
dv.view("00.01 Admin/dv-views/query_ingredient", {ingredients: dv.current().Ingredients, originalportioncount: dv.current().Recipe.OServingSize})
```
 
---
 
### Instructions
 
```ad-tip
title: tips
Makes 2 1/4 4 1/4 cups (depending on the amount of aromatics, oil, and chili flakes you decide to use). Nutrition information is calculated based on 3 cups of chili oil (48 tablespoons). Serving size: 1 tablespoon.
```
 
```ad-quote
title: further tips
[How to Make Chili Oil: The Perfect Recipe! - The Woks of Life](https://thewoksoflife.com/how-to-make-chili-oil/)
```
 
1. Gather all the aromatics you plan to use. Place oil and selected aromatics into a pot with at least two inches of clearance between the oil and the rim of the pot. If using minimum aromatics, 1 ½ cups of oil should do it. If using all the aromatics, you can add up to 3 cups of oil.
 
2. Set it over medium heat to start, then progressively lower it to medium low or low heat as the oil comes to temperature. The oil should be at about 225-250° F / 110-120° C and causing small bubbles to slowly rise from the aromatics. If you notice the spices sizzling more vigorously than that or turning dark too quickly, reduce the heat to cool it down. If you are not achieving small bubbles, slowly increase the heat. Hovering around 200-225° F is the safest way to prevent burning. Infuse the aromatics this way for a minimum of 30 minutes, or up to 1 hour for best results.
 
3. While the oil is infusing, prepare your Sichuan chili flakes by placing them in a heatproof bowl. If you used 1½ cups of oil, ¾ cup of chili flakes is best. For 3 cups of oil, use 1¼ cups of chili flakes. You can experiment within this range (if you like more oil and fewer flakes, for instance).
 
4. Generally, the oil should be between 225-250° F (110-120° C) when pouring over the chili flakes. If you like a darker color, opt for 250-275° F/135° C. If your chili flakes are already super roasted, you may want to be closer to 225° F/110° C. When in doubt, test the oil on a small bowl of chili flakes before you do the rest. Carefully pour the hot oil through a strainer onto the chili flakes. Stir to evenly distribute the heat of the oil. You'll know you've gotten it right when you smell a "popcorn"-like smell that is not at all burnt-smelling.
 
5. Stir in the salt, and allow the chili oil to cool. Store in airtight containers in the refrigerator. Always use a clean utensil when handling to prevent spoilage. It can last for up to 6 months if handled in this way.
 
 

@ -0,0 +1,152 @@
---
ServingSize: 6
cssclass: recipeTable
Tag: ["Dumplings"]
Date: 2021-09-21
DocType: "Recipe"
Hierarchy: "NonRoot"
location: [51.514678599999996, -0.18378583926867909]
CollapseMetaTable: Yes
Meta:
IsFavourite: False
Rating:
Recipe:
Courses: "Main dish"
Categories: Wrap
Collections: "Chinese"
Source: https://thewoksoflife.com/sichuan-spicy-wontons/
PreparationTime:
CookingTime: 50
OServingSize: 6
Ingredients:
- 170 grams ground pork
- 1 tablespoon finely chopped scallions
- 0.5 teaspoon sesame oil
- 1 teaspoon soy sauce
- 2 teaspoons Shaoxing wine
- 1 pinch salt
- 0.5 pinch sugar
- 1 tablespoon peanut oil (or canola oil)
- 2 tablespoons water
- 1 pinch fresh ground white pepper
- 18 wonton wrappers
---
Parent:: [[@@Recipes|Recipes]], [[@Main dishes|Main dishes]]
---
 
```button
name Edit Recipe parameters
type command
action MetaEdit: Run MetaEdit
id EditMetaData
```
^button-SpicyPorkWontonsEdit
```button
name Save
type command
action Save current file
id Save
```
^button-SpicyPorkWontonsNSave
 
# Spicy Pork Wontons
 
```toc
style: number
```
 
---
 
### Practical Informations
| |
|-|-
**Courses**: | `$=dv.current().Recipe.Courses`
**Categories**: | `$=dv.current().Recipe.Categories`
**Collections**: | `$=dv.current().Recipe.Collections`
**Serving size**: | `$=dv.current().ServingSize`
**Cooking time**: | `$=dv.current().Recipe.CookingTime` min
 
---
 
### Dependencies
 
1. [[Wonton sauce]]
2. [[Chili Oil]]
 
---
 
### Ingredients
 
```dataviewjs
dv.view("00.01 Admin/dv-views/query_ingredient", {ingredients: dv.current().Ingredients, originalportioncount: dv.current().Recipe.OServingSize})
```
 
---
 
### Instructions
 
1. Add all of the wonton filling ingredients to a bowl (everything from the pork to the white pepper) and whip everything together by hand for 5 minutes or in a food processor for 1 minute. You want the pork to look a little bit like a paste.
 
2. To make the wontons, take a wrapper, and add about a teaspoon of filling. Use your finger to coat the edges with water or egg wash (this helps the two sides seal together).
 
3. Fold the wonton in half so you have a rectangle shape. Bring together the two outer corners so they overlap slightly, add another drop of water or egg wash, and press to seal.
 
4. Keep assembling until all the filling is gone, which should make you about 18 wontons. Like all wonton recipes, you can double or triple the batch, eat some, then freeze the rest for another day. Place the wontons on a baking sheet or plate lined with parchment paper to prevent sticking.
 
5. Boil a pot of water for the wontons. While the water is coming to a boil, make the [[Wonton sauce]] by mixing all of the ingredients together in a small mixing bowl. If you like spicy, add more of the chili peppers and not just the oil from your homemade [[Chili Oil]]. This recipe makes enough for 18 or 20 wontons.
 
6. Give the boiling water a good stir and drop the wontons in, being careful not to crowd them. Continue stirring so they do not stick. Adjust the heat to achieve a low boil, and cook the wontons for about 2 minutes or until the wrappers begin to look translucent. I like mine a little bit al dente, so I take them out right at 2 minutes when they float to the top.
 
7. Use a slotted spoon to drain the water and transfer the wontons to a serving bowl. Stir in 1/4 cup of the boiling water into your sauce, then pour the sauce over the wontons. Garnish with scallion if using and serve!
 
 

@ -0,0 +1,111 @@
---
ServingSize: 6
cssclass: recipeTable
Tag: ["Oil", "Dressing"]
Date: 2021-09-21
DocType: "Recipe"
Hierarchy: "NonRoot"
location: [51.514678599999996, -0.18378583926867909]
CollapseMetaTable: Yes
Meta:
IsFavourite: False
Rating: 4
Recipe:
Courses: "Side dish"
Categories: "Condiment"
Collections: "Chinese"
Source: https://thewoksoflife.com/sichuan-spicy-wontons/
PreparationTime:
CookingTime: 10
OServingSize: 6
Ingredients:
- 3 tablespoons light soy sauce
- 0.5 teaspoon Chinese black vinegar (preferred, or rice wine vinegar)
- 6 tablespoons homemade chili oil (plus 2 teaspoons of the toasted chili from the oil)
- 1 pinch Salt (to taste)
- 1 teaspoon sesame paste (or tahini)
- 2 teaspoons sugar
- 2 cloves garlic (finely minced)
---
Parent:: [[Spicy Pork Wontons]]
---
 
```button
name Edit Recipe parameters
type command
action MetaEdit: Run MetaEdit
id EditMetaData
```
^button-chilioilEdit
```button
name Save
type command
action Save current file
id Save
```
^button-chilioilNSave
 
# Wonton sauce
 
```toc
style: number
```
 
---
 
### Practical Informations
| |
|-|-
**Courses**: | `$=dv.current().Recipe.Courses`
**Categories**: | `$=dv.current().Recipe.Categories`
**Collections**: | `$=dv.current().Recipe.Collections`
**Serving size**: | `$=dv.current().ServingSize`
**Cooking time**: | `$=dv.current().Recipe.CookingTime` min
 
---
 
### Ingredients
 
```dataviewjs
dv.view("00.01 Admin/dv-views/query_ingredient", {ingredients: dv.current().Ingredients, originalportioncount: dv.current().Recipe.OServingSize})
```
 
---
 
### Instructions
 
make the sauce by mixing all of the ingredients together in a small mixing bowl. If you like spicy, add more of the chili peppers and not just the oil from your homemade chili oil. This recipe makes enough for 18 or 20 wontons
 
 
Loading…
Cancel
Save