chore: update user-facing text for clarity and consistency in documentation and code comments

This commit is contained in:
Lukas Wolfsteiner 2026-06-10 17:09:38 +02:00
parent b6df083711
commit db71df59b8
6 changed files with 21 additions and 12 deletions

View file

@ -115,11 +115,20 @@ Follow Obsidian's **Developer Policies** and **Plugin Guidelines**. In particula
## UX & copy guidelines (for UI text, commands, settings)
Follow the [Obsidian style guide](https://obsidian.md/help/style-guide) for all user-facing copy: commands, settings, notices, explorer UI, error messages, and `README.md`. When adding or editing strings, check that text still matches the guide before merging.
- Prefer sentence case for headings, buttons, and titles.
- Use clear, action-oriented imperatives in step-by-step copy.
- Use **bold** to indicate literal UI labels. Prefer "select" for interactions.
- Use arrow notation for navigation: **Settings → Community plugins**.
- Keep in-app strings short, consistent, and free of jargon.
- Use "note" (not "markdown note") for Markdown files in the vault; prefer "active note" over "current note".
- Prefer "search term" over "search query" in user-facing text.
- Prefer "maximum" over "max" and "minimum" over "min".
- Match the exact casing of UI labels when referencing settings (for example, **Access token**).
- Document settings in-app with `setDesc()`; keep `README.md` aligned with the manifest plugin name and UI labels.
`eslint-plugin-obsidianmd` enforces some of these rules (including sentence case) in TypeScript source files.
## Performance

View file

@ -17,7 +17,7 @@ The plugin uses a Raindrop.io access token and the official Raindrop.io REST API
## Features
- **Raindrop.io explorer**: Browse saved bookmarks from the configured collection in a side pane.
- **Note-aware filtering**: Let the explorer follow the active note by turning note tags and external links into a Raindrop.io search query.
- **Note-aware filtering**: Let the explorer follow the active note by turning note tags and external links into a Raindrop.io search term.
- **Manual search**: Search Raindrop.io directly with keywords, `#tag` filters, exact phrases, or operators such as `type:article`, `notag:true`, and `created:2024-01`.
- **Note blocks**: Render saved Raindrop.io links inline from fenced `raindrop` code blocks.
- **Configurable tag clicks**: Choose whether tags on rendered Raindrop.io items search Obsidian notes, filter the explorer, or do nothing.
@ -26,7 +26,7 @@ The plugin uses a Raindrop.io access token and the official Raindrop.io REST API
## Setup
1. Create or copy a Raindrop.io access token.
2. Open **Settings -> Community plugins -> Raindrop.io Plugin for Obsidian**.
2. Open **Settings → Community plugins**, then select **Raindrop.io**.
3. Paste the token into **Access token**.
4. Use **Open explorer** from the command palette or ribbon icon.
5. Optionally add a `raindrop` block to a note for inline results.
@ -40,7 +40,7 @@ The side pane opens as **Raindrop.io explorer**. It can browse all saved links f
Controls:
- **Search**: Runs the query in the search field against Raindrop.io.
- **Use note filter**: Rebuilds the query from the active markdown note.
- **Use note filter**: Rebuilds the search term from the active note.
- **Browse all**: Clears the query and shows the configured collection.
- **Refresh**: Reloads the current explorer state.
- **Load more**: Requests the next page of results when more are available.
@ -51,7 +51,7 @@ When the explorer follows a note, it uses:
- External `http` and `https` links as exact phrase searches.
- `match:OR` when multiple note-derived filters are present, so a bookmark can match any note tag or link.
Opening and interacting with the explorer preserves the last active markdown note as context, so the note filter remains stable while you browse.
Opening and interacting with the explorer preserves the last active note as context, so the note filter remains stable while you browse.
## Note blocks
@ -71,11 +71,11 @@ Options:
- `collection`: Raindrop.io collection ID. Use `0` for all collections. Defaults to **Default collection**.
- `tag`: Raindrop.io tag to include in the search. Multi-word tags are quoted automatically, for example `#"coffee beans"`.
- `search`: Raindrop.io search query. This is passed through to Raindrop.io.
- `search`: Raindrop.io search term. This is passed through to Raindrop.io.
- `sort`: Raindrop.io sort value, for example `-created`. Defaults to **Default sort**.
- `limit`: Number of links to request, clamped between 1 and 100. Defaults to **Default limit**.
You can combine `tag` and `search`; the plugin joins them into one Raindrop.io query.
You can combine `tag` and `search`; the plugin joins them into one Raindrop.io search term.
## Settings
@ -112,7 +112,7 @@ The plugin passes search text through to Raindrop.io. Useful examples:
- The plugin only makes network requests to `https://api.raindrop.io`.
- The access token is stored locally in Obsidian plugin data.
- Note-aware filtering sends the generated Raindrop.io search query to Raindrop.io. If the active note contains external links, those URLs can be included in the query.
- Note-aware filtering sends the generated Raindrop.io search term to Raindrop.io. If the active note contains external links, those URLs can be included in the search term.
- The plugin does not collect analytics or use hidden telemetry.
## Release files

View file

@ -132,7 +132,7 @@ export default class RaindropViewPlugin extends Plugin {
const parsed = parseRaindropBlock(source);
const api = new RaindropApi(this.settings.accessToken);
if (!api.isConfigured) {
renderRaindropStatus(container, "Add a Raindrop.io access token in plugin settings.", "info");
renderRaindropStatus(container, "Add a Raindrop.io access token under Access token in plugin settings.", "info");
return;
}

View file

@ -39,7 +39,7 @@ export class RaindropApi {
async listRaindrops(params: RaindropListParams): Promise<RaindropItem[]> {
if (!this.isConfigured) {
throw new Error("Missing Raindrop.io access token. Add one in plugin settings.");
throw new Error("Missing Raindrop.io access token. Add one under Access token in plugin settings.");
}
const collectionId = Number.isFinite(params.collectionId) ? params.collectionId : 0;

View file

@ -144,7 +144,7 @@ export class RaindropSideView extends ItemView {
this.lastFileMtime = null;
this.lastFileSize = null;
this.setQuery("");
this.updateContext("Browsing the configured collection. Open a markdown note to use it as a filter.");
this.updateContext("Browsing the configured collection. Open a note to use it as a filter.");
return force || changed;
}
@ -186,7 +186,7 @@ export class RaindropSideView extends ItemView {
const api = new RaindropApi(this.plugin.settings.accessToken);
if (!api.isConfigured) {
renderRaindropStatus(this.resultsEl, "Add a Raindrop.io access token in plugin settings.", "info");
renderRaindropStatus(this.resultsEl, "Add a Raindrop.io access token under Access token in plugin settings.", "info");
this.updateLoadMore(false);
return;
}

View file

@ -46,7 +46,7 @@ export class RaindropSettingTab extends PluginSettingTab {
new Setting(containerEl)
.setName("Access token")
.setDesc("Stored in plugin data and sent only to the bookmark service.")
.setDesc("Stored in plugin data and sent only to the Raindrop.io API.")
.addText((text) => {
text.inputEl.type = "password";
text