Alex Schroeder [Fri, 2 Jul 2021 07:31:33 +0000 (09:31 +0200)]
Change browse-url advice for older releases
package does not offer browse-url-default-handlers, but if you set
The code used to advise browse-url-default-browser if your browse-url
browse-url-browser-function to something else, like eww-browse-url,
then that advice did not apply. The code now advises the function set
in the browse-url-browser-function variable, meaning that it should
advise the right function.
Also added a small doc string to the lambda used as advice.
Daniel Semyonov [Wed, 30 Jun 2021 22:47:08 +0000 (01:47 +0300)]
Small documentation fixes
Daniel Semyonov [Wed, 30 Jun 2021 23:13:09 +0000 (02:13 +0300)]
Add missing auto-generated files to .gitignore
Daniel Semyonov [Wed, 30 Jun 2021 23:09:45 +0000 (02:09 +0300)]
Remove 'with-eval-after-load' block for 'browse-url'
It is not necessary (tested with 'emacs -Q').
Daniel Semyonov [Wed, 30 Jun 2021 22:48:33 +0000 (01:48 +0300)]
Organize integrations section
Mark different sections with comments.
Move all declarations for byte compilation to 'eval-when-compile'
blocks at the start of the appropriate sections.
Alex Schroeder [Wed, 30 Jun 2021 13:11:05 +0000 (15:11 +0200)]
Backfill read-answer for Emacs 26.1
Alex Schroeder [Wed, 30 Jun 2021 12:30:45 +0000 (14:30 +0200)]
Enable adaptive-fill-mode
When filling long list items or quotes, all lines except for the first
one should be indented by two spaces. Adaptive fill mode handles that.
Étienne Deparis [Wed, 30 Jun 2021 07:54:02 +0000 (09:54 +0200)]
Fix browse-url for not up-to-date Emacs version
On archlinux, even with Emacs 27.2, browse-url package still does not have
browse-url-default-handlers variable.
Étienne Deparis [Wed, 30 Jun 2021 07:22:22 +0000 (09:22 +0200)]
Another whitespace/indent cleaning
Étienne Deparis [Wed, 30 Jun 2021 07:20:30 +0000 (09:20 +0200)]
Add targets in Makefile to build compile lisp file and autoloads
Étienne Deparis [Wed, 30 Jun 2021 07:14:45 +0000 (09:14 +0200)]
Big refactoring of org related functions
Étienne Deparis [Mon, 28 Jun 2021 17:01:27 +0000 (19:01 +0200)]
Support elpher in mu4e
Étienne Deparis [Wed, 30 Jun 2021 07:03:30 +0000 (09:03 +0200)]
Add back with-eval-after-load
- It avoid non-mandatory requirements
- Use feature instead of filename for with-eval-after-load, compared to the
historic implementation
Daniel Semyonov [Tue, 29 Jun 2021 15:31:33 +0000 (18:31 +0300)]
Cleanup 'thing-at-point' integration
Don't use 'with-eval-after-load'.
Daniel Semyonov [Tue, 29 Jun 2021 15:07:54 +0000 (18:07 +0300)]
Cleanup Org integration
Remove uses of 'with-eval-after-load'.
Remove compatibility with old versions of Org (also bump required
Emacs version to 27.1 accordingly).
Daniel Semyonov [Tue, 29 Jun 2021 15:02:51 +0000 (18:02 +0300)]
Cleanup 'browse-url' integration
Rename 'browse-url-elpher' to 'elpher-browse-url-elpher'.
Autoload 'elpher-browse-url-elpher'.
Daniel Semyonov [Tue, 29 Jun 2021 14:59:02 +0000 (17:59 +0300)]
Cleanup various parts of the package
Add more places which need version bumps in RELEASE.
Ensure most warnings and errors reported by the byte compiler,
checkdoc and package-lint are fixed (only cosmetic changes).
Small fixes to the manual.
F. Jason Park [Wed, 3 Mar 2021 09:47:32 +0000 (01:47 -0800)]
Double or drop single non-escape regexp backslashes
Alex Schroeder [Tue, 29 Jun 2021 06:47:22 +0000 (08:47 +0200)]
Add a RELEASE file
What do I need to remember when releasing a new version? Step 1 is to
remember to increase the version number in all the right places.
Alex Schroeder [Tue, 29 Jun 2021 06:40:32 +0000 (08:40 +0200)]
Add Daniel to contributors, rename makefile
The GNU Make documentation says "We recommend 'Makefile' because it
appears prominently near the beginning of a directory listing, right
near other important files such as 'README'." Thus the renaming.
Daniel Semyonov [Tue, 29 Jun 2021 00:40:11 +0000 (03:40 +0300)]
Add a makefile
Contains three targets - info, package and clean:
- info creates the info manual for the package.
- package creates an installable (via 'M-x package-install-file')
package archive.
- clean cleans any "build artefacts".
The default (all) target is equivalent to the clean target followed by
the package target.
Add 'config.mk' for build configuration.
Add 'elpher-pkg.el' (could possibly be generated in the future),
required to install as a package.
Alex Schroeder [Mon, 28 Jun 2021 16:44:25 +0000 (18:44 +0200)]
Merge remote-tracking branch 'etienne/fix-various' into main
Étienne Deparis [Mon, 28 Jun 2021 16:31:31 +0000 (18:31 +0200)]
Update contributors list on README to reflect header of lisp file
Alex Schroeder [Mon, 28 Jun 2021 16:30:53 +0000 (18:30 +0200)]
Fix thing-at-point-uri-schemes error
Étienne Deparis [Mon, 28 Jun 2021 16:20:46 +0000 (18:20 +0200)]
Avoid anoying error message on homepage when using elpher-go-current
Étienne Deparis [Mon, 28 Jun 2021 16:20:31 +0000 (18:20 +0200)]
Advertize which search engine is used for gemini and directly call search URL
Étienne Deparis [Mon, 28 Jun 2021 16:20:14 +0000 (18:20 +0200)]
Bump version in defconst elpher-version
Alex Schroeder [Mon, 28 Jun 2021 11:37:18 +0000 (13:37 +0200)]
Small typos and doc changes
- URL schema → URL scheme
- drop "internal variable containing"
- replace '() with nil as that seems more idiomatic
Omar Polo [Mon, 28 Jun 2021 10:35:17 +0000 (10:35 +0000)]
update url for gemini search engine
GUS is long dead, long live geminispace.info!
Omar Polo [Mon, 28 Jun 2021 10:31:10 +0000 (10:31 +0000)]
Jump to a heading using imenu
Omar Polo [Mon, 28 Jun 2021 10:08:28 +0000 (10:08 +0000)]
explain better the meaning of default-url-type
"URL type" may be misleading (even though it's how emacs calls it)
when it's actually the schema.
Alex Schroeder [Mon, 28 Jun 2021 05:49:31 +0000 (07:49 +0200)]
Merge remote-tracking branch 'upstream/patch_better_evil_bindings' into main
Alex Schroeder [Mon, 28 Jun 2021 05:44:29 +0000 (07:44 +0200)]
Merge remote-tracking branch 'upstream/patch_cache-gemini-page-links' into main
Alex Schroeder [Thu, 23 Jul 2020 14:10:29 +0000 (16:10 +0200)]
Use xterm-color instead of ansi-color, if possible
xterm-color isn't part of Emacs, so require it but if it can't be
found, require ansi-color instead. Then use two aliases that point
either the xterm-color code or to ansi-color code.
Alex Schroeder [Sun, 27 Jun 2021 20:02:21 +0000 (22:02 +0200)]
Increase version, add copyright info for all
Alex Schroeder [Sun, 27 Jun 2021 20:01:43 +0000 (22:01 +0200)]
Only add to browse-url-default-handlers if defined
On some systems, browse-url does not define
browse-url-default-handlers.
Alex Schroeder [Sun, 27 Jun 2021 19:44:02 +0000 (21:44 +0200)]
Merge remote-tracking branch 'upstream/patch_integrate_with_browse_url' into main
Alex Schroeder [Sun, 27 Jun 2021 19:42:34 +0000 (21:42 +0200)]
Merge remote-tracking branch 'upstream/patch_org-link-support' into main
Alex Schroeder [Sun, 27 Jun 2021 19:41:58 +0000 (21:41 +0200)]
Merge remote-tracking branch 'upstream/patch_cert_regexp' into main
Alex Schroeder [Sun, 27 Jun 2021 19:41:33 +0000 (21:41 +0200)]
Merge remote-tracking branch 'upstream/patch_emacs_tty' into main
Alex Schroeder [Sun, 27 Jun 2021 19:35:25 +0000 (21:35 +0200)]
Merge remote-tracking branch 'upstream/patch_customizable_default_url_type' into main
Alex Schroeder [Sun, 27 Jun 2021 19:34:58 +0000 (21:34 +0200)]
Merge remote-tracking branch 'upstream/patch_disable-gnutls-verify' into main
Alex Schroeder [Sun, 27 Jun 2021 19:34:28 +0000 (21:34 +0200)]
Merge remote-tracking branch 'upstream/patch_fix_crash_in_nox' into main
Alex Schroeder [Sun, 27 Jun 2021 19:32:47 +0000 (21:32 +0200)]
Merge remote-tracking branch 'upstream/patch_add_autoload_token' into main
Alex Schroeder [Sun, 27 Jun 2021 19:32:28 +0000 (21:32 +0200)]
Merge remote-tracking branch 'upstream/patch_fix_bookmark_save_crash_when_dir_missing' into main
Alex Schroeder [Sun, 27 Jun 2021 19:31:54 +0000 (21:31 +0200)]
Merge remote-tracking branch 'upstream/patch_gemini_quoted_face' into main
Alex Schroeder [Sun, 27 Jun 2021 19:31:18 +0000 (21:31 +0200)]
Merge remote-tracking branch 'upstream/patch_cleanup' into main
Alex Schroeder [Thu, 2 Jul 2020 09:19:55 +0000 (11:19 +0200)]
Support for C-u elpher to have multiple buffers
Jens Östlund [Sat, 8 May 2021 19:49:28 +0000 (21:49 +0200)]
Integrate with `browse-url`
Enable opening gopher, gemini and finger links in Elpher by using
`browse-url`. As part of this functionality "gemini://" is registered
as a `thing-at-point` URI scheme so gemini links are interpreted as
URLs.
Jens Östlund [Sat, 8 May 2021 18:42:20 +0000 (20:42 +0200)]
Store and follow elpher links in org-mode
Store an elpher page org link by executing `org-store-link` and follow
an elpher link within an org-mode buffer by executing
`org-open-at-point`.
Supports gopher, gemini and finger links.
F. Jason Park [Thu, 25 Feb 2021 23:51:38 +0000 (15:51 -0800)]
Fix .key regexp for listing existing certs
Christopher Brannon [Fri, 19 Feb 2021 03:15:13 +0000 (19:15 -0800)]
Fix "wrong type argument" messages when fetching from Gemini.
This is a problem that has affected people using elpher under emacs
in a tty. I tracked down the cause. The header filling calculations
fail because the tty font doesn't have a :size property.
There's another proposed fix in patch_header_text_termina, but I
couldn't get that one to work.
Omar Polo [Sat, 30 Jan 2021 09:00:06 +0000 (10:00 +0100)]
make default protocol customizable
This adds a defcustom to let user choose what default URL type elpher
should assume when no one is explicitly given, instead of hardcoding
gopher as it is now.
It also improves a bit how scheme-less URL are handled: `M-x elpher-go
example.com/foo/bar' is now parsed into host `example.com' and path
`/foo/bar'.
Noodles! [Fri, 8 Jan 2021 04:50:52 +0000 (11:50 +0700)]
Disable gnutls error verification
Gemini sites timeout if the user has gnutls-verify-error set.
Étienne Deparis [Mon, 7 Dec 2020 17:38:08 +0000 (18:38 +0100)]
Remove another forgotten and useless local variable
It also avoid a crash when displaying page in Emacs without X support
Étienne Deparis [Mon, 7 Dec 2020 17:38:08 +0000 (18:38 +0100)]
Avoid a crash when displaying page in Emacs without X support
Étienne Deparis [Tue, 24 Nov 2020 12:40:47 +0000 (13:40 +0100)]
Add autoload token to ‘elpher-go’ and ‘elpher-bookmarks’ functions
Étienne Deparis [Tue, 24 Nov 2020 07:49:20 +0000 (08:49 +0100)]
Avoid a crash when saving a new bookmark and elpher-bookarks-file dir is missing
As the ‘elpher-bookmarks-file’ is customizable, one can set it to a
non-existent dir (like ‘~/.emacs.d/etc/elpher/bookrmarks’). This commit just
check that the directory part of ‘elpher-bookrmarks-file’ exists before trying
to save it.
Étienne Deparis [Sat, 21 Nov 2020 18:03:32 +0000 (19:03 +0100)]
Add a new face to customize quoted texts in gemini pages
Étienne Deparis [Sat, 21 Nov 2020 18:02:13 +0000 (19:02 +0100)]
Remove an unused local variable
Étienne Deparis [Sat, 21 Nov 2020 17:55:43 +0000 (18:55 +0100)]
Remove some trailing whitespaces
Simon Nicolussi [Sun, 4 Oct 2020 16:34:28 +0000 (18:34 +0200)]
Provide an option to visit clearnet sites over Tor
Simply reuse the mechanism to access onion services, with all of its
disadvantages (e.g., connections are opened synchronously).
Simon Nicolussi [Sun, 4 Oct 2020 15:17:53 +0000 (17:17 +0200)]
Access onion services by a SOCKS proxy (e.g., Tor)
To test this, start the Tor daemon (tor), set the variable socks-server
to the list ("Tor" "localhost" 9050 5), and visit some onion service.
The socks library of Emacs provides a (very limited) alternative to the
regular open-network-stream function. Some of those limitations can be
mitigated by setting the respective options (e.g., the coding system)
later on, instead of when creating the network process object. This is
now done for both indirect and direct connections, for consistency.
TLS is a special case, as the initial connection to the SOCKS server is
typically unencrypted: TLS negotiation only takes place after the proxy
established a connection to the target. The force-ipv4 option is also
a special case, as it is ignored (it obviously cannot work with Tor).
The most serious limitation of the socks library is that opening the
network stream happens synchronously. For this reason, create the timer
before calling socks-open-network-stream. The sentinel function is also
not called automatically in the case of a synchronous open, so call it
explicitly. The appearance of a hanging Emacs is not ideal (even though
users should always be able to abort connection attempts with C-g), but
any improvement probably requires changes in the socks library.
Tim Vaughan [Sat, 19 Sep 2020 10:25:54 +0000 (12:25 +0200)]
Fixed reported version number. (Sigh.)
Tim Vaughan [Sat, 19 Sep 2020 10:09:45 +0000 (12:09 +0200)]
Version bump.
Tim Vaughan [Sat, 19 Sep 2020 10:08:06 +0000 (12:08 +0200)]
Merged Alex Schroeder's header-filling patch. Thanks!!
Tim Vaughan [Sat, 19 Sep 2020 09:54:25 +0000 (11:54 +0200)]
Version bump.
Tim Vaughan [Sat, 19 Sep 2020 09:50:33 +0000 (11:50 +0200)]
Merged Michel Salim's patch. Thanks!
Alexis [Fri, 4 Sep 2020 07:57:47 +0000 (17:57 +1000)]
Cache links in gemini pages.
This patch is based on the patch_add-link-numbering branch. By caching
gemini page links, visiting numbered links now works when one returns
to a previously-visited page (e.g. via `u`).
Alexis [Thu, 3 Sep 2020 08:01:28 +0000 (18:01 +1000)]
Add ability to number links on gemini pages.
This patch adds a defcustom, elpher-gemini-number-links, which can be
set to t to display numbers next to links, à la e.g. AV-98. Links can
then be visited by pressing `v` and entering the link number.
Zhiwei Chen [Fri, 28 Aug 2020 03:48:42 +0000 (11:48 +0800)]
Add the missing '^' binding
condy0919 [Fri, 28 Aug 2020 03:26:06 +0000 (11:26 +0800)]
Better evil bindings.
Applying evil collection guidelines:
- rebinding elpher-go to o, elpher-go-current to O frees the prefix g to
bring gg back
- rebind elpher-jump to J since m is used to mark
- '^' and '-' are bound to elpher-back which is modelled after dired
Visit https://github.com/emacs-evil/evil-collection for more
information.
Michel Alexandre Salim [Sat, 15 Aug 2020 23:25:23 +0000 (16:25 -0700)]
Ensure certificate directory exists
Before choosing a permanent client certificate, Elpher tries to list
existing certificates. This fails if `elpher-certificate-directory` does
not exist, e.g.
```
---- ERROR -----
When attempting to retrieve gemini://alexschroeder.ch/do/comment/2020-08-14_How_to_comment_using_Elpher:
Opening directory: No such file or directory, /home/michel/.emacs.d/elpher-certificates
----------------
Press 'u' to return to the previous page.
```
Fix by creating the directory unless it exists in
`elpher-list-existing-certificates`.
Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
Alex Schroeder [Tue, 21 Jul 2020 07:22:56 +0000 (09:22 +0200)]
Fill headers
Filling headers is tricky because fill-column is measured in
characters but the font-size for headers is much larger than for
regular text. This change tries to accomodate this by taking the face
for the heading, getting it's font – a string like
"-BE5N-Iosevka-normal-normal-normal-*-29-*-*-*-d-0-iso10646-1" – turns
it into a spec and gets the size from there: 29. We can't use
something like (face-attribute face :height) directly because it might
return a font size in 1/10 point (if an interger) or as a scaling
factor (if a float). Thus, in order to avoid tracking down the face
inheritance tree, we're looking at the font name (a string), in either
XLFD, Fontconfig, or GTK+ format.
Tim Vaughan [Wed, 1 Jul 2020 19:21:15 +0000 (21:21 +0200)]
Improved default gemini face.
Tim Vaughan [Sun, 28 Jun 2020 22:55:03 +0000 (00:55 +0200)]
Use "persistent", fixed spelling, updated docs.
Tim Vaughan [Fri, 26 Jun 2020 13:34:48 +0000 (15:34 +0200)]
Can now install externally-generated certs from within elpher.
Tim Vaughan [Fri, 26 Jun 2020 11:52:12 +0000 (13:52 +0200)]
Added instructions on how to abort connections.
Tim Vaughan [Fri, 26 Jun 2020 11:51:45 +0000 (13:51 +0200)]
Removed default ports from urls.
Tim Vaughan [Mon, 22 Jun 2020 09:56:57 +0000 (11:56 +0200)]
Fixed spelling error. *facepalm*
Tim Vaughan [Mon, 22 Jun 2020 08:35:01 +0000 (10:35 +0200)]
Added enhancement requests.
Tim Vaughan [Mon, 22 Jun 2020 08:17:21 +0000 (10:17 +0200)]
Added entry for "F"orget command to start page.
Tim Vaughan [Sat, 20 Jun 2020 22:35:07 +0000 (00:35 +0200)]
Tidying up for next release.
Tim Vaughan [Sat, 20 Jun 2020 21:47:44 +0000 (23:47 +0200)]
Added client cert documentation to manual.
Tim Vaughan [Sat, 20 Jun 2020 20:33:39 +0000 (22:33 +0200)]
Closed gemini support issue. :-)
Tim Vaughan [Sat, 20 Jun 2020 20:31:34 +0000 (22:31 +0200)]
Improved client cert UX.
Tim Vaughan [Fri, 19 Jun 2020 22:27:40 +0000 (00:27 +0200)]
Added basic client cert functionality.
Tim Vaughan [Thu, 18 Jun 2020 23:24:51 +0000 (01:24 +0200)]
Version bump.
Tim Vaughan [Thu, 18 Jun 2020 23:24:03 +0000 (01:24 +0200)]
Linting following refactor.
Tim Vaughan [Thu, 18 Jun 2020 22:46:19 +0000 (00:46 +0200)]
Refactored data transfer code.
This is a significant change.
The network code which was previously spread out among
elpher-get-selector, elpher-get-gemini-response and
elpher-get-finger-page has been replaced by a single
elpher-get-host-reponse function.
In addition, we now use make-network-process instead of
open-network-stream, as this affords us greater flexibility
in speicyfing connections. This allows us to properly
specify ipv4, when necessary.
Connection error reporting has been improved, and connection
state is now explicitly reported.
Tim Vaughan [Tue, 9 Jun 2020 09:27:07 +0000 (11:27 +0200)]
Encode URLs before display in mouse-over.
Wasn't doing this previously as it's faster not to (and
it's only the help text and can't be otherwise used),
but rendering special characters in the mouse-over text
apparently causes Emacs to crash on MacOS! >:(
Tim Vaughan [Tue, 9 Jun 2020 09:21:40 +0000 (11:21 +0200)]
Version bump.
Tim Vaughan [Tue, 9 Jun 2020 09:17:05 +0000 (11:17 +0200)]
Revert port-stripping from elpher-address-to-url.
This seemed to be randomly adding the :0 port specifier
to URLs, breaking links. The stripping should be
implemented, but this requires more thought.
Tim Vaughan [Fri, 5 Jun 2020 13:54:10 +0000 (15:54 +0200)]
Version bump.
Tim Vaughan [Thu, 4 Jun 2020 19:05:25 +0000 (21:05 +0200)]
elpher-go now trims surrounding whitespace from input string.
Tim Vaughan [Thu, 4 Jun 2020 07:52:44 +0000 (09:52 +0200)]
Strip default port numbers from URL strings.
Tim Vaughan [Wed, 3 Jun 2020 08:36:30 +0000 (10:36 +0200)]
Tiny refactor.
Koushk Roy [Wed, 3 Jun 2020 05:13:44 +0000 (22:13 -0700)]
Grab port as well as host from elpher-current-page
Tim Vaughan [Tue, 2 Jun 2020 21:12:59 +0000 (23:12 +0200)]
Added confirmation for bookmark deletion.
Tim Vaughan [Tue, 2 Jun 2020 20:41:56 +0000 (22:41 +0200)]
Slight refactor following merge, linting.