....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
....................................................................................................
........................................*+======#*==---- ............................................
.....................................-##=%*##*####+++++++=-= ........................................
....................................+#=#=-##%%##*#*++::::::-+ .......................................
..................................+##=#####***%*%%@%#**###:::# ......................................
................................-*##+==-*##****++##%*%#%+*##**- .....................................
...............................+*-=+#%%**###+-::+=%%%+++++*++*#: ....................................
............................+#@@@@@@@@@@@@@@@@@@@@%%*:=+*@%+:**#*: ..................................
.........................*@@@@@@@@@@@@@@@%%%%%%%%@@@@@@@##:*=%#*#*: .................................
.....................-%@@@@@@@@@@@@@%%%%######%%%%%%%%%%@@@@+=###%- .................................
....................%@@@@@@@@@@@@%%%%%%%#############%##%%%%@@#:##+ .................................
..................:@@@@@@@@@@@@@@%%###*******+++*****###**##%%@@%## .................................
..................+@@@@@@@@@@@@%%%%%#*+++=++===++***==----::::=%@%# .................................
...................@@@@@@@@@@@@%%%%###***++++==#@@@@@@@@%%%%%::-%@# .................................
......................@@@@@@@@@#+***++@@@@@@@@@**####+=*==@%%==--#@ .................................
...........................@@:%#**#%@@@%@@@%@@++-**###++++=%**##=*@ .................................
...........................+%@#**#*****#%@+--@+-=++====--:-%::::=:: .................................
............................@*=+++***+++@+=::#%--:-------::%::::::: .................................
............................*.=+++=====@+=-:::=@::::::::::@.:::::+-: ................................
.............................%====---@@+=-:::::-*%@#+=+#@*..:.::.-=:: ...............................
...............................=++****====-::-:-:=++=--::::::..:.::: ................................
...............................+==++++*##**+++++-=--=---::::::::::: .................................
...............................+==***********++=+===++=-:-:::::::: ..................................
...............................===****+++=*++++=+-+=++=--:::::::: ...................................
................................===+**%@=-=:=:::==#%+**=-::::::::: ..................................
................................:=-++==++==-=--:::::-==-:-:::::::: ..................................
.................................:+++==-=-----::::::--=--:::--:::: ..................................
...................................=+++=-===-=:-::::===-:----::::: ..................................
....................................=**=+-++-=:-:::====-----:::::: ..................................
....................................:=#*=+==-=---:=++++==--:::::::: .................................
.....................................-*#+=+======++++*+=--:::::::::: ................................
......................................*%##*#***+*##*#*+----::::::::-%%%= ............................
......................................=#%##%#%%%%#+*=------:::::::%%%%%#*+ ..........................
..................................%%@@@@@====++====-------:-:::-@%@%%##@%%@*+ .......................
...............................#@@@@@@@@@=====----=----:---::@@@@@@@%@%%%%%%%%#** ...................
..............................@@@@@@@@@@@+=====-----------*@@@@@@@@@@%%%@%%##@%@#** .................
.............................@@@@@@@@@%@@@====---------@@@@@@@@@@@@%@@%@@%%@%%%*%@##++ ..............
.............................@@@@@@@@@@@@@@@@*=+*@@@@@@@@@@%@@@@%@@@@@%@@@%%%#%#*##*%###*+ ..........
............................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@%@%@@%%%%%%%#%###*##*##*** ........
............................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%@%@@@%%%%%%@%%%%#%%%##*%%#%% .......
...........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%@%@%@@%%@%%%%%@%#%%#%%%*%% ......
...........................@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@%@@@%%@%@@@@@@@@@%@%%@%%@%%%%%%#%%%%% .....
...........................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@%%%%@@%%%%%%%#%%%%% ....
...........................@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@%%@@%@%%%% ...
..........................@@@@@@@@@@@@@@@@%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@%@@@@@@@%%@@@%%%@%%%@@@@%% ..
.........................@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@%@%%%@@%%%%%@ .
.........................@@@@%*=#-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@%@%@%@@@%@
The basic idea here is simple ; there is an output container, and an input form. When the input form is submitted, a request is made to the server. The server returns an html partial, which is appended to the output container.
The specific libraries and apis used are not important . Most of them could easily be swapped out with something else that serves the same purpose, or even without a library at all in most cases. In fact, I tend to use this as my private test bench for trying new technologies that I'm interested in. What once started out as a Laravel thing is now a Axum thing, written in rust btw .
Uses
Axum for serving up html and handling form submissions
Tailwind for styling
Htmx for sending input to server via ajax and returning the response
navigator.onLine api displaying online/offline status in the footer
document.execCommand('copy') for copying text to your clipboard
Minimist to parse command line input into an object
prefers-color-scheme to override styling when user has requested the system use a light or dark color scheme
navigator.vibrate to initiate a slight vibration when the server responds with a status code of 400 or above
Online
Offline
© Copyright 2024