2 Commits

Author SHA1 Message Date
805054b850 Add simple plugin settings 2023-02-06 17:39:36 +03:00
9a6d00b90d add package-json.lock 2023-02-06 17:38:46 +03:00
3 changed files with 3772 additions and 2 deletions

50
main.ts
View File

@@ -1,10 +1,24 @@
import { Editor, MarkdownView, Plugin, TFile } from 'obsidian';
import { Editor, MarkdownView, Plugin, TFile, PluginSettingTab, App, Setting } from 'obsidian';
import { exec } from "child_process";
const plist = require('plist');
interface MacTagSettings {
writeOnSave: boolean;
}
const DEFAULT_SETTINGS: MacTagSettings = {
writeOnSave: true
}
export default class MacTagPlugin extends Plugin {
settings: MacTagSettings;
async onload() {
await this.loadSettings();
this.addSettingTab(new MacTagSettingTab(this.app, this));
this.addCommand({
id: 'write-macos-tag',
name: "Write Mac OS tags",
@@ -30,6 +44,15 @@ export default class MacTagPlugin extends Plugin {
onunload() {
}
async loadSettings() {
this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
writeTags(file: TFile) {
//@ts-ignore
const fileWithPath = `${this.app.vault.adapter.basePath}/${file.path}`;
@@ -66,3 +89,28 @@ export default class MacTagPlugin extends Plugin {
return tags.map((s: string)=> s.replace("#", ""))
}
}
class MacTagSettingTab extends PluginSettingTab {
plugin: MacTagPlugin;
constructor(app: App, plugin: MacTagPlugin) {
super(app, plugin);
this.plugin = plugin;
}
display(): void {
const {containerEl} = this;
containerEl.empty();
containerEl.createEl('h2', {text: 'Settings for Mac Tagger Plugin.'});
new Setting(containerEl)
.setName('Write on Save')
.setDesc('Check the box if you want to save tags when saving the file.')
.addToggle(tc => tc.onChange(async (value) => {
this.plugin.settings.writeOnSave = value;
await this.plugin.saveSettings();
}))
}
}

3722
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -16,7 +16,7 @@
"@typescript-eslint/eslint-plugin": "5.29.0",
"@typescript-eslint/parser": "5.29.0",
"builtin-modules": "3.3.0",
"esbuild": "0.25.0",
"esbuild": "0.14.47",
"obsidian": "latest",
"tslib": "2.4.0",
"typescript": "4.7.4"