Skip to content

Commit

Permalink
feat: add filepath when using uid
Browse files Browse the repository at this point in the history
close #86
  • Loading branch information
Vinzent03 committed Nov 23, 2022
1 parent f7f37cb commit eca15a2
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 25 deletions.
4 changes: 3 additions & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const DEFAULT_SETTINGS: AdvancedURISettings = {
openFileWithoutWriteInNewPane: false,
idField: "id",
useUID: false,
addFilepathWhenUsingUID: false,
};

export default class AdvancedURI extends Plugin {
Expand Down Expand Up @@ -853,7 +854,8 @@ export default class AdvancedURI extends Plugin {
const file = this.app.vault.getAbstractFileByPath(parameters.filepath);

if (this.settings.useUID && file instanceof TFile) {
parameters.filepath = undefined;
if (!this.settings.addFilepathWhenUsingUID)
parameters.filepath = undefined;
parameters.uid = await this.getUIDFromFile(file);
}
for (const parameter in parameters) {
Expand Down
73 changes: 49 additions & 24 deletions src/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,71 @@ export class SettingsTab extends PluginSettingTab {

new Setting(containerEl)
.setName("Open file on write")
.addToggle(cb => cb.onChange(value => {
this.plugin.settings.openFileOnWrite = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.openFileOnWrite));
.addToggle(cb => cb
.setValue(this.plugin.settings.openFileOnWrite)
.onChange(value => {
this.plugin.settings.openFileOnWrite = value;
this.plugin.saveSettings();
}));

new Setting(containerEl)
.setName("Open file on write in a new pane")
.setDisabled(this.plugin.settings.openFileOnWrite)
.addToggle(cb => cb.onChange(value => {
this.plugin.settings.openFileOnWriteInNewPane = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.openFileOnWriteInNewPane));
.addToggle(cb => cb
.setValue(this.plugin.settings.openFileOnWriteInNewPane)
.onChange(value => {
this.plugin.settings.openFileOnWriteInNewPane = value;
this.plugin.saveSettings();
}));

new Setting(containerEl)
.setName("Open daily note in a new pane")
.addToggle(cb => cb.onChange(value => {
this.plugin.settings.openDailyInNewPane = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.openDailyInNewPane));
.addToggle(cb => cb
.setValue(this.plugin.settings.openDailyInNewPane)
.onChange(value => {
this.plugin.settings.openDailyInNewPane = value;
this.plugin.saveSettings();
}));

new Setting(containerEl)
.setName("Open file without write in new pane")
.addToggle(cb => cb.onChange(value => {
this.plugin.settings.openFileWithoutWriteInNewPane = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.openFileWithoutWriteInNewPane));
.addToggle(cb => cb
.setValue(this.plugin.settings.openFileWithoutWriteInNewPane)
.onChange(value => {
this.plugin.settings.openFileWithoutWriteInNewPane = value;
this.plugin.saveSettings();
}));

new Setting(containerEl)
.setName("Use UID instead of file paths")
.addToggle(cb => cb.onChange(value => {
this.plugin.settings.useUID = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.useUID));
.addToggle(cb => cb
.setValue(this.plugin.settings.useUID)
.onChange(value => {
this.plugin.settings.useUID = value;
this.plugin.saveSettings();
this.display();
})
);

if (this.plugin.settings.useUID) {
new Setting(containerEl)
.setName("Add filepath parameter")
.setDesc("When using UID instead of file paths, you can still add the filepath parameter to know what this URI is about. It's NOT actually used.")
.addToggle(cb => cb
.setValue(this.plugin.settings.addFilepathWhenUsingUID)
.onChange(value => {
this.plugin.settings.addFilepathWhenUsingUID = value;
this.plugin.saveSettings();
}));
}
new Setting(containerEl)
.setName("UID field in frontmatter")
.addText(cb => cb.onChange(value => {
this.plugin.settings.idField = value;
this.plugin.saveSettings();
}).setValue(this.plugin.settings.idField));
.addText(cb => cb
.setValue(this.plugin.settings.idField)
.onChange(value => {
this.plugin.settings.idField = value;
this.plugin.saveSettings();
}));

new Setting(containerEl)
.setName('Donate')
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ export interface AdvancedURISettings {
openFileWithoutWriteInNewPane: boolean;
idField: string;
useUID: boolean;
addFilepathWhenUsingUID: boolean;
}

export interface Parameters {
Expand Down

0 comments on commit eca15a2

Please sign in to comment.