From a18cbaf8978eefe9b56bb2b49c62dbe1e023baec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=A4=A9=E6=B5=A9?= Date: Thu, 14 May 2026 15:36:26 +0800 Subject: [PATCH] vault backup: 2026-05-14 15:36:26 --- .obsidian/app.json | 4 +- .obsidian/community-plugins.json | 13 +- .obsidian/graph.json | 22 + .obsidian/plugins/export-graph-view/main.js | 22 + .../plugins/export-graph-view/manifest.json | 11 + .../plugins/export-graph-view/styles.css | 119 + .obsidian/plugins/mermaid-tools/data.json | 792 +++++ .obsidian/plugins/mermaid-tools/main.js | 2633 +++++++++++++++++ .obsidian/plugins/mermaid-tools/manifest.json | 11 + .obsidian/plugins/mermaid-tools/styles.css | 149 + .obsidian/workspace.json | 34 +- README.md | 67 + 动画.gif | Bin 0 -> 693404 bytes 未命名.canvas | 8 + 14 files changed, 3869 insertions(+), 16 deletions(-) create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/plugins/export-graph-view/main.js create mode 100644 .obsidian/plugins/export-graph-view/manifest.json create mode 100644 .obsidian/plugins/export-graph-view/styles.css create mode 100644 .obsidian/plugins/mermaid-tools/data.json create mode 100644 .obsidian/plugins/mermaid-tools/main.js create mode 100644 .obsidian/plugins/mermaid-tools/manifest.json create mode 100644 .obsidian/plugins/mermaid-tools/styles.css create mode 100644 README.md create mode 100644 动画.gif create mode 100644 未命名.canvas diff --git a/.obsidian/app.json b/.obsidian/app.json index 9e26dfe..76fcd24 100644 --- a/.obsidian/app.json +++ b/.obsidian/app.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "showLineNumber": false +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 574a981..e4494a1 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -1,11 +1,10 @@ [ + "export-graph-view", + "mermaid-tools", "obsidian-git", - "obsidian-tasks-plugin", - "pdf-plus", -<<<<<<< HEAD - "advanced-canvas", "obsidian-plantuml", -======= ->>>>>>> origin/main - "tasks-calendar-wrapper" + "pdf-plus", + "obsidian-tasks-plugin", + "tasks-calendar-wrapper", + "advanced-canvas" ] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..e21a18d --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": false +} \ No newline at end of file diff --git a/.obsidian/plugins/export-graph-view/main.js b/.obsidian/plugins/export-graph-view/main.js new file mode 100644 index 0000000..3e63080 --- /dev/null +++ b/.obsidian/plugins/export-graph-view/main.js @@ -0,0 +1,22 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var v=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var C=Object.prototype.hasOwnProperty;var F=(c,t)=>{for(var i in t)v(c,i,{get:t[i],enumerable:!0})},O=(c,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of k(t))!C.call(c,s)&&s!==i&&v(c,s,{get:()=>t[s],enumerable:!(e=E(t,s))||e.enumerable});return c};var A=c=>O(v({},"__esModule",{value:!0}),c);var L={};F(L,{default:()=>b});module.exports=A(L);var M={exportFormat:"mmd",includeOrphans:!1,includeAttachments:!1,lastExported:"",includeWeights:!1,relationshipStrategy:"tags",weightThreshold:1,subgraphs:!1,direction:"TD",maxEPerV:10,enableAutoBridge:!0,manualBackoff:!1,maxNodes:40,maxRelationships:60,maxTags:10};var h=require("obsidian"),N=class extends h.PluginSettingTab{constructor(t,i){super(t,i),this.plugin=i}display(){let{containerEl:t}=this;t.empty(),this.plugin.settings.viewMode?this.plugin.settings.viewMode==="singleGraph"?this.singleGraph(t):this.plugin.settings.viewMode==="fullGraph"&&this.fullGraph(t):this.singleOrFull(t)}singleOrFull(t){let i=t.createDiv({cls:"egv-choice-container"});i.createEl("h2",{text:"Change default settings",cls:"egv-choice-header"}),i.createEl("p",{text:"Select the focus you want to tweak settings on",cls:"egv-choice-description"});let e=i.createDiv({cls:"egv-cards-container"}),s=e.createDiv({cls:"egv-choice-card"});s.createDiv({cls:"egv-card-icon single-parent-icon"}),s.createEl("h3",{text:"Single-parent focus"}),s.createEl("p",{text:"Snapshot relationships from a single tag or note"});let n=new h.ButtonComponent(s.createDiv({cls:"egv-card-button-container"})).setButtonText("Change settings").setCta().onClick(async()=>{this.plugin.settings.viewMode="singleGraph",await this.plugin.saveSettings(),this.display()}),a=e.createDiv({cls:"egv-choice-card"});a.createDiv({cls:"egv-card-icon full-graph-icon"}),a.createEl("h3",{text:"Full vault focus"}),a.createEl("p",{text:"Snapshot your vault from a wider angle"});let o=new h.ButtonComponent(a.createDiv({cls:"egv-card-button-container"})).setButtonText("Change settings").setCta().onClick(async()=>{this.plugin.settings.viewMode="fullGraph",await this.plugin.saveSettings(),this.display()})}singleGraph(t){let i=t.createDiv({cls:"single-div"});new h.ButtonComponent(i).setIcon("arrow-left").setTooltip("Back to main choices").onClick(async()=>{this.plugin.settings.viewMode=void 0,await this.plugin.saveSettings(),this.display()}),i.createEl("h2",{text:"Single parent graph settings"});let e=t.createDiv({cls:"sg-div"});new h.Setting(e).setName("Parent node type").setDesc("Set your graph to draw from either your chosen tag or chosen note").addDropdown(s=>s.addOption("singleTag","Tag").addOption("singleNote","Note").setValue(this.plugin.settings.relationshipStrategy||"singleTag").onChange(async n=>{this.plugin.settings.relationshipStrategy=n,await this.plugin.saveSettings(),this.display()})),this.plugin.settings.relationshipStrategy==="singleTag"?new h.Setting(e).setName("Parent tag").setDesc("Enter the tag to use as your graph parent (without #)").addText(s=>s.setPlaceholder("Enter tag").setValue(this.plugin.settings.rootTag||"").onChange(async n=>{this.plugin.settings.rootTag=n,await this.plugin.saveSettings()})):this.plugin.settings.relationshipStrategy==="singleNote"&&new h.Setting(e).setName("Parent note").setDesc("Enter the title of the note to use as your graph parent").addText(s=>s.setPlaceholder("Enter note title").setValue(this.plugin.settings.rootNote||"").onChange(async n=>{this.plugin.settings.rootNote=n,await this.plugin.saveSettings()})),this.displayFormatSettings(t)}fullGraph(t){let i=t.createDiv({cls:"fgh"});new h.ButtonComponent(i).setIcon("arrow-left").setTooltip("Back to main choices").onClick(async()=>{this.plugin.settings.viewMode=void 0,await this.plugin.saveSettings(),this.display()}),i.createEl("h2",{text:"Full graph settings"});let e=t.createDiv({cls:"full-div"});new h.Setting(e).setName("Relationship between notes").setDesc("Choose how your notes are organised").addDropdown(s=>s.addOption("tags","by tags").addOption("internalLinks","by internal links").addOption("folders","by folders").setValue(this.plugin.settings.relationshipStrategy||"tags").onChange(async n=>{this.plugin.settings.relationshipStrategy=n,await this.plugin.saveSettings(),this.display()})),new h.Setting(e).setName("Include orphan notes").setDesc("Whether to include notes with no relationship to other notes by default").addToggle(s=>s.setValue(this.plugin.settings.includeOrphans).onChange(async n=>{this.plugin.settings.includeOrphans=n,await this.plugin.saveSettings()})),this.displayFormatSettings(t)}displayFormatSettings(t){let i=t.createDiv({cls:"formset-div"});i.createEl("h3",{text:"Export format settings"}),new h.Setting(i).setName("Export format").setDesc("Choose either a .mmd (Mermaid) or .dot (Graphviz) file").addDropdown(e=>e.addOption("mmd",".mmd").addOption("dot",".dot").setValue(this.plugin.settings.exportFormat).onChange(async s=>{this.plugin.settings.exportFormat=s,await this.plugin.saveSettings(),this.display()})),new h.Setting(i).setName("Include attachments").setDesc("Whether to include any non-markdown files by default").addToggle(e=>e.setValue(this.plugin.settings.includeAttachments).onChange(async s=>{this.plugin.settings.includeAttachments=s,await this.plugin.saveSettings()})),new h.Setting(i).setName("Include relationship weights").setDesc("Store relationship importance metadata in the exported file").addToggle(e=>e.setValue(this.plugin.settings.includeWeights).onChange(async s=>{this.plugin.settings.includeWeights=s,await this.plugin.saveSettings()})),this.plugin.settings.exportFormat==="dot"?this.displayDotSettings(i):this.plugin.settings.exportFormat==="mmd"&&this.displayMermaidSettings(i)}displayDotSettings(t){let i=t.createDiv({cls:"dotsetdiv"});i.createEl("h4",{text:"DOT format settings"}),new h.Setting(i).setName("Weight threshold").setDesc("Only include important relationships above a minimum score").addSlider(e=>e.setLimits(0,10,1).setValue(this.plugin.settings.weightThreshold||0).setDynamicTooltip().onChange(async s=>{this.plugin.settings.weightThreshold=s,await this.plugin.saveSettings()})),new h.Setting(i).setName("Subgraph clustering").setDesc("Whether to cluster notes by their common tag or folder").addToggle(e=>e.setValue(this.plugin.settings.subgraphs||!1).onChange(async s=>{this.plugin.settings.subgraphs=s,await this.plugin.saveSettings()}))}displayMermaidSettings(t){let i=t.createDiv({cls:"mmdsetdiv"});i.createEl("h4",{text:"Mermaid settings"}),new h.Setting(i).setName("Direction").setDesc("Mermaid layout").addDropdown(e=>e.addOption("TD","Top down").addOption("LR","Left right").addOption("RL","Right left").addOption("BT","Bottom top").setValue(this.plugin.settings.direction||"TD").onChange(async s=>{this.plugin.settings.direction=s,await this.plugin.saveSettings()})),new h.Setting(i).setName("Max relationships per node").setDesc("Optionally limit the number of relationships to render on elements").addSlider(e=>e.setLimits(0,20,1).setValue(this.plugin.settings.maxEPerV||0).setDynamicTooltip().onChange(async s=>{this.plugin.settings.maxEPerV=s,await this.plugin.saveSettings()})),this.plugin.settings.viewMode!=="singleGraph"&&this.backoffStrategy(i)}backoffStrategy(t){let i=t.createDiv({cls:"backoff-div"});new h.Setting(i).setName("Enable auto graph reduction").setDesc("NOTE: Turning this off may produce unreadable Mermaid graphs").addToggle(e=>e.setValue(this.plugin.settings.enableAutoBridge).onChange(async s=>{this.plugin.settings.enableAutoBridge=s,await this.plugin.saveSettings(),this.display()})),this.plugin.settings.enableAutoBridge===!0&&(new h.Setting(i).setName("Manual limit configuration").setDesc("Enable manual configuration of graph limits (advanced)").addToggle(e=>e.setValue(this.plugin.settings.manualBackoff||!1).onChange(async s=>{this.plugin.settings.manualBackoff=s,await this.plugin.saveSettings(),this.display()})),this.plugin.settings.manualBackoff===!0&&(new h.Setting(i).setName("Max elements").setDesc("Limit the number of elements included").addSlider(e=>e.setLimits(10,100,5).setValue(Math.min(this.plugin.settings.maxNodes||40,100)).setDynamicTooltip().onChange(async s=>{this.plugin.settings.maxNodes=s,await this.plugin.saveSettings()})),new h.Setting(i).setName("Max relationships").setDesc("Limit the relationships included").addSlider(e=>e.setLimits(10,75,5).setValue(Math.min(this.plugin.settings.maxRelationships||60,75)).setDynamicTooltip().onChange(async s=>{this.plugin.settings.maxRelationships=s,await this.plugin.saveSettings()})),new h.Setting(i).setName("Max tags").setDesc("Limit the number of tags included").addSlider(e=>e.setLimits(5,50,1).setValue(Math.min(this.plugin.settings.maxTags||10,50)).setDynamicTooltip().onChange(async s=>{this.plugin.settings.maxTags=s,await this.plugin.saveSettings()}))))}};var p=require("obsidian"),T=class extends p.Modal{constructor(t,i){super(t),this.plugin=i}onOpen(){let{contentEl:t}=this;t.empty(),t.addClass("egv-export-modal");let i=t.createDiv({cls:"egv-file-row"}),e=new p.Setting(i).setName("File name").setClass("egv-filename-setting"),s=new p.TextComponent(e.controlEl).setValue(this.filename).onChange(d=>this.filename=d),n=new p.ButtonComponent(i).setButtonText("Export").setCta().onClick(()=>this.export()),a=t.createDiv({cls:"egv-section"});a.createEl("h3",{text:"Graph type"});let o=new p.Setting(a).setName("Graph scope").addDropdown(d=>d.addOption("fullGraph","Full graph").addOption("singleGraph","Single parent graph").setValue(this.plugin.settings.viewMode||"notSet").onChange(async y=>{this.plugin.settings.viewMode=y,await this.plugin.saveSettings(),this.strategy(a)}));this.strategy(a);let g=t.createDiv({cls:"egv-section"});g.createEl("h3",{text:"Format settings"}),new p.Setting(g).setName("Export format").addDropdown(d=>d.addOption("mmd",".mmd").addOption("dot",".dot").setValue(this.plugin.settings.exportFormat).onChange(async y=>{this.plugin.settings.exportFormat=y,await this.plugin.saveSettings(),this.mmdOrDot(g)})),this.mmdOrDot(g)}strategy(t){let i=t.querySelector(".options-div");i&&i.remove();let e=t.createDiv({cls:"options-div"});this.plugin.settings.viewMode==="singleGraph"?(new p.Setting(e).setName("Parent type").addDropdown(s=>s.addOption("singleTag","Tag").addOption("singleNote","Note").setValue(this.plugin.settings.relationshipStrategy).onChange(async n=>{this.plugin.settings.relationshipStrategy=n,await this.plugin.saveSettings(),this.singleOrFull(e)})),this.singleOrFull(e)):(new p.Setting(e).setName("Relationship type").addDropdown(s=>s.addOption("tags","By tags").addOption("internalLinks","By links").addOption("folders","By folders").setValue(this.plugin.settings.relationshipStrategy).onChange(async n=>{this.plugin.settings.relationshipStrategy=n,await this.plugin.saveSettings()})),new p.Setting(e).setName("Include orphans").setDesc("Include notes with no relationships to other notes").addToggle(s=>s.setValue(this.plugin.settings.includeOrphans).onChange(async n=>{this.plugin.settings.includeOrphans=n,await this.plugin.saveSettings()})))}singleOrFull(t){let i=t.querySelector(".single-diplay-div");i&&i.remove();let e=t.createDiv({cls:"single-display-div"});this.plugin.settings.relationshipStrategy==="singleTag"?new p.Setting(e).setName("Parent tag").setDesc("Enter tag without #").addText(s=>s.setValue(this.plugin.settings.rootTag||"").onChange(async n=>{this.plugin.settings.rootTag=n,await this.plugin.saveSettings()})):new p.Setting(e).setName("Parent note").setDesc("Enter note title").addText(s=>s.setValue(this.plugin.settings.rootNote||"").onChange(async n=>{this.plugin.settings.rootNote=n,await this.plugin.saveSettings()}))}mmdOrDot(t){let i=t.querySelector(".format-div");i&&i.remove();let e=t.createDiv({cls:"format-div"});this.plugin.settings.exportFormat==="mmd"?new p.Setting(e).setName("Mermaid layout").addDropdown(s=>s.addOption("TD","Top down").addOption("BT","Bottom to top").addOption("LR","Left to right").addOption("RL","Right to left").setValue(this.plugin.settings.direction||"TD").onChange(async n=>{this.plugin.settings.direction=n,await this.plugin.saveSettings()})):this.plugin.settings.exportFormat==="dot"&&(new p.Setting(e).setName("Weight threshold").setDesc("Only include important relationships with a minimum score").addSlider(s=>s.setLimits(1,10,1).setValue(this.plugin.settings.weightThreshold||10).setDynamicTooltip().onChange(async n=>{this.plugin.settings.weightThreshold=n,await this.plugin.saveSettings()})),new p.Setting(e).setName("Use subgraphs").addToggle(s=>s.setValue(this.plugin.settings.subgraphs||!1).onChange(async n=>{this.plugin.settings.subgraphs=n,await this.plugin.saveSettings()})))}export(){if(!this.filename){new p.Notice("Please enter a filename");return}this.plugin.exportGraph(this.filename),this.close()}onClose(){let{contentEl:t}=this;t.empty()}};var m=require("obsidian");function w(c){return c.replace(/[^a-zA-Z0-9]/g,"_")}function D(c){return c.replace(/"/g,'\\"')}var x=class{constructor(t,i){this.app=t,this.settings=i}buildGraph(){let t={nodes:[],relationships:[]};return this.harvestVault(t),this.settings.exportFormat==="dot"?this.runDotSettings(t):this.runMMDSettings(t),t}harvestVault(t){let i={cache:this.app.metadataCache,vault:this.app.vault,nodes:new Map,relationships:[],settings:this.settings,getN(){return Array.from(this.nodes.keys()).filter(e=>e.endsWith(".md")).length},getT(){return Array.from(this.nodes.values()).filter(e=>e.type==="tag").length},getK(){let e=new Map;return this.relationships.forEach(n=>{let a=this.nodes.get(n.target),o=this.nodes.get(n.source);(a==null?void 0:a.type)==="tag"&&(o==null?void 0:o.type)==="note"&&(e.has(n.source)||e.set(n.source,0),e.set(n.source,e.get(n.source)+1))}),Array.from(e.values()).reduce((n,a)=>n+a,0)/Math.max(1,e.size)},getOptimalN(e=150){let s=this.getT(),n=this.getK();return Math.floor(Math.sqrt(2*e*s/Math.max(1,n)))},isTearing(e=150){if(this.settings.viewMode==="singleGraph"||this.settings.enableAutoBridge===!1)return!1;let s=this.getN(),n=this.getT(),a=this.getK(),o=0,g=new Map;this.relationships.forEach(r=>{let l=this.nodes.get(r.target),f=this.nodes.get(r.source);(l==null?void 0:l.type)==="tag"&&(f==null?void 0:f.type)==="note"&&(g.has(r.target)||g.set(r.target,[]),g.get(r.target).push(r.source))}),g.forEach(r=>{r.length>1&&(o+=r.length*(r.length-1)/2)});let d=100,y=Math.min(e,75);return s>d||o>y||s+o>150||n>50}};switch(this.reapNotes(i),this.reapTags(i),this.reapLinks(i),this.reapFolders(i),this.settings.includeAttachments&&this.clusterAttachments(i),this.settings.relationshipStrategy){case"tags":this.tagNetwork(i);break;case"internalLinks":this.linkNetwork(i);break;case"folders":this.plantFolders(i);break;case"singleTag":this.singleTagNetwork(i);break;case"singleNote":this.singleNoteNetwork(i);break}t.nodes=Array.from(i.nodes.values()),t.relationships=i.relationships}reapNotes(t){let i=t.vault.getMarkdownFiles();for(let e of i)t.nodes.set(e.path,{id:(0,m.normalizePath)(e.path),name:e.basename,type:"note"})}reapTags(t){var s;let i=t.vault.getMarkdownFiles(),e=new Set;for(let n of i){let a=t.cache.getFileCache(n),o=[];if((s=a==null?void 0:a.frontmatter)!=null&&s.tags){let g=a.frontmatter.tags;Array.isArray(g)?o.push(...g):typeof g=="string"&&o.push(g)}o.forEach(g=>{e.add(g),t.nodes.has(g)||t.nodes.set(g,{id:g,name:g,type:"tag"}),t.relationships.push({source:n.path,target:g,weight:1})})}}reapLinks(t){let i=t.vault.getMarkdownFiles();for(let e of i){let s=t.cache.getFileCache(e);s!=null&&s.links&&s.links.forEach(n=>{let a=t.vault.getAbstractFileByPath(n.link+".md");a&&a instanceof m.TFile&&t.relationships.push({source:e.path,target:a.path,weight:1})})}}reapFolders(t){let i=t.vault.getAllLoadedFiles().filter(e=>e instanceof m.TFolder);for(let e of i)t.nodes.set(e.name,{id:e.name,name:e.name,type:"folder"}),e.children.forEach(s=>{s instanceof m.TFile&&s.extension==="md"&&t.relationships.push({source:s.path,target:e.name,weight:1})})}clusterAttachments(t){let i=t.vault.getFiles();for(let e of i)if(e.extension!==".md"){t.nodes.set(e.path,{id:(0,m.normalizePath)(e.path),name:e.basename,type:"attachment"});let s=t.vault.getMarkdownFiles();for(let n of s){let a=t.cache.getFileCache(n);a!=null&&a.embeds&&a.embeds.forEach(o=>{(o.link===e.path||o.link===e.basename)&&t.relationships.push({source:n.path,target:e.path,weight:1})})}}}tagNetwork(t){console.log("Before tagNetwork:",t.nodes.size,"nodes,",t.relationships.length,"relationships");let i=new Map,e=[];t.nodes.forEach((n,a)=>{(n.type==="note"||n.type==="tag")&&i.set(a,n)}),t.relationships.forEach(n=>{let a=t.nodes.get(n.target),o=t.nodes.get(n.source);(a==null?void 0:a.type)==="tag"&&(o==null?void 0:o.type)==="note"&&e.push(n)}),t.settings.exportFormat==="mmd"&&({...t,nodes:new Map(i),relationships:[...e]}.isTearing()?(console.log("Singularity detected - applying backoff strategy"),this.backoffSingularity(i,e,t)):console.log("Graph size within acceptable limits")),t.settings.includeOrphans||this.prune(i,e);let s=i.size+e.length;console.log("After tagNetwork:",i.size,"nodes,",e.length,"relationships",`(${s} total elements)`),s>200&&console.warn("Graph may still be too large for optimal Mermaid rendering"),t.nodes=i,t.relationships=e}linkNetwork(t){let i=new Map,e=[];t.nodes.forEach((s,n)=>{s.type==="note"&&i.set(n,s)}),t.relationships.forEach(s=>{let n=t.nodes.get(s.target),a=t.nodes.get(s.source);(n==null?void 0:n.type)==="note"&&(a==null?void 0:a.type)==="note"&&e.push(s)}),t.settings.includeOrphans||this.prune(i,e),t.nodes=i,t.relationships=e}plantFolders(t){let i=new Map,e=[];t.nodes.forEach((s,n)=>{(s.type==="note"||s.type==="folder")&&i.set(n,s)}),t.relationships.forEach(s=>{let n=t.nodes.get(s.target),a=t.nodes.get(s.source);(n==null?void 0:n.type)==="folder"&&(a==null?void 0:a.type)==="note"&&e.push(s)}),t.settings.includeOrphans||this.prune(i,e),t.nodes=i,t.relationships=e}singleTagNetwork(t){let i=this.settings.rootTag||"",e=new Map,s=[];if(i&&t.nodes.has(i))e.set(i,t.nodes.get(i));else{new m.Notice(`Tag "${i}" not found in your vault`);return}t.relationships.forEach(n=>{let a=t.nodes.get(n.target),o=t.nodes.get(n.source);(n.target===i&&(o==null?void 0:o.type)==="note"||n.source===i&&(a==null?void 0:a.type)==="note")&&(n.target===i&&o?e.set(n.source,o):n.source===i&&a&&e.set(n.target,a),s.push(n))}),t.nodes=e,t.relationships=s}singleNoteNetwork(t){var a;let i=this.settings.rootNote||"",e=new Map,s=[],n=(a=Array.from(t.nodes.entries()).find(([o,g])=>g.type==="note"&&g.name===i))==null?void 0:a[0];if(!n){new m.Notice(`Note "${i}" not found in your vault`);return}e.set(n,t.nodes.get(n)),t.relationships.forEach(o=>{if(o.source===n){let g=t.nodes.get(o.target);g&&(e.set(o.target,g),s.push(o))}else if(o.target===n){let g=t.nodes.get(o.source);g&&(e.set(o.source,g),s.push(o))}}),t.nodes=e,t.relationships=s}backoffSingularity(t,i,e){let s=e.settings.maxNodes||40,n=e.settings.maxRelationships||60,a=e.settings.maxTags||10;console.log("Starting backoff task");let o=new Map;i.forEach(r=>{let l=e.nodes.get(r.target);(l==null?void 0:l.type)==="tag"&&(o.has(r.target)||o.set(r.target,[]),o.get(r.target).push(r.source))});let g=Array.from(o.entries()).sort((r,l)=>l[1].length-r[1].length).slice(0,a).map(([r])=>r),d=new Map;g.forEach(r=>{var l;(l=o.get(r))==null||l.forEach(f=>{d.set(f,(d.get(f)||0)+1)})});let y=new Set(Array.from(d.entries()).sort((r,l)=>l[1]-r[1]).slice(0,s-g.length).map(([r])=>r));t.clear(),i.length=0,g.forEach(r=>{let l=e.nodes.get(r);l&&t.set(r,l)}),y.forEach(r=>{let l=e.nodes.get(r);l&&t.set(r,l)});let S=new Set;e.relationships.forEach(r=>{var l,f;if(t.has(r.source)&&t.has(r.target)&&S.size{let l=`${r.source}-${r.target}`;t.has(r.source)&&t.has(r.target)&&!S.has(l)&&S.size{e.add(n.source),e.add(n.target)});let s=new Map;t.forEach((n,a)=>{e.has(a)&&s.set(a,n)}),t.clear(),s.forEach((n,a)=>t.set(a,n))}runDotSettings(t){this.settings.includeWeights&&this.settings.weightThreshold&&(t.relationships=t.relationships.filter(i=>i.weight>=this.settings.weightThreshold)),this.settings.subgraphs&&this.clusterSubgraphs(t)}clusterSubgraphs(t){t.nodes.forEach(i=>{i.subgraph=i.type})}runMMDSettings(t){if(this.settings.maxEPerV){let i=[],e=new Map,s=[...t.relationships].sort((n,a)=>a.weight-n.weight);for(let n of s){let a=e.get(n.source)||0;a{let s=w(e.id);i+=` ${s}["${D(e.name)}"] +`}),t.relationships.forEach(e=>{let s=w(e.source),n=w(e.target);i+=` ${s} --> ${n} +`}),i}runDotPrinter(t){let e=`digraph ${this.app.vault.getName()} { +`;if(e+=` rankdir=LR; +`,e+=` node [shape=box, style=rounded]; +`,this.settings.subgraphs){let s=new Map;t.nodes.forEach(n=>{let a=n.subgraph||n.type;s.has(a)||s.set(a,[]),s.get(a).push(n)}),s.forEach((n,a)=>{e+=` subgraph cluster_${w(a)} { +`,e+=` label="${a}"; +`,e+=` style=rounded; +`,e+=` color="#cccccc"; +`,n.forEach(o=>{let g=w(o.id),d=o.type==="attachment"?'fillcolor="#ffcc80", style="filled,rounded"':'fillcolor="#e3f2fd", style="filled,rounded"';e+=` "${g}" [label="${D(o.name)}", ${d}]; +`}),e+=` } +`})}else t.nodes.forEach(s=>{let n=w(s.id),a=s.type==="attachment"?'fillcolor="#ffcc80", style="filled,rounded"':'fillcolor="#e3f2fd", style="filled,rounded"';e+=` "${n}" [label="${D(s.name)}", ${a}]; +`});return t.relationships.forEach(s=>{let n=w(s.source),a=w(s.target),o=this.settings.includeWeights&&s.weight>1?` [weight=${s.weight}]`:"";e+=` "${n}" -> "${a}"${o}; +`}),e+="}",e}};var u=require("obsidian"),b=class extends u.Plugin{async onload(){await this.loadSettings(),this.whisperer=new x(this.app,this.settings),this.addRibbonIcon("inspection-panel","Export graph view",()=>{new T(this.app,this).open()}),this.addCommand({id:"export-graph",name:"Export graph to file",callback:()=>{new T(this.app,this).open()}}),this.addSettingTab(new N(this.app,this))}async loadSettings(){this.settings=Object.assign({},M,await this.loadData())}async saveSettings(){await this.saveData(this.settings)}async exportGraph(t=""){try{let i=this.whisperer.buildGraph(),e;if(t)e=(0,u.normalizePath)(t);else{let n=this.app.vault.getName();e=(0,u.normalizePath)(`${n}-graph-data`)}this.settings.lastExported=e,await this.saveSettings();let s;return this.settings.exportFormat==="mmd"?s=await this.exportMermaid(i,e):s=await this.exportDot(i,e),new u.Notice(`Success! Exported to ${(0,u.normalizePath)(this.showWhereExported(s))}`,5e3),s}catch(i){return new u.Notice(`There's a problem: ${i.message}`),null}}async exportMermaid(t,i){let e=this.whisperer.runMMDPrinter(t),s=(0,u.normalizePath)(`${i}.mmd`);return await this.app.vault.create(s,e),s}async exportDot(t,i){let e=this.whisperer.runDotPrinter(t),s=(0,u.normalizePath)(`${i}.dot`);return await this.app.vault.create(s,e),s}showWhereExported(t=""){let i;if(t)i=(0,u.normalizePath)(t);else{let s=this.app.vault.getName();i=(0,u.normalizePath)(`${s}-graph-data`)}return`${this.app.vault.getName()}/${i}`}}; + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/export-graph-view/manifest.json b/.obsidian/plugins/export-graph-view/manifest.json new file mode 100644 index 0000000..296532f --- /dev/null +++ b/.obsidian/plugins/export-graph-view/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "export-graph-view", + "name": "Export Graph View", + "version": "1.2.2", + "minAppVersion": "0.15.0", + "description": "Export your vault's graph view to mermaid and dot format.", + "author": "Sean McGhee", + "authorUrl": "https://www.seantiz.com", + "fundingUrl": "https://github.com/sponsors/seantiz", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/export-graph-view/styles.css b/.obsidian/plugins/export-graph-view/styles.css new file mode 100644 index 0000000..9124f4a --- /dev/null +++ b/.obsidian/plugins/export-graph-view/styles.css @@ -0,0 +1,119 @@ +.quick-export-button, +.export-button { + font-size: 16px; + padding: 20px; +} + +.metadata-section { + text-align: center; + margin-top: 20px; + padding: 15px; + border: 1px solid #ccc; + border-radius: 5px; +} + +.metadata-section p { + margin: 5px 0; + font-size: 0.9em; +} + +.help-text { + font-size: 12px; + border-bottom: none; + margin-top: 20px; +} + +.root-notice { + font-size: 12px; +} + +.section-button-section { + text-align: right; + margin-top: 50px; +} + +.view-button-section { + display: flex; + justify-content: space-around; + margin-top: 20px; +} + +.egv-choice-container { + max-width: 800px; + margin: 0 auto; + padding: 20px; + } + + .egv-choice-header { + text-align: center; + margin-bottom: 10px; + } + + .egv-choice-description { + text-align: center; + margin-bottom: 30px; + color: var(--text-muted); + } + + .egv-cards-container { + display: flex; + gap: 30px; + justify-content: center; + flex-wrap: wrap; + } + + .egv-choice-card { + background-color: var(--background-secondary); + border-radius: 10px; + padding: 25px; + min-width: 250px; + flex: 1; + display: flex; + flex-direction: column; + transition: transform 0.2s, box-shadow 0.2s; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + cursor: pointer; + max-width: 350px; + } + + .egv-choice-card:hover { + transform: translateY(-5px); + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); + } + + .egv-choice-card h3 { + margin-top: 15px; + margin-bottom: 10px; + text-align: center; + } + + .egv-choice-card p { + flex-grow: 1; + color: var(--text-muted); + margin-bottom: 20px; + text-align: center; + } + + .egv-card-icon { + height: 60px; + margin: 0 auto 15px; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + width: 60px; + } + + .single-parent-icon { + background-image: url('data:image/svg+xml;utf8,'); + } + + .full-graph-icon { + background-image: url('data:image/svg+xml;utf8,'); + } + + .egv-card-button-container { + text-align: center; + } + + .egv-card-button-container button { + width: 100%; diff --git a/.obsidian/plugins/mermaid-tools/data.json b/.obsidian/plugins/mermaid-tools/data.json new file mode 100644 index 0000000..54ec0e0 --- /dev/null +++ b/.obsidian/plugins/mermaid-tools/data.json @@ -0,0 +1,792 @@ +{ + "elements": [ + { + "id": "ce8a0064-979c-4d60-a26c-89a3b1802216", + "categoryId": "flowchart", + "description": "a simple flowchart with top to down direction", + "content": "flowchart TD\nStart --> Stop", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "81190b75-35a7-45af-a8d4-94e69ee69980", + "categoryId": "flowchart", + "description": "a simple flowchart with left to right direction", + "content": "flowchart LR\nStart --> Stop", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "e13cedc2-1b11-48d7-bba6-78e307e1cb57", + "categoryId": "flowchart", + "description": "A node with round edges", + "content": "id1(Some text)", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "8e7188cf-932f-452d-89e2-0c5adc0b1dcb", + "categoryId": "flowchart", + "description": "A stadium-shaped node", + "content": "id1([Some text])", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "74abe0f5-d7cd-4830-a37b-0489d7449328", + "categoryId": "flowchart", + "description": "A node in a cylindrical shape", + "content": "id1[(Database)]", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "5fd59c6c-0c37-46c4-a959-bff6446af538", + "categoryId": "flowchart", + "description": "Circle", + "content": "id1((Some text))", + "sortingOrder": 6, + "isPinned": false + }, + { + "id": "e58fe5be-675f-44b0-a337-830d36d2684c", + "categoryId": "flowchart", + "description": "Rhombus", + "content": "id1{Some text}", + "sortingOrder": 7, + "isPinned": false + }, + { + "id": "417a32f2-b1af-4b94-a370-0d69e96f35b4", + "categoryId": "flowchart", + "description": "Hexagon", + "content": "id1{{Some text}}", + "sortingOrder": 8, + "isPinned": false + }, + { + "id": "17487f2b-d361-49ff-bb9f-b51b32ce9d92", + "categoryId": "flowchart", + "description": "Parallelogram skewed right", + "content": "id1[/Some text/]", + "sortingOrder": 9, + "isPinned": false + }, + { + "id": "0c09e005-999c-4f69-8c22-33c22e82d9d8", + "categoryId": "flowchart", + "description": "Parallelogram skewed left", + "content": "id1[\\Some text\\]", + "sortingOrder": 10, + "isPinned": false + }, + { + "id": "6122256d-84a4-495c-8f9f-1d6836068691", + "categoryId": "flowchart", + "description": "Trapezoid", + "content": "A[/Some text\\]", + "sortingOrder": 11, + "isPinned": false + }, + { + "id": "6d31176d-fac1-49c5-8058-4e4dc2c6e5dd", + "categoryId": "flowchart", + "description": "Trapezoid upside down", + "content": "A[\\Some text/]", + "sortingOrder": 12, + "isPinned": false + }, + { + "id": "410f9e4d-4629-45f7-949f-f798a9a0b6b9", + "categoryId": "flowchart", + "description": "Double circle node", + "content": "id1(((Some text)))", + "sortingOrder": 13, + "isPinned": false + }, + { + "id": "e144a699-ba5e-43ea-8729-0d7f1b9e34d2", + "categoryId": "flowchart", + "description": "A link with arrow head", + "content": "A-->B", + "sortingOrder": 14, + "isPinned": false + }, + { + "id": "6340f678-124b-4a42-9f47-6015412d1b98", + "categoryId": "flowchart", + "description": "An open link", + "content": "A --- B", + "sortingOrder": 15, + "isPinned": false + }, + { + "id": "0586c4d4-4dc1-4ce1-867d-57e43a932f0b", + "categoryId": "flowchart", + "description": "Text on links", + "content": "A-- This is the text! ---B", + "sortingOrder": 16, + "isPinned": false + }, + { + "id": "eb1e584b-5aaf-46f5-bfc9-44b3c406dc2d", + "categoryId": "flowchart", + "description": "A link with arrow head and text", + "content": "A-->|text|B", + "sortingOrder": 17, + "isPinned": false + }, + { + "id": "ca8afaf7-7505-4f22-b95b-9a5cff53cad6", + "categoryId": "flowchart", + "description": "Dotted link", + "content": "A-.->B", + "sortingOrder": 18, + "isPinned": false + }, + { + "id": "4dffe292-4204-4da3-911d-1025a05ad46c", + "categoryId": "flowchart", + "description": "Thick link", + "content": "A ==> B", + "sortingOrder": 19, + "isPinned": false + }, + { + "id": "5ad57178-87bb-488b-b138-b3084d5364c5", + "categoryId": "flowchart", + "description": "Invisible link", + "content": "A ~~~ B", + "sortingOrder": 20, + "isPinned": false + }, + { + "id": "b9e7daaa-5915-4a1c-a481-96ac137d16f9", + "categoryId": "flowchart", + "description": "Link with circle edge", + "content": "A --o B", + "sortingOrder": 21, + "isPinned": false + }, + { + "id": "a053922d-c961-4e28-b1d2-6321b249c0ae", + "categoryId": "flowchart", + "description": "Link with cross edge", + "content": "A --x B", + "sortingOrder": 22, + "isPinned": false + }, + { + "id": "187bf51e-e384-4a39-803c-78bb18b78c8b", + "categoryId": "flowchart", + "description": "Subgraph", + "content": "subgraph one\na1-->a2\nend", + "sortingOrder": 14, + "isPinned": false + }, + { + "id": "9857856d-2fd4-4e0d-b058-76855215da37", + "categoryId": "sequenceDiagram", + "description": "a simple sequence diagram", + "content": "sequenceDiagram\nAlice->>John: Hello John, how are you?\nJohn-->>Alice: Great!\nAlice-)John: See you later!", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "47c587ff-c1e1-41f3-9e29-3bc54cce4cb1", + "categoryId": "sequenceDiagram", + "description": "a simple sequence diagram with actors", + "content": "sequenceDiagram\nactor Alice\nactor John\nAlice->>John: Hello John, how are you?\nJohn-->>Alice: Great!\nAlice-)John: See you later!", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "2ae592c0-806e-4640-945f-2dbc576ccdf1", + "categoryId": "classDiagram", + "description": "sample class", + "content": "class Duck{\n +String beakColor\n +swim()\n +quack()\n }", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "467423fe-2d69-49f4-83ca-9314227a2cc6", + "categoryId": "classDiagram", + "description": "sample class", + "content": "class BankAccount\n BankAccount : +String owner\n BankAccount : +Bigdecimal balance\n BankAccount : +deposit(amount)\n BankAccount : +withdrawal(amount)", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "c8275c79-b289-4d75-9ae5-65c3267e94d5", + "categoryId": "classDiagram", + "description": "generic class", + "content": "class Square~Shape~{\n int id\n List~int~ position\n setPoints(List~int~ points)\n getPoints() List~int~\n }\n \n Square : -List~string~ messages\n Square : +setMessages(List~string~ messages)\n Square : +getMessages() List~string~", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "8b09aee4-6260-4ec6-970c-c67168d4ac76", + "categoryId": "classDiagram", + "description": "inheritance", + "content": "classA <|-- classB", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "4ec30fef-b3cc-4bcc-8f4a-fda668776a36", + "categoryId": "classDiagram", + "description": "composition", + "content": "classC *-- classD", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "ea60828f-8ab8-4c4e-88a3-bbaf77a10472", + "categoryId": "classDiagram", + "description": "aggregation", + "content": "classE o-- classF", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "99c0ed8a-8d15-4c1e-b315-4bbb3cabfd64", + "categoryId": "classDiagram", + "description": "association", + "content": "classG <-- classH", + "sortingOrder": 6, + "isPinned": false + }, + { + "id": "9bc99a1a-c6f0-4a43-98aa-d18be64bdde7", + "categoryId": "classDiagram", + "description": "solid link", + "content": "classI -- classJ", + "sortingOrder": 7, + "isPinned": false + }, + { + "id": "71380dcd-4c29-4907-86d9-36bb822df062", + "categoryId": "classDiagram", + "description": "dependency", + "content": "classK <.. classL", + "sortingOrder": 8, + "isPinned": false + }, + { + "id": "6855b6ca-61ee-46d1-b937-085c56f96c2d", + "categoryId": "classDiagram", + "description": "realization", + "content": "classM <|.. classN", + "sortingOrder": 9, + "isPinned": false + }, + { + "id": "702caa95-72a3-449f-9da2-a406f9996be0", + "categoryId": "classDiagram", + "description": "dashed link", + "content": "classO .. classP", + "sortingOrder": 10, + "isPinned": false + }, + { + "id": "fa3c801c-d9ec-4506-a501-28472e7b8c78", + "categoryId": "classDiagram", + "description": "two-way relation", + "content": "Animal <|--|> Zebra", + "sortingOrder": 11, + "isPinned": false + }, + { + "id": "f590de96-2011-4df5-bef1-a068832bff8a", + "categoryId": "classDiagram", + "description": "sample class diagram", + "content": "classDiagram\n Animal <|-- Duck\n Animal <|-- Fish\n Animal <|-- Zebra\n Animal : +int age\n Animal : +String gender\n Animal: +isMammal()\n Animal: +mate()\n class Duck{\n +String beakColor\n +swim()\n +quack()\n }\n class Fish{\n -int sizeInFeet\n -canEat()\n }\n class Zebra{\n +bool is_wild\n +run()\n }", + "sortingOrder": 12, + "isPinned": false + }, + { + "id": "b16b29d7-3ecb-45fa-9327-eac5239bd953", + "categoryId": "stateDiagram", + "description": "a sample state diagram", + "content": "stateDiagram-v2\n [*] --> Still\n Still --> [*]\n \n Still --> Moving\n Moving --> Still\n Moving --> Crash\n Crash --> [*]", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "ef56afbc-aa32-4708-a191-3481d673e08a", + "categoryId": "stateDiagram", + "description": "a sample state diagram with left-to-right direction", + "content": "stateDiagram-v2\n direction LR\n [*] --> Still\n Still --> [*]\n \n Still --> Moving\n Moving --> Still\n Moving --> Crash\n Crash --> [*]", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "b04c48f5-2bb4-4fc2-be33-03f6597e2499", + "categoryId": "stateDiagram", + "description": "node with description", + "content": "s2 : This is a state description", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "3dedb769-542f-40dd-99c3-98dd0ed974e6", + "categoryId": "stateDiagram", + "description": "a transition", + "content": "s1 --> s2", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "530b0984-485f-4bad-9d6e-80f5398fc01b", + "categoryId": "stateDiagram", + "description": "a transition with label", + "content": "s1 --> s2: A transition", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "bcec3d91-0232-4e6a-82ed-6581356d6183", + "categoryId": "stateDiagram", + "description": "composite state", + "content": "\n [*] --> First\n state First {\n [*] --> second\n second --> [*]\n }", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "1dcba01a-ac61-4171-8fc9-a616eaed11f2", + "categoryId": "stateDiagram", + "description": "diagram with choice", + "content": "stateDiagram-v2\n state if_state <>\n [*] --> IsPositive\n IsPositive --> if_state\n if_state --> False: if n < 0\n if_state --> True : if n >= 0", + "sortingOrder": 6, + "isPinned": false + }, + { + "id": "57ad4f8a-33cd-43b5-8910-910edf8e7dec", + "categoryId": "stateDiagram", + "description": "diagram with fork", + "content": "stateDiagram-v2\n state fork_state <>\n [*] --> fork_state\n fork_state --> State2\n fork_state --> State3\n \n state join_state <>\n State2 --> join_state\n State3 --> join_state\n join_state --> State4\n State4 --> [*]", + "sortingOrder": 7, + "isPinned": false + }, + { + "id": "4e9935b8-d200-4b71-a054-e959765e7825", + "categoryId": "stateDiagram", + "description": "a diagram with concurrency", + "content": "stateDiagram-v2\n [*] --> Active\n \n state Active {\n [*] --> NumLockOff\n NumLockOff --> NumLockOn : EvNumLockPressed\n NumLockOn --> NumLockOff : EvNumLockPressed\n --\n [*] --> CapsLockOff\n CapsLockOff --> CapsLockOn : EvCapsLockPressed\n CapsLockOn --> CapsLockOff : EvCapsLockPressed\n --\n [*] --> ScrollLockOff\n ScrollLockOff --> ScrollLockOn : EvScrollLockPressed\n ScrollLockOn --> ScrollLockOff : EvScrollLockPressed\n }", + "sortingOrder": 8, + "isPinned": false + }, + { + "id": "26791328-43e6-430f-ad2e-76821214a95d", + "categoryId": "entityRelationshipDiagram", + "description": "a sample entity relationship diagram", + "content": "erDiagram\n CUSTOMER ||--o{ ORDER : places\n ORDER ||--|{ LINE-ITEM : contains\n CUSTOMER }|..|{ DELIVERY-ADDRESS : uses", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "cb07fc4d-ae9b-4da3-a938-3a1b0ab0c2ac", + "categoryId": "entityRelationshipDiagram", + "description": "an entity", + "content": " CUSTOMER {\n string name\n string custNumber\n string sector\n }", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "dcae6673-6476-4466-a97a-8a0732574801", + "categoryId": "entityRelationshipDiagram", + "description": "one-to-many relationship", + "content": "A ||--|{ B : label", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "c2ad1cfb-ea4e-4d69-8bf4-b85ecc5b9134", + "categoryId": "entityRelationshipDiagram", + "description": "many-to-many relationship", + "content": "A }|--|{ B : label", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "118f56be-db56-49a7-80ab-3326f7336f3d", + "categoryId": "entityRelationshipDiagram", + "description": "one-to-one relationship", + "content": "A ||--|| B : label", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "bec578a5-0e42-4d24-a0dd-12b4fc25daa5", + "categoryId": "entityRelationshipDiagram", + "description": "many-to-one relationship", + "content": "A }|--|| B : label", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "32d99372-8321-44dd-80c3-1a080644fa5c", + "categoryId": "entityRelationshipDiagram", + "description": "zero/one-to-one relationship", + "content": "A |o--|| B : label", + "sortingOrder": 6, + "isPinned": false + }, + { + "id": "2113de04-a4ee-4436-a3ab-435650b23414", + "categoryId": "entityRelationshipDiagram", + "description": "one-to-one/zero relationship", + "content": "A ||--o| B : label", + "sortingOrder": 7, + "isPinned": false + }, + { + "id": "30293f49-1289-4976-88d9-34d75c0a6852", + "categoryId": "entityRelationshipDiagram", + "description": "zero-or-more-to-one relationship", + "content": "A }o--|| B : label", + "sortingOrder": 8, + "isPinned": false + }, + { + "id": "dc49bc4c-2ea6-495d-9d38-28c33e078f77", + "categoryId": "entityRelationshipDiagram", + "description": "one-to-zero-or-more relationship", + "content": "A ||--o{ B : label", + "sortingOrder": 9, + "isPinned": false + }, + { + "id": "5c53fcab-e772-4dcd-ab06-fc941fa168fa", + "categoryId": "entityRelationshipDiagram", + "description": "zero-or-more-to-many relationship", + "content": "A }o--|{ B : label", + "sortingOrder": 10, + "isPinned": false + }, + { + "id": "89b04b4e-1e06-4b5c-ae55-fa28f6e08b0b", + "categoryId": "entityRelationshipDiagram", + "description": "many-to-zero-or-more relationship", + "content": "A }|--o{ B : label", + "sortingOrder": 11, + "isPinned": false + }, + { + "id": "98ae0edc-7b11-4fcb-b049-94684070b79e", + "categoryId": "userJourneyDiagram", + "description": "a sample user journey diagram", + "content": "journey\n title My working day\n section Go to work\n Make tea: 5: Me\n Go upstairs: 3: Me\n Do work: 1: Me, Cat\n section Go home\n Go downstairs: 5: Me\n Sit down: 5: Me", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "452612b5-f9c4-4406-b150-6d1ffdf52bb4", + "categoryId": "userJourneyDiagram", + "description": "a step in user journey", + "content": " Step Title: 5: ActorName", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "d1b92887-20a1-4430-b26d-4d41aad84da6", + "categoryId": "ganttChart", + "description": "simple gantt chart", + "content": "gantt\n title A Gantt Diagram\n dateFormat YYYY-MM-DD\n section Section\n A task :a1, 2014-01-01, 30d\n Another task :after a1 , 20d\n section Another\n Task in sec :2014-01-12 , 12d\n another task : 24d", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "00ddbe10-684f-4d8c-9e4c-7e933c6f3392", + "categoryId": "ganttChart", + "description": "rich gantt chart", + "content": "gantt\n dateFormat YYYY-MM-DD\n title Adding GANTT diagram functionality to mermaid\n excludes weekends\n \n section A section\n Completed task :done, des1, 2014-01-06,2014-01-08\n Active task :active, des2, 2014-01-09, 3d\n Future task : des3, after des2, 5d\n Future task2 : des4, after des3, 5d\n \n section Critical tasks\n Completed task in the critical line :crit, done, 2014-01-06,24h\n Implement parser and jison :crit, done, after des1, 2d\n Create tests for parser :crit, active, 3d\n Future task in critical line :crit, 5d\n Create tests for renderer :2d\n Add to mermaid :1d\n Functionality added :milestone, 2014-01-25, 0d\n \n section Documentation\n Describe gantt syntax :active, a1, after des1, 3d\n Add gantt diagram to demo page :after a1 , 20h\n Add another diagram to demo page :doc1, after a1 , 48h\n \n section Last section\n Describe gantt syntax :after doc1, 3d\n Add gantt diagram to demo page :20h\n Add another diagram to demo page :48h", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "ede911d1-d519-494a-845a-33a2347a4b41", + "categoryId": "ganttChart", + "description": "milestones example", + "content": "gantt\n dateFormat HH:mm\n axisFormat %H:%M\n Initial milestone : milestone, m1, 17:49,2min\n taska2 : 10min\n taska3 : 5min\n Final milestone : milestone, m2, 18:14, 2min", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "9c641239-521b-4e7d-8680-41400e20eb49", + "categoryId": "pieChart", + "description": "sample pie chart", + "content": "pie title /r/obsidianmd posts by type\n \"Graphs\" : 85\n \"Dashboards\" : 14\n \"Tips\" : 1", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "90fbf382-435d-495b-8c14-a1b758602fec", + "categoryId": "pieChart", + "description": "sample pie chart with values shown in legend", + "content": "pie showData title /r/obsidianmd posts by type\n \"Graphs\" : 85\n \"Dashboards\" : 14\n \"Tips\" : 1", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "4b42a05a-b81e-47ab-a23b-3d6beee6a68f", + "categoryId": "requirementDiagram", + "description": "sample requirements diagram", + "content": " requirementDiagram\n\n requirement test_req {\n id: 1\n text: the test text.\n risk: high\n verifymethod: test\n }\n \n element test_entity {\n type: simulation\n }\n \n test_entity - satisfies -> test_req", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "e0407d51-0c91-45bb-b7d1-6eb669382bd8", + "categoryId": "requirementDiagram", + "description": "sample requirements diagram", + "content": "element customElement {\n type: customType\n docref: customDocRef\n }", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "6f808e9d-4bcc-423e-8372-2283940e285d", + "categoryId": "requirementDiagram", + "description": "a requirement with high risk", + "content": "functionalRequirement myReq {\n id: reqId\n text: someText\n risk: High\n verifymethod: analysis\n }", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "09458e5f-b3af-4f5e-a43f-c96d585bcaee", + "categoryId": "requirementDiagram", + "description": "sample requirements diagram", + "content": "interfaceRequirement myReq2 {\n id: reqId\n text: someText\n risk: Medium\n verifymethod: demonstration\n }", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "5581967d-eb25-4cd5-b161-eb9345585012", + "categoryId": "requirementDiagram", + "description": "sample requirements diagram", + "content": "designConstraint myReq3 {\n id: reqId\n text: someText\n risk: Low\n verifymethod: test\n }", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "4df85f3a-0a21-46ef-94b2-1f7ac20659ba", + "categoryId": "gitGraph", + "description": "simple git graph", + "content": "gitGraph\n commit\n commit\n branch develop\n checkout develop\n commit\n commit\n checkout main\n merge develop\n commit\n commit", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "241c6930-88da-438a-85c9-dc1ca8f4b3e1", + "categoryId": "gitGraph", + "description": "tagged commit", + "content": "commit id: \"Normal\" tag: \"v1.0.0\"", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "6d1bb248-32bd-4c7f-af21-a276e52d5bf6", + "categoryId": "gitGraph", + "description": "reverse commit", + "content": "commit id: \"Reverse\" type: REVERSE", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "65a0b460-cf18-4c7b-a39a-cc8c4ad11578", + "categoryId": "gitGraph", + "description": "highlighted commit", + "content": "commit id: \"Highlight\" type: HIGHLIGHT", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "7cd136f5-4519-49d3-90d8-f845c59f606f", + "categoryId": "gitGraph", + "description": "reverse commit", + "content": "commit id: \"Reverse\" type: REVERSE", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "69d9ed7f-aebd-4dda-a920-05f486dfddba", + "categoryId": "gitGraph", + "description": "git graph with cherry-pick", + "content": "gitGraph\n commit id: \"ZERO\"\n branch develop\n commit id:\"A\"\n checkout main\n commit id:\"ONE\"\n checkout develop\n commit id:\"B\"\n checkout main\n commit id:\"TWO\"\n cherry-pick id:\"A\"\n commit id:\"THREE\"\n checkout develop\n commit id:\"C\"", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "ddc3aff8-b403-4ef7-a8ca-b3dbe8a75272", + "categoryId": "mindmap", + "description": "a simple mindmap", + "content": "mindmap\n Root\n A\n B\n C", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "fc3097e2-fc2c-463e-ac54-e6a91c8573e9", + "categoryId": "mindmap", + "description": "square", + "content": "id[I am a square]", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "76e932cc-e140-41f5-96e4-eef5225569ad", + "categoryId": "mindmap", + "description": "rounded square", + "content": "id(I am a rounded square)", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "2943cf70-a543-4847-99da-5428de6cb5df", + "categoryId": "mindmap", + "description": "circle", + "content": "id((I am a circle))", + "sortingOrder": 4, + "isPinned": false + }, + { + "id": "b8cc4c57-a8b1-462e-8558-ddd780339d98", + "categoryId": "mindmap", + "description": "bang", + "content": "id))I am a bang((", + "sortingOrder": 5, + "isPinned": false + }, + { + "id": "9ab2c4b7-e2c3-42cd-a846-3fcc36cb0868", + "categoryId": "mindmap", + "description": "cloud", + "content": "id)I am a cloud(", + "sortingOrder": 6, + "isPinned": false + }, + { + "id": "be1122b5-fdd0-4958-b305-7f08b2fd3e76", + "categoryId": "mindmap", + "description": "hexagon", + "content": "id{{I am a hexagon}}", + "sortingOrder": 7, + "isPinned": false + }, + { + "id": "2cf43034-8777-405c-935d-81a27aba2f64", + "categoryId": "mindmap", + "description": "default", + "content": "I am the default shape", + "sortingOrder": 8, + "isPinned": false + }, + { + "id": "b3e18945-295e-4a29-a954-fd3e1c80caff", + "categoryId": "mindmap", + "description": "sample mindmap", + "content": "mindmap\n root((mindmap))\n Origins\n Long history\n Popularisation\n British popular psychology author Tony Buzan\n Research\n On effectiveness
and features\n On Automatic creation\n Uses\n Creative techniques\n Strategic planning\n Argument mapping\n Tools\n Pen and paper\n Mermaid", + "sortingOrder": 9, + "isPinned": false + }, + { + "id": "6af01e26-c328-448f-9c0e-7293ccf65ad0", + "categoryId": "timeline", + "description": "sample timeline", + "content": "timeline\n\t\ttitle History of Social Media Platform\n\t\t2002 : LinkedIn\n\t\t2004 : Facebook\n\t\t\t : Google\n\t\t2005 : Youtube\n\t\t2006 : Twitter", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "58536caa-6860-457b-8fd8-96f132530355", + "categoryId": "timeline", + "description": "timeline with grouping", + "content": "timeline\n\t\ttitle Timeline of Industrial Revolution\n\t\tsection 17th-20th century\n\t\t\tIndustry 1.0 : Machinery, Water power, Steam
power\n\t\t\tIndustry 2.0 : Electricity, Internal combustion engine, Mass production\n\t\t\tIndustry 3.0 : Electronics, Computers, Automation\n\t\tsection 21st century\n\t\t\tIndustry 4.0 : Internet, Robotics, Internet of Things\n\t\t\tIndustry 5.0 : Artificial intelligence, Big data,3D printing", + "sortingOrder": 2, + "isPinned": false + }, + { + "id": "6c7b156f-319b-46c1-a0f7-e62be3571fc9", + "categoryId": "timeline", + "description": "timeline with Forest theme. see the docs for additional themes", + "content": "%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%%\n\t\ttimeline\n\t\t\ttitle History of Social Media Platform\n\t\t\t 2002 : LinkedIn\n\t\t\t 2004 : Facebook : Google\n\t\t\t 2005 : Youtube\n\t\t\t 2006 : Twitter\n\t\t\t 2007 : Tumblr\n\t\t\t 2008 : Instagram\n\t\t\t 2010 : Pinterest", + "sortingOrder": 3, + "isPinned": false + }, + { + "id": "db1924f2-1c69-4e15-a665-74a062d12cd4", + "categoryId": "quadrantChart", + "description": "sample quadrant chart", + "content": "quadrantChart\n\t\ttitle Reach and engagement of campaigns\n\t\tx-axis Low Reach --> High Reach\n\t\ty-axis Low Engagement --> High Engagement\n\t\tquadrant-1 We should expand\n\t\tquadrant-2 Need to promote\n\t\tquadrant-3 Re-evaluate\n\t\tquadrant-4 May be improved\n\t\tCampaign A: [0.3, 0.6]\n\t\tCampaign B: [0.45, 0.23]\n\t\tCampaign C: [0.57, 0.69]\n\t\tCampaign D: [0.78, 0.34]\n\t\tCampaign E: [0.40, 0.34]\n\t\tCampaign F: [0.35, 0.78]", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "f8259530-5179-4548-a42c-e672a7c28ac0", + "categoryId": "quadrantChart", + "description": "themed quadrant chart", + "content": "%%{init: {\"quadrantChart\": {\"chartWidth\": 400, \"chartHeight\": 400}, \"themeVariables\": {\"quadrant1TextFill\": \"#ff0000\"} }}%%\n\t\tquadrantChart\n\t\t x-axis Urgent --> Not Urgent\n\t\t y-axis Not Important --> \"Important ❤\"\n\t\t quadrant-1 Plan\n\t\t quadrant-2 Do\n\t\t quadrant-3 Delegate\n\t\t quadrant-4 Delete", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "8a28b8a2-f058-414b-b82a-900153d11a2f", + "categoryId": "c4Diagram", + "description": "sample C4 diagram (compatible with PlantUML)", + "content": "C4Context\n\t\ttitle System Context diagram for Internet Banking System\n\t\tEnterprise_Boundary(b0, \"BankBoundary0\") {\n\t\t Person(customerA, \"Banking Customer A\", \"A customer of the bank, with personal bank accounts.\")\n\t\t Person(customerB, \"Banking Customer B\")\n\t\t Person_Ext(customerC, \"Banking Customer C\", \"desc\")\n \n\t\t Person(customerD, \"Banking Customer D\", \"A customer of the bank,
with personal bank accounts.\")\n \n\t\t System(SystemAA, \"Internet Banking System\", \"Allows customers to view information about their bank accounts, and make payments.\")\n \n\t\t Enterprise_Boundary(b1, \"BankBoundary\") {\n \n\t\t\tSystemDb_Ext(SystemE, \"Mainframe Banking System\", \"Stores all of the core banking information about customers, accounts, transactions, etc.\")\n \n\t\t\tSystem_Boundary(b2, \"BankBoundary2\") {\n\t\t\t System(SystemA, \"Banking System A\")\n\t\t\t System(SystemB, \"Banking System B\", \"A system of the bank, with personal bank accounts. next line.\")\n\t\t\t}\n \n\t\t\tSystem_Ext(SystemC, \"E-mail system\", \"The internal Microsoft Exchange e-mail system.\")\n\t\t\tSystemDb(SystemD, \"Banking System D Database\", \"A system of the bank, with personal bank accounts.\")\n \n\t\t\tBoundary(b3, \"BankBoundary3\", \"boundary\") {\n\t\t\t SystemQueue(SystemF, \"Banking System F Queue\", \"A system of the bank.\")\n\t\t\t SystemQueue_Ext(SystemG, \"Banking System G Queue\", \"A system of the bank, with personal bank accounts.\")\n\t\t\t}\n\t\t }\n\t\t}\n \n\t\tBiRel(customerA, SystemAA, \"Uses\")\n\t\tBiRel(SystemAA, SystemE, \"Uses\")\n\t\tRel(SystemAA, SystemC, \"Sends e-mails\", \"SMTP\")\n\t\tRel(SystemC, customerA, \"Sends e-mails to\")\n \n\t\tUpdateElementStyle(customerA, $fontColor=\"red\", $bgColor=\"grey\", $borderColor=\"red\")\n\t\tUpdateRelStyle(customerA, SystemAA, $textColor=\"blue\", $lineColor=\"blue\", $offsetX=\"5\")\n\t\tUpdateRelStyle(SystemAA, SystemE, $textColor=\"blue\", $lineColor=\"blue\", $offsetY=\"-10\")\n\t\tUpdateRelStyle(SystemAA, SystemC, $textColor=\"blue\", $lineColor=\"blue\", $offsetY=\"-40\", $offsetX=\"-50\")\n\t\tUpdateRelStyle(SystemC, customerA, $textColor=\"red\", $lineColor=\"red\", $offsetX=\"-50\", $offsetY=\"20\")\n \n\t\tUpdateLayoutConfig($c4ShapeInRow=\"3\", $c4BoundaryInRow=\"1\")", + "sortingOrder": 1, + "isPinned": false + }, + { + "id": "d476fcb2-171b-407b-a14c-fc229928f3c5", + "categoryId": "sankeyDiagram", + "description": "", + "content": "sankey-beta\n %% source,target,value\n Electricity grid,Over generation / exports,104.453\n Electricity grid,Heating and cooling - homes,113.726\n Electricity grid,H2 conversion,27.14", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "fd51101c-845f-41cc-98ea-cf3d9064f4fe", + "categoryId": "xyChart", + "description": "a sample XYChart diagram", + "content": "xychart-beta\n title \"Sales Revenue\"\n x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec]\n y-axis \"Revenue (in $)\" 4000 --> 11000\n bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]\n line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "4d105a15-f99c-47da-909b-9cf95a3b0d0f", + "categoryId": "packet", + "description": "a sample packet diagram", + "content": "packet-beta\ntitle UDP Packet\n0-15: \"Source Port\"\n16-31: \"Destination Port\"\n32-47: \"Length\"\n48-63: \"Checksum\"\n64-95: \"Data (variable length)\"\n", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "016f803e-9b70-40a9-9ba5-aed11358011f", + "categoryId": "kanban", + "description": "a sample kanban diagram", + "content": "kanban\n Todo\n [Create Documentation]\n docs[Create Blog about the new diagram]\n [In progress]\n id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.]\n id9[Ready for deploy]\n id8[Design grammar]@{ assigned: 'knsv' }\n id10[Ready for test]\n id4[Create parsing tests]@{ ticket: MC-2038, assigned: 'K.Sveidqvist', priority: 'High' }\n id66[last item]@{ priority: 'Very Low', assigned: 'knsv' }\n id11[Done]\n id5[define getData]\n id2[Title of diagram is more than 100 chars when user duplicates diagram with 100 char]@{ ticket: MC-2036, priority: 'Very High'}\n id3[Update DB function]@{ ticket: MC-2037, assigned: knsv, priority: 'High' }\n\n id12[Can't reproduce]\n id3[Weird flickering in Firefox]", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "64c83d61-8d0f-49a1-a719-a333e59d3063", + "categoryId": "block", + "description": "a sample block diagram", + "content": "block-beta\ncolumns 1\n db((\"DB\"))\n blockArrowId6<[\"   \"]>(down)\n block:ID\n A\n B[\"A wide one in the middle\"]\n C\n end\n space\n D\n ID --> D\n C --> D\n style B fill:#969,stroke:#333,stroke-width:4px\n", + "sortingOrder": 0, + "isPinned": false + }, + { + "id": "9ae060df-8b48-4c98-a735-3dbe736b2fcc", + "categoryId": "architecture", + "description": "a sample architecture diagram", + "content": "architecture-beta\n group api(cloud)[API]\n\n service db(database)[Database] in api\n service disk1(disk)[Storage] in api\n service disk2(disk)[Storage] in api\n service server(server)[Server] in api\n\n db:L -- R:server\n disk1:T -- B:server\n disk2:T -- B:db\n", + "sortingOrder": 0, + "isPinned": false + } + ], + "customCategories": [], + "selectedCategoryId": "block", + "defaultCategorySortOrders": {}, + "categoryModifications": {} +} \ No newline at end of file diff --git a/.obsidian/plugins/mermaid-tools/main.js b/.obsidian/plugins/mermaid-tools/main.js new file mode 100644 index 0000000..829d903 --- /dev/null +++ b/.obsidian/plugins/mermaid-tools/main.js @@ -0,0 +1,2633 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// main.ts +var main_exports = {}; +__export(main_exports, { + TRIDENT_ICON_NAME: () => TRIDENT_ICON_NAME, + default: () => MermaidPlugin +}); +module.exports = __toCommonJS(main_exports); +var import_obsidian7 = require("obsidian"); + +// src/elements/sampleDiagrams.ts +var sampleDiagrams = { + EntityRelationshipDiagram: `erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses`, + ClassDiagram: `class BankAccount + BankAccount : +String owner + BankAccount : +Bigdecimal balance + BankAccount : +deposit(amount) + BankAccount : +withdrawal(amount)`, + Flowchart: "flowchart LR\nStart --> Stop", + GanttChart: `gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d`, + GitGraph: `gitGraph + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit`, + PieChart: `pie title /r/obsidianmd posts by type + "Look at my awesome graph" : 85 + "Look at my cool dashboard" : 14 + "Moved from Notion, liking it" : 1`, + RequirementDiagram: ` requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req`, + SequenceDiagram: `sequenceDiagram +Alice->>John: Hello John, how are you? +John-->>Alice: Great! +Alice-)John: See you later!`, + StateDiagram: `stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*]`, + UserJourneyDiagram: `journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me`, + Mindmap: `mindmap + Root + A + B + C`, + Timeline: `timeline + title History of Social Media Platform + 2002 : LinkedIn + 2004 : Facebook + : Google + 2005 : Youtube + 2006 : Twitter`, + QuadrantChart: `quadrantChart + title Reach and engagement of campaigns + x-axis Low Reach --> High Reach + y-axis Low Engagement --> High Engagement + quadrant-1 We should expand + quadrant-2 Need to promote + quadrant-3 Re-evaluate + quadrant-4 May be improved + Campaign A: [0.3, 0.6] + Campaign B: [0.45, 0.23] + Campaign C: [0.57, 0.69] + Campaign D: [0.78, 0.34] + Campaign E: [0.40, 0.34] + Campaign F: [0.35, 0.78]`, + C4Diagram: `C4Context + title System Context diagram for Internet Banking System + Enterprise_Boundary(b0, "BankBoundary0") { + Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") + Person(customerB, "Banking Customer B") + Person_Ext(customerC, "Banking Customer C", "desc") + + Person(customerD, "Banking Customer D", "A customer of the bank,
with personal bank accounts.") + + System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + + Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } + } + } + + BiRel(customerA, SystemAA, "Uses") + BiRel(SystemAA, SystemE, "Uses") + Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") + Rel(SystemC, customerA, "Sends e-mails to") + + UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") + UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") + UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10") + UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50") + UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") + + UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")`, + SankeyDiagram: `sankey-beta + + %% source,target,value + Electricity grid,Over generation / exports,104.453 + Electricity grid,Heating and cooling - homes,113.726 + Electricity grid,H2 conversion,27.14`, + XyChart: `xychart-beta + title "Sales Revenue" + x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] + y-axis "Revenue (in $)" 4000 --> 11000 + bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] + line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]`, + Packet: `packet-beta +title UDP Packet +0-15: "Source Port" +16-31: "Destination Port" +32-47: "Length" +48-63: "Checksum" +64-95: "Data (variable length)" +`, + Kanban: `kanban + Todo + [Create Documentation] + docs[Create Blog about the new diagram] + [In progress] + id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.] + id9[Ready for deploy] + id8[Design grammar]@{ assigned: 'knsv' } + id10[Ready for test] + id4[Create parsing tests]@{ ticket: MC-2038, assigned: 'K.Sveidqvist', priority: 'High' } + id66[last item]@{ priority: 'Very Low', assigned: 'knsv' } + id11[Done] + id5[define getData] + id2[Title of diagram is more than 100 chars when user duplicates diagram with 100 char]@{ ticket: MC-2036, priority: 'Very High'} + id3[Update DB function]@{ ticket: MC-2037, assigned: knsv, priority: 'High' } + + id12[Can't reproduce] + id3[Weird flickering in Firefox]`, + Block: `block-beta +columns 1 + db(("DB")) + blockArrowId6<["   "]>(down) + block:ID + A + B["A wide one in the middle"] + C + end + space + D + ID --> D + C --> D + style B fill:#969,stroke:#333,stroke-width:4px +`, + Architecture: `architecture-beta + group api(cloud)[API] + + service db(database)[Database] in api + service disk1(disk)[Storage] in api + service disk2(disk)[Storage] in api + service server(server)[Server] in api + + db:L -- R:server + disk1:T -- B:server + disk2:T -- B:db +` +}; + +// src/elements/architecture.ts +var architectureElements = [ + { + id: crypto.randomUUID(), + categoryId: "architecture", + description: "a sample architecture diagram", + content: `architecture-beta + group api(cloud)[API] + + service db(database)[Database] in api + service disk1(disk)[Storage] in api + service disk2(disk)[Storage] in api + service server(server)[Server] in api + + db:L -- R:server + disk1:T -- B:server + disk2:T -- B:db +`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/blockDiagram.ts +var blockDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "block", + description: "a sample block diagram", + content: `block-beta +columns 1 + db(("DB")) + blockArrowId6<["   "]>(down) + block:ID + A + B["A wide one in the middle"] + C + end + space + D + ID --> D + C --> D + style B fill:#969,stroke:#333,stroke-width:4px +`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/c4Diagram.ts +var c4DiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "c4Diagram", + description: "sample C4 diagram (compatible with PlantUML)", + content: `C4Context + title System Context diagram for Internet Banking System + Enterprise_Boundary(b0, "BankBoundary0") { + Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.") + Person(customerB, "Banking Customer B") + Person_Ext(customerC, "Banking Customer C", "desc") + + Person(customerD, "Banking Customer D", "A customer of the bank,
with personal bank accounts.") + + System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.") + + Enterprise_Boundary(b1, "BankBoundary") { + + SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.") + + System_Boundary(b2, "BankBoundary2") { + System(SystemA, "Banking System A") + System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.") + } + + System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.") + SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.") + + Boundary(b3, "BankBoundary3", "boundary") { + SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.") + SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.") + } + } + } + + BiRel(customerA, SystemAA, "Uses") + BiRel(SystemAA, SystemE, "Uses") + Rel(SystemAA, SystemC, "Sends e-mails", "SMTP") + Rel(SystemC, customerA, "Sends e-mails to") + + UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red") + UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5") + UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10") + UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50") + UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20") + + UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")`, + sortingOrder: 1, + isPinned: false + } +]; + +// src/elements/classDiagram.ts +var classDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "sample class", + content: `class Duck{ + +String beakColor + +swim() + +quack() + }`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "sample class", + content: `class BankAccount + BankAccount : +String owner + BankAccount : +Bigdecimal balance + BankAccount : +deposit(amount) + BankAccount : +withdrawal(amount)`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "generic class", + content: `class Square~Shape~{ + int id + List~int~ position + setPoints(List~int~ points) + getPoints() List~int~ + } + + Square : -List~string~ messages + Square : +setMessages(List~string~ messages) + Square : +getMessages() List~string~`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "inheritance", + content: "classA <|-- classB", + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "composition", + content: "classC *-- classD", + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "aggregation", + content: "classE o-- classF", + sortingOrder: 5, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "association", + content: "classG <-- classH", + sortingOrder: 6, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "solid link", + content: "classI -- classJ", + sortingOrder: 7, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "dependency", + content: "classK <.. classL", + sortingOrder: 8, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "realization", + content: "classM <|.. classN", + sortingOrder: 9, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "dashed link", + content: "classO .. classP", + sortingOrder: 10, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "two-way relation", + content: "Animal <|--|> Zebra", + sortingOrder: 11, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "classDiagram", + description: "sample class diagram", + content: `classDiagram + Animal <|-- Duck + Animal <|-- Fish + Animal <|-- Zebra + Animal : +int age + Animal : +String gender + Animal: +isMammal() + Animal: +mate() + class Duck{ + +String beakColor + +swim() + +quack() + } + class Fish{ + -int sizeInFeet + -canEat() + } + class Zebra{ + +bool is_wild + +run() + }`, + sortingOrder: 12, + isPinned: false + } +]; + +// src/elements/entityRelationshipDiagram.ts +var entityRelationshipDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "a sample entity relationship diagram", + content: `erDiagram + CUSTOMER ||--o{ ORDER : places + ORDER ||--|{ LINE-ITEM : contains + CUSTOMER }|..|{ DELIVERY-ADDRESS : uses`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "an entity", + content: ` CUSTOMER { + string name + string custNumber + string sector + }`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "one-to-many relationship", + content: `A ||--|{ B : label`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "many-to-many relationship", + content: `A }|--|{ B : label`, + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "one-to-one relationship", + content: `A ||--|| B : label`, + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "many-to-one relationship", + content: `A }|--|| B : label`, + sortingOrder: 5, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "zero/one-to-one relationship", + content: `A |o--|| B : label`, + sortingOrder: 6, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "one-to-one/zero relationship", + content: `A ||--o| B : label`, + sortingOrder: 7, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "zero-or-more-to-one relationship", + content: `A }o--|| B : label`, + sortingOrder: 8, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "one-to-zero-or-more relationship", + content: `A ||--o{ B : label`, + sortingOrder: 9, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "zero-or-more-to-many relationship", + content: `A }o--|{ B : label`, + sortingOrder: 10, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "entityRelationshipDiagram", + description: "many-to-zero-or-more relationship", + content: `A }|--o{ B : label`, + sortingOrder: 11, + isPinned: false + } +]; + +// src/elements/flowchart.ts +var flowchartElements = [ + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "a simple flowchart with top to down direction", + content: `flowchart TD +Start --> Stop`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "a simple flowchart with left to right direction", + content: "flowchart LR\nStart --> Stop", + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "A node with round edges", + content: "id1(Some text)", + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "A stadium-shaped node", + content: "id1([Some text])", + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "A node in a cylindrical shape", + content: "id1[(Database)]", + sortingOrder: 5, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Circle", + content: "id1((Some text))", + sortingOrder: 6, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Rhombus", + content: "id1{Some text}", + sortingOrder: 7, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Hexagon", + content: "id1{{Some text}}", + sortingOrder: 8, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Parallelogram skewed right", + content: "id1[/Some text/]", + sortingOrder: 9, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Parallelogram skewed left", + content: "id1[\\Some text\\]", + sortingOrder: 10, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Trapezoid", + content: "A[/Some text\\]", + sortingOrder: 11, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Trapezoid upside down", + content: "A[\\Some text/]", + sortingOrder: 12, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Double circle node", + content: "id1(((Some text)))", + sortingOrder: 13, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "A link with arrow head", + content: "A-->B", + sortingOrder: 14, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "An open link", + content: "A --- B", + sortingOrder: 15, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Text on links", + content: "A-- This is the text! ---B", + sortingOrder: 16, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "A link with arrow head and text", + content: "A-->|text|B", + sortingOrder: 17, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Dotted link", + content: "A-.->B", + sortingOrder: 18, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Thick link", + content: "A ==> B", + sortingOrder: 19, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Invisible link", + content: "A ~~~ B", + sortingOrder: 20, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Link with circle edge", + content: "A --o B", + sortingOrder: 21, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Link with cross edge", + content: "A --x B", + sortingOrder: 22, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "flowchart", + description: "Subgraph", + content: "subgraph one\na1-->a2\nend", + sortingOrder: 14, + isPinned: false + } +]; + +// src/elements/ganntChart.ts +var ganttChartElements = [ + { + id: crypto.randomUUID(), + categoryId: "ganttChart", + description: "simple gantt chart", + content: `gantt + title A Gantt Diagram + dateFormat YYYY-MM-DD + section Section + A task :a1, 2014-01-01, 30d + Another task :after a1 , 20d + section Another + Task in sec :2014-01-12 , 12d + another task : 24d`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "ganttChart", + description: "rich gantt chart", + content: `gantt + dateFormat YYYY-MM-DD + title Adding GANTT diagram functionality to mermaid + excludes weekends + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + Functionality added :milestone, 2014-01-25, 0d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page :20h + Add another diagram to demo page :48h`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "ganttChart", + description: "milestones example", + content: `gantt + dateFormat HH:mm + axisFormat %H:%M + Initial milestone : milestone, m1, 17:49,2min + taska2 : 10min + taska3 : 5min + Final milestone : milestone, m2, 18:14, 2min`, + sortingOrder: 2, + isPinned: false + } +]; + +// src/elements/gitGraph.ts +var gitGraphElements = [ + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "simple git graph", + content: `gitGraph + commit + commit + branch develop + checkout develop + commit + commit + checkout main + merge develop + commit + commit`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "tagged commit", + content: `commit id: "Normal" tag: "v1.0.0"`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "reverse commit", + content: `commit id: "Reverse" type: REVERSE`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "highlighted commit", + content: `commit id: "Highlight" type: HIGHLIGHT`, + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "reverse commit", + content: `commit id: "Reverse" type: REVERSE`, + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "gitGraph", + description: "git graph with cherry-pick", + content: `gitGraph + commit id: "ZERO" + branch develop + commit id:"A" + checkout main + commit id:"ONE" + checkout develop + commit id:"B" + checkout main + commit id:"TWO" + cherry-pick id:"A" + commit id:"THREE" + checkout develop + commit id:"C"`, + sortingOrder: 5, + isPinned: false + } +]; + +// src/elements/kanban.ts +var kanbanElements = [ + { + id: crypto.randomUUID(), + categoryId: "kanban", + description: "a sample kanban diagram", + content: `kanban + Todo + [Create Documentation] + docs[Create Blog about the new diagram] + [In progress] + id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.] + id9[Ready for deploy] + id8[Design grammar]@{ assigned: 'knsv' } + id10[Ready for test] + id4[Create parsing tests]@{ ticket: MC-2038, assigned: 'K.Sveidqvist', priority: 'High' } + id66[last item]@{ priority: 'Very Low', assigned: 'knsv' } + id11[Done] + id5[define getData] + id2[Title of diagram is more than 100 chars when user duplicates diagram with 100 char]@{ ticket: MC-2036, priority: 'Very High'} + id3[Update DB function]@{ ticket: MC-2037, assigned: knsv, priority: 'High' } + + id12[Can't reproduce] + id3[Weird flickering in Firefox]`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/mindMap.ts +var mindMapElements = [ + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "a simple mindmap", + content: `mindmap + Root + A + B + C`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "square", + content: `id[I am a square]`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "rounded square", + content: `id(I am a rounded square)`, + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "circle", + content: `id((I am a circle))`, + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "bang", + content: `id))I am a bang((`, + sortingOrder: 5, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "cloud", + content: `id)I am a cloud(`, + sortingOrder: 6, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "hexagon", + content: `id{{I am a hexagon}}`, + sortingOrder: 7, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "default", + content: `I am the default shape`, + sortingOrder: 8, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "mindmap", + description: "sample mindmap", + content: `mindmap + root((mindmap)) + Origins + Long history + Popularisation + British popular psychology author Tony Buzan + Research + On effectiveness
and features + On Automatic creation + Uses + Creative techniques + Strategic planning + Argument mapping + Tools + Pen and paper + Mermaid`, + sortingOrder: 9, + isPinned: false + } +]; + +// src/elements/packet.ts +var packetElements = [ + { + id: crypto.randomUUID(), + categoryId: "packet", + description: "a sample packet diagram", + content: `packet-beta +title UDP Packet +0-15: "Source Port" +16-31: "Destination Port" +32-47: "Length" +48-63: "Checksum" +64-95: "Data (variable length)" +`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/pieChart.ts +var pieChartElements = [ + { + id: crypto.randomUUID(), + categoryId: "pieChart", + description: "sample pie chart", + content: `pie title /r/obsidianmd posts by type + "Graphs" : 85 + "Dashboards" : 14 + "Tips" : 1`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "pieChart", + description: "sample pie chart with values shown in legend", + content: `pie showData title /r/obsidianmd posts by type + "Graphs" : 85 + "Dashboards" : 14 + "Tips" : 1`, + sortingOrder: 1, + isPinned: false + } +]; + +// src/elements/quadrant.ts +var quadrantElements = [ + { + id: crypto.randomUUID(), + categoryId: "quadrantChart", + description: "sample quadrant chart", + content: `quadrantChart + title Reach and engagement of campaigns + x-axis Low Reach --> High Reach + y-axis Low Engagement --> High Engagement + quadrant-1 We should expand + quadrant-2 Need to promote + quadrant-3 Re-evaluate + quadrant-4 May be improved + Campaign A: [0.3, 0.6] + Campaign B: [0.45, 0.23] + Campaign C: [0.57, 0.69] + Campaign D: [0.78, 0.34] + Campaign E: [0.40, 0.34] + Campaign F: [0.35, 0.78]`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "quadrantChart", + description: "themed quadrant chart", + content: `%%{init: {"quadrantChart": {"chartWidth": 400, "chartHeight": 400}, "themeVariables": {"quadrant1TextFill": "#ff0000"} }}%% + quadrantChart + x-axis Urgent --> Not Urgent + y-axis Not Important --> "Important \u2764" + quadrant-1 Plan + quadrant-2 Do + quadrant-3 Delegate + quadrant-4 Delete`, + sortingOrder: 1, + isPinned: false + } +]; + +// src/elements/requirementDiagram.ts +var requirementDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "requirementDiagram", + description: "sample requirements diagram", + content: ` requirementDiagram + + requirement test_req { + id: 1 + text: the test text. + risk: high + verifymethod: test + } + + element test_entity { + type: simulation + } + + test_entity - satisfies -> test_req`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "requirementDiagram", + description: "sample requirements diagram", + content: `element customElement { + type: customType + docref: customDocRef + }`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "requirementDiagram", + description: "a requirement with high risk", + content: `functionalRequirement myReq { + id: reqId + text: someText + risk: High + verifymethod: analysis + }`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "requirementDiagram", + description: "sample requirements diagram", + content: `interfaceRequirement myReq2 { + id: reqId + text: someText + risk: Medium + verifymethod: demonstration + }`, + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "requirementDiagram", + description: "sample requirements diagram", + content: `designConstraint myReq3 { + id: reqId + text: someText + risk: Low + verifymethod: test + }`, + sortingOrder: 4, + isPinned: false + } +]; + +// src/elements/sankeyDiagram.ts +var sankeyDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "sankeyDiagram", + description: "", + content: `sankey-beta + %% source,target,value + Electricity grid,Over generation / exports,104.453 + Electricity grid,Heating and cooling - homes,113.726 + Electricity grid,H2 conversion,27.14`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/sequenceDiagram.ts +var sequenceDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "sequenceDiagram", + description: "a simple sequence diagram", + content: `sequenceDiagram +Alice->>John: Hello John, how are you? +John-->>Alice: Great! +Alice-)John: See you later!`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "sequenceDiagram", + description: "a simple sequence diagram with actors", + content: `sequenceDiagram +actor Alice +actor John +Alice->>John: Hello John, how are you? +John-->>Alice: Great! +Alice-)John: See you later!`, + sortingOrder: 1, + isPinned: false + } +]; + +// src/elements/stateDiagram.ts +var stateDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "a sample state diagram", + content: `stateDiagram-v2 + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*]`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "a sample state diagram with left-to-right direction", + content: `stateDiagram-v2 + direction LR + [*] --> Still + Still --> [*] + + Still --> Moving + Moving --> Still + Moving --> Crash + Crash --> [*]`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "node with description", + content: `s2 : This is a state description`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "a transition", + content: `s1 --> s2`, + sortingOrder: 3, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "a transition with label", + content: `s1 --> s2: A transition`, + sortingOrder: 4, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "composite state", + content: ` + [*] --> First + state First { + [*] --> second + second --> [*] + }`, + sortingOrder: 5, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "diagram with choice", + content: `stateDiagram-v2 + state if_state <> + [*] --> IsPositive + IsPositive --> if_state + if_state --> False: if n < 0 + if_state --> True : if n >= 0`, + sortingOrder: 6, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "diagram with fork", + content: `stateDiagram-v2 + state fork_state <> + [*] --> fork_state + fork_state --> State2 + fork_state --> State3 + + state join_state <> + State2 --> join_state + State3 --> join_state + join_state --> State4 + State4 --> [*]`, + sortingOrder: 7, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "stateDiagram", + description: "a diagram with concurrency", + content: `stateDiagram-v2 + [*] --> Active + + state Active { + [*] --> NumLockOff + NumLockOff --> NumLockOn : EvNumLockPressed + NumLockOn --> NumLockOff : EvNumLockPressed + -- + [*] --> CapsLockOff + CapsLockOff --> CapsLockOn : EvCapsLockPressed + CapsLockOn --> CapsLockOff : EvCapsLockPressed + -- + [*] --> ScrollLockOff + ScrollLockOff --> ScrollLockOn : EvScrollLockPressed + ScrollLockOn --> ScrollLockOff : EvScrollLockPressed + }`, + sortingOrder: 8, + isPinned: false + } +]; + +// src/elements/timeline.ts +var timelineElements = [ + { + id: crypto.randomUUID(), + categoryId: "timeline", + description: "sample timeline", + content: `timeline + title History of Social Media Platform + 2002 : LinkedIn + 2004 : Facebook + : Google + 2005 : Youtube + 2006 : Twitter`, + sortingOrder: 1, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "timeline", + description: "timeline with grouping", + content: `timeline + title Timeline of Industrial Revolution + section 17th-20th century + Industry 1.0 : Machinery, Water power, Steam
power + Industry 2.0 : Electricity, Internal combustion engine, Mass production + Industry 3.0 : Electronics, Computers, Automation + section 21st century + Industry 4.0 : Internet, Robotics, Internet of Things + Industry 5.0 : Artificial intelligence, Big data,3D printing`, + sortingOrder: 2, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "timeline", + description: "timeline with Forest theme. see the docs for additional themes", + content: `%%{init: { 'logLevel': 'debug', 'theme': 'forest' } }%% + timeline + title History of Social Media Platform + 2002 : LinkedIn + 2004 : Facebook : Google + 2005 : Youtube + 2006 : Twitter + 2007 : Tumblr + 2008 : Instagram + 2010 : Pinterest`, + sortingOrder: 3, + isPinned: false + } +]; + +// src/elements/userJourneyDiagram.ts +var userJourneyDiagramElements = [ + { + id: crypto.randomUUID(), + categoryId: "userJourneyDiagram", + description: "a sample user journey diagram", + content: `journey + title My working day + section Go to work + Make tea: 5: Me + Go upstairs: 3: Me + Do work: 1: Me, Cat + section Go home + Go downstairs: 5: Me + Sit down: 5: Me`, + sortingOrder: 0, + isPinned: false + }, + { + id: crypto.randomUUID(), + categoryId: "userJourneyDiagram", + description: "a step in user journey", + content: ` Step Title: 5: ActorName`, + sortingOrder: 1, + isPinned: false + } +]; + +// src/elements/xyChart.ts +var xyChartElements = [ + { + id: crypto.randomUUID(), + categoryId: "xyChart", + description: "a sample XYChart diagram", + content: `xychart-beta + title "Sales Revenue" + x-axis [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec] + y-axis "Revenue (in $)" 4000 --> 11000 + bar [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000] + line [5000, 6000, 7500, 8200, 9500, 10500, 11000, 10200, 9200, 8500, 7000, 6000]`, + sortingOrder: 0, + isPinned: false + } +]; + +// src/elements/defaultElements.ts +var defaultElements = [ + ...flowchartElements, + ...sequenceDiagramElements, + ...classDiagramElements, + ...stateDiagramElements, + ...entityRelationshipDiagramElements, + ...userJourneyDiagramElements, + ...ganttChartElements, + ...pieChartElements, + ...requirementDiagramElements, + ...gitGraphElements, + ...mindMapElements, + ...timelineElements, + ...quadrantElements, + ...c4DiagramElements, + ...sankeyDiagramElements, + ...xyChartElements, + ...packetElements, + ...kanbanElements, + ...blockDiagramElements, + ...architectureElements +]; + +// src/core/defaultCategories.ts +var DEFAULT_CATEGORIES = [ + { + id: "flowchart", + name: "Flowchart", + defaultWrapping: "flowchart LR", + wrappings: ["flowchart LR", "flowchart TD"], + isCustom: false, + sortOrder: 0 + }, + { + id: "sequenceDiagram", + name: "SequenceDiagram", + defaultWrapping: "sequenceDiagram", + wrappings: null, + isCustom: false, + sortOrder: 1 + }, + { + id: "classDiagram", + name: "ClassDiagram", + defaultWrapping: "classDiagram", + wrappings: null, + isCustom: false, + sortOrder: 2 + }, + { + id: "stateDiagram", + name: "StateDiagram", + defaultWrapping: "stateDiagram-v2", + wrappings: null, + isCustom: false, + sortOrder: 3 + }, + { + id: "entityRelationshipDiagram", + name: "EntityRelationshipDiagram", + defaultWrapping: "erDiagram", + wrappings: null, + isCustom: false, + sortOrder: 4 + }, + { + id: "userJourneyDiagram", + name: "UserJourneyDiagram", + defaultWrapping: "journey", + wrappings: null, + isCustom: false, + sortOrder: 5 + }, + { + id: "ganttChart", + name: "GanttChart", + defaultWrapping: "gantt", + wrappings: null, + isCustom: false, + sortOrder: 6 + }, + { + id: "pieChart", + name: "PieChart", + defaultWrapping: "pie", + wrappings: null, + isCustom: false, + sortOrder: 7 + }, + { + id: "requirementDiagram", + name: "RequirementDiagram", + defaultWrapping: "requirementDiagram", + wrappings: null, + isCustom: false, + sortOrder: 8 + }, + { + id: "gitGraph", + name: "GitGraph", + defaultWrapping: "gitGraph", + wrappings: null, + isCustom: false, + sortOrder: 9 + }, + { + id: "mindmap", + name: "Mindmap", + defaultWrapping: "mindmap", + wrappings: ["mindmap"], + isCustom: false, + sortOrder: 10 + }, + { + id: "timeline", + name: "Timeline", + defaultWrapping: "timeline", + wrappings: null, + isCustom: false, + sortOrder: 11 + }, + { + id: "c4Diagram", + name: "C4Diagram", + defaultWrapping: "C4Context", + wrappings: null, + isCustom: false, + sortOrder: 12 + }, + { + id: "quadrantChart", + name: "QuadrantChart", + defaultWrapping: "quadrantChart", + wrappings: null, + isCustom: false, + sortOrder: 13 + }, + { + id: "sankeyDiagram", + name: "SankeyDiagram", + defaultWrapping: "sankey-beta", + wrappings: null, + isCustom: false, + sortOrder: 14 + }, + { + id: "xyChart", + name: "XyChart", + defaultWrapping: "xychart-beta", + wrappings: null, + isCustom: false, + sortOrder: 15 + }, + { + id: "kanban", + name: "Kanban", + defaultWrapping: "kanban", + wrappings: null, + isCustom: false, + sortOrder: 16 + }, + { + id: "architecture", + name: "Architecture", + defaultWrapping: "architecture-beta", + wrappings: null, + isCustom: false, + sortOrder: 17 + }, + { + id: "block", + name: "Block", + defaultWrapping: "block-beta", + wrappings: null, + isCustom: false, + sortOrder: 18 + }, + { + id: "packet", + name: "Packet", + defaultWrapping: "packet-beta", + wrappings: null, + isCustom: false, + sortOrder: 19 + } +]; + +// src/core/categoryService.ts +var CategoryService = class { + constructor() { + this.categories = []; + this.categories = [...DEFAULT_CATEGORIES]; + } + static getInstance() { + if (!CategoryService.instance) { + CategoryService.instance = new CategoryService(); + } + return CategoryService.instance; + } + getCategories() { + return [...this.categories].sort((a, b) => a.sortOrder - b.sortOrder); + } + getCategoryById(id) { + return this.categories.find((cat) => cat.id === id); + } + getCategoryByName(name) { + return this.categories.find((cat) => cat.name === name); + } + addCategory(category) { + if (this.categories.some((cat) => cat.id === category.id)) { + throw new Error(`Category with ID '${category.id}' already exists`); + } + this.categories.push(category); + } + updateCategory(category) { + const index = this.categories.findIndex((cat) => cat.id === category.id); + if (index === -1) { + throw new Error(`Category with ID '${category.id}' not found`); + } + this.categories[index] = category; + } + deleteCategory(id) { + var _a; + if (!((_a = this.getCategoryById(id)) == null ? void 0 : _a.isCustom)) { + throw new Error("Cannot delete default categories"); + } + this.categories = this.categories.filter((cat) => cat.id !== id); + } + loadCategories(customCategories, defaultCategorySortOrders = {}) { + const defaultCategories = DEFAULT_CATEGORIES.map((cat) => ({ + ...cat, + sortOrder: defaultCategorySortOrders[cat.id] !== void 0 ? defaultCategorySortOrders[cat.id] : cat.sortOrder + })); + const customCats = customCategories.filter((cat) => cat.isCustom); + this.categories = [...defaultCategories, ...customCats]; + } + getCustomCategories() { + return this.categories.filter((cat) => cat.isCustom); + } + getWrappingData(categoryId) { + var _a; + const category = this.getCategoryById(categoryId); + if (!category) + return null; + return { + defaultWrapping: category.defaultWrapping, + wrappings: (_a = category.wrappings) != null ? _a : null + }; + } + getNextSortOrder() { + return Math.max(...this.categories.map((cat) => cat.sortOrder), -1) + 1; + } +}; + +// src/core/elementService.ts +var MermaidElementService = class { + constructor() { + this.categoryService = CategoryService.getInstance(); + } + static DefaultElements() { + return defaultElements; + } + saveElement(element, plugin) { + const elementExists = plugin.settings.elements.some((el) => el.id === element.id); + if (elementExists) { + const index = plugin.settings.elements.findIndex((el) => el.id === element.id); + if (index !== -1) { + plugin.settings.elements[index] = element; + } + } else { + this.fixSortOrder(element, plugin); + plugin.settings.elements.push(element); + } + plugin.saveSettings(); + } + fixSortOrder(element, plugin) { + const elementsFromSameCategory = plugin.settings.elements.filter((el) => el.categoryId === element.categoryId); + if (elementsFromSameCategory.some((el) => el.sortingOrder === element.sortingOrder)) { + element.sortingOrder = elementsFromSameCategory.length; + } + } + getSampleDiagram(categoryId) { + const category = this.categoryService.getCategoryById(categoryId); + if (!category) { + console.warn(`[Mermaid Tools] No category found for ID: ${categoryId}, using default sample`); + return this.wrapForPastingIntoEditor(this.wrapWithMermaidBlock("flowchart TD\nStart --> End")); + } + const sampleKey = category.name; + const sample = sampleDiagrams[sampleKey]; + if (sample) { + return this.wrapForPastingIntoEditor(this.wrapWithMermaidBlock(sample)); + } + console.warn(`[Mermaid Tools] No sample diagram found for category: ${category.name}, using default sample`); + return this.wrapForPastingIntoEditor(this.wrapWithMermaidBlock("flowchart TD\nStart --> End")); + } + wrapForPastingIntoEditor(text) { + return `${text} +`; + } + wrapWithMermaidBlock(text) { + return `\`\`\`mermaid +${text} +\`\`\``; + } + wrapAsCompleteDiagram(element) { + const wrapping = this.categoryService.getWrappingData(element.categoryId); + if (!wrapping) { + console.warn(`[Mermaid Tools] No wrapping data found for category: ${element.categoryId}`); + return element.content; + } + const contentAlreadyWrapped = wrapping.wrappings ? wrapping.wrappings.some((w) => element.content.contains(w)) : element.content.contains(wrapping.defaultWrapping); + if (contentAlreadyWrapped) { + return element.content; + } + const wrappedContent = wrapping.defaultWrapping + "\n" + element.content; + const firstWord = wrapping.defaultWrapping.trim().split(/\s+/)[0]; + const validDiagramTypes = [ + "flowchart", + "graph", + "sequenceDiagram", + "classDiagram", + "stateDiagram-v2", + "erDiagram", + "journey", + "gantt", + "pie", + "requirementDiagram", + "gitGraph", + "mindmap", + "timeline", + "quadrantChart", + "C4Context", + "sankey-beta", + "xychart-beta", + "packet-beta", + "kanban", + "block-beta", + "architecture-beta" + ]; + if (!validDiagramTypes.includes(firstWord)) { + console.warn(`[Mermaid Tools] Potentially invalid diagram type "${firstWord}" in category ${element.categoryId}. This may cause rendering errors.`); + } + return wrappedContent; + } +}; + +// src/core/textEditorService.ts +var NoActiveCursorError = class extends Error { + constructor() { + super(); + this.message = "Mermaid Tools: Error getting cursor position. Make sure you are in editing mode and have an active cursor in file content."; + } +}; +var TextEditorService = class { + constructor() { + this._elementService = new MermaidElementService(); + } + insertTextAtCursor(editor, content) { + if (!editor) + throw new NoActiveCursorError(); + content = this._elementService.wrapForPastingIntoEditor(content); + const cursor = editor.getCursor(); + editor.replaceRange(content, cursor); + const lines = content.split("\n"); + const newCursor = { + line: cursor.line + lines.length - 1, + ch: lines.length === 1 ? cursor.ch + lines[0].length : lines[lines.length - 1].length + }; + editor.setCursor(newCursor); + editor.focus(); + } +}; + +// src/settings/settings.ts +var MermaidPluginSettings = class { + static DefaultSettings() { + const settings = new MermaidPluginSettings(); + settings.elements = defaultElements; + settings.customCategories = []; + settings.selectedCategoryId = "flowchart"; + settings.defaultCategorySortOrders = {}; + settings.categoryModifications = {}; + return settings; + } +}; + +// src/trident-icon.ts +var import_obsidian = require("obsidian"); +function addTridentIcon() { + (0, import_obsidian.addIcon)(TRIDENT_ICON_NAME, getSanitizedSvg()); +} +function getSanitizedSvg() { + var sanitized = (0, import_obsidian.sanitizeHTMLToDom)(tridentIcon); + var tempContainer = createDiv(); + tempContainer.appendChild(sanitized); + return tempContainer.innerHTML; +} +var tridentIcon = ` + +`; + +// src/ui/settingsTab.ts +var import_obsidian4 = require("obsidian"); + +// src/ui/editMermaidElementModal.ts +var import_obsidian2 = require("obsidian"); +var EditMermaidElementModal = class extends import_obsidian2.Modal { + constructor(app, _plugin, _mermaid, _element, _categoryService) { + super(app); + this._plugin = _plugin; + this._mermaid = _mermaid; + this._element = _element; + this._categoryService = _categoryService; + } + async onOpen() { + const { contentEl } = this; + contentEl.addClass("mermaid-tools-edit-element-modal"); + contentEl.createEl("h2", { text: "Edit element" }); + const renderContainerEl = contentEl.createDiv(); + const renderEl = renderContainerEl.createEl("pre", { text: "rendered diagram" }); + if (!this._mermaid) + this._mermaid = await (0, import_obsidian2.loadMermaid)(); + renderEl.id = "mermaid-edit-element-modal"; + const elementCategoryContainerEl = contentEl.createDiv(); + elementCategoryContainerEl.createEl("label", { text: "Category" }); + const elementCategoryEl = elementCategoryContainerEl.createEl("select"); + const categories = this._categoryService.getCategories(); + for (const category of categories) { + const option = elementCategoryEl.createEl("option", { text: category.name }); + option.value = category.id; + } + elementCategoryEl.value = this._element.categoryId; + elementCategoryEl.onchange = (e) => { + this._element.categoryId = elementCategoryEl.value; + }; + const elementDescriptionContainerEl = contentEl.createDiv(); + elementDescriptionContainerEl.createEl("label", { text: "Description" }); + const elementDescriptionEl = elementDescriptionContainerEl.createEl("input", { value: this._element.description, type: "text" }); + elementDescriptionEl.style.minWidth = "50%"; + elementDescriptionEl.onchange = (e) => { + this._element.description = elementDescriptionEl.value; + }; + const elementContentContainerEl = contentEl.createDiv(); + elementContentContainerEl.createEl("label", { text: "Content" }); + const elementContentEl = elementContentContainerEl.createEl("textarea", { text: this._element.content }); + elementContentEl.style.height = "200px"; + elementContentEl.style.width = "100%"; + elementContentEl.onchange = async (e) => { + this._element.content = elementContentEl.value; + const { svg: svg2 } = await this._mermaid.render(renderEl.id, this._plugin._mermaidElementService.wrapAsCompleteDiagram(this._element)); + renderEl.innerHTML = svg2; + renderContainerEl.appendChild(renderEl); + }; + const saveButtonEl = contentEl.createEl("button", { text: "Save" }); + saveButtonEl.onclick = (e) => { + this.save(); + }; + const { svg } = await this._mermaid.render(renderEl.id, this._plugin._mermaidElementService.wrapAsCompleteDiagram(this._element)); + renderEl.innerHTML = svg; + renderContainerEl.appendChild(renderEl); + } + save() { + this._plugin._mermaidElementService.saveElement(this._element, this._plugin); + this.close(); + } +}; + +// src/ui/editCategoryModal.ts +var import_obsidian3 = require("obsidian"); +var EditCategoryModal = class extends import_obsidian3.Modal { + constructor(app, plugin, existingCategory, onSave) { + super(app); + this.plugin = plugin; + this.categoryService = CategoryService.getInstance(); + this.onSave = onSave; + this.isNewCategory = !existingCategory; + if (existingCategory) { + this.category = { ...existingCategory }; + } else { + this.category = { + id: "", + name: "", + defaultWrapping: "", + wrappings: null, + isCustom: true, + sortOrder: this.categoryService.getNextSortOrder() + }; + } + } + onOpen() { + const { contentEl } = this; + contentEl.addClass("mermaid-tools-edit-category-modal"); + contentEl.createEl("h2", { + text: this.isNewCategory ? "Create Custom Category" : "Edit Category" + }); + new import_obsidian3.Setting(contentEl).setName("Category ID").setDesc("Unique identifier for this category (lowercase, no spaces)").addText((text) => text.setPlaceholder("my-custom-category").setValue(this.category.id).onChange((value) => { + this.category.id = value.toLowerCase().replace(/\s+/g, "-"); + })); + new import_obsidian3.Setting(contentEl).setName("Category Name").setDesc("Display name for this category").addText((text) => text.setPlaceholder("My Custom Category").setValue(this.category.name).onChange((value) => { + this.category.name = value; + })); + new import_obsidian3.Setting(contentEl).setName("Default Wrapping").setDesc('Default mermaid syntax to wrap elements (e.g., "flowchart TD", "sequenceDiagram")').addText((text) => text.setPlaceholder("flowchart TD").setValue(this.category.defaultWrapping).onChange((value) => { + this.category.defaultWrapping = value; + })); + new import_obsidian3.Setting(contentEl).setName("Additional Wrappings (Optional)").setDesc('Comma-separated list of alternative wrappings (e.g., "flowchart LR, flowchart TB")').addText((text) => text.setPlaceholder("flowchart LR, flowchart TB").setValue(this.category.wrappings ? this.category.wrappings.join(", ") : "").onChange((value) => { + if (value.trim()) { + this.category.wrappings = value.split(",").map((w) => w.trim()).filter((w) => w); + } else { + this.category.wrappings = null; + } + })); + new import_obsidian3.Setting(contentEl).setName("Sort Order").setDesc("Determines the order in which categories appear").addText((text) => text.setPlaceholder("0").setValue(this.category.sortOrder.toString()).onChange((value) => { + const num = parseInt(value); + if (!isNaN(num)) { + this.category.sortOrder = num; + } + })); + const buttonContainer = contentEl.createDiv("modal-button-container"); + buttonContainer.style.display = "flex"; + buttonContainer.style.justifyContent = "flex-end"; + buttonContainer.style.gap = "10px"; + buttonContainer.style.marginTop = "20px"; + const cancelButton = buttonContainer.createEl("button", { text: "Cancel" }); + cancelButton.onclick = () => this.close(); + const saveButton = buttonContainer.createEl("button", { + text: this.isNewCategory ? "Create" : "Save", + cls: "mod-cta" + }); + saveButton.onclick = () => this.save(); + } + save() { + if (!this.category.id.trim()) { + alert("Category ID is required"); + return; + } + if (!this.category.name.trim()) { + alert("Category name is required"); + return; + } + if (!this.category.defaultWrapping.trim()) { + alert("Default wrapping is required"); + return; + } + const commonDiagramTypes = [ + "flowchart", + "graph", + "sequenceDiagram", + "classDiagram", + "stateDiagram-v2", + "erDiagram", + "journey", + "gantt", + "pie", + "requirementDiagram", + "gitGraph", + "mindmap", + "timeline", + "quadrantChart", + "C4Context", + "sankey-beta", + "xychart-beta", + "packet-beta", + "kanban", + "block-beta", + "architecture-beta" + ]; + const wrapping = this.category.defaultWrapping.trim().split(/\s+/)[0]; + if (!commonDiagramTypes.includes(wrapping)) { + const shouldContinue = confirm(`Warning: "${wrapping}" is not a recognized Mermaid diagram type. This may cause rendering errors. Are you sure you want to continue?`); + if (!shouldContinue) { + return; + } + } + if (this.isNewCategory && this.categoryService.getCategoryById(this.category.id)) { + alert(`A category with ID '${this.category.id}' already exists`); + return; + } + try { + this.onSave(this.category); + this.close(); + } catch (error) { + alert(`Error saving category: ${error.message}`); + } + } +}; + +// src/ui/settingsTab.ts +var MermaidToolsSettingsTab = class extends import_obsidian4.PluginSettingTab { + constructor(_app, _plugin) { + super(_app, _plugin); + this._app = _app; + this._plugin = _plugin; + } + async display() { + await renderSettings(this.containerEl, this._plugin); + } +}; +async function renderSettings(containerEl, plugin) { + const mermaid = await (0, import_obsidian4.loadMermaid)(); + const categoryService = CategoryService.getInstance(); + categoryService.loadCategories(plugin.settings.customCategories, plugin.settings.defaultCategorySortOrders); + containerEl.empty(); + containerEl.createEl("h1", { text: "Mermaid Tools Settings" }); + containerEl.createEl("h2", { text: "Manage Elements & Categories" }); + const buttonsContainer = containerEl.createDiv(); + buttonsContainer.style.marginBottom = "20px"; + buttonsContainer.style.display = "flex"; + buttonsContainer.style.gap = "10px"; + const addElementButton = buttonsContainer.createEl("button", { text: "Add Element" }); + addElementButton.addClass("mod-cta"); + addElementButton.onclick = () => { + const newElement = { + id: crypto.randomUUID(), + description: "New element", + content: `flowchart TD +Start --> Stop`, + categoryId: "flowchart", + sortingOrder: 0, + isPinned: false + }; + const modal = new EditMermaidElementModal(plugin.app, plugin, mermaid, newElement, categoryService); + modal.open(); + modal.onClose = () => { + renderSettings(containerEl, plugin); + }; + }; + const addCategoryButton = buttonsContainer.createEl("button", { text: "Add Category" }); + addCategoryButton.addClass("mod-cta"); + addCategoryButton.onclick = () => { + const modal = new EditCategoryModal(plugin.app, plugin, null, (category) => { + try { + if (category.sortOrder === void 0 || category.sortOrder === null) { + category.sortOrder = categoryService.getNextSortOrder(); + } + categoryService.addCategory(category); + saveAllCategoryChanges(plugin, categoryService); + renderSettings(containerEl, plugin); + } catch (error) { + console.error("Error adding category:", error); + } + }); + modal.open(); + }; + createIntegratedCategorySection(containerEl, plugin, categoryService, mermaid); +} +function saveAllCategoryChanges(plugin, categoryService) { + plugin.settings.customCategories = categoryService.getCustomCategories(); + const defaultCategories = categoryService.getCategories().filter((cat) => !cat.isCustom); + defaultCategories.forEach((cat) => { + plugin.settings.defaultCategorySortOrders[cat.id] = cat.sortOrder; + }); + plugin.saveSettings(); +} +function createIntegratedCategorySection(containerEl, plugin, categoryService, mermaid) { + const allCategories = categoryService.getCategories().sort((a, b) => a.sortOrder - b.sortOrder); + allCategories.forEach((category) => { + const categoryContainer = containerEl.createDiv(); + categoryContainer.addClass("mermaid-tools-category-section"); + categoryContainer.style.marginBottom = "20px"; + categoryContainer.style.border = "1px solid var(--background-modifier-border)"; + categoryContainer.style.borderRadius = "8px"; + categoryContainer.style.padding = "15px"; + const categoryHeader = categoryContainer.createDiv(); + categoryHeader.style.display = "flex"; + categoryHeader.style.alignItems = "center"; + categoryHeader.style.justifyContent = "space-between"; + categoryHeader.style.marginBottom = "10px"; + categoryHeader.style.cursor = "pointer"; + const categoryTitle = categoryHeader.createDiv(); + categoryTitle.style.display = "flex"; + categoryTitle.style.alignItems = "center"; + categoryTitle.style.gap = "10px"; + const expandIcon = categoryTitle.createSpan(); + expandIcon.innerHTML = "\u25BC"; + expandIcon.style.fontSize = "12px"; + expandIcon.style.transition = "transform 0.2s"; + const categoryName = categoryTitle.createEl("h3", { text: category.name }); + categoryName.style.margin = "0"; + categoryName.style.fontSize = "16px"; + const categoryInfo = categoryTitle.createSpan(); + const elementCount = plugin.settings.elements.filter((el) => el.categoryId === category.id).length; + categoryInfo.textContent = `(${elementCount} elements)`; + categoryInfo.style.color = "var(--text-muted)"; + categoryInfo.style.fontSize = "12px"; + const categoryControls = categoryHeader.createDiv(); + categoryControls.style.display = "flex"; + categoryControls.style.gap = "2px"; + const addElementButton = categoryControls.createEl("button"); + addElementButton.title = "Add element to this category"; + addElementButton.style.background = "none"; + addElementButton.style.border = "none"; + addElementButton.style.cursor = "pointer"; + addElementButton.style.padding = "4px"; + addElementButton.style.display = "flex"; + addElementButton.style.alignItems = "center"; + addElementButton.style.borderRadius = "3px"; + addElementButton.innerHTML = ``; + addElementButton.onmouseenter = () => addElementButton.style.backgroundColor = "var(--background-modifier-hover)"; + addElementButton.onmouseleave = () => addElementButton.style.backgroundColor = "transparent"; + addElementButton.onclick = (e) => { + e.stopPropagation(); + const newElement = { + id: crypto.randomUUID(), + description: "New element", + content: `flowchart TD +Start --> Stop`, + categoryId: category.id, + sortingOrder: plugin.settings.elements.filter((el) => el.categoryId === category.id).length, + isPinned: false + }; + const modal = new EditMermaidElementModal(plugin.app, plugin, mermaid, newElement, categoryService); + modal.open(); + modal.onClose = () => { + renderSettings(containerEl, plugin); + }; + }; + const moveUpButton = categoryControls.createEl("button"); + moveUpButton.title = "Move category up"; + moveUpButton.style.background = "none"; + moveUpButton.style.border = "none"; + moveUpButton.style.cursor = "pointer"; + moveUpButton.style.padding = "4px"; + moveUpButton.style.display = "flex"; + moveUpButton.style.alignItems = "center"; + moveUpButton.style.borderRadius = "3px"; + moveUpButton.innerHTML = ``; + moveUpButton.onmouseenter = () => moveUpButton.style.backgroundColor = "var(--background-modifier-hover)"; + moveUpButton.onmouseleave = () => moveUpButton.style.backgroundColor = "transparent"; + moveUpButton.onclick = (e) => { + e.stopPropagation(); + const categories = categoryService.getCategories().sort((a, b) => a.sortOrder - b.sortOrder); + const currentIndex = categories.findIndex((cat) => cat.id === category.id); + if (currentIndex > 0) { + const temp = categories[currentIndex - 1].sortOrder; + categories[currentIndex - 1].sortOrder = category.sortOrder; + category.sortOrder = temp; + categoryService.updateCategory(categories[currentIndex - 1]); + categoryService.updateCategory(category); + saveAllCategoryChanges(plugin, categoryService); + renderSettings(containerEl, plugin); + } + }; + const moveDownButton = categoryControls.createEl("button"); + moveDownButton.title = "Move category down"; + moveDownButton.style.background = "none"; + moveDownButton.style.border = "none"; + moveDownButton.style.cursor = "pointer"; + moveDownButton.style.padding = "4px"; + moveDownButton.style.display = "flex"; + moveDownButton.style.alignItems = "center"; + moveDownButton.style.borderRadius = "3px"; + moveDownButton.innerHTML = ``; + moveDownButton.onmouseenter = () => moveDownButton.style.backgroundColor = "var(--background-modifier-hover)"; + moveDownButton.onmouseleave = () => moveDownButton.style.backgroundColor = "transparent"; + moveDownButton.onclick = (e) => { + e.stopPropagation(); + const categories = categoryService.getCategories().sort((a, b) => a.sortOrder - b.sortOrder); + const currentIndex = categories.findIndex((cat) => cat.id === category.id); + if (currentIndex < categories.length - 1) { + const temp = categories[currentIndex + 1].sortOrder; + categories[currentIndex + 1].sortOrder = category.sortOrder; + category.sortOrder = temp; + categoryService.updateCategory(categories[currentIndex + 1]); + categoryService.updateCategory(category); + saveAllCategoryChanges(plugin, categoryService); + renderSettings(containerEl, plugin); + } + }; + const editButton = categoryControls.createEl("button"); + editButton.title = "Edit category"; + editButton.style.background = "none"; + editButton.style.border = "none"; + editButton.style.cursor = "pointer"; + editButton.style.padding = "4px"; + editButton.style.display = "flex"; + editButton.style.alignItems = "center"; + editButton.style.borderRadius = "3px"; + editButton.innerHTML = ``; + editButton.onmouseenter = () => editButton.style.backgroundColor = "var(--background-modifier-hover)"; + editButton.onmouseleave = () => editButton.style.backgroundColor = "transparent"; + editButton.onclick = (e) => { + e.stopPropagation(); + const modal = new EditCategoryModal(plugin.app, plugin, category, (updatedCategory) => { + try { + categoryService.updateCategory(updatedCategory); + saveAllCategoryChanges(plugin, categoryService); + renderSettings(containerEl, plugin); + } catch (error) { + console.error("Error updating category:", error); + } + }); + modal.open(); + }; + const deleteButton = categoryControls.createEl("button"); + deleteButton.title = "Delete category"; + deleteButton.style.background = "none"; + deleteButton.style.border = "none"; + deleteButton.style.cursor = "pointer"; + deleteButton.style.padding = "4px"; + deleteButton.style.display = "flex"; + deleteButton.style.alignItems = "center"; + deleteButton.style.borderRadius = "3px"; + deleteButton.innerHTML = ``; + deleteButton.onmouseenter = () => deleteButton.style.backgroundColor = "var(--background-modifier-hover)"; + deleteButton.onmouseleave = () => deleteButton.style.backgroundColor = "transparent"; + deleteButton.onclick = (e) => { + e.stopPropagation(); + const elementsInCategory = plugin.settings.elements.filter((el) => el.categoryId === category.id); + if (elementsInCategory.length > 0) { + alert(`Cannot delete category '${category.name}' because it contains ${elementsInCategory.length} element(s). Please move or delete these elements first.`); + return; + } + const confirmMessage = category.isCustom ? `Are you sure you want to delete the category '${category.name}'?` : `Are you sure you want to delete the default category '${category.name}'? This action cannot be undone.`; + if (confirm(confirmMessage)) { + try { + categoryService.deleteCategory(category.id); + if (category.isCustom) { + plugin.settings.customCategories = categoryService.getCustomCategories(); + } + plugin.saveSettings(); + renderSettings(containerEl, plugin); + } catch (error) { + console.error("Error deleting category:", error); + if (!category.isCustom) { + alert(`Cannot delete default category: ${error.message}`); + } + } + } + }; + const elementsContainer = categoryContainer.createDiv(); + elementsContainer.addClass("mermaid-tools-elements-container"); + elementsContainer.style.display = "none"; + let isCollapsed = true; + categoryHeader.onclick = () => { + isCollapsed = !isCollapsed; + elementsContainer.style.display = isCollapsed ? "none" : "block"; + expandIcon.style.transform = isCollapsed ? "rotate(-90deg)" : "rotate(0deg)"; + }; + expandIcon.style.transform = "rotate(-90deg)"; + renderCategoryElements(category, plugin, elementsContainer, mermaid, categoryService); + }); +} +function renderCategoryElements(category, plugin, parentEl, mermaid, categoryService) { + const elements = plugin.settings.elements.filter((e) => e.categoryId === category.id).sort((a, b) => a.sortingOrder - b.sortingOrder); + if (elements.length === 0) { + const emptyMessage = parentEl.createDiv(); + emptyMessage.textContent = "No elements in this category"; + emptyMessage.style.color = "var(--text-muted)"; + emptyMessage.style.fontStyle = "italic"; + emptyMessage.style.padding = "10px"; + return; + } + elements.forEach((element, index) => { + const settingContainer = parentEl.createDiv("mermaid-tools-element-container"); + settingContainer.style.marginBottom = "10px"; + settingContainer.style.padding = "10px"; + settingContainer.style.backgroundColor = "var(--background-secondary)"; + settingContainer.style.borderRadius = "5px"; + const setting = new import_obsidian4.Setting(settingContainer); + setting.setName(element.description); + setting.addExtraButton((cb) => { + cb.setIcon("edit").setTooltip("edit element").onClick(() => { + const modal = new EditMermaidElementModal(plugin.app, plugin, mermaid, element, categoryService); + modal.open(); + modal.onClose = () => { + const settingsContainer = parentEl.closest(".vertical-tab-content"); + if (settingsContainer) + renderSettings(settingsContainer, plugin); + }; + }); + }); + setting.addExtraButton((cb) => { + cb.setIcon("copy").setTooltip("create a duplicate of this element").onClick(() => { + const duplicate = { + id: crypto.randomUUID(), + categoryId: element.categoryId, + description: element.description + " (copy)", + content: element.content, + sortingOrder: plugin.settings.elements.filter((el) => el.categoryId === element.categoryId).length, + isPinned: element.isPinned + }; + plugin._mermaidElementService.saveElement(duplicate, plugin); + plugin.saveSettings(); + const settingsContainer = parentEl.closest(".vertical-tab-content"); + if (settingsContainer) + renderSettings(settingsContainer, plugin); + }); + }); + setting.addExtraButton((cb) => { + cb.setIcon("arrow-up").setTooltip("move element up in the sidebar").onClick(() => { + if (index > 0) { + const temp = elements[index - 1].sortingOrder; + elements[index - 1].sortingOrder = element.sortingOrder; + element.sortingOrder = temp; + plugin.settings.elements = plugin.settings.elements.filter((el) => el.categoryId !== category.id).concat(elements); + plugin.saveSettings(); + const settingsContainer = parentEl.closest(".vertical-tab-content"); + if (settingsContainer) + renderSettings(settingsContainer, plugin); + } + }); + }); + setting.addExtraButton((cb) => { + cb.setIcon("arrow-down").setTooltip("move element down in the sidebar").onClick(() => { + if (index < elements.length - 1) { + const temp = elements[index + 1].sortingOrder; + elements[index + 1].sortingOrder = element.sortingOrder; + element.sortingOrder = temp; + plugin.settings.elements = plugin.settings.elements.filter((el) => el.categoryId !== category.id).concat(elements); + plugin.saveSettings(); + const settingsContainer = parentEl.closest(".vertical-tab-content"); + if (settingsContainer) + renderSettings(settingsContainer, plugin); + } + }); + }); + setting.addExtraButton((cb) => { + cb.setIcon("trash-2").setTooltip("delete element").onClick(() => { + plugin.settings.elements = plugin.settings.elements.filter((e) => e.id !== element.id); + plugin.saveSettings(); + const settingsContainer = parentEl.closest(".vertical-tab-content"); + if (settingsContainer) + renderSettings(settingsContainer, plugin); + }); + }); + }); +} + +// src/ui/toolbarView/mermaidToolbarView.ts +var import_obsidian6 = require("obsidian"); + +// src/ui/toolbarView/viewHelpers.ts +var import_obsidian5 = require("obsidian"); +var TOOLBAR_ELEMENT_CLASS_NAME = "mermaid-toolbar-element"; +var TOOLBAR_ELEMENTS_CONTAINER_CLASS_NAME = "mermaid-toolbar-elements-container"; +var TOOLBAR_ELEMENTS_CONTAINER_ID = "mermaid-toolbar-elements-container-id"; +async function createMermaidToolbar(topRowButtons, items, selectedCategoryId, onCategoryChanged, onElementClick, categoryService) { + const container = document.createElement("div"); + const topRow = container.createDiv(); + topRow.addClass("mermaid-toolbar-top-row"); + const elementsContainer = container.createDiv(); + elementsContainer.addClass(TOOLBAR_ELEMENTS_CONTAINER_CLASS_NAME); + elementsContainer.setAttr("id", TOOLBAR_ELEMENTS_CONTAINER_ID); + createDropdown(topRow, elementsContainer, items, selectedCategoryId, onCategoryChanged, onElementClick, categoryService); + createTopRowBtns(topRow, topRowButtons); + await recreateElementsSection(elementsContainer, selectedCategoryId, items, onElementClick, categoryService); + return container; +} +function createTopRowBtns(parentEl, buttons) { + buttons.forEach((btn) => { + const b = new import_obsidian5.ButtonComponent(parentEl).setClass("clickable-icon").setIcon(btn.iconName).setTooltip(btn.tooltip).onClick(btn.callback); + }); +} +function createDropdown(parentEl, elementsContainer, items, selectedCategoryId, onSelectionChanged, onElClick, categoryService) { + const categories = categoryService.getCategories(); + const dropdown = new import_obsidian5.DropdownComponent(parentEl); + categories.forEach((category) => { + dropdown.addOption(category.id, category.name); + }); + dropdown.setValue(selectedCategoryId); + dropdown.onChange((val) => { + onSelectionChanged(val); + recreateElementsSection(elementsContainer, val, items, onElClick, categoryService); + }); +} +async function recreateElementsSection(sectionContainer, categoryId, items, onElClick, categoryService) { + sectionContainer.innerHTML = ""; + const elemService = new MermaidElementService(); + const mermaid = await (0, import_obsidian5.loadMermaid)(); + const filteredSortedItems = items.filter((i) => i.categoryId === categoryId).sort((a, b) => a.sortingOrder - b.sortingOrder); + filteredSortedItems.forEach(async (elem, index) => { + const el = createToolbarElement(sectionContainer); + el.id = `mermaid-toolbar-element-${elem.categoryId}-${index}`; + const diagram = elemService.wrapAsCompleteDiagram(elem); + console.log(mermaid.detectType(diagram)); + const { svg } = await mermaid.render(el.id, diagram); + el.title = elem.description; + el.innerHTML = svg; + el.onclick = (e) => onElClick(elem.content); + sectionContainer.appendChild(el); + }); +} +function createToolbarElement(parentEl) { + const itemEl = parentEl.createEl("pre"); + itemEl.addClass(TOOLBAR_ELEMENT_CLASS_NAME); + return itemEl; +} + +// src/ui/toolbarView/mermaidToolbarButtons.ts +var MermaidToolbarButton = class { + constructor(tooltip, iconName, callback) { + this.tooltip = tooltip; + this.iconName = iconName; + this.callback = callback; + } +}; + +// src/ui/toolbarView/mermaidToolbarView.ts +var _MermaidToolbarView = class extends import_obsidian6.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.topRowButtons = [ + new MermaidToolbarButton("insert Mermaid code block with sample diagram", "code-2", () => this.insertTextAtCursor(this._plugin._mermaidElementService.getSampleDiagram(this._plugin.settings.selectedCategoryId))), + new MermaidToolbarButton("open Mermaid.js documentation web page", "external-link", () => window.open("https://mermaid.js.org/intro/")), + new MermaidToolbarButton("open settings", "settings", () => { + this.app.setting.open(); + this.app.setting.openTabById("mermaid-tools"); + }) + ]; + this._plugin = plugin; + this.items = plugin.settings.elements; + this.categoryService = CategoryService.getInstance(); + this.categoryService.loadCategories(plugin.settings.customCategories, plugin.settings.defaultCategorySortOrders); + this.containerEl.children[1].addClass("mermaid-toolbar-container"); + } + async onOpen() { + await this.recreateToolbar(this._plugin.settings.selectedCategoryId); + } + async onClose() { + } + async recreateToolbar(selectedCategoryId) { + const container = this.containerEl.children[1]; + container.empty(); + const toolbarElement = await createMermaidToolbar(this.topRowButtons, this.items, selectedCategoryId, async (newCategoryId) => { + this._plugin.settings.selectedCategoryId = newCategoryId; + this._plugin.saveSettings(); + await this.recreateToolbar(this._plugin.settings.selectedCategoryId); + }, (text) => this.insertTextAtCursor(text), this.categoryService); + container.appendChild(toolbarElement); + } + insertTextAtCursor(text) { + this._plugin.insertTextAtCursor(text); + } + getViewType() { + return _MermaidToolbarView.VIEW_TYPE; + } + getDisplayText() { + return _MermaidToolbarView.VIEW_DESCRIPTION; + } + getIcon() { + return TRIDENT_ICON_NAME; + } +}; +var MermaidToolbarView = _MermaidToolbarView; +MermaidToolbarView.VIEW_TYPE = "mermaid-toolbar-view"; +MermaidToolbarView.VIEW_DESCRIPTION = "Mermaid Toolbar"; + +// main.ts +var TRIDENT_ICON_NAME = "trident-custom"; +var MermaidPlugin = class extends import_obsidian7.Plugin { + constructor() { + super(...arguments); + this._mermaidElementService = new MermaidElementService(); + this._textEditorService = new TextEditorService(); + } + async onload() { + await this.loadSettings(); + addTridentIcon(); + this.registerView(MermaidToolbarView.VIEW_TYPE, (leaf) => new MermaidToolbarView(leaf, this)); + this.app.workspace.on("active-leaf-change", (leaf) => { + var _a, _b; + this.activeEditor = (_b = (_a = this.app.workspace.activeEditor) == null ? void 0 : _a.editor) != null ? _b : this.activeEditor; + }); + this.addRibbonIcon(TRIDENT_ICON_NAME, "Open Mermaid Toolbar", () => { + this.activateView(); + }); + this.addCommand({ + id: "open-toolbar", + name: "Open Toolbar View", + callback: () => { + this.activateView(); + } + }); + this.addSettingTab(new MermaidToolsSettingsTab(this.app, this)); + } + async onunload() { + this.app.workspace.detachLeavesOfType(MermaidToolbarView.VIEW_TYPE); + } + async loadSettings() { + this.settings = Object.assign({}, MermaidPluginSettings.DefaultSettings(), await this.loadData()); + this.addNewCategories(); + } + addNewCategories() { + if (!this.settings.elements.some((x) => x.categoryId === "mindmap")) { + this.settings.elements.push(...mindMapElements); + console.log("[Mermaid Tools] added Mindmap elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "timeline")) { + this.settings.elements.push(...timelineElements); + console.log("[Mermaid Tools] added Timeline elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "quadrantChart")) { + this.settings.elements.push(...quadrantElements); + console.log("[Mermaid Tools] added QuadrantChart elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "c4Diagram")) { + this.settings.elements.push(...c4DiagramElements); + console.log("[Mermaid Tools] added C4 diagram elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "packet")) { + this.settings.elements.push(...packetElements); + console.log("[Mermaid Tools] added Packet elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "kanban")) { + this.settings.elements.push(...kanbanElements); + console.log("[Mermaid Tools] added Kanban elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "block")) { + this.settings.elements.push(...blockDiagramElements); + console.log("[Mermaid Tools] added Block elements"); + } + if (!this.settings.elements.some((x) => x.categoryId === "architecture")) { + this.settings.elements.push(...architectureElements); + console.log("[Mermaid Tools] added Architecture diagram elements"); + } + } + async saveSettings() { + await this.saveData(this.settings); + await this.activateView(); + } + async activateView() { + var _a; + this.app.workspace.detachLeavesOfType(MermaidToolbarView.VIEW_TYPE); + if (this.app.workspace === null) + return; + await ((_a = this.app.workspace.getRightLeaf(false)) == null ? void 0 : _a.setViewState({ + type: MermaidToolbarView.VIEW_TYPE, + active: true + })); + this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(MermaidToolbarView.VIEW_TYPE)[0]); + } + insertTextAtCursor(text) { + this._textEditorService.insertTextAtCursor(this.activeEditor, text); + } +}; + +/* nosourcemap */ \ No newline at end of file diff --git a/.obsidian/plugins/mermaid-tools/manifest.json b/.obsidian/plugins/mermaid-tools/manifest.json new file mode 100644 index 0000000..15fc37e --- /dev/null +++ b/.obsidian/plugins/mermaid-tools/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "mermaid-tools", + "name": "Mermaid Tools", + "version": "1.3.0", + "minAppVersion": "1.4.0", + "description": "Improved Mermaid.js experience for Obsidian: visual toolbar with common elements & more", + "author": "dartungar", + "authorUrl": "https://dartungar.com", + "fundingUrl": "https://www.paypal.com/paypalme/dartungar", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/mermaid-tools/styles.css b/.obsidian/plugins/mermaid-tools/styles.css new file mode 100644 index 0000000..73ce877 --- /dev/null +++ b/.obsidian/plugins/mermaid-tools/styles.css @@ -0,0 +1,149 @@ +.mermaid-toolbar-container, .mermaid-toolbar-container * { + max-width: 100%; + max-height: 100%; +} + +.mermaid-toolbar-top-row { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 8px; +} + +.mermaid-toolbar-elements-container { + padding-top: 1rem; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.mermaid-toolbar-element { + font-size: var(--font-ui-small); + cursor: pointer; + padding: 2px 2px 2px 5px; + border-radius: 3px; + flex: 1 0 auto; +} + +.mermaid-toolbar-element:hover { + background-color: var(--interactive-hover); +} + +.mermaid-tools-element-category-header::before { + content: "▼ "; + font-size: 70%; + padding-bottom: 2px; +} + +.mermaid-tools-element-category-header.collapsed::before { + content: "▶ "; + font-size: 70%; + padding-bottom: 2px; +} + +.mermaid-tools-element-container { + padding-top: 6px; + border-bottom: var(--border-width) solid var(--color-base-35); +} + +.mermaid-tools-edit-element-modal > div { + margin-bottom: 0.5rem; +} + +.mermaid-tools-edit-element-modal label { + margin-right: 1rem; +} + +/* Custom Category Management Styles */ +.mermaid-tools-category-management { + margin-bottom: 2rem; + padding: 1rem; + border: 1px solid var(--color-base-25); + border-radius: 8px; + background-color: var(--color-base-00); +} + +.mermaid-tools-category-management h3 { + margin-top: 1rem; + margin-bottom: 0.5rem; + color: var(--text-accent); +} + +.mermaid-tools-category-management button.mod-cta { + margin-bottom: 1rem; +} + +/* Edit Category Modal Styles */ +.mermaid-tools-edit-category-modal { + min-width: 500px; +} + +.mermaid-tools-edit-category-modal .setting-item { + padding: 8px 0; + border: none; +} + +.mermaid-tools-edit-category-modal .setting-item-info { + flex-grow: 1; + margin-right: 12px; +} + +.mermaid-tools-edit-category-modal .setting-item-name { + font-weight: 600; + color: var(--text-normal); +} + +.mermaid-tools-edit-category-modal .setting-item-description { + color: var(--text-muted); + font-size: var(--font-ui-smaller); +} + +.mermaid-tools-edit-category-modal input, +.mermaid-tools-edit-category-modal textarea { + width: 100%; + padding: 4px 8px; + border: 1px solid var(--color-base-30); + border-radius: 4px; + background-color: var(--color-base-00); + color: var(--text-normal); +} + +.mermaid-tools-edit-category-modal input:focus, +.mermaid-tools-edit-category-modal textarea:focus { + border-color: var(--color-accent); + outline: none; + box-shadow: 0 0 0 2px var(--color-accent-2); +} + +.modal-button-container { + display: flex; + justify-content: flex-end; + gap: 10px; + margin-top: 20px; + padding-top: 16px; + border-top: 1px solid var(--color-base-25); +} + +.modal-button-container button { + padding: 6px 16px; + border: 1px solid var(--color-base-30); + border-radius: 4px; + background-color: var(--color-base-10); + color: var(--text-normal); + cursor: pointer; + font-size: var(--font-ui-small); +} + +.modal-button-container button:hover { + background-color: var(--color-base-20); +} + +.modal-button-container button.mod-cta { + background-color: var(--color-accent); + color: var(--text-on-accent); + border-color: var(--color-accent); +} + +.modal-button-container button.mod-cta:hover { + background-color: var(--color-accent-hover); +} \ No newline at end of file diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 633bd48..a339da7 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "部门五月份任务规划.md", - "mode": "preview", + "file": "README.md", + "mode": "source", "source": false }, "icon": "lucide-file", - "title": "部门五月份任务规划" + "title": "README" } } ] @@ -94,6 +94,7 @@ "state": { "type": "backlink", "state": { + "file": "README.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -103,7 +104,7 @@ "unlinkedCollapsed": true }, "icon": "links-coming-in", - "title": "反向链接" + "title": "README 的反向链接列表" } }, { @@ -112,11 +113,12 @@ "state": { "type": "outgoing-link", "state": { + "file": "README.md", "linksCollapsed": false, "unlinkedCollapsed": true }, "icon": "links-going-out", - "title": "出链" + "title": "README 的出链列表" } }, { @@ -154,13 +156,13 @@ "state": { "type": "outline", "state": { - "file": "conflict-files-obsidian-git.md", + "file": "README.md", "followCursor": false, "showSearch": false, "searchQuery": "" }, "icon": "lucide-list", - "title": "conflict-files-obsidian-git 的大纲" + "title": "README 的大纲" } }, { @@ -172,6 +174,16 @@ "icon": "git-pull-request", "title": "Source Control" } + }, + { + "id": "7a3485b22ac1573e", + "type": "leaf", + "state": { + "type": "mermaid-toolbar-view", + "state": {}, + "icon": "trident-custom", + "title": "Mermaid Toolbar" + } } ], "currentTab": 5 @@ -189,14 +201,20 @@ "templates:插入模板": false, "command-palette:打开命令面板": false, "bases:新建数据库": false, + "export-graph-view:Export graph view": false, + "mermaid-tools:Open Mermaid Toolbar": false, "obsidian-git:Open Git source control": false, "pdf-plus:PDF++: Toggle auto-copy": false, "pdf-plus:PDF++: Toggle auto-focus": false, "pdf-plus:PDF++: Toggle auto-paste": false } }, - "active": "2076822cdefbb8a3", + "active": "b0ba3684f585064f", "lastOpenFiles": [ + "未命名.canvas", + "诀别书钢琴谱.pdf", + "动画.gif", + "README.md", "部门五月份任务规划.md", "conflict-files-obsidian-git.md" ] diff --git a/README.md b/README.md new file mode 100644 index 0000000..f9c4205 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +## 项目名称 + +### 姿态传感器 + +## 运行条件 + +> 列出运行该项目所必须的条件和相关依赖 + +* Python==3.14 +* OpenOCD +* CLion +* Arm-none-eabi-gcc + +## 运行说明 + +> 说明如何运行和使用你的项目,建议给出具体的步骤说明 + +1. 下载所有运行条件中提到的文件 +2. + +![[动画.gif]] + +## 测试说明 + +> 如果有测试相关内容需要说明,请填写在这里 + +## 技术架构 + +```mermaid +flowchart TB + +A["Eclipse ThreadX API"] + +subgraph M["ThreadX Services"] +direction LR + +subgraph L[" "] +direction TB +T1["Thread Services"] +T2["Counting Semaphores"] +T3["Event Flags"] +T4["Byte Memory Pools"] +end + +subgraph R[" "] +direction TB +T5["Messaging Queues"] +T6["Mutexes"] +T7["Block Memory Pools"] +T8["Application Timers"] +end + +end + +B["Eclipse ThreadX Core Scheduler"] + +A --> M +M --> B +``` + + + + + +## 协作者 + +> 高效的协作会激发无尽的创造力,将他们的名字记录在这里吧 diff --git a/动画.gif b/动画.gif new file mode 100644 index 0000000000000000000000000000000000000000..be9d281db9bba786334dbd23747b31c76ab4ac4d GIT binary patch literal 693404 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