summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorkj_sh6042026-03-01 19:07:32 -0500
committerkj_sh6042026-03-01 19:07:32 -0500
commit1dda2e1ca3b1f7948a50412a2682fa6428008f41 (patch)
tree10c9db9e0b913c6076ef57cc857235c367532a46 /README.md
initial: add README
Diffstat (limited to 'README.md')
-rw-r--r--README.md73
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
5A web-based reimplementation of [suckless sent](https://tools.suckless.org/sent/)
6using 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
24docker compose up -d
25```
26
27Open [http://localhost:3000](http://localhost:3000).
28
29### docker build
30
31```sh
32docker build -t sent-web .
33docker 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```
48first slide title
49
50second slide
51with 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
73MIT