joplin-plugin-tag-navigator 2.7.2 → 2.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -84,7 +84,12 @@ After installing the plugin, check the commands listed under `Tag Navigator` in
|
|
|
84
84
|
|
|
85
85
|
## Tips
|
|
86
86
|
|
|
87
|
+
### Getting Started
|
|
87
88
|
- [Troubleshooting](#troubleshooting)
|
|
89
|
+
- [Saved queries](#saved-queries)
|
|
90
|
+
- [Keyboard shortcuts](#keyboard-shortcuts)
|
|
91
|
+
|
|
92
|
+
### Working with Tags
|
|
88
93
|
- [Custom tag definitions](#custom-tag-definitions)
|
|
89
94
|
- [Tag inheritance](#tag-inheritance)
|
|
90
95
|
- [Date tags](#date-tags)
|
|
@@ -92,15 +97,17 @@ After installing the plugin, check the commands listed under `Tag Navigator` in
|
|
|
92
97
|
- [Tag ranges](#tag-ranges)
|
|
93
98
|
- [Tag values](#tag-values)
|
|
94
99
|
- [Front matter tags](#front-matter-tags)
|
|
95
|
-
|
|
100
|
+
|
|
101
|
+
### Views & Display
|
|
96
102
|
- [Table views](#table-views)
|
|
97
103
|
- [Kanban views](#kanban-views)
|
|
98
104
|
- [Filtering results](#filtering-results)
|
|
99
105
|
- [Context expansion](#context-expansion)
|
|
100
|
-
- [Inline TODOs](#inline-todos)
|
|
101
106
|
- [Colour tags](#colour-tags)
|
|
102
107
|
- [Styling inline tags](#styling-inline-tags)
|
|
103
|
-
|
|
108
|
+
|
|
109
|
+
### Advanced
|
|
110
|
+
- [Inline TODOs](#inline-todos)
|
|
104
111
|
- [Converting Joplin tags](#converting-joplin-tags)
|
|
105
112
|
|
|
106
113
|
### Troubleshooting
|
|
@@ -110,12 +117,20 @@ After installing the plugin, check the commands listed under `Tag Navigator` in
|
|
|
110
117
|
### Custom tag definitions
|
|
111
118
|
|
|
112
119
|
- The definition of a "tag" can be adjusted with user-defined regular expressions (see the advanced setting `Tag regex`).
|
|
113
|
-
- Example: Every word in the text may be defined as a tag using a custom regex such as `[A-Za-z0-9]+[\w]*`.
|
|
114
120
|
- You may also define an exclusion rule to ignore certain tags (see the advanced setting `Exclude regex`).
|
|
115
|
-
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary>Regex examples</summary>
|
|
124
|
+
|
|
125
|
+
- **Custom tag regex**: Every word in the text may be defined as a tag using a custom regex such as `[A-Za-z0-9]+[\w]*`.
|
|
126
|
+
- **Exclusion regex**: Numeric (`#123`) or hexanumeric (`#C0FF1E`) tags can be filtered using an exclusion regex such as `#(\d+|[a-fA-F0-9]{6})$`.
|
|
127
|
+
|
|
128
|
+
</details>
|
|
116
129
|
|
|
117
130
|
### Tag inheritance
|
|
118
131
|
|
|
132
|
+
> **TL;DR:** Tags automatically apply to child content via indentation, headings, or note-level inheritance.
|
|
133
|
+
|
|
119
134
|
- Tag inheritance allows tags to be automatically applied to related content based on document structure, making it easier to organize and find information without manually tagging every line.
|
|
120
135
|
- When the `Tag inheritance` setting is enabled (by default), tags are automatically inherited in three ways:
|
|
121
136
|
1. **Outline/indentation inheritance**: Tags are inherited from parent items to their children based on indentation levels.
|
|
@@ -128,6 +143,8 @@ After installing the plugin, check the commands listed under `Tag Navigator` in
|
|
|
128
143
|
|
|
129
144
|
### Date tags
|
|
130
145
|
|
|
146
|
+
> **TL;DR:** Use `#today`, `#week`, `#month` for dynamic dates. Add arithmetic like `#today+7`.
|
|
147
|
+
|
|
131
148
|
Date tags provide flexible ways to work with dates in your notes, supporting both relative dates that update automatically and absolute dates that remain fixed.
|
|
132
149
|
|
|
133
150
|
#### Relative date tags
|
|
@@ -176,20 +193,26 @@ Date tags provide flexible ways to work with dates in your notes, supporting bot
|
|
|
176
193
|
|
|
177
194
|
### Tag ranges
|
|
178
195
|
|
|
196
|
+
> **TL;DR:** Search tag ranges with `#min -> #max`. Use `*` wildcard for prefix/suffix matching.
|
|
197
|
+
|
|
179
198
|
- Tag ranges can be used to search for a range of tags, according to their lexicographic order.
|
|
180
199
|
- Example: `#2024/07 -> #2024/08` will search for all tags starting with `#2024/07` and up to `#2024/08` (inclusive, i.e., returning two months).
|
|
200
|
+
- Note: Non-wildcard ranges require both min and max values to avoid unexpected matches across different tag types.
|
|
181
201
|
- You may also use ranges with the `*` wildcard to search for tags starting with a certain prefix or ending with a suffix.
|
|
182
202
|
- Example: `#prefix* ->` will search for all tags starting with `#prefix`.
|
|
183
|
-
- Example:
|
|
203
|
+
- Example: `-> *suffix` will search for all tags ending with `suffix`.
|
|
204
|
+
- Wildcard ranges can be open-ended (only min or max specified).
|
|
184
205
|
- Tag ranges can be inserted using the "Tag range" input boxes, or by right-clicking on a tag in the query area, and selecting `Edit query`.
|
|
185
206
|
- Example: Edit a tag or tag range and type `#prefix* ->` to search for all tags starting with `#prefix`.
|
|
186
207
|
- If you type only `#prefix`, the query will be converted to a standard tag search (matching only the tag `#prefix`).
|
|
187
208
|
- Tag ranges can be used to search for tags by today's date.
|
|
188
|
-
- Example: `#today
|
|
209
|
+
- Example: `#today -> #today+7` will search for all tags from today up to a week from now (inclusive).
|
|
189
210
|
- Example: `#today -> #today+1` will search for all tags starting with `#today` and up to `#today+1` (inclusive, i.e., returning two days).
|
|
190
211
|
|
|
191
212
|
### Tag values
|
|
192
213
|
|
|
214
|
+
> **TL;DR:** Use `#tag=value` to assign values. Unlike nested tags, values don't clutter the tag list.
|
|
215
|
+
|
|
193
216
|
Tag values are a bit similar to nested tags as multiple parts of the tag are treated separately, but are distinct from them as explained below.
|
|
194
217
|
|
|
195
218
|
- Nested tags like `#parent/child` are shown as two separate tags in panels: `#parent` and `#parent/child`.
|
|
@@ -203,8 +226,13 @@ Tag values are a bit similar to nested tags as multiple parts of the tag are tre
|
|
|
203
226
|
|
|
204
227
|
### Front matter tags
|
|
205
228
|
|
|
229
|
+
> **TL;DR:** YAML front matter fields are converted to inline tags automatically.
|
|
230
|
+
|
|
206
231
|
For example, the following YAML front matter, when inserted at the top of the note:
|
|
207
232
|
|
|
233
|
+
<details>
|
|
234
|
+
<summary>View YAML front matter example</summary>
|
|
235
|
+
|
|
208
236
|
```yaml
|
|
209
237
|
---
|
|
210
238
|
nested: tag with spaces
|
|
@@ -227,10 +255,14 @@ will be converted to the following inline tags and values:
|
|
|
227
255
|
#frontmatter
|
|
228
256
|
```
|
|
229
257
|
|
|
258
|
+
</details>
|
|
259
|
+
|
|
230
260
|
These tags will be accessible in the search panel / notes / tables like standard inline tags. The last tag is `#frontmatter` and is used to indicate that the tags were extracted from the front matter section of the note.
|
|
231
261
|
|
|
232
262
|
### Saved queries
|
|
233
263
|
|
|
264
|
+
> **TL;DR:** Save search configurations as JSON. Press `Save` on the panel, or edit manually.
|
|
265
|
+
|
|
234
266
|
Saved queries allow you to store search configurations in notes and reuse them across devices. They are JSON objects that define search parameters and display options. The easiest way to save a query in the current note is to press the `Save` button on the panel (see the [demo](#saved-search-queries)), but they can also be edited manually.
|
|
235
267
|
|
|
236
268
|
#### Basic structure
|
|
@@ -282,6 +314,7 @@ Saved queries allow you to store search configurations in notes and reuse them a
|
|
|
282
314
|
- `"heading"`: Group by heading
|
|
283
315
|
- `"consecutive"`: Group adjacent lines
|
|
284
316
|
- `"item"`: Split by item
|
|
317
|
+
- To change the global grouping, right-click on a note title in the search panel. Saved queries can override this with their own `resultGrouping` property.
|
|
285
318
|
- **`includeCols`**: (Table view only) Comma-separated list of columns to display
|
|
286
319
|
- Can include: note properties, tags, "modified", "created" timestamps
|
|
287
320
|
- Use to slice, sort, or add specific columns
|
|
@@ -290,6 +323,9 @@ Saved queries allow you to store search configurations in notes and reuse them a
|
|
|
290
323
|
|
|
291
324
|
#### Complete example
|
|
292
325
|
|
|
326
|
+
<details>
|
|
327
|
+
<summary>View complete JSON example</summary>
|
|
328
|
+
|
|
293
329
|
```json
|
|
294
330
|
{
|
|
295
331
|
"query": [
|
|
@@ -323,6 +359,8 @@ Saved queries allow you to store search configurations in notes and reuse them a
|
|
|
323
359
|
|
|
324
360
|
This example searches for paragraphs that have both `#artist` AND `#album` tags, OR paragraphs with `#single` tag, then filters results containing "rock" anywhere in the text, and displays them in a table sorted by year (ascending) then by artist (descending).
|
|
325
361
|
|
|
362
|
+
</details>
|
|
363
|
+
|
|
326
364
|
### Table views
|
|
327
365
|
|
|
328
366
|
- To enable table view, start by [saving a query](#saved-queries). Next, select `Tools --> Tag Navigator --> Toggle search results display in note` (or the corresponding toolbar button) until the saved query shows the property `"displayInNote": "table"` and a table appears.
|
|
@@ -357,6 +395,9 @@ This example searches for paragraphs that have both `#artist` AND `#album` tags,
|
|
|
357
395
|
### Filtering results
|
|
358
396
|
|
|
359
397
|
- Text entered in the results filter (on the panel or in a saved query) can be used to search within title of the notes, their notebook name / path, or the content of the displayed results.
|
|
398
|
+
- Filtering behaviour depends on the result grouping mode (right-click a note title on the panel to change):
|
|
399
|
+
- **Group by heading** (default): Shows/hides entire sections based on whether they contain matching content.
|
|
400
|
+
- **Split by item**: Shows/hides individual items, useful for filtering specific tasks like `"- [ ]"`.
|
|
360
401
|
- To gain more control over filtering by notebook, you may enable the setting `Search: Extract the full notebook path`.
|
|
361
402
|
- Example: Limit results to a notebook that appears in the top level by searching for `|/topNotebook`.
|
|
362
403
|
- Example: Search for `topNotebook/childNotebook` to show only results from childNotebook.
|
|
@@ -375,12 +416,18 @@ Context expansion lets you reveal surrounding lines around search results to see
|
|
|
375
416
|
- When fully expanded, click **↓** to collapse back to the original view.
|
|
376
417
|
- The expanded context is dimmed to help distinguish it from the core matched lines.
|
|
377
418
|
- Configure the number of lines revealed per click in the setting `Search: Context expansion (show surrounding lines)`. Set to 0 to disable.
|
|
419
|
+
- **Panel sections**: Show/hide panel sections (search query, tag list, tag range, note mentions, result filter) by right-clicking anywhere on the panel.
|
|
378
420
|
|
|
379
421
|
### Inline TODOs
|
|
380
422
|
|
|
381
|
-
- Filter results by pending tasks (`"- [ ]"`) or ones done (`"- [x]"`).
|
|
423
|
+
- Filter results by pending tasks (`"- [ ]"`) or ones done (`"- [x]"`). For individual task filtering, use "Split by item" grouping (right-click a note title on the panel).
|
|
382
424
|
- Sort results by tags to reflect their priority (see [custom sorting options](#advanced-options)).
|
|
383
|
-
|
|
425
|
+
<details>
|
|
426
|
+
<summary>Custom regex for @mentions, +projects, //due-dates</summary>
|
|
427
|
+
|
|
428
|
+
- Add support for [additional tags](https://github.com/CalebJohn/joplin-inline-todo?tab=readme-ov-file#metalist-style) for @mentions, +projects and //due-dates using a custom tag regex such as `(?<=^|\s)([#@+]|\/\/)([^\s#@'",.()\[\]:;\?\\]+)`.
|
|
429
|
+
|
|
430
|
+
</details>
|
|
384
431
|
- Supported additional checkbox styles (inspired by `[x]it!`).
|
|
385
432
|
- Set any of them to done by clicking the checkbox in the search panel.
|
|
386
433
|
|
|
@@ -391,9 +438,14 @@ Context expansion lets you reveal surrounding lines around search results to see
|
|
|
391
438
|

|
|
392
439
|
|
|
393
440
|
- You may increase the checkbox size on smaller screens by setting `Search: Panel style` with the CSS `.itags-search-checkbox { width: 18px; height: 18px; font-size: 18px }` (adjust as needed).
|
|
394
|
-
|
|
441
|
+
<details>
|
|
442
|
+
<summary>Custom regex for treating checkboxes as tags</summary>
|
|
443
|
+
|
|
444
|
+
- Every checkbox in the text (even ones that are not tagged by any inline #tag) may be defined as a tag using a custom regex such as `(?<=^|\s)(#([^\s#'",.()\[\]:;\?\\]+)|(\-\s\[[x\s@\?!~]\]))`.
|
|
395
445
|
- You may then use queries to search for tag-tasks based on their state (`- [ ]`, `- [x]`, `- [@]`, ...).
|
|
396
446
|
|
|
447
|
+
</details>
|
|
448
|
+
|
|
397
449
|
### Colour tags
|
|
398
450
|
|
|
399
451
|
- Colour tags can be used to highlight results in the search panel, e.g., according to their priority.
|
|
@@ -410,7 +462,10 @@ Context expansion lets you reveal surrounding lines around search results to see
|
|
|
410
462
|
|
|
411
463
|
### Styling inline tags
|
|
412
464
|
|
|
413
|
-
The Markdown preview pane and the Tag Navigator search panel wrap every matched tag in the class `itags-search-renderedTag` and, when the token starts with `#`, `@`, `+`, `//`, or any other character, add `itags-search-renderedTag--hash`, `--at`, `--plus`, `--slash`, `--<other char>`. You may modify their appearance in `userstyle.css` (for Markdown preview), or in the `Search: Panel style` setting (for the plugin's search panel).
|
|
465
|
+
The Markdown preview pane and the Tag Navigator search panel wrap every matched tag in the class `itags-search-renderedTag` and, when the token starts with `#`, `@`, `+`, `//`, or any other character, add `itags-search-renderedTag--hash`, `--at`, `--plus`, `--slash`, `--<other char>`. You may modify their appearance in `userstyle.css` (for Markdown preview), or in the `Search: Panel style` setting (for the plugin's search panel).
|
|
466
|
+
|
|
467
|
+
<details>
|
|
468
|
+
<summary>CSS example for tag styling</summary>
|
|
414
469
|
|
|
415
470
|
```css
|
|
416
471
|
/* optional: specify different sub-styles for each type of tag */
|
|
@@ -431,6 +486,8 @@ The Markdown preview pane and the Tag Navigator search panel wrap every matched
|
|
|
431
486
|
}
|
|
432
487
|
```
|
|
433
488
|
|
|
489
|
+
</details>
|
|
490
|
+
|
|
434
491
|
For the Markdown editor see Rich Markdown in the [Companion plugins](#companion-plugins) section.
|
|
435
492
|
|
|
436
493
|
### Keyboard shortcuts
|
|
@@ -482,21 +539,27 @@ For the Markdown editor see Rich Markdown in the [Companion plugins](#companion-
|
|
|
482
539
|
- The excellent [Inline Tags](https://github.com/roman-r-m/joplin-inline-tags-plugin) plugin can autocomplete tags while typing.
|
|
483
540
|
- Use [YesYouKan](https://github.com/joplin/plugin-yesyoukan) to visualize kanban views generated by Tag Navigator as interactive kanban boards.
|
|
484
541
|
- You can highlight tags in the Markdown editor using [Rich Markdown](https://github.com/CalebJohn/joplin-rich-markdown) (version ≥ 0.14).
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
-
|
|
542
|
+
|
|
543
|
+
<details>
|
|
544
|
+
<summary>Rich Markdown setup instructions</summary>
|
|
545
|
+
|
|
546
|
+
- In `Joplin settings --> Rich Markdown --> Advanced Settings --> Custom classes JSON` enter:
|
|
547
|
+
```
|
|
548
|
+
[{"name": "rm-tag", "regex": "(?<=^|\\s)#([^\\s#'\",.()\\[\\]:;\\?\\\\]+)"}]
|
|
549
|
+
```
|
|
550
|
+
- In `Joplin settings --> Appearance --> Custom stylesheet for Joplin-wide app styles` add the following to the style sheet:
|
|
551
|
+
```
|
|
552
|
+
div.CodeMirror .cm-rm-tag {
|
|
553
|
+
background-color: #7698b3;
|
|
554
|
+
color: white !important;
|
|
555
|
+
padding: 0em 2px;
|
|
556
|
+
border-radius: 5px;
|
|
557
|
+
display: inline;
|
|
558
|
+
}
|
|
559
|
+
```
|
|
560
|
+
- On the mobile app, since it is impossible to edit the stylesheet, one could install this [Rich Markdown fork](https://github.com/alondmnt/joplin-rich-markdown/releases/tag/v0.15-mobile-style-v4) (with predefined support for tags and checkboxes) or instead define the name of the tag class to be `"name": "searchMatch"`. This will use the same highlighting style as Joplin search results.
|
|
561
|
+
|
|
562
|
+
</details>
|
|
500
563
|
|
|
501
564
|
## Motivation
|
|
502
565
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joplin-plugin-tag-navigator",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.4",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dist": "webpack --env joplin-plugin-config=buildMain && webpack --env joplin-plugin-config=buildExtraScripts && webpack --env joplin-plugin-config=createArchive",
|
|
6
6
|
"prepare": "npm run dist",
|
|
Binary file
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"desktop",
|
|
7
7
|
"mobile"
|
|
8
8
|
],
|
|
9
|
-
"version": "2.7.
|
|
9
|
+
"version": "2.7.4",
|
|
10
10
|
"name": "Inline Tag Navigator",
|
|
11
11
|
"description": "Type inline tags or frontmatter in the note editor. View your tagged paragraphs and tasks / TODOs in a search panel, or in a generated note / kanban. Build a table view / database from notes and tags. Convert between Obsidian tags and Joplin tags.",
|
|
12
12
|
"author": "Alon Diament",
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
],
|
|
25
25
|
"screenshots": [],
|
|
26
26
|
"icons": {},
|
|
27
|
-
"_publish_hash": "sha256:
|
|
28
|
-
"_publish_commit": "main:
|
|
27
|
+
"_publish_hash": "sha256:d57e2332d94e737efd09c20f8a3aaa17617d044e249a8fb7594a2541012aab35",
|
|
28
|
+
"_publish_commit": "main:fc5d2a0c7524d742059b0ed42125e090ef9d4da8"
|
|
29
29
|
}
|