unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Jean Louis <bugs@gnu.support>
To: Eduardo Ochs <eduardoochs@gmail.com>
Cc: help-gnu-emacs <help-gnu-emacs@gnu.org>
Subject: Re: Integrating eev and org-capture/org-capture-set-target-location
Date: Sat, 5 Jun 2021 02:33:16 +0300	[thread overview]
Message-ID: <YLq4PEsB2d6MWENq@protected.localdomain> (raw)
In-Reply-To: <CADs++6hpJeA3MpHOcCXWLvMn3edHm7V1-HA82ASRaGVwxkzwTg@mail.gmail.com>

Is this the way to make an universal link launchable by eev key bindings?

(browse-url "https://www.example.com")

For me that sounds 50% good, following would be better, more visual
and descriptive:

(WWW "https://www.example.com" "Example Website")

And this link, should be self-updateable:

(WWW "https://www.example.com")

If user presses prefix like C-u M-e then such link would update itself
into:

(WWW "https://www.example.com" "Example Website")

You could study these functions and find out how to fetch the URL, how
to extract title, functions are not perfect, it would be better to
decode some HTML.

(defun hyperscope-fetch-title (url)
  "Return title for URL or if there is no match url."
  (let* ((string (hyperscope-url-to-string url)) 
	 (match (string-match "<title>\\(.*\\)</title>" string)))
    (if match
	(replace-regexp-in-string "<title>\\|</title>" "" (match-string 0 string))
      url)))

(defun hyperscope-url-to-string (url)
  "Fetch URL and return as string."
  (url-retrieve-synchronously url)
  (let ((buffer (url-retrieve-synchronously url)))
    (with-current-buffer buffer
      (buffer-string))))

Some highlighting:

(defun rcd-highlight-list (list)
  "Uses LIST to highlight strings in buffer."
  (hi-lock-mode)
  (let* ((list (delete "" list))
	(highlights hi-lock-face-defaults))
    (while list
      (highlight-regexp (regexp-quote (pop list)) (pop highlights)))))

(rcd-highlight-list '("WWW" "Set"))

I suggest exploring highlighting options as that could make the eev
buffer more visual.

The eev is a hypertext system:
https://en.wikipedia.org/wiki/Hypertext

with many implementations:
https://en.wikipedia.org/wiki/Hypertext#Implementations

and in Hyperscope there are types, like: 

Action Asciidoc Asciidoctor "Asciidoctor with" PDF DISEASE DJVU DONE
Directory "Directory Action ➜" EPUB "Emacs Lisp" "Emacs Lisp
Hyperlink" Enriched FOLLOW-UP File HTML, etc.

So that gives me idea that I could be exporting the system into `eev'
files, with highlighting and generate automatically hyperlinks such as:

(Set 29 "People")

(WWW 38233 "Modular Buildings & Prefab Homes | Karmod Construction")         

As that way Hyperscope would activate the ID 38233 and open up the
website. 

I also believe that quoting could be excluded:

(WWW 38233 Modular Buildings & Prefab Homes | Karmod Construction)

And it works this way:

(defmacro WWW (id &rest args)
  (hyperscope-tabulated-action id) ;; open up action based on the type
  (espeak (mapconcat 'symbol-name args " "))) ;; speak symbols as string 

It would be nice to highlight the symbols "Modular
Buldings.. Construction" only but I don't know how to do it.

I can easier generate eev style links then Org buffers.


-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://stallmansupport.org/



      reply	other threads:[~2021-06-04 23:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-04  3:41 Integrating eev and org-capture/org-capture-set-target-location Eduardo Ochs
2021-06-04  6:00 ` Jean Louis
2021-06-04 16:09   ` Eduardo Ochs
2021-06-04 18:14     ` Jean Louis
2021-06-04 22:28       ` Eduardo Ochs
2021-06-04 23:33         ` Jean Louis [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YLq4PEsB2d6MWENq@protected.localdomain \
    --to=bugs@gnu.support \
    --cc=eduardoochs@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).