I have used it, although it was many years ago. I am not sure about the availability of prior versions of w3m but this is one thing I like about Links. I often compile-edit-recompile early versions and this helps me experiment and understand the development of the program over time. I like that w3m is also called a pager. Ideally I want an HTML reader/printer, a pager, with no networking code. Unless w3m has changed, Links does a better job with HTML tables.
Thanks. What I like about w3m is 1) opening images via an external viewer if I want to, and 2) the UI, where everything is done on a command line at the bottom of the screen, vi-style. No input boxes like in Links. That aside, I remember thinking that Links did render some HTML elements better than w3m, though.
EDIT: mynx looks interesting, I wasn't aware of it. Really close to my dream browsing experience: A browser that renders HTML as text, has only a few control keys (w3m has quite many, and it can cause confusion at times). Customizing would only be possible via config.h, including handles for viewing images, PDF files etc. I wonder why mynx lacks a "back" key, though.
Opening files in an appropriate "external viewer" is how I remember browsers used to work. The assumption was that computer users had different dedicated programs to handle different MIME extensions. Links still purports to allow for using external viewers, though I do not use it that way. I do most ww retrieval _outside the browser_. Today so-called "modern" browsers are 150MB audio and video players, among a countless other things. The concept of the external viewer seems to have been lost.
There are things I dislike about Links. Certainly the NCurses menus and dialog boxes are less than ideal. But as an HTML renderer/printer it is the best program I have found. I recall that Elinks experimented with the vi-style command line. Elinks also created Lua bindings to allow for scripting. As an experiment, I started using Tmux to script Links. It surprised me how well this works. But overall, I have no need to script a browser because I prefer to work _outside the browser_.
Yes, I also (vaguely) remember an ELinks branch with some kind of command line. I think I even tried to build it, but it felt too experimental for comfortable usage. Still a good effort, though.
I started to look into Links and ELinks again after reading (and upvoting :) many of your previous comments. I also got really curious about netcat. HTTPS won't work directly, but has anybody ever written a rudimentary, less/more-like front-end to actually browse the web while relying on netcat?
The way you separate browsing into different steps is really inspiring to me, thanks for sharing. Like, you're actually using the web in such a modular way. I'm afraid I won't be capable enough to replicate any of this for my needs (I'm a more of a hobbyist with a soft spot for lean, terminal- and text-based workflows, and abusing an old Dell Mini 9 in framebuffer mode as my main machine). But it does get me thinking, heavily, again. Watching a screencast of you "browsing" the web with your helper tools would be interesting.
I suppose with all these hand-tailored helpers, using the internet is a much more "focused" experience: looking for specific things vs the aimless browsing that contemporary tabbed browsers encourage. Easier to leave the internet alone when you rely on those narrowly focused tools, I guess.
As for lean browsers, Dillo with FLTK was also an extremely enjoyable experience under X. Really easy to switch off CSS, a nice config file for hand-tailoring search agents, etc. Using Dillo was when I first realized that I don't need to know how the website was intended to look like by the author. I'm fine with just rendering the body text with a tolerable, consistent font face.
It almost feels like that in 2022, the major thing why regular people need to update their systems is because the web browser "doesn't work". But, end of rant.
The second two are included only as examples of how some people write "interactive" shell scripts. I prefer non-interactive scripts myself. I write programs to help me use the web _non-interactively_. "Tech" companies and graphical browser authors are always advocating for "interactive" web use (eyeballs) because that is what is most suitable for selling advertising services. As _Hobbit wrote in 1995, "The web sucks." Graphical browsers are to aid those seeking to make money from the "dismal kludge".
From one text-only web user to another, what do you think about Links' single key shortcuts, e.g., backslash to view source or asterisk to show image links. While I think Links' menus are somewhat cumbersome and slow, not to mention they can change from version to version, these single key shortcuts are very fast.
By staying on the command line, the web (and computer use in general) IMO can indeed be a more focused experience and it is easy to avoid aimless browsing. However I think that this can involve slowing down in a sense. If I were to share a tyepscript of me using the web _interactvely_ through the command line, without a mouse, without using a graphics layer (no X11, etc.), or even a framebuffer, without a terminal emulator (e.g., no cut/paste), let alone a graphical web browser, IMO it could not compare in speed to someone using all those conveniences. Like you, I am using underpowered computers with limited resources. People doing "screencasts" always seem to have very fast computers, for lack of a better term. Graphical browsers and the web look very snappy in those videos. Alas, this has not been my experience with graphical browsers over the last 25 years, at least not the popular ones we are forced to use.
Thankfully I am not trying to the same things as one does with a graphical web browser. I do not have to compete with those videos. I am not working on a different way to "browse", I am working on an alternative to "web browsing". I am using the web in ways that do not require a web browser, e.g., using a sitemap to HTTP/1.1 pipeline all of a website's pages over a single TCP connection to a single text file that can be split into chunks and read/searched with less/more (or Links). AFAIK, this cannot be done with a graphical web browser, no matter how "modern". And it is unlikely a "modern" web browser will ever facilitate it. Because it allows the www user to read www content offline, safely out of reach from "programmatic advertising".
"Interactive" vs non-interactive browsing is spot on,
thanks very much for this.
The way you outline these things (also considering the
code presented in many
of your previous comments) is a pristine example
of Unix-y design principles as laid out by E. S. Raymond.
I would probably be really happy with an internet that
only consists of FTP and email, so I'm definitely in the
"non-interactive" boat, too. But, due to shallow knowledge
(curiosity, but no CS education), the "outside the browser"
experience has mostly been ssh, ftp, and wget'ing things
with some simple
scripts. The code you've posted in your
comments is a huge inspiration to me, really.
It is also interesting how we (or, I) tend to consider a
web browser the beginning point of internet use.
Downloading PDFs, etc -- everything starts from a HTML page
that is rendered to us by the browser.
In your examples, it is the exact opposite: the text
browser or pager appears to be the ending point of
an internet session. Because of your tiny, modular tools,
you can decide "on the run" what to do with the data
during the next step. This is simply following old,
time tested Unix principles, but it is fascinating to
really see something like this in action, in such a
streamlined way, when it comes to web browsing.
Perhaps it is even more precise to say that, by definition,
the Unix pipes
have neither an end point nor a starting point?
It's all just stream of data (text), directed to where you want
in each turn with your helper scripts. Utilizing this with day-to-day
web usage is something people rarely do in 2022, I guess.
So, yeah, I confess being somewhat blown away by your stuff.
Re: (E)Links' shortcut keys: funny you bring this up.
I took a fresh look at ELinks over some years, and
I did think that * and \ are really nice just yesterday.
ELinks does render some things better than w3m,
and my distro (Tiny Core Linux) has a build with zero
dependencies (0.3 MB, just bare minimum of features, no TLS/SSL
etc). With this setup, I'm really tempted to try out the "outside the browser"
internet experience you've described. And that I've been
thinking about for years.
As for the UI, I think I'm really only annoyed by the way
URLs are entered in ELinks, into the curses dialog box in the middle
of the screen. In this regard, w3m's command line feels
more natural. I might try the :ex mode command line again,
and the lua scripting, even though I don't want to have
a big build with nonessential options.
Then again, configuring ELinks via the menus is
actually a fairly pleasant experience IMO. In w3m, I'm
always afraid of pressing some key I didn't remember.
In Elinks, I can always bring up the menu and fix things
when I messed something up by accident. So it's actually fine.
Also, the minimal ELinks build in my distro keeps the menus
clean and simple, there's no "feature creep".
And, obviously, a browsing experience that doesn't include
the (though only barely irritating) lag caused by
"accepting cookies" is extremely nice.