This is a fork of the
emacs-w3m git repository.
The master
branch here provides my tested modifications to the
original, while the bb-upstream
branch here should track the
official repository's master
branch. Additionally, this fork will
have unique branches for development experiments, projects, and
pending pull requests.
See below for the project's README documentation.
-
bb_download
pr #27- New feature: Use
wget
for downloads, when available. - New feature: Allow resumption of aborted downloads.
- Downloads are queued, and the queue can be examined and re-arranged from a special buffer.
- New feature: Detailed individual progress buffers for each download.
- New feature: Download status display buffer to view, resequence, pause, resume, or kill any download.
- New feature: Ability to abort a download just by killing its progress buffer.
- New feature: The number of simultaneous downloads may be controlled, and can be dynamically changed.
- New feature: Option to save an image's caption as metadata (this
requires external programs
exif
for png files andexiv2
for jpg files). - New feature: For file-systems that support extended attributes, it
is possible to have
wget
save URL and HTTP header information as metadata. - New feature: Use
youtube-dl
when available, for downloading videos. - New file
w3m-download.el
collects most downloaded-related functions. - New feature: Optionally deep-search links from within HTML "SCRIPT" elements and other 'hidden' parts of HTML source code.
- New feature: Smart auto-rename ambiguous and duplicate download names.
- New feature: Use
-
bb_history-scrub
pr #2- New feature
w3m-history-scrub
(keybindingS-C-delete
) to delete web browsing resources (history, cookies, cache, temporary files, form data). - Full screen messages. I snuck in a function to display important
messages in a full-sized emacs-w3m buffer, not just in the echo
area. This should really have been part of branch
bb_messaging
, and there is more related work to port over from my old development repository. - Quibble for
w3m-save-list
. Return a defined value based upon operation success or failure.
- New feature
-
bb_history-display
pr #4- New option
w3m-history-in-new-buffer
. - Bugfixes: The global history display now properly handles page size control, ie. you can select where in the history to begin displaying and how many entries to display per page.
- Cosmetic changes to the global history listing, including better timestamping.
- Improved docstrings.
- New option
-
bb_messaging
pr #14- Adds timeouts and colorization to w3m messages in the echo area. Also standardizes
use of the w3m message function (use
w3m--message
) and the method of clearing the echo area (use (w3m-message nil)
). - This is a large and hasn't been exhaustively tested, but the refactor was pretty straightforward, it seems to work, and if there is a mistake hiding in there, it shouldn't have earth-shattering consequences, so its ready for this master branch.
- Adds timeouts and colorization to w3m messages in the echo area. Also standardizes
use of the w3m message function (use
-
bb_clipboard
pr #12- Functions that copy urls to the emacs kill-ring also copy them to the operating system clipboard.
- NOTE: This is an imperfect pull-request in that it is only
pre-configured for linux. For other operating systems, cons cells
need to be added to the new variable
w3m-gui-clipboard-commands
with the OS type and the command string that OS would use to put text into its clipboard. At this point, do NOT useM-x customize-variable
to modify the variable; the defcustom for the variable has a known bug. Other than that, it all seems to work great.
-
bb_ambiguous_navigation
pr #81- Adds intelligence to quickly navigate series' of pages on the same
web site to include cases of URL links with only 'next' /
'previous' in their text strings, not inside their HTML tags.
- Additional logix to support google search pages' website design.
- Improves scrolling behavior at end of page to maintain an entire window-full visible.
- Adds intelligence to quickly navigate series' of pages on the same
web site to include cases of URL links with only 'next' /
'previous' in their text strings, not inside their HTML tags.
-
bb_tab_move
pr #82- Fixes bug that moving a tab more than one position away would swap tabs instead.
-
bb_save-dir-update
pr #80- Updates the session-default save directory upon use.
-
bb_local_files
pr #48- Expands environment variables (eg. $HOME, $TEMPDIR, ~)
- Respects documentation for w3m-local-find-file-regexps, in terms of what the included and excluded regexes do.
- Doesn't hide a new find-file buffer when creating it using function w3m-goto-url-new-session.
-
bb_sessions
based upon pr #26- Change the way the session pop-up window behaves when deleting buffers and when exiting the pop-up, so that the currently displayed buffer is the one that remains 'on top'. This is mainly the contribution of Eugene Sharygin (@eush77) commit 390c4622eae.
-
bb_documentation
pr #22- Suggested improvements to all documentation files.
-
bb_compiler_warnings
pr #24
-
bb_awesome_bar
pr #56merged!- Adds bookmark urls and titles to the autocomplete i-search when prompting for a url, just like all the other modern browsers do!
-
bb_content_type
pr #55merged!- Fixes many bugs related to recognizing a URL's content-type and respecting user's wishes for how to handle them. See the commit message of c2917160b7162049 and the pull-request message, for a full explanation.
-
bb_quick-search_POST-DATA_issue_0052
pr #54merged!- Fixes bug that was preventing the likes of duckduckgo searches from functioning when using the emacs-w3m 'quick-saerch' feature, eg. ddg:foo.
-
bb_toggle_unread
pr #50merged!- New feature: In the buffer select pop-up window, toggle whether a buffer is considered and labeled 'unread'. Bound to 'u'.
-
bb_sessions_copy
pr #49merged!- New feature: copy a session, bound to 'c' and 'C'.
- Bugfixes: properly position point after operations.
- Bugfix: delete a session when deleting its last element.
-
bb_query_trackers
pr #47merged!- Allow users to remove trackers embedded in URLs.
- See
defcustom
w3m-strip-queries-alist
.
-
bb_page_anchors
pr #46merged!- Make old interactive feature usable:
w3m-search-name-anchor
to jump to an HTML anchor on the current page. - Default keybinding 'C-c j'.
- Make old interactive feature usable:
-
bb_sessions_merge
pr #43merged!- New feature: copy session element(s) into another session.
- Default keybinding 'm', 'M'.
-
bb_sessions_2
pr #42merged!- Bugfix: Don't quit the session buffer after opening a session.
- Bugfix: Retain session buffer in its window (it was being replaced with the created buffer(s)).
- Bugfix: Don't create duplicate buffers.
-
bb_magnet
pr #37merged!,pr #38merged!- New feature: Download torrents and magnet links. This feature
requires external command-line utilities from the
transmission
project (transmission-daemon
,transmission-cli
) and recommendstransmission-remote-cli
from the same source.
- New feature: Download torrents and magnet links. This feature
requires external command-line utilities from the
-
bb_bookmarks
pr #40merged!- Improvements: w3m-bookmark-add-all prompts only once for a section name, using a sane timestamp-based default, doesn't add bookmark buffers to the bookmark file, auto-refreshes bookmark buffers, and improve error handling.
- Bugfixes: Operate in all display modes, correct coding errors for functions string-match and switch-to-buffer.
-
bb_filters
- New filter: github main page for each repository
pr #7merged! - New filter: xkcd
pr #7merged! - fix-filter: rt
pr #30merged! - fix filter: stackexchange
pr #31merged! - fix filter: stackexchange
pr #87merged!
- New filter: github main page for each repository
-
bb_history_on_history
pr #89merged!- BUGFIX: Instances of viewing a buffer's history should themselves not be added to the history.
- Generalize the above for handling of all "about:https://" pages.
- Side benefit. ow users can restore from "about:https://source" and "about:https://heading" by using keybinding 'B' w3m-view-previous-page.
-
bb_background_tab
pr #32merged!- BUGFIX: allow new tabs to be loaded in background
- New options: Functions
w3m-goto-url-new-session
andw3m-copy-buffer
acceptC-u
to invert your default setting for background / foreground of new tabs. - Use clone-buffer to copy tabs in order to improve performance.
-
bb_move_tabs
pr #33merged!- New feature: Change the order of tabs from within the buffer
listing (ie. w3m-select-buffer). The new functions are
w3m-tab-move-next
,w3m-tab-move-prior
, aliased tow3m-tab-move-right
,w3m-tab-move-left
. - The docstring for
w3m-select-mode
was updated and improved. - Console-friendly keybindings were added for functions
w3m-tab-move-left
(C-c <
) andw3m-tab-move-right
(C-c >
).
- New feature: Change the order of tabs from within the buffer
listing (ie. w3m-select-buffer). The new functions are
-
bb_quibbles
- This isn't supposed to be a feature branch, or a bug-fixing
branch; it's for issues of programming style, efficiency,
and documentation, but occassionally some substantive stuff may
creep in by accident ...
pr #8merged!pr #13merged!_pr #15merged!_ Commit 99db1df of this turned out to be a small disaster, and ought to be reverted until it can be fixed. The worst of it was reverted in _pr #23- BUGFIX
pr #8merged!: w3m-cleanup-temp-files: The regexp wasn't including tmp/cache files.
- This isn't supposed to be a feature branch, or a bug-fixing
branch; it's for issues of programming style, efficiency,
and documentation, but occassionally some substantive stuff may
creep in by accident ...
-
bb_utf
pr #9merged!- This branch is for converting the codebase to be fully UTF-8. The project is over 20 years old, and has a lot pre-unicode artifacts. I originally did this on a separate git repository in September 2018, before the project moved to git. With all the unrelated histories between the two, and an awful experience trying to work with those discrepancies, I'm trying here to perform a commit based upon a straight git diff. On that other repository, the code was tested by me for the period September 2018 - January 2019 without any trouble noticed; OTOH, I wasn't using it with Japansese or other CJK codesets ...
-
`bb_small_bug_fixes
- w3m-dtree shouldn't abort on subdir permission restriction `
pr #10merged! - w3m-favicon-convert needed basic bounds checking `
pr #21merged!
- w3m-dtree shouldn't abort on subdir permission restriction `
-
bb_travis
pr #16merged!-
Adds multiple combinations of operating systems and emacs versions to .travis.yml
-
Demonstrates how to use travis 'badges' to embed images in README.md
-
Small bug fix to perform bounds checking.
-
-
bb_view_url
_pr #44_- remove duplicate code by replacing use of `w3m-view-this-url-1' with calls to w3m-goto-url{,-new-session}.
-
bb_buffer_quit_function
pr #88merged!- properly exit pop-up windows when attempting to ESCape them.
bb_xemacs_kill
pr #28- Remove support for xemacs. The upstream has not been in development for years, there doesn't seem to be a user-base, and I understand from the mailing list that it doesn't work anyway, so this will remove the cruft from the code-base.
- Performed independently upstream.
Use Emacs as a full-featured and secure internet browser!
(Does not support javascript).
NEWS! (2019-02): We are now on github!
|
- Screenshots
- Features
- History
- Download
- Requirements
- Installation
- Configuration
- Usage
- Mailing List
- Links
- Contact
- Tabs
- Images
- Forms
- HTTPS preferred
- Bookmark management
- Cookie management
- Session management
- History management
- Asynchronous operations
- Greasemonkey-type filtering
- Quick-search
- ELisp scripting
- More (on-line Info documentation) ...
This project has been in active development continuously since 2000.
Originally, there had been a separate project Emacs/W3 which in its time was the most popular web browser on Emacs, but it suffered from slow operation. The decision was made to create this alternative, based upon Akinori Ito's w3m text-mode pager which had WWW capability.
As of 2019, the project has been actively developed and supported for nearly two decades, but since 2005 it has been releasing updates in a "rolling" manner, directly from its CVS repository. Since early 2019, the project has also been hosted on MELPA and github.
Here's the history of the old milestones under the prior system of issuing 'stable' releases:
- github rolling release, from 2019
- CVS rolling release, from 2005 to 2018+
- Emacs-w3m-1.4.4 was released on March 25th, 2005.
- Emacs-w3m-1.4.3 was released on August 17th, 2004.
- Emacs-w3m-1.4.2 was released on July 14th, 2004.
- Emacs-w3m-1.4.1 was released on July 7th, 2004.
- All services were restored on June 23rd, 2004. All contents of this site and CVS repository had been throughly inspected.
- This site was cracked on May 23rd, 2004.
- Emacs-w3m-1.4 was released on April 29th, 2004.
Since 2019, the official current version is always available from MELPA and github, as well as from our legacy CVS repository. For most users, it will probably be most convenient to download, install, and maintain the package from within emacs via MELPA.
For people who would like to use the legacy cvs[1] repository, the following commands will download the package once you have cvs installed.
% cvs -d :pserver:[email protected]:/storage/cvsroot login CVS password: # No password is set. Just hit Enter/Return key. % cvs -d :pserver:[email protected]:/storage/cvsroot co emacs-w3m
Source code access to the legacy cvs repository with ViewVC is also available.
- Historical versions:
emacs-w3m-1.4.4.tar.gz
(March 25th, 2005)emacs-w3m-1.4.3.tar.gz
(August 17th, 2004)emacs-w3m-1.4.2.tar.gz
(July 14th, 2004)emacs-w3m-1.4.1.tar.gz
(July 7th, 2004)emacs-w3m-1.4.tar.gz
(April 29th, 2004)emacs-w3m-1.3.6.tar.gz
(July 18th, 2003)emacs-w3m-1.3.5.tar.gz
(July 5th, 2003)emacs-w3m-1.3.4.tar.gz
(June 18th, 2003)emacs-w3m-1.3.3.tar.gz
(October 25th, 2002)emacs-w3m-1.3.2.tar.gz
(September 3rd, 2002)w3m_el-1.3.1.tar.gz
(July 17th, 2002)w3m_el-1.3.tar.gz
(July 7th, 2002)w3m_el-1.2.8.tar.gz
(June 20th, 2002)w3m_el-1.2.7.tar.gz
(June 3rd, 2002)w3m_el-1.2.6.tar.gz
(March 12th, 2002)w3m_el-1.2.5.tar.gz
(March 2nd, 2002)w3m_el-1.2.4.tar.gz
(January 8th, 2002)w3m_el-1.2.3.tar.gz
(December 21st, 2001)w3m_el-1.2.2.tar.gz
(December 6th, 2001)w3m_el-1.2.1.tar.gz
(November 12th, 2001)w3m_el-1.2.tar.gz
(November 6th, 2001)w3m_el-1.0.tar.gz
(May 9th, 2001)
- Emacs versions
Emacs-w3m supports the latest two major stable versions of Emacs. Thus, when the latest stable Emacs was 26.1, Emacs-w3m was supporting versions 26.1, 25.3, 25.2, and 25.1.
Older versions of Emacs may still be able to successfully use the current version of emacs-w3m, but as the current versions of Emacs or ELisp themselves change, deprecate, or remove features, the latest version of emacs-w3m can be expected to keep pace, and thus will gradually lose functionality when run in older Emacs versions.
Pre-release versions of Emacs and even development snapshots are unofficially supported, as we do try to keep the code up-to-date, so if you are using a "bleeding edge" Emacs version and do experience a problem, please do file a bug report by contacting us on our mailing list!
- w3m
Emacs-w3m requires the latest version of w3m.
Optionally, if you would like to use the shimbun library included in the emacs-w3m distribution, you have to install the Emacs packages APEL and FLIM.
If you are installing from the MELPA repository, the install process follows the standard MELPA procedure. The rest of this section describes how to install manually from source.
Before installing emacs-w3m, check whether your environment meets the requirements.
First, run the
configure
script.% ./configure
However, if you've installed APEL and FLIM in non-standard directories (ie. somewhere not on the default
load-path
), you must specify them using the --with-addpath option as follows:% ./configure --with-addpath=/your/path/to//apel:/your/path/to/flim
Next, execute the following commands to install emacs-w3m to an appropriate directory.
% make # make install
If you cannot execute the
configure
script on your system, or if nomake
command is available, execute the following command:# emacs -batch -q -no-site-file -l w3mhack.el NONE -f w3mhack-nonunix-install
However, if APEL, FLIM (or any other library) are installed in non-standard directories (ie. somewhere not on the default
load-path
), the installer won't find them. In such a case, it is necessary to tell the installer where they are, as shown below:# emacs -batch -q -no-site-file -l w3mhack.el //c/your/path/to/apel:https://c/your/path/to/flim -f w3mhack-nonunix-install
Emacs-w3m has many configuration options, but the minimum that is required
is just to put this line into your ~/.emacs
file:
(require 'w3m-load)
Just type M-x w3m, and you can use emacs-w3m.
In order to handle text/html part with emacs-w3m under SEMI MUAs such as
Wanderlust, put the following line in your
~/.emacs
file:
(require 'mime-w3m)
For more details, see Info manual, or browse the emacs-w3m customization group within Emacs.
The project mailing list, [email protected]
, is
bi-lingual Japanese / English. It is open to the public, and its
archive is accessible via the emacs-w3m
mailing list archive. You can also subscribe to the
gmane.emacs.w3m newsgroup which is gateway'd to this list
bidirectionally (connect to news.gmane.org using nntp).
If you want to subscribe to this list, check the disclaimer and send a mail containing
subscribe Your Name
(not your email address) in the body to
[email protected]
.
To unsubscribe, send a mail containing just
# bye
in the body to [email protected]
.
If you have a github account, you can use github's features to 'watch' and 'star' the project.
- emacs-w3m (EmacsWiki)
- w3m
- APEL
- FLIM
- sx.el, StackExchange interface for Emacs
- magithub, Github interface for Emacs
(alphabetical order in the family names)
- Akihiro Arisawa
- Boruch Baum
- Tsuyoshi CHO
- Shun-ichi GOTO
- Kazuyoshi KOREEDA
- MIYOSHI Masanori
- Mikio NAKAJIMA
- Yoichi NAKAYAMA
- Keisuke Nishida
- Masaru Nomiya
- OHASHI Akira
- Koichiro Ohba
- Hideyuki SHIRAI
- Taiki SUGAWARA
- Satoru Takabayashi
- Yuuichi Teranishi
- TSUCHIYA Masatoshi
- Katsumi Yamaoka
Thanks to the many other people for their great contributions.
In order to contact us, please send a mail to
[email protected]
. This
mailing list is gateway'd to the
gmane.emacs.w3m newsgroup bidirectionally and accepts even messages
posted from nonsubscribers.
Now that the project is on github, you can there submit bug reports or feature requests, using the github 'issues' interface.
Prior to migratng to git, the project accepted patch files via email. While that is still possible, in most casses it's probably best for all concerned to post submissions via github, prferably as a pull request.
last updated 2019-02-19
bb_download