emacs.si srečanje maj 2025
Table of Contents
Rekordna udeležba! 8 nas je. Število udeležencev raste eksponentno!
1. Novice
Med nami je novi worg hišnik. Worg so strani Org-mode skupnosti z
dokumentacijo, nasveti, povezavami itn., vse, kar je lahko koristno,
ampak ne spada v uradni del dokumentacije na ostalih straneh
https://orgmode.org. Christian je novopečeni vzdrževalec. Predlogi in
prispevki so dobrodošli! (Prispevki najraje z git format-patch
na mailing listo, na katero se lahko prijaviš tukaj.)
2. swagg.el
https://github.com/isamert/swagg.el
Alternativa, ki je sicer samo nadomestek za Postman: restclient.
Primer RESTclient rabe:
POST https://prevedi.kompot.si/translate Content-Type: application/json { "q": "daj no delaj prosim", "source": "sl", "target": "de" }
It would be very nice if swagg.el
showed how web endpoints can be called (not only which ones are available).
Generating a rest client query could show placeholders for parameters, for instance.
5. Hitro vnašanje povezave
;; Moja osebna bljižnica ("C-c C-l" . ar/org-insert-link-dwim)
Za delovanje elfeed
povezav, sledi navodilom na povezavi.
(defun js/get-link-title (url) "Get the title for a given URL based on its type." (cond ;; ((string-prefix-p "http" url t) ;; (with-current-buffer (url-retrieve-synchronously url) ;; (let ((dom (libxml-parse-html-region (point-min) (point-max)))) ;; (string-trim (dom-text (car (dom-by-tag dom 'title))))))) ;; Prebere ime spletne strani na http povezavi ((string-prefix-p "http" url t) (condition-case nil (let ((buffer (url-retrieve-synchronously url t t 3))) ; Add timeout of 3 seconds (when buffer (unwind-protect (with-current-buffer buffer (let ((dom (libxml-parse-html-region (point-min) (point-max)))) (string-trim (dom-text (car (dom-by-tag dom 'title)))))) (kill-buffer buffer)))) (error nil))) ;; Prebere naslov org-roam vozlišča - potrebuje org-roam ;; Če le-ta ni naložen ne bi smelo biti problemov, saj v ;; tem primeru težko dobiš id povezavo. ((string-prefix-p "id:" url t) (let* ((id (string-remove-prefix "id:" url)) (node (org-roam-node-from-id id))) (org-roam-node-title node))) ;; Formatira povezavo do vnosa v elfeedovi podatkovni bazi ;; Dela, če je postavljen tip org povezave: ;; ((string-prefix-p "elfeed:" url t) ;; (let* ((link (string-remove-prefix "elfeed:" url)) ;; (entry (when (string-match "\\([^#]+\\)#\\(.+\\)" link) ;; (elfeed-db-get-entry (cons (match-string 1 link) ;; (match-string 2 link)))))) ;; (when entry ;; (let ((title (elfeed-entry-title entry)) ;; (author (get-elfeed-entry-author entry))) ;; (if author ;; (format "%s - %s" title author) ;; title))))) (t nil))) ; Return nil for unrecognized URL types (defun js/format-link (url) "Return the current `link' formatted as an org link with its title." (let ((title (js/get-link-title url))) (if title (org-link-make-string url title) (org-link-make-string url)))) ; Just create a plain link if no title (defun ar/org-insert-link-dwim () "Like `org-insert-link' but with personal dwim preferences." (interactive) (let* ((point-in-link (org-in-regexp org-link-any-re 1)) (clipboard-url (when (string-match-p "^http" (current-kill 0)) (current-kill 0))) (region-content (when (region-active-p) (buffer-substring-no-properties (region-beginning) (region-end))))) (cond ((and region-content clipboard-url (not point-in-link)) (delete-region (region-beginning) (region-end)) (insert (org-link-make-string clipboard-url region-content))) ;; New URLs default to title ((and clipboard-url (not point-in-link)) (insert (js/format-link clipboard-url))) (t (call-interactively 'org-insert-link)))))
6. Raziskovanje delne upokojitve | Radio Študent
Intervju s Sacho Chuo.