Commit graph

42 commits

Author SHA1 Message Date
ad38a34c5a
feat(blog): design a nicer layout and make post rendering functional 2025-08-15 19:02:20 +01:00
0383f796e2
feat(blog): make posts interactible and render markdown contents 2025-08-15 12:41:24 +01:00
ccf08c5511
fix(app): use debug level for key event action logging 2025-08-14 19:26:41 +01:00
403ff0f781
feat(logging): show debug logs in dev mode with russh::cipher hidden 2025-08-14 19:23:46 +01:00
6a3597002c
feat: prevent panics by exiting only in dev mode 2025-08-14 19:11:54 +01:00
8c9932fe2b
fix(cli): actually include commit hash and branch 2025-08-14 19:06:37 +01:00
256aa5b8bd
style: introduce new clippy config and apply
Also moves to nightly toolchain, mainly for specific clippy features.
2025-08-14 10:24:50 +01:00
03432bf9bb
build: address clippy warnings 2025-08-14 09:59:30 +01:00
655f9d624c
style: src/app.rs 2025-08-14 09:44:39 +01:00
dbd6ae9dad
refactor(ssh): remove commented out code and rearrange async block 2025-08-14 09:40:06 +01:00
6242af5bff
fix: add a window bounds check before rendering, requesting resize 2025-08-14 09:37:26 +01:00
8dad453cc6
fix(logging): not compiling in release mode due to conditional 2025-08-12 14:37:09 +01:00
ebddeaa21e
feat: include web server for static landing page
Also minor refactors `SshServer`; adding a convenience function to
trivially start an SSH server at a given `SocketAddr`.
2025-08-12 13:05:34 +01:00
a389837e7b
build(www): make svelte-kit output static 2025-08-12 09:21:28 +01:00
8f4ce95b4a merge: website landing frontend 2025-08-12 08:56:08 +01:00
39fed6357b Merge branch 'main' of https://git.devcomp.xyz/jade/ssh-portfolio 2025-08-12 03:50:44 -04:00
d9632a02b1 feat: website landing 2025-08-12 03:48:51 -04:00
e492e2b275 feat: website head & layout 2025-08-12 03:48:46 -04:00
6b7421b6e1 feat: check & copy icon components 2025-08-12 03:46:44 -04:00
da9f5b64c7 feat: website static assets & fonts 2025-08-12 03:46:30 -04:00
5deafdc3a8 feat: website theme & animations 2025-08-12 03:46:14 -04:00
caf29b3511
fix: broken build when blog feature is disabled
Also brings back the warning on blog tab when feature isn't enabled.
2025-08-12 08:35:10 +01:00
b6bf444fcf
feat(blog): make blog title list interactive 2025-08-12 08:18:49 +01:00
a63943152e feat: landing boilerplate 2025-08-12 01:57:55 -04:00
4d6d8974e4
fix: feature gating for blog breaking other builds 2025-08-11 19:01:08 +01:00
27eaf50448
feat: include ATProto powered blog using whitewind lexicons
Includes a blog system which fetches whitewind blog posts stored on an
ATProto PDS:

* Optional feature to enable the blog system
* Updated build script to generate client from lexicons
* Fetching system along with in-memory caching and data validation
2025-08-11 08:02:15 +01:00
21de453415
refactor: asyncify stop and exit for Tui 2025-02-03 06:24:32 +00:00
764cddee0e
refactor: use indoc! for better formatting of cat ascii art 2025-02-02 18:46:13 +00:00
fc41a499e6
feat: impl portfolio design with complete about page
Finally implemented the actual portfolio design! This includes a tab
mechanism for various aspects of the portfolio and the complete content
for the about tab.

Also fixes the TUI not being correctly scaled due to crossterm using the
dimensions of the server console tty instead of the client pty by
defining a custom `Backend` for ratatui.
2025-02-02 18:28:57 +00:00
41d47f25b8 chore(README): ya yeet 2025-01-31 16:39:11 +00:00
32bce3dc4c
feat(cli): improvements to outputs & bind options
It is now possible to specify the host and port the SSH server listens
to using CLI arguments. Also improved host key naming and some inline
strings within the CLI version menu.
2025-01-31 16:34:23 +00:00
7bbae7f21c
chore(build): no need to rebuild for Cargo.toml changes 2025-01-31 16:32:48 +00:00
bcc667f3ea
fix(tests): use pretty_assertions for keycode tests 2025-01-31 13:09:37 +00:00
0e4dd8a7a8
chore(build): print only stem instead of full path in warn 2025-01-31 13:09:00 +00:00
262c75d36d
feat(build): generate host keys automatically on build 2025-01-31 12:56:34 +00:00
36a62018e5
refactor: accept CLI args as options and minor restructuring
* Made constructed `App` instances use CLI args for `frame_rate` and
  `tick_rate`
* Moved lazy constants from `LazyLock` to `lazy_static!`
* Slightly restructure SSH config initialization
* Also apply rustfmt formatting to some files
2025-01-30 06:57:02 +00:00
67380f6057
fix(tui): remove unwrap and replace with error log 2025-01-30 06:21:56 +00:00
26ffbb5411
refactor(ssh): remove unnecessary panics and improve logging 2025-01-30 06:19:38 +00:00
1f72560438
feat(ssh): validate terminal emulator support 2025-01-29 14:50:07 +00:00
d22b1c3a34
refactor: remove server tui event handling 2025-01-29 14:44:23 +00:00
9c92bf4f3e
feat: forward ssh keystroke data to tui
Makes controls usable by taking SSH keystroke data (encoded in the xterm
format) and converting them to crossterm `KeyCode`s / `KeyEvent`s and
sending them to the `Tui`.

Also adds support for suspension of the `Tui` over the SSH connection.

Some minor refactoring was also done.
2025-01-29 14:21:50 +00:00
15a6cfe4e2
feat: init, basic rendering with ratatui to ssh backend 2025-01-28 05:40:02 +00:00