mirror of
https://github.com/zsviczian/obsidian-excalidraw-plugin.git
synced 2025-08-06 05:46:28 +00:00
42 lines
1.6 KiB
TypeScript
42 lines
1.6 KiB
TypeScript
import { normalizePath, TFolder } from "obsidian";
|
|
|
|
/**
|
|
* Splits a full path including a folderpath and a filename into separate folderpath and filename components
|
|
* @param filepath
|
|
*/
|
|
export function splitFolderAndFilename(filepath: string):{folderpath: string, filename: string} {
|
|
let folderpath: string, filename:string;
|
|
const lastIndex = filepath.lastIndexOf("/");
|
|
return {
|
|
folderpath: normalizePath(filepath.substr(0,lastIndex)),
|
|
filename: lastIndex==-1 ? filepath : filepath.substr(lastIndex+1),
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Download data as file from Obsidian, to store on local device
|
|
* @param encoding
|
|
* @param data
|
|
* @param filename
|
|
*/
|
|
export function download(encoding:string,data:any,filename:string) {
|
|
let element = document.createElement('a');
|
|
element.setAttribute('href', (encoding ? encoding + ',' : '') + data);
|
|
element.setAttribute('download', filename);
|
|
element.style.display = 'none';
|
|
document.body.appendChild(element);
|
|
element.click();
|
|
document.body.removeChild(element);
|
|
}
|
|
|
|
/**
|
|
* Generates the image filename based on the excalidraw filename
|
|
* @param excalidrawPath - Full filepath of ExclidrawFile
|
|
* @param newExtension - extension of IMG file in ".extension" format
|
|
* @returns
|
|
*/
|
|
export function getIMGPathFromExcalidrawFile (excalidrawPath:string,newExtension:string):string {
|
|
const isLegacyFile:boolean = excalidrawPath.endsWith(".excalidraw");
|
|
const replaceExtension:string = isLegacyFile ? ".excalidraw" : ".md";
|
|
return excalidrawPath.substring(0,excalidrawPath.lastIndexOf(replaceExtension)) + newExtension;
|
|
} |