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.

3. I use zip bombs to protect my server

4. EmacsConf - 2023 - talks - Collaborative data processing and documenting using org-babel

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.

Author: Yuri

Created: 2025-05-14 sre 13:03

Validate