Although I don't think I currently /need/ a streaming parser for speed
or space reasons, I can imagine using one.

I'd suggest making something where the user supplies an "on-element"
"callback", which is called with each element -- plus the "path" of
ancestor elements. The user's callback can do whatever it wants.

That could be its own, focused library. I won't say "simple" because
you're parsing HTML!! :)

I can imagine other libraries built on top of that. One I would want to
use (or write myself, share, and use) would offer something like CSS
selectors. Not their syntax. Just some simple function combinators to
express the equivalent. (Because xml/path is close, and maybe enough for
XML, but not quite enough for real-world HTML.) In fact I already do
this, on the full HTML. I can imagine doing this on top of a streaming
parser, instead.

So those are my quick thoughts. I hope that's helpful, and also, other
people will have even better feedback for you.


p.s. One suggestion I have, which you might not like: I think it would
be good if you host Racket packages on GitHub, GitLab, or similar other
site you find least objectionable. I respect your rationale for not
doing that, to-date. On the other hand, people these days like to see
the full git commit history, issues, and pull requests. It helps them
evaluate a package, and feel good about future availability. When they
don't, it can be a speed bump to adoption. If you're aware of all this
but still don't want to do that, again I 100% respect that. Just my
opinion and perspective.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/87blza17t5.fsf%40greghendershott.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to