1
0
Fork 0
Commit Graph

137 Commits

Author SHA1 Message Date
cage 5e035458fe - skipped redirect if parsing of iri failed. 2021-11-15 18:17:21 +01:00
cage e5597c6a80 - added query to redirect if present in the redirect iri. 2021-11-15 18:11:36 +01:00
cage 60a66d6ea9 - [gemini] prevented sending fragment part of the IRI to server;
- chaged prefix for links in gemini streams.
2021-11-07 10:31:01 +01:00
cage 5bbd5100c8 - changed 'raw-text' to 'source-line';
- added ocstring to 'search-gemini-fragment'.
2021-11-06 11:26:20 +01:00
cage 768e4a220b - added 'search-gemini-fragment' 2021-11-06 11:21:15 +01:00
cage b1b412ad89 - added 'match-words'. 2021-11-05 14:48:40 +01:00
cage 9d0e588b0b - fixed crash when completing an empty command line (pressing tab with
no string typed on the command line);
- fixed chrash when completing bookmark  entry with non word character
  (e.g. '[');
- added macro 'gemini-parser:with-initialized-parser';
- added source  metadata (sourceline and source-line-id  to results of
  gemini parsing to IR (see: sexp->text-rows).
2021-11-05 11:13:05 +01:00
cage fe9792a576 - [gemini/parsing] transformed to vertical space a text line made from blank characters only. 2021-10-26 20:05:18 +02:00
cage c3c9036427 - removed unused argument. 2021-10-25 18:21:18 +02:00
cage 41bf046a29 - [gemini] attached source line to each parsed gemtext node. 2021-10-24 15:53:31 +02:00
cage f9cc367267 - [gemini] moved fitting of quoted lines to message window routines. 2021-10-22 15:07:36 +02:00
cage b437e2846b - added 'gemini-all-unread-posts', 'shuffle-tour', 'gemlog-add-unread-posts-tour', 'clear-tour'
'gemini-all-unread-posts'  give  user  the  choice to  add  all  the
  currently unread post to the link tour.
2021-10-10 12:38:37 +02:00
cage 3f27420848 - added group-id property to all gemtext elements. 2021-09-04 14:17:25 +02:00
cage 0aad24a134 - changed function name from 'header-group-id' to 'current-header-group-id'. 2021-09-04 11:04:03 +02:00
cage e5172b6d95 - [gemini] added 'pre-group-id' slot to gemini text preformatted line;
this  changes fixed  the selection  of a  TOC entry  when reading  a
  gemini text too.
2021-09-03 14:09:16 +02:00
cage 377d95af51 - started with gemini link bookmark. 2021-08-16 14:22:47 +02:00
cage e28ae6ff1a - [gemini] used fuzzy matching when looking for URI in history. 2021-07-23 16:56:36 +02:00
cage e5f93bd632 - [gemini] removed link prefix for link labels that starts with an emoji;
- [gemini] removed splitting of long link labels;
- fixed output stream of 'print-debug'.
2021-07-17 12:13:04 +02:00
cage 2015066c61 - removed link prefix if link line starts with an emoji. 2021-07-16 19:24:27 +02:00
cage 0972cc3ed0 - [gemini fixed validity check for client certificate (thanks op!). 2021-07-16 11:32:36 +02:00
cage 287055f576 -[gemini] removed preformatted line truncate;
- [gemini] colored the alt text as the preformatted line (when shown).
2021-06-28 15:04:26 +02:00
cage 70d9fb5c0c - changed macro with a function. 2021-06-18 17:48:56 +02:00
cage f39e396762 - refactoring TOFU error recovery. 2021-06-18 17:10:58 +02:00
cage 4dae983197 - [gemini] prevented crash when a gemlog changed certificate and post's list is refreshed. 2021-06-18 17:01:11 +02:00
cage 8423ca7d38 - [gemini] fixed parser, made many parser state variables from
function local to thread local;
- fixed 'line-oriented-widget:append-new-rows';  uses slots  instead of
  accessors  as, for  example, message  window skips  invisible lines
  when specialzed (on message-window) method 'rows' is called.
2021-05-16 15:23:55 +02:00
cage 4a6e2fca3d - added a generated TOC for gemini files. 2021-05-16 15:23:55 +02:00
cage 088e760503 - [gemini] fixed parsing of gemlog pages. Subtitle was never recognized even if actually present. 2021-05-14 14:49:37 +02:00
cage 5201953a08 - [gemini] fixed parsing of quoted lines, an empty line can be part of the quote. 2021-05-09 17:01:51 +02:00
cage f5ff5cd94d - fixed 'make-gemini-iri', was crashing the program when 'port' argument was null. 2021-04-26 19:14:35 +02:00
cage c5ccfa2d26 - [gemini] omitted default port when building URI. 2021-04-24 16:12:14 +02:00
cage d9ebbe84ab - quote meta characters when matching for RE, searching for a common prefix from a bag of strings. 2021-04-16 18:34:27 +02:00
cage 7c9a8e3ee2 - [gemini] allowed to connect to host using ip address instead of hostname. 2021-04-16 15:03:58 +02:00
cage 90bad8b21c - fixed 'make-gemini-iri', was building wrong IRI with ipv6 address as host. 2021-04-16 14:44:22 +02:00
cage 1b3efc62f6 - [gemini] prevented trimming of preformatted gemtext line. 2021-04-16 14:05:42 +02:00
cage a4630f08af -[gemtext] added metadata for list and link lines. 2021-04-13 17:29:25 +02:00
cage a91ec4c7ae -[gemtext] added metadata to header lines;
- fixed processing of follow requests.
2021-04-13 17:02:30 +02:00
cage 15bbb49d5e - [gemini] added feature to toggle preformatted block on/off;
- [gemini] trimmed alt-text;

- reworded some functions.
2021-04-11 15:19:45 +02:00
cage 6786d48f6d - rewritten rendering of text in message window
i got rid of slot support-text in message-window, so that class does
  not maintain a state.

- changed behaivour of split-line
  (split-line (format nil "~2%")) ; => ("" "")

  That is an emtpy line is returned as empty string and not skipped
  Thanks to people from IRC and cl-ppcre maintainer for help!

- [breaking changes] changed 'hooks:*before-prepare-for-rendering-message*
  with 'hooks:*before-rendering-message-text*.
2021-04-10 13:52:56 +02:00
cage ddb74a600f - [gemini] tag preformatted text lines with metadata (group-id and alt text). 2021-04-08 16:32:34 +02:00
cage eefb64eb8e - [gemini] fixed gemini text parser. 2021-04-05 15:37:59 +02:00
cage eaf23afb58 - [gemini] fixed rendering of quoted lines;
- [gemini] do not set, always append, source text when refreshing a gemini window.
2021-04-05 14:47:57 +02:00
cage fac77297e8 - [gemini] started coloring preformatted block. 2021-04-05 12:01:30 +02:00
cage 9e3269576d - [gemini] improved rendering of quoted text. 2021-04-03 15:03:24 +02:00
cage 61c39b6c62 - moved to an internal wrapping of 'mkstemp' to allow extensions in filename;
- [gemini] rendering all stream with MIME type "text/*" with this program.
2021-04-01 17:08:42 +02:00
cage db34a2f958 - [gemini] added feature: loading local gemini files from command line (switch: '-o'). 2021-03-27 09:19:13 +01:00
cage 029acbe186 - removed empty line. 2021-03-24 16:26:26 +01:00
cage d92c103c43 - [gemini] when resolving host try UTF8 encoded name first and punycoded last. 2021-03-24 16:12:32 +01:00
cage 0c2398c184 - fixed hex digit parsing from iri parser;
- added more debugging messages;

- fixed formatting.
2021-03-15 19:28:07 +01:00
cage cc82ceff02 - [gemini] removed useless 'unwind-protect' (and simplified code) from 'gemini-client:request'. 2021-02-09 20:15:57 +01:00
cage ae82420cfe - [gemini] in gemini-client:request-dispatch signal a condition
('not-implemented-error') instead  of doing nothing when  a response
  in not handled (i.e. no function for that response type exists).
2021-02-09 19:32:48 +01:00
cage dc9e23e3c0 - [gemini] rewritten gemini-viewer:request using gemini-client:request-dispatch machinery;
hopefully this should made the function easier to read (by human) and extend.
2021-02-07 13:50:52 +01:00
cage 6a1ea415f7 - [gemini]
- added some messages to debug protocol;
  - asking  for query  event  got minimum  priority  to prevent  being
    hidden  by informational  messages on  the command  line (e.g  the
    message that  inform the  user that  the client  is going  back in
    history);
  - always stream contents that are repsonses to a query;
  - added      gemini-client:request-dispatch       and      rewritten
    gemini-client:slurp-gemini-url based on the former.
2021-02-07 13:50:40 +01:00
cage 0fc46fa1b5 - removed dependency from libidn2
punycode encoding  comes from  an internal implementation  istead of
  using an C library.
2021-01-31 13:08:34 +01:00
cage 17401274b5 - [gemini] added support for favicon.txt
the       implementation       more       or       less       follow
  gemini://mozz.us/files/rfc_gemini_favicon.gmi but it does render the
  first  character  of   the  file  instead  of   checking  for  emoji
  characters.
2021-01-28 15:35:26 +01:00
cage aae3aed7d4 - made 'text-utils:strim-blanks' returns nil and not "NIL" when input is null;
- [gemini] trim whitespaces from link name.
2021-01-24 12:20:18 +01:00
cage ecec01f285 - [gemini] made slurp-gemini-url works with redirect;
- [gemini] made some refactoring for building redirect IRIs.
2021-01-23 16:25:37 +01:00
cage f09b0f4aa3 - [gemini]
- prevent crash when subscribing to an already subscribed gemlog;
  - added cancel of subscriptions.
2021-01-10 11:35:28 +01:00
cage a0f8c83681 - [gemini] added a draft for gemlog subscriptions. 2021-01-09 16:27:40 +01:00
cage f6c02041ef - [gemini] added subscription command to gemlog. 2021-01-09 11:01:10 +01:00
cage 7e32091b6f - [gemini]
Started with gemlog subscription, added database table and interface
  and subscribing API.
2021-01-08 18:21:43 +01:00
cage 7a98df4a5a - [gemini] fix split when separator is at the end of a path. 2020-12-29 20:36:42 +01:00
cage 5151fbe4a2 - [gemini] allow percent encoding of query, path and fragment only if not already encoded. 2020-12-28 12:40:47 +01:00
cage e32e025d10 - [gemini] percent encoding path query and fragment before perfoming the request. 2020-12-25 18:24:12 +01:00
cage 9fd958d12b - fixed IRI and URI parser;
- taken into account fragment of IRI;
- added more IRI and URI test;
- passes all the client tests.
2020-12-25 18:23:32 +01:00
cage c9d9559f1a - changed 'uri' to 'iri' where does makes sense to me. 2020-12-17 13:56:07 +01:00
cage 2138021412 - [gemini] switched from URI to IRI;
- fixed wrong slot symbol.
2020-12-14 13:58:28 +01:00
cage 62394d319a - removed 'uri-' prefix from 'uri' slots names. 2020-12-13 15:29:04 +01:00
cage 13fdc439a8 - added IRI parser. 2020-12-13 15:27:55 +01:00
cage 664e8212ce - replaced quri with an internal parser;
- [gemini] the client passes the torture test again;

- fixed event test.
2020-10-25 19:58:05 +01:00
cage 269a08718c - [gemini] implemented a draft of a client authentication (via TLS certificates). 2020-10-23 20:57:17 +02:00
cage 497efa6a92 - [gemini] starting using certificates;
- removed hardcoded 'xdg-open' binary name.
2020-10-11 18:22:07 +02:00
cage 0cfdb8844e - [gemini] ensure just a single gemini file is in rendering state at
the same time;
- [gemini] add  a newline to  data before  parsing a gemini  file only
  when needed (thre is no one at the end);
- commented and improved some regular expressions for coloring.
2020-09-12 10:23:26 +02:00
cage c5118d46a6 - changed GPL comment headers. 2020-09-06 11:32:08 +02:00
cage 1eeed9538e - [gemini] download of non gemini documents happens in a concurrent
way (in a different thread)
- [gemini] prevent links to be appended even when user is opening a new document;
- [gemini] added a notification when download of a gemini document has terminated.
2020-07-26 13:29:24 +02:00
cage 254cd94720 - [gemini] the parser has been modified to renders (in a separate
thread) the contents of a gemini  file parsed so far without waiting
  for the whole document to be read from the socket.

  This  feature should  prevent blocking  the client  when the  server
  never close the socket (i.e. for streamed contents).
2020-07-26 12:07:26 +02:00
cage 6b0fab863d - [gemini] parse link even if link name is empty
sometimes you can met a link like:

=>URI<space><linebreak>

even if this  is, in my opinion,  a malformed link (there  should be a
text -the link name- after the space) parse anyway as if the link name
exists and is empty.
2020-07-15 15:49:49 +02:00
cage f8230fbb89 - fixed bug that prevented rendering of levels 3 headers. 2020-07-15 13:08:58 +02:00
cage fb0fd48865 - [gemini] added the option to view gemini page's source. 2020-07-15 12:40:30 +02:00
cage c84de306c8 - [gemini] made some elements of page rendering customizable
using 'gemini-page-theme'  class some elements of  the rendered page
  (header prefix, bullet and so on) can be customized.

  users can use configuration files directive to change the appearance of said elements
  (both character and color or font variants);

- removed unused argument from command line switch: '-m'.
2020-07-08 18:38:17 +02:00
cage 49214475ab - [gemini]
- using quri instead of puri library because the first has a better handling
    of UTF-8;
  - using binary stream instead of ASCII.
2020-07-04 11:15:55 +02:00
cage 9788bf12fb - prevented crash when 'original-path' is nil. 2020-07-02 20:26:40 +02:00
cage ee862ac62b - added command 'open-gemini-address'. 2020-06-28 12:36:59 +02:00
cage d8ea5093f7 - removed trim in preformatted text. 2020-06-23 16:21:26 +02:00
cage f861d80b8c - [gemini] percent encoded query. 2020-06-23 15:22:28 +02:00
cage cf7a19dd04 - allowed the user to bypas TOFU exception;
- fixed TOFU check.
2020-06-23 11:47:21 +02:00
cage 9461c0ea70 - gemini client works (but missing client authorization using certificates). 2020-06-22 14:03:06 +02:00
cage ffdd960673 - added a draft for gemini client. 2020-06-19 11:40:20 +02:00