feat(readme): adding README file

This commit is contained in:
EloiMusk 2023-03-10 08:29:08 +01:00
parent edd77c6a53
commit 0839a84f0e
No known key found for this signature in database
GPG key ID: A59863E13934DD4F

114
README.md
View file

@ -1,62 +1,58 @@
# Obsidian Sample Plugin # Prioritize Plugin
This is a sample plugin for Obsidian (https://obsidian.md). The Prioritize plugin for Obsidian allows you to easily mark notes or tasks with a priority level. You can configure the number of priority levels and their names, and switch between different presets or create your own presets.
This project uses Typescript to provide type checking and documentation. ## Installation
The repo depends on the latest plugin API (obsidian.d.ts) in Typescript Definition format, which contains TSDoc comments describing what it does.
**Note:** The Obsidian API is still in early alpha and is subject to change at any time! You can install the Prioritize plugin via the Community Plugin Browser in Obsidian, or you can build it directly from the GitHub repository: https://github.com/EloiMusk/obsidian-prio-plugin
This sample plugin demonstrates some of the basic functionality the plugin API can do. ### From source
- 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.
## First time developing plugins?
Quick starting guide for new plugin devs:
- Check if [someone already developed a plugin for what you want](https://obsidian.md/plugins)! There might be an existing plugin similar enough that you can partner up with.
- Make a copy of this repo as a template with the "Use this template" button (login to GitHub if you don't see it).
- Clone your repo to a local development folder. For convenience, you can place this folder in your `.obsidian/plugins/your-plugin-name` folder.
- Install NodeJS, then run `npm i` in the command line under your repo folder.
- Run `npm run dev` to compile your plugin from `main.ts` to `main.js`.
- Make changes to `main.ts` (or create new `.ts` files). Those changes should be automatically compiled into `main.js`.
- Reload Obsidian to load the new version of your plugin.
- Enable plugin in settings window.
- For updates to the Obsidian API run `npm update` in the command line under your repo folder.
## 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. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release.
- Publish the release.
> You can simplify the version bump process by running `npm version patch`, `npm version minor` or `npm version major` after updating `minAppVersion` manually in `manifest.json`.
> The command will bump version in `manifest.json` and `package.json`, and add the entry for the new version to `versions.json`
## Adding your plugin to the community plugin list
- Check https://github.com/obsidianmd/obsidian-releases/blob/master/plugin-review.md
- 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. - Clone this repo.
- `npm i` or `yarn` to install dependencies - `npm i` or `yarn` to install dependencies
- `npm run dev` to start compilation in watch mode. - `npm run dev` to start compilation in watch mode.
## Manually installing the plugin ### Manually installing the plugin
- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`. - Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`.
## Usage
1. After installing and configuring the plugin, you can mark any note or task with a priority level.
2. To mark something with medium priority, select the text you want to prioritize and press `ctrl+shift+alt+p`.
3. The text will be marked with a tag that corresponds to the priority level at the end of the line.
4. You can customize the number of priority levels and their names via the plugin settings.
5. You can switch between different presets and create your own presets.
6. To remove priority, press `ctrl+shift+alt+d`.
7. To increase priority, press `ctrl+shift+alt+ArrowUp`.
8. To decrease priority, press `ctrl+shift+alt+ArrowDown`.
| HotKeys | Action |
|--------------------|-------------------|
| `ctrl+shift+alt+p` | Set priority |
| `ctrl+shift+alt+d` | Remove priority |
| `Ctrl+Shift+Alt+↑` | Increase priority |
| `Ctrl+Shift+Alt+↓` | Decrease priority |
### Configuration
In the settings tab, you can configure the Prioritize plugin to your liking. This includes setting the number of levels of priority and assigning a name for each level. To save your configuration, you need to click the `Save` button.
There are also presets available in the plugin. To create a new preset, configure the plugin as you like and then click the `Add Preset` button. This will open a window where you can enter a unique name for the preset. Once you have named the preset, it will be saved as a new preset. Remember to save the settings afterward to keep your new preset.
To apply a preset, click the `Apply` button on the preset you want to use. This will overwrite the current settings with the preset. If you want to overwrite a preset, you can do so by pressing the `Overwrite` button. This will overwrite the preset with the current configuration.
If you want to delete a preset, simply press the `Delete` button.
## Contributing
If you'd like to contribute to the Prioritize plugin, please fork the GitHub repository and submit a pull request.
## License
The Prioritize plugin is released under the GNU License.
## Improve code quality with eslint (optional) ## Improve code quality with eslint (optional)
- [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code. - [ESLint](https://eslint.org/) is a tool that analyzes your code to quickly find problems. You can run ESLint against your plugin to find common bugs and ways to improve your code.
- To use eslint with this project, make sure to install eslint from terminal: - To use eslint with this project, make sure to install eslint from terminal:
@ -67,30 +63,6 @@ Quick starting guide for new plugin devs:
- If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder: - If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder:
- `eslint .\src\` - `eslint .\src\`
## Funding URL
You can include funding URLs where people who use your plugin can financially support it.
The simple way is to set the `fundingUrl` field to your link in your `manifest.json` file:
```json
{
"fundingUrl": "https://buymeacoffee.com"
}
```
If you have multiple URLs, you can also do:
```json
{
"fundingUrl": {
"Buy Me a Coffee": "https://buymeacoffee.com",
"GitHub Sponsor": "https://github.com/sponsors",
"Patreon": "https://www.patreon.com/"
}
}
```
## API Documentation ## API Documentation
See https://github.com/obsidianmd/obsidian-api See https://github.com/obsidianmd/obsidian-api