[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Smart processing of http(s) links
From: |
Bonface M. K. |
Subject: |
Re: Smart processing of http(s) links |
Date: |
Mon, 29 Jun 2020 12:35:41 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) |
Ag Ibragimov <agzam.ibragimov@gmail.com> writes:
> Oh cool. This is exactly what I needed:
>
> I was able to build this:
>
> #+begin_src emacs-lisp
> (defun get-gh-item-title (uri &optional include-number?)
> "Based on given github URI for (pull request or an issue),
> returns its title"
> (when (string-match "\\(github.com\\).*\\(issues\\|pull\\)" uri) ; either
> PR or issue
> (pcase-let* ((`(_ _ ,owner ,repo ,type ,number) (remove "" (split-string
> uri "/")))
> (gh-resource (format "/repos/%s/%s/%s/%s"
> owner
> repo
> (if (string= type "pull") "pulls" type)
> number))
> (resp (ghub-get gh-resource nil :auth 'forge)))
> (when resp
> (format "%s%s" (alist-get 'title resp)
> (when include-number? (format " #%s" number)))))))
>
> (defun org-link-make-description-function* (link desc)
> (cond ((string-match "\\(github.com\\).*\\(issues\\|pull\\)" link)
> (get-gh-item-title link :with-number))
> (t desc)))
>
> (setq org-link-make-description-function 'org-link-make-description-function*)
> #+end_src
>
Thanks for this!
> https://gist.github.com/agzam/b2f2d441acb96e1d693a2c81e9c4518f
> On Sun 28 Jun 2020 at 14:02, Kyle Meyer <kyle@kyleam.com> wrote:
>
>> Ag Ibragimov writes:
>>
>>> Whenever I I use org-insert-link and it turns out to be a URI that
>>> starts with "https://github.com" I would like it to be processed
>>> differently than any other link, one example - if it is a PR or a
>>> Github Issue, I'd like it to fetch summary(title) of it and create a
>>> link that looks like this:
>>>
>>> [[https://github.com/user/repo/issues/3899][This issue needs to be fixed
>>> #3899]]
>>>
>>> Do we have any "built-in" mechanism for doing something like this? Can
>>> someone suggest how I can make it. Thank you!
>>
>> You can set org-link-make-description-function to a function that
>> detects links of interest and generates a custom description.
>
>
--
Bonface M. K. (https://www.bonfacemunyoki.com)
One Divine Emacs To Rule Them All
GPG key = D4F09EB110177E03C28E2FE1F5BBAE1E0392253F