mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	client: Add basic mindmap integration
This commit is contained in:
		
							parent
							
								
									e39dd1525d
								
							
						
					
					
						commit
						594f816702
					
				
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -66,6 +66,7 @@
 | 
			
		||||
        "marked": "^13.0.2",
 | 
			
		||||
        "mermaid": "^10.9.1",
 | 
			
		||||
        "mime-types": "2.1.35",
 | 
			
		||||
        "mind-elixir": "^4.0.5",
 | 
			
		||||
        "multer": "1.4.5-lts.1",
 | 
			
		||||
        "node-abi": "^3.65.0",
 | 
			
		||||
        "normalize-strings": "1.1.1",
 | 
			
		||||
@ -13002,6 +13003,11 @@
 | 
			
		||||
        "dom-walk": "^0.1.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/mind-elixir": {
 | 
			
		||||
      "version": "4.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/mind-elixir/-/mind-elixir-4.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-zFYNabpchCY468d/vqo68hnhP+VDN47uPyJJ4dYlkqvL7fomRlo/WJinYgH+Rjt5vFJVLEMBtFsv5fizAC4ZYg=="
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/minimalistic-assert": {
 | 
			
		||||
      "version": "1.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
 | 
			
		||||
 | 
			
		||||
@ -106,6 +106,7 @@
 | 
			
		||||
    "marked": "^13.0.2",
 | 
			
		||||
    "mermaid": "^10.9.1",
 | 
			
		||||
    "mime-types": "2.1.35",
 | 
			
		||||
    "mind-elixir": "^4.0.5",
 | 
			
		||||
    "multer": "1.4.5-lts.1",
 | 
			
		||||
    "node-abi": "^3.65.0",
 | 
			
		||||
    "normalize-strings": "1.1.1",
 | 
			
		||||
 | 
			
		||||
@ -79,6 +79,12 @@ const I18NEXT = {
 | 
			
		||||
    ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const MIND_ELIXIR = {
 | 
			
		||||
    js: [
 | 
			
		||||
        "node_modules/mind-elixir/dist/MindElixir.iife.js"
 | 
			
		||||
    ]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
async function requireLibrary(library) {
 | 
			
		||||
    if (library.css) {
 | 
			
		||||
        library.css.map(cssUrl => requireCss(cssUrl));
 | 
			
		||||
@ -137,5 +143,6 @@ export default {
 | 
			
		||||
    MERMAID,
 | 
			
		||||
    EXCALIDRAW,
 | 
			
		||||
    MARKJS,
 | 
			
		||||
    I18NEXT
 | 
			
		||||
    I18NEXT,
 | 
			
		||||
    MIND_ELIXIR
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -146,7 +146,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget {
 | 
			
		||||
        this.$widget.toggleClass("full-height",
 | 
			
		||||
            (
 | 
			
		||||
                !this.noteContext.hasNoteList()
 | 
			
		||||
                && ['canvas', 'webView', 'noteMap'].includes(this.type)
 | 
			
		||||
                && ['canvas', 'webView', 'noteMap', 'mindMap'].includes(this.type)
 | 
			
		||||
                && this.mime !== 'text/x-sqlite;schema=trilium'
 | 
			
		||||
            )
 | 
			
		||||
            || this.noteContext.viewScope.viewMode === 'attachments'
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,21 @@
 | 
			
		||||
import libraryLoader from "../../services/library_loader.js";
 | 
			
		||||
import TypeWidget from "./type_widget.js";
 | 
			
		||||
 | 
			
		||||
const TPL = `
 | 
			
		||||
<div class="note-detail-mind-map note-detail-printable">
 | 
			
		||||
    <div class="mind-map-container">
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <style>
 | 
			
		||||
        .note-detail-mind-map {
 | 
			
		||||
            height: 100%;
 | 
			
		||||
            overflow: hidden !important;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .note-detail-mind-map .mind-map-container {
 | 
			
		||||
            height: 100%;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
</div>
 | 
			
		||||
`;
 | 
			
		||||
 | 
			
		||||
@ -10,15 +24,21 @@ export default class MindMapWidget extends TypeWidget {
 | 
			
		||||
 | 
			
		||||
    doRender() {
 | 
			
		||||
        this.$widget = $(TPL);
 | 
			
		||||
        this.$content = this.$widget.find(".mind-map-container");
 | 
			
		||||
 | 
			
		||||
        libraryLoader
 | 
			
		||||
            .requireLibrary(libraryLoader.MIND_ELIXIR)
 | 
			
		||||
            .then(() => {
 | 
			
		||||
                const mind = new MindElixir({
 | 
			
		||||
                    el: this.$content[0],
 | 
			
		||||
                    direction: MindElixir.LEFT
 | 
			
		||||
                });
 | 
			
		||||
                mind.init(MindElixir.new("hello"));
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
        super.doRender();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async doRefresh(note) {
 | 
			
		||||
        this.$widget.html("<p>Hello</p>");
 | 
			
		||||
        this.$widget.show();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    cleanup() {
 | 
			
		||||
        this.$widget.empty();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -100,6 +100,8 @@ function register(app: express.Application) {
 | 
			
		||||
    app.use(`/${assetPath}/node_modules/codemirror/addon/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/addon/')));
 | 
			
		||||
    app.use(`/${assetPath}/node_modules/codemirror/mode/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/mode/')));
 | 
			
		||||
    app.use(`/${assetPath}/node_modules/codemirror/keymap/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/codemirror/keymap/')));
 | 
			
		||||
 | 
			
		||||
    app.use(`/${assetPath}/node_modules/mind-elixir/dist/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/mind-elixir/dist/")));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user