LINUX.ORG.RU

Сообщения o_--

 

Emacs, добавление заголовка к ссылке в org-mode (2)

Старая тема (Emacs, добавление заголовка к ссылке в org-mode) уже в архиве. Но прогресс не остановить.

Понадобилось добавить отмену по timeout. Спросил у ChatGPT o1-preview. Он выдал мне такой рабочий код:

(defun org-link-describe (url &optional descr)
  "Retrieve the HTML title from a URL with a 3-second timeout using request.el."
  (require 'request)
  (require 'dom)
  (let ((result nil)
        (done nil)
        (timeout 3)
        (request-backend 'url-retrieve))  ;; Use url-retrieve backend
    ;; Send the HTTP request
    (request
     url
     :timeout timeout
     :headers '(("User-Agent" . "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"))
     :parser (lambda ()
               ;; Parse the HTML content into a DOM
               (libxml-parse-html-region (point) (point-max)))
     :success (cl-function
               (lambda (&key data &allow-other-keys)
                 ;; Extract the <title> element
                 (let ((title-node (dom-by-tag data 'title)))
                   (when title-node
                     (setq result (dom-text (car title-node)))))
                 (setq done t)))  ;; Ensure this is inside the lambda
     :error (cl-function
             (lambda (&rest args &key error-thrown &allow-other-keys)
               (message "Error fetching URL: %s" error-thrown)
               (setq done t))))   ;; Ensure this is inside the lambda
    ;; Wait for the request to finish or timeout
    (let ((wait-time 0)
          (step 0.1))
      (while (and (not done)
                  (< wait-time timeout))
        (sleep-for step)
        (setq wait-time (+ wait-time step))))
    result))

;; Fill a description for a link
(setq org-make-link-description-function 'org-link-describe)

Но этот код не работает со страницами в кодировке koi8-r, например, opennet. Предложения по улучшению кода всячески приветствуются (я не знаю ELisp).

 , ,

o_--
()

Lubuntu 20.04 и артефакты (Intel 11600, UHD 750)

Наблюдаю артефакты. Есть видео, но не знаю куда залить. Что можете посоветовать?

Проблемы появились после сегодняшнего обновления. До этого всё было сносно. Обновлялись сегодня mesa, plasma из KDE и ещё какие-то пакеты из KDE.

 , , ,

o_--
()

Блокировка HTTP-сканеров

В логах nginx есть вот такие запросы. Их много, они разные, но в основном нацелены на WordPress.

GET /wp/wp-includes/wlwmanifest.xml
GET / HTTP/1.1\x5Cr\x5Cn
GET /dispatch.asp
GET /config/getuser?index=0
GET /boaform/admin/formLogin?username=ec8&psd=ec8

Стоит ли их блокировать? Если стоит, то как? Очень мало информации по данному вопросу. Возможно, я задаю не те вопросы.

 , ,

o_--
()

Emacs org-mode и периодические задачи: нежелательная автоматическая смена даты.

  1. Есть задача, которую нужно выполнить в конце месяца. Если я опоздал с выполнением на пару дней, то месяц добавляется не к дате DEADLINE, а к дате фактического выполнения. А мне этот сдвиг совсем не нужен. Как это исправить?
** TODO [#B] Отправить показания счётчика электроэнергии
   DEADLINE: <2021-10-28 Вс .+1m -2d>

И ещё у меня есть два дополнительных вопроса.

  1. Как запланировать задачу на последний день месяца?

  2. Что даёт указание :STYLE: habit?

** TODO Things
   SCHEDULED: <2016-01-17 Sun .+1m>
   :PROPERTIES:
   :STYLE:    habit
   :END:

 ,

o_--
()

Emacs, добавление заголовка к ссылке в org-mode

Очень плохо понимаю язык Lisp, тем более ELisp. Нужна ваша помощь. В org-mode есть функция для добавления ссылки (Ctrl-x Ctrl-l). Но название ссылки надо вводить руками. Я нашел код, чтобы вставлять текст из <title></title>, но кириллица отображается неверно. Вопросы:

  1. Как получить кириллицу в правильной кодировке?
  2. Как вызывать эту функцию только если это ссылка на веб-страницу? (не на файл и т.п.)
;; Function gets title from a HTML page
(defun org-link-describe (url &optional descr)
  (let ((buffer (url-retrieve-synchronously url))
        (title nil))
    (save-excursion
      (set-buffer buffer)
      (goto-char (point-min))
      (search-forward-regexp "<title>\\([^<]+?\\)</title>")
      (setq title (match-string 1 ) )
      (kill-buffer (current-buffer)))
    title))

;; Fill a description for a link
(setq org-make-link-description-function 'org-link-describe)

 , ,

o_--
()

RSS подписка на новые темы