Compare commits

..

10 commits
1.3.1 ... main

Author SHA1 Message Date
mudnug
edc3b9c51b Allow user to choose where statistics are stored 2026-06-17 20:59:13 -06:00
mudnug
291ba8d00e Add issue templates 2026-06-11 21:24:47 -06:00
mudnug
68d67ea34a Address issue where lines with quotes might be skipped 2026-06-11 20:50:18 -06:00
mudnug
c245458cfd Support hierarchal tag filter 2026-06-10 19:33:50 -06:00
mudnug
136316895b Add Ignore blockquotes filter 2026-06-09 19:37:45 -06:00
mudnug
acd3487728 Add jump to position feature 2026-06-08 17:20:31 -06:00
mudnug
1845465d83 Update readme 2026-06-07 10:46:08 -06:00
mudnug
335649fd2c Improved "Read from cursor" behavior 2026-06-06 12:34:08 -06:00
mudnug
98e075213f Fix issue where user was prevented from switching to Reading mode 2026-06-04 17:22:26 -06:00
mudnug
cfc8f86978 Remove Mobile battery optimization description 2026-05-30 18:00:13 -06:00
5 changed files with 200 additions and 43 deletions

114
.github/ISSUE_TEMPLATE/bug-report.yaml vendored Normal file
View file

@ -0,0 +1,114 @@
name: Bug report
description: Document a bug in note-reader
labels: ["type: bug"]
body:
- type: markdown
attributes:
value: |
## Before you start
Thanks for taking the time to report a bug in **note-reader**!
To help us reproduce and fix the issue quickly, please:
- Make sure youre using the **latest version of note-reader**.
- Include **clear steps to reproduce** and any relevant error messages.
- type: checkboxes
id: no-invalid-issues
attributes:
label: "Verify your issue is in the right place"
description: "This repository is only for the note-reader plugin, not the Obsidian app itself."
options:
- label: "My request is about the note-reader plugin for Obsidian (not core Obsidian or another plugin)."
required: true
- label: "I have tested with the latest released version of the note-reader plugin."
required: true
- type: checkboxes
id: no-duplicate-issues
attributes:
label: "⚠️ Check that this issue hasn't been reported already"
description: "A quick search through existing bug reports can save everyone time."
options:
- label: "I searched existing note-reader bug reports and didnt find a similar issue."
required: true
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: |
What exact steps can we follow to reproduce the issue?
The more specific you are, the easier it is for us to track down the problem.
Please include any relevant content as text, so we can copy and test it.
placeholder: |
Example:
1. Launch Obsidian Sandbox via the `Open Sandbox Vault` command.
2. Install the note-reader plugin.
4. Create a new note called `Demo problem`.
5. Paste in a task with the text `- [x] Some special problem text`.
6. Attempt to switch to Reading mode.
5. Observe that ...
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: Tell us what you expected to happen when following the steps above.
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: Actual behavior
description: |
Tell us what actually happens instead of the expected behavior.
Screenshots or short screen recordings are very helpful if you can provide them.
validations:
required: true
- type: checkboxes
id: operating-systems
attributes:
label: Which operating systems are you using?
description: You can select more than one option if applicable.
options:
- label: Linux
- label: macOS
- label: Windows
validations:
required: true
- type: input
id: note-reader-version
attributes:
label: note-reader plugin version
description: Which note-reader version are you using?
placeholder: "1.0.0"
validations:
required: true
- type: checkboxes
id: other-plugins-disabled
attributes:
label: Plugin conflict check
description: This helps us see if the problem is caused by an interaction with another plugin.
options:
- label: I tried with all other community plugins disabled, and the issue still occurs.
required: false
- type: textarea
id: possible-solution
attributes:
label: Possible solution (optional)
description: |
Optional: If you have any ideas about what might be causing the bug or how to fix it, please share them here.

View file

@ -0,0 +1,65 @@
name: Feature request
description: Suggest a new feature or improvement for note-reader
labels: ["type: enhancement"]
body:
- type: checkboxes
id: no-invalid-issues
attributes:
label: "⚠️ Verify your request is in the right place"
description: "This repository is only for the note-reader plugin, not the Obsidian app itself."
options:
- label: "My request is about the note-reader plugin for Obsidian (not core Obsidian or another plugin)."
required: true
- label: "I am only requesting a single feature or change in this issue. I will open separate requests for unrelated ideas."
required: true
- label: "I believe this feature would be useful to other note-reader users, not just for my very specific personal workflow."
required: true
- type: checkboxes
id: no-duplicate-issues
attributes:
label: "⚠️ Please check that this feature hasnt been suggested already"
description: "A quick search through existing feature requests helps avoid duplicates."
options:
- label: "I searched existing note-reader enhancement issues and did not find a similar request."
required: true
- type: textarea
id: feature-description
attributes:
label: "🔖 Feature description"
description: |
Describe what youre trying to accomplish or whats difficult today.
Focus on your goal or pain point, not the solution or UI details.
placeholder: "When I try to..., I run into..., which makes it hard to..."
validations:
required: true
- type: textarea
id: solution
attributes:
label: "✔️ How it should work"
description: |
Explain what you want to happen and why it would help your workflow.
Focus on what the feature should do rather than how it should be implemented.
placeholder: "In my use case, this would let me ..."
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: "❓ Alternatives youve considered"
description: "Have you tried any workarounds or other approaches? If so, describe them here."
placeholder: "I have considered ..."
validations:
required: false
- type: textarea
id: additional-context
attributes:
label: "📝 Additional context"
description: "Add any other context, examples, or screenshots that help explain your request."
placeholder: "For example, a screenshot of your current workflow, or a short note showing where this would fit."
validations:
required: false

View file

@ -10,7 +10,6 @@ Transform your notes (or articles via Obsidian Web Clipper) into an immersive au
- [Features](#features)
- [Installation](#how-to-install-the-plugin)
- [Usage](#usage)
- [Mobile battery optimization](#mobile-battery-optimization)
- [Settings](#settings)
- [Commands](#commands)
- [Data security](#data-security)
@ -24,6 +23,7 @@ Transform your notes (or articles via Obsidian Web Clipper) into an immersive au
- **Reader Modes**: Enhanced mode with highlighting and progress tracking, and Lite mode for audio-only reading on mobile devices with the screen off.
- **Media Key Support**: Use keyboard media keys for playback control.
- **Resume Position**: Automatically remember and resume reading position (if enabled).
- **Jump to Position**: Hover over any line in the editor while reading to reveal a play icon; click it to start reading from that exact line.
### Text Processing
@ -41,8 +41,6 @@ Transform your notes (or articles via Obsidian Web Clipper) into an immersive au
## How to install the plugin
[![Open in Obsidian](https://custom-icon-badges.demolab.com/badge/-Open%20In%20Obsidian-d4d4d4?style=for-the-badge&logo=obsidian-full)](obsidian://show-plugin?id=note-reader)
1. **Community Plugins Store**: Open Obsidian, go to Settings → Community plugins → Browse, and search for "Note Reader". If available, select Install and then Enable. (Note: Plugin approval is taking several months, so if not found, use manual installation below.)
2. **Manual Installation**: Download the plugin files (`main.js`, `manifest.json`, `styles.css`) from the plugin's GitHub repository. Create a new folder in your Obsidian vault's plugins directory (e.g., `.obsidian/plugins/note-reader`). Place the downloaded files in this folder, then enable the plugin in Settings → Community plugins.
@ -52,10 +50,10 @@ To use Note Reader:
1. Open the note you want to listen to in Obsidian.
2. Activate the "Read note" command using one of these methods:
2. Activate the "Read note from top" command using one of these methods:
- Press the assigned hotkey (if you've set one).
- Click the ribbon icon.
- Use the Command Palette and search for "Read note".
- Use the Command Palette and search for "Read note from top".
3. The reader controls will appear at the top of the current pane, showing a loading spinner while preparing the audio.
@ -65,38 +63,9 @@ To use Note Reader:
- **Settings**: Access the plugin settings.
- **Close**: Stop reading and hide the reader interface.
5. If you switch to a different note while reading, click "Read Active Note" to restart reading from the beginning of the active note.
5. If you switch to a different note while reading, use the "Reload active note" command to restart reading from the beginning of the active note.
To assign a hotkey: Go to Settings → Hotkeys, search for "note reader", and assign a key combination to the "Read note" command.
## Mobile Battery Optimization
To avoid reader stopping on mobile devices, make sure to disable battery optimization for Obsidian:
- On Android, turn off battery optimization for Obsidian in the app settings.
- On iOS, disable Low Power Mode and enable Background App Refresh for Obsidian.
> **Why:** This permission allows continued reading in the background. Without it, Note Reader gets stalled shortly after the screen turns off on mobile devices.
More detailed instructions:
For Android (latest versions like Android 13 and 14):
- Open **Settings**.
- Go to **Apps & Notifications** > **See all apps** > **Obsidian**.
- Tap **Battery** or **Battery Optimization**.
- Select **Battery Optimization** or **Optimize battery usage**.
- Find Obsidian and set it to **Not optimized** or **Dont optimize**.
- Alternatively, search **Battery Optimization** in Settings and exclude Obsidian.
For iOS (iOS 18 or 19):
- Open **Settings** > **Battery**.
- Turn off **Low Power Mode**.
- Enable **Background App Refresh** under **Settings** > **General** > **Background App Refresh** for Obsidian.
- Confirm Obsidian has permission to run in the background.
These steps prevent the system from pausing Obsidian when running in the background or with the screen off, ensuring uninterrupted reading. For battery-conscious users, Note Reader Lite mode is recommended when listening with the screen off.
To assign a hotkey: Go to Settings → Hotkeys, search for "note reader", and assign a key combination to the "Read note from top" command.
## Settings
@ -115,6 +84,7 @@ Toggle various filters to exclude content from being read:
- Ignore YAML frontmatter
- Ignore fenced code blocks
- Ignore inline code backticks
- Ignore blockquotes
- Ignore tags
- Ignore Markdown header syntax
- Ignore markdown tables
@ -126,7 +96,7 @@ Toggle various filters to exclude content from being read:
- Ignore backslash escapes
- Ignore underscores
Additionally, enable phrase line filtering to ignore lines containing specific phrases.
Additionally, enable phrase line filtering to ignore lines containing specific phrases, and prefix line filtering to skip lines that start with a specific prefix.
### Text-to-Speech
@ -172,7 +142,9 @@ Additionally, enable phrase line filtering to ignore lines containing specific p
### Statistics
View usage statistics and reset counters.
#### Statistics storage modes
- **Sync across devices (plugin storage):** Stores counters in the plugin's settings so they will be included when you sync your vault (e.g., via Obsidian Sync or other vault-syncing solutions).
- **Local device only (browser storage):** Stores counters in the browser/localStorage for the current device only; these values are not synced across devices.
## Commands
@ -180,9 +152,9 @@ The plugin provides the following commands accessible via the Command Palette (`
### Core Reading Commands
- **Read note or selected text**: Reads the active note aloud. If text is selected, reads only the selection. Otherwise, reads the entire note from the top (or from the persisted position if available).
**Read from selected text**: Reads only the currently selected text. Only available when text is selected.
- **Start reading from cursor**: Begins reading from the current cursor position in the active note.
- **Read note from top**: Reads the document from the beginning. If text is selected, reads only the selected portion (from the start of the selection to the cursor/selection end). Otherwise, reads the entire note from the top (or from the persisted position if enabled).
- **Start reading from cursor**: Begins reading from the current cursor position in the active note.
- **Read from selected text**: Reads only the currently selected text. Only available when text is selected.
- **Reload active note**: Reloads and restarts reading of the currently active note from the beginning.
### Playback Control Commands

View file

@ -1,7 +1,7 @@
{
"id": "note-reader",
"name": "Note Reader",
"version": "1.3.1",
"version": "1.6.0",
"minAppVersion": "1.11.0",
"description": "Provides text-to-speech (TTS) for notes or clipped articles by reading them aloud while highlighting words. Offers on-device and online voice providers.",
"author": "m",

View file

@ -3,5 +3,11 @@
"1.1.0": "1.11.0",
"1.2.0": "1.11.0",
"1.3.0": "1.11.0",
"1.3.1": "1.11.0"
"1.3.1": "1.11.0",
"1.4.0": "1.11.0",
"1.5.0": "1.11.0",
"1.5.1": "1.11.0",
"1.5.2": "1.11.0",
"1.5.3": "1.11.0",
"1.6.0": "1.11.0"
}