w6vvn
dbe6bbf43b
add proper handling of exceptions raised by network procedures
2025-09-06 16:41:42 -07:00
w6vvn
dbaa44190f
implement some guards on the client. definitely need to relearn how to do syntax macros now...
2025-09-06 12:29:36 -07:00
w6vvn
e081ec9edf
implement an "up" command
2025-09-06 11:39:14 -07:00
w6vvn
fcb7346209
missed client.rkt in last few commits, oops.
2025-09-05 18:19:32 -07:00
w6vvn
522d253c2a
standardize on storing urls as url structs internally instead of as strings
2025-09-05 18:18:14 -07:00
w6vvn
bd3f048595
encapsulate client state in an object
2025-09-05 17:59:11 -07:00
w6vvn
6789074d4f
complete response handling
2025-09-05 17:24:02 -07:00
w6vvn
37e19cb279
relocate "get" logic. see message
...
this stumped me for quite a minute. this procedure sometimes needs to
halt execution to get input, like a server requesting input, or the
client asking for permission to follow cross site redirects. the
problem is if the get procedure is thought of as being part of the net
interface, and compartmentalized from the program loop, actually doing
that would require heavy use of continuations to go back and forth
across the boundary
i -do- think that the way i ultimately want to go in the end is using
continuations to halt execution, catch it in the user interface to get
input, and then continue. however, its a lot simpler and more
immediate to change where i'm drawing the line in the separation of
concerns. the continuations-based approach is enough of a diversion
that i haven't managed to get anything done for the last couple of hours.
2025-09-05 15:11:28 -07:00
w6vvn
f5cfbe76ea
improve nomenclature of gmi handling module somewhat?
2025-09-05 14:12:06 -07:00
w6vvn
87e273fe00
handle relative links and unspecified schemes
2025-09-04 20:40:36 -07:00
w6vvn
f02b2c976e
correctly handle bottoming out document buffer
2025-09-04 19:39:01 -07:00
w6vvn
566d2ff40e
net/url includes http stuff. net/url-string is all we want or need
2025-09-04 18:04:13 -07:00
w6vvn
b02f59c17f
add a visit link command
2025-09-04 15:22:36 -07:00
w6vvn
38a420d649
add currently visited document, pre-rendering, to global state
...
its becoming apparent that this doesn't need to be global state, and
can be passed from iteration to iteration in the program loop. this
shall be revisited
2025-09-04 15:21:31 -07:00
w6vvn
ea9a3b8fb7
add abbreviations for existing commands
2025-09-04 15:13:25 -07:00
w6vvn
e3590502a9
defines a procedure used for looking up links by id in a document
2025-09-04 15:09:50 -07:00
w6vvn
724dc95086
start firmly defining module boundaries for gmi parser
2025-09-04 14:45:55 -07:00
w6vvn
c786466d65
totally redo the line interface, go and pagination commands
2025-09-03 21:16:32 -07:00
w6vvn
febdca7180
clean up formatting on gmi:render procedure and document
2025-09-03 20:15:21 -07:00
w6vvn
41e092975d
cutting pasting and renaming as we start to define architectural boundaries
2025-09-03 20:13:07 -07:00
w6vvn
c80d07befb
implement a procedure to visit documents. NOT compliant, but enough to move on.
2025-09-02 19:01:53 -07:00
w6vvn
a78e3c8b09
add special case for empty paragraphs
2025-09-02 18:25:17 -07:00
w6vvn
dc2d9ed906
assign numbers to links in a document
2025-09-02 17:17:07 -07:00
w6vvn
6070cd33aa
primitive gemtext rendering. not helpful for links yet, but permits further progress on development
2025-09-02 08:21:58 -07:00
w6vvn
01e79027b8
correct logical error in gemtext parsing
2025-09-02 08:21:38 -07:00
w6vvn
4a08e57d3f
reverse document and preformatted structures at end of parsing of each so that the document structure is in logical order
2025-09-01 20:41:22 -07:00
w6vvn
75d833949c
correct a logical error that would lead to merging unrelated preformatted blocks
2025-09-01 20:34:59 -07:00
w6vvn
1fab00d3a2
implement primitive and bare minimum gemtext parsing
2025-09-01 20:07:44 -07:00
w6vvn
5bffb92241
two minor changes to make prototyping in the racket REPL nicer
2025-09-01 20:06:45 -07:00
w6vvn
37871b6b3b
implement a procedure for reflowing and displaying paragraphs
2025-09-01 18:57:01 -07:00
w6vvn
e0260e4496
implement very primitive REPL
2025-09-01 16:43:35 -07:00
w6vvn
836477902c
correct a minor issue with header parsing
2025-09-01 16:43:05 -07:00
w6vvn
71c840d687
initial commit. tentatively implements response header parsing.
2025-09-01 14:50:34 -07:00
w6vvn
0f24c2d0e8
add README
2025-09-01 14:50:01 -07:00