diff --git a/README.md b/README.md index da25203..8f5ca01 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,9 @@ -## Obsidian Sample Plugin +## Automatically Reveal Active File -This is a sample plugin for Obsidian (https://obsidian.md). +This plugin will automatically reveal the active file in the navigation when you open a file. -This project uses Typescript to provide type checking and documentation. -The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does. +## Installing the plugin -**Note:** The Obsidian API is still in early alpha and is subject to change at any time! +This plugin can be installed in the `Third-party plugin` tab in Obsidian settings. -This sample plugin demonstrates some of the basic functionality the plugin API can do. -- Changes the default font color to red using `styles.css`. -- Adds a ribbon icon, which shows a Notice when clicked. -- Adds a command "Open Sample Modal" which opens a Modal. -- Adds a plugin setting tab to the settings page. -- Registers a global click event and output 'click' to the console. -- Registers a global interval which logs 'setInterval' to the console. - - -### Releasing new releases - -- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release. -- Update your `versions.json` file with `"new-plugin-version": "minimum-obsidian-version"` so older versions of Obsidian can download an older version of your plugin that's compatible. -- Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix `v`. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases -- Upload the files `manifest.json`, `main.js`, `styles.css` as binary attachments. -- Publish the release. - -### Adding your plugin to the community plugin list - -- Publish an initial version. -- Make sure you have a `README.md` file in the root of your repo. -- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin. - -### How to use - -- Clone this repo. -- `npm i` or `yarn` to install dependencies -- `npm run dev` to start compilation in watch mode. - -### Manually installing the plugin - -- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`. - -### API Documentation - -See https://github.com/obsidianmd/obsidian-api +After installation you will have to enable it. diff --git a/main.ts b/main.ts index e17ffef..1331c0f 100644 --- a/main.ts +++ b/main.ts @@ -2,82 +2,8 @@ import { App, Modal, Notice, Plugin, PluginSettingTab, Setting } from 'obsidian' export default class MyPlugin extends Plugin { onload() { - console.log('loading plugin'); - - this.addRibbonIcon('dice', 'Sample Plugin', () => { - new Notice('This is a notice!'); - }); - - this.addStatusBarItem().setText('Status Bar Text'); - - this.addCommand({ - id: 'open-sample-modal', - name: 'Open Sample Modal', - // callback: () => { - // console.log('Simple Callback'); - // }, - checkCallback: (checking: boolean) => { - let leaf = this.app.workspace.activeLeaf; - if (leaf) { - if (!checking) { - new SampleModal(this.app).open(); - } - return true; - } - return false; - } - }); - - this.addSettingTab(new SampleSettingTab(this.app, this)); - - this.registerEvent(this.app.on('codemirror', (cm: CodeMirror.Editor) => { - console.log('codemirror', cm); - })); - - this.registerDomEvent(document, 'click', (evt: MouseEvent) => { - console.log('click', evt); - }); - - this.registerInterval(window.setInterval(() => console.log('setInterval'), 5 * 60 * 1000)); - } - - onunload() { - console.log('unloading plugin'); - } -} - -class SampleModal extends Modal { - constructor(app: App) { - super(app); - } - - onOpen() { - let {contentEl} = this; - contentEl.setText('Woah!'); - } - - onClose() { - let {contentEl} = this; - contentEl.empty(); - } -} - -class SampleSettingTab extends PluginSettingTab { - display(): void { - let {containerEl} = this; - - containerEl.empty(); - - containerEl.createEl('h2', {text: 'Settings for my awesome plugin.'}); - - new Setting(containerEl) - .setName('Setting #1') - .setDesc('It\'s a secret') - .addText(text => text.setPlaceholder('Enter your secret') - .setValue('') - .onChange((value) => { - console.log('Secret: ' + value); - })); - + this.app.workspace.on('file-open', () => { + this.app.commands.executeCommandById('explorer:reveal-active-file'); + }) } } diff --git a/manifest.json b/manifest.json index 4ca4889..4b8386d 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,10 @@ { - "id": "obsidian-sample-plugin", - "name": "Sample Plugin", - "version": "1.0.1", - "minAppVersion": "0.9.12", - "description": "This is a sample plugin for Obsidian. This plugin demonstrates some of the capabilities of the Obsidian API.", - "author": "Obsidian", - "authorUrl": "https://obsidian.md/about", + "id": "obsidian-reveal-active-file", + "name": "Automatically reveal active file", + "version": "1.0.0", + "minAppVersion": "0.9.22", + "description": "This plugin will reveal the active file in the navigation when a file is opened.", + "author": "Matt Sessions", + "authorUrl": "https://www.matthewsessions.com", "isDesktopOnly": false } diff --git a/styles.css b/styles.css deleted file mode 100644 index cfd0fd7..0000000 --- a/styles.css +++ /dev/null @@ -1,4 +0,0 @@ -/* Sets all the text color to red! */ -body { - color: red; -} diff --git a/versions.json b/versions.json index ba14785..e4c0e6e 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,3 @@ { - "1.0.1": "0.9.12", - "1.0.0": "0.9.7" + "1.0.0": "0.9.22" }