Skip to content

Commit a969c66

Browse files
committed
Prepare HTML painter hotkey plugin for release
1 parent 32037ee commit a969c66

File tree

7 files changed

+2452
-184
lines changed

7 files changed

+2452
-184
lines changed

LICENSE

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
1-
Copyright (C) 2020-2025 by Dynalist Inc.
1+
MIT License
22

3-
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
3+
Copyright (c) 2025 aaronledray
44

5-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 34 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,53 @@
1-
# Obsidian Sample Plugin
1+
# HTML Painter Hotkey
22

3-
This is a sample plugin for Obsidian (https://obsidian.md).
3+
Cycle through **text color** or **highlight color** on selected text using keyboard shortcuts in Obsidian.
44

5-
This project uses TypeScript to provide type checking and documentation.
6-
The repo depends on the latest plugin API (obsidian.d.ts) in TypeScript Definition format, which contains TSDoc comments describing what it does.
5+
## Features
76

8-
This sample plugin demonstrates some of the basic functionality the plugin API can do.
9-
- Adds a ribbon icon, which shows a Notice when clicked.
10-
- Adds a command "Open Sample Modal" which opens a Modal.
11-
- Adds a plugin setting tab to the settings page.
12-
- Registers a global click event and output 'click' to the console.
13-
- Registers a global interval which logs 'setInterval' to the console.
7+
- **Cycle text colors**: Apply colors like black → red → blue → green → clear
8+
- **Cycle highlight colors**: Apply background colors like yellow → cyan → salmon → clear
9+
- Supports any valid CSS color name or hex code
10+
- Customizable color lists in plugin settings
11+
- Selection stays highlighted so you can keep pressing the hotkey to cycle
1412

15-
## First time developing plugins?
13+
## Usage
1614

17-
Quick starting guide for new plugin devs:
15+
1. Select any text in your Obsidian note
16+
2. Press your assigned hotkey to apply the first color
17+
3. Press again to cycle to the next color
18+
4. After the final color, the styling is removed (text returns to normal)
1819

19-
- 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.
20-
- Make a copy of this repo as a template with the "Use this template" button (login to GitHub if you don't see it).
21-
- Clone your repo to a local development folder. For convenience, you can place this folder in your `.obsidian/plugins/your-plugin-name` folder.
22-
- Install NodeJS, then run `npm i` in the command line under your repo folder.
23-
- Run `npm run dev` to compile your plugin from `main.ts` to `main.js`.
24-
- Make changes to `main.ts` (or create new `.ts` files). Those changes should be automatically compiled into `main.js`.
25-
- Reload Obsidian to load the new version of your plugin.
26-
- Enable plugin in settings window.
27-
- For updates to the Obsidian API run `npm update` in the command line under your repo folder.
20+
## Settings
2821

29-
## Releasing new releases
22+
Define your own color sequences in Settings → HTML Painter Hotkey:
3023

31-
- Update your `manifest.json` with your new version number, such as `1.0.1`, and the minimum Obsidian version required for your latest release.
32-
- 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.
33-
- 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
34-
- 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.
35-
- Publish the release.
24+
- **Text Colors**: e.g., `black, red, #0044ff, null`
25+
- **Highlight Colors**: e.g., `yellow, cyan, #fa8072, #ccff00, null`
3626

37-
> 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`.
38-
> The command will bump version in `manifest.json` and `package.json`, and add the entry for the new version to `versions.json`
27+
Use `null` as the last item to add a "clear styling" step at the end of the cycle.
3928

40-
## Adding your plugin to the community plugin list
29+
## Hotkeys
4130

42-
- Check the [plugin guidelines](https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines).
43-
- Publish an initial version.
44-
- Make sure you have a `README.md` file in the root of your repo.
45-
- Make a pull request at https://github.com/obsidianmd/obsidian-releases to add your plugin.
31+
Go to **Settings → Hotkeys** and search for "HTML Painter" to assign keys to:
4632

47-
## How to use
33+
- `Cycle HTML Text Color on Selection`
34+
- `Cycle HTML Highlight (Background Color) on Selection`
4835

49-
- Clone this repo.
50-
- Make sure your NodeJS is at least v16 (`node --version`).
51-
- `npm i` or `yarn` to install dependencies.
52-
- `npm run dev` to start compilation in watch mode.
36+
## Installation
5337

54-
## Manually installing the plugin
38+
### From Obsidian Community Plugins
5539

56-
- Copy over `main.js`, `styles.css`, `manifest.json` to your vault `VaultFolder/.obsidian/plugins/your-plugin-id/`.
40+
1. Open Settings → Community plugins
41+
2. Click "Browse" and search for "HTML Painter Hotkey"
42+
3. Click Install, then Enable
5743

58-
## Improve code quality with eslint (optional)
59-
- [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.
60-
- To use eslint with this project, make sure to install eslint from terminal:
61-
- `npm install -g eslint`
62-
- To use eslint to analyze this project use this command:
63-
- `eslint main.ts`
64-
- eslint will then create a report with suggestions for code improvement by file and line number.
65-
- 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:
66-
- `eslint .\src\`
44+
### Manual Installation
6745

68-
## Funding URL
46+
1. Download `main.js`, `manifest.json`, and `styles.css` from the latest release
47+
2. Create a folder called `html-painter-hotkey` in your vault's `.obsidian/plugins/` directory
48+
3. Copy the downloaded files into that folder
49+
4. Enable the plugin in Settings → Community plugins
6950

70-
You can include funding URLs where people who use your plugin can financially support it.
51+
## License
7152

72-
The simple way is to set the `fundingUrl` field to your link in your `manifest.json` file:
73-
74-
```json
75-
{
76-
"fundingUrl": "https://buymeacoffee.com"
77-
}
78-
```
79-
80-
If you have multiple URLs, you can also do:
81-
82-
```json
83-
{
84-
"fundingUrl": {
85-
"Buy Me a Coffee": "https://buymeacoffee.com",
86-
"GitHub Sponsor": "https://github.com/sponsors",
87-
"Patreon": "https://www.patreon.com/"
88-
}
89-
}
90-
```
91-
92-
## API Documentation
93-
94-
See https://github.com/obsidianmd/obsidian-api
53+
MIT

0 commit comments

Comments
 (0)