diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 796b509..5afe71a 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -2,6 +2,6 @@ "obsidian-git", "obsidian-excalidraw-plugin", "extended-graph", - "obsidian-link-converter", - "frontmatter-modified-date" + "frontmatter-modified-date", + "insta-toc" ] \ No newline at end of file diff --git a/.obsidian/graph.sync-conflict-20251115-084841-OMTIUBZ.json b/.obsidian/graph.sync-conflict-20251115-084841-OMTIUBZ.json new file mode 100644 index 0000000..1c1aa55 --- /dev/null +++ b/.obsidian/graph.sync-conflict-20251115-084841-OMTIUBZ.json @@ -0,0 +1,65 @@ +{ + "collapse-filter": false, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [ + { + "query": "path:uczelnia/1_semestr/algorytmy ", + "color": { + "a": 1, + "rgb": 14048348 + } + }, + { + "query": "path:uczelnia/1_semestr/matematyka_ze_statystyką ", + "color": { + "a": 1, + "rgb": 14069084 + } + }, + { + "query": "path:uczelnia/1_semestr/fizyka_dla_informatyków ", + "color": { + "a": 1, + "rgb": 11392604 + } + }, + { + "query": "path:uczelnia/1_semestr/programowanie ", + "color": { + "a": 1, + "rgb": 6084188 + } + }, + { + "query": "path:uczelnia/1_semestr/wprowadzenie_do_informatyki ", + "color": { + "a": 1, + "rgb": 6084269 + } + }, + { + "query": "path:uczelnia/1_semestr/algebra_liniowa ", + "color": { + "a": 1, + "rgb": 6073814 + } + } + ], + "collapse-display": true, + "showArrow": true, + "textFadeMultiplier": -2.4, + "nodeSizeMultiplier": 1.2484375, + "lineSizeMultiplier": 3.29010416666667, + "collapse-forces": false, + "centerStrength": 0.463541666666667, + "repelStrength": 20, + "linkStrength": 1, + "linkDistance": 35, + "scale": 0.2826166036812393, + "close": true +} \ No newline at end of file diff --git a/.obsidian/plugins/extended-graph/data.sync-conflict-20251115-084841-OMTIUBZ.json b/.obsidian/plugins/extended-graph/data.sync-conflict-20251115-084841-OMTIUBZ.json new file mode 100644 index 0000000..3eb460d --- /dev/null +++ b/.obsidian/plugins/extended-graph/data.sync-conflict-20251115-084841-OMTIUBZ.json @@ -0,0 +1,411 @@ +{ + "enableFeatures": { + "graph": { + "auto-enabled": false, + "tags": false, + "properties": false, + "property-key": false, + "links": false, + "linksSameColorAsNode": false, + "folders": false, + "imagesFromProperty": false, + "imagesFromEmbeds": false, + "imagesForAttachments": false, + "focus": false, + "shapes": false, + "elements-stats": false, + "names": false, + "icons": false, + "arrows": false, + "layers": false + }, + "localgraph": { + "auto-enabled": true, + "tags": false, + "properties": false, + "property-key": false, + "links": false, + "linksSameColorAsNode": false, + "folders": false, + "imagesFromProperty": true, + "imagesFromEmbeds": true, + "imagesForAttachments": true, + "focus": false, + "shapes": false, + "elements-stats": false, + "names": false, + "icons": false, + "arrows": false, + "layers": false + } + }, + "interactiveSettings": { + "tag": { + "colormap": "hsv", + "colors": [], + "unselected": [], + "excludeRegex": { + "regex": "", + "flags": "" + }, + "noneType": "none", + "showOnGraph": true, + "enableByDefault": true + }, + "link": { + "colormap": "rainbow", + "colors": [], + "unselected": [], + "excludeRegex": { + "regex": "", + "flags": "" + }, + "noneType": "none", + "showOnGraph": true, + "enableByDefault": true + }, + "folder": { + "colormap": "winter", + "colors": [], + "unselected": [], + "excludeRegex": { + "regex": "", + "flags": "" + }, + "noneType": "/", + "showOnGraph": true, + "enableByDefault": false + } + }, + "additionalProperties": {}, + "backupGraphOptions": { + "collapse-filter": false, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [ + { + "query": "path:uczelnia/1_semestr/algorytmy ", + "color": { + "a": 1, + "rgb": 14048348 + } + }, + { + "query": "path:uczelnia/1_semestr/matematyka_ze_statystyką ", + "color": { + "a": 1, + "rgb": 14069084 + } + }, + { + "query": "path:uczelnia/1_semestr/fizyka_dla_informatyków ", + "color": { + "a": 1, + "rgb": 11392604 + } + }, + { + "query": "path:uczelnia/1_semestr/programowanie ", + "color": { + "a": 1, + "rgb": 6084188 + } + }, + { + "query": "path:uczelnia/1_semestr/wprowadzenie_do_informatyki ", + "color": { + "a": 1, + "rgb": 6084269 + } + }, + { + "query": "path:uczelnia/1_semestr/algebra_liniowa ", + "color": { + "a": 1, + "rgb": 6073814 + } + } + ], + "collapse-display": true, + "showArrow": true, + "textFadeMultiplier": -2.4, + "nodeSizeMultiplier": 1.2484375, + "lineSizeMultiplier": 3.29010416666667, + "collapse-forces": false, + "centerStrength": 0.463541666666667, + "repelStrength": 20, + "linkStrength": 1, + "linkDistance": 35, + "scale": 0.22688976624105733, + "close": true + }, + "openInNewTab": false, + "canonicalizePropertiesWithDataview": true, + "states": [ + { + "id": "default-vault", + "name": "Default state", + "engineOptions": { + "colorGroups": [], + "search": "", + "hideUnresolved": false, + "showAttachments": false, + "showOrphans": true, + "showTags": false, + "localBacklinks": true, + "localForelinks": true, + "localInterlinks": false, + "localJumps": 1, + "lineSizeMultiplier": 1, + "nodeSizeMultiplier": 1, + "showArrow": false, + "textFadeMultiplier": 0, + "centerStrength": 0.5187132489703118, + "linkDistance": 250, + "linkStrength": 1, + "repelStrength": 10 + }, + "toggleTypes": { + "tag": [], + "link": [], + "folder": [] + }, + "logicTypes": { + "tag": "OR", + "link": "OR", + "folder": "OR" + }, + "enableLayers": false, + "currentLayerLevel": 0, + "pinNodes": {}, + "hiddenLegendRows": [], + "collapsedLegendRows": [] + } + ], + "startingStateID": "default-vault", + "syncDefaultState": false, + "saveConfigsWithState": false, + "customColorMaps": {}, + "imageProperties": [ + "image" + ], + "borderFactor": 0.06, + "allowExternalImages": true, + "allowExternalLocalImages": false, + "nodesSizeProperties": [ + "" + ], + "nodesSizeFunction": "default", + "nodesSizeRange": { + "min": 0.5, + "max": 1.5 + }, + "nodesColorColormap": "YlOrRd", + "nodesColorFunction": "default", + "graphStatsDirection": "normal", + "linksSizeFunction": "default", + "linksColorColormap": "YlOrRd", + "linksColorFunction": "default", + "recomputeStatsOnGraphChange": false, + "zoomFactor": 2, + "focusScaleFactor": 1.8, + "highlightOpenNodes": false, + "highlightSearchResults": false, + "maxNodes": 200, + "delay": 500, + "revertAction": false, + "enableCSS": false, + "cssSnippetFilename": "", + "shapeQueries": { + "circle": { + "combinationLogic": "AND", + "index": 0, + "rules": [] + }, + "square": { + "combinationLogic": "AND", + "index": 1, + "rules": [] + }, + "triangle": { + "combinationLogic": "AND", + "index": 2, + "rules": [] + }, + "diamond": { + "combinationLogic": "AND", + "index": 3, + "rules": [] + }, + "pentagon": { + "combinationLogic": "AND", + "index": 4, + "rules": [] + }, + "hexagon": { + "combinationLogic": "AND", + "index": 5, + "rules": [] + }, + "octagon": { + "combinationLogic": "AND", + "index": 6, + "rules": [] + }, + "decagon": { + "combinationLogic": "AND", + "index": 7, + "rules": [] + }, + "star4": { + "combinationLogic": "AND", + "index": 8, + "rules": [] + }, + "star5": { + "combinationLogic": "AND", + "index": 9, + "rules": [] + }, + "star6": { + "combinationLogic": "AND", + "index": 10, + "rules": [] + }, + "star8": { + "combinationLogic": "AND", + "index": 11, + "rules": [] + }, + "star10": { + "combinationLogic": "AND", + "index": 12, + "rules": [] + } + }, + "colorBasedOnDepth": false, + "depthColormap": "rainbow", + "currentNode": { + "useColor": false, + "color": "#000000", + "size": 100, + "shape": "circle" + }, + "fadeOnDisable": false, + "borderUnresolved": "", + "spreadArcs": false, + "weightArcs": false, + "animateDotsOnLinks": false, + "animationSpeedForDots": 1, + "interactivesBrightness": { + "light": 1, + "dark": 1 + }, + "fadeInElements": false, + "externalLinks": "none", + "externalLinksProperties": [ + "url" + ], + "externalLinkOpenMode": "note", + "showPinIcon": true, + "allowMultipleLinkTypes": false, + "disableSource": false, + "disableTarget": false, + "excludedSourcesFolder": [], + "excludedTargetsFolder": [], + "curvedLinks": false, + "curvedFactor": 1, + "outlineLinks": false, + "displayLinkTypeLabel": false, + "colorLinkTypeLabel": false, + "noLineHighlight": false, + "folderShowFullPath": true, + "invertArrows": false, + "flatArrows": false, + "opaqueArrowsButKeepFading": false, + "alwaysOpaqueArrows": false, + "arrowScale": 1, + "arrowFixedSize": false, + "arrowColorBool": false, + "arrowColor": "", + "numberOfCharacters": null, + "ellipsis": "…", + "showOnlyFileName": false, + "noExtension": false, + "usePropertiesForName": [], + "addBackgroundToName": false, + "nameVerticalOffset": 0, + "dynamicVerticalOffset": false, + "showNamesWhenNeighborHighlighted": false, + "iconProperties": [ + "" + ], + "usePluginForIcon": true, + "usePluginForIconColor": true, + "useParentIcon": false, + "backgroundOpacityWithIcon": 0, + "useIconColorForBackgroud": true, + "borderWidthWithIcon": 0, + "layerProperties": [ + "layer" + ], + "numberOfActiveLayers": 4, + "layersOrder": "ASC", + "displayLabelsInUI": true, + "nodesWithoutLayerOpacity": 0, + "useLayerCustomOpacity": true, + "layersCustomOpacity": {}, + "layersLevels": {}, + "defaultLevelForLayers": 0, + "horizontalLegend": false, + "useRadialMenu": false, + "radialMenuModifier": "Shift", + "pinNodeModifier": "Alt", + "useLeftClickToSelect": true, + "selectNodeModifier": "Shift", + "filterAbstractFiles": [], + "ignoreInlineLinks": false, + "collapseState": true, + "collapseLegend": true, + "resetAfterChanges": false, + "collapsedSettings": { + "automation": true, + "tags": true, + "properties": true, + "links": true, + "arrows": true, + "folders": true, + "images": false, + "icons": true, + "focus": true, + "shapes": true, + "layers": true, + "elements-stats": true, + "names": true, + "zoom": true, + "local-graph": true, + "display": true, + "filter": true, + "inputs": true, + "performances": false, + "beta": true + }, + "selectionMode": "replace", + "exportSVGOptions": { + "asImage": true, + "onlyVisibleArea": false, + "showNodeNames": true, + "useCurvedLinks": false, + "useModifiedArrows": true, + "useNodesShapes": false, + "showArcs": false, + "showFolders": true, + "useModifiedNames": true, + "showIcons": false + }, + "multipleNodesData": {} +} \ No newline at end of file diff --git a/.obsidian/plugins/insta-toc/data.json b/.obsidian/plugins/insta-toc/data.json new file mode 100644 index 0000000..50b4be6 --- /dev/null +++ b/.obsidian/plugins/insta-toc/data.json @@ -0,0 +1,19 @@ +{ + "bulletType": "dash", + "indentSize": 2, + "updateDelay": 2000, + "tocTitle": "Spis treści", + "excludedHeadingLevels": [], + "excludedHeadingText": [], + "excludedChars": [ + "*", + "_", + "`", + "==", + "~~", + "{", + "}", + "#", + "\\" + ] +} \ No newline at end of file diff --git a/.obsidian/plugins/insta-toc/main.js b/.obsidian/plugins/insta-toc/main.js new file mode 100644 index 0000000..9395a5e --- /dev/null +++ b/.obsidian/plugins/insta-toc/main.js @@ -0,0 +1,193 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var N=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var ge=Object.getOwnPropertyNames;var pe=Object.prototype.hasOwnProperty;var he=(a,i)=>{for(var t in i)N(a,t,{get:i[t],enumerable:!0})},fe=(a,i,t,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of ge(i))!pe.call(a,n)&&n!==t&&N(a,n,{get:()=>i[n],enumerable:!(e=ue(i,n))||e.enumerable});return a};var me=a=>fe(N({},"__esModule",{value:!0}),a);var Ce={};he(Ce,{default:()=>C});module.exports=me(Ce);var w=require("obsidian");var H="insta-toc",X=/^(\s*)(-|\d+(?:\.\d+)*|\d\.)\s+(.*)/,B=/\[\[([^\]]+)\|([^\]]+)\]\]/g,O=/\[\[([^\]\|]+)\]\]/g,F=/\[([^\]]*)\]\([^)]+\)/g,Z=/(#)([/\-_\w][^\s]*)/g;var A=/-{3}\n([\s\S]*)\n-{3}/,U={dash:"dash",number:"number"},D=["*","_","`","==","~~","{","}","#","\\"],ee={onlyCommonKeys:!1,onlyUniversalKeys:!1,skipCommonKeys:!1,skipUniversalKeys:!1,dedupArrays:!0,sortArrays:!0};function te(){return{title:{name:C.getGlobalSetting("tocTitle")??"Table of Contents",level:1,center:!1},exclude:"",style:{listType:C.getGlobalSetting("bulletType")??U.dash},omit:[],levels:{min:1,max:6}}}function G(...a){let i={};return a.forEach(t=>{t.forEach(e=>{i[e]=e in i?++i[e]:1})}),i}function ye(...a){return a.reduce((i,t)=>i.filter(Set.prototype.has,new Set(t)))}function ve(...a){let i=G(...a);return Object.keys(i).filter(t=>i[t]>1)}function Te(...a){let i=G(...a);return Object.keys(i).filter(t=>i[t]i[t]===1)}function xe(a,i=!1){let t=Object.getOwnPropertyNames(a);if(i)for(let e in a)!t.includes(e)&&t.push(e);return t}function j(a){return typeof a=="object"&&a!==null&&!Array.isArray(a)}function ie(a){if(!j(a))return!1;let i=["writable","enumerable","configurable"].some(s=>s in a),t=["get","set"].some(s=>typeof a[s]=="function"),e=["get","set"].every(s=>s in a),n="value"in a&&i||t&&(e||i);if(n){let s=["configurable","get","set","enumerable","value","writable"];n=Object.keys(a).some(o=>!(o in s))}return n}var k={onlyKeys:[],skipKeys:[],onlyCommonKeys:!1,onlyUniversalKeys:!1,skipCommonKeys:!1,skipUniversalKeys:!1,invokeGetters:!1,skipSetters:!1,appendArrays:!1,prependArrays:!1,dedupArrays:!1,sortArrays:!1,hoistEnumerable:!1,hoistProto:!1,skipProto:!1,filter:Function.prototype,beforeEach:Function.prototype,afterEach:Function.prototype,onCircular:Function.prototype};function z(a,...i){let t=arguments.length===1?arguments[0]:{},e={...k,...t},n=new Map,s=new Map,o=typeof e.sortArrays=="function"?e.sortArrays:void 0,c=new WeakMap,d=0;function y(f){return xe(f,e.hoistEnumerable)}function T(...f){let h;f.length>1&&(e.onlyCommonKeys?h=ve(...f.map(l=>y(l))):e.onlyUniversalKeys?h=ye(...f.map(l=>y(l))):e.skipCommonKeys?h=be(...f.map(l=>y(l))):e.skipUniversalKeys&&(h=Te(...f.map(l=>y(l))))),!h&&e.onlyKeys.length&&(h=e.onlyKeys),h&&h!==e.onlyKeys&&e.onlyKeys.length&&(h=h.filter(l=>e.onlyKeys.includes(l)));let E=f.reduce((l,u)=>{c.set(u,l);let v=h||y(u);e.skipKeys.length&&(v=v.filter(b=>e.skipKeys.indexOf(b)===-1));for(let b=0;b{let b=Object.getPrototypeOf(v);return b&&b!==Object.prototype&&u.push(b),u},[]);if(l.length){let u=T(...l);e.hoistProto?I=T(u,E):I=Object.create(u,Object.getOwnPropertyDescriptors(E))}}return I}return arguments.length===1?function(...f){return arguments.length===1?z({...e,...f[0]}):T(...f)}:T(...arguments)}var _={bulletType:"dash",indentSize:2,updateDelay:2e3,tocTitle:"Table of Contents",excludedHeadingLevels:[],excludedHeadingText:[],excludedChars:D};var x=require("obsidian");var R=class extends x.PluginSettingTab{constructor(i,t){super(i,t),this.plugin=t}display(){let{containerEl:i}=this;i.empty();let t=new x.Setting(i).setHeading().setName("Insta ToC Global Settings");t.nameEl.classList.add("setting-title"),t.controlEl.remove(),new x.Setting(i).setName("List bullet style").setDesc("Select the global list bullet type.").addDropdown(e=>e.addOptions(U).setValue(this.plugin.settings.bulletType).onChange(async n=>{this.plugin.settings.bulletType=n,await this.plugin.saveSettings()})),new x.Setting(i).setName("Indentation width").setDesc("Select the global indentation size.").addSlider(e=>e.setLimits(2,8,2).setDynamicTooltip().setInstant(!0).setValue(this.plugin.settings.indentSize).onChange(async n=>{this.plugin.settings.indentSize=n,await this.plugin.saveSettings()})),new x.Setting(i).setName("Update delay").setDesc("The delay for each ToC update.").addSlider(e=>{e.setLimits(500,1e4,500).setDynamicTooltip().setInstant(!0).setValue(this.plugin.settings.updateDelay).onChange(async n=>{this.plugin.settings.updateDelay=n,await this.plugin.saveSettings(),this.plugin.updateModifyEventListener()})}),new x.Setting(i).setName("ToC Title").setDesc("The global title for the Table of Contents.").addText(e=>{e.setValue(this.plugin.settings.tocTitle).onChange(async n=>{this.plugin.settings.tocTitle=n,await this.plugin.saveSettings()}),e.inputEl.placeholder="Table of Contents"}).infoEl.classList.add("insta-toc-text-info"),new x.Setting(i).setName("Excluded heading text").setDesc("Comma-separated list of headings to exclude globally within the Table of Contents.").addTextArea(e=>{e.setValue(this.plugin.settings.excludedHeadingText.join(",")),e.inputEl.addEventListener("blur",async()=>{let s=e.getValue().trim().replace(/^,/,"").replace(/,$/,"").split(",").map(o=>o.trim()).filter(o=>o.length>0);this.plugin.settings.excludedHeadingText=s,await this.plugin.saveSettings()}),e.inputEl.placeholder="Table of Contents,Introduction,Side Note",e.inputEl.classList.add("insta-toc-text-area")}).infoEl.classList.add("insta-toc-text-info"),new x.Setting(i).setName("Excluded heading levels").setDesc("Comma-separated list of heading levels to exclude globally within the Table of Contents.").setTooltip("Valid values are 1-6.").addTextArea(e=>{e.setValue(this.plugin.settings.excludedHeadingLevels.join(",")).onChange(async n=>{let o=e.getValue().replace(/^,/,"").replace(/,$/,"").split(",").map(c=>parseInt(c.trim())).filter(c=>c>0&&c<7);this.plugin.settings.excludedHeadingLevels=[...o],await this.plugin.saveSettings()}),e.inputEl.classList.add("insta-toc-text-area"),e.inputEl.placeholder="1,2,3,4,5,6"}).infoEl.classList.add("insta-toc-text-info"),new x.Setting(i).setName("Excluded characters").setDesc("Globally excluded heading characters.").addTextArea(e=>{e.setValue([...new Set(this.plugin.settings.excludedChars)].join(",")).onChange(async n=>{let s=e.getValue(),o=new Set([...s.trim().replace(/^,/,"").replace(/,$/,"").split(",").map(c=>c.trim()).filter(c=>c.length>0)]);this.plugin.settings.excludedChars=[...o],await this.plugin.saveSettings()}),e.inputEl.classList.add("exclude-chars"),e.inputEl.placeholder=D.join(",")}).infoEl.classList.add("insta-toc-text-info")}};var W=require("obsidian");var M=class{constructor(i,t,e){this.hasSmartList=!1;this.isNumberedToc=!1;this.app=i,this.plugin=t,this.validator=e,this.headingLevelStack=[],this.updateAutoToc()}getIndentationLevel(i){for(;this.headingLevelStack.length>0&&i<=this.headingLevelStack[this.headingLevelStack.length-1];)this.headingLevelStack.pop();return this.headingLevelStack.push(i),this.headingLevelStack.length-1}generateNumberedToc(){let i=[],t={},e=this.validator.fileHeadings;for(let s of e){let o=s.level,c=s.heading;if(c.length===0)continue;let d=this.getIndentationLevel(o);t[d]||(t[d]=0);for(let h=d+1;h<=6;h++)t[h]=0;t[d]++;let y=" ".repeat(d*4),T=t[d].toString(),f=`${y}${T}. ${c}`;i.push(f)}return`\`\`\`${`${H} +--- +${(0,W.stringifyYaml)(this.validator.localTocSettings)}--- + +${"#".repeat(this.validator.localTocSettings.title.level)} ${this.validator.localTocSettings.title.center?"
"+this.validator.localTocSettings.title.name+"
":this.validator.localTocSettings.title.name} + +${i.join(` +`)}`} +\`\`\``}generateNormalToc(){let i=[],t=this.validator.fileHeadings;for(let n of t){let s=n.level,o=n.heading;if(o.length===0)continue;let c=this.getIndentationLevel(s),y=`${" ".repeat(c*4)}- ${o}`;i.push(y)}return`\`\`\`${`${H} +--- +${(0,W.stringifyYaml)(this.validator.localTocSettings)}--- + +${"#".repeat(this.validator.localTocSettings.title.level)} ${this.validator.localTocSettings.title.center?"
"+this.validator.localTocSettings.title.name+"
":this.validator.localTocSettings.title.name} + +${i.join(` +`)}`} +\`\`\``}insertTocBlock(i,t){this.validator.editor.replaceRange(i,t.from,t.to)}updateAutoToc(){let i=this.validator.tocInsertPos,t=this.plugin.settings.bulletType!==this.validator.localTocSettings.style.listType?this.validator.localTocSettings.style.listType:this.plugin.settings.bulletType,e;switch(t){case"dash":e=this.generateNormalToc();break;case"number":e=this.generateNumberedToc(),this.isNumberedToc=!0;break;default:e=this.generateNormalToc();break}this.insertTocBlock(e,i)}};var ne=require("obsidian");function se(a,i,t,e,n){let[,s,o,c]=e,{contentText:d,alias:y}=Se(i,c),T=a.fileManager.generateMarkdownLink(t,n,`#${d}`,y);return{indent:s,bullet:o,navLink:T}}function Se(a,i){let[t,e]=[i,i];return t=t.replace(B,(n,s,o)=>`${s} ${o}`),e=e.replace(B,(n,s,o)=>o),t=t.replace(O,(n,s)=>s.split("/").pop()??s),e=e.replace(O,(n,s)=>s.split("/").pop()??s),t=t.replace(F,(n,s)=>n),e=e.replace(F,(n,s)=>s),t=t.replace(Z,(n,s,o)=>o),e=Le(e,a),{contentText:t,alias:e}}function Le(a,i,t){let e=(i?i.settings.excludedChars:t)??[],n=(0,ne.htmlToMarkdown)(a);for(let s of e)n=n.replaceAll(s,"");return n}function ae(a,i,t){a.querySelectorAll("li").forEach((n,s)=>{i[s]>1&&(n.style.marginInlineStart=`${t*10}px`);let c=n.querySelector("ul, ol");if(c){let d=document.createElement("button");d.textContent="\u25BE",d.classList.add("fold-toggle"),d.addEventListener("click",()=>{c.style.display==="none"?(c.style.display="",d.textContent="\u25BE"):(c.style.display="none",d.textContent="\u25B8")}),n.prepend(d)}})}function oe(a){let i=a.workspace.activeEditor?.editor,t=i?.getCursor();return{editor:i,cursorPos:t}}function q(a){return a.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function le(a){return/^\/.*\/$/.test(a)}function V(a){return[1,2,3,4,5,6].includes(a)}function Y(a){return a&&typeof a=="object"&&!Array.isArray(a)}function $(a,i,t=!0){if(Y(a)&&Y(i))for(let e of Object.keys(i)){let n=a[e],s=i[e];Y(s)?(n||(a[e]={}),$(a[e],s)):Array.isArray(n)&&Array.isArray(s)&&t?a[e]=[...new Set(n.concat(s))]:a[e]=s}return a}var re=require("obsidian");var K=class{constructor(i,t,e,n){this.previousHeadings=[];this.plugin=i,this.metadata=t,this.editor=e,this.cursorPos=n,this.localTocSettings=te()}update(i,t,e,n){this.plugin=i,this.metadata=t,this.editor=e,this.cursorPos=n}haveHeadingsChanged(){let i=this.metadata.headings||[],t=this.previousHeadings.length===0,e=i.length!==this.previousHeadings.length;return(t||e?!1:i.every((s,o)=>s.heading===this.previousHeadings[o].heading&&s.level===this.previousHeadings[o].level))?!1:(this.previousHeadings=i,!0)}hasHeadingsAndSections(){return!!this.metadata&&!!this.metadata.headings&&!!this.metadata.sections}hasInstaTocSection(){if(!this.hasHeadingsAndSections())return!1;let i=this.metadata.sections.find(t=>t.type==="code"&&this.editor.getLine(t.position.start.line)===`\`\`\`${H}`);return i?(this.instaTocSection=i,!0):!1}setTocInsertPos(){let i=this.instaTocSection.position.start.line,t=0,e=this.instaTocSection.position.end.line,n=this.instaTocSection.position.end.col,s={line:i,ch:t},o={line:e,ch:n};this.tocInsertPos={from:s,to:o}}configureLocalSettings(){let t=this.editor.getRange(this.tocInsertPos.from,this.tocInsertPos.to).match(A);if(!t)return;let[,e]=t;this.validateLocalSettings(e)}validateLocalSettings(i){let t;try{t=(0,re.parseYaml)(i)}catch(n){this.localTocSettings=this.updatedLocalSettings||this.localTocSettings;let s=`Invalid YAML in insta-toc settings: +`+n;console.error(s),new Notice(s);return}let e=[];if(t.title!==void 0){let n=t.title;if(typeof n!="object"||n===null)e.push("'title' must be an object.");else{let{name:s,level:o,center:c}=n;s!==void 0&&typeof s!="string"&&e.push("'title.name' must be a string indicating the title to be displayed on the ToC."),o!==void 0&&!V(o)&&e.push("'title.level' must be an integer between 1 and 6 indicating the heading level of the ToC title."),c!==void 0&&typeof c!="boolean"&&e.push("'title.center' must be a boolean indicating whether the title position should be centered.")}}if(t.exclude!==void 0&&typeof t.exclude!="string"&&e.push(`'exclude' must be a string ("...") containing each character to exclude, or a regex pattern (/.../).`),t.style!==void 0){let n=t.style;if(typeof n!="object"||n===null)e.push("'style' must be an object.");else{let{listType:s}=n;s!==void 0&&!["dash","number"].includes(s)&&e.push("'style.listType' must be 'dash' or 'number'.")}}if(t.omit!==void 0){if(!Array.isArray(t.omit))e.push("'omit' must be an array of strings indicating the text of each heading you'd like to omit.");else for(let n of t.omit)if(typeof n!="string"){e.push("'omit' array must contain only strings indicating the text of headings you'd like to omit.");break}}if(t.levels!==void 0){let n=t.levels;if(typeof n!="object"||n===null)e.push("'levels' must be an object.");else{let{min:s,max:o}=n;s!==void 0&&!V(s)&&e.push("'levels.min' must be an integer between 1 and 6 indicating the minimum heading level to include."),o!==void 0&&!V(o)&&e.push("'levels.max' must be an integer between 1 and 6 indicating the maximum heading level to include."),s!==void 0&&o!==void 0&&s>o&&e.push("'levels.min' cannot be greater than 'levels.max'.")}}if(e.length>0){let n=`Invalid properties in insta-toc settings: +`+e.join(` +`);console.error(n),new Notice(n),this.updatedLocalSettings=this.localTocSettings}else this.updatedLocalSettings?this.updatedLocalSettings=$(this.updatedLocalSettings,t,!1):this.updatedLocalSettings=$(this.localTocSettings,t,!0);this.localTocSettings=this.updatedLocalSettings}cursorInToc(){return this.cursorPos.line>=this.instaTocSection.position.start.line&&this.cursorPos.line<=this.instaTocSection.position.end.line}setFileHeadings(){this.metadata.headings&&(this.fileHeadings=this.metadata.headings.filter(i=>{let t=i.heading.trim(),e=i.level;return!t.match(//)&&!this.localTocSettings.omit.includes(t)&&e>=this.localTocSettings.levels.min&&e<=this.localTocSettings.levels.max&&t.trim().length>0&&!this.plugin.settings.excludedHeadingText.includes(t)&&!this.plugin.settings.excludedHeadingLevels.includes(e)}).map(i=>{let t=i.heading,e=[];if(this.plugin.settings.excludedChars&&this.plugin.settings.excludedChars.length>0){let n=this.plugin.settings.excludedChars.map(s=>q(s)).join("");n.length>0&&e.push(`[${n}]`)}if(this.localTocSettings.exclude&&this.localTocSettings.exclude.length>0){let n=this.localTocSettings.exclude;if(le(n)){let s=n.slice(1,-1);e.push(`(${s})`)}else{let s=q(n);s.length>0&&e.push(`[${s}]`)}}if(e.length>0){let n=new RegExp(e.join("|"),"g");t=t.replace(n,"")}return{...i,heading:t}}))}isValid(){return this.hasInstaTocSection()?this.haveHeadingsChanged()?(this.setTocInsertPos(),this.configureLocalSettings(),this.setFileHeadings(),!this.cursorInToc()):!1:(this.plugin.hasTocBlock=!1,!1)}};var C=class extends w.Plugin{constructor(t,e){super(t,e);this.hasTocBlock=!0;this.getDelay=()=>this.settings.updateDelay;this.app=t}async onload(){console.log("Loading Insta TOC Plugin"),await this.loadSettings(),this.addSettingTab(new R(this.app,this)),this.registerMarkdownCodeBlockProcessor("insta-toc",async(t,e,n)=>{this.hasTocBlock||(this.hasTocBlock=!0);let s=n.sourcePath,o=s.substring(0,s.lastIndexOf(".")),c=this.app.vault.getAbstractFileByPath(s),d=t.replace(A,"").split(` +`),y=[],T=d.map(f=>{let h=f.match(X);if(!h)return f;let{indent:E,bullet:I,navLink:l}=se(this.app,this,c,h,o),v=Math.floor(E.length/4)+1;return y.push(v),`${E}${I} ${l}`}).join(` +`);await w.MarkdownRenderer.render(this.app,T,e,s,this),ae(e,y,this.settings.indentSize)}),this.registerEvent(this.app.workspace.on("file-open",()=>this.hasTocBlock=!0)),this.updateModifyEventListener()}onunload(){console.log("Insta TOC Plugin Unloaded.")}async loadSettings(){let t=_,e=await this.loadData();e&&(t=z(ee)(_,e)),this.settings=t}async saveSettings(){await this.saveData(this.settings)}updateModifyEventListener(){this.modifyEventRef&&this.app.metadataCache.offref(this.modifyEventRef),this.setDebouncer(),this.modifyEventRef=this.app.metadataCache.on("changed",(t,e,n)=>{this.hasTocBlock&&this.debouncer(n)}),this.registerEvent(this.modifyEventRef)}setDebouncer(){this.debouncer=(0,w.debounce)(t=>{let{editor:e,cursorPos:n}=oe(this.app);if(!e||!n)return;this.validator?this.validator.update(this,t,e,n):this.validator=new K(this,t,e,n),this.validator.isValid()&&new M(this.app,this,this.validator)},this.settings.updateDelay,!1)}static getGlobalSetting(t){return(window.app.plugins.getPlugin("insta-toc")?.settings)[t]}}; +/*! Bundled license information: + +mergician/dist/mergician.esm.js: + (*! + * mergician + * v2.0.2 + * https://jhildenbiddle.github.io/mergician/ + * (c) 2022-2024 John Hildenbiddle + * MIT license + *) + (** + * @typedef {Object} MergicianOptions + * @property {string[]} [onlyKeys] - Exclusive array of keys to be merged + * (others are skipped) + * @property {string[]} [skipKeys] - Array of keys to skip (others are + * merged) + * @property {boolean} [onlyCommonKeys=false] - Merge only keys found + * in multiple objects (ignore single occurrence keys) + * @property {boolean} [onlyUniversalKeys=false] - Merge only keys + * found in all objects + * @property {boolean} [skipCommonKeys=false] - Skip keys found in + * multiple objects (merge only single occurrence keys) + * @property {boolean} [skipUniversalKeys=false] - Skip keys found in + * all objects (merge only common keys) + * @property {boolean} [invokeGetters=false] - Invoke "getter" methods + * and merge returned values + * @property {boolean} [skipSetters=false] - Skip "setter" methods + * during merge + * @property {boolean} [appendArrays=false] - Merge array values at + * the end of existing arrays + * @property {boolean} [prependArrays=false] - Merge array values at + * the beginning of existing arrays + * @property {boolean} [dedupArrays=false] - Remove duplicate array + * values in new merged object + * @property {boolean|function} [sortArrays=false] - Sort array values + * in new merged object + * @property {boolean} [hoistEnumerable=false] - Merge enumerable + * prototype properties as direct properties of merged object + * @property {boolean} [hoistProto=false] - Merge custom prototype + * properties as direct properties of merged object + * @property {boolean} [skipProto=false] - Skip merging of custom + * prototype properties + * @property {filterCallback} [filter] - Callback used to conditionally merge + * or skip a property. Return a "truthy" value to merge or a "falsy" value to + * skip. Return no value to proceed according to other option values. + * @property {beforeEachCallback} [beforeEach] - Callback used for + * inspecting/modifying properties before merge. Return value is used as value + * to merge. + * @property {afterEachCallback} [afterEach] - Callback used for + * inspecting/modifying properties after merge. Return value is used as merged + * value. + * @property {onCircularCallback} [onCircular] - Callback used for handling + * circular object references during merge + * @preserve + *) + (** + * @callback filterCallback + * @param {callbackData} callbackData + * @preserve + *) + (** + * @callback beforeEachCallback + * @param {callbackData} callbackData + * @preserve + *) + (** + * @callback afterEachCallback + * @param {afterEachCallbackData} callbackData + * @preserve + *) + (** + * @callback onCircularCallback + * @param {callbackData} callbackData + * @preserve + *) + (** + * @typedef {Object} callbackData + * @property {number} depth - Nesting level of the key being processed + * @property {string} key - Object key being processed + * @property {object} srcObj - Object containing the source value + * @property {any} srcVal - Source object’s property value + * @property {object} targetObj - New merged object + * @property {any} targetVal - New merged object’s current property value + * @preserve + *) + (** + * @typedef {Object} afterEachCallbackData + * @property {number} depth - Nesting level of the key being processed + * @property {string} key - Object key being processed + * @property {any} mergeVal - New merged value + * @property {object} srcObj - Object containing the source value + * @property {object} targetObj - New merged object + * @preserve + *) + (** + * @description Deep (recursive) object merging with support for descriptor + * values, accessor functions, custom prototypes, and advanced options for + * customizing the merge process. + * + * @example + * // Custom merge options + * const mergedObj = mergician({ + * // Options + * })(obj1, obj2, obj3); + * + * // Custom merge function + * const customMerge = mergician({ + * // Options + * }); + * const customMergeObj = customMerge(obj1, obj2, obj3); + * + * @overload + * @param {MergicianOptions} options + * @returns {function} New merge function with options set as defaults + * @preserve + *) + (** + * @description Deep (recursive) object merging with support for descriptor + * values, accessor functions, custom prototypes, and advanced options for + * customizing the merge process. + * + * @example + * // Clone with default options + * const clonedObj = mergician({}, obj1); + * + * // Merge with default options + * const mergedObj = mergician(obj1, obj2, obj3); + * + * @overload + * @param {...object} objects + * @returns {object} New merged object + * @preserve + *) + (** + * @description Deep (recursive) object merging with support for descriptor + * values, accessor functions, custom prototypes, and advanced options for + * customizing the merge process. + * + * @example + * // Clone with default options + * const clonedObj = mergician({}, obj1); + * + * // Merge with default options + * const mergedObj = mergician(obj1, obj2, obj3); + * + * @example + * // Custom merge options + * const mergedObj = mergician({ + * // Options + * })(obj1, obj2, obj3); + * + * // Custom merge function + * const customMerge = mergician({ + * // Options + * }); + * const customMergeObj = customMerge(obj1, obj2, obj3); + * + * @param {MergicianOptions} optionsOrObject + * @param {...object} [objects] + * @returns {function|object} New merge function with options set as defaults + * (single argument) or new merged object (multiple arguments) + * @preserve + *) +*/ + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/insta-toc/manifest.json b/.obsidian/plugins/insta-toc/manifest.json new file mode 100644 index 0000000..2c3ca71 --- /dev/null +++ b/.obsidian/plugins/insta-toc/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "insta-toc", + "name": "Insta TOC", + "version": "6.4.1", + "minAppVersion": "0.15.0", + "description": "Simultaneously generate, update, and maintain a table of contents for your notes.", + "author": "Nick C.", + "autherUrl": "https://github.com/iLiftALot/insta-toc", + "isDesktopOnly": false +} \ No newline at end of file diff --git a/.obsidian/plugins/insta-toc/styles.css b/.obsidian/plugins/insta-toc/styles.css new file mode 100644 index 0000000..62206e9 --- /dev/null +++ b/.obsidian/plugins/insta-toc/styles.css @@ -0,0 +1,34 @@ +.fold-toggle { + margin-right: 5px; + background: none; + border: none; + cursor: pointer; + font-size: 18px; + padding: 0; + width: 16px; + height: 20px; +} + +.fold-toggle:focus { + outline: none; +} + +.exclude-chars { + font-size: larger; + font-weight: bolder; + width: 100%; +} + +.setting-title { + display: flex; + justify-content: center; + font-size: xx-large; +} + +.insta-toc-text-info { + width: 33%; +} + +.insta-toc-text-area { + width: 100%; +} diff --git a/.obsidian/plugins/obsidian-link-converter/data.json b/.obsidian/plugins/obsidian-link-converter/data.json deleted file mode 100644 index 11f0767..0000000 --- a/.obsidian/plugins/obsidian-link-converter/data.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "mySetting": "default", - "contextMenu": true, - "finalLinkFormat": "relative-path", - "keepMtime": false -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-link-converter/main.js b/.obsidian/plugins/obsidian-link-converter/main.js deleted file mode 100644 index 2fa5917..0000000 --- a/.obsidian/plugins/obsidian-link-converter/main.js +++ /dev/null @@ -1,4 +0,0 @@ -"use strict";var t=require("obsidian");function e(t,e,i,n){return new(i||(i=Promise))((function(o,a){function l(t){try{r(n.next(t))}catch(t){a(t)}}function s(t){try{r(n.throw(t))}catch(t){a(t)}}function r(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(l,s)}r((n=n.apply(t,e||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const i={mySetting:"default",contextMenu:!0,finalLinkFormat:"not-change",keepMtime:!1};class n extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}display(){let{containerEl:e}=this;e.empty(),e.createEl("h2",{text:"Obsidian Link Converter"}),new t.Setting(e).setName("File Context Menu").setDesc("Turn this option off if you don't want single file commands to appear within the file context menu").addToggle((t=>{t.setValue(this.plugin.settings.contextMenu).onChange((t=>{this.plugin.settings.contextMenu=t,this.plugin.saveSettings(),t?this.plugin.app.workspace.on("file-menu",this.plugin.addFileMenuItems):this.plugin.app.workspace.off("file-menu",this.plugin.addFileMenuItems)}))})),new t.Setting(e).setName("Converted Link Format").setDesc("Select the preferred option for the final link format after the conversion. Plugin will use the preferrence where possible").addDropdown((t=>{t.addOption("not-change","Do not change").addOption("relative-path","Relative Path").addOption("absolute-path","Absolute Path").addOption("shortest-path","Shortest Path").setValue(this.plugin.settings.finalLinkFormat).onChange((t=>{this.plugin.settings.finalLinkFormat=t,this.plugin.saveSettings()}))})),new t.Setting(e).setName("Keep mTime (Last Modified Time)").setDesc("Turn on this option if you want plugin to keep the mtime of files same during the link conversion").addToggle((t=>t.setValue(this.plugin.settings.keepMtime).onChange((t=>{this.plugin.settings.keepMtime=t,this.plugin.saveSettings()}))));const i=e.createDiv("coffee");i.addClass("oz-coffee-div");i.createEl("a",{href:"https://ko-fi.com/L3L356V6Q"}).createEl("img",{attr:{src:"https://cdn.ko-fi.com/cdn/kofi2.png?v=3"}}).height=45}}const o=(t,i)=>e(void 0,void 0,void 0,(function*(){const e=[];let n=yield i.app.vault.read(t),o=n.match(/\[\[.*?\]\]/g);if(o){let i=/(?<=\[\[).*?(?=(\]|\|))/,n=/(?<=\|).*(?=]])/;for(let a of o){if(M(a)){let i=x(a),n=A(a);if(""!==i&&""!==n){let o={type:"wikiTransclusion",match:a,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(o);continue}}let o=a.match(i);if(o){if(o[0].startsWith("http"))continue;let i=a.match(n),l={type:"wiki",match:a,linkText:o[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}let a=n.match(/\[(^$|.*?)\]\((.*?)\)/g);if(a){let i=/(?<=\().*(?=\))/,n=/(?<=\[)(^$|.*?)(?=\])/;for(let o of a){if(y(o)){let i=x(o),n=A(o);if(""!==i&&""!==n){let a={type:"mdTransclusion",match:o,linkText:i,altOrBlockRef:n,sourceFilePath:t.path};e.push(a);continue}}let a=o.match(i);if(a){if(a[0].startsWith("http"))continue;let i=o.match(n),l={type:"markdown",match:o,linkText:a[0],altOrBlockRef:i?i[0]:"",sourceFilePath:t.path};e.push(l)}}}return e})),a=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),a="markdown"===o?yield c(e,i,n):yield h(e,i,n),l=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,a,l)})),l=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=i.app.workspace.getActiveFile();"md"===e.extension?yield a(e,i,n):new t.Notice("Active File is not a Markdown File")})),s=(i,n,o)=>e(void 0,void 0,void 0,(function*(){let e=((e,i)=>{var n=[];return function e(i,o){var a=o.vault.getAbstractFileByPath(i);if(a instanceof t.TFolder&&a.children)for(let i of a.children)i instanceof t.TFile&&"md"===i.extension&&n.push(i),i instanceof t.TFolder&&e(i.path,o)}(e,i.app),n})(i.path,n),l=new t.Notice("Starting link conversion",0);try{let t=e.length,i=0;for(let s of e)i++,l.setMessage(`Converting the links in notes ${i}/${t}.`),d(n.app,s.path,"excalidraw-plugin")||d(n.app,s.path,"kanban-plugin")||(yield a(s,n,o))}catch(t){console.log(t)}finally{l.hide()}})),r=(i,n)=>e(void 0,void 0,void 0,(function*(){let e=n.app.workspace.getActiveViewOfType(t.MarkdownView);if(e){let o=e.editor,a=o.getSelection(),l=e.file;if(""!==a){let t;"markdown"===i?t=yield c(a,l,n):"wiki"===i&&(t=yield h(a,l,n)),o.replaceSelection(t)}else new t.Notice("You didn't select any text.")}else new t.Notice("There is no active leaf open.",3e3)})),C=(t,i)=>e(void 0,void 0,void 0,(function*(){s(t.app.vault.getRoot(),t,i)})),d=(t,e,i)=>{let n=t.metadataCache.getCache(e);return n.frontmatter&&n.frontmatter[i]},c=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"wiki"===t.type));for(let t of l){let o=p("markdown",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"wikiTransclusion"===t.type));for(let t of s){let o=p("mdTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),h=(t,i,n)=>e(void 0,void 0,void 0,(function*(){let e=t,a=yield o(i,n),l=a.filter((t=>"markdown"===t.type));for(let t of l){let o=p("wiki",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}let s=a.filter((t=>"mdTransclusion"===t.type));for(let t of s){let o=p("wikiTransclusion",t.linkText,t.altOrBlockRef,i,n);e=e.replace(t.match,o)}return e})),L=(t,e,i,n)=>{let o;if("absolute-path"===n)o=t.path;else if("relative-path"===n)o=function(t,e){function i(t){let e=0;for(;e=0&&""===t[i];i--);return e>i?[]:t.slice(e,i-e+1)}for(var n=i(t.split("/")),o=i(e.split("/")),a=Math.min(n.length,o.length),l=a,s=0;se.name===t.name)).length>1?t.path:t.name}return o.endsWith(".md")&&(o=o.replace(".md","")),o},p=(t,e,i,n,o)=>{let a,l=e,s=decodeURI(l),r=o.app.metadataCache.getFirstLinkpathDest(s,n.path);r&&"not-change"!==o.settings.finalLinkFormat&&(l=L(r,n,o,o.settings.finalLinkFormat));const C=r&&"md"===r.extension?`.${r.extension}`:"";if("wiki"===t)return a=""!==i&&i!==decodeURI(l)?r&&decodeURI(i)===r.basename?"":"|"+i:"",`[[${decodeURI(l)}${a}]]`;if("markdown"===t)return a=""!==i?i:r?r.basename:l,`[${a}](${u(l)}${C})`;if("wikiTransclusion"===t)return`[[${decodeURI(l)}#${decodeURI(i)}]]`;if("mdTransclusion"===t){let t=i;return i.startsWith("^")?(t=u(t.slice(1)),t=`^${t}`):t=u(t),`[](${u(l)}${C}#${t})`}return""};function u(t){return t.replace(/[\\\x00\x08\x0B\x0C\x0E-\x1F ]/g,(t=>encodeURIComponent(t)))}const f=/\[\[(.*?)#.*?\]\]/,k=/(?<=\[\[)(.*)(?=#)/,m=/(?<=#).*?(?=]])/,g=/\[.*?]\((.*?)#.*?\)/,v=/(?<=\]\()(.*)(?=#)/,w=/(?<=#).*?(?=\))/,M=t=>f.test(t),y=t=>g.test(t),x=t=>{let e=f.test(t),i=g.test(t);if(e||i){let i=t.match(e?k:v);if(i)return i[0]}return""},A=t=>{let e=f.test(t),i=g.test(t);if(e||i){let i=t.match(e?m:w);if(i)return i[0]}return""};class F extends t.Modal{constructor(t,e,i){super(t),this.message=e,this.callback=i}onOpen(){let{contentEl:t}=this,e=t.createEl("div");e.addClass("oz-modal-center"),e.innerHTML=`\n
\n

Link Converter Plugin

\n
\n

${this.message}

\n `,t.createEl("button",{text:"Continue"}).addEventListener("click",(()=>{this.callback(),this.close()}));const i=t.createEl("button",{text:"Cancel"});i.style.cssText="float: right;",i.addEventListener("click",(()=>this.close()))}}class T extends t.FuzzySuggestModal{constructor(t,e){super(t.app),this.plugin=t,this.finalFormat=e}getItemText(t){return t.path}getItems(){return function(e){let i=[],n=e.vault.getRoot();function o(e){for(let n of e.children)if(n instanceof t.TFolder){let t=n;i.push(t),t.children&&o(t)}}return i.push(n),o(n),i}(this.app)}onChooseItem(t,e){let i=`Are you sure you want to convert all \n ${"wiki"===this.finalFormat?"Markdown Links to Wikilinks":"Wikilinks to Markdown Links"} \n under ${t.name}?`;new F(this.app,i,(()=>s(t,this.plugin,this.finalFormat))).open()}}class z extends t.Plugin{constructor(){super(...arguments),this.addFileMenuItems=(i,n)=>{if(n instanceof t.TFile&&"md"===n.extension){if(i.addSeparator(),i.addItem((t=>{t.setTitle("Markdown Links to Wiki").setIcon("bracketIcon").onClick((()=>a(n,this,"wiki")))})),i.addItem((t=>{t.setTitle("WikiLinks to Markdown").setIcon("markdownIcon").onClick((()=>a(n,this,"markdown")))})),"not-change"!==this.settings.finalLinkFormat){let a=this.settings.finalLinkFormat;i.addItem((i=>{i.setTitle("All Links to "+("absolute-path"===a?"Absolute Path":"shortest-path"===a?"Shortest Path":"Relative Path")).setIcon("linkEditIcon").onClick((()=>((i,n,a)=>e(void 0,void 0,void 0,(function*(){let e=yield n.app.vault.read(i),l=yield o(i,n);for(let t of l){let o=decodeURI(t.linkText),l=n.app.metadataCache.getFirstLinkpathDest(o,t.sourceFilePath);l&&(o=L(l,i,n,a),e=e.replace(t.match,p(t.type,o,t.altOrBlockRef,i,n)))}let s=n.settings.keepMtime?yield n.app.vault.adapter.stat(t.normalizePath(i.path)):{};yield n.app.vault.modify(i,e,s)})))(n,this,a)))}))}i.addSeparator()}}}onload(){return e(this,void 0,void 0,(function*(){console.log("Link Converter Loading..."),t.addIcon("bracketIcon",''),t.addIcon("markdownIcon",''),t.addIcon("linkEditIcon",' '),yield this.loadSettings(),this.addSettingTab(new n(this.app,this)),this.addCommand({id:"convert-wikis-to-md-in-active-file",name:"Active File: Links to Markdown",callback:()=>{l(this,"markdown")}}),this.addCommand({id:"convert-md-to-wikis-in-active-file",name:"Active File: Links to Wiki",callback:()=>{l(this,"wiki")}}),this.addCommand({id:"convert-wikis-to-md-in-vault",name:"Vault: Links to Markdown",callback:()=>{new F(this.app,"Are you sure you want to convert all Wikilinks to Markdown Links?",(()=>C(this,"markdown"))).open()}}),this.addCommand({id:"convert-mdlinks-to-wiki-in-vault",name:"Vault: Links to Wiki",callback:()=>{new F(this.app,"Are you sure you want to convert all Markdown Links to Wikilinks?",(()=>C(this,"wiki"))).open()}}),this.addCommand({id:"convert-wikis-to-mdlink-under-folder",name:"Certain Folder: Links to Markdown",callback:()=>{new T(this,"markdown").open()}}),this.addCommand({id:"convert-mdlinks-to-wikis-under-folder",name:"Certain Folder: Links to Wiki",callback:()=>{new T(this,"wiki").open()}}),this.addCommand({id:"convert-wikis-to-mdlinks-within-selection",name:"Editor Selection: Links to Markdown",callback:()=>e(this,void 0,void 0,(function*(){return r("markdown",this)}))}),this.addCommand({id:"convert-mdlinks-to-wiki-within-selection",name:"Editor Selection: Links to Wiki",callback:()=>e(this,void 0,void 0,(function*(){return r("wiki",this)}))}),this.settings.contextMenu&&this.app.workspace.on("file-menu",this.addFileMenuItems)}))}onunload(){console.log("Link Converter Unloading..."),this.app.workspace.off("file-menu",this.addFileMenuItems)}loadSettings(){return e(this,void 0,void 0,(function*(){this.settings=Object.assign({},i,yield this.loadData())}))}saveSettings(){return e(this,void 0,void 0,(function*(){yield this.saveData(this.settings)}))}}module.exports=z; - - -/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-link-converter/manifest.json b/.obsidian/plugins/obsidian-link-converter/manifest.json deleted file mode 100644 index a2c8d73..0000000 --- a/.obsidian/plugins/obsidian-link-converter/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "obsidian-link-converter", - "name": "Link Converter", - "version": "0.1.6", - "minAppVersion": "0.9.12", - "description": "Scan all your links in the vault and convert them to your desired format.", - "author": "Ozan Tellioglu", - "authorUrl": "https://ozan.pl", - "isDesktopOnly": false -} diff --git a/.obsidian/plugins/obsidian-link-converter/styles.css b/.obsidian/plugins/obsidian-link-converter/styles.css deleted file mode 100644 index bbd6b7f..0000000 --- a/.obsidian/plugins/obsidian-link-converter/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -.oz-coffee-div { - text-align: center; - margin-top: 20px; -} diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 7fe6cee..88bcd9e 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,16 +4,16 @@ "type": "split", "children": [ { - "id": "11539a284b4a76ff", + "id": "6d10add84c131dea", "type": "tabs", "children": [ { - "id": "ef46c2790ddabd1b", + "id": "6cda958d137b4355", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Diody.md", + "file": "uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md", "mode": "source", "source": false, "backlinks": true, @@ -28,10 +28,35 @@ } }, "icon": "lucide-file", - "title": "Diody" + "title": "Algebra liniowa" + } + }, + { + "id": "ba23a423c1d4d583", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "uczelnia/1_semestr/algebra_liniowa/Kolokwium liczby zespolone i wielomiany.md", + "mode": "source", + "source": false, + "backlinks": true, + "backlinkOpts": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + }, + "icon": "lucide-file", + "title": "Kolokwium liczby zespolone i wielomiany" } } - ] + ], + "currentTab": 1 } ], "direction": "vertical" @@ -188,8 +213,16 @@ "obsidian-excalidraw-plugin:New drawing": false } }, - "active": "ef46c2790ddabd1b", + "active": "ba23a423c1d4d583", "lastOpenFiles": [ + "uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md", + "uczelnia/1_semestr/algebra_liniowa/Kolokwium liczby zespolone i wielomiany.md", + "media/Pasted image 20251116135721.png", + "Excalidraw/Drawing 2025-11-16 13.55.00.excalidraw.md", + "media/Pasted image 20251116121244.png", + "uczelnia/1_semestr/algebra_liniowa/Liczby zespolone.md", + "uczelnia/1_semestr/algebra_liniowa/Wielomiany.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Diody.md", "media/Pasted image 20251113165634.png", "media/Pasted image 20251113165511.png", "media/Pasted image 20251113164637.png", @@ -197,13 +230,10 @@ "uczelnia/1_semestr/algorytmy/Podstawy algorytmiki.md", "uczelnia/1_semestr/algorytmy/Obliczanie sprawności algorytmu.md", "uczelnia/1_semestr/algorytmy/Algorytmy.md", - "uczelnia/1_semestr/algebra_liniowa/Wielomiany.md", - "uczelnia/1_semestr/algebra_liniowa/Liczby zespolone.md", "uczelnia/1_semestr/wprowadzenie_do_informatyki/Architektury komputerowe.md", "uczelnia/1_semestr/programowanie/Programowanie.md", "uczelnia/1_semestr/matematyka_ze_statystyką/Szeregi.md", "uczelnia/1_semestr/matematyka_ze_statystyką/Matematyka ze statystyką.md", - "uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md", "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Prąd.md", "Dziura elektronowa.md", "uczelnia/1_semestr/wprowadzenie_do_informatyki/Zapis liczb rzeczywistych.md", @@ -213,11 +243,8 @@ "uczelnia/1_semestr/fizyka_dla_informatyków/Fizyczna/Całki.md", "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/RLC.md", "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Podstawy elektryki.md", - "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Diody.md", "uczelnia/1_semestr/Literatura.md", "uczelnia/1_semestr/Informacje.md", - "uczelnia/Bieżące informacje.md", - "uczelnia/1_semestr/wprowadzenie_do_informatyki/3 wykład/Taksonomia Flynna.md", "uczelnia/1_semestr/wprowadzenie_do_informatyki/3 wykład", "uczelnia/1_semestr/wprowadzenie_do_informatyki/2 sykład", "uczelnia/1_semestr/programowanie/4 wykład", diff --git a/.obsidian/workspace.sync-conflict-20251018-095131-N4Y247Z.json b/.obsidian/workspace.sync-conflict-20251018-095131-N4Y247Z.json deleted file mode 100644 index 35a4fa7..0000000 --- a/.obsidian/workspace.sync-conflict-20251018-095131-N4Y247Z.json +++ /dev/null @@ -1,260 +0,0 @@ -{ - "main": { - "id": "b66eb7009a35bc77", - "type": "split", - "children": [ - { - "id": "1d34107a83b12e8b", - "type": "tabs", - "children": [ - { - "id": "a3a3edba5fbbbf7a", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "uczelnia/1_semestr/algebra_liniowa/2 wykład/2 wykład.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "2 wykład" - } - }, - { - "id": "048bb55c85861fa3", - "type": "leaf", - "state": { - "type": "graph", - "state": {}, - "icon": "lucide-git-fork", - "title": "Widok grafu" - } - }, - { - "id": "5a1e7126496e73fe", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Badanie zbieżności.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Badanie zbieżności" - } - }, - { - "id": "fb1a702886662aa7", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Kryterium porównawcze.md", - "mode": "source", - "source": false - }, - "icon": "lucide-file", - "title": "Kryterium porównawcze" - } - } - ], - "currentTab": 3 - } - ], - "direction": "vertical" - }, - "left": { - "id": "b02ff0065d6b8746", - "type": "split", - "children": [ - { - "id": "f12554db889f7231", - "type": "tabs", - "children": [ - { - "id": "95f2772859773c70", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": { - "sortOrder": "alphabetical", - "autoReveal": false - }, - "icon": "lucide-folder-closed", - "title": "Przeglądarka plików" - } - }, - { - "id": "b249b8fa6b58a15c", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - }, - "icon": "lucide-search", - "title": "Szukaj" - } - }, - { - "id": "bb931213e9647e7a", - "type": "leaf", - "state": { - "type": "bookmarks", - "state": {}, - "icon": "lucide-bookmark", - "title": "Ulubione" - } - } - ] - } - ], - "direction": "horizontal", - "width": 200 - }, - "right": { - "id": "635fb7694c1bcea6", - "type": "split", - "children": [ - { - "id": "543ba2c01ccd0d88", - "type": "tabs", - "children": [ - { - "id": "68d39a287100b20a", - "type": "leaf", - "state": { - "type": "backlink", - "state": { - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical", - "showSearch": false, - "searchQuery": "", - "backlinkCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-coming-in", - "title": "Backlinks" - } - }, - { - "id": "d107c01e753fe187", - "type": "leaf", - "state": { - "type": "outgoing-link", - "state": { - "linksCollapsed": false, - "unlinkedCollapsed": true - }, - "icon": "links-going-out", - "title": "Outgoing links" - } - }, - { - "id": "3e764925354544d4", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-tags", - "title": "Tags" - } - }, - { - "id": "b5d77fe1f7335692", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "followCursor": false, - "showSearch": false, - "searchQuery": "" - }, - "icon": "lucide-list", - "title": "Outline" - } - } - ] - } - ], - "direction": "horizontal", - "width": 300, - "collapsed": true - }, - "left-ribbon": { - "hiddenItems": { - "switcher:Otwórz okno szybkiego wyboru": false, - "graph:Otwórz graf": false, - "canvas:Stwórz nową tablicę": false, - "daily-notes:Otwórz codzienną notatkę": false, - "templates:Wstaw szablon": false, - "command-palette:Otwórz listę poleceń": false, - "bases:Stwórz nową bazę danych": false, - "obsidian-git:Open Git source control": false, - "obsidian-excalidraw-plugin:New drawing": false - } - }, - "active": "fb1a702886662aa7", - "lastOpenFiles": [ - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Badanie zbieżności.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Kryterium porównawcze.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Szeregi liczbowe.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Szereg harmoniczny.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Granica-Suma szeregu.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Zbieżność.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/2 wykład.md", - "uczelnia/1_semestr/algebra_liniowa/2 wykład/2 wykład.md", - "uczelnia/1_semestr/algebra_liniowa/2 wykład/Pierwiastkowanie liczb zespolonych.md", - "uczelnia/1_semestr/algebra_liniowa/2 wykład/Wzory eulera.md", - "uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md", - "media/Pasted image 20251013195607.png", - "uczelnia/1_semestr/algebra_liniowa/1_wykład/Wzór de Moivre'a.md", - "uczelnia/1_semestr/fizyka_dla_informatyków/2 wykład/Wzory na prędkość, pozycję, przyspieszenie.md", - "uczelnia/1_semestr/fizyka_dla_informatyków/2 wykład/Całki.md", - "uczelnia/1_semestr/fizyka_dla_informatyków/2 wykład/2 wykład.md", - "uczelnia/1_semestr/programowanie/1 wykład/Pierwszy program.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Funkcje.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Funkcja odwrotna.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Złożenie funkcji.md", - "Funkcje.md", - "uczelnia/1_semestr/wprowadzenie_do_informatyki/2 sykład/2 wykład.md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Kryterium d'Alemberta (ułamkowe).md", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład/Kryterium Cauche'ego (pierwiastkowe).md", - "media/Pasted image 20251011092828.png", - "media/Pasted image 20251011092804.png", - "uczelnia/1_semestr/wprowadzenie_do_informatyki/2 sykład/Zapis liczb rzeczywistych.md", - "uczelnia/1_semestr/1 semestr.md", - "uczelnia/1_semestr/wprowadzenie_do_informatyki/Wprowadzenie do informatyki.md", - "uczelnia/1_semestr/wprowadzenie_do_informatyki/2 sykład", - "uczelnia/1_semestr/algorytmy/3 wykład", - "uczelnia/1_semestr/matematyka_ze_statystyką/2_wykład", - "uczelnia/1_semestr/algorytmy/2 wykład", - "uczelnia/1_semestr/fizyka_dla_informatyków/2 wykład", - "media/Pasted image 20251007211930.png", - "media/Pasted image 20251007211823.png", - "uczelnia/1_semestr/fizyka_dla_informatyków/1_wykład", - "media/Pasted image 20251006151730.png", - "media/Pasted image 20251006152754.png", - "media/Pasted image 20251006152559.png", - "media/Pasted image 20251006152512.png", - "media/Pasted image 20251006152238.png", - "media", - "uczelnia/1_semestr/algebra_liniowa/1_wykład", - "uczelnia/1_semestr/algebra_liniowa", - "uczelnia/1_semestr/wprowadzenie_do_informatyki", - "Bez nazwy.canvas" - ] -} \ No newline at end of file diff --git a/.obsidian/workspace.sync-conflict-20251115-084842-OMTIUBZ.json b/.obsidian/workspace.sync-conflict-20251115-084842-OMTIUBZ.json new file mode 100644 index 0000000..9866346 --- /dev/null +++ b/.obsidian/workspace.sync-conflict-20251115-084842-OMTIUBZ.json @@ -0,0 +1,228 @@ +{ + "main": { + "id": "0b83f88d5b319116", + "type": "split", + "children": [ + { + "id": "1a6496285c02c6cd", + "type": "tabs", + "children": [ + { + "id": "373f9cf02573a2ea", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "uczelnia/1_semestr/wprowadzenie_do_informatyki/Wprowadzenie do informatyki.md", + "mode": "source", + "source": false, + "backlinks": true, + "backlinkOpts": { + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + }, + "icon": "lucide-file", + "title": "Wprowadzenie do informatyki" + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "7139420c0e271bf7", + "type": "split", + "children": [ + { + "id": "5324c17a65e886ad", + "type": "tabs", + "children": [ + { + "id": "a150f6cde24948cb", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + }, + "icon": "lucide-search", + "title": "Search" + } + }, + { + "id": "0eaab16550e671c3", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {}, + "icon": "lucide-bookmark", + "title": "Bookmarks" + } + }, + { + "id": "657d908e61a1dc34", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical", + "autoReveal": false + }, + "icon": "lucide-folder-closed", + "title": "Files" + } + } + ], + "currentTab": 2 + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "7a99302d7724db97", + "type": "split", + "children": [ + { + "id": "cb4661b338000e7d", + "type": "tabs", + "children": [ + { + "id": "42434d47c278eb66", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "uczelnia/1_semestr/programowanie/4 wykład/4 wykład.md", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-coming-in", + "title": "Backlinks for 4 wykład" + } + }, + { + "id": "38fc1f5ffdabba4c", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "linksCollapsed": false, + "unlinkedCollapsed": true + }, + "icon": "links-going-out", + "title": "Outgoing links" + } + }, + { + "id": "0c41d8697cde3ae5", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-tags", + "title": "Tags" + } + }, + { + "id": "68e6b8fd1f618967", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "followCursor": false, + "showSearch": false, + "searchQuery": "" + }, + "icon": "lucide-list", + "title": "Outline" + } + }, + { + "id": "9592358348091ef9", + "type": "leaf", + "state": { + "type": "git-view", + "state": {}, + "icon": "lucide-ghost", + "title": "git-view" + } + } + ], + "currentTab": 4 + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "command-palette:Open command palette": false, + "bases:Create new base": false, + "obsidian-git:Open Git source control": false, + "obsidian-excalidraw-plugin:New drawing": false + } + }, + "active": "373f9cf02573a2ea", + "lastOpenFiles": [ + "uczelnia/1_semestr/wprowadzenie_do_informatyki/5 wykład/5 wykład.md", + "uczelnia/1_semestr/wprowadzenie_do_informatyki/Wprowadzenie do informatyki.md", + "uczelnia/1_semestr/wprowadzenie_do_informatyki/5 wykład", + "uczelnia/1_semestr/fizyka_dla_informatyków/Fizyka dla informatyków.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Elektryczna.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/wykład 4/Diody!.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/wykład 4/wykład 4.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/wykład 4", + "uczelnia/Bieżące informacje.md", + "uczelnia/1_semestr/algorytmy/4 wykład/4 wykład.md", + "uczelnia/1_semestr/algorytmy/4 wykład/Analiza algorytmów nierekurencyjnych.md", + "uczelnia/1_semestr/algorytmy/4 wykład/Empiryczna analizy algorytmów.md", + "uczelnia/1_semestr/wprowadzenie_do_informatyki/4 wykład/4 wykład.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/3 wykład/3 wykład.md", + "uczelnia/1_semestr/wprowadzenie_do_informatyki/4 wykład", + "uczelnia/1_semestr/matematyka_ze_statystyką/3 wykład/3 wykład.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/3 wykład", + "uczelnia/1_semestr/programowanie/4 wykład/4 wykład.md", + "uczelnia/1_semestr/info/Rzeczy na wejściówkę na lab.md", + "uczelnia/1_semestr/info/Kolokwium z algebry (17.11.2025).md", + "uczelnia/1_semestr/info", + "uczelnia/Kolokwium z algebry (17.11.2025).md", + "uczelnia/1_semestr/programowanie/4 wykład/Pętla for.md", + "uczelnia/1_semestr/programowanie/Programowanie.md", + "uczelnia/1_semestr/programowanie/4 wykład", + "uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md", + "uczelnia/1_semestr/algebra_liniowa/3 wykład/Zasadnicze twierdzenie algebry.md", + "uczelnia/1_semestr/algebra_liniowa/3 wykład/Twierdzenie bezuta.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna/Rzeczy na wejściówkę na lab.md", + "uczelnia/1_semestr/1 semestr.md", + "uczelnia/1_semestr/algebra_liniowa/3 wykład/Wielomiany.md", + "uczelnia/ZUT.md", + "uczelnia/1_semestr/fizyka_dla_informatyków/Fizyczna", + "uczelnia/1_semestr/fizyka_dla_informatyków/Elektryczna" + ] +} \ No newline at end of file diff --git a/Excalidraw/Drawing 2025-11-16 13.55.00.excalidraw.md b/Excalidraw/Drawing 2025-11-16 13.55.00.excalidraw.md new file mode 100644 index 0000000..40c405f --- /dev/null +++ b/Excalidraw/Drawing 2025-11-16 13.55.00.excalidraw.md @@ -0,0 +1,46 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + + +# Excalidraw Data + +## Text Elements +ax^4+bx^3+cx^2+dx+e = 0 ^4gpiwoBj + +%% +## Drawing +```compressed-json +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 +``` +%% \ No newline at end of file diff --git a/media/Pasted image 20251116121244.png b/media/Pasted image 20251116121244.png new file mode 100644 index 0000000..15d7004 Binary files /dev/null and b/media/Pasted image 20251116121244.png differ diff --git a/media/Pasted image 20251116135721.png b/media/Pasted image 20251116135721.png new file mode 100644 index 0000000..14481a9 Binary files /dev/null and b/media/Pasted image 20251116135721.png differ diff --git a/uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md b/uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md index d9aa100..1ec986b 100644 --- a/uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md +++ b/uczelnia/1_semestr/algebra_liniowa/Algebra liniowa.md @@ -1,2 +1,3 @@ [Liczby zespolone](Liczby%20zespolone.md) -[Wielomiany](Wielomiany.md) \ No newline at end of file +[Wielomiany](Wielomiany.md) +[[Kolokwium liczby zespolone i wielomiany]] \ No newline at end of file diff --git a/uczelnia/1_semestr/algebra_liniowa/Kolokwium liczby zespolone i wielomiany.md b/uczelnia/1_semestr/algebra_liniowa/Kolokwium liczby zespolone i wielomiany.md new file mode 100644 index 0000000..7290234 --- /dev/null +++ b/uczelnia/1_semestr/algebra_liniowa/Kolokwium liczby zespolone i wielomiany.md @@ -0,0 +1,132 @@ +```insta-toc +--- +title: + name: Spis treści + level: 1 + center: false +exclude: "" +style: + listType: dash +omit: [] +levels: + min: 1 + max: 6 +--- + +# Spis treści + +- Liczby zespolone + - Potęgowanie + - Metoda + - Trudność + - Mnożenie/dzielenie potęgowanych liczb zespolonych + - Pierwiastkowanie + - Metoda + - Pierwiastki kwadratowe + - Czym się różnią od zwykłych? + - Jak to liczyć? + - Równania + - Metoda + - Równania wielomianowe + - Metoda +- Wielomiany + - Dzielenie wielomianów + - Schemat Hornera + - Dzielenie pisemne + - Rozwiązywanie nierówności + - Rysowanie wykresów wielomianów +``` +# Liczby zespolone +## Potęgowanie +### Metoda +Potęgowanie liczb zespolonych jest dość proste. Wygląda mniej więcej tak: + +$(a + ib)^n = |z|^n \big(\cos(n\varphi) + i \sin(n\varphi)\big)$ + +### Trudność +Jedyne, co może sprawiać trudność, to przerabianie kąta \(\varphi\) na radiany oraz stosowanie wzorów redukcyjnych. Z wprawą staje się to jednak łatwiejsze. + +Przykład poprawnej redukcji kąta: + +$cos\frac{5\pi}{6} = \cos\Big(\pi - \frac{\pi}{6}\Big) = -\cos\frac{\pi}{6} = -\frac{\sqrt{3}}{2}.$ + +Najważniejsze (chyba) wzory redukcyjne przy takich przeliczeniach: +![](../../../media/Pasted%20image%2020251116121244.png) + +### Mnożenie/dzielenie potęgowanych liczb zespolonych +Wygląda strasznie, ale nie jest wiele bardziej skomplikowane. Korzystamy z właściwości funkcji trygonometrycznych: + +$z_1^n \cdot z_2^m = |z_1|^n \cdot |z_2|^m \Big(\cos(n\varphi_1 + m\varphi_2) + i \sin(n\varphi_1 + m\varphi_2)\Big)$ + + +Z dzieleniem jest tak samo, tylko zamiast dodawać kąty, odejmujemy je, a moduły dzielimy: + +$\frac{z_1^n}{z_2^m} = \frac{|z_1|^n}{|z_2|^m} \Big(\cos(n\varphi_1 - m\varphi_2) + i \sin(n\varphi_1 - m\varphi_2)\Big)$ + +## Pierwiastkowanie +### Metoda +Tutaj stosujemy podobną metodę, ale zamiast mnożyć przez \(n\) w argumentach, dzielimy przez stopień pierwiastka i pamiętamy, że pierwiastków jest kilka (w zależności od stopnia). + +$\sqrt[n]{r(\cos\varphi + i\sin\varphi)} = \sqrt[n]{r} \Big(\cos\frac{\varphi+2k\pi}{n} + i \sin\frac{\varphi+2k\pi}{n}\Big), \quad k=0,1,\dots,n-1$ + +Tak bardziej po ludzku: +- Rozwiązań pierwiastka w liczbach zespolonych jest tyle jaki jest stopień pierwiastka. Dla $sqrt(z)^6$ będzie 6 rozwiązań. +- To znaczy, że będziemy musieli policzyć 6 różnych wyników. +- Rozwiązania "indexujemy" jak tablice w programowaniu. Od 0 do n-1. +- Czyli liczymy sobie $k_0, k_1, k_2, ..., k_{n-1}$ i w miejsce k podstawiamy rozwiązanie które liczymy. +Dość prosta sprawa! + +## Pierwiastki kwadratowe +### Czym się różnią od zwykłych? +Nie liczymy tego zwykłym wzorem (nie wiem czemu, nie chce mi sie sprawdzać). +### Jak to liczyć? +Tworzymy sobie prosty układ równań, który zawsze będzie wyglądał tak samo. +$$ \begin{cases} +a^2-b^2 &= \Re(z) \\ +2ab &= \Im(z) \\ +a^2 + b^2 &= |z| +\end{cases} +$$ +Jego budowa wynika bezpośrednio z właściwości liczb zespolonych. +$z = a + ib \quad \implies \quad z^2 = (a+ib)^2 = a^2 - b^2 + 2abi$ + +Po prawej stronie układu podstawiamy sobie liczby. +Odejmujemy 3 od 1, wtedy mamy b. +a podstawiamy do drugiego równania i liczymy na jego podstawie a. +a może być wtedy na +/-, w zależności od znaku b. Dlatego mamy zestaw 2 rozwiązań. +W liczbach zespolonych jest tyle rozwiązań jaki jest stopień pierwiastka, więc wszystko się zgadza. +## Równania +### Metoda +Równania to są tak naprawdę zwykłe funkcje kwadratowe/wielomiany, z tą różnicą, że teraz liczymy w zbiorze liczb zespolonych. Co to znaczy? To znaczy, że możemy policzyć wynik nawet, gdy $\Delta<0$ ! +Cała logika operacji na liczbach zespolonych pozostaje taka sama. + +## Równania wielomianowe +### Metoda +Tutaj musimy przekształcić to do formy $z^n = k$ a potem przedstawić k w formie trygonometrycznej i spierwiastkować do stopnia n. + +Albo policzyć z funkcji kwadratowej. + +# Wielomiany +## Dzielenie wielomianów +### Schemat Hornera +[matemaks](https://www.matemaks.pl/schemat-hornera.html) +![](../../../media/Pasted%20image%2020251116135721.png) + +### Dzielenie pisemne +[matemaks](https://www.matemaks.pl/dzielenie-wielomianow.html) +No generalnie działa to tak samo jak dzielenie pisemne zwykłych liczb. + +## Rozwiązywanie nierówności +Żeby rozwiązać nierówność trzeba narysować wykres funkcji i zobaczyć na jakich przedziałach spełniony jest warunek. + +#### Rysowanie wykresów wielomianów +Żeby narysować wykres wielomianu: +- Musi być on przedstawiony w postaci iloczynowej +- Muszą być wyznaczone jego miejsca zerowe. +- Zaczynamy od prawej strony +- Jeżeli współczynnik kierunkowy jest ujemny to zaczynamy od dołu, jeśli dodatni do od góry +- Rysujemy linię do najbliższego miejsca zerowego +- Jeśli potęga przy tym miejscu zerowym jest parzysta to wykres się odbija i nie przebija osi y +- Jeśli potęga jest nieparzysta to wykres przebija oś y + +Tym sposobem można narysować wykres wielomianu i rozwiązać dzięki niemu nierówność. \ No newline at end of file