update
This commit is contained in:
parent
f71d6b0503
commit
66c143b7b3
8
.obsidian/app.json
vendored
8
.obsidian/app.json
vendored
@ -12,7 +12,7 @@
|
||||
"pageSize": "A4",
|
||||
"landscape": false,
|
||||
"margin": "0",
|
||||
"downscalePercent": 80
|
||||
"downscalePercent": 75
|
||||
},
|
||||
"defaultViewMode": "source",
|
||||
"autoPairMarkdown": false,
|
||||
@ -38,7 +38,9 @@
|
||||
"autoPairBrackets": true,
|
||||
"showInlineTitle": true,
|
||||
"spellcheckDictionary": [
|
||||
"zettelkasten"
|
||||
"zettelkasten",
|
||||
"analysabilité",
|
||||
"multiparadigme"
|
||||
],
|
||||
"propertiesInDocument": "hidden"
|
||||
"propertiesInDocument": "visible"
|
||||
}
|
4
.obsidian/canvas.json
vendored
Normal file
4
.obsidian/canvas.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"snapToObjects": true,
|
||||
"snapToGrid": false
|
||||
}
|
3
.obsidian/community-plugins.json
vendored
3
.obsidian/community-plugins.json
vendored
@ -48,5 +48,6 @@
|
||||
"obsidian-pandoc-reference-list",
|
||||
"obsidian-footnotes",
|
||||
"better-fn",
|
||||
"math-in-callout"
|
||||
"math-in-callout",
|
||||
"cloze"
|
||||
]
|
4
.obsidian/graph.json
vendored
4
.obsidian/graph.json
vendored
@ -123,13 +123,13 @@
|
||||
"collapse-display": false,
|
||||
"showArrow": false,
|
||||
"textFadeMultiplier": 0,
|
||||
"nodeSizeMultiplier": 0.827272727272727,
|
||||
"nodeSizeMultiplier": 1.27095253998293,
|
||||
"lineSizeMultiplier": 1.108,
|
||||
"collapse-forces": true,
|
||||
"centerStrength": 0.1812744140625,
|
||||
"repelStrength": 6.39485677083333,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 30,
|
||||
"scale": 0.05650571961780555,
|
||||
"scale": 0.2031328370671037,
|
||||
"close": true
|
||||
}
|
29
.obsidian/hotkeys.json
vendored
29
.obsidian/hotkeys.json
vendored
@ -178,12 +178,6 @@
|
||||
],
|
||||
"editor:delete-paragraph": [],
|
||||
"command-palette:open": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Mod"
|
||||
],
|
||||
"key": ";"
|
||||
},
|
||||
{
|
||||
"modifiers": [
|
||||
"Mod"
|
||||
@ -748,6 +742,12 @@
|
||||
"Mod"
|
||||
],
|
||||
"key": "."
|
||||
},
|
||||
{
|
||||
"modifiers": [
|
||||
"Ctrl"
|
||||
],
|
||||
"key": "I"
|
||||
}
|
||||
],
|
||||
"zotlit:note-quick-switcher": [
|
||||
@ -775,5 +775,22 @@
|
||||
],
|
||||
"key": "F"
|
||||
}
|
||||
],
|
||||
"properties:open-local": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Ctrl"
|
||||
],
|
||||
"key": "P"
|
||||
}
|
||||
],
|
||||
"obsidian-zoom:zoom-out": [
|
||||
{
|
||||
"modifiers": [
|
||||
"Ctrl",
|
||||
"Shift"
|
||||
],
|
||||
"key": "I"
|
||||
}
|
||||
]
|
||||
}
|
17
.obsidian/plugins/cloze/data.json
vendored
Normal file
17
.obsidian/plugins/cloze/data.json
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"defaultHide": true,
|
||||
"selectorTag": "#",
|
||||
"includeHighlighted": true,
|
||||
"includeUnderlined": false,
|
||||
"includeBolded": false,
|
||||
"includeItalics": false,
|
||||
"includeBracketed": false,
|
||||
"includeCurlyBrackets": false,
|
||||
"fixedClozeWidth": false,
|
||||
"editorMenuAddCloze": true,
|
||||
"editorMenuAddClozeWithHint": true,
|
||||
"editorMenuRemoveCloze": true,
|
||||
"hintStrategy": 0,
|
||||
"hintCount": 2,
|
||||
"hintPercentage": 0.2
|
||||
}
|
697
.obsidian/plugins/cloze/main.js
vendored
Normal file
697
.obsidian/plugins/cloze/main.js
vendored
Normal file
@ -0,0 +1,697 @@
|
||||
/*
|
||||
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);
|
||||
|
||||
// src/main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
default: () => ClozePlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian3 = require("obsidian");
|
||||
|
||||
// src/lang/en.ts
|
||||
var langs = {
|
||||
add_cloze: "Create cloze",
|
||||
add_cloze_with_hint: "Create cloze with hint",
|
||||
remove_cloze: "Remove cloze",
|
||||
toggle_cloze: "Toggle all clozes",
|
||||
reveal_more_hint: "More hint",
|
||||
setting_selector_tag: "Required tag",
|
||||
setting_selector_tag_desc: "If you provide a tag here, the plugin will only activate on notes with that tag i.e. #cloze.",
|
||||
setting_hide_by_default: "Hide by default",
|
||||
setting_hide_by_default_desc: "Enable this setting, all clozes will be hidden by default when reading the page. \u{1F648}",
|
||||
setting_auto_convert: "Auto Convert",
|
||||
setting_highlight: "Highlighted text",
|
||||
setting_highlight_desc: "Enable this setting, all ==highlighted texts== will be converted to cloze.",
|
||||
setting_bold: "Bolded text",
|
||||
setting_bold_desc: "Enable this setting, all **bolded texts** will be converted to cloze.",
|
||||
setting_underline: "Underlined text",
|
||||
setting_underline_desc: "Enable this setting, all <u>underlined texts</u> will be converted to cloze.",
|
||||
setting_italics: "Italic text",
|
||||
setting_italics_desc: "Enable this setting, all *italic texts* and _italic texts_ will be converted to cloze.",
|
||||
setting_bracket: "Bracketed text",
|
||||
setting_bracket_desc: "Enable this setting, all [bracketed texts] will be converted to cloze.",
|
||||
setting_curly_bracket: "Curly bracketed text",
|
||||
setting_curly_bracket_desc: "Enable this setting, all {text enclosed in curly brackets} will be converted to cloze.",
|
||||
setting_editor_menu: "Editor menu",
|
||||
setting_editor_menu_add_cloze: "Display add cloze button",
|
||||
setting_editor_menu_add_cloze_with_hint: "Display add cloze with hint button",
|
||||
setting_editor_menu_remove_cloze: "Display remove cloze button",
|
||||
setting_custom_setting: "Custom settings",
|
||||
setting_fixed_cloze_width: "Fixed cloze width",
|
||||
setting_fixed_cloze_width_desc: "Enable this setting, clozes will have the same default width, which helps to ensure that the original text length is not revealed.",
|
||||
setting_hint: "Hint",
|
||||
setting_hint_strategy: "Hint strategy",
|
||||
setting_hint_strategy_desc: "If you would like the cloze to automatically display the hint based on its content, you have two strategies to choose from: by text count or by text length percentage.",
|
||||
setting_hint_by_count: "By count",
|
||||
setting_hint_by_count_desc: "Set this setting, clozes that are in the hidden state will display the first n letters/characters as a hint.",
|
||||
setting_hint_by_percentage: "By percentage",
|
||||
setting_hint_by_percentage_desc: "Set this setting, clozes that are in the hidden state will display hint based on the percentage of the cloze content. For example, 20% of a cloze containing 10 letters would show 2 of its 1st letters.",
|
||||
setting_contact: "Thank you for using Cloze! Any feedback is welcomed"
|
||||
};
|
||||
var en_default = langs;
|
||||
|
||||
// src/lang/zh.ts
|
||||
var langs2 = {
|
||||
add_cloze: "\u6DFB\u52A0\u586B\u7A7A",
|
||||
add_cloze_with_hint: "\u6DFB\u52A0\u5E26\u63D0\u793A\u7684\u586B\u7A7A",
|
||||
remove_cloze: "\u79FB\u9664\u586B\u7A7A",
|
||||
toggle_cloze: "\u663E/\u9690\u6240\u6709\u586B\u7A7A",
|
||||
reveal_more_hint: "\u66F4\u591A\u63D0\u793A",
|
||||
setting_selector_tag: "\u4F5C\u7528\u6807\u7B7E",
|
||||
setting_selector_tag_desc: "\u8BE5\u63D2\u4EF6\u5C06\u4EC5\u4F5C\u7528\u4E8E\u5E26\u6709\u8BE5\u6807\u7B7E\u7684\u7B14\u8BB0\u4E0A\uFF0C\u4E3A\u7A7A\u5219\u4F5C\u7528\u4E8E\u6240\u6709\u7B14\u8BB0 i.e. #cloze\u3002",
|
||||
setting_hide_by_default: "\u9ED8\u8BA4\u9690\u85CF",
|
||||
setting_hide_by_default_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6253\u5F00\u9875\u9762\u65F6\u6240\u6709\u586B\u7A7A\u5185\u5BB9\u5C06\u9ED8\u8BA4\u9690\u85CF\u3002\u{1F648}",
|
||||
setting_auto_convert: "\u81EA\u52A8\u8F6C\u6362",
|
||||
setting_highlight: "\u9AD8\u4EAE\u6587\u5B57",
|
||||
setting_highlight_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709==\u9AD8\u4EAE\u6587\u5B57==\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_bold: "\u7C97\u4F53\u6587\u5B57",
|
||||
setting_bold_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709**\u7C97\u4F53\u6587\u5B57**\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_underline: "\u4E0B\u5212\u7EBF\u6587\u5B57",
|
||||
setting_underline_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709<u>\u4E0B\u5212\u7EBF\u6587\u5B57</u>\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_italics: "\u659C\u4F53\u6587\u5B57",
|
||||
setting_italics_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709<i>\u659C\u4F53\u6587\u5B57</i>\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_bracket: "\u62EC\u53F7\u6587\u5B57",
|
||||
setting_bracket_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709[\u62EC\u53F7\u6587\u5B57]\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_curly_bracket: "\u82B1\u62EC\u53F7\u6587\u5B57",
|
||||
setting_curly_bracket_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709{\u82B1\u62EC\u53F7\u6587\u5B57}\u4E5F\u5C06\u8F6C\u6362\u4E3A\u586B\u7A7A\u3002",
|
||||
setting_editor_menu: "\u7F16\u8F91\u5668\u83DC\u5355",
|
||||
setting_editor_menu_add_cloze: "\u663E\u793A\u6DFB\u52A0\u586B\u7A7A\u6309\u94AE",
|
||||
setting_editor_menu_add_cloze_with_hint: "\u663E\u793A\u6DFB\u52A0\u5E26\u63D0\u793A\u7684\u586B\u7A7A\u6309\u94AE",
|
||||
setting_editor_menu_remove_cloze: "\u663E\u793A\u79FB\u9664\u586B\u7A7A\u6309\u94AE",
|
||||
setting_custom_setting: "\u81EA\u5B9A\u4E49\u8BBE\u7F6E",
|
||||
setting_fixed_cloze_width: "\u56FA\u5B9A\u586B\u7A7A\u5BBD\u5EA6",
|
||||
setting_fixed_cloze_width_desc: "\u542F\u7528\u6B64\u8BBE\u7F6E\u540E\uFF0C\u6240\u6709\u586B\u7A7A\u7684\u5BBD\u5EA6\u9ED8\u8BA4\u76F8\u540C\uFF08\u53EF\u907F\u514D\u900F\u9732\u539F\u6587\u5B57\u957F\u5EA6\uFF09\u3002",
|
||||
setting_hint: "\u63D0\u793A",
|
||||
setting_hint_strategy: "\u63D0\u793A\u7B56\u7565",
|
||||
setting_hint_strategy_desc: "\u5982\u679C\u4F60\u5E0C\u671B\u586B\u7A7A\u9ED8\u8BA4\u5C55\u793A\u63D0\u793A\uFF0C\u53EF\u9009\u62E9\u81EA\u52A8\u63D0\u793A\u7B56\u7565\uFF1A\u9996\u5B57\u6BCD\u6216\u662F\u767E\u5206\u6BD4\u3002",
|
||||
setting_hint_by_count: "\u63D0\u793A\u5B57\u6570",
|
||||
setting_hint_by_count_desc: "\u586B\u7A7A\u5728\u9690\u85CF\u72B6\u6001\u4E0B\u4F1A\u5C55\u793A\u539F\u4F4D\u7684\u9996n\u4E2A\u5B57\u7B26\u3002",
|
||||
setting_hint_by_percentage: "\u63D0\u793A\u767E\u5206\u6BD4",
|
||||
setting_hint_by_percentage_desc: "\u586B\u7A7A\u5728\u9690\u85CF\u72B6\u6001\u4E0B\u4F1A\u5C55\u793A\u539F\u4F4D\u7684\u9996n%\u4E2A\u5B57\u7B26\u3002",
|
||||
setting_contact: "\u8C22\u8C22\u4F60\u7684\u4F7F\u7528~ \u6B22\u8FCE\u53CD\u9988\uFF01\u6233\u8FD9\u91CC\uFF1A"
|
||||
};
|
||||
var zh_default = langs2;
|
||||
|
||||
// src/lang/index.ts
|
||||
var langs3 = {
|
||||
en: en_default,
|
||||
zh: zh_default
|
||||
};
|
||||
var language = window.localStorage.getItem("language") || "en";
|
||||
var lang_default = langs3[language] || en_default;
|
||||
|
||||
// src/settings/settingData.ts
|
||||
var HINT_STRATEGY = {
|
||||
none: 0,
|
||||
count: 1,
|
||||
percentage: 2
|
||||
};
|
||||
var DEFAULT_SETTINGS = {
|
||||
defaultHide: true,
|
||||
selectorTag: "#",
|
||||
includeHighlighted: false,
|
||||
includeUnderlined: false,
|
||||
includeBolded: false,
|
||||
includeItalics: false,
|
||||
includeBracketed: false,
|
||||
includeCurlyBrackets: false,
|
||||
fixedClozeWidth: false,
|
||||
editorMenuAddCloze: true,
|
||||
editorMenuAddClozeWithHint: true,
|
||||
editorMenuRemoveCloze: true,
|
||||
hintStrategy: HINT_STRATEGY.none,
|
||||
hintCount: 2,
|
||||
hintPercentage: 0.2
|
||||
// 20%
|
||||
};
|
||||
var settingData_default = DEFAULT_SETTINGS;
|
||||
|
||||
// src/settings/settingTab.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
var SettingTab = class extends import_obsidian.PluginSettingTab {
|
||||
constructor(app, plugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
display() {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
containerEl.createEl("h1", { text: "Cloze" });
|
||||
this.displayAutoConvert(containerEl);
|
||||
this.displayCustomSetting(containerEl);
|
||||
this.displayHintSetting(containerEl);
|
||||
this.displayEditorMenuSetting(containerEl);
|
||||
this.displayContact(containerEl);
|
||||
}
|
||||
displayAutoConvert(containerEl) {
|
||||
containerEl.createEl("h2", { text: lang_default.setting_auto_convert });
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_highlight).setDesc(lang_default.setting_highlight_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeHighlighted).onChange((value) => {
|
||||
this.plugin.settings.includeHighlighted = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_bold).setDesc(lang_default.setting_bold_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeBolded).onChange((value) => {
|
||||
this.plugin.settings.includeBolded = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_underline).setDesc(lang_default.setting_underline_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeUnderlined).onChange((value) => {
|
||||
this.plugin.settings.includeUnderlined = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_italics).setDesc(lang_default.setting_italics_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeItalics).onChange((value) => {
|
||||
this.plugin.settings.includeItalics = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_bracket).setDesc(lang_default.setting_bracket_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeBracketed).onChange((value) => {
|
||||
this.plugin.settings.includeBracketed = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_curly_bracket).setDesc(lang_default.setting_curly_bracket_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.includeCurlyBrackets).onChange((value) => {
|
||||
this.plugin.settings.includeCurlyBrackets = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
displayCustomSetting(containerEl) {
|
||||
containerEl.createEl("h2", { text: lang_default.setting_custom_setting });
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_selector_tag).setDesc(lang_default.setting_selector_tag_desc).addText((text) => text.setValue(this.plugin.settings.selectorTag).onChange(async (value) => {
|
||||
this.plugin.settings.selectorTag = this.sanitizeTag(value);
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_fixed_cloze_width).setDesc(lang_default.setting_fixed_cloze_width_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.fixedClozeWidth).onChange((value) => {
|
||||
this.plugin.settings.fixedClozeWidth = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_hide_by_default).setDesc(lang_default.setting_hide_by_default_desc).addToggle((toggle) => toggle.setValue(this.plugin.settings.defaultHide).onChange((value) => {
|
||||
this.plugin.settings.defaultHide = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
displayHintSetting(containerEl) {
|
||||
const settingEl = containerEl.createEl("div");
|
||||
settingEl.createEl("h2", { text: "Hint" });
|
||||
new import_obsidian.Setting(settingEl).setName(lang_default.setting_hint_strategy).setDesc(lang_default.setting_hint_strategy_desc).addDropdown((comp) => {
|
||||
comp.addOptions({ [HINT_STRATEGY.none]: "Off", [HINT_STRATEGY.count]: "By Count", [HINT_STRATEGY.percentage]: "By Percentage" });
|
||||
comp.setValue(this.plugin.settings.hintStrategy.toString());
|
||||
comp.onChange((val) => {
|
||||
this.plugin.settings.hintStrategy = Number(val);
|
||||
initHintStrategyVaule(Number(val));
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
let hintStrategySetting;
|
||||
const initHintStrategyVaule = (strategy) => {
|
||||
var _a;
|
||||
if (hintStrategySetting)
|
||||
(_a = hintStrategySetting.settingEl.parentElement) == null ? void 0 : _a.removeChild(hintStrategySetting.settingEl);
|
||||
switch (strategy) {
|
||||
case HINT_STRATEGY.none:
|
||||
break;
|
||||
case HINT_STRATEGY.count:
|
||||
hintStrategySetting = new import_obsidian.Setting(settingEl).setName(lang_default.setting_hint_by_count).setDesc(lang_default.setting_hint_by_count_desc).addText((text) => {
|
||||
text.setValue(this.plugin.settings.hintCount.toString()).onChange(async (value) => {
|
||||
const valueNumber = Number(value);
|
||||
if (isNaN(valueNumber))
|
||||
return;
|
||||
this.plugin.settings.hintCount = valueNumber;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
break;
|
||||
case HINT_STRATEGY.percentage:
|
||||
hintStrategySetting = new import_obsidian.Setting(settingEl).setName(lang_default.setting_hint_by_percentage).setDesc(lang_default.setting_hint_by_percentage_desc).addText((text) => {
|
||||
text.setValue(this.plugin.settings.hintPercentage * 100 + "%").onChange(async (value) => {
|
||||
const matches = value.match(/^(\d+)%$/);
|
||||
if (!matches)
|
||||
return;
|
||||
const valueNumber = Number(matches[1]) / 100;
|
||||
if (isNaN(valueNumber))
|
||||
return;
|
||||
this.plugin.settings.hintPercentage = valueNumber;
|
||||
this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
break;
|
||||
}
|
||||
};
|
||||
initHintStrategyVaule(Number(this.plugin.settings.hintStrategy));
|
||||
}
|
||||
displayEditorMenuSetting(containerEl) {
|
||||
containerEl.createEl("h2", { text: lang_default.setting_editor_menu });
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_editor_menu_add_cloze).addToggle((toggle) => toggle.setValue(this.plugin.settings.editorMenuAddCloze).onChange((value) => {
|
||||
this.plugin.settings.editorMenuAddCloze = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_editor_menu_add_cloze_with_hint).addToggle((toggle) => toggle.setValue(this.plugin.settings.editorMenuAddClozeWithHint).onChange((value) => {
|
||||
this.plugin.settings.editorMenuAddClozeWithHint = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName(lang_default.setting_editor_menu_remove_cloze).addToggle((toggle) => toggle.setValue(this.plugin.settings.editorMenuRemoveCloze).onChange((value) => {
|
||||
this.plugin.settings.editorMenuRemoveCloze = value;
|
||||
this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
displayContact(containerEl) {
|
||||
containerEl.createEl("p", {
|
||||
text: lang_default.setting_contact + " ",
|
||||
cls: "setting-item-description"
|
||||
}).createEl("a", {
|
||||
text: "here",
|
||||
href: "https://github.com/DearVikki/obsidian-cloze-plugin/issues"
|
||||
});
|
||||
}
|
||||
// Check and clean up tags that are not (what I understand to be) well formed Obsidian tags.
|
||||
sanitizeTag(tagInput) {
|
||||
const allowedCharacters = /^[a-zA-Z0-9-_]+$/;
|
||||
const tagBody = tagInput.startsWith("#") ? tagInput.slice(1) : tagInput;
|
||||
if (allowedCharacters.test(tagBody)) {
|
||||
return "#" + tagBody;
|
||||
}
|
||||
const sanitizedTagBody = tagBody.replace(/[^a-zA-Z0-9-_]/g, "_");
|
||||
return "#" + sanitizedTagBody;
|
||||
}
|
||||
};
|
||||
var settingTab_default = SettingTab;
|
||||
|
||||
// src/components/modal-hint.ts
|
||||
var import_obsidian2 = require("obsidian");
|
||||
var HintModal = class extends import_obsidian2.Modal {
|
||||
constructor(app, clozedText, onSubmit) {
|
||||
super(app);
|
||||
this.clozedText = clozedText;
|
||||
this.onSubmit = onSubmit;
|
||||
}
|
||||
onOpen() {
|
||||
const { contentEl } = this;
|
||||
contentEl.createEl("p", { text: "Clozed text: " + this.clozedText });
|
||||
new import_obsidian2.Setting(contentEl).setClass("modal-hint-setting").setName("Hint text: ").addText((text) => text.onChange((value) => {
|
||||
this.result = value;
|
||||
}));
|
||||
new import_obsidian2.Setting(contentEl).addButton((btn) => btn.setButtonText("Submit").setCta().onClick(() => {
|
||||
this.close();
|
||||
this.onSubmit(this.result);
|
||||
}));
|
||||
}
|
||||
onClose() {
|
||||
const { contentEl } = this;
|
||||
contentEl.empty();
|
||||
}
|
||||
};
|
||||
|
||||
// src/const.ts
|
||||
var ATTRS = {
|
||||
hide: "data-cloze-hide",
|
||||
hint: "data-cloze-hint",
|
||||
content: "data-cloze-content"
|
||||
};
|
||||
var CLASSES = {
|
||||
cloze: "cloze",
|
||||
clozeContent: "cloze-content",
|
||||
highlight: "cloze-highlight",
|
||||
bold: "cloze-bold",
|
||||
underline: "cloze-underline",
|
||||
hint: "cloze-hint",
|
||||
fixedWidth: "cloze-fixed-width"
|
||||
};
|
||||
|
||||
// src/utils.ts
|
||||
var utils = {
|
||||
getClozeEl: (target) => {
|
||||
return target.closest("." + CLASSES.cloze);
|
||||
},
|
||||
getClozeContentEl: (target) => {
|
||||
return target.querySelector("." + CLASSES.clozeContent);
|
||||
},
|
||||
getClozeHintEl: (target) => {
|
||||
return target.querySelector("." + CLASSES.hint);
|
||||
},
|
||||
getClozeContent: (clozeEl) => {
|
||||
const $content = clozeEl.querySelector("." + CLASSES.clozeContent);
|
||||
if ($content) {
|
||||
return $content.textContent || "";
|
||||
}
|
||||
return "";
|
||||
},
|
||||
hasCustomHint: (clozeEl) => {
|
||||
return !!clozeEl.getAttribute(ATTRS.hint);
|
||||
},
|
||||
getClozeCustomHint: (clozeEl) => {
|
||||
return clozeEl.getAttribute(ATTRS.hint) || "";
|
||||
},
|
||||
getClozeCurrentHint: (clozeEl) => {
|
||||
const $hint = clozeEl.querySelector("." + CLASSES.hint);
|
||||
if ($hint) {
|
||||
return $hint.textContent || "";
|
||||
}
|
||||
return "";
|
||||
},
|
||||
setClozeHint: (clozeEl, hint) => {
|
||||
const $hint = utils.getClozeHintEl(clozeEl);
|
||||
if (!$hint || hint === void 0)
|
||||
return;
|
||||
$hint.textContent = hint;
|
||||
if ($hint.parentElement)
|
||||
$hint.parentElement.title = hint;
|
||||
},
|
||||
isClozeHide: (clozeEl) => {
|
||||
return !!clozeEl.getAttribute(ATTRS.hide);
|
||||
}
|
||||
};
|
||||
var utils_default = utils;
|
||||
|
||||
// src/main.ts
|
||||
var ClozePlugin = class extends import_obsidian3.Plugin {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.isSourceHide = false;
|
||||
this.isPreviewHide = true;
|
||||
this.clozeSelector = () => {
|
||||
const selectors = [".cloze-span"];
|
||||
if (this.settings.includeHighlighted) {
|
||||
selectors.push("mark");
|
||||
selectors.push(".cm-highlight");
|
||||
}
|
||||
if (this.settings.includeUnderlined) {
|
||||
selectors.push("u");
|
||||
}
|
||||
if (this.settings.includeBolded) {
|
||||
selectors.push("strong");
|
||||
selectors.push(".cm-strong");
|
||||
}
|
||||
if (this.settings.includeItalics) {
|
||||
selectors.push("em");
|
||||
selectors.push(".cm-em");
|
||||
}
|
||||
return selectors.join(", ");
|
||||
};
|
||||
this.transformBracketedText = (element) => {
|
||||
const items = element.querySelectorAll("p, h1, h2, h3, h4, h5, li, td, th, code");
|
||||
items.forEach((item) => {
|
||||
item.innerHTML = item.innerHTML.replace(/\[(.*?)\]/g, '<span class="cloze-span">$1</span>');
|
||||
});
|
||||
};
|
||||
this.transformCurlyBracketedText = (element) => {
|
||||
const items = element.querySelectorAll("p, h1, h2, h3, h4, h5, li, td, th, code");
|
||||
items.forEach((item) => {
|
||||
item.innerHTML = item.innerHTML.replace(/\{(.*?)\}/g, '<span class="cloze-span">$1</span>');
|
||||
});
|
||||
};
|
||||
this.renderCloze = ($cloze) => {
|
||||
$cloze.classList.add(CLASSES.cloze);
|
||||
$cloze.innerHTML = `<span class="cloze-hint"></span><span class="cloze-content">${$cloze.innerHTML}</span>`;
|
||||
this.initHint($cloze);
|
||||
};
|
||||
this.initHint = ($cloze) => {
|
||||
let hint = "";
|
||||
if (utils_default.hasCustomHint($cloze)) {
|
||||
hint = utils_default.getClozeCustomHint($cloze);
|
||||
} else {
|
||||
const textContent = utils_default.getClozeContent($cloze);
|
||||
if (this.settings.hintStrategy === HINT_STRATEGY.count) {
|
||||
hint = textContent.slice(0, this.settings.hintCount);
|
||||
} else if (this.settings.hintStrategy === HINT_STRATEGY.percentage) {
|
||||
hint = textContent.slice(0, Math.ceil(textContent.length * this.settings.hintPercentage));
|
||||
}
|
||||
}
|
||||
utils_default.setClozeHint($cloze, hint);
|
||||
};
|
||||
// ----------- cloze interaction ------------
|
||||
this.hideClozeContent = (target) => {
|
||||
if (!target.getAttribute(ATTRS.hide)) {
|
||||
target.setAttribute(ATTRS.hide, "true");
|
||||
}
|
||||
this.initHint(target);
|
||||
};
|
||||
this.showClozeContent = (target) => {
|
||||
if (target.getAttribute(ATTRS.hide)) {
|
||||
target.removeAttribute(ATTRS.hide);
|
||||
}
|
||||
};
|
||||
this.addCloze = (editor, needHint) => {
|
||||
const currentStr = editor.getSelection();
|
||||
const content = currentStr.replace(/<span class="cloze-span">(.*?)<\/span>/g, "$1");
|
||||
if (needHint) {
|
||||
new HintModal(this.app, content, (hint) => {
|
||||
const newStr = `<span class="cloze-span" data-cloze-hint="${hint}">` + content + "</span>";
|
||||
editor.replaceSelection(newStr);
|
||||
editor.blur();
|
||||
}).open();
|
||||
} else {
|
||||
const newStr = '<span class="cloze-span">' + content + "</span>";
|
||||
editor.replaceSelection(newStr);
|
||||
editor.blur();
|
||||
}
|
||||
};
|
||||
this.removeCloze = (editor) => {
|
||||
const currentStr = editor.getSelection();
|
||||
const newStr = currentStr.replace(/<span.*?class="cloze-span".*?>(.*?)<\/span>/g, "$1");
|
||||
editor.replaceSelection(newStr);
|
||||
};
|
||||
this.revealMoreHint = ($cloze) => {
|
||||
const currentHint = utils_default.getClozeCurrentHint($cloze);
|
||||
const hintLength = currentHint.length + 3;
|
||||
utils_default.setClozeHint($cloze, utils_default.getClozeContent($cloze).slice(0, hintLength));
|
||||
};
|
||||
}
|
||||
async onload() {
|
||||
console.log("load cloze plugin");
|
||||
await this.loadSettings();
|
||||
this.addSettingTab(new settingTab_default(this.app, this));
|
||||
this.initRibbon();
|
||||
this.initEditorMenu();
|
||||
this.initCommand();
|
||||
this.initMarkdownPostProcessor();
|
||||
this.registerDomEvent(document, "click", (event) => {
|
||||
if (this.isPreviewMode()) {
|
||||
this.toggleHide(utils_default.getClozeEl(event.target));
|
||||
}
|
||||
});
|
||||
this.registerDomEvent(document, "contextmenu", (event) => {
|
||||
if (this.isPreviewMode()) {
|
||||
this.onRightClick(event, utils_default.getClozeEl(event.target));
|
||||
}
|
||||
});
|
||||
}
|
||||
initRibbon() {
|
||||
this.addRibbonIcon("fish", lang_default.toggle_cloze, (evt) => {
|
||||
if (this.checkTags()) {
|
||||
this.togglePageAllHide();
|
||||
}
|
||||
});
|
||||
}
|
||||
initEditorMenu() {
|
||||
this.registerEvent(
|
||||
this.app.workspace.on("editor-menu", (menu, editor) => {
|
||||
const selection = editor.getSelection();
|
||||
if (selection && this.checkTags()) {
|
||||
if (this.settings.editorMenuAddCloze) {
|
||||
menu.addItem((item) => {
|
||||
item.setTitle(lang_default.add_cloze).onClick((e) => {
|
||||
this.addCloze(editor);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (this.settings.editorMenuAddClozeWithHint) {
|
||||
menu.addItem((item) => {
|
||||
item.setTitle(lang_default.add_cloze_with_hint).onClick((e) => {
|
||||
this.addCloze(editor, true);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (this.settings.editorMenuRemoveCloze) {
|
||||
menu.addItem((item) => {
|
||||
item.setTitle(lang_default.remove_cloze).onClick((e) => {
|
||||
this.removeCloze(editor);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
initCommand() {
|
||||
this.addCommand({
|
||||
id: "add-cloze",
|
||||
name: lang_default.add_cloze,
|
||||
icon: "fish",
|
||||
editorCallback: (editor, ctx) => {
|
||||
const selection = editor.getSelection();
|
||||
if (selection && this.checkTags()) {
|
||||
this.addCloze(editor);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.addCommand({
|
||||
id: "add-cloze-with-hint",
|
||||
name: lang_default.add_cloze_with_hint,
|
||||
icon: "fish-symbol",
|
||||
editorCallback: (editor, ctx) => {
|
||||
const selection = editor.getSelection();
|
||||
if (selection && this.checkTags()) {
|
||||
this.addCloze(editor, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.addCommand({
|
||||
id: "remove-cloze",
|
||||
name: lang_default.remove_cloze,
|
||||
icon: "fish-off",
|
||||
editorCallback: (editor, ctx) => {
|
||||
const selection = editor.getSelection();
|
||||
if (selection && this.checkTags()) {
|
||||
this.removeCloze(editor);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.addCommand({
|
||||
id: "toggle-cloze",
|
||||
name: lang_default.toggle_cloze,
|
||||
callback: () => {
|
||||
if (this.checkTags()) {
|
||||
this.togglePageAllHide();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
initMarkdownPostProcessor() {
|
||||
this.registerMarkdownPostProcessor((element, context) => {
|
||||
if (!this.checkTags()) {
|
||||
return;
|
||||
}
|
||||
if (this.settings.fixedClozeWidth) {
|
||||
const containerEl = context.containerEl;
|
||||
if (containerEl) {
|
||||
containerEl.classList.add(CLASSES.fixedWidth);
|
||||
} else {
|
||||
new import_obsidian3.Notice("Cloze plugin: No containerEl.");
|
||||
}
|
||||
}
|
||||
if (this.settings.includeBracketed) {
|
||||
this.transformBracketedText(element);
|
||||
}
|
||||
if (this.settings.includeCurlyBrackets) {
|
||||
this.transformCurlyBracketedText(element);
|
||||
}
|
||||
element.querySelectorAll(this.clozeSelector()).forEach(this.renderCloze);
|
||||
this.toggleAllHide(element, this.isAllHide());
|
||||
});
|
||||
}
|
||||
onRightClick(event, $cloze) {
|
||||
if (!$cloze)
|
||||
return;
|
||||
if (!utils_default.isClozeHide($cloze))
|
||||
return;
|
||||
if (utils_default.hasCustomHint($cloze))
|
||||
return;
|
||||
const menu = new import_obsidian3.Menu();
|
||||
menu.addItem(
|
||||
(item) => item.setTitle(en_default.reveal_more_hint).setIcon("snail").onClick(() => {
|
||||
this.revealMoreHint($cloze);
|
||||
})
|
||||
);
|
||||
menu.showAtMouseEvent(event);
|
||||
}
|
||||
isPreviewMode() {
|
||||
const view = this.app.workspace.getActiveViewOfType(import_obsidian3.MarkdownView);
|
||||
if (view == null)
|
||||
return true;
|
||||
return view.getMode() === "preview";
|
||||
}
|
||||
isAllHide() {
|
||||
return this.isPreviewMode() ? this.isPreviewHide : this.isSourceHide;
|
||||
}
|
||||
// Extract and verify tags - works in both preview and edit mode
|
||||
checkTags() {
|
||||
var _a;
|
||||
if (this.settings.selectorTag === "" || this.settings.selectorTag === "#") {
|
||||
return true;
|
||||
}
|
||||
const activeView = this.app.workspace.getActiveViewOfType(import_obsidian3.MarkdownView);
|
||||
if (activeView) {
|
||||
const { app, file } = activeView;
|
||||
if (file) {
|
||||
const cachedMetadata = app.metadataCache.getFileCache(file);
|
||||
const tags = ((cachedMetadata == null ? void 0 : cachedMetadata.tags) || []).map((t) => t.tag);
|
||||
const frontmatterTags = ((_a = cachedMetadata == null ? void 0 : cachedMetadata.frontmatter) == null ? void 0 : _a.tags) || [];
|
||||
return [...frontmatterTags, ...tags].some((t) => {
|
||||
if (!t.startsWith("#")) {
|
||||
t = "#" + t;
|
||||
}
|
||||
return t.toLowerCase() === this.settings.selectorTag.toLowerCase();
|
||||
});
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, settingData_default, await this.loadData());
|
||||
this.isPreviewHide = this.settings.defaultHide;
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
this.isPreviewHide = this.settings.defaultHide;
|
||||
}
|
||||
toggleHide(target) {
|
||||
if (!target)
|
||||
return;
|
||||
if (target.getAttribute(ATTRS.hide)) {
|
||||
this.showClozeContent(target);
|
||||
} else {
|
||||
this.hideClozeContent(target);
|
||||
}
|
||||
}
|
||||
toggleAllHide(dom = document, hide) {
|
||||
if (dom && this.checkTags()) {
|
||||
const marks = dom.querySelectorAll(this.clozeSelector());
|
||||
if (hide) {
|
||||
marks.forEach((mark) => {
|
||||
this.hideClozeContent(mark);
|
||||
});
|
||||
} else {
|
||||
marks.forEach((mark) => {
|
||||
this.showClozeContent(mark);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
togglePageAllHide() {
|
||||
const mostRecentLeaf = this.app.workspace.getMostRecentLeaf();
|
||||
if (!mostRecentLeaf)
|
||||
return;
|
||||
const leafContainer = mostRecentLeaf.containerEl;
|
||||
if (!leafContainer)
|
||||
return;
|
||||
if (this.isPreviewMode()) {
|
||||
const nodeContainers = leafContainer.querySelectorAll(".markdown-preview-view");
|
||||
nodeContainers.forEach((nodeContainer) => {
|
||||
this.toggleAllHide(nodeContainer, !this.isPreviewHide);
|
||||
});
|
||||
this.isPreviewHide = !this.isPreviewHide;
|
||||
} else {
|
||||
const nodeContainers = leafContainer.querySelectorAll(".markdown-source-view");
|
||||
nodeContainers.forEach((nodeContainer) => {
|
||||
this.toggleAllHide(nodeContainer, !this.isSourceHide);
|
||||
});
|
||||
this.isSourceHide = !this.isSourceHide;
|
||||
}
|
||||
}
|
||||
};
|
10
.obsidian/plugins/cloze/manifest.json
vendored
Normal file
10
.obsidian/plugins/cloze/manifest.json
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": "cloze",
|
||||
"name": "Cloze",
|
||||
"version": "0.1.16",
|
||||
"minAppVersion": "0.12.0",
|
||||
"description": "Convert highlights, underlines, bolded texts or any selected texts into clozes.",
|
||||
"author": "Vikki",
|
||||
"authorUrl": "https://github.com/DearVikki",
|
||||
"isDesktopOnly": false
|
||||
}
|
76
.obsidian/plugins/cloze/styles.css
vendored
Normal file
76
.obsidian/plugins/cloze/styles.css
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
|
||||
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.
|
||||
|
||||
*/
|
||||
|
||||
body {
|
||||
--cloze-underline-width: 1px;
|
||||
--cloze-underline-style: solid;
|
||||
/*noinspection CssUnresolvedCustomProperty*/
|
||||
--cloze-underline-color: var(--text-normal);
|
||||
--cloze-fixed-width: 30px;
|
||||
/*noinspection CssUnresolvedCustomProperty*/
|
||||
--cloze-hint-color: var(--text-muted);
|
||||
/*noinspection CssUnresolvedCustomProperty*/
|
||||
--cloze-hint-font-size: var(--font-ui-smaller);
|
||||
}
|
||||
|
||||
.cloze-span,
|
||||
.cloze{
|
||||
border-bottom: var(--cloze-underline-width) var(--cloze-underline-style) var(--cloze-underline-color) !important;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cloze-span,
|
||||
.cloze[data-cloze-hide=true]{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
[data-cloze-hide=true]:not(.cloze-hint) {
|
||||
color: transparent !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
/* embedded segments */
|
||||
[data-cloze-hide=true] .cloze-content,
|
||||
[data-cloze-hide=true] mark,
|
||||
[data-cloze-hide=true] u,
|
||||
[data-cloze-hide=true] strong,
|
||||
[data-cloze-hide=true] a {
|
||||
color: transparent !important;
|
||||
text-shadow: none !important;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* fixed cloze width */
|
||||
.cloze-fixed-width .cloze[data-cloze-hide=true]:not(.cloze-hint) {
|
||||
white-space: nowrap;
|
||||
width: var(--cloze-fixed-width);
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* cloze hint */
|
||||
.cloze-hint {
|
||||
color: var(--cloze-hint-color);
|
||||
font-size: var(--cloze-hint-font-size);
|
||||
text-shadow: none !important;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: max-content;
|
||||
display: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
[data-cloze-hide=true] .cloze-hint {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.modal-hint-setting input{
|
||||
width: 100%;
|
||||
}
|
785
.obsidian/plugins/darlal-switcher-plus/main.js
vendored
785
.obsidian/plugins/darlal-switcher-plus/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "darlal-switcher-plus",
|
||||
"name": "Quick Switcher++",
|
||||
"version": "4.0.0",
|
||||
"minAppVersion": "1.5.3",
|
||||
"version": "4.2.0",
|
||||
"minAppVersion": "1.5.12",
|
||||
"description": "Enhanced Quick Switcher, search open panels, and symbols.",
|
||||
"author": "darlal",
|
||||
"authorUrl": "https://github.com/darlal/obsidian-switcher-plus",
|
||||
|
@ -165,3 +165,6 @@
|
||||
.qsp-headings-l4 {}
|
||||
.qsp-headings-l5 {}
|
||||
.qsp-headings-l6 {}
|
||||
|
||||
/* Usually the "plus" button button in the NavBar on mobile platforms */
|
||||
.qsp-mobile-launcher-button {}
|
||||
|
@ -17,6 +17,7 @@
|
||||
"useExcalidrawExtension": true,
|
||||
"cropPrefix": "cropped_",
|
||||
"annotatePrefix": "annotated_",
|
||||
"annotatePreserveSize": false,
|
||||
"displaySVGInPreview": true,
|
||||
"previewImageType": "SVGIMG",
|
||||
"allowImageCache": true,
|
||||
@ -33,6 +34,8 @@
|
||||
"defaultMode": "normal",
|
||||
"defaultPenMode": "mobile",
|
||||
"penModeCrosshairVisible": false,
|
||||
"renderImageInMarkdownReadingMode": false,
|
||||
"renderImageInMarkdownToPDF": false,
|
||||
"allowPinchZoom": false,
|
||||
"allowWheelZoom": false,
|
||||
"zoomToFitOnOpen": true,
|
||||
@ -60,6 +63,7 @@
|
||||
"exportWithTheme": true,
|
||||
"exportWithBackground": true,
|
||||
"exportPaddingSVG": 10,
|
||||
"exportEmbedScene": false,
|
||||
"keepInSync": false,
|
||||
"autoexportSVG": false,
|
||||
"autoexportPNG": false,
|
||||
@ -73607,7 +73611,7 @@
|
||||
}
|
||||
},
|
||||
"defaultTrayMode": false,
|
||||
"previousRelease": "2.1.1",
|
||||
"previousRelease": "2.1.7",
|
||||
"showReleaseNotes": true,
|
||||
"showNewVersionNotification": true,
|
||||
"latexBoilerplate": "\\color{blue}",
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-excalidraw-plugin",
|
||||
"name": "Excalidraw",
|
||||
"version": "2.1.1",
|
||||
"version": "2.1.7",
|
||||
"minAppVersion": "1.1.6",
|
||||
"description": "An Obsidian plugin to edit and view Excalidraw drawings",
|
||||
"author": "Zsolt Viczian",
|
||||
|
File diff suppressed because one or more lines are too long
2
.obsidian/plugins/obsidian-hider/data.json
vendored
2
.obsidian/plugins/obsidian-hider/data.json
vendored
@ -1,5 +1,5 @@
|
||||
{
|
||||
"hideRibbon": true,
|
||||
"hideRibbon": false,
|
||||
"hideStatus": false,
|
||||
"hideTabs": false,
|
||||
"hideScroll": true,
|
||||
|
16
.obsidian/plugins/obsidian-hover-editor/main.js
vendored
16
.obsidian/plugins/obsidian-hover-editor/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-hover-editor",
|
||||
"name": "Hover Editor",
|
||||
"version": "0.11.17",
|
||||
"version": "0.11.19",
|
||||
"minAppVersion": "1.4.16",
|
||||
"description": "Transform the Page Preview hover popover into a fully working editor instance",
|
||||
"author": "NothingIsLost",
|
||||
|
@ -150,6 +150,15 @@ body {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/*
|
||||
Obsidian 1.6 sets a different background for non-root splits,
|
||||
then uses primary as an override at root. Since hover editors
|
||||
don't live in a root split, we have to copy the override:
|
||||
*/
|
||||
.popover.hover-editor .workspace-split .view-content {
|
||||
background-color: var(--background-primary);
|
||||
}
|
||||
|
||||
.popover.hover-editor {
|
||||
min-height: unset;
|
||||
max-height: unset;
|
||||
|
13810
.obsidian/plugins/obsidian-latex-suite/main.js
vendored
13810
.obsidian/plugins/obsidian-latex-suite/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-latex-suite",
|
||||
"name": "Latex Suite",
|
||||
"version": "1.9.1",
|
||||
"version": "1.9.3",
|
||||
"minAppVersion": "1.0.0",
|
||||
"description": "Make typesetting LaTeX math as fast as handwriting through snippets, text expansion, and editor enhancements",
|
||||
"author": "artisticat",
|
||||
|
@ -93,16 +93,12 @@
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator.valid {
|
||||
background-color: #7dc535;
|
||||
background-color: var(--color-green);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.theme-dark .snippets-editor-validity-indicator.valid {
|
||||
background-color: #588b24;
|
||||
}
|
||||
|
||||
.snippets-editor-validity-indicator.invalid {
|
||||
background-color: #ea5555;
|
||||
background-color: var(--color-red);
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@ -115,6 +111,9 @@
|
||||
border: none;
|
||||
}
|
||||
|
||||
.search-input-container input.latex-suite-location-input-el {
|
||||
width: initial;
|
||||
}
|
||||
|
||||
/*
|
||||
Snippet color classes.
|
||||
@ -124,36 +123,36 @@ Snippet color classes.
|
||||
nesting multiple decorations. */
|
||||
|
||||
.latex-suite-snippet-placeholder {
|
||||
border-width: 1px 0 1px 0;
|
||||
border-style: solid;
|
||||
border-radius: 2px;
|
||||
background-color: var(--placeholder-bg);
|
||||
outline: var(--placeholder-outline) solid 1px;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
|
||||
border-color: lightskyblue;
|
||||
--placeholder-bg: #87cefa2e;
|
||||
--placeholder-outline: #87cefa6e;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-snippet-placeholder-0, span.latex-suite-snippet-placeholder-0 span {
|
||||
--placeholder-outline: #87cefa43;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
|
||||
border-color: orange;
|
||||
--placeholder-bg: #ffa50033;
|
||||
--placeholder-outline: #ffa5006b;
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-snippet-placeholder-1, span.latex-suite-snippet-placeholder-1 span {
|
||||
--placeholder-outline: #ffa5004d;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
|
||||
border-color: lime;
|
||||
--placeholder-bg: #00ff0022;
|
||||
--placeholder-outline: #00ff0060;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-3, span.latex-suite-snippet-placeholder-3 span {
|
||||
border-color: pink;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-4, span.latex-suite-snippet-placeholder-4 span {
|
||||
border-color: cornsilk;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-5, span.latex-suite-snippet-placeholder-5 span {
|
||||
border-color: magenta;
|
||||
}
|
||||
|
||||
.latex-suite-snippet-placeholder-6, span.latex-suite-snippet-placeholder-6 span {
|
||||
border-color: navajowhite;
|
||||
.theme-dark .latex-suite-snippet-placeholder-2, span.latex-suite-snippet-placeholder-2 span {
|
||||
--placeholder-outline: #00ff003d;
|
||||
}
|
||||
|
||||
|
||||
@ -197,11 +196,11 @@ sup.cm-math, sub.cm-math {
|
||||
|
||||
/* Highlight brackets */
|
||||
.theme-light .latex-suite-highlighted-bracket, .theme-light .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), var(--accent-l), 0.25);
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), 40%, 0.3);
|
||||
}
|
||||
|
||||
.theme-dark .latex-suite-highlighted-bracket, .theme-dark .latex-suite-highlighted-bracket [class^="latex-suite-color-bracket-"] {
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 7%), 0.3);
|
||||
background-color: hsl(var(--accent-h), var(--accent-s), 70%, 0.6);
|
||||
}
|
||||
|
||||
|
||||
|
12
.obsidian/plugins/obsidian-markmind/main.js
vendored
12
.obsidian/plugins/obsidian-markmind/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "obsidian-markmind",
|
||||
"name": "Markmind",
|
||||
"version": "1.9.5",
|
||||
"version": "1.9.7",
|
||||
"minAppVersion": "0.9.12",
|
||||
"description": "This is a mindmap,outline and pdf annotate tool for obsidian.",
|
||||
"description": "This is a mindmap , outline tool for obsidian.",
|
||||
"author": "Mark",
|
||||
"authorUrl": "https://github.com/MarkMindCkm/obsidian-markmind",
|
||||
"isDesktopOnly": false
|
||||
|
@ -96,6 +96,10 @@
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.mm-node .mm-node-content img {
|
||||
min-width:50px;
|
||||
}
|
||||
|
||||
.mm-node.node-wireFrame .mm-node-content {
|
||||
border-radius: 6px;
|
||||
border-bottom-left-radius: 0;
|
||||
|
@ -2,7 +2,6 @@
|
||||
"devMode": false,
|
||||
"ignoreCodeBlockRestrictions": false,
|
||||
"preferredDateFormat": "YYYY-MM-DD",
|
||||
"useUsDateInputOrder": false,
|
||||
"firstWeekday": {
|
||||
"index": 1,
|
||||
"name": "Monday",
|
||||
@ -19,5 +18,6 @@
|
||||
"buttonTemplates": [],
|
||||
"excludedFolders": [
|
||||
"templates"
|
||||
]
|
||||
],
|
||||
"useUsDateInputOrder": false
|
||||
}
|
188
.obsidian/plugins/obsidian-meta-bind-plugin/main.js
vendored
188
.obsidian/plugins/obsidian-meta-bind-plugin/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,11 +1,12 @@
|
||||
{
|
||||
"id": "obsidian-meta-bind-plugin",
|
||||
"name": "Meta Bind",
|
||||
"version": "0.12.5",
|
||||
"version": "1.1.0",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Make your notes interactive with inline input fields, metadata displays, and buttons.",
|
||||
"author": "Moritz Jung",
|
||||
"authorUrl": "https://mprojectscode.github.io/",
|
||||
"authorUrl": "https://www.moritzjung.dev/",
|
||||
"fundingUrl": "https://github.com/sponsors/mProjectsCode",
|
||||
"helpUrl": "https://www.moritzjung.dev/obsidian-meta-bind-plugin-docs/",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
|
@ -4,6 +4,14 @@ body {
|
||||
--mb-slider-spacing: 5px;
|
||||
--mb-select-element-border-width: 5px;
|
||||
--mb-date-input-year-input-width: 80px;
|
||||
|
||||
--mb-background-modifier-active: hsla(var(--interactive-accent-hsl), 0.15);
|
||||
--mb-background-modifier-active-hover: hsla(var(--interactive-accent-hsl), 0.3);
|
||||
|
||||
--mb-input-type-select-text: var(--text-muted);
|
||||
--mb-input-type-select-text-hover: var(--text-normal);
|
||||
--mb-input-type-select-text-active: var(--text-normal);
|
||||
--mb-input-type-select-text-active-hover: var(--text-normal);
|
||||
}
|
||||
|
||||
/* Input Wrappers */
|
||||
@ -125,74 +133,56 @@ div.mb-view-wrapper {
|
||||
/* Select Input */
|
||||
.mb-select-input-element {
|
||||
cursor: pointer;
|
||||
padding: 5px;
|
||||
margin: 5px 0 5px 0;
|
||||
display: flex;
|
||||
gap: var(--size-4-2);
|
||||
align-items: center;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
margin: var(--size-4-1) 0;
|
||||
border-radius: var(--mb-border-radius);
|
||||
border-left: var(--mb-select-element-border-width) solid transparent;
|
||||
white-space: pre-wrap;
|
||||
font-size: 16px;
|
||||
min-width: 200px;
|
||||
}
|
||||
color: var(--mb-input-type-select-text);
|
||||
|
||||
.mb-select-input-element.is-selected {
|
||||
border-left: var(--mb-select-element-border-width) solid var(--interactive-accent);
|
||||
background: var(--background-secondary);
|
||||
}
|
||||
&.is-selected {
|
||||
color: var(--mb-input-type-select-text-active);
|
||||
background: var(--mb-background-modifier-active);
|
||||
|
||||
.mb-select-input-element:hover {
|
||||
background: var(--background-secondary);
|
||||
}
|
||||
&:hover {
|
||||
color: var(--mb-input-type-select-text-active-hover);
|
||||
background: var(--mb-background-modifier-active-hover);
|
||||
}
|
||||
}
|
||||
|
||||
/* Date Input */
|
||||
.mb-date-input-year-input[type='number'] {
|
||||
width: var(--mb-date-input-year-input-width);
|
||||
height: unset;
|
||||
align-self: stretch;
|
||||
}
|
||||
&:hover {
|
||||
color: var(--mb-input-type-select-text-hover);
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* Input Element Group */
|
||||
.mb-input-element-group {
|
||||
display: inline-flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
&:not(.mb-mod-multi) > input[type='checkbox'] {
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:focus {
|
||||
z-index: 10;
|
||||
& > input[type='checkbox'] {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:first-child {
|
||||
border-radius: var(--mb-border-radius) 0 0 var(--mb-border-radius);
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:not(:first-child):not(:last-child) {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.mb-input-element-group .mb-input-element-group-element:last-child {
|
||||
border-radius: 0 var(--mb-border-radius) var(--mb-border-radius) 0;
|
||||
}
|
||||
|
||||
/* SailKite small input fields so that line height is consistent */
|
||||
/* https://discord.com/channels/1171444840257572935/1171444840257572939/1171562547212726403 */
|
||||
/*.mb-input-element-group {*/
|
||||
/* & > .mb-date-input-year-input[type='number'] {*/
|
||||
/* padding-block: 0;*/
|
||||
/* }*/
|
||||
/* & > .mb-input-element-group-element {*/
|
||||
/* height: 100%;*/
|
||||
/* }*/
|
||||
/*}*/
|
||||
|
||||
/* List Input */
|
||||
.mb-list-input {
|
||||
display: flex;
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-list-input > div:has(> input) {
|
||||
.mb-list-input > input {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.mb-list-input > textarea {
|
||||
flex-grow: 1;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.mb-list-empty {
|
||||
color: var(--text-faint);
|
||||
}
|
||||
@ -201,15 +191,22 @@ div.mb-view-wrapper {
|
||||
margin-bottom: var(--size-4-4);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--size-4-2);
|
||||
gap: var(--size-4-1);
|
||||
}
|
||||
|
||||
.mb-list-item {
|
||||
display: flex;
|
||||
}
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
border-radius: var(--mb-border-radius);
|
||||
user-select: text;
|
||||
|
||||
.mb-list-item > span {
|
||||
flex-grow: 1;
|
||||
& > span {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: var(--background-modifier-hover);
|
||||
}
|
||||
}
|
||||
|
||||
/* Inline List */
|
||||
@ -226,21 +223,19 @@ div.mb-view-wrapper {
|
||||
padding-inline: var(--size-4-2);
|
||||
padding-block: var(--size-4-1);
|
||||
font-size: var(--font-ui-small);
|
||||
vertical-align: bottom;
|
||||
user-select: text;
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: var(--size-4-2);
|
||||
}
|
||||
|
||||
& > .mb-inline-list-item-button {
|
||||
border: none;
|
||||
background: none;
|
||||
padding: initial;
|
||||
height: unset;
|
||||
box-shadow: none;
|
||||
|
||||
&:hover {
|
||||
color: var(--text-error);
|
||||
}
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
background-color: var(--background-modifier-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
@ -254,7 +249,17 @@ div.mb-view-wrapper {
|
||||
font-size: var(--font-ui-small);
|
||||
|
||||
&:hover {
|
||||
color: var(--text-accent);
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
background-color: var(--background-modifier-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
color: var(--text-normal);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -264,13 +269,25 @@ div.mb-view-wrapper {
|
||||
background: var(--background-modifier-form-field);
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
padding: 5px 5px 5px 7px;
|
||||
cursor: pointer;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
position: relative;
|
||||
color: var(--text-normal);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
gap: var(--size-4-1);
|
||||
user-select: text;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-suggest-input > button {
|
||||
padding: 0;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
.mb-suggest-text {
|
||||
@ -280,7 +297,7 @@ div.mb-view-wrapper {
|
||||
/* Progress Bar Input */
|
||||
|
||||
.mb-progress-bar-input {
|
||||
height: 32px;
|
||||
height: var(--input-height);
|
||||
width: 100%;
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
@ -293,7 +310,7 @@ div.mb-view-wrapper {
|
||||
}
|
||||
|
||||
.mb-progress-bar-progress {
|
||||
height: 32px;
|
||||
height: 100%;
|
||||
background: var(--color-accent);
|
||||
border-radius: var(--mb-border-radius);
|
||||
}
|
||||
@ -319,6 +336,14 @@ div.mb-view-wrapper {
|
||||
right: var(--size-4-2);
|
||||
}
|
||||
|
||||
/* Text Area Input */
|
||||
|
||||
.mb-input-textarea {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
/* Card */
|
||||
.mb-card {
|
||||
padding: var(--size-4-2);
|
||||
@ -370,6 +395,107 @@ div.mb-view-wrapper {
|
||||
gap: var(--size-4-4);
|
||||
}
|
||||
|
||||
.mb-image-suggester-modal {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.mb-image-card-image {
|
||||
width: 100%;
|
||||
height: fit-content;
|
||||
max-height: 500px;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.mb-image-card-text {
|
||||
display: block;
|
||||
margin: var(--size-4-2);
|
||||
margin-bottom: var(--size-4-4);
|
||||
}
|
||||
|
||||
.mb-image-card-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
& > span {
|
||||
padding-left: var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
color: var(--text-muted);
|
||||
min-width: 0;
|
||||
text-overflow-ellipsis: true;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.mb-image-suggest-input {
|
||||
background: var(--background-secondary);
|
||||
border-radius: var(--mb-border-radius);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
padding: var(--size-4-2);
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Time Input */
|
||||
|
||||
.mb-input-type-time {
|
||||
input[type='time'] {
|
||||
-webkit-app-region: no-drag;
|
||||
background: var(--background-modifier-form-field);
|
||||
border: var(--input-border-width) solid var(--background-modifier-border);
|
||||
color: var(--text-normal);
|
||||
font-family: inherit;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
border-radius: var(--input-radius);
|
||||
outline: none;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Date Picker Input */
|
||||
|
||||
.date-picker-input {
|
||||
background: var(--background-modifier-form-field);
|
||||
border: var(--mb-border-width) solid var(--background-modifier-border);
|
||||
color: var(--text-normal);
|
||||
font-family: inherit;
|
||||
padding: var(--size-4-1) var(--size-4-2);
|
||||
font-size: var(--font-ui-small);
|
||||
border-radius: var(--input-radius);
|
||||
outline: none;
|
||||
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
|
||||
&:hover {
|
||||
border-color: var(--background-modifier-border-hover);
|
||||
transition:
|
||||
box-shadow 0.15s ease-in-out,
|
||||
border 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:focus-visible {
|
||||
box-shadow: 0 0 0 2px var(--background-modifier-border-focus);
|
||||
}
|
||||
}
|
||||
|
||||
.date-picker-text {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Error */
|
||||
.mb-error {
|
||||
color: var(--text-error) !important;
|
||||
@ -507,10 +633,36 @@ th.mb-html-table-button-cell {
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-flex-row > :first-child {
|
||||
.mb-flex-row.mb-flex-row-stretch > :first-child {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mb-flex-row-reverse {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: var(--size-4-2);
|
||||
}
|
||||
|
||||
.mb-flex-row-reverse.mb-flex-row-stretch > :last-child {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input > input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mb-full-width-text-input > textarea {
|
||||
width: 100%;
|
||||
height: 200px;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
/* --- HIGHLIGHTING CLASSES --- */
|
||||
.mb-highlight-test {
|
||||
color: #00bfbc;
|
||||
@ -554,3 +706,12 @@ th.mb-html-table-button-cell {
|
||||
.meta-bind-small-width > * {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
/* --- PUBLISH STUFF --- */
|
||||
|
||||
.published-container {
|
||||
.mb-input-type-toggle > div {
|
||||
display: inline-block;
|
||||
vertical-align: sub;
|
||||
}
|
||||
}
|
||||
|
@ -5,12 +5,12 @@
|
||||
{
|
||||
"id": 2,
|
||||
"name": "memoire-L3",
|
||||
"lastUpdate": 1712029971697
|
||||
"lastUpdate": 1715610303854
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Ma bibliothèque",
|
||||
"lastUpdate": 1712029971708
|
||||
"lastUpdate": 1715610303930
|
||||
}
|
||||
],
|
||||
"renderCitations": true,
|
||||
|
102
.obsidian/plugins/obsidian-shellcommands/data-backup-version-0.21.0-before-upgrading-to-0.22.0.json
vendored
Normal file
102
.obsidian/plugins/obsidian-shellcommands/data-backup-version-0.21.0-before-upgrading-to-0.22.0.json
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
{
|
||||
"settings_version": "0.21.0",
|
||||
"debug": false,
|
||||
"obsidian_command_palette_prefix": "Execute: ",
|
||||
"preview_variables_in_command_palette": true,
|
||||
"show_autocomplete_menu": true,
|
||||
"working_directory": "",
|
||||
"default_shells": {},
|
||||
"environment_variable_path_augmentations": {
|
||||
"darwin": "/Users/oscarplaisant/.opam/default/bin:/Users/oscarplaisant/.opam/default/bin:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$HOME/.cargo/env:/Library/TeX/texbin:/Users/oscarplaisant/.cargo/bin:/Users/oscarplaisant/.opam/default/bin:/opt/local/bin:/opt/local/sbin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/oscarplaisant/.cargo/env:/Users/oscarplaisant/.cargo/bin+:/Users/oscarplaisant/.zsh_scripts/+:/Users/oscarplaisant/.zsh_scripts/+:/Users/oscarplaisant/.zsh_scripts/"
|
||||
},
|
||||
"show_installation_warnings": true,
|
||||
"error_message_duration": 20,
|
||||
"notification_message_duration": 10,
|
||||
"execution_notification_mode": "disabled",
|
||||
"output_channel_clipboard_also_outputs_to_notification": true,
|
||||
"output_channel_notification_decorates_output": true,
|
||||
"enable_events": true,
|
||||
"approve_modals_by_pressing_enter_key": true,
|
||||
"command_palette": {
|
||||
"re_execute_last_shell_command": {
|
||||
"enabled": true,
|
||||
"prefix": "Re-execute: "
|
||||
}
|
||||
},
|
||||
"max_visible_lines_in_shell_command_fields": false,
|
||||
"shell_commands": [
|
||||
{
|
||||
"id": "4s9o488usd",
|
||||
"platform_specific_commands": {
|
||||
"default": "/opt/homebrew/bin/neovide {{file_path:absolute}}"
|
||||
},
|
||||
"shells": {},
|
||||
"alias": "neovide",
|
||||
"icon": null,
|
||||
"confirm_execution": false,
|
||||
"ignore_error_codes": [],
|
||||
"input_contents": {
|
||||
"stdin": null
|
||||
},
|
||||
"output_handlers": {
|
||||
"stdout": {
|
||||
"handler": "ignore",
|
||||
"convert_ansi_code": true
|
||||
},
|
||||
"stderr": {
|
||||
"handler": "notification",
|
||||
"convert_ansi_code": true
|
||||
}
|
||||
},
|
||||
"output_wrappers": {
|
||||
"stdout": null,
|
||||
"stderr": null
|
||||
},
|
||||
"output_channel_order": "stdout-first",
|
||||
"output_handling_mode": "buffered",
|
||||
"events": {},
|
||||
"command_palette_availability": "enabled",
|
||||
"preactions": [],
|
||||
"variable_default_values": {}
|
||||
},
|
||||
{
|
||||
"id": "53b5ai5phh",
|
||||
"platform_specific_commands": {
|
||||
"default": "/opt/homebrew/bin/tmux new-window && /opt/homebrew/bin/tmux send-keys \"cd {{folder_path:absolute}}\" Enter \"nvim {{file_name}}\" Enter && open -a iTerm\n"
|
||||
},
|
||||
"shells": {},
|
||||
"alias": "Open in tmux>nVim",
|
||||
"icon": "terminal-square",
|
||||
"confirm_execution": false,
|
||||
"ignore_error_codes": [],
|
||||
"input_contents": {
|
||||
"stdin": null
|
||||
},
|
||||
"output_handlers": {
|
||||
"stdout": {
|
||||
"handler": "ignore",
|
||||
"convert_ansi_code": true
|
||||
},
|
||||
"stderr": {
|
||||
"handler": "notification",
|
||||
"convert_ansi_code": true
|
||||
}
|
||||
},
|
||||
"output_wrappers": {
|
||||
"stdout": null,
|
||||
"stderr": null
|
||||
},
|
||||
"output_channel_order": "stdout-first",
|
||||
"output_handling_mode": "buffered",
|
||||
"events": {},
|
||||
"command_palette_availability": "enabled",
|
||||
"preactions": [],
|
||||
"variable_default_values": {}
|
||||
}
|
||||
],
|
||||
"prompts": [],
|
||||
"builtin_variables": {},
|
||||
"custom_variables": [],
|
||||
"custom_shells": [],
|
||||
"output_wrappers": []
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"settings_version": "0.21.0",
|
||||
"settings_version": "0.22.0",
|
||||
"debug": false,
|
||||
"obsidian_command_palette_prefix": "Execute: ",
|
||||
"preview_variables_in_command_palette": true,
|
||||
@ -57,7 +57,9 @@
|
||||
"events": {},
|
||||
"command_palette_availability": "enabled",
|
||||
"preactions": [],
|
||||
"variable_default_values": {}
|
||||
"variable_default_values": {},
|
||||
"execution_notification_mode": null,
|
||||
"debounce": null
|
||||
},
|
||||
{
|
||||
"id": "53b5ai5phh",
|
||||
@ -91,12 +93,18 @@
|
||||
"events": {},
|
||||
"command_palette_availability": "enabled",
|
||||
"preactions": [],
|
||||
"variable_default_values": {}
|
||||
"variable_default_values": {},
|
||||
"execution_notification_mode": null,
|
||||
"debounce": null
|
||||
}
|
||||
],
|
||||
"prompts": [],
|
||||
"builtin_variables": {},
|
||||
"custom_variables": [],
|
||||
"custom_variables_notify_changes_via": {
|
||||
"obsidian_uri": true,
|
||||
"output_assignment": true
|
||||
},
|
||||
"custom_shells": [],
|
||||
"output_wrappers": []
|
||||
}
|
1968
.obsidian/plugins/obsidian-shellcommands/main.js
vendored
1968
.obsidian/plugins/obsidian-shellcommands/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-shellcommands",
|
||||
"name": "Shell commands",
|
||||
"version": "0.21.0",
|
||||
"version": "0.22.0",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "You can predefine system commands that you want to run frequently, and assign hotkeys for them. For example open external applications. Automatic execution is also supported, and execution via URI links.",
|
||||
"author": "Jarkko Linnanvirta",
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* 'Shell commands' plugin for Obsidian.
|
||||
* Copyright (C) 2021 - 2023 Jarkko Linnanvirta
|
||||
* Copyright (C) 2021 - 2024 Jarkko Linnanvirta
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"leftSidebarWidth": 300,
|
||||
"rightSidebarWidth": 334.5,
|
||||
"leftPin": false,
|
||||
"rightPin": false,
|
||||
"leftSideEnabled": false,
|
||||
"rightSideEnabled": false
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1,9 +0,0 @@
|
||||
{
|
||||
"id": "obsidian-sidebar-expand-on-hover",
|
||||
"name": "Sidebar Expand on Hover",
|
||||
"version": "1.0.1",
|
||||
"minAppVersion": "0.12.3",
|
||||
"description": "This Obsidian plugin expands or collapses the sidebars based on mouse hovering on the ribbons.",
|
||||
"authorUrl": "https://github.com/toiq",
|
||||
"isDesktopOnly": true
|
||||
}
|
@ -43,7 +43,7 @@
|
||||
"singlelineCardSeparator": "::",
|
||||
"singlelineReversedCardSeparator": ":::"
|
||||
},
|
||||
"buryDate": "2024-04-02",
|
||||
"buryDate": "2024-05-13",
|
||||
"buryList": [],
|
||||
"historyDeck": ""
|
||||
}
|
280
.obsidian/plugins/obsidian-spaced-repetition/main.js
vendored
280
.obsidian/plugins/obsidian-spaced-repetition/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-spaced-repetition",
|
||||
"name": "Spaced Repetition",
|
||||
"version": "1.12.2",
|
||||
"version": "1.12.4",
|
||||
"minAppVersion": "0.15.4",
|
||||
"description": "Fight the forgetting curve by reviewing flashcards & entire notes.",
|
||||
"author": "Stephen Mwangi",
|
||||
|
125
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
125
.obsidian/plugins/obsidian-tasks-plugin/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-tasks-plugin",
|
||||
"name": "Tasks",
|
||||
"version": "6.2.0",
|
||||
"version": "7.1.0",
|
||||
"minAppVersion": "1.1.1",
|
||||
"description": "Task management for Obsidian",
|
||||
"helpUrl": "https://publish.obsidian.md/tasks/",
|
||||
|
465
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
465
.obsidian/plugins/obsidian-tasks-plugin/styles.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "obsidian-zotero-desktop-connector",
|
||||
"name": "Zotero Integration",
|
||||
"version": "3.1.7",
|
||||
"version": "3.1.8",
|
||||
"minAppVersion": "1.1.1",
|
||||
"description": "Insert and import citations, bibliographies, notes, and PDF annotations from Zotero.",
|
||||
"author": "mgmeyers",
|
||||
|
104
.obsidian/plugins/obsidian42-brat/main.js
vendored
104
.obsidian/plugins/obsidian42-brat/main.js
vendored
@ -658,23 +658,80 @@ var import_obsidian3 = require("obsidian");
|
||||
// src/features/githubUtils.ts
|
||||
var import_obsidian = require("obsidian");
|
||||
var GITHUB_RAW_USERCONTENT_PATH = "https://raw.githubusercontent.com/";
|
||||
var grabReleaseFileFromRepository = async (repository, version, fileName, debugLogging = true) => {
|
||||
const URL = `https://github.com/${repository}/releases/download/${version}/${fileName}`;
|
||||
var isPrivateRepo = async (repository, debugLogging = true, personalAccessToken = "") => {
|
||||
const URL2 = `https://api.github.com/repos/${repository}`;
|
||||
try {
|
||||
const download = await (0, import_obsidian.request)({ url: URL });
|
||||
return download === "Not Found" || download === `{"error":"Not Found"}` ? null : download;
|
||||
const response = await (0, import_obsidian.request)({
|
||||
url: URL2,
|
||||
headers: personalAccessToken ? {
|
||||
Authorization: `Token ${personalAccessToken}`
|
||||
} : {}
|
||||
});
|
||||
const data = await JSON.parse(response);
|
||||
return data.private;
|
||||
} catch (e) {
|
||||
if (debugLogging)
|
||||
console.log("error in isPrivateRepo", URL2, e);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
var grabReleaseFileFromRepository = async (repository, version, fileName, debugLogging = true, personalAccessToken = "") => {
|
||||
try {
|
||||
const isPrivate = await isPrivateRepo(repository, debugLogging, personalAccessToken);
|
||||
if (isPrivate) {
|
||||
const URL2 = `https://api.github.com/repos/${repository}/releases`;
|
||||
const response = await (0, import_obsidian.request)({
|
||||
url: URL2,
|
||||
headers: {
|
||||
Authorization: `Token ${personalAccessToken}`
|
||||
}
|
||||
});
|
||||
const data = await JSON.parse(response);
|
||||
const release = data.find((release2) => release2.tag_name === version);
|
||||
if (!release) {
|
||||
return null;
|
||||
}
|
||||
const asset = release.assets.find(
|
||||
(asset2) => asset2.name === fileName
|
||||
);
|
||||
if (!asset) {
|
||||
return null;
|
||||
}
|
||||
const download = await (0, import_obsidian.request)({
|
||||
url: asset.url,
|
||||
headers: {
|
||||
Authorization: `Token ${personalAccessToken}`,
|
||||
Accept: "application/octet-stream"
|
||||
}
|
||||
});
|
||||
return download === "Not Found" || download === `{"error":"Not Found"}` ? null : download;
|
||||
} else {
|
||||
const URL2 = `https://github.com/${repository}/releases/download/${version}/${fileName}`;
|
||||
const download = await (0, import_obsidian.request)({
|
||||
url: URL2,
|
||||
headers: personalAccessToken ? {
|
||||
Authorization: `Token ${personalAccessToken}`
|
||||
} : {}
|
||||
});
|
||||
return download === "Not Found" || download === `{"error":"Not Found"}` ? null : download;
|
||||
}
|
||||
} catch (error) {
|
||||
if (debugLogging)
|
||||
console.log("error in grabReleaseFileFromRepository", URL, error);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
var grabManifestJsonFromRepository = async (repositoryPath, rootManifest = true, debugLogging = true) => {
|
||||
var grabManifestJsonFromRepository = async (repositoryPath, rootManifest = true, debugLogging = true, personalAccessToken = "") => {
|
||||
const manifestJsonPath = GITHUB_RAW_USERCONTENT_PATH + repositoryPath + (rootManifest ? "/HEAD/manifest.json" : "/HEAD/manifest-beta.json");
|
||||
if (debugLogging)
|
||||
console.log("grabManifestJsonFromRepository manifestJsonPath", manifestJsonPath);
|
||||
try {
|
||||
const response = await (0, import_obsidian.request)({ url: manifestJsonPath });
|
||||
const response = await (0, import_obsidian.request)({
|
||||
url: manifestJsonPath,
|
||||
headers: personalAccessToken ? {
|
||||
Authorization: `Token ${personalAccessToken}`
|
||||
} : {}
|
||||
});
|
||||
if (debugLogging)
|
||||
console.log("grabManifestJsonFromRepository response", response);
|
||||
return response === "404: Not Found" ? null : await JSON.parse(response);
|
||||
@ -783,7 +840,8 @@ var DEFAULT_SETTINGS = {
|
||||
loggingPath: "BRAT-log",
|
||||
loggingVerboseEnabled: false,
|
||||
debuggingMode: false,
|
||||
notificationsEnabled: true
|
||||
notificationsEnabled: true,
|
||||
personalAccessToken: ""
|
||||
};
|
||||
function addBetaPluginToList(plugin, repositoryPath, specifyVersion = "") {
|
||||
let save = false;
|
||||
@ -1265,6 +1323,15 @@ var BratSettingsTab = class extends import_obsidian5.PluginSettingTab {
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian5.Setting(containerEl).setName("Personal Access Token").setDesc(
|
||||
"If you need to access private repositories, enter the personal access token here."
|
||||
).addText((text) => {
|
||||
var _a;
|
||||
text.setPlaceholder("Enter your personal access token").setValue((_a = this.plugin.settings.personalAccessToken) != null ? _a : "").onChange(async (value) => {
|
||||
this.plugin.settings.personalAccessToken = value;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@ -1433,16 +1500,24 @@ var BetaPlugins = class {
|
||||
const manifestJson = await grabManifestJsonFromRepository(
|
||||
repositoryPath,
|
||||
!getBetaManifest,
|
||||
this.plugin.settings.debuggingMode
|
||||
this.plugin.settings.debuggingMode,
|
||||
this.plugin.settings.personalAccessToken
|
||||
);
|
||||
if (!manifestJson) {
|
||||
if (reportIssues)
|
||||
if (reportIssues) {
|
||||
toastMessage(
|
||||
this.plugin,
|
||||
`${repositoryPath}
|
||||
This does not seem to be an obsidian plugin, as there is no manifest.json file.`,
|
||||
noticeTimeout
|
||||
);
|
||||
console.error(
|
||||
"BRAT: validateRepository",
|
||||
repositoryPath,
|
||||
getBetaManifest,
|
||||
reportIssues
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (!("id" in manifestJson)) {
|
||||
@ -1480,24 +1555,28 @@ The version attribute for the release is missing from the manifest file`,
|
||||
async getAllReleaseFiles(repositoryPath, manifest, getManifest, specifyVersion = "") {
|
||||
const version = specifyVersion === "" ? manifest.version : specifyVersion;
|
||||
const reallyGetManifestOrNot = getManifest || specifyVersion !== "";
|
||||
console.log({ reallyGetManifestOrNot, version });
|
||||
return {
|
||||
mainJs: await grabReleaseFileFromRepository(
|
||||
repositoryPath,
|
||||
version,
|
||||
"main.js",
|
||||
this.plugin.settings.debuggingMode
|
||||
this.plugin.settings.debuggingMode,
|
||||
this.plugin.settings.personalAccessToken
|
||||
),
|
||||
manifest: reallyGetManifestOrNot ? await grabReleaseFileFromRepository(
|
||||
repositoryPath,
|
||||
version,
|
||||
"manifest.json",
|
||||
this.plugin.settings.debuggingMode
|
||||
this.plugin.settings.debuggingMode,
|
||||
this.plugin.settings.personalAccessToken
|
||||
) : "",
|
||||
styles: await grabReleaseFileFromRepository(
|
||||
repositoryPath,
|
||||
version,
|
||||
"styles.css",
|
||||
this.plugin.settings.debuggingMode
|
||||
this.plugin.settings.debuggingMode,
|
||||
this.plugin.settings.personalAccessToken
|
||||
)
|
||||
};
|
||||
}
|
||||
@ -1587,6 +1666,7 @@ You will need to update your Obsidian to use this plugin or contact the plugin d
|
||||
usingBetaManifest,
|
||||
specifyVersion
|
||||
);
|
||||
console.log("rFiles", rFiles);
|
||||
if (usingBetaManifest || rFiles.manifest === "")
|
||||
rFiles.manifest = JSON.stringify(primaryManifest);
|
||||
if (this.plugin.settings.debuggingMode)
|
||||
|
28
.obsidian/plugins/obsidian42-brat/manifest.json
vendored
28
.obsidian/plugins/obsidian42-brat/manifest.json
vendored
@ -1,15 +1,15 @@
|
||||
{
|
||||
"id": "obsidian42-brat",
|
||||
"name": "BRAT",
|
||||
"version": "0.8.4",
|
||||
"minAppVersion": "1.4.16",
|
||||
"description": "Easily install a beta version of a plugin for testing.",
|
||||
"author": "TfTHacker",
|
||||
"authorUrl": "https://github.com/TfTHacker/obsidian42-brat",
|
||||
"helpUrl": "https://tfthacker.com/BRAT",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://bit.ly/o42-kofi",
|
||||
"Visit my site": "https://tfthacker.com"
|
||||
}
|
||||
}
|
||||
"id": "obsidian42-brat",
|
||||
"name": "BRAT",
|
||||
"version": "1.0.1",
|
||||
"minAppVersion": "1.4.16",
|
||||
"description": "Easily install a beta version of a plugin for testing.",
|
||||
"author": "TfTHacker",
|
||||
"authorUrl": "https://github.com/TfTHacker/obsidian42-brat",
|
||||
"helpUrl": "https://tfthacker.com/BRAT",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://bit.ly/o42-kofi",
|
||||
"Visit my site": "https://tfthacker.com"
|
||||
}
|
||||
}
|
2580
.obsidian/plugins/obsidian42-strange-new-worlds/main.js
vendored
2580
.obsidian/plugins/obsidian42-strange-new-worlds/main.js
vendored
File diff suppressed because it is too large
Load Diff
@ -1,15 +1,14 @@
|
||||
{
|
||||
"id": "obsidian42-strange-new-worlds",
|
||||
"name": "Strange New Worlds (SNW)",
|
||||
"version": "1.2.5",
|
||||
"minAppVersion": "1.4.16",
|
||||
"description": "Revealing networked thought and the strange new worlds created by your vault",
|
||||
"author": "TfTHacker",
|
||||
"authorUrl": "https://twitter.com/TfTHacker",
|
||||
"helpUrl": "https://tfthacker.com/SNW",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://bit.ly/o42-kofi",
|
||||
"Vist my site": "https://tfthacker.com"
|
||||
}
|
||||
}
|
||||
"id": "obsidian42-strange-new-worlds",
|
||||
"name": "Strange New Worlds",
|
||||
"version": "2.1.2",
|
||||
"minAppVersion": "1.5.11",
|
||||
"description": "Help see how your vault is interconnected with visual indicators.",
|
||||
"author": "TfTHacker",
|
||||
"authorUrl": "https://twitter.com/TfTHacker",
|
||||
"helpUrl": "https://tfthacker.com/SNW",
|
||||
"isDesktopOnly": false,
|
||||
"fundingUrl": {
|
||||
"Sponsor my work": "https://tfthacker.com/sponsor"
|
||||
}
|
||||
}
|
@ -3,6 +3,12 @@ body {
|
||||
--snw-icon-opacity: 0.4;
|
||||
}
|
||||
|
||||
|
||||
div:has(> .snw-reference),
|
||||
.snw-link-preview {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.snw-reference {
|
||||
display: inline;
|
||||
font-size: var(--font-ui-smaller);
|
||||
@ -21,6 +27,20 @@ body {
|
||||
font-size: var(--font-ui-smaller);
|
||||
}
|
||||
|
||||
/* Properties */
|
||||
/* Have to remove the underline since text-decoration-line isn't inheritted, but then re-add ito the link */
|
||||
.metadata-container .internal-link:has(.snw-frontmatter-wrapper) {
|
||||
text-decoration-line: none !important;
|
||||
color: unset;
|
||||
cursor: unset;
|
||||
|
||||
.multi-select-pill-content {
|
||||
text-decoration-line: underline !important;
|
||||
color: var(--link-color);
|
||||
cursor: var(--cursor-link);
|
||||
}
|
||||
}
|
||||
|
||||
/* CM Live Preview */
|
||||
.cm-content .snw-reference {
|
||||
padding-right: 2px;
|
||||
@ -75,7 +95,7 @@ body {
|
||||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
.snw-sidepane-container > div > .snw-ref-area {
|
||||
.snw-sidepane-container>div>.snw-ref-area {
|
||||
max-height: 100% !important;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@ -132,7 +152,7 @@ body {
|
||||
margin-bottom: 1px !important;
|
||||
}
|
||||
|
||||
[uic='uic'] > * {
|
||||
[uic='uic']>* {
|
||||
margin-top: 0px !important;
|
||||
margin-bottom: 0px !important;
|
||||
max-height: 230px !important;
|
||||
@ -223,7 +243,7 @@ body {
|
||||
border-bottom: 1px solid var(--background-modifier-border);
|
||||
}
|
||||
|
||||
.snw-breadcrumbs > span {
|
||||
.snw-breadcrumbs>span {
|
||||
margin-right: 1ch;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: var(--radius-s);
|
||||
@ -246,3 +266,63 @@ body {
|
||||
height: 0px;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
/* Dropdown options */
|
||||
.snw-sort-dropdown-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.snw-sort-dropdown-button {
|
||||
border: none !important;
|
||||
box-shadow: none !important;
|
||||
width: 35px;
|
||||
background-color: unset !important;
|
||||
opacity: var(--snw-icon-opacity);
|
||||
|
||||
>svg {
|
||||
width: 25px;
|
||||
color: var(--tab-text-color-focused) !important;
|
||||
}
|
||||
}
|
||||
|
||||
.snw-sort-dropdown-list {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 15px;
|
||||
width: 90px;
|
||||
padding: 5px;
|
||||
z-index: 1;
|
||||
border: 3px solid var(--divider-color);
|
||||
border-radius: 2px;
|
||||
background-color: var(--background-primary);
|
||||
overflow-y: auto;
|
||||
list-style: none;
|
||||
color: var(--nav-item-color);
|
||||
font-size: var(--nav-item-size);
|
||||
font-weight: var(--nav-item-weight);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.snw-sort-dropdown-list-item {
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.snw-sort-dropdown-list-item:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.snw-sort-dropdown-list-item-label {
|
||||
padding-left: 5px;
|
||||
position: relative;
|
||||
bottom: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* prevent printing of reference numbers */
|
||||
@media print {
|
||||
.snw-reference {
|
||||
display: none;
|
||||
}
|
||||
}
|
2
.obsidian/plugins/quick-preview/data.json
vendored
2
.obsidian/plugins/quick-preview/data.json
vendored
@ -4,7 +4,7 @@
|
||||
"position": "Auto",
|
||||
"customPositionX": 0,
|
||||
"customPositionY": 0,
|
||||
"stickToMouse": true,
|
||||
"stickToMouse": false,
|
||||
"log": false,
|
||||
"disableCloseSuggest": false
|
||||
}
|
47
.obsidian/plugins/surfing/data.json
vendored
47
.obsidian/plugins/surfing/data.json
vendored
@ -1,47 +0,0 @@
|
||||
{
|
||||
"defaultSearchEngine": "google",
|
||||
"customSearchEngine": [
|
||||
{
|
||||
"name": "duckduckgo",
|
||||
"url": "https://duckduckgo.com/?q="
|
||||
}
|
||||
],
|
||||
"ignoreList": [
|
||||
"notion",
|
||||
"craft"
|
||||
],
|
||||
"alwaysShowCustomSearch": false,
|
||||
"showOtherSearchEngines": false,
|
||||
"showSearchBarInPage": false,
|
||||
"markdownPath": "/",
|
||||
"customHighlightFormat": false,
|
||||
"highlightFormat": "[{CONTENT}]({URL})",
|
||||
"highlightInSameTab": false,
|
||||
"openInSameTab": false,
|
||||
"showRefreshButton": true,
|
||||
"openInObsidianWeb": false,
|
||||
"useCustomIcons": false,
|
||||
"useWebview": false,
|
||||
"useIconList": true,
|
||||
"darkMode": false,
|
||||
"bookmarkManager": {
|
||||
"openBookMark": false,
|
||||
"saveBookMark": false,
|
||||
"sendToReadWise": false,
|
||||
"pagination": "12",
|
||||
"category": "- Computer\n - 算法\n - 数据结构\n- obsidian\n - surfing\n - dataview\n",
|
||||
"defaultCategory": "ROOT",
|
||||
"defaultColumnList": [
|
||||
"name",
|
||||
"description",
|
||||
"url",
|
||||
"category",
|
||||
"tags",
|
||||
"created",
|
||||
"modified",
|
||||
"action"
|
||||
],
|
||||
"defaultFilterType": "tree"
|
||||
},
|
||||
"treeData": []
|
||||
}
|
646
.obsidian/plugins/surfing/main.js
vendored
646
.obsidian/plugins/surfing/main.js
vendored
File diff suppressed because one or more lines are too long
15
.obsidian/plugins/surfing/manifest.json
vendored
15
.obsidian/plugins/surfing/manifest.json
vendored
@ -1,15 +0,0 @@
|
||||
{
|
||||
"id": "surfing",
|
||||
"name": "Surfing",
|
||||
"version": "0.9.5",
|
||||
"minAppVersion": "1.4.0",
|
||||
"description": "Surf the Net in Obsidian.",
|
||||
"author": "Boninall & Windily-cloud",
|
||||
"authorUrl": "https://github.com/Quorafind",
|
||||
"isDesktopOnly": true,
|
||||
"fundingUrl": {
|
||||
"Buy Me a Coffee": "https://www.buymeacoffee.com/boninall",
|
||||
"爱发电": "https://afdian.net/a/boninall",
|
||||
"支付宝": "https://cdn.jsdelivr.net/gh/Quorafind/.github@main/IMAGE/%E6%94%AF%E4%BB%98%E5%AE%9D%E4%BB%98%E6%AC%BE%E7%A0%81.jpg"
|
||||
}
|
||||
}
|
1
.obsidian/plugins/surfing/styles.css
vendored
1
.obsidian/plugins/surfing/styles.css
vendored
File diff suppressed because one or more lines are too long
58
.obsidian/plugins/sync-graph-settings/main.js
vendored
58
.obsidian/plugins/sync-graph-settings/main.js
vendored
@ -24,19 +24,67 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
||||
// main.ts
|
||||
var main_exports = {};
|
||||
__export(main_exports, {
|
||||
SyncGraphSettingTab: () => SyncGraphSettingTab,
|
||||
default: () => SyncGraphPlugin
|
||||
});
|
||||
module.exports = __toCommonJS(main_exports);
|
||||
var import_obsidian = require("obsidian");
|
||||
var DEFAULT_SETTINGS = {
|
||||
autoSync: false,
|
||||
defaultDepth: 1,
|
||||
defaultIncomingLinks: true,
|
||||
defaultOutgoingLinks: true,
|
||||
defaultNeighborLinks: true
|
||||
};
|
||||
var SyncGraphSettingTab = 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("Auto Sync").addToggle((toggle) => toggle.setValue(this.plugin.settings.autoSync).onChange(async (value) => {
|
||||
this.plugin.settings.autoSync = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Default depth").addSlider((value) => value.setLimits(1, 10, 1).setValue(this.plugin.settings.defaultDepth).onChange(async (value2) => {
|
||||
this.plugin.settings.defaultDepth = value2;
|
||||
await this.plugin.saveSettings();
|
||||
}).setDynamicTooltip());
|
||||
new import_obsidian.Setting(containerEl).setName("Default Incoming Links").addToggle((toggle) => toggle.setValue(this.plugin.settings.defaultIncomingLinks).onChange(async (value) => {
|
||||
this.plugin.settings.defaultIncomingLinks = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Default Outgoing Links").addToggle((toggle) => toggle.setValue(this.plugin.settings.defaultOutgoingLinks).onChange(async (value) => {
|
||||
this.plugin.settings.defaultOutgoingLinks = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
new import_obsidian.Setting(containerEl).setName("Default Neighbor Links").addToggle((toggle) => toggle.setValue(this.plugin.settings.defaultNeighborLinks).onChange(async (value) => {
|
||||
this.plugin.settings.defaultNeighborLinks = value;
|
||||
await this.plugin.saveSettings();
|
||||
}));
|
||||
}
|
||||
};
|
||||
var SyncGraphPlugin = class extends import_obsidian.Plugin {
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
this.addSettingTab(new SyncGraphSettingTab(this.app, this));
|
||||
this.addCommand({
|
||||
id: "sync-graph-colorgroups-to-localgraph",
|
||||
id: "sync-graph-settings-to-localgraph",
|
||||
name: "Sync Graph Settings to Local Graph",
|
||||
callback: async () => {
|
||||
await this.syncGlobalToLocal();
|
||||
}
|
||||
});
|
||||
this.app.workspace.on("active-leaf-change", async () => {
|
||||
if (this.settings.autoSync) {
|
||||
await this.syncGlobalToLocal();
|
||||
}
|
||||
});
|
||||
}
|
||||
async loadSettings() {
|
||||
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
|
||||
}
|
||||
async syncGlobalToLocal() {
|
||||
const configDir = this.app.vault.configDir;
|
||||
@ -56,7 +104,13 @@ var SyncGraphPlugin = class extends import_obsidian.Plugin {
|
||||
const viewState = localGraphLeaf.getViewState();
|
||||
viewState.state.options.colorGroups = colorGroups;
|
||||
viewState.state.options.search = searchFilters;
|
||||
viewState.state.options.localJumps = this.settings.defaultDepth;
|
||||
viewState.state.options.localBacklinks = this.settings.defaultIncomingLinks;
|
||||
viewState.state.options.localForelinks = this.settings.defaultOutgoingLinks;
|
||||
viewState.state.options.localInterlinks = this.settings.defaultNeighborLinks;
|
||||
localGraphLeaf.setViewState(viewState);
|
||||
}
|
||||
async saveSettings() {
|
||||
await this.saveData(this.settings);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgUGx1Z2luLCBXb3Jrc3BhY2VMZWFmLCBub3JtYWxpemVQYXRofSBmcm9tICdvYnNpZGlhbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN5bmNHcmFwaFBsdWdpbiBleHRlbmRzIFBsdWdpbiB7XG5cdGFzeW5jIG9ubG9hZCgpIHtcblx0XHR0aGlzLmFkZENvbW1hbmQoe1xuXHRcdFx0aWQ6IFwic3luYy1ncmFwaC1jb2xvcmdyb3Vwcy10by1sb2NhbGdyYXBoXCIsXG5cdFx0XHRuYW1lOiBcIlN5bmMgR3JhcGggU2V0dGluZ3MgdG8gTG9jYWwgR3JhcGhcIixcblx0XHRcdGNhbGxiYWNrOiBhc3luYyAoKSA9PiB7IGF3YWl0IHRoaXMuc3luY0dsb2JhbFRvTG9jYWwoKSB9XG5cdFx0fSlcblx0fVxuXG5cdGFzeW5jIHN5bmNHbG9iYWxUb0xvY2FsKCkge1xuXHRcdGNvbnN0IGNvbmZpZ0RpciA9IHRoaXMuYXBwLnZhdWx0LmNvbmZpZ0Rpcjtcblx0XHRjb25zdCBncmFwaENvbmZpZ1BhdGggPSBub3JtYWxpemVQYXRoKGNvbmZpZ0RpciArICcvZ3JhcGguanNvbicpO1xuXG5cdFx0Ly8gdGhpcy5hcHAudmF1bHQuZ2V0QWJzdHJhY3RGaWxlQnlQYXRoKCcub2JzaWRpYW4vZ3JhcGguanNvbicpIHdvdWxkIHJldHVybiBudWxsXG5cdFx0Ly8gU28gd2UncmUgZG9pbmcgaXQgdGhlIGxlc3Mgc2FmZSB3YXlcblx0XHRjb25zdCBncmFwaENvbmZpZ0pzb24gPSBhd2FpdCB0aGlzLmFwcC52YXVsdC5hZGFwdGVyLnJlYWQoZ3JhcGhDb25maWdQYXRoKTtcblx0XHRjb25zdCBncmFwaENvbmZpZyA9IEpTT04ucGFyc2UoZ3JhcGhDb25maWdKc29uKTtcblx0XHRjb25zdCBncmFwaENvbG9yR3JvdXBzID0gZ3JhcGhDb25maWcuY29sb3JHcm91cHM7XG5cdFx0Y29uc3Qgc2VhcmNoRmlsdGVycyA9IGdyYXBoQ29uZmlnLnNlYXJjaDtcblx0XHR0aGlzLmdldExvY2FsR3JhcGhMZWF2ZXMoKS5mb3JFYWNoKChsZWFmKSA9PiB7XG5cdFx0XHR0aGlzLnNldFNldHRpbmdzKGxlYWYsIGdyYXBoQ29sb3JHcm91cHMsIHNlYXJjaEZpbHRlcnMpO1xuXHRcdH0pXG5cdH1cblxuXHRnZXRMb2NhbEdyYXBoTGVhdmVzKCkge1xuXHRcdHJldHVybiB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKCdsb2NhbGdyYXBoJyk7XG5cdH1cblx0XG5cdHNldFNldHRpbmdzKGxvY2FsR3JhcGhMZWFmOiBXb3Jrc3BhY2VMZWFmLCBjb2xvckdyb3VwczogYW55LCBzZWFyY2hGaWx0ZXJzOiBhbnkpIHtcblx0XHRjb25zdCB2aWV3U3RhdGUgPSBsb2NhbEdyYXBoTGVhZi5nZXRWaWV3U3RhdGUoKTtcblx0XHR2aWV3U3RhdGUuc3RhdGUub3B0aW9ucy5jb2xvckdyb3VwcyA9IGNvbG9yR3JvdXBzO1xuXHRcdHZpZXdTdGF0ZS5zdGF0ZS5vcHRpb25zLnNlYXJjaCA9IHNlYXJjaEZpbHRlcnM7XG5cdFx0bG9jYWxHcmFwaExlYWYuc2V0Vmlld1N0YXRlKHZpZXdTdGF0ZSk7XG5cdH1cbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQW9EO0FBRXBELElBQXFCLGtCQUFyQixjQUE2Qyx1QkFBTztBQUFBLEVBQ25ELE1BQU0sU0FBUztBQUNkLFNBQUssV0FBVztBQUFBLE1BQ2YsSUFBSTtBQUFBLE1BQ0osTUFBTTtBQUFBLE1BQ04sVUFBVSxZQUFZO0FBQUUsY0FBTSxLQUFLLGtCQUFrQjtBQUFBLE1BQUU7QUFBQSxJQUN4RCxDQUFDO0FBQUEsRUFDRjtBQUFBLEVBRUEsTUFBTSxvQkFBb0I7QUFDekIsVUFBTSxZQUFZLEtBQUssSUFBSSxNQUFNO0FBQ2pDLFVBQU0sa0JBQWtCLG1DQUFjLFlBQVksYUFBYTtBQUkvRCxVQUFNLGtCQUFrQixNQUFNLEtBQUssSUFBSSxNQUFNLFFBQVEsS0FBSyxlQUFlO0FBQ3pFLFVBQU0sY0FBYyxLQUFLLE1BQU0sZUFBZTtBQUM5QyxVQUFNLG1CQUFtQixZQUFZO0FBQ3JDLFVBQU0sZ0JBQWdCLFlBQVk7QUFDbEMsU0FBSyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsU0FBUztBQUM1QyxXQUFLLFlBQVksTUFBTSxrQkFBa0IsYUFBYTtBQUFBLElBQ3ZELENBQUM7QUFBQSxFQUNGO0FBQUEsRUFFQSxzQkFBc0I7QUFDckIsV0FBTyxLQUFLLElBQUksVUFBVSxnQkFBZ0IsWUFBWTtBQUFBLEVBQ3ZEO0FBQUEsRUFFQSxZQUFZLGdCQUErQixhQUFrQixlQUFvQjtBQUNoRixVQUFNLFlBQVksZUFBZSxhQUFhO0FBQzlDLGNBQVUsTUFBTSxRQUFRLGNBQWM7QUFDdEMsY0FBVSxNQUFNLFFBQVEsU0FBUztBQUNqQyxtQkFBZSxhQUFhLFNBQVM7QUFBQSxFQUN0QztBQUNEOyIsCiAgIm5hbWVzIjogW10KfQo=
|
||||
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"id": "sync-graph-settings",
|
||||
"name": "Sync Graph Settings",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "This is a plugin for syncing graph settings (Color Groups and Search Filters) to Local Graphs",
|
||||
"description": "This is a plugin for syncing various graph settings to Local Graphs",
|
||||
"author": "xallt",
|
||||
"authorUrl": "github.com/Xallt",
|
||||
"isDesktopOnly": false
|
||||
|
2673
.obsidian/plugins/tasks-calendar-wrapper/main.js
vendored
2673
.obsidian/plugins/tasks-calendar-wrapper/main.js
vendored
File diff suppressed because it is too large
Load Diff
89
.obsidian/plugins/templater-obsidian/main.js
vendored
89
.obsidian/plugins/templater-obsidian/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "templater-obsidian",
|
||||
"name": "Templater",
|
||||
"version": "2.2.3",
|
||||
"version": "2.3.1",
|
||||
"description": "Create and use templates",
|
||||
"minAppVersion": "1.5.0",
|
||||
"author": "SilentVoid",
|
||||
|
11
.obsidian/plugins/various-complements/data.json
vendored
11
.obsidian/plugins/various-complements/data.json
vendored
@ -15,7 +15,7 @@
|
||||
"delayMilliSeconds": 0,
|
||||
"disableSuggestionsDuringImeOn": false,
|
||||
"disableSuggestionsInMathBlock": true,
|
||||
"insertAfterCompletion": true,
|
||||
"insertSpaceAfterCompletion": false,
|
||||
"firstCharactersDisableSuggestions": ":/^",
|
||||
"patternsToSuppressTrigger": [
|
||||
"^~~~.*",
|
||||
@ -37,8 +37,10 @@
|
||||
],
|
||||
"select with custom alias": [
|
||||
{
|
||||
"modifiers": [],
|
||||
"key": "ArrowRight",
|
||||
"modifiers": [
|
||||
"Shift"
|
||||
],
|
||||
"key": "Tab",
|
||||
"hideHotkeyGuide": false
|
||||
}
|
||||
],
|
||||
@ -71,11 +73,13 @@
|
||||
"enableCurrentFileComplement": false,
|
||||
"currentFileMinNumberOfCharacters": 0,
|
||||
"onlyComplementEnglishOnCurrentFileComplement": false,
|
||||
"excludeCurrentFileWordPatterns": [],
|
||||
"enableCurrentVaultComplement": false,
|
||||
"currentVaultMinNumberOfCharacters": 2,
|
||||
"includeCurrentVaultPathPrefixPatterns": "",
|
||||
"excludeCurrentVaultPathPrefixPatterns": "",
|
||||
"includeCurrentVaultOnlyFilesUnderCurrentDirectory": false,
|
||||
"excludeCurrentVaultWordPatterns": [],
|
||||
"enableCustomDictionaryComplement": false,
|
||||
"customDictionaryPaths": "https://raw.githubusercontent.com/first20hours/google-10000-english/master/google-10000-english-no-swears.txt",
|
||||
"columnDelimiter": "Tab",
|
||||
@ -105,6 +109,7 @@
|
||||
},
|
||||
"disableOnMobile": false,
|
||||
"showLogAboutPerformanceInConsole": false,
|
||||
"insertAfterCompletion": true,
|
||||
"selectionHistoryTree": {},
|
||||
"useCommonPrefixCompletionOfSuggestion": false,
|
||||
"selectSuggestionKeys": "Tab",
|
||||
|
@ -1 +1 @@
|
||||
{"matrice hessienne":{"matrice hessienne":{"internalLink":{"count":2,"lastUpdated":1710324879177}}},"baptême":{"baptême":{"internalLink":{"count":5,"lastUpdated":1709864270370}}},"gradient":{"gradient":{"internalLink":{"count":1,"lastUpdated":1710325461961}}},"obsidian plugin tag and wordcloud":{"obsidian plugin tag and wordcloud":{"internalLink":{"count":1,"lastUpdated":1710345237714}}},"intersection de sous groupes":{"intersection de sous groupes":{"internalLink":{"count":1,"lastUpdated":1710465530327}}},"valeurs":{"valeurs":{"internalLink":{"count":1,"lastUpdated":1711459246780}}},"Learning APL":{"Learning APL":{"internalLink":{"count":1,"lastUpdated":1711584419388}}},"structure de donnés":{"structure de donnés":{"internalLink":{"count":1,"lastUpdated":1711621251914}}},"paramètre":{"paramètre":{"internalLink":{"count":1,"lastUpdated":1711621492446}}},"langage de programmation":{"langage de programmation":{"internalLink":{"count":4,"lastUpdated":1711920773085}},"langage":{"internalLink":{"count":1,"lastUpdated":1711920903060}}},"argument d'une fonction":{"argument d'une fonction":{"internalLink":{"count":1,"lastUpdated":1711624010397}}},"argument":{"argument":{"internalLink":{"count":2,"lastUpdated":1711624133731}}},"techniques de pkm":{"techniques de pkm":{"internalLink":{"count":1,"lastUpdated":1711627281333}}},"paradigme de programmation":{"paradigme de programmation":{"internalLink":{"count":6,"lastUpdated":1711917618071}}},"état":{"état":{"internalLink":{"count":3,"lastUpdated":1711905774038}}},"structure de données":{"structure de données":{"internalLink":{"count":1,"lastUpdated":1711643699590}}},"structures de données":{"structures de données":{"internalLink":{"count":2,"lastUpdated":1711904665130}}},"enregistrement":{"enregistrement":{"internalLink":{"count":1,"lastUpdated":1711668283936}}},"envoi de messages entre objets":{"envoi de messages entre objets":{"internalLink":{"count":1,"lastUpdated":1711742931869}}},"programmation structurée":{"programmation structurée":{"internalLink":{"count":1,"lastUpdated":1711764089506}}},"effet de bord":{"effet de bord":{"internalLink":{"count":2,"lastUpdated":1711906516742}}},"programmation impérative":{"programmation impérative":{"internalLink":{"count":4,"lastUpdated":1711988908729}}},"composition de fonctions":{"composition de fonctions":{"internalLink":{"count":1,"lastUpdated":1711904385231}}},"fonction":{"fonction":{"internalLink":{"count":2,"lastUpdated":1711904857369}}},"fonction pure":{"fonction pure":{"internalLink":{"count":1,"lastUpdated":1711915488076}}},"effets de bord":{"effets de bord":{"internalLink":{"count":1,"lastUpdated":1711915498637}}},"Alan Perlis":{"Alan Perlis":{"internalLink":{"count":1,"lastUpdated":1711915724379}}},"fonction racine carrée":{"fonction racine carrée":{"internalLink":{"count":1,"lastUpdated":1711916013705}}},"méthode de Newton":{"méthode de Newton":{"internalLink":{"count":1,"lastUpdated":1711916030171}}},"langages formels":{"langages formels":{"internalLink":{"count":1,"lastUpdated":1711916816989}}},"logique":{"logique":{"internalLink":{"count":1,"lastUpdated":1711916822650}}},"sophisme":{"sophisme":{"internalLink":{"count":1,"lastUpdated":1711916957089}}},"définition":{"définition":{"currentVault":{"count":1,"lastUpdated":1711920701861},"currentFile":{"count":1,"lastUpdated":1711920749062}}},"remplissage":{"remplissage":{"currentVault":{"count":1,"lastUpdated":1711920704851}}},"défini":{"défini":{"currentFile":{"count":1,"lastUpdated":1711920747172}}},"SE - organisation des données":{"SE - organisation des données":{"internalLink":{"count":1,"lastUpdated":1711920824428}}},"Frédéric Lordon":{"Frédéric Lordon":{"internalLink":{"count":1,"lastUpdated":1711942941375}}},"taxonomie des paradigmes de programmation":{"taxonomie des paradigmes de programmation":{"internalLink":{"count":2,"lastUpdated":1712001528811}}},"FermetureInformatique2024":{"FermetureInformatique2024":{"internalLink":{"count":1,"lastUpdated":1712011439635}}},"processus":{"processus":{"internalLink":{"count":2,"lastUpdated":1712026279944}}},"swap d'un processus":{"swap d'un processus":{"internalLink":{"count":1,"lastUpdated":1712026273892}}}}
|
||||
{"garbage collection":{"garbage collection":{"internalLink":{"count":1,"lastUpdated":1715606605864}}},"changement de base d'une forme bilinéaire":{"test":{"internalLink":{"count":1,"lastUpdated":1715676329297}}},"test_patat":{"test_patat":{"internalLink":{"count":1,"lastUpdated":1715676413667}},"bonjour":{"internalLink":{"count":1,"lastUpdated":1715676438324}}}}
|
112
.obsidian/plugins/various-complements/main.js
vendored
112
.obsidian/plugins/various-complements/main.js
vendored
@ -3216,6 +3216,9 @@ var CurrentFileWordProvider = class {
|
||||
const currentToken = this.tokenizer.tokenize(
|
||||
editor.getLine(editor.getCursor().line).slice(0, editor.getCursor().ch)
|
||||
).last();
|
||||
const excludePatterns = option.excludeWordPatterns.map(
|
||||
(x) => new RegExp(`^${x}$`)
|
||||
);
|
||||
const content = await this.app.vault.cachedRead(file);
|
||||
const tokens = this.tokenizer.tokenize(content).filter((x) => {
|
||||
if (x.length < option.minNumberOfCharacters) {
|
||||
@ -3225,7 +3228,7 @@ var CurrentFileWordProvider = class {
|
||||
return false;
|
||||
}
|
||||
return option.onlyEnglish ? allAlphabets(x) : true;
|
||||
}).map((x) => startsSmallLetterOnlyFirst(x) ? x.toLowerCase() : x);
|
||||
}).map((x) => startsSmallLetterOnlyFirst(x) ? x.toLowerCase() : x).filter((x) => !excludePatterns.some((rp) => x.match(rp)));
|
||||
this.words = uniq(tokens).filter((x) => x !== currentToken).map((x) => ({
|
||||
value: x,
|
||||
type: "currentFile",
|
||||
@ -3409,12 +3412,15 @@ var CurrentVaultWordProvider = class {
|
||||
const markdownFilePaths = this.app.vault.getMarkdownFiles().map((x) => x.path).filter((p) => this.includePrefixPatterns.every((x) => p.startsWith(x))).filter((p) => this.excludePrefixPatterns.every((x) => !p.startsWith(x))).filter(
|
||||
(p) => !this.onlyUnderCurrentDirectory || dirname(p) === currentDirname
|
||||
);
|
||||
const excludePatterns = option.excludeWordPatterns.map(
|
||||
(x) => new RegExp(`^${x}$`)
|
||||
);
|
||||
let wordByValue = {};
|
||||
for (const path of markdownFilePaths) {
|
||||
const content = await this.app.vault.adapter.read(path);
|
||||
const tokens = this.tokenizer.tokenize(content).filter(
|
||||
(x) => x.length >= option.minNumberOfCharacters && !this.tokenizer.shouldIgnoreOnCurrent(x)
|
||||
).map((x) => startsSmallLetterOnlyFirst(x) ? x.toLowerCase() : x);
|
||||
).map((x) => startsSmallLetterOnlyFirst(x) ? x.toLowerCase() : x).filter((x) => !excludePatterns.some((rp) => x.match(rp)));
|
||||
for (const token of tokens) {
|
||||
wordByValue[token] = {
|
||||
value: token,
|
||||
@ -3896,13 +3902,16 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
this.appHelper = new AppHelper(app2);
|
||||
this.statusBar = statusBar;
|
||||
}
|
||||
triggerComplete() {
|
||||
triggerComplete(opt) {
|
||||
const editor = this.appHelper.getCurrentEditor();
|
||||
const activeFile = this.app.workspace.getActiveFile();
|
||||
if (!editor || !activeFile) {
|
||||
return;
|
||||
}
|
||||
this.runManually = true;
|
||||
if (opt == null ? void 0 : opt.fallbackLinkify) {
|
||||
this.completionMode = this.completionMode === "prefix" ? "partial" : "new";
|
||||
}
|
||||
this.trigger(editor, activeFile, true);
|
||||
}
|
||||
hideCompletion() {
|
||||
@ -3916,12 +3925,8 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
this.settings.intelligentSuggestionPrioritization.historyFilePath || DEFAULT_HISTORIES_PATH
|
||||
);
|
||||
if (await this.appHelper.exists(historyPath)) {
|
||||
this.settings.selectionHistoryTree = {};
|
||||
return this.appHelper.loadJson(historyPath);
|
||||
}
|
||||
if (Object.keys(this.settings.selectionHistoryTree).length > 0) {
|
||||
return this.settings.selectionHistoryTree;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
static async new(app2, settings, statusBar, onPersistSelectionHistory) {
|
||||
@ -3985,6 +3990,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
ins.refreshCurrentVaultTokens();
|
||||
ins.app.metadataCache.offref(cacheResolvedRef);
|
||||
});
|
||||
ins.completionMode = ins.matchStrategy.name;
|
||||
return ins;
|
||||
}
|
||||
predictableComplete() {
|
||||
@ -4095,10 +4101,24 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
const start = performance.now();
|
||||
this.showDebugLog(() => `[context.query]: ${context.query}`);
|
||||
const parsedQuery = JSON.parse(context.query);
|
||||
const words = parsedQuery.queries.filter(
|
||||
const createNewLinkSuggestions = () => parsedQuery.queries.slice().reverse().filter((q) => q.word.length >= this.minNumberTriggered).map((q) => ({
|
||||
value: q.word,
|
||||
createdPath: "FIXME: ",
|
||||
type: "internalLink",
|
||||
phantom: true,
|
||||
offset: q.offset
|
||||
}));
|
||||
if (parsedQuery.completionMode === "new") {
|
||||
cb(createNewLinkSuggestions());
|
||||
return;
|
||||
}
|
||||
const matchStrategy = MatchStrategy.fromName(
|
||||
parsedQuery.completionMode
|
||||
);
|
||||
let words = parsedQuery.queries.filter(
|
||||
(x, i, xs) => parsedQuery.currentFrontMatter || this.settings.minNumberOfWordsTriggeredPhrase + i - 1 < xs.length && x.word.length >= this.minNumberTriggered && !x.word.endsWith(" ")
|
||||
).map((q) => {
|
||||
const handler = parsedQuery.currentFrontMatter && this.frontMatterComplementStrategy !== SpecificMatchStrategy.INHERIT ? this.frontMatterComplementStrategy.handler : this.matchStrategy.handler;
|
||||
const handler = parsedQuery.currentFrontMatter && this.frontMatterComplementStrategy !== SpecificMatchStrategy.INHERIT ? this.frontMatterComplementStrategy.handler : matchStrategy.handler;
|
||||
return handler(
|
||||
this.indexedWords,
|
||||
q.word,
|
||||
@ -4112,6 +4132,13 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
}
|
||||
).map((word) => ({ ...word, offset: q.offset }));
|
||||
}).flat().sort((a, b) => Number(a.fuzzy) - Number(b.fuzzy));
|
||||
if (this.completionMode != this.matchStrategy.name && this.completionMode === "partial") {
|
||||
words = words.filter((x) => x.type === "internalLink");
|
||||
if (words.length === 0) {
|
||||
cb(createNewLinkSuggestions());
|
||||
return;
|
||||
}
|
||||
}
|
||||
cb(
|
||||
uniqWith(words, suggestionUniqPredicate).slice(
|
||||
0,
|
||||
@ -4214,7 +4241,8 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
onlyEnglish: this.settings.onlyComplementEnglishOnCurrentFileComplement,
|
||||
minNumberOfCharacters: this.currentFileMinNumberOfCharacters,
|
||||
makeSynonymAboutEmoji: this.settings.matchingWithoutEmoji,
|
||||
makeSynonymAboutAccentsDiacritics: this.settings.treatAccentDiacriticsAsAlphabeticCharacters
|
||||
makeSynonymAboutAccentsDiacritics: this.settings.treatAccentDiacriticsAsAlphabeticCharacters,
|
||||
excludeWordPatterns: this.settings.excludeCurrentFileWordPatterns
|
||||
});
|
||||
this.statusBar.setCurrentFileIndexed(
|
||||
this.currentFileWordProvider.wordCount
|
||||
@ -4240,7 +4268,8 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
await this.currentVaultWordProvider.refreshWords({
|
||||
minNumberOfCharacters: this.currentVaultMinNumberOfCharacters,
|
||||
makeSynonymAboutEmoji: this.settings.matchingWithoutEmoji,
|
||||
makeSynonymAboutAccentsDiacritics: this.settings.treatAccentDiacriticsAsAlphabeticCharacters
|
||||
makeSynonymAboutAccentsDiacritics: this.settings.treatAccentDiacriticsAsAlphabeticCharacters,
|
||||
excludeWordPatterns: this.settings.excludeCurrentVaultWordPatterns
|
||||
});
|
||||
this.statusBar.setCurrentVaultIndexed(
|
||||
this.currentVaultWordProvider.wordCount
|
||||
@ -4390,6 +4419,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
const onReturnNull = (message) => {
|
||||
showDebugLog(message);
|
||||
this.runManually = false;
|
||||
this.completionMode = this.matchStrategy.name;
|
||||
this.close();
|
||||
};
|
||||
if (!this.settings.complementAutomatically && !this.isOpen && !this.runManually) {
|
||||
@ -4485,7 +4515,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
);
|
||||
if (suppressedTokens.length === 0) {
|
||||
onReturnNull(
|
||||
`Don't show suggestions because all tokens are ignored by token pattern: ${String.raw`^[\u3040-\u309F\u30A0-\u30FF]{1,2}$`}`
|
||||
"Don't show suggestions because all tokens are ignored by token pattern"
|
||||
);
|
||||
return null;
|
||||
}
|
||||
@ -4503,6 +4533,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
end: cursor,
|
||||
query: JSON.stringify({
|
||||
currentFrontMatter,
|
||||
completionMode: this.completionMode,
|
||||
queries: suppressedTokens.map((x) => ({
|
||||
...x,
|
||||
offset: x.offset - currentTokens[0].offset
|
||||
@ -4585,6 +4616,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
}
|
||||
selectSuggestion(word) {
|
||||
var _a, _b;
|
||||
this.completionMode = this.matchStrategy.name;
|
||||
let forceWithAlias = false;
|
||||
let context = this.context;
|
||||
if (!context) {
|
||||
@ -4607,7 +4639,7 @@ var AutoCompleteSuggest = class _AutoCompleteSuggest extends import_obsidian5.Ed
|
||||
insertedText = `${insertedText}, `;
|
||||
}
|
||||
} else {
|
||||
if (this.settings.insertAfterCompletion && !(word.type === "customDictionary" && word.ignoreSpaceAfterCompletion)) {
|
||||
if (this.settings.insertSpaceAfterCompletion && !(word.type === "customDictionary" && word.ignoreSpaceAfterCompletion)) {
|
||||
insertedText = `${insertedText} `;
|
||||
}
|
||||
}
|
||||
@ -4738,15 +4770,15 @@ var DEFAULT_SETTINGS = {
|
||||
delayMilliSeconds: 0,
|
||||
disableSuggestionsDuringImeOn: false,
|
||||
disableSuggestionsInMathBlock: false,
|
||||
insertAfterCompletion: true,
|
||||
insertSpaceAfterCompletion: false,
|
||||
firstCharactersDisableSuggestions: ":/^",
|
||||
patternsToSuppressTrigger: ["^~~~.*", "^```.*"],
|
||||
phrasePatternsToSuppressTrigger: [],
|
||||
noAutoFocusUntilCycle: false,
|
||||
// appearance
|
||||
showMatchStrategy: true,
|
||||
showComplementAutomatically: true,
|
||||
showIndexingStatus: true,
|
||||
showMatchStrategy: false,
|
||||
showComplementAutomatically: false,
|
||||
showIndexingStatus: false,
|
||||
descriptionOnSuggestion: "Short",
|
||||
// key customization
|
||||
hotkeys: {
|
||||
@ -4772,12 +4804,14 @@ var DEFAULT_SETTINGS = {
|
||||
enableCurrentFileComplement: true,
|
||||
currentFileMinNumberOfCharacters: 0,
|
||||
onlyComplementEnglishOnCurrentFileComplement: false,
|
||||
excludeCurrentFileWordPatterns: [],
|
||||
// current vault complement
|
||||
enableCurrentVaultComplement: false,
|
||||
currentVaultMinNumberOfCharacters: 0,
|
||||
includeCurrentVaultPathPrefixPatterns: "",
|
||||
excludeCurrentVaultPathPrefixPatterns: "",
|
||||
includeCurrentVaultOnlyFilesUnderCurrentDirectory: false,
|
||||
excludeCurrentVaultWordPatterns: [],
|
||||
// custom dictionary complement
|
||||
enableCustomDictionaryComplement: false,
|
||||
customDictionaryPaths: `https://raw.githubusercontent.com/first20hours/google-10000-english/master/google-10000-english-no-swears.txt`,
|
||||
@ -4799,7 +4833,7 @@ var DEFAULT_SETTINGS = {
|
||||
},
|
||||
frontMatterKeyForExclusionInternalLink: "",
|
||||
// front matter complement
|
||||
enableFrontMatterComplement: true,
|
||||
enableFrontMatterComplement: false,
|
||||
frontMatterComplementMatchStrategy: "inherit",
|
||||
insertCommaAfterFrontMatterCompletion: false,
|
||||
intelligentSuggestionPrioritization: {
|
||||
@ -4811,10 +4845,7 @@ var DEFAULT_SETTINGS = {
|
||||
// mobile
|
||||
disableOnMobile: false,
|
||||
// debug
|
||||
showLogAboutPerformanceInConsole: false,
|
||||
// others
|
||||
// TODO: Want to remove in the future version
|
||||
selectionHistoryTree: {}
|
||||
showLogAboutPerformanceInConsole: false
|
||||
};
|
||||
var VariousComplementsSettingTab = class extends import_obsidian7.PluginSettingTab {
|
||||
constructor(app2, plugin) {
|
||||
@ -4998,7 +5029,7 @@ var VariousComplementsSettingTab = class extends import_obsidian7.PluginSettingT
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian7.Setting(containerEl).setName("Disable suggestions in the Math block.").setDesc("It doesn't support the inline Math block.").addToggle((tc) => {
|
||||
new import_obsidian7.Setting(containerEl).setName("Disable suggestions in the Math block").setDesc("It doesn't support the inline Math block.").addToggle((tc) => {
|
||||
tc.setValue(
|
||||
this.plugin.settings.disableSuggestionsInMathBlock
|
||||
).onChange(async (value) => {
|
||||
@ -5007,9 +5038,9 @@ var VariousComplementsSettingTab = class extends import_obsidian7.PluginSettingT
|
||||
});
|
||||
});
|
||||
new import_obsidian7.Setting(containerEl).setName("Insert space after completion").addToggle((tc) => {
|
||||
tc.setValue(this.plugin.settings.insertAfterCompletion).onChange(
|
||||
tc.setValue(this.plugin.settings.insertSpaceAfterCompletion).onChange(
|
||||
async (value) => {
|
||||
this.plugin.settings.insertAfterCompletion = value;
|
||||
this.plugin.settings.insertSpaceAfterCompletion = value;
|
||||
await this.plugin.saveSettings();
|
||||
}
|
||||
);
|
||||
@ -5179,6 +5210,18 @@ var VariousComplementsSettingTab = class extends import_obsidian7.PluginSettingT
|
||||
await this.plugin.saveSettings({ currentFile: true });
|
||||
});
|
||||
});
|
||||
new import_obsidian7.Setting(containerEl).setName("Exclude word patterns for indexing").setDesc(
|
||||
"Regexp patterns for words to be excluded from the suggestions, separated by line breaks."
|
||||
).addTextArea((tc) => {
|
||||
const el = tc.setValue(
|
||||
this.plugin.settings.excludeCurrentFileWordPatterns.join("\n")
|
||||
).onChange(async (value) => {
|
||||
this.plugin.settings.excludeCurrentFileWordPatterns = smartLineBreakSplit(value);
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
el.inputEl.className = "various-complements__settings__text-area-path-dense";
|
||||
return el;
|
||||
});
|
||||
}
|
||||
}
|
||||
addCurrentVaultComplementSettings(containerEl) {
|
||||
@ -5230,6 +5273,18 @@ var VariousComplementsSettingTab = class extends import_obsidian7.PluginSettingT
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
new import_obsidian7.Setting(containerEl).setName("Exclude word patterns for indexing").setDesc(
|
||||
"Regexp patterns for words to be excluded from the suggestions, separated by line breaks."
|
||||
).addTextArea((tc) => {
|
||||
const el = tc.setValue(
|
||||
this.plugin.settings.excludeCurrentVaultWordPatterns.join("\n")
|
||||
).onChange(async (value) => {
|
||||
this.plugin.settings.excludeCurrentVaultWordPatterns = smartLineBreakSplit(value);
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
el.inputEl.className = "various-complements__settings__text-area-path-dense";
|
||||
return el;
|
||||
});
|
||||
}
|
||||
}
|
||||
addCustomDictionaryComplementSettings(containerEl) {
|
||||
@ -7860,6 +7915,13 @@ var VariousComponents = class extends import_obsidian9.Plugin {
|
||||
this.suggester.hideCompletion();
|
||||
}
|
||||
});
|
||||
this.addCommand({
|
||||
id: "fallback-linkify",
|
||||
name: "Fallback linkify",
|
||||
callback: async () => {
|
||||
this.suggester.triggerComplete({ fallbackLinkify: true });
|
||||
}
|
||||
});
|
||||
this.addCommand({
|
||||
id: "add-word-custom-dictionary",
|
||||
name: "Add a word to a custom dictionary",
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "various-complements",
|
||||
"name": "Various Complements",
|
||||
"version": "9.4.0",
|
||||
"version": "10.0.0",
|
||||
"minAppVersion": "0.16.0",
|
||||
"description": "This plugin enables you to complete words like the auto-completion of IDE",
|
||||
"author": "tadashi-aikawa",
|
||||
|
2
.obsidian/plugins/vertical-tabs-view/main.js
vendored
2
.obsidian/plugins/vertical-tabs-view/main.js
vendored
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "vertical-tabs-view",
|
||||
"name": "Vertical Tabs View",
|
||||
"version": "2.4.5",
|
||||
"version": "2.6.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "Provides a vertical tabs view.",
|
||||
"author": "hdykokd",
|
||||
|
36
.obsidian/plugins/vertical-tabs-view/styles.css
vendored
36
.obsidian/plugins/vertical-tabs-view/styles.css
vendored
@ -1,6 +1,6 @@
|
||||
#vertical-tabs-view-content {
|
||||
padding: 0;
|
||||
margin: 2px;
|
||||
/* margin: 2px; */
|
||||
}
|
||||
|
||||
ul.vertical-tabs-view-list {
|
||||
@ -19,9 +19,9 @@ ul.vertical-tabs-view-list {
|
||||
color: var(--tab-text-color);
|
||||
font-size: var(--tab-font-size);
|
||||
font-weight: var(--tab-font-weight);
|
||||
padding: 2px 0 2px 2px;
|
||||
padding: 2px;
|
||||
width: 100%;
|
||||
min-height: 2.5rem;
|
||||
min-height: 2.5em;
|
||||
border-radius: var(--tab-radius);
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
@ -31,6 +31,10 @@ ul.vertical-tabs-view-list {
|
||||
color: var(--tab-text-color-focused-active-current);
|
||||
background-color: var(--tab-background-active);
|
||||
}
|
||||
.vertical-tabs-view-list li.vertical-tabs-view-list-item.selected {
|
||||
border: 2px dashed var(--tab-text-color-focused-highlighted);
|
||||
margin: 1px 0;
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li.vertical-tabs-view-list-item:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
@ -76,24 +80,23 @@ ul.vertical-tabs-view-list {
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-right-container {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/* icons */
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-icon {
|
||||
color: var(--tab-text-color);
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-icon._hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-tab-icon {
|
||||
margin: 0 0.25em;
|
||||
margin: 0 0.5em 0 0.25em;
|
||||
min-width: var(--icon-s);
|
||||
--icon-size: var(--icon-s);
|
||||
--icon-stroke: var(--icon-s-stroke-width);
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-close-btn,
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn {
|
||||
cursor: pointer;
|
||||
--icon-size: var(--icon-l);
|
||||
--icon-stroke: var(--icon-l-stroke-width);
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-close-btn:hover,
|
||||
@ -107,8 +110,19 @@ ul.vertical-tabs-view-list {
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn {
|
||||
margin-right: 0.5em;
|
||||
margin-top: 0.5em;
|
||||
margin-right: 0.25em;
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-pin-btn-pin {
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list-item-close-btn > svg,
|
||||
.vertical-tabs-view-list-item-pin-btn > svg,
|
||||
.vertical-tabs-view-list-item-tab-icon > svg {
|
||||
width: 1.5em;
|
||||
height: 1.5em;
|
||||
stroke-width: var(--icon-s-stroke-width);
|
||||
}
|
||||
|
||||
.vertical-tabs-view-list li .vertical-tabs-view-list-item-name-container {
|
||||
|
6
.obsidian/plugins/zotlit/data.json
vendored
6
.obsidian/plugins/zotlit/data.json
vendored
@ -4,7 +4,7 @@
|
||||
"showCitekeyInSuggester": true,
|
||||
"literatureNoteFolder": "sources/zotero",
|
||||
"enableServer": true,
|
||||
"serverPort": 9092,
|
||||
"serverPort": 65500,
|
||||
"serverHostname": "127.0.0.1",
|
||||
"template": {
|
||||
"folder": "templates/zotero",
|
||||
@ -21,7 +21,7 @@
|
||||
],
|
||||
"autoRefresh": true,
|
||||
"zoteroDataDir": "/Users/oscarplaisant/Zotero",
|
||||
"citationLibrary": 2,
|
||||
"imgExcerptImport": "symlink",
|
||||
"citationLibrary": 1,
|
||||
"imgExcerptImport": "copy",
|
||||
"imgExcerptPath": "images/zotero"
|
||||
}
|
9
.obsidian/quickshare.json
vendored
9
.obsidian/quickshare.json
vendored
@ -106,5 +106,14 @@
|
||||
"secret_token": "RnqzMo5Pr+grZeAT3zesWauXIe0mVR07uQFzkltY1Oo=",
|
||||
"note_id": "clprk0jwb705901mwau87lhdw",
|
||||
"basename": "projet gestion et simulation d'entreprise"
|
||||
},
|
||||
"organisation politique par projets.md": {
|
||||
"shared_datetime": "2024-04-03T22:16:35.385Z",
|
||||
"updated_datetime": null,
|
||||
"expire_datetime": "2024-05-03T22:16:34.994Z",
|
||||
"view_url": "https://noteshare.space/note/clukdb5jk876401mwwzlpcsnm#018Ax/MYCtniwkBnROBLYuMydA69QEi8S7EGobM7dVk",
|
||||
"secret_token": "7xdS2ZRKbc1Jz4p8/VEn1jqPhT4RmqUSW8jNW0OIBTw=",
|
||||
"note_id": "clukdb5jk876401mwwzlpcsnm",
|
||||
"basename": "organisation politique par projets"
|
||||
}
|
||||
}
|
19
.obsidian/snippets/custom_callouts.css
vendored
19
.obsidian/snippets/custom_callouts.css
vendored
@ -99,4 +99,23 @@
|
||||
}
|
||||
|
||||
|
||||
.callout[data-callout="zotero"] {
|
||||
--callout-icon: align-left;
|
||||
--callout-color: 38, 38, 38;
|
||||
background-color: transparent;
|
||||
border: 1pt solid;
|
||||
/* border-color: var(--background-modifier-border); */
|
||||
border-color: rgb(80, 80, 80);
|
||||
}
|
||||
.callout[data-callout="zotero"] > .callout-title {
|
||||
border-bottom: 1pt solid rgb(80, 80, 80);
|
||||
filter: brightness(0.9) saturate(2);
|
||||
}
|
||||
.callout[data-callout="zotero"] > .callout-title > .callout-icon > .svg-icon {
|
||||
/* display: none; /1* hide icon in favor of the colored one *1/ */
|
||||
/* color: rgb(90, 90, 90); */
|
||||
color: var(--text-normal);
|
||||
stroke-width: 3;
|
||||
}
|
||||
|
||||
|
||||
|
3
.obsidian/types.json
vendored
3
.obsidian/types.json
vendored
@ -22,6 +22,7 @@
|
||||
"excalidraw-css": "text",
|
||||
"excalidraw-autoexport": "text",
|
||||
"excalidraw-iframe-theme": "text",
|
||||
"excalidraw-open-md": "checkbox"
|
||||
"excalidraw-open-md": "checkbox",
|
||||
"excalidraw-export-embed-scene": "checkbox"
|
||||
}
|
||||
}
|
0
.trash/Untitled 1 3.md
Normal file
0
.trash/Untitled 1 3.md
Normal file
0
.trash/Untitled 1 4.md
Normal file
0
.trash/Untitled 1 4.md
Normal file
6
.trash/Untitled 1.md
Normal file
6
.trash/Untitled 1.md
Normal file
@ -0,0 +1,6 @@
|
||||
|
||||
![[qualification]]
|
||||
|
||||
![[compétence]]
|
||||
|
||||
|
137
.trash/check_text.md
Normal file
137
.trash/check_text.md
Normal file
@ -0,0 +1,137 @@
|
||||
|
||||
### Compromis entre expressivité et analysabilité
|
||||
|
||||
Plus un langage est expressif, plus il est complexe de l'analyser mathématiquement.
|
||||
Plus un langage est puissant expressivement au sens formel, plus il devient difficile (et impossible) de démontrer certains théorèmes sur ce formalisme [^29].
|
||||
Cela est vrai également pour l'expressivité au sens pratique : "le fait d'éviter certaines techniques peut permettre de rendre plus aisée la démonstration de théorèmes sur la correction d'un programme -- ou simplement la compréhension de son fonctionnement -- sans limiter la généralité du langage de programmation." [@ParadigmeProgrammation2023].
|
||||
|
||||
#### Exemple de compromis : automates et grammaires
|
||||
|
||||
Les automates à pile et les machines de Turing forment un exemple de compromis entre analysabilité et expressivité formelle.
|
||||
Les automates à pile reconnaissent les langages non contextuels [^31]. Les machines de Turing reconnaissent les langages contextuels [^32].
|
||||
Or, les langages non contextuels sont strictement inclus dans les langages récursivement énumérables [^33] .
|
||||
On peut donc conclure que les machines de Turing ont un pouvoir d'expression formel supérieur à celui des automates à pile.
|
||||
|
||||
Cependant, si on pose le problème de l'appartenance d'un mot à un langage donné.
|
||||
Ce problème est décidable pour tous les langages non contextuels [^34].
|
||||
Pourtant, ce problème est indécidable pour les machines de Turing [^35].
|
||||
|
||||
On voit donc que les machines de Turing sont un formalisme plus expressif (certains concepts exprimés par des machines de Turing ne sont pas exprimables par des automates à pile) mais moins analysable (certains problèmes sont décidables sur les automates à pile, mais pas sur les machines de Turing).
|
||||
|
||||
#### Exemple de compromis : le non-déterminisme
|
||||
|
||||
Un langage de programmation est dit non déterministe lorsque son exécution ne dépend pas uniquement des spécifications du programme, c'est-à-dire que les spécifications laissent un choix lors de l'exécution du programme [^38]. Le non-déterminisme est donc problématique, puisqu'il peut amener à créer des programmes dont le résultat est inattendu ou incertain : il rend les programmes moins analysables.
|
||||
Ce pendant, certains paradigmes qui peuvent exprimer du non-déterminisme restent utiles pour modéliser certains problèmes (par exemple, la programmation concurrente, voir [[Remplissage du plan de L3#Programmation concurrente]]) [^39].
|
||||
|
||||
Une critique
|
||||
|
||||
C'est pourquoi certaines fonctionnalités, certains paradigmes, comme le non-déterminisme et les paradigmes qui l'impliquent, devraient être utilisés seulement si cela est nécessaire [^30].
|
||||
|
||||
### Implications sur la diversité des paradigmes
|
||||
|
||||
Nous avons montré qu'il est nécessaire de faire des choix dans les concepts qu'implémente un paradigme, afin de faire un compromis entre analysabilité et expressivité.
|
||||
Cela donne une justification à l'existence de différents paradigmes : l'implémentation ou non de certains concepts à de réelles influences, non seulement sur l'expressivité des langages, mais également sur les propriétés de celui-ci (comme le déterminisme).
|
||||
Il est donc important de pouvoir choisir quels concepts utiliser selon les situations, afin de trouver le meilleur compromis entre expressivité et analysabilité.
|
||||
|
||||
# Paradigmes dans l'apprentissage
|
||||
## Importance des paradigmes dans l'apprentissage
|
||||
|
||||
Les paradigmes de programmation jouent un rôle dans l'apprentissage d'un langage. Théoriquement les mêmes idées pourraient être représentées indépendamment du paradigme, mais le paradigme fournit un modèle de pensée, une approche, un cadre. Ces modèles de pensée sont utiles pour apprendre, car le fait d'avoir en tête des modèles, des idées générales sur la façon d'envisager un programme, permet d'apprendre plus aisément [^a]. Les paradigmes sont encore plus importants du point de vue de l'enseignant, qui doit identifier clairement les paradigmes qu'il enseigne pour pouvoir transmettre efficacement les concepts de la programmation [^b].
|
||||
Le fait d'apprendre des paradigmes, des modèles mentaux, permet également de se détacher du langage de programmation particulier, et d'acquérir des connaissances générales, qui restent valides même lorsque l'on change de langage. Maîtriser un paradigme est utile pour tous les langages qui implémentent ce paradigme[^b].
|
||||
|
||||
## Avantages de la diversité
|
||||
|
||||
On peut se demander s'il est intéressant d'apprendre plusieurs paradigmes au travers d'un ou plusieurs langages de programmation, si cette diversité des paradigmes est utile pour l'apprentissage.
|
||||
|
||||
Au fil du temps, à force de lire et travailler avec du code, nos compétences en programmation augment[^f] et l'on mémorise beaucoup de cas qui nous aideront à résoudre des problèmes plus intuitivement et à construire une bibliothèque mentale de modèles[^c] que n'aura pas un développeur débutant. Les sciences cognitives montrent que la différence principale entre un expert et un débutant n'est pas sa capacité à raisonner, mais plutôt à reconnaître des motifs qu'il a déjà vus [^g]. Cela montre l'importance de se construire une telle "bibliothèque mentale de modèles".
|
||||
|
||||
## Conclusion sur les paradigmes pour l'apprentissage
|
||||
|
||||
Dans le contexte de l'apprentissage de la programmation, les paradigmes présentent plusieurs intérêts :
|
||||
|
||||
- fournir des modèles mentaux à ceux qui apprennent, afin de mieux envisager la programmation
|
||||
- fournir des abstractions et des connaissances utiles indépendamment du langage.
|
||||
- fournir des abstractions, des motifs reconnaissables, qui finissent par former une "bibliothèque mentale de modèles"
|
||||
|
||||
# Paradigmes pour la résolution de problèmes
|
||||
|
||||
## Les paradigmes fournissent un cadre pour la pensée
|
||||
|
||||
La définition même de paradigme explique déjà en partie l'existence des différents paradigmes : un paradigme donne une façon d'envisager la programmation. Comme il existe de nombreux types de problèmes, de nombreuses situations à modéliser, il semble normal que de nombreux paradigmes existent pour donner les concepts et outils nécessaires afin d'implémenter efficacement des solutions à ces problèmes.
|
||||
|
||||
L'existence de nombreux paradigmes de programmation peut donc être justifiée par diversité des problèmes rencontrés : chaque paradigme permet de répondre à une classe de problèmes précis. Par exemple, la programmation concurrente (voir : [[Remplissage du plan de L3#Programmation concurrente]]) permet de modéliser des situations dans lesquelles deux événements indépendants évoluent en même temps et indépendamment.
|
||||
|
||||
L'efficacité peut ici avoir deux sens : l'efficacité pour l'humain, c'est-à-dire l'aisance avec laquelle le développeur pourra implémenter une solution à son problème ; et l'efficacité lors de l'exécution (efficacité pour la machine), qui dépend du temps et de l'espace mémoire nécessaires à l'exécution du programme.
|
||||
La nécessité de faire des compromis entre expressivité et analysabilité décris plus haut (voir [[Remplissage du plan de L3#compromis entre expressivité et analysabilité]]) peut avoir pour conséquence la nécessité de faire des compromis entre efficacité pour l'humain et efficacité pour la machine. En effet, une plus grande efficacité pour l'humain peut être atteinte par une plus grande expressivité (théorique, mais surtout pratique) ; or, nous avons vu que cela pouvait mener à une moins grande analysabilité du langage, ce qui implique notamment que moins d'optimisation seront possibles lors de l'exécution d'un programme.
|
||||
|
||||
## Avantages des langages multiparadigmes
|
||||
|
||||
Lors de la résolution de problèmes, il peut être utile d'avoir de nombreux modèles à disposition, afin de pouvoir choisir celui qui correspond le mieux au problème actuel. Si ces modèles sont directement implémentés dans notre langage de programmation (s'il supporte les bons paradigmes), la résolution de notre problème sera beaucoup plus aisée. "A language should ideally support many concepts in a well-factored way, so that the programmer can choose the right concepts whenever they are needed without being encumbered by the others." : Un langage devrait, dans l'idéal, intégrer de manière cohérente un grand nombre de paradigmes, pour permettre au développeur de choisir quels concepts il souhaite utiliser, sans être encombré par les autres [@royProgrammingParadigmsDummies p.10].
|
||||
|
||||
Certains langages ne nécessitent pas un grand pouvoir d'expression, car ils répondent à un besoin spécifique (voir [[Remplissage du plan de L3#Expressivité au sens formel]]). Cependant, la plupart des langages ont pour but de pouvoir résoudre une grande diversité de problèmes, et il est donc nécessaire qu'ils permettent de décrire et manipuler aisément un grand nombre de concepts.
|
||||
|
||||
|
||||
## créer un paradigme pour chaque type de problème
|
||||
|
||||
Le principe de l'extension créative (de l'anglais *creative extension principle*) est une méthode qui permet de créer de nouveaux paradigmes.
|
||||
Elle permet de trouver et d'organiser des concepts utiles à la programmation, pour réellement former un paradigme [^42].
|
||||
|
||||
L'extension créative part de la constatation qu'un problème nécessite des modifications envahissantes (des modifications dans l'ensemble des contextes du programme) pour être résolu.
|
||||
Il est alors nécessaire de comprendre cette difficulté (pourquoi cette modification devient-elle envahissante ?), et de trouver un concept plus général, plus fondamental, qui résout cette difficulté, c'est-à-dire qui permet d'éliminer ces modifications envahissantes pour retrouver un programme simple [^43].
|
||||
|
||||
Par exemple, si l'on cherche à modéliser plusieurs activités indépendantes dans un langage purement impératif, il faut implémenter soi-même plusieurs piles d'exécution, ainsi qu'un ordonnanceur... Les modifications impliquées par ce problème sont envahissantes. Cette complexité peut être évitée si notre langage implémente un concept (et donc un paradigme) : la concurrence (voir [[Remplissage du plan de L3#Programmation concurrente]]) [^44].
|
||||
La même logique peut s'appliquer à la gestion d'erreurs dans un programme. Si l'on veut être capable de gérer les erreurs dans un programme, il faut ajouter des conditions dans le corps de chaque fonction, pour que chacune retourne le code d'erreur jusqu'à l'appel initial. Les modifications impliquées par ce problème sont envahissantes. Cette complexité peut être évitée si notre langage implémente un concept (et donc un paradigme) : les exceptions [^45].
|
||||
|
||||
Floyd, dans son papier "The Paradigms of Programming", explique une méthode similaire qui lui permet de créer de nouveaux paradigmes : lorsqu'il résout un problème complexe, il essaie d'extraire l'essence de sa solution, de la simplifier pour obtenir une solution aussi directe que possible. Il cherche ensuite une règle générale qui lui permettrait de résoudre des problèmes semblables. Cette règle, s'il la trouve, peut être le concept fondateur d'un nouveau paradigme [^46].
|
||||
|
||||
|
||||
On peut donc voir chaque paradigme comme la réponse à un problème particulier, à une situation qui serait complexe à modéliser sans ce paradigme.
|
||||
|
||||
Il serait même pertinent, de ce point de vue, d'encourager la création de nouveaux paradigmes dès que l'on trouve des problèmes nouveaux qui sont complexes à résoudre avec les paradigmes existants.
|
||||
|
||||
## Les paradigmes comme outil pour la pensée
|
||||
|
||||
Connaître un système de calcul ne permet pas d'immédiatement tout connaître sur son champ d'expressivité
|
||||
Notamment :
|
||||
- connaître un système de calcul ne permet pas (toujours) de connaître l'ensemble des problèmes décidables de ce système
|
||||
- En particulier, les systèmes universels (Turing-complets) : il existe toujours des problèmes indécidables dans de tels modèles (problème de l'arrêt)
|
||||
- voir [[Remplissage du plan de L3#compromis expressivité vs analysabilité]]
|
||||
|
||||
Connaître un langage de programmation ne permet pas de savoir immédiatement comment résoudre tous les problèmes que l'on risque de rencontrer. Par exemple, la syntaxe des langages dérivés de LISP est très simple, et peut être apprise en peu de temps. Cependant, connaître la syntaxe complète et le fonctionnement d'un langage ne permettra pas de résoudre tous les problèmes : il est également nécessaire d'être capable de "faire le lien" entre un problème et son expression dans un langage de programmation.
|
||||
C'est ce lien que les paradigmes de programmation permettent de faire. Plus précisément, les paradigmes permettent de faire le lien entre un problème et une solution théorique, un modèle conceptuel qui permet ensuite d'implémenter une solution.
|
||||
|
||||
On peut notamment opposer les paradigmes et les méthodes. Une méthode permet de convertir en programme des problèmes déjà reconnus dans le cadre d'un paradigme, d'un écosystème. La méthode ne s'occupe pas de fournir une solution à un problème, ni un modèle pour ce problème, mais permet de convertir cette solution conceptuelle, ce modèle abstrait, en programme dans un langage particulier.
|
||||
Au contraire, les paradigmes explicitent plutôt quelle vision le développeur doit avoir, et quels concepts il peut utiliser pour construire son modèle du problème. Un paradigme donne donc un cadre pour modéliser un problème donné.
|
||||
|
||||
La figure (*figref*) montre les différentes étapes lorsque l'on est confronté à un problème :
|
||||
1. **Résoudre** le problème : trouver une idée de solution, et construire conceptuellement un modèle qui permet de résoudre notre problème. Ce sont les paradigmes qui nous permettent de faire cela, en donnant une vision sur ce qu'est un programme, et en fournissant des concepts utiles.
|
||||
2. **Designer** le programme : implémenter concrètement le programme dans un langage de programmation. Ce sont des méthodes, par exemple des design patterns, qui guide le développeur dans cette étape, en lui permettant de convertir des problèmes reconnus en programme dans un langage.
|
||||
3. **Exécuter** le programme : cette étape est réalisée par un compilateur ou un interpréteur.
|
||||
4. **Interpréter** les résultats : Pour que les données de sortie du programme deviennent véritablement de la connaissance, il faut leur attacher du sens et un contexte. Il faut pour cela qu'un être humain les interprète. Les statistiques fournissent notamment des outils pour interpréter des séries de données.
|
||||
|
||||
|
||||
![[paradigme_methode_execution_interprétation.excalidraw|300]]
|
||||
|
||||
Les paradigmes de programmations peuvent donc être vus comme un outil pour la pensée, qui permet de traduire un problème en une pré-solution, en un modèle conceptuel, en fournissant une vision sur la programmation, des modèles mentaux et des concepts utiles.
|
||||
|
||||
# Conclusion
|
||||
|
||||
En fournissant un modèle pour penser les programmes informatiques, les paradigmes de programmation permettent à la fois d'améliorer l'apprentissage et la résolution de problèmes.
|
||||
En effet, l'abstraction fournie par les langages est utile à l'enseignement de la programmation (voir : [[Remplissage du plan de L3#Paradigmes dans l'apprentissages]]).
|
||||
Les divers concepts fournis par les différents paradigmes permettent également de modéliser au mieux les différents problèmes. Pour un programmeur, avoir à sa disposition un grand nombre de paradigmes permet alors de résoudre plus simplement une plus grande variété de problèmes (voir : [[Remplissage du plan de L3#Paradigmes pour la résolution de problèmes#Les paradigmes fournissent un cadre pour la pensée]].
|
||||
On comprend notamment, dans ce contexte, l'intérêt particulier des langages multiparadigmes, qui laissent au développeur le choix d'utiliser ou non certains concepts selon ses besoins, mais sans avoir à changer de langage de programmation (voir : [[Remplissage du plan de L3#Paradigmes pour la résolution de problèmes#avantages des langages multi-paradigme]]).
|
||||
On peut par ailleurs voir les paradigmes comme résultant de la nécessité de résoudre certaines classes de problèmes. Un paradigme serait alors à créer pour chaque nouveau type de problème (voir : [[Remplissage du plan de L3#Paradigmes pour la résolution de problèmes#créer un paradigme pour chaque type de problème]]).
|
||||
Finalement, on peut comprendre le rôle général des paradigmes dans la résolution de problèmes : permettre la traduction des spécifications et enjeux d'un problème en un modèle conceptuel, en une idée de solution qui est entendable par le développeur (voir : [[Remplissage du plan de L3#Paradigmes pour la résolution de problèmes#Les paradigmes comme outil pour la pensée]] ).
|
||||
|
||||
Toutes ces raisons justifient l'existence des nombreux paradigmes de programmation, et encouragent même à en créer de nouveaux.
|
||||
|
||||
# Annexes
|
||||
## contre la distinction entre les paradigmes
|
||||
|
||||
La distinction entre les différents paradigmes n'est pas toujours claire : beaucoup de langages sont [[Remplissage du plan de L3#les langages multi-paradigmes|multi-paradigmes]], et certains paradigmes peuvent être utilisés dans presque tous les langages (par exemple, la programmation structurée *ref*)
|
||||
|
||||
Certains auteurs considèrent que les paradigmes ne sont pas fondamentalement différents (voir : [[Remplissage du plan de L3#Au sens formel|puissance d'expression > au sens formel]]), mais plutôt que les paradigmes sont des courants de pensée, des traditions dans la programmation, rattachées à des communautés [^36].
|
||||
|
||||
Greg Michaelson critique la distinction des paradigmes, en expliquant que, lorsqu'on les analyse profondément, les paradigmes sont en fait proches entre eux [^37].
|
||||
|
||||
|
0
.trash/propriété lucrative.md
Normal file
0
.trash/propriété lucrative.md
Normal file
27
.trash/qualifications et compétences.canvas
Normal file
27
.trash/qualifications et compétences.canvas
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"nodes":[
|
||||
{"id":"adb736f7a84aff60","type":"file","file":"qualification.md","x":582,"y":86,"width":600,"height":197},
|
||||
{"id":"9806e04650f75192","type":"file","file":"qualification.md","x":225,"y":796,"width":532,"height":199},
|
||||
{"id":"079d91b8f1b75b2d","type":"file","file":"qualification.md","x":231,"y":1082,"width":520,"height":200},
|
||||
{"id":"b8baf000c9211f70","type":"file","file":"qualification.md","x":-379,"y":796,"width":563,"height":228},
|
||||
{"id":"f75f9ed3b7eeee88","type":"file","file":"qualification.md","x":582,"y":321,"width":771,"height":401},
|
||||
{"id":"761607568bc9f444","type":"file","file":"compétence vs qualification.md","x":-749,"y":-63,"width":581,"height":298},
|
||||
{"id":"6815787d0bea6473","type":"file","file":"compétence.md","x":-1347,"y":185,"width":522,"height":129},
|
||||
{"id":"a33ea58f943d7c0d","type":"file","file":"compétence.md","x":-1809,"y":409,"width":723,"height":372},
|
||||
{"id":"6de3dc5cf6eaf3e3","x":-1020,"y":749,"width":543,"height":433,"type":"file","file":"compétence vs qualification.md"},
|
||||
{"id":"53befda652af2474","x":-477,"y":412,"width":469,"height":219,"type":"text","text":"![[compétence vs qualification#^fa0278]]"},
|
||||
{"id":"e5bb9ea928c0a11b","x":-61,"y":147,"width":489,"height":206,"type":"text","text":"![[qualification#^definition]]"}
|
||||
],
|
||||
"edges":[
|
||||
{"id":"107853eeccaebf84","fromNode":"9806e04650f75192","fromSide":"bottom","toNode":"079d91b8f1b75b2d","toSide":"top"},
|
||||
{"id":"029bc07b1c48b753","fromNode":"6815787d0bea6473","fromSide":"left","toNode":"a33ea58f943d7c0d","toSide":"top"},
|
||||
{"id":"276b495e5a57ce6c","fromNode":"761607568bc9f444","fromSide":"left","toNode":"6815787d0bea6473","toSide":"top"},
|
||||
{"id":"bae961035ba83627","fromNode":"761607568bc9f444","fromSide":"bottom","toNode":"6de3dc5cf6eaf3e3","toSide":"top"},
|
||||
{"id":"94de53a02ae32d42","fromNode":"761607568bc9f444","fromSide":"bottom","toNode":"53befda652af2474","toSide":"top"},
|
||||
{"id":"441ee0eebe03627d","fromNode":"761607568bc9f444","fromSide":"right","toNode":"e5bb9ea928c0a11b","toSide":"top"},
|
||||
{"id":"02a6c9ebbada5915","fromNode":"e5bb9ea928c0a11b","fromSide":"right","toNode":"adb736f7a84aff60","toSide":"left"},
|
||||
{"id":"fcc712dbecfa4aec","fromNode":"e5bb9ea928c0a11b","fromSide":"right","toNode":"f75f9ed3b7eeee88","toSide":"left"},
|
||||
{"id":"4b156c77ab4bf053","fromNode":"e5bb9ea928c0a11b","fromSide":"bottom","toNode":"b8baf000c9211f70","toSide":"top"},
|
||||
{"id":"1dfa0d311e73c7ad","fromNode":"e5bb9ea928c0a11b","fromSide":"bottom","toNode":"9806e04650f75192","toSide":"top"}
|
||||
]
|
||||
}
|
@ -3,7 +3,7 @@ alias: [ "ENCODE", "framework ENCOE" ]
|
||||
---
|
||||
up::[[prise de notes]]
|
||||
#PKM #review
|
||||
|
||||
|
||||
|
||||
Input
|
||||
$\downarrow$
|
||||
|
@ -12,4 +12,5 @@ sibling::[[Ergonomie des IHM Principes ergonomiques]]
|
||||
|
||||
- **Apprenabilité**: Facilité de prise en main d'une application. Découverte *intuitive* de ses fonctionnalités
|
||||
- **Flexibilité**: Proposition de modes d'interactions variés et/ou *adaptés* aux besoins et préférences de l'utilisateur, mais aussi au contexte courant d'usage
|
||||
- **Robustesse**: Facilité à accomplir les tâches désirées sur l'application: sûreté de fonctionnement mais surtout guidage de l'utilisateur pour lui éviter des erreurs, ou de se retrouver perdu.
|
||||
- **Robustesse**: Facilité à accomplir les tâches désirées sur l'application: sûreté de fonctionnement mais surtout guidage de l'utilisateur pour lui éviter des erreurs, ou de se retrouver perdu.
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
|
||||
|
||||
|
||||
%%
|
||||
# Drawing
|
||||
```json
|
||||
{"type":"excalidraw","version":2,"source":"https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.17","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}
|
||||
```
|
||||
%%
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
|
||||
|
||||
|
||||
%%
|
||||
# Drawing
|
||||
```json
|
||||
{"type":"excalidraw","version":2,"source":"https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/1.9.19","elements":[],"appState":{"theme":"dark","gridSize":null,"viewBackgroundColor":"#ffffff"}}
|
||||
```
|
||||
%%
|
@ -0,0 +1,706 @@
|
||||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
|
||||
|
||||
|
||||
# Text Elements
|
||||
+H ^iVNpUaK6
|
||||
|
||||
-H ^dNCi5YbQ
|
||||
|
||||
+B ^Ho0yzVE9
|
||||
|
||||
-B ^6arC6H6X
|
||||
|
||||
%%
|
||||
# Drawing
|
||||
```json
|
||||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.1",
|
||||
"elements": [
|
||||
{
|
||||
"type": "line",
|
||||
"version": 679,
|
||||
"versionNonce": 1840078315,
|
||||
"isDeleted": false,
|
||||
"id": "0bHufieUtIbP8MweJ5GEr",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -11.444451332173912,
|
||||
"y": 5.594470762605852,
|
||||
"strokeColor": "#1971c2",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 268.97780694166204,
|
||||
"height": 171.76599338675285,
|
||||
"seed": 298638789,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
15.410666348991981,
|
||||
-10.273777565994408
|
||||
],
|
||||
[
|
||||
28.619808933841796,
|
||||
-24.950602660272068
|
||||
],
|
||||
[
|
||||
38.159745245122394,
|
||||
-43.29663402811917
|
||||
],
|
||||
[
|
||||
53.57041159411392,
|
||||
-73.38412547138844
|
||||
],
|
||||
[
|
||||
64.57803041482202,
|
||||
-95.39936311280496
|
||||
],
|
||||
[
|
||||
81.45637927324151,
|
||||
-126.95453706550197
|
||||
],
|
||||
[
|
||||
93.93168060337757,
|
||||
-143.8328859239213
|
||||
],
|
||||
[
|
||||
109.34234695236864,
|
||||
-156.30818725405734
|
||||
],
|
||||
[
|
||||
132.09142584849906,
|
||||
-163.64659980119617
|
||||
],
|
||||
[
|
||||
160.71123478234085,
|
||||
-168.78348858419338
|
||||
],
|
||||
[
|
||||
192.26640873503766,
|
||||
-170.98501234833503
|
||||
],
|
||||
[
|
||||
268.97780694166204,
|
||||
-171.76599338675285
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 502,
|
||||
"versionNonce": 349178437,
|
||||
"isDeleted": false,
|
||||
"id": "njZ3ODITPNQBtryQ1ngIT",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -290.7769462833105,
|
||||
"y": 6.052382495166512,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 592.308775379121,
|
||||
"height": 0,
|
||||
"seed": 1045880101,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
592.308775379121,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 938,
|
||||
"versionNonce": 1740662923,
|
||||
"isDeleted": false,
|
||||
"id": "sw7Dj2oi1ITU3_lXX1J5y",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -280.39816279918773,
|
||||
"y": 185.84928906257028,
|
||||
"strokeColor": "#1971c2",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 511.3786113752635,
|
||||
"height": 352.7652638769711,
|
||||
"seed": 2083123333,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
90.15373116949422,
|
||||
-1.2553028690206247
|
||||
],
|
||||
[
|
||||
162.07017413145468,
|
||||
-3.4568266331622794
|
||||
],
|
||||
[
|
||||
206.83449066900175,
|
||||
-5.658350397303934
|
||||
],
|
||||
[
|
||||
246.4619184235512,
|
||||
-12.262921689728898
|
||||
],
|
||||
[
|
||||
269.9448385743958,
|
||||
-20.335175491581595
|
||||
],
|
||||
[
|
||||
287.5570286875286,
|
||||
-33.54431807643152
|
||||
],
|
||||
[
|
||||
303.70153629123433,
|
||||
-53.358031953706416
|
||||
],
|
||||
[
|
||||
315.44299636665664,
|
||||
-78.30863461397843
|
||||
],
|
||||
[
|
||||
327.9182976967927,
|
||||
-115.00069734967263
|
||||
],
|
||||
[
|
||||
345.5304878099255,
|
||||
-184.71561654749166
|
||||
],
|
||||
[
|
||||
361.6749954136312,
|
||||
-246.3582819434579
|
||||
],
|
||||
[
|
||||
371.9487729796256,
|
||||
-283.0503446791521
|
||||
],
|
||||
[
|
||||
382.2225505456199,
|
||||
-308.00094733942416
|
||||
],
|
||||
[
|
||||
391.7624868569005,
|
||||
-323.41161368841574
|
||||
],
|
||||
[
|
||||
404.97162944175034,
|
||||
-334.41923250912396
|
||||
],
|
||||
[
|
||||
424.7853433190253,
|
||||
-345.4268513298323
|
||||
],
|
||||
[
|
||||
442.3975334321585,
|
||||
-349.82989885811554
|
||||
],
|
||||
[
|
||||
462.2112473094335,
|
||||
-352.0314226222572
|
||||
],
|
||||
[
|
||||
487.1618499697056,
|
||||
-352.76526387697106
|
||||
],
|
||||
[
|
||||
511.3786113752635,
|
||||
-352.7652638769711
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 966,
|
||||
"versionNonce": 1094744485,
|
||||
"isDeleted": false,
|
||||
"id": "10DyQQS-xMvGnyghQXBnA",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 256.8027392314141,
|
||||
"y": -165.9102012015495,
|
||||
"strokeColor": "#1971c2",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 525.1244508612563,
|
||||
"height": 351.50996100795044,
|
||||
"seed": 1761843173,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-97.00489236258545,
|
||||
-0.27193235813723504
|
||||
],
|
||||
[
|
||||
-156.44603399440985,
|
||||
1.9295914060044197
|
||||
],
|
||||
[
|
||||
-201.21035053195646,
|
||||
4.864956424859997
|
||||
],
|
||||
[
|
||||
-244.50698456007558,
|
||||
12.937210226712693
|
||||
],
|
||||
[
|
||||
-277.52984102220034,
|
||||
23.210987792707044
|
||||
],
|
||||
[
|
||||
-298.81123740890325,
|
||||
45.22622543412356
|
||||
],
|
||||
[
|
||||
-310.5526974843251,
|
||||
69.44298683968174
|
||||
],
|
||||
[
|
||||
-321.56031630503367,
|
||||
103.93352581123429
|
||||
],
|
||||
[
|
||||
-336.23714139931144,
|
||||
150.89936611292285
|
||||
],
|
||||
[
|
||||
-342.8417126917361,
|
||||
187.59142884861706
|
||||
],
|
||||
[
|
||||
-352.3816490030167,
|
||||
224.28349158431126
|
||||
],
|
||||
[
|
||||
-362.65542656901107,
|
||||
260.9755543200055
|
||||
],
|
||||
[
|
||||
-370.7276803708637,
|
||||
287.39383948970533
|
||||
],
|
||||
[
|
||||
-382.469140446286,
|
||||
309.4090771311218
|
||||
],
|
||||
[
|
||||
-397.87980679527755,
|
||||
330.69047351782444
|
||||
],
|
||||
[
|
||||
-419.16120318198,
|
||||
341.6980923385327
|
||||
],
|
||||
[
|
||||
-452.18405964410476,
|
||||
351.2380286498132
|
||||
],
|
||||
[
|
||||
-481.5377098326603,
|
||||
349.77034614038547
|
||||
],
|
||||
[
|
||||
-525.1244508612563,
|
||||
351.0964422228751
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 355,
|
||||
"versionNonce": 1280909099,
|
||||
"isDeleted": false,
|
||||
"id": "iVNpUaK6",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 252.2134762872563,
|
||||
"y": 16.897286761263786,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 23.4375,
|
||||
"height": 24,
|
||||
"seed": 250696517,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "+H",
|
||||
"rawText": "+H",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "+H",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 456,
|
||||
"versionNonce": 413924613,
|
||||
"isDeleted": false,
|
||||
"id": "dNCi5YbQ",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -272.5408384098944,
|
||||
"y": 22.210032095780207,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 23.4375,
|
||||
"height": 24,
|
||||
"seed": 1515233957,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "-H",
|
||||
"rawText": "-H",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "-H",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 314,
|
||||
"versionNonce": 367133131,
|
||||
"isDeleted": false,
|
||||
"id": "Ho0yzVE9",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 14.497278435477028,
|
||||
"y": -202.14035504066726,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 23.4375,
|
||||
"height": 24,
|
||||
"seed": 1338967557,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "+B",
|
||||
"rawText": "+B",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "+B",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 378,
|
||||
"versionNonce": 848303205,
|
||||
"isDeleted": false,
|
||||
"id": "6arC6H6X",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 9.360389652479853,
|
||||
"y": 185.32782744826363,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 23.4375,
|
||||
"height": 24,
|
||||
"seed": 40500581,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "-B",
|
||||
"rawText": "-B",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "-B",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 398,
|
||||
"versionNonce": 225808491,
|
||||
"isDeleted": false,
|
||||
"id": "mkbFKlWN1eJxiT-VhuKGp",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -13.543388408259261,
|
||||
"y": 214.4908804913216,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 419.0233564416278,
|
||||
"seed": 1232013509,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-419.0233564416278
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 458,
|
||||
"versionNonce": 1522155461,
|
||||
"isDeleted": false,
|
||||
"id": "0MiOhxANkJeiBRPVak08n",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "dashed",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 169.75277215592337,
|
||||
"y": -218.7811693790394,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 446.94030816313347,
|
||||
"seed": 914073637,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
446.94030816313347
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 549,
|
||||
"versionNonce": 1960725259,
|
||||
"isDeleted": false,
|
||||
"id": "F3l5bUmud2aNLO9sJmun4",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "dashed",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -197.61361929056716,
|
||||
"y": -218.3206459644274,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 446.94030816313347,
|
||||
"seed": 1266506629,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250324582,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
446.94030816313347
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"appState": {
|
||||
"theme": "dark",
|
||||
"viewBackgroundColor": "#ffffff",
|
||||
"currentItemStrokeColor": "#1e1e1e",
|
||||
"currentItemBackgroundColor": "transparent",
|
||||
"currentItemFillStyle": "solid",
|
||||
"currentItemStrokeWidth": 2,
|
||||
"currentItemStrokeStyle": "solid",
|
||||
"currentItemRoughness": 1,
|
||||
"currentItemOpacity": 100,
|
||||
"currentItemFontFamily": 1,
|
||||
"currentItemFontSize": 20,
|
||||
"currentItemTextAlign": "left",
|
||||
"currentItemStartArrowhead": null,
|
||||
"currentItemEndArrowhead": "arrow",
|
||||
"scrollX": 316.594970703125,
|
||||
"scrollY": 367.11940154619526,
|
||||
"zoom": {
|
||||
"value": 1
|
||||
},
|
||||
"currentItemRoundness": "round",
|
||||
"gridSize": null,
|
||||
"gridColor": {
|
||||
"Bold": "#C9C9C9FF",
|
||||
"Regular": "#EDEDEDFF"
|
||||
},
|
||||
"currentStrokeOptions": null,
|
||||
"previousGridSize": null,
|
||||
"frameRendering": {
|
||||
"enabled": true,
|
||||
"clip": true,
|
||||
"name": true,
|
||||
"outline": true
|
||||
}
|
||||
},
|
||||
"files": {}
|
||||
}
|
||||
```
|
||||
%%
|
@ -0,0 +1,805 @@
|
||||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
|
||||
|
||||
|
||||
# Text Elements
|
||||
Extension ^JlH0bdYb
|
||||
|
||||
Force ^xPsajHD7
|
||||
|
||||
tension ^PhEc9iiQ
|
||||
|
||||
relâchement ^ECJr5Tvo
|
||||
|
||||
pertes en chaleur ^aA5fXffj
|
||||
|
||||
%%
|
||||
# Drawing
|
||||
```json
|
||||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.1",
|
||||
"elements": [
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 319,
|
||||
"versionNonce": 1383209605,
|
||||
"isDeleted": false,
|
||||
"id": "2qeeXmjW9An7fZG7IL4Sb",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -203.36064640855375,
|
||||
"y": 140.47603093872237,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 296.3218236088709,
|
||||
"seed": 1239999243,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-296.3218236088709
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 385,
|
||||
"versionNonce": 1496742987,
|
||||
"isDeleted": false,
|
||||
"id": "Zi1_MGfgVoJ7nCY3jMUAq",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -202.7021534672008,
|
||||
"y": 140.47603093872237,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 355.5861883306452,
|
||||
"height": 0,
|
||||
"seed": 2022590891,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
355.5861883306452,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 562,
|
||||
"versionNonce": 1488355813,
|
||||
"isDeleted": false,
|
||||
"id": "GnnQQFSLrNtEUhEpZZsGf",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -198.43616375738702,
|
||||
"y": 138.18552005296795,
|
||||
"strokeColor": "#e03131",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 170.89313269009654,
|
||||
"height": 221.59708917428088,
|
||||
"seed": 118348875,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
16.805784413482797,
|
||||
-33.926600888662506
|
||||
],
|
||||
[
|
||||
40.51153030219302,
|
||||
-76.07014913525745
|
||||
],
|
||||
[
|
||||
66.85124795631418,
|
||||
-119.53068326455877
|
||||
],
|
||||
[
|
||||
98.45890914125994,
|
||||
-162.33272445250668
|
||||
],
|
||||
[
|
||||
127.43259856079476,
|
||||
-192.62339975474697
|
||||
],
|
||||
[
|
||||
170.89313269009654,
|
||||
-221.59708917428088
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 360,
|
||||
"versionNonce": 358005483,
|
||||
"isDeleted": false,
|
||||
"id": "cdzPTnWC_D5hDoS7I3evP",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -36.761932246234664,
|
||||
"y": -78.14362559048828,
|
||||
"strokeColor": "#e03131",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 189.64596710967726,
|
||||
"height": 75.7266882556005,
|
||||
"seed": 1363286763,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
25.681224712769108,
|
||||
-14.486844709767183
|
||||
],
|
||||
[
|
||||
53.3379282495971,
|
||||
-30.290675302240288
|
||||
],
|
||||
[
|
||||
87.5795611999556,
|
||||
-43.460534129301095
|
||||
],
|
||||
[
|
||||
127.74763062249167,
|
||||
-57.947378839068165
|
||||
],
|
||||
[
|
||||
162.64775651420314,
|
||||
-68.4832659007169
|
||||
],
|
||||
[
|
||||
189.64596710967726,
|
||||
-75.7266882556005
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 452,
|
||||
"versionNonce": 481754437,
|
||||
"isDeleted": false,
|
||||
"id": "JsuLi2L-FbyviefMEEm9Z",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 152.56090161788734,
|
||||
"y": -152.8886876591801,
|
||||
"strokeColor": "#1971c2",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 128.08299031828847,
|
||||
"height": 188.0058479814154,
|
||||
"seed": 1404405131,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-22.06562676044814,
|
||||
43.79589382509835
|
||||
],
|
||||
[
|
||||
-39.8449361769799,
|
||||
78.69601971680981
|
||||
],
|
||||
[
|
||||
-62.233696182983294,
|
||||
110.30368090175602
|
||||
],
|
||||
[
|
||||
-88.57341383710445,
|
||||
147.1792856175266
|
||||
],
|
||||
[
|
||||
-128.08299031828847,
|
||||
188.0058479814154
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 807,
|
||||
"versionNonce": 1815487883,
|
||||
"isDeleted": false,
|
||||
"id": "n9Bzoty2zoE_rzF7myxKX",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 33.03831953718918,
|
||||
"y": 25.239766201939517,
|
||||
"strokeColor": "#1971c2",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 232.04768978204447,
|
||||
"height": 113.51896033849698,
|
||||
"seed": 362978347,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-24.364238830063186,
|
||||
20.413281181944512
|
||||
],
|
||||
[
|
||||
-53.33792824959801,
|
||||
40.168069422536064
|
||||
],
|
||||
[
|
||||
-90.21353296536745,
|
||||
59.92285766312739
|
||||
],
|
||||
[
|
||||
-124.45516591572596,
|
||||
75.0681953142473
|
||||
],
|
||||
[
|
||||
-158.0383059247315,
|
||||
86.92106825860219
|
||||
],
|
||||
[
|
||||
-194.2554176991489,
|
||||
100.09092708566322
|
||||
],
|
||||
[
|
||||
-232.04768978204447,
|
||||
113.51896033849698
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 246,
|
||||
"versionNonce": 902892709,
|
||||
"isDeleted": false,
|
||||
"id": "JlH0bdYb",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -77.08349940071412,
|
||||
"y": 144.5404568424325,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 105.46875,
|
||||
"height": 24,
|
||||
"seed": 1391713995,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "Extension",
|
||||
"rawText": "Extension",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "Extension",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 291,
|
||||
"versionNonce": 353319979,
|
||||
"isDeleted": false,
|
||||
"id": "xPsajHD7",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 4.71238898038469,
|
||||
"x": -255.0147109914128,
|
||||
"y": -21.00049352484035,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 58.59375,
|
||||
"height": 24,
|
||||
"seed": 1715719531,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "Force",
|
||||
"rawText": "Force",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "Force",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 292,
|
||||
"versionNonce": 1941057541,
|
||||
"isDeleted": false,
|
||||
"id": "PhEc9iiQ",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 5.363829678725781,
|
||||
"x": -156.65587122701845,
|
||||
"y": -37.73077163915383,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 65.625,
|
||||
"height": 19.2,
|
||||
"seed": 1927079947,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 16,
|
||||
"fontFamily": 3,
|
||||
"text": "tension",
|
||||
"rawText": "tension",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "tension",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 305,
|
||||
"versionNonce": 2076999371,
|
||||
"isDeleted": false,
|
||||
"id": "ECJr5Tvo",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 5.342203921186475,
|
||||
"x": 48.74055256304405,
|
||||
"y": -30.64134488018675,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 103.125,
|
||||
"height": 19.2,
|
||||
"seed": 1320791723,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 16,
|
||||
"fontFamily": 3,
|
||||
"text": "relâchement",
|
||||
"rawText": "relâchement",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "relâchement",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 1006,
|
||||
"versionNonce": 1415047013,
|
||||
"isDeleted": false,
|
||||
"id": "zqHmxtM-ypJCOptOlw7jZ",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 83.44155023118628,
|
||||
"y": -147.87480564660592,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 20.483275826207112,
|
||||
"height": 73.82817958062765,
|
||||
"seed": 746889547,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "aA5fXffj",
|
||||
"focus": -0.8338263967475951,
|
||||
"gap": 12.265111655270005
|
||||
},
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-12.651435069126677,
|
||||
-6.987326470186055
|
||||
],
|
||||
[
|
||||
4.819594312049267,
|
||||
-19.4092401949613
|
||||
],
|
||||
[
|
||||
-12.651435069126677,
|
||||
-28.337490684643505
|
||||
],
|
||||
[
|
||||
4.819594312049267,
|
||||
-43.088513232814094
|
||||
],
|
||||
[
|
||||
-15.663681514157846,
|
||||
-54.73405734979086
|
||||
],
|
||||
[
|
||||
-0.5692174088899264,
|
||||
-73.82817958062765
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 1043,
|
||||
"versionNonce": 721972587,
|
||||
"isDeleted": false,
|
||||
"id": "AEI1IKb6ycHzImcDQsKjK",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 32.05692244166994,
|
||||
"y": -127.08630944513817,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 20.483275826207112,
|
||||
"height": 86.44566508710807,
|
||||
"seed": 93863915,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "aA5fXffj",
|
||||
"focus": -0.19154849291748247,
|
||||
"gap": 6.815043809741383
|
||||
},
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-12.651435069126677,
|
||||
-6.987326470186055
|
||||
],
|
||||
[
|
||||
4.819594312049267,
|
||||
-19.4092401949613
|
||||
],
|
||||
[
|
||||
-12.651435069126677,
|
||||
-28.337490684643505
|
||||
],
|
||||
[
|
||||
4.819594312049267,
|
||||
-43.088513232814094
|
||||
],
|
||||
[
|
||||
-15.663681514157846,
|
||||
-54.73405734979086
|
||||
],
|
||||
[
|
||||
3.6034553967601823,
|
||||
-86.44566508710807
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 1260,
|
||||
"versionNonce": 974107333,
|
||||
"isDeleted": false,
|
||||
"id": "CHLhhrWow8JUt7lBLTWte",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -22.584042429025885,
|
||||
"y": -102.93812679900594,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 20.483275826207112,
|
||||
"height": 89.86302257281727,
|
||||
"seed": 1140787851,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "aA5fXffj",
|
||||
"focus": 0.4895411829517085,
|
||||
"gap": 9.957860380031832
|
||||
},
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-15.369437374572811,
|
||||
-11.336130158900097
|
||||
],
|
||||
[
|
||||
-1.1600107599324474,
|
||||
-23.758043883675327
|
||||
],
|
||||
[
|
||||
-16.456638296751407,
|
||||
-34.86069621771469
|
||||
],
|
||||
[
|
||||
2.1015920066031324,
|
||||
-47.43731692152814
|
||||
],
|
||||
[
|
||||
-18.38168381960398,
|
||||
-59.0828610385049
|
||||
],
|
||||
[
|
||||
-1.2548157012970478,
|
||||
-89.86302257281727
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 247,
|
||||
"versionNonce": 1980598283,
|
||||
"isDeleted": false,
|
||||
"id": "aA5fXffj",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 5.9978180986250305,
|
||||
"x": -47.960208561475156,
|
||||
"y": -239.08498189210803,
|
||||
"strokeColor": "#e8590c",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 159.375,
|
||||
"height": 19.2,
|
||||
"seed": 745767211,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [
|
||||
{
|
||||
"id": "zqHmxtM-ypJCOptOlw7jZ",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "CHLhhrWow8JUt7lBLTWte",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "AEI1IKb6ycHzImcDQsKjK",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1712250257066,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 16,
|
||||
"fontFamily": 3,
|
||||
"text": "pertes en chaleur",
|
||||
"rawText": "pertes en chaleur",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "pertes en chaleur",
|
||||
"lineHeight": 1.2
|
||||
}
|
||||
],
|
||||
"appState": {
|
||||
"theme": "dark",
|
||||
"viewBackgroundColor": "#ffffff",
|
||||
"currentItemStrokeColor": "#1e1e1e",
|
||||
"currentItemBackgroundColor": "transparent",
|
||||
"currentItemFillStyle": "solid",
|
||||
"currentItemStrokeWidth": 2,
|
||||
"currentItemStrokeStyle": "solid",
|
||||
"currentItemRoughness": 1,
|
||||
"currentItemOpacity": 100,
|
||||
"currentItemFontFamily": 1,
|
||||
"currentItemFontSize": 20,
|
||||
"currentItemTextAlign": "left",
|
||||
"currentItemStartArrowhead": null,
|
||||
"currentItemEndArrowhead": "arrow",
|
||||
"scrollX": 321.972412109375,
|
||||
"scrollY": 371.6383056640625,
|
||||
"zoom": {
|
||||
"value": 1
|
||||
},
|
||||
"currentItemRoundness": "round",
|
||||
"gridSize": null,
|
||||
"gridColor": {
|
||||
"Bold": "#C9C9C9FF",
|
||||
"Regular": "#EDEDEDFF"
|
||||
},
|
||||
"currentStrokeOptions": null,
|
||||
"previousGridSize": null,
|
||||
"frameRendering": {
|
||||
"enabled": true,
|
||||
"clip": true,
|
||||
"name": true,
|
||||
"outline": true
|
||||
}
|
||||
},
|
||||
"files": {}
|
||||
}
|
||||
```
|
||||
%%
|
File diff suppressed because it is too large
Load Diff
1268
Excalidraw/mémoire à tore de ferrite grille.excalidraw.md
Normal file
1268
Excalidraw/mémoire à tore de ferrite grille.excalidraw.md
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -48,8 +48,8 @@ exéctuion ^urwgwdTl
|
||||
"elements": [
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 693,
|
||||
"versionNonce": 492393565,
|
||||
"version": 697,
|
||||
"versionNonce": 1445597189,
|
||||
"isDeleted": false,
|
||||
"id": "JZ3Lb_RNs7wuE1eYKmcHF",
|
||||
"fillStyle": "solid",
|
||||
@ -76,7 +76,7 @@ exéctuion ^urwgwdTl
|
||||
"id": "x7URNAhA"
|
||||
}
|
||||
],
|
||||
"updated": 1712029978556,
|
||||
"updated": 1712146314659,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": {
|
||||
@ -141,8 +141,8 @@ exéctuion ^urwgwdTl
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 782,
|
||||
"versionNonce": 1226948061,
|
||||
"version": 786,
|
||||
"versionNonce": 251880837,
|
||||
"isDeleted": false,
|
||||
"id": "jKNoj0Zqp0DJXdnAe5tir",
|
||||
"fillStyle": "solid",
|
||||
@ -169,7 +169,7 @@ exéctuion ^urwgwdTl
|
||||
"id": "M1qqMGti"
|
||||
}
|
||||
],
|
||||
"updated": 1712029978559,
|
||||
"updated": 1712146314667,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": {
|
||||
@ -234,8 +234,8 @@ exéctuion ^urwgwdTl
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 938,
|
||||
"versionNonce": 1106441245,
|
||||
"version": 942,
|
||||
"versionNonce": 2045558213,
|
||||
"isDeleted": false,
|
||||
"id": "24KeAecxPiEF1ND_VICyb",
|
||||
"fillStyle": "solid",
|
||||
@ -262,7 +262,7 @@ exéctuion ^urwgwdTl
|
||||
"id": "b7v9Ic4e"
|
||||
}
|
||||
],
|
||||
"updated": 1712029978562,
|
||||
"updated": 1712146314673,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": {
|
||||
@ -327,8 +327,8 @@ exéctuion ^urwgwdTl
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 1323,
|
||||
"versionNonce": 1280331997,
|
||||
"version": 1327,
|
||||
"versionNonce": 97636485,
|
||||
"isDeleted": false,
|
||||
"id": "VqTBrWQiqNtpGZiHrYzoW",
|
||||
"fillStyle": "solid",
|
||||
@ -355,7 +355,7 @@ exéctuion ^urwgwdTl
|
||||
"id": "JE1mKNAG"
|
||||
}
|
||||
],
|
||||
"updated": 1712029978564,
|
||||
"updated": 1712146314675,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": {
|
||||
@ -960,10 +960,10 @@ exéctuion ^urwgwdTl
|
||||
"currentItemTextAlign": "center",
|
||||
"currentItemStartArrowhead": null,
|
||||
"currentItemEndArrowhead": "triangle",
|
||||
"scrollX": 290.02274443166596,
|
||||
"scrollY": 305.9190270956102,
|
||||
"scrollX": 216.60607776499944,
|
||||
"scrollY": 305.58569376227695,
|
||||
"zoom": {
|
||||
"value": 1.2000000000000002
|
||||
"value": 1
|
||||
},
|
||||
"currentItemRoundness": "round",
|
||||
"gridSize": null,
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 127 KiB |
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
513
Excalidraw/trigger de shmidt 2024-04-04 19.07.11.excalidraw.md
Normal file
513
Excalidraw/trigger de shmidt 2024-04-04 19.07.11.excalidraw.md
Normal file
@ -0,0 +1,513 @@
|
||||
---
|
||||
|
||||
excalidraw-plugin: parsed
|
||||
tags: [excalidraw]
|
||||
|
||||
---
|
||||
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
|
||||
|
||||
|
||||
# Text Elements
|
||||
In ^q7ZJW2l2
|
||||
|
||||
Out ^ReyOFHRH
|
||||
|
||||
%%
|
||||
# Drawing
|
||||
```json
|
||||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://github.com/zsviczian/obsidian-excalidraw-plugin/releases/tag/2.1.1",
|
||||
"elements": [
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 285,
|
||||
"versionNonce": 1077964331,
|
||||
"isDeleted": false,
|
||||
"id": "jvIGIDYhy_5Lg-k77T0H4",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -217.0073687905085,
|
||||
"y": -1.338919135722847,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 399.79116599825466,
|
||||
"height": 0,
|
||||
"seed": 253260427,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
399.79116599825466,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 440,
|
||||
"versionNonce": 1190824741,
|
||||
"isDeleted": false,
|
||||
"id": "6PyNM0ikNe_Ab3O1V3WK6",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -17.473716841752093,
|
||||
"y": 187.7218710545735,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 377.99999999999994,
|
||||
"seed": 538962219,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250446946,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "ReyOFHRH",
|
||||
"focus": 0.1366593357503621,
|
||||
"gap": 9.881198003199984
|
||||
},
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "triangle",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-377.99999999999994
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 315,
|
||||
"versionNonce": 487923563,
|
||||
"isDeleted": false,
|
||||
"id": "bbuJHdA_nCkldxeNG6bHU",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -210.16208766409704,
|
||||
"y": 120.4845887474562,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 255.78729134589503,
|
||||
"height": 0,
|
||||
"seed": 440372171,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
255.78729134589503,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 332,
|
||||
"versionNonce": 666106379,
|
||||
"isDeleted": false,
|
||||
"id": "n68a632bGI96XGtwiyv7z",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 45.11260389954191,
|
||||
"y": 120.4845887474562,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 18.966191943482954,
|
||||
"height": 192.22491834611355,
|
||||
"seed": 26335851,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
18.966191943482954,
|
||||
0
|
||||
],
|
||||
[
|
||||
18.966191943482954,
|
||||
-192.22491834611355
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 350,
|
||||
"versionNonce": 987660459,
|
||||
"isDeleted": false,
|
||||
"id": "7nmWGU8Kg3VwJbcMj4Via",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 64.5913956252814,
|
||||
"y": -72.76552916317013,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 141.47753990273986,
|
||||
"height": 48.184379532092464,
|
||||
"seed": 1927369995,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
-48.184379532092464
|
||||
],
|
||||
[
|
||||
-141.47753990273986,
|
||||
-48.184379532092464
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 289,
|
||||
"versionNonce": 541012811,
|
||||
"isDeleted": false,
|
||||
"id": "eGtQDr5qiOmf06gQJnO30",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 175.31294859264267,
|
||||
"y": -120.94990869526265,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 273.72828372486583,
|
||||
"height": 0,
|
||||
"seed": 229145515,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-273.72828372486583,
|
||||
0
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "arrow",
|
||||
"version": 279,
|
||||
"versionNonce": 137400811,
|
||||
"isDeleted": false,
|
||||
"id": "XVsayBiVX7MDmnUusROcm",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -99.95313447899184,
|
||||
"y": -120.43730891300635,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 199.91391507995803,
|
||||
"seed": 504483403,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow",
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
199.91391507995803
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "line",
|
||||
"version": 274,
|
||||
"versionNonce": 868031627,
|
||||
"isDeleted": false,
|
||||
"id": "T2a0GEuNzVqs3CluiDsDT",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -99.44053469673577,
|
||||
"y": 78.45140660243919,
|
||||
"strokeColor": "#2f9e44",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 0,
|
||||
"height": 42.5457819272732,
|
||||
"seed": 116903147,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"startBinding": null,
|
||||
"endBinding": null,
|
||||
"lastCommittedPoint": null,
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": null,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
42.5457819272732
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 318,
|
||||
"versionNonce": 1587499819,
|
||||
"isDeleted": false,
|
||||
"id": "q7ZJW2l2",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 154.93854433602633,
|
||||
"y": 16.762736180705986,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 23.4375,
|
||||
"height": 24,
|
||||
"seed": 1810167691,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "In",
|
||||
"rawText": "In",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "In",
|
||||
"lineHeight": 1.2
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 316,
|
||||
"versionNonce": 1765914059,
|
||||
"isDeleted": false,
|
||||
"id": "ReyOFHRH",
|
||||
"fillStyle": "hachure",
|
||||
"strokeWidth": 4,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": -32.64962695551526,
|
||||
"y": -224.15932694862641,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 35.15625,
|
||||
"height": 24,
|
||||
"seed": 454282795,
|
||||
"groupIds": [
|
||||
"BBLhZ1Tnam39jS1g6-2MC"
|
||||
],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [
|
||||
{
|
||||
"id": "6PyNM0ikNe_Ab3O1V3WK6",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1712250446921,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 3,
|
||||
"text": "Out",
|
||||
"rawText": "Out",
|
||||
"textAlign": "left",
|
||||
"verticalAlign": "top",
|
||||
"containerId": null,
|
||||
"originalText": "Out",
|
||||
"lineHeight": 1.2
|
||||
}
|
||||
],
|
||||
"appState": {
|
||||
"theme": "dark",
|
||||
"viewBackgroundColor": "#ffffff",
|
||||
"currentItemStrokeColor": "#1e1e1e",
|
||||
"currentItemBackgroundColor": "transparent",
|
||||
"currentItemFillStyle": "solid",
|
||||
"currentItemStrokeWidth": 2,
|
||||
"currentItemStrokeStyle": "solid",
|
||||
"currentItemRoughness": 1,
|
||||
"currentItemOpacity": 100,
|
||||
"currentItemFontFamily": 1,
|
||||
"currentItemFontSize": 20,
|
||||
"currentItemTextAlign": "left",
|
||||
"currentItemStartArrowhead": null,
|
||||
"currentItemEndArrowhead": "arrow",
|
||||
"scrollX": 650.60595703125,
|
||||
"scrollY": 345.9673767089844,
|
||||
"zoom": {
|
||||
"value": 1
|
||||
},
|
||||
"currentItemRoundness": "round",
|
||||
"gridSize": null,
|
||||
"gridColor": {
|
||||
"Bold": "#C9C9C9FF",
|
||||
"Regular": "#EDEDEDFF"
|
||||
},
|
||||
"currentStrokeOptions": null,
|
||||
"previousGridSize": null,
|
||||
"frameRendering": {
|
||||
"enabled": true,
|
||||
"clip": true,
|
||||
"name": true,
|
||||
"outline": true
|
||||
}
|
||||
},
|
||||
"files": {}
|
||||
}
|
||||
```
|
||||
%%
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user