elpher.git
2 years agoMerge remote-tracking branch 'upstream/patch_gemini_quoted_face' 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

2 years agoMerge remote-tracking branch 'upstream/patch_cleanup' into main
Alex Schroeder [Sun, 27 Jun 2021 19:31:18 +0000 (21:31 +0200)]
Merge remote-tracking branch 'upstream/patch_cleanup' into main

2 years agoSupport for C-u elpher to have multiple buffers
Alex Schroeder [Thu, 2 Jul 2020 09:19:55 +0000 (11:19 +0200)]
Support for C-u elpher to have multiple buffers

2 years agoIntegrate with `browse-url`
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.

2 years agoStore and follow elpher links in org-mode
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.

3 years agoFix .key regexp for listing existing certs
F. Jason Park [Thu, 25 Feb 2021 23:51:38 +0000 (15:51 -0800)]
Fix .key regexp for listing existing certs

3 years agoFix "wrong type argument" messages when fetching from Gemini.
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.

3 years agomake default protocol customizable
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'.

3 years agoDisable gnutls error verification
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.

3 years agoRemove another forgotten and useless local variable
É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

3 years agoAvoid 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

3 years agoAdd autoload token to ‘elpher-go’ and ‘elpher-bookmarks’ functions
Étienne Deparis [Tue, 24 Nov 2020 12:40:47 +0000 (13:40 +0100)]
Add autoload token to ‘elpher-go’ and ‘elpher-bookmarks’ functions

3 years agoAvoid a crash when saving a new bookmark and elpher-bookarks-file dir is missing
É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.

3 years agoAdd a new face to customize quoted texts in gemini pages
Étienne Deparis [Sat, 21 Nov 2020 18:03:32 +0000 (19:03 +0100)]
Add a new face to customize quoted texts in gemini pages

3 years agoRemove an unused local variable
Étienne Deparis [Sat, 21 Nov 2020 18:02:13 +0000 (19:02 +0100)]
Remove an unused local variable

3 years agoRemove some trailing whitespaces
Étienne Deparis [Sat, 21 Nov 2020 17:55:43 +0000 (18:55 +0100)]
Remove some trailing whitespaces

3 years agoProvide an option to visit clearnet sites over Tor
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).

3 years agoAccess onion services by a SOCKS proxy (e.g., Tor)
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.

3 years agoFixed reported version number. (Sigh.)
Tim Vaughan [Sat, 19 Sep 2020 10:25:54 +0000 (12:25 +0200)]
Fixed reported version number. (Sigh.)

3 years agoVersion bump. v2.10.2
Tim Vaughan [Sat, 19 Sep 2020 10:09:45 +0000 (12:09 +0200)]
Version bump.

3 years agoMerged Alex Schroeder's header-filling patch. Thanks!!
Tim Vaughan [Sat, 19 Sep 2020 10:08:06 +0000 (12:08 +0200)]
Merged Alex Schroeder's header-filling patch.  Thanks!!

3 years agoVersion bump. v2.10.1
Tim Vaughan [Sat, 19 Sep 2020 09:54:25 +0000 (11:54 +0200)]
Version bump.

3 years agoMerged Michel Salim's patch. Thanks!
Tim Vaughan [Sat, 19 Sep 2020 09:50:33 +0000 (11:50 +0200)]
Merged Michel Salim's patch.  Thanks!

3 years agoCache links in gemini pages.
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`).

3 years agoAdd ability to number links on gemini pages.
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.

3 years agoAdd the missing '^' binding
Zhiwei Chen [Fri, 28 Aug 2020 03:48:42 +0000 (11:48 +0800)]
Add the missing '^' binding

3 years agoBetter evil bindings.
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.

3 years agoEnsure certificate directory exists
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>
3 years agoFill headers
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.

3 years agoImproved default gemini face.
Tim Vaughan [Wed, 1 Jul 2020 19:21:15 +0000 (21:21 +0200)]
Improved default gemini face.

3 years agoUse "persistent", fixed spelling, updated docs. v2.10.0
Tim Vaughan [Sun, 28 Jun 2020 22:55:03 +0000 (00:55 +0200)]
Use "persistent", fixed spelling, updated docs.

3 years agoCan now install externally-generated certs from within elpher.
Tim Vaughan [Fri, 26 Jun 2020 13:34:48 +0000 (15:34 +0200)]
Can now install externally-generated certs from within elpher.

3 years agoAdded instructions on how to abort connections.
Tim Vaughan [Fri, 26 Jun 2020 11:52:12 +0000 (13:52 +0200)]
Added instructions on how to abort connections.

3 years agoRemoved default ports from urls.
Tim Vaughan [Fri, 26 Jun 2020 11:51:45 +0000 (13:51 +0200)]
Removed default ports from urls.

3 years agoFixed spelling error. *facepalm*
Tim Vaughan [Mon, 22 Jun 2020 09:56:57 +0000 (11:56 +0200)]
Fixed spelling error. *facepalm*

3 years agoAdded enhancement requests.
Tim Vaughan [Mon, 22 Jun 2020 08:35:01 +0000 (10:35 +0200)]
Added enhancement requests.

3 years agoAdded entry for "F"orget command to start page. v2.9.1
Tim Vaughan [Mon, 22 Jun 2020 08:17:21 +0000 (10:17 +0200)]
Added entry for "F"orget command to start page.

3 years agoTidying up for next release. v2.9.0
Tim Vaughan [Sat, 20 Jun 2020 22:35:07 +0000 (00:35 +0200)]
Tidying up for next release.

3 years agoAdded client cert documentation to manual.
Tim Vaughan [Sat, 20 Jun 2020 21:47:44 +0000 (23:47 +0200)]
Added client cert documentation to manual.

3 years agoClosed gemini support issue. :-)
Tim Vaughan [Sat, 20 Jun 2020 20:33:39 +0000 (22:33 +0200)]
Closed gemini support issue. :-)

3 years agoImproved client cert UX.
Tim Vaughan [Sat, 20 Jun 2020 20:31:34 +0000 (22:31 +0200)]
Improved client cert UX.

3 years agoAdded basic client cert functionality.
Tim Vaughan [Fri, 19 Jun 2020 22:27:40 +0000 (00:27 +0200)]
Added basic client cert functionality.

3 years agoVersion bump. v2.8.0
Tim Vaughan [Thu, 18 Jun 2020 23:24:51 +0000 (01:24 +0200)]
Version bump.

3 years agoLinting following refactor.
Tim Vaughan [Thu, 18 Jun 2020 23:24:03 +0000 (01:24 +0200)]
Linting following refactor.

3 years agoRefactored data transfer code.
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.

3 years agoEncode URLs before display in mouse-over. v2.7.11
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! >:(

3 years agoVersion bump.
Tim Vaughan [Tue, 9 Jun 2020 09:21:40 +0000 (11:21 +0200)]
Version bump.

3 years agoRevert port-stripping from elpher-address-to-url.
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.

3 years agoVersion bump. v2.7.10
Tim Vaughan [Fri, 5 Jun 2020 13:54:10 +0000 (15:54 +0200)]
Version bump.

3 years agoelpher-go now trims surrounding whitespace from input string.
Tim Vaughan [Thu, 4 Jun 2020 19:05:25 +0000 (21:05 +0200)]
elpher-go now trims surrounding whitespace from input string.

3 years agoStrip default port numbers from URL strings.
Tim Vaughan [Thu, 4 Jun 2020 07:52:44 +0000 (09:52 +0200)]
Strip default port numbers from URL strings.

3 years agoTiny refactor.
Tim Vaughan [Wed, 3 Jun 2020 08:36:30 +0000 (10:36 +0200)]
Tiny refactor.

3 years agoGrab port as well as host from elpher-current-page
Koushk Roy [Wed, 3 Jun 2020 05:13:44 +0000 (22:13 -0700)]
Grab port as well as host from elpher-current-page

3 years agoAdded confirmation for bookmark deletion.
Tim Vaughan [Tue, 2 Jun 2020 21:12:59 +0000 (23:12 +0200)]
Added confirmation for bookmark deletion.

3 years agoSlight refactor following merge, linting.
Tim Vaughan [Tue, 2 Jun 2020 20:41:56 +0000 (22:41 +0200)]
Slight refactor following merge, linting.

3 years agoMerge remote-tracking branch 'origin/patch_force_ipv4'
Tim Vaughan [Tue, 2 Jun 2020 20:21:50 +0000 (22:21 +0200)]
Merge remote-tracking branch 'origin/patch_force_ipv4'

3 years agoAdded a command to return to the start page.
Tim Vaughan [Tue, 2 Jun 2020 20:04:13 +0000 (22:04 +0200)]
Added a command to return to the start page.

3 years agoVersion bump. v2.7.9
Tim Vaughan [Mon, 1 Jun 2020 20:46:47 +0000 (22:46 +0200)]
Version bump.

3 years agoImproved inline help for finger getter.
Tim Vaughan [Mon, 1 Jun 2020 20:24:06 +0000 (22:24 +0200)]
Improved inline help for finger getter.

3 years agoAdded hints to avoid some byte compilation warnings.
Tim Vaughan [Mon, 1 Jun 2020 20:23:44 +0000 (22:23 +0200)]
Added hints to avoid some byte compilation warnings.

3 years agoMouse-over text now generated when needed.
Tim Vaughan [Mon, 1 Jun 2020 20:22:27 +0000 (22:22 +0200)]
Mouse-over text now generated when needed.

This _dramatically_ improves rendering speed for link-heavy pages.
Who knew this could be such a bottleneck!?

3 years agoMade gemini link and bullet strings customizable.
Tim Vaughan [Mon, 1 Jun 2020 20:21:47 +0000 (22:21 +0200)]
Made gemini link and bullet strings customizable.

3 years agoBrings gemini bullet-deteciton into line with spec update.
Tim Vaughan [Mon, 1 Jun 2020 15:08:46 +0000 (17:08 +0200)]
Brings gemini bullet-deteciton into line with spec update.

3 years agoBumped priority of bookmark grouping.
Tim Vaughan [Mon, 1 Jun 2020 09:10:36 +0000 (11:10 +0200)]
Bumped priority of bookmark grouping.

3 years agoAllow option to force ipv4
Koushk Roy [Mon, 1 Jun 2020 04:28:54 +0000 (21:28 -0700)]
Allow option to force ipv4

3 years agoFixed history bug.
Tim Vaughan [Wed, 27 May 2020 07:35:30 +0000 (09:35 +0200)]
Fixed history bug.

3 years agoUnescape gopher selectors when extracting from URLs. v2.7.8
Tim Vaughan [Wed, 27 May 2020 07:14:14 +0000 (09:14 +0200)]
Unescape gopher selectors when extracting from URLs.

3 years agoAdded history bug to issues document.
Tim Vaughan [Tue, 26 May 2020 20:48:27 +0000 (22:48 +0200)]
Added history bug to issues document.

3 years agoVersion bump. v2.7.7
Tim Vaughan [Mon, 25 May 2020 07:48:46 +0000 (09:48 +0200)]
Version bump.

3 years agoFixed reflow behaviour around bullets.
Tim Vaughan [Fri, 22 May 2020 16:08:07 +0000 (18:08 +0200)]
Fixed reflow behaviour around bullets.

Previously, consecutive lines containing bullets could result in
bullets being added, because of emacs' default auto-fill behaviour.
(Which makes sense when editing text, but not when formatting gemini
documents.)

3 years agoGave preformatted text its own configurable face.
Tim Vaughan [Fri, 22 May 2020 15:44:09 +0000 (17:44 +0200)]
Gave preformatted text its own configurable face.

3 years agoVersion bump. v2.7.6
Tim Vaughan [Fri, 22 May 2020 11:12:30 +0000 (13:12 +0200)]
Version bump.

3 years agoWork around Doom emacs tls problems.
Tim Vaughan [Fri, 22 May 2020 11:11:21 +0000 (13:11 +0200)]
Work around Doom emacs tls problems.

3 years agoVersion bump. v2.7.5
Tim Vaughan [Fri, 22 May 2020 08:56:37 +0000 (10:56 +0200)]
Version bump.

3 years agoMake explicit mention of Gemini across all documentation.
Tim Vaughan [Wed, 20 May 2020 07:46:37 +0000 (09:46 +0200)]
Make explicit mention of Gemini across all documentation.

3 years agoMerge remote-tracking branch 'origin/patch_gus'
Tim Vaughan [Wed, 20 May 2020 07:26:46 +0000 (09:26 +0200)]
Merge remote-tracking branch 'origin/patch_gus'

3 years agoAdded contributors list to README.
Tim Vaughan [Tue, 19 May 2020 07:39:52 +0000 (09:39 +0200)]
Added contributors list to README.

3 years agoRecognize Shift-Tab from a Linux virtual console.
Simon South [Mon, 18 May 2020 15:33:57 +0000 (11:33 -0400)]
Recognize Shift-Tab from a Linux virtual console.

3 years agoUnknown gemini content now rendered as download.
Tim Vaughan [Sun, 17 May 2020 21:39:31 +0000 (23:39 +0200)]
Unknown gemini content now rendered as download.

3 years agoMade gophermap info type parser more robust.
Tim Vaughan [Sun, 17 May 2020 21:25:49 +0000 (23:25 +0200)]
Made gophermap info type parser more robust.

3 years agoAdded transfer progress feedback.
Tim Vaughan [Sun, 17 May 2020 21:25:02 +0000 (23:25 +0200)]
Added transfer progress feedback.

3 years agoReorder search engines
Vee [Sun, 17 May 2020 10:53:29 +0000 (06:53 -0400)]
Reorder search engines

3 years agoBugfix: file name suggestion for gemini downloads.
Tim Vaughan [Sun, 17 May 2020 10:36:06 +0000 (12:36 +0200)]
Bugfix: file name suggestion for gemini downloads.

3 years agoBugfix: bookmarks saving works again. v2.7.4
Tim Vaughan [Sun, 17 May 2020 06:44:48 +0000 (08:44 +0200)]
Bugfix: bookmarks saving works again.

3 years agoVersion bump. v2.7.3
Tim Vaughan [Sat, 16 May 2020 21:20:01 +0000 (23:20 +0200)]
Version bump.

3 years agoFixed help text for heading faces.
Tim Vaughan [Sat, 16 May 2020 21:20:01 +0000 (23:20 +0200)]
Fixed help text for heading faces.

3 years agoMade bookmarks file location customizable. v2.7.2
Tim Vaughan [Sat, 16 May 2020 18:53:27 +0000 (20:53 +0200)]
Made bookmarks file location customizable.

3 years agoUpdate documentation to include all supported protocols
Vee [Sat, 16 May 2020 14:30:24 +0000 (10:30 -0400)]
Update documentation to include all supported protocols

This updates some in-code and Elpher homepage command documentation to
be more consistent with the client's support for more than just the
gopher protocol.

3 years agoAdd Gemini search link to elpher homepage
Vee [Sat, 16 May 2020 13:56:54 +0000 (09:56 -0400)]
Add Gemini search link to elpher homepage

This commit adds a "homepage" link to GUS in a similar fashion to
Veronica. It's not actually tested, because I'm not very well-versed
in hacking Emacs packages, and doing something like over-writing an
installed version from Melpa.

Thank you for the great client, and please LMK if you have any
feedback or guidance on how to improve this implementation!

3 years agoBug fix: redirects now rewrite current address. v2.7.1
Tim Vaughan [Sat, 16 May 2020 12:30:50 +0000 (14:30 +0200)]
Bug fix: redirects now rewrite current address.

See "Redirects do not rewrite current address" in ISSUES.org for
details.

3 years agoPackage linting. v2.7.0
Tim Vaughan [Fri, 15 May 2020 23:38:44 +0000 (01:38 +0200)]
Package linting.

3 years agoUpdated info documentation.
Tim Vaughan [Fri, 15 May 2020 23:27:25 +0000 (01:27 +0200)]
Updated info documentation.

3 years agoAdded heading styles, adjusted fill, messed with tls.
Tim Vaughan [Fri, 15 May 2020 22:09:14 +0000 (00:09 +0200)]
Added heading styles, adjusted fill, messed with tls.

3 years agoDisabled TLS certificate validation by default.
Tim Vaughan [Fri, 15 May 2020 19:30:40 +0000 (21:30 +0200)]
Disabled TLS certificate validation by default.

3 years agoPerformance optimization for gopher and finger xfers.
Tim Vaughan [Fri, 15 May 2020 17:12:32 +0000 (19:12 +0200)]
Performance optimization for gopher and finger xfers.

3 years agoFirst round of text/gemini formatting improvements.
Tim Vaughan [Fri, 15 May 2020 17:00:03 +0000 (19:00 +0200)]
First round of text/gemini formatting improvements.

3 years agoGemini download performance optimization.
Tim Vaughan [Fri, 15 May 2020 16:58:33 +0000 (18:58 +0200)]
Gemini download performance optimization.

3 years agoUpdated version string.
Tim Vaughan [Fri, 15 May 2020 07:34:52 +0000 (09:34 +0200)]
Updated version string.

3 years agoUpdated issue list.
Tim Vaughan [Thu, 14 May 2020 12:03:57 +0000 (14:03 +0200)]
Updated issue list.

3 years agoVersion bump. v2.6.1
Tim Vaughan [Thu, 14 May 2020 09:27:46 +0000 (11:27 +0200)]
Version bump.