Compare commits
2
Commits
v1.0.4
...
4cf5e9da4a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4cf5e9da4a | ||
|
|
d546947e61 |
@@ -1,5 +1,6 @@
|
||||
import esbuild from 'esbuild';
|
||||
import process from 'process';
|
||||
import fs from 'fs';
|
||||
import builtins from 'builtin-modules';
|
||||
|
||||
const banner = `/*
|
||||
@@ -9,6 +10,11 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
||||
|
||||
const prod = process.argv[2] === 'production';
|
||||
|
||||
const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
|
||||
const manifest = JSON.parse(fs.readFileSync('./manifest.json', 'utf8'));
|
||||
manifest.version = pkg.version;
|
||||
fs.writeFileSync('./manifest.json', JSON.stringify(manifest, null, '\t') + '\n');
|
||||
|
||||
esbuild
|
||||
.build({
|
||||
banner: { js: banner },
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "zeroq-qol-modules",
|
||||
"name": "ZeroQ QoL Modules",
|
||||
"version": "1.0.3",
|
||||
"version": "1.1.1",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "QoL Modules",
|
||||
"author": "oqyude",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zeroq-qol-modules",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.1",
|
||||
"description": "Modular Obsidian plugin with toggleable QoL modules",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
@@ -71,6 +71,26 @@ export class AttachmentCleanPasteModule extends BaseModule {
|
||||
});
|
||||
}
|
||||
|
||||
private async processAll(
|
||||
files: FileList,
|
||||
editor: Editor,
|
||||
settings: AttachmentCleanPasteSettings,
|
||||
): Promise<void> {
|
||||
const matchingFiles = Array.from(files).filter((f) =>
|
||||
this.shouldProcess(f.name, settings),
|
||||
);
|
||||
if (matchingFiles.length === 0) return;
|
||||
|
||||
const links: string[] = [];
|
||||
for (const file of matchingFiles) {
|
||||
const link = await this.processFile(file, settings);
|
||||
if (link) links.push(link);
|
||||
}
|
||||
if (links.length === 0) return;
|
||||
|
||||
editor.replaceSelection(links.join('\n\n'));
|
||||
}
|
||||
|
||||
private createPasteHandler(settings: AttachmentCleanPasteSettings) {
|
||||
return async (
|
||||
evt: ClipboardEvent,
|
||||
@@ -80,17 +100,10 @@ export class AttachmentCleanPasteModule extends BaseModule {
|
||||
const files = evt.clipboardData?.files;
|
||||
if (!files || files.length === 0) return;
|
||||
|
||||
const matchingFiles = Array.from(files).filter((f) =>
|
||||
this.shouldProcess(f.name, settings),
|
||||
);
|
||||
if (matchingFiles.length === 0) return;
|
||||
|
||||
evt.preventDefault();
|
||||
evt.stopPropagation();
|
||||
|
||||
for (const file of matchingFiles) {
|
||||
await this.processFile(file, editor, settings);
|
||||
}
|
||||
await this.processAll(files, editor, settings);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -103,17 +116,10 @@ export class AttachmentCleanPasteModule extends BaseModule {
|
||||
const files = evt.dataTransfer?.files;
|
||||
if (!files || files.length === 0) return;
|
||||
|
||||
const matchingFiles = Array.from(files).filter((f) =>
|
||||
this.shouldProcess(f.name, settings),
|
||||
);
|
||||
if (matchingFiles.length === 0) return;
|
||||
|
||||
evt.preventDefault();
|
||||
evt.stopPropagation();
|
||||
|
||||
for (const file of matchingFiles) {
|
||||
await this.processFile(file, editor, settings);
|
||||
}
|
||||
await this.processAll(files, editor, settings);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -138,9 +144,8 @@ export class AttachmentCleanPasteModule extends BaseModule {
|
||||
|
||||
private async processFile(
|
||||
file: File,
|
||||
editor: Editor,
|
||||
_settings: AttachmentCleanPasteSettings,
|
||||
): Promise<void> {
|
||||
): Promise<string | null> {
|
||||
try {
|
||||
const arrayBuffer = await file.arrayBuffer();
|
||||
const filename = file.name;
|
||||
@@ -166,11 +171,11 @@ export class AttachmentCleanPasteModule extends BaseModule {
|
||||
|
||||
await this.app.vault.createBinary(availablePath, arrayBuffer);
|
||||
|
||||
const link = `[[${availablePath}|${nameWithoutExt}]]`;
|
||||
editor.replaceSelection(link);
|
||||
return `[[${availablePath}|${nameWithoutExt}]]`;
|
||||
} catch (e) {
|
||||
new Notice(`Clean Paste error: ${e.message}`);
|
||||
console.error('Attachment Clean Paste:', e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user