@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 +68 -8
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +1 -1
- package/package.json +11 -1
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
|
-
##
|
|
286
|
-
|
|
287
|
-
Open https://readm3.com/viewer for
|
|
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)
|
|
296
|
-
|
|
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
|
-
|
|
304
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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",
|