@profullstack/readm3 0.10.0 → 0.11.0

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
@@ -31,6 +31,23 @@ a terminal that gets restored no matter how the process dies.
31
31
 
32
32
  ## Install
33
33
 
34
+ One line. It installs under `~/.local` and never asks for sudo; with no Node 22+
35
+ on the machine it fetches a private official Node first:
36
+
37
+ ```sh
38
+ curl -fsSL https://readm3.com/install.sh | sh
39
+ ```
40
+
41
+ Run it again to update; remove with `sh ~/.local/share/readm3/uninstall.sh`.
42
+ Add `--desktop` to install the desktop editor as well (Linux x64; see
43
+ [Desktop app](#desktop-app)):
44
+
45
+ ```sh
46
+ curl -fsSL https://readm3.com/install.sh | sh -s -- --desktop
47
+ ```
48
+
49
+ Or with a package manager:
50
+
34
51
  ```bash
35
52
  bun add -g @profullstack/readm3 # Bun is the default runtime
36
53
  npm install -g @profullstack/readm3 # Node 22.6+ works too
@@ -282,9 +299,26 @@ JSON without saying so; `--language` (or `language` in the API) forces one. The
282
299
  and `DELETE /api/v1/pastes/<token>`, and the `paste_create`, `paste_get` and
283
300
  `paste_delete` MCP tools; each answer carries `language` and `mime`.
284
301
 
285
- ## Web reader
286
-
287
- Open https://readm3.com/viewer for the same two-pane Markdown reader in your browser.
302
+ ## Editor
303
+
304
+ Open https://readm3.com/viewer for a plain, fast text editor in your browser, with the
305
+ same two-pane Markdown reader as the terminal. It is deliberately small: the editing
306
+ basics of Sublime Text and nothing that needs a plugin.
307
+
308
+ - **Editing**: line numbers, syntax colors for about a hundred languages (each grammar
309
+ loads the first time it is needed), multiple cursors (`Ctrl+click`, `Ctrl+D` for the
310
+ next match, `Alt+drag` for a column), find and replace (`Ctrl+F`), folding, bracket
311
+ matching, auto-closing brackets, `Ctrl+/` to comment, `Tab` to indent.
312
+ - **Quick open**: `Ctrl+P` and a few letters of any path (`exdm` finds `examples/demo.md`).
313
+ - **Command palette**: `Ctrl+Shift+P` or `F1` (or `>` in quick open) runs anything:
314
+ open, save, Save As, word wrap, the sidebar, any theme.
315
+ - **Tabs** for the files you opened, kept across reloads.
316
+ - **Real files**: in Chrome, Edge, the installed app and the desktop app, Open folder
317
+ and Open files work on the files themselves. `Ctrl+S` writes the change back to disk,
318
+ `Ctrl+Shift+S` is Save As, and a `●` marks a file whose disk copy is behind. Other
319
+ browsers open a copy and `Ctrl+S` downloads it.
320
+
321
+ Code opens straight into the editor; Markdown opens rendered, and `e` edits it.
288
322
  Open local files or a folder, drop files into the window, open a raw URL or GitHub
289
323
  file link, or start a new note. The explorer filters files, prunes hidden and build
290
324
  directories, and sorts README first. All nine themes and Markdown flavors use the
@@ -292,16 +326,16 @@ same renderer as the terminal.
292
326
 
293
327
  Any file a browser can show opens, not only Markdown. Markdown renders as a document.
294
328
  Every other text file (JSON, JavaScript, Python, YAML, SQL, config, logs, some thirty
295
- languages) is shown as highlighted, numbered, foldable code, and `e` edits it in
296
- place like a note. The language comes from the extension when there is a known one and
329
+ languages) opens in the editor, and `Escape` shows it as highlighted, numbered,
330
+ foldable code. The language comes from the extension when there is a known one and
297
331
  is sniffed from the content otherwise. PDFs and images open in the browser's own
298
332
  viewer. Archives, executables, media and office files are skipped on import, and so
299
333
  is anything that turns out to be binary. Copy puts the current file on the clipboard;
300
334
  Download saves it with its own type.
301
335
 
302
336
  Press `/` to filter, `e` to edit, `Escape` to return to reading, and `?` for shortcuts.
303
- `Ctrl+S` / `⌘S` downloads the current file. Files and edits are saved in IndexedDB
304
- on this device; originals on disk are never overwritten. Reopening a file adds a copy
337
+ Edits are also kept in IndexedDB on this device as you type, so nothing is lost
338
+ offline; a file reaches the disk only when you save it. Reopening a file adds a copy
305
339
  so an existing draft is preserved. Clearing browser site data removes the workspace.
306
340
 
307
341
  A link can open a document too: `https://readm3.com/viewer?url=https://host/doc.md`
@@ -311,12 +345,38 @@ cross-origin reads (`Access-Control-Allow-Origin: *`); when the fetch fails, the
311
345
  Open URL dialog opens with the address and the reason filled in.
312
346
 
313
347
  Install through your browser’s app menu, or Share → Add to Home Screen on iOS.
314
- After the first visit, the application and saved workspace work offline. Remote URLs
348
+ Installed from Chrome or Edge, readm3 appears in the system's "Open with" for text
349
+ files. After the first visit, the application, every grammar and the saved workspace
350
+ work offline. Remote URLs
315
351
  need a connection and a host that permits browser access (CORS); files are fetched
316
352
  directly with no credentials or server proxy. Local files are uploaded only when you explicitly choose Share → Save online.
317
353
 
318
354
  Imports are limited to 4 MB per file, 20 MB per workspace, and 1,000 files.
319
355
 
356
+ ### Desktop app
357
+
358
+ The same editor in its own window, for Linux x64, from the
359
+ [latest release](https://github.com/profullstack/readm3/releases/latest):
360
+ `readm3-linux-x86_64.AppImage` (`chmod +x`, run it) or `readm3-linux-x86_64.flatpak`
361
+ (`flatpak install --user readm3-linux-x86_64.flatpak`), checksums in `SHA256SUMS`.
362
+ `install.sh --desktop` installs the AppImage with a menu entry.
363
+
364
+ ```sh
365
+ readm3-desktop notes.md src/app.ts # opens them as tabs; Ctrl+S saves back
366
+ ```
367
+
368
+ Files named on the command line or opened with "Open with" go straight into the
369
+ editor, and a second launch hands its files to the window already open. The window
370
+ loads readm3.com, so sign-in, sync and sharing work as on the web; a copy of the
371
+ editor ships inside the app for a first launch with no connection. The Flatpak keeps
372
+ Chromium's sandbox; on Ubuntu 24.04 and newer an AppImage cannot have one (AppArmor
373
+ restricts user namespaces and a FUSE mount is `nosuid`), so its launcher starts it
374
+ without and says so. Prefer the Flatpak there.
375
+
376
+ The app lives in `desktop/` (Electron). `cd desktop && bun install && node build.mjs`
377
+ builds both packages (the Flatpak needs `flatpak-builder` and the Flathub remote);
378
+ `.github/workflows/desktop.yml` attaches them to every release.
379
+
320
380
  ## The website
321
381
 
322
382
  ### Accounts
package/dist/cli.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ColorMode } from "./print.ts";
2
2
  import { type ViewerOptions } from "./viewer.ts";
3
- export declare const VERSION = "0.10.0";
3
+ export declare const VERSION = "0.11.0";
4
4
  /** The help text, exported so a test can hold it to the flags it documents. */
5
5
  export declare const USAGE: string;
6
6
  export interface ParsedArgs extends ViewerOptions {
package/dist/cli.js CHANGED
@@ -9,7 +9,7 @@ import { FLAVORS, isFlavor } from "./flavors.js";
9
9
  import { printDocument, COLOR_MODES } from "./print.js";
10
10
  import { run } from "./viewer.js";
11
11
  import { isCloudCommand, cloudMain, CLOUD_USAGE } from "./cloud-cli.js";
12
- export const VERSION = "0.10.0";
12
+ export const VERSION = "0.11.0";
13
13
  /** The help text, exported so a test can hold it to the flags it documents. */
14
14
  export const USAGE = `readm3 — a terminal markdown reader and editor
15
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profullstack/readm3",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Markdown editing and sharing for people and teams. Web/PWA, CLI, API and MCP with version history, view/edit links, and a terminal reader.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,12 +43,22 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@modelcontextprotocol/sdk": "^1.30.0",
46
+ "@profullstack/footer": "latest",
46
47
  "@profullstack/hqtui": "^0.5.0",
47
48
  "@profullstack/synconfig": "^0.1.3",
48
49
  "highlight.js": "^11.12.0",
49
50
  "marked": "^18.0.11"
50
51
  },
51
52
  "devDependencies": {
53
+ "@codemirror/autocomplete": "^6.20.3",
54
+ "@codemirror/commands": "^6.11.1",
55
+ "@codemirror/language": "^6.13.1",
56
+ "@codemirror/language-data": "^6.5.2",
57
+ "@codemirror/legacy-modes": "^6.5.5",
58
+ "@codemirror/search": "^6.7.2",
59
+ "@codemirror/state": "^6.7.6",
60
+ "@codemirror/view": "^6.43.14",
61
+ "@lezer/highlight": "^1.2.5",
52
62
  "@playwright/test": "^1.63.0",
53
63
  "@types/bun": "^1.4.2",
54
64
  "@types/node": "^22",