Skip to content

Commit 09b277f

Browse files
committed
docs(readme): update readme documentation
Update docs to reflect newly-added features and wiki
1 parent d91bd11 commit 09b277f

File tree

1 file changed

+49
-77
lines changed

1 file changed

+49
-77
lines changed

README.md

Lines changed: 49 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ compared to traditional tools such as Tesseract.
102102
- Bring-your-own endpoint support for any service that follows the
103103
OpenAI-compatible Chat Completions API
104104
- Allows integration with services like:
105+
105106
- [DeepInfra](https://deepinfra.com)
106107
- [Fireworks.ai](https://fireworks.ai)
107108
- [Together.ai](https://together.ai)
@@ -129,24 +130,44 @@ compared to traditional tools such as Tesseract.
129130
- Replace image embed
130131
- Insert at cursor
131132
- Create or append to another note
132-
- Optional header template with dynamic timestamp formatting
133-
- File/folder naming templates using [moment.js](https://momentjs.com/docs/#/displaying/format/)
134-
- Extract from embedded images or via OS-native file picker
133+
- Header and footer template creation with `{{placeholder}}` support
134+
- File/folder naming template creation with `{{placeholder}}` support
135+
- Extract from embedded images or via OS-native file/folder pickers
135136
- Built-in CORS proxy fallback for external images
136137

138+
> [!NOTE]
139+
> Support for `{{placeholder}}` options is still being tested.
140+
> Unexpected behavior may occur.
141+
> Refer to the
142+
> [Wiki](https://github.com/rootiest/obsidian-ai-image-ocr/wiki/Templating)
143+
> for available placeholders.
144+
> Please report any placeholder issues or suggestions on GitHub.
145+
137146
## Installation
138147

148+
### Install via Obsidian Community Plugin Browser
149+
150+
> [!NOTE]
151+
> This option is not yet available.
152+
153+
1. Open Obsidian settings.
154+
2. Under "Community plugins", ensure "Safe mode" is disabled.
155+
3. Click "Browse" to open the Community Plugin Browser.
156+
4. Search for "AI Image OCR".
157+
5. Click "Install" to download the plugin.
158+
139159
### Install via BRAT
140160

141161
If you have the [BRAT](https://github.com/TfTHacker/obsidian42-brat) plugin installed,
142162
you can install this plugin using the BRAT plugin manager:
143163

144-
1. Click `Add beta plugin`.
145-
2. Enter `https://github.com/rootiest/obsidian-ai-image-ocr`
164+
1. Open the BRAT plugin settings.
165+
2. Click `Add beta plugin`.
166+
3. Enter `https://github.com/rootiest/obsidian-ai-image-ocr`
146167
in the `Repository URL` field.
147-
3. (Optionally) Check the `Enable after installing the plugin`
168+
4. (Optionally) Check the `Enable after installing the plugin`
148169
checkbox to enable the plugin immediately after installation.
149-
4. Click `Add plugin`
170+
5. Click `Add plugin`
150171

151172
### Manual Installation
152173

@@ -162,33 +183,21 @@ and extract to your plugins directory.
162183

163184
## Configuration
164185

165-
**These settings are required:**
166-
167186
- Choose a model provider (`OpenAI`, `Gemini`, `Ollama`, etc.)
168187
- Select a model ID (e.g. `gpt-4o`, `llava:13b`, etc.)
169188
- If using a cloud model, enter the corresponding API key
170189

171-
**Optional settings include:**
190+
Several addition optional configuration option are available with which
191+
you may customize the output behavior.
172192

173-
- **Header Template**: Markdown inserted before extracted text.
174-
Can use `{{YYYY-MM-DD HH:mm:ss}}` for timestamps.
175-
- **Output to Another Note**: Extracted text can be routed to a new note.
176-
- **Folder Path**: Where to create the new note (if enabled).
177-
- **Filename Template**: Can include dynamic date/time formatting.
178-
- **Append or Overwrite**: Controls whether to reuse or recreate notes
179-
with the same name.
193+
`{{placeholder}}` options are
194+
[detailed in the wiki](https://github.com/rootiest/obsidian-ai-image-ocr/wiki/Templating).
180195

181196
## Usage
182197

183-
### Output Behavior
184-
185-
- Header template (if set) will be inserted before the extracted text.
186-
- Output will go to a new note or current note depending on settings.
187-
- If extracting from an embedded image, the embed will be replaced.
188-
189198
### Open An Image For Extraction
190199

191-
1. Use the command palette (`Ctrl+P`) and search for "Extract Text from Image".
200+
1. Use the command palette (`Ctrl+P`) and search for "Extract text from image".
192201
2. Select an image file.
193202
3. Text will be extracted and inserted per your configuration.
194203

@@ -199,6 +208,13 @@ and extract to your plugins directory.
199208
3. The nearest image above the cursor will be used as the source.
200209
4. The embed will be replaced by the extracted text.
201210

211+
### Select A Folder For Extraction
212+
213+
1. Use the command palette (`Ctrl+P`) and search for
214+
"Extract text from image folder".
215+
2. Select a directory which contains images.
216+
3. Text will be extracted from each image and inserted per your configuration.
217+
202218
## Notes
203219

204220
> [!TIP]
@@ -230,59 +246,15 @@ and extract to your plugins directory.
230246
The following features are under consideration
231247
for future releases of the plugin:
232248

233-
### Batch Image Processing
234-
235-
- **Extract from all embedded images** in a note at once.
236-
- **Process entire folders** of image files (e.g., screenshots, scans).
237-
- **Configurable output** options for batch mode:
238-
- Combine all results into the active note.
239-
- Create a new note for each image.
240-
- Optionally include image filenames as headings or titles.
241-
- Separate output configuration for single and batched extractions.
242-
243-
### Multi-image Request Batching
244-
245-
When performing batched image processing:
246-
247-
- **Send multiple images in a single API request**
248-
to reduce latency and API overhead.
249-
- Use a defined **separator string** between images'
250-
OCR results for reliable parsing into output.
251-
- Improve efficiency and lower cost when working with high-volume image sets.
252-
253-
### Enhanced Output Templates
254-
255-
Use the following dynamic properties in addition to date-time
256-
in output templates:
257-
258-
- **Model and Provider names**: Use `{{model}}` or `{{provider}}`
259-
in output templates.
260-
- **Image metadata**: Use image metadata in output templates, such as:
261-
- `{{image.filename}}` for the original filename
262-
- `{{image.path}}` for the full path of the image
263-
- `{{image.size}}` for the image size in bytes
264-
- `{{image.dimensions}}` for the image dimensions (e.g., "1920x1080")
265-
- `{{image.width}}` for the image width
266-
- `{{image.height}}` for the image height
267-
- `{{image.created}}` for the image file creation date
268-
- `{{image.modified}}` for the image file last modified date
269-
- **Note properties**: When outputting to a note, use:
270-
- `{{note.title}}` for the note title
271-
- `{{note.path}}` for the note path
272-
- `{{note.created}}` for the note creation date
273-
- `{{note.modified}}` for the note last modified date
274-
- `{{note.frontmatter.key}}` for any frontmatter key-value pairs
275-
- **Other metadata**:
276-
Any other relevant metadata that can be extracted from
277-
the image file or note.
278-
279-
### Other Potential Enhancements
280-
281-
- **Custom provider name**: Allow custom naming when using custom provider.
282-
- **Custom model name**: Allow setting a custom name for any model used.
283-
- **Preview before extract**: Show a list of matched images before running OCR.
284-
- **Hide or obfuscate API keys**: Hide or obfuscate API keys in settings.
285-
- **Support for more OCR models**, including local or offline alternatives.
249+
### Extend Placeholder Support
250+
251+
- Add `created`/`modified` placeholders for images.
252+
- Support moment.js formatting of image placeholders.
253+
- Add other `{{placeholder}}` options.
254+
255+
### Reverse Placeholder Support
256+
257+
- Support using a keyword to indicate where extracted text should be place in a note.
286258

287259
> [!NOTE]
288260
> These goals are exploratory and may evolve based on user feedback and

0 commit comments

Comments
 (0)