joplin-plugin-ridgeline 0.2.7 → 0.2.9

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
@@ -19,7 +19,7 @@ Ridgeline draws a compact stack of thin bars down the edge of your note — one
19
19
  ## Features
20
20
 
21
21
  - **Compact level-encoded minimap.** One thin bar per heading; the bar length encodes the heading level (H1 longest … H6 shortest), so the note's structure reads at a glance from a sliver of edge space.
22
- - **Live current-section tracking.** The bar for the section at the top of the viewport is brightened and thickened and follows your scrolling in real time, centred in its slot so it never looks like it dropped toward a neighbour.
22
+ - **Live current-section tracking.** The bar for the section at the top of the viewport is brightened and thickened and follows your scrolling in real time.
23
23
  - **Hover-intent table of contents.** Let the pointer rest on the bars (a short dwell, so a mouse merely crossing the strip never pops it open) and the stack expands into a full clickable outline, indented by level, with the current heading highlighted. Click a bar or a row to jump.
24
24
  - **Editor and viewer, in step.** The strip is drawn in both the raw Markdown editor and the rendered note viewer, and a jump from either pane moves both.
25
25
  - **Overlay or reserve.** Draw the strip over the text, or reserve a thin margin so it never overlaps a word — set independently for the editor and the viewer.
@@ -36,7 +36,7 @@ To install the file by hand instead, download `io.github.pmslava.ridgeline.jpl`
36
36
 
37
37
  ## Settings
38
38
 
39
- All settings live under **Settings → Ridgeline** and apply live.
39
+ All settings live under **Settings → Ridgeline**. Every one applies live, with the single exception of *Show the toolbar toggle button*, which takes effect only after restarting Joplin (see the note in the table).
40
40
 
41
41
  | Setting | Default | What it does |
42
42
  | --- | --- | --- |
@@ -46,6 +46,7 @@ All settings live under **Settings → Ridgeline** and apply live.
46
46
  | **Maximum heading depth** | H1–H6 | The deepest heading level shown. Headings deeper than this are dropped from the minimap and the outline. |
47
47
  | **Show minimap** | On | Master switch for the strip in both panes. Toggle without disabling the plugin (see the command below). |
48
48
  | **Hide minimap when the note has no headings** | On | On a heading-less note, hide the strip and drop its reserved margin so the text uses the full width. |
49
+ | **Show the toolbar toggle button** | On | Show the `fa-stream` note-toolbar button that toggles the minimap. **Takes effect only after restarting Joplin** — the plugin API cannot remove a toolbar button once created. The **Tools → Ridgeline** menu entry and `Ctrl+Alt+M` keep working regardless. |
49
50
  | **Hover open delay (ms)** | 300 | How long the pointer must rest on the bars before the outline opens (100–1000 ms). Higher = a quick trip across the strip never opens it. |
50
51
 
51
52
  ### Commands and shortcuts
@@ -56,59 +57,22 @@ All settings live under **Settings → Ridgeline** and apply live.
56
57
  | **Ridgeline: Toggle strip side (left/right)** | `Ctrl+Alt+R` | — |
57
58
  | **Ridgeline: Toggle hide-when-empty** | `Ctrl+Alt+H` | — |
58
59
 
59
- All three are also in the **Tools** menu, and each flips the matching setting so both panes update live.
60
+ All three also sit together in the **Tools → Ridgeline** submenu, listed there under the same full
61
+ names as above (Joplin labels a plugin menu entry from its command, so the `Ridgeline:` prefix is
62
+ repeated inside the submenu). Each flips the matching setting, so both panes update live.
60
63
 
61
64
  ## Development
62
65
 
63
66
  ```
67
+ git clone https://github.com/pmslava/joplin-plugin-ridgeline
68
+ cd joplin-plugin-ridgeline
64
69
  npm install
65
70
  npm run dist
66
71
  ```
67
72
 
68
73
  `npm run dist` builds the publishable plugin to `publish/io.github.pmslava.ridgeline.jpl`.
69
74
 
70
- ### End-to-end tests
71
-
72
- The E2E suite drives a real Joplin desktop (Electron) build with the plugin loaded, under a virtual display. It needs Xvfb and the Playwright Chromium host dependencies installed.
73
-
74
- First fetch the Joplin AppImage the tests run against (downloaded once, then cached under `.e2e-cache/`):
75
-
76
- ```
77
- npm run setup:e2e
78
- ```
79
-
80
- The version is pinned in `scripts/setup-e2e.sh` and overridable — it must be at least the manifest's `app_min_version`:
81
-
82
- ```
83
- JOPLIN_E2E_VERSION=3.7.6 npm run setup:e2e
84
- ```
85
-
86
- `npm run test:e2e` runs the whole suite in one process (it wraps `playwright test` in `xvfb-run`). The suite launches Joplin many times serially, so on a laptop it is more comfortable to run it in **four shards**, each in the foreground:
87
-
88
- ```
89
- npm run dist
90
- npm run setup:e2e
91
- xvfb-run -a --server-args="-screen 0 1920x1080x24" npx playwright test --shard=1/4
92
- xvfb-run -a --server-args="-screen 0 1920x1080x24" npx playwright test --shard=2/4
93
- xvfb-run -a --server-args="-screen 0 1920x1080x24" npx playwright test --shard=3/4
94
- xvfb-run -a --server-args="-screen 0 1920x1080x24" npx playwright test --shard=4/4
95
- ```
96
-
97
- The `-screen 0 1920x1080x24` server args give the virtual display enough room for the split-pane layouts the specs assert against.
98
-
99
- ### Regenerating the screenshots
100
-
101
- The README/manifest screenshots are produced by a separate, opt-in spec that captures (rather than asserts) against a throwaway profile forced to Joplin's dark theme:
102
-
103
- ```
104
- npm run dist
105
- npm run setup:e2e
106
- SHOWCASE=1 xvfb-run -a --server-args="-screen 0 1920x1080x24" npx playwright test e2e/showcase.spec.ts
107
- ```
108
-
109
- It writes the PNGs into `docs/images/`. Its content is fictional ("Acme Rocket Skates") — it never touches your real Joplin profile.
110
-
111
- See [PUBLISHING.md](PUBLISHING.md) for the release flow.
75
+ For the end-to-end test suite, regenerating the showcase screenshots, and a tour of the repository layout, see [DEVELOPMENT.md](DEVELOPMENT.md). See [PUBLISHING.md](PUBLISHING.md) for the release flow.
112
76
 
113
77
  ## Credits
114
78
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "joplin-plugin-ridgeline",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Ridgeline: a hover-expanding minimap outline for the Joplin editor and viewer.",
5
5
  "homepage": "https://github.com/pmslava/joplin-plugin-ridgeline",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/pmslava/joplin-plugin-ridgeline"
8
+ "url": "git+https://github.com/pmslava/joplin-plugin-ridgeline.git"
9
9
  },
10
10
  "publishConfig": {
11
11
  "access": "public"
@@ -14,6 +14,7 @@
14
14
  "dist": "webpack --env joplin-plugin-config=buildMain && webpack --env joplin-plugin-config=buildExtraScripts && webpack --env joplin-plugin-config=createArchive",
15
15
  "prepare": "npm run dist",
16
16
  "updateVersion": "webpack --env joplin-plugin-config=updateVersion",
17
+ "test:sandbox-proxy": "node scripts/audit-sandbox-proxy.js",
17
18
  "setup:e2e": "bash scripts/setup-e2e.sh",
18
19
  "test:e2e": "npm run dist && npm run setup:e2e && xvfb-run -a --server-args=\"-screen 0 1920x1080x24\" playwright test"
19
20
  },
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 1,
3
3
  "id": "io.github.pmslava.ridgeline",
4
4
  "app_min_version": "3.3",
5
- "version": "0.2.7",
5
+ "version": "0.2.9",
6
6
  "name": "Ridgeline",
7
7
  "description": "A hover-expanding minimap outline for the Markdown editor and viewer: a compact stack of level-encoded bars that tracks the current section and expands into a full clickable table of contents on hover. Theme-aware, live settings, multi-window.",
8
8
  "author": "pmslava",
@@ -35,6 +35,6 @@
35
35
  "label": "In a split view the strip tracks the current section in both the editor and the rendered viewer at once"
36
36
  }
37
37
  ],
38
- "_publish_hash": "sha256:6722f2995489bd3c423fcb9b195fc204dd4ea6deb97030b1b4086d916644d425",
39
- "_publish_commit": "main:1a2533deb0a421ecdf6bd7dfa213eff1108f4782"
38
+ "_publish_hash": "sha256:94c99c33811c762fdb6f5da95cb5eda6ad564639c826f049e4fb2a67287105a7",
39
+ "_publish_commit": "master:995548433273a55fc086383e2e08d81c3f4e3659"
40
40
  }