diff options
| -rw-r--r-- | README.md | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..aa7cfcd --- /dev/null +++ b/README.md | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | # sent-web | ||
| 2 | |||
| 3 | > suckless's sent tool ported to the very sucky web world | ||
| 4 | |||
| 5 | A web-based reimplementation of [suckless sent](https://tools.suckless.org/sent/) | ||
| 6 | using pure PHP and vanilla JavaScript. | ||
| 7 | |||
| 8 | ## features | ||
| 9 | |||
| 10 | - **sent-compatible format** — paragraphs = slides, `#` comments, `@image` | ||
| 11 | slides, `\` escapes | ||
| 12 | - **keyboard navigation** — arrow keys, hjkl, space, enter, backspace, pgup/pgdn | ||
| 13 | (same as sent) | ||
| 14 | - **mouse navigation** — left-click right half = next, left half = prev, scroll | ||
| 15 | wheel | ||
| 16 | - **image upload** — upload images and insert `@filename` references | ||
| 17 | - **export** — download as `.sent` file for local sent, or export `.pdf` for portability | ||
| 18 | |||
| 19 | ## usage | ||
| 20 | |||
| 21 | ### docker compose (recommended) | ||
| 22 | |||
| 23 | ```sh | ||
| 24 | docker compose up -d | ||
| 25 | ``` | ||
| 26 | |||
| 27 | Open [http://localhost:3000](http://localhost:3000). | ||
| 28 | |||
| 29 | ### docker build | ||
| 30 | |||
| 31 | ```sh | ||
| 32 | docker build -t sent-web . | ||
| 33 | docker run -d -p 3000:3000 --init --name sent-web sent-web | ||
| 34 | ``` | ||
| 35 | |||
| 36 | ### presentation shortcuts | ||
| 37 | |||
| 38 | | key | action | | ||
| 39 | |----------------------------------------------|----------| | ||
| 40 | | `F5` | present | | ||
| 41 | | `Escape` / `q` | exit | | ||
| 42 | | `→` `↓` `Space` `Enter` `l` `j` `n` `PgDn` | next | | ||
| 43 | | `←` `↑` `Backspace` `h` `k` `p` `PgUp` | previous | | ||
| 44 | |||
| 45 | ### sent format | ||
| 46 | |||
| 47 | ``` | ||
| 48 | first slide title | ||
| 49 | |||
| 50 | second slide | ||
| 51 | with multiple lines | ||
| 52 | |||
| 53 | # this is a comment (ignored) | ||
| 54 | |||
| 55 | @image.png | ||
| 56 | |||
| 57 | \@this line starts with a literal @ | ||
| 58 | |||
| 59 | \ | ||
| 60 | ``` | ||
| 61 | |||
| 62 | ## technology | ||
| 63 | |||
| 64 | - **PHP 8.3** — no framework, just `.php` files | ||
| 65 | - **vanilla JavaScript** — no npm, no webpack, no react | ||
| 66 | - **[noir.css](https://github.com/kj-sh604/noir.css)** — classless CSS | ||
| 67 | - **Apache** — serves it all | ||
| 68 | - **fontconfig** — `fc-list` for font enumeration | ||
| 69 | - **Docker** — containerized with fonts pre-installed | ||
| 70 | |||
| 71 | ## license | ||
| 72 | |||
| 73 | MIT | ||
